/*
Theme Name: maikok2026
Theme URI: https://maikok.com/
Author: LEIN Inc. (Yoichi Kimura)
Description: Maiko KOBAYASHI 公式サイト 2026年リニューアル用テーマ。デザインガイドライン（無彩色・Helvetica Neue+ヒラギノ角ゴ）準拠。
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: maikok2026
*/

/* Maiko KOBAYASHI — Design v1 (guideline-based, inherits maikok.com) */
* { margin:0; padding:0; box-sizing:border-box; }
:root{
  --font-sans:'Helvetica Neue',Helvetica,Arial,Verdana,'ヒラギノ角ゴ ProN W3','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,'ＭＳ Ｐゴシック','MS PGothic','Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  /* 展示タイトル用: 日本語を Hiragino Sans（W1〜W9 可変）にして weight 500 で欧文 Helvetica Neue Medium と太さを揃える 2026-11-02 */
  --font-title:'Helvetica Neue',Helvetica,Arial,'Hiragino Sans','ヒラギノ角ゴシック','Hiragino Kaku Gothic ProN','メイリオ',Meiryo,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  --c-black:#000; --c-ink:#2b2b2b; --c-text:#333; --c-body:#3a3a3a; --c-muted:#555; --c-hover:#aaa;   /* 2026-10-22 本文を一段濃く */
  --c-sep:#bdbdbd; --c-rule:#8c8c8c; --c-rule-light:#d2d2d2; --c-rule-faint:#e4e4e4;
  --c-field:#f5f5f5; --c-current:#f2f2f2; --c-ghost:#eaeaea; --c-white:#fff;
  --fs-logo:36px; --lh-logo:36px; --ls-logo:.01em;
  --fs-nav:14px; --ls-nav:.07em;
  --fs-page:21px; --lh-page:29px;
  --fs-h2:19px; --lh-h2:22px; --ls-h2:.02em;
  --fs-h3:16px; --lh-h3:22px;
  --fs-body:15px; --lh-body:26px;   /* 本文 16→15px（2026-11-02 指示「本文級数 1 ポイント下げ」）。全ページ共通トークン */
  --fs-meta:14px; --lh-meta:22px;
  --fs-hdr-meta:13px;   /* ヘッダー内の小文字（言語切替・かな表記）は据え置き */
  --fs-ghost:45px;
  --w-max:1200px; --pad-x:30px; --w-img:650px;
  --sp-header-top:55px; --sp-header-bottom:50px; --sp-title-bottom:40px; --sp-section:30px; --sp-entry:50px; --sp-content-bottom:75px;
  --frame:5px;
  --rule-header:2px solid var(--c-ink);
  --rule-strong:1px solid var(--c-rule);
  --rule-light:1px solid var(--c-rule-light);
  --rule-faint:1px solid var(--c-rule-faint);
}
html{ overflow-x:clip; }   /* hidden だと position:sticky が効かなくなるため clip（スクロールコンテナを作らない） */
body{
  background:var(--c-white); color:var(--c-text);
  font-family:var(--font-sans); font-size:var(--fs-body); line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
a{ color:var(--c-body); text-decoration:none; transition:color .2s; }
a:hover{ color:var(--c-muted); }
img{ max-width:100%; display:block; }
.wf-note{ display:none; }

/* ===== frame lines (inherited signature) ===== */
#lines i{ position:fixed; background:var(--c-black); z-index:1000; display:block; }
#lines .top{ top:0; left:0; width:100%; height:var(--frame); }
#lines .bottom{ bottom:0; left:0; width:100%; height:var(--frame); }
#lines .left{ top:0; left:0; width:var(--frame); height:100%; }
#lines .right{ top:0; right:0; width:var(--frame); height:100%; }

/* ===== motion ===== */
/* ページ遷移の反転演出・黒背景（#veil）・作品フラッシュは 2026-10-02 に廃止 */
.rv{ opacity:0; transform:translateY(18px); transition:opacity .8s ease, transform .8s ease; }
.rv.in{ opacity:1; transform:none; }
.mk{ clip-path:inset(0 100% 0 0); -webkit-clip-path:inset(0 100% 0 0); }
.mk.in{ animation:maskReveal 1.2s cubic-bezier(.4,0,.2,1) forwards; }
@media (prefers-reduced-motion: reduce){ .rv{ opacity:1; transform:none; transition:none; } .mk{ clip-path:none; -webkit-clip-path:none; } }

/* ===== header ===== */
header{ max-width:var(--w-max); margin:0 auto var(--sp-header-bottom); padding:var(--sp-header-top) var(--pad-x) 0; }
.header-utility{
  display:flex; justify-content:flex-end; align-items:center; gap:22px;
  font-size:var(--fs-hdr-meta); line-height:20px; color:var(--c-muted); letter-spacing:.08em; margin-bottom:6px;
}
.lang-switch span{ padding:0 6px; cursor:pointer; color:var(--c-muted); }
.lang-switch span + span{ border-left:1px solid var(--c-sep); }
.lang-switch .on{ color:var(--c-ink); }
.sns{ display:flex; gap:10px; align-items:center; }
.sns a{ display:flex; align-items:center; justify-content:center; }
.sns svg{ width:16px; height:16px; fill:var(--c-ink); transition:fill .2s; }
.sns a:hover svg{ fill:var(--c-muted); }
.header-main{
  display:flex; justify-content:space-between; align-items:flex-end; gap:30px;
  padding-bottom:22px; border-bottom:var(--rule-header);
}
.site-title{ font-size:var(--fs-logo); line-height:var(--lh-logo); letter-spacing:var(--ls-logo); font-weight:500; white-space:nowrap; }
.site-title a{ color:var(--c-black); transition:color .3s; }
.site-title a:hover{ color:var(--c-hover); }
.site-title-kana{ font-size:var(--fs-hdr-meta); line-height:20px; letter-spacing:.1em; color:var(--c-ink); font-weight:700; margin-top:6px; }
nav.global{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:0 10px; padding-bottom:4px; }
nav.global a{
  display:block; padding:4px 10px; font-size:var(--fs-nav); line-height:20px; letter-spacing:var(--ls-nav);
  text-transform:uppercase; color:var(--c-ink); white-space:nowrap; font-weight:600; }
nav.global a:hover, nav.global a.active{ background:var(--c-current); color:var(--c-ink); }
/* 準備中メニュー（Merch/Note）: ホバーで「Coming Soon」に切替・クリック不可 2026-11-02 */
nav.global .nav-soon{ display:inline-grid; grid-template-columns:minmax(0,1fr); box-sizing:content-box; width:var(--w-l,auto); padding:4px 10px; font-size:var(--fs-nav); line-height:20px; letter-spacing:var(--ls-nav); text-transform:uppercase; font-weight:600; cursor:default; color:var(--c-muted); transition:width .25s ease; }
nav.global .nav-soon:hover{ width:var(--w-s,auto); }
nav.global .nav-soon > span{ grid-area:1/1; justify-self:center; width:max-content; white-space:nowrap; transition:opacity .2s; }
nav.global .nav-soon .s{ opacity:0; }
nav.global .nav-soon:hover .l{ opacity:0; }
nav.global .nav-soon:hover .s{ opacity:1; }
/* ハンバーガー（SP のみ表示。2026-10-29） */
.menu-btn{ display:none; width:44px; height:44px; padding:10px; margin:-10px -10px -10px 0; background:none; border:0; cursor:pointer; position:relative; flex:none; }
.menu-btn span{ display:block; width:24px; height:2px; background:var(--c-black); margin:0 auto; transition:transform .25s ease, opacity .2s ease; }
.menu-btn span + span{ margin-top:6px; }
.menu-btn[aria-expanded="true"] span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.menu-btn[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.menu-btn[aria-expanded="true"] span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
.sp-drawer{ display:none; }

/* ===== layout ===== */
main{ max-width:var(--w-max); margin:0 auto; padding:0 var(--pad-x) var(--sp-content-bottom); }
.page-head{ display:flex; align-items:baseline; gap:16px; padding-bottom:10px; border-bottom:var(--rule-light); margin-bottom:var(--sp-title-bottom); }
.page-title{ font-size:var(--fs-page); line-height:var(--lh-page); font-style:italic; font-weight:600; text-transform:uppercase; color:var(--c-ink); }
.page-lead{ font-size:var(--fs-meta); line-height:21px; color:var(--c-body); }
section{ margin-bottom:var(--sp-entry); }
h2.sec{ font-size:var(--fs-h2); line-height:var(--lh-h2); letter-spacing:var(--ls-h2); font-weight:700; color:var(--c-ink); margin-bottom:30px; }
h3.subsec{ font-size:var(--fs-h3); line-height:var(--lh-h3); letter-spacing:.02em; font-weight:700; color:var(--c-ink); margin:26px 0 15px; }
p{ padding-left:3px; }
.content-end{ border-bottom:var(--rule-strong); margin-bottom:var(--sp-content-bottom); }

/* in-page anchor nav & filters: plain text with "/" separators (inherited) */
.anchor-nav, .exh-filter, .work-filter{
  display:flex; flex-wrap:wrap; align-items:center; font-size:var(--fs-meta); line-height:20px; color:var(--c-muted); margin:-26px 0 30px;
}
.anchor-nav a, .exh-filter span, .work-filter span{ color:var(--c-body); cursor:pointer; padding:0 2px; font-weight:500; }
.anchor-nav a:hover, .exh-filter span:hover, .work-filter span:hover{ color:var(--c-ink); }
.anchor-nav a + a::before, .exh-filter span + span::before, .work-filter span + span::before{ content:"/"; color:var(--c-sep); padding:0 8px; cursor:default; }
.exh-filter .on, .work-filter .on{ color:var(--c-ink); font-weight:700; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:6px; }
.exh-filter span:not(.on), .work-filter span:not(.on){ color:var(--c-muted); }
.exh-place-filter select:not([data-all]){ border-color:var(--c-ink); }
.exh-place-filter option:disabled{ color:#bbb; }
.work-filter span.mark{ text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--c-ink); }
.exh-filter.past-filter{ margin:0 0 22px; }
.work-filter.year-filter{ margin:-22px 0 30px; }
.year-label.hide, .grid.hide{ display:none; }
.past-list li.hide, .exh-card.hide{ display:none; }
.type-tag{
  display:inline-block; font-size:9px; line-height:16px; letter-spacing:.12em; text-transform:uppercase;   /* 10→9px 2026-11-02 */
  border:1px solid var(--c-ink); color:var(--c-ink); padding:0 6px; margin-right:12px; vertical-align:2px;
}
.past-list .type-tag{ width:68px; text-align:center; padding:0; }   /* 最長の PROJECT（9px で 63px）に合わせて縮小 2026-11-02 */

/* ===== TOP (fullscreen artwork, header over it) ===== */
body.top{ min-height:100vh; }
body.top header{ position:relative; z-index:2; margin-bottom:0; background:var(--c-white); box-shadow:0 0 0 100vmax var(--c-white); clip-path:inset(0 -100vmax); padding-bottom:0; }
body.top .header-main{ padding-bottom:22px; border-bottom:none; }
body.top .header-main{ border-bottom:none; }
.top-stage{ position:fixed; inset:0; z-index:0; overflow:hidden; }
.top-stage img{ width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(0) blur(0); transform:scale(1); transition:filter 1.2s ease, transform 1.2s ease; will-change:filter; }
.top-stage img.mono{ filter:grayscale(1) blur(0); }
.top-stage img.mono.blur{ filter:grayscale(1) blur(24px); transform:scale(1.06); }
.top-statement{
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(960px,90%); z-index:1;
  text-align:center; font-size:var(--fs-ghost); line-height:140%; font-weight:700; letter-spacing:-1px; color:var(--c-ghost);
  pointer-events:none;
}
/* ヒーロー英文: 出現時に左→右へマスク（ワイプ）で表示（clip-path: Safari対応） */
.top-statement{ transition:opacity 1.2s ease; }
.top-statement.fade-out{ opacity:0; }
/* 出現は JS（WAAPI）が駆動する。初期状態は隠しておく */
.top-statement .mask-text{ display:inline-block; clip-path:inset(0 100% 0 0); -webkit-clip-path:inset(0 100% 0 0); }
@keyframes maskReveal{ to{ clip-path:inset(0 0 0 0); -webkit-clip-path:inset(0 0 0 0); } }
.topics{ position:fixed; right:calc(var(--pad-x) + var(--frame)); bottom:calc(30px + var(--frame)); z-index:2; }
.topics-box{ background:var(--c-white); border:1px solid var(--c-ink); padding:14px 16px; width:300px; font-size:var(--fs-meta); line-height:20px; color:var(--c-text); }
.topics-box b{ display:block; text-align:right; font-weight:400; color:var(--c-ink); margin-bottom:4px; letter-spacing:.08em; }
.topics-box .t-title{ display:block; font-weight:700; color:var(--c-ink); }
.topics-box a{ color:var(--c-text); }
.topics-box a:hover .t-title{ color:var(--c-muted); }
body.top footer{ position:fixed; left:0; right:0; bottom:var(--frame); z-index:2; margin:0; }
body.top .footer-inner{ background:transparent; padding-bottom:8px; }

/* ===== WORK ===== */
.work-feature{ margin:10px 0 60px; cursor:pointer; text-align:center; }
.work-feature.hide{ display:none; }
.work-feature img{ margin:0 auto; max-height:72vh; width:auto; max-width:100%; display:block; opacity:0; transition:opacity 1.2s ease; }
.work-feature img.loaded{ opacity:1; }
.work-feature figcaption{ font-size:var(--fs-meta); line-height:20px; color:var(--c-text); margin-top:14px; }
.work-feature figcaption b{ display:block; font-size:var(--fs-h2); line-height:28px; color:var(--c-ink); font-weight:700; }
.work-feature figcaption span{ display:block; color:var(--c-muted); }
.work-feature:hover img{ opacity:.85; }
.year-label{ font-size:var(--fs-h2); line-height:var(--lh-h2); font-weight:700; letter-spacing:var(--ls-h2); color:var(--c-ink); margin:36px 0 18px; }
.grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:20px 16px; }   /* 2026-10-22 5→6カラム */
.grid figure{ border:none; }
.grid figure.hide{ display:none; }
.grid img{ width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; background:var(--c-field); }
.grid figcaption{ display:none; }
.grid figure{ cursor:pointer; }
.grid figure:hover img{ opacity:.7; transition:opacity .2s; }
/* lightbox */
.lb{ position:fixed; inset:0; z-index:2000; background:rgba(255,255,255,.96); display:none; align-items:center; justify-content:center; padding:60px var(--pad-x); }
.lb.open{ display:flex; }
.lb-inner{ max-width:980px; width:100%; text-align:center; }
.lb-inner img{ margin:0 auto; max-height:70vh; width:auto; max-width:100%; }
.lb-cap{ font-size:var(--fs-body); line-height:24px; color:var(--c-text); margin-top:18px; }
.lb-cap b{ display:block; font-size:var(--fs-h2); line-height:28px; color:var(--c-ink); font-weight:700; }
.lb-close{ position:absolute; top:24px; right:calc(var(--pad-x) + 4px); font-size:var(--fs-meta); letter-spacing:.12em; color:var(--c-ink); cursor:pointer; text-transform:uppercase; }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); font-size:20px; color:var(--c-ink); cursor:pointer; padding:20px; user-select:none; }
.lb-prev{ left:var(--pad-x); } .lb-next{ right:var(--pad-x); }
.grid .book-photo{ aspect-ratio:1/1; }

