@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Inter:wght@400;500;600;700;800&display=swap');

/* ========== トークン ========== */
:root{
  /* 地 - 面の70%。ここで温かみを出す */
  --cream:#FDFFFA; --sand:#F2EFE6; --beige:#EDE7D9;
  --light-taupe:#D8CBB3; --taupe:#B3A488;
  /* 文字 - 純黒は使わない */
  --ink:#333333; --warm-gray:#6F6453; --warm-gray-light:#8C8275;
  /* ===== テーマ配色（この3行だけ差し替えれば全体の配色が変わる） ===== */
  --header-color:#C1DB81;    /* ヘッダー（.hero）背景。文字色はinkに固定してあるのでパステルでも読める */
  --button-color:#792A2A;    /* ボタン・バッジ・リンク・フッター等の地色。白文字を乗せるので暗めが必須 */
  --accent-color:#FFF33F;    /* 点アクセント専用（カード罫線・丸バッジ）。文字色には使わない前提なので明るくてよい */
  /* ===== ここまで ===== */
  --accent-red:#DA1725;      /* ページ全体で1回だけ */
  --deep-green:#5E7235;      /* LINE導線ボタン専用。テーマに関係なく緑固定（LINEのブランド色） */
  --deep-green-dark:#4C5C2B;
  --booth-color:#63792A;     /* 出展者ページの地。ヘッダー緑(#C1DB81)と同色相を保ったまま明度を下げた深緑。来場者ページと一目で見分けるため */
  --radius-xs:8px;
  --radius-sm:15px;
  --radius-lg:30px;
  --shadow:0 18px 45px rgba(51,51,51,.09);
  --max:1000px;      /* ページの外枠。全ブロックがこの幅で右端を揃える */
  --measure:1000px;  /* 本文・リスト系。--max と同値にして階段状のズレをなくす */
}

/* ========== ベース ========== */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:"Noto Sans JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-feature-settings:"palt" 1;
  line-height:1.8;
  text-align:left;
}
a{color:inherit}
a:focus-visible,
button:focus-visible,
summary:focus-visible{
  outline:3px solid var(--accent-color);
  outline-offset:4px;
}
.num,
time{
  font-family:"Inter","Noto Sans JP",sans-serif;
  font-weight:600;
  font-feature-settings:normal;
}
.wrap{
  width:min(100% - 32px,var(--max));
  margin-inline:auto;
}
h1,h2,h3,p{margin-top:0}

/* ========== ヒーロー ========== */
.hero{
  display:grid;
  align-items:center;
  min-height:520px;
  padding:64px 0 56px;
  background:var(--header-color);
  color:var(--ink);
}
.hero-copy{
  max-width:920px;
  margin-inline:auto;
  text-align:center;
}
.eyebrow{
  display:inline-block;
  margin:0 0 18px;
  color:rgba(51,51,51,.85);
  font-weight:700;
  letter-spacing:0;
}
h1{
  margin-bottom:24px;
  font-size:clamp(2.15rem,6vw,5.2rem);
  line-height:1.08;
  font-weight:900;
  letter-spacing:0;
}
.hero-subtitle,
.subtitle{
  margin:0 0 28px;
  color:rgba(51,51,51,.92);
  font-size:clamp(1.2rem,3vw,2rem);
  font-weight:900;
  line-height:1.35;
}
.hero-primary{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin:0 0 24px;
}
.hero-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:10px 20px;
  border:1px solid rgba(51,51,51,.28);
  border-radius:999px;
  color:var(--ink);
  font-size:clamp(1.05rem,3vw,1.55rem);
  font-weight:900;
  background:rgba(253,255,250,.55);
}
.hero-pill.strong{
  background:var(--ink);
  color:var(--cream);
  border-color:var(--ink);
}
.hero-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px 24px;
  margin:0;
  padding:0;
  list-style:none;
  color:rgba(51,51,51,.85);
  font-weight:700;
  font-size:1.05rem;
}

/* 出展者ページは地の色を一段濃くして、来場者ページと一目で見分けられるようにする。
   --booth-colorは暗い深緑なので、来場者ページ用のink文字（淡いヘッダー前提）ではなく
   cream文字に切り替える */
