@charset "UTF-8";
/* ==========================================================
   飛騨ほおのき平スキー場 — gelande.css（ゲレンデページ固有）
   subpage.css のトークン・命名に倣う。影・絵文字・グラデ過多は禁止。
   subpage.css より後に読み込まれるため、共通部品の上書きは本ファイルで
   ページスコープに閉じて行う（他ページに影響させない）。

   2026-09-01 A-1 ゲレンデ6件（G-3/G-4/G-7/G-8/G-9/G-10）を
   8/31藤橋さん見直し版カンプ（_review/A1_20260901/comp/slop_pc.png・slop_sp.png）
   の実測値へ合わせ込み。各ブロックのコメントに実測根拠を記載。
   ========================================================== */

/* ==========================================================
   G-3 キャッチ（タイトル帯直下）
   カンプ実測(PC): キャッチ ink 幅613px（旧実装 649px @28.8px）→ 27.2px（実装後 ink 600→612px）
                   リード 4行・行ピッチ33.5px・ink高15px（旧実装 3行・12px @13.5px）→ 17.1px / lh1.96
                   ＋「広大なゲレンデ。」の後で改行を追加し4行構成へ
   カンプ実測(SP): キャッチ ink 幅271px/15字（旧実装 326px/16字 @19.8px）→ 18.2px（実装後 272px）
                   ＋「〜を、」で強制改行（旧実装は「そ」まで1行目に入る）
                   リード 5行・行ピッチ21.3px・1行目 ink 252px（旧実装 6行・@12.15px）→ 11.05px / lh1.9
                   ※SPリードは 14px 未満。カンプ実測どおりに合わせた結果（要確認事項として報告済み）
   ========================================================== */
/* 【2026-09-02 A-1c】8/31イラレ実データの spec 実値へ。
   PC: キャッチ 30px / ls 0.11em / leading 27px（1行）
       リード 16px / ls 0.17em / leading 33px（4行）
   SP: キャッチ 19px / ls 0.11em / leading 31.62px（2行）
       リード 10.71px / ls 0.13em / leading 21.38px（5行）
   ※SPリードの 10.71px は 14px 未満。カンプ実値優先（A-1 から継続の要確認事項）。 */
.g-catch { text-align: center; }
.g-catch__head {
  /* カンプのキャッチは字詰めされている。実測 ink 幅: カンプ 614px /
     詰めなし実装 716px / palt サブセット 623px → palt を使う（BRIEF §1 の書体規定）。 */
  font-family: var(--font-jp-palt);
  font-size: 30px;
  line-height: 36.6px; /* spec leading は 27px だが1行のため字面高（h=36.6）で組む */
  letter-spacing: 0.11em;
  font-weight: 400;
}
.g-catch__br { display: none; } /* PCは1行（spec: nlines=1・w=663.6） */
.g-catch__lead {
  /* リードは句読点だけ詰まっている。実測 ink 幅（3行目 47字）:
     カンプ 800px / 詰めなし 850px / yakuhan 823px → yakuhan を使う。 */
  font-family: var(--font-jp-yakuhan);
  margin-top: 29px; /* spec: キャッチ bbox 下端 516.2 → リード上端 545.9 */
  font-size: 16px;
  line-height: 33px;
  letter-spacing: 0.17em;
  color: var(--color-text);
}

/* ==========================================================
   G-4 ゲレンデ概要（GELANDE OVERVIEW）
   カンプ実測(PC): 帯 y761-約1597（写真の下端は雪面のためフェード。COURSE MAP見出しcap1651から逆算）
     見出し ink x87-406 / cap y876-913（帯上端から115px）
     カード 615×118px・角丸16px・白・2列×4段
       列: x84-698 / x740-1354（内容幅1272・列間42px）／段間26px
       1段目 y951-1068 → 4段目 y1383-1500
       アイコン円 d=76px（#165CE2実測）・カード左から28px・上下中央
       ラベル ink x212-（カード左+128px）・6字109px → 17.1px・ニュートラルグレー
       値 数字 cap高40px・本文em約25px・墨(#2D2D2D実測、青ではない)
   カンプ実測(SP): 帯 y495-約1140／カード 347×68px・角丸8-10px・段間10px
       カード x23-369（sp-inner と同幅）／アイコン円 d=43px
   ========================================================== */
.g-overview {
  position: relative;
  /* 【2026-09-02 A-1c r2】帯の背景（写真＋青グラデ＋白フェード）はカンプでは
     セクションの箱より下（y1725.6）まで伸びて COURSE MAP 見出しの下に潜り込む。
     overflow を解いて背景レイヤーだけはみ出させ、後続セクションを z-index で上に置く。 */
  z-index: 0;
  padding: 113px 0 55px; /* spec: 帯上端761.0 → EN ink 868.1（+107.1・box は ink+6） */
  margin-top: 86.8px; /* spec: キャッチ本文下端 → 帯上端 761.0 */
  overflow: visible;
  background: none;
}
/* spec 図形: 写真ラスタ y744.7 x-16.6 1494.2×995.7（帯上端 761.0 の 16.3px 上）
   【2026-09-03 A-1c r3】重ね順の修正。spec の「バック／写真」レイヤは
   下から 青グラデ(id613/627) → 写真グループ(id614/628・不透明度 74) → 白フェード(id610/624)。
   旧実装は 写真 → 青グラデ の順で、青が帯の全面に乗る単色スラブになっていた。
   カンプ画素で裏取り（x=4 縦プロファイル）:
     PC y800 (52,161,246) / y920 (79,119,151) / y1160 (195,218,240) / y1400 (236,246,252)
     SP y520 (48,161,247) / y640 (90,117,146) / y800 (215,235,249) / y1000 (235,238,242)
   いずれも「写真 74% ＋ (青グラデ 26%)」の合成として整合し、
   「青グラデが写真の上」では説明できない（y640以降に青被りが無い）。 */
/* 【2026-09-09 市岡さん指摘「二重の背景」】写真を帯上端の16.3px上から始めていたため、
   青グラデ（top:0）が無い上16pxに「写真だけが白の上に74%で乗った薄い青帯」が出ていた。
   カンプ画素（x=700）は y759 白 → y762 青の1本のエッジで、帯の上に写真は見えない＝写真は帯に
   クリップされている。写真の上端を帯上端に揃え、下端位置は変えない（高さから16.3を引く）。 */
.g-overview__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  /* 【2026-09-09b】写真の下端(979.4)が白フェード終端(964.5)より15px下まで出て、コースマップの左右に
     薄い青帯が見えていた（灰色の箱を外して露出）。カンプ x=40 y1728-1736 は白＝写真は見えない。 */
  height: 964.5px;
  object-fit: cover;
  opacity: 0.74; /* spec: 写真グループ op=74 */
  z-index: 1;    /* 青グラデ(z0) の上 */
}
/* 青のかぶせ: spec 図形 y761.0 1440×964.6 ／ #007edf の単色リニアグラデ1枚（上100%→下0%）。
   旧実装は4色（インディゴ系）グラデで色相がずれていた。 */
.g-overview::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 964.6px;
  z-index: 0; /* 最下層（写真の下） */
  background: linear-gradient(180deg, #007edf 0%, rgba(0, 126, 223, 0) 100%);
}
/* 下端の白フェード: spec 図形 y1345.3 1440×380.2（44.1%まで不透明度0 → 100%で白）。
   これで帯の下端が硬いエッジで切れず、COURSE MAP 見出しが薄れた写真の上に乗る。 */
.g-overview::after {
  content: "";
  position: absolute;
  top: 584.3px;
  left: 0;
  right: 0;
  height: 380.2px;
  z-index: 2; /* 写真の上（spec: 白フェードは写真グループより上） */
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 44.1%, #fff 100%);
}
.g-overview__inner {
  position: relative;
  z-index: 3;
}
/* 見出しはカンプ準拠で白（EN・和文ラベルとも） */
.g-overview__head { margin-bottom: 22.5px; }
.g-overview__head .sec-head__en { color: var(--color-white); }
.g-overview__head .sec-head__label { color: rgba(255, 255, 255, 0.92); }

.g-ovgrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 42px;
  row-gap: 24px;
}
.g-ovcard {
  display: flex;
  align-items: center;
  /* カンプ実測: アイコン円の右端 187.6 → ラベル ink 210.4 ＝ 22.8px。
     文字を spec 実値へ上げたぶん値の行が窮屈になるため、gap と右padding を
     カンプ実測どおりに詰めて「4基（クワッド1、ペア3）」の折返しを防ぐ。 */
  gap: 22px;
  min-height: 120px;
  padding: 0 28px;
  background: #fff;
  border-radius: 16px;
}
.g-ovcard__icn {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #fff;
}
.g-ovcard__icn svg { width: 38px; height: 38px; }
.g-ovcard__label {
  flex: none;
  /* 【2026-09-02 A-1c】spec実値 PC 17px / ls 0.11em / #939494。
     6字＝17×1.11×6＝113.2px のため折り返さないよう幅を 116px に広げた
     （spec のラベル ink 幅 111.3px）。灰の 3.0:1 は既知（BRIEF §5）。 */
  width: 116px;
  font-size: 17px;
  line-height: 1.4;
  letter-spacing: 0.11em;
  color: var(--color-label);
}
.g-ovcard__value {
  flex: 1;
  min-width: 0;
  text-align: center;
  /* 【2026-09-02 A-1c】spec実値 PC 25.32px / ls 0.11em / leading 39.81px
     （「クワッド1基・ペア3基」「北アルプスならではの／軽く締まった雪質」の組み） */
  /* カンプは字詰めあり。実測 ink「北アルプスならではの」カンプ 258px / palt 実装 258px
     （詰めなしだと折り返して「4基（クワッド1、ペア3）」が2行になる）。 */
  font-family: var(--font-jp-palt);
  font-size: 25.32px;
  line-height: 39.81px;
  letter-spacing: 0.11em;
  color: #2d2d2d; /* spec実値。青ではない */
}
/* 複数行の値はカンプでも左揃え（雪質・コース構成） */
.g-ovcard__value--ml { text-align: left; }
/* 【2026-09-02 A-1c】spec実値: 数値は Bebas 54.47px / ls 0.005em（PC）。
   カンプ実測でも「1,250」の cap 高 40px＝54.47px 相当。 */
.g-ovcard__value .c-num {
  font-size: 54.47px;
  letter-spacing: 0.005em;
  color: inherit;
  margin: 0 1px;
}
/* G-6（3色バー）は (b) 判定待ちのため残置。ピル内に収まるよう薄型に */
.g-ovcard__value .c-ratio {
  height: 6px;
  margin-top: 8px;
  max-width: 320px;
}

/* ==========================================================
   G-7 コースマップ（大枠プレースホルダ + 右下 PDF ボタン）
   カンプ実測: 箱 x84-1354 / y1721-2279（高さ559px）＝実装の560pxと一致。
   面色は棚卸し指定の #DCDCDC を採用。
   （直接実測値は PC #E3E3E3 / SP #CFCFCF と通りで差があり、
     #DCDCDC はその中間。差異は報告済み）
   ========================================================== */
