.popup-route-button{float:right;display:grid;place-items:center;width:32px;height:32px;margin:0 10px 4px 8px;padding:0;border:1px solid #7d8b96;border-radius:50%;background:#fff;color:#25343c;cursor:pointer}
.culture-dark .popup-route-button{background:#000;color:#fff}
.map-route-panel{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);width:340px;max-width:calc(100% - 70px);z-index:750;background:#fff;color:#222;border:1px solid #89949b;border-radius:16px;padding:13px 16px;box-shadow:0 4px 18px #0004;font-size:13px}
.map-route-panel[hidden]{display:none}.map-route-panel header{display:flex;align-items:center;justify-content:space-between}.route-close{border:0;border-radius:50%;width:27px;height:27px;background:#000;color:#fff;font-size:21px;line-height:1;cursor:pointer}.route-destination{margin:7px 0;font-weight:600}.route-controls{display:flex;gap:8px}.route-controls select{min-width:0;flex:1}.route-controls select,.route-calculate{padding:7px 10px;border:1px solid #89949b;border-radius:10px;background:#fff;color:#222}.route-calculate{background:#53616c;color:#fff;cursor:pointer}.route-calculate:disabled{opacity:.5}.route-result{font-weight:650;margin:10px 0}.route-credit{font-size:10px;line-height:1.4;margin:7px 0 0;color:#616b72}.route-credit a{color:inherit}
.culture-dark .map-route-panel{background:#111;color:#fff}.culture-dark .route-controls select{background:#222;color:#fff}.culture-dark .route-credit{color:#b9c1c6}

.popup-place-header{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:12px;align-items:start;margin-bottom:10px}
.popup-place-copy{min-width:0}.popup-place-copy .popup-meta{margin-bottom:0}
.popup-place-header .popup-route-button{float:none;display:flex;flex-direction:column;align-items:center;gap:4px;width:54px;height:auto;margin:0;padding:0 0 2px;border:0;background:transparent;color:inherit}
.popup-route-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid #8a98a2;border-radius:50%;background:#edf2f5;color:#344b5a;box-shadow:inset 0 1px 0 #fff,inset 0 -2px 2px #0001}
.popup-route-button:hover .popup-route-icon{background:#dce8ef;border-color:#536b7b}
.popup-route-label{font-size:10px;font-weight:600;line-height:1.3}
.culture-dark .popup-route-icon{background:#344550;color:#fff;border-color:#81929c;box-shadow:inset 0 1px 0 #ffffff20,inset 0 -2px 2px #0004}
.culture-dark .popup-route-button:hover .popup-route-icon{background:#455c6a}
.route-close{display:grid;place-items:center;padding:0;flex:none}.route-close svg{display:block}

/* Un panneau plus aéré, avec des commandes de même hauteur. */
.map-route-panel{padding:16px 18px}
.map-route-panel header{margin-bottom:12px}
.map-route-panel .route-destination{margin:0 0 16px;line-height:1.45}
.route-controls{gap:14px;align-items:center}
.route-controls select,.route-controls .route-calculate{height:38px;box-sizing:border-box;font:500 14px/1.25 system-ui}
.route-controls select{padding:7px 30px 7px 11px}
.route-controls .route-calculate{padding:7px 14px;flex:none}
.route-close{width:30px;height:30px;border:1px solid #68747d}
.culture-dark .route-close{background:#39434b;color:#fff;border-color:#83919b}
.culture-dark .route-close:hover{background:#4b5964;border-color:#b8c3cb}
.route-result:empty{display:none}
.route-result:not(:empty){margin:14px 0 0;line-height:1.45}

.route-modes{display:flex;align-items:center;justify-content:center;gap:18px;width:100%}
.route-modes button{display:grid;place-items:center;width:46px;height:46px;flex:none;padding:0;border:1px solid #aab4bc;border-radius:50%;background:#fff;color:#43515b;cursor:pointer;transition:background .15s,border-color .15s}
.route-modes button svg{display:block}
.route-modes button:hover{border-color:#536b7b;background:#edf2f5}
.culture-dark .route-modes button{background:#222;color:#e5ebef;border-color:#63717b}
:root .route-modes button[aria-pressed=true]{background:var(--selection-fill,#53616c);border-color:var(--selection-border,#7d8b96);color:#fff;box-shadow:0 0 0 2px #839ba84d}
.route-modes button:focus-visible{outline:2px solid #839ba8;outline-offset:3px}

/* Libellés discrets sous les pastilles de déplacement. */
.route-modes{gap:14px}
.route-modes button{display:flex;flex-direction:column;gap:6px;width:72px;height:auto;border:0;border-radius:8px;background:transparent;padding:0;font:500 11px/1.3 system-ui}
.route-mode-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid #aab4bc;border-radius:50%;background:#fff;color:#43515b}
.route-mode-label{white-space:nowrap;color:inherit}
.route-modes button:hover,.culture-dark .route-modes button{background:transparent}
.route-modes button:hover .route-mode-icon{background:#edf2f5;border-color:#536b7b}
.culture-dark .route-mode-icon{background:#222;color:#e5ebef;border-color:#63717b}
.culture-dark .route-modes button:hover .route-mode-icon{background:#303a42}
:root .route-modes button[aria-pressed=true]{background:transparent;color:#25343c;box-shadow:none}
:root.culture-dark .route-modes button[aria-pressed=true]{color:#fff}
:root .route-modes button[aria-pressed=true] .route-mode-icon{background:var(--selection-fill,#53616c);border-color:var(--selection-border,#7d8b96);color:#fff;box-shadow:0 0 0 2px #839ba84d}

/* Carte de trajet compacte : destination en tête, modes puis résultat. */
.map-route-panel{width:300px;padding:15px 16px 13px;border-radius:20px;border-color:#c5ccd1;box-shadow:0 8px 28px #0003,0 1px 3px #0002}
.map-route-panel header{align-items:flex-start;gap:12px;margin:0 0 14px}
.route-heading{min-width:0;flex:1}
.route-heading>strong{display:block;font-size:10px;line-height:1.3;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:#687780;margin-bottom:4px}
.map-route-panel .route-destination{margin:0;font-size:15px;line-height:1.3;font-weight:650;overflow-wrap:anywhere}
.map-route-panel .route-close{width:27px;height:27px;margin:0;border-color:#d0d6da;background:#edf0f2;color:#3c4952}
.map-route-panel .route-close:hover{background:#dde3e7}
.route-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.route-modes button{width:100%;gap:6px;align-items:center;font-size:11px;line-height:1.3}
.route-mode-icon{width:42px;height:42px;border-color:#d1d8dd;background:#f7f9fa}
.route-mode-icon svg{width:23px;height:23px}
.route-result:not(:empty){margin:13px -16px -13px;padding:11px 14px;border-top:1px solid #e0e5e8;border-radius:0 0 20px 20px;background:#f4f6f7;text-align:center;font-size:12px;line-height:1.45;font-weight:600}
.culture-dark .map-route-panel{background:#171a1d;border-color:#485159;box-shadow:0 8px 28px #0007,0 1px 3px #0005}
.culture-dark .route-heading>strong{color:#aebbc5}
.culture-dark .map-route-panel .route-close{background:#354049;color:#fff;border-color:#64737e}
.culture-dark .map-route-panel .route-close:hover{background:#485761}
.culture-dark .route-mode-icon{background:#242b30;border-color:#4a5862}
.culture-dark .route-result:not(:empty){background:#20272c;border-color:#39434b;color:#edf3f7}

.culture-popup .popup-place-copy .popup-title{margin-right:0}

/* Même axe central pour le pictogramme, la pastille et son libellé. */
.popup-place-header .popup-route-button{justify-content:flex-start;text-align:center;box-sizing:border-box;line-height:1}
.popup-route-icon{box-sizing:border-box;flex:none;padding:0;line-height:0}
.popup-route-icon svg{display:block;width:18px;height:18px;margin:0;transform:translateX(.375px)}
.popup-route-label{display:block;align-self:stretch;width:100%;margin:0;padding:0;text-align:center;white-space:nowrap}

/* En-tête libre sur toute sa largeur; itinéraire en bas à droite. */
.popup-place-header{display:block}
.popup-place-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:8px}
.culture-popup .popup-place-footer .popup-meta{margin:0 0 2px}
.popup-place-footer .popup-route-button{flex:none;margin-left:auto}

/* Accès complémentaire à Google Maps, sans remplacer le trajet local. */
.route-heading-actions{display:flex;align-items:center;gap:10px;flex:none}
.route-google{display:grid;place-items:center;width:32px;height:32px;box-sizing:border-box;border:1px solid #cbd2d7;border-radius:50%;background:#fff;text-decoration:none;box-shadow:0 1px 3px #0002;transition:box-shadow .15s,border-color .15s}
.route-google svg{display:block}
.route-google:hover{border-color:#159ad5;box-shadow:0 0 0 3px #159ad525}
.route-google:focus-visible{outline:2px solid #159ad5;outline-offset:3px}