.page-booth .hero,
.page-booth footer{background:var(--booth-color)}
.page-booth .hero{color:var(--cream)}
.page-booth .hero .eyebrow,
.page-booth .hero .hero-subtitle,
.page-booth .hero .subtitle,
.page-booth .hero .hero-meta{color:var(--cream)}
.page-booth .hero .hero-pill{color:var(--cream);background:rgba(253,255,250,.12);border-color:rgba(253,255,250,.38)}
.page-booth .hero .hero-pill.strong{background:var(--cream);color:var(--booth-color);border-color:var(--cream)}
.page-booth footer p{color:var(--cream)}
.page-booth .emphasis{background:var(--booth-color)}
.page-booth .parking-box{background:var(--booth-color)}
.page-booth .parking-box p{color:var(--cream)}
.page-booth .subnav{border-bottom-color:var(--taupe)}

/* ========== ページ切替ナビ + ページ内アンカー ========== */
.subnav{
  position:sticky;
  top:0;
  z-index:15;
  padding:12px 0;
  background:var(--sand);
  border-bottom:1px solid var(--light-taupe);
}
.page-switch{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
}
.page-switch a,
.page-switch span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:6px 18px;
  border:2px solid var(--button-color);
  border-radius:999px;
  font-weight:800;
  font-size:.98rem;
  text-decoration:none;
}
.page-switch span[aria-current="page"]{
  background:var(--button-color);
  color:var(--cream);
}
.page-booth .page-switch span[aria-current="page"],
.page-booth .page-switch a:hover{
  background:var(--booth-color);
  border-color:var(--booth-color);
  color:var(--cream);
}
.page-visitor .page-switch a:hover{
  background:var(--button-color);
  color:var(--cream);
}
.anchor-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px 20px;
  margin:10px 0 0;
  padding:0;
  list-style:none;
  color:var(--warm-gray);
  font-size:.94rem;
  font-weight:700;
}
.anchor-nav a{text-underline-offset:5px}
/* アンカーで飛んだとき、固定ナビの裏に見出しが隠れないようにする */
h2[id]{scroll-margin-top:120px}

/* ========== セクション共通 ========== */
section{padding:72px 0}
section:nth-of-type(even){background:var(--sand)}
.section-head{margin-bottom:32px}
.label{
  display:inline-block;
  margin-bottom:12px;
  color:var(--warm-gray);
  font-size:.92rem;
  font-weight:700;
}
h2{
  margin-bottom:12px;
  font-size:clamp(1.8rem,4vw,2.8rem);
  line-height:1.25;
  font-weight:900;
  letter-spacing:0;
}
h3{
  margin-bottom:10px;
  font-size:1.22rem;
  line-height:1.45;
  font-weight:700;
}
.lead{
  max-width:var(--measure);
  margin-bottom:0;
  color:var(--warm-gray);
  font-size:1.05rem;
  font-weight:500;
}
.story{
  max-width:var(--measure);
  display:grid;
  gap:22px;
  color:var(--warm-gray);
  font-size:1.04rem;
  font-weight:500;
}
.story p{margin:0}
.emphasis{
  max-width:var(--measure);
  margin:36px 0;
  padding:28px;
  border-radius:var(--radius-xs);
  background:var(--button-color);
  color:var(--cream);
  font-size:clamp(1.25rem,3vw,1.7rem);
  line-height:1.55;
  font-weight:900;
}
.note{
  margin:14px 0 0;
  color:var(--warm-gray);
  font-size:.94rem;
  font-weight:500;
}
.note-center{text-align:center}

