/* EN gallery 統一版 v1（ローカル／非公開）。body.en-gallery-fix にスコープ（専用CSS1本。gallery-lightbox-v1.css を置き換える：拡大位置の修復は末尾にそのまま内包）。
   目的：他の公開済みEN下層（紙色・Hiragino系・細い罫線・fixedの薄いヘッダー・紙色フッター・濃色の予約バー）と見た目を揃える。HTMLは旧ヘッダー/フッターの構造のまま（CSSだけ）。
   旧：暗色#333の絶対配置ヘッダー(132px)・白ロゴ・上端の言語バー(32px)・#333フッター・白地。実表示は未確認。 */
body.en-gallery-fix {
  --paper: #f3efe8; --paper-deep: #ece6dc; --stone: #e5ded2; --ink: #26231f; --ink-soft: #57514a; --green: #26231f; --glow: #e3c48f;
  --line: rgba(38, 35, 31, .14); --line-strong: rgba(38, 35, 31, .28);
  --mincho: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif; --gothic: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", sans-serif;
  --gutter: clamp(20px, 5vw, 72px); --h-h: 72px; --ease: cubic-bezier(.22, .61, .36, 1);
  background: var(--paper); color: var(--ink); font-family: var(--gothic); font-weight: 400; font-size: 15px; line-height: 1.95; letter-spacing: .04em;
  padding-top: 0 !important; overflow-x: hidden; -webkit-font-smoothing: antialiased;
}
html:has(body.en-gallery-fix) { scroll-behavior: smooth; }
body.en-gallery-fix a { color: inherit; }
body.en-gallery-fix a:focus-visible, body.en-gallery-fix button:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
body.en-gallery-fix .serif, body.en-gallery-fix h1, body.en-gallery-fix h2, body.en-gallery-fix h3 { font-family: var(--mincho); font-weight: 400; }