/* ===== EXHIBITION ===== */
.exh-card{ display:grid; grid-template-columns:480px 1fr; gap:40px; padding:0 0 30px; margin-bottom:30px; border-bottom:none; }   /* 2026-10-22 下の横線なし */   /* 2026-10-22 DM を 1.5 倍（320→480px） */
@media (max-width:1023px){ .exh-card{ grid-template-columns:360px 1fr; gap:30px; } }
.exh-card .dm{ background:var(--c-field); aspect-ratio:3/4; display:flex; align-items:center; justify-content:center; color:var(--c-muted); font-size:var(--fs-meta); text-align:center; line-height:20px; }
.exh-card .dm img{ width:100%; height:100%; object-fit:cover; }
.exh-card h3{ font-size:var(--fs-h2); line-height:var(--lh-h2); letter-spacing:var(--ls-h2); font-weight:500; color:var(--c-ink); margin-bottom:8px; }   /* 700→500 2026-11-02 */
.exh-card .meta{ font-size:var(--fs-meta); line-height:var(--lh-meta); color:var(--c-text); margin-bottom:14px; }
.exh-card p{ margin-bottom:16px; }
/* 本文（エディタで入力されたリッチテキスト）の体裁 */
.exh-card ul, .exh-card ol{ margin:0 0 16px; padding-left:1.4em; font-size:var(--fs-body); line-height:var(--lh-body); color:var(--c-text); }
.exh-card ul{ list-style:disc; }
.exh-card ol{ list-style:decimal; }
.exh-card li{ margin-bottom:4px; }
.exh-card li::marker{ color:var(--c-muted); }
.exh-card img{ height:auto; margin:0 0 16px; }
.exh-card figure{ margin:0 0 16px; }
.exh-card figcaption{ font-size:var(--fs-meta); line-height:var(--lh-meta); color:var(--c-muted); margin-top:6px; }
.exh-card a:not(.btn){ color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; }
.exh-card h4, .exh-card h5{ font-size:var(--fs-h3); line-height:var(--lh-h3); font-weight:700; color:var(--c-ink); margin:18px 0 6px; }
.exh-card table{ width:100%; border-collapse:collapse; font-size:var(--fs-meta); margin:0 0 16px; }
.exh-card th, .exh-card td{ border-bottom:var(--rule-faint); padding:8px 6px; text-align:left; vertical-align:top; }
.btn{
  display:inline-block; border:1px solid var(--c-ink); background:var(--c-white); color:var(--c-ink);
  padding:9px 26px; font-size:var(--fs-meta); line-height:20px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; font-family:inherit;
}
.btn:hover{ background:var(--c-ink); color:var(--c-white); }
.btn.fill{ background:var(--c-ink); color:var(--c-white); }
.btn.fill:hover{ background:var(--c-black); }
.past-list{ list-style:none; }
/* 地域・国（薄グレーボックス・黒文字 2026-11-02 指示。以前は黒地白文字）── 高さは .type-tag に揃える */
.place-tag{
  display:inline-block; font-size:8px; line-height:16px; letter-spacing:.08em;   /* 10→9→8px 2026-11-02 */
  border:1px solid var(--c-ghost); background:var(--c-ghost); color:var(--c-ink);
  padding:0 6px; margin-right:12px; vertical-align:2px; white-space:nowrap;
}
.past-list .place-tag{ width:98px; text-align:center; padding:0; box-sizing:border-box; }   /* 最長 Newcastle, England（8px で 97px）に合わせる 2026-11-02 */
/* 地域・国の絞り込み（プルダウン） */
.exh-place-filter{ max-width:var(--w-max); margin:-6px 0 26px; display:flex; align-items:center; gap:10px; }
.exh-place-filter label{ font-size:var(--fs-meta); letter-spacing:.06em; color:var(--c-ink); font-weight:600; }
.exh-place-filter select{ font-family:inherit; font-size:var(--fs-meta); color:var(--c-text); background:var(--c-white); border:1px solid var(--c-rule); padding:6px 10px; min-width:200px; }
.past-list li{ display:flex; align-items:baseline; padding:5px 0 25px; font-size:var(--fs-h2); line-height:var(--lh-h2); letter-spacing:var(--ls-h2); font-weight:500; color:var(--c-ink); }   /* タイトルの太さを抑える（700→500）2026-11-02 */
.past-list .y{ font-weight:700; }
.past-list .y{ display:inline-block; width:52px; flex:0 0 52px; }
/* 地域・カテゴリーは縦2段。タイトルは残り幅で折り返す（2行目以降もタイトルの左端に揃う） */
.past-list .tags{ display:flex; flex-direction:row; align-items:center; gap:12px; flex:0 0 auto; margin-right:16px; position:relative; top:-1px; }
.past-list .tags .place-tag, .past-list .tags .type-tag{ margin-right:0; }
.past-list .title{ flex:1 1 auto; min-width:0; }

