@charset "UTF-8";
/* =====================================================================
   pv-parts.css — 公開サイト ビジュアル刷新の追加部品（Phase6）
   style.css の後に読み込む。承認後に style.css の21章として統合する。

   規約（既存6,915行への漏れを防ぐため必ず守る）
     ・新規セレクタは必ず .pv- 接頭辞から始める
     ・要素セレクタ単独（h1{} section{} など）を書かない
     ・!important を使わない
     ・rem を書かない（SP疑似remの債務を増やさない）
   ===================================================================== */


/* ---------------------------------------------------------------
   1. パンくず（白地に小さく置く。帯にしない）
   --------------------------------------------------------------- */
.pv-crumbs {
  background: transparent;
}
.pv-crumbs__inner {
  max-width: 1040px;
  margin: 0 auto;
  padding: 18px 20px 0;
}
.pv-crumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 12px;
  line-height: 1.7;
  color: var(--pv-ink-2);
}
.pv-crumbs__item + .pv-crumbs__item::before {
  content: "／";
  margin-right: 6px;
  color: var(--pv-rule-strong);
}
.pv-crumbs__item a {
  color: var(--pv-ink-2);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.pv-crumbs__item a:hover { border-bottom-color: currentColor; }
.pv-crumbs__item [aria-current="page"] {
  color: var(--pv-ink);
  font-weight: 700;
}


/* ---------------------------------------------------------------
   2. ページヘッダー（写真型・文字型の共通部分）
   --------------------------------------------------------------- */
.pv-pagehead {
  position: relative;
  margin-bottom: 26px;
}
.pv-pagehead__inner {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 20px;
}
.pv-pagehead__en {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .22em;
  line-height: 1.5;
  margin-bottom: 12px;
  color: var(--pv-green-dark);
}
.pv-pagehead.is-navy .pv-pagehead__en { color: var(--pv-navy); }

/* h1 は既存の .common-title を併記しているので、寸法だけ上書きする。
   参考サイトに合わせて 48px。装飾は付けず、大きさと色だけで見せる。 */
.pv-pagehead__title {
  margin: 0;
  font-size: 48px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .04em;
  color: var(--pv-green-dark);
}
.pv-pagehead.is-navy .pv-pagehead__title { color: var(--pv-navy); }

.pv-pagehead__lead {
  max-width: 860px;
  margin: 20px 0 0;
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: .02em;
  color: var(--pv-ink-2);
}

/* 見出しの直下に置く横並びのページ内リンク */
.pv-pagehead__anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.pv-pagehead__anchors a {
  display: inline-block;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: var(--pv-ink-2);
  text-decoration: none;
  padding-bottom: 3px;
  border-bottom: 1px solid var(--pv-rule-strong);
  transition: color .15s ease, border-color .15s ease;
}
.pv-pagehead__anchors a::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-left: 8px;
  vertical-align: 2px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}
.pv-pagehead__anchors a:hover {
  color: var(--pv-green-dark);
  border-bottom-color: currentColor;
}
.pv-pagehead.is-navy .pv-pagehead__anchors a:hover { color: var(--pv-navy); }


/* ---------------------------------------------------------------
   3. 文字型（白地に大きな見出し。リードとサブメニューは色帯にする）

   色は「いまどの入口にいるか」を示す。ヘッダー上部の2つのボタン
   （.link-visiter #0A3C71 ／ .link-organizer #008236）と同じ色にそろえる。

     来場者の方へ … 紺
     主催者の方へ … 緑
     どちらにも属さない共通ページ … チャコール
       （よくある質問・お問い合わせ・トピックス・指定管理者・
         個人情報保護・サイトマップ）
   --------------------------------------------------------------- */
.pv-pagehead--text {
  padding: 26px 0 0;
}
/* 共通ページの見出し。緑でも紺でもない色にして、どちらの系統にも
   属さないことを色で示す。白地に 9.9:1。 */
.pv-pagehead.is-common .pv-pagehead__en,
.pv-pagehead.is-common .pv-pagehead__title { color: #37423C; }

/* --- 見出しの下の薄い帯 ----------------------------------------
   .pv-pagehead は <main> 直下＝.container 幅いっぱいにあるので、
   背景を敷くだけで全幅の帯になる。vw は使わない。
   濃い色で塗るとリード文が読みにくく、ページ全体が重くなるので、
   系統を示すだけの薄い1本にとどめる。 */
.pv-pagehead__rule {
  height: 28px;
  margin: 24px 0 30px;
  background-color: var(--pv-band-hall);
}
.pv-pagehead.is-navy   .pv-pagehead__rule { background-color: var(--pv-band-expo); }
.pv-pagehead.is-common .pv-pagehead__rule { background-color: #37423C; }
/* リード文は帯の下、白地に通常の色で置く */
.pv-page .pv-pagehead__lead { margin-top: 0; }
.pv-pagehead--text { margin-bottom: 44px; }


/* ---------------------------------------------------------------
   4. 写真型
   参考サイトと同じく、文字は写真に重ねない。
   上に写真の帯、その下の白地に見出しを置く。
   写真は <main> 直下＝.container 幅いっぱいに敷く。
   .wrapper(980px) の内側から 100vw で抜くとヘッダーの
   left 補正とズレるため、この位置でしか成立しない。
   --------------------------------------------------------------- */
.pv-pagehead--photo {
  padding: 0 0 40px;
}
.pv-pagehead__media {
  position: relative;
  height: 300px;
  overflow: hidden;
  background: var(--pv-rule);
  margin-bottom: 30px;
}
.pv-pagehead__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 写真の下端をわずかに締めて、下の白地との境目を作る */
.pv-pagehead__scrim {
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .16) 100%);
}


/* ---------------------------------------------------------------
   5. 見出し・本文の共通テンプレート
   .pv-page を付けたページだけに効く（未改修ページには影響しない）。

   ■ なぜ必要か（25ページの実測値）
     h2 のサイズ … 21 / 22 / 26 / 27 / 30 / 32px の6種類
     h3 のサイズ … 15 / 17 / 17.25 / 18 / 19 / 21 / 23px の7種類
     h4 のサイズ … 17 / 18 / 20 / 27px の4種類（h4 が h2 より大きい箇所があった）
     行間比    … 1.35 / 1.40 / 1.50 / 1.65 / 1.75 / 1.85 / 2.69 の7種類
     字間      … normal / .36 / .5175 / .57 / .78 / 1.05 / 1.28 / 1.32px
     揃え      … 同じ h2 でも center と start が混在
     色        … 見出しだけで6色（黒・紺・緑・深緑・オレンジ・白）
     太さ      … 400 / 500 / 600 / 700
     クラス    … h2〜h4 で39種類

   ■ 一本化する段階（PC）。見出しは3サイズだけにする
     段          サイズ  行間  字間   色        飾り
     ──────────────────────────────────────────────────────
     h1          48px   1.30  .04em  テーマ色  なし（ページヘッダーが持つ）
     h2          28px   1.40  .04em  ink       下に 2px の罫（施設色）
     h3          20px   1.55  .03em  ink       なし
     h4／一覧項目 18px   1.60  .03em  ink-2     なし
     本文        16px   1.90  .02em  ink
     注記        13px   1.80  .02em  ink-2

     一覧の項目名（新着情報の見出しなど）は h2 でも「並ぶもの」なので
     セクション見出しの段には置かず、h4 と同じ段に入れる。

   ■ 残すもの（意味を持っているので統合しない）
     ・施設の色分け  緑=コンベンションぬまづ／紺=キラメッセぬまづ／
                     ピンク=主催者サポート。色ベタの帯はやめ、罫線の色で表す
     ・英字＋和文の2段  .pv-sec__en+__title ／ .title-section-common の small+large ／
                     .guide-title の text-english+text-japan。3通りの書き方を同じ形に見せる
     ・部屋名の見出し   全幅の帯の主役なので h2 より大きい 40px（§9 で指定）
     ・注意・アコーディオンなど、機能を持つ枠

   ■ やめるもの（装飾のためだけのもの）
     ・.title-section-common の平行四辺形 ::before（490px の色ベタ）
     ・.guide-title の水色ベタ地（行間比 2.69 で帯にしていた）
     ・.sitemap-title の色ベタ＋白文字
     ・見出しの中央揃え（h1 を左揃えにしたので下位も揃える）
     ・装飾でしかない文字色（緑・紺・深緑・オレンジ）
   --------------------------------------------------------------- */

/* --- 縦のリズム（3段階だけに絞る） --- */
.pv-page .section-content > section,
.pv-page .section-facilitie-schema { margin-top: 96px; }
.pv-page .section-content > section:first-child,
.pv-page .section-facilitie-schema:first-child { margin-top: 0; }

/* =====  基準  =====================================================
   クラスの付いていない見出しはこれで拾う。
   クラスに既存の指定があるものは、次の「別名」の節で同じ値に寄せる。 */
.pv-page h2,
.pv-page h3,
.pv-page h4 {
  font-weight: 700;
  text-align: start;
  color: var(--pv-ink);
}
.pv-page h2 { font-size: 28px; line-height: 1.40; letter-spacing: .04em; }
.pv-page h3 { font-size: 20px; line-height: 1.55; letter-spacing: .03em; }
.pv-page h4 { font-size: 18px; line-height: 1.60; letter-spacing: .03em; color: var(--pv-ink-2); }