/* ========== カード類 ========== */
.quote-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  margin:32px 0 40px;
}
.quote-card{
  min-width:0;
  padding:22px;
  border-left:8px solid var(--accent-color);
  border-radius:var(--radius-xs);
  background:var(--cream);
  box-shadow:var(--shadow);
  font-weight:800;
}
.three-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.point{
  position:relative;
  min-width:0;
  padding:28px;
  border-radius:var(--radius-lg);
  background:var(--sand);
  box-shadow:var(--shadow);
}
.point-num{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  margin-bottom:18px;
  border-radius:999px;
  background:var(--accent-color);
  color:var(--ink);
  font-family:"Inter",sans-serif;
  font-weight:700;
}
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:16px;
  margin-top:32px;
}
.card{
  min-width:0;
  padding:24px;
  border:1px solid var(--light-taupe);
  border-radius:var(--radius-xs);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.card h3{margin-bottom:8px;font-size:1.18rem}
.point p,
.card p,
.placeholder-card p,
.host p{
  margin-bottom:0;
  color:var(--warm-gray);
  font-weight:500;
}
.card p{margin:0}
.placeholder-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px;
  max-width:var(--measure);
  margin-top:32px;
}
.placeholder-card{
  min-width:0;
  padding:18px;
  border:1px solid var(--light-taupe);
  border-radius:var(--radius-sm);
  background:var(--cream);
}
.photo-placeholder{
  display:grid;
  place-items:center;
  aspect-ratio:4/3;
  margin-bottom:18px;
  border:2px solid var(--taupe);
  border-radius:var(--radius-sm);
  background:var(--beige);
  color:var(--warm-gray);
  font-weight:700;
}

/* ========== タイムライン・フロー ========== */
.timeline{
  display:grid;
  gap:16px;
  max-width:var(--measure);
}
.time-row{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:20px;
  align-items:center;
  padding:22px 24px;
  border-radius:var(--radius-sm);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.time-row time{
  color:var(--button-color);
  font-size:1.35rem;
}
.time-row p{
  margin:0;
  font-weight:700;
}
.flow-list{
  display:grid;
  gap:14px;
  max-width:var(--measure);
  margin:32px 0 0;
  padding:0;
  list-style:none;
}
.flow-list li{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:18px;
  align-items:start;
  padding:22px 24px;
  border-radius:var(--radius-sm);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.flow-num{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border-radius:999px;
  background:var(--accent-color);
  color:var(--ink);
  font-family:"Inter",sans-serif;
  font-weight:700;
}
.flow-list strong{
  display:block;
  margin-bottom:4px;
  font-size:1.08rem;
}
.flow-list p{
  margin:0;
  color:var(--warm-gray);
  font-weight:500;
}

/* ========== チケット比較表 ========== */
.compare-shell{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow);
  background:var(--cream);
}
table{
  width:100%;
  min-width:720px;
  border-collapse:collapse;
  background:var(--cream);
}
th,td{
  padding:18px 20px;
  border-bottom:1px solid var(--light-taupe);
  vertical-align:top;
  text-align:left;
}
th{
  background:var(--button-color);
  color:var(--cream);
  font-weight:700;
}
tr:last-child td{border-bottom:0}
td:first-child{
  width:28%;
  font-weight:700;
  color:var(--button-color);
}

/* ========== 開催概要・アクセス ========== */
.access-card{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:start;
}
.info-box,
.parking-box,
.host{
  padding:28px;
  border-radius:var(--radius-lg);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.info-list{
  display:grid;
  gap:14px;
  margin:0;
}
.info-list div{
  display:grid;
  grid-template-columns:96px 1fr;
  gap:16px;
}
.info-list dt{
  color:var(--warm-gray);
  font-weight:700;
}
.info-list dd{
  margin:0;
  font-weight:500;
}
.map-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:22px;
  color:var(--button-color);
  font-weight:700;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}
.parking-box{
  background:var(--button-color);
  color:var(--cream);
}
.parking-box h3{margin-bottom:12px}
.parking-box p{
  margin:0;
  color:rgba(253,255,250,.92);
  font-weight:700;
}
.parking-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:18px;
  color:var(--cream);
  font-weight:700;
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}
.map-embed{
  margin-top:24px;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  aspect-ratio:16/7;
}
.map-embed iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
}