.g-map__br { display: none; } /* PC は spec も1行（w416.7） */
/* 【2026-09-02 A-1c】spec実値 PC 15px / ls 0.07em / leading 23px / #808080。
   面色は spec の図形表（PC y1720.6 1272×560 / SP y1212.8 370×162.9 とも #e3e3e3）。
   旧 #dcdcdc は画素実測 PC #E3E3E3・SP #CFCFCF の中間を採った暫定値だったので spec 実値に戻す。 */
.g-map__ph {
  height: 560px;
  font-size: 15px;
  line-height: 23px;
  letter-spacing: 0.07em;
  color: #808080;
  background: #e3e3e3;
}
.g-map__actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 24px;
}
.g-map__pdf {
  width: auto;
  min-height: 54px;
  padding: 0 58px 0 30px;
}

/* ==========================================================
   G-8 レベル別コースガイド
   カンプ実測(PC): 3列・列間36px（列 x84-483 / 520-919 / 956-1355・各400px）
     写真 y2546-2825（400×280＝10:7）→ 直下に塗りブロック y2826-3130（305px）
     ブロック角丸は右下のみ約55px（左下・上端は直角）
     塗り色 初級 #165CE2 / 中級 #145C97 / 上級 #003C69（実測）
     本文はすべて白。見出し ink高20px/5字109px → 21.6px
     説明文 16.2px・行ピッチ28px（説明文が先）
     箇条書き ●・14.4px・行ピッチ23px（コース一覧が後）
     内側 padding: 左24px（ink x108 － ブロック x84）
   ========================================================== */
.g-cggrid { gap: 36px; }
.g-course {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: none;
  border: 0;
  border-radius: 0;
}
.g-course__photo {
  position: relative;
  aspect-ratio: 400 / 280;
  overflow: hidden;
}
.g-course__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.g-course__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 26px 24px 34.6px;
  color: var(--color-white);
  border-radius: 0 0 55px 0;
}
.g-course--lv1 .g-course__body { background: var(--color-primary); }
.g-course--lv2 .g-course__body { background: #145c97; }
.g-course--lv3 .g-course__body { background: #003c69; }
/* 【2026-09-02 A-1c】spec実値 PC: 見出し 22px/0.07em/leading27、
   説明 17px/0.07em/leading27（2行）、一覧 15px/0.07em/leading23（折返し込み4〜6行） */
.g-course__title {
  font-size: 22px;
  line-height: 27px;
  letter-spacing: 0.07em;
  font-weight: 400;
  margin-bottom: 12px;
}
.g-course__desc {
  font-size: 17px;
  line-height: 27px;
  letter-spacing: 0.07em;
  color: var(--color-white);
  margin-bottom: 14px;
}
.g-course__list li {
  /* カンプは字詰めあり。実測 ink 1行目「●パノラマコース（林間を抜ける景観コース）」
     カンプ 292px / palt 実装 291px（詰めなしは 325px）。行band も4行・ピッチ23pxで一致。 */
  font-family: var(--font-jp-palt);
  font-size: 15px;
  line-height: 23px;
  letter-spacing: 0.07em;
  padding-left: 1em;
  text-indent: -1em;
}

/* ==========================================================
   共通パネル（本日のゲレンデ状況 / リフト情報）
   G-9(1) カード枠線はカンプ実測で青1px（x83で #165CE2 の被覆率約1.07px相当）
   ========================================================== */
.g-panel {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--color-primary);
  border-radius: 6px;
  padding: 40px 44px 44px;
}
/* 【2026-09-02 A-1c】この2つのパネル見出しだけ、カンプの指定色が
   ページ本文の墨（#2d2d2d）・ラベル灰（#939494）と別系統の「緑みのグレー」になっている。
   spec実値 SP: LIFT INFO=#7e857f / リフト情報=#1f2521。
   カンプ画素でも裏が取れている（暗い順12画素の平均色相）:
     PC  リフト情報 (0,4,0)〜(7,13,9) 緑み ／ 本日のゲレンデ状況 (0,4,0)〜(3,9,5) 緑み
         LIFT INFO (112,119,112) ／ TODAY'S CONDITION (108,116,109) 緑み
     PC  第1リフト（ペア）(13,13,13) はニュートラル＝#2d2d2d
   ＝同じパネル内でも見出しだけ緑みで、リストは墨。カンプのとおりに分ける。
   ページスコープなので他ページには波及しない（.g-cardlabel/.g-cardtitle は本ページ専用）。 */
.g-cardlabel {
  display: block;
  font-size: 12.6px;
  line-height: 1;
  letter-spacing: 0.12em;
  color: #7e857f;
}
.g-cardtitle {
  margin-top: 10px;
  font-size: 19.8px;
  line-height: 1.5;
  letter-spacing: 0.04em;
  font-weight: 400;
  color: #1f2521;
}

/* ---- 本日のゲレンデ状況（左パネル） ---- */
.g-condition__main {
  display: flex;
  align-items: flex-start;
  gap: 32px;
  margin-top: 4px;
}
.g-condition__info { flex: 1 1 auto; min-width: 0; }
.g-condition__date {
  margin-top: 26px;
  font-size: 27px;
  line-height: 1;
  letter-spacing: 0.06em;
  color: var(--color-text);
}
.g-condition__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 12.6px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #5a625c;
}
.g-meta__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.g-meta__icn {
  flex: none;
  width: 16px;
  height: 16px;
  color: var(--color-primary);
}
.g-condition__cam {
  flex: 0 0 236px;
  align-self: stretch;
  min-height: 150px;
  font-size: 11.7px;
}
.g-condition__btns {
  display: flex;
  gap: 20px;
  margin-top: 34px;
}
.g-condition__btn {
  flex: 1;
  width: auto;
  min-height: 56px;
}
.g-condition__btn .c-btn__text { font-size: 13.5px; letter-spacing: 0.06em; }

/* ---- パネル見出し（アイコン円＋EN小ラベル＋JP見出し） ---- */
.g-panel__head {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 4px;
}
.g-panel__heading { min-width: 0; }
/* G-9(2) LIFT INFO アイコン: カンプは青丸に白い山（実装は淡青の面＋青アイコン） */
.c-icn.g-lift__icn {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ---- リフト情報（右パネル） ---- */
/* 【2026-09-02 A-1c】リフト行を spec 実値 18.91px に上げたため、旧 padding 44px では
   1行が段に収まらず2行に折り返していた。カンプ実測の内寸に合わせる:
     パネル x738.7-1356 / 行 ink 左 766.8（＝+28.1）・右列 ink 右 1341.5（＝-14.5）
     列: 766.8-1045.2 と 1063.1-1341.5（各 278.4px・列間 17.9px）
   さらにカンプの行は字詰めされている＝ palt サブセットで組む。
   実測（1行目 x範囲）: カンプ 768→1030 / palt 実装 770→1028（詰めなしは折り返して2行）。 */
.g-lift { padding: 40px 14px 38.4px 28px; } /* spec 図形: パネル 617.3×329.9 */
.g-lift__list li { font-family: var(--font-jp-palt); }
/* G-9(3) カンプは2列グリッド・行頭記号なし（実装は1列・行頭「・」）
   カンプ実測: 左列 x784- / 右列 x1058-（列間約24px）、行ピッチ47px */
.g-lift__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 18px;
  /* カンプ実測(PC): 行ピッチ 47.6px（1行目 y3361.4 / 2行目 y3409.0）
     ＝ leading 29.73px + row-gap 18px */
  row-gap: 18px;
  /* spec: パネル頭 3326.8 → 1行目 ink 3366.4 */
  margin-top: 32px;
}
/* 【2026-09-02 A-1c r2】spec の混植ラン実値: Bebas 29.55px / ls 0.005em / #007edf（PC）。
   旧実装は 1.5em(=28.365px) / 0.02em / #165ce2 で SIZE・LS・COLOR の3フラグ源だった。 */
.g-lift__list .c-num {
  font-size: 29.55px;
  letter-spacing: 0.005em;
  color: #007edf;
  margin: 0 1px;
}
/* 【2026-09-02 A-1c】spec実値 PC: 18.91px / ls 0.13em / leading 29.73px / #2d2d2d */
.g-lift__list li {
  font-size: 18.91px;
  line-height: 29.73px;
  letter-spacing: 0.13em;
  white-space: nowrap;
}
/* リフト名と「長さ：」の間のアキ。全角空白(21.4px)ではカンプ(10.4px)より広く、
   数字を spec の 29.55px に上げた結果 右列が2行に折り返していた。 */
.g-lift__sp { display: inline-block; width: 10.4px; }
/* 注記・説明文もリフト行と同じく字詰めあり。
   カンプ ink: 注記「（キッズ用…含む）」231.2px（詰めなし約257px）／
   説明「リフトは4基稼働し…可能です。」452.1px（詰めなし約498px）→ palt。
   SP では詰めないと説明文が2行になる（spec は1行）。 */
.g-lift__note, .g-lift__desc { font-family: var(--font-jp-palt); }
/* 注記はカンプでは右列（第7リフト）の直下。spec実値 PC 15px/0.07em/leading23/#2d2d2d */
.g-lift__note {
  margin-top: 7.2px;
  margin-left: calc(50% + 12px);
  font-size: 15px;
  line-height: 23px;
  letter-spacing: 0.07em;
  color: var(--color-text);
}
/* G-9(4) 末尾の説明文は (b) 判定待ちのため文言は残置。組みは spec実値 PC 15px/0.07em/leading23 */
.g-lift__desc {
  margin-top: 25.6px;
  font-size: 15px;
  line-height: 23px;
  letter-spacing: 0.07em;
  color: var(--color-text);
}

/* ==========================================================
   G-10 雪質・気候 / キッズ・家族向け情報
   カンプ実測(PC): カード x120-1320（幅1200・内容幅1272から左右36px内側）
     高さ339px・段間33px（1枚目 y3676-4014 / 2枚目 y4048-4386）
     全面 #165CE2 の塗り＋写真が右半分にブリード（無地の青は x624まで）
     テキストは白。EN見出しなし。
     見出し ink高26px/5字143px → 28.8px（左 x178＝カード左+58px）
     本文 14.4px・行ピッチ27px・テキスト段幅約370px
     内容は上下中央（1枚目 上68px / 下66px）
   カンプ実測(SP): カード x8-384（sp-inner より16px外）・見出し中央・写真は下に全幅
   ========================================================== */