/* 本文の基準。これまで .section-content の中だけを 16px にしていたため、
   .wrapper 直下などに置かれた段落が 18px のまま残り、1行に収まるはずの
   文が2行に折り返していた。低い詳細度で下敷きとして敷く。 */
.pv-page p,
.pv-page li {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .02em;
}

/* =====  h2: セクション見出し  =====================================
   下に 2px の罫を引く。罫の色だけが施設を表す。 */
.pv-page .title-section-common,
.pv-page .pv-sec__title,
.pv-page .big-title,
.pv-page .faq-heading,
.pv-page .access-title,
.pv-page .access-title-sub,
.pv-page .sitemap-title,
.pv-page .list-title,
.pv-page .guide-title,
.pv-page .sg-category-title,
.pv-page h2.title {           /* イベントカレンダーの「◯年◯月のイベント」 */
  font-size: 28px;
  font-weight: 700;
  line-height: 1.40;
  letter-spacing: .04em;
  text-align: start;
  color: var(--pv-ink);
  background: none;
  padding: 0 0 14px;
  margin: 0 0 32px;
  border: none;
  border-bottom: 2px solid var(--pv-band-hall);
  border-radius: 0;
}
/* 施設ごとの色分け（ここだけが色を持つ） */
.pv-page .title-section-common.bg-cyan,
.pv-page .sitemap-title,
.pv-page .sg-category-title  { border-bottom-color: var(--pv-band-expo); }
.pv-page .sitemap-title.green { border-bottom-color: var(--pv-band-hall); }
.pv-page .title-section-common.server { border-bottom-color: var(--pv-band-service); }
/* 中央揃えの箱に置かれた見出しは、その箱に合わせる。
   見出しテンプレートの text-align:start（0,2,0）が .contact-content の
   text-align:center（0,1,0）に勝ってしまい、住所や電話番号は中央なのに
   事業者名だけ左に寄っていた。 */
.pv-page .contact-content h2,
.pv-page .contact-content h3 { text-align: inherit; }
/* 平行四辺形の色ベタをやめる */
.pv-page .title-section-common::before,
.pv-page .guide-title::before { display: none; }
/* .section-event .event-detail .title（0,3,0）に負けるので同じ段数まで上げる */
.pv-page .section-event .title {
  font-size: 28px;
  line-height: 1.40;
  color: var(--pv-ink);
}

/* 英字ラベルは見出しの上段に小さく置く（3通りの書き方を同じ見た目にする） */
.pv-page .title-section-common,
.pv-page .guide-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 16px;
}
/* .pv-sec__head は英字と和文が横並びだったので、他と同じ2段にする。
   罫線はこの箱（見出し行の全幅）が引く。上の見出しテンプレートで
   .pv-sec__title にも 2px の罫が付いてしまい、文字の下と行の下に
   緑の線が2本並んで見えていたので、内側の罫と余白は消す。
   余白は他ページの h2 と同じ「下 14px ＋ 32px」に合わせる。 */
.pv-page .pv-sec__head {
  align-items: baseline;
  gap: 2px 16px;
  padding-bottom: 14px;
  margin-bottom: 32px;
}
.pv-page .pv-sec__title {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}
.pv-page .pv-sec__en {
  order: -1;
  flex-basis: 100%;
  font-size: 12px;
  letter-spacing: .22em;
  line-height: 1.5;
  margin-bottom: 6px;
}
.pv-page .pv-sec__more { margin-left: auto; }
.pv-page .title-section-common .small,
.pv-page .guide-title .text-english {
  order: -1;
  flex-basis: 100%;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .22em;
  line-height: 1.5;
  margin: 0 0 6px;
  color: var(--pv-band-hall);
}
.pv-page .title-section-common.bg-cyan .small { color: var(--pv-band-expo); }
.pv-page .title-section-common.server .small  { color: var(--pv-band-service); }
.pv-page .guide-title .text-english           { color: var(--pv-band-expo); }
.pv-page .title-section-common .large,
.pv-page .guide-title .text-japan {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.40;
  letter-spacing: .04em;
  padding-left: 0;
  top: 0;
  color: var(--pv-ink);
}

/* =====  h3: 中見出し  ============================================= */
.pv-page .title-table,
.pv-page .policy-title,
.pv-page .guide-title-sub,
.pv-page .bento-title,
.pv-page .catering-title,
.pv-page .item-title,
.pv-page .sg-card-title,
.pv-page h3.heading,
.pv-page .section-content h3.title,
.pv-page .section-content .sub-title,
.pv-page .section-content .small-title {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .03em;
  text-align: start;
  color: var(--pv-ink);
  padding: 0;
  margin: 0 0 16px;
}
/* is-blue / text-large といった大小の修飾は、段階を崩すので効かせない */
.pv-page .guide-title-sub.is-blue,
.pv-page .guide-title-sub.text-large { font-size: 20px; color: var(--pv-ink); }
/* .section-guide-detail .right .guide-title-sub（0,3,0）と
   同 .text-large（0,4,0）に負けるので、同じ段数まで上げる */
.pv-page .section-guide-detail .guide-title-sub,
.pv-page .section-guide-detail .right .guide-title-sub.text-large { font-size: 20px; }
/* .access-content .box-light h3（0,2,1）に負けるので同じ段数にする */
.pv-page .box-light h3,
.pv-page .box-light h4 {
  text-align: start;
  font-weight: 700;
  color: var(--pv-ink);
}
.pv-page .box-light h3 { font-size: 20px; line-height: 1.55; letter-spacing: .03em; margin: 0 0 12px; }
.pv-page .box-light h4 { font-size: 18px; line-height: 1.60; letter-spacing: .03em; margin: 0 0 10px; color: var(--pv-ink-2); }
/* 施設ページのキャッチだけは本文の導入なので、上に間隔を取る */
.pv-page .section-content h3.title { margin-top: 48px; }

/* =====  h4: 小見出し  ============================================= */
.pv-page h4.heading,
.pv-page .hotel-title,
.pv-page .book-title,
.pv-page .vehical-title,
.pv-page .title-underline {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.60;
  letter-spacing: .03em;
  text-align: start;
  color: var(--pv-ink-2);
  padding: 0;
  margin: 0 0 12px;
  border: none;
}
/* 交通手段の見出しはアイコンと並ぶので、行の高さを揃える */
.pv-page .vehical-title { display: flex; align-items: center; gap: 10px; }

/* =====  一覧の項目名  =============================================
   新着情報のように同じ形が何十件も並ぶものは、h2 であっても
   セクション見出しの段には置かない。h4 と同じ段に入れる。 */
.pv-page .topics-list-detail .topics-title,
.pv-page .pv-list__title,
.pv-page .htl-card-name {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.60;
  letter-spacing: .03em;
  text-align: start;
  color: var(--pv-ink);
  margin: 0 0 12px;
}
/* 重要なお知らせの赤は「見落とさせない」ための色なので残す */
.pv-page .topics-list-detail .topics-title.is-important { color: #C1121F; }

/* =====  機能を持つ見出し（残すもの）  =============================
   ここだけは色と枠に意味がある。統合せず、体裁だけ他と揃える。 */

/* 注意喚起。オレンジは「読み飛ばさないでほしい」の合図として残す */
.pv-page .pv-alert-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.60;
  letter-spacing: .03em;
  text-align: start;
  color: var(--pv-orange-ink);
  padding: 0 0 8px;
  margin: 0 0 14px;
  border-bottom: 1px solid var(--pv-orange-ink);
}

/* 折りたたみの見出し。クリックできることが分かる必要があるので、
   地色と枠は残す。角丸はやめ、他の見出しと同じ角にする。
   開閉の JS は .accordion-title を見ているのでクラス名は変えない */