/* ========== 早見案内ボックス（想いセクション直後） ========== */
.quick-info{
  max-width:var(--measure);
  margin-top:36px;
  padding:28px;
  border-radius:var(--radius-lg);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.quick-info h3{margin-bottom:16px}
.quick-info .info-list{margin-bottom:20px}
.quick-info .story{margin-bottom:20px;color:var(--ink);font-weight:500}

/* ========== 出展ブース：実出展者カード ========== */
.placeholder-card.is-filled{
  padding:0;
  overflow:hidden;
  text-align:left;
}
.placeholder-card.is-filled .exhibitor-photo{
  aspect-ratio:4/3;
  margin:0;
  overflow:hidden;
}
.placeholder-card.is-filled .exhibitor-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.placeholder-card.is-filled .exhibitor-photo:not(.is-logo),
.exhibitor-photo-sub{
  position:relative;
  cursor:zoom-in;
}
.zoom-hint{
  position:absolute;
  right:10px;
  bottom:10px;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:999px;
  background:rgba(51,51,51,.55);
  color:#fff;
  font-size:16px;
  pointer-events:none;
}
.placeholder-card.is-filled .exhibitor-photo.is-logo{
  display:grid;
  place-items:center;
  padding:14px;
  background:#fff;
}
.placeholder-card.is-filled .exhibitor-photo.is-logo img{
  width:auto;
  max-width:100%;
  height:auto;
  max-height:100%;
  object-fit:contain;
}
.placeholder-card.is-filled .exhibitor-body{padding:18px}
.placeholder-card.is-filled h3{font-size:1.18rem;line-height:1.5}
.exhibitor-title{
  margin-top:6px;
  color:var(--button-color)!important;
  font-size:1.08rem;
  font-weight:800!important;
  line-height:1.6;
}
.exhibitor-section-label{
  display:inline-block;
  margin:10px 0 0;
  padding:3px 12px;
  border-radius:999px;
  background:var(--button-color);
  color:var(--cream)!important;
  font-size:.78rem;
  font-weight:800;
}
.placeholder-card.is-filled .exhibitor-body p+p{margin-top:10px}
.exhibitor-photo-sub{
  aspect-ratio:16/9;
  margin:14px 0 0;
  overflow:hidden;
  border-radius:var(--radius-xs);
}
.exhibitor-photo-sub img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.exhibitor-menu{
  display:grid;
  gap:10px;
  margin:12px 0 0;
}
.exhibitor-menu dt{
  display:inline-block;
  margin-bottom:2px;
  padding:2px 10px;
  border-radius:999px;
  background:rgba(94,114,53,.14);
  color:var(--deep-green-dark);
  font-size:.82rem;
  font-weight:800;
}
.exhibitor-menu dd{
  margin:2px 0 0;
  color:var(--warm-gray);
  font-size:.94rem;
  font-weight:500;
}
.exhibitor-menu dd ul{
  margin:0;
  padding-left:1.1em;
}
.exhibitor-menu dd li+li{
  margin-top:2px;
}
.exhibitor-extra{
  margin:14px 0 0;
  overflow:hidden;
  border-radius:var(--radius-xs);
  background:var(--sand);
}
.exhibitor-extra summary{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  cursor:pointer;
  color:var(--deep-green-dark);
  font-size:.9rem;
  font-weight:800;
  list-style:none;
  -webkit-tap-highlight-color:transparent;
  transition:background-color .15s ease;
}
.exhibitor-extra summary:hover,
.exhibitor-extra summary:focus-visible{background:var(--beige)}
.exhibitor-extra summary::-webkit-details-marker{display:none}
.exhibitor-extra summary::after{
  display:grid;
  place-items:center;
  flex:none;
  width:22px;
  height:22px;
  margin-left:auto;
  border-radius:999px;
  background:var(--button-color);
  color:var(--cream);
  content:"＋";
  font-size:.85rem;
  font-weight:900;
  line-height:1;
  transition:transform .18s ease,background-color .18s ease;
}
.exhibitor-extra[open] summary::after{
  content:"−";
  background:var(--accent-red);
  transform:rotate(180deg);
}
.exhibitor-extra .exhibitor-menu{
  margin:0;
  padding:0 14px 14px;
}
.exhibitor-extra-image{
  padding:0 14px 14px;
}
.exhibitor-extra-image img{
  display:block;
  width:100%;
  border-radius:var(--radius-xs);
}
.exhibitor-category{
  display:inline-block;
  margin-bottom:8px;
  padding:3px 12px;
  border-radius:999px;
  background:var(--button-color);
  color:var(--cream);
  font-size:.78rem;
  font-weight:800;
}
.exhibitor-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:14px;
  color:var(--button-color);
  font-weight:800;
  font-size:.92rem;
  text-decoration-thickness:2px;
  text-underline-offset:4px;
}