/* ---------- ヘッダー（PC＝1161px以上）：fixedの薄い紙色。ロゴ左、ナビ、言語切替、予約ボタン ---------- */
body.en-gallery-fix > header, body.en-gallery-fix > header.h_top {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: var(--h-h); padding: 0;
  background: rgba(243, 239, 232, .94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 1px 0 var(--line);
}
body.en-gallery-fix #header_inner, body.en-gallery-fix header.h_top #header_inner { height: var(--h-h); padding: 0 var(--gutter); background: transparent; align-items: center; }
body.en-gallery-fix #logo_header { width: auto; height: 52px; filter: brightness(0); }      /* 元は142×102の白SVG（暗色ヘッダー用）。縦を52pxにして黒に */
body.en-gallery-fix header nav { width: auto; max-width: none; margin: 0 0 0 auto; }
body.en-gallery-fix header nav ul { padding-right: 304px; }                                  /* 右の言語切替(約62px)＋予約ボタン(190px)＋余白の分 */
body.en-gallery-fix header nav li:not(:last-child) { margin-right: 26px; }
body.en-gallery-fix header nav a { font-family: var(--mincho); font-size: 13px; letter-spacing: .1em; color: var(--ink); text-decoration: none; padding: 6px 0; border-bottom: 1px solid transparent; line-height: 1.6; }
body.en-gallery-fix header nav a:hover { border-bottom-color: currentColor; }
body.en-gallery-fix header nav li a[href="/en/gallery/"] { border-bottom-color: var(--green); }   /* 現在ページ */
/* 言語切替：旧の上端バー(32px)を、ヘッダーの帯の中（予約ボタンの左）へ */
body.en-gallery-fix .preview-language {
  position: fixed; top: 0; right: calc(var(--gutter) + 204px); z-index: 1001; height: var(--h-h); padding: 0; display: flex; align-items: center; gap: 6px;
  background: transparent; font-family: Georgia, "Times New Roman", serif; font-size: 12px; letter-spacing: .14em; color: var(--ink); line-height: 1;
}
body.en-gallery-fix .preview-language a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; color: inherit; text-decoration: none; opacity: .85; }
body.en-gallery-fix .preview-language a[aria-current] { opacity: 1; }
body.en-gallery-fix .preview-language a:hover { opacity: 1; text-decoration: underline; text-underline-offset: 4px; }
/* 予約ボタン（旧：右上に固定・スクロールで位置移動）。位置は常に帯の中 */
body.en-gallery-fix #top_button, body.en-gallery-fix #top_button.moved { position: fixed; top: 0; height: var(--h-h); display: flex; align-items: center; right: var(--gutter); z-index: 1001; }   /* 文言が1〜3行でも帯の縦中央 */
body.en-gallery-fix #top_button a.btn {
  display: block; width: 190px; padding: 7px 16px; box-sizing: border-box; background: transparent; border: 1px solid var(--ink); border-radius: 0; color: var(--ink);
  font-family: var(--gothic); font-size: 12.5px; letter-spacing: .06em; line-height: 1.4; text-align: center; text-decoration: none; transition: background .3s var(--ease), color .3s var(--ease);
}
body.en-gallery-fix #top_button a.btn:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- 601〜1160px：PCのナビは収まらないので、旧のSPヘッダー（ロゴ＋ハンバーガー）を使う（他の下層と同じ切替幅） ---------- */
@media (max-width: 1160px) {
  body.en-gallery-fix > header { display: none; }
  body.en-gallery-fix #sp-header {
    display: block; position: fixed; top: 0 !important; left: 0; right: 0; width: auto; height: var(--h-h); z-index: 1000;   /* 既存インラインの #sp-header{top:32px!important}（旧言語バー分）を打ち消す */
    background: rgba(243, 239, 232, .94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: 0 1px 0 var(--line);
  }
  body.en-gallery-fix #splogo { position: absolute !important; top: 50% !important; transform: translateY(-50%); left: var(--gutter) !important; width: 200px; height: auto; }
  body.en-gallery-fix #spmenu_wrap { position: absolute !important; top: 0 !important; right: calc(var(--gutter) - 10px); height: var(--h-h); display: flex; align-items: center; }
  body.en-gallery-fix #spmenu { width: 44px; height: 44px; align-items: center; }
  body.en-gallery-fix #spmenu img { width: 28px; margin: 0 auto; }
  body.en-gallery-fix #top_button, body.en-gallery-fix #top_button.moved { right: calc(var(--gutter) + 44px); }
  body.en-gallery-fix .preview-language { right: calc(var(--gutter) + 44px + 204px); }
}
@media (max-width: 600px) {
  body.en-gallery-fix { --h-h: 56px; padding-top: 0 !important; }
  body.en-gallery-fix #top_button { display: none; }                 /* スマホは下部の固定予約バー（既存と同じ） */
  body.en-gallery-fix #splogo { left: 16px !important; width: min(200px, calc(100% - 150px)); }
  body.en-gallery-fix #spmenu_wrap { right: 6px; }
  body.en-gallery-fix .preview-language { position: fixed; top: 0; left: auto; right: 56px; height: var(--h-h); font-size: 11px; background: transparent; }
}

/* ---------- 下部の予約バー（スマホ）・フッター ---------- */
body.en-gallery-fix #sp_bottom_button { left: 14px; right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); width: auto; z-index: 100; }
body.en-gallery-fix #sp_bottom_button a {
  display: flex; justify-content: space-between; align-items: center; text-align: left; padding: 15px 20px; border: 0; background: rgba(38, 35, 31, .95); color: #fff;
  font-size: 14px; font-weight: 500; letter-spacing: .12em; line-height: 1.5; box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .5);
}
body.en-gallery-fix #sp_bottom_button a:after { content: "\2197"; color: var(--glow); }
body.en-gallery-fix > footer {
  float: none; clear: both; position: relative; z-index: 1; margin-top: 72px; padding: 56px var(--gutter) 40px; background: var(--paper-deep); color: var(--ink);
  border-top: 1px solid var(--line); font-size: 13px;
}
body.en-gallery-fix #footer_inner { max-width: 1040px; margin: 0 auto 0; padding: 0; background: transparent; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 32px 56px; }
body.en-gallery-fix #logo_footer { width: 96px; height: auto; margin: 0; filter: brightness(0); }
body.en-gallery-fix #footer_inner nav, body.en-gallery-fix #footer_inner nav.pc-only { display: flex; flex-wrap: wrap; gap: 8px 48px; margin-top: 0; }     /* 旧はスマホで非表示。他の下層と同じく常に表示 */
body.en-gallery-fix #footer_inner ul { float: none; margin: 0; padding: 0; list-style: none; }
body.en-gallery-fix #footer_inner li { margin: 0; }
body.en-gallery-fix #footer_inner li:empty { display: none; }
body.en-gallery-fix #footer_inner a { display: inline-block; padding: 7px 0; color: inherit; letter-spacing: .1em; text-decoration: none; }
body.en-gallery-fix #footer_inner a:hover { text-decoration: underline; text-underline-offset: 4px; }
body.en-gallery-fix #copy { max-width: 1040px; margin: 40px auto 0; font-size: 11px; color: var(--ink-soft); text-align: left; letter-spacing: .06em; }
@media (max-width: 600px) {
  body.en-gallery-fix > footer { margin-top: 48px; padding: 44px 20px calc(104px + env(safe-area-inset-bottom)); }
  body.en-gallery-fix #footer_inner nav, body.en-gallery-fix #footer_inner nav.pc-only { gap: 4px 32px; }
  body.en-gallery-fix #footer_inner a { padding: 11px 0; }
}