.pv-page .accordion-title {
  font-size: 20px;          /* 見出しとしては h3 なので h3 の段に合わせる */
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .03em;
  text-align: start;
  color: var(--pv-ink);
  background-color: #F4F6F5;
  border: 1px solid var(--pv-rule);
  border-left: none;
  border-right: none;
  border-radius: 0;
  padding: 14px 18px;
  margin: 0;
  cursor: pointer;
  position: relative;
  transition: background-color .2s ease;
}
.pv-page .accordion-title:hover,
.pv-page .accordion-title:focus-visible { background-color: #E8ECE9; }
.pv-page .accordion-title span { font-weight: 700; }

/* 折りたたみの中身。JS が開くときに style="display:block" を付けるので、
   閉じている初期状態だけを CSS が持つ（インライン style を外したため必要） */
.pv-page .accordion-content {
  display: none;
  padding: 22px;
  border: 1px solid var(--pv-rule);
  border-top: none;
  border-radius: 0;
}
.pv-page .accordion-section { margin-bottom: 32px; }

/* 駐車場リニューアルの囲み。角丸と影をやめ、見出し帯だけ残す */
.pv-page .parking-renewal-info {
  border: 2px solid var(--pv-band-hall);
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  margin: 30px 0;
  padding: 0;
  background: none;
}
.pv-page .pv-boxhead {
  background-color: var(--pv-band-hall);
  color: #fff;
  padding: 12px 20px;
  font-weight: 700;
  letter-spacing: .04em;
}
.pv-page .pv-boxbody { padding: 22px; background-color: #FFFFFF; }
.pv-page .pv-notice.is-center { text-align: center; }
.pv-page .box-light.pv-flex1 { flex: 1; min-width: 280px; }

/* 表を囲む枠の中で、表の下マージン（20px）がそのまま余白として残り、
   最終行と枠の間が空いて見えていた。枠の中では余白を持たせない。 */
.pv-page .pv-table-card > table,
.pv-page .pv-table-card table { margin-bottom: 0; }

/* 狭い画面でスクロールバーが2本出ていた。
   .pv-table-card（JSが付ける外枠）と、その中の .table-wrapper /
   .table-scroll の両方が overflow:auto を持っていたため。
   さらに .block-table-text-common .table-wrapper が margin-right:-0.42rem
   （=-21px）を持ち、内側が親より21px広くなって外側にも必ずバーが出ていた。
   スクロールするのは .pv-table-card ひとつだけにする。 */
.pv-page .pv-table-card .table-wrapper,
.pv-page .pv-table-card .table-scroll {
  overflow: visible;
  overflow-x: visible;
  margin-right: 0;
  width: auto;
}


/* ---------------------------------------------------------------
   5-D. 2つ並べる枠（館内図とストリートビューなど）

   どちらも「館内を見る」ための手段なので、上下に離さず横に並べる。
   縦横比を同じにして高さを揃える（元画像・iframe とも 1473×900）。
   --------------------------------------------------------------- */
.pv-page .pv-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
  margin: 0 0 48px;
}
.pv-page .pv-duo__item {
  margin: 0;
  padding: 0;
  min-width: 0;
  /* .street_view は height:0 + padding-top:75% の古い比率ハックを持っている。
     padding を 0 にすると高さが消えるので、比率は aspect-ratio 側で作る */
  height: auto;
  position: static;
}
.pv-page .pv-duo__item iframe { position: static; }
.pv-page .pv-duo__item .img-wrap,
.pv-page .pv-duo__item iframe {
  display: block;
  width: 100%;
  aspect-ratio: 1473 / 900;
  height: auto;
  border: 1px solid var(--pv-rule);
  background-color: #F7F9F8;
}
.pv-page .pv-duo__item .img-wrap { overflow: hidden; }
.pv-page .pv-duo__item .img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;   /* 館内図は端まで見せたいので切り取らない */
  display: block;
  cursor: zoom-in;
}
.pv-page .pv-duo__cap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 12px;
  margin-top: 10px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--pv-ink);
}
.pv-page .pv-duo__hint {
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--pv-ink-2);
}

@media (prefers-reduced-motion: reduce) {
  .pv-page .accordion-title { transition: none; }
}

/* =====  本文・リスト・注記  ======================================= */
.pv-page .section-content p,
.pv-page .description {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .02em;
  margin: 0 0 1.6em;
}
.pv-page .section-content li {
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: .02em;
}
.pv-page .description-small,
.pv-page .list-note li,
.pv-page .note {
  font-size: 13px;
  line-height: 1.8;
  letter-spacing: .02em;
  color: var(--pv-ink-2);
}

/* 目次・ページ内タブ・スライダーは独自の寸法を持つので上の指定から外す */
.pv-page .pv-toc li,
.pv-page .anchor-link li,
.pv-page .pv-pagehead__anchors li { font-size: inherit; line-height: inherit; }


/* ---------------------------------------------------------------
   5-B. サブメニュー（ページ内・下層への誘導）

   実測すると4つの形に分かれていた。
     .anchor-link          7ページ  18px/600/中央/下罫2.4px（タブ風）
     .pv-pagehead__anchors 1ページ  14px/400/左/下罫0.8px
     .pv-tiles             2ページ  18px/400/左/4列グリッド
   どれも「同じ並びのリンクを横に並べる」もので、意味の違いは無い。
   ひとつの形に寄せる。英字ラベルは残す（サイト全体の合図なので）。
   目次（.pv-toc）だけは開閉する別の機能なので、字だけ揃えて形は変えない。
   --------------------------------------------------------------- */
/* flex だと最終行の項目だけ伸びて幅が揃わないので、桁の決まった格子にする。
   4桁固定なら 4件=1行 / 6件=4+2 / 8件=4+4 と、必ず列が縦に通る。 */
.pv-page .anchor-link,
.pv-page .pv-pagehead__anchors,
.pv-page .pv-tiles {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 4px;
  /* 上の余白を 0 にすると、ページヘッダーのリード文と密着する */
  margin: 28px 0 40px;
  padding: 0;
  list-style: none;
}
.pv-page .anchor-link > li,
.pv-page .pv-pagehead__anchors > li,
.pv-page .pv-tiles > * {
  min-width: 0;
  /* flex 時代の max-width:25% が残っていて、格子の中では
     「桁の25%」＝47px になってしまうので外す */
  max-width: none;
  width: auto;
  padding: 0;
  margin: 0;
  background: none;
  border: none;
  list-style: none;
}
.pv-page .anchor-link a,
.pv-page .pv-pagehead__anchors a,
.pv-page .pv-tiles a {
  display: block;
  padding: 10px 6px 12px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .02em;
  text-align: center;
  text-decoration: none;
  color: var(--pv-ink);
  background: none;
  border: none;
  border-bottom: 2px solid var(--pv-rule);
  border-radius: 0;
  transition: color .15s ease, border-color .15s ease;
}
.pv-page .anchor-link a:hover,
.pv-page .pv-pagehead__anchors a:hover,
.pv-page .pv-tiles a:hover,
.pv-page .anchor-link a:focus-visible,
.pv-page .pv-pagehead__anchors a:focus-visible,
.pv-page .pv-tiles a:focus-visible {
  color: var(--pv-band-hall);
  border-bottom-color: var(--pv-band-hall);
}
.pv-page.is-navy .anchor-link a:hover,
.pv-page.is-navy .pv-tiles a:hover { color: var(--pv-band-expo); border-bottom-color: var(--pv-band-expo); }

/* 英字ラベル。data-en を持つリンクは、その値を上段に出す。
   .pv-tiles だけが span で持っていたので、書き方を揃えずに見た目だけ揃える。 */
.pv-page .anchor-link a[data-en]::before,
.pv-page .pv-pagehead__anchors a[data-en]::before {
  content: attr(data-en);
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  line-height: 1.5;
  margin-bottom: 4px;
  color: var(--pv-band-hall);
}
.pv-page.is-navy .anchor-link a[data-en]::before { color: var(--pv-band-expo); }

/* 英字ラベル（.pv-tile__en）は見出しと同じ扱いで上段に小さく */
.pv-page .pv-tiles .pv-tile__en {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  line-height: 1.5;
  margin-bottom: 4px;
  color: var(--pv-band-hall);
}
.pv-page .pv-tiles .pv-tile__name { display: block; font-size: 16px; font-weight: 700; }
.pv-page .pv-tiles .pv-tile__note { display: block; font-size: 12px; font-weight: 400; color: var(--pv-ink-2); margin-top: 4px; }

/* ページ内アンカーだけ付いていた「⌄」の飾りは、他と揃わないので出さない */
.pv-page .pv-pagehead__anchors a::after { display: none; }

/* サブメニューがページヘッダーの中にある場合（pagemap の anchors から出す
   施設案内など）、ヘッダー自身の下余白（padding 40px ＋ margin 26px）が
   サブメニューの下余白 40px に足され、次の要素まで 118px 空いていた。
   本文側にサブメニューを置くページは 57px なので、そちらに揃える。 */
.pv-page .pv-pagehead:has(.pv-pagehead__anchors) {
  padding-bottom: 0;
  margin-bottom: 0;
}

/* 目次は開閉する機能なので形は変えず、字だけ揃える */
.pv-page .pv-toc__head,
.pv-page .pv-toc__sub a { font-size: 15px; letter-spacing: .02em; }

/* 目次の3階層目（条文の中の（1）（2）…）。
   .pv-toc__sub の内側に置いているので、点・色・ホバーはそのまま効く。
   ここで足すのは字下げと、親の条文と見分けるための字の大きさだけ。 */
.pv-page .pv-toc__sub2 {
  list-style: none;
  margin: 2px 0 12px;
  padding: 0 0 0 1em;
}
.pv-page .pv-toc__sub2 li { line-height: 1.7; }
.pv-page .pv-toc__sub2 a { font-size: 14px; }

/* 中身の多い区分は全幅にして、3階層目だけを2段に流す。
   2列グリッドのままだと、隣の短い区分の側に600px近い空白ができる。 */
@media print, (min-width: 768px) {
  .pv-page .pv-toc__group.is-wide { grid-column: 1 / -1; }
  .pv-page .pv-toc__group.is-wide .pv-toc__sub2 {
    columns: 2;
    column-gap: 40px;
  }
  .pv-page .pv-toc__group.is-wide .pv-toc__sub2 li { break-inside: avoid; }
}

@media (prefers-reduced-motion: reduce) {
  .pv-page .anchor-link a,
  .pv-page .pv-tiles a { transition: none; }
}


/* ---------------------------------------------------------------
   5-A2. 主催者トップの見せ方（インテックス大阪の構成を参考）

   ・見出しはこのページだけ中央揃え（<main> に pv-centered）
   ・施設は写真3枚を主役にする（.pv-showcase）
   ・入口は小さなアイコン付きの横並び（.pv-guide）
   サイト全体の左揃えは変えないので、pv-centered の中だけに閉じる。
   --------------------------------------------------------------- */