/* ========== チケットカード（写真つき） ========== */
.ticket-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
  margin-top:28px;
}
.ticket-card{
  overflow:hidden;
  border-radius:var(--radius-lg);
  background:var(--cream);
  box-shadow:var(--shadow);
  text-align:left;
}
.ticket-photo{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  object-fit:cover;
}
.ticket-card .ticket-body{padding:22px}
.ticket-card h3{margin-bottom:8px;font-size:1.1rem}
.ticket-card p{margin:0;color:var(--warm-gray);font-weight:500}

/* ========== よくあるご質問 ========== */
.faq{
  display:grid;
  gap:20px;
  max-width:var(--measure);
}
.faq details{
  overflow:hidden;
  border-radius:var(--radius-sm);
  background:var(--cream);
  box-shadow:var(--shadow);
  transition:box-shadow .18s ease;
}
.faq details[open]{box-shadow:0 18px 45px rgba(51,51,51,.16)}
.faq summary{
  display:flex;
  align-items:center;
  gap:14px;
  padding:22px 24px;
  cursor:pointer;
  font-weight:800;
  list-style:none;
  -webkit-tap-highlight-color:transparent;
  transition:background-color .15s ease;
}
.faq summary:hover,
.faq summary:focus-visible{background:var(--sand)}
.faq summary:active{background:var(--beige)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  display:grid;
  place-items:center;
  flex:none;
  width:32px;
  height:32px;
  margin-left:auto;
  border-radius:999px;
  background:var(--button-color);
  color:var(--cream);
  content:"＋";
  font-size:1.05rem;
  font-weight:900;
  line-height:1;
  transition:transform .18s ease,background-color .18s ease;
}
.faq details[open] summary::after{
  content:"−";
  background:var(--accent-red);
  transform:rotate(180deg);
}
.faq summary::before{
  flex:none;
  color:var(--button-color);
  font-family:"Inter",sans-serif;
  font-size:1.05rem;
  font-weight:700;
  content:"Q.";
}
.faq .faq-body{
  margin:0;
  padding:0 24px 24px 54px;
  color:var(--warm-gray);
  font-weight:500;
  animation:faq-open .18s ease;
}
@keyframes faq-open{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}
.faq .faq-body p{margin:0 0 10px}
.faq .faq-body p:last-child{margin-bottom:0}
.faq .faq-note{
  font-size:.94rem;
  color:var(--warm-gray-light);
}

/* ========== ボタン・CTA ========== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:60px;
  padding:14px 24px;
  border-radius:999px;
  color:var(--cream);
  background:var(--button-color);
  box-shadow:0 8px 20px rgba(51,51,51,.16);
  font-weight:900;
  text-decoration:none;
  line-height:1.35;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(51,51,51,.22);
  filter:brightness(1.04);
}
/* 公式LINEへ繋がるボタン。ブランド色 #8FC31F は点アクセント専用のため、
   面に塗ってよい兄弟色（深緑）を使う */
.btn-line{background:var(--deep-green)}
.btn-line:hover{background:var(--deep-green-dark)}
.btn-line::before{
  content:"LINE";
  padding:3px 8px;
  border-radius:6px;
  background:rgba(253,255,250,.22);
  font-family:"Inter",sans-serif;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.04em;
}
/* サイト内の移動。地に沈まないよう枠線で輪郭を出す */
.btn-secondary{
  background:var(--cream);
  color:var(--button-color);
  border:2px solid var(--button-color);
}
.btn-secondary:hover{
  background:var(--button-color);
  color:var(--cream);
}
.cta-section{background:var(--sand)}
.cta-panel{
  padding:32px;
  border-radius:var(--radius-lg);
  background:var(--cream);
  box-shadow:var(--shadow);
}
.cta-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:16px;
  margin-top:24px;
}
.inline-actions,
.actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:14px;
  margin-top:32px;
}
.host strong{
  display:block;
  margin-bottom:8px;
  font-size:1.25rem;
  font-weight:900;
}
.mobile-cta{
  position:fixed;
  right:12px;
  bottom:12px;
  left:12px;
  z-index:20;
  display:none;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:10px 18px;
  border-radius:999px;
  background:var(--deep-green);
  color:var(--cream);
  box-shadow:0 10px 28px rgba(51,51,51,.3);
  font-weight:900;
  text-decoration:none;
}

