@charset "UTF-8";
/* ============================================================
   ライブ遠征ガイド LP 追加スタイル（ensei-add.css）
   style.css のあとに読み込みます。
   1. 泊まるエリアの候補ブロック（.vstay）
   2. FAQを開いたまま表示する（アコーディオンをやめる）
   3. 会場ブロックまわりの微調整
   既存の --blue / --blue-dark / --line / --soft / --muted を使うので、
   テーマCSS（band / minimal / magazine / night）にも追従します。
   ============================================================ */

/* ---------- 1. 泊まるエリアの候補 ---------- */
.vstay {
  margin: 0 0 14px;
  border: 1px solid var(--line, #DBE4EB);
  border-radius: 10px;
  background: var(--soft, #F4F7F9);
  overflow: hidden; }

.vstay__hd {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px;
  margin: 0; padding: 10px 14px;
  border-bottom: 1px solid var(--line, #DBE4EB);
  font-size: 12px; font-weight: 800; }
.vstay__hd span { font-size: 11px; font-weight: 400; color: var(--muted, #72808B); }

.vstay__list { margin: 0; padding: 0; list-style: none; }
.vstay__list > li { border-bottom: 1px solid var(--line, #DBE4EB); background: #fff; }
.vstay__list > li:last-child { border-bottom: 0; }
.vstay__list > li.is-current { background: #EAF4FC; }

.vstay__row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
  padding: 10px 14px;
  color: #263442; text-decoration: none; }
a.vstay__row:hover { background: #F1F8FD; }

.vstay__name { flex: 0 0 auto; min-width: 150px; font-size: 14px; font-weight: 800; line-height: 1.35; }
.is-current .vstay__name { color: var(--blue-dark, #055A99); }

.vstay__time {
  flex: 0 0 auto; min-width: 92px;
  padding: 2px 9px; border-radius: 5px;
  background: var(--soft, #F4F7F9);
  font-size: 12px; font-weight: 800; text-align: center; white-space: nowrap; }
.is-current .vstay__time { background: var(--blue, #0878C9); color: #fff; }

.vstay__desc { flex: 1 1 200px; min-width: 0; font-size: 12px; line-height: 1.5; color: var(--muted, #72808B); overflow-wrap: anywhere; }
.vstay__go { flex: 0 0 auto; font-size: 12px; font-weight: 800; color: var(--blue, #0878C9); white-space: nowrap; }
.vstay__here { flex: 0 0 auto; font-size: 11px; font-weight: 700; color: var(--muted, #72808B); white-space: nowrap; }

/* SPでは2行のテキストに圧縮します（約70px）。説明文は出しません
   1行目：泊まるならここ（下のホテル一覧のエリア）
   2行目：ほかの候補（リンク） */
@media (max-width: 800px) {
  .vstay { margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--line, #DBE4EB); border-radius: 8px; background: #EAF4FC; }
  .vstay__hd { display: none; }
  .vstay__list { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 0; background: none; }
  .vstay__list > li { border: 0; background: none; }
  .vstay__row { display: inline-flex; flex-wrap: nowrap; align-items: baseline; gap: 6px; padding: 0; }
  a.vstay__row:hover { background: none; }
  .vstay__desc, .vstay__here, .vstay__go { display: none; }

  .vstay__list > li:first-child { flex: 1 1 100%; }
  .vstay__list > li:first-child::before { content: "泊まるなら"; margin-right: 6px; font-size: 11px; font-weight: 700; color: var(--muted, #72808B); }
  .vstay__list > li:first-child .vstay__name { min-width: 0; font-size: 14px; }
  .vstay__list > li:first-child .vstay__time { min-width: 0; padding: 1px 7px; font-size: 11px; }

  .vstay__list > li:nth-child(2)::before { content: "ほかに"; margin-right: 6px; font-size: 11px; font-weight: 700; color: var(--muted, #72808B); }
  .vstay__list > li + li + li::before { content: "／"; margin-right: 6px; color: var(--muted, #72808B); }
  .vstay__list > li + li .vstay__name { min-width: 0; font-size: 12px; font-weight: 700; color: var(--blue, #0878C9); text-decoration: underline; text-underline-offset: 2px; }
  .vstay__list > li + li .vstay__time { min-width: 0; padding: 0; background: none; font-size: 11px; font-weight: 400; color: var(--muted, #72808B); }
}

/* ---------- 2. FAQ：開いたまま表示 ---------- */
.faq-open { margin-top: 4px; }
.faq-open__item {
  padding: 16px 18px;
  border: 1px solid var(--line, #DBE4EB);
  border-radius: 10px;
  background: #fff; }
.faq-open__item + .faq-open__item { margin-top: 10px; }
.faq-open__q {
  position: relative;
  margin: 0 0 8px;
  padding-left: 28px;
  font-size: 16px; font-weight: 800; line-height: 1.5; }
.faq-open__q::before {
  content: "Q";
  position: absolute; left: 0; top: 0;
  width: 20px; height: 20px; margin-top: 2px;
  border-radius: 4px;
  background: var(--blue, #0878C9);
  color: #fff;
  font-size: 12px; font-weight: 800; line-height: 20px; text-align: center; }
.faq-open__a {
  margin: 0; padding-left: 28px;
  color: var(--muted, #72808B); font-size: 14px; line-height: 1.9; }

@media (max-width: 800px) {
  .faq-open__item { padding: 14px 14px; }
  .faq-open__q { font-size: 16px; }
  .faq-open__a { font-size: 13px; }
}

/* ---------- 3. 会場ブロックの微調整 ---------- */
/* 6会場を折りたたまずに並べるため、区切りを少しはっきりさせます */
.venue-box + .venue-box { margin-top: 26px; }

/* 会場一覧の先頭に戻るリンク（任意） */
.venue-back {
  display: inline-block;
  margin-top: 10px;
  color: var(--muted, #72808B);
  font-size: 12px; font-weight: 700; text-decoration: none; }
.venue-back:hover { color: var(--blue, #0878C9); }

/* ホテルカードの「会場まで◯分」バッジ。data-walk があるカードだけに出ます */
.ltkRecoCard { position: relative; }
.ltkRecoCard[data-walk]::before {
  content: attr(data-walk);
  position: absolute; left: 8px; top: 8px; z-index: 1;
  padding: 3px 8px; border-radius: 5px;
  background: rgba(8, 120, 201, .94);
  color: #fff; font-size: 11px; font-weight: 800; line-height: 1.5;
  box-shadow: 0 2px 6px rgba(29, 47, 64, .25); }

/* ---------- 4. ヒーローの会場チップ ----------
   チップの幅に合わせて文字サイズを自動で決めます（改行しない範囲で最大）。
   いちばん長い「Kアリーナ／横浜アリーナ」が約12文字ぶんなので、余裕を見て幅÷13 を上限18px・下限12pxで使います。
   それでも入らない極端に狭い画面（320px程度）だけ2行になります */
.hero-chips a {
  container-type: inline-size;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  min-height: 74px; padding-inline: 8px;
  text-align: center; }
.hero-chips a b {
  font-size: 14px;                                       /* cqi 未対応ブラウザ用 */
  font-size: clamp(12px, calc(100cqi / 13), 18px);   /* 12文字＋字幅の誤差ぶんの余裕 */
  line-height: 1.35;
  text-wrap: balance; }
.hero-chips a span { margin-top: 3px; font-size: 12px; }
@media (min-width: 1000px) { .hero-chips a { min-height: 80px; } }

/* ---------- 6. 会場見出しの下のアクセス ----------
   空港からの移動と、駅から会場までを1行ずつ。飛行機・電車のアイコンで区別します。
   PCは横に並べ、SPは1行ずつ縦に積みます（行の途中で折り返さない） */
.venue-box > header .venue-access {
  display: flex; flex-wrap: wrap; gap: 6px 10px;
  margin: 10px 0 0; padding: 0; list-style: none; }
.venue-access li {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 10px; border-radius: 6px; background: var(--soft, #F4F7F9);
  color: #263442; font-size: 12px; font-weight: 700; line-height: 1.5; }
.venue-access li::before {
  content: ""; flex: 0 0 15px; width: 15px; height: 15px;
  background: var(--blue, #0878C9); opacity: .8;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.venue-access li.is-air   { --ico: 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='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z'/%3E%3C/svg%3E"); }
.venue-access li.is-train { --ico: 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%3Crect x='5' y='3' width='14' height='14' rx='3'/%3E%3Cpath d='M5 10h14M9 21l1.5-4M15 21l-1.5-4'/%3E%3Ccircle cx='9' cy='13.5' r='.8'/%3E%3Ccircle cx='15' cy='13.5' r='.8'/%3E%3C/svg%3E"); }
@media (max-width: 800px) {
  .venue-box > header .venue-access { flex-direction: column; align-items: stretch; gap: 5px; }
  .venue-access li { align-items: flex-start; font-size: 12px; padding: 6px 10px; }
  .venue-access li::before { margin-top: 2px; }
}
.lp-note { margin: -14px 0 18px; color: var(--muted, #72808B); font-size: 12px; line-height: 1.6; }

/* ---------- 7. 会場ブロック内のホテル一覧の見出しを出さない ----------
   CSV側で showHeading を FALSE にしていますが、TRUE のままでも崩れないようにここでも止めます */
.venue-box .ltkRecoWidget__head .ltkRecoWidget__title,
.venue-box .ltkRecoWidget__head .ltkRecoWidget__sub,
.venue-box .ltkRecoWidget__head .ltkRecoWidget__headLink,
.venue-box .ltkRecoTabs__heading { display: none !important; }
.venue-box .ltkRecoWidget__head { justify-content: flex-end; margin-bottom: 8px; }
/* 会場ブロックの中ではウィジェットの上下余白をなくす（会場ブロック自体が余白を持つため）。
   .venue-box の中だけに効くので、他ページのウィジェットには影響しません */
.venue-box .ltkRecoWidgetTabs,
.venue-box .ltkRecoWidgetMount,
.venue-box .ltkRecoWidgetGroup { --ltk-block-padding-top: 0rem; --ltk-block-padding-bottom: 0rem; }

/* ---------- 8. 追従ナビ ----------
   収まるときは中央、はみ出すときは左から横スクロール（先頭・末尾の auto 余白で実現） */
.lp-anchor .lp-inner > a:first-child { margin-left: auto; }
.lp-anchor .lp-inner > a:last-child  { margin-right: auto; }

/* 会場エリアに入ったときだけ出る2段目（6会場へのジャンプ）。
   ナビの下に重ねて出すので、表示・非表示でページがガタつきません */
.lp-subnav {
  position: absolute; left: 0; right: 0; top: calc(100% - 12px);
  border-bottom: 1px solid var(--line, #DBE4EB);
  background: rgba(255,255,255,.97);
  box-shadow: 0 6px 14px rgba(35,55,70,.08);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
.lp-subnav.is-shown { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.lp-subnav__inner {
  display: flex; gap: 8px; padding: 2px 0 9px;
  overflow-x: auto; white-space: nowrap;
  scrollbar-width: none; -ms-overflow-style: none; }
.lp-subnav__inner::-webkit-scrollbar { display: none; }
.lp-subnav__inner > a:first-child { margin-left: auto; }
.lp-subnav__inner > a:last-child  { margin-right: auto; }
.lp-subnav a {
  flex: 0 0 auto;
  padding: 6px 12px;
  border: 1px solid var(--line, #DBE4EB); border-radius: 999px;
  background: #fff; color: #263442;
  font-size: 13px; font-weight: 700; line-height: 1.4; }
.lp-subnav a:hover { border-color: var(--blue, #0878C9); color: var(--blue, #0878C9); }
.lp-subnav a.is-current { border-color: var(--blue, #0878C9); background: var(--blue, #0878C9); color: #fff; }
/* ナビ2段ぶん下げて止める */
.venue-box { scroll-margin-top: 118px; }
@media (max-width: 800px) {
  .lp-subnav__inner { padding: 2px 14px 8px; gap: 6px; }
  .lp-subnav__inner > a:first-child { margin-left: 0; }
  .lp-subnav a { padding: 5px 11px; font-size: 12.5px; }
  .venue-box { scroll-margin-top: 108px; }
}

/* ---------- 10. SPのファーストビューを詰める ----------
   SPでは会場チップまでで1画面を使い切り、ページの主役の公演が見えなかったため、
   余白と重複した説明だけを削っています（PCは変更なし） */
.hero-lead, .lp-hero h1 { text-wrap: pretty; }
@media (max-width: 639px) {
  .hero-venues { margin: 22px auto 28px; }
  .hero-venues__note { display: none; }           /* 見出しと同じ内容のため */
  .hero-chips { margin-top: 10px; }
  .hero-chips a { min-height: 54px; padding-block: 9px; }
}

/* 2段目のボタンには1段目の下線を出さない（塗りで現在地を示すため） */
.lp-subnav a::after { display: none; }
.lp-subnav a { padding-bottom: 6px; }
@media (max-width: 800px) { .lp-subnav a { padding-bottom: 5px; } }


/* ---------- 11. SPの横幅を広く使う ----------
   SPでは「セクション余白20px ＋ パネル外側14px ＋ パネル内側16px ＋ 会場ブロック17px」が左右に重なり、
   393px幅のiPhoneでホテルカード（275px）が1枚も収まらなかったため、重なっている余白を整理します。
   ・セクションの左右余白をなくす（パネルの外側14pxは残して、画面の端にくっつかないようにする）
   ・会場ブロックは枠をやめて区切り線にする（パネルの中に枠がある二重構造をやめる）
   ・カードの横スクロールはパネルの端まで広げ、次のカードが見えるようにする */
@media (max-width: 800px) {
  .lp-section { padding-left: 0; padding-right: 0; }
  .lp-inner, .hero-inner { width: calc(100% - 24px); }
  .lp-panel { padding-left: 14px; padding-right: 14px; }

  .venue-box {
    margin-top: 24px; padding: 22px 0 0;
    border: 0; border-top: 1px solid var(--line, #DBE4EB); border-radius: 0; }
  /* ホテルカードの列：左端は見出しと揃えたまま、右だけパネルの端まで伸ばして次のカードを見せる。
     （ウィジェットはSPで左側だけ影の逃げ場をとっているため、右を足します。遠征パーツは両側とも元から対応済み） */
  .venue-box .ltkRecoWidget__viewport { margin-right: -14px; }

  /* 「◯◯のホテルをもっと見る」は右寄せ */
  .venue-box > header a { display: block; margin-top: 10px; text-align: right; font-size: 14px; }
}

/* ---------- 12. はみ出し対策 ----------
   幅100％＋内側余白で、公演の「もっと見る」ボタンなどがパネルからはみ出していたため */
.external-cta, .text-links a, .beginner-guide { box-sizing: border-box; max-width: 100%; }

/* ---------- 13. 遠征前に知っておきたいこと：1行・右矢印の一覧に ---------- */
.text-links a {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 48px; padding: 12px 16px; font-weight: 700; }
.text-links a::before { content: none; }
.text-links a::after { content: "›"; flex: 0 0 auto; color: var(--blue, #0878C9); font-size: 20px; line-height: 1; }
.text-links a:hover { border-color: var(--blue, #0878C9); color: var(--blue, #0878C9); }
.text-links a { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 800px) {
  .text-links { grid-template-columns: 1fr; gap: 8px; }
  .text-links a { font-size: 14px; padding: 12px 14px; }
}


/* ---------- 14. ヒーロー画像の暗さ ----------
   画像自体が夜景で暗いため、元の重ね（上60％・中44％・下82％）だと二重に暗くなっていました。
   白い文字が乗る中央は画像側がすでに暗いので、重ねを薄くして街の明かりを見せます */
.hero-bg::after {
  background: linear-gradient(180deg, rgba(6,30,52,.40) 0%, rgba(6,30,52,.18) 42%, rgba(6,30,52,.70) 100%); }

/* ---------- 15. 2段目ナビの余白 ----------
   2段目の行も .lp-inner を持つため、元の「.lp-anchor .lp-inner { padding:19px 0; gap:38px }」が勝っていました。
   同じ強さ以上の指定で上書きします */
.lp-anchor .lp-subnav .lp-subnav__inner { padding: 2px 0 10px; gap: 8px; justify-content: flex-start; }
@media (max-width: 800px) {
  .lp-anchor .lp-subnav .lp-subnav__inner { padding: 2px 12px 9px; gap: 6px; }
}

/* ---------- 16. ヒーローの文章を言葉の切れ目で改行する ----------
   日本語は1文字ずつどこでも改行されるため、「ここ／で。」のような切れ方になっていました。
   ヒーローだけ、句読点と <wbr> の位置でしか改行しないようにします（収まらないときだけ途中で折り返す） */
.lp-hero .hero-lead { word-break: keep-all; overflow-wrap: anywhere; }

/* アクセスの補足（別の駅から等）：PCは同じ行に小さく、SPは2行目に小さく */
.venue-access li small { margin-left: 6px; color: var(--muted, #72808B); font-size: 11px; font-weight: 500; }
.venue-access li small::before { content: "（"; }
.venue-access li small::after  { content: "）"; }
@media (max-width: 800px) {
  .venue-access li small { display: block; margin-left: 0; }
  .venue-access li small::before, .venue-access li small::after { content: none; }
}


/* ---------- 17. 明るいヒーロー画像用（section に is-bright） ----------
   昼の空の画像では白い文字が読めないため、文字を濃い紺にし、画像の上には白をごく薄く重ねるだけにします。
   夜の画像に戻すときは is-bright を外せば、14. の暗い重ねと白い文字に戻ります */
.lp-hero.is-bright .hero-bg::after {
  background: linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.22) 45%, rgba(255,255,255,0) 100%); }
.lp-hero.is-bright h1 { color: #12325A; text-shadow: 0 1px 12px rgba(255,255,255,.65); }
.lp-hero.is-bright h1 strong { color: #0068B7; }
.lp-hero.is-bright .hero-lead { color: #1E3A5C; text-shadow: 0 1px 8px rgba(255,255,255,.7); }
.lp-hero.is-bright .hero-venues__title { color: #12325A; text-shadow: 0 1px 8px rgba(255,255,255,.7); }
.lp-hero.is-bright .hero-venues__note { color: #2F4A6B; }


/* ---------- 18. ヒーロー：画像を使わず、旧デザインと同じ色にする（20260924・3回目） ----------
   「14.」で夜景用に薄くした重ねを、旧デザイン（style.css）と同じ値に戻します。
   地の色 #0B2740（.hero-d）の上にこの重ねがかかり、旧デザインと同じ紺になります。
   画像に戻すときは、このブロックを消して index.html の <picture> のコメントを外します */
.hero-bg::after {
  background: linear-gradient(180deg, rgba(6,30,52,.60) 0%, rgba(6,30,52,.44) 42%, rgba(6,30,52,.82) 100%); }

/* ---------- 19. ホテル一覧の幅を、ほかのコンテンツとそろえる（20260924・3回目） ----------
   PCでは「セクションの箱 ＞ 会場の箱（内側22px＋枠1px）＞ ホテル一覧」と囲みが二重になり、
   ホテル一覧だけが左右23pxずつ（計46px）狭くなっていました（1280px幅：ほか1110px／ホテル1064px）。
   SP（11.）と同じく、会場の箱をやめて区切り線にし、左右の端をほかのコンテンツとそろえます */
@media (min-width: 801px) {
  .venue-box { margin-top: 28px; padding: 28px 0 0; border: 0; border-top: 1px solid var(--line, #DBE4EB); border-radius: 0; }
  .venue-box + .venue-box { margin-top: 34px; }
}


/* ---------- 20. 記事：PCは4本を1列、SPは2列×2段（20260924・6回目） ----------
   style.css は「PC3列・SP1列」なので、このLPだけ上書きします。
   カードが小さくなるぶん、タイトルの文字と余白を少し詰めています */
.article-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.article-grid h3 { margin: 10px 14px 14px; font-size: 15px; line-height: 1.55; }
@media (max-width: 800px) {
  .article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .article-grid h3 { margin: 8px 10px 12px; font-size: 13px; line-height: 1.5; }
}


/* ---------- 21. ページ全体の見た目の統一（20260924・6回目） ----------
   ・矢印：「もっと見る」系の文字リンクの矢印を、テキストリンク・ホテル一覧と同じ「›」にそろえる
     （HTMLにあった「 →」は外し、CSSで付けています）
   ・角丸：このページで作っている箱とボタンを10pxにそろえる（エリア選択・記事・FAQと同じ）
   ・テキストリンク：PCは3本を1列に（2列だと3本目の横が空いてしまうため）
   ・「はじめての方へ」：リンク自体の文字色が未指定（ブラウザの青）だったので、ページの文字色に */
.venue-box > header > a::after,
.venue-more-link::after { content: "›"; margin-left: 6px; font-size: 1.2em; line-height: 1; }
.external-cta, .text-links a { border-radius: 10px; }
.beginner-guide { color: #263442; }
@media (min-width: 801px) {
  .text-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* ---------- 22. 文字色を共通パーツ（遠征パーツ・ホテルパーツ）の3色にそろえる（20260924・7回目） ----------
   共通パーツは「本文 #172033／サブ #33445B／補足 #687386」の3色（ensei-cards.css の --ink / --ink-2 / --muted）。
   ページ側は本文 #263442・補足 #72808B で少しずれていたので、共通パーツの3色に合わせます。
   ・見出しの下のひとこと（.lead＝サブ見出し）はサブの色に。灰色の背景の上でも、はっきり読めます
     （コントラスト：旧 #72808B は灰色の上で3.8、今の #33445B は9.2。読みやすさの目安は4.5以上）
   ・灰色の背景 --soft は #F4F7F9 → #F7F9FB に、ほんの少しだけ明るく。
     補足の色（#687386）が灰色の上に直接のる「囲まない」パターンでも、目安の4.5を超えるようにしています
   ・style.css は旧デザインと共通なので、このファイル（新デザインだけ）で上書きしています */
.ensoku-lp, .lp-hero, .lp-anchor {
  --ink: #172033;
  --ink-2: #33445B;
  --muted: #687386;
  --soft: #F7F9FB;
  color: #172033; }
.lp-anchor a, .lp-subnav a, .article-grid a, .text-links a,
.venue-access li, .vstay__row, .beginner-guide { color: #172033; }
.lead { color: #33445B; }
/* 会場名の下のひとこと（会場のサブ見出し）も、灰色の上で薄くならないようサブの色に */
.venue-box > header p { color: #33445B; }
/* 文字だけのリンク「〇〇のホテルをもっと見る」の青は、共通パーツ（遠征パーツ）のブランド色 #0068B7 に。
   今までの #0878C9 は灰色の上だとコントラストが4.3で目安（4.5）に届かず、#0068B7 は白の上5.7・灰色の上5.4 */
.venue-box > header a, .venue-more-link { color: #0068B7; }


/* ---------- 23. 記事カードを、共通パーツ（公演カード・ホテルカード）と同じ形に（20260924・8回目） ----------
   共通パーツのカード：角丸12px・枠線なしで内側に1pxの線（#DCE3EC）・影2段・画像はカードの上いっぱい・
   本文の余白12px・ホバーで影が変わる・押すと少し縮む。記事カードも同じ形にそろえます */
.article-grid article {
  position: relative; overflow: hidden;
  border: 0; border-radius: 12px; background: #fff;
  box-shadow: 0 2px 4px rgba(24, 45, 77, .16), 0 6px 20px rgba(24, 45, 77, .16);
  transition: box-shadow var(--lp-dur-fast, .22s) var(--lp-ease, ease), transform var(--lp-dur-fast, .22s) var(--lp-ease, ease); }
.article-grid article::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  border: 1px solid #DCE3EC; border-radius: inherit; pointer-events: none; }
.article-grid article:hover { box-shadow: 0 3px 6px rgba(0, 0, 0, .28); }
.article-grid article:active { transform: scale(.985); }
/* キーボードで選んだときの枠も、共通パーツと同じ（カードの外側に2px） */
.article-grid article:focus-within { outline: 2px solid #0068B7; outline-offset: 2px; }
.article-grid a { height: 100%; }
.article-grid a:focus-visible { outline: none; }
.article-grid .thumb img { border-radius: 0; }
.article-grid h3 { margin: 0; padding: 12px 12px 16px; font-size: 16px; line-height: 1.5; font-weight: 700; color: #172033; }
@media (max-width: 800px) {
  .article-grid h3 { padding: 10px 10px 12px; font-size: 14px; }
}


/* ---------- 24. SPの見出しの大きさに差をつける（20260924・11回目） ----------
   SPでは、セクションの見出し（h2）が22px、会場名（h3）も22pxで同じ大きさになり、区切りがあいまいでした。
   PCの比率（h2 28〜30px：h3 22px）に近づけ、SPは h2 25px：h3 19px（約1.3倍）にします。
   25pxは、箱のあるパターンでも「会場の近く、どこに泊まる？」が1行に収まる大きさです。
   2行になるときは、行の長さがそろうように折り返します（text-wrap: balance） */
@media (max-width: 800px) {
  .lp-panel > h2 { font-size: 25px; line-height: 1.4; text-wrap: balance; }
  .venue-box > header h3 { font-size: 19px; line-height: 1.45; }
}


/* ---------- 24. FAQの回答の中のリンク（20260929） ----------
   下線はつけず、ページ内のほかの文字リンク（「〇〇のホテルをもっと見る」など）と同じ「太字の青」に。
   色だけでなく太さでもリンクだと分かるようにしています（色の見分けにくい方への配慮）。青は共通パーツのブランド色 #0068B7 */
.faq-open__a a { color: #0068B7; font-weight: 700; text-decoration: none; }
.faq-open__a a:hover { text-decoration: underline; text-underline-offset: 3px; }