/* ===== MERCH ===== */
.merch-item{ display:grid; grid-template-columns:minmax(0,1fr) 460px; gap:60px; align-items:start; }   /* 2026-10-22 写真を広く・右ブロックを狭く */
.merch-item > div:first-child{ min-width:0; }
.book-photo{ background:var(--c-field); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--c-muted); font-size:var(--fs-meta); line-height:20px; margin:0; }   /* 2026-10-29 書影は 4:3 撮影 */
.book-photo img, .book-thumbs img{ display:block; width:100%; height:100%; object-fit:cover; margin:0; }
.book-photo[data-i], .book-thumbs figure{ cursor:pointer; }
.book-photo img{ transition:opacity .25s ease; }
.book-photo img.swap{ opacity:0; }
.book-thumbs{ display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-top:10px; }   /* 2026-10-29 10 点 = 5 列 × 2 段 */
.book-thumbs figure{ background:var(--c-field); aspect-ratio:4/3; margin:0; overflow:hidden; position:relative; }
.book-thumbs img{ transition:opacity .3s ease; opacity:.55; }
.book-thumbs figure:hover img, .book-thumbs figure.on img{ opacity:1; }
.book-thumbs figure.on::after{ content:""; position:absolute; inset:0; border:2px solid var(--c-ink); pointer-events:none; }
.merch-item h3{ font-size:24px; line-height:32px; letter-spacing:var(--ls-h2); font-weight:700; color:var(--c-ink); margin-bottom:18px; }   /* 2026-10-29 英題行削除に伴い下余白 8→18 */   /* 2026-10-22 商品タイトルを大きく（19→24px） */
@media (max-width:759px){ .merch-item h3{ font-size:21px; line-height:29px; } }
.merch-item .en-title{ font-size:var(--fs-meta); color:var(--c-text); margin-bottom:18px; }
.spec{ list-style:none; border-top:var(--rule-faint); margin:18px 0; }
.spec li{ border-bottom:var(--rule-faint); padding:7px 2px; display:flex; font-size:var(--fs-meta); line-height:var(--lh-meta); }   /* 2026-10-22 仕様リストは一段小さく */
.spec li b{ width:90px; font-weight:700; color:var(--c-ink); flex-shrink:0; }
.spec li span{ color:var(--c-text); }
.price{ font-size:var(--fs-h2); line-height:28px; color:var(--c-ink); margin:16px 0 14px; }
.qty{ font-size:var(--fs-body); margin:0 0 16px; }
.qty select{ border:none; background:var(--c-field); padding:8px 10px; font:14px/20px var(--font-sans); color:var(--c-body); margin:0 8px; }
details.ship{ margin:14px 0 18px; font-size:var(--fs-meta); }
details.ship summary{ cursor:pointer; color:var(--c-body); text-decoration:underline; }
details.ship summary:hover{ color:var(--c-muted); }
.ship-table{ width:100%; border-collapse:collapse; font-size:var(--fs-meta); margin:10px 0 4px; }
.ship-table th,.ship-table td{ border-bottom:var(--rule-faint); padding:6px 8px; text-align:right; }
.ship-table th:first-child,.ship-table td:first-child{ text-align:left; }
.ship-table th{ font-weight:700; color:var(--c-ink); border-bottom:var(--rule-strong); }

/* ===== NOTE ===== */
.note-list{ list-style:none; max-width:660px; }
.note-list li{ border-bottom:var(--rule-light); padding:0 0 18px; margin-bottom:var(--sp-entry); }
.note-list .date{ font-size:var(--fs-meta); line-height:var(--lh-meta); color:var(--c-text); display:block; margin-top:8px; order:2; }
.note-list a{ display:block; font-size:var(--fs-h2); line-height:var(--lh-h2); letter-spacing:var(--ls-h2); font-weight:700; color:var(--c-ink); }
.note-list a:hover{ color:var(--c-muted); }
.note-list li{ display:flex; flex-direction:column; }