.pv-page.pv-centered .pv-sec__head {
  flex-direction: column;
  align-items: center;
  text-align: center;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 30px;
}
.pv-page.pv-centered .pv-sec__title { text-align: center; }
/* 中央揃えでは全幅の罫が重いので、見出しの下に短い線を1本置く */
.pv-page.pv-centered .pv-sec__head::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  margin-top: 14px;
  background-color: var(--pv-band-hall);
}
.pv-page.pv-centered .pv-sec.is-navy .pv-sec__head::after { background-color: var(--pv-band-expo); }

/* --- 施設の写真3枚 --------------------------------------------- */
.pv-page .pv-showcase {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0 24px;
  margin: 0 0 24px;
}
.pv-page .pv-showcase__item {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: var(--pv-ink);
  border-bottom: 3px solid transparent;
  padding-bottom: 16px;
  transition: border-color .2s ease;
}
.pv-page .pv-showcase__item:hover { border-bottom-color: var(--pv-band-hall); }
.pv-page .pv-showcase__media { display: block; overflow: hidden; }
.pv-page .pv-showcase__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background-color: var(--pv-rule);
  transition: transform .5s ease;
}
.pv-page .pv-showcase__item:hover .pv-showcase__media img { transform: scale(1.05); }
.pv-page .pv-showcase__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 18px 2px 0;
}
/* パンフレットと同じく、どの施設・何階かを名前の上に小さく置く */
.pv-page .pv-showcase__where {
  display: block;
  margin-bottom: 5px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .1em;
  line-height: 1.5;
  color: var(--pv-band-hall);
}
.pv-page .pv-showcase__name {
  display: block;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .02em;
  transition: color .2s ease;
}
.pv-page .pv-showcase__item:hover .pv-showcase__name { color: var(--pv-band-hall); }
.pv-page .pv-showcase__spec {
  display: block;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid var(--pv-rule);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--pv-band-hall);
  font-variant-numeric: tabular-nums;
}
.pv-page .pv-showcase__desc {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.85;
  color: var(--pv-ink-2);
}
/* 下見の扱いは流れの外に置く。全員に必要な手順ではないので、
   段の1つにすると「必ず下見をする」と読めてしまう */
.pv-page .pv-steps2__aside { margin: 30px 0 0; }

/* 6枠目。写真を持たず、施設案内へ送るだけの枠。
   5施設だと格子に穴が空くので、そこを案内に使う */
.pv-page .pv-showcase__item.is-more {
  justify-content: center;
  padding: 26px 24px 30px;
  border: 1px solid var(--pv-rule);
  border-bottom-width: 3px;
}
.pv-page .pv-showcase__item.is-more .pv-showcase__body { flex: 0 0 auto; padding-top: 0; }
.pv-page .pv-showcase__more {
  display: inline-block;
  margin-top: 14px;
  padding-bottom: 3px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--pv-band-hall);
  border-bottom: 1px solid currentColor;
}
.pv-page .pv-showcase__note {
  font-size: 14px;
  line-height: 1.9;
  color: var(--pv-ink-2);
  text-align: center;
  margin: 0;
}

/* --- ご利用ガイド（アイコンの横並び）--------------------------- */
.pv-page .pv-guide {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-page .pv-guide > li { min-width: 0; margin: 0; padding: 0; list-style: none; background: none; }
.pv-page .pv-guide a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 22px 8px 20px;
  text-align: center;
  text-decoration: none;
  color: var(--pv-ink);
  border: 1px solid var(--pv-rule);
  transition: border-color .2s ease, color .2s ease;
}
.pv-page .pv-guide a:hover,
.pv-page .pv-guide a:focus-visible { border-color: var(--pv-band-hall); color: var(--pv-band-hall); }
.pv-page .pv-guide a::before {
  content: "";
  width: 30px;
  height: 30px;
  margin-bottom: 8px;
  background-color: var(--pv-band-hall);
  -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain;
  mask-repeat: no-repeat; mask-position: center; mask-size: contain;
}
.pv-page .pv-guide__name { display: block; font-size: 15px; font-weight: 700; line-height: 1.5; }
.pv-page .pv-guide__note { display: block; font-size: 11.5px; line-height: 1.6; color: var(--pv-ink-2); }

.pv-page .pv-guide a[data-ic="calendar"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}
.pv-page .pv-guide a[data-ic="price"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 9h8M8 13h8M12 17V7'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 9h8M8 13h8M12 17V7'/%3E%3C/svg%3E");
}
.pv-page .pv-guide a[data-ic="flow"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Cpath d='M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11'/%3E%3Cpath d='M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");
}
.pv-page .pv-guide a[data-ic="doc"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M9 13h6M9 17h4'/%3E%3C/svg%3E");
}
.pv-page .pv-guide a[data-ic="support"]::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17v-5a8 8 0 0 1 16 0v5'/%3E%3Cpath d='M20 18a2 2 0 0 1-2 2h-1v-6h1a2 2 0 0 1 2 2z'/%3E%3Cpath d='M4 18a2 2 0 0 0 2 2h1v-6H6a2 2 0 0 0-2 2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17v-5a8 8 0 0 1 16 0v5'/%3E%3Cpath d='M20 18a2 2 0 0 1-2 2h-1v-6h1a2 2 0 0 1 2 2z'/%3E%3Cpath d='M4 18a2 2 0 0 0 2 2h1v-6H6a2 2 0 0 0-2 2z'/%3E%3C/svg%3E");
}

@media (prefers-reduced-motion: reduce) {
  .pv-page .pv-showcase__media img { transition: none; }
  .pv-page .pv-showcase__item:hover .pv-showcase__media img { transform: none; }
}


/* --- ページ内リンクの着地位置 ----------------------------------
   ヘッダーが position:fixed（PC 141px前後）なので、素のアンカー移動
   だと見出しがヘッダーの下に潜る。js/scripts.js の .smooth は
   500ms 後に補正しているが、その間ズレた位置が見えてしまう。
   style.css:8203 に :target の指定はあるものの、:target は
   「URLのハッシュと一致した要素」にしか効かず、ページ内クリックの
   直後や2回目以降のクリックでは当たらないことがある。
   id を持つ要素すべてに余白を持たせて、CSSだけで正しい位置に着ける。 */
.pv-page [id] { scroll-margin-top: calc(var(--pv-header-h, 178px) + 20px); }


/* ---------------------------------------------------------------
   5-B2. 外部サイトへのリンク

   観光ページの4本は「他サイトへ出ていくリンク」であって、ページ内の
   見出しへ飛ぶサブメニューではない。同じ下罫タブの形にすると目次と
   区別が付かないので、名前＋ドメイン＋外部の印を並べた一覧にする。
   罫線は行の区切りだけ。囲みも角丸も作らない。
   --------------------------------------------------------------- */
/* 観光ページの .section-content は、キービジュアルがあった頃の余白
   （style.css:6149 の padding-top）を残していた。いまは見出しの帯の
   下に余白があるので二重になる。 */
.pv-page .section-sightseeing > .wrapper > .section-content { padding-top: 0; }

.pv-page .pv-extlinks {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 40px;
  /* 上の余白は見出しの帯が持っているので付けない */
  margin: 0 0 40px;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--pv-rule);
}
.pv-page .pv-extlinks > li {
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  background: none;
  border-bottom: 1px solid var(--pv-rule);
}
.pv-page .pv-extlinks a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 14px;
  align-items: center;
  gap: 0 14px;
  padding: 15px 2px;
  text-decoration: none;
  color: var(--pv-ink);
  transition: color .15s ease;
}
.pv-page .pv-extlinks__name {
  grid-column: 1;
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .02em;
}
.pv-page .pv-extlinks__host {
  grid-column: 1;
  display: block;
  margin-top: 3px;
  font-size: 12px;
  letter-spacing: .04em;
  color: var(--pv-ink-2);
}
/* 外部リンクの印。矢印1本だと装飾に見えるので、枠から出る形にする */
.pv-page .pv-extlinks a::after {
  content: "";
  grid-column: 2;
  grid-row: 1 / -1;
  width: 14px;
  height: 14px;
  background-color: var(--pv-rule-strong);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E") no-repeat center/contain;
  transition: background-color .15s ease;
}
.pv-page .pv-extlinks a:hover,
.pv-page .pv-extlinks a:focus-visible { color: var(--pv-band-expo); }
.pv-page .pv-extlinks a:hover::after,
.pv-page .pv-extlinks a:focus-visible::after { background-color: var(--pv-band-expo); }


/* ---------------------------------------------------------------
   5-C. 注意書き・補足のボックス

   実測すると5つの形に分かれていた。
     .box-light（規程・フロアガイド） 緑地＋細枠＋角2px
     .box-light（アクセス）           透明地＋太枠＋角3px  ← 同じクラスで別物
     .pv-notice                       橙地＋左に太い縦棒4px
     .important-note                  赤地＋左に太い縦棒2.4px
     .parking-renewal-info            緑の太枠＋角8px＋影
   意味は2種類しかないので2つにまとめる。
     補足  … 読まなくても困らない補い     薄い地＋細枠
     注意  … 読み飛ばすと困る             橙の地＋橙の枠
   左の太い縦棒・角丸・影は使わない。
   --------------------------------------------------------------- */
