.access-map{max-width:1160px;margin:28px auto 0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);min-height:330px;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,#8f164b,#d91f65 48%,#c84b08);box-shadow:0 24px 60px rgba(82,26,48,.18)}
.access-map iframe{width:100%;height:100%;min-height:330px;border:0;filter:saturate(.9) contrast(.97)}
.access-map>div{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:38px;color:#fff}
.access-map .mono{margin-bottom:14px;color:#ffd8c0;font-size:.63rem;letter-spacing:.14em}
.access-map strong{font-family:Fraunces,Georgia,serif;font-size:clamp(1.65rem,3vw,2.35rem);font-weight:400;line-height:1.04}
.access-map a{display:inline-flex;margin-top:24px;padding:12px 17px;border-radius:999px;background:#fff;color:#9d254f;font-size:.75rem;font-weight:700;transition:transform .25s ease,box-shadow .25s ease}
.access-map a:hover,.access-map a:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px rgba(65,16,37,.22)}
.practical li a{color:inherit;text-decoration:underline;text-decoration-color:rgba(255,255,255,.5);text-underline-offset:3px;font-weight:700}
@media(max-width:900px){html,body,main{max-width:100%;overflow-x:hidden}}
@media(max-width:760px){.access-map{grid-template-columns:1fr;margin:18px 16px 0;min-height:0;border-radius:18px}.access-map iframe{min-height:270px}.access-map>div{padding:27px}.access-map strong{font-size:1.8rem}.access-map a{margin-top:18px}}

/* Guidage animé vers le parking */
.place-parking{isolation:isolate}
.place-parking::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent 54%,rgba(20,17,17,.08) 72%,rgba(20,17,17,.58) 100%)}
.parking-route{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none;overflow:visible}
.route-shadow,.route-line{fill:none;stroke-linecap:round;stroke-linejoin:round}
.route-shadow{stroke:rgba(24,19,18,.55);stroke-width:3.8}
.route-line{stroke:#fff;stroke-width:2.1;stroke-dasharray:5 4;animation:parking-dashes 1.1s linear infinite}
.route-car{fill:#f7b34d;stroke:#fff;stroke-width:.9;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.parking-step,.parking-destination{position:absolute;z-index:3;display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(31,26,24,.78);color:#fff;box-shadow:0 7px 18px rgba(0,0,0,.2);backdrop-filter:blur(5px);pointer-events:none}
.parking-step b,.parking-destination b{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#f7b34d;color:#342019;font:700 .67rem/1 Manrope,Arial,sans-serif}
.parking-step span,.parking-destination span{position:static!important;padding:0!important;background:none!important;color:#fff!important;font:700 .55rem/1.15 Manrope,Arial,sans-serif!important;letter-spacing:.01em!important;text-transform:none}
.parking-step-one{left:8%;bottom:18%}
.parking-step-two{left:28%;top:37%}
.parking-destination{left:57%;right:auto;top:43%;border-color:#ffd99a;background:rgba(119,52,27,.88)}
.parking-destination b{background:#fff;color:#a34a24}
.place-parking figcaption{position:absolute;z-index:4;left:14px;right:14px;bottom:14px;padding:12px 14px;border:1px solid rgba(255,255,255,.45);border-radius:14px;background:rgba(28,23,22,.84);color:#fff;backdrop-filter:blur(7px)}
.place-parking figcaption strong{display:block;margin-bottom:3px;font:700 .72rem/1.2 Manrope,Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.place-parking figcaption span{position:static!important;padding:0!important;background:none!important;color:rgba(255,255,255,.9)!important;font:600 .64rem/1.35 Manrope,Arial,sans-serif!important;letter-spacing:0!important}
.place-parking>span.mono{display:none}
@keyframes parking-dashes{to{stroke-dashoffset:-18}}
@media(max-width:760px){.parking-step{padding:6px 8px}.parking-step-one{left:4%;bottom:29%}.parking-step-two{left:25%;top:36%}.parking-destination{left:56%;right:auto;top:42%}.parking-step span,.parking-destination span{font-size:.5rem!important}.place-parking figcaption{left:10px;right:10px;bottom:10px;padding:10px 11px}}
@media(prefers-reduced-motion:reduce){.route-line{animation:none}.route-car{display:none}}

/* Plan 2D vu du ciel, basé sur l’accès réel */
.place-visuals .parking-aerial{display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:linear-gradient(145deg,#fff8f5,#ffe9dc)}
.parking-aerial::after{display:none}
.parking-plan-head{position:relative;z-index:3;padding:16px 18px 13px;border-bottom:1px solid rgba(101,45,63,.12);background:rgba(255,255,255,.8)}
.parking-plan-head>span{position:static!important;display:block!important;margin:0 0 5px!important;padding:0!important;background:none!important;color:#b02a5f!important;font-size:.54rem!important;letter-spacing:.13em!important}
.parking-plan-head strong{display:block;color:#2e1821;font:500 1.12rem/1.15 Fraunces,Georgia,serif}
.parking-plan{display:block;width:100%;height:100%;min-height:0}
.aerial-route-shadow,.aerial-route-line{fill:none;stroke-linecap:round;stroke-linejoin:round}
.aerial-route-shadow{stroke:rgba(68,35,47,.25);stroke-width:17}
.aerial-route-line{stroke:url(#route-gradient);stroke-width:9;stroke-dasharray:15 10;filter:url(#route-glow);animation:aerial-route-flow 1.15s linear infinite}
.aerial-route-dot{fill:#fff;stroke:#d91f65;stroke-width:5;filter:url(#route-glow)}
.plan-step circle{fill:#2e1821;stroke:#fff;stroke-width:3}
.plan-step rect{fill:rgba(255,255,255,.94);stroke:#d8b8c3;stroke-width:1.5}
.plan-step circle+text{fill:#fff;font:800 13px Manrope,Arial,sans-serif;text-anchor:middle}
.plan-step rect+text{fill:#3d2530;font:700 11px Manrope,Arial,sans-serif;text-anchor:middle}
.parking-pin circle{fill:#d91f65;stroke:#fff;stroke-width:5;filter:url(#route-glow)}
.parking-pin text{fill:#fff;font:800 25px Manrope,Arial,sans-serif;text-anchor:middle}
.parking-aerial figcaption{position:static;z-index:3;margin:0;padding:13px 16px;border:0;border-top:1px solid rgba(101,45,63,.13);border-radius:0;background:#2e1821;backdrop-filter:none}
.parking-aerial figcaption strong{margin-bottom:4px;font-size:.67rem}
.parking-aerial figcaption span{font-size:.61rem!important}
@keyframes aerial-route-flow{to{stroke-dashoffset:-50}}
@media(max-width:900px){.place-visuals .parking-aerial{height:555px}}
@media(max-width:760px){.parking-plan-head{padding:15px 15px 12px}.parking-plan-head strong{font-size:1.02rem}.parking-aerial figcaption{padding:12px 13px}.parking-aerial figcaption span{font-size:.59rem!important}}
@media(prefers-reduced-motion:reduce){.aerial-route-line{animation:none}.aerial-route-dot{display:none}}