/* ========== 404 ========== */
.notfound{
  display:grid;
  place-items:center;
  min-height:70vh;
  padding:72px 0;
  text-align:center;
}
.notfound .code{
  margin:0 0 12px;
  color:var(--taupe);
  font-family:"Inter",sans-serif;
  font-size:clamp(3rem,10vw,6rem);
  font-weight:800;
  line-height:1;
}
.notfound h1{
  margin-bottom:16px;
  font-size:clamp(1.5rem,3.2vw,2.4rem);
  line-height:1.35;
}
.notfound .lead{margin-inline:auto}
.notfound .actions{justify-content:center}

/* ========== フッター ========== */
footer{
  padding:32px 0 96px;
  background:var(--button-color);
  color:var(--cream);
}
footer p{
  margin:0;
  color:rgba(253,255,250,.86);
  font-size:.92rem;
}
.footer-links{margin-top:10px!important}
.footer-links a{
  color:var(--cream);
  text-decoration-thickness:2px;
  text-underline-offset:5px;
}

/* ========== レスポンシブ ========== */
@media (max-width:900px){
  .three-grid,
  .cards,
  .access-card{grid-template-columns:1fr}
  .placeholder-grid{grid-template-columns:repeat(2,1fr)}
  .hero{min-height:480px}
}
@media (max-width:640px){
  .wrap{width:min(100% - 24px,var(--max))}
  .hero{padding:48px 0 42px;min-height:430px}
  section{padding:56px 0}
  .hero-primary{align-items:stretch}
  .hero-pill{
    width:100%;
    min-height:52px;
    font-size:1.08rem;
  }
  .hero-meta{
    display:grid;
    gap:8px;
    font-size:.98rem;
  }
  .anchor-nav{gap:4px 14px;font-size:.9rem}
  /* 追従CTAと上下で画面を挟まないよう、スマホでは固定しない */
  .subnav{position:static}
  .page-switch a,
  .page-switch span{
    width:100%;
    font-size:.94rem;
  }
  .point,
  .info-box,
  .parking-box,
  .host,
  .cta-panel{
    padding:22px;
    border-radius:var(--radius-sm);
  }
  .placeholder-grid{grid-template-columns:1fr}
  .quote-grid{grid-template-columns:1fr}
  .inline-actions{
    display:flex;
    justify-content:center;
    margin-top:28px;
    margin-bottom:36px;
  }
  .actions{
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .time-row{
    grid-template-columns:1fr;
    gap:4px;
  }
  .info-list div{
    grid-template-columns:1fr;
    gap:2px;
  }
  .flow-list li{
    grid-template-columns:1fr;
    gap:10px;
  }
  .map-embed{aspect-ratio:4/3}
  .ticket-grid{grid-template-columns:1fr}
  .faq summary{padding:18px 20px}
  .faq .faq-body{padding:0 20px 20px 20px}
  .mobile-cta{display:flex}
  body{padding-bottom:88px}
  .compare-shell{overflow-x:visible}
  table,tbody{display:block;width:100%;min-width:0}
  thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  tr{display:block;width:100%;border-bottom:2px solid var(--light-taupe)}
  tr:last-child{border-bottom:0}
  td{display:block;width:auto;border-bottom:0;padding:4px 20px}
  td.row-head{
    width:auto;
    font-weight:700;
    background:var(--sand);
    padding:12px 20px;
    margin-bottom:8px;
  }
  td[data-label]{padding-bottom:14px}
  td[data-label]::before{
    content:attr(data-label);
    display:block;
    font-size:13px;
    font-weight:700;
    color:var(--warm-gray);
    margin-bottom:2px;
  }
}
@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto!important;
    transition:none!important;
    animation:none!important;
  }
}

/* ========== 写真ライトボックス（出展ブース写真タップで全体表示） ========== */
.photo-lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(20,17,12,.88);
}
.photo-lightbox.is-open{display:flex}
.photo-lightbox img{
  display:block;
  max-width:100%;
  max-height:calc(100vh - 48px);
  object-fit:contain;
  border-radius:var(--radius-xs);
  cursor:zoom-out;
}
.photo-lightbox-close{
  position:absolute;
  top:16px;
  right:16px;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--ink);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