/* 枠の形（線の太さ・角・内側の余白）は1種類に固定する。
   ただし地色まで同じにすると、入れ子になったときに境目が消えて
   のっぺりするので、地色だけで区別をつける。
     補足 … 白（白地のページに対して枠線で立たせる）
     注意 … 薄い橙（読み飛ばしてほしくないので地で示す）
     入れ子の補足 … 薄いグレー（親が白なので沈ませる） */
.pv-page .box-light,
.pv-page .pv-notice,
.pv-page .important-note {
  border: 1px solid var(--pv-rule);
  border-radius: 0;
  box-shadow: none;
  padding: 18px 22px;
  margin: 0 0 24px;
  font-size: 15px;
  line-height: 1.85;
}
.pv-page .box-light { background-color: #FFFFFF; }
/* 橙は一段明るくする。--pv-orange-bg(#E47345 S74 L58) は他でも使うトークンなので
   ここでは直に指定する。本文 15.83:1／見出し(#B34A1F) 4.88:1 で AA を満たす。 */
.pv-page .pv-notice,
.pv-page .important-note {
  background-color: #FFF2E6;
  border-color: #FF9A52;
}
/* 連絡先ページの案内。上の住所・電話が中央揃えなので、こちらも合わせる。
   上の .box-light が margin の一括指定で左右を 0 に戻すため、この位置に置く */
.pv-page .pv-contact__guide {
  max-width: 720px;
  margin: 44px auto 0;
  text-align: center;
}
.pv-page .pv-contact__guide p { text-align: center; }

/* 枠を重ねないための、線を持たない区切り */
.pv-page .pv-subsec { margin: 0 0 24px; }
/* 白い箱の中に白い箱が来ると境目が消えるので、内側は沈ませる */
.pv-page .box-light .box-light,
.pv-page .pv-boxbody .box-light,
.pv-page .accordion-content .box-light { background-color: #F7F9F8; }

/* 交通手段の補足だけ max-width:82.5% で 809px に縮み、
   親（980px）の中で左に寄っていた。幅いっぱいに使う */
.pv-page .access-content .box-light { max-width: none; width: auto; }


/* --- 注意の「!」の印 --------------------------------------------
   丸のままだと、親が display:flex のため長い文の行だけ横に潰れ
   （12.6×20＝比0.63）、長体がかかったように見えていた。
   角チップにして flex-shrink:0 で縮まないようにする。 */
.pv-page .pv-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;          /* flex の中で縮ませない */
  width: 20px;
  height: 20px;
  margin-right: 10px;
  background-color: var(--pv-orange-ink);
  color: #fff;
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

/* 決済一覧と、その下の注意書きが接していたので間を空ける */
.pv-page .cashless-payment-methods .payment-list { margin-bottom: 24px; }
.pv-page .cashless-payment-methods .important-note { margin-top: 0; }


/* --- 点つきのリスト -------------------------------------------
   サイト全体で ul{list-style:none} が効いているため、これまで
   「・」を本文に書いて点の代わりにしていた。本来の点を出す。 */
.pv-page .pv-bullets {
  list-style: disc outside;
  margin: 0;
  padding: 0 0 0 20px;
}
.pv-page .pv-bullets > li {
  list-style: disc outside;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: .02em;
  color: var(--pv-ink);
  margin: 0 0 8px;
  padding: 0;
}
.pv-page .pv-bullets > li:last-child { margin-bottom: 0; }
.pv-page .pv-bullets > li::marker { color: var(--pv-band-hall); }

/* 区画の見出し（東／西）。色の丸は使わず、文字と罫線で示す。
   東西の区別は文字色と罫線の色で持たせる（丸が担っていた役割をここに移した）。
   白地での比 … 紺 11.07:1／緑 6.25:1 でどちらも AA を満たす。 */
.pv-page .box-light > h5 {
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .03em;
  color: var(--pv-ink);
  margin: 0 0 10px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--pv-rule);
}
.pv-page .box-light > h5.is-east {
  color: var(--pv-band-expo);
  border-bottom-color: var(--pv-band-expo);
}
.pv-page .box-light > h5.is-west {
  color: var(--pv-band-hall);
  border-bottom-color: var(--pv-band-hall);
}
/* 点の色も、その区画の色に合わせる */
.pv-page .box-light > h5.is-east + .pv-bullets > li::marker { color: var(--pv-band-expo); }
.pv-page .box-light > h5.is-west + .pv-bullets > li::marker { color: var(--pv-band-hall); }


/* --- 番号つきの手順。印を1行目に揃える -------------------------- */
.pv-page .pv-numlist__item {
  position: relative;
  padding-left: 34px;
  margin-bottom: 12px;
}
.pv-page .pv-num {
  position: absolute;
  left: 0;
  /* 1行目の行箱（16px×1.9＝30.4px）の中で上下中央に来る位置 */
  top: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 20px;
  background-color: var(--pv-band-hall);
  color: #fff;
  border-radius: 0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

/* --- 経路。「→」の文字をやめ、区間の連なりとして見せる ---------- */
.pv-page .pv-routerow {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  margin-bottom: 14px;
}
/* .access-wrapper .vehical-list li（0,2,1）が margin-bottom:110px を持っており、
   交通手段の大項目用の余白が経路の行にも当たっていた。同じ段数まで上げて打ち消す */
.pv-page .access-content .pv-routerow,
.pv-page .access-wrapper .pv-routerow { margin-bottom: 12px; }

.pv-page .pv-routerow__label {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--pv-band-hall);
  white-space: nowrap;
}
/* .access-content .box-light span（0,2,1）の下線が経路にも掛かり、
   リンクのように見えていた。経路の中だけ下線を外す
   （「熱海駅での乗り換え」を強調している span の下線はそのまま残す） */
.pv-page .access-content .box-light .pv-routerow__label,
.pv-page .access-content .box-light .pv-route,
.pv-page .access-content .box-light .pv-route > span { text-decoration: none; }
.pv-page .pv-route {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv-page .pv-route > span {
  display: inline-block;
  padding: 3px 10px;
  background-color: #fff;
  border: 1px solid var(--pv-rule);
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .02em;
  white-space: nowrap;
}
.pv-page .pv-route > span + span { margin-left: 24px; position: relative; }
.pv-page .pv-route > span + span::before {
  content: "";
  position: absolute;
  left: -17px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -4px;
  border-right: 1.5px solid var(--pv-band-hall);
  border-bottom: 1.5px solid var(--pv-band-hall);
  transform: rotate(-45deg);
}
/* .pv-notice p（0,2,1）に負けるので、こちらも同じ段数にする */
.pv-page .pv-notice .pv-notice-title,
.pv-page .box-light .pv-notice-title,
.pv-page .pv-notice-title,
.pv-page .pv-alert-title {
  display: block;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .03em;
  color: var(--pv-orange-ink);
  border: none;
  padding: 0;
  margin: 0 0 8px;
}
/* ボックスの中は本文の段をそのまま使う */
.pv-page .box-light p,
.pv-page .pv-notice p,
.pv-page .important-note p { font-size: 15px; line-height: 1.85; margin: 0 0 .8em; }
.pv-page .box-light > :last-child,
.pv-page .pv-notice > :last-child,
.pv-page .important-note > :last-child { margin-bottom: 0; }


/* --- 配布資料のチップ。PDF・Excel・Word 以外の形式（PowerPoint・ZIP・
       画像など）にも、同じ形の汎用アイコンを与える。
       アイコンは style.css の .dl-file が --pv-file-icon を見る作り。 --- */
.pv-page .dl-file.is-generic {
  --pv-file-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E");
}


/* ---------------------------------------------------------------
   5-E. 埋め込み（地図・動画）とカードの補い

   観光ページが 192行のインライン CSS（角丸6・影5・浮き上がり1・
   トークン外の色8）で一枚だけ別サイトのように見えていたので、
   ここに寄せた。足りなかったのは埋め込み枠と番号だけ。
   --------------------------------------------------------------- */
.pv-page .pv-embed {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--pv-rule);
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  background-color: #F7F9F8;
}
.pv-page .pv-embed.is-narrow { max-width: 800px; margin-inline: auto; }
.pv-page .pv-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* カードの写真。観光ページは <picture> を直接置いているので、
   .pv-card__media を挟まずに同じ見た目にする */
.pv-page .pv-card > picture { display: block; overflow: hidden; }
.pv-page .pv-card__img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  background-color: var(--pv-rule);
  transition: transform .5s ease;
}
.pv-page .pv-card:hover .pv-card__img { transform: scale(1.05); }

/* 地図のピン番号。丸で囲まずに、英字ラベルと同じ位置づけで置く */
.pv-page .pv-card__no {
  display: inline-block;
  margin-right: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
  color: var(--pv-band-hall);
  background: none;
  border: none;
  border-radius: 0;
  width: auto;
  height: auto;
}

@media (prefers-reduced-motion: reduce) {
  .pv-page .pv-card__img { transition: none; }
  .pv-page .pv-card:hover .pv-card__img { transform: none; }
}


/* ---------------------------------------------------------------
   5-F. よくある質問

   直したこと
     ・本文の幅が 757px しかなく、他ページ（980px）より窮屈だった
     ・Q の印が「Q」の丸と番号の丸を 5px 重ねて置いていた（がたつきの元）
     ・§5 の h3 一括指定が .heading の padding-left:60px を消してしまい、
       印の上に質問文が乗っていた ← 自分で入れた不具合
     ・A の印が答え全体の上下中央にあり、1行目とずれていた
   --------------------------------------------------------------- */
