/* NSCの申込Web（申込・チケット・ブース・受付）の見た目。学生サイトのトンマナ（ナレッジ/NSC_学生サイト/トンマナ_2026-10-21・雑誌風）と同じ：
   写真が主役＋雑誌の落ち着き。CONNECTの地 #FBF7E6・白の段・濃い面 #151410（強調の段だけ）・黄 #FFD700（マーカーの一言とボタンだけ）
   明朝（Shippori Mincho B1）で言い切る・章は「英字ラベル＋番号（Inter 300）＋明朝の見出し」・上に太い線（1.5px）、間は細い線・四角
   受付（スタッフ）の画面は道具なので、同じ色で飾りを減らす（.card・.qrbox など） */
:root {
  --bg: #FBF7E6; --paper: #ffffff; --dk: #151410; --ac: #FFD700;
  --ink: #141414; --ink-2: #444; --mute: #7a7a7a; --line: rgba(0,0,0,.13); --line-dk: rgba(255,255,255,.16);
  --ok: #2e7d32; --warn: #8a6100; --ng: #b42318;
  --serif: 'Shippori Mincho B1', 'Noto Serif JP', 'Hiragino Mincho ProN', serif;
  --en: 'Inter', 'Noto Sans JP', system-ui, sans-serif;
  --ja: 'Noto Sans JP', 'Hiragino Sans', system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--ja); font-size: 16px; line-height: 1.9; letter-spacing: .02em; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { max-width: 100%; display: block; }
a { color: inherit; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-weight: 700; line-height: 1.5; }
.wrap { max-width: 640px; margin: 0 auto; padding: 0 16px; }
.hidden { display: none !important; }
.mk { background: linear-gradient(transparent 64%, rgba(255,215,0,.8) 64%); padding: 0 .06em; }