/* ---------- メニュー開閉（magnific-popup のまま見た目だけ。他の下層と同じ） ---------- */
body.en-gallery-fix .mfp-bg { background: var(--paper); }
body.en-gallery-fix .my-mfp-zoom-in.mfp-ready.mfp-bg { opacity: 1; }
body.en-gallery-fix .mfp-wrap { overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
body.en-gallery-fix .mfp-container { padding: 0; }
body.en-gallery-fix .mfp-container:before { display: none; }
body.en-gallery-fix .mfp-content { display: block; width: 100%; max-width: 560px; margin: 0 auto; vertical-align: top; }
body.en-gallery-fix .my-mfp-zoom-in .zoom-anim-dialog, body.en-gallery-fix .my-mfp-zoom-in.mfp-ready .zoom-anim-dialog, body.en-gallery-fix .my-mfp-zoom-in.mfp-removing .zoom-anim-dialog { -webkit-transform: none; transform: none; }
body.en-gallery-fix #zoom-menu { max-width: 560px; width: 100%; text-align: left; font-weight: 400; letter-spacing: .04em; padding: 0 var(--gutter) 40px; color: var(--ink); }
body.en-gallery-fix #zoom-menu nav { overflow: visible; }
body.en-gallery-fix #zoom-menu ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
body.en-gallery-fix #zoom-menu .vertical li, body.en-gallery-fix #zoom-menu .line li { display: block; float: none; width: auto; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
body.en-gallery-fix #zoom-menu .line li:empty { display: none; }
body.en-gallery-fix #zoom-menu nav a { display: flex; justify-content: space-between; align-items: center; padding: 17px 4px; color: var(--ink); text-decoration: none; font-family: var(--mincho); font-size: 19px; letter-spacing: .12em; line-height: 1.5; }
body.en-gallery-fix #zoom-menu nav a:after { content: "\2192"; font-family: var(--gothic); font-size: 14px; color: var(--green); }
body.en-gallery-fix #zoom-menu .line { margin-top: 24px; display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
body.en-gallery-fix #zoom-menu .line li a { font-size: 15px; padding: 14px 4px; }
body.en-gallery-fix #zoom-menu a.btn.btn_b { display: flex; justify-content: space-between; align-items: center; width: 100%; margin: 28px 0 0; padding: 16px 22px; border: 0; border-radius: 0; background: var(--ink); color: #fff; font-family: var(--gothic); font-size: 14px; font-weight: 500; letter-spacing: .12em; text-align: left; }
body.en-gallery-fix #zoom-menu a.btn.btn_b:after { content: "\2197"; color: var(--glow); }
body.en-gallery-fix #zoom-menu a.btn.btn_b:hover { background: var(--green); color: #fff; }
body.en-gallery-fix button.mfp-close { position: fixed; top: calc((var(--h-h) - 44px) / 2) !important; right: calc(var(--gutter) - 10px); width: 44px !important; height: 44px !important; padding: 0; opacity: 1; color: transparent; font-size: 0; line-height: 0; background: transparent; border: 0; }
body.en-gallery-fix button.mfp-close:before, body.en-gallery-fix button.mfp-close:after { content: ""; position: absolute; left: 11px; right: 11px; top: 21px; height: 1px; width: auto; background: var(--ink); border-radius: 0; transform-origin: center; }
body.en-gallery-fix button.mfp-close .close:before, body.en-gallery-fix button.mfp-close .close:after { display: none; }   /* 旧(span.closeの45px線)との二重の×を防ぐ */
body.en-gallery-fix button.mfp-close:before { transform: rotate(30deg); }
body.en-gallery-fix button.mfp-close:after { transform: rotate(-30deg); }
@media (max-width: 600px) { body.en-gallery-fix button.mfp-close { right: 6px; } }

/* ---------- ギャラリー本体：見出し・格子の周り（23点・順序・masonryのscriptは不変。タイルの大きさ・位置は既存のmasonryのまま） ---------- */
body.en-gallery-fix #single_page { padding-top: var(--h-h); }
body.en-gallery-fix .page_gallery .content_block { padding: 48px 0 0; background: transparent; }
body.en-gallery-fix .page_gallery h1.block_title { margin: 0 0 24px; font-size: clamp(26px, 3vw, 32px); letter-spacing: .14em; color: var(--ink); line-height: 1.5; }
body.en-gallery-fix .page_gallery .block_title:after { display: none; }
body.en-gallery-fix .page_gallery .block_title span { display: block; padding-top: 10px; font-family: Georgia, "Times New Roman", serif; font-weight: 400; font-size: 11px; letter-spacing: .3em; color: var(--ink-soft); }
body.en-gallery-fix .page_gallery h2 { margin: 0 auto 20px; padding-top: 12px; font-size: clamp(18px, 2vw, 22px); letter-spacing: .14em; text-align: center; color: var(--ink); }
body.en-gallery-fix .page_gallery .list_wrap { margin-bottom: 0; }
body.en-gallery-fix .page_gallery .list_wrap + h2, body.en-gallery-fix .page_gallery .list_wrap ~ h2 { margin-top: 56px; }   /* 2つ目の格子（旧東日本橋）の前に余白 */
body.en-gallery-fix .list_gallery .item a { display: block; line-height: 0; }
body.en-gallery-fix .list_gallery .item img { display: block; transition: opacity .3s; }
body.en-gallery-fix .list_gallery .item a:hover img { opacity: .92; }
body.en-gallery-fix .list_gallery .item a:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
@media (max-width: 600px) { body.en-gallery-fix .page_gallery .content_block { padding-top: 32px; } }
@media (prefers-reduced-motion: reduce) { body.en-gallery-fix *, body.en-gallery-fix *:before, body.en-gallery-fix *:after { transition: none !important; animation: none !important; } }

/* ===== 拡大表示の位置修復（gallery-lightbox-v1.css の水平中央修正版をそのまま内包。実画面確認済み）===== */
body.en-gallery-fix .list_gallery .item img { display: block; }
body.en-gallery-fix .vbox-container { display: flex; }
body.en-gallery-fix .vbox-content:not(.swipe-left):not(.swipe-right) { margin: auto !important; }
body.en-gallery-fix .vbox-content { flex: 0 0 auto; max-width: 100%; }
body.en-gallery-fix .vbox-content img.figlio { display: block; margin-left: auto; margin-right: auto; width: auto !important; height: auto !important; max-width: calc(100vw - 48px); max-height: calc(100vh - 200px); max-height: calc(100dvh - 200px); object-fit: contain; }
@media (max-width: 767px) {
  body.en-gallery-fix .vbox-content img.figlio { max-width: calc(100vw - 32px); max-height: calc(100vh - 180px); max-height: calc(100dvh - 180px); }
}

/* EN gallery 統一版の追記案（未適用）：gallery-aligned-v1.css の末尾に追記。HTML・script・本文は不変。
   ■ 必須：スマホでスクロールすると、PC用の予約ボタンが上のヘッダーに現れて言語切替に重なる。
   原因：旧のscriptがスクロールで `#top_button` に `.moved` を付ける。統一CSSの基本規則 `#top_button.moved { display:flex }`（詳細度 1,2,1）が、
         600px以下の `#top_button { display:none }`（1,1,1）と旧の `.pc-only{display:none}` に勝つため、スクロール後だけ表示される（Home時は非表示）。
   対策：600px以下では `.moved` 付きも含めて非表示にする（スマホは下部の固定予約バーが担当＝既存どおり）。601px以上は変更しない。 */
@media (max-width: 600px) {
  body.en-gallery-fix #top_button, body.en-gallery-fix #top_button.moved { display: none !important; }
}
/* ■ 任意：ハンバーガーのメニュー内「FAQ／Company」の並び。HTMLの空のli（FAQ・空・空・Company）が格子の空きマスになり、FAQが上段左、Companyが下段右に離れる。
   空でないliだけを表示して「FAQ｜Company」を横に並べる（:has対応ブラウザ。他のEN下層も同じHTMLのため同様の見え方）。 */
body.en-gallery-fix #zoom-menu .line li:not(:has(a)) { display: none; }