.pv-page .section-faq .wrapper {
  max-width: none;
  width: var(--pv-cw, 980px);
  margin-left: auto;
  margin-right: auto;
}

/* 質問。左は印のぶんだけ空ける */
.pv-page .faq-question {
  background-color: #F1F7F3;
  border: 1px solid var(--pv-band-hall);
  border-radius: 0;
  padding: 20px 62px 20px 18px;
}
.pv-page .faq-question.is-toggle:hover { background-color: #E4EEE8; }

/* 印は「Q1」の1枚のチップにする（丸を2つ重ねるのをやめる） */
.pv-page .faq-question .heading {
  padding: 0 0 0 58px;      /* §5 の h3 一括指定で 0 になっていたので戻す */
  font-size: 18px;
  line-height: 1.6;
  letter-spacing: .02em;
}
.pv-page .faq-question .heading::before {
  content: "Q" attr(data-number);
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 0;
  top: 0;
  transform: none;
  min-width: 44px;
  height: 26px;
  padding: 0 8px;
  background-color: var(--pv-band-hall);
  color: #fff;
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
}
.pv-page .faq-question .heading::after { display: none; content: none; }

/* 答え。印は1行目に揃える（上下中央だと長い答えで大きくずれる） */
.pv-page .faq-answer {
  padding: 20px 0 24px 58px;
  font-weight: 400;
}
.pv-page .faq-answer::after {
  content: "A";
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  left: 0;
  top: 20px;
  transform: none;
  width: 44px;
  height: 26px;
  padding: 0;
  background-color: var(--pv-band-expo);
  color: #fff;
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
}

/* 検索欄と「すべて開く／閉じる」も角丸をやめて他と揃える */
.pv-page .faq-search-box,
.pv-page .faq-search-box input,
.pv-page .faq-tool-btn { border-radius: 0; }


/* ---------------------------------------------------------------
   5-G. レストラン＆カフェ

   もとは1つの flex 箱（.guide-content.width-smaller）に
   「見出し・写真・本文」×2店 ＋ お知らせ3件 の計8ブロックを流し込んでいたため、
   店ごとの区切りが無く、お知らせは left/right/left で3枚目だけ孤立していた。
   店を1枚ずつのカードにして、写真・説明・営業時間・メニューの位置を揃える。
   --------------------------------------------------------------- */
.pv-page .pv-dining {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 24px;
  margin: 0 0 56px;
}
/* 写真を左に置くと、横長の原本（900×570）が本文の高さに合わせて
   縦に引き伸ばされ、左右が半分近く切れる。写真は上に置いて原本の
   比率で見せ、本文だけを縦に伸ばして2店の行を揃える */
.pv-page .pv-shop {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--pv-rule);
  background-color: #fff;
}
.pv-page .pv-shop__media { overflow: hidden; }
.pv-page .pv-shop__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.pv-page .pv-shop__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 22px 26px 26px;
}

.pv-page .pv-shop__where {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.5;
  color: var(--pv-band-expo);
  margin: 0 0 6px;
}
.pv-page .pv-shop__name {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .03em;
  color: var(--pv-ink);
  margin: 0 0 14px;
  padding: 0 0 12px;
  border-bottom: 2px solid var(--pv-band-expo);
}
/* 説明文を伸縮させることで、下の営業時間とメニューボタンが2店で同じ行に並ぶ */
.pv-page .pv-shop__desc {
  flex: 1 1 auto;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .02em;
  color: var(--pv-ink-2);
  margin: 0 0 18px;
}

/* 営業時間・定休日。表組みをやめ、名前と値の2列で揃える */
.pv-page .pv-shop__spec {
  display: grid;
  grid-template-columns: 6em minmax(0, 1fr);
  gap: 0;
  margin: 0 0 20px;
  border-top: 1px solid var(--pv-rule);
}
.pv-page .pv-shop__spec dt,
.pv-page .pv-shop__spec dd {
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--pv-rule);
  font-size: 14px;
  line-height: 1.7;
}
.pv-page .pv-shop__spec dt { font-weight: 700; color: var(--pv-ink); }
.pv-page .pv-shop__spec dd { color: var(--pv-ink); font-variant-numeric: tabular-nums; }
.pv-page .pv-shop__note {
  display: block;
  font-size: 12px;
  line-height: 1.6;
  color: var(--pv-ink-2);
  font-variant-numeric: normal;
}
.pv-page .pv-shop__menu { margin: 0; align-self: flex-start; }

/* おすすめメニュー */
.pv-page .pv-dining__lead {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .03em;
  color: var(--pv-ink);
  margin: 0 0 20px;
}
/* 3枚のPDFボタンの高さを揃える。説明文の長さが違うので、
   カードを縦のフレックスにして本文を伸ばし、ボタンを下端に落とす */
.pv-page .pv-dining__pick .pv-card { display: flex; flex-direction: column; }
.pv-page .pv-dining__pick .pv-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding-top: 16px;
}
.pv-page .pv-dining__pick .pv-card__desc { flex: 1 1 auto; margin-bottom: 14px; }
.pv-page .pv-dining__pick .btn-link-pdf { margin: 0; align-self: flex-start; }
/* このページの英字ラベル（.guide-title .text-english）は紺。
   カードだけ既定の緑になるとブロック内で色が割れるので合わせる */
.pv-page .pv-dining__pick .pv-card__en { color: var(--pv-band-expo); }
.pv-page .pv-dining__pick .pv-card:hover { border-bottom-color: var(--pv-band-expo); }
.pv-page .pv-dining__pick .pv-card:hover .pv-card__name { color: var(--pv-band-expo); }

@media only screen and (max-width: 767px) {
  .pv-page .pv-dining { grid-template-columns: 1fr; gap: 20px; margin-bottom: 36px; }
  .pv-page .pv-shop__body { padding: 18px 16px 22px; }
  .pv-page .pv-shop__name { font-size: 20px; }
  .pv-page .pv-shop__desc { font-size: 14px; line-height: 1.85; }
  .pv-page .pv-shop__spec { grid-template-columns: 5.5em minmax(0, 1fr); }
  .pv-page .pv-shop__spec dt,
  .pv-page .pv-shop__spec dd { font-size: 13px; padding: 9px 0; }
  .pv-page .pv-dining__lead { font-size: 18px; }
}


/* ---------------------------------------------------------------
   6. アイコン＋説明のカード（写真が無いページ用）
   --------------------------------------------------------------- */
.pv-figcards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--pv-rule-strong);
}
.pv-figcards.is-3 { grid-template-columns: repeat(3, 1fr); }
.pv-figcard {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px 16px;
  border-bottom: 1px solid var(--pv-rule);
  border-right: 1px solid var(--pv-rule);
  text-decoration: none;
  transition: background-color .15s ease;
}
.pv-figcard:last-child { border-right: none; }
.pv-figcard:hover { background: var(--pv-green-tint); }
.pv-figcard__icon {
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  object-fit: contain;
  display: block;
}
.pv-figcard__body { min-width: 0; }
.pv-figcard__name {
  display: block;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--pv-ink);
}
.pv-figcard__note {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.75;
  color: var(--pv-ink-2);
}


/* ---------------------------------------------------------------
   7. 写真ギャラリー（既存840×520の施設写真を活かす）
   --------------------------------------------------------------- */
.pv-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 0 0 12px;
}
.pv-gallery.is-2 { grid-template-columns: repeat(2, 1fr); }
.pv-gallery__item { margin: 0; }
.pv-gallery__item img {
  width: 100%;
  height: auto;
  aspect-ratio: 840 / 520;
  object-fit: cover;
  display: block;
  background: var(--pv-rule);
}
.pv-gallery__cap {
  display: block;
  margin-top: 7px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--pv-ink-2);
}


/* ---------------------------------------------------------------
   9. 施設案内のレイアウト（980px の箱から出す）

   この節だけが「見た目の作り」を変える。従来は 8 施設すべてが
   .wrapper（980px）の中に閉じ込められ、写真も 535px に縮小されて
   いた。ここでは幅の制約を反転させ

     .wrapper を width:auto にする
       → 帯にしないブロック（目次・館内図・収容人数表）は個別に 980px へ戻す
       → 施設 1 件は全幅の帯になり、中身だけ 1200px で中央に置く

   という形にする。vw は使わない。親は .container{min-width:1280px}
   の子孫なので常に 1280px 以上あり、1200px が横スクロールを生むことは
   ない（ヘッダーの left 補正とも干渉しない）。
   --------------------------------------------------------------- */