/* 上の帯（ロゴ・英字の小さいラベル） */
.head { background: rgba(251,247,230,.95); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.head .wrap { display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.head img { height: 24px; width: auto; }
.head .tag { font-family: var(--en); font-size: 11px; letter-spacing: .3em; color: var(--mute); text-transform: uppercase; }

/* 英字ラベル＋黄の短い線 */
.kicker { display: inline-flex; align-items: center; gap: 12px; font-family: var(--en); font-weight: 400; font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--mute); }
.kicker::before { content: ''; width: 30px; height: 1.5px; background: var(--ac); flex: none; }
.dark .kicker { color: rgba(255,255,255,.6); }

/* 表紙：大きな写真（左下に白い英字）＋明朝の一言＋細い数字の日付 */
.cover-ph { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: var(--dk); }
.cover-ph img { width: 100%; height: 100%; object-fit: cover; }
.cover-ph .cap { position: absolute; left: 16px; bottom: 12px; color: #fff; font-family: var(--en); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.cover-tx { padding-top: 30px; padding-bottom: 34px; }
.cover-tx h1 { font-family: var(--serif); font-size: clamp(27px, 7.4vw, 36px); line-height: 1.55; letter-spacing: .05em; margin: 14px 0 12px; }
.cover-tx .lead { color: var(--ink-2); font-size: 15px; }
.dates { display: flex; flex-wrap: wrap; border-top: 1.5px solid var(--ink); margin-top: 24px; }
.dates > div { flex: 1 1 0; min-width: 120px; padding: 12px 16px 4px 0; }
.dates > div + div { border-left: 1px solid var(--line); padding-left: 16px; }
.num { font-family: var(--en); font-weight: 300; font-size: 40px; line-height: 1.1; letter-spacing: -.02em; }
.num small { font-size: 12px; letter-spacing: .22em; margin-left: 6px; color: var(--mute); font-weight: 400; }
.where { color: var(--ink-2); font-size: 13px; margin-top: 12px; line-height: 1.7; }

/* 章（地と白を交互に・強調だけ濃い面） */
.sec { padding: 40px 0 44px; border-top: 1px solid var(--line); }
.sec.paper { background: var(--paper); }
.sec.dark { background: var(--dk); color: #fff; border-top: 0; }
.sec-h h2 { font-family: var(--serif); font-size: 23px; letter-spacing: .04em; margin: 10px 0 0; }
.sec-h h2 .no { font-family: var(--en); font-weight: 300; color: #9a9a9a; margin-right: 12px; letter-spacing: 0; }
.sec-h p { color: var(--ink-2); font-size: 14px; margin-top: 6px; }
.dark .sec-h p { color: rgba(255,255,255,.72); }

/* 入力：上に太い線、間は細い線 */
.rows { border-top: 1.5px solid var(--ink); margin-top: 22px; }
.field { padding: 18px 0 20px; border-bottom: 1px solid var(--line); }
.field > label, .field > .lbl { display: block; font-weight: 700; font-size: 15px; margin: 0 0 9px; }
.req, .opt { display: inline-block; font-size: 10px; letter-spacing: .1em; padding: 0 7px; margin-left: 8px; vertical-align: 2px; font-weight: 500; line-height: 18px; }
.req { background: var(--ac); color: var(--ink); }
.opt { border: 1px solid var(--line); color: var(--mute); }
.hint { color: var(--mute); font-size: 12.5px; margin: 7px 0 0; line-height: 1.65; }
.err { color: var(--ng); font-size: 13px; margin: 7px 0 0; display: none; }
.field.bad .err { display: block; }
.field.bad input:not([type=checkbox]):not([type=radio]), .field.bad select { border-color: var(--ng); }
input[type=text], input[type=tel], input[type=email], select {
  width: 100%; min-height: 50px; padding: 10px 12px; font: inherit; font-size: 16px; color: var(--ink);
  background-color: #fff; border: 1px solid rgba(0,0,0,.3); border-radius: 0; -webkit-appearance: none; appearance: none;
}
.paper input[type=text], .paper input[type=tel], .paper input[type=email], .paper select { background-color: var(--bg); }
select { background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 34px; }
input:focus, select:focus { outline: 2px solid var(--ac); outline-offset: 0; border-color: var(--ink); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.two > .field { min-width: 0; }

/* 選ぶもの（四角い行） */
.choices { display: grid; gap: 8px; }
.choice { display: flex; align-items: center; gap: 14px; min-height: 54px; padding: 10px 14px; background: #fff; border: 1px solid rgba(0,0,0,.3); cursor: pointer; }
.paper .choice { background: var(--bg); }
.choice input { width: 20px; height: 20px; accent-color: var(--ink); flex: none; margin: 0; }
.choice:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: #fffbe0; }
.choice .sub { display: block; color: var(--mute); font-size: 12px; line-height: 1.6; font-weight: 400; }
.choice.date .num { font-size: 30px; }
.agree a { text-decoration: underline; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ボタン：四角・字間を広く・黄が主役 */
.btn { display: flex; align-items: center; justify-content: center; gap: 14px; width: 100%; min-height: 60px; padding: 0 22px; border: 1px solid var(--ink);
  background: var(--ink); color: #fff; font: inherit; font-weight: 700; font-size: 15px; letter-spacing: .14em; cursor: pointer; text-decoration: none; border-radius: 0; }
.btn .arrow { font-family: var(--en); font-weight: 400; }
.btn-yellow { background: var(--ac); border-color: var(--ac); color: var(--ink); }
.btn-ghost { background: transparent; color: inherit; border-color: currentColor; }
.btn[disabled] { opacity: .55; cursor: wait; }
.btn + .btn { margin-top: 10px; }
.link { background: none; border: 0; padding: 0; font: inherit; font-size: 14px; color: var(--ink-2); text-decoration: underline; cursor: pointer; }

/* 参加用QR（濃い面の段に白いQR） */
.qrcard { background: #fff; color: var(--ink); padding: 24px 18px 20px; text-align: center; margin-top: 22px; }
.qrcard img { width: min(250px, 72vw); height: auto; margin: 6px auto 12px; image-rendering: pixelated; cursor: zoom-in; }
.qrcard .who { font-family: var(--serif); font-weight: 700; font-size: 21px; letter-spacing: .04em; }
.qrcard .meta { color: var(--ink-2); font-size: 14px; }
.qrcard .note { margin-top: 12px; color: var(--ink-2); }
.badge { display: inline-block; font-size: 12px; letter-spacing: .08em; padding: 0 10px; border: 1px solid var(--ink); line-height: 24px; white-space: nowrap; }
.badge.in { background: var(--dk); color: #fff; border-color: var(--dk); }

/* 表（上に太い線・見出しは明朝） */
.info { width: 100%; border-collapse: collapse; font-size: 15px; margin-top: 22px; }
.info th, .info td { text-align: left; padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.info tr:first-child th, .info tr:first-child td { border-top: 1.5px solid var(--ink); }
.info th { width: 6.5em; font-family: var(--serif); font-weight: 700; white-space: nowrap; }
.info td { color: var(--ink-2); }

.note { font-size: 13px; color: var(--ink-2); line-height: 1.8; }
.dark .note { color: rgba(255,255,255,.75); }
.alert { padding: 12px 14px; border: 1px solid var(--ng); color: var(--ng); background: #fff5f4; font-size: 14px; margin: 18px 0 0; display: none; }
.alert.on { display: block; }
.foot { background: var(--dk); color: rgba(255,255,255,.6); padding: 30px 0 38px; font-size: 12px; text-align: center; line-height: 1.9; }
.foot a { color: rgba(255,255,255,.78); }
.spin { display: inline-block; width: 18px; height: 18px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: sp .8s linear infinite; vertical-align: -3px; }
@keyframes sp { to { transform: rotate(360deg); } }
.loading { text-align: center; padding: 40px 0; color: var(--mute); }

/* 下から少しだけ出てくる（トンマナ 06） */
.rise { animation: rise .9s ease both; }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rise { animation: none; } }

/* 受付（スタッフ）の画面で使う、飾りの少ない部品 */
.hero { padding: 28px 0 20px; }
.title { font-family: var(--serif); font-size: 24px; letter-spacing: .04em; margin: 10px 0 8px; }
.lead { color: var(--ink-2); font-size: 15px; }
.card { background: var(--paper); border-top: 1.5px solid var(--ink); padding: 18px 16px; margin: 0 0 14px; }
.lbl { display: block; font-weight: 700; font-size: 15px; margin: 0 0 8px; }
.qrbox { background: #fff; border-top: 1.5px solid var(--ink); padding: 20px 16px 18px; text-align: center; }
.qrbox img { margin: 8px auto 10px; image-rendering: pixelated; }
.qrbox .who { font-family: var(--serif); font-weight: 700; font-size: 18px; }

/* 申込（10/26 柴田：参考のフォームの構成）：上に会の名前の帯 → 1枚の白い札（説明・入力・個人情報・ボタン）→ 確認 → 完了 */
.band { background: var(--dk); color: #fff; text-align: center; padding: 26px 16px 24px; }
.band .kicker { color: rgba(255,255,255,.6); }
.band h1 { font-family: var(--serif); font-size: clamp(22px, 6vw, 28px); letter-spacing: .06em; margin: 10px 0 6px; }
.band .when { font-family: var(--en); font-weight: 300; font-size: 15px; letter-spacing: .06em; color: rgba(255,255,255,.85); }
.sheet { background: var(--paper); border-top: 1.5px solid var(--ink); margin: 20px auto 0; padding: 26px 18px 30px; }
.sheet h2 { font-family: var(--serif); font-size: 22px; letter-spacing: .05em; }
.sheet .intro { color: var(--ink-2); font-size: 14px; line-height: 1.9; margin-top: 12px; }
.sheet .intro p + p { margin-top: 8px; }
.sheet .rows { margin-top: 20px; }
.sheet input[type=text], .sheet input[type=tel], .sheet input[type=email], .sheet select, .sheet textarea { background-color: var(--bg); }
textarea { width: 100%; min-height: 96px; padding: 10px 12px; font: inherit; font-size: 16px; line-height: 1.7; color: var(--ink); background: #fff; border: 1px solid rgba(0,0,0,.3); border-radius: 0; resize: vertical; -webkit-appearance: none; appearance: none; }
textarea:focus { outline: 2px solid var(--ac); outline-offset: 0; border-color: var(--ink); }
.privacy { border: 1px solid var(--line); background: var(--bg); padding: 14px 14px 12px; margin-top: 22px; }
.privacy p { color: var(--ink-2); font-size: 12.5px; line-height: 1.8; }
.privacy .choice { margin-top: 12px; background: #fff; }
.privacy .err { margin-top: 8px; }
.privacy.bad { border-color: var(--ng); }
.privacy.bad .err { display: block; }
.actions { margin-top: 26px; }
.confirm-tbl { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 18px; }
.confirm-tbl th, .confirm-tbl td { text-align: left; padding: 11px 10px 11px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.confirm-tbl tr:first-child th, .confirm-tbl tr:first-child td { border-top: 1.5px solid var(--ink); }
.confirm-tbl th { width: 8em; font-family: var(--serif); font-weight: 700; white-space: nowrap; }
.confirm-tbl td { color: var(--ink-2); word-break: break-all; white-space: pre-wrap; }
.contact { color: var(--mute); font-size: 12px; text-align: center; line-height: 1.9; padding: 26px 16px 8px; }
.req, .opt { white-space: nowrap; flex: none; }
.privacy .choice b { font-size: 15px; }

/* 検索つきの入力（大学・学校／学部・学科）：打つと下に候補が出る。候補にないときはそのまま送れる */
.combo { position: relative; }
.combo .list { position: absolute; left: 0; right: 0; top: 100%; z-index: 20; max-height: 300px; overflow-y: auto; margin: 0; padding: 0; list-style: none;
  background: #fff; border: 1px solid var(--ink); border-top: 0; box-shadow: 0 8px 18px rgba(0,0,0,.12); }
.combo .list li { padding: 11px 12px; font-size: 15px; line-height: 1.5; cursor: pointer; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 10px; }
.combo .list li:first-child { border-top: 0; }
.combo .list li[aria-selected=true], .combo .list li:hover { background: #fffbe0; }
.combo .list li .k { flex: none; font-size: 11px; color: var(--mute); border: 1px solid var(--line); padding: 0 6px; line-height: 20px; align-self: center; }
.combo .list li.free { color: var(--ink-2); font-size: 13px; }
.combo .list li.none { color: var(--mute); font-size: 13px; cursor: default; }
.combo .list mark { background: rgba(255,215,0,.6); color: inherit; padding: 0; }
.combo .picked { margin-top: 6px; font-size: 12.5px; color: var(--ok); }

/* ── サイトの上のメニュー（出展企業／お申込み／参加チケット）・全ページ共通 ── */
.subnav { background: var(--bg); border-bottom: 1px solid var(--line); }
.subnav .wrap { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; }
.subnav .wrap::-webkit-scrollbar { display: none; }
.subnav a { flex: 1 0 auto; text-align: center; padding: 11px 10px 10px; font-size: 13px; letter-spacing: .08em; color: var(--ink-2); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; }
.subnav a[aria-current="page"] { color: var(--ink); font-weight: 700; border-color: var(--ac); }

/* ── 出展企業 ── */
.daytabs { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--ink); margin-top: 22px; }
.daytabs button { min-height: 62px; border: 0; background: #fff; font: inherit; cursor: pointer; color: var(--ink); }
.daytabs button + button { border-left: 1px solid var(--ink); }
.daytabs button[aria-selected=true] { background: var(--dk); color: #fff; }
.daytabs .num { font-size: 28px; }
.daytabs button[aria-selected=true] .num small { color: rgba(255,255,255,.7); }
.tip { margin-top: 16px; padding: 12px 14px; background: #fffbe0; border-left: 3px solid var(--ac); font-size: 14px; line-height: 1.8; }
.tools { position: sticky; top: 56px; z-index: 6; background: var(--bg); padding: 12px 0 10px; border-bottom: 1px solid var(--line); margin-top: 14px; }
.tools input[type=search] { width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; font-size: 16px; border: 1px solid rgba(0,0,0,.3); border-radius: 0; background: #fff; -webkit-appearance: none; }
.chips { display: flex; gap: 6px; overflow-x: auto; padding: 10px 0 0; scrollbar-width: none; }
.chips::-webkit-scrollbar { display: none; }
.chips button { flex: none; border: 1px solid rgba(0,0,0,.3); background: #fff; font: inherit; font-size: 13px; padding: 6px 12px; cursor: pointer; color: var(--ink); }
.chips button[aria-pressed=true] { background: var(--ink); color: #fff; border-color: var(--ink); }
.count { font-size: 12px; color: var(--mute); margin-top: 8px; font-family: var(--en); letter-spacing: .1em; }
.wallhead { margin-top: 30px; }
.wall { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1.5px solid var(--ink); border-left: 1px solid var(--line); margin-top: 14px; }
@media (min-width: 600px) { .wall { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tile { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 18px 10px 8px; text-decoration: none; color: var(--ink); overflow: hidden; }
.tile img { width: 100%; height: 100%; object-fit: contain; }
.tile .tname { font-size: 11px; font-weight: 700; text-align: center; line-height: 1.4; overflow-wrap: anywhere; }
.tile small { position: absolute; left: 7px; top: 4px; font-family: var(--en); font-weight: 300; font-size: 13px; color: var(--mute); }
.list { margin-top: 30px; }
.co { background: #fff; border-top: 1.5px solid var(--ink); padding: 18px 16px 18px; margin-bottom: 18px; scroll-margin-top: 140px; overflow-wrap: anywhere; }
.co.hit { box-shadow: 0 0 0 3px var(--ac); }
.co .top { display: flex; justify-content: space-between; align-items: center; }
.co .bno { font-family: var(--en); font-weight: 300; font-size: 24px; line-height: 1; }
.co .bno small { font-size: 11px; letter-spacing: .2em; color: var(--mute); margin-right: 6px; }
.fav { border: 1px solid var(--line); background: #fff; font-size: 18px; line-height: 1; width: 40px; height: 40px; cursor: pointer; color: var(--mute); }
.fav[aria-pressed=true] { color: #b08d00; border-color: var(--ac); background: #fffbe0; }
.co .logo { height: 48px; max-width: 70%; object-fit: contain; object-position: left; margin: 14px 0 4px; }
.co h3 { font-family: var(--serif); font-size: 20px; letter-spacing: .03em; margin: 10px 0 4px; line-height: 1.5; }
.co .catch { font-weight: 700; font-size: 15px; margin: 4px 0; }
.co .meta { color: var(--mute); font-size: 12.5px; margin: 0 0 8px; }
.co .push { font-size: 14px; color: var(--ink-2); }
.co details { border-top: 1px solid var(--line); margin-top: 12px; }
.co summary { cursor: pointer; font-size: 13px; font-weight: 700; padding: 12px 0; letter-spacing: .06em; }
.co .photos { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 12px; }
.co .photos img { height: 150px; flex: none; }
.co dl { margin: 0; font-size: 14px; }
.co dt { font-family: var(--serif); font-weight: 700; font-size: 13px; margin-top: 12px; }
.co dd { margin: 2px 0 0; color: var(--ink-2); }
.co .facts { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12.5px; margin: 14px 0 4px; color: var(--ink-2); }
.co .facts b { color: var(--mute); font-weight: 500; margin-right: 4px; }
.co .next { margin-top: 16px; background: var(--dk); color: #fff; padding: 14px 14px 14px; }
.co .next .kicker { color: rgba(255,255,255,.6); }
.co .next b { display: block; font-size: 15px; margin-top: 6px; }
.co .next .hito { font-size: 13px; margin-top: 4px; color: rgba(255,255,255,.8); }
.co .next .btn { margin-top: 12px; min-height: 50px; font-size: 14px; }
.co .ask { margin-top: 10px; min-height: 48px; font-size: 13px; }
.empty { text-align: center; color: var(--mute); padding: 40px 0; font-size: 14px; }
.dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9; background: var(--dk); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); }
.dock .btn { max-width: 608px; margin: 0 auto; min-height: 54px; }
.dock .btn small { display: block; font-weight: 500; font-size: 11px; letter-spacing: .04em; }
.has-dock { padding-bottom: 90px; }
[hidden] { display: none !important; }
/* 性別（3つ横並び・「回答しない」が折れないように） */
#genders { gap: 6px; }
#genders .choice { padding: 10px 8px; gap: 8px; font-size: 14px; white-space: nowrap; justify-content: center; }
#genders .choice input { width: 18px; height: 18px; }

/* ════ 10/30 柴田「Lumaの形で決定・ほかもそろえて」：申込Webの全ページは body に class="luma" ════ */
/* ── Lumaの見た目：角の丸い白いカード・太いゴシック・角の丸いポスター・黒い丸いボタン・淡い枠の入力欄。NSCの黄は印の一言だけ ── */
  body.luma { background: linear-gradient(180deg, #fdf9e9 0%, #f6f4ef 320px, #f6f4ef 100%); font-family: 'Noto Sans JP', 'Hiragino Sans', system-ui, sans-serif; }
  .luma .head { background: rgba(246,244,239,.9); border-bottom: 0; }
  .luma .subnav { background: transparent; border-bottom: 1px solid rgba(0,0,0,.06); }
  .luma .poster { margin: 18px auto 0; width: min(100%, 340px); aspect-ratio: 1 / 1; border-radius: 18px; overflow: hidden; position: relative; box-shadow: 0 12px 32px rgba(0,0,0,.18); background: #151410; }
  .luma .poster img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
  .luma .poster .pt { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 22px 20px; color: #fff; }
  .luma .poster .pt .l1 { font-family: var(--en); font-weight: 600; font-size: 12px; letter-spacing: .28em; }
  .luma .poster .pt .l2 { font-weight: 800; font-size: 30px; line-height: 1.25; letter-spacing: .02em; }
  .luma .poster .pt .l2 .y { color: #FFD700; }
  .luma .poster .pt .l3 { font-family: var(--en); font-weight: 600; font-size: 34px; line-height: 1; letter-spacing: -.01em; }
  .luma .poster .pt .l3 small { font-size: 14px; letter-spacing: .1em; margin-left: 6px; opacity: .8; }
  .luma .pill { display: inline-flex; align-items: center; gap: 6px; margin-top: 22px; font-size: 12px; color: var(--ink-2); background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 999px; padding: 3px 12px; }
  .luma .pill i { width: 8px; height: 8px; border-radius: 50%; background: #FFD700; }
  .luma .ev-title { font-family: inherit; font-weight: 800; font-size: 25px; line-height: 1.45; letter-spacing: .01em; margin: 10px 0 4px; }
  .luma .ev-catch { font-family: inherit; font-weight: 700; font-size: 15px; color: var(--ink-2); white-space: normal; }
  .luma .host { display: flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--mute); font-size: 13px; }
  .luma .host .av { width: 24px; height: 24px; border-radius: 50%; background: #151410; display: flex; align-items: center; justify-content: center; }
  .luma .host .av img { width: 18px; height: auto; }
  .luma .chips2 span { border-radius: 999px; border-color: rgba(0,0,0,.08); padding: 3px 12px; }
  .luma .fact .ic { border-radius: 10px; border: 1px solid rgba(0,0,0,.1); overflow: hidden; }
  .luma .fact .ic small { background: #f0eee8; border: 0; padding: 3px 0 2px; font-size: 9px; }
  .luma .fact .ic b { font-weight: 600; }
  .luma .reg { border-radius: 16px; border: 1px solid rgba(0,0,0,.08); overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
  .luma .reg .rh { background: #faf9f6; font-weight: 500; }
  .luma .btn { border-radius: 12px; font-weight: 700; letter-spacing: .06em; }
  .luma .btn-yellow, .luma #start, .luma #next { background: #151410; border-color: #151410; color: #fff; }
  .luma .btn-ghost { background: #fff; border-color: rgba(0,0,0,.15); color: var(--ink); }
  .luma .about { background: #fff; border-radius: 16px; border: 1px solid rgba(0,0,0,.08); padding: 18px 16px 20px; }
  .luma .about h2 { border-bottom: 1px solid rgba(0,0,0,.08); }
  .luma .about h3 { font-family: inherit; font-weight: 800; font-size: 17px; }
  /* 入力 */
  .luma .stepbar { background: #f6f4ef; border-bottom: 0; }
  .luma .stepbar .bars i { height: 6px; border-radius: 99px; }
  .luma .stepbar .bars i.on { background: #151410; }
  .luma .step { background: #fff; border-radius: 16px; border: 1px solid rgba(0,0,0,.08); padding: 4px 16px 22px; margin-top: 12px; }
  .luma .step h2 { font-family: inherit; font-weight: 800; font-size: 21px; margin-top: 18px; }
  .luma .f2 > label, .luma .f2 > .lbl { font-size: 15px; }
  .luma .f2 input[type=text], .luma .f2 input[type=tel], .luma .f2 input[type=email], .luma .f2 select, .luma .f2 textarea { border-radius: 10px; border: 1px solid #cfcdc6; background-color: #fff; min-height: 52px; font-size: 16px; }
  .luma .f2 input:focus, .luma .f2 select:focus, .luma .f2 textarea:focus { outline: 0; border-color: #151410; box-shadow: 0 0 0 3px rgba(255,215,0,.55); }
  .luma .f2 .choice { border-radius: 12px; border: 1px solid #cfcdc6; min-height: 54px; }
  .luma .f2 .choice:has(input:checked) { border-color: #151410; box-shadow: inset 0 0 0 1px #151410; background: #fffbe0; }
  .luma .combo .list { border-radius: 0 0 10px 10px; }
  .luma .req { background: transparent; color: #b42318; padding: 0; font-weight: 700; margin-left: 6px; }
  .luma .req::before { content: '※'; }
  .luma .opt { border: 0; padding: 0; margin-left: 6px; }
  .luma .privacy2 { border-radius: 12px; background: #faf9f6; }
  .luma .stepalert { border-radius: 10px; }
  .luma .actbar { background: rgba(246,244,239,.95); }
  .luma .confirm-tbl th { font-family: inherit; }
  .luma .qrcard { border-radius: 16px; }
  .luma #done-h1 { font-family: inherit !important; font-weight: 800; }
/* ── ほかのページ（チケット・ブース・受付・出展企業）も同じLumaの見た目に（10/30） ── */
.luma h1, .luma h2, .luma h3, .luma .title, .luma .sec-h h2, .luma .cover-tx h1, .luma .band h1, .luma .co h3, .luma .qrcard .who, .luma .qrbox .who, .luma .info th, .luma .co dt { font-family: inherit; }
.luma .sec-h h2, .luma .cover-tx h1, .luma .band h1, .luma .title { font-weight: 800; letter-spacing: .01em; }
.luma .sec-h h2 .no { display: none; }
.luma .kicker { color: var(--mute); }
.luma .kicker::before { width: 18px; }
.luma .sec, .luma .sec.paper, .luma .sec.dark { background: transparent; color: var(--ink); border-top: 0; padding: 14px 0; }
.luma .sec > .wrap { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; padding: 18px 16px 20px; max-width: 528px; }
.luma .dark .note, .luma .dark .sec-h p, .luma .dark .kicker { color: var(--ink-2); }
.luma .rows { border-top: 0; margin-top: 12px; }
.luma .field { border-bottom: 0; padding: 10px 0 12px; }
.luma .choice { border-radius: 12px; border: 1px solid #cfcdc6; background: #fff; }
.luma .choice:has(input:checked) { border-color: #151410; box-shadow: inset 0 0 0 1px #151410; background: #fffbe0; }
.luma input[type=text], .luma input[type=tel], .luma input[type=email], .luma input[type=search], .luma select, .luma textarea { border-radius: 10px; border: 1px solid #cfcdc6; background-color: #fff; }
.luma input:focus, .luma select:focus, .luma textarea:focus { outline: 0; border-color: #151410; box-shadow: 0 0 0 3px rgba(255,215,0,.55); }
.luma .cover-ph { margin: 14px 16px 0; border-radius: 16px; aspect-ratio: 16 / 9 !important; }
.luma .cover-tx { padding-top: 18px; padding-bottom: 6px; }
.luma .cover-tx h1 { font-size: 24px; line-height: 1.45; }
.luma .qrcard, .luma .qrbox { border-radius: 16px; border: 1px solid rgba(0,0,0,.08); box-shadow: 0 10px 28px rgba(0,0,0,.08); }
.luma .qrcard .who { font-weight: 800; }
.luma .badge { border-radius: 999px; }
.luma .info tr:first-child th, .luma .info tr:first-child td { border-top: 1px solid rgba(0,0,0,.08); }
.luma .info th { font-weight: 700; }
.luma .alert { border-radius: 10px; }
.luma .note a, .luma .agree a { color: inherit; }
.luma .foot { background: transparent; color: var(--mute); border-top: 1px solid rgba(0,0,0,.06); }
.luma .foot a { color: var(--mute); }
.luma .contact { color: var(--mute); }
/* 出展企業 */
.luma .band { background: transparent; color: var(--ink); text-align: left; max-width: 560px; margin: 0 auto; padding: 22px 16px 0; }
.luma .band .kicker { color: var(--mute); }
.luma .band h1 { font-size: 26px; margin: 6px 0 4px; }
.luma .band .when { color: var(--ink-2); font-family: inherit; font-weight: 500; font-size: 14px; }
.luma .daytabs { border: 1px solid rgba(0,0,0,.12); border-radius: 14px; overflow: hidden; background: #fff; }
.luma .daytabs button + button { border-left: 1px solid rgba(0,0,0,.12); }
.luma .daytabs button[aria-selected=true] { background: #151410; }
.luma .tip { border-left: 0; border-radius: 12px; }
.luma .tools { background: #f6f4ef; border-bottom: 0; }
.luma .chips button { border-radius: 999px; border-color: rgba(0,0,0,.15); }
.luma .wall { border: 0; gap: 8px; }
.luma .tile { border: 1px solid rgba(0,0,0,.08); border-radius: 12px; }
.luma .co { border: 1px solid rgba(0,0,0,.08); border-radius: 16px; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.luma .co h3 { font-weight: 800; }
.luma .co .next { border-radius: 12px; }
.luma .fav { border-radius: 10px; }
.luma .dock { background: rgba(246,244,239,.96); border-top: 1px solid rgba(0,0,0,.06); }
/* 受付（スタッフ） */
.luma .card { border-top: 0; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; }
.luma .cam { border-radius: 16px; }
.luma .res { border-radius: 16px; }
.luma .tabs button { border-radius: 10px; }
.luma .rise { animation: none; }
.luma #cam-start { background: #FFD700; border-color: #FFD700; color: #141414; }
.luma .sec > .wrap { width: calc(100% - 32px); margin: 0 auto; }
.luma .sec-h h2 { font-size: 21px; line-height: 1.5; }

/* ブースの企業を開催日ごとに分ける見出し（10/30） */
.choice-day { font-size: 13px; font-weight: 700; color: var(--ink-2); margin: 10px 0 0; }
.choice-day:first-child { margin-top: 0; }

/* 上の帯（ロゴ）と出展企業・お申込み・参加チケットの帯を重ねない（10/30 柴田「被ってしまっている」）。
   ロゴの帯が半透明でスクロールすると下の帯の字が透けていた → 2つとも透けない色にして、下の帯もロゴの帯のすぐ下に止める */
.luma .head { background: #f7f5ef; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.luma .subnav { position: sticky; top: 56px; z-index: 9; background: #f7f5ef; border-bottom: 1px solid rgba(0,0,0,.08); }

/* 企業の紹介の「Next step」を黒い面から淡い面に（10/30 柴田「黒背景が見づらい」・ボタンも黒なので面に埋もれていた） */
.luma .co .next { background: #FBF7E6; color: var(--ink); border: 1px solid rgba(0,0,0,.06); }
.luma .co .next .kicker { color: var(--mute); }
.luma .co .next .hito { color: var(--ink-2); }
.co .next .when { font-size: 13px; line-height: 1.75; margin-top: 4px; font-variant-numeric: tabular-nums; }
/* ロゴの枠：縦長のロゴ（宮田）が iPhone の Safari で見切れていた（10/30 柴田）。
   aspect-ratio の枠の中で height:100% が効かず元の高さで出ていた → ロゴを枠の内側いっぱいに絶対配置して contain で収める */
.tile img { position: absolute; top: 18px; left: 10px; right: 10px; bottom: 8px; width: calc(100% - 20px); height: calc(100% - 26px); object-fit: contain; }
/* 上の帯が大きい（10/30 柴田「デカい・見づらくなる」）：ロゴの帯は止めずに流し、細くする。
   スクロール中に残るのは「出展企業／お申込み／参加チケット」の細い帯（約40px）だけ。前は2本で約105px残っていた */
.luma .head { position: static; }
.luma .head .wrap { min-height: 46px; }
.luma .head img { height: 20px; }
.luma .subnav { top: 0; }
.luma .subnav a { padding: 9px 8px 8px; font-size: 12.5px; }

/* ════ 10/31 柴田「Bでそろえて」：配色＝薄いグレーの地＋白いカード（マイナビ・タウンワーク寄り）。黄は目印（線・選んだもの）だけ ════
   ページの中の <style> より強くするため body.luma を頭に付ける */
body.luma { background: #f1f1ef; }
body.luma .head { background: #fff; }
body.luma .subnav { background: #fff; border-bottom: 1px solid #e2e2df; }
body.luma :is(.jc, .e2-card, .e2-spec, .e2-flow, .e2-link, .dt-dl, .dt-facts, .t2-card, .t2-box, .t2-link, .b2-box, .b2-done, .step, .qrcard, .confirm-tbl) { border-color: #e2e2df; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
body.luma :is(.tip, .e2-note) { background: #fff; border: 1px solid #e2e2df; border-left: 4px solid #FFD700; border-radius: 10px; }
body.luma .dt-next { background: #fff; border: 1px solid #e2e2df; border-left: 4px solid #FFD700; }
body.luma :is(.jc-tags span, .e2-tags span) { background: #f1f1ef; }
body.luma .dsheet { background: #f1f1ef; }
body.luma .sheet-bar { background: #fff; border-bottom: 1px solid #e2e2df; }
body.luma :is(.dock, .e2-dock, .b2-dock, .dt-cta, .actbar) { background: rgba(255,255,255,.97); border-top: 1px solid #e2e2df; }
body.luma .stepbar { background: #f1f1ef; }
body.luma :is(.v2-search input, .v2-search .favf:not([aria-pressed=true]), .v2 .daytabs button:not([aria-selected=true])) { border-color: #dcdcd8; }
body.luma .foot { background: transparent; }