.g-media-stack {
  display: grid;
  gap: 33px;
}
.g-bluecard {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 339px;
  margin: 0 36px;
  padding: 34px 0;
  overflow: hidden;
  border-radius: 8px;
  /* 【2026-09-02 A-1c r2】spec 図形の青は #1673e2 (22,115,226)。
     var(--color-primary)=#165ce2 は G 差 23 で許容12超だった。 */
  background: #1673e2;
}
/* spec: 無地の青は x591 まで（カード左120＋471＝39.25%）、そこから x860.7 で写真が出る */
.g-bluecard__photo {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 39%;
  z-index: 0;
}
.g-bluecard__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 左端で青に溶け込ませる（カンプは無地の青と写真の境目がグラデーション）
   【2026-09-04 D-1 担当3】カンプ実測に合わせて作り直し。
   spec 図形: y3676.4 x120 740.7×340 GRAD LINEAR ang=180 0%:#1673e2@0 → 36.4%:#1673e2@100
   → 不透明の終端 x=591.1／完全透明 x=860.7。写真要素の左端は x588 なので相対で 3.1px→272.7px
   （フェード区間 269.6px）。旧実装は 45%（=329px）でカンプより 59px 長かった。
   カーブは直線。spec のストップは 2 点（mid=50）＝線形で、カンプ画像の画素実測でも
   1-α が x600/620/…/840 で 0.033/0.102/0.169/0.272/0.327/0.402/0.407/0.609/0.649/0.775/0.748/0.870/0.925 と
   線形式 0.033/0.107/0.181/0.256/0.330/0.404/0.478/0.552/0.626/0.701/0.775/0.849/0.923 に一致する。
   多段 sin イージングは中間で最大 Δα=0.076（雪面では R で約13階調）ずれるため使わない。 */
.g-bluecard__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(22, 115, 226, 1.000) 3.1px, rgba(22, 115, 226, 0.985) 26.9px, rgba(22, 115, 226, 0.941) 50.6px, rgba(22, 115, 226, 0.861) 77.3px, rgba(22, 115, 226, 0.760) 104.0px, rgba(22, 115, 226, 0.640) 130.8px, rgba(22, 115, 226, 0.530) 151.5px, rgba(22, 115, 226, 0.404) 175.3px, rgba(22, 115, 226, 0.278) 202.0px, rgba(22, 115, 226, 0.166) 228.7px, rgba(22, 115, 226, 0.078) 255.5px, rgba(22, 115, 226, 0.022) 279.2px, rgba(22, 115, 226, 0.000) 300.0px);
}
.g-bluecard__body {
  position: relative;
  z-index: 1;
  width: 36%; /* カンプ実測: テキスト段幅 約371px（カード幅1200・左内側58px） */
  padding-left: 55px; /* カンプ画素実測: 見出し ink x178（カード左120＋58）→ +3px 内側だった */
  /* 【2026-09-03 A-1c R4】spec のテキスト枠幅は 375.0px。実装は 377.0px あり、5行目が
     「…常に安定して」(28字)まで入ってカンプ（27字「…常に安定し」）と1字ずれていた。
     2px 詰めて 375.0 にすると spec の6行（25/9/25/20/27/5字）と完全一致する。 */
  padding-right: 2px;
}
/* 【2026-09-02 A-1c】spec実値 PC: 見出し 30px/0.11em、本文 15px/0.07em/leading27 */
.g-bluecard__title {
  font-size: 30px;
  line-height: 36.6px;
  letter-spacing: 0.11em;
  font-weight: 400;
  color: var(--color-white);
}
.g-snow__text {
  margin-top: 20px;
  font-size: 15px;
  line-height: 27px;
  letter-spacing: 0.07em;
  color: var(--color-white);
}
.g-family__list { margin-top: 20px; }
.g-family__list li {
  font-size: 15px;
  line-height: 27px;
  letter-spacing: 0.07em;
  color: var(--color-white);
  padding-left: 1em;
  text-indent: -1em;
}

/* ==========================================================
   SP（〜768px）
   ========================================================== */
@media (max-width: 768px) {
  /* G-3 — spec実値 SP: キャッチ 19px/0.11em/leading31.62（2行）
     リード 10.71px/0.13em/leading21.38（5行。14px未満はカンプ実値優先＝要確認事項） */
  .g-catch__head { font-size: 19px; line-height: 31.62px; letter-spacing: 0.11em; }
  .g-catch__br { display: inline; }
  /* spec の版面は x22 / w350。ただし同じ級数・字送りでも実装の方が約2%横に広く
     （カンプ 1行目 ink 253px / 実装 257px）、350px では2行目が溢れて 6行になる
     （spec は5行）。BRIEF §「spec の行数・幅に合わせて幅を調整する」に従い版面を
     360px（sp-inner 346px から左右 -7px）にして 5行構成を保つ。カンプ比 +10px。 */
  .g-catch__lead { margin: 18px -7px 0; font-size: 10.71px; line-height: 21.38px; letter-spacing: 0.13em; }

  /* G-4 */
  /* カンプ実測(SP): 帯上端495 → 見出しcap543（padding-top 44px）→ 1枚目カード上端580（見出し下14px） */
  .g-overview { padding: 44px 0 40px; margin-top: 60px; }
  .g-overview__head { margin-bottom: 12px; }
  .g-ovgrid {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 10px;
  }
  /* カンプ実測(SP): カード 347×68px・アイコン円43px（左15px）
     ラベル ink x93-162（カード左+70px・6字70px）／値 ink x175- （カード左+152px）
     値の数字 cap高26px（→ c-num 35.5px）・和文 em約14.2px */
  .g-ovcard {
    gap: 12px;
    min-height: 68px;
    padding: 0 12px 0 15px;
    border-radius: 10px;
  }
  .g-ovcard__icn { width: 43px; height: 43px; }
  .g-ovcard__icn svg { width: 22px; height: 22px; }
  /* 【2026-09-02 A-1c】spec実値 SP: ラベル 11px/0.11em/#939494（6字＝73.3px→幅78px）、
     値 14.39px/0.11em/leading22.62、数値 Bebas 30.95px/0.005em */
  .g-ovcard__label { width: 78px; font-size: 11px; letter-spacing: 0.11em; }
  .g-ovcard__value { font-size: 14.39px; line-height: 22.62px; letter-spacing: 0.11em; }
  .g-ovcard__value .c-num { font-size: 30.95px; letter-spacing: 0.005em; }
  .g-ovcard__value .c-ratio { height: 5px; margin-top: 5px; max-width: 160px; }

  /* G-7 — spec実値 SP: 文字 11.59px/0.07em/leading17.77（2行）。
     箱は spec の図形表どおり x=12 / 370×162.9（sp-inner の 24px パディングより
     12px 外へ出るので margin で戻す）。旧実装は 346×300 で高さが +137px あった。 */
  .g-map__ph { height: 163px; margin: 0 -12px; font-size: 11.59px; line-height: 17.77px; }
  .g-map__actions { justify-content: center; margin-top: 18px; }
  .g-map__pdf { width: 100%; max-width: 320px; padding: 0 54px 0 24px; }

  /* G-8 */
  /* 【2026-09-03 A-1c r3】spec 図形実測（SP・青ブロック＝写真の下端から下）:
       card1 写真 y1534.1..1779.1(245) ／ 青 …1779.1..2021.7（可視 242.6）
       card2 写真 y2037.9..2282.9(245) ／ 青 …2282.9..2558.3（可視 275.4）
       card3 写真 y2574.5..2819.5(245) ／ 青 …2819.5..3062.0（可視 242.5）
       カード間アキ 16.2（2021.7→2037.9・2558.3→2574.5）
     テキスト（spec ink・3枚とも同値）:
       青上端→見出し +29.2 ／ 見出し→説明 +41.9 ／ 説明→一覧 +59.0
     旧実装のカンプ画素実測（shots/slop_sp.png）: 見出し 1790（カンプ 1807）・
       説明 1827（1849）・一覧 1885（1908）＝ 見出し -17 / 以降 -23。 */
  .g-cggrid { gap: 16.2px; }
  /* 【2026-09-03 A-1c R4】spec テキスト枠 x41.7..348.4（カード x22..372）＝左19.7/右23.6。
     内容幅を 310→306.7px にすると lv1「…楽しめ／る、ゆったりとした…」lv2「…スキルアッ／プに最適な…」で
     カンプと同じ位置で折り返る。 */
  .g-course__body { padding: 26.2px 23.6px 33.5px 19.7px; border-radius: 0 0 40px 0; }
  /* card2 だけ spec の青ブロック下アキが狭い（最終行 ink 下端→下端 28.4／card1・3 は 38.6） */
  .g-course--lv2 .g-course__body { padding-bottom: 24.4px; }
  /* 【2026-09-02 A-1c】spec実値 SP: 見出し 19.25px/0.07em/leading23.62、
     説明 15px/0.07em/leading23.62（2行）、一覧 15px/0.07em/leading21 */
  .g-course__title { font-size: 19.25px; line-height: 23.62px; margin-bottom: 14.9px; }
  .g-course__desc { font-size: 15px; line-height: 23.62px; margin-bottom: 13px; }
  .g-course__list li { font-size: 15px; line-height: 21px; }

  /* G-9 — spec実値 SP: LIFT INFO 11.14px/0.085em、リフト情報 15.25px/0.17em/leading18.72
     （色は spec が #7e857f / #1f2521＝旧実装トークンと同値のため採らない。報告の remaining 参照） */
  .g-cardlabel { font-size: 11.14px; letter-spacing: 0.085em; }
  .g-cardtitle { margin-top: 6px; font-size: 15.25px; line-height: 18.72px; letter-spacing: 0.17em; }
  .g-panel__head { gap: 14px; }
  .g-lift__list { grid-template-columns: 1fr; row-gap: 0; }
  /* spec実値 SP: リフト行 16.47px/0.13em/leading25.89、注記 11px/0.07em/leading16.87、
     説明 10px/0.07em/leading16.87（10px はカンプ実値。14px未満＝要確認事項） */
  .g-lift__list li { font-size: 16.47px; line-height: 25.89px; }
  /* カンプ実測(SP): リフトパネルの説明文は ink x41.4-363.7＝322.3px の1行。
     .g-panel の右padding 14px（内寸318px）だと2行になるため、
     このパネルだけ右を 8px に詰める（カンプの右余白 8.3px と一致）。 */
  .g-lift { padding: 14px 8px 12px 18px; }
  .g-lift__note { margin-left: 0; font-size: 11px; line-height: 16.87px; }
  .g-lift__desc { font-size: 10px; line-height: 16.87px; }

  /* 【2026-09-02 A-1c】SPの本日のゲレンデ状況パネルは spec の図形表で 350×203.8px
     （y3094.4）。旧実装は「テキスト縦積み＋カメラ枠を全幅170px」にしていたため
     実測で約480px あり、SP全体の縦ズレ（+569px）の約半分の原因だった。
     カンプ実測（slop_sp.png）: パネル x22-372 / y3094.4-3298.2、
       カメラ枠 x210-357（148×93・グレー(234,239,245)）＝テキストの右に横並び、
       ラベルink 3110 / 見出しink 3133-3146 / 日付ink 3174-3191 / メタink 3209-3220、
       ボタン枠 y3240-3288（高さ48px・2つ横並び）
     → PCと同じ横並びに戻し、寸法をカンプ実測へ。 */
  /* パネル幅は spec の図形表どおり 350px（sp-inner 346px より左右2pxずつ外）。
     テキスト段は見出し「本日のゲレンデ状況」1行ぶん（15.25px×9字×1.17＝160.6px）が
     必要なので、カメラ枠は カンプ148px に対し 136px でおさめる（差 12px）。 */
  .g-panel { margin: 0 -2px; padding: 14px 14px 12px 18px; }
  .g-condition__main { flex-direction: row; align-items: flex-start; gap: 12px; margin-top: 2px; }
  .g-condition__cam { flex: 0 0 136px; align-self: auto; width: auto; min-height: 93px; padding: 12px 8px; }
  .g-condition__cam svg { width: 22px; height: 22px; }
  .g-condition__date { margin-top: 22px; font-size: 23.4px; }
  /* カンプ実測: メタ行は1行（ink x42-193＝151px）。アイコン・間隔を詰めて折返しを防ぐ */
  .g-condition__meta { margin-top: 12px; gap: 4px; }
  .g-condition__meta .g-meta__item { gap: 4px; }
  .g-condition__meta .g-meta__icn { width: 11px; height: 11px; }
  .g-condition__btns { gap: 14px; margin-top: 20px; }
  .g-condition__btn { min-height: 48px; }

  /* G-10: カンプ実測(SP) カード x8-384（sp-inner より16px外）・見出し中央・写真は下に全幅
     card1 y3623-4041 / card2 y4056-4369、見出しink=カード上端+37px、
     本文 左右内側24px・行ピッチ24px、写真は約2.2:1でカード下端まで */
  .g-media-stack { gap: 20px; }
  .g-bluecard {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    margin: 0 -16px;
    padding: 26px 0 0;
  }
  .g-bluecard__photo {
    order: 2;
    position: relative;
    inset: auto;
    flex: none;
    min-height: 0;
    margin-top: 20px;
    aspect-ratio: 11 / 5;
  }
  /* 画像を絶対配置に戻さないと min-content 高さがアスペクト比を上書きしてしまう */
  .g-bluecard__photo img { position: absolute; inset: 0; }
  /* 【2026-09-04 D-1 担当3】SP もカンプは写真の上端が青に溶けている。
     spec SP: y3813.5 x7 380×91.9 GRAD 36.4% → 不透明 y3872.0／透明 y3905.4＝33.4px の直線縦フェード。
     画素実測でも純青が y3868 で終わり y3906 で写真100%。旧実装は display:none でハードエッジだった。
     ※ 同じ 768px 以下にあった ::before（45px）は二重塗りになるため削除し、ここに一本化した。 */
  .g-bluecard__photo::after {
    display: block;
    background: linear-gradient(180deg, rgba(22, 115, 226, 1.000) 0.0px, rgba(22, 115, 226, 0.985) 3.5px, rgba(22, 115, 226, 0.941) 7.0px, rgba(22, 115, 226, 0.861) 11.0px, rgba(22, 115, 226, 0.760) 15.0px, rgba(22, 115, 226, 0.640) 18.9px, rgba(22, 115, 226, 0.530) 22.0px, rgba(22, 115, 226, 0.404) 25.5px, rgba(22, 115, 226, 0.278) 29.5px, rgba(22, 115, 226, 0.166) 33.4px, rgba(22, 115, 226, 0.078) 37.4px, rgba(22, 115, 226, 0.022) 40.9px, rgba(22, 115, 226, 0.000) 44.0px);
  }
  .g-bluecard__body {
    order: 1;
    width: auto;
    padding: 0 24px;
  }
  /* spec実値 SP: 見出し 25px/0.11em、本文 15px/0.07em/leading24 */
  .g-bluecard__title { font-size: 25px; line-height: 30.5px; text-align: center; }
  .g-snow__text { margin-top: 16px; font-size: 15px; line-height: 24px; }
  .g-family__list { margin-top: 16px; }
  .g-family__list li { font-size: 15px; line-height: 24px; }
}