@media print, (min-width: 768px) {

  /* ページ全体で共有する1本のスパイン。パンくず・見出し・帯の中身・表が
     すべてこの幅に揃うので、左端が1本の線として通る。
     既定は現行サイトと同じ 980px。写真を主役にするページだけ <main> に
     pv-wide を足して 1200px にする（本文が 980px 組みのページと混ざらない） */
  /* 本文の幅はサイト全体で 980px に揃える。
     pv-wide は「幅を広げる」ためではなく「全幅の帯を使う」ための印として残す
     （§9 の施設バンドがこのクラスで動いているため）。 */
  .pv-page          { --pv-cw: 980px; }
  .pv-page.pv-wide  { --pv-cw: 980px; }

  /* 開催までの流れ。style.css は5列固定なので、4段のときは列数を合わせる。
     スマホ側は style.css の2列指定をそのまま使うので、PCだけで指定する */
  .pv-page .pv-steps2.is-4 { grid-template-columns: repeat(4, 1fr); }

  /* 届出書類・資料だけ style.css:5438 で .wrapper が 758px に絞られており、
     他ページより 222px 狭かった。列の多いレイアウト図の表が入らないので、
     サイト共通の 980px に戻す（style.css 側は層Bなので触らず上書きする） */
  .pv-page .section-download > .wrapper { width: var(--pv-cw); }

  /* 料金表の時間区分の見出し。「午前・午後」が列の内寸に数px足りず
     「午前・午」「後」と2行に折れていた。折り返しを止めて、必要な幅は
     余っている施設名・区分の列から回す */
  .pv-page .table-price th.cell-three,
  .pv-page .table-price th.cell-four,
  .pv-page .table-price th.cell-five,
  .pv-page .table-price th.cell-six,
  .pv-page .table-price th.cell-seven,
  .pv-page .table-price th.cell-eight,
  .pv-page .table-price.style-03 tbody tr:first-child th { white-space: nowrap; }

  /* 書類名の列は既定 46%。列が7本ある表ではそこだけ間延びするので詰める。
     「スクール」等のラベルはセルの内寸に 2px 足りず2行に折れていたので、
     折り返しを止めて、必要な幅を部屋名の列から回す */
  .pv-page .pv-table-manycols th[scope="col"].col-doc { width: 22%; }
  .pv-page .pv-table-manycols .dl-file { white-space: nowrap; }
  /* 部屋名は既定18px。「コンベンションホールA」が195pxで内寸ちょうどに
     当たって折れていたので、本文と同じ16pxに落として1行に収める */
  .pv-page .pv-table-manycols .doc-name { font-size: 16px; }

  .pv-crumbs__inner,
  .pv-pagehead__inner {
    max-width: none;
    width: var(--pv-cw, 980px);
    padding-left: 0;
    padding-right: 0;
  }
  /* リード文も見出し・サブメニューと同じ幅にする（左右の柱を1本に通す） */
  .pv-pagehead__lead { max-width: none; }

  /* --- 幅の制約を反転する --- */
  .pv-page.pv-wide .section-facilitie > .wrapper { width: auto; }

  /* 帯にしないブロックも同じ 1200px に揃える */
  .pv-page.pv-wide .section-facilitie .section-content > .pv-toc,
  .pv-page.pv-wide .section-facilitie .section-content > .pv-duo,
  .pv-page.pv-wide .section-facilitie .section-content > .banner-facilitie,
  .pv-page.pv-wide .section-facilitie .section-content > .street_view,
  .pv-page.pv-wide .section-facilitie .section-content > .section-facilitie-schema {
    width: var(--pv-cw);
    margin-left: auto;
    margin-right: auto;
  }
  /* 導入文は左端をスパインに合わせたまま、幅だけ 880px で止める */
  .pv-page.pv-wide .section-facilitie > .wrapper > .pv-lead {
    width: 880px;
    margin-left: calc(50% - var(--pv-cw) / 2);
    margin-right: 0;
  }
  .pv-page.pv-wide .section-facilitie .section-content { padding-bottom: 120px; }

  /* --- 施設 1 件 = 全幅の帯 --- */
  /* margin:0 は上の「.pv-page .section-content > section{margin-top:96px}」(0,2,1)
     に勝つ必要がある。.pv-wide を足した (0,3,0) でようやく効くようになった。
     帯の間隔は padding だけで作る（margin が残ると地色の帯の間に
     白い隙間が入り、交互の地色が分断されて見える） */
  .pv-page.pv-wide .section-location-description {
    width: auto;
    margin: 0;
    padding: 96px 0 104px;
  }
  /* 1件おきに地色を敷いて区切る。収容人数表（.section-facilitie-schema）は
     この選択子に一致しないので白のまま残り、前後の交互が崩れない */
  .pv-page.pv-wide .section-location-description:nth-of-type(odd) {
    background-color: #F4F6F5;
  }
  .pv-page.pv-wide .section-location-description > .title-location-common,
  .pv-page.pv-wide .section-location-description > .content-facilitie {
    width: var(--pv-cw);
    margin-left: auto;
    margin-right: auto;
  }

  /* --- 部屋見出し：ラベル → 室名 の2段にする --- */
  .pv-page.pv-wide .section-location-description .title-location-common,
  .pv-page.pv-wide .section-location-description .title-location-common.pink-style {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0 14px;
    background: none;
    padding: 0 0 20px;
    margin: 0 auto 44px;   /* auto は上の 1200px 中央寄せを引き継ぐため必須 */
    border-bottom: 2px solid currentColor;
    font-size: 40px;
    line-height: 1.25;
    letter-spacing: .02em;
  }
  /* フロアガイドの英字ラベルは、色ベタの帯（.text-english の背景）と
   右端の切り欠き（::before の 16×70px）を持っていた。両方やめる。 */
.pv-page .guide-title .text-english {
  background: none;
  width: auto;
  position: static;
  /* 枠は和文と同じ位置でも text-align:center が残っていて
     「Parking」だけ中央に寄っていた。和文と左端を揃える */
  text-align: start;
  margin-left: 0;
  padding-left: 0;
}
.pv-page .guide-title .text-english::before,
.pv-page .guide-title .text-english::after,
.pv-page .guide-title .text-japan::before,
.pv-page .guide-title .text-japan::after { display: none; content: none; }

/* 施設カテゴリは見出しの上段に小さく置く（枠付きの箱をやめる） */
  .pv-page.pv-wide .section-location-description .title-location-common .white-box-text.md {
    order: -1;
    flex: 0 0 100%;
    border: none;
    background: none;
    text-align: left;
    padding: 0;
    margin: 0 0 12px;
    /* 親の 40px を継承すると中身が 12px でも行箱が 56px になる */
    font-size: 12px;
    line-height: 1.4;
  }
  .pv-page.pv-wide .section-location-description .title-location-common .font-small,
  .pv-page.pv-wide .section-location-description .title-location-common .font-large {
    display: inline;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .22em;
  }
  .pv-page.pv-wide .section-location-description .title-location-common .font-small::after {
    content: "／";
    margin: 0 .15em 0 .35em;
    opacity: .5;
  }
  /* 階数は 70px の色ベタ角から、小さいチップへ */
  .pv-page.pv-wide .section-location-description .title-location-common .bubble,
  .pv-page.pv-wide .section-location-description .title-location-common .bubble.is-larger {
    height: 28px;
    min-width: 0;
    padding: 0 11px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
  }
  /* 階数チップと室名がくっついて見えるので間隔を取る（.left は flex） */
  .pv-page.pv-wide .section-location-description .title-location-common .left { gap: 0 16px; }
  .pv-page.pv-wide .section-location-description .title-location-common .main-text {
    padding-left: 0;
    font-size: 40px;
    line-height: 1.25;
  }

  /* --- 本文：写真を主役にした2カラム --- */
  /* キャッチと本文は帯の幅（980px）いっぱいに置く。
     以前は 800px で止めていたが、多目的ホールだけ .description の親が
     .md で選択子に当たらず 980px のままだったため、8室で幅が2種類に
     割れていた。広い方に揃える。 */
  .pv-page.pv-wide .section-location-description .content-facilitie > .title,
  .pv-page.pv-wide .section-location-description .content-facilitie > .description,
  .pv-page.pv-wide .section-location-description .description {
    max-width: none;
  }
  /* 多目的ホールだけ .title の親が .md で「> .title」に当たらず 20px のまま
     だったので、直下に限定しない書き方にする */
  .pv-page.pv-wide .section-location-description .content-facilitie .title {
    font-size: 28px;
    line-height: 1.5;
    letter-spacing: .02em;
    margin: 0 0 18px;
  }
  .pv-page.pv-wide .content-facilitie .block-link-slide {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0 48px;
    margin: 40px 0 0;
  }
  /* 写真を 535px → 620px に（本文 980px ＝ 写真620 ＋ 間48 ＋ 図面リンク312） */
  .pv-page.pv-wide .content-facilitie .block-link-slide > .right {
    order: 0;
    width: 620px;
    flex: 0 0 620px;
  }
  .pv-page.pv-wide .content-facilitie .block-link-slide > .left {
    order: 1;
    width: auto;
    flex: 1 1 auto;
    padding-top: 4px;
  }
  .pv-page.pv-wide .content-facilitie .table-final-info { margin-top: 48px; }
}

/* ---------------------------------------------------------------
   8. スマートフォン
   --------------------------------------------------------------- */
