@charset "UTF-8";
/* 北中城村ウェルネススポーツフェスタ2026 予約サイト
   配色：ひまわりの黄 #F2B705 ／ 石灰岩の生成り #F4EFE4 ／ 海の青 #1F6FA8
         葉の緑 #3E8E5A ／ 文字 #23211B                                   */

:root{
  --yellow:#F2B705;
  --yellow-dark:#C79403;
  --cream:#F4EFE4;
  --paper:#FFFDF8;
  --blue:#1F6FA8;
  --blue-deep:#15537E;
  --green:#3E8E5A;
  --green-deep:#2E6E44;
  --ink:#23211B;
  --ink-soft:#5B564A;
  --line:#DCD3C0;
  --red:#B3281E;
  --radius:16px;
}

*{ box-sizing:border-box; }

/* hidden は必ず隠す（.btn などの display 指定に負けないように） */
[hidden]{ display:none !important; }

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "BIZ UDPGothic", "Yu Gothic", Meiryo, sans-serif;
  font-size:18px;
  line-height:1.8;
  letter-spacing:.02em;
}

img{ max-width:100%; }

a{ color:var(--blue-deep); }

/* ---------- 共通の枠 ---------- */
.wrap{
  width:100%;
  max-width:720px;
  margin:0 auto;
  padding:0 16px;
}

section{ padding:32px 0; }

h1,h2,h3{ line-height:1.5; margin:0 0 16px; }

h2{
  font-size:26px;
  color:var(--blue-deep);
  display:flex;
  align-items:center;
  gap:10px;
}
h2 .bar{
  display:inline-block;
  width:8px; height:28px;
  background:var(--yellow);
  border-radius:4px;
  flex:0 0 auto;
}
h3{ font-size:21px; }

p{ margin:0 0 16px; }

.lead{ font-size:19px; }
.muted{ color:var(--ink-soft); font-size:16px; }
.small{ font-size:15px; color:var(--ink-soft); }

/* ---------- お知らせ帯（デモ表示） ---------- */
.demo-bar{
  background:#5B564A;
  color:#fff;
  text-align:center;
  padding:10px 16px;
  font-size:16px;
}

/* ---------- ヘッダー ---------- */
.site-head{
  background:var(--paper);
  border-bottom:4px solid var(--yellow);
}
.site-head-inner{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  max-width:720px;
  margin:0 auto;
}
.site-head .sun{ flex:0 0 auto; }
.site-head .name{
  font-size:17px;
  font-weight:700;
  line-height:1.4;
}
.site-head .name span{
  display:block;
  font-size:14px;
  font-weight:400;
  color:var(--ink-soft);
}