/* 最大傾斜の度記号: 句点に見えないよう数字の肩に揃える */
.g-ovcard__value .g-deg {
  font-size: 1em;
  line-height: 1;
  vertical-align: 0.72em;
  margin-left: 2px;
}

/* ==========================================================
   【2026-09-01 A-1】slopページのページ全体系の調整
   ========================================================== */

/* --- C-2（ページ背景の淡青ウォッシュ）--- 【2026-09-02 A-1c で画像タイル化】
   カンプのウォッシュは CSS グラデーションではなく、空写真EPS
   （resul-mentes-DbwYNr8RPbg-unsplashA.eps）を不透明度50%で白の上に置いたもの。
   spec の Placed 行の座標にそのまま敷く:
     PC  x=0      y=1801.0   1440×2559.8  → img/bg/wash_pc.jpg（白と合成済み・1440×2560）
     SP  x=-195.7 y=2367.3    785.4×1396.2 → img/bg/wash_sp.jpg（785×1396）
   検証: カンプ左右ガター(x10/25/1415/1430)を60px刻みで172点サンプルし、
   タイルの同座標と比較して平均|Δ|=3.2 / 最大21（PC）。SPは平均|Δ|=13.1
   （最大値はガターに食い込む全幅カード・写真によるもの）。 */
.subpage {
  background-color: #fff;
  background-image: url("../../img/bg/wash_pc.jpg");
  background-repeat: no-repeat;
  background-position: 0 1801px;
  background-size: 1440px 2560px;
}
/* 淡グレー帯（#FAFAFA）はカンプに無い。ページ背景のウォッシュを透かす */
.subpage .sec--tint { background: transparent; }
@media (max-width: 768px) {
  .subpage {
    background-color: #fff;
    background-image: url("../../img/bg/wash_sp.jpg");
    background-position: -195.7px 2367.3px;
    background-size: 785px 1396px;
  }
  .subpage .sec--tint { background: transparent; }
}

/* --- 【2026-09-02 A-1b】.sec--tint は帯として扱わない ---
   カンプ slop_pc / slop_sp のセクション境界は実測でいずれも白〜淡青ウォッシュで、
   #FAFAFA の帯は見えない（PC 4389-4485 は (255,255,255)、SP 3565-3617 は (251,252,254)）。
   subpage.css が .sec--tint に与える帯用の余白（margin-top / padding-bottom）を打ち消し、
   通常セクションと同じ「上 92px ひとつぶん」の境界に戻す。 */
.subpage .sec--tint { margin-top: 0; padding-bottom: 0; }

/* ==========================================================
   【2026-09-02 A-1c ラウンド2】8/31 spec（イラレ実データ）への合わせ込み
   すべて .subpage / ページ固有クラス配下＝ゲレンデページに閉じた上書き。
   ========================================================== */

/* --- 帯の背景を後続セクションの下へ潜らせる（.g-overview は overflow:visible） --- */
.subpage > section { position: relative; z-index: 1; }
/* キャッチ（spec: PC ink 479.6 / SP ink 281.0。page-hero は PC 380 / SP 240） */
.subpage > section.g-catch-sec { padding-top: 96.6px; }
.subpage > section.g-overview { z-index: 0; }

/* --- 見出し（.sec-head）の EN と和文ラベルの垂直位置 ---
   spec: ラベルの ink 中心が EN の ink 中心＋0.9px。共通CSSは align-items:baseline で
   実測 +13.1px 下がっていた（PC）。ページスコープで中心揃え＋微調整。
   下余白は spec 実測: COURSE MAP 見出し下端1699.7 → コースマップ枠1720.6 ＝ 20.9px */
/* Bebas Kai の実描画は AI の Bebas より字面が 5px 下に出る（画素実測: COURSE MAP
   カンプ ink y1651 / 実装 1656、GELANDE OVERVIEW 876 / 881）。
   レイアウトを動かさずに見た目だけ揃えるため relative でずらす。 */
/* 【2026-09-03 A-1c r3】align-items:center と .sec-head__label の top:-1.5px は
   第2ラウンドで shared（subpage.css .sec-head / .sec-head__label）に同値で入った＝
   ここでの重複指定を撤去。top は加算されないので二重にはなっていなかったが、
   真実源を shared 側に一本化する。ページ固有値（margin-bottom / top:-5px）だけ残す。 */
.subpage .sec-head { margin-bottom: 18px; position: relative; top: -5px; }
/* COURSE GUIDE だけ spec の見出し下が広い（2509.6 → 写真上端2546.3 ＝ 36.7px） */
.subpage .sec--tint .sec-head { margin-bottom: 33.6px; }
.subpage .g-overview__head { margin-bottom: 22.5px; }

/* --- 単位・接頭（本 / 基 / ° / m / 約）---
   spec の混植ランは Meiryo-Bold 26.33px / ls 0.11em（PC）。
   Meiryo は Web 配信不可のため BRIEF §1 の近似スタックで代替。 */
.g-ovcard__value .g-unit {
  font-family: Meiryo, "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 26.33px;
  letter-spacing: 0.11em;
}
/* ラベルは spec でも1行（PC「最長滑走距離」ink 111.3 / SP 72.0）。
   CSS は末尾字にも字送りが付くぶん幅が 1〜1.3px 増えて折り返すため nowrap で止める。 */
.g-ovcard__label { white-space: nowrap; }

/* リフト数カード: spec は「クワッド1基・ペア3基」（左）＋「4 基」（右寄せ）の2オブジェクト。
   実装が「4基（クワッド1、ペア3）」と語順・括弧を作り替えていたので spec 表記に戻した。 */
.g-ovcard__value--split {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
}
.g-ovcard__note {
  font-size: 25.32px;
  letter-spacing: 0.11em;
  white-space: nowrap;
}
.g-ovcard__amt { white-space: nowrap; }

/* --- リフト情報パネルのアイコン円（spec 図形 57.3×57.3・PC） --- */
.g-panel .c-icn--lg.g-lift__icn { width: 57.3px; height: 57.3px; }
/* 【2026-09-03 A-1c r3】見出し段だけ内側に寄る（spec: 青丸 x783.8 ＝ パネル左 738.7 +45.1／
   リフト行の ink 左は 766.8 ＝ +28.1 で別値）。パネルの padding は行に合わせたままにし、
   見出し段だけを +14.8px 右へ。カンプ画素: 青丸 783..840・見出し文字 863 起点。 */
.g-lift .g-panel__head { padding-left: 14.8px; }

/* --- 末尾CTA（spec 図形 300×70・x404.5 / x735.5＝間隔31px） --- */
.subpage .c-cta-pair { gap: 31px; }
.subpage .c-cta-pair .c-btn { min-height: 70px; }

/* --- セクションの縦位置（spec のランドマークに合わせる。実測値は各行のコメント） --- */
.subpage > section.sec:nth-of-type(3) { padding-top: 92px; }  /* COURSE MAP */
.subpage > section.sec:nth-of-type(4) { padding-top: 100px; } /* COURSE GUIDE: spec EN ink 2453.1 */
.subpage > section.sec:nth-of-type(5) { padding-top: 97.4px; } /* パネル spec y3229.4 */
.subpage > section.sec:nth-of-type(6) { padding-top: 117.7px; } /* 青カード spec y3676.4 */
.subpage > section.sec:nth-of-type(7) { padding-top: 100px; padding-bottom: 117.9px; } /* CTA spec y4487.4 / フッター帯 4675.3 */