/* ===== CONTACT ===== */
form.wf{ max-width:666px; }
.field{ margin-bottom:22px; }
.field label{ display:block; font-size:var(--fs-body); margin-bottom:5px; color:var(--c-text); }
.field .req{ font-size:10px; color:var(--c-muted); margin-left:8px; }
.field input, .field select, .field textarea{
  width:100%; border:none; background:var(--c-field); padding:8px; font:14px/20px var(--font-sans); color:var(--c-body);
}
.field input:focus, .field textarea:focus, .field select:focus{ outline:none; background:var(--c-ink); color:var(--c-sep); }
.field textarea{ height:170px; }
.submit-wrap{ margin-top:30px; }
.submit-wrap .btn{ padding:9px 40px; }

/* ===== ABOUT ===== */
.about-block p{ margin-bottom:14px; }
.about-block .en{ color:var(--c-text); }
.ref-list{ list-style:none; }
.ref-list li{ padding:6px 3px; }
.ref-list .y{ display:inline-block; width:52px; font-weight:700; color:var(--c-ink); }

/* ===== footer ===== */
footer{ max-width:var(--w-max); margin:40px auto 0; padding:0 var(--pad-x) 40px; }
.footer-inner{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 24px; font-size:var(--fs-meta); line-height:20px; color:var(--c-muted); }
.copyright{ padding:0; }
.footer-nav{ display:flex; flex-wrap:wrap; gap:0 18px; }
.footer-nav a{ color:var(--c-muted); letter-spacing:.04em; }
.footer-nav a:hover{ color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; }
/* 同意チェック（Contact・2026-10-29） */
.field.agree label{ display:flex; align-items:flex-start; gap:10px; cursor:pointer; }
.field.agree input[type="checkbox"]{ appearance:none; -webkit-appearance:none; flex:none; width:18px; height:18px; margin:2px 0 0; border:1px solid var(--c-ink); background:var(--c-white); padding:0; cursor:pointer; position:relative; }
.field.agree input[type="checkbox"]:checked{ background:var(--c-ink); }
.field.agree input[type="checkbox"]:checked::after{ content:""; position:absolute; left:5px; top:1px; width:5px; height:10px; border:solid var(--c-white); border-width:0 2px 2px 0; transform:rotate(45deg); }
.field.agree input[type="checkbox"]:focus{ outline:none; box-shadow:0 0 0 2px var(--c-current); }
.field.agree a{ color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; }
/* 特定商取引法の表（2026-10-29） */
.entry table.legal{ width:100%; border-collapse:collapse; margin:0 0 24px; font-size:var(--fs-body); line-height:var(--lh-body); }
.entry table.legal th, .entry table.legal td{ padding:12px 0; border-bottom:1px solid var(--c-rule-faint); text-align:left; vertical-align:top; }
.entry table.legal th{ width:180px; font-weight:700; color:var(--c-ink); padding-right:20px; }
@media (max-width:759px){ .entry table.legal th, .entry table.legal td{ display:block; width:auto; padding:0; border:0; } .entry table.legal th{ padding-top:14px; } .entry table.legal td{ padding:4px 0 14px; border-bottom:1px solid var(--c-rule-faint); } }
.ai-note{ padding:0; color:var(--c-muted); }

/* ===== responsive ===== */
@media (max-width:1023px){
  .grid{ grid-template-columns:repeat(4,1fr); }   /* タブレットは 4 */
  .merch-item{ grid-template-columns:minmax(0,1fr) 380px; gap:30px; }
  .header-main{ flex-direction:column; align-items:flex-start; gap:18px; }
  nav.global{ justify-content:flex-start; margin-left:-10px; }
}
@media (max-width:759px){
  :root{ --fs-logo:24px; --lh-logo:28px; --pad-x:20px; --sp-header-top:30px; --frame:4px; --fs-ghost:26px; --fs-nav:13px; --fs-page:19px; --fs-h2:17px; --lh-h2:24px; --sp-header-bottom:36px; --sp-title-bottom:30px; --sp-entry:36px; --sp-content-bottom:50px; }
  /* SP ヘッダー（2026-10-29）: 追従＋ハンバーガー。言語切替・SNS・ナビはドロワーへ */
  :root{ --sp-header-top:22px; }
  /* 2026-11-02 指示: SP はタイトル・白帯はスクロールで消え、ハンバーガーだけ画面に残る（sticky 廃止・ボタンを fixed に） */
  header, body.top header{ position:relative; z-index:900; background:var(--c-white); margin-bottom:var(--sp-header-bottom); }
  body.top header{ margin-bottom:0; }
  .header-utility, nav.global{ display:none; }
  .site-title-kana{ font-size:11px; margin-top:4px; }
  .header-main, body.top .header-main{ flex-direction:row; align-items:center; justify-content:space-between; padding-bottom:16px; gap:14px; }
  .menu-btn{ display:block; position:fixed; top:var(--btn-top,24px); right:var(--pad-x); z-index:950; margin:0; background:var(--c-white); }   /* 位置は JS がロゴ中央に合わせて --btn-top を設定 */
  .sp-drawer{ position:fixed; left:0; right:0; top:0; bottom:0; z-index:890; background:var(--c-white); display:none; flex-direction:column; justify-content:flex-start; padding:calc(var(--hdr-h,84px) + 10px) var(--pad-x) 40px; overflow-y:auto; -webkit-overflow-scrolling:touch; }   /* 全画面。ヘッダー分は padding で空け、スクロール 0 ではヘッダー（z 900）が上に見える */
  .sp-drawer.open{ display:flex; }
  .sp-nav{ display:flex; flex-direction:column; }
  .sp-nav a{ display:block; padding:18px 0; border-bottom:1px solid var(--c-rule-light); font-size:15px; line-height:20px; letter-spacing:var(--ls-nav); text-transform:uppercase; font-weight:600; color:var(--c-ink); }
  .sp-nav a.active{ color:var(--c-muted); }
  .sp-nav .nav-soon{ display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-bottom:1px solid var(--c-rule-light); font-size:15px; line-height:20px; letter-spacing:var(--ls-nav); text-transform:uppercase; font-weight:600; color:var(--c-muted); }
  .sp-nav .nav-soon .s{ font-size:11px; font-weight:400; letter-spacing:.1em; }
  .sp-drawer-foot{ display:flex; align-items:center; justify-content:flex-start; margin-top:22px;   /* Instagram は CONTACT の直下・左寄せ（2026-11-02 指示） */ font-size:var(--fs-hdr-meta); line-height:20px; letter-spacing:.08em; color:var(--c-muted); }
  .sp-drawer .lang-switch span:first-child{ padding-left:0; }
  .sp-drawer .sns svg{ width:20px; height:20px; }
  body.menu-open{ overflow:hidden; }
  .page-head{ flex-direction:column; gap:2px; }
  .anchor-nav, .exh-filter, .work-filter{ margin:-14px 0 24px; }
  .anchor-nav{ row-gap:10px; }   /* SP で 2 行に折り返すときの行間（2026-11-02 指示「少し詰まっているので少しあけ」） */
  .top-statement{ top:auto; bottom:250px; transform:translateX(-50%); text-align:left; }
  .topics{ left:calc(var(--pad-x) + var(--frame)); right:calc(var(--pad-x) + var(--frame)); bottom:calc(64px + var(--frame)); }
  body.top .footer-inner{ background:transparent; padding:10px var(--pad-x) 12px; }   /* TOP の SP フッター白ボックスを撤去（2026-11-02 指示）。文字は PC 同様そのまま画像上に */
  .topics-box{ width:100%; }
  .lb{ padding:60px 20px; } .lb-nav{ padding:10px; }
  .grid{ grid-template-columns:repeat(3,1fr); gap:12px 10px; }   /* SP は 3 */
  .exh-card{ grid-template-columns:1fr; gap:18px; }
  .merch-item{ grid-template-columns:1fr; gap:28px; }
  .book-thumbs{ gap:6px; margin-top:6px; }
  .past-list li{ padding:4px 0 20px; }
  /* SP の Past リスト（2026-10-29 指示）: 年は単独行、国・種別タグは左頭から、タイトルは次行 */
  .past-list .y{ display:block; width:auto; margin:0 0 8px; flex:none; }
  .past-list li.same-year .y{ display:none; }
  .past-list .type-tag{ width:auto; padding:0 6px; }
  .past-list .place-tag{ min-width:0; padding:0 6px; }
  .past-list .tags{ display:flex; gap:8px; margin-right:0; top:0; }
  .past-list li{ display:block; }
  .past-list li .title{ display:block; margin-top:6px; }
  .btn{ display:block; width:100%; text-align:center; line-height:26px; }
  .ship-table th:nth-child(n+3), .ship-table td:nth-child(n+3){ display:none; }
  .field input, .field select, .field textarea{ font-size:16px; padding:11px 10px; }
  .footer-inner{ flex-direction:column; align-items:flex-start; gap:8px; }
}