/* ---------- ヒーロー ---------- */
.hero{
  background:linear-gradient(180deg,#FFF6DC 0%, var(--cream) 100%);
  padding:28px 0 8px;
  text-align:center;
}
.hero h1{
  font-size:29px;
  color:var(--blue-deep);
}
.hero .date{
  display:inline-block;
  background:var(--yellow);
  color:var(--ink);
  font-weight:700;
  font-size:20px;
  border-radius:var(--radius);
  padding:10px 18px;
  margin-bottom:12px;
}
.hero .free{
  display:inline-block;
  border:2px solid var(--green);
  color:var(--green-deep);
  font-weight:700;
  border-radius:999px;
  padding:4px 16px;
  font-size:17px;
}

/* ---------- 情報カード ---------- */
.card{
  background:var(--paper);
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:20px;
}

.info-list{
  list-style:none;
  margin:0;
  padding:0;
}
.info-list li{
  display:flex;
  gap:12px;
  padding:12px 0;
  border-bottom:1px dashed var(--line);
}
.info-list li:last-child{ border-bottom:none; }
.info-list .k{
  flex:0 0 5.5em;
  font-weight:700;
  color:var(--blue-deep);
}
.info-list .v{ flex:1 1 auto; }

/* ---------- ブースカード ---------- */
.booth{
  background:var(--paper);
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:20px;
}
.booth.is-free{ border-color:#CFE3D6; background:#F7FCF8; }

.booth h3{
  margin:0 0 6px;
  font-size:22px;
  color:var(--ink);
}
.booth .zone{
  font-size:15px;
  color:var(--ink-soft);
  margin:0 0 12px;
}
.booth dl{
  margin:0 0 12px;
  padding:0;
}
.booth dl div{
  display:flex;
  gap:10px;
  padding:6px 0;
  border-bottom:1px dashed var(--line);
}
.booth dl dt{
  flex:0 0 4.5em;
  margin:0;
  font-weight:700;
  color:var(--blue-deep);
  font-size:16px;
}
.booth dl dd{ margin:0; flex:1 1 auto; font-size:17px; }
.booth .desc{ font-size:17px; margin:12px 0; }

.caution{
  background:#FFF4E5;
  border-left:6px solid var(--yellow-dark);
  border-radius:8px;
  padding:12px 14px;
  font-size:16px;
  margin:12px 0;
}

/* 残り枠 */
.remain{
  display:inline-block;
  font-weight:700;
  font-size:17px;
  border-radius:999px;
  padding:6px 16px;
  margin-bottom:12px;
}
.remain.ok{ background:#E4F3E9; color:var(--green-deep); border:2px solid var(--green); }
.remain.few{ background:#FFF1D6; color:#8A6400; border:2px solid var(--yellow-dark); }
.remain.full{ background:#F5E7E6; color:var(--red); border:2px solid var(--red); }

.tag-provisional{
  display:inline-block;
  font-size:14px;
  color:var(--ink-soft);
  background:#EFEAE0;
  border-radius:8px;
  padding:2px 10px;
  margin-left:6px;
  vertical-align:middle;
}

/* ---------- ボタン ---------- */
.btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  min-height:56px;
  padding:14px 18px;
  border-radius:var(--radius);
  border:2px solid transparent;
  font-family:inherit;
  font-size:19px;
  font-weight:700;
  line-height:1.4;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  margin-bottom:12px;
}
.btn-main{ background:var(--yellow); color:var(--ink); border-color:var(--yellow-dark); }
.btn-main:active{ background:var(--yellow-dark); }
.btn-sub{ background:var(--paper); color:var(--blue-deep); border-color:var(--blue); }
.btn-line{ background:#fff; color:var(--ink); border-color:var(--line); }
.btn-go{ background:var(--green); color:#fff; border-color:var(--green-deep); }
.btn-quiet{ background:transparent; color:var(--blue-deep); border-color:var(--line); font-weight:400; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; }

.btn-row{ display:flex; gap:12px; flex-wrap:wrap; }
.btn-row .btn{ flex:1 1 160px; width:auto; }

/* ---------- 出展者 ---------- */
.exhibitor{
  background:var(--paper);
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:20px;
  margin-bottom:20px;
}
.exhibitor h3{ margin:0 0 4px; color:var(--blue-deep); }
.exhibitor .people{ font-size:17px; font-weight:700; margin:0 0 2px; }
.exhibitor .tag{ font-size:16px; color:var(--ink-soft); margin:0 0 12px; }
.exhibitor .intro{ font-size:17px; }
.exhibitor .booths-of{ font-size:15px; color:var(--ink-soft); margin-bottom:12px; }

/* ---------- モーダル ---------- */
.modal-back{
  position:fixed;
  inset:0;
  background:rgba(35,33,27,.6);
  padding:16px;
  overflow-y:auto;
  z-index:50;
}
.modal{
  background:var(--paper);
  border-radius:var(--radius);
  max-width:600px;
  margin:24px auto;
  padding:24px 20px;
}
.modal h3{ color:var(--blue-deep); }

/* ---------- フォーム ---------- */
.field{ margin-bottom:22px; }
.field label{
  display:block;
  font-size:18px;
  font-weight:700;
  margin-bottom:8px;
}
.req{
  display:inline-block;
  background:var(--red);
  color:#fff;
  font-size:13px;
  border-radius:6px;
  padding:1px 8px;
  margin-left:8px;
  vertical-align:2px;
}
.opt{
  display:inline-block;
  background:#EFEAE0;
  color:var(--ink-soft);
  font-size:13px;
  border-radius:6px;
  padding:1px 8px;
  margin-left:8px;
  vertical-align:2px;
}
.field .hint{
  font-size:15px;
  color:var(--ink-soft);
  margin:0 0 8px;
}
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="number"],
select,
textarea{
  width:100%;
  min-height:56px;
  padding:12px 14px;
  font-family:inherit;
  font-size:18px;
  color:var(--ink);
  background:#fff;
  border:2px solid var(--line);
  border-radius:var(--radius);
}
textarea{ min-height:110px; line-height:1.7; }
input:focus, select:focus, textarea:focus{
  outline:3px solid var(--blue);
  outline-offset:1px;
  border-color:var(--blue);
}

.check{
  display:flex;
  align-items:flex-start;
  gap:12px;
  background:#fff;
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:14px;
  margin-bottom:12px;
  font-size:17px;
  font-weight:400;
  cursor:pointer;
}
.check input{
  width:26px; height:26px;
  flex:0 0 auto;
  margin-top:2px;
  accent-color:var(--blue);
}
.check .t{ flex:1 1 auto; }
.check .t b{ display:block; font-size:18px; }
.check .t span{ font-size:15px; color:var(--ink-soft); }

.msg{
  border-radius:var(--radius);
  padding:14px 16px;
  font-size:17px;
  margin-bottom:16px;
}
.msg-err{ background:#F9E9E8; border:2px solid var(--red); color:#7C1A13; }
.msg-ok{ background:#E4F3E9; border:2px solid var(--green); color:var(--green-deep); }
.msg-info{ background:#E7F0F7; border:2px solid var(--blue); color:var(--blue-deep); }

/* ---------- チケット ---------- */
.ticket{
  background:var(--paper);
  border:3px solid var(--yellow-dark);
  border-radius:var(--radius);
  overflow:hidden;
  margin-bottom:24px;
}
.ticket-head{
  background:var(--yellow);
  padding:16px 20px;
  text-align:center;
}
.ticket-head .ttl{ font-size:18px; font-weight:700; margin:0; }
.ticket-no{
  display:block;
  font-size:40px;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.3;
  margin-top:4px;
}
.ticket-body{ padding:20px; }
.ticket-cut{
  border-top:3px dashed var(--yellow-dark);
  margin:0;
}
.ticket-body .row{
  display:flex;
  gap:12px;
  padding:10px 0;
  border-bottom:1px dashed var(--line);
}
.ticket-body .row:last-of-type{ border-bottom:none; }
.ticket-body .row .k{ flex:0 0 5em; font-weight:700; color:var(--blue-deep); }

.steps{
  counter-reset:s;
  list-style:none;
  margin:0;
  padding:0;
}
.steps li{
  counter-increment:s;
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:10px 0;
  font-size:17px;
}
.steps li::before{
  content:counter(s);
  flex:0 0 32px;
  height:32px;
  background:var(--blue);
  color:#fff;
  border-radius:50%;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:17px;
}

/* ---------- フッター ---------- */
.site-foot{
  background:var(--paper);
  border-top:4px solid var(--yellow);
  padding:24px 0;
  margin-top:24px;
}
.site-foot .note{
  font-size:15px;
  color:var(--ink-soft);
}

/* ---------- チェックイン画面 ---------- */
.checkin-body{ background:#23211B; color:#fff; }
.checkin-body .wrap{ max-width:560px; }
.checkin-body h1{ font-size:24px; color:#fff; }
.checkin-body h2{ color:#FFDD72; font-size:22px; }
.checkin-body .card{
  background:#2F2C24;
  border-color:#4A463B;
  color:#fff;
}
.checkin-body .muted, .checkin-body .small{ color:#C9C3B4; }
.checkin-body input{ background:#fff; }
.checkin-body a{ color:#FFDD72; }
.checkin-body .btn-line{ background:#3A362D; color:#fff; border-color:#5A5449; }

#reader-box{
  background:#000;
  border-radius:var(--radius);
  overflow:hidden;
  margin-bottom:12px;
}
#reader-box video{ width:100%; display:block; }

.person-name{ font-size:32px; font-weight:700; line-height:1.4; margin:4px 0 8px; }
.person-no{ font-size:22px; font-weight:700; color:#FFDD72; }
.badge-big{
  display:inline-block;
  font-size:20px;
  font-weight:700;
  border-radius:999px;
  padding:8px 20px;
  margin:8px 0 12px;
}
.badge-yet{ background:#FFDD72; color:#23211B; }
.badge-done{ background:var(--green); color:#fff; }
.booth-line{
  font-size:20px;
  padding:10px 0;
  border-bottom:1px dashed #4A463B;
}
.booth-line:last-child{ border-bottom:none; }

/* ---------- PC ---------- */
@media (min-width:768px){
  body{ font-size:19px; }
  .hero h1{ font-size:36px; }
  h2{ font-size:30px; }
  .wrap{ padding:0 24px; }
}

/* 印刷（チケットを紙で持っていく人向け） */
@media print{
  .no-print{ display:none !important; }
  body{ background:#fff; }
}


/* =====================================================================
   観光協会サイト（kitapo.jp）に合わせた見た目 — 白地・緑・丸ゴシック
   ===================================================================== */
:root{
  --cream:#FFFFFF; --paper:#FFFFFF;
  --blue:#468977; --blue-deep:#2F6B5A;
  --green:#468977; --green-deep:#2F6B5A;
  --yellow:#468977; --yellow-dark:#2F6B5A;
  --line:#DDE7E2; --ink:#222; --ink-soft:#555;
  --radius:14px;
}
body{ font-family:"M PLUS 1p","Noto Sans JP","Hiragino Sans",Meiryo,sans-serif; background:#fff; }
h1,h2,h3,.kana,.wordmark,.gnav a,.crumb{ font-family:"Zen Maru Gothic","M PLUS 1p","Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif; }
h2{ color:var(--green-deep); border-bottom:3px solid var(--green); padding-bottom:8px; }
h2 .bar{ background:var(--green); }
.btn-main{ background:var(--green); color:#fff; border-color:var(--green-deep); }
.btn-main:active{ background:var(--green-deep); }
.btn-sub{ background:#fff; color:var(--green-deep); border-color:var(--green); }
.hero .date,.top .date{ background:#EAF3EF; color:var(--green-deep); }
.ticket{ border-color:var(--green); } .ticket-head{ background:#EAF3EF; } .ticket-cut{ border-top-color:var(--green); }
.site-foot{ border-top:4px solid var(--green); background:#F4F8F6; }
.demo-bar{ background:#2F6B5A; }

/* ヘッダー */
.site-head{ background:#fff; border-bottom:1px solid var(--line); }
.site-head-inner{ max-width:960px; flex-direction:column; align-items:stretch; gap:8px; padding:12px 16px 0; }
.wordmark{ text-decoration:none; color:var(--green); line-height:1.25; display:block; }
.wordmark .wm-small{ display:block; font-size:14px; letter-spacing:.2em; }
.wordmark .wm-main{ display:block; font-size:22px; font-weight:700; }
.wordmark .wm-sub{ display:inline-block; margin-top:2px; font-size:13px; color:var(--ink-soft); }
.gnav{ display:flex; gap:4px; justify-content:space-between; overflow-x:auto; padding:8px 0 10px; }
.gnav a{
  flex:1 1 0; min-width:84px; min-height:64px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  color:var(--green); text-decoration:none; font-size:15px; font-weight:700; letter-spacing:.04em;
  border-radius:12px; padding:6px 2px;
}
.gnav a:hover,.gnav a:focus{ background:#EAF3EF; }
.gnav svg,.big svg{ width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }

/* パンくず */
.crumb{ background:#F4F8F6; font-size:14px; color:var(--ink-soft); }
.crumb .wrap{ padding-top:6px; padding-bottom:6px; }
.crumb a{ color:var(--green-deep); text-decoration:none; }
.crumb span{ margin:0 8px; }

/* 上の大きなボタン */
.top{ padding:20px 0 4px; text-align:center; }
.top h1{ font-size:30px; color:var(--green-deep); margin:0 0 10px; }
.bigmenu{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:16px 0 14px; }
.big{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  min-height:112px; padding:14px 8px; border:3px solid var(--green); border-radius:18px;
  background:#fff; color:var(--green-deep); text-decoration:none;
}
.big:active,.big:hover{ background:#EAF3EF; }
.big .kana{ font-size:22px; font-weight:700; letter-spacing:.06em; }
.big .sub{ font-size:13px; color:var(--ink-soft); line-height:1.4; }
.big svg{ width:34px; height:34px; color:var(--green); }

/* カードの緑ライン */
.booth,.exhibitor,.card{ border:2px solid var(--line); box-shadow:0 1px 0 rgba(0,0,0,.02); }
.booth h3,.exhibitor h3{ color:var(--green-deep); }
.booth dl dt,.info-list .k,.ticket-body .row .k{ color:var(--green-deep); }
.booth.is-free{ background:#F4F8F6; border-color:#CFE0D8; }
.remain.ok{ background:#EAF3EF; color:var(--green-deep); border-color:var(--green); }
.steps li::before{ background:var(--green); }
.check input{ accent-color:var(--green); }
input:focus, select:focus, textarea:focus{ outline-color:var(--green); border-color:var(--green); }

@media (min-width:768px){
  .site-head-inner{ flex-direction:row; align-items:center; justify-content:space-between; padding:12px 24px; }
  .gnav{ padding:0; gap:8px; }
  .gnav a{ min-width:110px; font-size:16px; }
  .bigmenu{ grid-template-columns:repeat(4,1fr); }
  .big .kana{ font-size:24px; }
  .top h1{ font-size:34px; }
  .wrap{ max-width:960px; }
}

/* ほかにも予約（2段） */
#other-panel .exp{ margin-bottom:10px; }
#other-panel .exp-btn{ justify-content:flex-start; text-align:left; margin-bottom:6px; }
#other-panel .exp-times{ padding:4px 0 6px 10px; border-left:4px solid var(--line); margin:0 0 10px 6px; }
#other-panel .exp-times .check{ margin-bottom:8px; }

/* 手順の番号 */
.stepno{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--green); color:#fff; font-size:15px; font-weight:700; margin-right:8px; vertical-align:middle; }
.person.card{ padding:12px 14px; margin-bottom:10px; }
.person .field label{ font-size:16px; margin-bottom:4px; }
.person input, .person select{ min-height:48px; }

/* 送信中 */
.sending{ position:fixed; inset:0; background:rgba(255,255,255,.85); z-index:60; display:flex; align-items:center; justify-content:center; }
.sending-box{ text-align:center; font-size:20px; font-weight:700; color:var(--green-deep); }
.spin{ width:56px; height:56px; border:6px solid #DDE7E2; border-top-color:var(--green); border-radius:50%; margin:0 auto 14px; animation:spin 1s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
/* 予約完了 */
.splash{ text-align:center; background:#EAF3EF; border:3px solid var(--green); border-radius:18px; padding:26px 16px 18px; margin:8px 0 20px; animation:pop .5s ease-out; }
.splash-t{ font-size:28px; font-weight:700; color:var(--green-deep); margin:10px 0 6px; font-family:"Zen Maru Gothic","M PLUS 1p",sans-serif; }
.splash-s{ font-size:16px; color:var(--ink-soft); margin:0; }
@keyframes pop{ from{ transform:scale(.9); opacity:0; } to{ transform:scale(1); opacity:1; } }
.p-booths{ background:#F4F8F6; border-radius:10px; padding:8px 10px; margin-top:4px; }

/* 受付：白いカードの文字色／読み取り枠 */
.checkin-body .check{ color:var(--ink); }
.checkin-body .check .t b{ color:var(--ink); }
#reader-box{ position:relative; }
.reader-guide{ position:absolute; left:50%; top:50%; width:60%; aspect-ratio:1/1; transform:translate(-50%,-50%); border:4px solid rgba(255,221,114,.95); border-radius:14px; pointer-events:none; box-shadow:0 0 0 2000px rgba(0,0,0,.25); }
.reader-hint{ position:absolute; left:0; right:0; bottom:8px; margin:0; text-align:center; color:#fff; font-size:15px; text-shadow:0 1px 3px #000; }

/* ══ 金継ぎ追補スタイル v4（2026-09-13・4巡目＝大ボタン説明の balance を外し文節折りを優先）北中城フェスタ2026 予約サイト ══
   2026-09-13 なつきさん承認で本体に反映（元は docs/kintsugi/kintsugi-repair.css）。
   直した根: ①読めない薄さの緑（比4.11→床4.5超） ②文字サイズの役割内の割れ ③似て非なる色（白に近い薄緑4種→1種）
            ④角丸6種→3種 ⑤語の途中で折れる（ナビ・大ボタン・本文の文節折り） */

/* ① 緑を1本に。文字にも線にも使える深さ（白地で比 6.3） */
:root{ --green:#2F6B5A; --green-deep:#2F6B5A; --blue:#2F6B5A; --blue-deep:#2F6B5A; --yellow:#2F6B5A; --yellow-dark:#2F6B5A;
       --line:#D9E8E0; --tint:#D9E8E0; }  /* 線と下敷きを同じ薄緑1色に＝色の数を増やさない */
.wordmark{ color:var(--green-deep); }
.gnav a{ color:var(--green-deep); }
.stepno{ background:var(--green-deep); }

/* ③ 白に近い薄緑（#EAF3EF・#F4F8F6）を1つの --tint に。役割は「面の下敷き」で同じ */
#hero-date, .remain.ok, .gnav a:hover, .gnav a:focus, .big:active, .big:hover, .splash,
.crumb, footer.site-foot, .p-booths, #booth-chair { background:var(--tint); }
.remain.ok{ border-color:var(--green-deep); color:var(--green-deep); }
/* 注意書き（足もみの禁忌）は役割色＝橙の下敷きを残し、白との差だけ広げる */
.booth .caution, #booth-ashimomi > p.caution{ background:#FFE9C2; }
/* 「仮」タグ・任意タグ・予約なしブースの下敷きも同じ --tint に（灰を1色減らす） */
.tag-provisional, span.opt, .opt{ background:var(--tint); }
.booth.is-free{ background:var(--tint); border-color:var(--line); }

/* ② 文字サイズ：役割の中で割れていた段を寄せる（大きさは保つ） */
h3{ font-size:22px; }
.booth .zone, .zone{ font-size:16px; }
#hero-date{ font-size:19px; }
.wordmark .wm-sub{ font-size:14px; }
.small{ font-size:16px; }
.free, #hero-free{ font-size:19px; }
.big .sub{ font-size:14px; }
.exhibitor .booths-of{ font-size:16px; }
span.k, .booth .k{ font-size:16px; }
#foot-organizer{ font-size:16px; }
.big .kana{ font-size:22px; }
@media (min-width:768px){ .big .kana{ font-size:22px; } .gnav a{ font-size:16px; } }
.gnav a{ font-size:16px; }
/* 予約フォーム：補足の段を 14（タグ・丸数字・小さな注記）と 16（ラベル・ヒント）の2つに */
.field label, #field-people > label, .person .field label{ font-size:16px; }
.field .hint, #field-people > p.hint, .hint{ font-size:16px; }
.check .t b{ font-size:16px; }
.check .t span{ font-size:14px; }
.req, span.req, .opt, span.opt{ font-size:14px; }
.stepno{ font-size:14px; }

/* ④ 角丸を 小8・面14・丸999 の3種に */
h2 .bar, .bar, span.bar{ border-radius:8px; }
.opt, span.opt{ border-radius:8px; }
.tag-provisional, .req, span.req{ border-radius:8px; }
.gnav a{ border-radius:14px; }
.big{ border-radius:14px; }
.p-booths{ border-radius:14px; }

/* ⑤ 語の途中で折れない：ナビと大ボタンの語は1行に。本文は文節で折る（対応ブラウザのみ・非対応は今のまま） */
.gnav a{ white-space:nowrap; }
@media (max-width:767px){
  .gnav{ display:grid; grid-template-columns:1fr 1fr; gap:6px; overflow:visible; }
  .gnav a{ min-width:0; min-height:52px; }
}
.big .kana{ white-space:nowrap; }
@media (max-width:767px){
  .big{ padding:14px 6px; }
  .big .kana{ font-size:19px; letter-spacing:.03em; }
}
.big .sub, .booth .desc, .booth dd, .exhibitor .intro, .exhibitor .booths-of, .exhibitor .tag, .lead, .small, .muted, p{ word-break:auto-phrase; }
h1,h2,h3{ text-wrap:balance; }
#hero-date, .big .sub, .gnav a, .kana{ word-break:auto-phrase; }

/* ── 本体反映のときに足した分（2026-09-13） ── */
.hero-time{ display:inline-block; margin-left:.6em; }          /* 日付帯の時間はひとかたまりで折る */
.slot-state.is-full{ color:var(--ink-soft); text-decoration:line-through; }
.age-hint{ margin:4px 0 0; color:var(--green-deep); font-weight:700; }
.checkin-body #pin{ width:100%; min-height:56px; padding:12px 14px; font-size:22px; letter-spacing:.2em; border:2px solid var(--line); border-radius:var(--radius); font-family:inherit; }
/* 出展者の写真（丸）2026-09-13 */
.ex-photo{ float:right; width:104px; height:104px; border-radius:50%; object-fit:cover; margin:0 0 10px 14px; border:3px solid var(--tint); background:var(--tint); }
.exhibitor::after, #modal-body::after{ content:""; display:block; clear:both; }
@media (min-width:768px){ .ex-photo{ width:128px; height:128px; } }
/* 名前の横の（肩書き）：途中で折らない。携帯では名前の下の行に */
.people-sub{ white-space:nowrap; font-weight:400; color:var(--ink-soft); }
@media (max-width:767px){ .people-sub{ display:block; font-size:15px; margin-top:2px; } }
@media (min-width:768px){ .people-sub{ margin-left:.3em; } }
/* フッターのスタッフ用リンク（小さく・目立たせない）2026-09-14 */
.staff-note{ font-size:14px; color:var(--ink-soft); margin-top:10px; }
.staff-note a{ color:var(--ink-soft); text-decoration:underline; }