@media only screen and (max-width: 767px) {
  .pv-crumbs__inner { padding: 12px 14px 0; }
  .pv-crumbs__list  { font-size: 11px; }

  .pv-pagehead        { margin-bottom: 32px; }
  .pv-pagehead__inner { padding: 0 14px; }
  .pv-pagehead__title { font-size: 28px; letter-spacing: .03em; }
  .pv-pagehead__lead  { font-size: 15px; line-height: 1.85; margin-top: 14px; }
  .pv-pagehead__en    { font-size: 11px; margin-bottom: 8px; }
  .pv-pagehead__anchors { gap: 8px 18px; margin-top: 16px; }
  .pv-pagehead__anchors a { font-size: 13px; }

  .pv-pagehead--text  { padding: 18px 0 28px; }
  .pv-pagehead--photo { padding-bottom: 26px; }
  .pv-pagehead__media { height: 180px; margin-bottom: 20px; }

  /* --- 見出しの段階（SP）。PC の 28/20/18 をそのまま縮める。
         PC と同じ順に並べるので、勝ち負けは PC と変わらない。 --- */
  .pv-page h2 { font-size: 22px; line-height: 1.45; }
  .pv-page h3 { font-size: 18px; line-height: 1.60; }
  .pv-page h4 { font-size: 16px; line-height: 1.65; }

  .pv-page .title-section-common,
  .pv-page .pv-sec__title,
  .pv-page .big-title,
  .pv-page .faq-heading,
  .pv-page .access-title,
  .pv-page .access-title-sub,
  .pv-page .sitemap-title,
  .pv-page .list-title,
  .pv-page .guide-title,
  .pv-page .sg-category-title,
  .pv-page h2.title,
  .pv-page .section-event .title,
  .pv-page .title-section-common .large,
  .pv-page .guide-title .text-japan {
    font-size: 22px;
    line-height: 1.45;
    padding-bottom: 10px;
    margin-bottom: 22px;
  }
  .pv-page .title-table,
  .pv-page .policy-title,
  .pv-page .guide-title-sub,
  .pv-page .guide-title-sub.is-blue,
  .pv-page .guide-title-sub.text-large,
  .pv-page .section-guide-detail .guide-title-sub,
  .pv-page .section-guide-detail .right .guide-title-sub.text-large,
  .pv-page .bento-title,
  .pv-page .catering-title,
  .pv-page .item-title,
  .pv-page .sg-card-title,
  .pv-page h3.heading,
  .pv-page .accordion-title,
  .pv-page .box-light h3,
  .pv-page .section-content h3.title,
  .pv-page .section-content .sub-title,
  .pv-page .section-content .small-title {
    font-size: 18px;
    line-height: 1.60;
    margin-bottom: 12px;
  }
  .pv-page h4.heading,
  .pv-page .hotel-title,
  .pv-page .book-title,
  .pv-page .vehical-title,
  .pv-page .title-underline,
  .pv-page .pv-alert-title,
  .pv-page .box-light h4,
  .pv-page .topics-list-detail .topics-title,
  .pv-page .pv-list__title,
  .pv-page .htl-card-name {
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 10px;
  }
  .pv-page .accordion-title { padding: 12px 14px; }

  /* サブメニューは 4桁だと狭すぎるので 2桁にする */
  .pv-page .anchor-link,
  .pv-page .pv-pagehead__anchors,
  .pv-page .pv-tiles { grid-template-columns: repeat(2, 1fr); margin-bottom: 28px; }
  .pv-page .anchor-link a,
  .pv-page .pv-pagehead__anchors a,
  .pv-page .pv-tiles a { font-size: 14px; padding: 9px 4px 10px; }
  .pv-page .anchor-link a[data-en]::before,
  .pv-page .pv-pagehead__anchors a[data-en]::before,
  .pv-page .pv-tiles .pv-tile__en { font-size: 10px; letter-spacing: .16em; }

  /* 主催者トップ：写真は1列、入口は2桁で積む */
  .pv-page .pv-showcase { grid-template-columns: 1fr; gap: 26px; }
  .pv-page .pv-showcase__name { font-size: 17px; }
  .pv-page .pv-showcase__note { text-align: start; }
  .pv-page .pv-guide { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .pv-page .pv-guide a { padding: 16px 6px 14px; }
  .pv-page .pv-guide a::before { width: 24px; height: 24px; margin-bottom: 6px; }
  .pv-page .pv-guide__name { font-size: 14px; }
  .pv-page.pv-centered .pv-sec__head { margin-bottom: 22px; }

  /* スマホはヘッダーが低いので、その分だけ */
  .pv-page [id] { scroll-margin-top: calc(var(--pv-header-h, 68px) + 16px); }

  /* 外部リンクは1桁で積む */
  .pv-page .pv-extlinks { grid-template-columns: 1fr; gap: 0; margin: 0 0 30px; }
  .pv-page .pv-extlinks a { padding: 13px 2px; }
  .pv-page .pv-extlinks__name { font-size: 15px; }

  .pv-page .box-light,
  .pv-page .pv-notice,
  .pv-page .important-note { padding: 14px 16px; }

  /* 館内図とストリートビューは、狭い画面では縦に積む */
  .pv-page .pv-duo { grid-template-columns: 1fr; gap: 20px; margin-bottom: 32px; }

  /* pv-enhance.js が短いセルに付ける .pv-nowrap は、PC では見た目を整えるが
     狭い画面では表を 315px → 326px に広げ、10px だけのスクロールバーを
     出してしまう。折返しを許して収める。 */
  .pv-page .pv-table-card .pv-nowrap { white-space: normal; }

  /* 料金表もスマホでは横に流れるので、PCと同じく見出しは折り返さない
     （先に「スクロールするなら原寸で読ませる」に揃えてある） */
  .pv-page .table-price th.cell-three,
  .pv-page .table-price th.cell-four,
  .pv-page .table-price th.cell-five,
  .pv-page .table-price th.cell-six,
  .pv-page .table-price th.cell-seven,
  .pv-page .table-price th.cell-eight,
  .pv-page .table-price.style-03 tbody tr:first-child th:not([colspan]) { white-space: nowrap; }

  /* 列の多い表はスマホでは入りきらず .pv-table-card の中で横に流れる。
     どうせ横スクロールするのだから、幅に合わせて潰すのはやめて
     PCと同じ原寸で読ませる。列を詰めると「スクー／ル」のように
     1〜2文字ずつ折り返してしまい、かえって読めなくなる。 */
  .pv-page .pv-table-manycols th[scope="col"] { width: auto; white-space: nowrap; }
  .pv-page .pv-table-manycols .doc-name { min-width: 140px; }
  .pv-page .pv-table-manycols .dl-file { white-space: nowrap; }
  .pv-page .pv-table-manycols td { min-width: 92px; }

  /* --pv-cw は PC のメディアクエリ内でしか定義していないので、
     SP では 980px にフォールバックして横にあふれる。幅は画面任せにする */
  .pv-page .section-faq .wrapper { width: auto; }
  .pv-page .faq-question { padding: 16px 46px 16px 14px; }
  .pv-page .faq-question .heading { padding-left: 50px; font-size: 16px; }
  .pv-page .faq-question .heading::before,
  .pv-page .faq-answer::after { min-width: 38px; width: 38px; height: 22px; font-size: 12px; }
  .pv-page .faq-answer { padding: 16px 0 20px 50px; }
  .pv-page .faq-answer::after { top: 16px; }

  /* 部屋見出し。PC と同じ「ラベル → 室名」の構成に揃える。
     色ベタの帯と枠付きの箱をやめ、罫線1本で区切る。
     rem は使わない（SP疑似rem の負債を増やさない方針） */
  .pv-page .section-location-description { margin-top: 44px; }
  .pv-page .section-location-description .title-location-common,
  .pv-page .section-location-description .title-location-common.pink-style {
    background: none;
    padding: 0 0 12px;
    margin: 0 0 22px;
    border-bottom: 2px solid currentColor;
    font-size: 22px;
    line-height: 1.35;
    letter-spacing: .02em;
  }
  /* 狭い画面では、階数チップの右に英字と室名がぶら下がり、
     チップ（x=21）と文字（x=75）で左端が2本になっていた。
     チップを1行目に独立させ、すべて同じ左端から始める。 */
  .pv-page .section-location-description .title-location-common .left {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 0;
  }
  .pv-page .section-location-description .title-location-common .main-text {
    flex: 0 0 100%;
    padding-left: 0;
  }
  .pv-page .section-location-description .title-location-common .white-box-text {
    border: none;
    background: none;
    text-align: left;
    padding: 0;
    margin: 0 0 6px;
    font-size: 11px;
    line-height: 1.4;
  }
  .pv-page .section-location-description .title-location-common .font-small,
  .pv-page .section-location-description .title-location-common .font-large {
    display: inline;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
  }
  .pv-page .section-location-description .title-location-common .font-small::after {
    content: "／";
    margin: 0 .15em 0 .3em;
    opacity: .5;
  }
  .pv-page .section-location-description .title-location-common .bubble,
  .pv-page .section-location-description .title-location-common .bubble.is-larger {
    height: 20px;
    min-width: 0;
    padding: 0 9px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
  }
  .pv-page .section-location-description .title-location-common .main-text {
    padding-left: 0;   /* チップは上の行に置くので、字下げは要らない */
    font-size: 22px;
    line-height: 1.35;
  }
  /* PC 側と同じ理由（多目的ホールの .title は .md / .sm の中にある）で
     直下に限定しない */
  .pv-page .section-location-description .content-facilitie .title {
    font-size: 19px;
    line-height: 1.55;
  }

  .pv-figcards, .pv-figcards.is-3 { grid-template-columns: 1fr 1fr; }
  .pv-figcard { border-right: 1px solid var(--pv-rule); padding: 14px 12px; }
  .pv-figcard:nth-child(2n) { border-right: none; }

  .pv-gallery, .pv-gallery.is-2 { grid-template-columns: 1fr 1fr; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .pv-figcard { transition: none; }
}