@media (max-width: 768px) {
  .subpage > section.g-catch-sec { padding-top: 39px; }

  /* 版面は spec の x22 / 内容幅350（実装は 24px パディングで 346 だった） */
  .subpage .sp-inner { padding: 0 22px; }

  /* 概要帯の背景（spec 図形 SP）: 写真ラスタ y492.3 h793.1（帯上端496.8の4.5px上）／
     青グラデ y496.8 394×780.4 ／ 白フェード y896.9 394×380.3（帯上端から400.1px） */
  .g-overview { padding: 44px 0 0; margin-top: 29.7px; }
  .g-overview__bg { top: 0; height: 780.4px; } /* 白フェード終端(400.1+380.3)に揃える */ /* 2026-09-09 帯上端に揃える（PCと同じ修正） */
  .g-overview::before { height: 780.4px; }
  .g-overview::after { top: 400.1px; height: 380.3px; }
  .subpage .sec-head.g-overview__head { margin-bottom: 10.5px; }
  /* spec 実測(SP): アイコン円 x37.7(43.2) / ラベル ink x91.8 / 値の段 x174.9..354.8 */
  .g-ovcard { min-height: 68.2px; padding: 0 6px 0 15px; gap: 10px; }
  .g-ovcard__label { width: 72px; } /* 「最長滑走距離」6字＝11px×1.11×6＝73.3 が折り返さない幅 */
  /* SP のカンプは note と値が左詰め（note x174.9..313.6 → 値 x321.5..354.8） */
  .g-ovcard__value--split { justify-content: flex-start; gap: 8px; }

  /* SP は 3px（画素実測: COURSE MAP 1170/1174・COURSE GUIDE 1491/1494） */
  .subpage .sec-head { margin-bottom: 12.5px; top: -3px; }
  .subpage .sec-head.g-overview__head { top: 0; }
  /* COURSE GUIDE: spec 見出し枠 1488.2..1520.0 → 写真上端 1534.1 ＝ 14.1px */
  .subpage .sec--tint .sec-head { margin-bottom: 8.8px; }

  /* 単位（spec SP: Meiryo-Bold 14.96px）・説明テキスト（Shippori 14.39px） */
  .g-ovcard__value .g-unit { font-size: 14.96px; }
  .g-ovcard__note { font-size: 14.39px; }

  /* リフト行の数字（spec ラン: Bebas 25.74px / 0.005em / #007edf） */
  .g-lift__list .c-num { font-size: 25.74px; }

  /* コースカードの地色は SP だけ spec が別値（PC #135c97/#003c69 → SP #1d4688/#072a5e） */
  .g-course--lv2 .g-course__body { background: #1d4688; }
  .g-course--lv3 .g-course__body { background: #072a5e; }

  /* コースマップ枠 spec x12 370×162.9（sp-inner 22px → -10px） */
  .g-map__ph { margin: 0 -10px; }
  /* spec は SP だけ2行（「／」の後で改行・w182.7）。PCは1行のまま */
  .g-map__br { display: inline; }
  /* PDFボタン カンプ実測 202×46（x96..297・中心197） */
  .g-map__pdf { width: 100%; max-width: 202px; min-height: 46px; padding: 0 36px 0 14px; }

  /* パネル spec x22 350（sp-inner と同幅） */
  .g-panel { margin: 0; }
  /* パネル間 spec: 状況パネル下端3298.2 → リフトパネル上端3313 ＝ 14.8px */
  .subpage .c-grid--2 { gap: 14.8px; }
  /* グリッド項目の min-content でカラムが350pxを超えないように */
  .subpage .c-grid--2 > * { min-width: 0; }

  /* 本日のゲレンデ状況（カンプ実測 x22..372 / y3092..3294 h203）
     ラベルink 3108 ／ 見出しink 3132-3146 ／ 日付ink 3174-3191 ／ メタink 3209-3220
     ボタン枠 y3239-3273（h35・x38..191 と x204..357・間隔13）
     カメラ枠 x211..356 y3108..3201（146×94） */
  .g-panel.g-condition { padding: 13px 15px 20px 20px; }
  .g-condition__main { margin-top: 0; gap: 14px; align-items: flex-start; } /* テキスト段155px＝見出し1行ぶん */
  /* カンプは1行（ink x43..193＝151px）。テキスト段153pxでの折返しを防ぐ */
  .g-condition .g-cardtitle { margin-top: 13px; white-space: nowrap; }
  .g-condition__cam {
    flex: 0 0 146px;
    min-height: 94px;
    margin-top: 2px;
    padding: 8px 6px;
    gap: 6px;
    font-size: 7.3px;      /* カンプ実測 [ LIVE CAMERA ] ink 67×6 */
    line-height: 1.6;
  }
  .g-condition__cam svg { width: 16px; height: 16px; }
  .g-condition__date { margin-top: 22px; }
  /* カンプ実測: メタ行 ink 151×12（アイコン込み・x43..193） */
  .g-condition__meta { margin-top: 12px; gap: 3px; font-size: 12.2px; line-height: 1.32; }
  .g-condition__meta .g-meta__item { gap: 3px; }
  .g-condition__meta .g-meta__icn { width: 11px; height: 11px; }
  .g-condition__btns { margin-top: 17px; margin-left: -4px; gap: 13px; }
  .g-condition__btn { min-height: 35px; }
  /* カンプ実測: ボタン文字 ink 58×8（「リフト運行状況」7字）＝約8px。
     14px 未満だがカンプ実値。要確認事項として報告に残す。 */
  .g-condition__btn .c-btn__text { font-size: 9px; letter-spacing: 0.06em; }

  /* リフト情報（spec 図形 x22 350×265.2 / アイコン円 46.2 @x39.4）
     行 x98.9・ピッチ33.4（y3384.6/3418.0/3451.4/3484.8）、注記 x98.9、説明 x41.4 */
  .g-lift { padding: 15px 8px 17.2px 18px; }
  .g-panel .c-icn--lg.g-lift__icn { width: 46.2px; height: 46.2px; }
  .g-lift .g-panel__head { padding-left: 0; } /* SP は spec: 円 x39.4 ＝ padding 18px のまま */
  .g-panel__head { gap: 12px; }
  .g-lift__list { row-gap: 7.5px; padding-left: 58.9px; margin-top: 6px; }
  .g-lift__sp { width: 14.5px; } /* カンプ実測 SP: 220.1 → 234.6 */
  .g-lift__note { margin-left: 58.9px; margin-top: 2px; }
  .g-lift__desc { margin-top: 13px; }

  /* 雪質・気候／キッズ（カンプ実測: カード x7..387 / card1 y3630..4055・card2 y4069..4495・段間14
     見出しink = カード上端+35 ／ 本文ink = +88（本文段 x30..364＝334px）） */
  .g-media-stack { gap: 14px; }
  .g-bluecard {
    margin: 0 -15px;
    padding: 31px 0 0;
    min-height: 425px;
  }
  .g-bluecard__body { padding: 0 23px; }
  .g-snow__text, .g-family__list { margin-top: 21.5px; }
  .g-bluecard__photo {
    flex: 1 1 auto;
    aspect-ratio: auto;
    margin-top: 20px;
  }
  /* 【2026-09-04 D-1 担当3】写真上端のフェードは ::after（33.4px）へ一本化した。
     ここにあった ::before（45px）は同じ 768px 以下で ::after と二重に塗られ、
     合成 α が 1-(1-a1)(1-a2) になってカンプ実測 33.4px の約 2 倍（実測 ~60px）まで
     青が伸びていた。二重塗りを解消するため削除。 */

  /* 末尾CTA（カンプ実測 265×62・x65..328・間隔13）
     幅は shared（subpage.css SP .c-btn max-width 265.2 = spec 図形実値）に一本化。
     高さだけは PC 用の `.subpage .c-cta-pair .c-btn{min-height:70px}` が
     詳細度で shared に勝ってしまうため、SP で spec 実値 61.9 に戻す。 */
  .subpage .c-cta-pair { gap: 13px; }
  .subpage .c-cta-pair .c-btn { min-height: 61.9px; }

  /* セクションの縦位置（SP） */
  .subpage > section.sec:nth-of-type(3) { padding-top: 51.3px; }
  .subpage > section.sec:nth-of-type(4) { padding-top: 55.5px; } /* spec COURSE GUIDE 見出し枠 y1488.2 */
  .subpage > section.sec:nth-of-type(5) { padding-top: 32.7px; } /* spec: 状況パネル枠 y3094.4（カード側が +53.6 伸びたぶんを戻す） */
  .subpage > section.sec:nth-of-type(6) { padding-top: 52.6px; }
  .subpage > section.sec:nth-of-type(7) { padding-top: 50px; padding-bottom: 73.1px; }
}

/* ==========================================================
   【2026-09-03 A-1c/gelande R4】PC のパネル見出し・状況ボタンの字詰め
   カンプ画素実測（comp/slop_pc.png）:
     「リフト情報」 ink x863..958 = 96px（5字＝19.2px/字 ≒ 19.8px の全角ベタ）
     「本日のゲレンデ状況」 ink x131..313 = 183px
     「リフト運行状況」 ink x210..304 = 95px（7字＝13.6px/字 ≒ 13.5px の全角ベタ）
   ＝この3本は palt（プロポーショナルメトリクス）なしで組まれている。body 既定の
   font-feature-settings:"palt" が継承されると 12〜18% 詰まりすぎるので PC だけ解除する。
   SP は spec 実測（「リフト情報」枠 w70.8 @15.25px＝palt あり）なので触らない。
   ========================================================== */
@media (min-width: 769px) {
  .g-cardtitle,
  .g-condition__btn .c-btn__text { font-feature-settings: normal; }
}

/* ==========================================================
   【2026-09-04 D-1】COURSE MAP: 公式コースマップ画像（img/coursemap_2024.jpg 1000×1050）
   プレースホルダ .g-map__ph の箱寸法（PC 560px / SP 163px相当の帯）を踏襲しつつ、
   縦長画像なので object-fit:contain で箱内に収める。SPは可読性優先で箱を可変高に。
   ========================================================== */
/* 【2026-09-09 市岡さん指摘】カンプの灰色枠は 1272×560（横長）で、横長のコースマップが入る想定。
   実際の公式マップは 1000×1050（縦長）のため、箱に contain で収めると左右に370pxずつ灰色が残り
   「レイアウトが崩れている」見え方になっていた。箱の固定高と面色をやめ、画像の原寸で中央に置く。 */
.g-map__fig {
  margin: 0;
  display: flex;
  justify-content: center;
}
.g-map__img {
  display: block;
  width: 100%;
  max-width: 1000px;   /* 原寸。1272pxの版面内に収まる */
  height: auto;
}
@media (max-width: 768px) {
  .g-map__fig { margin: 0; }
  .g-map__img { max-width: 100%; }
}
@media (max-width: 480px) {
  .g-map__fig { margin: 0 -10px; }
}

/* ---- 本日のゲレンデ状況: 実データ表示（js/status.js） ---- */
.g-condition__meta.has-vals { flex-direction: column; align-items: flex-start; gap: 2px; }
.g-condition__meta.has-vals .g-meta__item { white-space: nowrap; }
.g-meta__val { margin-left: 6px; color: var(--color-text); font-weight: 500; }
.g-condition__cam.is-live { position: relative; padding: 0; overflow: hidden; border-radius: 8px; background: #d8dde2; }
.g-condition__cam-link { display: block; width: 100%; height: 100%; min-height: inherit; }
.g-condition__cam.is-live img { display: block; width: 100%; height: 100%; object-fit: cover; }
.g-condition__cam-tag { position: absolute; bottom: 8px; left: 8px; padding: 2px 7px 1px; border-radius: 3px; background: rgba(22, 92, 226, 0.9); color: #fff; font-size: 11px; letter-spacing: 0.08em; line-height: 1.4; }

/* ==========================================================
   【2026-09-16 打ち合わせ反映】
   ・本日の状況パネル: カンプ slop_pc の2ボタンを復活（.g-condition__btns は既存）。
     値（気温・積雪）は LIFT INFO と同じ Bebas 青数字（.c-num 29.55px / #007edf）＋小さな単位
   ・リフト運行状況（右パネル内）／コース稼働状況（新設）／ご利用ガイドライン（新設）
   ========================================================== */
/* 値が入ったら「ラベル小＋数字大」に切り替える（JS が .has-vals を付ける） */
.g-condition__meta.has-vals { gap: 18px 28px; margin-top: 18px; }
.g-condition__meta.has-vals .g-meta__item { flex-direction: column; align-items: flex-start; gap: 4px; }
.g-meta__val { display: inline-block; font-size: 15px; line-height: 1.2; letter-spacing: 0.07em; color: var(--color-text); }
.g-meta__val--num .c-num { font-size: 29.55px; letter-spacing: 0.005em; color: #007edf; line-height: 1; }
.g-meta__unit { margin-left: 3px; font-size: 15px; letter-spacing: 0.07em; color: var(--color-text); }
.g-condition__btn { border-radius: 6px; }
.g-condition__btn .c-btn__text { font-size: 13.5px; letter-spacing: 0.06em; }

/* 状態ピル（コース稼働状況・リフト運行状況で共通） */
.g-stat {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  height: 27.7px;
  padding: 0 12px;
  border-radius: 999px;
  background: #939494;
  color: #fff;
  font-size: 13px;
  line-height: 1;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.g-stat--pre { background: #939494; }
.g-stat--open { background: var(--color-primary); }
.g-stat--partial { background: #ff8690; }
.g-stat--closed { background: #6e7375; }

/* リフト運行状況（LIFT INFO パネル内・説明文の下） */
.g-liftstat { margin-top: 26px; padding-top: 22px; border-top: 1px solid rgba(22, 92, 226, 0.25); }
.g-liftstat__title { font-size: 15px; line-height: 1; letter-spacing: 0.12em; color: #7e857f; font-weight: 400; }
.g-liftstat__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 18px;
  row-gap: 12px;
  margin-top: 16px;
  list-style: none;
  padding: 0;
}
.g-liftstat__list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.g-liftstat__name { font-family: var(--font-jp-palt); font-size: 16px; letter-spacing: 0.08em; color: var(--color-text); }

/* コース稼働状況 */
.g-status__notice, .g-status__legend {
  margin-top: -12px;
  margin-bottom: 30px;
  font-size: 15px;
  line-height: 25px;
  letter-spacing: 0.07em;
  color: var(--color-text);
}
.g-status__notice { padding: 14px 20px; background: #fff; border: 1px solid var(--color-primary); border-radius: 6px; }
.g-cs { display: grid; gap: 28px; }
.g-cs__group { background: #fff; border-radius: 10px; overflow: hidden; }
.g-cs__level {
  padding: 14px 26px;
  font-size: 17px;
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #fff;
}
.g-cs__group--lv1 .g-cs__level { background: var(--color-primary); }
.g-cs__group--lv2 .g-cs__level { background: #145c97; }
.g-cs__group--lv3 .g-cs__level { background: #003c69; }
.g-cs__list { list-style: none; margin: 0; padding: 6px 26px 10px; }
.g-cs__row {
  display: grid;
  grid-template-columns: 200px 120px minmax(0, 1fr);
  align-items: center;
  column-gap: 22px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(45, 45, 45, 0.1);
}
.g-cs__row:last-child { border-bottom: 0; }
.g-cs__name { font-family: var(--font-jp-palt); font-size: 17px; letter-spacing: 0.07em; color: var(--color-text); }
.g-cs__desc { font-size: 14.5px; line-height: 24px; letter-spacing: 0.05em; color: var(--color-text); }
.g-cs__spec { display: block; margin-top: 2px; font-size: 12.5px; line-height: 20px; letter-spacing: 0.05em; color: #6e7375; }
.g-status__spec { margin-top: 18px; font-size: 13px; line-height: 21px; letter-spacing: 0.05em; color: #6e7375; }

/* ご利用ガイドライン（2表） */
.g-gl { display: grid; gap: 40px; }
.g-gl__block { background: #fff; border-radius: 10px; padding: 28px 30px 26px; }
.g-gl__title { margin-bottom: 18px; font-size: 18px; line-height: 1.4; letter-spacing: 0.08em; font-weight: 400; color: var(--color-text); }
.g-gl__table { min-width: 860px; font-size: 14px; }
.g-gl__table th, .g-gl__table td { padding: 12px 14px; }
.g-gl__table thead th { text-align: center; }
.g-gl__table thead th:first-child { text-align: left; }
.g-gl__table tbody th[scope="row"] { font-size: 13.5px; line-height: 1.6; }
.g-gl__table .u-center { text-align: center; font-size: 16px; white-space: nowrap; }
.g-gl__table .g-gl__kids { font-size: 13.5px; line-height: 1.6; white-space: nowrap; }
.g-gl__notes { list-style: none; margin: 16px 0 0; padding: 0; font-size: 13.5px; line-height: 22px; letter-spacing: 0.05em; color: var(--color-text); }
.g-gl__notes li { padding-left: 1em; text-indent: -1em; }
.g-gl__close { margin-top: 24px; text-align: center; font-size: 15px; letter-spacing: 0.1em; color: var(--color-primary); }

@media (max-width: 768px) {
  .g-condition__meta.has-vals { gap: 12px 18px; }
  .g-meta__val--num .c-num { font-size: 25.74px; }
  .g-condition__btns { gap: 10px; margin-top: 20px; }
  .g-condition__btn { min-height: 44px; }
  .g-stat { min-width: 84px; height: 24px; font-size: 11px; padding: 0 10px; }
  .g-liftstat { margin-top: 18px; padding-top: 16px; }
  .g-liftstat__list { grid-template-columns: 1fr; row-gap: 10px; margin-top: 12px; }
  .g-liftstat__name { font-size: 14px; }
  .g-status__notice, .g-status__legend { margin-top: -4px; margin-bottom: 20px; font-size: 14px; line-height: 23px; }
  .g-cs { gap: 16px; }
  .g-cs__level { padding: 12px 16px; font-size: 15px; }
  .g-cs__list { padding: 4px 16px 8px; }
  .g-cs__row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name stat" "desc desc"; row-gap: 6px; padding: 12px 0; }
  .g-cs__name { grid-area: name; font-size: 15px; }
  .g-cs__row .g-stat { grid-area: stat; }
  .g-cs__desc { grid-area: desc; font-size: 14px; line-height: 22px; }
  .g-gl { gap: 20px; }
  .g-gl__block { padding: 18px 14px 16px; }
  .g-gl__title { font-size: 16px; margin-bottom: 12px; }
  .g-gl__table { min-width: 760px; font-size: 13px; }
  .g-gl__table th, .g-gl__table td { padding: 10px 10px; }
  .g-gl__notes { font-size: 12.5px; line-height: 20px; }
  .g-gl__close { font-size: 14px; }
}
/* 運行状況は2パネルの下に全幅の白パネルで（左パネルに空きを作らない） */
.g-liftstat.g-panel { margin-top: 24px; padding: 28px 44px 30px; border-top: 1px solid var(--color-primary); }
.g-liftstat__list { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 40px; }
@media (max-width: 768px) {
  .g-liftstat.g-panel { margin-top: 16px; padding: 18px 18px 18px; }
  .g-liftstat__list { grid-template-columns: 1fr; }
}
/* 【2026-09-16 打ち合わせ反映】コース稼働状況・ガイドラインの追加でページが長くなり、
   カンプ絶対y配置の1枚タイル（1801→4361px）の下が白く抜けるため、下層ページ共通 .cx-wash と同じく
   縦リピートで敷く（タイル上下端は白＝継ぎ目は出ない。上端位置 1801px はカンプのまま）。 */
.subpage { background-repeat: repeat-y; }
/* 【2026-09-16 contrast-check】新設要素の白文字は 4.5:1 を満たす色に（#939494 は 3.0:1 で既知の例外色だが新設要素には使わない） */
.g-stat, .g-stat--pre { background: #6e7375; }
.g-stat--closed { background: #5b6062; }
.g-liftstat__title { color: #5f6761; }
/* 【2026-09-16 contrast-check】新設要素の本文は 14px 下限に揃える（注記 .g-cs__spec / .g-status__spec は 12px 下限の注記扱い） */
.g-stat { font-size: 14px; }
.g-gl__table tbody th[scope="row"] { font-size: 14px; }
.g-gl__notes { font-size: 14px; }
@media (max-width: 768px) { .g-stat { font-size: 12px; } .g-gl__table tbody th[scope="row"] { font-size: 13px; } .g-gl__notes { font-size: 13px; } }

/* ==========================================================
   【2026-09-16 SP修正】ガイドライン表とゲレンデ状況パネル
   ・.g-gl は暗黙の1列グリッドで、子（.g-gl__block）の min-width:auto により
     中の表（min-width 760px）のぶんまで列が広がり、SPで版面が 690px に伸びていた
     （html/body の overflow-x:hidden で隠れて表と注記の右端が切れ、iOSは本文を拡大表示）。
     → 列を minmax(0,1fr)・ブロックに min-width:0。
   ・SP（〜768px）は表を横スクロールにせず、行ごとのカードに縦積み
     （行見出し＝全幅、各セル＝「列名 ＋ 〇×」の2列グリッド。列名は td[data-label]）。
     年齢表の rowspan セル（キッズランド）は SP では非表示にし、注記に1行で出す（.g-gl__sponly）。
   ・本日のゲレンデ状況: 値が入ると（.has-vals）SPで天気/気温/積雪が縦1列に伸びて
     カメラ横が空くため、SPはグリッドにしてメタ行をカメラの下・全幅に置き3列で並べる。
   ========================================================== */
.g-gl { grid-template-columns: minmax(0, 1fr); }
.g-gl__block { min-width: 0; }
.g-gl__sponly { display: none; }

@media (max-width: 768px) {
  .g-gl .c-table-wrap .g-gl__table { min-width: 0; width: 100%; font-size: 13px; }
  .g-gl__table thead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
  .g-gl__table tbody { display: block; }
  .g-gl__table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: 12px;
    background: var(--c-border);
    border: 1px solid var(--c-border);
    border-radius: 8px;
    overflow: hidden;
  }
  .g-gl__table tbody tr:first-child { margin-top: 0; }
  .g-gl__table tbody th[scope="row"] {
    display: block;
    grid-column: 1 / -1;
    width: auto;
    padding: 9px 12px;
    background: #eef4f9;
    border: 0;
    font-size: 13px;
    line-height: 1.6;
    text-align: left;
  }
  .g-gl__table tbody td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 40px;
    padding: 6px 12px;
    background: #fff;
    border: 0;
    text-align: left;
  }
  .g-gl__table tbody td::before {
    content: attr(data-label);
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    line-height: 1.35;
    letter-spacing: 0.02em;
    color: #5f6761;
    white-space: normal;
  }
  .g-gl__table tbody td.u-center { font-size: 16px; white-space: normal; }
  .g-gl__table--equip tbody td:last-child,
  .g-gl__table--age tbody td:nth-of-type(5) { grid-column: 1 / -1; }
  .g-gl__table tbody td.g-gl__kids { display: none; }
  .g-gl__sponly { display: list-item; }

  /* 本日のゲレンデ状況 */
  .g-condition__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 136px;
    grid-template-areas: "label cam" "title cam" "date cam" "meta meta";
    column-gap: 12px;
    align-items: start;
  }
  .g-condition__info { display: contents; }
  .g-condition__info > .g-cardlabel { grid-area: label; }
  .g-condition__info > .g-cardtitle { grid-area: title; }
  .g-condition__date { grid-area: date; }
  .g-condition__meta { grid-area: meta; }
  .g-condition__cam { grid-area: cam; width: auto; align-self: start; }
  .g-condition__meta.has-vals {
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 6px 10px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(22, 92, 226, 0.18);
  }
  .g-condition__meta.has-vals .g-meta__item { flex: 1 1 0; min-width: 0; white-space: nowrap; }
  .g-condition__meta.has-vals .g-meta__val--num .c-num { font-size: 26px; }
}
@media (max-width: 480px) {
  .g-condition__main { grid-template-columns: minmax(0, 1fr) 146px; column-gap: 14px; }
}
/* 列名（キッズランド そりコース 等）は語中で割らず、スペース位置で折り返す */
@media (max-width: 768px) {
  .g-gl__table tbody td::before { word-break: keep-all; overflow-wrap: anywhere; line-break: strict; }
}
/* 【2026-09-17 修正・Codex指摘】年齢表のキッズランド列（rowspan）はSPで display:none だと読み上げから消えるため、視覚だけ非表示に */
@media (max-width: 768px) {
  .g-gl__table tbody tr { position: relative; }
  .g-gl__table tbody td.g-gl__kids { display: block; position: absolute; width: 1px; height: 1px; min-height: 0; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}
/* 【2026-09-17 修正】PC の「本日のゲレンデ状況」: 実データ表示（.has-vals）で天気/気温/積雪が左の細い段に縦積みになり、
   カメラが縦長に伸びて右パネル下に空きが出ていた → SPと同じくグリッドにし、メタ行はカメラの下・全幅に横並び。カメラは236×150固定 */
@media (min-width: 769px) {
  .g-condition__main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 236px;
    grid-template-areas: "label cam" "title cam" "date cam" "meta meta";
    column-gap: 32px;
    align-items: start;
  }
  .g-condition__info { display: contents; }
  .g-condition__info > .g-cardlabel { grid-area: label; }
  .g-condition__info > .g-cardtitle { grid-area: title; }
  .g-condition__date { grid-area: date; }
  .g-condition__meta { grid-area: meta; }
  .g-condition__cam { grid-area: cam; align-self: start; height: 150px; min-height: 150px; }
  .g-condition__meta.has-vals {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 44px;
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid rgba(22, 92, 226, 0.18);
  }
  .g-condition__meta.has-vals .g-meta__item { flex: 0 0 auto; }
}
/* 【2026-09-17 修正】コースマップは縮小して置き、クリックで拡大表示（ライトボックス）。
   状況パネルの2ボタンと運行状況パネルは削除（HTML側）。コース稼働状況の数値にはラベルを付ける */
.g-map__img { max-width: 640px; cursor: zoom-in; }
.g-map__zoom { display: block; }
.g-map__cap { margin-top: 10px; text-align: center; font-size: 13px; letter-spacing: 0.08em; color: #6e7375; }
.lb { position: fixed; inset: 0; z-index: 1000; background: rgba(10, 20, 40, 0.88); overflow: auto; padding: 24px; -webkit-overflow-scrolling: touch; }
.lb__scroll { min-height: 100%; display: flex; align-items: flex-start; justify-content: center; }
.lb__img { display: block; width: min(1000px, 100%); max-width: none; height: auto; cursor: zoom-out; }
.lb__close { position: fixed; top: 16px; right: 16px; z-index: 1001; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: #1f2521; font-size: 22px; line-height: 44px; text-align: center; }
.g-cs__spec { margin-top: 4px; }
.g-cs__specitem { display: inline-block; margin-right: 14px; color: #6e7375; }
.g-cs__spec b { font-weight: 400; margin-left: 2px; font-size: 13.5px; color: var(--color-text); }
@media (max-width: 768px) {
  .g-map__img { max-width: 100%; }
  .lb { padding: 12px; }
  .g-cs__specitem { margin-right: 10px; }
}
/* 【2026-09-17 修正】滑走用具表: 「滑走用具装着なしでの乗車」は現行サイトと同じ 上線／下線 の2段（rowspan）。× は赤 */
.g-gl__table .g-gl__parent { vertical-align: middle; }
.g-gl__table th.g-gl__sub { background: #f6f8fa; width: 64px; white-space: nowrap; text-align: center; font-size: 13.5px; }
.g-gl__table td.g-gl__ng { color: #d0021b; }
@media (max-width: 768px) {
  .g-gl__table tbody th.g-gl__parent { display: none; }
  .g-gl__table tbody th.g-gl__sub { grid-column: 1 / -1; width: auto; text-align: left; background: #eef4f9; }
  .g-gl__table tbody th.g-gl__sub::before { content: attr(data-parent) "（"; }
  .g-gl__table tbody th.g-gl__sub::after { content: "）"; }
  html[lang="en"] .g-gl__table tbody th.g-gl__sub::before { content: attr(data-parent) " ("; }
  html[lang="en"] .g-gl__table tbody th.g-gl__sub::after { content: ")"; }
}
.g-map__fig { flex-direction: column; align-items: center; }

/* 【2026-09-17 深夜3】コースガイドカード: 見出し帯のみ色・本文は白地 */
.g-course__body { padding: 0 0 30px; color: var(--color-text); border: 1px solid rgba(22, 92, 226, 0.35); border-top: 0; }
.g-course--lv1 .g-course__body, .g-course--lv2 .g-course__body, .g-course--lv3 .g-course__body { background: #fff; }
.g-course__title { margin: 0 0 18px; padding: 16px 24px 15px; color: var(--color-white); background: var(--color-primary); }
.g-course--lv2 .g-course__title { background: #145c97; }
.g-course--lv3 .g-course__title { background: #003c69; }
.g-course__desc, .g-course__list li { color: var(--color-text); }
.g-course__body > :not(.g-course__title) { margin-left: 24px; margin-right: 24px; }
@media (max-width: 768px) {
  .g-course__body { padding: 0 0 22px; }
  .g-course__title { margin-bottom: 12px; padding: 12px 20px 11px; }
  .g-course__body > :not(.g-course__title) { margin-left: 20px; margin-right: 20px; }
}
/* 【2026-09-17 議事録】コースガイドカードの枠線は帯と同じ色 */
.g-course--lv2 .g-course__body { border-color: rgba(20, 92, 151, 0.55); }
.g-course--lv3 .g-course__body { border-color: rgba(0, 60, 105, 0.6); }

/* 【2026-09-17 議事録】本日のゲレンデ状況／リフト情報をトップの天気パネルと同じ密度・見せ方に（PC） */
@media (min-width: 769px) {
  .g-panel.g-condition { padding: 26px 28px 26px 32px; }
  .g-condition__main { display: grid; grid-template-columns: max-content minmax(0, 1fr) 236px; grid-template-areas: "label label cam" "date title cam" "meta meta cam"; column-gap: 18px; row-gap: 0; align-items: center; margin-top: 0; }
  .g-condition__info { display: contents; }
  .g-condition .g-cardlabel { grid-area: label; }
  .g-condition__date { grid-area: date; margin: 8px 0 0; font-size: 40px; line-height: 1; }
  .g-condition .g-cardtitle { grid-area: title; margin: 8px 0 0; font-size: 17px; letter-spacing: 0.12em; color: var(--color-primary); white-space: nowrap; }
  .g-condition__meta { grid-area: meta; display: flex; gap: 10px; margin-top: 18px; }
  .g-condition__meta .g-meta__item { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: 8px; background: rgba(22, 92, 226, 0.06); font-size: 13px; }
  .g-condition__meta .g-meta__item::before, .g-condition__meta .g-meta__item::after { content: none; }
  .g-condition__meta .g-meta__val { font-size: 16px; color: var(--color-text); }
  .g-condition__cam { grid-area: cam; align-self: center; }
  .g-lift { padding: 26px 28px; }
  .g-panel .c-icn--lg.g-lift__icn { width: 44px; height: 44px; }
  .g-lift .g-panel__head { padding-left: 0; gap: 14px; }
  .g-lift__list { margin-top: 18px; row-gap: 6px; }
  .g-lift__list li { line-height: 1.5; }
  .g-lift__note { margin-top: 6px; }
  .g-lift__desc { margin-top: 12px; }
}
/* ガイドラインの下の余白を詰める（.sec + .sec--tint の 96+92px を 32+56px に） */
#guideline + .sec--tint { margin-top: 32px; padding-top: 56px; }
@media (max-width: 768px) { #guideline + .sec--tint { margin-top: 24px; padding-top: 40px; } }
/* 見出しが日付の横で切れるため、見出し→日付の縦積みに（日付は少し小さく） */
@media (min-width: 769px) {
  .g-condition__main { grid-template-columns: minmax(0, 1fr) 236px; grid-template-areas: "label cam" "title cam" "date cam" "meta cam"; }
  .g-condition .g-cardtitle { margin-top: 6px; white-space: normal; }
  .g-condition__date { margin-top: 10px; font-size: 34px; }
  .g-condition__meta { margin-top: 16px; }
}

/* ==========================================================
   【2026-09-18】市岡さん指示: 「本日のゲレンデ状況」をトップ TODAY'S WEATHER と同じ作りに（日付＋見出し／天気・気温・積雪タイル／カメラ）。
   「リフト情報」は4基をタイルにして高さを使い切り、下の余白をなくす
   ========================================================== */
.g-condition--v2 { display: flex; flex-direction: column; padding: 24px 26px 26px; }
.g-condition__head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 20px; }
.g-condition--v2 .g-condition__date { margin: 0; font-size: 42px; line-height: 1; letter-spacing: 0.02em; color: var(--color-text); grid-area: auto; }
.g-condition__titles { display: flex; flex-direction: column; gap: 3px; }
.g-condition--v2 .g-cardlabel { grid-area: auto; }
.g-condition--v2 .g-cardtitle { margin: 0; font-size: 19px; line-height: 1.3; letter-spacing: 0.1em; color: var(--color-primary); white-space: normal; grid-area: auto; }
.g-condition--v2 .g-condition__main { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) 46%; grid-template-areas: none; gap: 10px; align-items: stretch; margin-top: 18px; }
.g-condition--v2 .g-condition__meta { grid-area: auto; display: grid; grid-template-columns: 38% minmax(0, 1fr); grid-template-rows: 1fr 1fr; gap: 8px; margin: 0; font-size: 14px; line-height: 1.3; letter-spacing: 0.1em; color: #7b8794; }
.g-condition--v2 .g-meta__item { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 66px; padding: 0 14px; border-radius: 12px; background: #f1f5fc; font-size: 14px; }
.g-condition--v2 .g-meta__item::before, .g-condition--v2 .g-meta__item::after { content: none; }
.g-condition--v2 .g-meta__item--weather { grid-row: 1 / 3; flex-direction: column; justify-content: center; gap: 6px; padding: 12px 6px; text-align: center; }
.g-meta__icnwrap { display: block; width: 46px; height: 46px; color: #ffa300; }
.g-meta__icnwrap.is-cloud, .g-meta__icnwrap.is-rain, .g-meta__icnwrap.is-snow { color: #8aa0bd; }
.g-meta__icnwrap svg { display: block; width: 100%; height: 100%; }
.g-condition--v2 .g-meta__item--weather .g-meta__val { order: 2; font-size: 18px; letter-spacing: 0.1em; color: var(--color-text); }
.g-condition--v2 .g-meta__item--weather .g-meta__label { order: 3; }
.g-condition--v2 .g-meta__val { font-size: 26px; line-height: 1; letter-spacing: 0.02em; color: var(--color-text); white-space: nowrap; }
.g-condition--v2 .g-meta__val .c-num { font-size: 40px; line-height: 1; color: var(--color-text); }
.g-condition--v2 .g-meta__unit { margin-left: 4px; font-size: 17px; letter-spacing: 0; color: var(--color-text); }
.g-condition--v2 .g-condition__cam { grid-area: auto; align-self: stretch; width: 100%; height: auto; min-height: 150px; border-radius: 12px; }
.g-condition--v2 .g-condition__cam.is-live { border-radius: 12px; }
.g-lift--v2 { display: flex; flex-direction: column; padding: 24px 26px 26px; }
.g-lift--v2 .g-lift__list { flex: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 8px; margin: 18px 0 0; padding: 0; }
.g-lift--v2 .g-lift__list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 66px; padding: 8px 14px; border-radius: 12px; background: #f1f5fc; font-size: 15px; line-height: 1.4; letter-spacing: 0.04em; }
.g-lift__name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.g-lift__sub { font-size: 11.5px; letter-spacing: 0; color: #5f6761; }
.g-lift__len { flex: none; display: inline-flex; align-items: baseline; gap: 4px; font-size: 13px; color: #7b8794; white-space: nowrap; }
.g-lift--v2 .g-lift__list .c-num { font-size: 32px; line-height: 1; }
.g-lift--v2 .g-lift__desc { margin: 14px 0 0; }
@media (max-width: 768px) {
  .g-condition--v2 { padding: 16px 16px 18px; }
  .g-condition--v2 .g-condition__date { font-size: 30px; margin-top: 0; }
  .g-condition--v2 .g-cardtitle { font-size: 16px; }
  .g-condition--v2 .g-condition__main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 14px; }
  .g-condition--v2 .g-condition__meta { margin-top: 0; font-size: 13px; }
  .g-condition--v2 .g-meta__item { min-height: 58px; padding: 0 12px; }
  .g-condition--v2 .g-meta__val .c-num { font-size: 34px; }
  .g-condition--v2 .g-condition__cam { flex: none; min-height: 0; aspect-ratio: 16 / 10; padding: 0; }
  .g-lift--v2 { padding: 16px 16px 18px; }
  .g-lift--v2 .g-lift__list { grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 14px; }
  .g-lift--v2 .g-lift__list li { min-height: 54px; font-size: 14px; }
  .g-lift--v2 .g-lift__list .c-num { font-size: 28px; }
}
/* v2: 旧 .has-vals ルール（罫線・縦積み・左寄せ）を打ち消す */
.g-condition--v2 .g-condition__meta.has-vals { display: grid; padding: 0; margin-top: 0; border-top: 0; gap: 8px; }
.g-condition--v2 .g-condition__meta.has-vals .g-meta__item { flex-direction: row; align-items: center; justify-content: space-between; gap: 6px; white-space: nowrap; }
.g-condition--v2 .g-condition__meta.has-vals .g-meta__item--weather { flex-direction: column; justify-content: center; align-items: center; gap: 6px; }
.g-condition--v2 .g-condition__meta.has-vals .g-meta__val--num .c-num { font-size: 40px; }
@media (max-width: 768px) {
  .g-condition--v2 .g-condition__meta.has-vals { display: grid; margin-top: 0; padding: 0; border-top: 0; gap: 8px; }
  .g-condition--v2 .g-condition__meta.has-vals .g-meta__val--num .c-num { font-size: 34px; }
}
/* 【2026-09-18】SP: 見出しが日付の横で切れるため縦に。天気・気温・積雪は3段の縦積み（左=アイコン＋ラベル／右=値）、カメラは同じ幅で下に */
@media (max-width: 768px) {
  .g-condition__head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .g-condition--v2 .g-condition__meta, .g-condition--v2 .g-condition__meta.has-vals { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 8px; }
  .g-condition--v2 .g-meta__item, .g-condition--v2 .g-condition__meta.has-vals .g-meta__item { min-height: 62px; padding: 0 14px; }
  .g-condition--v2 .g-meta__item--weather, .g-condition--v2 .g-condition__meta.has-vals .g-meta__item--weather { grid-row: auto; flex-direction: row; justify-content: space-between; align-items: center; gap: 10px; padding: 0 14px; text-align: left; }
  .g-condition--v2 .g-meta__item--weather .g-meta__icnwrap { width: 34px; height: 34px; order: 0; }
  .g-condition--v2 .g-meta__item--weather .g-meta__label { order: 1; margin-right: auto; }
  .g-condition--v2 .g-meta__item--weather .g-meta__val { order: 2; font-size: 20px; }
  .g-condition--v2 .g-condition__cam { width: 100%; }
}
/* 【2026-09-18】PCも天気・気温・積雪を3段の縦積みに。カメラは3段とぴったり同じ高さ・幅を広く（52%） */
@media (min-width: 769px) {
  .g-condition--v2 .g-condition__main { grid-template-columns: minmax(0, 1fr) 52%; gap: 12px; align-items: stretch; }
  .g-condition--v2 .g-condition__meta, .g-condition--v2 .g-condition__meta.has-vals { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(3, 1fr); gap: 8px; }
  .g-condition--v2 .g-meta__item, .g-condition--v2 .g-condition__meta.has-vals .g-meta__item { min-height: 62px; padding: 0 16px; }
  .g-condition--v2 .g-meta__item--weather, .g-condition--v2 .g-condition__meta.has-vals .g-meta__item--weather { grid-row: auto; flex-direction: row; justify-content: space-between; align-items: center; gap: 10px; padding: 0 16px; text-align: left; }
  .g-condition--v2 .g-meta__item--weather .g-meta__icnwrap { width: 34px; height: 34px; order: 0; }
  .g-condition--v2 .g-meta__item--weather .g-meta__label { order: 1; margin-right: auto; }
  .g-condition--v2 .g-meta__item--weather .g-meta__val { order: 2; font-size: 22px; }
  .g-condition--v2 .g-meta__val .c-num, .g-condition--v2 .g-condition__meta.has-vals .g-meta__val--num .c-num { font-size: 36px; }
  .g-condition--v2 .g-condition__cam { height: 100%; min-height: 0; align-self: stretch; }
  .g-condition--v2 .g-condition__cam-link { height: 100%; }
}
/* ガイドライン下の空き: セクションの padding-bottom 118px を詰める */
#guideline { padding-bottom: 24px; }
#guideline + .sec--tint { margin-top: 24px; padding-top: 56px; }
@media (max-width: 768px) { #guideline { padding-bottom: 16px; } }
/* 【2026-09-18】コース構成: 1行にしてゲージを文字幅に合わせる */
.g-ovcard__value--ml { display: inline-flex; flex-direction: column; align-items: stretch; width: auto; max-width: 100%; }
.g-ovcard__value--ml p { margin: 0; white-space: nowrap; }
.g-ovcard__value--ml .c-ratio { width: 100%; max-width: none; }
html[lang="en"] .g-ovcard__value--ml p { white-space: normal; }
@media (max-width: 768px) { .g-ovcard__value--ml p { font-size: 13px; letter-spacing: 0.05em; } }

/* ==========================================================
   【2026-09-18 打ち合わせ反映】コースマップの下に配布ページへの導線（中央寄せ）
   ========================================================== */
.g-map__actions--dl { justify-content: center; margin-top: 28px; }
.g-map__dl { min-width: 320px; }
@media (max-width: 768px) {
  .g-map__actions--dl { margin-top: 20px; }
  .g-map__dl { min-width: 0; width: 100%; max-width: 340px; }
}

/* 【2026-09-29 先方ご要望】リフト数「クワッド1基・ペア3基 ／計4基」: 「／計」は単位と同じ小さい字。
   1行だと値が長くなり、左列の幅（＝このカードの1行の長さで決まる）が広がって右列が画面外に出るため、
   「／計4基」は入りきらなければ次の行の右端へ回す（列幅は修正前とほぼ同じ） */
.g-unit--total { margin-right: 0.15em; }
.g-ovcard__value--split { flex-wrap: wrap; row-gap: 0; }
.g-ovcard__value--split .g-ovcard__amt { margin-left: auto; }
/* 1行の値（標高・コース数・最大傾斜・最長滑走距離）は折り返さない＝左列の幅は標高の1行で決まる（修正前 615px → 約611px） */
.g-ovcard__value:not(.g-ovcard__value--ml):not(.g-ovcard__value--split),
.g-ovcard__main, .g-ovcard__sub { white-space: nowrap; }
/* 【2026-09-29】最長滑走距離 1,600m の区間（パノラマ〜エアターン）は数字の下に小さく添える
   （横並びだと値が長くなり、カードの列幅を押し広げて右列が画面外に出たため） */
.g-ovcard__value--sub { display: flex; flex-direction: column; align-items: center; }
.g-ovcard__sub { margin-top: 2px; font-size: 15px; line-height: 1.4; letter-spacing: 0.08em; }
@media (max-width: 768px) {
  .g-ovcard__sub { margin-top: 0; font-size: 12px; letter-spacing: 0.06em; }
}

/* 【2026-10-01 先方ご要望】本日のゲレンデ状況: 天気・気温・積雪の見出しを左で縦にそろえ、天気アイコンは「晴れ」の左へ（PC・SP） */
.g-condition--v2 .g-meta__item--weather .g-meta__label { order: 0; margin-right: auto; }
.g-condition--v2 .g-meta__item--weather .g-meta__icnwrap { order: 1; }
.g-condition--v2 .g-meta__item--weather .g-meta__val { order: 2; }
