.overview .white_content_box.map-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; max-width: 1340px; margin: 0 auto; align-items: start; }
.map-directions, .map-parking { min-width: 0; width: 100%; margin: 0; }
.map-route-controls { display: flex; justify-content: center; align-items: center; gap: 22px; min-height: 50px; }
.map-route-controls button { position: relative; border: 0; border-radius: 0; padding: 10px 0; background: transparent; color: #786b56; font: 400 13px/1.5 Arial, sans-serif; cursor: pointer; transition: color .25s; }
.map-route-controls [data-select-route]::after { content: ''; position: absolute; bottom: 4px; left: 0; right: 0; height: 1px; background: #5f483d; transform: scaleX(0); transition: transform .3s; }
.map-route-controls [aria-pressed="true"] { color: #493525; }
.map-route-controls [data-select-route][aria-pressed="true"]::after { transform: scaleX(1); }
.map-route-controls button:hover { color: #493525; }
.map-route-controls button:focus-visible { outline: 1px solid #5f483d; outline-offset: 4px; }
.map-route-controls .route-pause { font-size: 11px; opacity: .8; }
.overview .white_content_box .route-description { box-sizing: border-box; height: 42px; margin: 0; padding: 2px 8px 16px; color: #5f483d; font: 14px/24px 'Nanum Myeongjo', serif; }
.parking-heading { height: 92px; box-sizing: border-box; padding-top: 12px; color: #5f483d; }
.parking-heading > span { font: 23px/30px 'Nanum Myeongjo', serif; }
.overview .white_content_box .parking-heading p { margin: 8px 0 0; padding: 0; font: 14px/24px 'Nanum Myeongjo', serif; }
.map-route-canvas { position: relative; width: 100%; aspect-ratio: 1796 / 1930; box-sizing: border-box; overflow: hidden; }
.overview .white_content_box .map-route-canvas img, .overview .white_content_box .map-parking > img { display: block; width: 100%; height: auto; max-width: none; border: 0; aspect-ratio: 1796 / 1930; }
.map-route-overlay { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.map-route[hidden] { display: none; }
.route-line, .route-light { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.route-line { stroke: #795b43; stroke-opacity: .55; stroke-width: 4; }
.route-light { stroke: #fff8e9; stroke-width: 5; stroke-dasharray: 3 107; stroke-dashoffset: 3; animation: route-flow 7s linear infinite; }
.route-destination-halo { fill: none; stroke: #f4ecdc; stroke-opacity: .8; stroke-width: 2; }
.map-directions.motion-paused .route-light { animation-play-state: paused; }
@keyframes route-flow { 0% { stroke-dashoffset: 3; opacity: 0; } 8% { opacity: 1; } 88% { opacity: 1; } 100% { stroke-dashoffset: -100; opacity: 0; } }
.overview .white_content_box .route-note { margin: 0; padding: 14px 8px 22px; font: 11px/1.8 Arial, sans-serif; color: #786b56; word-break: keep-all; }
@media (max-width: 800px) { .overview .white_content_box.map-layout { grid-template-columns: minmax(0, 1fr); max-width: 650px; gap: 20px; } .map-route-controls { gap: 18px; } }
@media (prefers-reduced-motion: reduce) { .route-light { animation: none; display: none; } }

/* White content framed by the same beige as the logo/contact footer. */
body .wrap.sub > .content.map-content { background: linear-gradient(#fff, #fff) content-box, #caba95; }
.overview .white_content_box.map-layout { background: #fff; padding: 24px 20px 16px; box-sizing: border-box; }
@media (max-width: 800px) { .overview .white_content_box.map-layout { padding: 16px 10px 8px; } }