/* ===== maikok2026 追加分（WordPress 化で新規に使うクラス） ===== */
.empty{ max-width:var(--w-max); margin:20px auto 60px; padding:0 var(--pad-x); font-size:var(--fs-body); color:var(--c-muted); }
.pager{ max-width:var(--w-max); margin:40px auto 0; padding:0 var(--pad-x); display:flex; gap:14px; justify-content:center; font-size:var(--fs-meta); letter-spacing:.06em; }
.pager a, .pager .current{ color:var(--c-text); text-decoration:none; }
.pager .current{ text-decoration:underline; text-underline-offset:4px; color:var(--c-ink); }
.entry{ max-width:760px; margin:0 0 40px; padding:0; font-size:var(--fs-body); line-height:var(--lh-body); color:var(--c-text); }   /* 左寄せ（2026-10-22） */
.entry p{ margin:0 0 18px; }
.entry img{ height:auto; }
.entry-thumb, .entry-art{ margin:0 0 24px; text-align:left; }
.entry-art img{ max-height:72vh; width:auto; max-width:100%; }
.coming{ font-size:var(--fs-meta); letter-spacing:.06em; color:var(--c-muted); margin:0 0 10px; }
/* Coming Soon ブロック（Merch 販売停止・Note 準備中）2026-11-02 */
.coming-soon{ border:1px solid var(--c-ink); padding:22px 24px; margin:28px 0 0; }
.coming-soon b{ display:block; font-size:var(--fs-h2); letter-spacing:.14em; text-transform:uppercase; color:var(--c-ink); margin-bottom:8px; }
.coming-soon p{ margin:0; font-size:var(--fs-body); line-height:24px; color:var(--c-text); }
main > .coming-soon{ max-width:560px; margin:10px 0 40px; }
.note-sm{ font-size:13.5px; line-height:20px; color:var(--c-text); }
/* contact form */
.form-msg{ max-width:560px; margin:0 auto 24px; padding:14px 16px; font-size:var(--fs-body); line-height:22px; border:1px solid var(--c-rule-light); }
.form-msg.ok{ border-color:var(--c-ink); color:var(--c-ink); }
.form-msg.ng{ border-color:#b00; color:#b00; }
.form-msg p{ margin:0 0 4px; }
.form-msg p:last-child{ margin:0; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* Merch: ご購入特典 */
.merch-bonus{ border:1px solid var(--c-ink); padding:14px 16px; margin:0 0 20px; }
.merch-bonus b{ display:block; font-size:var(--fs-meta); letter-spacing:.08em; color:var(--c-ink); margin-bottom:6px; }
.merch-bonus p{ margin:0; font-size:var(--fs-body); line-height:22px; color:var(--c-text); }
.ship-table th, .ship-table td{ white-space:nowrap; }

/* Merch: 購入ブロック */
.buy{ border-top:var(--rule-light); margin:24px 0 0; padding:20px 0 0; }
.buy-row{ display:flex; align-items:center; gap:12px; margin:0 0 12px; }
.buy-row label{ flex:0 0 150px; font-size:var(--fs-meta); letter-spacing:.06em; color:var(--c-ink); }
.buy-row select{ flex:1; padding:8px 10px; font-family:inherit; font-size:var(--fs-body); color:var(--c-text); background:var(--c-white); border:1px solid var(--c-rule); }
.buy-total{ width:100%; border-collapse:collapse; margin:14px 0 6px; font-size:var(--fs-body); }
.buy-total th{ text-align:left; font-weight:400; color:var(--c-text); padding:6px 0; border-bottom:var(--rule-faint); }
.buy-total .unit{ color:var(--c-text); font-size:var(--fs-meta); margin-left:10px; white-space:nowrap; }
.buy-total td{ text-align:right; color:var(--c-text); padding:6px 0; border-bottom:var(--rule-faint); white-space:nowrap; }
.buy-total tr.sum th, .buy-total tr.sum td{ font-weight:700; color:var(--c-ink); font-size:var(--fs-h2); border-bottom:2px solid var(--c-ink); padding-top:10px; }
.buy-msg{ margin:10px 0; padding:10px 12px; border:1px solid #b00; color:#b00; font-size:var(--fs-body); line-height:20px; }
#paypal-buttons{ margin:16px 0 8px; max-width:none; width:100%; }   /* 2026-10-22 金額表と同じ幅に揃える */
.buy-done{ border:2px solid var(--c-ink); padding:18px 20px; margin:10px 0; }
.buy-done b{ display:block; font-size:var(--fs-h2); color:var(--c-ink); margin-bottom:6px; }
.buy-done p{ margin:0; font-size:var(--fs-body); line-height:22px; color:var(--c-text); }
@media (max-width:759px){ .buy-row{ flex-direction:column; align-items:stretch; gap:6px; } .buy-row label{ flex:none; } }

/* ===== 可読性の底上げ（薄い箇所を少しだけ濃く・太く） ===== */
/* 本文系は 400（Helvetica Neue Regular）に統一。500 だと欧文だけ Medium になり日本語（ヒラギノ W3）より太く見えるため 2026-11-02 指示「英語の太さを日本語に合わせる・全ページ共通」 */
main p, .about-block p, .entry p{ font-weight:400; }
.ref-list li, .note-list li, .spec li span{ font-weight:400; }
.past-list .title{ font-weight:500; font-family:var(--font-title); font-size:calc(var(--fs-h2) - 1px); }   /* タイトル 1px 下げ（PC 18px / SP 16px）2026-11-02 */   /* 2026-11-02 指示「タイトルも太いので少し抑える」700→500。日本語は Hiragino Sans W5 */
.exh-card h3 .card-title{ font-family:var(--font-title); }
.page-lead, .note-sm, .empty{ font-weight:400; }
.anchor-nav a{ font-weight:600; }
.exh-filter span, .work-filter span{ font-weight:600; }
.exh-card .meta, .note-list .date, .topics-box, .lb-cap, .work-feature figcaption{ font-weight:400; }
.ship-table td, .buy-total th, .buy-total td{ font-weight:400; }
.exh-place-filter select, .buy-row select{ font-weight:400; color:var(--c-text); }

/* ===== ページ内リンクはスムーズスクロール ===== */
html{ scroll-behavior:smooth; }
/* 見出しが画面の端に貼りつかないよう少し余白を取る */
main section[id], main [id^="mk"], .page-head[id], .about-sub[id]{ scroll-margin-top:34px; }
@media (max-width:759px){ main section[id], .about-sub[id]{ scroll-margin-top:24px; } }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

/* ===== Exhibition 開催地マップ ===== */
#map{ margin-top:10px; }
.map-lead{ font-size:var(--fs-meta); line-height:var(--lh-meta); color:var(--c-body); font-weight:400; margin:-16px 0 16px; }
.exh-map{ height:520px; border:none; background:var(--c-field); }   /* 2026-10-22 枠線なし */
.exh-map img.leaflet-tile{ filter:grayscale(1) contrast(.92) brightness(1.08); }   /* 地図タイルをモノトーンに */
.exh-map .leaflet-container{ font-family:var(--font-sans); }
.exh-map .mk-pin{ background:transparent; border:0; box-shadow:none; color:#fff; font-size:11px; font-weight:700; letter-spacing:.02em; }
.exh-map .mk-pin::before{ display:none; }
.map-note{ margin-top:10px; }
.link-reset{ background:none; border:0; padding:0; margin-left:6px; font-family:inherit; font-size:inherit; font-weight:600; color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
/* クレジット表記もモノトーンに（表示は残す） */
.exh-map .leaflet-control-attribution{ background:rgba(255,255,255,.85); font-size:10px; }
.exh-map .leaflet-control-attribution a{ color:var(--c-text); text-decoration:underline; }
.exh-map .leaflet-attribution-flag{ display:none !important; }
.exh-map .leaflet-control-zoom a{ color:var(--c-ink); border-radius:0; }
.mk-pop .leaflet-popup-content-wrapper{ border-radius:0; box-shadow:0 2px 12px rgba(0,0,0,.18); }
.mk-pop .leaflet-popup-content{ margin:14px 16px; font-family:var(--font-sans); }
.mk-pop b{ display:block; font-size:var(--fs-h3); color:var(--c-ink); margin-bottom:8px; letter-spacing:.02em; }
.mk-pop ul{ list-style:none; margin:0; padding:0; max-height:220px; overflow-y:auto; }
.mk-pop li{ font-size:var(--fs-meta); line-height:18px; color:var(--c-text); font-weight:400; padding:5px 0; border-top:var(--rule-faint); }
.mk-pop li span{ display:inline-block; width:38px; font-weight:700; color:var(--c-ink); }
.mk-pop li em{ display:inline-block; font-style:normal; font-size:9px; letter-spacing:.1em; text-transform:uppercase; border:1px solid var(--c-ink); color:var(--c-ink); padding:0 4px; margin-right:7px; }
.mk-pop li.more{ color:var(--c-muted); }
@media (max-width:759px){ .exh-map{ height:380px; } }

/* ===== 2026-10-22 ブラッシュアップ ===== */
/* TOP: フッターを固定表示にしたときの下余白を消す（SPで CURRENT 枠と重なっていた） */
body.top footer{ padding-bottom:0; }
@media (max-width:759px){
  body.top .copyright{ font-size:11px; line-height:16px; white-space:nowrap; }
  body.top .footer-nav{ font-size:11px; line-height:16px; gap:0 12px; }
  body.top .footer-inner{ flex-direction:row; align-items:center; gap:4px 14px; }
  body.top .footer-inner{ padding:8px var(--pad-x) 10px; }
  .topics{ bottom:calc(44px + var(--frame)); }
}
/* main の中の「該当なし」メッセージは main 側に余白があるので二重に取らない */
main .empty{ max-width:none; margin:0 0 30px; padding:0 3px; }
main > .empty{ margin:0 0 40px; }
/* About 最終セクションの min-height は下部の空きが大きくなるため撤去（2026-10-22 指示） */
/* Exhibition: 本文中に DM と同じ画像が重複しないよう、カード本文の画像は控えめに */
.exh-card .wp-block-image{ max-width:420px; }
/* 単体ページ本文のリスト・見出し（アメブロ移行記事・展覧会詳細） */
.entry ul, .entry ol{ margin:0 0 18px; padding-left:1.4em; }
.entry ul{ list-style:disc; } .entry ol{ list-style:decimal; }
.entry li{ margin-bottom:4px; } .entry li::marker{ color:var(--c-muted); }
.entry h2, .entry h3{ font-size:var(--fs-h3); line-height:var(--lh-h3); font-weight:700; color:var(--c-ink); margin:24px 0 10px; }
.entry a:not(.btn){ color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; }
.entry blockquote{ border-left:2px solid var(--c-rule-light); padding-left:14px; color:var(--c-body); margin:0 0 18px; }
/* 記事・展覧会の単体ページ: タイトルは固定ページ名と違い大文字化・イタリックにしない */
body.single .page-title{ text-transform:none; font-style:normal; }
body.single .pager{ gap:28px; }
/* アメブロ移行記事の画像: 原寸差し替え後は幅いっぱい・下余白 */
.entry img{ max-width:100%; height:auto; margin:0 0 18px; }
.entry a img{ display:block; }

/* ===== Note: 2カラム（左=一覧 / 右=年別アーカイブ） ===== */
.note-wrap{ display:grid; grid-template-columns:minmax(0,660px) 200px; justify-content:space-between; gap:40px 60px; align-items:start; }
.note-main{ min-width:0; }
.note-main .pager{ padding:0; justify-content:flex-start; }
.note-years{ position:sticky; top:34px; border-top:var(--rule-header); padding-top:14px; }
.note-years-title{ font-size:var(--fs-meta); line-height:20px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--c-ink); margin-bottom:10px; }
.note-years ul{ list-style:none; }
.note-years li a{ display:flex; justify-content:space-between; align-items:baseline; padding:5px 2px; border-bottom:var(--rule-faint); font-size:var(--fs-meta); line-height:20px; letter-spacing:.04em; color:var(--c-body); font-weight:400; }
.note-years li a span{ font-size:11px; color:var(--c-muted); font-variant-numeric:tabular-nums; }
.note-years li a:hover{ color:var(--c-ink); }
.note-years li.on a{ color:var(--c-ink); font-weight:700; }
.note-years li.on a span{ color:var(--c-ink); }
@media (max-width:1023px){ .note-wrap{ grid-template-columns:minmax(0,1fr) 160px; gap:30px; } }
@media (max-width:759px){
  .note-wrap{ display:flex; flex-direction:column-reverse; gap:28px; }
  .note-years{ position:static; border-top:none; padding-top:0; }
  .note-years ul{ display:flex; flex-wrap:wrap; gap:6px; }
  .note-years li a{ border:1px solid var(--c-rule-light); padding:4px 9px; gap:5px; }
  .note-years li.on a{ border-color:var(--c-ink); background:var(--c-ink); color:var(--c-white); }
  .note-years li.on a span{ color:var(--c-white); }
}

/* ===== 角丸の全廃・フォーム部品とボタンの統一（2026-10-22 指示） ===== */
button, input, select, textarea, .btn, .topics-box, .form-msg, .buy-msg, .buy-done, .merch-bonus, .exh-map, .note-years li a, .link-reset,
.leaflet-popup-content-wrapper, .leaflet-popup-tip, .leaflet-bar, .leaflet-bar a{ border-radius:0 !important; }
/* プルダウン: OS 既定の丸みを消し、モノトーンの矢印に */
select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232b2b2b' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat !important; background-position:right 10px center !important; padding-right:30px !important;
}
/* 各所の select は background ショートハンドで白を指定しているため、矢印画像は !important で上書き */
select{ background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232b2b2b' stroke-width='1.5'/%3E%3C/svg%3E") !important; }
input, textarea{ -webkit-appearance:none; appearance:none; }
/* ボタン: 1 種類に統一（細枠・大文字・字間）。ホバーで黒反転 */
.btn, button.btn, .submit-wrap .btn{
  display:inline-block; border:1px solid var(--c-ink); background:var(--c-white); color:var(--c-ink);
  padding:10px 28px; font-size:var(--fs-meta); line-height:20px; letter-spacing:.12em; text-transform:uppercase; font-weight:600; cursor:pointer; font-family:inherit;
  transition:background .2s, color .2s;
}
.btn:hover{ background:var(--c-ink); color:var(--c-white); }
.btn.fill{ background:var(--c-ink); color:var(--c-white); }
.btn.fill:hover{ background:var(--c-black); }
/* 記事詳細: 前後記事リンクは左寄せ・2段 */
.post-nav{ max-width:760px; padding:0; justify-content:space-between; border-top:var(--rule-faint); padding-top:16px; margin-top:0; }
.post-nav a{ max-width:48%; }

/* Merch: 注文上限の下の横線なし（spec 最終行の下罫線と購入ブロックの上罫線）2026-10-22 */
.spec li:last-child{ border-bottom:none; }
.buy{ border-top:var(--rule-light); padding-top:20px; }   /* お届け先の上には横線（指示）*/
/* Merch 送料表: 右カラム 460px に収める（1列目は折り返し可・金額列のみ nowrap・13px）2026-10-22 */
.ship-table{ table-layout:auto; width:100%; font-size:13px; line-height:19px; }
.ship-table th:first-child, .ship-table td:first-child{ white-space:normal; padding-left:0; }
.ship-table th:not(:first-child), .ship-table td:not(:first-child){ white-space:nowrap; padding:6px 0 6px 10px; }
details.ship{ max-width:100%; overflow:hidden; }
/* Work の絞り込み（カテゴリ／年）: 折り返し時の行間を広く 2026-10-22 */
.work-filter{ line-height:30px; row-gap:4px; }
.work-filter.year-filter{ margin:-14px 0 30px; }
.exh-filter{ line-height:30px; row-gap:4px; }
.work-filter.year-filter{ margin:-24px 0 30px; }   /* カテゴリ行との間隔を折り返し行間と揃える */
/* 区切りの "/" に下線（選択中・mark）が伝播しないよう inline-block に */
.anchor-nav a + a::before, .exh-filter span + span::before, .work-filter span + span::before{ display:inline-block; text-decoration:none; }

/* ===== About: スタジオ写真・JA/EN 切替（2026-10-22 打ち合わせ反映） ===== */
.about-hero{ margin:-10px 0 44px; }
.about-hero img{ width:100%; height:420px; object-fit:cover; object-position:center; display:block; }
.studio-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin:28px 0 8px; }
.studio-strip figure{ margin:0; }
.studio-strip img{ width:100%; height:200px; object-fit:cover; display:block; background:var(--c-field); }
.has-lang h2.sec{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.lang-toggle{ display:inline-flex; gap:0; font-size:12px; letter-spacing:.1em; }
.lang-toggle button{ background:none; border:1px solid var(--c-rule-light); color:var(--c-muted); padding:3px 10px; font-family:inherit; font-size:12px; letter-spacing:.1em; cursor:pointer; line-height:16px; }
.lang-toggle button + button{ border-left:none; }
.lang-toggle button.on{ background:var(--c-ink); border-color:var(--c-ink); color:var(--c-white); }
.lang-en p{ font-weight:400; }
.ref-list a{ color:var(--c-ink); text-decoration:underline; text-underline-offset:3px; }
.ref-list a:hover{ color:var(--c-muted); }
.ref-list .src{ color:var(--c-muted); font-size:var(--fs-meta); margin-left:8px; }
@media (max-width:1023px){ .about-hero img{ height:320px; } .studio-strip{ grid-template-columns:repeat(3,1fr); } .studio-strip img{ height:170px; } }
@media (max-width:759px){ .about-hero img{ height:220px; } .about-hero{ margin:-6px 0 30px; } .studio-strip{ grid-template-columns:repeat(2,1fr); gap:8px; } .studio-strip img{ height:140px; } }
/* Current/Upcoming の DM: 横長ビジュアル（APT 2026 等）が切れないよう、3:4 固定をやめて原寸比率で表示 2026-10-22 */
.exh-card .dm{ aspect-ratio:auto; }
.exh-card .dm img{ width:100%; height:auto; object-fit:contain; }
/* ===== About: スタジオ写真の横スライド（ヒーロー帯は撤去）2026-10-22 ===== */
.about-hero{ display:none; }
.studio-slider{ position:relative; margin:30px 0 10px; }
.studio-track{ display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.studio-track::-webkit-scrollbar{ display:none; }
.studio-track figure{ flex:0 0 auto; scroll-snap-align:start; margin:0; }
.studio-track img{ height:520px; width:auto; max-width:none; display:block; background:var(--c-field); }
.ss-nav{ display:flex; justify-content:flex-end; gap:6px; margin-top:12px; }
.ss-nav button{ background:none; border:1px solid var(--c-ink); color:var(--c-ink); width:40px; height:32px; font-size:16px; line-height:30px; cursor:pointer; font-family:inherit; padding:0; }
.ss-nav button:hover{ background:var(--c-ink); color:var(--c-white); }
.ss-nav button:disabled{ opacity:.3; cursor:default; background:none; color:var(--c-ink); }
@media (max-width:1023px){ .studio-track img{ height:400px; } }
@media (max-width:759px){ .studio-track img{ height:260px; } .studio-track{ gap:10px; } }
/* Past: 同じ年は最初の 1 行だけ年を表示（2026-10-22 指示）。幅は保って揃える */
.past-list li.same-year .y{ visibility:hidden; }
.past-list li.same-year{ padding-top:0; }
.past-list li:not(.same-year){ margin-top:6px; }
/* Current/Upcoming の DM 下にグレーの帯が出る問題: .exh-card img の margin-bottom 16px が DM 枠内で効いていた 2026-10-22 */
.exh-card .dm img{ margin:0; }
.exh-card .dm{ background:none; align-items:flex-start; }
/* Work ライトボックス: 背景を黒に（2026-10-22 指示）。文字・操作は白 */
.lb{ background:#000; }   /* 透過なしの黒 */
.lb-cap, .lb-cap b, .lb-close, .lb-nav{ color:var(--c-white); }
.lb-cap span{ color:#bbb !important; }
.lb-close:hover, .lb-nav:hover{ color:#bbb; }
/* Current/Upcoming カード: タグの下でタイトルを改行（2026-10-22 指示） */
.exh-card h3 .card-title{ display:block; margin-top:10px; font-size:calc(var(--fs-h2) + 2px); line-height:calc(var(--lh-h2) + 4px); }   /* Current/Upcoming のタイトルのみ 19→21px（2026-11-02 指示「2ポイントあげ」）。タグ行は h3 の 19px のまま */
.exh-card h3 .type-tag, .exh-card h3 .place-tag{ vertical-align:0; }
/* About の年付きリスト: 折り返し行も本文の左端に揃える（Exhibition の Past と同じ挙動）2026-10-22 */
.ref-list li{ position:relative; padding-left:55px; }
.ref-list .y{ position:absolute; left:3px; top:6px; width:52px; }
/* Exhibition マップ: 背景白・陸地薄グレー（タイル廃止）2026-10-23 */
.exh-map{ background:#fff; }
.exh-map.leaflet-container, .exh-map .leaflet-container{ background:#fff !important; }   /* leaflet.css の #ddd がページ内で後読みされるため */
.exh-map .leaflet-control-zoom a{ background:#fff; border-color:var(--c-rule-light); }
/* Note ページャー: 大きめの数字＋正方形枠の前後ボタン（黒枠・黒三角）2026-10-23 */
.pager{ gap:8px; align-items:center; margin-top:48px; font-size:16px; letter-spacing:.02em; }
.pager a, .pager .current, .pager .dots{ display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 6px; color:var(--c-ink); font-weight:500; text-decoration:none; }
.pager .current{ font-weight:700; border-bottom:2px solid var(--c-ink); }
.pager a:hover{ color:var(--c-muted); }
.pager .prev, .pager .next{ width:36px; min-width:36px; padding:0; border:1px solid var(--c-black); }
.pager .prev:hover, .pager .next:hover{ background:var(--c-black); }
.pager .prev:hover .tri-l{ border-right-color:#fff; } .pager .next:hover .tri-r{ border-left-color:#fff; }
.tri{ display:block; width:0; height:0; border-style:solid; }
.tri-r{ border-width:6px 0 6px 9px; border-color:transparent transparent transparent var(--c-black); margin-left:2px; }
.tri-l{ border-width:6px 9px 6px 0; border-color:transparent var(--c-black) transparent transparent; margin-right:2px; }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
/* 記事詳細の前後リンク: 正方形ボタン＋ラベル＋タイトル 2026-10-23 */
.post-nav{ display:flex; justify-content:space-between; gap:24px; max-width:760px; border-top:var(--rule-faint); padding-top:20px; margin-top:0; }
.post-nav .pn{ flex:1 1 50%; min-width:0; }
.post-nav .pn-next{ text-align:right; }
.post-nav .pn a{ display:grid; grid-template-columns:36px 1fr; grid-template-rows:auto auto; column-gap:12px; align-items:center; color:var(--c-ink); text-decoration:none; }
.post-nav .pn-next a{ grid-template-columns:1fr 36px; }
.post-nav .pn-btn{ grid-row:1 / span 2; width:36px; height:36px; border:1px solid var(--c-black); display:flex; align-items:center; justify-content:center; }
.post-nav .pn-next .pn-btn{ grid-column:2; }
.post-nav .pn-next .pn-label, .post-nav .pn-next .pn-title{ grid-column:1; }
.post-nav .pn-label{ font-size:12px; letter-spacing:.08em; color:var(--c-muted); line-height:16px; }
.post-nav .pn-title{ font-size:var(--fs-meta); line-height:20px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.post-nav .pn a:hover .pn-btn{ background:var(--c-black); }
.post-nav .pn a:hover .tri-l{ border-right-color:#fff; } .post-nav .pn a:hover .tri-r{ border-left-color:#fff; }
.post-nav .pn a:hover .pn-title{ color:var(--c-muted); }
@media (max-width:759px){ .post-nav{ flex-direction:column; gap:14px; } .post-nav .pn-next{ text-align:left; } .post-nav .pn-next a{ grid-template-columns:36px 1fr; } .post-nav .pn-next .pn-btn{ grid-column:1; } .post-nav .pn-next .pn-label, .post-nav .pn-next .pn-title{ grid-column:2; } }
.post-nav .pn a{ max-width:none; width:100%; }   /* 旧 .post-nav a{max-width:48%} の打ち消し（タイトルが過度に省略されていた） */
/* Work ライトボックスの演出（2026-10-23 指示）: 画像はモノクロ＋ぼかし → カラー、キャプションは左→右マスク */
.lb-inner img{ transition:filter 1.1s ease, transform 1.1s ease; filter:grayscale(0) blur(0); transform:scale(1); will-change:filter; }
.lb-inner img.pre{ filter:grayscale(1) blur(20px); transform:scale(1.03); transition:none; }
.lb-cap{ clip-path:inset(0 100% 0 0); -webkit-clip-path:inset(0 100% 0 0); }
.lb-cap.in{ animation:maskReveal .9s cubic-bezier(.4,0,.2,1) forwards; }
@media (prefers-reduced-motion: reduce){ .lb-inner img.pre{ filter:none; transform:none; } .lb-cap{ clip-path:none; -webkit-clip-path:none; } }
/* About: Artist Statement 下の横幅いっぱいパララックス（2026-10-23 指示） */
.about-parallax{ position:relative; width:100vw; margin:10px calc(50% - 50vw) 50px; height:62vh; max-height:560px; min-height:260px; overflow:hidden; background:var(--c-field); }
.about-parallax img{ position:absolute; left:0; top:0; width:100%; height:130%; object-fit:cover; object-position:center; will-change:transform; }
/* 2026-11-02 パララックス帯の自動切替（複数 img を重ねてクロスフェード。transform は JS のパララックスが全 img に同じ値を入れる） */
.about-parallax-auto img{ opacity:0; transition:opacity 1.2s ease; }
.about-parallax-auto img.on{ opacity:1; }
.about-parallax br{ display:none; }
@media (prefers-reduced-motion: reduce){ .about-parallax-auto img{ transition:none; } }
@media (max-width:759px){ .about-parallax{ height:46vh; min-height:220px; margin-bottom:36px; } }
@media (prefers-reduced-motion: reduce){ .about-parallax img{ height:100%; transform:none !important; } }

/* ===== 2026-10-29 About Biography: PC は左に縦写真・右に本文（半分幅） ===== */
.bio-cols{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:60px; align-items:start; margin-bottom:8px; }
.bio-photo{ margin:0; }
.bio-photo img{ width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; display:block; background:var(--c-field); }
.bio-text p:last-child{ margin-bottom:0; }
@media (max-width:1023px){ .bio-cols{ display:block; } .bio-photo{ display:none; } .bio-text p:last-child{ margin-bottom:14px; } }

.bio-photo-sp{ display:none; }   /* SP 専用の上部写真（≤1023px で表示） */
/* ===== 2026-11-02 About: 左写真を sticky 固定、スクロールで 4 点切替。Biography 見出しは本文の上左、Artist Statement は Biography の下（同じ右カラム） ===== */
.bio-sticky{ align-items:start; }
.bio-sticky .bio-photo{ position:sticky; top:30px; justify-self:start; width:min(100%, calc(100vh - 60px)); aspect-ratio:1/1; height:auto; overflow:hidden; background:var(--c-field); }   /* 枠は正方形（artist_image_recent.jpg に合わせる 2026-11-02 指示）*/
.bio-sticky .bio-photo img{ position:absolute; left:0; top:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:center; opacity:0; transition:opacity .7s ease; }
.bio-sticky .bio-photo img.on{ opacity:1; }
/* 枠を正方形にしたためポートレートの右寄せ（object-position:72%）は不要になり削除 2026-11-02 */
.bio-text h2.sec{ margin-bottom:30px; }
.bio-text .about-sub{ margin-top:56px; }
.bio-text .about-sub p:last-child{ margin-bottom:0; }
@media (max-width:1023px){
  /* 1 カラム時は Biography 本文の下・Artist Statement の上にポートレートのみ表示（2026-11-02 指示）。
     .bio-text を display:contents にして子要素を .bio-cols の flex アイテムにし、order で写真を本文の後ろへ */
  .bio-sticky{ display:flex; flex-direction:column; gap:0; }   /* PC 用 gap:60px が flex でも効いて段落間が 60px 空いていた不具合を修正 2026-11-02 */
  .bio-sticky .bio-text{ display:contents; }
  .bio-sticky .bio-text > *{ order:0; }
  .bio-sticky .bio-photo{ order:1; display:block; position:static; height:auto; aspect-ratio:1/1; width:100%; max-width:600px; margin:14px 0 0; }   /* タブレットで巨大化しないよう 600px 上限 */
  .bio-sticky .bio-text > .about-sub{ order:2; margin-top:44px; }
  .bio-sticky .bio-photo img:not(.portrait){ display:none !important; }
  .bio-sticky .bio-photo br{ display:none; }
  /* 1 カラム時のみ Biography 見出しの上にスタジオ写真（固定ページ本文の .bio-photo-sp、PC では非表示） */
  .bio-photo-sp{ display:block; order:0; margin:0 0 24px; width:100%; max-width:600px; aspect-ratio:4/3; overflow:hidden; background:var(--c-field); }
  .bio-photo-sp img{ width:100%; height:100%; object-fit:cover; display:block; }   /* wpautop が img 間の改行に入れる <br> が static 配置で高さになるのを防ぐ */
  .bio-sticky .bio-photo img.portrait{ display:block; position:static; height:100%; opacity:1; }
}
@media (prefers-reduced-motion: reduce){ .bio-sticky .bio-photo img{ transition:none; } }

/* 2026-10-29 Publications の書名は斜体（和文含む・合成イタリック可） */
.ref-list i, .entry i, .ref-list em{ font-style:italic; }

/* 2026-10-29 展示タイトルの “…” 部分は引用符なし・斜体 */
.card-title i, .past-list .title i, .t-title i, .page-title i{ font-style:italic; }
.mk-pop li i{ font-style:italic; }

/* 2026-10-29 作品タイトルは斜体（Work の大型表示・ライトボックス） */
.work-feature figcaption b, .lb-cap b{ font-style:italic; }

/* ===== Contact 確認画面（2026-11-02） ===== */
.confirm-lead{ max-width:666px; margin:0 0 22px; font-size:var(--fs-body); line-height:var(--lh-body); color:var(--c-text); }
.confirm-list{ max-width:666px; margin:0; border-top:1px solid var(--c-rule-light); }
.confirm-list dt{ font-size:var(--fs-meta); letter-spacing:.04em; color:var(--c-muted); padding:14px 0 2px; }
.confirm-list dd{ margin:0; padding:0 0 14px; font-size:var(--fs-body); line-height:var(--lh-body); color:var(--c-ink); border-bottom:1px solid var(--c-rule-light); word-break:break-word; }
.confirm-list dd.msg{ white-space:normal; }
.confirm-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.confirm-actions .btn{ min-width:160px; text-align:center; }
@media (max-width:759px){ .confirm-actions{ flex-direction:column; } .confirm-actions .btn{ width:100%; } }
/* 完了ページ（/contact/thanks/） */
.thanks-actions{ margin-top:30px; }
/* Contact: 必須未入力時の「確認画面へ」グレーアウト（2026-11-02） */
.submit-wrap .btn:disabled, .submit-wrap .btn.is-disabled{ border-color:var(--c-rule-light); color:var(--c-sep); background:var(--c-field); cursor:not-allowed; pointer-events:none; }
