/* ===== KV〜ABOUT テストバリエーション（0908テストアップ用） ===== */

/* ---------- 共通：リビール ---------- */
.tv-r { opacity:0; transform:translateY(26px); transition:opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1); }
.tv-r.is-in { opacity:1; transform:none; }

/* ---------- 案A/B：フルカラーKV ---------- */
.va-hero { position:relative; overflow:hidden; background:#121212; }
.va-hero .sec-media { position:relative; height:100svh; min-height:560px; }
.va-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.1s ease; }
.va-slide.on { opacity:1; }
.va-scrim { position:absolute; inset:0; background:linear-gradient(180deg, rgba(18,18,18,.18) 0%, rgba(18,18,18,0) 34%, rgba(18,18,18,.42) 100%); }
.va-layer { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.va-logo { width:min(78vw, 900px); filter:drop-shadow(0 6px 28px rgba(18,18,18,.35)); }
.va-badges { position:absolute; top:32px; right:36px; width:min(17vw, 210px); opacity:.94; }
.va-kicker { position:absolute; left:0; right:0; text-align:center; bottom:30px; color:#F2F0EB; font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:24px; letter-spacing:.3em; text-shadow:0 1px 10px rgba(18,18,18,.5); }
@media (max-width:768px){
  .va-hero .sec-media { height:86svh; min-height:480px; }
  .va-logo { width:88vw; }
  .va-badges { top:20px; right:16px; width:118px; }
  .va-kicker { bottom:20px; font-size:14px; letter-spacing:.22em; }
}

/* B案：KVスタンプ */
.vb-sticker { position:absolute; left:4vw; bottom:9vh; width:min(30vw,330px); transform:rotate(-9deg); filter:drop-shadow(0 10px 24px rgba(18,18,18,.35)); }
.vb-sticker2 { position:absolute; right:6vw; bottom:24vh; width:min(20vw,210px); transform:rotate(7deg); }
@media (max-width:768px){
  .vb-sticker { width:44vw; bottom:12vh; }
  .vb-sticker2 { width:30vw; bottom:30vh; right:4vw; }
}

/* ---------- 案A/B：茶色ABOUT ---------- */
.va-about { background:#624036; color:#F2F0EB; padding:110px 40px 120px; position:relative; overflow:hidden; }
.va-about .va-inner { max-width:1160px; margin:0 auto; position:relative; }
.va-eyebrow { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:13px; letter-spacing:.3em; color:#FFD0D9; margin-bottom:56px; }
.va-eyebrow::after { content:""; display:block; width:44px; height:4px; background:#FFD0D9; margin-top:12px; }

.va-stack { display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:56px; align-items:start; margin-bottom:88px; }
.va-fotm { width:100%; max-width:300px; }
.va-msgs { position:relative; }
.va-msg { font-family:'SALOMON Sans','Noto Sans JP',sans-serif; font-weight:900; line-height:1.22; letter-spacing:.02em; }
.va-msg--big { font-size:clamp(38px, 5.4vw, 74px); color:#F2F0EB; }
.va-msg--pink { font-size:clamp(30px, 4vw, 54px); color:#FFD0D9; margin-top:26px; }
.va-msg--date { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:clamp(17px, 2vw, 26px); letter-spacing:.18em; color:#F2F0EB; margin-top:34px; }
.va-msg--place { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:clamp(13px, 1.4vw, 17px); letter-spacing:.14em; color:rgba(242,240,235,.82); margin-top:10px; }
.va-jp { margin-top:34px; font-size:15px; font-weight:700; color:#FFD0D9; letter-spacing:.06em; }
.va-text { font-size:15px; line-height:2.05; color:rgba(242,240,235,.94); margin:0 0 18px; }
.va-sticker { position:absolute; right:-8px; top:-46px; width:min(22vw,240px); transform:rotate(8deg); filter:drop-shadow(0 8px 20px rgba(18,18,18,.3)); }

/* EVENT INFO 生成りカード */
.va-info { background:#F2F0EB; color:#121212; padding:44px 44px 36px; margin:72px 0 72px; }
.va-info .about-grid2 { display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px 26px; padding:16px 0; border-bottom:1px solid rgba(18,18,18,.14); }
.va-info .about-grid2:last-child { border-bottom:0; }
.va-info .about-dt { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:13px; letter-spacing:.18em; color:#624036; padding-top:3px; }
.va-info .about-dd { font-size:14px; line-height:1.9; margin:0; }
.va-info .about-label2 { display:inline-block; padding:5px 12px; background:#FFD0D9; font-size:11px; letter-spacing:.08em; color:#121212; }
.va-info .about-notes { display:block; margin-top:10px; font-size:12px; line-height:1.9; color:rgba(18,18,18,.62); }
.va-info .about-row { display:block; margin-top:10px; }

/* カテゴリカード */
.va-cats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.va-cat { background:#F2F0EB; color:#121212; padding:0 0 22px; }
.va-cat img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.va-cat-label { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:14px; letter-spacing:.14em; margin:18px 18px 10px; }
.va-cat-label::after { content:""; display:block; width:32px; height:3px; background:#FFD0D9; margin-top:8px; }
.va-cat p { font-size:12.5px; line-height:1.9; margin:0 18px; color:rgba(18,18,18,.86); }

/* B案：ABOUTの追いスタンプ・カード傾き */
.vb-about .va-cat:nth-child(odd) { transform:rotate(-1.2deg); }
.vb-about .va-cat:nth-child(even) { transform:rotate(1.1deg); }
.vb-stamp-mid { position:absolute; left:-30px; bottom:180px; width:200px; transform:rotate(-12deg); opacity:.96; }
.vb-badge-about { position:absolute; right:-10px; top:340px; width:160px; transform:rotate(5deg); opacity:.9; }

@media (max-width:768px){
  .va-about { padding:72px 20px 84px; }
  .va-msg--big { font-size:35px; }
  .va-msg--pink { font-size:24px; }
  .va-msg--date { font-size:16px; letter-spacing:.12em; }
  .va-stack { grid-template-columns:1fr; gap:36px; margin-bottom:56px; }
  .va-fotm { max-width:200px; }
  .va-sticker { position:static; display:block; width:44vw; margin:26px 0 0; transform:rotate(-6deg); }
  .va-info { padding:28px 22px 22px; margin:48px 0; }
  .va-info .about-grid2 { grid-template-columns:86px minmax(0,1fr); }
  .va-cats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .vb-stamp-mid { width:130px; bottom:auto; top:52%; }
  .vb-badge-about { display:none; }
}

/* ---------- 案C：最小変更 ---------- */
.vc .hero-logo { width:min(74vw, 860px) !important; max-width:none !important; }
.vc .sec-about { background:#624036 !important; }
.vc .sec-about .about-title,
.vc .sec-about .about-text { color:#F2F0EB; }
.vc .sec-about .about-concept-sub { color:#FFD0D9; }
.vc .sec-about .about-concept-main { color:#F2F0EB; }
.vc .sec-about .about-concept-jp { color:#FFD0D9; }
.vc .sec-about .about-label { color:#FFD0D9; }
.vc .sec-about .about-box3 { background:#FFD0D9; }
.vc .sec-about .about-list { background:transparent; padding:0; }
.vc .sec-about .about-grid2 { border-bottom-color:rgba(242,240,235,0.22); }
.vc .sec-about .about-dt { color:#FFD0D9; }
.vc .sec-about .about-dd { color:#F2F0EB; }
.vc .sec-about .about-notes { color:rgba(242,240,235,0.66); }
.vc .sec-about .about-box5 { background:transparent; padding:0; }
.vc .sec-about .about-box4 { background:transparent; }
.vc .sec-about .about-label3 { color:#F2F0EB; }
.vc .sec-about .about-text2 { color:rgba(242,240,235,0.94); }
.vc .sec-about .about-link { color:#FFD0D9; }

/* ---------- A案 v2（0908フィードバック反映） ---------- */
.va2 .va-slide { filter:brightness(.78); }
.va2 .va-scrim { background:linear-gradient(180deg, rgba(18,18,18,.28) 0%, rgba(18,18,18,.08) 36%, rgba(18,18,18,.5) 100%); }
.va2 .sec-media { height:calc(100svh - 124px); min-height:480px; }
.va2-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,300px); gap:64px; align-items:center; margin-bottom:72px; }
.va2-head .va2-fotm { justify-self:end; width:100%; max-width:300px; }
.va2-msgs { margin-bottom:0; }
.va2-msgs .va-msg--date { margin-top:40px; }
.va2-body { margin-bottom:24px; }
.va2-texts .va-text { max-width:none; overflow-wrap:normal; word-break:normal; line-break:strict; }
.va2-info { background:transparent; color:#F2F0EB; padding:0; margin:64px 0 80px; border-top:1px solid rgba(242,240,235,.35); }
.va2-info .about-grid2 { border-bottom:1px solid rgba(242,240,235,.22); }
.va2-info .about-dt { color:#FFD0D9; }
.va2-info .about-dd { color:#F2F0EB; }
.va2-info .about-notes { color:#F2F0EB; }
.va2-run { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); background:#F2F0EB; color:#121212; margin-bottom:20px; }
.va2-run > img { width:100%; height:100%; object-fit:cover; display:block; min-height:340px; }
.va2-run-body { padding:52px 52px 44px; display:flex; flex-direction:column; }
.va2-run-title { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:900; font-size:clamp(46px,5vw,72px); letter-spacing:.04em; line-height:1; }
.va2-run-title::after { content:""; display:block; width:52px; height:5px; background:#FFD0D9; margin-top:14px; }
.va2-run-body p { font-size:14px; line-height:2.05; margin:26px 0 0; color:rgba(18,18,18,.88); }
.va2-run-link { display:inline-block; margin-top:auto; padding-top:26px; font-weight:700; font-size:13.5px; letter-spacing:.06em; color:#624036; }
.va2-cats3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:768px){
  .va2 .sec-media, .va-page .sec-hero > div:first-child { height:calc(100svh - 124px) !important; min-height:420px !important; }
  .va2-head { grid-template-columns:1fr; gap:30px; margin-bottom:48px; }
  .va2-head .va2-fotm { justify-self:center; max-width:190px; }
  .va2-msgs .va-msg--date { margin-top:28px; }
  .va2-info { margin:44px 0 56px; }
  .va2-run { grid-template-columns:1fr; }
  .va2-run > img { min-height:0; aspect-ratio:16/10; }
  .va2-run-body { padding:30px 22px 28px; }
  .va2-cats3 { grid-template-columns:1fr; gap:14px; }
}

/* 0910a: A案はACCESS上の罫線なし */
.va-page .sec-access.schedule-box { border-top:0; }
.va-page .vn-lead { word-break:normal; overflow-wrap:normal; line-break:strict; }

/* ===== 0910b：a/b/c共通のSP・GIFTS調整 ===== */
/* COMING SOON 行間詰め */
.va-page .sec-label14 { line-height:1.02; }
@media (max-width:820px){
  /* C案ABOUT見出しもSPで拡大 */
  .va-page section[id] h2.about-title { font-size:35px !important; line-height:1.35 !important; }
  /* SCHEDULE見出しは1行維持のためサイズ調整 */
  .va-page section[id] h2.schedule-title--jp { font-size:28px !important; }
}
@media (max-width:768px){
  /* EVENT INFO：dtの下にdd（#about のID指定より強くする） */
  .va-page .about-grid2, .va-page #about .about-grid2 { grid-template-columns:1fr !important; gap:4px 0 !important; }
  /* GIFTS（SPのみ）：ピステを大きく、下に2つ */
  .va-page .gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .va-page .gift-item:first-child { grid-column:1 / -1; }
  .va-page .gift-item:first-child .gift-media { aspect-ratio:2 / 1; }
}

/* ===== 0911a：B案 ABOUTパララックス ===== */
.vb2 { position:relative; overflow:hidden; }
.vb2-bg { position:absolute; inset:0; pointer-events:none; z-index:0; display:flex; align-items:flex-start; justify-content:center; }
.vb2-fotm { width:min(78vw, 1050px); opacity:.14; will-change:transform; margin-top:280px; }
/* B案：ヘッドは左寄せ＋右にDUOTONE画像 */
.vb2 .va2-head { grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:56px; align-items:center; }
.vb2 .va-msg--big { font-size:clamp(34px, 3.6vw, 52px); }
.vb2-headimg { width:100%; display:block; aspect-ratio:1/1; object-fit:cover; object-position:15% 50%; }
.vb2 .va-inner { position:relative; z-index:1; }
.vb2-run { margin-bottom:56px; }
.vb2-run .va2-run-title { color:#F2F0EB; margin-bottom:36px; }
.vb2-marquee { overflow:hidden; }
.vb2-track { display:flex; gap:22px; width:max-content; animation:vb2-scroll 64s linear infinite; }
.vb2-track img { height:340px; width:auto; display:block; flex:0 0 auto; }
@keyframes vb2-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
.vb2-run-text { font-size:15px; line-height:2.05; color:rgba(242,240,235,.94); margin:44px 0 14px; }
.vb2-run .va2-run-link { color:#FFD0D9; }
.vb2-cats { position:relative; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:0 22px; margin-top:88px; }
.vb2-cat { will-change:transform; }
.vb2-cat--a { grid-column:1 / span 5; }
.vb2-cat--b { grid-column:8 / span 4; margin-top:130px; }
.vb2-cat--c { grid-column:4 / span 5; margin-top:20px; }
@media (max-width:768px){
  .vb2 { overflow:visible; } /* overflow:hiddenがあるとstickyが効かないため */
  .vb2-bg { align-items:stretch; }
  .vb2-fotm { position:sticky; top:34vh; width:100vw; max-width:none; opacity:.12; margin-top:52vh; align-self:flex-start; }
  .vb2-track img { height:190px; }
  .vb2-track { gap:12px; animation-duration:48s; }
  .vb2 .va2-head { grid-template-columns:1fr; gap:26px; }
  .vb2-cats { grid-template-columns:repeat(6,minmax(0,1fr)); gap:0 12px; margin-top:56px; }
  .vb2-cat--a { grid-column:1 / span 5; }
  .vb2-cat--b { grid-column:2 / span 5; margin-top:26px; }
  .vb2-cat--c { grid-column:1 / span 5; margin-top:26px; }
}

/* 0912d: C案 ABOUTカードの画像とテキストを上揃えに */
.vc .about-grid3 > .about-box4:not(:first-child) .about-box5 { align-self:start; }

/* 0912e: B案カテゴリカードの白地なし */
.vb2 .va-cat { background:transparent; padding-bottom:0; }
.vb2 .va-cat-label { color:#F2F0EB; margin-left:0; margin-right:0; }
.vb2 .va-cat p { color:rgba(242,240,235,.94); margin-left:0; margin-right:0; }

/* ===== 0913b：先方FB反映（B案） ===== */
.vb2-band { background:rgba(255,208,217,.10); margin:0 -40px 56px; padding:72px 40px 64px; }
.va-page .va2-cats3 { gap:22px; }
.va-page .va2-cats3 .va-cat img { aspect-ratio:16/9; }
.va-page .va-text, .va-page .vb2-run-text, .va-page .va2-run-body p { font-size:16.5px; line-height:2.1; }
.va-page .va-info .about-dd { font-size:15px; }
.va-page .va-info .about-notes { font-size:13px; }
.va-page .va-cat p { font-size:13.5px; }
.va-page .va-cat-label { font-size:15px; }
.va-page .va-jp { font-size:16.5px; }
.vb2-entry { text-align:center; margin-top:8px; }
.vb2-entrybtn { display:inline-flex; align-items:center; gap:12px; padding:20px 64px; background:#FFD0D9; color:#121212; font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:16px; letter-spacing:.18em; }
.vb2-entrybtn:hover { background:#F2F0EB; color:#121212; }
@media (max-width:768px){
  .vb2-band { margin:0 -20px 40px; padding:48px 20px 44px; }
  .va-page .va-text, .va-page .vb2-run-text, .va-page .va2-run-body p { font-size:15.5px; }
  .vb2-entrybtn { width:100%; justify-content:center; padding:18px 20px; }
}

/* 0913c: C案向けの帯・フォント調整 */
.vb2-band--c { margin:64px -40px 0; padding:64px 40px 56px; }
.vc .sec-about .about-text { font-size:16.5px; line-height:2.1; }
.vc .sec-about .about-text2 { font-size:15px; }
.vc .sec-about .about-dd { font-size:15px; }
.vc .vb2-entry { margin-top:40px; }

/* ===== 0914a：テスト3案は本文フォントを全体的に一段拡大 ===== */
.va-page .schedule-label2 { font-size:16px; }
.va-page .schedule-label3 { font-size:14px; }
.va-page .run-lead { font-size:14.5px; }
.va-page .run-label2 { font-size:13px; }
.va-page .splus-text { font-size:14.5px; }
.va-page .access-dd { font-size:14.5px; }
.va-page .access-dd2 { font-size:14.5px; }
.va-page .entry-label4 { font-size:13.5px; }
.va-page .entry-label6 { font-size:13px; }
.va-page .gift-lead { font-size:14px; }
.va-page .gift-name { font-size:15px; }
.va-page .gift-note { font-size:12.5px; }
.va-page .vn-lead { font-size:16.5px; }
.va-page .vn-guide-lead { font-size:14px; }
.va-page .vn-name { font-size:14px; }
.va-page .vn-desc { font-size:13px; }
.va-page .faq-a { font-size:15px; }
.va-page details.faq-item summary { font-size:15.5px; }
.va-page .sec-label9 { font-size:13px; }

/* 0914b: PLACE凡例の左右カラムの高さを揃える（PCのみ） */
@media (min-width:769px){
  /* 8項目を1つのグリッドに流し込み、行ごとに高さを共有→罫線が左右で揃う */
  .va-page .vn-lists { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(4,auto); grid-auto-flow:column; align-items:stretch; }
  .va-page .vn-lists > div { display:contents; }
  .va-page .vn-lists .vn-row { align-items:center; }
}

/* 0914e: ABOUTエントリーボタン下の注記 */
.vb2-entrynote { margin-top:14px; font-size:12.5px; letter-spacing:.08em; color:rgba(242,240,235,.75); }

/* 0916a: KV kvc-04 縦トリミング時は空側（上）を削る */
.va-page .kv-crop-bottom { object-position: center bottom; }
.va-page .kv-crop-top { object-position: center top; }

/* 0917a: 修正依頼0909-02 */
.va-page .schedule-label3 { display:block; margin:4px 0 0; }
.va-page .entry-title .pg-box3 { color:#FFFFFF; }

/* 0918a: 記念グッズ画像 */
.va-page .gift-media { background:#FFFFFF; border:none; overflow:hidden; }
.va-page .gift-media img { width:100%; height:100%; object-fit:contain; display:block; }

/* 0918d: PCは3つ横並びのままピステ列だけ大きく */
@media (min-width:769px){
  .va-page .gift-grid { grid-template-columns:1.7fr 1fr 1fr; align-items:end; }
  .va-page .gift-media { aspect-ratio:auto; height:340px; }
}

/* 0918e: SPのピステを左右いっぱいに拡大 */
@media (max-width:768px){
  .va-page .gift-item:first-child .gift-media { margin-left:-20px; margin-right:-20px; }
}

/* 0920a: KV2枚目(トレイルランナー) PCは走者が入る位置でクロップ */
.va-page .kv-pos-runner { object-position: 55% 22%; }

/* 0921a: KV5枚目(高台トレイル) PCは走者の上半身が入る位置 */
.va-page .kv-pos-trail { object-position: center 88%; }

/* 0921b: KV3枚目(足元カット) スマホは前足が入る左寄せ */
@media (max-width:768px){
  .va-page .kv-pos-street { object-position: 0% center; }
}

/* 0922a: KV確定仕様 — オーバーレイ・明るさフィルターとも非表示 */
.va-page .va2 .va-scrim { display:none; }
.va-page .va2 .va-slide { filter:none; }

/* 0923a: SCHEDULE画像のスクロール追従(sticky)を廃止して固定に */
.va-page .schedule-fig { position:static; }

/* 0924b: KVロゴ・日付に光彩(外側)相当（SNS素材と同スペック: 黒30%/15pxソフト） */
.va-page .va-logo { filter: drop-shadow(0 0 15px rgba(0,0,0,.30)) drop-shadow(0 0 15px rgba(0,0,0,.30)); }
.va-page .va-kicker { text-shadow: 0 0 15px rgba(0,0,0,.45), 0 0 8px rgba(0,0,0,.30); }

/* ===== 0924: AFTER CELEBRATION スペシャルゲスト解禁 ===== */
.va-page #guest { scroll-margin-top:70px; }
.va-page .sec-after .sec-text { margin-top:0; font-size:14px; max-width:none; }
.va-page .guest-time { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:13px;
  letter-spacing:0.3em; color:#FFD0D9; margin:0 0 26px; }
.va-page .guest-from { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:16px;
  letter-spacing:0.22em; color:rgba(242,240,235,0.85); margin-bottom:26px; }
.va-page .guest-names { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:26px;
  letter-spacing:0.05em; line-height:1.4; color:#F2F0EB; margin-bottom:8px; }
/* 左カラム写真: 茶色背景・センター配置・余白あり（トリミングなし） */
.va-page .sec-after .sec-grid { background:linear-gradient(150deg, #1d120f 0%, #4a2f28 100%); }
.va-page .sec-after .sec-row10 { background:transparent; }
.va-page .sec-after .sec-box4 { background:transparent; display:flex; align-items:center; justify-content:center; padding:24px; }
.va-page .sec-after .sec-box4 .duo-wrap { display:block; position:relative; width:100%; max-width:none; }
.va-page .sec-after .sec-box4 .sec-img5 { position:static; width:100%; height:auto; object-fit:unset; display:block; }
.va-page .sec-after .sec-row10 { padding:72px 64px; }
@media (min-width:769px) and (max-width:1140px) {
  .va-page .sec-after .sec-grid { grid-template-columns:minmax(0,1fr); min-height:0; }
}
@media (max-width:768px) {
  .va-page .guest-names { font-size:20px; }
  .va-page .guest-lockup { height:48px; margin:18px auto 0; align-self:center; }
}
.va-page .guest-lockup { height:72px; width:auto; display:block; margin:26px 0 0; align-self:flex-start; }
.va-page a.guest-btn { display:inline-flex; align-items:center; gap:12px; margin-top:30px; padding:18px 44px; align-self:flex-start; white-space:nowrap;
  background:#FFD0D9; color:#121212; font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700;
  font-size:14px; letter-spacing:0.18em; }
@media (max-width:768px) {
  .va-page .guest-from { font-size:14px; letter-spacing:0.16em; }
  .va-page a.guest-btn { width:100%; justify-content:center; padding:16px 20px; }
}

/* KVファーストビュー告知バナー */
.va-page .kv-guest { position:absolute; left:0; right:0; bottom:0; z-index:6;
  display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap;
  padding:15px 20px; background:rgba(18,18,18,0.78); backdrop-filter:blur(6px);
  color:#F2F0EB; text-decoration:none; }
.va-page .kv-guest:hover { background:rgba(18,18,18,0.92); color:#F2F0EB; }
.va-page .kv-guest-mark { height:46px; width:auto; display:block; }
.va-page .kv-guest-label { color:#FFD0D9; font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700;
  font-size:12px; letter-spacing:0.3em; }
.va-page .kv-guest-text { font-weight:700; font-size:14px; letter-spacing:0.06em; }
.va-page .kv-guest-text::after { content:"↓"; margin-left:12px; color:#FFD0D9; }
.va-page .va2 .va-kicker { bottom:86px; }
@media (max-width:768px) {
  .va-page .kv-guest { flex-wrap:wrap; gap:8px 12px; padding:12px 14px 14px; }
  .va-page .kv-guest-mark { height:36px; }
  .va-page .kv-guest-text { width:100%; text-align:center; font-size:12px; line-height:1.75; }
  .va-page .va2 .va-kicker { bottom:128px; }
}

/* KVバナー内 写真サムネイル */
.va-page .kv-guest-thumb { height:52px; width:auto; display:block; border-radius:6px; border:1px solid rgba(242,240,235,0.4); }
@media (max-width:768px) { .va-page .kv-guest-thumb { height:40px; } .va-page .kv-guest-mark { display:none; } }

/* SPECIAL GUEST モーダル */
#guest-modal { position:fixed; inset:0; z-index:200; display:none; }
#guest-modal.on { display:block; }
#guest-modal .gm-backdrop { position:absolute; inset:0; background:rgba(10,10,14,0.72); backdrop-filter:blur(4px); }
#guest-modal .gm-card { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(560px, calc(100vw - 32px)); max-height:calc(100vh - 40px); overflow:auto;
  background:#0A0F1C; border:1px solid rgba(242,240,235,0.25); }
#guest-modal .gm-photo { width:100%; height:auto; display:block; }
#guest-modal .gm-body { padding:28px 32px 32px; text-align:center; }
#guest-modal .gm-label { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:12px; letter-spacing:0.42em; color:#FFD0D9; margin-bottom:14px; }
#guest-modal .gm-from { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:12px; letter-spacing:0.2em; color:rgba(242,240,235,0.8); margin-bottom:8px; }
#guest-modal .gm-names { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:22px; letter-spacing:0.04em; line-height:1.45; color:#F2F0EB; }
#guest-modal .gm-time { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:11.5px; letter-spacing:0.26em; color:rgba(242,240,235,0.65); margin:12px 0 22px; }
#guest-modal a.gm-btn { display:flex; align-items:center; justify-content:center; gap:10px; padding:17px 20px;
  background:#FFD0D9; color:#121212; font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:13.5px; letter-spacing:0.16em; }
#guest-modal #gm-more { display:inline-block; margin-top:18px; font-size:12px; letter-spacing:0.1em; color:rgba(242,240,235,0.75); border-bottom:1px solid rgba(242,240,235,0.4); padding-bottom:3px; }
#guest-modal #gm-more:hover { color:#F2F0EB; }
#guest-modal #gm-close { position:absolute; top:10px; right:10px; z-index:2; width:40px; height:40px;
  background:rgba(18,18,18,0.55); border:none; border-radius:50%; color:#F2F0EB; font-size:22px; line-height:1; cursor:pointer; }
body.gm-lock { overflow:hidden; }
@media (max-width:768px) {
  #guest-modal .gm-body { padding:22px 20px 26px; }
  #guest-modal .gm-names { font-size:18px; }
}
/* モーダル収納アニメーション */
#guest-modal .gm-backdrop { transition:opacity .5s ease; }
#guest-modal.closing .gm-backdrop { opacity:0; }
#guest-modal .gm-card { will-change:transform,opacity; }

/* 名前ラベル: 左カラム(PC)は写真下の帯に、SP(guest-photo-sp)は写真上にオーバーレイ */
.va-page .sec-after .sec-box4 .duo-name { position:absolute; bottom:4.5%; transform:translateX(-50%);
  font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700;
  font-size:clamp(13px, 1.25vw, 17px); letter-spacing:0.1em; color:#F2F0EB;
  text-shadow:0 1px 10px rgba(0,0,0,0.65), 0 0 24px rgba(0,0,0,0.45); white-space:nowrap; pointer-events:none; }
.va-page .sec-after .sec-box4 .duo-name--l { left:25.5%; }
.va-page .sec-after .sec-box4 .duo-name--r { left:74.5%; }
.va-page .guest-photo-sp .duo-name { position:absolute; bottom:6%; transform:translateX(-50%);
  font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:11px;
  letter-spacing:0.05em; color:#F2F0EB; text-shadow:0 1px 10px rgba(0,0,0,0.65), 0 0 24px rgba(0,0,0,0.45);
  white-space:nowrap; pointer-events:none; }
/* SP: 写真が小さく名前同士が重なるため、立ち位置に寄せつつ間隔を確保 */
.va-page .guest-photo-sp .duo-name--l { left:25%; }
.va-page .guest-photo-sp .duo-name--r { left:70%; }
/* 〜820px: ゲストセクションは他セクションに合わせて左寄せ（site.cssのセンター寄せを解除） */
@media (max-width:820px) {
  .va-page .sec-after .sec-row10 > * { text-align:left !important; }
  .va-page .sec-after .sec-text .nb { display:inline !important; margin:0 !important; width:auto; }
}
/* SP: ロックアップとボタンはセンター */
@media (max-width:768px) {
  .va-page .guest-lockup { margin:22px auto 0; align-self:center; }
  .va-page a.guest-btn { align-self:center; }
}
/* SP・タブレット(〜1140px): 左カラム写真は使わず、from と時間表示の間に表示（SPと同じ並び順） */
.va-page .guest-photo-sp { display:none; }
@media (max-width:1140px) {
  .va-page .sec-after .sec-box4 { display:none; }
  .va-page .guest-photo-sp { display:block; position:relative; width:100%; margin:8px 0 28px; }
  .va-page .guest-photo-sp img { width:100%; height:auto; display:block; }
}
/* タブレット帯: 写真はテキストと同じ幅（コンテンツ幅いっぱい）・名前は少し大きく */
@media (min-width:769px) and (max-width:1140px) {
  .va-page .guest-photo-sp .duo-name { font-size:13px; }
  /* タブレットは写真が大きいので立ち位置の真下に */
  .va-page .guest-photo-sp .duo-name--l { left:25%; }
  .va-page .guest-photo-sp .duo-name--r { left:62%; }
}
/* SP: キャッチはやや縮小して2行に収める */
@media (max-width:768px) {
  .va-page .sec-after .sec-label12 { font-size:24px !important; letter-spacing:0.01em; }
}
/* SP: SCHEDULEは時間を1行目に、説明はその下に */
@media (max-width:768px) {
  .va-page #schedule .schedule-grid2 { grid-template-columns: minmax(0,1fr) !important; gap:8px !important; }
  .va-page #schedule .schedule-label2 { display:block; }
  .va-page #schedule .schedule-label3 { display:block; margin-left:0; margin-top:4px; }
}
/* 茶色背景のキャンペーンボタン: ホバーは白（ENTRYセクションと同仕様） */
.va-page a.guest-btn.btn-fill:hover { background:#F2F0EB !important; color:#121212 !important; }
/* PC 1141px〜: 左半分に写真をフルブリード（cover・名前は写真上）、右にテキスト */
@media (min-width:1141px) {
  .va-page .sec-after .sec-box4 { padding:0; align-items:stretch; justify-content:stretch; }
  .va-page .sec-after .sec-box4 .duo-wrap { width:100%; max-width:none; height:100%; }
  .va-page .sec-after .sec-box4 .sec-img5 { width:100%; height:100%; object-fit:cover; }
  /* キャッチはカラム幅に合わせて2行（狭いPC幅では少し縮小） */
  .va-page .sec-after .sec-label12 .sp-br { display:inline; }
  .va-page .sec-after .sec-label12 { font-size:clamp(30px, 2.9vw, 40px); }
  /* ロックアップとボタンは縦積み（右カラムの幅に合わせる） */
  .va-page .guest-cta { flex-direction:column; align-items:flex-start; gap:0; margin-top:0; }
  .va-page .guest-cta .guest-lockup { margin:26px 0 0; }
  .va-page .guest-cta a.guest-btn { margin-top:30px; }
}
/* タブレット帯: キャッチ1行が収まるよう少し縮小 */
@media (min-width:821px) and (max-width:1140px) {
  .va-page .sec-after .sec-label12 { font-size:clamp(28px, 4.4vw, 40px); }
}
/* ロックアップとキャンペーンボタンを横並びに（PC・タブレット） */
.va-page .guest-cta { display:flex; align-items:center; gap:44px; margin-top:30px; }
.va-page .guest-cta .guest-lockup { margin:0; align-self:auto; }
.va-page .guest-cta a.guest-btn { margin-top:0; align-self:auto; }
@media (max-width:768px) {
  .va-page .guest-cta { flex-direction:column; gap:0; margin-top:0; width:100%; }
  .va-page .guest-cta .guest-lockup { margin:22px auto 0; }
  .va-page .guest-cta a.guest-btn { margin-top:30px; }
}

/* ===== タブレット帯(821-1140px): PC2カラムが潰れるセクションを1カラム化 ===== */
@media (min-width:821px) and (max-width:1140px) {
  /* SCHEDULE: 写真カラムを外して表を全幅に（SPと同様） */
  .va-page #schedule .schedule-grid { grid-template-columns:minmax(0,1fr) !important; }
  .va-page #schedule .schedule-grid > :last-child { display:none !important; }
  /* MEMBERS(S/PLUS): 右の写真カラムを外し、パネル内上部に横長写真を表示 */
  .va-page #splus .splus-grid { grid-template-columns:minmax(0,1fr) !important; }
  .va-page #splus .splus-media { display:none !important; }
  .va-page #splus .splus-img-sp { display:block; aspect-ratio:16/9; overflow:hidden; margin:0 0 34px; }
}
/* タブレット帯: ABOUT見出しの「１日。」だけの折り返しを防ぐ */
@media (min-width:821px) and (max-width:1000px) {
  .va-page .va-msg--big { font-size:clamp(32px, 4.4vw, 44px); }
}
/* タブレット〜中間PC幅: PLACEエリアガイドのリストが画面端に張り付くのを防ぐ */
@media (min-width:769px) and (max-width:1240px) {
  .va-page .vn-lists { padding-left:30px !important; padding-right:30px !important; }
}
/* タブレット帯: GIFTSはスマホレイアウト（ピステ全幅＋下2つ） */
@media (min-width:821px) and (max-width:1140px) {
  .va-page .gift-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:16px !important; align-items:start !important; }
  .va-page .gift-item:first-child { grid-column:1 / -1; }
  .va-page .gift-item:first-child .gift-media { aspect-ratio:2 / 1; height:auto !important; }
  .va-page .gift-media { height:auto !important; aspect-ratio:4 / 3; }
  /* 2つの走り方: カードを1カラムに */
  .va-page .run-grid { grid-template-columns:minmax(0,1fr) !important; }
}

/* SP: PLACE見出しブロック（PLACE/1日かぎりの遊び場。/リード文）の二重ガター解消
   .vn-head の 6vw がセクション側の20pxに上乗せされていたため、SPでは撤去して他セクションと揃える */
@media (max-width:768px) {
  .va-page .vn-nobg .vn-head { padding-left:0 !important; padding-right:0 !important; }
}

/* 769〜820px: この幅なら1行に収まるため、ゲストセクション内のSP用改行を解除 */
@media (min-width:769px) and (max-width:820px) {
  .va-page .sec-after .sec-label12 .sp-br,
  .va-page .guest-names .sp-br,
  .va-page .guest-time .sp-br { display:none; }
  .va-page .guest-time .sp-hide { display:inline; }
}


/* ゲスト本文: 段落間の余白 */
.va-page .sec-after .sec-text + .sec-text { margin-top:16px; }

/* ============================================================
   ▼▼ ゲストセクション リキッドレイアウト（1141px以上・帯なし1ルール） ▼▼
   すべてのサイズをvw連動のclamp()にし、写真カラムの最低高さを
   画像の自然比率(5:4=40vw)で確保。テキストが収まれば trimゼロ、
   はみ出した分だけ穏やかにcoverクロップされる。
   ============================================================ */
@media (min-width:1141px) {
  /* 写真カラム: 最低高さ=幅の4/5（＝画像の自然比率） */
  .va-page .sec-after .sec-box4 .duo-wrap { min-height:40vw; }

  /* テキストカラム: 余白・行間も幅に連動 */
  .va-page .sec-after .sec-row10 { padding:clamp(28px, 3.4vw, 68px) clamp(36px, 4.2vw, 84px); justify-content:center; }
  .va-page .sec-after .sec-label11 { font-size:clamp(12px, 1.0vw, 17px); }
  .va-page .sec-after .sec-label12 { font-size:clamp(30px, 2.55vw, 46px); margin-bottom:clamp(14px, 1.9vw, 38px); }
  .va-page .guest-names { font-size:clamp(24px, 1.8vw, 31px); margin-bottom:clamp(5px, 0.5vw, 10px); }
  .va-page .guest-from { font-size:clamp(14px, 1.1vw, 20px); margin-bottom:clamp(14px, 1.5vw, 28px); }
  .va-page .guest-time { font-size:clamp(13px, 1.0vw, 17px); margin-bottom:clamp(14px, 1.5vw, 28px); }
  .va-page .sec-after .sec-text { font-size:clamp(14px, 1.05vw, 18px); line-height:1.85; }
  .va-page .sec-after .sec-text + .sec-text { margin-top:clamp(10px, 1vw, 19px); }
  .va-page .guest-cta { flex-direction:row; align-items:center; gap:clamp(16px, 1.8vw, 36px); margin-top:clamp(16px, 1.8vw, 36px); }
  .va-page .guest-cta .guest-lockup { height:clamp(40px, 3.5vw, 68px); margin:0; }
  .va-page .guest-cta a.guest-btn { margin-top:0; white-space:nowrap;
    padding:clamp(12px, 1.1vw, 20px) clamp(18px, 2vw, 40px); font-size:clamp(13px, 1.0vw, 17px); }
}

/* ===== 0929a: NEWSセクション（KV直下・news.json駆動） ===== */
#news { scroll-margin-top:70px; }
.sec-news { background:#F2F0EB; padding:36px 40px; border-bottom:1px solid rgba(18,18,18,.1); }
.news-inner { max-width:1160px; margin:0 auto; display:grid; grid-template-columns:150px minmax(0,1fr); gap:10px 26px; align-items:start; }
.news-eyebrow { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:13px; letter-spacing:.3em; color:#121212; }
.news-eyebrow::after { content:""; display:block; width:32px; height:3px; background:#FFD0D9; margin-top:10px; }
.news-list { list-style:none; margin:0; padding:0; }
.news-item { border-bottom:1px solid rgba(18,18,18,.14); }
.news-item:first-child .news-row { padding-top:2px; }
.news-row { display:flex; align-items:baseline; gap:16px; padding:13px 0; color:#121212; text-decoration:none; }
a.news-row:hover .news-title { text-decoration:underline; text-underline-offset:4px; }
.news-date { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:12px; letter-spacing:.14em; color:#624036; flex:0 0 auto; }
.news-tag { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:10.5px; letter-spacing:.16em; color:#121212; background:#FFD0D9; padding:3px 9px; flex:0 0 auto; transform:translateY(-1px); }
.news-title { font-size:14px; line-height:1.8; margin:0; min-width:0; }
.news-ext { margin-left:8px; font-size:12px; }
/* 本文ありの項目: アコーディオン */
.news-acc summary { list-style:none; cursor:pointer; }
.news-acc summary::-webkit-details-marker { display:none; }
.news-acc .news-row { padding-right:30px; position:relative; }
.news-acc-icon { position:absolute; right:4px; top:50%; width:12px; height:12px; transform:translateY(-50%); }
.news-acc-icon::before, .news-acc-icon::after { content:""; position:absolute; background:#121212; transition:transform .25s ease; }
.news-acc-icon::before { left:0; top:5px; width:12px; height:2px; }
.news-acc-icon::after { left:5px; top:0; width:2px; height:12px; }
.news-acc[open] .news-acc-icon::after { transform:scaleY(0); }
.news-acc summary:hover .news-title { text-decoration:underline; text-underline-offset:4px; }
.news-detail { padding:2px 0 20px; max-width:720px; }
.news-detail p { font-size:13.5px; line-height:2; margin:0 0 10px; color:rgba(18,18,18,.86); }
.news-detail p:empty { margin:0 0 4px; }
.news-detail-link { display:inline-block; margin-top:4px; font-weight:700; font-size:13px; letter-spacing:.04em; color:#624036; border-bottom:1px solid rgba(98,64,54,.5); padding-bottom:2px; }
/* 4件目以降とMORE */
.news-item.news-hid { display:none; }
#news-more[hidden] { display:none; }
#news-more { display:inline-block; margin-top:16px; padding:2px 0; background:none; border:0; border-bottom:1px solid #121212; font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:12px; letter-spacing:.2em; color:#121212; cursor:pointer; }
/* 重要フラグ: KV上部の帯（news.jsonでimportant:trueの時のみ生成される） */
.kv-alert { position:absolute; left:0; right:0; top:0; z-index:7; display:flex; align-items:center; justify-content:center; gap:14px; padding:11px 20px; background:rgba(18,18,18,.86); backdrop-filter:blur(6px); color:#F2F0EB; text-decoration:none; }
.kv-alert:hover { background:rgba(18,18,18,.95); color:#F2F0EB; }
.kv-alert-label { font-family:'SALOMON Sans',Archivo,sans-serif; font-weight:700; font-size:11px; letter-spacing:.3em; color:#FFD0D9; flex:0 0 auto; }
.kv-alert-text { font-weight:700; font-size:13px; letter-spacing:.04em; }
.kv-alert-text::after { content:"↓"; margin-left:10px; color:#FFD0D9; }
/* タブレット・SP */
@media (max-width:1140px) {
  .news-inner { grid-template-columns:120px minmax(0,1fr); }
}
@media (max-width:768px) {
  .sec-news { padding:26px 20px 28px; }
  .news-inner { grid-template-columns:1fr; gap:14px; }
  .news-row { flex-wrap:wrap; gap:8px 14px; padding:13px 0; }
  .news-title { width:100%; font-size:13.5px; }
  .news-acc .news-row { padding-right:26px; }
  .news-acc-icon { top:19px; transform:none; }
  .news-detail { padding-top:0; }
  .kv-alert { flex-wrap:wrap; gap:4px 12px; padding:9px 14px; }
  .kv-alert-text { font-size:12px; line-height:1.7; }
}

/* 0930a: NEWS本文内の画像 */
.news-detail .news-img { display:block; width:100%; max-width:560px; height:auto; margin:6px 0 16px; }
@media (max-width:768px) { .news-detail .news-img { max-width:none; } }
