@font-face {
    font-family: "GenEiLateMin";
    src: url("GenEiLateMin.woff2") format("woff2");
    font-display: swap;
}

/* Prevent horizontal swipe to navigate (Edge WebView2 / Chromium) */
html {
    overscroll-behavior-x: none;
    touch-action: pan-y;
}

body {
    font-family:  "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
    margin: 0;
    background: #f8fcfc;
    overscroll-behavior-x: none;
    touch-action: pan-y;
}

header {
    background: #a6e9e3;
    color: #fff;
    padding: 0;
    text-align: center;
}

h1 {
    font-family: "GenEiLateMin";
    margin: 0;
    height: 7rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

h1 img {
    height: 5rem;
}
h2 {
    font-family: "GenEiLateMin";
    font-size: 1.3rem;
    margin-top: 0.2rem 0 0;
    text-align:center;
}
nav {
    margin-top: 0;
}

nav a,
nav select {
    color: #207a76;
    margin: 0 15px;
    text-decoration: none;
    font-weight: 600;
    font-size: 18px;
    background: none;
    border: none;
    cursor: pointer;
}

main {
    display: flex;
    flex-direction: column;
}

section {
    padding: 0 30px;
    max-width: none;
}

@media (orientation: landscape) {
    body.floor10 .menu-list .menu-item {
        max-height: 50vh;
        height: auto;
    }
    body.store-detail main {
        display: block !important;
        flex-direction: unset !important;
        align-items: unset !important;
        gap: unset !important;
        padding: unset !important;
        height: unset !important;
    }
    section#s1 {
        display: flex;
        gap: 2rem;
        align-items: flex-start;
    }
    section#s1 .introduction {
        flex: 0 1 50%;
    }
    section#s1 .menu-list {
        flex: 1 1 50%;
    }
    margin: 0 20px;
}

svg {
    width: 100%;
    max-width: 1000px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
    border-radius: 8px;
    margin: auto;
    display: block;
}
a {text-decoration: none; color:#000}
.oar { fill: #d0f0fd; stroke: #6bbde3; stroke-width: 1; }
.store { fill: #fdf4e7; stroke: #c89b3c; stroke-width: 2; cursor: pointer; }
.store:hover { fill: #ffe8c2; }
.facility { fill: #d3d3f6; stroke-width: 1.5; }
.corridor { fill: #f0f0f0; stroke: #ccc; stroke-width: 1; }
.label { font-size: 16px; fill: #333; font-weight: bold; pointer-events: none; }
.sub { font-size: 13px; fill: #666; pointer-events: none; }
.logo { font-size: 36px; font-family: "GenEiLateMin"; font-weight: 800; letter-spacing: 3px; color: #c89b3c; text-align: center; margin: 1rem 0 0; }
.photo-frame { width: 100%; height: 300px; overflow: hidden; background: #000; margin-bottom: 20px; border-radius: 8px; }
.photo-frame img { width: 100%; height: 100%; object-fit: cover; }
.menu-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px;}
.menu-item { border: 1px solid #ddd; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 6px rgba(0,0,0,.1); background: #fff; cursor: pointer; }
.menu-item img { width: 100%; object-fit: cover; }
.menu-desc { padding: 15px; }
.menu-name { font-family: "GenEiLateMin";font-weight: bold; font-size: 18px; margin-bottom: 8px; }
.menu-detail { font-size: 14px; color: #555; margin-bottom: 8px; }
.price { font-weight: bold; color: #c89b3c; font-size: 20px; }
.back { display: block; margin: 30px auto; padding: 10px 20px; background: #333; color: #fff; text-decoration: none; border-radius: 4px; text-align: center; width: fit-content; }
.floor {text-align: center;}
.floor a {display: inline-block;margin: 30px auto; padding: 10px 20px; background: #333; color: #fff; text-decoration: none; border-radius: 4px; text-align: center; width: fit-content; }
.cls-1 { fill: rgb(0, 61, 108); }
.cls-2 { fill: #6bbde3; }
.cls-3 { fill: #eaaec9; }
.cls-w { fill: #ffffff; }

/* 縦向き・デフォルト表示 */
.menu-item img {
    height: 200px;
}

/* 横向き（1920×1080）用レスポンシブ対応 */
@media (orientation: landscape) {
    main {
        display: flex;
        flex-direction: row;
        align-items: stretch;
        gap: 20px;
        padding: 20px;
        height: calc(100vh - 200px);
    }
    
    main > section:first-child {
        flex: 1;
        max-width: none;
        padding: 0;
        display: flex;
        flex-direction: column;
    }
    
    main > section:last-child {
        flex: 1;
        max-width: none;
        padding: 0;
        display: flex;
        flex-direction: row;
    }
    
    svg {
        max-width: 100%;
        margin: 0;
        flex: 1;
    }
    
    .menu-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 1fr;
        gap: 15px;
        flex: 1;
    }
    
    /* floor*.html専用のmenu-itemスタイル（store-detailでないページのみ） */
    body:not(.store-detail) .menu-item {
        display: flex !important;
        flex-direction: column;
        min-height: 0;
    }
    
    body:not(.store-detail) .menu-item img {
        flex: 1 1 auto;
        width: 100%;
        height: auto !important;
        min-height: 0;
        max-height: none;
        object-fit: cover;
    }
    
    body:not(.store-detail) .menu-desc {
        flex: 0 0 auto;
    }
    
    /* s*.html用の従来のスタイル */
    .store-detail .menu-item img {
        height: 150px;
    }
    
    .floor {
        margin: 15px 0;
    }
    
    .floor a {
        margin: 10px 5px;
        padding: 8px 15px;
        font-size: 14px;
    }
    
    /* 店舗詳細ページ（s1-s10.html）専用スタイル */
    .store-detail main {
        display: flex;
        flex-direction: row;
        gap: 20px;
        padding: 20px;
    }
    
    .store-detail .photo-frame {
        flex: 1;
    }
    
    .store-detail section {
        display: flex;
        flex-direction: row;
        gap: 20px;
    }
    
    .store-detail .introduction {
        flex: 1;
        display: flex;
        flex-direction: column;
    }
    
    .store-detail .menu-list {
        flex: 1;
        grid-template-columns: 1fr;
    }
}
}

/* Touch signage: disable text selection, touch callout and image dragging */
html, body, header, main, svg, img, a, button, select, .menu-item, .menu-desc {
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none;     /* IE10+ */
    user-select: none;         /* Standard */
    -webkit-touch-callout: none; /* iOS Safari long-press */
}

img, svg, a {
    -webkit-user-drag: none;
}

/* Remove tap highlight on mobile */
* { -webkit-tap-highlight-color: rgba(0,0,0,0); }

/* Allow pointer interactions but avoid accidental gestures */
button, a, .store, .menu-item { touch-action: manipulation; }
