/* Fluid navigation: translations determine their own line height and width. */
@media (min-width:768px) {
    .menu { position:sticky; top:0; box-sizing:border-box; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:2px clamp(8px,2vw,32px); padding:10px 24px; background:#fff; }
    .menu a { margin:0; min-height:40px; display:inline-flex; align-items:center; text-align:center; padding:0 6px; font-size:14px; line-height:1.45; white-space:nowrap; }
    .subme { box-sizing:border-box; top:var(--menu-bottom,160px); padding:24px max(24px,calc((100vw - 1180px)/2)); width:100%; max-height:calc(100dvh - var(--menu-bottom,160px)); overflow-y:auto; box-shadow:0 18px 28px #00000008; }
    .subme.is-open { display:grid; grid-template-columns:minmax(220px, max-content) minmax(0,1fr); align-items:center; gap:24px; }
    .subme .sutitle { display:block; position:static; width:auto; margin:0; padding:4px 24px 4px 0; text-align:left; min-width:0; max-width:300px; }
    .subme .sutitle h1 { font-size:22px; line-height:1.3; word-break:normal; overflow-wrap:normal; }
    .subme .sutitle p { line-height:1.5; margin-top:6px; word-break:normal; }
    .subme .mn { position:static; margin:0; width:auto; min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; text-align:left; }
    .subme .mn img { display:none; }
    .subme .mn a { display:inline-flex; align-items:center; min-height:44px; box-sizing:border-box; padding:8px 10px; line-height:1.4; border-radius:8px; word-break:normal; }
    .subme .mn a:hover, .subme .mn a:focus-visible { background:#f3f3f0; }
    .subme .mn .tour-nav { margin-left:8px; border:1px solid #dcdcd6; padding:10px 16px; }
    .floor_link { position:sticky; top:90px; float:left; margin-right:30px; width:220px; left:auto; }
    .warp:has(> .floor_link)::after { content:""; display:block; clear:both; }
}
@media (min-width:768px) and (max-width:1070px) { .floor_link { width:150px; } }
@media (min-width:768px) and (max-width:900px) {
    .subme.is-open { grid-template-columns:1fr; gap:12px; }
    .subme .sutitle { border:0; padding:0; max-width:none; }
    .subme .sutitle p { display:none; }
}
.gnb .btn_retails { display:inline-flex; align-items:center; gap:6px; background:transparent; color:#252525; font:inherit; font-size:13px; font-weight:600; cursor:pointer; min-height:40px; }
.gnb .btn_retails .material-symbols-rounded { font-size:20px; transition:transform .2s; }
.gnb .btn_retails[aria-expanded="true"] .material-symbols-rounded { transform:rotate(180deg); }
.mobile-venues-trigger { display:none; }
.venues-dialog, .venues-dialog * { box-sizing:border-box; }
.venues-dialog { position:fixed; margin:auto; padding:0; width:min(540px,calc(100vw - 32px)); max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); border:1px solid #e6e6e0; border-radius:22px; background:#fff; color:#252525; box-shadow:0 24px 80px #0003; overflow:hidden; }
.venues-dialog[open] { display:flex; flex-direction:column; }
.venues-dialog::backdrop { background:#1117; backdrop-filter:blur(4px); }
.venues-dialog header { position:relative; padding:28px 28px 22px; flex-shrink:0; border-bottom:1px solid #ededeb; }
.venues-dialog header p { font-size:10px; letter-spacing:2px; margin-bottom:8px; }
.venues-dialog h2 { padding-right:38px; font-size:25px; line-height:1.3; font-weight:700; overflow-wrap:normal; }
.venues-close { position:absolute; right:20px; top:22px; width:44px; height:44px; display:grid; place-items:center; background:#f4f4f2; border-radius:50%; cursor:pointer; }
.venues-close svg { width:19px; height:19px; }
.venues-list { padding:14px; overflow-y:auto; min-height:0; overscroll-behavior:contain; }
.venues-list a { display:flex; align-items:center; gap:18px; padding:12px; border-radius:13px; min-height:88px; }
.venues-list a + a { border-top:1px solid #eee; }
.venues-list a img { width:74px; height:74px; object-fit:contain; padding:10px; background:#f5f5f3; border-radius:14px; flex-shrink:0; }
.venues-list a span { font-size:17px; font-weight:600; line-height:1.4; min-width:0; }
.venues-list a svg { width:22px; height:22px; margin-left:auto; flex-shrink:0; }
.venues-list a:hover { background:#f3f3f0; }
.venues-dialog a:focus-visible, .venues-dialog button:focus-visible, [data-open-venues]:focus-visible { outline:2px solid #222; outline-offset:-3px; }
body.venues-open { position:fixed; left:0; right:0; width:100%; overflow:hidden; }
body.navigation-open { overflow:hidden; }
.hambox .tour-nav { display:flex; width:fit-content; margin:12px 0 2px; padding:9px 15px; border:1px solid #dcdcd6; border-radius:8px; }
.footer > a { font-size:13px; opacity:.8; margin:5px; text-decoration:underline; text-underline-offset:3px; }
.inq { width:min(100%,1100px); }
.inq .box li { box-sizing:border-box; flex:1 1 0; width:0; min-width:0; }
.inq .box li h3 { line-height:1.3; }
.inq .box li p { line-height:1.6; }
.inq h2 { color:#727272; line-height:1.65; margin-top:10px; }
.inq > a { box-sizing:border-box; max-width:100%; }
.main_info { display:grid; grid-template-columns:minmax(0,1fr) 290px; column-gap:20px; row-gap:20px; }
.main_info h1 { padding-bottom:0; grid-column:1/-1; }
.main_info h2 { position:static; max-width:none; grid-column:1/-1; padding-bottom:4px; }
.main_info .map { width:100%; grid-column:1; height:360px; }
.main_info .flow { position:relative; inset:auto; box-sizing:border-box; width:100%; height:360px; }
.location_info { scroll-margin-top:90px; }
.location_info a { margin-top:8px; }
.matehill-map { position:relative; overflow:hidden; border-radius:12px; isolation:isolate; scroll-margin-top:90px; background:#eeece7; }
.matehill-map [hidden] { display:none!important; }
.map-canvas { position:absolute; inset:0; width:100%; height:100%; }
.map-fallback { position:relative; z-index:2; }
.map-fallback .map-status { font-size:12px; line-height:1.5; color:#777; }
.map-retry { cursor:pointer; font-size:13px; border-bottom:1px solid #777; background:transparent; padding:4px; }
.map-tools { position:absolute; right:12px; top:12px; display:flex; flex-direction:column; gap:5px; z-index:3; }
.map-tools button { width:44px; height:44px; background:#fff; color:#222; border:1px solid #d7d7d0; box-shadow:0 2px 8px #0002; border-radius:8px; cursor:pointer; font-size:22px; line-height:1; }
.map-tools button:focus-visible, .map-touch-toggle:focus-visible { outline:2px solid #222; outline-offset:-3px; }
.map-touch-shield { display:none; position:absolute; inset:0; z-index:2; touch-action:pan-y; }
.map-touch-toggle { position:absolute; left:12px; bottom:34px; z-index:3; background:#fff; border:1px solid #ddd; border-radius:24px; box-shadow:0 2px 8px #0002; padding:11px 16px; min-height:44px; cursor:pointer; font-size:13px; max-width:calc(100% - 24px); }
@media (pointer:coarse) { .map-touch-shield:not([hidden]) { display:block; } }
@media (max-width:767px) {
    .gnb { position:sticky; top:0; background:#fff; z-index:1010; }
    .mobile-venues-trigger { display:grid; place-items:center; position:absolute; top:14px; left:56px; width:40px; height:40px; background:transparent; cursor:pointer; z-index:2; }
    .mobile-venues-trigger svg { width:21px; height:21px; }
    .subme, .subme.is-open { display:none; }
    .venues-dialog { top:auto; bottom:0; margin:0 auto; width:100%; max-width:540px; max-height:calc(100dvh - 16px); border-radius:20px 20px 0 0; padding-bottom:env(safe-area-inset-bottom); }
    .venues-dialog header { padding:23px 22px 18px; }
    .venues-dialog h2 { font-size:22px; }
    .venues-list { padding:10px; }
    .venues-list a { gap:14px; padding:10px; min-height:76px; }
    .venues-list a img { width:62px; height:62px; padding:8px; border-radius:12px; }
    .venues-list a span { font-size:15px; }
    .venues-list a svg { width:18px; height:18px; }
    .floor_link { position:sticky; top:70px; z-index:1000; background:#fff; margin:0 -10px; max-width:calc(100% + 20px); }
    .floor_con { margin:28px 0 0; }
    .panorama-widget { scroll-margin-top:160px; }
    .inq .box li { flex:auto; width:100%; }
    .main_info { display:block; }
    .main_info h1 { padding-bottom:10px; }
    .main_info h2 { padding-bottom:24px; }
    .main_info .map { height:360px; }
    .main_info .flow { height:auto; margin-top:12px; padding-bottom:50px; }
    .location_map { background:transparent; }
    .location_map .map { height:420px; }
}
@media (prefers-reduced-motion:reduce) { .gnb .btn_retails .material-symbols-rounded { transition:none; } }
