@charset "UTF-8";
/* ============================================================
   IACE TRAVEL CANADA — Design System v2 (NEWT-inspired, clean & light)
   白基調 / 余白重視 / 角丸カード / プロSVGアイコン / 装飾見出し全廃
   ============================================================ */
/* ---------- 1. Tokens ---------- */
:root {
  --brand:#0a9ecb;
  /* IACE cyan-blue (primary) */
  --brand-ink:#0a6f96;
  /* テキスト用の濃いブランド色 */
  --brand-050:#eef8fc;
  --brand-100:#d3edf7;
  --navy:#0e2233;
  /* フッター・濃色 */
  --navy-600:#1d3d5c;
  --accent:#d2431a; /* 白文字とのコントラスト比 4.6（旧 #f0592a は 3.4 で WCAG AA 未達） */
  /* coral: 価格 / CTA */
  --accent-ink:#c93f14; /* 白地の文字用 5.0（旧 #d8461c は 4.4） */
  --line-green:#05853a; /* LINE のボタン・アイコン。白文字と 4.5 以上（公式色 var(--line-green) は 2.3） */
  --accent-050:#fdefe9;
  --accent-100:#f9d5c3; /* 注意書き帯の線。--accent-050 の面に対して一段濃い */
  --aurora:#12b981;
  /* success / green */
  --gold:#f6b73c;
  /* star / 黄色アクセント(ボタン .c-btn--gold) */
  --gold-ink:#d99a16;
  --gold-050:#fef5e3;
  --gold-100:#f7e3b6;
  --sky:#5cc8ea;
  /* 水色アクセント(ボタン .c-btn--sky)。--brand より明るい面色 */
  --sky-ink:#33a9cf;
  --sky-050:#ecf9fe;
  /* 見出しの下線など、面ではなく線に使う薄い水色 */
  --sky-200:#bfe7f5;
  /* ボタン用の濃い水色。白文字で WCAG AA(4.59:1) を満たす濃さ */
  --sky-deep:#1a7f9e;
  --sky-deepest:#146579;
  --ink:#15242f;
  --ink-2:#4b5b69;
  --ink-3:#5f6f7c; /* 補足文字。薄い地(#f5f7f9)でもコントラスト比 4.5 以上（旧 #8394a2 は 3.2 で WCAG AA 未達） */
  --line:#e7edf2;
  --line-2:#f0f4f7;
  --line-strong:#ccd8e2; /* 枠線をはっきり見せたいとき（チップ等） */
  --bg:#ffffff;
  --bg-2:#f6f9fb;
  --bg-3:#eef3f7;
  --font-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-en:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --w-wide:1240px;
  --w-header:1440px;
  --w-main:1080px;
  --w-narrow:820px;
  --r-xs:4px;
  --r-sm:6px;
  --r:10px;
  --r-lg:14px;
  --r-xl:18px;
  --sh-xs:0 1px 1px rgba(16,40,64,.07);
  --sh-sm:0 1px 2px rgba(16,40,64,.09);
  --sh:0 1px 3px rgba(16,40,64,.10);
  --sh-lg:0 4px 12px rgba(16,40,64,.14);
  --header-h:70px;
  /* 画面上端に貼り付く .l-site-header の実寸（core.js が入れる）。
     sticky の top やアンカー着地位置はこちらを使う。JS不在時は下段の高さで代用 */
  --header-stick:var(--header-h);
  /* ---- 互換エイリアス: 旧v1変数名を新v2トークンへマップ(第1バッチ各ページのインラインstyle救済) ---- */
  --navy-900:var(--navy);
  --navy-800:#123a68;
  --navy-700:#17456e;
  --cyan:var(--brand);
  --cyan-dark:var(--brand-ink);
  --cyan-pale:var(--brand-050);
  --maple:var(--accent);
  --maple-dark:var(--accent-ink);
  --maple-pale:var(--accent-050);
  --ink-soft:var(--ink-2);
  --ink-mute:var(--ink-3);
  --bg-soft:var(--bg-2);
  --bg-warm:#f7f4ee;
  --radius:var(--r);
  --radius-s:var(--r-sm);
  --shadow-s:var(--sh-sm);
  --shadow-m:var(--sh);
  --shadow-l:var(--sh-lg);
  --font-serif:var(--font-sans);
  /* 明朝の見出し。静的英語版と同じ Zen Old Mincho（--font-display も静的版の名前）。
     使うのはトップの MV の見出しだけ（2026-10-07 ユーザー決定）。Web フォントはトップでだけ読む（functions.php） */
  --font-display:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
}

/* ---------- 2. Reset & Base ---------- */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-stick) + 14px);
  overflow-x: clip;
}

/* 日本語の改行位置を整える3点セット(いずれも未対応ブラウザは無視するだけ)
   line-break:strict      … 禁則を厳格に(小書きかな・長音を行頭に出さない)
   word-break:auto-phrase … ★文節の切れ目で改行する。「お越し／ください。」のような
                            不自然な分断を防ぐ。html lang="ja" が前提。
   text-wrap:pretty       … 最終行に数文字だけ残る「泣き別れ」を抑える */
body {
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--bg);
  line-height: 1.8;
  font-size: clamp(14px, 13.47px + 0.14vw, 15.5px);
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  line-break: strict;
}

p, li, dd, dt, figcaption, blockquote, h1, h2, h3, h4, summary, .c-lede, .p-cat-lead {
  word-break: auto-phrase;
  text-wrap: pretty;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--brand-ink);
  text-decoration: none;
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

ul, ol {
  list-style: none;
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
}

/* CF7 の送信ボタンは <input type="submit">。button と違って上の初期化が当たらず、
   ブラウザ既定の濃い枠と角丸が出ていた。同じ土台に揃える。 */
input[type=submit], input[type=button] {
  font-family: inherit;
  cursor: pointer;
  border: none;
  -webkit-appearance: none;
  appearance: none;
}

input, select, textarea {
  font-family: inherit;
  font-size: 16px;
  color: var(--ink);
}

/* iOS Safari の既定フォーム装飾（角丸・内側の影・グラデのボタン風select）をリセット。
   :where() で詳細度0にして、各部品側の指定を必ず優先させる。
   チェックボックス・ラジオは accent-color で標準表示を活かしているので対象外 */
:where(input:not([type=checkbox], [type=radio], [type=range], [type=file]), textarea, select) {
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

/* appearance:none で消える select の矢印を描き直す。部品側で background を一括指定すると消えるので、
   部品では background-color を使う */
:where(select) {
  padding-right: 2.2em;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238394a2' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.85em center;
  background-size: 0.75em auto;
}

:where(select)::-ms-expand {
  display: none;
}

/* 検索欄の左の虫眼鏡ぶんの余白 */
:where(input[type=search])::-webkit-search-decoration {
  -webkit-appearance: none;
}

/* 日付・時刻欄は iOS で中央寄せになり、空のとき高さが潰れる */
:where(input[type=date], input[type=time], input[type=datetime-local], input[type=month])::-webkit-date-and-time-value {
  min-height: 1.5em;
  text-align: left;
}

/* 未選択の select は、入力欄のプレースホルダーと同じ薄さで見せる
   （選択肢のうち value が空のものが選ばれている＝まだ選んでいない状態） */
:where(select):has(option[value=""]:checked) {
  color: var(--ink-3);
}

:where(select):has(option[value=""]:checked) option {
  color: var(--ink);
}

/* iOS は無効化した欄の文字を極端に薄くする */
:where(input, textarea, select):disabled {
  opacity: 1;
  -webkit-text-fill-color: currentColor;
}

:focus-visible {
  outline: 3px solid var(--brand);
  outline-offset: 2px;
  border-radius: 6px;
}

h1, h2, h3, h4 {
  line-height: 1.45;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.c-ico {
  width: 1.15em;
  height: 1.15em;
  display: inline-block;
  vertical-align: -0.18em;
  fill: none;
  flex-shrink: 0;
}
.c-ico--fill {
  fill: currentColor;
}

.l-container {
  max-width: var(--w-wide);
  margin-inline: auto;
  padding-inline: clamp(14px, 11.18px + 0.75vw, 22px);
}
.l-container--main {
  max-width: var(--w-main);
}
.l-container--narrow {
  max-width: var(--w-narrow);
}

.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html {
    scroll-behavior: auto;
  }
}
body.is-locked {
  overflow: hidden;
}

/* ---------- 3. Header ---------- */
/* ドロワー展開中は背後のスクロールを止める。
   body だけだとPCの常時表示スクロールバーが残るため html にも掛ける。
   消えたぶんの幅は main.js が body の padding-right で補う。 */
html.is-nav-locked,
html.is-nav-locked body {
  overflow: hidden;
  overscroll-behavior: none;
}

.l-site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}

.l-utility-bar {
  border-bottom: 1px solid var(--line-2);
  font-size: 12px;
  color: var(--ink-3);
  /* 下段(.l-header-main)と同じ幅・同じ左右余白にして、文字の始まりを縦に揃える */
}
.l-utility-bar__inner {
  max-width: var(--w-header);
  margin-inline: auto;
  padding: 5px clamp(19px, 14.42px + 1.22vw, 32px);
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}
.l-utility-bar__note {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  color: var(--ink-3);
}
.l-utility-bar__note .c-ico {
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.l-utility-bar__right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}
.l-utility-bar .l-utility-bar__link {
  color: var(--ink-3);
}
@media (hover: hover) {
  .l-utility-bar .l-utility-bar__link:hover {
    color: var(--brand-ink);
  }
}

.p-lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 3px clamp(9px, 7.94px + 0.28vw, 12px);
  color: var(--ink-2);
  font-family: var(--font-en);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.05em;
}
@media (hover: hover) {
  .p-lang-switch:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}
.p-lang-switch .c-ico {
  width: 13px;
  height: 13px;
}

@media screen and (max-width: 620px) {
  /* SPはヘッダーの上下余白を40%詰める。トグル(33px)に対して
     70px だと上下18.5pxずつ空き、間延びして見えた）。
     33px + 11.1px*2 ≒ 55px。--header-stick も参照なので追従する */
  :root {
    --header-h:55px;
  }
  /* SPではユーティリティバーの中身が全部 display:none になり、
     空の帯だけが17px残っていた */
  .l-utility-bar {
    display: none;
  }
  .l-utility-bar__inner {
    gap: clamp(8px, 2.34px + 1.51vw, 12px);
    font-size: 11px;
    padding: 5px clamp(10px, 1.51px + 2.26vw, 16px);
  }
  .l-utility-bar__note {
    display: none;
  }
  .l-utility-bar__right {
    gap: clamp(8px, 2.34px + 1.51vw, 12px);
    margin-left: auto;
  }
  .l-utility-bar__right .l-utility-bar__link:not(.p-lang-switch) {
    display: none;
  }
}
/* ヘッダーだけ他より広く取る。ロゴ(左)・ナビ(中央)・CTA(右)の3点で左右対称に見せる */
/* 3カラムのグリッド(1fr / ナビ / 1fr)。左右のスロット幅が同じになるので、
   ロゴとCTAの横幅が違ってもナビが画面のちょうど中央に来る。
   ドロワーになる1080px以下では通常のflexに戻す(下部のメディアクエリ)。 */
.l-header-main {
  max-width: var(--w-header);
  margin-inline: auto;
  padding: 0 clamp(19px, 14.42px + 1.22vw, 32px);
  height: var(--header-h);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(16px, 12.48px + 0.94vw, 26px);
}

.p-site-logo {
  display: block;
  flex-shrink: 0;
}
.p-site-logo .p-site-logo__img {
  height: clamp(22px, 19.18px + 0.75vw, 30px);
  width: auto;
}
.p-site-logo {
  justify-self: start;
}

.l-global-nav {
  justify-self: center;
}
.l-global-nav__head {
  display: none; /* スマホのドロワーでのみ使う（SP指定は mq-down(xxl) 内） */
}

.l-header-cta {
  justify-self: end;
}

.l-global-nav > .l-global-nav__list {
  display: flex;
  align-items: center;
  gap: 2px;
}
.l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link {
  display: flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(9px, 7.59px + 0.38vw, 13px);
  color: var(--ink);
  font-weight: 600;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  white-space: nowrap;
}
.l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link .c-ico {
  width: 17px;
  height: 17px;
  color: var(--brand);
}
@media (hover: hover) {
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}

.l-nav-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 50%;
  translate: -50% 0;
  min-width: clamp(165px, 140px + 6.67vw, 236px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: clamp(10px, 8.59px + 0.38vw, 14px);
  box-shadow: var(--sh);
  padding: clamp(5px, 3.94px + 0.28vw, 8px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  /* 閉じるときだけ猶予を持たせる。ポインタが少し外れただけで消えると押せない */
  transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
  transition-delay: 0.22s;
  /* トリガーとパネルの間の6pxを埋める当たり判定。
     ここが空いていると、リンクからパネルへマウスを動かす途中で li:hover が切れて閉じる。
     パネルは li の子なので、この帯に乗っている間は li:hover が続く。 */
}
.l-nav-dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -7px;
  height: 7px;
}

/* 下層メニューの開閉は機能なので hover ガードの例外。
   (hover: hover) で包むと、幅1081px以上のタッチ端末（iPad横向き）では親リンクの1タップ目で遷移して下層に届かない */
.l-global-nav__list-item:hover > .l-nav-dropdown, .l-global-nav__list-item:focus-within > .l-nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}

.l-nav-dropdown .l-nav-dropdown__link {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  padding: clamp(8px, 6.94px + 0.28vw, 11px) clamp(9px, 7.59px + 0.38vw, 13px);
  border-radius: 9px;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  font-weight: 500;
}
@media (hover: hover) {
  .l-nav-dropdown .l-nav-dropdown__link:hover {
    background: var(--bg-2);
    color: var(--brand-ink);
  }
}

/* 項目が多いドロップダウンは2列（Tours: エリア別／種類別）。静的英語版の nav-drop--groups と同じ構成 */
.l-nav-dropdown--groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(12px, 9.89px + 0.56vw, 18px);
  min-width: clamp(380px, 344.79px + 9.39vw, 480px);
  padding: clamp(10px, 8.59px + 0.38vw, 14px);
}

.l-nav-dropdown__group {
  min-width: 0;
}
.l-nav-dropdown__group + .l-nav-dropdown__group {
  padding-left: clamp(11px, 9.24px + 0.47vw, 16px);
  border-left: 1px solid var(--line);
}

.l-nav-dropdown__label {
  display: block;
  padding: 0.25rem clamp(9px, 7.59px + 0.38vw, 13px) 0.5rem;
  font-size: clamp(10px, 9.47px + 0.14vw, 11.5px);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--ink-3);
}

.l-nav-dropdown .l-nav-dropdown__all {
  margin-top: 0.375rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
  border-radius: 0 0 9px 9px;
  font-weight: 700;
  color: var(--brand-ink);
}
.l-nav-dropdown .l-nav-dropdown__all .c-ico {
  width: 0.875rem;
  height: 0.875rem;
}

.l-header-cta {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  background: var(--accent);
  color: #fff;
  font-weight: 700;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  padding: clamp(6px, 4.59px + 0.38vw, 10px) clamp(12px, 9.18px + 0.75vw, 20px);
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(240, 89, 42, 0.3);
  white-space: nowrap;
}
.l-header-cta .c-ico {
  width: 16px;
  height: 16px;
}
@media (hover: hover) {
  .l-header-cta:hover {
    background: var(--accent-ink);
  }
}
.l-header-cta--drawer {
  display: none;
}

.l-nav-toggle {
  display: none;
  width: clamp(33px, 29.13px + 1.03vw, 44px);
  height: clamp(33px, 29.13px + 1.03vw, 44px);
  align-items: center;
  justify-content: center;
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  color: var(--ink);
  margin-left: auto;
}
.l-nav-toggle .c-ico {
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: clamp(20px, 17.89px + 0.56vw, 26px);
}
.l-nav-toggle .c-ico-close {
  display: none;
}
.l-nav-toggle[aria-expanded=true] .c-ico-menu {
  display: none;
}
.l-nav-toggle[aria-expanded=true] .c-ico-close {
  display: block;
}

@media screen and (max-width: 1080px) {
  /* ドロワー時はナビが position:fixed で流れから外れるため、グリッドをやめて左右2点に */
  .l-header-main {
    display: flex;
    justify-content: space-between;
  }
  /* 画面全体を覆わない右側ドロワー(最大360px/画面の84%)。背後は暗転オーバーレイでコンテキストを保つ */
  .l-global-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    width: min(84%, 360px);
    background: #fff;
    /* 上の余白はドロワー内ヘッダー(.l-global-nav__head)が持つので0にする */
    padding: 0 clamp(14px, 9.74px + 1.13vw, 22px) clamp(26px, 18.55px + 1.99vw, 40px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.32s ease;
    z-index: 999;
    box-shadow: -16px 0 48px rgba(8, 24, 40, 0.22);
  }
  .l-global-nav.is-open {
    transform: none;
  }
  /* ---- 暗転の幕 ----
     ドロワー .l-global-nav は .l-site-header の**子**。
     `position:sticky` は z-index の値に関わらず必ずスタッキングコンテキストを作るので、
     ヘッダーの外(body::after)に幕を置くと、幕とドロワーは別コンテキストになり
     **ドロワーを必ず覆ってしまう**（ヘッダーのz-indexを下げても同じ）。
     そこで幕をヘッダーの内側(.l-header-main::after)に移し、
     ドロワー(999)より小さいz-indexにする。ヘッダー自体は最前面(1000)のままなので、
     幕はページ全体とティッカー(999)まで覆い、ドロワーだけが幕の上に残る。 */
  body.nav-open .l-header-main::after {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(8, 22, 36, 0.45);
    z-index: 1;
  }
  .l-global-nav > .l-global-nav__list {
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item {
    border-bottom: 1px solid var(--line);
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link {
    justify-content: flex-start;
    padding: clamp(10px, 7.34px + 0.71vw, 15px) clamp(4px, 2.94px + 0.28vw, 6px);
    font-size: clamp(14px, 12.94px + 0.28vw, 16px);
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link .c-ico {
    width: 19px;
    height: 19px;
  }
  .l-nav-dropdown {
    position: static;
    translate: none;
    opacity: 1;
    visibility: visible;
    transform: none;
    background: none;
    border: none;
    box-shadow: none;
    padding: 0 0 clamp(6px, 3.87px + 0.57vw, 10px) clamp(18px, 13.21px + 1.28vw, 27px);
  }
  .l-nav-dropdown .l-nav-dropdown__link {
    padding: clamp(5px, 3.94px + 0.28vw, 7px) clamp(6px, 3.87px + 0.57vw, 10px);
    font-size: clamp(11px, 9.67px + 0.35vw, 13.5px);
  }
  .l-nav-dropdown {
    /* ドロワーでは2列にしない（縦に積む） */
  }
  .l-nav-dropdown.l-nav-dropdown--groups {
    min-width: 0;
  }
  .l-nav-dropdown .l-nav-dropdown__group + .l-nav-dropdown__group {
    padding-left: 0;
    border-left: none;
  }
  .l-nav-toggle {
    display: flex;
    position: relative;
    z-index: 1001;
  }
  /* ---- ドロワー上部のヘッダー ----
     開いている間はサイトヘッダー(z-index:1000)を幕(998)より下げ、
     閉じるボタンはドロワー内に持たせる（ハンバーガーの×がドロワー1行目に重ならないように）。 */
  body.nav-open .l-nav-toggle {
    visibility: hidden; /* ドロワー内の×を使う。レイアウトは保つ */
  }
  .l-global-nav__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(8px, 5.87px + 0.57vw, 12px);
    position: sticky;
    top: 0;
    z-index: 2;
    margin: 0 calc(-1 * clamp(14px, 9.74px + 1.13vw, 22px)) clamp(6px, 3.87px + 0.57vw, 10px);
    padding: clamp(12px, 8.81px + 0.85vw, 18px) clamp(14px, 9.74px + 1.13vw, 22px);
    background: #fff;
    border-bottom: 1px solid var(--line);
  }
  .l-global-nav__head-title {
    font-size: clamp(13px, 11.94px + 0.28vw, 15px);
    font-weight: 800;
    color: var(--ink);
    letter-spacing: 0.04em;
  }
  .l-global-nav__close {
    display: grid;
    place-items: center;
    width: clamp(36px, 32.81px + 0.85vw, 42px);
    height: clamp(36px, 32.81px + 0.85vw, 42px);
    margin-right: calc(-1 * clamp(4px, 2.94px + 0.28vw, 6px));
    border: 0;
    border-radius: 999px;
    background: var(--bg-2);
    color: var(--ink);
    cursor: pointer;
  }
  .l-global-nav__close .c-ico {
    display: block;
    width: clamp(18px, 16.4px + 0.43vw, 21px);
    height: clamp(18px, 16.4px + 0.43vw, 21px);
  }
  .l-header-cta {
    display: none;
  }
  .l-header-cta--drawer {
    display: flex;
    justify-content: center;
    width: 100%; /* 下のEnglishボタンと幅を揃える */
    margin-top: clamp(14px, 9.74px + 1.13vw, 22px);
    font-size: clamp(13px, 11.94px + 0.28vw, 15px);
    padding: clamp(9px, 6.34px + 0.71vw, 14px);
  }
}
/* ============================================================
   80. ヘッダーの可変レイアウト
       ナビが8項目(航空券/鉄道・交通の分割)になり、ノートPC幅
       (1280〜1440px)で右上CTAが画面外へ押し出されていた不具合の修正。
       ドロワー化する1080pxまでの間を2段階で詰める。
       ・1500px以下: ナビのアイコンを隠す(1項目あたり約23px×8=184px節約)
       ・1300px以下: 文字と余白をさらに詰め、CTAをコンパクト表示に
       ロゴ・CTAは潰さない(flex-shrink:0)ので、詰めるのはナビ側だけ。
   ============================================================ */
@media screen and (min-width: 1081px) and (max-width: 1500px) {
  /* 上下段でインナーの左右余白を揃える(片方だけ詰めると文字の始まりがずれる) */
  .l-header-main {
    gap: 16px;
    padding: 0 18px;
  }
  .l-utility-bar__inner {
    padding: 5px 18px;
  }
  .p-news-ticker__inner {
    padding: 0 18px;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link {
    padding: 9px 10px;
    font-size: 14px;
    gap: 0;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link .c-ico {
    display: none;
  }
  .l-header-cta {
    padding: 10px 18px;
  }
}
@media screen and (min-width: 1081px) and (max-width: 1300px) {
  .l-header-main {
    gap: 10px;
  }
  .l-global-nav > .l-global-nav__list {
    gap: 0;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link {
    padding: 9px 7px;
    font-size: 13.5px;
  }
  .l-header-cta {
    font-size: 13px;
    padding: 9px 14px;
    gap: 5px;
  }
  .l-header-cta .c-ico {
    width: 15px;
    height: 15px;
  }
  .l-header-cta {
    /* 「無料相談・お問い合わせ」→「無料相談」。テキストはCSSだけで差し替える
         (全ページのHTMLを触らずに済むよう、ラベルを擬似要素に持たせている)。
         飛び先は問い合わせフォーム。 */
  }
  .l-header-cta__label {
    font-size: 0;
  }
  .l-header-cta__label::after {
    content: "無料相談";
    font-size: 13px;
  }
}
/* ---------- 12. Breadcrumb ---------- */
.l-breadcrumb {
  padding: clamp(9px, 7.94px + 0.28vw, 12px) 0;
  font-size: 12.5px;
  color: var(--ink-2); /* 白地とのコントラスト比 4.5 以上 */
  border-bottom: 1px solid var(--line-2);
}
.l-breadcrumb .l-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  max-width: var(--w-wide);
  margin-inline: auto;
  padding-inline: clamp(14px, 11.18px + 0.75vw, 22px);
}
@media screen and (max-width: 760px) {
  .l-breadcrumb .l-breadcrumb__list {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
}
.l-breadcrumb .l-breadcrumb__list::-webkit-scrollbar {
  display: none;
}
.l-breadcrumb .l-breadcrumb__item {
  display: flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}
@media screen and (max-width: 760px) {
  .l-breadcrumb .l-breadcrumb__item {
    flex-shrink: 0;
    white-space: nowrap;
  }
}
.l-breadcrumb .l-breadcrumb__item + .l-breadcrumb__item::before {
  flex-shrink: 0;
}
.l-breadcrumb .l-breadcrumb__item + .l-breadcrumb__item::before {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.4;
}
.l-breadcrumb .l-breadcrumb__link {
  color: var(--ink-2); /* 白地とのコントラスト比 4.5 以上 */
}
@media (hover: hover) {
  .l-breadcrumb .l-breadcrumb__link:hover {
    color: var(--brand-ink);
  }
}

/* ---------- 19. Sidebar ---------- */
.l-layout-2col {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 316px;
  gap: clamp(26px, 19.66px + 1.69vw, 44px);
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: 0 clamp(13px, 9.83px + 0.85vw, 22px);
}

/* ★モバイルも minmax(0,1fr) にすること。素の 1fr だと「中身の最小幅より縮まない」ため、
   min-width:520px の表を含む記事で列が画面幅を超えて右が見切れる */
@media screen and (max-width: 1000px) {
  .l-layout-2col {
    grid-template-columns: minmax(0, 1fr);
  }
}
.l-sidebar {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 13.77px + 1.13vw, 30px);
}

.p-side-widget__title {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 700;
  color: var(--ink);
  padding-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
  border-bottom: 2px solid var(--line);
}
.p-side-widget__title .c-ico {
  width: 17px;
  height: 17px;
  color: var(--brand);
}
.p-side-widget__title .en {
  font-family: var(--font-en);
  font-size: 10px;
  color: var(--ink-3);
  letter-spacing: 0.12em;
  margin-left: auto;
  font-weight: 600;
}

.p-side-cats .p-side-cats__children {
  padding-left: 14px;
}
.p-side-cats .p-side-cats__link {
  padding: 6px 4px;
  display: inline-block;
}
.p-side-cats .p-side-cats__item {
  border-bottom: 1px solid var(--line-2);
}
.p-side-cats .p-side-cats__link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: clamp(7px, 5.59px + 0.38vw, 11px) 4px;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
}
@media (hover: hover) {
  .p-side-cats .p-side-cats__link:hover {
    color: var(--brand-ink);
  }
}
.p-side-cats .n {
  color: var(--ink-3);
  font-family: var(--font-en);
  font-size: 12px;
  background: var(--bg-2);
  padding: 1px clamp(6px, 4.94px + 0.28vw, 9px);
  border-radius: 999px;
}
.p-side-cats {
  /* サポート一覧を自社/提携でグループ分けする小見出し(リンクではないので下線なし) */
}
.p-side-cats__label {
  border-bottom: none !important;
  padding: clamp(10px, 7.89px + 0.56vw, 16px) 4px 4px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--ink-3);
}
.p-side-cats__label:first-child {
  padding-top: 0;
}

/* おすすめピックアップ(バナー + 名前 + 料金) */
.p-side-pickup {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 9.89px + 0.56vw, 18px);
}
.p-side-pickup__link {
  display: block;
  color: var(--ink);
}
.p-side-pickup__img {
  display: block;
  aspect-ratio: 3/2;
  border-radius: var(--r-sm);
  overflow: hidden;
}
.p-side-pickup__img .p-side-pickup__img-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-side-pickup__title {
  display: block;
  margin-top: clamp(7px, 5.94px + 0.28vw, 10px);
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 600;
  line-height: 1.7;
}
.p-side-pickup {
  /* 説明文（「はじめての日本」カードだけが持つ） */
}
.p-side-pickup__text {
  display: block;
  margin-top: 2px;
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  line-height: 1.7;
  color: var(--ink-2);
}
.p-side-pickup__price {
  display: block;
  margin-top: 2px;
  font-family: var(--font-en);
  font-weight: 700;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  color: var(--accent);
}
@media (hover: hover) {
  .p-side-pickup__link:hover .p-side-pickup__title {
    color: var(--brand-ink);
  }
}

/* 背景は薄い紺 */
.p-side-cta {
  background: #e9eff5;
  border-radius: var(--r);
  padding: clamp(14px, 10.48px + 0.94vw, 24px) clamp(13px, 9.83px + 0.85vw, 22px);
  text-align: center;
  color: var(--navy);
}
.p-side-cta .p-side-cta__title {
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 700;
  margin-bottom: 5px;
}
.p-side-cta .p-side-cta__sub {
  font-size: 12px;
  color: var(--ink-2);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}

/* ---------- 24. Footer ---------- */
.l-site-footer {
  background: var(--navy);
  color: #a8c2d6;
  margin-top: 0;
}

.p-footer-cta {
  background: linear-gradient(120deg, var(--brand-ink), var(--brand));
  padding: clamp(31px, 23.61px + 1.97vw, 52px) clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-footer-cta .p-footer-cta__text {
  margin-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
}

/* 認証バッジ帯だけ白地にする。ロゴが白カードなので濃紺の上では
   カードの縁が浮いていた。白地にすると縁が消えてロゴだけが見える。
   CTA帯とフッターの間に白が挟まるので、両者の境目も自然に切れる。 */
.p-footer-trust {
  background: var(--bg);
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-footer-trust__inner {
  max-width: var(--w-wide);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  flex-wrap: wrap;
}
.p-footer-trust__inner .p-footer-trust__inner-img {
  height: clamp(36px, 30.37px + 1.5vw, 52px);
  width: auto;
  border-radius: 6px;
}
.p-footer-trust__note {
  width: 100%;
  text-align: center;
  font-size: 11.5px;
  color: var(--ink-3);
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
}

.p-footer-grid {
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: clamp(29px, 22.31px + 1.78vw, 48px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(22px, 17.07px + 1.31vw, 36px);
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: clamp(23px, 17.72px + 1.41vw, 38px);
}
.p-footer-grid .p-footer-grid__heading {
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.1em;
  margin-bottom: clamp(9px, 6.89px + 0.56vw, 15px);
  font-family: var(--font-en);
  text-transform: uppercase;
  font-weight: 600;
}
.p-footer-grid .p-footer-grid__list .p-footer-grid__item {
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-footer-grid .p-footer-grid__link {
  color: #a8c2d6;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
}
@media (hover: hover) {
  .p-footer-grid .p-footer-grid__link:hover {
    color: #fff;
  }
}

.p-footer-logo {
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
}
.p-footer-logo .p-footer-logo__img {
  height: clamp(20px, 17.89px + 0.56vw, 26px);
  width: auto;
  filter: brightness(0) invert(1);
}

.p-footer-about {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.9;
  margin-bottom: clamp(11px, 8.54px + 0.66vw, 18px);
}

.p-footer-office {
  font-size: 12.5px;
  line-height: 1.85;
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  font-style: normal;
  /* 電話番号を行の途中で割らない */
}
.p-footer-office__tel {
  white-space: nowrap;
}
.p-footer-office .p-footer-office__strong, .p-footer-office__strong {
  font-weight: 700;
  color: #fff;
  display: block;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
}

.p-footer-clocks {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: 12.5px;
  color: #a8c2d6;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(9px, 6.89px + 0.56vw, 15px);
  margin-top: 4px;
}
.p-footer-clocks .c-ico {
  width: 15px;
  height: 15px;
  /* 紺地の上でブランド青は沈んで見えたので白にする */
  color: #fff;
}
.p-footer-clocks__item {
  white-space: nowrap;
}
.p-footer-clocks {
  /* 1行に収まらない幅では塊ごとに折り返す。丸い帯だと2行で角が欠けるので角丸を小さくする */
}
@media screen and (max-width: 620px) {
  .p-footer-clocks {
    flex-wrap: wrap;
    row-gap: 2px;
    border-radius: 0.875rem;
  }
}
.p-footer-clocks .p-footer-clocks__strong, .p-footer-clocks__strong {
  color: #fff;
  font-family: var(--font-en);
  font-weight: 600;
  letter-spacing: 0.03em;
}

.p-sns-list {
  display: flex;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-sns-list .p-sns-list__link {
  width: clamp(28px, 24.48px + 0.94vw, 38px);
  height: clamp(28px, 24.48px + 0.94vw, 38px);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  display: grid;
  place-items: center;
  color: #cde0ee;
}
.p-sns-list .p-sns-list__link .c-ico {
  width: 19px;
  height: 19px;
}
@media (hover: hover) {
  .p-sns-list .p-sns-list__link:hover {
    background: var(--brand);
    color: #fff;
  }
}

.p-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px);
  text-align: center;
  font-size: 12px;
  color: #7f9bb0;
}
.p-footer-bottom .p-legal-links {
  display: flex;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-footer-bottom .p-legal-links .p-legal-links__link {
  color: #a8c2d6;
  font-size: 12px;
}
@media (hover: hover) {
  .p-footer-bottom .p-legal-links .p-legal-links__link:hover {
    color: #fff;
  }
}

@media screen and (max-width: 860px) {
  .p-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: clamp(20px, 12.27px + 2.06vw, 30px);
  }
}
@media screen and (max-width: 520px) {
  .p-footer-grid {
    grid-template-columns: 1fr;
  }
  .p-footer-trust__inner .p-footer-trust__inner-img {
    height: clamp(33px, 4.55px + 7.59vw, 44px);
  }
}
/* ============================================================
   98. スマホのドロワーをアコーディオン化
       ・各項目の右に ＋/− ボタンを置き、押すと下層が開く
       ・「ツアーを探す」だけ初期状態で開く(main.jsが付与)
       ・下層を持たない項目(ホテル予約など)にはボタンを出さない
       PCのホバー展開には一切影響させない(1081px以上ではボタンごと非表示)
   ============================================================ */
.l-nav-acc {
  display: none;
}

.l-nav-drawer-only {
  display: none;
}

/* PCはユーティリティバーにあるので出さない */
@media screen and (max-width: 1080px) {
  .l-nav-drawer-only {
    display: block;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item {
    position: relative;
  }
  .l-global-nav {
    /* 見出し行: リンク本体とトグルを横に並べる */
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item.has-sub > .l-global-nav__link {
    padding-right: clamp(34px, 24.43px + 2.55vw, 52px);
  }
  .l-nav-acc {
    display: grid;
    place-items: center;
    position: absolute;
    top: 4px;
    right: 0;
    width: clamp(33px, 27.15px + 1.56vw, 44px);
    height: clamp(33px, 27.15px + 1.56vw, 44px);
    border: none;
    background: none;
    cursor: pointer;
    color: var(--ink-3);
    border-radius: clamp(8px, 6.94px + 0.28vw, 10px);
    /* ＋/− は擬似要素で描く(アイコン追加なしで「開ける」ことが伝わる) */
  }
}
@media screen and (max-width: 1080px) and (hover: hover) {
  .l-nav-acc:hover {
    background: var(--bg-2);
    color: var(--brand-ink);
  }
}
@media screen and (max-width: 1080px) {
  .l-nav-acc::before, .l-nav-acc::after {
    content: "";
    position: absolute;
    background: currentColor;
    border-radius: 2px;
    transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .l-nav-acc::before {
    width: 13px;
    height: 2px;
  }
  .l-nav-acc::after {
    width: 2px;
    height: 13px;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item.is-open > .l-nav-acc {
    color: var(--brand);
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item.is-open > .l-nav-acc::after {
    transform: rotate(90deg);
    opacity: 0;
  }
  .l-global-nav {
    /* 下層は既定でたたむ。
         ★grid-template-rows:0fr→1fr の畳み方は「子が1つ」のときだけ効く。
           ここは下層リンクが複数の直接子なので使えない(2行目以降が自動高さで残る)。
           ナビは確実さ優先で display の出し分けにする */
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item.has-sub > .l-nav-dropdown {
    display: none;
    padding: 0 0 clamp(6px, 3.87px + 0.57vw, 10px) clamp(18px, 13.21px + 1.28vw, 27px);
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item.is-open > .l-nav-dropdown {
    display: block;
  }
}
/* ============================================================
   インラインstyle由来のページ固有指定
   ・機械命名(`__section-1604cd`)は静的HTMLの style="" をクラス化したもの。
     該当ページをWP化するときに意味のある名前へ改名してこのブロックから出す
   ・詳細度3重ね(.x.x.x)はインライン時代の優先度の再現。新規で真似しない
   ============================================================ */
.p-side-cats__item .p-side-cats__link[aria-current=page] {
  color: var(--brand-ink);
  font-weight: 700;
}

/* ---------- 4. Buttons ---------- */
/* 縦の余白はピル型の見え方を決めるので、変えるときは全バリアントを揃えて動かす。 */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-weight: 700;
  border-radius: 999px;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  text-align: center;
  line-height: 1.3;
  /* 文字数が少ないボタン（「相談する」「検索」等）が痩せて見えないよう最下限を持たせる。
     min() で 100% を上限にして、狭いカラムやSPで親をはみ出さないようにする。 */
  min-width: min(100%, clamp(150px, 135.92px + 3.76vw, 190px));
}
.c-btn .c-ico {
  width: 1.1em;
  height: 1.1em;
}
.c-btn--primary {
  background: var(--accent);
  color: #fff;
  padding: clamp(13px, 10.54px + 0.66vw, 20px) clamp(18px, 13.77px + 1.13vw, 30px);
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  box-shadow: 0 6px 18px rgba(240, 89, 42, 0.28);
}
@media (hover: hover) {
  .c-btn--primary:hover {
    background: var(--accent-ink);
    color: #fff;
  }
}
.c-btn--brand {
  background: var(--brand);
  color: #fff;
  padding: clamp(13px, 10.54px + 0.66vw, 20px) clamp(18px, 13.77px + 1.13vw, 30px);
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  box-shadow: 0 6px 18px rgba(10, 158, 203, 0.26);
}
@media (hover: hover) {
  .c-btn--brand:hover {
    background: var(--brand-ink);
    color: #fff;
  }
}
.c-btn {
  /* ---- 明るいアクセント2色 ----
     文字は白。面が明るいのでコントラストは
     水色 1.93:1 / 黄色 1.79:1 で WCAG AA(4.5:1) を満たさない。
     本文リンクや主要CTAではなく、面積の大きい帯やバッジ用途で使うこと。 */
  /* ボタンとして使う水色は面を沈める。--sky(#5cc8ea) のままだと白文字が 1.93:1 で読めない */
}
.c-btn--sky {
  background: var(--sky-deep);
  color: #fff;
  padding: clamp(13px, 10.54px + 0.66vw, 20px) clamp(18px, 13.77px + 1.13vw, 30px);
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  box-shadow: 0 6px 18px rgba(92, 200, 234, 0.32);
}
@media (hover: hover) {
  .c-btn--sky:hover {
    background: var(--sky-deepest);
    color: #fff;
  }
}
.c-btn {
  /* 黄は白文字だと 1.79:1。面を暗くすると茶色になるので、文字側を --ink にして読ませる */
}
.c-btn--gold {
  background: var(--gold);
  color: var(--ink);
  padding: clamp(13px, 10.54px + 0.66vw, 20px) clamp(18px, 13.77px + 1.13vw, 30px);
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  box-shadow: 0 6px 18px rgba(246, 183, 60, 0.34);
}
@media (hover: hover) {
  .c-btn--gold:hover {
    background: var(--gold-ink);
    color: var(--ink);
  }
}
.c-btn--secondary {
  background: #fff;
  color: var(--ink);
  padding: clamp(12px, 9.54px + 0.66vw, 19px) clamp(17px, 13.13px + 1.03vw, 28px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  /* 枠は --line(#e7edf2) だと bg-2 の上で輪郭が消える。
     UI部品の境界に必要な 3:1 を満たす濃さ(ink 55%相当 = 3.28:1)まで落とす */
  border: 2px solid rgba(21, 36, 47, 0.55);
  box-shadow: var(--sh-xs);
}
@media (hover: hover) {
  .c-btn--secondary:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}
.c-btn--ghost-white {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  padding: clamp(12px, 9.54px + 0.66vw, 19px) clamp(17px, 13.13px + 1.03vw, 28px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  border: 2px solid rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(4px);
}
@media (hover: hover) {
  .c-btn--ghost-white:hover {
    background: #fff;
    color: var(--ink);
  }
}
.c-btn--line {
  background: var(--line-green);
  color: #fff;
  padding: clamp(12px, 9.54px + 0.66vw, 19px) clamp(17px, 13.13px + 1.03vw, 28px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  box-shadow: 0 6px 18px rgba(6, 199, 85, 0.26);
}
@media (hover: hover) {
  .c-btn--line:hover {
    background: #05a648;
    color: #fff;
  }
}
.c-btn--small {
  padding: clamp(8px, 6.59px + 0.38vw, 12px) clamp(11px, 8.54px + 0.66vw, 18px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  min-width: min(100%, clamp(96px, 87.55px + 2.25vw, 120px));
}
.c-btn .c-arrow {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .c-btn:hover .c-arrow {
    transform: translateX(3px);
  }
}

/* 本文中のボタン（blocks/buttons）。2つ並ぶときだけ間隔を取る。
   段落の中に置くので、行揃えではなく flex で折り返す */
.c-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  margin: clamp(16px, 12.48px + 0.94vw, 26px) 0;
}

/* ============================================================
   ニュースレター登録の入力欄(メール1つ + 登録ボタン)
   フッター(.p-footer-subscribe)とサイドバー(.p-side-subscribe)で共用。
   CF7(tools/seed-cf7-newsletter.php)の出力と、CF7 未設定時の静的フォームの両方がこの構造になる。
   色・大きさは置き場所側(_line-consult.scss)で指定し、ここは並びと入力欄のリセットだけ持つ。
   ============================================================ */
.c-subscribe {
  display: flex;
  align-items: stretch;
  /* label の中に CF7 の .wpcf7-form-control-wrap(span)が入るので、そこまで伸ばして input を幅いっぱいにする */
}
.c-subscribe .c-subscribe__field {
  flex: 1;
  min-width: 0;
  display: flex;
}
.c-subscribe .wpcf7-form-control-wrap {
  flex: 1;
  min-width: 0;
  display: flex;
}
.c-subscribe .c-subscribe__input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: none;
  font: inherit;
}
.c-subscribe .c-subscribe__input:focus {
  outline: none;
}
.c-subscribe .c-subscribe__btn {
  flex: 0 0 auto;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
  font: inherit;
}
.c-subscribe {
  /* 送信中のスピナーは行の外に出さない */
}
.c-subscribe .wpcf7-spinner {
  align-self: center;
  margin: 0 clamp(4px, 3.3px + 0.19vw, 6px);
}

/* ---------- 5. Section & minimal headings ---------- */
.c-section {
  /* セクションの上下。CTA帯など部品側を大きくしたぶん、セクションの余白は詰めて間延びを防ぐ */
  padding: clamp(35px, 5vw, 60px) 0;
}
.c-section--soft {
  background: var(--bg-2);
}
.c-section {
  /* 直前のセクションの下パディングと二重に効くのを避ける。
     地色が同じセクションを続けて置くときだけ使う。 */
}
.c-section--tight-top {
  padding-top: 0;
}
.c-section--brand-soft {
  background: var(--brand-050);
}
.c-section {
  /* 写真を敷いてベタのオーバーレイをかける帯。--navy と併用する。
     グラデーションは使わない方針なのでオーバーレイは単色。画像は背景ではなく
     <img> で入れる（p-footer-cta__bg と同じ。メディアから差し替えられ、遅延読み込みも効く） */
}
.c-section--photo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.c-section--photo .c-section__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  line-height: 0;
}
.c-section--photo .c-section__bg .c-section__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-section--photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(11, 28, 43, 0.82);
}
.c-section {
  /* 水色系のオーバーレイ。--photo と併用する。
     こちらは白カードを浮かせる帯（相談CTA）向けで、オーバーレイの上に
     直接文字を置かないことが前提。文字を直接乗せる面（page-business の
     「選ばれる理由」など）は濃紺のままにしないと白文字が読めなくなる。 */
}
.c-section--photo-sky::after {
  background: rgba(198, 232, 245, 0.88);
}
.c-section--photo-sky {
  background: var(--sky-050);
}
.c-section {
  /* 白系のオーバーレイ（トップの口コミ）。--photo と併用する。
     --photo-sky と同じく白カードを浮かせる帯向けで、見出しは濃い文字のまま読める */
}
.c-section--photo-white::after {
  background: rgba(255, 255, 255, 0.86);
}
.c-section--photo-white {
  background: #fff;
}
.c-section--navy {
  background: var(--navy);
  color: #dceaf3;
}

.c-sec-head {
  margin-bottom: clamp(22px, 3.4vw, 34px);
}
.c-sec-head:has(.c-sec-head__link) {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
}
.c-sec-head__main {
  min-width: 0;
}
.c-sec-head .c-kicker {
  display: block;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-ink); /* 白地とのコントラスト比 4.5 以上（--brand だと 2.9） */
  font-weight: 600;
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.c-sec-head .c-sec-head__heading {
  /* 日本語の折り返し: 文節の切れ目で改行し（「みんなが選んだ人/気ツアー」を防ぐ）、
     行長も揃える。未対応ブラウザは従来どおり任意位置で折り返す */
  word-break: auto-phrase;
  text-wrap: balance;
  font-size: clamp(21px, 3vw, 29px);
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.01em;
  /* 見出しの下に短い水色のバー。鉄道・交通/航空券ページの扱いを全ページに広げた */
  position: relative;
  padding-bottom: clamp(10px, 8.59px + 0.38vw, 14px);
}
.c-sec-head .c-sec-head__heading::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50px;
  height: 3px;
  border-radius: 3px;
  /* 主張しすぎないよう1段薄い水色に（線用のトーン） */
  background: var(--sky-200);
}
.c-sec-head {
  /* 中央寄せの見出しではバーも中央に */
}
.c-sec-head--center .c-sec-head__heading::after {
  left: 50%;
  translate: -50% 0;
}

.c-section--navy .c-sec-head .c-sec-head__heading {
  color: #fff;
}
.c-section {
  /* 紺の面では水色が沈むので、バーだけ白の透過に差し替える */
}
.c-section--navy .c-sec-head .c-sec-head__heading::after {
  background: rgba(255, 255, 255, 0.5);
}

.c-sec-head .c-lede {
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
  color: var(--ink-2);
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  max-width: clamp(448px, 380.39px + 18.03vw, 640px);
}

.c-section--navy .c-lede {
  color: #a8c2d6;
}

.c-sec-head {
  /* 薄いグレー枠のピルは沈んで見えたので、白地＋青枠＋青文字、
     右端に青丸の矢印を入れた形にする */
}
.c-sec-head__link {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 700;
  color: var(--brand-ink); /* 白地とのコントラスト比 4.5 以上 */
  border: 1.5px solid var(--brand);
  background: #fff;
  padding: clamp(6.53px, 5.72px + 0.22vw, 8.83px) clamp(11.7px, 10.47px + 0.33vw, 15.2px) clamp(6.53px, 5.72px + 0.22vw, 8.83px) clamp(20.7px, 17.35px + 0.89vw, 30.2px);
  border-radius: 999px;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-sec-head__link .c-ico {
  flex: 0 0 auto;
  width: clamp(19.36px, 18.12px + 0.33vw, 22.88px);
  height: clamp(19.36px, 18.12px + 0.33vw, 22.88px);
  padding: clamp(5.28px, 4.97px + 0.08vw, 6.16px);
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .c-sec-head__link:hover {
    background: var(--brand);
    color: #fff;
  }
  .c-sec-head__link:hover .c-ico {
    background: #fff;
    color: var(--brand);
    transform: translateX(2px);
  }
}
.c-sec-head--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.c-sec-head--center .c-lede {
  margin-inline: auto;
}

/* SPは1カラムに積み替わるので、セクション見出しは中央ぞろえにする
   （PCの2〜3カラムに対する左起点が、SPでは意味を持たないため） */
@media screen and (max-width: 620px) {
  .c-sec-head {
    text-align: center;
  }
  .c-sec-head .c-sec-head__heading::after {
    left: 50%;
    translate: -50% 0;
  }
  .c-sec-head .c-lede {
    margin-inline: auto;
  }
  .c-sec-head:has(.c-sec-head__link) {
    flex-direction: column;
    align-items: center;
  }
}
.c-sec-more {
  text-align: center;
  margin-top: clamp(20px, 15.07px + 1.31vw, 34px);
  /* SPでセクション末尾に移した「すべて見る」(main.js が包む)。
     見出し横の小さいピルのままだと文字11px・高さ32pxで押しづらいので、
     タップできるボタンの大きさに上げる。 */
  /* 白い枠線のピルだと背景に沈むので、SPは色付きのボタンにする。
     主CTA(相談・予約)の accent と分けるため、一覧への導線は brand(水色)。 */
  /* 内側いっぱい(340px)は大きすぎる。
     見た目は法人バナーの「法人向けサービスを見る」(.p-biz-banner__go) に揃える:
     青のピル・文字14px・右に素の山括弧（丸で囲まない） */
}
.c-sec-more .c-sec-head__link {
  justify-content: center;
  width: auto;
  min-width: 200px;
  max-width: 100%;
  min-height: 0;
  gap: 6px;
  padding: 0.91875rem 1.61875rem;
  font-size: 1.05rem;
  /* 行ボックスが字面より高く、文字が上に寄って見えた。行送りを1に詰めて上下中央に */
  line-height: 1;
  background: var(--brand-ink); /* 白文字 16.8px とのコントラスト比 4.5 以上（--brand だと 2.9） */
  border-color: var(--brand-ink);
  color: #fff;
  box-shadow: 0 6px 18px rgba(10, 158, 203, 0.28);
}
.c-sec-more .c-sec-head__link .c-ico {
  width: 1.1rem;
  height: 1.1rem;
  padding: 0;
  background: transparent;
  color: #fff;
}
@media (hover: hover) {
  .c-sec-more .c-sec-head__link:hover {
    background: var(--brand-ink);
    background: var(--brand-050);
    color: #fff;
  }
}
.c-sec-more {
  /* PC用の「山括弧の丸が白に反転」はSPの素の山括弧には不要 */
}
@media (hover: hover) {
  .c-sec-more .c-sec-head__link:hover .c-ico {
    background: transparent;
    color: #fff;
    transform: none;
  }
}

/* destination card (small square) */
.c-dest-card {
  flex: 0 0 176px;
  scroll-snap-align: start;
  display: block;
  color: var(--ink);
}
.c-dest-card__img {
  position: relative;
  aspect-ratio: 4/3;
  border-radius: var(--r);
  overflow: hidden;
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
}
.c-dest-card__img .c-dest-card__img-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
@media (hover: hover) {
  .c-dest-card:hover .c-dest-card__img .c-dest-card__img-img {
    transform: scale(1.06);
  }
}
.c-dest-card__badge {
  position: absolute;
  top: 9px;
  left: 9px;
  /* ホバーで写真が scale すると、transform が新しい重ね合わせ文脈を作って
     あとに書かれた <img> がバッジの上に来る。z-index で前に固定しておく */
  z-index: 1;
  background: rgba(14, 34, 51, 0.82);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 3px clamp(6px, 4.94px + 0.28vw, 9px);
  border-radius: 999px;
}
.c-dest-card__name {
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 700;
  line-height: 1.4;
}
.c-dest-card__price {
  font-size: 12.5px;
  color: var(--ink-3);
  margin-top: 1px;
}

@media screen and (max-width: 520px) {
  .c-dest-card {
    flex-basis: 150px;
  }
}
/* ---------- 8. Tour cards (grid) ---------- */
.p-tour-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
}

@media screen and (max-width: 860px) {
  .p-tour-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(10px, 5.71px + 1.14vw, 16px);
  }
}
@media screen and (max-width: 620px) {
  .p-tour-grid {
    grid-template-columns: 1fr;
  }
}
.c-tour-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  display: flex;
  flex-direction: column;
  position: relative;
}
.c-tour-card__img {
  position: relative;
  aspect-ratio: 3/2;
  overflow: hidden;
  background: var(--bg-3);
}
.c-tour-card__img .c-tour-card__img-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.c-tour-card__badges {
  position: absolute;
  top: clamp(8px, 6.94px + 0.28vw, 11px);
  left: clamp(8px, 6.94px + 0.28vw, 11px);
  display: flex;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  flex-wrap: wrap;
  z-index: 2;
}

.c-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  padding: 4px clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 999px;
  letter-spacing: 0.02em;
  backdrop-filter: blur(4px);
}
.c-badge .c-ico {
  width: 12px;
  height: 12px;
}
.c-badge--area {
  background: var(--brand-050);
  color: var(--brand-ink);
}
.c-badge--jp {
  background: rgba(14, 34, 51, 0.86);
  color: #fff;
}
.c-badge {
  /* 水色の塗り。日本語サイトでは採用の雇用形態バッジで使っていた */
}
.c-badge--brand {
  background: var(--brand);
  color: #fff;
}
.c-badge--pickup {
  background: var(--accent);
  color: #fff;
}
.c-badge--season {
  background: var(--aurora);
  color: #fff;
}
.c-badge {
  /* 営業案内・重要なお知らせ（ニュース）。注意を引くが警告色ほど強くしない */
}
.c-badge--alert {
  background: var(--gold-ink);
  color: #fff;
}

.c-tour-card__area {
  position: absolute;
  bottom: clamp(7px, 5.94px + 0.28vw, 10px);
  left: clamp(7px, 5.94px + 0.28vw, 10px);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(14, 34, 51, 0.8);
  color: #fff;
  font-size: 11.5px;
  padding: 4px clamp(7px, 5.59px + 0.38vw, 11px);
  border-radius: 999px;
  backdrop-filter: blur(4px);
}
.c-tour-card__area .c-ico {
  width: 12px;
  height: 12px;
}
.c-tour-card__body {
  padding: clamp(9px, 6.89px + 0.56vw, 15px) clamp(10px, 7.54px + 0.66vw, 17px) clamp(10px, 7.54px + 0.66vw, 17px);
  display: flex;
  flex-direction: column;
  flex: 1;
}
.c-tour-card__title {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  line-height: 1.55;
  color: var(--ink);
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
}
.c-tour-card .c-tour-card__link {
  color: inherit;
}
.c-tour-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px clamp(9px, 7.59px + 0.38vw, 13px);
  font-size: 12px;
  color: var(--ink-3);
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
}
.c-tour-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.c-tour-card__meta .c-ico {
  width: 13px;
  height: 13px;
  color: var(--ink-3);
}
.c-tour-card__foot {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding-top: clamp(9px, 7.94px + 0.28vw, 12px);
  border-top: 1px solid var(--line-2);
}

.c-stars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: var(--gold);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  /* 平均点の数字。星は金のまま、数字だけ紺・太字で 1.2 倍 */
}
.c-stars__score {
  font-family: var(--font-en);
  font-size: clamp(20px, 18.59px + 0.38vw, 24px);
  font-weight: 800;
  color: var(--navy);
  line-height: 1;
}
.c-stars .c-ico {
  width: 14px;
  height: 14px;
}
.c-stars .c-stars__note, .c-stars__note {
  color: var(--ink-3);
  font-size: 11.5px;
  margin-left: 4px;
  font-family: var(--font-en);
}

.p-price {
  text-align: right;
  line-height: 1.25;
}
.p-price__note {
  font-size: 11px;
  color: var(--ink-2); /* 白地とのコントラスト比 4.5 以上（--ink-3 だと 3.2） */
  display: block;
}
.p-price__amount {
  font-family: var(--font-en);
  font-size: clamp(17px, 15.94px + 0.28vw, 20px);
  color: var(--accent);
  font-weight: 700;
}
.p-price__tilde {
  font-style: normal;
  font-size: 12px;
  margin-left: 1px;
  color: var(--ink-3);
}

/* 「お一人様」と金額がくっついて読みにくいので9px空ける。
   カード内だけに限定（予約ボックス・スマホ追従CTAの .p-price は対象外）。
   SP 用の .p-price__note も上書きする詳細度にしてあるのでPC/SP共通で効く。 */
.c-tour-card__foot .p-price__note {
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
}
.c-tour-card {
  /* 英語の「from CA$398 /person」は静的英語版と同じく1行に並べる（金額の下端にそろえる）。
     日本語テーマは「お一人様」を金額の上に積む作りで、英語だと from / 金額 / /person の3段になっていた。
     下の .p-price__note（display:block・余白）を打ち消すので、SP 用の指定より強い詳細度にしてある */
}
.c-tour-card .c-tour-card__foot .p-price {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.3125rem;
  white-space: nowrap;
}
.c-tour-card .c-tour-card__foot .p-price__note {
  display: inline;
  margin-bottom: 0;
}
.c-tour-card {
  /* 星と点数も折り返さない */
}
.c-tour-card .c-tour-card__foot .c-stars {
  flex: 0 0 auto;
  white-space: nowrap;
}
.c-tour-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
}

/* ============================================================
   87. スマホのツアーカード
       NEWTのスマホ一覧に合わせて
       「文字を大きく・情報量を増やす」。今出ている情報は削らない。
       ★767px以下だけ。PCの見た目は変えない。
       要素は tools/normalize-listing-facets.pl が個別ツアーページから
       事実を読んで書き出す(帯 / ○名様から催行 / 含まれるもののタグ)。
   ============================================================ */
/* PCでは出さない。帯はメタに同じ情報があり、
   「○名様から催行」とタグは今回スマホ向けに足したもの。
   PCにも出したくなったら、この3行から外して幅ごとの体裁を足すこと。 */
.c-tour-card__band, .c-tour-card__facts, .c-tour-card__tags {
  display: none;
}

@media screen and (max-width: 760px) {
  /* --- 画像下端の帯: エリア ／ 日数 --- */
  .c-tour-card__band {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: block;
    margin: 0;
    background: var(--brand-ink); /* 白文字とのコントラスト比 4.5 以上 */
    color: #fff;
    font-size: clamp(12px, 10.09px + 0.51vw, 14px);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.02em;
    padding: clamp(6px, 3.13px + 0.77vw, 9px) clamp(9px, 4.22px + 1.28vw, 14px);
    text-align: center;
  }
  .c-tour-card__band-icon {
    font-style: normal;
    font-weight: 400;
    opacity: 0.72;
    margin: 0 0.5em;
  }
  .c-tour-card {
    /* 帯に出したので、画像に浮いていた丸チップと、メタ側の日数は重複。隠す */
  }
  .c-tour-card:has(.c-tour-card__band) .c-tour-card__area {
    display: none;
  }
  .c-tour-card__meta .is-days {
    display: none;
  }
  .c-tour-card {
    /* --- 文字を大きく --- */
  }
  .c-tour-card__body {
    padding: clamp(10px, 5.22px + 1.28vw, 15px) clamp(10px, 4.26px + 1.53vw, 16px) clamp(11px, 5.26px + 1.53vw, 17px);
  }
  .c-tour-card__title {
    font-size: clamp(14px, 11.61px + 0.64vw, 16.5px);
    line-height: 1.6;
    margin-bottom: clamp(6px, 3.13px + 0.77vw, 9px);
  }
  .c-tour-card {
    /* 長いタイトルでカードの高さがバラつくので3行で止める */
  }
  .c-tour-card__title .c-tour-card__link {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .c-tour-card__meta {
    font-size: clamp(11px, 9.09px + 0.51vw, 13px);
    gap: 5px clamp(8px, 3.22px + 1.28vw, 13px);
    margin-bottom: clamp(6px, 3.13px + 0.77vw, 9px);
  }
  .c-tour-card__meta .c-ico {
    width: 14px;
    height: 14px;
  }
  .c-tour-card__badges .c-badge {
    font-size: 12px;
    padding: 5px clamp(6px, 2.17px + 1.02vw, 10px);
  }
  .c-tour-card {
    /* --- ○名様から催行 --- */
  }
  .c-tour-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 4px clamp(8px, 3.22px + 1.28vw, 13px);
    margin: 0 0 clamp(6px, 2.17px + 1.02vw, 10px);
    font-size: clamp(11px, 9.09px + 0.51vw, 13px);
    color: var(--ink-2);
  }
  .c-tour-card__facts-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
  }
  .c-tour-card__facts .c-ico {
    width: 14px;
    height: 14px;
    color: var(--brand);
  }
  .c-tour-card__facts-strong {
    font-weight: 700;
    color: var(--ink);
  }
  .c-tour-card {
    /* --- 含まれるもののタグ --- */
  }
  .c-tour-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0 0 clamp(8px, 4.17px + 1.02vw, 12px);
  }
  .c-tour-card__tags .c-tour-card__tags-item {
    font-size: 11.5px;
    line-height: 1.6;
    padding: 3px clamp(6px, 3.13px + 0.77vw, 9px);
    border-radius: 5px;
    background: var(--brand-050);
    color: var(--brand-ink);
    font-weight: 600;
    white-space: nowrap;
  }
  .c-tour-card {
    /* --- 価格を主役に --- */
  }
  .c-tour-card__foot {
    padding-top: clamp(8px, 3.22px + 1.28vw, 13px);
    align-items: flex-end;
  }
  .c-tour-card__foot .p-price {
    text-align: right;
  }
  .p-price__note {
    display: block;
    font-size: 12px;
    line-height: 1.4;
    margin-bottom: 1px;
  }
  .p-price__amount {
    font-size: clamp(22px, 18.17px + 1.02vw, 26px);
    line-height: 1.15;
    letter-spacing: -0.01em;
  }
  .p-price__tilde {
    font-size: clamp(13px, 11.09px + 0.51vw, 15px);
  }
  /* --- 画像を低くする ---
       NEWTは画像の縦横比が2〜3:1と低く、そのぶん本文の情報が多く入る。
       object-fit:cover なので写真は切れるだけで歪まない。
       ★縦に積む一覧だけ。トップの横スクロール(.p-hswipe)は
         カード幅が270pxと狭く、平たくすると帯状になって見栄えが落ちるので触らない。 */
  .p-tour-grid:not(.p-hswipe) .c-tour-card__img {
    aspect-ratio: 2/1;
    height: auto;
  }
  .p-tour-grid:not(.p-hswipe) .c-tour-card__img > .c-tour-card__img-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}
/* :has() が無いブラウザ向けの保険。帯が出る幅では丸チップを畳む */
@supports not selector(:has(*)) {
  @media screen and (max-width: 760px) {
    .c-tour-card__area {
      display: none;
    }
  }
}
/* ============================================================
   99. ツアーカードの★評価と「行き／帰り」
         ・催行会社は出さない
         ・口コミの★評価はNEWTのように出す
         ・航空券付きツアーは「行き／帰り」の出発時間帯も出す
       ★・行き／帰りはPCでも出す（.c-tour-card__band などと違い
         スマホ限定ではない。情報量として両方で意味があるため）
   ============================================================ */
/* 行き／帰りの出発時間帯。データがあるカード(航空券付き)にだけ入る */
.c-tour-card__flight {
  display: flex;
  flex-wrap: wrap;
  gap: 4px clamp(9px, 7.94px + 0.28vw, 12px);
  margin: 0 0 clamp(7px, 5.59px + 0.38vw, 11px);
  font-size: 12px;
  color: var(--ink-3);
  line-height: 1.5;
}
.c-tour-card__flight-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.c-tour-card__flight .c-ico {
  width: 13px;
  height: 13px;
  color: var(--brand);
}
.c-tour-card__flight-strong {
  font-weight: 700;
  color: var(--ink-2);
}
.c-tour-card {
  /* ★評価。.c-stars の基本形(色・サイズ)は共通の .c-stars を継承する。
     ここでは「カードのフッターで価格と並ぶとき」の詰めだけ調整する。 */
}
.c-tour-card__foot .c-stars {
  gap: 1px;
}
.c-tour-card__foot .c-stars .c-ico {
  width: 13px;
  height: 13px;
}
.c-tour-card__foot .c-stars__note {
  font-weight: 700;
  color: var(--ink-2);
}

@media screen and (max-width: 760px) {
  /* スマホは他の要素と同様に一段大きく */
  .c-tour-card__flight {
    font-size: clamp(11px, 9.09px + 0.51vw, 13px);
    gap: 4px clamp(8px, 3.22px + 1.28vw, 13px);
    margin-bottom: clamp(6px, 2.17px + 1.02vw, 10px);
  }
  .c-tour-card__flight .c-ico {
    width: 14px;
    height: 14px;
  }
  .c-tour-card__foot .c-stars .c-ico {
    width: 15px;
    height: 15px;
  }
  .c-tour-card__foot .c-stars__note {
    font-size: clamp(11px, 9.09px + 0.51vw, 13px);
  }
}
/* ---------- 9. Ranking (proper 1..N) ---------- */
.c-rank-card .c-tour-card__badges {
  left: auto;
  right: clamp(8px, 6.94px + 0.28vw, 11px);
}

/* リボン(ペナント)型 順位バッジ: 下端がV字に切れた旗。カード上部から下げる */
.c-rank-no {
  position: absolute;
  top: 0;
  left: clamp(10px, 8.59px + 0.38vw, 14px);
  z-index: 3;
  width: clamp(28px, 24.83px + 0.85vw, 37px);
  height: clamp(35px, 30.77px + 1.13vw, 47px);
  display: grid;
  place-items: center;
  padding-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  font-family: var(--font-en);
  font-weight: 800;
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  line-height: 1;
  color: #fff;
  background: #7c8894;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 72%, 0 100%);
  filter: drop-shadow(0 3px 5px rgba(8, 24, 40, 0.22));
}
.c-rank-no--1 {
  background: #e2a72f;
}
.c-rank-no--2 {
  background: #bdb6a8;
}
.c-rank-no--3 {
  background: #c17a3c;
}

/* horizontal ranking list (sidebar / compact) */
.c-rank-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.c-rank-list__item {
  display: flex;
  gap: clamp(9px, 7.59px + 0.38vw, 13px);
  align-items: center;
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(5px, 3.94px + 0.28vw, 8px);
  border-radius: clamp(9px, 7.94px + 0.28vw, 12px);
  color: var(--ink);
}
@media (hover: hover) {
  .c-rank-list__item:hover {
    background: var(--bg-2);
  }
}
.c-rank-list__no {
  flex-shrink: 0;
  width: clamp(19px, 16.89px + 0.56vw, 25px);
  height: clamp(24px, 21.18px + 0.75vw, 32px);
  display: grid;
  place-items: center;
  padding-bottom: clamp(5px, 4.3px + 0.19vw, 7px);
  font-family: var(--font-en);
  font-weight: 800;
  font-size: 12.5px;
  color: #fff;
  background: #7c8894;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 72%, 0 100%);
}
.c-rank-list__item:nth-child(1) .c-rank-list__no {
  background: #e2a72f;
}
.c-rank-list__item:nth-child(2) .c-rank-list__no {
  background: #bdb6a8;
}
.c-rank-list__item:nth-child(3) .c-rank-list__no {
  background: #c17a3c;
}
.c-rank-list__thumb {
  flex-shrink: 0;
  width: clamp(46px, 38.96px + 1.88vw, 66px);
  aspect-ratio: 4/3;
  border-radius: 9px;
  overflow: hidden;
}
.c-rank-list__thumb .c-rank-list__thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-rank-list__t {
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  font-weight: 600;
  line-height: 1.75;
}
@media (hover: hover) {
  .c-rank-list__item:hover .c-rank-list__t {
    color: var(--brand-ink);
  }
}

/* ---------- 10. Category / area tiles ---------- */
.c-area-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}

@media screen and (max-width: 860px) {
  .c-area-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.c-area-tile {
  position: relative;
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4/3;
  display: block;
  color: #fff;
}
.c-area-tile .c-area-tile__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
@media (hover: hover) {
  .c-area-tile:hover .c-area-tile__img {
    transform: scale(1.06);
  }
}
.c-area-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 32%, rgba(14, 34, 51, 0.82));
}
.c-area-tile__label {
  position: absolute;
  left: clamp(11px, 9.24px + 0.47vw, 16px);
  bottom: clamp(9px, 7.59px + 0.38vw, 13px);
  z-index: 2;
}
.c-area-tile__label .en {
  display: block;
  font-family: var(--font-en);
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #bfe6f4;
  font-weight: 600;
}
.c-area-tile__label .jp {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 700;
  /* 折り返しは iace_area_name_html() が置く wbr（「・」の後ろ・「（」の前）だけ。1文字落ちを防ぐ */
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.c-area-tile__count {
  position: absolute;
  top: clamp(8px, 6.94px + 0.28vw, 11px);
  right: clamp(8px, 6.94px + 0.28vw, 11px);
  z-index: 2;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 700;
  padding: 3px clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 999px;
}

/* theme cards */
.c-theme-card {
  position: relative;
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 5/4;
  display: block;
  color: #fff;
}
.c-theme-card .c-theme-card__img, .c-theme-card img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-theme-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14, 34, 51, 0.15), rgba(14, 34, 51, 0.78));
}
.c-theme-card__body {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  padding: clamp(10px, 7.89px + 0.56vw, 16px);
}
.c-theme-card__body-item, .c-theme-card__body span {
  font-size: 12px;
  color: #d5e4ef;
  display: block;
  margin-top: 3px;
  line-height: 1.5;
}

/* ---------- 14. Reviews ---------- */
.c-review-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
}

@media screen and (max-width: 860px) {
  .c-review-grid {
    grid-template-columns: 1fr;
    max-width: clamp(392px, 272px + 32vw, 560px);
    margin-inline: auto;
  }
}
/* カードを縦フレックスにして、投稿者ブロックを下端に揃える下地を作る。
   実際に押し下げる margin-top:auto は _form.scss 側。
   _form.scss が .c-review-card__who の margin-top を後から上書きするため、
   ここで auto を書いても効かない。 */
.c-review-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  /* 内側の余白 */
  padding: clamp(18px, 13.77px + 1.13vw, 30px);
  display: flex;
  flex-direction: column;
  /* ツアー個別の4件目以降(展開ボタンで開く)。display:flex が hidden 属性に勝つので明示する */
}
.c-review-card[hidden] {
  display: none;
}
.c-review-card {
  /* 展開直後にフォーカスを移すので、枠線は出さない(見た目上の変化は不要) */
}
.c-review-card:focus {
  outline: none;
}
.c-review-card .c-stars {
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.c-review-card .c-stars .c-ico {
  color: var(--gold);
  width: 15px;
  height: 15px;
}
.c-review-card__text {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  line-height: 1.95;
  color: var(--ink-2);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.c-review-card {
  /* 投稿者ブロックはカードの下端にそろえる（本文の長さが違っても下の帯が並ぶ）。
     カードが display:flex / column なので margin-top:auto で押し下がる。
     アバターは1行目（名前）と上下中央でそろえたいので、grid-row:1 に固定する
     （ツアー名が2行に折り返しても、丸が名前の行から下にずれない） */
}
.c-review-card__who {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: clamp(7px, 5.59px + 0.38vw, 11px);
  row-gap: 0;
  margin-top: auto;
  border-top: 1px solid var(--line-2);
  padding-top: clamp(9px, 7.24px + 0.47vw, 14px);
}
.c-review-card {
  /* 丸は名前の行に乗せる。行の高さまで押し広げないよう、はみ出すぶんを
     負のマージンで相殺する（名前とツアー名の間が空きすぎないように） */
}
.c-review-card__avatar {
  grid-row: 1;
  margin-block: clamp(-6px, -5.3px + -0.19vw, -8px);
}
.c-review-card__name, .c-review-card__tour {
  grid-column: 2;
}
.c-review-card__avatar {
  width: clamp(30px, 26.48px + 0.94vw, 40px);
  height: clamp(30px, 26.48px + 0.94vw, 40px);
  border-radius: 999px;
  background: var(--brand-050);
  display: grid;
  place-items: center;
  font-weight: 700;
  color: var(--brand-ink);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  flex-shrink: 0;
  font-family: var(--font-en);
}
.c-review-card {
  /* 投稿者ブロックの高さを固定して、カード間で罫線の位置を揃える。
     名前は必ず1行、ツアー名は2行分の高さ（1行でも2行分あけ、3行以上は…で省略）。 */
}
.c-review-card__name {
  font-weight: 700;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  display: block;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.c-review-card__tour {
  color: var(--ink-3);
  font-size: 11.5px;
  line-height: 1.5;
  min-height: 3em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---------- 15. FAQ / accordion ---------- */
.p-faq-list {
  display: grid;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}

.p-faq-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.p-faq-item .p-faq-item__summary, .p-faq-item summary {
  display: flex;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  align-items: center;
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(29px, 22.31px + 1.78vw, 48px) clamp(10px, 7.89px + 0.56vw, 16px) clamp(11px, 8.54px + 0.66vw, 18px);
  font-weight: 700;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  cursor: pointer;
  list-style: none;
  position: relative;
  color: var(--ink);
}
.p-faq-item .p-faq-item__summary::-webkit-details-marker, .p-faq-item summary::-webkit-details-marker {
  display: none;
}
.p-faq-item .p-faq-item__summary::before, .p-faq-item summary::before {
  content: "Q";
  flex-shrink: 0;
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: clamp(20px, 17.89px + 0.56vw, 26px);
  border-radius: 8px;
  background: var(--brand);
  color: #fff;
  display: grid;
  place-items: center;
  font-family: var(--font-en);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
}
.p-faq-item .p-faq-item__summary::after, .p-faq-item summary::after {
  content: "";
  position: absolute;
  right: clamp(14px, 11.89px + 0.56vw, 20px);
  top: calc(50% - 5px);
  width: 9px;
  height: 9px;
  border-bottom: 2px solid var(--ink-3);
  border-right: 2px solid var(--ink-3);
  transform: rotate(45deg);
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-faq-item[open] summary::after {
  transform: rotate(-135deg);
  top: calc(50% - 2px);
}
.p-faq-item .p-faq-a {
  display: flex;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  padding: 0 clamp(11px, 8.54px + 0.66vw, 18px) clamp(11px, 8.54px + 0.66vw, 18px) clamp(11px, 8.54px + 0.66vw, 18px);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
}
.p-faq-item .p-faq-a::before {
  content: "A";
  flex-shrink: 0;
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: clamp(20px, 17.89px + 0.56vw, 26px);
  border-radius: 8px;
  background: var(--accent);
  color: #fff;
  display: grid;
  place-items: center;
  font-family: var(--font-en);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
}

/* generic accordion */
.c-accordion {
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
  background: #fff;
}
.c-accordion + .c-accordion {
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
}
.c-accordion > .c-accordion__summary, .c-accordion > summary {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(28px, 21.66px + 1.69vw, 46px) clamp(10px, 7.89px + 0.56vw, 16px) clamp(11px, 8.54px + 0.66vw, 18px);
  font-weight: 700;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  cursor: pointer;
  list-style: none;
  position: relative;
}
.c-accordion > .c-accordion__summary::-webkit-details-marker, .c-accordion > summary::-webkit-details-marker {
  display: none;
}
.c-accordion > summary .c-ico {
  width: 19px;
  height: 19px;
  color: var(--brand);
}
.c-accordion > .c-accordion__summary::after, .c-accordion > summary::after {
  content: "";
  position: absolute;
  right: clamp(14px, 11.89px + 0.56vw, 20px);
  width: 9px;
  height: 9px;
  border-bottom: 2px solid var(--ink-3);
  border-right: 2px solid var(--ink-3);
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-accordion[open] > summary::after {
  transform: translateY(2px) rotate(-135deg);
}
.c-accordion__body {
  padding: 0 clamp(11px, 8.54px + 0.66vw, 18px) clamp(11px, 8.54px + 0.66vw, 18px);
}

/* ---------- 16. Tabs ---------- */
.c-tabs {
  margin: 0;
}
.c-tabs__nav {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  border-bottom: 2px solid var(--line);
  scrollbar-width: none;
  margin-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
}
.c-tabs__nav::-webkit-scrollbar {
  display: none;
}
.c-tabs__btn {
  position: relative;
  padding: clamp(9px, 7.94px + 0.28vw, 12px) clamp(11px, 8.54px + 0.66vw, 18px);
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 700;
  color: var(--ink-3);
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
}
.c-tabs__btn .c-ico {
  width: 16px;
  height: 16px;
}
@media (hover: hover) {
  .c-tabs__btn:hover {
    color: var(--ink);
  }
}
.c-tabs__btn[aria-selected=true] {
  color: var(--brand-ink);
  border-bottom-color: var(--brand);
}
.c-tabs__panel[hidden] {
  display: none;
}

/* 横幅いっぱいに均等割りし、文字を一段大きくする(ツアー詳細) */
.c-tabs--fill {
  /* 切り替えた中身をフェードインで出す(hidden が外れるたびにアニメーションが最初から走る) */
}
.c-tabs--fill .c-tabs__panel:not([hidden]) {
  animation: c-tabs-fade 0.35s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-tabs--fill .c-tabs__nav {
  gap: 0;
  margin-bottom: clamp(28px, 20.96px + 1.88vw, 48px);
}
.c-tabs--fill .c-tabs__btn {
  flex: 1 1 0;
  min-width: max-content;
  justify-content: center;
  padding: clamp(12px, 10.59px + 0.38vw, 16px) clamp(12px, 9.18px + 0.75vw, 20px);
  font-size: clamp(13px, 11.94px + 0.28vw, 16px);
  border-bottom-width: 3px;
  margin-bottom: -2px;
}
.c-tabs--fill .c-tabs__btn .c-ico {
  width: clamp(16px, 14.94px + 0.28vw, 19px);
  height: clamp(16px, 14.94px + 0.28vw, 19px);
}
.c-tabs--fill {
  /* SPは下線のタブをやめ、2列のボタンに並べる(4つなら2×2、奇数なら最後を全幅) */
}
@media screen and (max-width: 760px) {
  .c-tabs--fill .c-tabs__nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
    border-bottom: 0;
  }
  .c-tabs--fill .c-tabs__btn {
    min-width: 0;
    margin-bottom: 0;
    padding: 12px 10px;
    font-size: 14px;
    white-space: normal;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: #fff;
  }
  .c-tabs--fill .c-tabs__btn:last-child:nth-child(odd) {
    grid-column: 1/-1;
  }
  .c-tabs--fill .c-tabs__btn[aria-selected=true] {
    color: #fff;
    background: var(--brand-ink); /* 白文字とのコントラスト比 4.5 以上 */
    border-color: var(--brand-ink);
  }
}

@keyframes c-tabs-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/* ---------- 17. Tables ---------- */
.c-table-wrap {
  overflow-x: auto;
  margin: clamp(13px, 9.83px + 0.85vw, 22px) 0;
  /* 外枠も薄い水色。見出しの下線と系統を揃える */
  border: 1px solid var(--sky-200);
  border-radius: var(--r-sm);
}

/* 表のすぐ下に置く注記(※・注1 など)。本文より一段小さく、行間を詰めて表の付属物に見せる */
.c-note-list {
  list-style: none;
  padding: 0;
  margin: -8px 0 clamp(16px, 12.48px + 0.94vw, 26px);
  display: grid;
  gap: 5px;
}
.c-note-list .c-note-list__item, .c-note-list li {
  position: relative;
  padding-left: 1.1em;
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--ink-3);
}
.c-note-list .c-note-list__item::before, .c-note-list li::before {
  content: "※";
  position: absolute;
  left: 0;
  color: var(--ink-3);
}

.styled {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  background: #fff;
  /* 375px 画面で枠(347px)を17px超えて中途半端に横スクロールしていたので下限を下げた */
  min-width: clamp(320px, 249.58px + 18.78vw, 520px);
}

/* 金額・日数など短いセル（blocks/table/render.php が付ける）。途中で折り返さない */
.styled__nowrap {
  white-space: nowrap;
}

.styled .styled__hcell, .styled .styled__cell, .styled th, .styled td {
  padding: clamp(9px, 7.94px + 0.28vw, 12px) clamp(9px, 6.89px + 0.56vw, 15px);
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.styled thead .styled__th, .styled thead th {
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  white-space: nowrap;
  border-bottom: none;
}

.styled tbody .styled__th, .styled tbody th {
  background: var(--brand-050);
  color: var(--brand-ink);
  font-weight: 700;
  white-space: nowrap;
}

/* SPは行見出しを折り返す。英語の項目名は長く、折り返さないと1列目が表の半分以上を取って
   説明の列が1語ずつ折り返す。潰れすぎないよう下限幅だけ持たせる */
@media screen and (max-width: 620px) {
  .styled tbody .styled__th, .styled tbody th {
    white-space: normal;
    min-width: 6.5rem;
  }
}
/* 説明文が入るセル。SPで金額など折り返さない列に押されて1語ずつ折り返すのを防ぐ（表は横スクロールする） */
@media screen and (max-width: 620px) {
  .styled__cell--prose {
    min-width: 10.5rem;
  }
}

.styled tbody tr:last-child .styled__td, .styled tbody tr:last-child .styled__th, .styled tbody tr:last-child td, .styled tbody tr:last-child th {
  border-bottom: none;
}

/* ---- 仕様カード(.c-spec-card): 提供元+見出し+項目表+外部ボタン ----
   商品を横並びで見比べるためのカード。PCは2枚並び、スマホは縦積み */
.c-spec-card-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 10.59px + 0.38vw, 16px);
  margin-top: 6px;
}

.c-spec-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(16px, 14.59px + 0.38vw, 20px) clamp(16px, 14.59px + 0.38vw, 20px) clamp(15px, 13.94px + 0.28vw, 18px);
  /* 表のリンクから飛んだとき、固定ヘッダーの下に見出しが隠れないように */
  scroll-margin-top: calc(var(--header-h) + 20px);
}
.c-spec-card:target {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--brand-050);
}
.c-spec-card__by {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 4px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
}
.c-spec-card__tag {
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--brand-050);
  color: var(--brand-ink);
  font-size: 11px;
}
.c-spec-card__title {
  margin: 0 0 12px;
  font-size: clamp(16px, 15.65px + 0.09vw, 17px);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
}
.c-spec-card__specs {
  flex: 1;
  margin: 0 0 16px;
  font-size: 13px;
}
.c-spec-card__row {
  display: grid;
  grid-template-columns: 6.5em minmax(0, 1fr);
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid var(--line-2);
}
.c-spec-card__term {
  font-weight: 700;
  color: var(--ink-3);
}
.c-spec-card__desc {
  margin: 0;
  color: var(--ink);
}
.c-spec-card__btn {
  width: 100%;
}
.c-spec-card {
  /* 改行したタグの間の空白を出さない。狭いときは「（」の前で折り返す */
}
.c-spec-card__btn-label {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
}
.c-spec-card {
  /* 「（媒体名）を見る」は途中で割らない。狭い端末では括弧の前で折り返す */
}
.c-spec-card__nw {
  white-space: nowrap;
}

@media screen and (max-width: 760px) {
  .c-spec-card-list {
    grid-template-columns: minmax(0, 1fr);
  }
  .c-spec-card__btn {
    font-size: 14px;
    padding-left: 16px;
    padding-right: 16px;
  }
}
/* 本文の画像。静的版の p-guide__fig と同じ見え方にする */
.wp-block-image {
  margin: 0 0 clamp(16px, 12.48px + 0.94vw, 26px);
}
.wp-block-image img {
  width: 100%;
  height: auto;
  border-radius: var(--r-sm);
}
.wp-block-image figcaption {
  margin-top: clamp(6px, 4.94px + 0.28vw, 9px);
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  color: var(--ink-3);
}

.c-quote-source {
  margin: 0 0 1.6em;
  padding: 0;
  /* .p-article の blockquote 指定より強くして、外側の余白は figure 側で持つ */
}
.c-quote-source .c-quote-source__quote {
  margin: 0;
  border-left: 3px solid var(--brand);
  background: var(--brand-050);
  padding: clamp(14px, 13.3px + 0.19vw, 16px) clamp(16px, 14.59px + 0.38vw, 20px);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  font-size: clamp(14px, 13.82px + 0.05vw, 14.5px);
  color: var(--ink-2);
}
.c-quote-source .c-quote-source__quote p:last-child {
  margin-bottom: 0;
}
.c-quote-source__caption {
  margin-top: 8px;
  padding-left: clamp(16px, 14.59px + 0.38vw, 20px);
  font-size: clamp(12px, 11.82px + 0.05vw, 12.5px);
  color: var(--ink-3);
  line-height: 1.7;
}
.c-quote-source__cite {
  font-style: normal;
}
.c-quote-source__link {
  color: var(--ink-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (hover: hover) {
  .c-quote-source__link:hover {
    color: var(--brand);
  }
}
.c-quote-source {
  /* 閲覧日。制度・料金は変わるので「いつ時点の引用か」を添える */
}
.c-quote-source__accessed {
  white-space: nowrap;
}
.c-quote-source {
  /* 引用元が未入力のときに編集権限のある人だけに出す注意 */
}
.c-quote-source__warn {
  color: var(--accent-ink);
  font-size: 12px;
}

/* ---------- 21. Post cards ---------- */
.c-post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
}

@media screen and (max-width: 860px) {
  .c-post-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(10px, 5.71px + 1.14vw, 16px);
  }
}
@media screen and (max-width: 520px) {
  .c-post-grid {
    grid-template-columns: 1fr;
  }
}
/* 一覧の絞り込み(guide-filter.js)は hidden 属性で出し分ける。
   display:flex が既定の display:none に勝つので、ここで明示的に消す */
.c-post-card[hidden] {
  display: none;
}

.c-post-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  position: relative;
  display: flex;
  flex-direction: column;
}
.c-post-card__img {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--bg-3);
}
.c-post-card {
  /* サムネ右上に重ねるエリア。写真の上でも読めるよう白地に落とす */
}
.c-post-card__area {
  position: absolute;
  top: clamp(6px, 4.94px + 0.28vw, 9px);
  right: clamp(6px, 4.94px + 0.28vw, 9px);
  z-index: 1;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.92);
  padding: 3px clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 999px;
  pointer-events: none;
}
.c-post-card__img .c-post-card__img-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
.c-post-card__body {
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(11px, 8.54px + 0.66vw, 18px) clamp(11px, 8.54px + 0.66vw, 18px);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.c-post-card__cat {
  align-self: flex-start;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--brand-ink);
  background: var(--brand-050);
  padding: 3px clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 999px;
}
.c-post-card {
  /* 記事詳細では一覧の絞り込みへのリンクになる */
}
.c-post-card__cat[href] {
  text-decoration: none;
}
.c-post-card {
  /* タグ（guide_tag）はカテゴリと見分けがつくよう差し色にする */
}
.c-post-card__cat--tag {
  color: var(--accent-ink);
  background: var(--accent-050);
}
.c-post-card__title {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  line-height: 1.55;
  color: var(--ink);
}
.c-post-card__date {
  margin-top: auto;
  font-family: var(--font-en);
  font-size: 11.5px;
  color: var(--ink-3);
}
.c-post-card .c-post-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
}

@media (hover: hover) {
  .c-post-card__cat[href]:hover {
    background: var(--brand-100);
  }
  .c-post-card__cat--tag[href]:hover {
    background: var(--accent-100);
  }
}
/* ============================================================
   43. 写真ライトボックス (Photo Lightbox) — ツアーギャラリー等
   ============================================================ */
.p-tour-gallery a.gl-item {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  cursor: zoom-in;
}

.gl-hidden {
  display: none !important;
}

.p-tour-gallery__more {
  cursor: pointer;
}

.c-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1700;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  padding: clamp(12px, 9.18px + 0.75vw, 20px);
  background: rgba(6, 16, 26, 0.93);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}
.c-lightbox__stage {
  margin: 0;
  max-width: min(1100px, 92vw);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.c-lightbox__stage .c-lightbox__stage-img, .c-lightbox__stage img {
  max-width: 100%;
  max-height: 66vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
  background: #0e2233;
}
.c-lightbox__stage .c-lightbox__stage-caption, .c-lightbox__stage figcaption {
  color: #dfe8ef;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  margin-top: clamp(9px, 7.94px + 0.28vw, 12px);
  text-align: center;
  max-width: clamp(532px, 451.72px + 21.41vw, 760px);
  line-height: 1.6;
}
.c-lightbox__close {
  position: absolute;
  top: clamp(11px, 9.24px + 0.47vw, 16px);
  right: clamp(13px, 11.24px + 0.47vw, 18px);
  width: clamp(33px, 29.13px + 1.03vw, 44px);
  height: clamp(33px, 29.13px + 1.03vw, 44px);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  border: 0;
}
@media (hover: hover) {
  .c-lightbox__close:hover {
    background: rgba(255, 255, 255, 0.28);
  }
}
.c-lightbox__close .c-ico {
  width: clamp(16px, 13.89px + 0.56vw, 22px);
  height: clamp(16px, 13.89px + 0.56vw, 22px);
}
.c-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(36px, 30.37px + 1.5vw, 52px);
  height: clamp(36px, 30.37px + 1.5vw, 52px);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  border: 0;
}
@media (hover: hover) {
  .c-lightbox__nav:hover {
    background: rgba(255, 255, 255, 0.28);
  }
}
.c-lightbox__nav .c-ico {
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: clamp(20px, 17.89px + 0.56vw, 26px);
}
.c-lightbox__nav--prev {
  left: clamp(11px, 9.24px + 0.47vw, 16px);
}
.c-lightbox__nav--next {
  right: clamp(11px, 9.24px + 0.47vw, 16px);
}
.c-lightbox__count {
  color: #cdd8e2;
  font-family: var(--font-en);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
}
.c-lightbox__thumbs {
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  overflow-x: auto;
  max-width: 92vw;
  padding: 4px;
  scrollbar-width: thin;
}
.c-lightbox__thumbs .c-lightbox__thumbs-img, .c-lightbox__thumbs img {
  width: clamp(45px, 38.31px + 1.78vw, 64px);
  height: clamp(34px, 29.07px + 1.31vw, 48px);
  object-fit: cover;
  border-radius: 6px;
  cursor: pointer;
  opacity: 0.5;
  border: 2px solid transparent;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  flex-shrink: 0;
}
.c-lightbox__thumbs .c-lightbox__thumbs-img.on {
  opacity: 1;
  border-color: #fff;
}

@media screen and (max-width: 620px) {
  .c-lightbox__nav {
    width: clamp(33px, 14.67px + 4.89vw, 44px);
    height: clamp(33px, 14.67px + 4.89vw, 44px);
  }
  .c-lightbox__stage .c-lightbox__stage-img, .c-lightbox__stage img {
    max-height: 56vh;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-lightbox {
    transition: none;
  }
}
/* ============================================================
   44. 横スクロールのテーブル: スクロールヒント(スマホ) + 右端フェード
   ============================================================ */
.p-thint {
  position: relative;
  /* 右端フェード: スクロール可能かつ末尾でない時だけ表示 */
}
.p-thint__fade {
  position: absolute;
  top: 1px;
  right: 1px;
  bottom: 1px;
  width: clamp(32px, 28.48px + 0.94vw, 42px);
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.96));
  opacity: 0;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
.p-thint.is-scrollable:not(.at-end) .p-thint__fade {
  opacity: 1;
}
.p-thint {
  /* スクロールヒントのバッジ(スマホ/タブレットのみ・未操作時に表示) */
}
.p-thint__hint {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: none;
  align-items: center;
  gap: 5px;
  background: rgba(14, 34, 51, 0.82);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(9px, 7.24px + 0.47vw, 14px);
  border-radius: 999px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s;
  z-index: 2;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(8, 24, 40, 0.3);
}
.p-thint__hint .c-ico {
  width: 14px;
  height: 14px;
}

@media screen and (max-width: 760px) {
  .p-thint.is-scrollable .p-thint__hint {
    display: inline-flex;
    opacity: 1;
    animation: thintpulse 1.5s ease-in-out infinite;
  }
}
.p-thint.scrolled .p-thint__hint, .p-thint.hint-timeout .p-thint__hint {
  opacity: 0 !important;
  animation: none;
}

@keyframes thintpulse {
  0%, 100% {
    transform: translate(-50%, -50%);
  }
  50% {
    transform: translate(calc(-50% + 5px), -50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-thint.is-scrollable .p-thint__hint {
    animation: none;
  }
}
/* ============================================================
   51. シネマティック・ツアーカード (tour-drawer.js)
       アニメーションは transform / opacity のみ = GPU合成で60fps
   ============================================================ */
/* ① カード: ホバーで動画クロスフェード or Ken Burns */
.c-tour-card-cinematic {
  cursor: pointer;
}
.c-tour-card-cinematic .c-tour-card__img .c-tour-card__img-img {
  transition: opacity 0.5s ease, transform 0.5s ease;
  will-change: transform;
}
.c-tour-card-cinematic .c-tour-card__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}
.c-tour-card-cinematic.is-playing .c-tour-card__video {
  opacity: 1;
}
.c-tour-card-cinematic.is-playing .c-tour-card__img .c-tour-card__img-img {
  opacity: 0;
}
.c-tour-card-cinematic.is-kenburns .c-tour-card__img .c-tour-card__img-img {
  animation: tqdKenburns 9s ease-in-out infinite alternate;
}

@keyframes tqdKenburns {
  from {
    transform: scale(1) translate(0, 0);
  }
  to {
    transform: scale(1.12) translate(-2%, -1.5%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-tour-card-cinematic .c-tour-card__img .c-tour-card__img-img, .c-tour-card-cinematic .c-tour-card__video {
    transition: none;
    animation: none !important;
  }
}
/* ============================================================
   58. ページ内シェアバー (ツアー個別/ガイド記事/ニュース記事)
   ------------------------------------------------------------
   コピー([data-share-copy]=main.js) + LINE / X / Facebook。
   記事冒頭に置く前提のコンパクトな丸ボタン列。
   ============================================================ */
.c-share-bar {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  margin: clamp(11px, 8.54px + 0.66vw, 18px) 0 4px;
}
.c-share-bar__label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
  margin-right: 2px;
}
.c-share-bar__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(28px, 24.48px + 0.94vw, 38px);
  height: clamp(28px, 24.48px + 0.94vw, 38px);
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-2);
  cursor: pointer;
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-share-bar__btn .c-ico {
  width: 17px;
  height: 17px;
}
@media (hover: hover) {
  .c-share-bar__btn:hover {
    box-shadow: var(--sh-sm);
  }
}
@media (hover: hover) {
  .c-share-bar__btn--copy:hover {
    color: var(--brand);
    background: var(--brand-050);
  }
}
.c-share-bar__btn--line {
  color: var(--line-green);
}
.c-share-bar__btn--x {
  color: #0f1419;
}
.c-share-bar__btn--fb {
  color: #0866ff;
}

/* 記事末尾のシェア。冒頭に色付きの列が出たあとなので、こちらは色を落として
   「一覧へ戻る」と同じ高さの付属物に見せる（静的版の .news-share と同じ扱い）。 */
.c-share-bar--quiet {
  margin: 0;
  gap: 8px;
}
.c-share-bar--quiet .c-share-bar__label {
  font-size: 11.5px;
  font-weight: 400;
  color: var(--ink-3);
}
.c-share-bar--quiet .c-share-bar__btn {
  width: 36px;
  height: 36px;
  color: var(--ink-2);
}
.c-share-bar--quiet .c-share-bar__btn .c-ico {
  width: 16px;
  height: 16px;
}
@media (hover: hover) {
  .c-share-bar--quiet .c-share-bar__btn:hover {
    border-color: var(--brand);
    color: var(--brand-ink);
    background: #fff;
    box-shadow: none;
  }
}

/* 記事末尾に置くシェア。本文と切り離して見せる（静的版の .share-bar--end 相当） */
.c-share-bar--end {
  margin: clamp(24px, 19.77px + 1.13vw, 36px) 0 0;
  padding-top: clamp(12px, 9.89px + 0.56vw, 18px);
  border-top: 1px solid var(--line);
}

/* 記事冒頭の日付メタと同じ行に並べるシェア。見出しは出さず右端に寄せる */
.c-share-bar--inline {
  margin: 0 0 0 auto;
  /* SP は最初から独立行にする。同じ行に置くと Web フォント読み込み後の文字幅で折り返しが変わり、下の写真ごとずれる（CLS 0.2） */
}
@media screen and (max-width: 620px) {
  .c-share-bar--inline {
    flex-basis: 100%;
    margin-left: 0;
  }
}

/* ============================================================
   63. YouTube埋め込み (video-embed.js)
   ------------------------------------------------------------
   最初はサムネイル+再生ボタンだけ。クリックで iframe を差し込む
   ため、動画を置いてもページの表示速度が落ちない。
   ============================================================ */
.c-video-embed {
  position: relative;
  aspect-ratio: 16/9;
  background: #0e1c2c;
  border-radius: var(--r);
  overflow: hidden;
}
.c-video-embed__btn {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  display: block;
}
.c-video-embed__thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s var(--ease-out), opacity 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .c-video-embed__btn:hover .c-video-embed__thumb {
    transform: scale(1.03);
    opacity: 0.88;
  }
}
.c-video-embed__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(48px, 40.96px + 1.88vw, 68px);
  height: clamp(34px, 29.07px + 1.31vw, 48px);
  filter: drop-shadow(0 4px 14px rgba(0, 0, 0, 0.4));
  transition: transform 0.28s var(--ease-out);
}
.c-video-embed__play svg {
  width: 100%;
  height: 100%;
  display: block;
}
@media (hover: hover) {
  .c-video-embed__btn:hover .c-video-embed__play {
    transform: translate(-50%, -50%) scale(1.08);
  }
}
.c-video-embed__label {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: clamp(20px, 15.07px + 1.31vw, 34px) clamp(11px, 8.54px + 0.66vw, 18px) clamp(9px, 7.24px + 0.47vw, 14px);
  background: linear-gradient(180deg, rgba(14, 28, 44, 0), rgba(14, 28, 44, 0.82));
  color: #fff;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  font-weight: 700;
  text-align: left;
  line-height: 1.6;
}
.c-video-embed__frame {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.p-tour-video {
  margin: clamp(17px, 13.13px + 1.03vw, 28px) 0;
}
.p-tour-video__cap {
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 1.8;
}

/* ============================================================
   76. フォーム検証 + 口コミ表示の共通部品
       ・.c-field-error   = メール確認欄などの不一致エラー(JSがhiddenを外す)
   ============================================================ */
.c-field-error {
  color: #c62828;
  font-size: 11px;
  font-weight: 700;
  margin-top: clamp(3px, 2.3px + 0.19vw, 5px);
  line-height: 1.25;
}

/* Contact Form 7 の検証表示(ベンダークラス)。
   項目下の赤文字は .c-field-error と同じ大きさ・行間に揃え、送信結果の帯は入力欄と同じ角丸の小さな帯にする */
.wpcf7 .wpcf7-not-valid-tip {
  display: block;
  color: #c62828;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
  margin-top: clamp(3px, 2.3px + 0.19vw, 5px);
}
.wpcf7 .wpcf7-not-valid {
  border-color: #c62828;
}
.wpcf7 .wpcf7-list-item .wpcf7-not-valid-tip {
  margin-top: 0;
}
.wpcf7 {
  /* CF7 既定の form.invalid/.failed/.sent の枠色(黄/赤/緑)に勝つよう form の状態クラスまで指定する */
}
.wpcf7 form .wpcf7-response-output, .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output {
  margin: clamp(10px, 8.59px + 0.38vw, 14px) 0 0;
  padding: clamp(8px, 7.3px + 0.19vw, 10px) clamp(10px, 8.59px + 0.38vw, 14px);
  border: 1px solid #c62828;
  border-radius: var(--r-sm);
  background: #fff5f5;
  color: #c62828;
  font-size: 11.5px;
  line-height: 1.25;
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--brand);
  background: var(--brand-050);
  color: var(--brand-ink);
}
.wpcf7 .wpcf7-spinner {
  display: none;
}
.wpcf7.submitting .wpcf7-spinner {
  display: inline-block;
}

/* .c-review-card の見た目は object/component/_review.scss に集約した。
   ここに二重定義があり、あとから読まれるこちらが _review.scss を打ち消していた。 */
/* ============================================================
   82. 予約フォームのオプション複数選択 (.p-opt-checks)
   ============================================================ */
.p-opt-checks {
  display: grid;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  margin-top: 4px;
}

/* CF7 の checkbox 出力(.wpcf7-list-item > label)にも同じ見た目を当てる。
   ベンダー生成マークアップなので label はタグ指定のまま。 */
.p-opt-checks .wpcf7-list-item label, .p-opt-check {
  display: flex;
  align-items: flex-start;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.7;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(9px, 7.94px + 0.28vw, 12px);
  cursor: pointer;
}
.p-opt-checks .wpcf7-list-item label input, .p-opt-check input {
  margin-top: 3px;
  accent-color: var(--brand);
  flex-shrink: 0;
  width: 15px;
  height: 15px;
}
.p-opt-checks .wpcf7-list-item label:has(input:checked), .p-opt-check:has(input:checked) {
  background: var(--brand-050);
  border-color: var(--brand);
}

.p-opt-checks .wpcf7-list-item {
  display: block;
  margin: 0;
}
.p-opt-checks .wpcf7-list-item .wpcf7-list-item-label {
  display: block;
}

/* ============================================================
   85. 基本情報の表 (.p-basicinfo)
       項目名と内容が一目で対応する「表形式」。
       本文量は多い(1項目2〜3段落)ので、横スクロールさせる細い表ではなく
       左に項目名・右に読み物という2列の表にする。
       モバイルでは横に詰めると読めないため、th/tdを縦積みに切り替える。
   ============================================================ */
.p-basicinfo {
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  background: #fff;
}
.p-basicinfo__table {
  width: 100%;
  border-collapse: collapse;
}
.p-basicinfo__table .p-basicinfo__table-hcell, .p-basicinfo__table .p-basicinfo__table-cell {
  padding: clamp(11px, 8.54px + 0.66vw, 18px) clamp(12px, 9.18px + 0.75vw, 20px);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}
.p-basicinfo__table .p-basicinfo__table-hcell {
  width: clamp(147px, 124.82px + 5.92vw, 210px);
  background: var(--brand-050);
  color: var(--brand-ink);
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 800;
  line-height: 1.6;
  border-right: 1px solid var(--line);
}
.p-basicinfo__table .p-basicinfo__table-cell .p-basicinfo__table-cell-text {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-basicinfo__table .p-basicinfo__table-cell .p-basicinfo__table-cell-text:last-child {
  margin-bottom: 0;
}
.p-basicinfo__table .p-basicinfo__table-row:last-child .p-basicinfo__table-row-hcell, .p-basicinfo__table .p-basicinfo__table-row:last-child .p-basicinfo__table-row-cell {
  border-bottom: none;
}
.p-basicinfo {
  /* 表の下の但し書き（カテゴリー別ツアーページ） */
}
.p-basicinfo__note {
  margin-top: 10px;
  font-size: 12px;
  color: var(--ink-3);
}

@media screen and (max-width: 760px) {
  /* 縦積み: 項目名を見出し帯として全幅に出し、その下に本文を置く */
  .p-basicinfo__table .p-basicinfo__table-row, .p-basicinfo__table .p-basicinfo__table-hcell, .p-basicinfo__table .p-basicinfo__table-cell {
    display: block;
    width: auto;
  }
  .p-basicinfo__table .p-basicinfo__table-hcell {
    border-right: none;
    border-bottom: none;
    padding: clamp(8px, 4.1px + 1.04vw, 12px) clamp(10px, 4.16px + 1.56vw, 16px);
  }
  .p-basicinfo__table .p-basicinfo__table-cell {
    padding: clamp(9px, 4.13px + 1.3vw, 14px) clamp(10px, 4.16px + 1.56vw, 16px) clamp(12px, 6.16px + 1.56vw, 18px);
  }
}
/* ============================================================
   アイコン(.c-ico)の色・サイズ修飾子
   ============================================================ */
.c-ico--sm-brand.c-ico--sm-brand.c-ico--sm-brand {
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.c-ico {
  /* 740箇所 / guide の <svg> 由来 */
}
.c-ico--aurora.c-ico--aurora.c-ico--aurora {
  color: var(--aurora);
  width: 13px;
  height: 13px;
  vertical-align: -2px;
}
.c-ico {
  /* 324箇所 / tours の <svg> 由来 */
}
.c-ico--md-gap.c-ico--md-gap.c-ico--md-gap {
  width: 15px;
  height: 15px;
  vertical-align: -2px;
  margin-right: 4px;
}
.c-ico {
  /* 162箇所 / tours の <svg> 由来 */
}
.c-ico--xs.c-ico--xs.c-ico--xs {
  width: 13px;
  height: 13px;
  vertical-align: -2px;
}

/* 162箇所 / tours の <svg> 由来 */
/* ============================================================
   共通部品の追加指定
   ============================================================ */
.l-container--main.l-container--main.l-container--main {
  max-width: var(--w-main);
}

/* 26箇所 / tours の <div> 由来 */
/* ============================================================
   インラインstyle由来のページ固有指定
   ・機械命名(`__section-1604cd`)は静的HTMLの style="" をクラス化したもの。
     該当ページをWP化するときに意味のある名前へ改名してこのブロックから出す
   ・詳細度3重ね(.x.x.x)はインライン時代の優先度の再現。新規で真似しない
   ============================================================ */
.c-hotel-card__empty {
  padding: clamp(8px, 6.59px + 0.38vw, 12px) clamp(10px, 7.89px + 0.56vw, 16px);
  border: 1px dashed #d0d7de;
  border-radius: 12px;
  color: #6b7684;
  font-size: 13px;
}

/* ---- 星評価の空マス（iace_stars の未点灯ぶん）---- */
.c-ico--empty {
  color: var(--line);
}

/* ---- ホテルの地図iframe（Googleマップ埋め込みの枠線リセット）---- */
.c-merit-card-list {
  display: grid;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-merit-card-list--col2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.c-merit-card-list--col3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.c-merit-card-list--col4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.c-merit-card {
  display: flex;
  gap: 0;
  align-items: stretch;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-xs);
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  line-height: 1.95;
  /* サムネはカードの端に密着させる。カード側に padding を持たせず、本文側だけに持たせる。
     min-height で 1:1 を下限として担保する（aspect-ratio だと本文が長い行で下に隙間ができる）。 */
  /* サイズを持つのはラッパー。img はその中を埋めるだけにして、
     ホバー拡大がラッパーで切り取られるようにする。
     カード側の overflow:hidden だけだと、拡大した写真の下端が
     本文の上へはみ出す（transform はレイアウトを動かさないため） */
}
.c-merit-card__media {
  display: block;
  flex: 0 0 auto;
  align-self: stretch;
  width: clamp(109px, 95.97px + 3.47vw, 146px);
  min-height: clamp(109px, 95.97px + 3.47vw, 146px);
  overflow: hidden;
}
.c-merit-card__thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-merit-card {
  /* 3カラムで使うときは写真を上に敷く。横並びのサムネだと本文の幅が足りない。 */
}
.c-merit-card--stack {
  flex-direction: column;
}
.c-merit-card--stack .c-merit-card__media {
  width: 100%;
  min-height: 0;
  aspect-ratio: 16/10;
}
.c-merit-card__body {
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(14px, 11.18px + 0.75vw, 22px);
  min-width: 0;
}
.c-merit-card {
  /* 見出しの上に置く小さいラベル（地域・区分など） */
}
.c-merit-card__eyebrow {
  display: inline-block;
  margin-bottom: clamp(4px, 2.94px + 0.28vw, 7px);
  padding: 2px clamp(6px, 4.94px + 0.28vw, 9px);
  border-radius: 999px;
  background: var(--brand-050);
  color: var(--brand-ink);
  font-size: clamp(10px, 9.47px + 0.14vw, 11.5px);
  font-weight: 700;
  letter-spacing: 0.02em;
}
.c-merit-card__note {
  display: block;
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  color: var(--ink-3);
  line-height: 1.7;
}
.c-merit-card__title {
  display: block;
  margin-bottom: clamp(3px, 1.94px + 0.28vw, 6px);
  font-size: clamp(13.5px, 12.62px + 0.23vw, 16px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.45;
}
.c-merit-card {
  /* カード全体をリンクにする型。a を入れ子にできないので、見出しの a に
     透明な疑似要素を敷いてカード全面を当たり判定にする。
     ::after は .is-external の外部リンクアイコンが使っているので ::before を使う。 */
}
.c-merit-card--link {
  position: relative;
}
.c-merit-card--link .c-merit-card__link::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.c-merit-card {
  /* リンクになっているカードだけ、ホバーで写真を拡大する。
     拡大分はカードの overflow:hidden で切り取られる。
     実際に拡大させる指定は object/utility/_hover-transition.scss に集約 */
}
.c-merit-card--link .c-merit-card__thumb {
  transition: transform 0.5s;
}

@media screen and (max-width: 860px) {
  .c-merit-card-list--col3,
  .c-merit-card-list--col4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 760px) {
  .c-merit-card-list--col2,
  .c-merit-card-list--col3,
  .c-merit-card-list--col4 {
    grid-template-columns: 1fr;
  }
  /* 1列では縦積みだと写真が大きくなりすぎるので横並びに戻す */
  .c-merit-card--stack {
    flex-direction: row;
  }
  .c-merit-card--stack .c-merit-card__media {
    width: clamp(109px, 72.96px + 9.61vw, 146px);
    min-height: clamp(109px, 72.96px + 9.61vw, 146px);
    aspect-ratio: auto;
  }
}
@media screen and (max-width: 620px) {
  /* SPでは本文が狭く(217px)カードが縦に伸びるため、上の横並びに戻す指定だと
     align-self:stretch でサムネが本文の高さまで引き伸ばされ、109x230 の
     縦長スリットになっていた。1000x667 の横位置写真が原型を留めない。
     この幅では縦積みに戻し、写真は横長のまま見せる。
     16/10 だと高くなりすぎるので 2/1 に寝かせる */
  .c-merit-card--stack {
    flex-direction: column;
  }
  .c-merit-card--stack .c-merit-card__media {
    width: 100%;
    min-height: 0;
    aspect-ratio: 2/1;
  }
}
/* 下地の `table.styled tbody th`（クラス1つ+タグ3つ）より強くする必要があるので、
   各要素はルート `.c-fare-table` と組み合わせてクラス2つで指定する。 */
.c-fare-table {
  /* 下地は上揃え。項目名と金額で字の大きさが違い、行の中で上下がずれて見えるので中央に揃える */
}
.c-fare-table .c-fare-table__head, .c-fare-table .c-fare-table__row-head, .c-fare-table .c-fare-table__num {
  vertical-align: middle;
}
.c-fare-table .c-fare-table__head {
  background: var(--navy);
  color: #fff;
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  letter-spacing: 0.02em;
}
.c-fare-table {
  /* 各行の項目名（1列目） */
}
.c-fare-table .c-fare-table__row-head {
  background: var(--bg-2);
  font-size: clamp(12.5px, 11.8px + 0.19vw, 14.5px);
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
}
.c-fare-table {
  /* 金額。表の主役なので英字フォントで大きく出す */
}
.c-fare-table .c-fare-table__num {
  font-family: var(--font-en);
  font-size: clamp(14px, 12.59px + 0.38vw, 18px);
  font-weight: 600;
  color: var(--ink);
  letter-spacing: 0.01em;
}

.c-crosslink {
  display: grid;
  grid-template-columns: minmax(0, 38%) minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: var(--r);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--sh-sm);
  color: var(--ink);
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  /* ホバーで浮かせない。影と枠の変化だけで反応を示す */
}
@media (hover: hover) {
  .c-crosslink:hover {
    box-shadow: var(--sh);
    background: var(--brand-050);
    color: var(--ink);
  }
}
.c-crosslink__media {
  position: relative;
  overflow: hidden;
  background: var(--bg-3);
  min-height: clamp(150px, 128.87px + 5.63vw, 210px);
}
.c-crosslink__media-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-crosslink {
  /* アイコンは写真の上ではなく見出しの左に置く（何のページへ渡すのかを見出しと一緒に読ませる） */
}
.c-crosslink__head {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  min-width: 0;
}
.c-crosslink__ico {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: clamp(36px, 33.18px + 0.75vw, 44px);
  height: clamp(36px, 33.18px + 0.75vw, 44px);
  border-radius: 50%;
  background: #fff;
  color: var(--brand);
  border: 2px solid var(--brand);
}
.c-crosslink__ico .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
}
.c-crosslink__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(18px, 12.37px + 1.5vw, 34px);
  min-width: 0;
}
.c-crosslink__title {
  font-size: clamp(16px, 13.89px + 0.56vw, 22px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--ink);
}
.c-crosslink__note {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  line-height: 1.9;
  color: var(--ink-2);
}
.c-crosslink {
  /* 擬似ボタン。中に <a> は置けないので span に c-btn c-btn--brand を併記して
     共通ボタンの見た目を継承する。ここには位置の調整だけ書く */
}
.c-crosslink__go {
  margin-top: clamp(2px, 0.59px + 0.38vw, 6px);
}
@media (hover: hover) {
  .c-crosslink:hover .c-crosslink__go {
    background: var(--brand-ink);
  }
}
.c-crosslink__go .c-ico {
  width: clamp(14px, 12.94px + 0.28vw, 17px);
  height: clamp(14px, 12.94px + 0.28vw, 17px);
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .c-crosslink:hover .c-crosslink__go .c-ico {
    transform: translateX(3px);
  }
}

@media screen and (max-width: 760px) {
  .c-crosslink {
    grid-template-columns: 1fr;
  }
  .c-crosslink__media {
    min-height: 0;
    aspect-ratio: 16/9;
  }
  .c-crosslink__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .c-crosslink__go {
    align-self: center;
  }
}
.c-figs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: clamp(10px, 8.59px + 0.38vw, 14px);
  margin-top: clamp(14px, 12.59px + 0.38vw, 18px);
}
.c-figs__item {
  margin: 0;
}
.c-figs__img {
  width: 100%;
  height: auto;
  border-radius: var(--r-sm);
  object-fit: cover;
}
.c-figs__cap {
  display: block;
  margin-top: 6px;
  font-size: clamp(11px, 10.65px + 0.09vw, 12px);
  line-height: 1.7;
  color: var(--ink-3);
}

.c-heading {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  font-size: clamp(17px, 15.94px + 0.28vw, 20px);
  font-weight: 800;
  color: var(--ink);
  margin-bottom: clamp(11px, 8.54px + 0.66vw, 18px);
  padding-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
  border-bottom: 2px solid var(--sky-200);
}
.c-heading .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  color: var(--sky);
}

.c-photo-card {
  display: grid;
  grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: var(--r);
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: var(--sh-sm);
}
.c-photo-card__media {
  position: relative;
  overflow: hidden;
  background: var(--bg-3);
  min-height: clamp(170px, 145.35px + 6.57vw, 240px);
}
.c-photo-card__media-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-photo-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  padding: clamp(18px, 13.07px + 1.31vw, 32px) clamp(18px, 11.66px + 1.69vw, 36px);
  min-width: 0;
}
.c-photo-card__title {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  font-weight: 800;
  line-height: 1.6;
  color: var(--ink);
  margin: 0;
}
.c-photo-card__text {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  line-height: 2;
  color: var(--ink-2);
}
.c-photo-card {
  /* 要点の箇条書き（チェックマーク）。本文とボタンの間に挟む */
}
.c-photo-card__points {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px clamp(12px, 10.59px + 0.38vw, 16px);
  margin: 0;
  padding: 0;
}
.c-photo-card__points-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 600;
  color: var(--ink-2);
}
.c-photo-card__points-item .c-ico {
  width: 14px;
  height: 14px;
  color: var(--aurora);
  flex-shrink: 0;
}
.c-photo-card {
  /* 本文が詰まって見えないよう、見出し・本文・要点の間だけ詰める */
}
.c-photo-card__body > * + * {
  margin-top: 0;
}
.c-photo-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
}

@media screen and (max-width: 760px) {
  .c-photo-card {
    grid-template-columns: 1fr;
  }
  .c-photo-card__media {
    min-height: 0;
    aspect-ratio: 16/9;
  }
}
.c-point-list {
  display: grid;
}
.c-point-list__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: clamp(9px, 7.59px + 0.38vw, 13px);
  padding: clamp(11px, 9.24px + 0.47vw, 16px) 0;
  border-top: 1px solid var(--line);
}
.c-point-list__item:last-child {
  border-bottom: 1px solid var(--line);
}
.c-point-list__item .c-ico {
  grid-row: 1/3;
  width: clamp(16px, 14.94px + 0.28vw, 19px);
  height: clamp(16px, 14.94px + 0.28vw, 19px);
  color: var(--brand-ink);
  margin-top: 3px;
}
.c-point-list__label {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
}
.c-point-list__note {
  font-size: clamp(12px, 11.65px + 0.09vw, 13px);
  line-height: 1.8;
  color: var(--ink-3);
  margin-top: 2px;
}
.c-point-list {
  /* 塗りのカード型。ツアー詳細の「見どころ」(1〜11件・件数可変)で使う */
}
.c-point-list--boxed {
  gap: clamp(9px, 8.3px + 0.19vw, 11px);
}
.c-point-list--boxed .c-point-list__item {
  padding: clamp(12px, 10.94px + 0.28vw, 15px) clamp(13px, 11.59px + 0.38vw, 17px);
  border: none;
  background: var(--bg-2);
  border-radius: var(--r-sm);
}
.c-point-list--boxed .c-point-list__item:last-child {
  border-bottom: none;
}
.c-point-list--boxed .c-ico {
  color: var(--accent);
}
.c-point-list {
  /* 横に3つ並べる帯。ヒーロー直下など、写真の隣ではなく単独で置くとき用 */
}
.c-point-list--col3 {
  grid-template-columns: repeat(3, 1fr);
  column-gap: clamp(18px, 12.37px + 1.5vw, 34px);
}
.c-point-list--col3 .c-point-list__item:last-child {
  border-bottom: none;
}

@media screen and (max-width: 760px) {
  .c-point-list--col3 {
    grid-template-columns: 1fr;
  }
  .c-point-list--col3 .c-point-list__item:last-child {
    border-bottom: 1px solid var(--line);
  }
}
.c-plan-card-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
}

.c-plan-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-xs);
  overflow: hidden;
  /* 写真はカードの端まで余白なしで到達させ、内側余白は本文側だけが持つ */
}
.c-plan-card__media {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--bg-3);
}
.c-plan-card {
  /* 画像は絶対配置で敷く。通常フローに置くと img の縦横比が箱の高さを決めてしまい、
     aspect-ratio:16/9 が効かず素材ごとにカードの写真の高さがズレる */
}
.c-plan-card__media-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-plan-card {
  /* 写真の左上に置くサービス名のラベル。見出しと重複する語になるので、
     ラベルを出すときは __eyebrow は使わない */
}
.c-plan-card__tag {
  position: absolute;
  left: clamp(10px, 8.59px + 0.38vw, 14px);
  top: clamp(10px, 8.59px + 0.38vw, 14px);
  background: rgba(13, 43, 78, 0.88);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 999px;
  padding: 5px clamp(9px, 7.94px + 0.28vw, 12px);
}
.c-plan-card__body {
  display: flex;
  flex-direction: column;
  gap: clamp(7px, 5.94px + 0.28vw, 10px);
  flex: 1;
  padding: clamp(16px, 13.18px + 0.75vw, 24px) clamp(16px, 12.48px + 0.94vw, 26px) clamp(18px, 14.48px + 0.94vw, 28px);
}
.c-plan-card__title {
  font-size: clamp(16px, 14.59px + 0.38vw, 20px);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
}
.c-plan-card__specs {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}
.c-plan-card__spec {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--ink-2);
  background: var(--bg-2);
  border-radius: 999px;
  padding: 4px clamp(7px, 5.59px + 0.38vw, 11px);
}
.c-plan-card__text {
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.95;
  color: var(--ink-2);
}
.c-plan-card .c-check-list {
  margin-top: auto;
  padding-top: clamp(6px, 4.59px + 0.38vw, 10px);
}

@media screen and (max-width: 760px) {
  .c-plan-card-list {
    grid-template-columns: 1fr;
  }
}
.c-service-index {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: clamp(26px, 18.25px + 2.07vw, 48px);
  border-top: 1px solid var(--line);
}
.c-service-index__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  column-gap: clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(14px, 11.18px + 0.75vw, 22px) 0;
  border-bottom: 1px solid var(--line);
}
.c-service-index__thumb {
  grid-row: 1/3;
  display: block;
  width: clamp(84px, 71.32px + 3.38vw, 120px);
  aspect-ratio: 4/3;
  border-radius: var(--r-sm);
  overflow: hidden;
  background: var(--brand-050);
  margin-top: 4px;
}
.c-service-index__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-service-index__title {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
}
.c-service-index__text {
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  line-height: 1.9;
  color: var(--ink-2);
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
}

@media screen and (max-width: 760px) {
  .c-service-index {
    grid-template-columns: 1fr;
  }
}
.c-fineprint {
  margin: clamp(12px, 9.18px + 0.75vw, 20px) 0 0;
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  line-height: 1.9;
  color: var(--ink-3);
  /* 文中の強調（金額・条件）は本文色まで上げるが、太さで止めて色は足さない */
}
.c-fineprint__strong {
  font-weight: 700;
  color: var(--ink-2);
}
.c-fineprint--center {
  text-align: center;
  max-width: clamp(532px, 451.72px + 21.41vw, 760px);
  margin-inline: auto;
}
.c-fineprint {
  /* 濃紺・写真オーバーレイの帯に直接置くとき */
}
.c-fineprint--on-dark {
  color: rgba(255, 255, 255, 0.8);
}
.c-fineprint--on-dark .c-fineprint__strong {
  color: #fff;
}

/* 標準のスクロールバーを消す。
   各部品に残っている overflow-y:auto のせいで、要素自身の標準バーと SimpleBar のバーが並んでいた。
   スクロールは SimpleBar 内側の .simplebar-content-wrapper だけに任せる。
   部品側の指定（メディアクエリ内のものを含む）より確実に勝たせるため、対象の部品名と組み合わせて書く */
.p-bkm__panel.has-scrollbar,
.p-rv-list.has-scrollbar,
.p-q2-result.has-scrollbar {
  /* hidden にしてはいけない: SimpleBar は要素自身の overflow を読み、hidden の軸はスクロールを無効にする
     （内側の .simplebar-content-wrapper を overflow:hidden にしてしまい、スクロールできなくなった）。
     visible なら要素自身はスクロールせず標準バーも出ないうえ、SimpleBar の縦スクロールは有効のまま */
  overflow: visible;
}

.has-scrollbar {
  /* 溝: 上下を少し空け、薄い面だけ敷く */
}
.has-scrollbar .simplebar-track.simplebar-vertical {
  top: clamp(8px, 6.59px + 0.38vw, 12px);
  bottom: clamp(8px, 6.59px + 0.38vw, 12px);
  right: clamp(2px, 1.3px + 0.19vw, 4px);
  width: clamp(6px, 5.3px + 0.19vw, 8px);
  border-radius: 999px;
  background: rgba(14, 34, 51, 0.06);
}
.has-scrollbar {
  /* つまみ: 溝いっぱいの角丸バー。自動で隠さず常に見せる（autoHide:false） */
}
.has-scrollbar .simplebar-scrollbar::before {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  border-radius: 999px;
  background: var(--brand-ink);
}
.has-scrollbar .simplebar-scrollbar.simplebar-visible::before {
  opacity: 0.5;
}
.has-scrollbar {
  /* つまみを掴んでいる間だけ濃くする */
}
.has-scrollbar.simplebar-dragging .simplebar-scrollbar::before {
  opacity: 0.8;
}

/* 横スクロールのテーブル（.js-table-wrap）を SimpleBar で装飾したときの見た目。
   バーは表の下端に細く出し、スクロールできるときだけ見せる */
.c-table-wrap.has-scrollbar {
  overflow: visible;
  /* 枠が visible なので角丸が中身を切れず、紺のヘッダーの角だけ四角く飛び出していた。
     枠自身を hidden にすると SimpleBar が横スクロールを止めてしまう（上のコメント参照）ので、
     SimpleBar が内側に作る .simplebar-wrapper（元から overflow:hidden）側で角を切る。
     バーの溝はこの外側にあるので隠れない */
}
.c-table-wrap.has-scrollbar .simplebar-wrapper {
  border-radius: var(--r-sm);
}
.c-table-wrap.has-scrollbar .simplebar-track.simplebar-horizontal {
  height: clamp(7px, 6.3px + 0.19vw, 9px);
  background: var(--bg-2);
  border-radius: 999px;
}
.c-table-wrap.has-scrollbar .simplebar-track.simplebar-horizontal .simplebar-scrollbar {
  height: clamp(5px, 4.3px + 0.19vw, 7px);
  top: 1px;
}
.c-table-wrap.has-scrollbar .simplebar-track.simplebar-horizontal .simplebar-scrollbar::before {
  background: var(--brand);
  opacity: 0.55;
  border-radius: 999px;
}
.c-table-wrap.has-scrollbar .simplebar-track.simplebar-vertical {
  display: none;
}

/* スクロールしない表ではバーの場所も取らない */
.p-thint:not(.is-scrollable) .c-table-wrap.has-scrollbar .simplebar-track {
  display: none;
}

.c-step-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 9.77px + 1.13vw, 26px);
  margin: clamp(14px, 10.48px + 0.94vw, 24px) 0 0;
  padding: 0;
  list-style: none;
}
.c-step-row__item {
  display: grid;
  gap: clamp(3px, 2.3px + 0.19vw, 5px);
  align-content: start;
}
.c-step-row__no {
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(22px, 19.18px + 0.75vw, 30px);
  line-height: 1;
  color: var(--sky-200);
  letter-spacing: -0.02em;
}
.c-step-row__title {
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.5;
}
.c-step-row__text {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  line-height: 1.85;
  color: var(--ink-3);
}

/* 3ステップ用（first-trip）。列が広く本文が長いので、番号と本文を一段濃くする */
.c-step-row--col3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 7.55px + 2.25vw, 40px);
}
.c-step-row--col3 .c-step-row__item {
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.c-step-row--col3 .c-step-row__no {
  font-size: clamp(28px, 23.77px + 1.13vw, 40px);
  color: var(--brand);
}
.c-step-row--col3 .c-step-row__title {
  font-size: clamp(15px, 14.3px + 0.19vw, 17px);
}
.c-step-row--col3 .c-step-row__text {
  font-size: clamp(13px, 12.65px + 0.09vw, 14px);
  color: var(--ink-2);
}

@media screen and (max-width: 760px) {
  .c-step-row {
    grid-template-columns: 1fr 1fr;
  }
  .c-step-row--col3 {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 520px) {
  .c-step-row {
    grid-template-columns: 1fr;
    gap: clamp(12px, -3.52px + 4.14vw, 18px);
  }
}
/* 縦に積む幅では、三角もカードの下に向ける */
@media screen and (max-width: 760px) {
  .c-step-row--thumb .c-step-row__item:not(:last-child)::after {
    top: auto;
    right: auto;
    left: 50%;
    bottom: calc(-1 * clamp(20px, 15.07px + 1.31vw, 34px) / 2 - clamp(4px, 3.65px + 0.09vw, 5px));
    border-top: clamp(7px, 6.3px + 0.19vw, 9px) solid var(--ink-3);
    border-bottom: 0;
    border-left: clamp(5px, 4.65px + 0.09vw, 6px) solid transparent;
    border-right: clamp(5px, 4.65px + 0.09vw, 6px) solid transparent;
    transform: translateX(-50%);
  }
}
/* サムネ付きの手順。番号だけの既定形に写真と枠を足した見せ方
   （使い方は同じで、各 item の先頭に .c-step-row__thumb を置く） */
.c-step-row--thumb {
  /* カード同士のすき間は、あいだに置く三角の矢印のぶんだけ広めに取る */
  gap: clamp(20px, 15.07px + 1.31vw, 34px);
  /* 番号と見出しは同じ行に並べ、縦位置を揃える */
}
.c-step-row--thumb .c-step-row__item {
  position: relative;
  gap: 0;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "thumb thumb" "no    title" "text  text";
  align-items: center;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: #fff;
}
.c-step-row--thumb {
  /* カードのあいだに次へ進む三角。最後のカードには出さない */
}
.c-step-row--thumb .c-step-row__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(-1 * clamp(20px, 15.07px + 1.31vw, 34px) / 2 - clamp(4px, 3.65px + 0.09vw, 5px));
  width: 0;
  height: 0;
  border-top: clamp(5px, 4.65px + 0.09vw, 6px) solid transparent;
  border-bottom: clamp(5px, 4.65px + 0.09vw, 6px) solid transparent;
  border-left: clamp(7px, 6.3px + 0.19vw, 9px) solid var(--ink-3);
  transform: translateY(-50%);
}
.c-step-row--thumb {
  /* 角丸は写真側で処理する（カードは三角を外にはみ出させるため切り取らない） */
}
.c-step-row--thumb .c-step-row__thumb {
  grid-area: thumb;
  display: block;
  aspect-ratio: 16/10;
  border-radius: calc(var(--r) - 1px) calc(var(--r) - 1px) 0 0;
  overflow: hidden;
  background: var(--bg-2);
}
.c-step-row--thumb .c-step-row__thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-step-row--thumb {
  /* 番号は英字フォントのイタリックではなく、見出しと同じ字面で見せる */
}
.c-step-row--thumb .c-step-row__no {
  grid-area: no;
  display: block;
  padding: clamp(9px, 7.59px + 0.38vw, 13px) 0 0 clamp(11px, 9.24px + 0.47vw, 16px);
  font-family: inherit;
  font-style: normal;
  font-size: clamp(16px, 14.59px + 0.38vw, 20px);
  color: var(--ink-3);
}
.c-step-row--thumb .c-step-row__title {
  grid-area: title;
  padding: clamp(9px, 7.59px + 0.38vw, 13px) clamp(11px, 9.24px + 0.47vw, 16px) 0 clamp(6px, 4.94px + 0.28vw, 9px);
}
.c-step-row--thumb .c-step-row__text {
  grid-area: text;
  padding: clamp(3px, 2.3px + 0.19vw, 5px) clamp(11px, 9.24px + 0.47vw, 16px) clamp(11px, 9.24px + 0.47vw, 16px);
}
.c-step-row--thumb {
  /* カードの列は中央に寄せる（中身の文字は左揃えのまま） */
  justify-content: center;
}

/* ---------- 18. Article ---------- */
.p-article {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  line-height: 2;
}
.p-article > .p-article__text, .p-article > p {
  margin-bottom: 1.5em;
  color: #25313c;
}
.p-article .c-lead {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  color: var(--ink-2);
  margin-bottom: 1.8em;
  font-weight: 500;
}
.p-article .p-article__heading, .p-article h2 {
  font-size: clamp(20px, 2.8vw, 26px);
  font-weight: 800;
  color: var(--ink);
  margin: 2.4em 0 1em;
  padding-bottom: 0.5em;
  border-bottom: 2px solid var(--line);
  letter-spacing: 0.01em;
}
.p-article h2 .c-ico, .p-article h3 .c-ico {
  color: var(--brand);
  width: 0.76em;
  height: 0.76em;
  margin-right: 0.42em;
  vertical-align: -0.04em;
  flex-shrink: 0;
}
.p-article .p-article__h3, .p-article h3 {
  font-size: clamp(17px, 2.2vw, 20px);
  font-weight: 700;
  color: var(--ink);
  margin: 2em 0 0.9em;
  display: flex;
  align-items: baseline;
  gap: 0.35em;
}
.p-article .p-article__h3::before, .p-article h3::before {
  content: "";
  width: 0.5em;
  height: 0.5em;
  border-radius: 3px;
  background: var(--brand);
  flex-shrink: 0;
  translate: 0 -0.05em;
}
.p-article .p-article__h4, .p-article h4 {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  font-weight: 700;
  color: var(--brand-ink);
  margin: 1.7em 0 0.7em;
}
.p-article ul:not([class]), .p-article ol:not([class]) {
  margin: 0 0 1.5em;
  padding: clamp(11px, 8.54px + 0.66vw, 18px) clamp(12px, 9.18px + 0.75vw, 20px);
  background: var(--bg-2);
  border-radius: var(--r-sm);
}
.p-article ul:not([class]) li {
  padding-left: clamp(16px, 12.48px + 0.94vw, 26px);
  position: relative;
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
}
.p-article ul:not([class]) li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.42em;
  width: 17px;
  height: 17px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%2312b981" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') center/contain no-repeat;
}
.p-article ol:not([class]) {
  counter-reset: num;
  list-style: none;
}
.p-article ol:not([class]) li {
  counter-increment: num;
  padding-left: clamp(20px, 15.07px + 1.31vw, 34px);
  position: relative;
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
}
.p-article ol:not([class]) li::before {
  content: counter(num);
  position: absolute;
  left: 0;
  top: 0.15em;
  width: clamp(16px, 13.89px + 0.56vw, 22px);
  height: clamp(16px, 13.89px + 0.56vw, 22px);
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 700;
  display: grid;
  place-items: center;
}
.p-article .p-article__quote, .p-article blockquote {
  border-left: 3px solid var(--brand);
  background: var(--brand-050);
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(12px, 9.18px + 0.75vw, 20px);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  margin: 0 0 1.5em;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  color: var(--ink-2);
}
.p-article .p-article__strong, .p-article__strong, .p-article strong {
  font-weight: 700;
  background: linear-gradient(transparent 62%, #ffe6b0 62%);
  padding: 0 1px;
  /* 折り返したとき2行目の頭にも padding とマーカーが付くようにする。
     既定の slice だと行またぎで切れて見える */
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.p-article .p-article__img, .p-article img {
  border-radius: var(--r-sm);
  margin: 0 0 1.5em;
}
.p-article .p-article__figure, .p-article figure {
  margin: 0 0 1.7em;
}
.p-article .p-article__caption, .p-article figcaption {
  font-size: 12.5px;
  color: var(--ink-3);
  text-align: center;
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-article a:not([class]) {
  color: var(--brand-ink);
  text-decoration: underline;
  text-decoration-color: rgba(10, 158, 203, 0.4);
  text-underline-offset: 3px;
  font-weight: 600;
}
@media (hover: hover) {
  .p-article a:not([class]):hover {
    color: var(--accent);
    text-decoration-color: var(--accent);
  }
}

.is-external::after {
  content: "";
  display: inline-block;
  width: 0.85em;
  height: 0.85em;
  margin-left: 3px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%238394a2" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg>') center/contain no-repeat;
  vertical-align: -0.03em;
}

.is-internal::after {
  content: "";
  display: inline-block;
  width: 0.85em;
  height: 0.85em;
  margin-left: 3px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230a6f96" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg>') center/contain no-repeat;
  vertical-align: -0.03em;
}

/* TOC (accordion + sticky mobile) */
.p-toc {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r);
  margin: 1.8em 0 2.2em;
  overflow: hidden;
}
.p-toc > .p-toc__summary, .p-toc > summary {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(28px, 21.66px + 1.69vw, 46px) clamp(10px, 7.89px + 0.56vw, 16px) clamp(12px, 9.18px + 0.75vw, 20px);
  font-weight: 700;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  position: relative;
}
.p-toc > .p-toc__summary::-webkit-details-marker, .p-toc > summary::-webkit-details-marker {
  display: none;
}
.p-toc > summary .c-ico {
  width: 18px;
  height: 18px;
  color: var(--brand);
}
.p-toc > .p-toc__summary::after, .p-toc > summary::after {
  content: "";
  position: absolute;
  right: clamp(15px, 12.54px + 0.66vw, 22px);
  width: 10px;
  height: 10px;
  border-bottom: 2px solid var(--ink-3);
  border-right: 2px solid var(--ink-3);
  transform: translateY(-2px) rotate(45deg);
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-toc[open] > summary::after {
  transform: translateY(2px) rotate(-135deg);
}
.p-toc__body {
  padding: 2px clamp(13px, 9.83px + 0.85vw, 22px) clamp(12px, 9.18px + 0.75vw, 20px);
}
.p-toc .p-toc__list, .p-toc ol {
  counter-reset: toc;
  list-style: none;
}
.p-toc ol .p-toc__list-item, .p-toc ol li {
  counter-increment: toc;
  margin-bottom: clamp(5px, 4.3px + 0.19vw, 7px);
}
.p-toc .p-toc__link, .p-toc ol li a {
  color: var(--ink-2);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 600;
  display: inline-flex;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-toc .p-toc__link::before, .p-toc ol li a::before {
  content: counter(toc, decimal-leading-zero);
  font-family: var(--font-en);
  /* 静的版はオレンジだったが、目次はコンバージョンの導線ではないので水色にする */
  color: var(--brand);
  font-weight: 700;
}
.p-toc {
  /* 本文の番号付きリスト(.p-article ol)の丸数字・本文リンクの下線は目次に効かせない */
}
.p-toc .p-toc__body ol li {
  counter-increment: toc;
  padding-left: 0;
  position: static;
}
.p-toc .p-toc__body ol li::before {
  content: none;
}
.p-toc .p-toc__body ol li a {
  text-decoration: none;
}
@media (hover: hover) {
  .p-toc .p-toc__link:hover, .p-toc ol li a:hover {
    color: var(--brand-ink);
  }
}
.p-toc ol .p-toc__list-list, .p-toc ol ol {
  margin: clamp(5px, 4.3px + 0.19vw, 7px) 0 4px clamp(17px, 13.13px + 1.03vw, 28px);
}
.p-toc ol ol li a {
  font-weight: 400;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
}
.p-toc ol ol li a::before {
  content: "–";
  color: var(--brand);
}

/* mobile floating TOC */
/* 本文の目次が画面の上に流れたときだけ main.js が is-visible を付ける */
.p-toc-fab {
  position: fixed;
  left: clamp(11px, 9.24px + 0.47vw, 16px);
  bottom: clamp(14px, 11.89px + 0.56vw, 20px);
  z-index: 920;
  display: none;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  background: var(--navy);
  color: #fff;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(10px, 7.89px + 0.56vw, 16px);
  border-radius: 999px;
  box-shadow: var(--sh-lg);
}
.p-toc-fab.is-visible {
  display: inline-flex;
}
.p-toc-fab .c-ico {
  width: 17px;
  height: 17px;
}

.p-toc-sheet {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(14, 34, 51, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-toc-sheet.is-open {
  opacity: 1;
  visibility: visible;
}
.p-toc-sheet__panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px) clamp(14px, 12.59px + 0.38vw, 18px) 0 0;
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(18px, 13.77px + 1.13vw, 30px);
  max-height: 72vh;
  overflow-y: auto;
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-toc-sheet.is-open .p-toc-sheet__panel {
  transform: none;
}
.p-toc-sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  font-weight: 700;
}
.p-toc-sheet__close {
  width: clamp(26px, 23.18px + 0.75vw, 34px);
  height: clamp(26px, 23.18px + 0.75vw, 34px);
  border-radius: 999px;
  background: var(--bg-2);
  display: grid;
  place-items: center;
}
.p-toc-sheet__close .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
}
.p-toc-sheet__link {
  display: flex;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) 4px;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 600;
  color: var(--ink);
}
.p-toc-sheet__link::before {
  content: counter(toc, decimal-leading-zero);
  font-family: var(--font-en);
  color: var(--brand);
}
.p-toc-sheet .p-toc-sheet__list, .p-toc-sheet ol {
  counter-reset: toc;
  list-style: none;
}
.p-toc-sheet ol .p-toc-sheet__list-item, .p-toc-sheet ol li {
  counter-increment: toc;
  margin-bottom: 4px;
}
.p-toc-sheet ol li a {
  display: flex;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) 4px;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 600;
  color: var(--ink);
}
.p-toc-sheet ol li a::before {
  content: counter(toc, decimal-leading-zero);
  font-family: var(--font-en);
  color: var(--brand);
}

@media screen and (min-width: 1001px) {
  .p-toc-fab, .p-toc-sheet {
    display: none !important;
  }
}
/* blog card */
.c-blog-card {
  display: flex;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  margin: 2em 0;
  background: #fff;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  position: relative;
}
.c-blog-card__img {
  flex: 0 0 210px;
  min-height: clamp(97px, 82.56px + 3.85vw, 138px);
  background: var(--bg-3);
}
.c-blog-card__img .c-blog-card__img-img, .c-blog-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
}
.c-blog-card__body {
  padding: clamp(9px, 6.89px + 0.56vw, 15px) clamp(11px, 8.54px + 0.66vw, 18px);
  display: flex;
  flex-direction: column;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  justify-content: center;
}
.c-blog-card__label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--brand-ink);
  align-self: flex-start;
  background: var(--brand-050);
  padding: 3px clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 999px;
}
.c-blog-card__label .c-ico {
  width: 12px;
  height: 12px;
}
.c-blog-card__title {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.5;
}
.c-blog-card__excerpt {
  font-size: 12.5px;
  color: var(--ink-3);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.c-blog-card a {
  text-decoration: none;
}
.c-blog-card a::after {
  content: "";
  position: absolute;
  inset: 0;
}

@media screen and (max-width: 620px) {
  .c-blog-card {
    flex-direction: column;
  }
  .c-blog-card__img {
    flex-basis: auto;
    aspect-ratio: 16/7;
  }
}
/* tour recommend box (in article) */
.p-tour-recommend {
  border: 1px solid var(--accent);
  border-radius: var(--r);
  margin: 2.2em 0;
  background: #fff;
  overflow: hidden;
  position: relative;
}
.p-tour-recommend__head {
  background: var(--accent-ink);
  color: #fff;
  font-weight: 700;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  padding: clamp(5px, 3.94px + 0.28vw, 8px) clamp(11px, 8.54px + 0.66vw, 18px);
  display: flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
}
.p-tour-recommend__head .c-ico {
  width: 16px;
  height: 16px;
}
.p-tour-recommend__inner {
  display: flex;
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
  padding: clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-tour-recommend__img {
  flex: 0 0 190px;
  border-radius: var(--r-sm);
  overflow: hidden;
}
.p-tour-recommend__img .p-tour-recommend__img-img, .p-tour-recommend__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
}
.p-tour-recommend__body {
  flex: 1;
}
.p-tour-recommend__body .p-tour-recommend__body-heading, .p-tour-recommend__body h4 {
  /* 記事本文ではカード見出しを div[role=heading] で書くので、h1〜h4 の基本スタイルをここでも持つ */
  line-height: 1.45;
  letter-spacing: 0.01em;
  word-break: auto-phrase;
  text-wrap: pretty;
  margin: 0 0 clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  color: var(--ink);
}
.p-tour-recommend__body .p-tour-recommend__body-text, .p-tour-recommend__body p {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  margin-bottom: clamp(7px, 5.59px + 0.38vw, 11px);
  line-height: 1.7;
}
.p-tour-recommend .p-price {
  text-align: left;
  margin-bottom: clamp(7px, 5.59px + 0.38vw, 11px);
}

@media screen and (max-width: 620px) {
  .p-tour-recommend__inner {
    flex-direction: column;
  }
  .p-tour-recommend__img {
    flex-basis: auto;
    aspect-ratio: 16/8;
  }
}
/* writer box */
.p-writer-box {
  display: flex;
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(13px, 9.83px + 0.85vw, 22px);
  margin: 2.6em 0 2em;
}
.p-writer-box__avatar {
  flex-shrink: 0;
  width: clamp(50px, 42.25px + 2.07vw, 72px);
  height: clamp(50px, 42.25px + 2.07vw, 72px);
  border-radius: 999px;
  overflow: hidden;
  background: var(--brand-050);
}
.p-writer-box__avatar .p-writer-box__avatar-img, .p-writer-box__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
  border-radius: 0;
}
.p-writer-box {
  /* ロゴを出すとき。人物写真と違い、切り抜くと読めなくなるので全体を入れる */
}
.p-writer-box__avatar--logo {
  background: #fff;
}
.p-writer-box__avatar--logo .p-writer-box__avatar-img {
  object-fit: contain;
  padding: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-writer-box__label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--brand-ink);
}
.p-writer-box__name {
  display: block;
  font-size: clamp(13.5px, 12.8px + 0.19vw, 15.5px);
  font-weight: 700;
  color: var(--ink);
  margin: 2px 0 7px;
}
.p-writer-box .p-writer-box__text, .p-writer-box p {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  line-height: 1.8;
  margin: 0;
}
.p-writer-box {
  /* 紹介文の中に置く問い合わせ導線 */
}
.p-writer-box__link {
  color: var(--brand-ink);
}

@media (hover: hover) {
  .p-writer-box__link:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 520px) {
  .p-writer-box {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}
/* 執筆者ボックスのリンク。本文と同じ色なので下線で区別する */
.p-writer-box__link {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---------- 6. Hero + slider ---------- */
.p-hero {
  position: relative;
  background: var(--bg);
}

.p-hero-slide {
  position: relative;
  flex: 0 0 100%;
  scroll-snap-align: center;
  border-radius: var(--r-lg);
  overflow: hidden;
  aspect-ratio: 24/9;
  min-height: clamp(196px, 166.42px + 7.89vw, 280px);
}
.p-hero-slide .p-hero-slide__img, .p-hero-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-hero-slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(95deg, rgba(9, 26, 45, 0.72) 0%, rgba(9, 26, 45, 0.34) 52%, transparent 100%);
}
.p-hero-slide .p-hero-slide__heading, .p-hero-slide h2 {
  font-size: clamp(23px, 3.7vw, 40px);
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  text-shadow: 0 2px 16px rgba(9, 26, 45, 0.4);
}
.p-hero-slide .p-hero-slide__text, .p-hero-slide p {
  font-size: clamp(13px, 1.5vw, 16px);
  color: #e6f0f8;
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
  max-width: clamp(322px, 273.41px + 12.96vw, 460px);
}

.p-hero-slider__dots {
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  justify-content: center;
  padding: clamp(10px, 7.89px + 0.56vw, 16px) 0 0;
}
.p-hero-slider__dots button {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--line);
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-hero-slider__dots button[aria-current=true] {
  background: var(--brand);
  width: clamp(20px, 17.89px + 0.56vw, 26px);
}

@media screen and (max-width: 760px) {
  .p-hero-slide {
    aspect-ratio: auto;
    min-height: clamp(238px, 138.65px + 26.49vw, 340px);
  }
}
/* chips row */
.c-chip-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

/* ページ内ジャンプのチップ列。中央に寄せ、飛び先があることを下向きの矢印で示す */
.c-chip-row--anchor {
  justify-content: center;
}

.c-chip__down {
  width: clamp(11px, 10.3px + 0.19vw, 13px);
  height: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-3);
  flex: 0 0 auto;
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

@media (hover: hover) {
  .c-chip:hover .c-chip__down {
    transform: translateY(2px);
  }
}
/* チップ列の先頭に置くラベル（「人気の目的地」など） */
.c-chip-row__label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  line-height: 1;
  color: var(--brand-ink); /* 白地とのコントラスト比 4.5 以上 */
  letter-spacing: 0.01em;
}

.c-chip-row__label .c-ico {
  width: clamp(15px, 13.94px + 0.28vw, 18px);
  height: clamp(15px, 13.94px + 0.28vw, 18px);
  color: var(--brand);
  display: block;
  flex: 0 0 auto;
}

/* PCは一回り大きく（+25%）。チップより一段上の情報として立たせる */
@media screen and (min-width: 1001px) {
  .c-chip-row__label {
    font-size: 19px;
    gap: 8px;
  }
  .c-chip-row__label .c-ico {
    width: 23px;
    height: 23px;
  }
}
/* チップ列のスクロールを知らせる右端のフェード＋矢印（wrapperは main.js が挿入） */
.c-chip-scroll {
  position: relative;
  min-width: 0;
}
.c-chip-scroll__fade {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 52px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 4px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), var(--chip-fade, #fff) 62%);
}
.c-chip-scroll__fade .c-ico {
  width: 18px;
  height: 18px;
  color: var(--ink-2);
}
.c-chip-scroll.is-scrollable:not(.at-end) .c-chip-scroll__fade {
  opacity: 1;
}

/* ラベル付きの行（トップの「人気の目的地」）: PCはラベルとチップが横一列。
   チップの入れ物(__list)は行の中で折り返す */
.c-chip-row__list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

/* SPは折り返さず横スクロール（3行に積むと画面を食うため） */
@media screen and (max-width: 620px) {
  .c-chip-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .c-chip-row::-webkit-scrollbar {
    display: none;
  }
  .c-chip-row > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  /* ラベル付きの行: ラベルは上段に中央寄せで固定し、横スクロールするのはチップ列(__list)だけ。
     行そのものはスクロールさせない */
  .c-chip-row--labeled {
    display: block;
    overflow: visible;
    scroll-snap-type: none;
    /* 「さがす」との間が詰まりすぎていたので広げる。u-mt-14 は3重の詳細度で書かれているのでそれより強く */
  }
  .c-chip-row--labeled.u-mt-14.u-mt-14.u-mt-14 {
    margin-top: 28px;
  }
  .c-chip-row--labeled .c-chip-row__label {
    display: flex;
    justify-content: center;
    width: 100%;
    margin-bottom: 14px;
    font-size: 14px;
  }
  .c-chip-row--labeled .c-chip-row__list {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    /* コンテナの余白(16px)を打ち消して画面端まで広げ、内側の余白で先頭を元の位置に戻す */
    margin-inline: -16px;
    padding-inline: 16px;
    scroll-padding-inline: 16px;
  }
  .c-chip-row--labeled .c-chip-row__list::-webkit-scrollbar {
    display: none;
  }
  .c-chip-row--labeled .c-chip-row__list > * {
    flex: 0 0 auto;
    scroll-snap-align: start;
    /* 横スクロールの列は詰めて、1画面に3枚近く見せる */
    font-size: 12.5px;
    padding: 7px 13px;
    gap: 5px;
  }
  /* SPは右端のフェード＋矢印を出さない。端で切れるチップ自体にスクロールできることを語らせる */
  .c-chip-scroll__fade {
    display: none;
  }
}
/* チップ列の左右ボタン（トップの「人気の目的地」。wrapper とボタンは main.js が挿入）
   横スクロールできるときだけ出し、端に着いた側は消す。
   端をうっすらグラデで白く抜き、その上に三角を置く（グラデは例外的に使用） */
.c-chip-arrows {
  position: relative;
  min-width: 0;
}
.c-chip-arrows__btn {
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  width: clamp(44px, 41.18px + 0.75vw, 52px);
  padding: 0 0.5rem;
  border: 0;
  background: transparent;
  color: var(--brand);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.28s;
}
.c-chip-arrows__btn .c-ico {
  width: clamp(16px, 15.3px + 0.19vw, 18px);
  height: clamp(16px, 15.3px + 0.19vw, 18px);
}
.c-chip-arrows__btn--prev {
  left: -1rem;
  justify-content: flex-start;
  background: linear-gradient(90deg, #fff 30%, rgba(255, 255, 255, 0));
}
.c-chip-arrows__btn--next {
  right: -1rem;
  justify-content: flex-end;
  background: linear-gradient(270deg, #fff 30%, rgba(255, 255, 255, 0));
}
.c-chip-arrows.is-scrollable:not(.at-start) .c-chip-arrows__btn--prev, .c-chip-arrows.is-scrollable:not(.at-end) .c-chip-arrows__btn--next {
  opacity: 1;
  visibility: visible;
}

.c-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1.5px solid var(--line-strong);
  color: var(--ink-2);
  font-size: 13px;
  font-weight: 600;
  padding: 8px 15px;
  border-radius: 999px;
  white-space: nowrap;
}
.c-chip .c-ico {
  width: 15px;
  height: 15px;
  color: var(--brand);
}
@media (hover: hover) {
  .c-chip:hover {
    color: var(--brand-ink);
    background: var(--brand-050);
  }
}

/* ===== object/project/promo-links ===== */ /* ===== object/project/page-hero ===== */
/* ---------- 13. Page hero (下層) ---------- */
.p-page-hero {
  position: relative;
  min-height: clamp(161px, 136.7px + 6.48vw, 230px);
  display: flex;
  align-items: flex-end;
  color: #fff;
  overflow: hidden;
}
.p-page-hero .p-page-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14, 34, 51, 0.28), rgba(14, 34, 51, 0.72));
}
.p-page-hero__inner {
  position: relative;
  z-index: 2;
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: clamp(31px, 23.61px + 1.97vw, 52px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(18px, 13.77px + 1.13vw, 30px);
  width: 100%;
}
.p-page-hero .en {
  font-family: var(--font-en);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #bfe6f4;
  font-weight: 600;
}
.p-page-hero .p-page-hero__heading {
  font-size: clamp(24px, 4vw, 36px);
  font-weight: 800;
  line-height: 1.4;
  margin-top: 4px;
}
.p-page-hero .p-page-hero__text {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: #dcebf7;
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
  max-width: clamp(434px, 368.51px + 17.46vw, 620px);
}
.p-page-hero {
  /* 写真を持たないヒーロー。page-jrpass が以前から
     --navy / --deep / --lg を渡していたが定義が無く、白地にグラデが乗るだけの
     状態だった。 */
}
.p-page-hero--navy {
  background: var(--navy);
}
.p-page-hero--deep {
  background: var(--navy-600);
}
.p-page-hero--lg {
  min-height: clamp(196px, 162.9px + 8.83vw, 290px);
}
.p-page-hero {
  /* 背景色だけのヒーローでは、写真用の暗いグラデは不要 */
}
.p-page-hero--navy::after, .p-page-hero--deep::after {
  display: none;
}
.p-page-hero {
  /* 写真ヒーローのオーバーレイをベタ塗りにする（グラデ禁止のため）。
     page-private-transfer は同じ上書きをページ側に持っている */
}
.p-page-hero--flat::after {
  background: rgba(11, 28, 43, 0.72);
}

/* ---------- 25. Misc ---------- */
.c-pagination[hidden] {
  display: none;
}

.c-pagination {
  display: flex;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  justify-content: center;
  margin-top: clamp(26px, 19.66px + 1.69vw, 44px);
}
.c-pagination .c-pagination__item, .c-pagination a, .c-pagination__item, .c-pagination span {
  min-width: clamp(30px, 26.48px + 0.94vw, 40px);
  height: clamp(30px, 26.48px + 0.94vw, 40px);
  display: grid;
  place-items: center;
  padding: 0 clamp(4px, 3.3px + 0.19vw, 6px);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  border: 1px solid var(--line);
  font-family: var(--font-en);
  font-weight: 600;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
  background: #fff;
}
.c-pagination .current {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}
@media (hover: hover) {
  .c-pagination a:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}

/* flexにしないこと。地の文の中に <b>/<a> があると、それぞれが別の
   flexアイテムになり文章が列に分断される(実際に発生した不具合)。
   ブロック+インラインアイコンなら <span>で包んでも包まなくても同じ見た目になる。 */
.p-notice-strip {
  display: block;
  background: var(--brand-050);
  border: 1px solid var(--brand-100);
  padding: clamp(9px, 7.24px + 0.47vw, 14px) clamp(10px, 7.89px + 0.56vw, 16px);
  border-radius: var(--r-sm);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.85;
  color: var(--brand-ink);
}
.p-notice-strip .c-ico {
  width: 18px;
  height: 18px;
  vertical-align: -4px;
  margin-right: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-notice-strip > .p-notice-strip__item, .p-notice-strip__item {
  display: inline;
}
.p-notice-strip {
  /* blocks/callout が付ける色の修飾子。
     素の .p-notice-strip（テンプレート直書き）の見た目は変えないよう、
     修飾子が付いたときだけアイコンを色、本文を読み本文の色にする */
}
.p-notice-strip--brand, .p-notice-strip--accent, .p-notice-strip--gold, .p-notice-strip--plain {
  color: var(--ink-2);
}
.p-notice-strip--brand .c-ico, .p-notice-strip--accent .c-ico, .p-notice-strip--gold .c-ico, .p-notice-strip--plain .c-ico {
  color: var(--tone-ink);
}
.p-notice-strip--brand .p-notice-strip__strong, .p-notice-strip--accent .p-notice-strip__strong, .p-notice-strip--gold .p-notice-strip__strong, .p-notice-strip--plain .p-notice-strip__strong {
  color: var(--tone-ink);
  font-weight: 700;
}
.p-notice-strip--brand, .p-notice-strip--accent, .p-notice-strip--gold, .p-notice-strip--plain {
  background: var(--tone-bg);
  border-color: var(--tone-line);
}
.p-notice-strip--brand {
  --tone-bg:var(--brand-050);
  --tone-line:var(--brand-100);
  --tone-ink:var(--brand-ink);
}
.p-notice-strip--accent {
  --tone-bg:var(--accent-050);
  --tone-line:var(--accent-100);
  --tone-ink:var(--accent-ink);
}
.p-notice-strip--gold {
  --tone-bg:var(--gold-050);
  --tone-line:var(--gold-100);
  --tone-ink:var(--gold-ink);
}
.p-notice-strip--plain {
  --tone-bg:var(--bg-2);
  --tone-line:var(--line-strong);
  --tone-ink:var(--ink-2);
}

.no-image {
  background: var(--bg-3) url("../img/no-image.svg") center/cover no-repeat;
}

.c-back-to-top {
  position: fixed;
  right: clamp(13px, 11.24px + 0.47vw, 18px);
  bottom: clamp(15px, 12.54px + 0.66vw, 22px);
  width: clamp(34px, 29.77px + 1.13vw, 46px);
  height: clamp(34px, 29.77px + 1.13vw, 46px);
  border-radius: 999px;
  /* 紺のフッターの上でも輪郭が出るよう白地にする。
     背景を var(--navy) にしていたためフッター(同色)では丸が消え、
     矢印だけがフッターのリンク行に紛れて見えていた */
  background: #fff;
  color: var(--navy);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  box-shadow: var(--sh-lg);
  opacity: 0;
  visibility: hidden;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  z-index: 900;
}
.c-back-to-top .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
}
.c-back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
}
@media (hover: hover) {
  .c-back-to-top:hover {
    background: var(--brand-ink);
    background: var(--brand-050);
    color: #fff;
  }
}

.p-mobile-cta {
  display: none;
}

@media screen and (max-width: 1000px) {
  .p-mobile-cta {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 950;
    background: #fff;
    box-shadow: 0 -4px 20px rgba(14, 34, 51, 0.14);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    gap: clamp(8px, 5.6px + 0.64vw, 12px);
    align-items: center;
    border-top: 1px solid var(--line);
  }
  .p-mobile-cta .p-price {
    text-align: left;
  }
  .p-mobile-cta .c-btn {
    flex: 1;
    padding: clamp(8px, 5px + 0.8vw, 13px) clamp(6px, 3.6px + 0.64vw, 10px);
    font-size: clamp(13px, 11.8px + 0.32vw, 15px);
  }
  body.has-mobile-cta {
    padding-bottom: clamp(48px, 32.4px + 4.16vw, 74px);
  }
  /* SP/タブレット(予約バーが出る幅)では本文側のフォームを出さず、
     バーの「予約リクエスト」から開くモーダル(.p-bkm)の中でだけ表示する */
  .p-booking-box {
    position: static;
    display: none;
  }
  .p-bkm .p-booking-box {
    display: block;
  }
}
.l-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--navy);
  color: #fff;
  padding: clamp(6px, 4.59px + 0.38vw, 10px) clamp(12px, 9.18px + 0.75vw, 20px);
  z-index: 2000;
}
.l-skip-link:focus {
  left: 0;
}

.p-error-page {
  min-height: 56vh;
  display: grid;
  place-items: center;
  text-align: center;
  padding: clamp(42px, 32.14px + 2.63vw, 70px) clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-error-page .p-code {
  font-family: var(--font-en);
  font-size: clamp(80px, 15vw, 140px);
  font-weight: 800;
  line-height: 1;
  color: var(--navy);
}
.p-error-page__inner {
  width: 100%;
  max-width: 55rem;
}
.p-error-page__kicker {
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--brand-ink);
}
.p-error-page__heading {
  margin: clamp(10px, 7.89px + 0.56vw, 16px) 0 clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(20px, 17.18px + 0.75vw, 28px);
  font-weight: 800;
  line-height: 1.4;
  color: var(--ink);
}
.p-error-page__lede {
  max-width: 40rem;
  margin: 0 auto clamp(20px, 15.77px + 1.13vw, 32px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  line-height: 1.9;
  color: var(--ink-2);
}

/* ============================================================
   47. 疑似SPA遷移 (spa.js) — プログレスバー / ページ転換演出 /
       ナビ現在地表示 + アダプティブ・トーン(夜間の色温度)
   ============================================================ */
/* 画面上端のプログレスバー(120ms未満の遷移では表示されない) */
.p-spa-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: linear-gradient(90deg, var(--brand), var(--aurora));
  z-index: 3000;
  opacity: 0;
  pointer-events: none;
}
.p-spa-bar.on {
  opacity: 1;
  width: 80%;
  transition: width 1.2s cubic-bezier(0.1, 0.7, 0.3, 1), opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-spa-bar.done {
  width: 100%;
  transition: width 0.28s ease-out, opacity 0.3s 0.12s cubic-bezier(0.22, 0.61, 0.36, 1);
  opacity: 0;
}

/* ページ転換: 退場はわずかにフェード、入場はフェード+わずかな上昇 */
main.p-spa-leave {
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.28s ease-in, transform 0.28s ease-in;
}

main.p-spa-enter {
  animation: spaEnter 0.3s var(--ease-out);
}

@keyframes spaEnter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* ヘッダーナビの現在地(SPA遷移で自動更新) */
.l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link[aria-current=page] {
  color: var(--brand);
}
.l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link[aria-current=page]::after {
  content: "";
  display: block;
  position: absolute;
  left: clamp(10px, 8.59px + 0.38vw, 14px);
  right: clamp(10px, 8.59px + 0.38vw, 14px);
  bottom: 6px;
  height: 2px;
  border-radius: 2px;
  background: var(--brand);
}
.l-global-nav > .l-global-nav__list > .l-global-nav__list-item {
  position: relative;
}

/* アダプティブ・トーン: 夜間(18時〜6時)は背景をごく僅かに暖色へ。
   白基調(NEWT基準)を崩さない、意識されない程度の色温度調整。 */
html[data-tone=dusk] {
  --bg:#fffdf9;
  --bg-2:#f8f6f0;
  --bg-3:#f2efe8;
}

@media (prefers-reduced-motion: reduce) {
  .p-spa-bar {
    transition: none;
  }
  main.p-spa-leave {
    opacity: 1;
    transform: none;
    transition: none;
  }
  main.p-spa-enter {
    animation: none;
  }
}
/* ============================================================
   48. スマート社会的証明 (social-proof.js) — [data-proof]
   ============================================================ */
.p-proof-strip {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ink-2);
  background: var(--brand-050);
  border: 1px solid rgba(10, 158, 203, 0.2);
  border-radius: 999px;
  padding: clamp(5px, 3.94px + 0.28vw, 8px) clamp(10px, 7.89px + 0.56vw, 16px);
  margin: clamp(9px, 7.94px + 0.28vw, 12px) 0;
  max-width: 100%;
}
.p-proof-strip .c-ico {
  /* 星などのアイコンは図形が枠の上寄りで、和文の横に並ぶと浮いて見える。1px 下げて揃える */
  position: relative;
  top: 1px;
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  color: var(--brand);
}
.p-proof-strip {
  /* 評価の星は、ほかの星表示(口コミ・カード)と同じ金色 */
}
.p-proof-strip .p-proof-strip__ico--star {
  color: var(--gold);
}
.p-proof-strip .p-proof-strip__strong, .p-proof-strip__strong {
  color: var(--accent);
  font-weight: 800;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-family: var(--font-en);
  letter-spacing: 0.01em;
  margin: 0 2px;
  font-variant-numeric: tabular-nums;
}
.p-proof-strip[hidden] {
  display: none;
}
.p-proof-strip__text {
  min-width: 0;
}
.p-proof-strip {
  /* 文言の出し分け: 既定=PC用、520px以下=スマホ用の短縮版 */
}
.p-proof-strip__short {
  display: none;
}

@media screen and (max-width: 520px) {
  .p-proof-strip {
    font-size: 12px;
    padding: clamp(5px, -0.17px + 1.38vw, 7px) clamp(9px, -3.93px + 3.45vw, 14px);
    gap: clamp(5px, -2.76px + 2.07vw, 8px);
  }
  .p-proof-strip__full {
    display: none;
  }
  .p-proof-strip__short {
    display: inline;
  }
}
/* ライブインジケーター(直近の動きを示す指標にだけ付く) */
.p-proof-strip--live {
  border-color: rgba(232, 89, 12, 0.28);
  background: var(--brand-050);
}
.p-proof-strip__pulse {
  position: relative;
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 2px rgba(232, 89, 12, 0.18);
}
.p-proof-strip__pulse::before, .p-proof-strip__pulse::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--accent);
  opacity: 0.55;
  animation: proofPulse 2.4s cubic-bezier(0.22, 0.8, 0.28, 1) infinite;
  will-change: transform, opacity;
}
.p-proof-strip__pulse::after {
  animation-delay: 1.2s;
}

@keyframes proofPulse {
  0% {
    transform: scale(1);
    opacity: 0.55;
  }
  70% {
    transform: scale(3.4);
    opacity: 0;
  }
  100% {
    transform: scale(3.4);
    opacity: 0;
  }
}
/* アクセシビリティ: アニメーション停止設定では静的なドットにする */
@media (prefers-reduced-motion: reduce) {
  .p-proof-strip__pulse::before, .p-proof-strip__pulse::after {
    animation: none;
    opacity: 0;
  }
}
/* ============================================================
   64. サイト全体プロモーション (promo.js)
   ------------------------------------------------------------
   ①.p-promo-bar  = ヘッダー上の1行アナウンス(スクロールで流れる)
   ②.p-promo-card = スクロール30%/8秒後に1回だけ出るおすすめカード
                   PC=右下カード / スマホ=下部スリムバー
   ============================================================ */
.p-promo-bar {
  display: flex;
  align-items: center;
  background: var(--navy);
  color: #fff;
}
.p-promo-bar__link {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(10px, 7.89px + 0.56vw, 16px);
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  min-width: 0;
}
.p-promo-bar__link .c-ico {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: #7fd4ef;
}
.p-promo-bar__badge {
  flex-shrink: 0;
  background: var(--accent);
  border-radius: 999px;
  padding: 2px clamp(6px, 4.59px + 0.38vw, 10px);
  font-size: 11px;
  letter-spacing: 0.03em;
}
.p-promo-bar__title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (hover: hover) {
  .p-promo-bar__link:hover .p-promo-bar__title {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}
.p-promo-bar__close {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: clamp(26px, 23.18px + 0.75vw, 34px);
  height: clamp(26px, 23.18px + 0.75vw, 34px);
  margin-right: clamp(4px, 3.3px + 0.19vw, 6px);
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
}
@media (hover: hover) {
  .p-promo-bar__close:hover {
    color: #fff;
  }
}
.p-promo-bar__close .c-ico {
  width: 14px;
  height: 14px;
}

.p-promo-card {
  position: fixed;
  right: clamp(14px, 11.89px + 0.56vw, 20px);
  bottom: clamp(14px, 11.89px + 0.56vw, 20px);
  z-index: 950;
  width: min(320px, 100vw - 40px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: 0 18px 50px rgba(8, 24, 40, 0.25);
  overflow: hidden;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.35s var(--ease-out), transform 0.35s var(--ease-out);
}
.p-promo-card.is-in {
  opacity: 1;
  transform: none;
}
.p-promo-card__close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: clamp(22px, 19.18px + 0.75vw, 30px);
  height: clamp(22px, 19.18px + 0.75vw, 30px);
  border: 0;
  border-radius: 999px;
  background: rgba(14, 34, 51, 0.55);
  color: #fff;
  cursor: pointer;
}
.p-promo-card__close .c-ico {
  width: 13px;
  height: 13px;
}
.p-promo-card__link {
  display: block;
  color: var(--ink);
}
.p-promo-card__img {
  width: 100%;
  height: clamp(91px, 77.27px + 3.66vw, 130px);
  object-fit: cover;
  display: block;
}
.p-promo-card__body {
  display: block;
  padding: clamp(9px, 7.24px + 0.47vw, 14px) clamp(10px, 7.89px + 0.56vw, 16px) clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-promo-card__kicker {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--brand-ink);
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-promo-card__kicker .c-ico {
  width: 12px;
  height: 12px;
}
.p-promo-card__body .p-promo-card__body-strong, .p-promo-card__body-strong {
  display: block;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  font-weight: 800;
  line-height: 1.6;
  /* 和文は文節の切れ目で折り返す */
  word-break: auto-phrase;
  text-wrap: balance;
}
.p-promo-card__badge {
  display: inline-block;
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
  padding: 3px clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: 11px;
  font-weight: 800;
}

/* カード表示中は「トップへ戻る」を上に逃がす(右下の渋滞防止) */
body.has-promo-card .c-back-to-top {
  bottom: 227px;
}

@media screen and (max-width: 620px) {
  .p-promo-card {
    right: clamp(7px, 2.75px + 1.13vw, 10px);
    left: clamp(7px, 2.75px + 1.13vw, 10px);
    bottom: clamp(7px, 2.75px + 1.13vw, 10px);
    width: auto;
    display: flex;
    align-items: center;
  }
  .p-promo-card__img {
    width: clamp(64px, 24.38px + 10.57vw, 92px);
    height: clamp(53px, 20.45px + 8.68vw, 76px);
    flex-shrink: 0;
  }
  .p-promo-card__link {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
  }
  .p-promo-card__body {
    padding: clamp(6px, 0.34px + 1.51vw, 10px) clamp(26px, 6.19px + 5.28vw, 40px) clamp(6px, 0.34px + 1.51vw, 10px) clamp(8px, 2.34px + 1.51vw, 12px);
  }
  .p-promo-card__body .p-promo-card__body-strong, .p-promo-card__body-strong {
    font-size: 12.5px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .p-promo-card__badge {
    margin-top: 5px;
  }
  .p-promo-card__close {
    top: 50%;
    transform: translateY(-50%);
    right: 6px;
    background: var(--bg-2);
    color: var(--ink-2);
  }
  body.has-promo-card .c-back-to-top {
    bottom: 118px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-promo-card {
    transition: none;
  }
}
.p-transport-page {
  /* ボタンはページ全体で中央寄せ */
}
.p-transport-page .c-photo-card__actions {
  justify-content: center;
}

.p-private-transfer-page {
  /* ヒーローの既定オーバーレイはグラデなので、ベタ塗りに置き換える
     （page-flights と同じ扱い。アイキャッチ未設定なら --navy の色面になる） */
}
.p-private-transfer-page .p-page-hero::after {
  background: rgba(11, 28, 43, 0.72);
}

.p-company-page {
  /* ---- 理念 ---- */
}
.p-company-page .p-company__lead {
  font-size: clamp(13.5px, 12.8px + 0.19vw, 15.5px);
  line-height: 2.1;
  color: var(--ink-2);
  margin-top: clamp(12px, 9.89px + 0.56vw, 18px);
  text-align: center;
}
.p-company-page {
  /* 取扱分野。カードにせず、細い枠のピルを並べるだけにする */
}
.p-company-page .p-company__fields {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  margin: clamp(18px, 14.48px + 0.94vw, 28px) 0 0;
  list-style: none;
  padding: 0;
}
.p-company-page .p-company__field {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  padding: clamp(7px, 5.94px + 0.28vw, 10px) clamp(11px, 9.24px + 0.47vw, 16px);
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  color: var(--ink-2);
}
.p-company-page .p-company__field .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
}
.p-company-page .p-company__field-name {
  font-weight: 700;
  color: var(--ink);
}
.p-company-page {
  /* ---- 会社概要の表: 項目の列幅をそろえる ---- */
}
.p-company-page .p-company__table .styled__th {
  width: clamp(120px, 95.35px + 6.57vw, 190px);
  white-space: nowrap;
}
.p-company-page {
  /* ---- 支店カードを続けて置くときの間隔 ---- */
}
.p-company-page .p-office-card + .p-office-card {
  margin-top: clamp(20px, 15.07px + 1.31vw, 34px);
}
.p-company-page {
  /* ---- スタッフ ---- */
}
.p-company-page .p-company__staff-office {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  font-weight: 800;
  color: var(--ink);
  margin: clamp(22px, 17.07px + 1.31vw, 36px) 0 clamp(10px, 7.89px + 0.56vw, 16px);
  /* 左の青棒はやめ、字の大きさと余白だけで見出しにする */
  line-height: 1.4;
}
.p-company-page .p-company__staff-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
}

@media screen and (max-width: 760px) {
  .p-company-page .p-company__staff-list {
    grid-template-columns: 1fr;
  }
  .p-company-page .p-company__table .styled__th {
    white-space: normal;
  }
}
/* ---- 会社概要の下の認定ロゴ（静的英語版の並び） ---- */
.p-company__trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(12px, 7.77px + 1.13vw, 24px);
  margin-top: clamp(18px, 14.48px + 0.94vw, 28px);
}

.p-company__trust-img {
  display: block;
  height: clamp(44px, 39.77px + 1.13vw, 56px);
  width: auto;
}

/* ---- お問い合わせ3列（フォーム / 電話 / 来店） ---- */
.p-company__contact-btn {
  /* 本文と同じ行に並ばないよう、ボタンだけで1行を取る（幅は中身なり） */
  display: flex;
  width: fit-content;
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
}

.p-company__contact-tel {
  display: block;
  margin-top: 6px;
  font-weight: 700;
  font-size: clamp(15px, 14.3px + 0.19vw, 17px);
  color: var(--brand-ink);
}

/* ============================================================
   78. ニュースティッカー (.p-news-ticker)
       トップページのヘッダー最上部。最新ニュース5件を1件ずつ
       フェードで切り替える(main.js)。日付+カテゴリ+タイトルのみの
       テキスト表示。プロモ(Japan Festival等)はPC右下カードに一本化。
   ============================================================ */
/* スクロールしても消えないsticky表示。
   直下のsite-header(sticky top:0)とは :has で座標を譲り合う(閉じたら即座に詰まる)。
   z-indexはヘッダー(1000)より下げ、ドロワーやドロップダウンに被らないようにする */
.p-news-ticker {
  background: var(--navy);
  color: #fff;
  position: sticky;
  top: 0;
  z-index: 999;
}

/* ドロワー展開中はヘッダーのbackdrop-filterを外す。
   backdrop-filterは position:fixed の子(ドロワー)の包含ブロックになってしまい、
   メニューがヘッダーの高さでクリップされる */
body.nav-open .l-site-header {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* ドロワーにEnglishを入れたので、スマホのユーティリティバーのENは出さない */
@media screen and (max-width: 1080px) {
  .l-utility-bar .p-lang-switch {
    display: none;
  }
}
body:has(.p-news-ticker:not([hidden])) .l-site-header {
  top: clamp(25px, 21.13px + 1.03vw, 36px);
}

@media screen and (max-width: 620px) {
  body:has(.p-news-ticker:not([hidden])) .l-site-header {
    top: clamp(24px, 9.85px + 3.77vw, 34px);
  }
}
/* ヘッダー上下段と同じインナー幅に揃える */
.p-news-ticker__inner {
  max-width: var(--w-header);
  margin-inline: auto;
  padding: 0 clamp(19px, 14.42px + 1.22vw, 32px);
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  height: clamp(27px, 23.83px + 0.85vw, 36px);
}
.p-news-ticker__label {
  flex-shrink: 0;
  font-weight: 800;
  letter-spacing: 0.1em;
  font-size: 10.5px;
  color: #9fc9de;
  display: flex;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  align-items: center;
  font-family: var(--font-en);
}
.p-news-ticker__label .c-ico {
  width: 13px;
  height: 13px;
}
.p-news-ticker__list {
  position: relative;
  flex: 1;
  height: 100%;
  overflow: hidden;
}
.p-news-ticker__item {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  font-size: 12.5px;
  color: #fff;
  text-decoration: none;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(9px);
  transition: opacity 0.45s, transform 0.45s;
  pointer-events: none;
}
.p-news-ticker__item.is-on {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
@media (hover: hover) {
  .p-news-ticker__item:hover .p-news-ticker__t {
    text-decoration: underline;
  }
}
.p-news-ticker__item .p-news-ticker__item-time, .p-news-ticker__item-time, .p-news-ticker__item time {
  font-family: var(--font-en);
  color: #9fc9de;
  flex-shrink: 0;
  font-size: 11.5px;
  letter-spacing: 0.04em;
}
.p-news-ticker__cat {
  background: rgba(255, 255, 255, 0.16);
  border-radius: 5px;
  padding: 2px clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: 10.5px;
  font-weight: 700;
  flex-shrink: 0;
}
.p-news-ticker__t {
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
}
.p-news-ticker {
  /* 閉じるボタン。タップ領域は44px確保しつつ、見た目のアイコンは小さく控えめに。 */
}
.p-news-ticker__close {
  flex-shrink: 0;
  width: clamp(22px, 19.18px + 0.75vw, 30px);
  height: clamp(22px, 19.18px + 0.75vw, 30px);
  margin-right: -6px;
  display: grid;
  place-items: center;
  border: 0;
  background: none;
  cursor: pointer;
  color: #9fc9de;
  border-radius: 999px;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-news-ticker__close .c-ico {
  width: 15px;
  height: 15px;
}
@media (hover: hover) {
  .p-news-ticker__close:hover {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
  }
}
.p-news-ticker__close:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 1px;
}

@media screen and (max-width: 620px) {
  .p-news-ticker__label {
    display: none;
  }
  .p-news-ticker__inner {
    padding: 0 clamp(5px, 0.75px + 1.13vw, 8px) 0 clamp(9px, 1.92px + 1.89vw, 14px);
    height: clamp(26px, 14.68px + 3.02vw, 34px);
    gap: clamp(6px, 0.34px + 1.51vw, 10px);
  }
  .p-news-ticker__item .p-news-ticker__item-time, .p-news-ticker__item-time, .p-news-ticker__item time {
    display: none;
  }
  .p-news-ticker__close {
    width: clamp(26px, 14.68px + 3.02vw, 34px);
    height: clamp(26px, 14.68px + 3.02vw, 34px);
    margin-right: 0;
  }
}
/* ============================================================
   79. お得情報の受け取り (.p-subscribe-band)
       LINE友だち追加(毎週配信+無料相談)とニュースレター登録の2カード。
       フッター直前に置く。LINE訴求強化。
   ============================================================ */
.p-subscribe-band {
  background: var(--bg-2);
  padding: clamp(28px, 21.66px + 1.69vw, 46px) 0 clamp(30px, 22.96px + 1.88vw, 50px);
}
.p-subscribe-band .p-subscribe-band__heading, .p-subscribe-band h2 {
  text-align: center;
  font-size: clamp(19px, 2.4vw, 23px);
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
}

.p-sub-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(16px, 12.48px + 0.94vw, 26px) clamp(14px, 10.48px + 0.94vw, 24px);
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  box-shadow: var(--sh-xs);
}
.p-sub-card .p-sub-card__heading, .p-sub-card h3 {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  line-height: 1.5;
}
.p-sub-card .p-sub-card__text, .p-sub-card p {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.95;
}
.p-sub-card__perks {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  margin: 2px 0 4px;
}
.p-sub-card__perks .p-sub-card__perks-span, .p-sub-card__perks span {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--brand-ink);
  background: var(--brand-050);
  border-radius: clamp(74px, 65.2px + 2.35vw, 99px);
  padding: 4px clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-sub-card--line .p-sub-card__perks-item, .p-sub-card--line .p-sub-card__perks span {
  color: #0b7a3d;
  background: #e8f9ee;
}
.p-sub-card form {
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-sub-card input[type=email] {
  flex: 1;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(9px, 7.59px + 0.38vw, 13px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  background: var(--bg-2);
}
.p-sub-card input[type=email]:focus {
  outline: 2px solid var(--brand);
  background: #fff;
}

.c-btn--linegreen {
  background: var(--line-green);
  color: #fff;
}
@media (hover: hover) {
  .c-btn--linegreen:hover {
    background: #05b34c;
    color: #fff;
  }
}

@media screen and (max-width: 760px) {
  .p-subscribe-band {
    padding: clamp(23px, 10.34px + 3.38vw, 36px) 0 clamp(26px, 12.36px + 3.64vw, 40px);
  }
  .p-sub-card form {
    flex-direction: column;
  }
}
/* ============================================================
   84. 利用シーン (.p-scene-list)
       専用車送迎ページ「こんなときに」。
       番号+シーン名+ひとことのリスト。罫線と余白だけで見せる。
   ============================================================ */
.p-scene-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  margin-top: clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-scene-list .p-scene-list__item {
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(11px, 8.54px + 0.66vw, 18px) clamp(12px, 9.18px + 0.75vw, 20px);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-scene-list .p-scene-list__item:nth-child(3n+2), .p-scene-list .p-scene-list__item:nth-child(3n) {
  border-left: 1px solid var(--line);
}
.p-scene-list .no {
  font-family: var(--font-en);
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--brand);
}
.p-scene-list .p-scene-list__strong, .p-scene-list__strong {
  font-weight: 700;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  line-height: 1.6;
}
.p-scene-list .p-scene-list__text {
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 1.8;
}

@media screen and (max-width: 760px) {
  .p-scene-list {
    grid-template-columns: 1fr 1fr;
  }
  .p-scene-list .p-scene-list__item:nth-child(3n+2), .p-scene-list .p-scene-list__item:nth-child(3n) {
    border-left: none;
  }
  .p-scene-list .p-scene-list__item:nth-child(2n) {
    border-left: 1px solid var(--line);
  }
}
@media screen and (max-width: 520px) {
  .p-scene-list {
    grid-template-columns: 1fr;
  }
  .p-scene-list .p-scene-list__item:nth-child(2n) {
    border-left: none;
  }
}
/* ============================================================
   90. スマホの相談FAB
       右下に常設の丸ボタン。押すと 相談フォーム/各支店への電話 が開く。
       ・スマホだけ(1080px以下=ドロワー領域)
       ・ツアー個別は予約バーの上に逃がす(--iace-bookbar-h は main.js が実測)
       ・生成は main.js(全ページ共通で配れるようJSで注入)
   ============================================================ */
/* PCにも出す（トップの「ツアーを検索」と同じ正円→ホバーでピルの動きを揃えるため）。 */
.p-fab {
  display: block;
  position: fixed;
  right: clamp(11px, 8.34px + 0.71vw, 16px);
  bottom: calc(clamp(14px, 10.81px + 0.85vw, 20px) + var(--iace-fab-lift, 0px));
  z-index: 940;
  /* 直径と中のアイコンの寸法。左右paddingは (直径−アイコン)/2 で、文字が畳まれている間は正円になる */
  --fab-d:clamp(41px, 31.96px + 2.41vw, 58px);
  --fab-i:clamp(20px, 16.81px + 0.85vw, 26px);
}
.p-fab__btn {
  min-width: var(--fab-d);
  height: var(--fab-d);
  padding: 0 calc((var(--fab-d) - var(--fab-i)) / 2);
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 28px rgba(233, 84, 32, 0.42);
  border: none;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-fab {
  /* アイコンのみになったぶん、丸の中で見える大きさにする */
}
.p-fab__btn .c-ico {
  flex: 0 0 auto;
  width: var(--fab-i);
  height: var(--fab-i);
}
.p-fab {
  /* 文字は max-width と opacity で畳んでおき、ホバー／キーボードフォーカスで開く
     （トップの「ツアーを検索」.p-fv__search-text と同じ仕組み） */
}
.p-fab__btn-text {
  display: block;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: max-width 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.24s ease, margin-left 0.36s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-fab__btn:focus-visible .p-fab__btn-text {
  max-width: 8em;
  opacity: 1;
  margin-left: 8px;
}
@media (hover: hover) {
  .p-fab__btn:hover .p-fab__btn-text {
    max-width: 8em;
    opacity: 1;
    margin-left: 8px;
  }
}
.p-fab__btn:active {
  transform: scale(0.94);
}
.p-fab__menu {
  position: absolute;
  right: 0;
  bottom: clamp(49px, 37.83px + 2.98vw, 70px);
  display: grid;
  gap: clamp(6px, 4.4px + 0.43vw, 9px);
  /* いちばん長い項目の幅に全部そろえる（ボタンの大きさを均等にする） */
  justify-items: stretch;
  opacity: 0;
  visibility: hidden;
  translate: 0 8px;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-fab.is-open .p-fab__menu {
  opacity: 1;
  visibility: visible;
  translate: none;
}
.p-fab {
  /* 用件ごとに色を分ける。文字は白で統一し、大きさは menu 側の stretch でそろえる */
}
.p-fab__item {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(7px, 5.4px + 0.43vw, 10px);
  white-space: nowrap;
  min-height: clamp(38px, 33.74px + 1.13vw, 46px);
  background: #fff;
  color: #fff;
  font-size: clamp(11px, 9.67px + 0.35vw, 13.5px);
  font-weight: 700;
  padding: clamp(8px, 5.87px + 0.57vw, 12px) clamp(14px, 10.81px + 0.85vw, 20px);
  border-radius: 999px;
  box-shadow: var(--sh-lg);
  border: 0;
}
.p-fab__item .c-ico {
  width: 17px;
  height: 17px;
  color: currentColor;
  flex: 0 0 auto;
}
.p-fab {
  /* 相談フォーム: 主導線なのでFAB本体と同じオレンジ */
}
.p-fab__item--contact {
  background: var(--accent);
}
@media (hover: hover) {
  .p-fab__item--contact:hover {
    background: var(--accent-ink);
    color: #fff;
  }
}
.p-fab {
  /* LINE: ブランドカラー */
}
.p-fab__item--line {
  background: var(--line-green);
}
@media (hover: hover) {
  .p-fab__item--line:hover {
    background: #05a648;
    color: #fff;
  }
}
.p-fab {
  /* 電話: トロントはブランド水色、バンクーバーは紺（支店を色で見分けられるように） */
}
.p-fab__item--tel {
  background: var(--brand);
}
@media (hover: hover) {
  .p-fab__item--tel:hover {
    background: var(--brand-ink);
    color: #fff;
  }
}
.p-fab__item--tel-yvr {
  background: var(--navy);
}
@media (hover: hover) {
  .p-fab__item--tel-yvr:hover {
    background: var(--navy);
    color: #fff;
    filter: brightness(1.15);
  }
}
.p-fab__backdrop {
  position: fixed;
  inset: 0;
  z-index: -1;
  background: rgba(8, 22, 36, 0.35);
  opacity: 0;
  visibility: hidden;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-fab.is-open .p-fab__backdrop {
  opacity: 1;
  visibility: visible;
}
.p-fab {
  /* スマホ・タブレットではボタン脇のポップオーバーではなく、
     暗い背景の上に画面中央へ縦に並べるモーダル風にする */
}
@media screen and (max-width: 1080px) {
  .p-fab__menu {
    position: fixed;
    inset: 0;
    right: auto;
    bottom: auto;
    width: 100%;
    height: 100%;
    place-content: center;
    /* 列幅を固定して4本のピルを同じ幅(最大300px)にそろえる */
    grid-template-columns: min(300px, 100vw - 48px);
    justify-items: stretch;
    gap: 12px;
    padding: 24px;
    translate: none;
    scale: 0.96;
    transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.28s, scale 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .p-fab.is-open .p-fab__menu {
    scale: 1;
  }
  .p-fab__item {
    width: 100%;
    min-height: 54px;
    font-size: 15px;
    justify-content: center;
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(8, 22, 36, 0.28);
  }
  .p-fab__backdrop {
    background: rgba(8, 22, 36, 0.62);
    backdrop-filter: blur(3px);
  }
  .p-fab {
    /* 「閉じる」ボタン: 項目の下に文字だけで置く */
  }
  .p-fab__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    justify-self: center;
    margin-top: 6px;
    padding: 10px 18px;
    border: 0;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    cursor: pointer;
  }
  .p-fab__close .c-ico {
    width: 16px;
    height: 16px;
  }
}
.p-fab {
  /* PCのポップオーバーでは「閉じる」は出さない（背景タップとFAB再押下で閉じる） */
}
@media screen and (min-width: 1081px) {
  .p-fab__close {
    display: none;
  }
}
.p-fab {
  /* 開いている間はヘッダー(z-index:1000)より前に出す（背景がヘッダーの下に潜っていた） */
}
.p-fab.is-open {
  z-index: 1400;
}

/* トップでは「ツアーを検索」と同じく、FVを通り過ぎてからフェードインする。
   .is-shown の付け外しは home.js（FVの下端が画面の上に抜けたか）。他ページは最初から表示 */
/* .p-fab 自体に translate を掛けると fixed の背景・メニューが FAB の箱に閉じ込められるので、
   浮き上がりの動きは丸ボタン(.p-fab__btn)側に掛け、.p-fab は opacity だけ変える */
body.home .p-fab {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.36s cubic-bezier(0.22, 0.61, 0.36, 1);
}

body.home .p-fab .p-fab__btn {
  translate: 0 10px;
  transition: translate 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

body.home .p-fab.is-shown {
  opacity: 1;
  pointer-events: auto;
}

body.home .p-fab.is-shown .p-fab__btn {
  translate: none;
}

/* 予約バーがあるページ(ツアー個別)では、右下の追従ボタン一式をバーのぶん持ち上げる。
   FAB・販促カード・フッターの余白が同じ量ずれるよう変数で共有する。 */
body:has(.p-mobile-cta) {
  --iace-fab-lift:calc(var(--iace-bookbar-h, 74px) + clamp(6px, 3.87px + 0.57vw, 10px));
}

/* FAB・トップへ戻る・(トップでは)ツアー検索 が右下に3つ積み上がって見出しに被っていた。
   FABのあるページでは「トップへ戻る」を出さない（スクロールで戻れる） */
body.has-fab .c-back-to-top {
  display: none;
}

/* 追従ボタンがフッター最下段(リンク行・コピーライト)に被らないよう逃がす。
   PC はリンク行が中央寄せで右下のボタンと重ならないので、逃がすのは lg 以下だけ */
@media screen and (max-width: 860px) {
  body.has-fab .l-site-footer {
    padding-bottom: calc(clamp(14px, 10.81px + 0.85vw, 20px) + clamp(41px, 31.96px + 2.41vw, 58px) + clamp(10px, 7.87px + 0.57vw, 14px));
  }
}
@media screen and (max-width: 1080px) {
  body.has-fab .p-promo-card {
    bottom: calc(clamp(64px, 49.11px + 3.97vw, 92px) + var(--iace-fab-lift, 0px));
  }
  /* FVの特集タブが最後までスクロールできるよう、FABの分だけ余白を足す */
  body.has-fab .p-fv__tabs {
    padding-right: clamp(60px, 42.98px + 4.54vw, 92px);
  }
}
/* ============================================================
   インラインstyle由来のページ固有指定
   ・機械命名(`__section-1604cd`)は静的HTMLの style="" をクラス化したもの。
     該当ページをWP化するときに意味のある名前へ改名してこのブロックから出す
   ・詳細度3重ね(.x.x.x)はインライン時代の優先度の再現。新規で真似しない
   ============================================================ */
.p-page-hero--sm {
  min-height: clamp(126px, 106.99px + 5.07vw, 180px);
}
.p-page-hero--md {
  min-height: clamp(133px, 112.93px + 5.35vw, 190px);
}
.p-page-hero--lg {
  min-height: clamp(140px, 118.87px + 5.63vw, 200px);
}
.p-page-hero--xl {
  min-height: clamp(154px, 130.76px + 6.2vw, 220px);
}
.p-page-hero--navy {
  background: linear-gradient(120deg, var(--navy), var(--navy-600));
}
.p-page-hero--deep {
  background: linear-gradient(120deg, #0f2f52, #1c4d7a);
}
.p-page-hero--night {
  background: linear-gradient(120deg, var(--navy-900), var(--navy-600));
}
.p-page-hero__inner--search {
  padding: clamp(26px, 19.66px + 1.69vw, 44px) clamp(14px, 11.89px + 0.56vw, 20px) clamp(17px, 13.13px + 1.03vw, 28px);
}

/* ============================================================
   28. Premium: 「押したくなる」遷移UI & 比較の図解
   ============================================================ */
:root {
  --ease-out:cubic-bezier(.22,.8,.28,1);
}

/* ---- 比較テーブル(一目でわかる) ----
   /first-trip/ だけが使用。
   列の役割を面の色で分ける: 項目=白＋淡い丸アイコン / 個人手配=くすんだ青 / IACE=淡いオレンジ＋オレンジのチェック */
.p-vs-wrap {
  max-width: clamp(644px, 504.56px + 37.18vw, 1040px);
  margin-inline: auto;
}

.p-vs-table {
  --vs-diy:#3b5a78;
  --vs-diy-bg:#eef3f7;
  --vs-iace-bg:#fff6ee;
  width: 100%;
  min-width: clamp(540px, 532.96px + 1.88vw, 560px);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px);
  overflow: hidden;
  box-shadow: 0 10px 32px rgba(14, 34, 51, 0.1);
  background: #fff;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
}
.p-vs-table .p-col-item {
  width: 38%;
}
.p-vs-table .p-vs-table__hcell, .p-vs-table .p-vs-table__cell {
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(10px, 7.18px + 0.75vw, 18px);
  text-align: center;
  vertical-align: middle;
  border-bottom: 1px solid var(--line);
}
.p-vs-table {
  /* ---- 見出し行 ---- */
}
.p-vs-table .p-vs-table__th {
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(10px, 7.89px + 0.56vw, 16px);
  border-bottom: 0;
  font-weight: 700;
  line-height: 1.4;
}
.p-vs-table .h-item {
  padding-left: clamp(14px, 10.48px + 0.94vw, 24px);
  background: var(--navy);
  color: #fff;
  text-align: left;
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
}
.p-vs-table .p-h-diy {
  background: var(--vs-diy);
  color: #fff;
}
.p-vs-table .p-h-iace {
  position: relative;
  background: var(--navy);
  color: #fff;
}
.p-vs-table .rec {
  display: inline-block;
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
  padding: clamp(3px, 2.3px + 0.19vw, 5px) clamp(10px, 8.24px + 0.47vw, 15px);
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  font-weight: 800;
  line-height: 1.3;
}
.p-vs-table .p-h-diy__strong, .p-vs-table .p-h-iace__strong {
  display: block;
  font-size: clamp(14px, 12.24px + 0.47vw, 19px);
  font-weight: 800;
}
.p-vs-table {
  /* ---- 本文行 ---- */
}
.p-vs-table .i-name {
  padding-left: clamp(12px, 8.48px + 0.94vw, 22px);
  text-align: left;
  white-space: nowrap;
  font-size: clamp(13px, 11.94px + 0.28vw, 16px);
  font-weight: 800;
  color: var(--ink);
}
.p-vs-table__item-icon {
  display: inline-grid;
  place-items: center;
  width: clamp(32px, 27.77px + 1.13vw, 44px);
  height: clamp(32px, 27.77px + 1.13vw, 44px);
  margin-right: clamp(10px, 7.18px + 0.75vw, 18px);
  border-radius: 999px;
  background: var(--brand-050);
  vertical-align: middle;
}
.p-vs-table__item-icon .c-ico {
  width: clamp(16px, 14.59px + 0.38vw, 20px);
  height: clamp(16px, 14.59px + 0.38vw, 20px);
  color: var(--brand);
}
.p-vs-table .p-c-diy {
  background: var(--vs-diy-bg);
  color: var(--ink-2);
}
.p-vs-table .p-c-iace {
  background: var(--vs-iace-bg);
}
.p-vs-table .mk {
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
}
.p-vs-table .p-c-diy .mk {
  width: clamp(22px, 19.89px + 0.56vw, 28px);
  height: clamp(22px, 19.89px + 0.56vw, 28px);
  background: #dde5ec;
  color: var(--ink-3);
}
.p-vs-table .p-c-diy .mk .c-ico {
  width: clamp(11px, 9.94px + 0.28vw, 14px);
  height: clamp(11px, 9.94px + 0.28vw, 14px);
}
.p-vs-table .p-c-iace .mk {
  width: clamp(24px, 21.18px + 0.75vw, 32px);
  height: clamp(24px, 21.18px + 0.75vw, 32px);
  background: var(--accent);
  color: #fff;
}
.p-vs-table .p-c-iace .mk .c-ico {
  width: clamp(13px, 11.59px + 0.38vw, 17px);
  height: clamp(13px, 11.59px + 0.38vw, 17px);
}
.p-vs-table .p-c-diy__note {
  display: block;
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(11.5px, 10.8px + 0.19vw, 13.5px);
  color: var(--ink-2);
}
.p-vs-table .p-c-iace__note {
  display: block;
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(12.5px, 11.44px + 0.28vw, 15.5px);
  font-weight: 800;
  color: var(--navy);
}
.p-vs-table {
  /* ---- 集計行（窓口の数） ---- */
}
.p-vs-table tfoot .p-vs-table__td {
  padding-block: clamp(16px, 12.48px + 0.94vw, 26px);
  border-bottom: 0;
}
.p-vs-table tfoot .i-name {
  background: var(--navy);
  color: #fff;
  font-size: clamp(13px, 11.94px + 0.28vw, 16px);
}
.p-vs-table tfoot .p-c-diy {
  background: var(--vs-diy);
}
.p-vs-table tfoot .p-c-iace {
  position: relative;
  background: var(--vs-iace-bg);
}
.p-vs-table .big {
  font-family: var(--font-en);
  font-weight: 800;
  line-height: 1;
}
.p-vs-table tfoot .p-c-diy .big {
  font-size: clamp(26px, 21.07px + 1.31vw, 40px);
  color: #fff;
}
.p-vs-table tfoot .p-c-iace .big {
  font-size: clamp(34px, 26.96px + 1.88vw, 54px);
  color: var(--accent);
}
.p-vs-table {
  /* 個人手配 → IACE の境目に置く矢印 */
}
.p-vs-table__foot-arrow {
  position: absolute;
  top: 50%;
  left: 0;
  display: grid;
  place-items: center;
  width: clamp(30px, 25.77px + 1.13vw, 42px);
  height: clamp(30px, 25.77px + 1.13vw, 42px);
  border: clamp(2px, 1.65px + 0.09vw, 3px) solid #fff;
  border-radius: 999px;
  background: #1597a8; /* 青寄りの緑 */
  color: #fff;
  box-shadow: 0 4px 12px rgba(14, 34, 51, 0.25);
  transform: translate(-50%, -50%);
}
.p-vs-table__foot-arrow .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  stroke-width: 2.5;
}

/* mobileは横スクロールで崩れ防止 */
.p-vs-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* ---- 一目サマリー(散らばり → 集約) ---- */
.p-vs-glance {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
  margin-top: clamp(16px, 12.48px + 0.94vw, 26px);
  /* 枠線は全周。紺ベースで1枚ずつ少しだけ色を変える */
}
.p-vs-glance__item {
  --gc:var(--navy-600);
  padding: clamp(16px, 13.18px + 0.75vw, 24px) clamp(12px, 9.18px + 0.75vw, 20px);
  background: #fff;
  border: clamp(2px, 1.65px + 0.09vw, 3px) solid var(--gc);
  border-radius: clamp(12px, 10.59px + 0.38vw, 16px);
  box-shadow: 0 4px 14px rgba(14, 34, 51, 0.05);
  text-align: center;
}
.p-vs-glance__item:nth-child(2) {
  --gc:#2f5378;
}
.p-vs-glance__item:nth-child(3) {
  --gc:#274f63;
}
.p-vs-glance__label {
  margin-bottom: clamp(10px, 8.59px + 0.38vw, 14px);
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  font-weight: 700;
  color: var(--ink);
}
.p-vs-glance__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 11.07px + 1.31vw, 30px);
}
.p-vs-glance__diy {
  color: var(--ink-3);
}
.p-vs-glance__diy-strong {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(22px, 19.18px + 0.75vw, 30px);
  font-weight: 600;
  line-height: 1.1;
}
.p-vs-glance__diy-note {
  display: block;
  margin-top: clamp(3px, 2.3px + 0.19vw, 5px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
}
.p-vs-glance__arrow {
  font-size: clamp(18px, 15.89px + 0.56vw, 24px);
  color: var(--sky-ink);
}
.p-vs-glance__iace {
  color: var(--brand-ink);
}
.p-vs-glance__iace-strong {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(30px, 25.77px + 1.13vw, 42px);
  font-weight: 800;
  line-height: 1;
  color: var(--accent);
}
.p-vs-glance__iace-note {
  display: block;
  margin-top: clamp(3px, 2.3px + 0.19vw, 5px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  font-weight: 700;
  color: var(--brand-ink);
}

@media screen and (max-width: 760px) {
  .p-vs-glance {
    grid-template-columns: 1fr;
  }
}
/* ===== object/project/vs-pop ===== */
/* ============================================================
   29. 比較テーブル ✓スクロール連動ポップ
   ============================================================ */
.p-vs-anim tbody .mk {
  opacity: 0;
  transform: scale(0.2);
}
.p-vs-anim tbody .mk.pop {
  animation: mkpop 0.5s var(--ease-out) forwards;
}
.p-vs-anim tfoot .big {
  display: inline-block;
  opacity: 0;
  transform: translateY(8px);
}
.p-vs-anim tfoot .big.pop {
  animation: bigin 0.55s var(--ease-out) forwards;
}

@keyframes mkpop {
  0% {
    opacity: 0;
    transform: scale(0.2);
  }
  55% {
    opacity: 1;
    transform: scale(1.22);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes bigin {
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-vs-anim tbody .mk, .p-vs-anim tfoot .big {
    opacity: 1;
    transform: none;
    animation: none;
  }
}
/* ============================================================
   31. レビュー「すべて見る」モーダル (Reviews Modal)
   ============================================================ */
.p-rv-modal {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(12px, 9.18px + 0.75vw, 20px);
  background: rgba(8, 22, 36, 0.55);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-rv-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.p-rv-panel {
  width: 100%;
  max-width: clamp(448px, 380.39px + 18.03vw, 640px);
  max-height: 88vh;
  background: #fff;
  border-radius: clamp(15px, 13.24px + 0.47vw, 20px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 30px 70px rgba(8, 24, 40, 0.32);
  transform: translateY(24px) scale(0.98);
  transition: transform 0.38s var(--ease-out);
}

.p-rv-modal.is-open .p-rv-panel {
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .p-rv-panel {
    transition: none;
  }
}
.p-rv-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(12px, 9.18px + 0.75vw, 20px);
  border-bottom: 1px solid var(--line-2);
  flex-shrink: 0;
}
.p-rv-panel__head .p-rv-panel__head-strong, .p-rv-panel__head-strong {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 800;
  color: var(--ink);
}

.p-rv-close {
  width: clamp(27px, 23.83px + 0.85vw, 36px);
  height: clamp(27px, 23.83px + 0.85vw, 36px);
  border-radius: 999px;
  background: var(--bg-2);
  color: var(--ink-2);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-rv-close:hover {
    background: var(--line);
    transform: rotate(90deg);
  }
}
.p-rv-close .c-ico {
  width: 18px;
  height: 18px;
}

/* サマリーバンド */
.p-rv-summary {
  display: flex;
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
  align-items: center;
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px);
  background: var(--bg-2);
  flex-shrink: 0;
}

@media screen and (max-width: 520px) {
  .p-rv-summary {
    flex-direction: column;
    align-items: stretch;
    gap: clamp(9px, -3.93px + 3.45vw, 14px);
  }
}
.p-rv-summary__score {
  text-align: center;
  flex-shrink: 0;
  min-width: clamp(84px, 71.32px + 3.38vw, 120px);
}
.p-rv-summary__num {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(37px, 34.54px + 0.66vw, 44px);
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
}
.p-rv-summary__score .c-stars {
  margin: 5px 0 2px;
}
.p-rv-summary__count {
  font-size: 12px;
  color: var(--ink-3);
}

.p-rv-dist {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}
.p-rv-dist__row {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: 11.5px;
  color: var(--ink-3);
}
.p-rv-dist__star {
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  font-family: var(--font-en);
  font-weight: 700;
  color: var(--ink-2);
  flex-shrink: 0;
}
.p-rv-dist__star .c-ico {
  width: 11px;
  height: 11px;
  color: var(--gold);
  vertical-align: -1px;
}
.p-rv-dist__track {
  flex: 1;
  height: 7px;
  border-radius: 999px;
  background: var(--line);
  overflow: hidden;
}
.p-rv-dist__fill {
  height: 100%;
  border-radius: 999px;
  background: var(--gold);
  width: 0;
  transition: width 0.8s var(--ease-out);
}
.p-rv-dist__pct {
  width: clamp(26px, 23.18px + 0.75vw, 34px);
  text-align: right;
  flex-shrink: 0;
  font-family: var(--font-en);
}

/* コントロール(並替・絞込) */
.p-rv-controls {
  padding: clamp(9px, 7.24px + 0.47vw, 14px) clamp(12px, 9.18px + 0.75vw, 20px);
  border-bottom: 1px solid var(--line-2);
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 4.59px + 0.38vw, 10px) clamp(10px, 7.89px + 0.56vw, 16px);
  align-items: center;
  flex-shrink: 0;
}

.p-rv-sort {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: 12.5px;
  color: var(--ink-2);
}
.p-rv-sort .rv-sort__sel {
  font-family: inherit;
  font-size: 12.5px;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: clamp(4px, 3.3px + 0.19vw, 6px) clamp(16px, 12.48px + 0.94vw, 26px) clamp(4px, 3.3px + 0.19vw, 6px) clamp(6px, 4.59px + 0.38vw, 10px);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
}

.p-rv-chips {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}

.p-rv-chip {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-2);
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 5px clamp(9px, 7.94px + 0.28vw, 12px);
  cursor: pointer;
  transition: all 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-rv-chip:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}
.p-rv-chip.on {
  background: var(--brand-ink);
  border-color: var(--brand-ink);
  color: #fff;
}

/* リスト */
.p-rv-list {
  overflow-y: auto;
  padding: clamp(4px, 3.3px + 0.19vw, 6px) clamp(13px, 9.83px + 0.85vw, 22px) 0;
  flex: 1;
  -webkit-overflow-scrolling: touch;
}

.p-rv-item {
  padding: clamp(11px, 8.54px + 0.66vw, 18px) 0;
  border-bottom: 1px solid var(--line-2);
}
.p-rv-item__top {
  display: flex;
  align-items: center;
  gap: clamp(7px, 5.59px + 0.38vw, 11px);
}
.p-rv-item__score {
  font-family: var(--font-en);
  font-weight: 800;
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.p-rv-item__score .c-ico {
  width: 14px;
  height: 14px;
  color: var(--gold);
}
.p-rv-item__who {
  flex: 1;
  min-width: 0;
  line-height: 1.3;
}
.p-rv-item__name {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink);
  font-weight: 700;
}
.p-rv-item__date {
  display: block;
  font-size: 11px;
  color: var(--ink-3);
  font-family: var(--font-en);
}
.p-rv-item__src {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ink-3);
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 3px clamp(5px, 3.94px + 0.28vw, 8px);
  flex-shrink: 0;
}
.p-rv-item__attr {
  font-size: 11.5px;
  color: var(--brand-ink);
  margin: clamp(6px, 4.94px + 0.28vw, 9px) 0 clamp(4px, 3.3px + 0.19vw, 6px);
  font-weight: 600;
}
.p-rv-item__text {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  line-height: 1.85;
}
.p-rv-item__more {
  font-size: 12px;
  color: var(--brand-ink);
  font-weight: 700;
  background: none;
  cursor: pointer;
  padding: 2px 0;
  margin-top: 3px;
}
.p-rv-item.clamp .p-rv-item__text {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.p-rv-empty {
  padding: clamp(18px, 13.77px + 1.13vw, 30px) 0;
  text-align: center;
  color: var(--ink-3);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
}

/* フッター */
.p-rv-foot {
  padding: clamp(9px, 7.24px + 0.47vw, 14px) clamp(13px, 9.83px + 0.85vw, 22px);
  border-top: 1px solid var(--line-2);
  flex-shrink: 0;
}
.p-rv-foot .c-btn {
  width: 100%;
}

.p-rv-more {
  width: 100%;
  margin: clamp(9px, 7.94px + 0.28vw, 12px) 0 4px;
  padding: clamp(7px, 5.59px + 0.38vw, 11px);
  border: 1px solid var(--line);
  border-radius: clamp(8px, 6.94px + 0.28vw, 11px);
  background: #fff;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--ink-2);
  cursor: pointer;
  transition: all 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-rv-more:hover {
    color: var(--brand-ink);
    background: var(--brand-050);
  }
}

body.p-rv-lock {
  overflow: hidden;
}

/* ============================================================
   32. ツアー個別ページ「宿泊ホテル」ブロック (Hotel Block)
   ============================================================ */
.p-hotel-block {
  border: 1px solid var(--line);
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px);
  overflow: hidden;
  background: #fff;
}
.p-hotel-block__head {
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(14px, 10.48px + 0.94vw, 24px) clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-hotel-block__name {
  font-size: clamp(18px, 16.94px + 0.28vw, 21px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.5;
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-hotel-block__rank {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  flex-wrap: wrap;
}

.p-hotel-stars {
  display: inline-flex;
  gap: 1px;
  color: var(--gold);
}
.p-hotel-stars .c-ico {
  width: 16px;
  height: 16px;
}

/* ギャラリー(横スクロール) */
.p-hotel-gallery__item {
  flex: 0 0 auto;
  scroll-snap-align: start;
  border-radius: clamp(9px, 7.94px + 0.28vw, 12px);
  overflow: hidden;
  background: var(--bg-2);
}
.p-hotel-gallery__item:first-child {
  width: min(76%, 430px);
  aspect-ratio: 16/10;
}
.p-hotel-gallery__item {
  width: min(46%, 240px);
  aspect-ratio: 4/3;
}
.p-hotel-gallery__item .p-hotel-gallery__item-img, .p-hotel-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 本文・情報 */
.p-hotel-block__body {
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(14px, 10.48px + 0.94vw, 24px) clamp(4px, 3.3px + 0.19vw, 6px);
}

.p-hotel-desc {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.95;
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}

.p-hotel-note {
  font-size: 12px;
  color: var(--ink-3);
  line-height: 1.8;
  background: var(--bg-2);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(9px, 7.24px + 0.47vw, 14px);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}

/* 地図 */
.p-hotel-map {
  border-radius: clamp(9px, 7.94px + 0.28vw, 12px);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-hotel-map .p-hotel-map__img, .p-hotel-map iframe, .p-hotel-map img {
  width: 100%;
  height: clamp(154px, 130.76px + 6.2vw, 220px);
  border: 0;
  display: block;
  object-fit: cover;
}

.p-hotel-addr {
  font-size: 12.5px;
  color: var(--ink-2);
  display: flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  padding: 0 0 clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-hotel-addr .c-ico {
  width: 14px;
  height: 14px;
  color: var(--brand);
}

/* 客室 */
.p-hotel-room__spec {
  display: flex;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  flex-wrap: wrap;
  margin-top: clamp(9px, 7.94px + 0.28vw, 12px);
}
.p-hotel-room__spec .p-hotel-room__spec-item, .p-hotel-room__spec-item, .p-hotel-room__spec span {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink);
  font-weight: 600;
}
.p-hotel-room__spec .c-ico {
  width: 15px;
  height: 15px;
  color: var(--brand);
}

/* ============================================================
   34. 支店カード + Googleマップ (Office Cards)
   ============================================================ */
.p-office-card {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--sh-sm);
}
.p-office-card + .p-office-card {
  margin-top: clamp(17px, 13.13px + 1.03vw, 28px);
}
.p-office-card__head {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  padding: clamp(11px, 8.54px + 0.66vw, 18px) clamp(14px, 10.48px + 0.94vw, 24px);
  border-bottom: 1px solid var(--line-2);
}
.p-office-card__head .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  color: var(--brand);
  flex-shrink: 0;
}
.p-office-card__head .p-office-card__head-heading {
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 800;
  color: var(--ink);
  margin: 0;
}
.p-office-card__en {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--ink-3);
  margin-left: 10px;
}
.p-office-card__clock {
  margin-left: auto;
  font-size: 12px;
  color: var(--ink-2);
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  white-space: nowrap;
}
.p-office-card__clock .c-ico {
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.p-office-card__clock .p-office-card__clock-strong, .p-office-card__clock-strong {
  font-weight: 700;
  font-family: var(--font-en);
  color: var(--ink);
}
.p-office-card__body {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
}

@media screen and (max-width: 860px) {
  .p-office-card__body {
    grid-template-columns: 1fr;
  }
}
.p-office-card__info {
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(14px, 10.48px + 0.94vw, 24px);
  display: flex;
  flex-direction: column;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
}

.p-office-info-row {
  display: flex;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.75;
}
.p-office-info-row .p-office-info-row__term {
  flex: 0 0 74px;
  color: var(--ink-3);
  font-weight: 700;
  font-size: 12px;
  padding-top: 2px;
}
.p-office-info-row .p-office-info-row__desc {
  flex: 1;
  color: var(--ink);
  min-width: 0;
}
.p-office-info-row .p-office-info-row__desc .p-office-info-row__link {
  color: var(--brand-ink);
  font-weight: 600;
}

.p-office-card__actions {
  display: flex;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  flex-wrap: wrap;
  margin-top: 4px;
}
@media screen and (max-width: 760px) {
  .p-office-card__actions {
    justify-content: center;
  }
  .p-office-card__actions .c-btn {
    flex: 1 1 calc(50% - 10px);
    max-width: calc(50% - 5px);
  }
}
.p-office-card__map {
  position: relative;
  min-height: clamp(224px, 190.2px + 9.01vw, 320px);
  background: var(--bg-2);
}

@media screen and (max-width: 860px) {
  .p-office-card__map {
    min-height: clamp(182px, 121.69px + 16.08vw, 260px);
  }
}
.p-office-card__map .p-office-card__map-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ツアーコード表示(ヘッダーメタ行。問い合わせ時の口頭伝達・スタッフ判別用) */
.p-tour-code {
  background: var(--bg-2);
  border: 1px solid var(--line-2);
  border-radius: 999px;
  padding: 3px clamp(9px, 7.94px + 0.28vw, 12px);
}
.p-tour-code .p-tour-code__strong, .p-tour-code__strong {
  font-family: var(--font-en);
  font-weight: 800;
  color: var(--ink);
  letter-spacing: 0.03em;
}

/* ---------- 27. ホテル一覧テーブル ---------- */
.p-hotel-table {
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  background: #fff;
}
.p-hotel-table .p-hotel-table__table, .p-hotel-table table {
  width: 100%;
  border-collapse: collapse;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  min-width: clamp(448px, 380.39px + 18.03vw, 640px);
}
.p-hotel-table thead .p-hotel-table__hcell, .p-hotel-table thead th {
  background: var(--navy);
  color: #fff;
  font-weight: 700;
  padding: clamp(9px, 7.94px + 0.28vw, 12px) clamp(9px, 7.24px + 0.47vw, 14px);
  text-align: center;
  white-space: nowrap;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
}
.p-hotel-table thead .p-hotel-table__hcell:first-child, .p-hotel-table thead th:first-child {
  text-align: left;
}
.p-hotel-table tbody .p-hotel-table__cell, .p-hotel-table tbody td {
  border-bottom: 1px solid var(--line);
  padding: clamp(9px, 7.24px + 0.47vw, 14px);
  vertical-align: middle;
}
.p-hotel-table tbody tr:last-child .p-hotel-table__cell, .p-hotel-table tbody tr:last-child td {
  border-bottom: none;
}

.p-hotel-map {
  border: 1px solid var(--line);
  /* border-radius は object/project の .p-hotel-map(fluid 9-12px)が常に上書きしていたため削除 */
  overflow: hidden;
  background: var(--bg-2);
  aspect-ratio: 16/9;
  display: grid;
  place-items: center;
  color: var(--ink-3);
  position: relative;
}
.p-hotel-map .c-label {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 600;
}
.p-hotel-map .c-label .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  color: var(--brand);
}

/* ============================================================
   35. ツアー個別ページ 直接表示ブロック (Tour scroll sections)
   見どころ・宿泊ホテル・口コミをタブから外出しし、縦スクロールで読ませる。
   ============================================================ */
.p-tour-block {
  margin: 0 0 clamp(36px, 31.07px + 1.31vw, 50px);
  scroll-margin-top: 88px;
}
.p-tour-block:last-child {
  margin-bottom: 0;
}

.p-tour-points {
  margin-top: clamp(18px, 15.18px + 0.75vw, 26px);
  margin-bottom: clamp(36px, 31.07px + 1.31vw, 50px);
}
.p-tour-points:first-child {
  margin-top: 0;
}

.p-tour-layout .c-tabs__panel > .c-heading:not(:first-child) {
  margin-top: clamp(36px, 31.07px + 1.31vw, 50px);
}

.p-tour-related {
  margin-top: clamp(36px, 31.07px + 1.31vw, 50px);
}

/* オプショナルツアー表の説明文 */
.p-opt-desc {
  display: block;
  margin-top: 4px;
  font-weight: 400;
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-2);
}

/* ============================================================
   50. 宿泊ホテル 現地スタッフ評価 (.p-hotel-staff)
       ※外部OTA(Expedia等)の口コミは転載不可のため、
         自社オリジナルの評価に置き換えたブロック
   ============================================================ */
.p-hotel-block__ota {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.p-hotel-block__ota .c-ico {
  width: 13px;
  height: 13px;
}
@media (hover: hover) {
  .p-hotel-block__ota:hover {
    color: var(--brand);
  }
}

.p-hotel-staff {
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: #fff;
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(11px, 8.54px + 0.66vw, 18px);
  margin: clamp(12px, 9.18px + 0.75vw, 20px) 0;
}

@media screen and (min-width: 761px) {
  .p-hotel-staff {
    padding: clamp(16px, 13.18px + 0.75vw, 24px) clamp(17px, 13.83px + 0.85vw, 26px);
  }
}
.p-hotel-staff__head {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.59px + 0.38vw, 13px);
  flex-wrap: wrap;
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-hotel-staff__head .p-hotel-staff__head-img, .p-hotel-staff__head img {
  width: clamp(34px, 29.07px + 1.31vw, 48px);
  height: clamp(34px, 29.07px + 1.31vw, 48px);
  border-radius: 999px;
  object-fit: cover;
  flex-shrink: 0;
  background: #fff;
}
.p-hotel-staff__label {
  display: flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  font-weight: 800;
  color: var(--ink);
}
.p-hotel-staff__label .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
}
.p-hotel-staff__reasons {
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-hotel-staff__reasons .p-hotel-staff__reasons-item {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
}
.p-hotel-staff__tip {
  display: flex;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  align-items: flex-start;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.9;
  color: var(--ink-2);
  background: #fff;
  border: 1px dashed var(--line);
  border-radius: clamp(9px, 7.94px + 0.28vw, 12px);
  padding: clamp(9px, 7.59px + 0.38vw, 13px) clamp(9px, 6.89px + 0.56vw, 15px);
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-hotel-staff__tip .c-ico {
  width: 16px;
  height: 16px;
  color: var(--accent);
  margin-top: 3px;
}
.p-hotel-staff__tip .p-hotel-staff__tip-strong, .p-hotel-staff__tip-strong {
  color: var(--ink);
  font-weight: 700;
}

.p-rv-branch-ask {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
}
.p-rv-branch-ask[hidden] {
  display: none;
}

/* ============================================================
   52. ホテルカード [hotel_card] (Google Places API / inc/hotel-card.php)
       写真の上に名称と★をオーバーレイした角丸カード
   ============================================================ */
.p-hcard {
  margin: clamp(16px, 12.48px + 0.94vw, 26px) 0;
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px);
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 10px 30px rgba(10, 22, 34, 0.07);
}
.p-hcard__main {
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--bg-3);
}
.p-hcard__main .p-hcard__main-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-hcard__overlay {
  position: absolute;
  inset: auto 0 0 0;
  padding: clamp(31px, 23.61px + 1.97vw, 52px) clamp(12px, 9.18px + 0.75vw, 20px) clamp(11px, 8.54px + 0.66vw, 18px);
  background: linear-gradient(180deg, rgba(10, 22, 34, 0), rgba(10, 22, 34, 0.82));
  color: #fff;
}
.p-hcard__name {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
  line-height: 1.5;
  /* 和文は文節の切れ目で折り返す */
  word-break: auto-phrase;
  text-wrap: balance;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}
.p-hcard__rating {
  display: flex;
  align-items: baseline;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-hcard__stars {
  display: inline-flex;
  gap: 2px;
  align-self: center;
}
.p-hcard__star {
  width: 13px;
  height: 13px;
  background: rgba(255, 255, 255, 0.34);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.8 5.9 20.6l1.4-6.8L2.2 9.1l6.9-.8L12 2Z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 2.9 6.3 6.9.8-5.1 4.7 1.4 6.8L12 17.8 5.9 20.6l1.4-6.8L2.2 9.1l6.9-.8L12 2Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.p-hcard__star.is-on {
  background: var(--gold, #f6b73c);
}
.p-hcard__rating .p-hcard__rating-strong, .p-hcard__rating-strong {
  font-family: var(--font-en);
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.p-hcard__rating .p-hcard__rating-note, .p-hcard__rating-note {
  font-size: 11.5px;
  opacity: 0.85;
}
.p-hcard__caption {
  font-size: 12.5px;
  line-height: 1.8;
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
  opacity: 0.92;
}
.p-hcard__thumbs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  background: var(--line);
}
.p-hcard__thumbs .p-hcard__thumbs-img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  display: block;
}
.p-hcard__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  flex-wrap: wrap;
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: 11.5px;
  color: var(--ink-3);
  border-top: 1px solid var(--line);
}
.p-hcard__addr {
  flex: 1;
  min-width: 0;
}
.p-hcard__attr {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  white-space: nowrap;
}
.p-hcard__credit {
  opacity: 0.85;
}
.p-hcard__attr .p-hcard__attr-link {
  color: var(--ink-3);
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (hover: hover) {
  .p-hcard__attr .p-hcard__attr-link:hover {
    color: var(--brand);
  }
}

@media screen and (max-width: 520px) {
  .p-hcard__overlay {
    padding: clamp(29px, -1.41px + 8.11vw, 44px) clamp(10px, -2.16px + 3.24vw, 16px) clamp(9px, -1.14px + 2.7vw, 14px);
  }
  .p-hcard__name {
    font-size: clamp(13px, 7.93px + 1.35vw, 15.5px);
  }
  .p-hcard__foot {
    font-size: 11px;
  }
}
/* ============================================================
   41. サイト内検索 (フッター検索窓 + 検索結果ページ)
   スタッフがツアーコード・キーワードで即座に該当ページへ到達するための内部ツール
   ============================================================ */
.p-footer-search {
  display: flex;
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
  max-width: clamp(196px, 166.42px + 7.89vw, 280px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
}
.p-footer-search .p-footer-search__input {
  flex: 1;
  min-width: 0;
  background: none;
  border: 0;
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(9px, 7.94px + 0.28vw, 12px);
  color: #fff;
  font-size: 12.5px;
}
.p-footer-search .p-footer-search__input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.p-footer-search .p-footer-search__input:focus {
  outline: none;
}
.p-footer-search {
  /* type=search の標準の消去(×)ボタンは暗色で出るので、白の × に描き直す(Chrome / Safari) */
}
.p-footer-search .p-footer-search__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
  width: 12px;
  height: 12px;
  margin-left: 4px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 2l8 8M10 2l-8 8' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 2l8 8M10 2l-8 8' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
  cursor: pointer;
  opacity: 0.7;
}
.p-footer-search .p-footer-search__btn {
  background: rgba(255, 255, 255, 0.14);
  border: 0;
  color: #fff;
  padding: 0 clamp(9px, 7.59px + 0.38vw, 13px);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-footer-search .p-footer-search__btn:hover {
    background: var(--brand);
  }
}
.p-footer-search .c-ico {
  width: 15px;
  height: 15px;
}

/* 結果ページ */
.p-search-box {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  border: 1.5px solid var(--line);
  border-radius: clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(5px, 3.94px + 0.28vw, 8px) clamp(5px, 3.94px + 0.28vw, 8px) clamp(5px, 3.94px + 0.28vw, 8px) clamp(10px, 7.89px + 0.56vw, 16px);
  background: #fff;
  box-shadow: var(--sh-sm);
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-search-box > .c-ico {
  width: 18px;
  height: 18px;
  color: var(--ink-3);
  flex-shrink: 0;
}
.p-search-box .p-search-box__input {
  flex: 1;
  min-width: 0;
  border: 0;
  font-size: 15px;
  color: var(--ink);
  background: none;
}
.p-search-box .p-search-box__input:focus {
  outline: none;
}

.p-search-head__kw {
  display: inline-block;
  background: var(--brand-ink);
  color: #fff;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  padding: clamp(5px, 3.94px + 0.28vw, 8px) clamp(11px, 8.54px + 0.66vw, 18px);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-search-head__kw .p-search-head__kw-strong, .p-search-head__kw-strong {
  font-weight: 800;
}
.p-search-head__count {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
}

.p-search-cat {
  margin: clamp(18px, 13.77px + 1.13vw, 30px) 0 clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-search-cat .p-search-cat__heading {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
  color: var(--brand-ink);
  border-bottom: 2px solid var(--brand-100);
  padding-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}

.p-search-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-search-list .p-search-list__item {
  border-bottom: 1px solid var(--line-2);
}
.p-search-list .p-search-list__link {
  display: flex;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  align-items: baseline;
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(4px, 3.3px + 0.19vw, 6px);
  color: var(--ink);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.7;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-search-list .p-search-list__link:hover {
    background: var(--bg-2);
    color: var(--brand-ink);
  }
}
.p-search-list .p-search-list__time, .p-search-list__time, .p-search-list time {
  font-family: var(--font-en);
  font-size: 12px;
  color: var(--ink-3);
  flex: 0 0 84px;
}

.p-search-empty {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-3);
  line-height: 2;
  margin-top: clamp(16px, 12.48px + 0.94vw, 26px);
  border-top: 1px solid var(--line-2);
  padding-top: clamp(10px, 7.89px + 0.56vw, 16px);
}

.p-search-hot__label {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--ink-2);
}

.p-search-empty__lead {
  font-weight: 800;
  color: var(--ink);
}

/* Quick search / destinations bar
   丸アイコン＋「ラベル/値」の2段組みを縦罫線で区切る横一列。
   selectはフィールド全面に透明で重ねてあり(クリック範囲＝フィールド全体)、
   見えている値のテキストは tour-search.js が change で同期する。
   JSが動かなくてもHTMLに初期値を書いてあるので表示は崩れない。 */
.p-quick-search {
  max-width: var(--w-wide);
  margin: 22px auto 0;
  padding: 0 22px;
}
.p-quick-search__inner {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 9999px;
  box-shadow: 0 10px 30px rgba(16, 40, 64, 0.1);
  padding: 10px;
  overflow: hidden;
}
.p-quick-search__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: center;
  gap: 8px;
}

/* 項目は1つずつ角丸の枠線で囲む(区切り線ではなく箱にする)。角丸は9999px＝完全なピル形 */
.p-qs-field {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  /* 右の余白は右端中央に置く矢印(__chev)のぶん */
  padding: 9px 50px 9px 18px;
  border: 1px solid var(--line);
  border-radius: 9999px;
  background: #fff;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-qs-field__ico {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: var(--brand-050);
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.p-qs-field__ico .c-ico {
  width: 19px;
  height: 19px;
}
.p-qs-field__body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.p-qs-field {
  /* 幅が詰まっても縦積みにさせない(ラベル・値ともに1行＋…で省略) */
}
.p-qs-field__label {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-qs-field__value {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.p-qs-field__text {
  font-size: 15.5px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-qs-field {
  /* 矢印は値の直後ではなく、項目の右端中央に置く（SPと同じ） */
}
.p-qs-field__chev {
  position: absolute;
  right: 16px;
  top: 50%;
  translate: 0 -50%;
  width: 15px;
  height: 15px;
  color: var(--ink-3);
}
.p-qs-field {
  /* 透明のselectをフィールド全面に重ねる(ネイティブUIのまま見た目だけ差し替える) */
}
.p-qs-field__select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  border: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.p-qs-field:focus-within {
  border-color: var(--brand);
  background: var(--brand-050);
  outline: 2px solid var(--brand);
  outline-offset: -2px;
}

/* 高さは指定せず align-self:stretch で項目(.p-qs-field)と同じ高さに揃える。
   項目の高さが変わっても自動で追随する。 */
.p-qs-submit {
  flex: none;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: var(--brand-ink); /* 白文字とのコントラスト比 4.5 以上（--brand だと 2.9） */
  color: #fff;
  font-weight: 700;
  border-radius: 999px;
  padding: 0 30px;
  font-size: 15.5px;
  box-shadow: 0 6px 16px rgba(10, 158, 203, 0.24);
}
.p-qs-submit .c-ico {
  width: 19px;
  height: 19px;
}
@media (hover: hover) {
  .p-qs-submit:hover {
    background: var(--brand-ink);
  }
}

@media screen and (max-width: 1000px) {
  /* 横一列でなくなった時点でピル形をやめる。9999px は短辺の50%にクランプされ、
     縦積みだと巨大な円になって overflow:hidden が中のフィールドを切り落とす */
  .p-quick-search__inner {
    border-radius: var(--r-lg);
  }
  .p-quick-search__row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .p-qs-submit {
    grid-column: 1/-1;
    width: 100%;
    margin: 0;
    height: 54px;
  }
}
@media screen and (max-width: 620px) {
  /* SPは 1＋2。白カードの中に枠線セルを並べると二重の枠で野暮ったいので、
     セルは枠線なしの淡い水色の面にし、外側の白カードは影だけで浮かせる。
     丸アイコンは落とし、ラベル＋値を左に、開閉の矢印はセルの右中央に置く */
  .p-quick-search {
    padding: 0 16px;
  }
  .p-quick-search__inner {
    padding: 12px;
    border: 0;
    box-shadow: 0 14px 34px rgba(16, 40, 64, 0.14);
  }
  .p-quick-search__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  /* 項目は3つ。先頭（Area）を横いっぱいにして 1＋2 で並べる */
  .p-qs-field:first-child {
    grid-column: 1/-1;
  }
  .p-qs-field {
    /* 高さを詰めた横長のピル形 */
    padding: 8px 26px 8px 18px;
    gap: 0;
    border: 0;
    border-radius: 9999px;
    background: var(--brand-050);
  }
  .p-qs-field:focus-within {
    background: #fff;
    outline: 2px solid var(--brand);
    outline-offset: -2px;
  }
  .p-qs-field__ico {
    display: none;
  }
  .p-qs-field__body {
    gap: 2px;
  }
  .p-qs-field__label {
    font-size: 11px;
    color: var(--brand-ink);
  }
  .p-qs-field__text {
    font-size: 12.5px;
  }
  .p-qs-field__chev {
    right: 6px;
    color: var(--brand);
  }
  /* 「さがす」は中央寄せの中サイズ（最小幅200px） */
  .p-qs-submit {
    width: auto;
    min-width: 0;
    justify-self: center;
    height: auto;
    padding: 11px 22px;
    margin-top: 6px;
    font-size: 14px;
    line-height: 1;
    border-radius: 999px;
    box-shadow: 0 6px 18px rgba(10, 158, 203, 0.28);
  }
}
/* ============================================================
   57. ツアー検索の結果バー (tour-search.js)
   ------------------------------------------------------------
   .p-tsr__chips  = 絞り込みに使った条件(目的地・時期)
   .p-tsr-carry   = 絞り込みには使わず見積りへ引き継ぐ条件(出発地・人数)
                  → 「なぜ結果が減らないのか」をユーザーに誤解させない
   ============================================================ */
.p-tsr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  flex-wrap: wrap;
  background: var(--bg-2);
  border-radius: var(--r);
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(14px, 10.48px + 0.94vw, 24px);
  margin-top: clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-tsr__count {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink);
  line-height: 1.6;
}
.p-tsr__count .p-tsr__count-strong, .p-tsr__count-strong {
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 800;
  color: var(--brand-ink);
}
.p-tsr__count--zero .p-tsr__count--zero-strong, .p-tsr__count--zero-strong {
  font-weight: 700;
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  color: var(--ink);
}
.p-tsr__chips {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  flex-wrap: wrap;
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
}

.p-tsr-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
  background: var(--navy);
  border-radius: 999px;
  padding: 5px clamp(7px, 6.65px + 0.09vw, 8px) 5px clamp(9px, 7.24px + 0.47vw, 14px);
}
@media (hover: hover) {
  .p-tsr-chip:hover {
    color: #fff;
    background: var(--navy-600);
  }
}
.p-tsr-chip__x {
  width: 16px;
  height: 16px;
}

.p-tsr-carry {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-3);
  background: #fff;
  border: 1px dashed var(--line-2);
  border-radius: 999px;
  padding: 4px clamp(8px, 7.65px + 0.09vw, 9px) 4px clamp(9px, 7.94px + 0.28vw, 12px);
}
@media (hover: hover) {
  .p-tsr-carry:hover {
    color: var(--ink);
    border-color: var(--ink-3);
  }
}
.p-tsr-carry__x {
  width: 15px;
  height: 15px;
}

.p-tsr__hint {
  font-size: 12.5px;
  line-height: 1.9;
  color: var(--ink-2);
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
  max-width: 52ch;
}
.p-tsr__acts {
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  flex-shrink: 0;
}
.p-tsr__clear {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
}
@media (hover: hover) {
  .p-tsr__clear:hover {
    color: var(--brand);
  }
}

@media screen and (max-width: 760px) {
  .p-tsr {
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(10px, 3.48px + 1.74vw, 16px);
    padding: clamp(12px, 5.48px + 1.74vw, 18px) clamp(13px, 5.39px + 2.03vw, 20px);
  }
  .p-tsr__acts {
    width: 100%;
    flex-direction: column-reverse;
    align-items: stretch;
    gap: clamp(8px, 3.65px + 1.16vw, 12px);
  }
  .p-tsr__acts .c-btn {
    width: 100%;
    justify-content: center;
  }
  .p-tsr__clear {
    text-align: center;
  }
}
/* ============================================================
   73. ツアー一覧の絞り込み+並び替え (.p-catwrap/.p-cfilter/.p-ctoolbar/.p-csort)
       NEWTの一覧ページを参考: PC=左サイドバー(料金ヒストグラム+スライダー/
       日数/評価/こだわり)+右上に並び替え。スマホ=「しぼりこみ」ボタンで
       ボトムシート。UIはtour-catalog.jsが生成する。
   ============================================================ */
.p-catwrap {
  display: grid;
  grid-template-columns: 252px minmax(0, 1fr);
  gap: clamp(16px, 12.48px + 0.94vw, 26px);
  align-items: start;
}

.p-cfilter {
  position: sticky;
  top: calc(var(--header-h) + 20px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(11px, 8.54px + 0.66vw, 18px);
  display: grid;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  z-index: 5;
}
.p-cfilter__ttl {
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 800;
  color: var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-cfilter__clear {
  font-size: 12px;
  color: var(--brand-ink);
  background: none;
  border: 0;
  cursor: pointer;
  font-weight: 700;
  padding: 2px;
}
.p-cfilter__close {
  display: none;
}

.cfg {
  display: grid;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  border-top: 1px solid var(--line);
  padding-top: clamp(10px, 7.89px + 0.56vw, 16px);
}
.cfg:first-of-type {
  border-top: none;
  padding-top: 0;
}
.cfg > .cfg__strong, .cfg__strong {
  font-size: 12.5px;
  color: var(--ink-2);
  font-weight: 700;
}
.cfg .cfg__label {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink);
  cursor: pointer;
}
.cfg .cfg__label .n {
  margin-left: auto;
  font-size: 11.5px;
  color: var(--ink-3);
  font-family: var(--font-en);
}
.cfg .cfg__check {
  width: 17px;
  height: 17px;
  accent-color: var(--brand);
  flex-shrink: 0;
}
.cfg .cfg__label.is-zero {
  opacity: 0.4;
  pointer-events: none;
}

.p-chist {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: clamp(33px, 29.13px + 1.03vw, 44px);
  padding: 0 clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-chist .p-chist__item, .p-chist__item {
  flex: 1;
  background: var(--brand);
  border-radius: 2px 2px 0 0;
  min-height: 2px;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-chist .p-chist__item.off {
  background: var(--line);
}

.p-crange {
  position: relative;
  height: clamp(18px, 15.89px + 0.56vw, 24px);
  margin: 0 clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-crange__track {
  position: absolute;
  left: 0;
  right: 0;
  top: clamp(7px, 5.94px + 0.28vw, 10px);
  height: 4px;
  border-radius: clamp(74px, 65.2px + 2.35vw, 99px);
  background: var(--line);
}
.p-crange__fill {
  position: absolute;
  top: clamp(7px, 5.94px + 0.28vw, 10px);
  height: 4px;
  border-radius: clamp(74px, 65.2px + 2.35vw, 99px);
  background: var(--brand);
}
.p-crange .p-crange__input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: clamp(18px, 15.89px + 0.56vw, 24px);
  -webkit-appearance: none;
  appearance: none;
  background: none;
  pointer-events: none;
  margin: 0;
}
.p-crange .p-crange__input::-webkit-slider-runnable-track {
  height: clamp(18px, 15.89px + 0.56vw, 24px);
  background: transparent;
}
.p-crange .p-crange__input::-webkit-slider-thumb {
  -webkit-appearance: none;
  pointer-events: auto;
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--brand);
  box-shadow: var(--sh-sm);
  cursor: pointer;
  margin-top: 2px;
}
.p-crange .p-crange__input::-moz-range-track {
  height: clamp(18px, 15.89px + 0.56vw, 24px);
  background: transparent;
}
.p-crange .p-crange__input::-moz-range-thumb {
  pointer-events: auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--brand);
  box-shadow: var(--sh-sm);
  cursor: pointer;
}

.p-cprice {
  display: flex;
  justify-content: space-between;
  font-size: 12.5px;
  color: var(--ink);
  font-family: var(--font-en);
  font-weight: 700;
  padding: 0 4px;
}

.p-ctoolbar {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
  flex-wrap: wrap;
}
.p-ctoolbar__count {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink);
  font-weight: 700;
}
.p-ctoolbar__count .p-ctoolbar__count-strong, .p-ctoolbar__count-strong {
  font-weight: 700;
  font-family: var(--font-en);
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
}

.p-csort {
  position: relative;
  margin-left: auto;
}

.p-csort__btn, .p-cfilter__open {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: clamp(74px, 65.2px + 2.35vw, 99px);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(10px, 7.89px + 0.56vw, 16px);
  cursor: pointer;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

@media (hover: hover) {
  .p-csort__btn:hover, .p-cfilter__open:hover {
    background: var(--brand-050);
  }
}
.p-csort__btn .c-ico, .p-cfilter__open .c-ico {
  width: 15px;
  height: 15px;
}

.p-csort__menu {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  z-index: 60;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: clamp(10px, 8.59px + 0.38vw, 14px);
  box-shadow: var(--sh);
  padding: clamp(5px, 3.94px + 0.28vw, 8px);
  min-width: clamp(140px, 118.87px + 5.63vw, 200px);
  display: none;
}
.p-csort.is-open .p-csort__menu {
  display: block;
}
.p-csort__opt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  width: 100%;
  text-align: left;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink);
  background: none;
  border: 0;
  border-radius: 9px;
  padding: clamp(9px, 7.94px + 0.28vw, 12px);
  cursor: pointer;
}
@media (hover: hover) {
  .p-csort__opt:hover {
    background: var(--bg-2);
  }
}
.p-csort__opt .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
  visibility: hidden;
}
.p-csort__opt.is-on {
  font-weight: 700;
}
.p-csort__opt.is-on .c-ico {
  visibility: visible;
}

.p-cfilter__open {
  display: none;
}
.p-cfilter__open .cnt {
  background: var(--brand);
  color: #fff;
  border-radius: clamp(74px, 65.2px + 2.35vw, 99px);
  font-size: 11px;
  min-width: 18px;
  height: 18px;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  font-family: var(--font-en);
}
.p-cfilter__open .cnt.is-on {
  display: inline-flex;
}
.p-cfilter__backdrop {
  display: none;
}
.p-cfilter__apply {
  display: none;
}

.p-tour-grid.is-sorted .c-rank-no {
  display: none;
}

.p-cempty {
  background: var(--bg-2);
  border-radius: var(--r);
  padding: clamp(22px, 17.07px + 1.31vw, 36px) clamp(13px, 9.83px + 0.85vw, 22px);
  text-align: center;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
}
.p-cempty .p-cempty__strong, .p-cempty__strong {
  font-weight: 700;
  display: block;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}

@media screen and (max-width: 1000px) {
  .p-catwrap {
    display: block;
  }
  .p-cfilter {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 220;
    border-radius: clamp(14px, 11.35px + 0.71vw, 18px) clamp(14px, 11.35px + 0.71vw, 18px) 0 0;
    border: none;
    max-height: 78vh;
    overflow: auto;
    transform: translateY(105%);
    transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
    box-shadow: 0 -10px 34px rgba(13, 27, 42, 0.22);
  }
  .p-cfilter.is-open {
    transform: none;
  }
  .p-cfilter__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    cursor: pointer;
    color: var(--ink-2);
    padding: 4px;
  }
  .p-cfilter__close .c-ico {
    width: 18px;
    height: 18px;
  }
  .p-cfilter__backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 215;
    background: rgba(13, 27, 42, 0.45);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .p-cfilter__backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  .p-cfilter__open {
    display: inline-flex;
  }
  .p-cfilter__apply {
    display: block;
    position: sticky;
    bottom: -20px;
    background: #fff;
    margin: 0 -18px -20px;
    padding: 12px 18px calc(14px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--line);
  }
  .p-cfilter__apply .c-btn {
    width: 100%;
  }
}
/* ============================================================
   74. 出航日一覧 (.p-deplist)
       クルーズの出航日は数十件並ぶため、カンマ区切りの一文だと読めない。
       日付を1つずつチップにして年ごとに折り返す。
       ツアー個別ページの「基本情報テーブル内」と「スケジュールタブ」の
       両方で同じ見た目になる(データ原本は scratchpad/cruise-data.pl の1か所)。
   ============================================================ */
.p-deplist__d {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-deplist__d .p-deplist__d-item, .p-deplist__d span {
  font-size: 12.5px;
  font-weight: 600;
  font-family: var(--font-en);
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 4px clamp(6px, 4.94px + 0.28vw, 9px);
  white-space: nowrap;
}

/* ---------- 26. サービスページ用 箱型UI ---------- */
.p-svc-lead {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  line-height: 2;
  color: var(--ink-2);
  max-width: clamp(532px, 451.72px + 21.41vw, 760px);
  /* 節見出し(c-sec-head--center)に合わせてリードも中央。
     起点が左右でずれると、下のカード列との縦のリズムが崩れる */
  margin-inline: auto;
  text-align: center;
  margin-bottom: clamp(18px, 13.77px + 1.13vw, 30px);
}
.p-svc-lead .p-svc-lead__strong, .p-svc-lead__strong, .p-svc-lead strong {
  font-weight: 700;
  color: var(--ink);
}

/* 3つの特徴(丸アイコン) */
.p-svc-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: clamp(16px, 12.48px + 0.94vw, 26px) 0;
}

@media screen and (max-width: 760px) {
  .p-svc-features {
    grid-template-columns: 1fr;
  }
}
.p-svc-feature {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(13px, 9.83px + 0.85vw, 22px);
  text-align: center;
  box-shadow: var(--sh-xs);
}
.p-svc-feature .ic {
  width: clamp(42px, 35.66px + 1.69vw, 60px);
  height: clamp(42px, 35.66px + 1.69vw, 60px);
  border-radius: 999px;
  background: var(--brand-050);
  display: grid;
  place-items: center;
  margin: 0 auto clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-svc-feature .ic .c-ico {
  width: clamp(21px, 18.54px + 0.66vw, 28px);
  height: clamp(21px, 18.54px + 0.66vw, 28px);
  color: var(--brand-ink);
}
.p-svc-feature .p-svc-feature__strong, .p-svc-feature__strong {
  font-weight: 700;
  display: block;
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  color: var(--ink);
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-svc-feature .p-svc-feature__text, .p-svc-feature p {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.75;
}

/* 写真つきセクション(左写真・右テキスト、交互) */
.p-svc-split__media {
  border-radius: var(--r);
  overflow: hidden;
  aspect-ratio: 4/3;
  box-shadow: var(--sh-sm);
}
.p-svc-split__media .p-svc-split__media-img, .p-svc-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-svc-split__body .p-svc-split__body-heading, .p-svc-split__body h2 {
  font-size: clamp(19px, 17.94px + 0.28vw, 22px);
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
}
.p-svc-split__body .p-svc-split__body-text, .p-svc-split__body p {
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
}

/* 見出し(セクション) */
.p-svc-h2 {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: clamp(19px, 17.94px + 0.28vw, 22px);
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-svc-h2 .c-ico {
  width: 18px;
  height: 18px;
  color: var(--brand);
  flex-shrink: 0;
}

/* 価格カード */
.c-price-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: clamp(4px, 3.3px + 0.19vw, 6px) 0 clamp(5px, 3.94px + 0.28vw, 8px);
}

.c-price-card {
  border: 1.5px solid var(--line);
  border-radius: var(--r);
  padding: clamp(14px, 10.48px + 0.94vw, 24px) clamp(12px, 9.18px + 0.75vw, 20px);
  text-align: center;
  background: #fff;
  position: relative;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-price-card--accent {
  border-color: var(--accent);
  background: var(--accent-050);
}
.c-price-card__type {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  color: var(--ink-2);
}
.c-price-card__was {
  font-family: var(--font-en);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink-3);
  text-decoration: line-through;
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
}
.c-price-card__amount {
  font-family: var(--font-en);
  font-size: clamp(29px, 27.24px + 0.47vw, 34px);
  font-weight: 800;
  color: var(--accent);
  line-height: 1.1;
  margin-top: 2px;
}
.c-price-card__note {
  font-size: 12px;
  color: var(--ink-3);
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
}
.c-price-card__badge {
  position: absolute;
  top: -11px;
  left: 50%;
  translate: -50% 0;
  background: var(--accent);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 3px clamp(9px, 7.24px + 0.47vw, 14px);
  border-radius: 999px;
}

/* 情報ボックス(枠付きカード) */
.c-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: clamp(5px, 3.94px + 0.28vw, 8px) 0;
}

@media screen and (max-width: 760px) {
  .c-info-grid {
    grid-template-columns: 1fr;
  }
}
.c-info-box {
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px);
  background: #fff;
}
.c-info-box--soft {
  background: var(--bg-2);
}
.c-info-box .c-info-box__heading {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--navy);
  margin: 0 0 clamp(9px, 7.94px + 0.28vw, 12px);
}
.c-info-box .c-info-box__heading .c-ico {
  width: 18px;
  height: 18px;
  color: var(--brand);
}
.c-info-box .c-info-box__list {
  list-style: none;
  display: grid;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
}
.c-info-box {
  /* 予約規定のように区分を続けて並べるとき、2つ目以降の見出しを離す */
}
.c-info-box .c-info-box__list + .c-info-box__heading {
  margin-top: clamp(12px, 9.89px + 0.56vw, 18px);
}
.c-info-box {
  /* ブロックパターン経由でエディタに入るため、後から足された素の li にも当てる(エディタ本文の例外) */
}
.c-info-box .c-info-box__list .c-info-box__list-item, .c-info-box .c-info-box__list li {
  position: relative;
  padding-left: clamp(14px, 10.48px + 0.94vw, 24px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.7;
}
.c-info-box .c-info-box__list .c-info-box__list-item::before, .c-info-box .c-info-box__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 16px;
  height: 16px;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230a9ecb" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') center/contain no-repeat;
}
.c-info-box .c-info-box__ol, .c-info-box ol {
  counter-reset: n;
  list-style: none;
  display: grid;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
}
.c-info-box ol .c-info-box__ol-item, .c-info-box ol li {
  counter-increment: n;
  position: relative;
  padding-left: clamp(18px, 13.77px + 1.13vw, 30px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.7;
}
.c-info-box ol .c-info-box__ol-item::before, .c-info-box ol li::before {
  content: counter(n);
  position: absolute;
  left: 0;
  top: 0.05em;
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 700;
  display: grid;
  place-items: center;
}

/* 支店/拠点カード */
.p-branch-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: clamp(5px, 3.94px + 0.28vw, 8px) 0;
}

@media screen and (max-width: 760px) {
  .p-branch-cards {
    grid-template-columns: 1fr;
  }
}
.p-branch-card {
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  background: #fff;
}
.p-branch-card__top {
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(12px, 9.18px + 0.75vw, 20px);
  background: var(--brand-050);
  border-bottom: 1px solid var(--line);
}
.p-branch-card__top .en {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.12em;
  color: var(--brand-ink);
  text-transform: uppercase;
  font-weight: 600;
}
.p-branch-card__top .p-branch-card__top-strong, .p-branch-card__top-strong {
  display: block;
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  color: var(--ink);
}
.p-branch-card__body {
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(12px, 9.18px + 0.75vw, 20px);
  display: grid;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
}
.p-branch-card__body .row {
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  align-items: flex-start;
}
.p-branch-card__body .row .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
  flex-shrink: 0;
  margin-top: 3px;
}
.p-branch-card__body .tel {
  font-family: var(--font-en);
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 800;
  color: var(--navy);
  letter-spacing: 0.02em;
}

/* 価格テーブル(季節別など)を箱で包む */
.c-boxed-table {
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
}
.c-boxed-table .c-table-wrap {
  margin: 0;
  border: none;
}

/* ============================================================
   88. サービス系ページの編集的リデザイン
       「番号を目立たせた編集的レイアウト」。
       ★CSSのみで実現(カウンター採番)。HTMLは変えない=内容不変。
       対象: .p-svc-h2 / .p-svc-lead / .p-svc-features を使う
             support/ flights/ company/ fees/ の約20ページ。
       サイドバー(.l-sidebar)には触れない。
   ============================================================ */
/* --- 節見出し: アイコン付き小見出し → 大きな番号+見出し+短い下線 --- */
/* 採番の起点。2カラムのページは .l-layout-2col、記事本文は .p-article。
   起点が片方しか無いテンプレートでも番号が 01 から始まるように両方に置く
   （入れ子になっている場合は内側が勝つので結果は同じ） */
.l-layout-2col,
.p-article {
  counter-reset: svch2;
}

.p-svc-h2 {
  counter-increment: svch2;
  display: block;
  position: relative;
  margin: clamp(31px, 23.61px + 1.97vw, 52px) 0 clamp(14px, 10.48px + 0.94vw, 24px);
  padding: 0 0 clamp(10px, 7.89px + 0.56vw, 16px) clamp(38px, 28.85px + 2.44vw, 64px);
  font-size: clamp(20px, 2.6vw, 23px);
  line-height: 1.5;
  border-bottom: 1px solid var(--line);
}
.p-svc-h2::before {
  content: counter(svch2, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: -8px;
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(34px, 31.89px + 0.56vw, 40px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--brand);
}
.p-svc-h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: clamp(53px, 44.9px + 2.16vw, 76px);
  height: 3px;
  background: var(--brand);
}
.p-svc-h2 .c-ico {
  display: none;
}

/* 見出し前の小さなアイコンが「AIっぽさ」の一因。番号に置き換え */
/* --- リード文: 少し大きく、最初のセクションとの間合いを広く --- */
.p-svc-lead {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  margin-bottom: clamp(20px, 15.07px + 1.31vw, 34px);
}

/* --- 特徴カード: 背景に大きな番号(Pitta方式)。中身のHTMLはそのまま --- */
.p-svc-features {
  counter-reset: svf;
  margin: clamp(18px, 13.77px + 1.13vw, 30px) 0 clamp(5px, 3.94px + 0.28vw, 8px);
}

.p-svc-feature {
  counter-increment: svf;
  position: relative;
  overflow: hidden;
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(14px, 10.48px + 0.94vw, 24px) clamp(20px, 15.07px + 1.31vw, 34px);
  transition: translate 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-svc-feature::after {
  content: counter(svf);
  position: absolute;
  right: 6px;
  bottom: -24px;
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(82px, 77.07px + 1.31vw, 96px);
  line-height: 1;
  color: var(--navy);
  opacity: 0.06;
  pointer-events: none;
}

@media screen and (max-width: 760px) {
  .p-svc-h2 {
    padding-left: clamp(35px, 16.49px + 4.94vw, 54px);
  }
  .p-svc-h2::before {
    font-size: clamp(29px, 24.13px + 1.3vw, 34px);
    top: -5px;
  }
  .p-svc-feature {
    padding: clamp(17px, 8.23px + 2.34vw, 26px) clamp(14px, 6.21px + 2.08vw, 22px) clamp(20px, 10.26px + 2.6vw, 30px);
    /* SPはカードが横長になるぶん、右下の大きな番号が「切れている」ように見える。
       小さくして下端を切らない位置に置く */
  }
  .p-svc-feature::after {
    font-size: clamp(46px, 30.42px + 4.16vw, 62px);
    right: clamp(10px, 4.16px + 1.56vw, 16px);
    bottom: clamp(4px, 0.1px + 1.04vw, 8px);
  }
}
/* ============================================================
   インラインstyle由来のページ固有指定
   ・機械命名(`__section-1604cd`)は静的HTMLの style="" をクラス化したもの。
     該当ページをWP化するときに意味のある名前へ改名してこのブロックから出す
   ・詳細度3重ね(.x.x.x)はインライン時代の優先度の再現。新規で真似しない
   ============================================================ */
.p-assets__small-f68746.p-assets__small-f68746.p-assets__small-f68746 {
  font-weight: 400;
  color: var(--ink-3);
}

/* 2箇所 / assets の <small> 由来 */
.p-assets__span-faaa79.p-assets__span-faaa79.p-assets__span-faaa79 {
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  align-items: center;
}

/* 1箇所 / assets の <span> 由来 */
/* ============================================================
   テンプレートの部品固有クラス
   検索結果・404・コラム詳細など、固有の画面の
   ぶんもここに置く。汎用は object/utility/_inline-utility.scss。
   ============================================================ */
/* ---- ページヒーロー：高さと色味のモディファイア ---- */
.p-404__heading {
  font-size: clamp(18px, 16.59px + 0.38vw, 22px);
  margin: clamp(6px, 4.59px + 0.38vw, 10px) 0 clamp(4px, 3.3px + 0.19vw, 6px);
}

/* ---- 法人・団体ページ ---- */
.p-biz__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(14px, 11.18px + 0.75vw, 22px);
}
.p-biz__grid--wide {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.p-biz__card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-biz__card-heading {
  font-size: clamp(15px, 14.47px + 0.14vw, 16.5px);
  font-weight: 700;
  color: var(--ink);
  margin-bottom: clamp(7px, 5.94px + 0.28vw, 10px);
}
.p-biz__card-heading--wide {
  margin-bottom: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-biz__card-text {
  font-size: clamp(13px, 12.65px + 0.09vw, 14px);
  color: var(--ink-2);
}
.p-biz__card-text--spaced {
  margin: clamp(8px, 6.59px + 0.38vw, 12px) 0 clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-biz__card-text--mb {
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-biz__flow-text {
  font-size: clamp(13.5px, 13.15px + 0.09vw, 14.5px);
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: clamp(7px, 5.94px + 0.28vw, 10px);
}
.p-biz__flow-strong {
  font-size: clamp(14px, 13.65px + 0.09vw, 15px);
  font-weight: 700;
  color: var(--ink);
  margin-bottom: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-biz__form {
  background: #fff;
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(20px, 15.77px + 1.13vw, 32px) clamp(18px, 14.48px + 0.94vw, 28px);
  display: grid;
  gap: clamp(12px, 9.89px + 0.56vw, 18px);
  max-width: 640px;
  margin-inline: auto;
}

/* ---- 口コミ投稿の完了画面 ---- */
.p-tel-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-s);
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(13px, 10.54px + 0.66vw, 20px);
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: 13px;
  line-height: 1.9;
}

/* ---- ホテルカード：情報が無いときの空表示 ---- */
/* ---- 診断カード本体(共通) ---- */
.p-tq-card {
  max-width: clamp(476px, 404.17px + 19.15vw, 680px);
  margin-inline: auto;
  background: #fff;
  border-radius: clamp(16px, 13.89px + 0.56vw, 22px);
  box-shadow: 0 24px 60px rgba(8, 24, 40, 0.28);
  overflow: hidden;
}

.p-tq-head {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(13px, 9.83px + 0.85vw, 22px);
  background: linear-gradient(90deg, var(--brand), var(--brand-ink));
  color: #fff;
}
.p-tq-head .c-ico {
  width: clamp(16px, 13.89px + 0.56vw, 22px);
  height: clamp(16px, 13.89px + 0.56vw, 22px);
}
.p-tq-head .p-tq-head__strong, .p-tq-head__strong {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
}
.p-tq-head .p-tq-head__note, .p-tq-head__note {
  margin-left: auto;
  font-size: 11.5px;
  background: rgba(255, 255, 255, 0.18);
  padding: 3px clamp(7px, 5.59px + 0.38vw, 11px);
  border-radius: 999px;
  font-weight: 700;
  white-space: nowrap;
}

.p-tq-body {
  padding: clamp(14px, 10.48px + 0.94vw, 24px) clamp(16px, 12.48px + 0.94vw, 26px) clamp(16px, 12.48px + 0.94vw, 26px);
}

/* 進捗ドット */
.p-tq-progress {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-tq-progress .d {
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: 5px;
  border-radius: 999px;
  background: var(--line);
  transition: background 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-tq-progress .d.on {
  background: var(--brand);
}
.p-tq-progress .p-tq-progress__item, .p-tq-progress__item {
  margin-left: auto;
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
}

.p-tq-q {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  font-weight: 800;
  color: var(--ink);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
  line-height: 1.65;
  letter-spacing: 0.01em;
}

.p-tq-opts {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}

.p-tq-opt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(11px, 8.54px + 0.66vw, 18px);
  border: 1.5px solid var(--line);
  border-radius: clamp(10px, 8.94px + 0.28vw, 13px);
  background: #fff;
  text-align: left;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  transition: transform 0.28s var(--ease-out), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-tq-opt__t {
  line-height: 1.55;
}
.p-tq-opt .c-ico {
  width: 17px;
  height: 17px;
  color: var(--ink-3);
  opacity: 0;
  transform: translateX(-5px);
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-tq-opt {
  /* ホバーで浮かせない */
}
@media (hover: hover) {
  .p-tq-opt:hover {
    background: var(--brand-050);
    box-shadow: 0 10px 22px rgba(10, 158, 203, 0.12);
  }
}
@media (hover: hover) {
  .p-tq-opt:hover .c-ico {
    opacity: 1;
    transform: none;
    color: var(--brand);
  }
}
.p-tq-opt:active {
  transform: scale(0.99);
}

.p-tq-back {
  margin-top: clamp(9px, 7.24px + 0.47vw, 14px);
  font-size: 12.5px;
  color: var(--ink-3);
  background: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}
@media (hover: hover) {
  .p-tq-back:hover {
    color: var(--brand-ink);
  }
}
.p-tq-back .c-ico {
  width: 14px;
  height: 14px;
}

/* 質問切替アニメーション */
.p-tq-step {
  animation: tqin 0.35s var(--ease-out);
}

@keyframes tqin {
  from {
    opacity: 0;
    transform: translateX(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-tq-step {
    animation: none;
  }
}
/* ---- 結果 ---- */
.p-tq-result {
  animation: tqin 0.4s var(--ease-out);
}
.p-tq-result__visual {
  position: relative;
  border-radius: clamp(10px, 8.59px + 0.38vw, 14px);
  overflow: hidden;
  aspect-ratio: 16/8;
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-tq-result__visual .p-tq-result__visual-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-tq-result__badge {
  position: absolute;
  top: clamp(8px, 6.59px + 0.38vw, 12px);
  left: clamp(8px, 6.59px + 0.38vw, 12px);
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  background: rgba(11, 31, 51, 0.72);
  backdrop-filter: blur(4px);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 5px clamp(9px, 7.94px + 0.28vw, 12px);
  border-radius: 999px;
}
.p-tq-result__badge .c-ico {
  width: 13px;
  height: 13px;
  color: var(--accent-300, #f0b45a);
}
.p-tq-result__sub {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--brand-ink);
  margin-bottom: 5px;
}
.p-tq-result__type {
  font-size: clamp(19px, 17.94px + 0.28vw, 22px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.5;
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-tq-result__copy {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.95;
  margin-bottom: clamp(11px, 8.54px + 0.66vw, 18px);
}

/* おすすめツアー(4件・2列グリッドで比較しやすく) */
.p-tq-recos {
  border-top: 1px solid var(--line-2);
  padding-top: clamp(10px, 7.89px + 0.56vw, 16px);
  margin-bottom: clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-tq-recos__label {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-tq-recos__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
}

@media screen and (max-width: 520px) {
  .p-tq-recos__grid {
    grid-template-columns: 1fr;
  }
}
.p-tq-reco {
  display: flex;
  flex-direction: column;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  height: 100%;
  padding: clamp(9px, 7.59px + 0.38vw, 13px) clamp(9px, 7.24px + 0.47vw, 14px);
  border: 1px solid var(--line);
  border-radius: clamp(9px, 7.94px + 0.28vw, 12px);
  background: #fff;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  /* ホバーで浮かせない */
}
@media (hover: hover) {
  .p-tq-reco:hover {
    background: var(--brand-050);
    box-shadow: 0 8px 18px rgba(10, 158, 203, 0.1);
  }
}
.p-tq-reco__area {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--brand-ink);
  background: var(--brand-050);
  padding: 4px clamp(6px, 4.94px + 0.28vw, 9px);
  border-radius: 999px;
  white-space: nowrap;
}
.p-tq-reco__area .c-ico {
  width: 11px;
  height: 11px;
}
.p-tq-reco__name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.55;
}

.p-tq-result__actions {
  display: flex;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  flex-wrap: wrap;
}
.p-tq-result__actions .c-btn {
  flex: 1;
  min-width: clamp(126px, 106.99px + 5.07vw, 180px);
}

.p-tq-retry {
  margin-top: clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: 12.5px;
  color: var(--ink-3);
  background: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
@media (hover: hover) {
  .p-tq-retry:hover {
    color: var(--brand-ink);
  }
}
.p-tq-retry .c-ico {
  width: 14px;
  height: 14px;
}

/* ---- 離脱ポップアップ ---- */
.p-tq-modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: grid;
  place-items: center;
  padding: clamp(12px, 9.18px + 0.75vw, 20px);
  background: rgba(8, 22, 36, 0.55);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-tq-modal.is-open {
  opacity: 1;
  visibility: visible;
}
.p-tq-modal .p-tq-card {
  width: 100%;
  transform: translateY(26px) scale(0.97);
  transition: transform 0.38s var(--ease-out);
}
.p-tq-modal.is-open .p-tq-card {
  transform: none;
}
.p-tq-modal__close {
  position: absolute;
  top: clamp(8px, 6.59px + 0.38vw, 12px);
  right: clamp(8px, 6.59px + 0.38vw, 12px);
  width: clamp(27px, 23.83px + 0.85vw, 36px);
  height: clamp(27px, 23.83px + 0.85vw, 36px);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 2;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-tq-modal__close:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: rotate(90deg);
  }
}
.p-tq-modal__close .c-ico {
  width: 18px;
  height: 18px;
}
.p-tq-modal .p-tq-head {
  padding-right: clamp(34px, 26.25px + 2.07vw, 56px);
  position: relative;
}

.p-tq-hook {
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(16px, 12.48px + 0.94vw, 26px) 0;
  text-align: center;
}
.p-tq-hook .p-tq-hook__strong, .p-tq-hook__strong {
  font-weight: 700;
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  color: var(--ink);
  display: block;
  line-height: 1.6;
}
.p-tq-hook .p-tq-hook__item, .p-tq-hook__item {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  display: block;
  margin-top: 4px;
}

@media (prefers-reduced-motion: reduce) {
  .p-tq-modal .p-tq-card {
    transition: none;
  }
}
/* ---- 離脱ポップアップ 段階別オファー(consult / whitepaper) ---- */
.p-tq-modal .p-tqx {
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(18px, 13.77px + 1.13vw, 30px) 0;
}

.p-tqx-kicker {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--brand-ink);
  background: rgba(10, 158, 203, 0.1);
  padding: clamp(4px, 3.3px + 0.19vw, 6px) clamp(9px, 7.24px + 0.47vw, 14px);
  border-radius: 999px;
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-tqx-kicker .c-ico {
  width: 14px;
  height: 14px;
}

.p-tqx-points {
  list-style: none;
  margin: clamp(11px, 8.54px + 0.66vw, 18px) auto 0;
  padding: 0 clamp(18px, 13.77px + 1.13vw, 30px);
  max-width: clamp(301px, 255.58px + 12.11vw, 430px);
  display: grid;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-tqx-points .p-tqx-points__item {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  font-weight: 600;
  color: var(--ink-2);
  text-align: left;
}
.p-tqx-points .c-ico {
  width: 16px;
  height: 16px;
  color: var(--accent);
  flex: none;
}

.p-tqx-actions {
  display: grid;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  justify-items: center;
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(18px, 13.77px + 1.13vw, 30px) clamp(18px, 13.77px + 1.13vw, 30px);
}
.p-tqx-actions .c-btn {
  width: 100%;
  max-width: clamp(238px, 202.08px + 9.58vw, 340px);
}

.p-tqx-sub {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 600;
  color: var(--ink-3);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (hover: hover) {
  .p-tqx-sub:hover {
    color: var(--brand-ink);
  }
}

/* ===== object/project/service-cards ===== */
/* ============================================================
   33. 自社サポートの縦カード (Service Cards)
   写真を上に敷いた縦カード3列。提携カードが「写真=左の横型」なので、
   こちらは「写真=上の縦型」で向きを変えている。
   写真は子ページのアイキャッチが正本。カード全体が詳細ページへのリンク。
   ============================================================ */
.p-svc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
}

.p-svc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
}
@media (hover: hover) {
  .p-svc-card:hover {
    background: var(--brand-050);
    box-shadow: var(--sh-sm);
  }
}
.p-svc-card {
  /* 写真の高さを3枚で揃える。span は display:block を明示し（inline だと aspect-ratio が
     効かない）、<img> は絶対配置で流し込む。img を通常フローに置くと、aspect-ratio より
     元画像の高さが優先されてカードごとに写真の高さがズレる（c-photo-card と同じ作り） */
}
.p-svc-card__media {
  display: block;
  position: relative;
  aspect-ratio: 16/9;
  background: var(--bg-3);
  overflow: hidden;
}
.p-svc-card__media-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-svc-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: clamp(15px, 12.54px + 0.66vw, 22px) clamp(14px, 11.18px + 0.75vw, 22px) clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-svc-card__title {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  font-weight: 800;
  color: var(--ink);
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.p-svc-card {
  /* カード全体を詳細ページのリンクにする */
}
.p-svc-card__link {
  color: inherit;
}
.p-svc-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
}
.p-svc-card__text {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  line-height: 1.9;
  flex: 1;
  margin-bottom: clamp(11px, 9.24px + 0.47vw, 16px);
}
.p-svc-card__more {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-svc-card__more .c-ico {
  width: 15px;
  height: 15px;
}

@media screen and (max-width: 860px) {
  .p-svc-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ============================================================
   34. 提携サービスのカード (Partner List)
   自社サポート(p-svc-grid の縦カード)と型を変えるための横型カード2列。
   左に色面のアイコン帯を持たせて、宙に浮いたアイコンチップにしない。
   カード全体が詳細ページへのリンク(__link の ::after で覆う)。
   提携先の公式サイトだけ独立したリンクとして上に出す。
   ============================================================ */
.p-partner-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}

.p-partner-item {
  position: relative;
  display: grid;
  grid-template-columns: 30% minmax(0, 1fr);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
}
@media (hover: hover) {
  .p-partner-item:hover {
    background: var(--brand-050);
    box-shadow: var(--sh-sm);
  }
}
.p-partner-item__media {
  display: block;
  position: relative;
  background: var(--bg-3);
  min-height: clamp(112px, 97.92px + 3.76vw, 152px);
  line-height: 0;
  overflow: hidden; /* ホバーで写真を拡大するため（_hover-transition.scss） */
}
.p-partner-item__media-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-partner-item__body {
  padding: clamp(15px, 12.54px + 0.66vw, 22px) clamp(15px, 11.83px + 0.85vw, 24px);
}
.p-partner-item__title {
  font-size: clamp(14px, 13.47px + 0.14vw, 15.5px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.5;
  letter-spacing: 0.01em;
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-partner-item {
  /* カード全体を詳細ページのリンクにする。公式サイトのリンクだけ上に出す */
}
.p-partner-item__link {
  color: inherit;
}
.p-partner-item__link::after {
  content: "";
  position: absolute;
  inset: 0;
}
.p-partner-item__text {
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  color: var(--ink-2);
  line-height: 1.85;
  margin-bottom: clamp(9px, 7.59px + 0.38vw, 13px);
}
.p-partner-item__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-partner-item__more, .p-partner-item__ext {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.65px + 0.09vw, 5px);
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  font-weight: 700;
}
.p-partner-item__more {
  color: var(--brand-ink);
}
.p-partner-item__more .c-ico {
  width: 14px;
  height: 14px;
}
.p-partner-item__ext {
  position: relative;
  z-index: 1;
  color: var(--ink-2);
}
@media (hover: hover) {
  .p-partner-item__ext:hover {
    color: var(--brand-ink);
  }
}
.p-partner-item__ext .c-ico {
  width: 13px;
  height: 13px;
}

@media screen and (max-width: 860px) {
  /* タブレット以下は1列。カード内のアイコン帯はそのまま残す */
  .p-partner-list {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ---- ヒーロー直下のリード（固定ページ本文）----
   参考サイトに合わせて中央寄せ。本文はブロックエディタで編集するので
   .p-article の上に重ねて、寄せと文字サイズだけ上書きする。 */
.p-support-lead {
  text-align: center;
  max-width: clamp(320px, 179.15px + 37.56vw, 720px);
  margin-inline: auto;
}
.p-support-lead > p {
  font-size: clamp(13px, 11.94px + 0.28vw, 16px);
  line-height: 2.1;
  color: var(--ink-2);
  margin-bottom: 0.8em;
}
.p-support-lead > p:last-child {
  margin-bottom: 0;
}

/* ---- 法人向け誘導(navy帯) ---- */
.p-support-biz {
  text-align: center;
}
.p-support-biz .c-btn {
  margin-top: clamp(4px, 2.59px + 0.38vw, 8px);
}

/* ============================================================
   81. サービス紹介ページの視覚パーツ
       写真(または図版)+要点3つ+使いどころ、で拾い読みできる形にする。
       .p-svc-plan … 写真つきサービスカード(2枚並び)
       .p-usecase  … 「こんなときに」チップ
   ============================================================ */
.p-svc-plan__img {
  aspect-ratio: 16/9;
  background: var(--bg-2);
  position: relative;
}
.p-svc-plan__img .p-svc-plan__img-img, .p-svc-plan__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-svc-plan__body {
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(14px, 10.48px + 0.94vw, 24px);
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  flex: 1;
}
.p-svc-plan__body .p-svc-plan__body-heading, .p-svc-plan__body h3 {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  line-height: 1.5;
}
.p-svc-plan__body > .p-svc-plan__body-text, .p-svc-plan__body > p {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.95;
}
.p-svc-plan__spec {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  margin-top: 2px;
}
.p-svc-plan__spec .p-svc-plan__spec-item, .p-svc-plan__spec span {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--brand-ink);
  background: var(--brand-050);
  border-radius: clamp(74px, 65.2px + 2.35vw, 99px);
  padding: 5px clamp(7px, 5.59px + 0.38vw, 11px);
}
.p-svc-plan__list {
  margin-top: auto;
  padding-top: clamp(4px, 3.3px + 0.19vw, 6px);
  display: grid;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
}
.p-svc-plan__list .p-svc-plan__list-item, .p-svc-plan__list li {
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  line-height: 1.75;
}
.p-svc-plan__list .c-ico {
  width: 16px;
  height: 16px;
  color: var(--aurora);
  flex-shrink: 0;
  margin-top: 3px;
}

.p-usecase {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  margin: clamp(9px, 7.24px + 0.47vw, 14px) 0 clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-usecase .p-usecase__item, .p-usecase span {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 600;
  color: var(--ink-2);
}

/* ============================================================
   66. CTA帯・サポートCTA・ホテル写真スライダー
   ============================================================ */
/* ---- ボタン内の矢印: テキストとの間隔を広げる ---- */
.c-btn .c-arrow {
  margin-left: 4px;
}

/* ---- フッターCTA帯: ネイビー + カナダのスカイライン線画(透かし) ----
   従来のダークな帯はそのまま。背景に敷くのは写真ではなく
   「白線・背景透過」に変換したカナダの線画イラスト
   (assets/img/cta-canada-line.png / tools/make-line-overlay.ps1 で生成)。
   ネイビーの上に低い不透明度で重ねるだけなので、暗幕をかける必要がなく
   文字・ボタンのコントラストは元のまま保てる。

   等倍以下に縮小して repeat-x で下端に敷く形にする（--strip）。等倍以下でしか
   使わないので線が潰れず、絵が見出し・ボタンにかからなくなる。
   管理画面(設定 > 一般)で写真を差し替えた場合は写真を敷き詰められないので、
   従来どおり <img> を1枚置く（footer.php で分岐）。
   <img> 版は alt無しの装飾でも loading=lazy が効く。 */
.p-footer-cta {
  position: relative;
  isolation: isolate;
  background: var(--navy);
  text-align: center;
  padding: clamp(38px, 28.85px + 2.44vw, 64px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(70px, 49.58px + 5.45vw, 128px);
  overflow: hidden;
}
.p-footer-cta__bg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
  line-height: 0;
  opacity: 0.34;
  /* 上端は空に溶かし、下端はフッターとの境目を締める */
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 26%);
  mask-image: linear-gradient(180deg, transparent 0, #000 26%);
}
.p-footer-cta__bg .p-footer-cta__bg-img {
  width: 100%;
  height: auto;
  display: block;
}
.p-footer-cta {
  /* 既定のスカイライン（静的英語版と同じ日本の建物の線画 cta-japan-line.svg）。等倍以下に縮めて横に敷き詰める。
     左右端はどちらも木なので継ぎ目が目立たない。
     帯の下端に置き、上半分は空に溶かして見出しにかからないようにする。 */
}
.p-footer-cta__bg--strip {
  top: 0;
  line-height: normal;
  opacity: 0.3;
  background: url("../img/cta-japan-line.svg") repeat-x bottom center;
  background-size: auto clamp(80px, 55.35px + 6.57vw, 150px);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 45%);
  mask-image: linear-gradient(180deg, transparent 0, #000 45%);
}
.p-footer-cta {
  /* 上のほうの飾り（提灯・花火・桜の線画）。静的英語版と同じ位置。文字やカードの背面に置く。
     狭い幅では見出しやカードと重なって騒がしいので出さない */
}
.p-footer-cta__deco {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.5;
}
@media screen and (max-width: 860px) {
  .p-footer-cta__deco {
    display: none;
  }
}
.p-footer-cta__deco--lant-l, .p-footer-cta__deco--lant-r {
  top: -0.375rem;
  width: clamp(220px, 177.75px + 11.27vw, 340px);
  height: clamp(69px, 55.97px + 3.47vw, 106px);
  background-image: url("../img/cta-deco-lanterns.svg");
}
.p-footer-cta__deco--lant-l {
  left: -1.5rem;
}
.p-footer-cta__deco--lant-r {
  right: -1.5rem;
  transform: scaleX(-1);
}
.p-footer-cta__deco--fw1, .p-footer-cta__deco--fw2, .p-footer-cta__deco--fw3 {
  background-image: url("../img/cta-deco-fireworks.svg");
}
.p-footer-cta__deco--fw1 {
  left: 6%;
  top: 6.875rem;
  width: 7.5rem;
  height: 7.5rem;
}
.p-footer-cta__deco--fw2 {
  right: 5%;
  top: 4.375rem;
  width: 9.375rem;
  height: 9.375rem;
  opacity: 0.38;
}
.p-footer-cta__deco--fw3 {
  right: 16%;
  top: 13.125rem;
  width: 5rem;
  height: 5rem;
  opacity: 0.32;
}
.p-footer-cta__deco--sk1, .p-footer-cta__deco--sk2, .p-footer-cta__deco--sk3 {
  background-image: url("../img/cta-deco-sakura.svg");
}
.p-footer-cta__deco--sk1 {
  left: 14%;
  top: 15.625rem;
  width: 2.125rem;
  height: 2.125rem;
  opacity: 0.45;
}
.p-footer-cta__deco--sk2 {
  left: 3%;
  top: 3.5rem;
  width: 1.625rem;
  height: 1.625rem;
  opacity: 0.4;
}
.p-footer-cta__deco--sk3 {
  right: 3%;
  top: 18.75rem;
  width: 1.875rem;
  height: 1.875rem;
  opacity: 0.4;
}
.p-footer-cta .p-footer-cta__heading {
  color: #fff;
  font-size: clamp(21px, 3vw, 30px);
  font-weight: 800;
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-footer-cta .p-footer-cta__text {
  color: #e6f4fa;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  margin-bottom: clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-footer-cta {
  /* 有料の「旅の相談サービス」への副導線。主ボタン(無料の見積り窓口)と役割が違うので
     ボタンにはせず、控えめなテキストリンクにして棲み分ける */
}
.p-footer-cta__sub {
  margin: clamp(11px, 8.54px + 0.66vw, 18px) 0 0;
  font-size: 12.5px;
  color: #b9d2e2;
}
.p-footer-cta {
  /* 下線のリンク部分は行を分けて出す（途中で折り返して2行に割れていたため） */
}
.p-footer-cta__sub .p-footer-cta__sub-link {
  display: block;
  margin-top: 4px;
  color: #fff;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (hover: hover) {
  .p-footer-cta__sub .p-footer-cta__sub-link:hover {
    color: var(--brand-100);
  }
}
.p-footer-cta .c-btn--primary {
  background: #fff;
  color: var(--accent-ink);
  box-shadow: 0 10px 26px rgba(9, 26, 45, 0.34);
}
@media (hover: hover) {
  .p-footer-cta .c-btn--primary:hover {
    background: #fff;
    color: var(--accent-ink);
  }
}
.p-footer-cta .c-btn--ghost-white {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.85);
}

@media screen and (max-width: 860px) {
  .p-footer-cta {
    padding: clamp(36px, 21.71px + 3.81vw, 56px) clamp(14px, 8.29px + 1.52vw, 22px) 15vw;
  }
}
@media screen and (max-width: 520px) {
  .p-footer-cta {
    padding: clamp(31px, -12.97px + 11.72vw, 48px) clamp(13px, -5.1px + 4.83vw, 20px) 22vw;
    /* スマホは横に潰れて建物が判別しにくいので、少し拡大して中央を見せる */
  }
  .p-footer-cta__bg .p-footer-cta__bg-img {
    width: 170%;
    max-width: none;
    margin-left: -35%;
  }
}
/* ---- サービス相談CTA (.p-svc-cta) ----
   サポート配下の全ページ共通。記事の締めに置く2カラムのカード。
   左に用件（見出し＋本文）、右に行動（フォーム＋電話）。
   罫は使わず、浮きは影だけで出す。内側の余白は上下左右そろえる。 */
/* 縦積みの版（記事の締めのCTA・ブロック）。用件の下に行動を置く。
   記事の本文幅に横並びにすると用件の列が細くなり、但し書きが1項目ずつ折り返すため */
.p-svc-cta.p-svc-cta--stack {
  grid-template-columns: minmax(0, 1fr);
  row-gap: clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-svc-cta.p-svc-cta--stack .p-svc-cta__actions {
  align-items: flex-start;
}

@media screen and (max-width: 760px) {
  .p-svc-cta.p-svc-cta--stack .p-svc-cta__actions {
    align-items: stretch;
  }
}
.p-svc-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(24px, 12.73px + 3vw, 56px);
  background: var(--bg);
  border-radius: var(--r);
  box-shadow: var(--sh);
  padding: clamp(22px, 18.48px + 0.94vw, 32px);
  margin-top: clamp(28px, 21.66px + 1.69vw, 46px);
  /* セクション直下に単独で置かれる場合（page-transport など）は
     セクションの上下パディングだけで余白が足りる。二重取りを防ぐ。 */
}
.p-svc-cta:first-child {
  margin-top: 0;
}
.p-svc-cta__body {
  min-width: 0;
}
.p-svc-cta__title {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.6;
  margin: 0 0 clamp(4px, 2.94px + 0.28vw, 7px);
}
.p-svc-cta__text {
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.85;
  margin: 0;
}
.p-svc-cta {
  /* 申込条件の但し書き（無料・任意・返信目安）。チェックマーク3点のリストは
     「生成物の定型」なのでやめ、中黒で区切った1行に落としてある。 */
}
.p-svc-cta__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: clamp(6px, 4.94px + 0.28vw, 9px) 0 0;
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-3);
}
.p-svc-cta {
  /* 区切りは前の項目の末尾に付ける（::before だと折り返した行の頭に中黒が来る） */
}
.p-svc-cta__meta-item:not(:last-child)::after {
  content: "・";
  margin: 0 clamp(3px, 2.3px + 0.19vw, 5px);
}
.p-svc-cta__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-svc-cta__actions .c-btn {
  white-space: nowrap;
  padding: clamp(10px, 8.94px + 0.28vw, 13px) clamp(16px, 13.18px + 0.75vw, 24px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
}
.p-svc-cta__tel {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: 12.5px;
  color: var(--ink-3);
}
.p-svc-cta__tel .c-ico {
  width: 13px;
  height: 13px;
  color: var(--ink-3);
}
.p-svc-cta__tel-num {
  font-weight: 700;
  color: var(--ink-2);
}
@media (hover: hover) {
  .p-svc-cta__tel:hover {
    color: var(--brand-ink);
  }
  .p-svc-cta__tel:hover .p-svc-cta__tel-num {
    color: var(--brand-ink);
  }
}

/* 写真＋紺のベタオーバーレイ版（サポート配下の iace_service_cta()）。
   文字はオーバーレイに直接乗るので白系に反転する。ボタンのオレンジはそのまま */
.p-svc-cta--photo {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--navy);
}
.p-svc-cta--photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(11, 28, 43, 0.82);
}
.p-svc-cta--photo .p-svc-cta__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  line-height: 0;
}
.p-svc-cta--photo .p-svc-cta__bg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-svc-cta--photo .p-svc-cta__title {
  color: #fff;
}
.p-svc-cta--photo .p-svc-cta__text {
  color: rgba(255, 255, 255, 0.85);
}
.p-svc-cta--photo .p-svc-cta__meta {
  color: rgba(255, 255, 255, 0.7);
}
.p-svc-cta--photo .p-svc-cta__tel, .p-svc-cta--photo .p-svc-cta__tel .c-ico {
  color: rgba(255, 255, 255, 0.75);
}
.p-svc-cta--photo .p-svc-cta__tel-num {
  color: #fff;
}
@media (hover: hover) {
  .p-svc-cta--photo .p-svc-cta__tel:hover, .p-svc-cta--photo .p-svc-cta__tel:hover .p-svc-cta__tel-num {
    color: var(--sky);
  }
}

/* PCでは記事の締めとして存在感を持たせる。上下の余白と文字・ボタンを一段上げる
   （帯が薄いと本文の続きに見えて読み飛ばされる） */
@media screen and (min-width: 861px) {
  .p-svc-cta {
    padding-block: clamp(40px, 32.96px + 1.88vw, 60px);
  }
  .p-svc-cta__title {
    font-size: clamp(17px, 15.59px + 0.38vw, 21px);
  }
  .p-svc-cta__text {
    font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  }
  .p-svc-cta__actions {
    gap: clamp(10px, 8.59px + 0.38vw, 14px);
  }
  .p-svc-cta__actions .c-btn {
    padding: clamp(14px, 12.59px + 0.38vw, 18px) clamp(20px, 16.48px + 0.94vw, 30px);
    font-size: clamp(13.5px, 12.97px + 0.14vw, 15px);
  }
}
@media screen and (max-width: 860px) {
  .p-svc-cta {
    grid-template-columns: 1fr;
    row-gap: clamp(14px, 11.89px + 0.56vw, 20px);
  }
  .p-svc-cta__actions {
    align-items: stretch;
  }
  .p-svc-cta__actions .c-btn {
    justify-content: center;
  }
  .p-svc-cta__tel {
    justify-content: center;
  }
}
/* ---- ホテル写真スライダー (.p-hgal / hotel-gallery.js) ----
   スクロールスナップ + 矢印。JSが無効でも横スクロールで全枚数見られる。 */
.p-hgal {
  position: relative;
  margin: 0 0 clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-hgal__track {
  display: flex;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  border-radius: var(--r-sm);
}
.p-hgal__track::-webkit-scrollbar {
  display: none;
}
.p-hgal__item {
  position: relative;
  flex: 0 0 100%;
  scroll-snap-align: center;
  margin: 0;
}
.p-hgal__item .p-hgal__item-img, .p-hgal__item img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: var(--r-sm);
  display: block;
}
.p-hgal__arrow {
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  width: clamp(32px, 28.48px + 0.94vw, 42px);
  height: clamp(32px, 28.48px + 0.94vw, 42px);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
  box-shadow: var(--sh);
  display: grid;
  place-items: center;
  z-index: 2;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-hgal__arrow .c-ico {
  width: clamp(16px, 14.24px + 0.47vw, 21px);
  height: clamp(16px, 14.24px + 0.47vw, 21px);
}
@media (hover: hover) {
  .p-hgal__arrow:hover {
    background: #fff;
    color: var(--brand-ink);
  }
}
.p-hgal__arrow[disabled] {
  opacity: 0;
  pointer-events: none;
}
.p-hgal__arrow--prev {
  left: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-hgal__arrow--next {
  right: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-hgal__dots {
  display: flex;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  justify-content: center;
  padding: clamp(9px, 7.94px + 0.28vw, 12px) 0 0;
}
.p-hgal__dots button {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--line);
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-hgal__dots button[aria-current=true] {
  background: var(--brand);
  width: clamp(16px, 13.89px + 0.56vw, 22px);
}
.p-hgal__count {
  position: absolute;
  top: clamp(8px, 6.59px + 0.38vw, 12px);
  right: clamp(8px, 6.59px + 0.38vw, 12px);
  z-index: 2;
  background: rgba(9, 26, 45, 0.62);
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  font-family: var(--font-en);
  padding: 4px clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.p-hgal {
  /* 2枚以上ある時だけ矢印・ドットを出す(JSが .is-multi を付ける) */
}
.p-hgal:not(.is-multi) .p-hgal__arrow, .p-hgal:not(.is-multi) .p-hgal__dots, .p-hgal:not(.is-multi) .p-hgal__count {
  display: none;
}

@media screen and (max-width: 520px) {
  .p-hgal__arrow {
    width: clamp(27px, 3.72px + 6.21vw, 36px);
    height: clamp(27px, 3.72px + 6.21vw, 36px);
  }
  .p-hgal__arrow--prev {
    left: 8px;
  }
  .p-hgal__arrow--next {
    right: 8px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-hgal__track {
    scroll-behavior: auto;
  }
}
/* ---- 旅行用語集 (.p-gloss-list / faq/#glossary) ----
   語数が増えても崩れないよう、幅で自動的に1〜2カラムへ。
   */
.p-gloss-list {
  display: grid;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  align-items: start;
}

.p-gloss-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-gloss-item .p-gloss-item__term {
  font-weight: 700;
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  color: var(--ink);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
  line-height: 1.6;
}
.p-gloss-item .p-gloss-item__desc {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
  margin: 0;
  line-height: 1.85;
}

@media screen and (max-width: 520px) {
  .p-gloss-list {
    grid-template-columns: 1fr;
    gap: clamp(8px, -0.11px + 2.16vw, 12px);
  }
  .p-gloss-item {
    padding: clamp(11px, -1.16px + 3.24vw, 17px) clamp(12px, -0.16px + 3.24vw, 18px);
  }
}
/* ============================================================
   91. 締めCTAの相談ハブ + お得情報の控えめストリップ
   ============================================================ */
/* ---- 締めCTAの相談ハブ ----
   独立した3枚のカードで、用途ごとに地色を変え、アイコンは丸背景、
   ボタンは右端に山括弧を置く。電話は支店名をピルにして番号を主役にする。 */
.p-cta-hub {
  /* 主ボタンを110%にすると「無料相談・お問い合わせ」が
     256px幅では折り返すため、ハブ全体を広げてカード＝ボタン幅を稼ぐ。
     必要なボタン幅は約278px（文字208 + 山括弧の逃げ35×2）。 */
  max-width: clamp(720px, 593.24px + 33.8vw, 1080px);
  margin: clamp(17px, 13.13px + 1.03vw, 28px) auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
  text-align: center;
}
@media screen and (max-width: 860px) {
  .p-cta-hub {
    grid-template-columns: 1fr;
  }
}
.p-cta-hub__col {
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(14px, 10.48px + 0.94vw, 24px) clamp(16px, 12.48px + 0.94vw, 26px);
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: clamp(14px, 11.89px + 0.56vw, 20px);
  background: #fff;
  box-shadow: var(--sh-sm);
  overflow: hidden;
  position: relative;
}
.p-cta-hub {
  /* 用途ごとの地色。下に向けてほんのり色が乗る */
}
.p-cta-hub__col--form {
  background: linear-gradient(180deg, #fff 58%, #fff4ee 100%);
}
.p-cta-hub__col--line {
  background: linear-gradient(180deg, #fff 58%, #eefaf1 100%);
}
.p-cta-hub__col--tel {
  background: #eef2f7;
  box-shadow: none;
}
.p-cta-hub {
  /* ---- アイコンの下地 ----
     径はカード幅の約17%（参考実測: 円66px / カード393px）。
     当サイトのカードは1280pxで331pxなので 56px 前後になる範囲を取る */
}
.p-cta-hub__ico {
  width: clamp(46px, 41.77px + 1.13vw, 58px);
  height: clamp(46px, 41.77px + 1.13vw, 58px);
  border-radius: 999px;
  display: grid;
  place-items: center;
  margin-bottom: clamp(9px, 7.59px + 0.38vw, 13px);
}
.p-cta-hub__ico .c-ico {
  /* svg は inline 既定のため、ベースライン下のディセンダ分の空きが下に入り
     絵が1.5px上にずれる。block にして箱＝絵にし、grid の中央寄せを効かせる。 */
  display: block;
  /* 参考では円径の約44%（32px / 72px）。上の径に対して同じ比率にする */
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: clamp(20px, 17.89px + 0.56vw, 26px);
}
.p-cta-hub__col--form .p-cta-hub__ico {
  background: #fdeae0;
}
.p-cta-hub__col--form .p-cta-hub__ico .c-ico {
  color: var(--accent);
}
.p-cta-hub__col--line .p-cta-hub__ico {
  background: var(--line-green); /* LINEブランドカラー。グリフは白抜き */
}
.p-cta-hub__col--line .p-cta-hub__ico .c-ico {
  color: #fff;
}
.p-cta-hub__col--tel .p-cta-hub__ico {
  background: #dde5ef;
}
.p-cta-hub {
  /* 来店。ほかの2列と同じく円の下地と濃い色のアイコンにする */
}
.p-cta-hub__col--visit .p-cta-hub__ico {
  /* --brand-050 は白いカードの上でほぼ見えないので一段濃い水色 */
  background: #d9eef6;
}
.p-cta-hub__col--visit .p-cta-hub__ico .c-ico {
  color: var(--brand-ink);
}
.p-cta-hub__col--tel .p-cta-hub__ico .c-ico {
  /* 参考では淡い水色の円に「中程度の青」のグリフ。
     --navy-600 だと沈んで見えるのでブランドの青に寄せる */
  color: var(--brand-ink);
}
.p-cta-hub {
  /* ---- 見出し・説明 ---- */
}
.p-cta-hub__col .p-cta-hub__col-heading {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
  color: var(--ink);
  margin: 0 0 clamp(6px, 4.94px + 0.28vw, 9px);
  /* SPは 110% */
}
@media screen and (max-width: 620px) {
  .p-cta-hub__col .p-cta-hub__col-heading {
    font-size: 15.5px;
  }
}
.p-cta-hub__col .p-cta-hub__col-text {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  color: var(--ink-2);
  line-height: 1.85;
  margin: 0 0 clamp(12px, 9.89px + 0.56vw, 18px);
}
@media screen and (max-width: 620px) {
  .p-cta-hub__col .p-cta-hub__col-text {
    font-size: 12.7px;
  }
}
.p-cta-hub {
  /* ---- ボタン ----
     ピル型。カード幅いっぱいに置き、右端に山括弧。
     フォームの主ボタンは白地＋アクセント色の文字。
     .c-btn の単色塗りを上書きするので、CTAハブ内に限定する。 */
}
.p-cta-hub__btn {
  margin-top: auto;
  width: 100%;
  /* 1カラムになる幅では内側いっぱいだと大きすぎる。中央寄せで上限を付ける */
}
@media screen and (max-width: 860px) {
  .p-cta-hub__btn {
    max-width: 260px;
    margin-inline: auto;
  }
}
.p-cta-hub__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(14.3px, 13.35px + 0.25vw, 17px); /* 110% */
  font-weight: 800;
  /* .c-btn の line-height:1.3 だと行ボックスが字面より高く取られ、
     em基準のアイコンと文字の光学中心が1〜2pxずれる。1に詰めて揃える。 */
  line-height: 1;
  letter-spacing: 0.01em;
  border-radius: 999px;
  /* 山括弧は absolute で場所を取らないので、左右パディングは対称にする。
     非対称にすると中身が左にずれる。 */
  padding-block: clamp(15px, 13.24px + 0.47vw, 20px);
  padding-inline: clamp(26px, 23.18px + 0.75vw, 34px);
}
.p-cta-hub {
  /* 白地なのでカード地色に埋もれないよう枠線で輪郭を出す */
}
.p-cta-hub__btn.c-btn--primary {
  font-size: clamp(14.3px, 13.35px + 0.25vw, 17px); /* LINEと同じ110%。ハブを広げて収まるようにした */
  background: #fff;
  color: var(--accent-ink);
  border: 1px solid var(--accent);
  box-shadow: none; /* 相談・LINEは影なし */
}
@media (hover: hover) {
  .p-cta-hub__btn.c-btn--primary:hover {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
  }
}
.p-cta-hub__btn.c-btn--primary .c-ico {
  color: currentColor;
}
.p-cta-hub__btn.c-btn--linegreen {
  background: linear-gradient(135deg, #2ad25f 0%, var(--line-green) 55%, #05a948 100%);
  border: 1px solid transparent;
  box-shadow: none; /* 相談・LINEは影なし */
}
@media (hover: hover) {
  .p-cta-hub__btn.c-btn--linegreen:hover {
    background: linear-gradient(135deg, var(--line-green) 0%, #05a948 100%);
  }
}
.p-cta-hub {
  /* 和文の字面は em ボックスの中でやや下寄りに置かれるため、幾何学的に中央へ
     置いたアイコンは文字より上に見える（実測1px）。字面の中心に合わせて下げる。 */
}
.p-cta-hub__btn > .c-ico:not(.p-cta-hub__btn-go) {
  transform: translateY(0.06em);
}
.p-cta-hub {
  /* 山括弧は3ボタンで太さ・大きさ・右端からの距離を揃える */
}
.p-cta-hub__btn-go {
  position: absolute;
  right: clamp(12px, 9.89px + 0.56vw, 18px);
  top: 50%;
  transform: translateY(calc(-50% + 0.06em)); /* 中央固定＋字面に合わせた微調整 */
  width: clamp(14px, 12.94px + 0.28vw, 17px);
  height: clamp(14px, 12.94px + 0.28vw, 17px);
  opacity: 0.9;
}
.p-cta-hub {
  /* ---- 電話番号 ---- */
}
.p-cta-hub__tel {
  margin-top: auto;
  display: grid;
  /* 見た目の余白は gap ではなく行の line-height が支配していた（行33px / ピル24px）。
     gap だけ削っても効かないので、a 側の line-height を詰めたうえで gap を決める。 */
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  width: 100%;
}
.p-cta-hub__tel .p-cta-hub__tel-link {
  display: flex;
  justify-content: center;
  gap: clamp(3px, 2.3px + 0.19vw, 5px); /* 支店ピルと番号の間隔 */
  line-height: 1.25; /* 既定1.8だと行がピルより10px高くなり、行間が広く見える */
  align-items: center; /* ピル(small)と番号の光学中心を合わせる */
  font-size: clamp(15px, 13.59px + 0.38vw, 19px);
  font-weight: 800;
  color: var(--navy);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}
.p-cta-hub {
  /* 支店名はピル。番号を主役にしたいので小さく落ち着いた色にする */
}
.p-cta-hub__tel .p-cta-hub__tel-link .p-cta-hub__tel-note {
  flex: 0 0 auto;
  font-size: clamp(10px, 9.47px + 0.14vw, 11.5px);
  font-weight: 700;
  color: #fff;
  background: var(--navy);
  border-radius: 999px;
  padding: clamp(2px, 1.65px + 0.09vw, 3px) clamp(7px, 5.94px + 0.28vw, 10px);
  line-height: 1.6;
}
.p-cta-hub {
  /* ---- 営業時間・店舗案内 ----
     3カードの外・副導線テキストの下。テキスト+アイコンのリンクにして、
     カード内の主ボタン（フォーム/LINE）と見た目が競合して主従が読めなくならないようにする。
     色は副導線 __sub と同じトーンにそろえる。 */
}
.p-cta-hub__hours {
  margin: clamp(3px, 2.3px + 0.19vw, 5px) 0 0;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.6;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-cta-hub__hours:hover {
    color: var(--brand-100);
  }
}
.p-cta-hub {
  /* gap ではなく個別に余白を持たせる。gap だと山括弧の前にも同じ幅が入り、
     文字と山括弧が離れて見える */
}
.p-cta-hub__hours-ico {
  width: clamp(13px, 12.3px + 0.19vw, 15px);
  height: clamp(13px, 12.3px + 0.19vw, 15px);
  margin-right: clamp(4px, 3.3px + 0.19vw, 6px);
  transform: translateY(0.06em); /* 和文の字面中心に合わせる */
}
.p-cta-hub__hours-go {
  width: clamp(12px, 11.3px + 0.19vw, 14px);
  height: clamp(12px, 11.3px + 0.19vw, 14px);
  opacity: 0.9;
  transform: translateY(0.06em);
}

.p-footer-cta .p-cta-hub + .p-footer-cta__sub {
  margin-top: clamp(11px, 8.54px + 0.66vw, 18px);
}

/* SP: 3枚を縦積みにする。カード同士は gap で離れているので、
   1枚カード時代に入れていた仕切り線(border-top)はもう要らない。 */
@media screen and (max-width: 860px) {
  .p-cta-hub {
    max-width: clamp(336px, 224.66px + 29.69vw, 480px);
  }
  .p-cta-hub__col {
    padding: clamp(16px, 9.81px + 1.65vw, 24px) clamp(13px, 7.59px + 1.44vw, 20px);
  }
}
/* ---- お得情報: 大きな帯 → 1行の控えめなストリップ ---- */
.p-subscribe-strip {
  background: var(--bg-2);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.p-subscribe-strip form {
  display: flex;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-subscribe-strip input[type=email] {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  width: clamp(140px, 118.87px + 5.63vw, 200px);
  background: #fff;
}
.p-subscribe-strip form .c-btn {
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(9px, 7.24px + 0.47vw, 14px);
  font-size: 12.5px;
}

@media screen and (max-width: 620px) {
  .p-subscribe-strip input[type=email] {
    flex: 1;
    width: auto;
  }
  .p-subscribe-strip form {
    flex: 1;
  }
}
/* 帯そのもの。写真を全面に敷き、その上にベタのオーバーレイを重ねて文字を読ませる。
   背景画像はページのアイキャッチ。未設定なら紺のベタ塗りのまま。
   グラデーション(マスク・グロー)は使わない。 */
.p-consult-sec {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.p-consult-sec__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  line-height: 0;
}
.p-consult-sec__bg-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.p-consult-sec {
  /* オーバーレイ。文字とのコントラストを確保する濃さ(紺 82%)で全面をベタ塗り */
}
.p-consult-sec__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(11, 28, 43, 0.82);
}

.p-consult-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: clamp(22px, 7.21px + 3.94vw, 64px);
  align-items: center;
}
.p-consult-band__lead {
  min-width: 0;
}
.p-consult-band {
  /* 見出し側。.c-sec-head を入れ子にせず、この帯の中だけで完結させる */
}
.p-consult-band__heading {
  font-size: clamp(24px, 3.6vw, 38px);
  font-weight: 700;
  color: #fff;
  line-height: 1.35;
  letter-spacing: 0.01em;
  margin-bottom: clamp(8px, 5.89px + 0.56vw, 14px);
}
.p-consult-band__text {
  color: #a8c2d6;
  font-size: clamp(12.5px, 11.62px + 0.23vw, 15px);
  line-height: 1.9;
  max-width: clamp(420px, 370.7px + 13.15vw, 560px);
}
.p-consult-band {
  /* 行動側 */
}
.p-consult-band__actions {
  display: grid;
  gap: clamp(7px, 5.94px + 0.28vw, 10px);
}
.p-consult-band__card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: clamp(11px, 9.24px + 0.47vw, 16px);
  padding: clamp(11px, 9.59px + 0.38vw, 15px) clamp(15px, 12.54px + 0.66vw, 22px);
  border-radius: var(--r-sm);
  border: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-consult-band {
  /* ホバーで浮かせない */
}
@media (hover: hover) {
  .p-consult-band__card:hover {
    border-color: rgba(255, 255, 255, 0.34);
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
  }
}
.p-consult-band {
  /* 主CTA。面で塗って、副次のカードと重みを明確に変える */
}
.p-consult-band__card--primary {
  background: var(--accent);
  border-color: transparent;
}
@media (hover: hover) {
  .p-consult-band__card--primary:hover {
    background: var(--accent-ink);
    border-color: transparent;
  }
}
.p-consult-band {
  /* 面が明るい --brand(#0a9ecb) は白文字で 3.1:1 しか出ないので、
     ボタンの面には --brand-ink(5.63:1) を使う */
}
.p-consult-band__card--brand {
  background: var(--brand-ink);
  border-color: transparent;
}
@media (hover: hover) {
  .p-consult-band__card--brand:hover {
    background: var(--navy-600);
    border-color: transparent;
  }
}
.p-consult-band__card--line {
  background: var(--line-green);
  border-color: transparent;
}
@media (hover: hover) {
  .p-consult-band__card--line:hover {
    background: #05a648;
    border-color: transparent;
  }
}
.p-consult-band__card-ico {
  display: grid;
  place-items: center;
  width: clamp(30px, 27.89px + 0.56vw, 36px);
  height: clamp(30px, 27.89px + 0.56vw, 36px);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  flex: 0 0 auto;
}
.p-consult-band__card-ico .c-ico {
  width: clamp(15px, 13.94px + 0.28vw, 18px);
  height: clamp(15px, 13.94px + 0.28vw, 18px);
}
.p-consult-band__card-title {
  min-width: 0;
  font-size: clamp(14.5px, 13.62px + 0.23vw, 17px);
  font-weight: 700;
  line-height: 1.35;
}
.p-consult-band__card-go {
  width: clamp(16px, 14.94px + 0.28vw, 19px);
  height: clamp(16px, 14.94px + 0.28vw, 19px);
  flex: 0 0 auto;
  opacity: 0.8;
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-consult-band__card:hover .p-consult-band__card-go {
    transform: translateX(3px);
  }
}

@media screen and (max-width: 860px) {
  .p-consult-band {
    grid-template-columns: 1fr;
  }
  .p-consult-band__text {
    max-width: none;
  }
}
/* ============================================================
   92. LINE相談の統合ブロック + 控えめな配信導線
       [A] contact: LINE相談をポスター型の1ブロックにまとめている
           (参考: 「LINEでも相談できます」ポスター
           = 吹き出し例 → ひとこと → QR+友だち追加 | お急ぎは電話)。
           今後Lステップ連携で強化予定の主要導線。
       [B] お得情報の配信: フッターの小ブロック(全ページ) + 旅行ガイドのサイドバーへ。
   ============================================================ */
/* ---- [A] LINE相談ブロック ---- */
.p-line-consult {
  background: #f2faf5;
  border: 1px solid rgba(6, 199, 85, 0.25);
  border-radius: var(--r);
  padding: clamp(20px, 15.07px + 1.31vw, 34px) clamp(18px, 13.77px + 1.13vw, 30px);
  margin-top: clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-line-consult__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-line-consult__head .c-ico {
  width: clamp(26px, 23.18px + 0.75vw, 34px);
  height: clamp(26px, 23.18px + 0.75vw, 34px);
  color: var(--line-green);
}
.p-line-consult__head .p-line-consult__head-heading, .p-line-consult__head h3 {
  font-size: clamp(19px, 2.6vw, 24px);
  font-weight: 800;
  color: var(--ink);
}
.p-line-consult {
  /* 吹き出し: よくある相談の実例。左右交互に振ってトーク画面の空気を出す */
}
.p-line-consult__bubbles {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 4.59px + 0.38vw, 10px) clamp(9px, 7.94px + 0.28vw, 12px);
  justify-content: center;
  max-width: clamp(448px, 380.39px + 18.03vw, 640px);
  margin: 0 auto clamp(12px, 9.18px + 0.75vw, 20px);
}
.p-line-consult__bubbles .p-line-consult__bubbles-item, .p-line-consult__bubbles span {
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  box-shadow: var(--sh-xs);
}
.p-line-consult__bubbles .p-line-consult__bubbles-item::after, .p-line-consult__bubbles span::after {
  content: "";
  position: absolute;
  bottom: -6px;
  left: clamp(13px, 11.24px + 0.47vw, 18px);
  width: 10px;
  height: 10px;
  background: #fff;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transform: rotate(45deg);
}
.p-line-consult__bubbles .p-line-consult__bubbles-item:nth-child(2n)::after, .p-line-consult__bubbles span:nth-child(2n)::after {
  left: auto;
  right: clamp(13px, 11.24px + 0.47vw, 18px);
}
.p-line-consult {
  /* ひとこと(ポスターの緑帯に相当) */
}
.p-line-consult__note {
  max-width: clamp(392px, 332.85px + 15.77vw, 560px);
  margin: 0 auto clamp(16px, 12.48px + 0.94vw, 26px);
  text-align: center;
  background: var(--line-green);
  color: #fff;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  line-height: 1.8;
  border-radius: 999px;
  padding: clamp(6px, 4.59px + 0.38vw, 10px) clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-line-consult {
  /* 下段: QR+友だち追加 | お急ぎの方は電話 */
}
.p-line-consult__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 12.48px + 0.94vw, 26px);
  align-items: stretch;
}
.p-line-consult__col {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: clamp(13px, 9.83px + 0.85vw, 22px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-line-consult__col > .p-line-consult__col-strong, .p-line-consult__col-strong {
  display: block;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  color: var(--ink);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-line-consult {
  /* 実物のQR画像(assets/img/line-qr.svg)を表示するため通常の枠線にする。
     SVG側に4モジュールの余白(クワイエットゾーン)を持たせてあるので、
     角丸で暗モジュールが欠けることはない。
     表示サイズ148pxはSVGの37モジュール(29＋余白4×2)のちょうど4倍。
     整数倍にすると1モジュール=4pxに揃ってドットが滲まず、
     スマホからの読み取りが安定する（110pxだと1モジュール約3pxで小さすぎた）。 */
}
.p-line-consult__qr {
  width: clamp(104px, 88.51px + 4.13vw, 148px);
  height: clamp(104px, 88.51px + 4.13vw, 148px);
  border: 1px solid var(--line);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  display: block;
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  background: #fff;
}
.p-line-consult__col .c-btn {
  width: 100%;
  /* 「友だち追加して相談する」が2行に割れない幅 */
  max-width: clamp(240px, 232.96px + 1.88vw, 260px);
}
.p-line-consult__steps {
  display: flex;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  justify-content: center;
  flex-wrap: wrap;
  margin-top: clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: 11.5px;
  color: var(--ink-3);
}
.p-line-consult__steps .p-line-consult__steps-strong, .p-line-consult__steps-strong {
  color: var(--ink-2);
  font-weight: 600;
}
.p-line-consult__tel {
  display: grid;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  width: 100%;
  margin-top: 2px;
}
.p-line-consult__tel a {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  font-weight: 800;
  color: var(--navy);
  font-variant-numeric: tabular-nums;
}
.p-line-consult__tel a .p-line-consult__tel-note {
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-2);
}
.p-line-consult__hours {
  font-size: 12px;
  color: var(--ink-3);
  margin-top: clamp(6px, 4.59px + 0.38vw, 10px);
}

@media screen and (max-width: 760px) {
  .p-line-consult {
    padding: clamp(16px, 8.21px + 2.08vw, 24px) clamp(12px, 6.16px + 1.56vw, 18px);
  }
  .p-line-consult__grid {
    grid-template-columns: 1fr;
    gap: clamp(9px, 4.13px + 1.3vw, 14px);
  }
  .p-line-consult__note {
    border-radius: clamp(12px, 8.1px + 1.04vw, 16px);
  }
}
/* ---- [B] フッターの配信ブロック(第1カラム内・控えめ) ---- */
.p-footer-subscribe {
  margin-top: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-footer-subscribe .p-footer-subscribe__text {
  font-size: 12.5px;
  color: #a8c2d6;
  margin: 0 0 clamp(6px, 4.94px + 0.28vw, 9px);
  line-height: 1.7;
}
.p-footer-subscribe .p-footer-subscribe__form {
  max-width: clamp(196px, 166.42px + 7.89vw, 280px);
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-footer-subscribe .c-subscribe {
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  overflow: hidden;
}
.p-footer-subscribe .c-subscribe__input {
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(9px, 7.94px + 0.28vw, 12px);
  color: #fff;
  font-size: 12.5px;
}
.p-footer-subscribe .c-subscribe__input::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
.p-footer-subscribe .c-subscribe__btn {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 0 clamp(9px, 7.24px + 0.47vw, 14px);
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-footer-subscribe .c-subscribe__btn:hover {
    background: var(--brand);
  }
}
.p-footer-subscribe {
  /* 暗い背景なので CF7 の結果メッセージ(赤/緑の帯)は白地で読ませる */
}
.p-footer-subscribe .wpcf7 form .wpcf7-response-output {
  background: #fff;
  margin-top: clamp(6px, 4.94px + 0.28vw, 9px);
}
.p-footer-subscribe__line {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: 12.5px;
  font-weight: 700;
  color: #4fd587;
}
@media (hover: hover) {
  .p-footer-subscribe__line:hover {
    color: #7ce3a8;
  }
}
.p-footer-subscribe__line .c-ico {
  width: 14px;
  height: 14px;
}

/* ---- [B] ツアー個別ページの予約レール末尾(控えめ) ---- */
.p-tour-deals {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(11px, 8.54px + 0.66vw, 18px);
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: 12.5px;
  line-height: 1.8;
}
.p-tour-deals .p-tour-deals__strong, .p-tour-deals__strong {
  display: flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink);
  margin-bottom: 5px;
}
.p-tour-deals__strong .c-ico {
  width: 15px;
  height: 15px;
  color: #06b04c;
}
.p-tour-deals .p-tour-deals__text, .p-tour-deals p {
  color: var(--ink-2);
  margin: 0 0 clamp(5px, 3.94px + 0.28vw, 8px);
}

/* ---- [B] 旅行ガイドのサイドバー導線 ---- */
.p-side-subscribe__text {
  font-size: 12.5px;
  color: var(--ink-2);
  line-height: 1.8;
  margin: 0 0 clamp(10px, 8.59px + 0.38vw, 14px);
}
.p-side-subscribe__form {
  margin-bottom: clamp(10px, 8.59px + 0.38vw, 14px);
}
.p-side-subscribe .c-subscribe {
  gap: clamp(6px, 5.3px + 0.19vw, 8px);
}
.p-side-subscribe {
  /* 高さは下の見積りボタン（c-btn--small）に揃える。角もボタンと同じピル型にする */
}
.p-side-subscribe .c-subscribe__input {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: calc(clamp(8px, 6.59px + 0.38vw, 12px) - 1px) clamp(12px, 10.59px + 0.38vw, 16px); /* 枠線の1px分を引いてボタンと同じ高さにする */
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.3;
  background: #fff;
}
.p-side-subscribe .c-subscribe__input:focus {
  outline: 2px solid var(--brand);
  outline-offset: 1px;
}
.p-side-subscribe {
  /* 登録ボタンは c-btn--primary と同じ見た目(ピル型・ブランド色) */
}
.p-side-subscribe .c-subscribe__btn {
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-weight: 700;
  padding: clamp(8px, 6.59px + 0.38vw, 12px) clamp(14px, 11.89px + 0.56vw, 20px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-side-subscribe .c-subscribe__btn:hover {
    background: var(--brand-ink);
  }
}
.p-side-subscribe {
  /* c-btn--line と詳細度が並ぶと _button.scss が後勝ちするので、1段深く書いて勝たせる */
}
.p-side-subscribe .p-side-subscribe__line {
  width: 100%;
  min-width: 0;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  padding: clamp(8px, 6.59px + 0.38vw, 12px) clamp(11px, 8.54px + 0.66vw, 18px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  box-shadow: none;
}
.p-side-subscribe .p-side-subscribe__line .c-ico {
  width: 16px;
  height: 16px;
}

/* カテゴリージャンプのチップ列（ヒーロー直下）
   いま読んでいるカテゴリーのチップを塗る（.is-current は tour.js ③ が付ける）。
   SPはヘッダー直下に追従 */
.p-tours-nav {
  padding-block: clamp(18px, 15.18px + 0.75vw, 26px);
}
.p-tours-nav .c-chip.is-current {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.p-tours-nav .c-chip.is-current .c-ico {
  color: #fff;
}
.p-tours-nav .c-chip.is-current .c-chip-n {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

@media screen and (max-width: 1000px) {
  .p-tours-nav {
    position: sticky;
    top: var(--header-stick);
    z-index: 30;
    padding-block: 0.625rem;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
  }
}
/* 本文の2カラム
   PC(1001px〜)は本文 + 右に追従サイドバー(.p-faq-side を よくある質問 と共用)。
   SPはサイドバーを出さず、上の追従チップ + 右下ボタンで辿る */
.p-tours-body {
  padding-block: clamp(28px, 20.96px + 1.88vw, 48px) clamp(40px, 28.73px + 3vw, 72px);
}

.p-tours-layout {
  display: block;
}

@media screen and (min-width: 1001px) {
  .p-tours-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(210px, 189.58px + 5.45vw, 268px);
    gap: clamp(24px, 18.37px + 1.5vw, 40px);
    align-items: start;
  }
  /* PCはサイドバーが正。チップ列は重複するので出さない */
  .p-tours-nav {
    display: none;
  }
}
/* 本文先頭の紹介文 */
.p-tours-lead {
  max-width: clamp(560px, 468.45px + 24.41vw, 820px);
  font-size: clamp(14px, 13.47px + 0.14vw, 15.5px);
  line-height: 2;
  color: var(--ink-2);
}

/* 提携パートナーの英語ツアー */
.p-tours-partner__note {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: clamp(14px, 12.59px + 0.38vw, 18px);
  font-size: 12.5px;
  color: var(--ink-3);
}
.p-tours-partner__note-ico {
  flex-shrink: 0;
  margin-top: 4px;
}

/* カテゴリーごとの節。全節白 */
.p-tours-row {
  padding-block: clamp(30px, 23.66px + 1.69vw, 48px);
}

/* カテゴリー一覧タイルの親カテゴリー見出し */
.p-tours-group {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
  font-weight: 700;
  margin-bottom: 12px;
}
.p-tours-group__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--ink);
}
.p-tours-group__link .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
}
@media (hover: hover) {
  .p-tours-group__link:hover {
    color: var(--brand-ink);
  }
}

/* ---------- 検索結果（?dest= / ?season= で来たとき） ---------- */
/* 検索フォーム(トップと同じ .p-quick-search)と結果バー。ヒーローには重ねず、ヒーローの下に置く */
.p-tours-finder {
  margin-top: clamp(20px, 15.77px + 1.13vw, 32px);
}

.p-tours-search {
  padding-top: clamp(14px, 11.89px + 0.56vw, 20px);
}

/* エリアページのカテゴリーチップ列（ヒーローの下） */
.p-cat-chips {
  margin-bottom: clamp(18px, 15.18px + 0.75vw, 26px);
}
.p-cat-chips .c-chip[aria-current=page] {
  color: #fff;
  background: var(--navy);
  border-color: var(--navy);
}

/* ============================================================
   96. カテゴリ一覧の締めCTA強化 (.p-cta-consult)
       構成: 大見出し / 補足 / 無料バッジ付き主ボタン / LINE・電話の副導線 /
       安心の一言 / 右にカテゴリ画像。
       生成は tools/build-category-extras.pl。
   ============================================================ */
.p-cta-consult {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #fff;
  border-radius: var(--r);
  box-shadow: var(--sh-lg);
  max-width: clamp(728px, 561.8px + 44.32vw, 1200px);
  margin-inline: auto;
  padding: clamp(32px, 22.14px + 2.63vw, 60px) clamp(29px, 19.49px + 2.54vw, 56px);
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: clamp(16px, 13.18px + 0.75vw, 24px) clamp(24px, 16.96px + 1.88vw, 44px);
  align-items: center;
}
.p-cta-consult .p-cta-consult__heading {
  font-size: clamp(22px, 2.2vw, 32px);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
  margin: 0 0 clamp(12px, 9.18px + 0.75vw, 20px);
}
.p-cta-consult__sub {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink-2);
  line-height: 1.9;
  margin: 0 0 clamp(18px, 14.48px + 0.94vw, 28px);
}
.p-cta-consult__sub .p-cta-consult__sub-note, .p-cta-consult__sub-note {
  display: block;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-3);
  margin-top: clamp(4px, 2.59px + 0.38vw, 8px);
}
.p-cta-consult {
  /* ボタン3つの横一列。主CTAを少し広く取る。バッジぶん上に余白がある主CTAと下端を揃える */
}
.p-cta-consult__actions {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr));
  gap: clamp(8px, 5.89px + 0.56vw, 14px);
  align-items: end;
}
.p-cta-consult__main {
  position: relative;
  display: block;
  padding-top: clamp(24px, 23.3px + 0.19vw, 26px);
}
.p-cta-consult {
  /* 「無料」バッジ。主ボタンの真上に吹き出しで置き、ふわふわ上下させる。
     ボタンの上端には重ね、しっぽの先がボタンの文字に届かない高さに __main の padding-top で調整してある */
}
.p-cta-consult__badge {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  white-space: nowrap;
  background: var(--accent-050);
  color: var(--accent-ink);
  font-size: clamp(9.5px, 8.97px + 0.14vw, 11px);
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.4;
  border-radius: 999px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(14px, 11.89px + 0.56vw, 20px);
  box-shadow: 0 4px 10px rgba(240, 89, 42, 0.14);
  transform: translateX(-50%);
  animation: p-cta-consult-float 2.4s ease-in-out infinite;
}
.p-cta-consult {
  /* 吹き出しのしっぽ(下向き) */
}
.p-cta-consult__badge::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: clamp(6px, 5.65px + 0.09vw, 7px) solid transparent;
  border-top-color: var(--accent-050);
  border-bottom-width: 0;
}
.p-cta-consult__main .c-btn {
  width: 100%;
  justify-content: flex-start;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  white-space: nowrap;
  min-height: clamp(48px, 45.18px + 0.75vw, 56px);
  padding: 0 clamp(18px, 15.89px + 0.56vw, 24px);
  box-shadow: 0 10px 24px rgba(240, 89, 42, 0.28);
}
.p-cta-consult__main .c-btn .c-ico {
  width: clamp(18px, 15.18px + 0.75vw, 26px);
  height: clamp(18px, 15.18px + 0.75vw, 26px);
}
.p-cta-consult__main .c-btn .p-cta-consult__go {
  width: clamp(14px, 12.59px + 0.38vw, 18px);
  height: clamp(14px, 12.59px + 0.38vw, 18px);
  margin-left: auto;
}
.p-cta-consult__actions .p-cta-consult__alt {
  display: flex;
  align-items: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(12.5px, 11.62px + 0.23vw, 15px);
  font-weight: 700;
  white-space: nowrap;
  color: var(--ink);
  background: #fff;
  border: 1.5px solid var(--brand-100);
  border-radius: 999px;
  min-height: clamp(48px, 45.18px + 0.75vw, 56px);
  padding: 0 clamp(14px, 11.89px + 0.56vw, 20px);
}
@media (hover: hover) {
  .p-cta-consult__actions .p-cta-consult__alt:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}
.p-cta-consult__actions .p-cta-consult__alt .c-ico {
  width: clamp(16px, 13.89px + 0.56vw, 22px);
  height: clamp(16px, 13.89px + 0.56vw, 22px);
  color: var(--brand);
  flex: 0 0 auto;
}
.p-cta-consult__actions .p-cta-consult__alt .p-cta-consult__alt-ico--line {
  color: var(--line-green);
}
.p-cta-consult__actions .p-cta-consult__alt .p-cta-consult__go {
  width: clamp(12px, 10.94px + 0.28vw, 15px);
  height: clamp(12px, 10.94px + 0.28vw, 15px);
  margin-left: auto;
  color: var(--ink-2);
}
.p-cta-consult__note {
  grid-column: 1/-1;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(12px, 10.94px + 0.28vw, 15px);
  color: var(--ink-2);
  margin: 0;
}
.p-cta-consult__note .p-cta-consult__note-ico {
  width: clamp(18px, 15.89px + 0.56vw, 24px);
  height: clamp(18px, 15.89px + 0.56vw, 24px);
  color: var(--brand);
  flex: 0 0 auto;
}
.p-cta-consult {
  /* 写真。背後に淡いブランド色の有機形を敷き、白枠＋影で浮かせる */
}
.p-cta-consult__img {
  position: relative;
  z-index: 0;
}
.p-cta-consult__img::before {
  content: "";
  position: absolute;
  z-index: -1;
  /* 下は写真の下端で止める（はみ出すと下のボタン列に重なる） */
  inset: -18% -16% 0 -12%;
  background: var(--brand-050);
  border-radius: 46% 54% 42% 58%/55% 38% 62% 45%;
}
.p-cta-consult__img .p-cta-consult__img-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  display: block;
  border: clamp(4px, 2.94px + 0.28vw, 7px) solid #fff;
  border-radius: var(--r);
  box-shadow: var(--sh-lg);
}

@media screen and (max-width: 860px) {
  .p-cta-consult {
    grid-template-columns: 1fr;
    padding: clamp(22px, 14.27px + 2.06vw, 32px) clamp(16px, 8.27px + 2.06vw, 26px);
    gap: clamp(18px, 11.81px + 1.65vw, 26px);
  }
  .p-cta-consult__img {
    order: -1;
  }
  .p-cta-consult__img .p-cta-consult__img-img {
    aspect-ratio: 2.2/1;
  }
  .p-cta-consult__actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .p-cta-consult__main {
    grid-column: 1/-1;
  }
}
@media screen and (max-width: 520px) {
  .p-cta-consult__actions {
    grid-template-columns: 1fr;
  }
}
/* 「無料」吹き出しのふわふわ。中央寄せの translateX(-50%) を保ったまま上下だけ動かす */
@keyframes p-cta-consult-float {
  0%, 100% {
    transform: translate(-50%, 0);
  }
  50% {
    transform: translate(-50%, -4px);
  }
}
/* ---------- 11. Promo banners (Wi-Fi/eSIM etc., Veltra-style) ---------- */
/* サポートへのクイックリンク(トップ) */
.c-sq-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}

@media screen and (max-width: 860px) {
  .c-sq-grid {
    grid-template-columns: 1fr;
    gap: clamp(8px, 5.14px + 0.76vw, 12px);
  }
}
/* 写真つきカードを4列で並べる（英語版トップの7枚。日本語版は3枚で3列） */
.c-sq-grid--compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media screen and (max-width: 1000px) {
  .c-sq-grid--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 620px) {
  .c-sq-grid--compact {
    grid-template-columns: 1fr;
  }
}
/* 横長カード（写真3：文字7）を2列で並べる（英語版トップの7枚）。1列になる幅は .c-sq-grid の既定 */
.c-sq-grid--rows {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media screen and (max-width: 860px) {
  .c-sq-grid--rows {
    grid-template-columns: 1fr;
  }
}
/* 見出しの折り返しは iace_area_name_html() が置く wbr（「・」の後ろ・「（」の前）だけ */
.c-sq-card__body-strong {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.c-sq-card {
  /* 写真＋下段に「丸アイコン｜見出し・補足」、最下段に「詳しく見る」 */
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  color: var(--ink);
  box-shadow: var(--sh-xs);
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  /* ホバーで浮かせない */
}
@media (hover: hover) {
  .c-sq-card:hover {
    background: var(--brand-050);
    box-shadow: var(--sh);
  }
  .c-sq-card:hover .c-sq-card__more {
    color: var(--brand);
  }
  .c-sq-card {
    /* 写真だけ少し拡大する。枠(__media)が overflow:hidden なのではみ出さない */
  }
  .c-sq-card:hover .c-sq-card__img {
    transform: scale(1.06);
  }
}
.c-sq-card__media {
  position: relative;
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
}
.c-sq-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-sq-card {
  /* アイコンは写真の上に重ねず、下段で見出しの左に並べる */
}
.c-sq-card__ic {
  flex-shrink: 0;
  width: clamp(40px, 36.48px + 0.94vw, 50px);
  height: clamp(40px, 36.48px + 0.94vw, 50px);
  border-radius: 999px;
  background: var(--brand-050);
  color: var(--brand);
  display: grid;
  place-items: center;
}
.c-sq-card__ic .c-ico {
  width: clamp(18px, 15.89px + 0.56vw, 24px);
  height: clamp(18px, 15.89px + 0.56vw, 24px);
}
.c-sq-card {
  /* 「詳しく見る」を3枚ともカードの底に揃えるため、文字側を縦の flex にする */
}
.c-sq-card__content {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.c-sq-card {
  /* 見出しが2行になるカードがあっても、アイコンの高さを3枚で揃える（上揃え） */
}
.c-sq-card__foot {
  display: flex;
  align-items: flex-start;
  gap: clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(14px, 11.89px + 0.56vw, 20px) clamp(16px, 13.18px + 0.75vw, 24px);
}
.c-sq-card__body {
  min-width: 0;
  flex: 1 1 auto;
}
.c-sq-card__body .c-sq-card__body-strong, .c-sq-card__body-strong {
  display: block;
  font-size: clamp(15px, 13.59px + 0.38vw, 19px);
  font-weight: 700;
  line-height: 1.45;
}
.c-sq-card__body .c-sq-card__body-note, .c-sq-card__body-note {
  display: block;
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  color: var(--ink-3);
  margin-top: 3px;
  font-weight: 500;
}
.c-sq-card__more {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  padding: clamp(10px, 8.94px + 0.28vw, 13px) clamp(16px, 13.18px + 0.75vw, 24px);
  border-top: 1px solid var(--line);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  color: var(--brand-ink);
}
.c-sq-card__more .c-ico {
  width: clamp(13px, 12.3px + 0.19vw, 15px);
  height: clamp(13px, 12.3px + 0.19vw, 15px);
}

/* 写真を左（3）・文字を右（7）に並べる横長カード。全幅で横並び */
.c-sq-card--row {
  flex-direction: row;
  align-items: stretch;
}
.c-sq-card--row .c-sq-card__media {
  flex: 0 0 30%;
  aspect-ratio: auto;
  min-height: clamp(96px, 84.73px + 3vw, 128px);
}
.c-sq-card--row .c-sq-card__content {
  flex: 1 1 70%;
  justify-content: center;
}
.c-sq-card--row {
  /* 補足は省略せず折り返す（狭い幅の既定は1行で「…」） */
}
.c-sq-card--row .c-sq-card__body .c-sq-card__body-note {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

/* 1カラムになる幅では、写真を左・文字類を右に横並びにする */
@media screen and (max-width: 860px) {
  .c-sq-card {
    flex-direction: row;
    align-items: stretch;
    /* 角丸は半分（22px→11px） */
    border-radius: 11px;
  }
  .c-sq-card__media {
    flex: 0 0 36%;
    aspect-ratio: auto;
    min-height: 112px;
  }
  .c-sq-card {
    /* 文字側はアイコンを見出しの上に縦積み。本文は小さくしてでも折り返さない */
  }
  .c-sq-card__foot {
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
    padding: 12px 14px 8px;
  }
  .c-sq-card__ic {
    width: 34px;
    height: 34px;
  }
  .c-sq-card__ic .c-ico {
    width: 16px;
    height: 16px;
  }
  .c-sq-card__body {
    width: 100%;
  }
  .c-sq-card__body .c-sq-card__body-strong, .c-sq-card__body-strong {
    font-size: 14px;
    line-height: 1.4;
  }
  .c-sq-card__body .c-sq-card__body-note, .c-sq-card__body-note {
    /* 文字側の幅は 375px 幅で約181px。これでも「一時帰国もカナダ到着後もすぐ使える」は末尾が省略される */
    font-size: 11px;
    letter-spacing: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .c-sq-card__more {
    padding: clamp(6px, 5.3px + 0.19vw, 8px) clamp(12px, 11.3px + 0.19vw, 14px);
    font-size: clamp(11px, 10.65px + 0.09vw, 12px);
  }
}
/* ============================================================
   89. トップの全画面FV
       STAFF START方式: 実写真フルブリード + 文字は全部HTML +
       下部タブで特集を切り替え(タブは5〜6本まで=詰め込みの上限)。
       文字を画像に焼き込まない。動作は assets/js/fv.js。
       高さはJSが「画面 − ヘッダー」を設定(初期値はフォールバック)。
   ============================================================ */
.p-fv {
  position: relative;
  overflow: hidden;
  background: var(--navy);
  /* --fv-vh は home.js が「画面 − ヘッダー下端」を実測して入れる。未実行時は 86svh */
  height: min(var(--fv-vh, 86svh), 820px);
}
.p-fv__slide {
  position: absolute;
  inset: 0;
  /* ズーム中の再描画をこの箱の中に閉じ込める */
  contain: paint;
  opacity: 0;
  transition: opacity 0.8s ease;
  pointer-events: none;
}
.p-fv__slide.is-on {
  opacity: 1;
  pointer-events: auto;
}
.p-fv__slide > .p-fv__slide-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-fv {
  /* ---- 切り替え演出 ----
     写真: 表示中のスライドだけゆっくりズームイン(Ken Burns)。
       object-fit:cover の隙間が出ないよう常に等倍より大きい範囲で動かす。
       尺は自動送り6秒の倍(14s)・linear。表示中は動きの前半しか使わないので、
       等速のまま緩やかに寄り続け、減速して止まって見える瞬間が出ない。
     文字: 少し下から浮き上がるフェードイン。__body の中央寄せは translate プロパティで
       やっているので、transform 側は演出に使って干渉しない。
     slick 使用時は .slick-current、フォールバック時は .is-on が現在のスライド。 */
}
.p-fv__slide > .p-fv__slide-img {
  transform: translateZ(0) scale(1.02);
  transform-origin: 50% 52%;
  /* 拡大中のジャギー抑制（合成レイヤーで滑らかに拡大させる） */
  backface-visibility: hidden;
}
.p-fv__slide.slick-current > .p-fv__slide-img, .p-fv__slide.is-on > .p-fv__slide-img {
  /* will-change は表示中の1枚だけ。全スライドに付けると大きな画像のレイヤーを常時抱える */
  will-change: transform;
  animation: fvzoom 14s linear forwards;
}
.p-fv__slide.slick-current .p-fv__body, .p-fv__slide.is-on .p-fv__body {
  animation: fvrise 0.9s 0.12s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
}
.p-fv {
  /* 可読性のためのグラデーション(画像に文字を焼き込まない代わりにHTML側で敷く) */
}
.p-fv__slide::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(75deg, rgba(10, 22, 33, 0.78) 0%, rgba(10, 22, 33, 0.42) 42%, rgba(10, 22, 33, 0.06) 70%), linear-gradient(0deg, rgba(10, 22, 33, 0.62) 0%, transparent 34%);
}
.p-fv {
  /* テキスト群はFVの上下中央に置く（下端の chips / side は別要素なので影響しない） */
  /* テキスト群は「下端のタブ帯より上の範囲」の上下中央に置く。
     FVの箱の真ん中だとタブ帯のぶん視覚的に下寄りに見えるため、帯の高さの半分だけ上げる。
     --fv-tabs-h は fv.js が実測して入れる(スマホはタブが2段になり高さが変わるため)。 */
  /* 前後送りの位置決め。
     --fv-arrow      : 矢印の直径
     --fv-arrow-gap  : 矢印と本文のあいだ
     --fv-arrow-inset: 窓の端からの距離。**幅広では vw 基準**で外へ広がり、
                       狭い画面では最低限の固定値を下回らない
     --fv-gutter     : コンテナ(--w-wide)の外側にできる余白。
                       幅広ではここが効くので本文に余白を足す必要がない */
  --fv-arrow:clamp(36px, 32.48px + 0.94vw, 46px);
  --fv-arrow-gap:clamp(8px, 5.18px + 0.75vw, 16px);
  --fv-arrow-inset:max(clamp(16px, 12.48px + 0.94vw, 26px), 3.2vw);
  --fv-gutter:max(0px, calc((100vw - var(--w-wide)) / 2));
}
.p-fv__body {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(50% - var(--fv-tabs-h, 74px) / 2);
  translate: 0 -50%;
  z-index: 2;
  max-width: var(--w-wide);
  margin-inline: auto;
  /* 矢印が本文に食い込むぶんだけ余白を足す。コンテナの外側余白(--fv-gutter)で
     足りている幅広の画面では基本余白のままなので、見出しが不要に内側へ寄らない。 */
  padding-inline: max(clamp(16px, 12.48px + 0.94vw, 26px), var(--fv-arrow-inset) + var(--fv-arrow) + var(--fv-arrow-gap) - var(--fv-gutter));
  color: #fff;
}
.p-fv__kicker {
  font-family: var(--font-en);
  font-size: clamp(11.5px, 10.8px + 0.19vw, 13.5px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  /* 水色の細字は写真に沈んで目立たなかった。
     帯にすると野暮ったいので、白の太字＋影で読ませ、先頭の線を水色にする */
  color: #fff;
  font-weight: 700;
  text-shadow: 0 1px 14px rgba(10, 22, 33, 0.55);
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin-bottom: clamp(8px, 6.59px + 0.38vw, 12px);
  /* 見出しと同じ理由で全幅に伸びるのを止める。幅はリード(__sub)に揃える */
  max-width: clamp(392px, 332.85px + 15.77vw, 560px);
}
.p-fv__kicker::before {
  content: "";
  width: clamp(24px, 19.07px + 1.31vw, 38px);
  height: 2px;
  border-radius: 2px;
  background: var(--sky);
  flex: 0 0 auto;
}
.p-fv__title {
  /* 静的英語版と同じ明朝（Zen Old Mincho 700）。ほかの見出しはゴシックのまま */
  font-family: var(--font-display);
  font-size: clamp(30px, 4.6vw, 56px);
  font-weight: 700;
  /* 1.35 は2行の見出しには緩く、PC実測で2行=151pxあった。
     1.2 にして塊で読ませる（30px→36px送り / 56px→67.2px送り） */
  line-height: 1.2;
  letter-spacing: 0.01em;
  margin: 0 0 clamp(9px, 7.24px + 0.47vw, 14px);
  color: #fff;
  text-shadow: 0 2px 24px rgba(10, 22, 33, 0.45);
  /* ACF側で改行を入れ忘れると1行が全幅(実測1188px)まで伸びていた。
     em基準なので文字サイズが変わっても1行あたりの字数(約13字)が保たれる */
  max-width: 13em;
}
.p-fv__sub {
  font-size: clamp(13.5px, 1.3vw, 16px);
  color: #dcebf7;
  line-height: 1.9;
  margin: 0 0 clamp(13px, 9.83px + 0.85vw, 22px);
  max-width: clamp(392px, 332.85px + 15.77vw, 560px);
}
.p-fv__cta {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-fv {
  /* ---- 下部の特集タブ ---- */
}
.p-fv__tabs {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: 0 clamp(16px, 12.48px + 0.94vw, 26px) clamp(16px, 12.48px + 0.94vw, 26px);
  display: flex;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  align-items: flex-end;
}
.p-fv {
  /* ---- 切り替えカード ----
     文字だけのタブから、写真＋キッカー＋名前のカードへ。
     現在のスライドは外周の残り時間リングで示す。 */
}
.p-fv__tab {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  /* 一番長い名前「カナディアンロッキー」が
     11.5pxで115px＋左右の余白18pxなので、134pxが省略(…)されない下限（132では1px足りず切れた） */
  max-width: clamp(95px, 81.27px + 3.66vw, 134px);
  padding: 0;
  /* 外周のリング(SVG rect の rx="5")と半径を合わせるため固定値。
     border は持たせない: overflow:hidden の切り抜きはパディングボックス基準なので、
     border 上に描いた線が丸ごと消えるため */
  border: 0;
  border-radius: 5px;
  overflow: hidden;
  cursor: pointer;
  color: #fff;
  /* backdrop-filter は使わない: 背後の写真がズームで毎フレーム動くため、
     ぼかしの焼き直しが5枚ぶん走ってコマ落ちの原因になる */
  background: rgba(14, 34, 51, 0.52);
  text-align: left;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  isolation: isolate;
}
.p-fv__tab-img {
  display: block;
  width: 100%;
  aspect-ratio: 16/10;
  object-fit: cover;
}
.p-fv {
  /* 写真の上に文字を重ねるので、下half に暗いグラデを敷く */
}
.p-fv__tab::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 22, 36, 0) 34%, rgba(8, 22, 36, 0.78) 100%);
  pointer-events: none;
}
.p-fv__tab-body {
  position: absolute;
  left: clamp(6px, 4.94px + 0.28vw, 9px);
  right: clamp(6px, 4.94px + 0.28vw, 9px);
  bottom: clamp(5px, 3.94px + 0.28vw, 8px);
  display: block;
  z-index: 1;
}
.p-fv__tab-kicker {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(7px, 6.65px + 0.09vw, 8px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.82;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-fv__tab-name {
  display: block;
  font-size: clamp(10px, 9.47px + 0.14vw, 11.5px);
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-fv {
  /* ホバーで浮かせない。明るさだけで反応を示す */
}
@media (hover: hover) {
  .p-fv__tab:hover {
    background: rgba(30, 58, 80, 0.62);
  }
}
.p-fv {
  /* ---- 自動送りの残り時間（カード外周を1周する線）----
     周長は rect の pathLength=100 で正規化してあるので
     カード幅が変わっても走る速度は一定。線はカードの縁の内側に描く（rect をボックス境界に置き、
     線幅の外半分は overflow:hidden で落として内側 3px だけ見せる）。 */
}
.p-fv__tab-ring {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  overflow: visible;
  /* 影は1枚だけ。stroke のアニメは毎フレーム再描画されるので、フィルタを重ねると重い */
  filter: drop-shadow(0 0 2px rgba(6, 18, 30, 0.6));
}
.p-fv__tab-ring-track, .p-fv__tab-ring-bar {
  fill: none;
  stroke-width: 6;
}
.p-fv__tab-ring-track {
  stroke: transparent;
}
.p-fv__tab-ring-bar {
  stroke: transparent;
  /* 周長100を丸ごと1本の線にして、始点から伸ばして外周を1周なぞる残り時間ゲージ。
     端を round にすると 0% で始点に点が残り、100% で継ぎ目が膨らむので butt */
  stroke-linecap: butt;
  stroke-dasharray: 100 100;
  stroke-dashoffset: 100;
}
.p-fv__tab[aria-selected=true] .p-fv__tab-ring-track {
  stroke: rgba(200, 208, 216, 0.55);
}
.p-fv__tab[aria-selected=true] .p-fv__tab-ring-bar {
  stroke: var(--sky);
  /* 尺と開始の遅れは home.js が slick の設定から入れる。
     slick は切り替え(フェード)が終わってから次の6秒を数え始めるので、
     実際の間隔は「フェード＋6秒」。フェード中は空のまま待ち、残り6秒で1周させると
     次の切り替えの瞬間にちょうど閉じる。1回で止める(forwards)ので、送りが止まれば満タンで止まる */
  animation: fvring var(--fv-ring-dur, 6s) linear var(--fv-ring-delay, 0s) both;
}

@keyframes fvring {
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes fvzoom {
  from {
    transform: translateZ(0) scale(1.02);
  }
  to {
    transform: translateZ(0) scale(1.16);
  }
}
@keyframes fvrise {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
/* ---- スライド番号（右上）と前後送り（サムネ列の上） ---- */
.p-fv__count {
  position: absolute;
  top: clamp(18px, 13.77px + 1.13vw, 30px);
  right: clamp(16px, 9.66px + 1.69vw, 34px);
  z-index: 3;
  display: flex;
  align-items: baseline;
  gap: clamp(4px, 2.94px + 0.28vw, 7px);
  font-family: var(--font-en);
  color: #fff;
  text-shadow: 0 1px 10px rgba(8, 22, 36, 0.5);
}
.p-fv__count-now {
  font-size: clamp(20px, 16.48px + 0.94vw, 30px);
  font-weight: 800;
  line-height: 1;
}
.p-fv__count-total {
  font-size: clamp(11px, 9.94px + 0.28vw, 14px);
  font-weight: 600;
  opacity: 0.72;
}
.p-fv {
  /* 前後送りはスライダーの左右端・上下中央。
     枠だけを全幅に広げ、クリックは矢印そのものだけで受ける。
     本文側は上の padding-inline で矢印ぶんを空けてあるので重ならない。 */
}
.p-fv__nav {
  position: absolute;
  /* コンテナ幅ではなく**窓からの距離**で置く（幅広ほど外側へ） */
  left: var(--fv-arrow-inset);
  right: var(--fv-arrow-inset);
  top: calc(50% - var(--fv-tabs-h, 74px) / 2);
  transform: translateY(-50%);
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}
.p-fv__arrow {
  pointer-events: auto;
}
.p-fv__arrow {
  display: grid;
  place-items: center;
  width: var(--fv-arrow);
  height: var(--fv-arrow);
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: rgba(14, 34, 51, 0.34);
  backdrop-filter: blur(6px);
  color: #fff;
  cursor: pointer;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-fv__arrow:hover {
    background: #fff;
    color: var(--navy);
    border-color: #fff;
  }
}
.p-fv__arrow .c-ico {
  display: block;
  width: clamp(16px, 14.59px + 0.38vw, 20px);
  height: clamp(16px, 14.59px + 0.38vw, 20px);
}

/* ---- 右下: 検索への近道 + スクロールの合図 ---- */
.p-fv__side {
  position: absolute;
  right: clamp(18px, 15.18px + 0.75vw, 26px);
  bottom: clamp(18px, 15.18px + 0.75vw, 26px);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-fv {
  /* 「ツアーを検索」はFV内には置かず、FVを通り過ぎたら右下にフェードインする常設ボタン。
     .is-shown は home.js が「FVの下端が画面の上に抜けたか」で付け外しする。
     右下には「トップへ戻る」(.c-back-to-top)が居るので、その真上に積む。
     1080px以下は「トップへ戻る」が消えて相談FAB(.p-fab)→この順で縦に並ぶ */
}
.p-fv__search {
  position: fixed;
  right: clamp(13px, 11.24px + 0.47vw, 18px);
  bottom: calc(clamp(15px, 12.54px + 0.66vw, 22px) + clamp(34px, 29.77px + 1.13vw, 46px) + 10px);
  z-index: 930;
  display: inline-flex;
  align-items: center;
  gap: 0;
  font: inherit;
  font-size: clamp(12.5px, 11.8px + 0.19vw, 14.5px);
  font-weight: 700;
  /* 黄の塗りつぶし。黄は白文字だと読めないので文字・アイコンは --ink */
  color: var(--ink);
  background: var(--gold);
  border: none;
  border-radius: 999px;
  /* 初期は正円（アイコンのみ）。ホバーで文字が伸びてピル形になる。
     直径とアイコン寸法は相談FAB(_fab.scss の --fab-d / --fab-i)と同じ式で揃え、
     左右padding = (直径−アイコン)/2 で、文字が畳まれている間は正円になる */
  --fvs-d:clamp(41px, 31.96px + 2.41vw, 58px);
  --fvs-i:clamp(20px, 16.81px + 0.85vw, 26px);
  min-width: var(--fvs-d);
  height: var(--fvs-d);
  padding: 0 calc((var(--fvs-d) - var(--fvs-i)) / 2);
  box-shadow: 0 8px 24px rgba(217, 154, 22, 0.35);
  cursor: pointer;
  opacity: 0;
  translate: 0 10px;
  pointer-events: none;
  transition: opacity 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), translate 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-fv__search.is-shown {
  opacity: 1;
  translate: 0 0;
  pointer-events: auto;
}
.p-fv {
  /* 文字は max-width と opacity で畳んでおき、ホバー／キーボードフォーカスで開く */
}
.p-fv__search-text {
  display: block;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: max-width 0.36s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.24s ease, margin-left 0.36s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-fv__search:focus-visible .p-fv__search-text {
  max-width: 8em;
  opacity: 1;
  margin-left: 8px;
}
@media (hover: hover) {
  .p-fv__search:hover {
    background: var(--gold-ink);
  }
  .p-fv__search:hover .p-fv__search-text {
    max-width: 8em;
    opacity: 1;
    margin-left: 8px;
  }
}
.p-fv__search .c-ico {
  flex: 0 0 auto;
  width: var(--fvs-i);
  height: var(--fvs-i);
}
.p-fv__scroll {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.24em;
  color: #cfe4f2;
  writing-mode: vertical-rl;
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-fv__scroll::after {
  content: "";
  width: 1px;
  height: clamp(32px, 28.48px + 0.94vw, 42px);
  background: linear-gradient(#fff, transparent);
  animation: fvscroll 1.8s ease-in-out infinite;
}

/* 販促カード表示中は「トップへ戻る」がカードの上(22px+205px)へ逃げるので、同じだけ持ち上げる */
body.has-promo-card .p-fv__search {
  bottom: calc(227px + clamp(34px, 29.77px + 1.13vw, 46px) + 10px);
}

@media screen and (max-width: 1080px) {
  /* 相談FAB(main.js が注入)のあるページ: FAB → トップへ戻る の上に積む。
     数値は _fab.scss の body.has-fab .c-back-to-top と同じ式に、その直径＋間隔を足したもの */
  /* FABのあるページでは「トップへ戻る」を出さない(_fab.scss)ので、FABの真上に1つだけ積む。
     文字入りのピルと橙の丸が並ぶとちぐはぐだったので、
     SPでは相談FABと同じ径の丸アイコンにして、同じ大きさの丸が2つ縦に並ぶ形にする */
  body.has-fab .p-fv__search {
    width: clamp(41px, 31.96px + 2.41vw, 58px);
    height: clamp(41px, 31.96px + 2.41vw, 58px);
    padding: 0;
    justify-content: center;
    box-shadow: 0 10px 28px rgba(217, 154, 22, 0.38);
  }
  body.has-fab .p-fv__search .c-ico {
    width: clamp(20px, 16.81px + 0.85vw, 26px);
    height: clamp(20px, 16.81px + 0.85vw, 26px);
  }
  body.has-fab .p-fv__search-text {
    display: none;
  }
}
/* 相談FAB(全幅で表示)の真上に積む。右端と間隔はFABと同じ式で揃える */
body.has-fab .p-fv__search {
  right: clamp(11px, 8.34px + 0.71vw, 16px);
  bottom: calc(clamp(14px, 10.81px + 0.85vw, 20px) + clamp(41px, 31.96px + 2.41vw, 58px) + clamp(10px, 7.87px + 0.57vw, 14px) + var(--iace-fab-lift, 0px));
}

@keyframes fvscroll {
  0% {
    transform: scaleY(0);
    transform-origin: top;
  }
  45% {
    transform: scaleY(1);
    transform-origin: top;
  }
  55% {
    transform: scaleY(1);
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-fv {
    /* スライドのクロスフェード・写真のズーム・外周リングは reduce でも動かす
       （自動送り自体を止めていないため）。止めるのは SCROLL の上下だけ。 */
  }
  .p-fv__scroll::after {
    animation: none;
  }
}
@media screen and (max-width: 860px) {
  /* タブレット縦〜SP。86svh のままだと縦長デバイス(iPad縦=1024px等)で
     820px の上限まで伸び、MVだけで画面を占有してしまう。
     高さの上限を下げて、下のコンテンツが必ず見えるようにする */
  .p-fv {
    height: min(var(--fv-vh, 86svh), 620px);
    /* タブ帯と同じ高さに「ツアーを検索」と SCROLL が来て重なっていた。
       通常は home.js がタブの実高さから bottom を積むが、JS不動作時の
       フォールバックとしてCSSでも逃がしておく */
  }
  .p-fv__side {
    bottom: clamp(83px, 48.91px + 9.09vw, 118px);
  }
  .p-fv__scroll {
    display: none;
  }
}
@media screen and (max-width: 760px) {
  /* タブは横スクロールではなく段落ち(スクロールだと右端が見切れたデザインに見えるため) */
  .p-fv {
    /* 斜め75degのグラデは、375x700のような縦長では暗部が左下に寄り、
       文字がある中段が明るいまま残って白文字が沈む。
       SPでは縦方向のグラデに差し替えて、上(番号)・中(本文)・下(タブ)の
       どこでも文字が乗る明るさにする */
  }
  .p-fv__slide::after {
    background: linear-gradient(180deg, rgba(10, 22, 33, 0.6) 0%, rgba(10, 22, 33, 0.36) 24%, rgba(10, 22, 33, 0.62) 62%, rgba(10, 22, 33, 0.88) 100%);
  }
  .p-fv {
    /* 本文の左右余白から矢印ぶんの逃げを外すので、矢印自体も出さない。
       出したままだと矢印が見出し・本文に重なる。
       送りはスワイプと下部の特集タブで足りる */
  }
  .p-fv__nav {
    display: none;
  }
  .p-fv {
    /* SPは 375x812 実測で「上183px + 文字群212px + 下141px」と、
       MVの過半がスクリムの空きだった。高さの上限を下げたうえで
       文字群を上下中央からタブ帯の直上へ移し、クイック検索の1行目を
       ファーストビューに入れる。--fv-tabs-h は home.js がタブ帯の実高さを入れる。
       540px でもまだ縦長で上のスクリムが空いて見えたので 480px に下げた */
    height: min(var(--fv-vh, 86svh), 480px);
  }
  .p-fv__body {
    padding: 0 clamp(12px, 6.16px + 1.56vw, 18px);
    top: auto;
    bottom: calc(var(--fv-tabs-h, 74px) + clamp(18px, 6.31px + 3.12vw, 30px));
    translate: 0 0;
  }
  .p-fv__sub {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .p-fv__tabs {
    padding: 0 clamp(9px, 4.13px + 1.3vw, 14px) clamp(9px, 4.13px + 1.3vw, 14px);
    gap: clamp(5px, 3.05px + 0.52vw, 7px);
    flex-wrap: wrap;
  }
  .p-fv__tab {
    /* サムネカード化で padding は不要（文字タブ時代の名残） */
    padding: 0;
    max-width: clamp(78px, 50.73px + 7.27vw, 106px);
  }
  .p-fv__side {
    right: clamp(10px, 6.1px + 1.04vw, 14px);
  }
}
@media screen and (max-width: 620px) {
  /* SPは「3列ぶんを見せて横スライド」。
     5枚を1列に詰めるとカード幅57pxで、7pxのキッカーも10pxの名前も
     「…」で切れて読めなかったので、飾りのキッカーは落とす */
  .p-fv {
    --fv-tab-gap:6px;
    --fv-tab-pad:12px;
  }
  .p-fv__tabs {
    /* 左右の余白は固定値にし、スナップ位置も同じ値で揃える。
       scroll-padding が無いとスナップが余白を無視して端に寄り、
       先頭が欠けて4枚目が半分見える「揃っていない」状態になっていた */
    padding: 0 var(--fv-tab-pad) var(--fv-tab-pad);
    gap: var(--fv-tab-gap);
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--fv-tab-pad);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  /* 右端は相談FAB(橙の丸)が乗るので _fab.scss が右余白を 60px 足している。
     その余白に4枚目が欠けて覗くと「揃っていない」ように見えるため、
     帯の右端をFABの手前でフェードアウトさせて隠す（スワイプできる合図にもなる） */
  body.has-fab .p-fv__tabs {
    mask-image: linear-gradient(to right, #000 calc(100% - 58px), transparent calc(100% - 26px));
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 58px), transparent calc(100% - 26px));
  }
  .p-fv__tabs::-webkit-scrollbar {
    display: none;
  }
  .p-fv__tab {
    /* ちょうど4枚が収まる幅(25%)。残りはスワイプで送る */
    flex: 0 0 calc((100% - var(--fv-tab-gap) * 3) / 4);
    max-width: none;
    scroll-snap-align: start;
  }
  .p-fv__tab-kicker {
    display: none;
  }
  .p-fv__tab-name {
    font-size: 11.5px;
  }
  .p-fv {
    /* letter-spacing .22em はキッカーが長い回（CANADIAN ROCKIES｜6〜9月が
       ベストシーズン）で2行に折り返し、末尾1文字だけが next line に落ちていた。
       字間と先頭の横線を詰めて1行に収める */
  }
  .p-fv__kicker {
    letter-spacing: 0.1em;
    gap: 8px;
  }
  .p-fv__kicker::before {
    width: 18px;
  }
}
/* ---- premium 遷移カード(サービス等) ---- */
.p-feature-wrap {
  /* 左に写真、右に「アイコン｜見出し・本文・リンク｜丸矢印」の3行リスト */
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(16px, 13.18px + 0.75vw, 24px);
  align-items: stretch;
}
.p-feature-wrap__media {
  border-radius: var(--r-lg);
  overflow: hidden;
  min-height: clamp(260px, 217.75px + 11.27vw, 380px);
}
.p-feature-wrap__picture {
  display: block;
  height: 100%;
}
.p-feature-wrap__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.p-feature-links {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-xs);
}

.p-feature-link {
  /* ホバー演出は入れない */
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto auto auto;
  column-gap: clamp(14px, 11.18px + 0.75vw, 22px);
  align-items: center;
  padding: clamp(16px, 13.18px + 0.75vw, 24px) clamp(16px, 11.77px + 1.13vw, 28px);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-feature-link:last-child {
  border-bottom: 0;
}
.p-feature-link {
  /* 行のホバーは背景を薄い水色にするだけ */
}
@media (hover: hover) {
  .p-feature-link:hover {
    background: var(--brand-050);
  }
}
.p-feature-link__chip {
  grid-column: 1;
  grid-row: 1/span 3;
  align-self: start;
  width: clamp(48px, 42.37px + 1.5vw, 64px);
  height: clamp(48px, 42.37px + 1.5vw, 64px);
  border-radius: clamp(12px, 10.59px + 0.38vw, 16px);
  display: grid;
  place-items: center;
  background: var(--brand-050);
  color: var(--brand);
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-feature-link:hover .p-feature-link__chip {
    background: #fff;
  }
}
.p-feature-link__chip .c-ico {
  width: clamp(22px, 19.18px + 0.75vw, 30px);
  height: clamp(22px, 19.18px + 0.75vw, 30px);
}
.p-feature-link .p-feature-link__heading {
  grid-column: 2;
  font-size: clamp(15px, 13.59px + 0.38vw, 19px);
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-feature-link .p-feature-link__text {
  grid-column: 2;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
  line-height: 1.8;
  margin: 0 0 clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-feature-link__go {
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-feature-link__go .c-ico {
  width: 16px;
  height: 16px;
}
.p-feature-link__arrow {
  grid-column: 3;
  grid-row: 1/span 3;
  width: clamp(36px, 33.18px + 0.75vw, 44px);
  height: clamp(36px, 33.18px + 0.75vw, 44px);
  border-radius: 999px;
  border: 1.5px solid var(--brand-100);
  color: var(--brand);
  display: grid;
  place-items: center;
}
.p-feature-link__arrow .c-ico {
  width: 16px;
  height: 16px;
}

@media screen and (max-width: 860px) {
  .p-feature-wrap {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-feature-wrap__media {
    min-height: 0;
    aspect-ratio: 16/9;
  }
}
/* 法人・団体向けバナー。左に写真、右に「アイコン／見出し／本文／右下にボタン」。
   写真の斜めカット・背景の地図は入れない */
/* 写真をカード全面に敷き、PCは左の写真→右の濃紺、SPは上の写真→下の濃紺へグラデーションでつなぎ、白文字と白いボタンを載せる。 */
.p-biz-banner {
  --biz-navy:#0c2b57;
  position: relative;
  isolation: isolate;
  display: block;
  overflow: hidden;
  min-height: clamp(260px, 224.79px + 9.39vw, 360px);
  border-radius: var(--r-lg);
  background: var(--biz-navy);
  box-shadow: 0 14px 36px rgba(12, 43, 87, 0.18);
  color: #fff;
  text-decoration: none;
  /* 写真 → 濃紺のグラデーション（左の人物は見せ、右の文字の下は濃紺にする）。
     急に濃くすると縦の筋が見えるので、なだらかに伸ばす */
}
.p-biz-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(12, 43, 87, 0) 0%, rgba(12, 43, 87, 0.15) 12%, rgba(12, 43, 87, 0.6) 26%, rgba(12, 43, 87, 0.88) 38%, rgba(12, 43, 87, 0.97) 50%, var(--biz-navy) 62%);
}
.p-biz-banner__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
}
.p-biz-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: left center;
}
.p-biz-banner__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: inherit;
  margin-left: 40%;
  /* 上の余白を増やして、見出し〜本文を上下中央に近づける */
  padding: clamp(40px, 28.73px + 3vw, 72px) clamp(22px, 14.25px + 2.07vw, 44px) clamp(24px, 18.37px + 1.5vw, 40px) 0;
}
.p-biz-banner {
  /* アイコンと見出しを横2列に並べ、この列の下に短い線を引く */
}
.p-biz-banner__head {
  position: relative;
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  padding-bottom: clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-biz-banner__head::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: clamp(40px, 35.77px + 1.13vw, 52px);
  height: 2px;
  background: #fff;
}
.p-biz-banner__heading {
  display: block;
  min-width: 0;
  font-size: clamp(15.5px, 14.27px + 0.33vw, 19px);
  font-weight: 800;
  line-height: 1.5;
  color: #fff;
}
.p-biz-banner__text {
  display: block;
  margin-top: clamp(14px, 12.59px + 0.38vw, 18px);
  /* ボタンは margin-top:auto で右下に寄せるので、本文との最小の間隔はこちらで持つ */
  margin-bottom: clamp(18px, 15.89px + 0.56vw, 24px);
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.9);
}
.p-biz-banner__go {
  margin-top: auto;
  align-self: flex-end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  padding: clamp(14.7px, 12.73px + 0.53vw, 20.3px) clamp(28px, 22.65px + 1.43vw, 43.2px);
  border-radius: 999px;
  /* 濃紺の地に戻したので、ボタンは白地に濃紺の文字（最初のカンプどおり） */
  background: #fff;
  color: var(--biz-navy);
  font-size: clamp(16.8px, 15.95px + 0.23vw, 19.2px);
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 8px 20px rgba(14, 34, 51, 0.2);
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-biz-banner__go .c-ico {
  width: clamp(16.5px, 15.34px + 0.31vw, 19.8px);
  height: clamp(16.5px, 15.34px + 0.31vw, 19.8px);
}
.p-biz-banner {
  /* 枠の opacity は .reveal が使うので、半透明は filter で付ける（transition も .reveal の分を残す） */
  transition: opacity 0.6s ease, transform 0.6s ease, filter 0.28s ease;
}
@media (hover: hover) {
  .p-biz-banner:hover {
    filter: opacity(0.7);
  }
  .p-biz-banner:hover .p-biz-banner__go {
    background: var(--brand-050);
  }
}

@media screen and (max-width: 760px) {
  .p-biz-banner {
    min-height: 0;
    /* SPは上の写真 → 下の濃紺 */
  }
  .p-biz-banner::after {
    background: linear-gradient(180deg, rgba(12, 43, 87, 0) 0%, rgba(12, 43, 87, 0.1) 28%, rgba(12, 43, 87, 0.9) 48%, var(--biz-navy) 60%);
  }
  .p-biz-banner__img {
    object-position: center top;
  }
  .p-biz-banner__body {
    margin-left: 0;
    padding: clamp(250px, 103.9px + 38.96vw, 400px) clamp(20px, 17.18px + 0.75vw, 28px) clamp(22px, 19.89px + 0.56vw, 28px);
  }
  .p-biz-banner {
    /* 見出しは2行: 「法人・団体のお客様」を大きく、続きを1段小さく */
  }
  .p-biz-banner__heading-main {
    display: block;
    font-size: clamp(24px, 18.16px + 1.56vw, 30px);
  }
  .p-biz-banner__heading-sep {
    display: none;
  }
  .p-biz-banner__heading-sub {
    display: block;
    margin-top: clamp(4px, 2.05px + 0.52vw, 6px);
    /* 390px幅で「…旅行／まで」と折れたので最小を下げる */
    font-size: clamp(14.5px, 10.12px + 1.17vw, 19px);
  }
  .p-biz-banner__go {
    align-self: stretch;
    margin-top: clamp(18px, 12.16px + 1.56vw, 24px);
  }
}
/* ============================================================
   45. 人気ツアー カードグリッド(折り返し表示)
   ============================================================ */
/* カードスライダー(transform方式・矢印/ドット/自動送り。ネイティブ横スクロールなし) */
.c-card-slider {
  position: relative;
}
.c-card-slider__viewport {
  overflow: hidden;
}
.c-card-slider__track {
  display: flex;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  transition: transform 0.45s var(--ease-out);
  will-change: transform;
}
.c-card-slider .c-dest-card {
  flex: 0 0 auto;
}
.c-card-slider__arrow {
  position: absolute;
  /* サムネイルの縦中央（main.js が測って入れる）。測れないスライダーは 38% */
  top: var(--card-slider-arrow-top, 38%);
  transform: translateY(-50%);
  width: clamp(32px, 28.48px + 0.94vw, 42px);
  height: clamp(32px, 28.48px + 0.94vw, 42px);
  border-radius: 999px;
  background: #fff;
  box-shadow: var(--sh);
  display: grid;
  place-items: center;
  color: var(--ink);
  z-index: 4;
  cursor: pointer;
  border: 0;
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .c-card-slider__arrow:hover {
    color: var(--brand-ink);
    background: var(--brand-050);
  }
}
.c-card-slider__arrow .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
}
.c-card-slider__arrow--prev {
  left: -14px;
}
.c-card-slider__arrow--next {
  right: -14px;
}

@media screen and (max-width: 760px) {
  .c-card-slider__arrow {
    display: none;
  }
}
.c-card-slider__dots {
  display: flex;
  justify-content: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  margin-top: clamp(11px, 8.54px + 0.66vw, 18px);
}
.c-card-slider__dots button {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  /* --line(#e7edf2) だと生成りの地に沈んで見えないので、インクの透過にする */
  background: rgba(21, 36, 47, 0.22);
  border: 0;
  padding: 0;
  cursor: pointer;
  transition: width 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-card-slider__dots button[aria-current=true] {
  background: var(--brand);
  width: clamp(16px, 13.89px + 0.56vw, 22px);
}

/* 口コミスライダー（3枚並び）。slick が付く前・SP で崩れないよう幅を持たせる */
.c-card-slider--review {
  /* 矢印を置くぶんだけ左右を空ける（既定の -14px だとカードの本文に矢印がかぶる） */
  padding-inline: clamp(40px, 34.37px + 1.5vw, 56px);
}
.c-card-slider--review .c-card-slider__arrow--prev {
  left: 0;
}
.c-card-slider--review .c-card-slider__arrow--next {
  right: 0;
}
.c-card-slider--review .c-card-slider__viewport {
  /* カードの影が切れないよう、上下に少しだけ逃がす */
  padding: 4px 0 6px;
}
.c-card-slider--review {
  /* 1枚ぶんの枠。左右の padding が「カード同士の間隔」になる（カード内側の余白とは別） */
}
.c-card-slider--review .c-card-slider__cell {
  display: flex;
  padding-inline: calc(clamp(10px, 7.89px + 0.56vw, 16px) / 2);
}
.c-card-slider--review .c-card-slider__cell > .c-review-card {
  flex: 1 1 auto;
  width: 100%;
}
.c-card-slider--review .c-card-slider__track:not(.slick-initialized) > .c-card-slider__cell {
  flex: 0 0 calc((100% - clamp(10px, 7.89px + 0.56vw, 16px) * 2) / 3);
}
.c-card-slider--review .slick-slide {
  height: auto;
}
.c-card-slider--review .slick-track {
  display: flex;
  align-items: stretch;
}
.c-card-slider--review .c-card-slider__track.slick-initialized {
  display: block;
  gap: 0;
}

@media screen and (max-width: 760px) {
  /* 矢印を出さない幅では左右の空きも不要 */
  .c-card-slider--review {
    padding-inline: 0;
  }
}
@media screen and (max-width: 620px) {
  /* SPは他のカード列と同じセンタースライダー(.p-hswipe)。矢印は出さない */
  .c-card-slider--review .c-card-slider__viewport {
    overflow: visible;
  }
  .c-card-slider--review .c-card-slider__arrow,
  .c-card-slider--review .c-card-slider__dots {
    display: none;
  }
}
/* スライダー化しないとき(カード5枚以下・main.jsが初期化しない)のレイアウト。
   slickが付かないと .c-dest-card が中身なりに伸びて横いっぱいになるので、
   slickと同じ「5枚並び(1080/820/600で4/3/2枚)」の幅で左詰めに固定する。
   ギャップは __track の gap: fluid(10,16) と揃える。 */
.c-card-slider__track:not(.slick-initialized) {
  flex-wrap: wrap;
  row-gap: clamp(16px, 12.48px + 0.94vw, 26px);
}
.c-card-slider__track:not(.slick-initialized) > .c-dest-card {
  flex: 0 0 calc((100% - clamp(10px, 7.89px + 0.56vw, 16px) * 4) / 5);
}
@media screen and (max-width: 1080px) {
  .c-card-slider__track:not(.slick-initialized) > .c-dest-card {
    flex: 0 0 calc((100% - clamp(10px, 7.89px + 0.56vw, 16px) * 3) / 4);
  }
}
@media screen and (max-width: 860px) {
  .c-card-slider__track:not(.slick-initialized) > .c-dest-card {
    flex: 0 0 calc((100% - clamp(10px, 7.89px + 0.56vw, 16px) * 2) / 3);
  }
}
@media screen and (max-width: 620px) {
  .c-card-slider__track:not(.slick-initialized) > .c-dest-card {
    flex: 0 0 calc((100% - clamp(10px, 7.89px + 0.56vw, 16px)) / 2);
  }
}

/* ============================================================
   69. 「まるごとおまかせ」バナー (.p-omakase)
       日本の旅行サイトでよく使われる、丸バッジ+マーカー+人物写真の型。
   ============================================================ */
/* おまかせ導線は画像のリンクバナー */
.p-omakase-banner {
  display: block;
  border-radius: var(--r-lg);
  overflow: hidden;
  /* 差し替え後の画像(2144×733)は余白なしで作られているので、枠は画像と同じ比率にして切らない */
  aspect-ratio: 2144/733;
  background: #0e2233;
}
.p-omakase-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.28s ease;
}
.p-omakase-banner {
  /* 枠の opacity は .reveal が使うので、画像側を薄くする。暗い下地が透けないよう背景も外す */
}
@media (hover: hover) {
  .p-omakase-banner:hover {
    background: transparent;
  }
  .p-omakase-banner:hover .p-omakase-banner__img {
    opacity: 0.7;
  }
}

@media screen and (max-width: 760px) {
  /* SP 画像(1086×1448=3:4)は余白が無いのでそのまま */
  .p-omakase-banner {
    aspect-ratio: 3/4;
    border-radius: 11px;
  }
}
/* ============================================================
   30. 旅行タイプ診断 (Travel Quiz) — インライン & 離脱ポップアップ
   ============================================================ */
/* ---- インライン常設セクション ---- */
.p-tq-band {
  position: relative;
  overflow: hidden;
  /* 斜めグラデ＋光沢radialはテンプレ的だったので単色に */
  background: #0b608a;
  /* 空の写真（c-section--photo）の上に同じ青のベタを重ねる。白文字が読める濃さに留める */
}
.p-tq-band.c-section--photo::after {
  background: rgba(11, 96, 138, 0.7);
}
.p-tq-band .l-container {
  position: relative;
  z-index: 1;
}
.p-tq-band .c-sec-head .c-sec-head__heading {
  color: #fff;
}
.p-tq-band .c-sec-head .c-lede {
  color: #d6eef9;
}
.p-tq-band .c-kicker {
  color: #9fdff5;
}

/* ---- トップ下部の店舗紹介（About IACE）---- */
.p-offices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
}
@media screen and (max-width: 760px) {
  .p-offices {
    grid-template-columns: 1fr;
  }
}
.p-offices__item {
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  background: #fff;
}
.p-offices__img {
  /* 素材(office-*.svg)が 1200x800 = 3/2 なので枠も同じにする。
     16/7 だと object-fit:cover が上下を切り、棒の足元まで削れていた。 */
  aspect-ratio: 3/2;
  object-fit: cover;
  width: 100%;
  /* 1カラムになるとカードが全幅になり、3/2 では画像だけで500px超になる。
     そこだけ横長に戻す（素材下部のキャプションは残る範囲）。 */
}
@media screen and (max-width: 760px) {
  .p-offices__img {
    aspect-ratio: 2/1;
  }
}
.p-offices__body {
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-offices__name {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  color: var(--ink);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-offices__addr {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  line-height: 1.9;
}
.p-offices {
  /* 本文と同じ色の電話リンクは下線で区別する */
}
.p-offices__addr a {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.p-offices__link {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--brand-ink);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-offices__link-icon {
  width: 15px;
  height: 15px;
}

/* トップのツアーカードだけサムネを浅く。
   一覧・カテゴリーページは 3/2 のまま（写真を見せる場所なので変えない）。 */
.home .c-tour-card__img {
  aspect-ratio: 16/9;
}

/* サポート節の下の「はじめての日本」ガイドへのカード（c-crosslink） */
.p-first-trip-link {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
}

/* 原稿にボタン文言が無いので矢印だけの丸ボタンにする */
.p-first-trip-link .c-crosslink__go {
  width: clamp(44px, 41.18px + 0.75vw, 52px);
  min-width: 0;
  height: clamp(44px, 41.18px + 0.75vw, 52px);
  padding: 0;
  border-radius: 50%;
  justify-content: center;
}

.p-first-trip-link .c-crosslink__go .c-ico {
  width: clamp(20px, 18.59px + 0.38vw, 24px);
  height: clamp(20px, 18.59px + 0.38vw, 24px);
}

/* サポート節の下の「はじめての日本」バナー。静的英語版の .omakase と同じ構成
   （丸バッジ｜見出しと補足｜右にスタッフの切り抜き｜右端に丸い矢印）。
   見出しは静的版と同じ明朝（トップでだけ読み込んでいる --font-display）。マーカーは u-hl（グラデーション不使用） */
.p-first-guide {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: clamp(18px, 13.77px + 1.13vw, 30px);
  min-height: clamp(170px, 159.44px + 2.82vw, 200px);
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
  padding: clamp(22px, 17.77px + 1.13vw, 34px);
  padding-right: clamp(300px, 274.65px + 6.76vw, 372px);
  background: #f6f1e8;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-xs);
  color: var(--ink);
  overflow: hidden;
  transition: box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-first-guide:hover {
    box-shadow: var(--sh);
  }
}
.p-first-guide__badge {
  display: grid;
  place-items: center;
  width: clamp(118px, 106.73px + 3vw, 150px);
  height: clamp(118px, 106.73px + 3vw, 150px);
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  text-align: center;
  font-size: clamp(13px, 11.94px + 0.28vw, 16px);
  font-weight: 800;
  line-height: 1.55;
}
.p-first-guide__body {
  min-width: 0;
}
.p-first-guide__kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.875rem;
  margin-bottom: 0.375rem;
  font-size: clamp(16px, 14.24px + 0.47vw, 21px);
  font-weight: 800;
  line-height: 1.4;
}
.p-first-guide__kicker::before, .p-first-guide__kicker::after {
  content: "";
  width: 2.5px;
  height: 1.5em;
  background: var(--navy);
  border-radius: 2px;
}
.p-first-guide__kicker::before {
  transform: rotate(-20deg);
}
.p-first-guide__kicker::after {
  transform: rotate(20deg);
}
.p-first-guide__title {
  display: block;
  margin-bottom: 0.625rem;
  font-family: var(--font-display);
  font-size: clamp(22px, 17.77px + 1.13vw, 34px);
  font-weight: 700;
  line-height: 1.4;
}
.p-first-guide__marker {
  font-size: clamp(14px, 12.59px + 0.38vw, 18px);
  font-weight: 800;
  line-height: 1.9;
}
.p-first-guide__note {
  display: block;
  margin-top: 0.75rem;
  font-size: clamp(12.5px, 11.8px + 0.19vw, 14.5px);
  font-weight: 600;
  color: var(--ink-2);
}
.p-first-guide {
  /* 右の余白に立つスタッフ（切り抜き）。頭上に少し余白、下端だけバナーで切る */
}
.p-first-guide__person {
  position: absolute;
  right: clamp(60px, 51.55px + 2.25vw, 84px);
  bottom: 0;
  width: auto;
  height: calc(100% - 16px);
  pointer-events: none;
}
.p-first-guide__go {
  position: absolute;
  right: clamp(14px, 11.18px + 0.75vw, 22px);
  top: 50%;
  translate: 0 -50%;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  z-index: 2;
}
.p-first-guide__go .c-ico {
  width: 1.25rem;
  height: 1.25rem;
}
@media screen and (max-width: 1000px) {
  .p-first-guide {
    padding-right: clamp(22px, 17.77px + 1.13vw, 34px);
  }
  .p-first-guide__person {
    display: none;
  }
  .p-first-guide__body {
    padding-right: 3.25rem;
  }
}
@media screen and (max-width: 620px) {
  .p-first-guide {
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(22px, 20.59px + 0.38vw, 26px) clamp(16px, 14.59px + 0.38vw, 20px) clamp(26px, 24.59px + 0.38vw, 30px);
    text-align: center;
  }
  .p-first-guide__badge {
    margin: 0 auto 0.875rem;
  }
  .p-first-guide__kicker {
    justify-content: center;
  }
  .p-first-guide__body {
    padding-right: 0;
  }
  .p-first-guide__go {
    display: none;
  }
}

/* Google の総合評価（見出しの下・中央） */
.p-greview-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
  margin: 0 auto clamp(20px, 15.77px + 1.13vw, 32px);
}
.p-greview-summary__score {
  font-size: clamp(32px, 27.77px + 1.13vw, 44px);
  font-weight: 700;
  line-height: 1;
  color: var(--ink);
}
.p-greview-summary__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.p-greview-summary__stars .c-ico {
  width: 16px;
  height: 16px;
  color: var(--gold);
}
.p-greview-summary__count {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-3);
}
.p-greview-summary__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: clamp(13px, 12.65px + 0.09vw, 14px);
  font-weight: 700;
  color: var(--brand-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-greview-summary__link:hover {
    color: var(--brand);
  }
}
.p-greview-summary__link .c-ico {
  width: 14px;
  height: 14px;
}

/* 「Write a review on Google」 */
.p-greview-write {
  display: flex;
  justify-content: center;
  margin-top: clamp(20px, 15.77px + 1.13vw, 32px);
}

.p-insta__handle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.p-insta__handle .c-ico {
  width: 16px;
  height: 16px;
}

.p-insta {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(6px, 3.89px + 0.56vw, 12px);
}
.p-insta__item {
  display: block;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--r);
  background: var(--bg-3);
}
.p-insta__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-insta__item:hover .p-insta__img {
    opacity: 0.85;
  }
}

@media screen and (max-width: 760px) {
  .p-insta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
/* ---------- 20. Tour detail ---------- */
.p-tour-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: clamp(11px, 8.54px + 0.66vw, 18px) clamp(13px, 9.83px + 0.85vw, 22px) 0;
  height: clamp(300px, 44vw, 500px);
}
.p-tour-gallery .p-tour-gallery__figure {
  position: relative;
  border-radius: var(--r);
  overflow: hidden;
  margin: 0;
  background: var(--bg-3);
}
.p-tour-gallery .p-tour-gallery__figure:first-child {
  grid-row: span 2;
}
.p-tour-gallery .p-tour-gallery__img, .p-tour-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s;
}
@media (hover: hover) {
  .p-tour-gallery .p-tour-gallery__link:hover .p-tour-gallery__figure-img, .p-tour-gallery .p-tour-gallery__link:hover img {
    transform: scale(1.04);
  }
}
.p-tour-gallery__more {
  position: absolute;
  right: clamp(8px, 6.59px + 0.38vw, 12px);
  bottom: clamp(8px, 6.59px + 0.38vw, 12px);
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  background: rgba(14, 34, 51, 0.84);
  color: #fff;
  font-size: 12px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(9px, 7.24px + 0.47vw, 14px);
  border-radius: 999px;
}
.p-tour-gallery__more .c-ico {
  width: 15px;
  height: 15px;
}

@media screen and (max-width: 760px) {
  .p-tour-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    height: auto;
  }
  .p-tour-gallery .p-tour-gallery__figure:first-child {
    aspect-ratio: 16/10;
  }
  .p-tour-gallery .p-tour-gallery__figure:not(:first-child) {
    display: none;
  }
}
.p-tour-header {
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(13px, 9.83px + 0.85vw, 22px) 0;
}
.p-tour-header .c-tags {
  display: flex;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  flex-wrap: wrap;
  margin-bottom: clamp(7px, 5.59px + 0.38vw, 11px);
}
.p-tour-header .p-tour-header__heading {
  font-size: clamp(20px, 3.2vw, 29px);
  font-weight: 800;
  line-height: 1.5;
  color: var(--ink);
  margin-bottom: clamp(7px, 5.59px + 0.38vw, 11px);
}
.p-tour-header__meta {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(5px, 4.3px + 0.19vw, 7px) clamp(12px, 9.18px + 0.75vw, 20px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  align-items: center;
}
.p-tour-header__meta .p-tour-header__meta-item, .p-tour-header__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.p-tour-header__meta .c-ico {
  width: 15px;
  height: 15px;
  color: var(--brand);
}

.p-tour-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 348px;
  gap: clamp(24px, 18.37px + 1.5vw, 40px);
  max-width: var(--w-wide);
  margin-inline: auto;
  padding: clamp(17px, 13.13px + 1.03vw, 28px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(48px, 36.73px + 3vw, 80px);
  align-items: start;
}

@media screen and (max-width: 1000px) {
  .p-tour-layout {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* 1fr だと minmax(auto,1fr) 扱いになり、中身の最小幅でカラムが画面幅を超える(はみ出しはoverflow-x:clipで切れて読めなくなる) */
.p-tour-section {
  margin-bottom: clamp(12px, 9.18px + 0.75vw, 20px);
}

.p-tour-section > .p-tour-section__heading, .p-tour-section > h2, .p-tour-section-title {
  font-size: clamp(17px, 15.94px + 0.28vw, 20px);
  color: var(--ink);
  font-weight: 800;
  margin-bottom: clamp(11px, 8.54px + 0.66vw, 18px);
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
}

/* 見出しのアイコンは水色(--sky)。黒だと見出し文字に埋もれて分かりにくい。
   .p-tour-section の外(タブのパネル・p-tour-block)にある見出しにも当たるよう、親を限定しない */
.p-tour-section-title .c-ico, .p-tour-section > .p-tour-section__heading .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  flex-shrink: 0;
  color: var(--sky);
}

.p-highlight-list {
  display: grid;
  gap: clamp(7px, 5.59px + 0.38vw, 11px);
}
.p-highlight-list .p-highlight-list__item, .p-highlight-list li {
  display: flex;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  background: var(--bg-2);
  border-radius: var(--r-sm);
  padding: clamp(9px, 6.89px + 0.56vw, 15px) clamp(10px, 7.54px + 0.66vw, 17px);
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
}
.p-highlight-list .p-highlight-list__item .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
  color: var(--accent);
  margin-top: 1px;
}

/* itinerary */
.p-itinerary {
  position: relative;
  padding-left: clamp(19px, 14.42px + 1.22vw, 32px);
}
.p-itinerary::before {
  content: "";
  position: absolute;
  left: clamp(7px, 5.94px + 0.28vw, 10px);
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: linear-gradient(180deg, var(--brand), var(--aurora));
}
.p-itinerary__item {
  position: relative;
  padding-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
}
.p-itinerary__item::before {
  content: "";
  position: absolute;
  left: -28px;
  top: 5px;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: #fff;
  border: 3px solid var(--brand);
}
.p-itinerary__time {
  display: inline-block;
  background: var(--navy);
  color: #fff;
  padding: 3px clamp(9px, 7.59px + 0.38vw, 13px);
  border-radius: 999px;
  font-family: var(--font-en);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.03em;
}
.p-itinerary__title {
  font-weight: 700;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink);
  margin: clamp(5px, 4.3px + 0.19vw, 7px) 0 5px;
}
.p-itinerary__text {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  color: var(--ink-2);
}

/* guide profile */
.p-guide-profile {
  display: flex;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-guide-profile__avatar {
  flex-shrink: 0;
  width: clamp(62px, 52.85px + 2.44vw, 88px);
  height: clamp(62px, 52.85px + 2.44vw, 88px);
  border-radius: 999px;
  overflow: hidden;
  background: var(--brand-050);
}
.p-guide-profile__avatar .p-guide-profile__avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-guide-profile .p-guide-profile__note, .p-guide-profile__note {
  color: var(--accent-ink);
  font-weight: 700;
  font-size: 11.5px;
}
.p-guide-profile .p-guide-profile__strong, .p-guide-profile__strong {
  font-weight: 700;
  display: block;
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  margin: 2px 0 clamp(5px, 4.3px + 0.19vw, 7px);
  color: var(--ink);
}
.p-guide-profile .p-guide-profile__text {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  line-height: 1.8;
}

@media screen and (max-width: 520px) {
  .p-guide-profile {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}
/* booking box */
.p-booking-box {
  position: sticky;
  top: calc(var(--header-h) + 18px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh);
  overflow: hidden;
}
.p-booking-box__head {
  /* 単色の水色(やや濃いめ)。白文字が読める明度に留める */
  background: var(--sky-deep);
  color: #fff;
  padding: clamp(10px, 7.54px + 0.66vw, 17px) clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-booking-box__head .p-booking-box__head-note, .p-booking-box__head-note {
  font-size: 11.5px;
  opacity: 0.85;
  display: block;
}
.p-booking-box__head .p-price {
  text-align: left;
}
.p-booking-box__head .p-price__amount {
  color: #fff;
  font-size: clamp(24px, 22.59px + 0.38vw, 28px);
}
.p-booking-box__head .p-price__tilde {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  /* 濃い背景の上なので灰色（.p-price__tilde の既定色）だと読めない。金額と同じ白系にする */
  color: inherit;
  opacity: 0.85;
}
.p-booking-box__body {
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(14px, 10.48px + 0.94vw, 24px);
  display: grid;
  gap: clamp(9px, 7.59px + 0.38vw, 13px);
}
.p-booking-box {
  /* CF7(.wpcf7 > form)が間に入ると上のグリッド間隔が効かないので、form 側にも同じ間隔を持たせる */
}
.p-booking-box .wpcf7-form {
  display: grid;
  gap: clamp(9px, 7.59px + 0.38vw, 13px);
}
.p-booking-box .wpcf7-form .wpcf7-submit {
  border: 0;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
}

.c-field {
  /* CF7 出力(ベンダー)にはクラスが載らないため、label/input/select/textarea のタグ併記で指定する */
  /* 日付欄(flatpickr)。input の右にカレンダーの SVG を重ねる */
}
.c-field__date {
  position: relative;
  display: block;
}
.c-field__date .c-field__input {
  padding-right: clamp(34px, 31.89px + 0.56vw, 40px);
  cursor: pointer;
}
.c-field__date-ico {
  position: absolute;
  right: clamp(10px, 8.94px + 0.28vw, 13px);
  top: 50%;
  transform: translateY(-50%);
  width: 18px;
  height: 18px;
  color: var(--brand);
  pointer-events: none;
}
.c-field .c-field__label, .c-field label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.c-field .c-field__label .req, .c-field label .req {
  background: var(--accent);
  color: #fff;
  font-size: 10px;
  padding: 1px clamp(5px, 4.3px + 0.19vw, 7px);
  border-radius: 4px;
  margin-left: clamp(4px, 3.3px + 0.19vw, 6px);
  font-weight: 700;
}
.c-field .c-field__input, .c-field .c-field__select, .c-field .c-field__textarea, .c-field input, .c-field select, .c-field textarea {
  width: 100%;
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(9px, 7.59px + 0.38vw, 13px);
  border: 1.5px solid var(--line);
  border-radius: var(--r-sm);
  /* 一括指定にすると base の select 矢印（background-image）が消えるので色だけ */
  background-color: #fff;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-field .c-field__select, .c-field select {
  padding-right: clamp(30px, 27.18px + 0.75vw, 38px);
}
.c-field .c-field__input:focus, .c-field .c-field__select:focus, .c-field .c-field__textarea:focus, .c-field input:focus, .c-field select:focus, .c-field textarea:focus {
  border-color: var(--brand);
  outline: none;
  box-shadow: 0 0 0 3px var(--brand-050);
}

.c-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(7px, 5.59px + 0.38vw, 11px);
}

.p-booking-note {
  font-size: 11.5px;
  color: var(--ink-3);
  line-height: 1.7;
}

.p-booking-trust {
  display: flex;
  justify-content: center;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  font-size: 11px;
  color: var(--ink-2);
  padding-top: 4px;
  flex-wrap: wrap;
}
.p-booking-trust .p-booking-trust__item, .p-booking-trust__item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.p-booking-trust .c-ico {
  width: 14px;
  height: 14px;
  color: var(--aurora);
}

/* 全出発日。月ごとに1行、日は色で料金ランクを表す */
.p-deplist {
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.p-deplist__row {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 5.89px + 0.56vw, 14px);
  padding: clamp(8px, 6.94px + 0.28vw, 11px) clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-deplist__row:nth-child(odd) {
  background: var(--bg-soft);
}
.p-deplist__month {
  flex: 0 0 auto;
  min-width: clamp(74px, 68.37px + 1.5vw, 90px);
  font-family: var(--font-en);
  font-size: clamp(12px, 11.65px + 0.09vw, 13px);
  font-weight: 700;
  color: var(--ink-2);
}
.p-deplist__days {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-deplist__day {
  font-family: var(--font-en);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  font-weight: 700;
}
.p-deplist__day--black {
  color: var(--ink);
}
.p-deplist__day--blue {
  color: var(--brand-ink);
}
.p-deplist__day--red {
  color: var(--accent-ink);
}
.p-deplist__legend {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 5.18px + 0.75vw, 16px);
  margin-top: clamp(7px, 5.94px + 0.28vw, 10px);
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
}
.p-deplist__legend-item {
  font-weight: 700;
}

/* ============================================================
   55. タイプ別ツアー一覧ページ (tour-style/ + type-tours.js)
   ============================================================ */
.p-tsp-hero {
  max-width: clamp(672px, 570.59px + 27.04vw, 960px);
  margin: 0 auto;
  padding: clamp(17px, 13.13px + 1.03vw, 28px) clamp(12px, 9.18px + 0.75vw, 20px) clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-tsp-hero__art .p-tsp-hero__art-img, .p-tsp-hero__art img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--r-lg);
  box-shadow: var(--sh);
}
.p-tsp-hero__body {
  text-align: center;
  padding: clamp(16px, 12.48px + 0.94vw, 26px) 4px clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-tsp-hero__kicker {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-tsp-hero__kicker .en {
  font-family: var(--font-en);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brand);
}
.p-tsp-hero__type {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--brand-ink);
  border: 1px solid var(--line);
  background: var(--brand-050);
  border-radius: 999px;
  padding: clamp(4px, 3.3px + 0.19vw, 6px) clamp(10px, 7.89px + 0.56vw, 16px);
  margin-top: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-tsp-hero__type .c-ico {
  width: 14px;
  height: 14px;
}
.p-tsp-hero__catch {
  font-size: clamp(24px, 4.4vw, 34px);
  font-weight: 800;
  line-height: 1.5;
  margin-top: clamp(9px, 7.24px + 0.47vw, 14px);
  /* 和文は文節の切れ目で折り返す */
  word-break: auto-phrase;
  text-wrap: balance;
  color: var(--ink);
}
.p-tsp-hero__lead {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 2.1;
  color: var(--ink-2);
  max-width: clamp(420px, 356.62px + 16.9vw, 600px);
  margin: clamp(9px, 7.24px + 0.47vw, 14px) auto 0;
}

.p-tsp-share {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  margin-top: clamp(12px, 9.18px + 0.75vw, 20px);
  flex-wrap: wrap;
}
.p-tsp-share__label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
}
.p-tsp-share__btn {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: 12.5px;
  font-weight: 700;
  border-radius: 999px;
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(11px, 8.54px + 0.66vw, 18px);
  color: #fff;
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-tsp-share__btn:hover {
    opacity: 0.85;
  }
}
.p-tsp-share__btn .c-ico {
  width: 15px;
  height: 15px;
}
.p-tsp-share__btn--x {
  background: #0f1419;
}
.p-tsp-share__btn--fb {
  background: #0866ff;
}
.p-tsp-share {
  /* コピーは白地。上の &__btn の color:#fff が _share-bar.scss の指定を後勝ちで潰して文字が消えていた */
}
.p-tsp-share__btn--copy {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--ink);
}
.p-tsp-share__btn--ig {
  background: linear-gradient(45deg, #f9ce34, #ee2a7b 45%, #6228d7);
  border: 0;
  cursor: pointer;
  font-family: inherit;
}
.p-tsp-share__btn.is-busy {
  opacity: 0.6;
  pointer-events: none;
}

/* Instagram用の画像を保存したときの案内(PC) */
.p-ig-toast {
  position: fixed;
  left: 50%;
  bottom: clamp(18px, 15.18px + 0.75vw, 26px);
  transform: translate(-50%, 20px);
  z-index: 9999;
  max-width: min(92vw, 520px);
  background: var(--navy);
  color: #fff;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.75;
  border-radius: var(--r);
  padding: clamp(9px, 7.24px + 0.47vw, 14px) clamp(12px, 9.18px + 0.75vw, 20px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
  opacity: 0;
  transition: opacity 0.3s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-ig-toast.is-on {
  opacity: 1;
  transform: translate(-50%, 0);
}

.p-tsp-hero__retry {
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-tsp-hero__retry a {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media (hover: hover) {
  .p-tsp-hero__retry a:hover {
    color: var(--brand);
  }
}
.p-tsp-hero__retry .c-ico {
  width: 13px;
  height: 13px;
}

.p-tsp-count {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  color: var(--brand);
  margin-left: clamp(6px, 4.59px + 0.38vw, 10px);
}

.p-tsp-chips {
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  flex-wrap: wrap;
  margin-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
}
.p-tsp-chips__label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
  margin-right: 2px;
}
.p-tsp-chips__sep {
  width: 1px;
  height: 18px;
  background: var(--line-2);
  margin: 0 4px;
}

.p-tsp-chip {
  cursor: pointer;
}
.p-tsp-chip.is-on {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

.p-tsp-loading, .p-tsp-empty {
  grid-column: 1/-1;
  text-align: center;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-3);
  padding: clamp(24px, 18.37px + 1.5vw, 40px) 0;
}

.p-tsp-empty a {
  color: var(--brand);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.p-tsp-consult {
  margin-top: clamp(29px, 22.31px + 1.78vw, 48px);
  text-align: center;
  border-top: 1px solid var(--line);
  padding-top: clamp(19px, 14.42px + 1.22vw, 32px);
}
.p-tsp-consult .p-tsp-consult__text, .p-tsp-consult p {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}

/* 結果画面(濃色背景)に置くシェア行 */
.p-tsp-share--dark {
  margin-top: clamp(11px, 8.54px + 0.66vw, 18px);
}
.p-tsp-share--dark .p-tsp-share__label {
  color: rgba(255, 255, 255, 0.65);
}
.p-tsp-share--dark .p-tsp-share__btn--x {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.p-tsp-share--dark .p-tsp-share__btn--fb {
  background: #0866ff;
}

/* ============================================================
   62. 申込ページ (offers/ ・ page-offer.php)
   ------------------------------------------------------------
   「写真＋文章＋申込フォーム」だけの単発販売ページ用。
   スタッフがページを複製して文言と写真を差し替えるだけで
   新しい募集ページを量産できるようにするための骨格。
   ============================================================ */
.p-offer-hero {
  position: relative;
  isolation: isolate;
  min-height: min(64vh, 520px);
  display: flex;
  align-items: center;
  overflow: hidden;
}
.p-offer-hero > .p-offer-hero__img, .p-offer-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}
.p-offer-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(100deg, rgba(14, 34, 51, 0.88) 0%, rgba(14, 34, 51, 0.62) 55%, rgba(14, 34, 51, 0.35) 100%);
}
.p-offer-hero__inner {
  max-width: var(--w-wide);
  margin-inline: auto;
  width: 100%;
  padding: clamp(34px, 26.25px + 2.07vw, 56px) clamp(13px, 9.83px + 0.85vw, 22px);
  color: #fff;
}
.p-offer-hero__inner .p-offer-hero__inner-heading {
  font-size: clamp(26px, 4.6vw, 42px);
  font-weight: 800;
  line-height: 1.45;
  margin: clamp(9px, 7.24px + 0.47vw, 14px) 0 clamp(10px, 7.89px + 0.56vw, 16px);
  /* 和文は文節の切れ目で折り返す */
  word-break: auto-phrase;
  text-wrap: balance;
}
.p-offer-hero__inner .p-offer-hero__inner-text {
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  line-height: 2;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: clamp(16px, 12.48px + 0.94vw, 26px);
  max-width: clamp(448px, 380.39px + 18.03vw, 640px);
}

.p-offer-badge {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  background: var(--accent);
  color: #fff;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.03em;
  border-radius: 999px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-offer-badge .c-ico {
  width: 14px;
  height: 14px;
}

.c-btn--lg {
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  padding: clamp(9px, 6.89px + 0.56vw, 15px) clamp(19px, 14.42px + 1.22vw, 32px);
}

.p-offer-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  margin-bottom: clamp(22px, 17.07px + 1.31vw, 36px);
}
.p-offer-gallery .p-offer-gallery__figure, .p-offer-gallery figure {
  margin: 0;
}
.p-offer-gallery .p-offer-gallery__img, .p-offer-gallery img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  display: block;
}

@media screen and (max-width: 620px) {
  .p-offer-gallery {
    grid-template-columns: 1fr;
  }
}
.p-offer-body {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  line-height: 2.1;
  color: var(--ink-2);
  margin-bottom: clamp(19px, 14.42px + 1.22vw, 32px);
}
.p-offer-body p + p {
  margin-top: 1.1em;
}

.p-offer-facts {
  display: grid;
  gap: 0;
  margin: 0 0 clamp(19px, 14.42px + 1.22vw, 32px);
  border-top: 1px solid var(--line);
}
.p-offer-facts > div {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
  padding: clamp(9px, 6.89px + 0.56vw, 15px) 0;
  border-bottom: 1px solid var(--line);
}
.p-offer-facts .p-offer-facts__term, .p-offer-facts dt {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink-3);
}
.p-offer-facts .p-offer-facts__desc, .p-offer-facts dd {
  margin: 0;
  font-size: clamp(12px, 11.12px + 0.23vw, 14.5px);
  line-height: 1.85;
  color: var(--ink);
}

@media screen and (max-width: 620px) {
  .p-offer-facts > div {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: clamp(8px, -0.33px + 2.22vw, 13px) 0;
  }
}
.p-offer-form {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(20px, 15.07px + 1.31vw, 34px) clamp(18px, 13.77px + 1.13vw, 30px);
  scroll-margin-top: calc(var(--header-h) + 30px);
}
.p-offer-form form {
  display: grid;
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
}

@media screen and (max-width: 620px) {
  .p-offer-form {
    padding: clamp(17px, 2px + 4vw, 26px) clamp(13px, 1.33px + 3.11vw, 20px);
  }
}
/* ============================================================
   ツアーページ本文の部品
   ============================================================ */
.p-tour-summary.p-tour-summary.p-tour-summary {
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}

.p-tel-card.p-tel-card.p-tel-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-s);
  padding: clamp(11px, 8.54px + 0.66vw, 18px) clamp(12px, 9.18px + 0.75vw, 20px);
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.9;
}

.p-hotel-frame.p-hotel-frame.p-hotel-frame {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(14px, 10.48px + 0.94vw, 24px) clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-hotel-frame {
  /* ホテル未設定時の案内(single-tour.php) */
}
.p-hotel-frame__name {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  margin: 0 0 clamp(10px, 8.59px + 0.38vw, 14px);
}
.p-hotel-frame__name-label {
  color: var(--ink);
  font-weight: 700;
}
.p-hotel-frame__name-value {
  color: var(--ink-3);
}
.p-hotel-frame__note {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.9;
  color: var(--ink-2);
  margin: clamp(10px, 8.59px + 0.38vw, 14px) 0 0;
}
.p-hotel-frame {
  /* 選べる宿泊ホテルの表の上の説明 */
}
.p-hotel-frame__lead {
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.9;
  color: var(--ink-2);
  margin: 0 0 clamp(10px, 8.59px + 0.38vw, 14px);
}

.p-offer-badge--muted {
  background: #7c8894;
}

/* ---- JRパス ---- */
.p-jrpass__note {
  font-size: clamp(13px, 12.65px + 0.09vw, 14px);
  line-height: 1.95;
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}

/* ---- コラム詳細（single.php）---- */
.p-tour-summary {
  font-size: clamp(14px, 13.47px + 0.14vw, 15.5px);
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: clamp(20px, 15.77px + 1.13vw, 32px);
}

.p-tour-rv-lead {
  display: flex;
  align-items: center;
  gap: clamp(7px, 5.94px + 0.28vw, 10px);
  flex-wrap: wrap;
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
  /* 平均点の右に置く出典の注記 */
}
.p-tour-rv-lead__note {
  color: var(--ink-3);
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  line-height: 1.6;
}

/* 本文カラム(約672px)に3列は詰まりすぎるので、ツアー個別だけ2列にする */
.p-tour-rv-grid {
  grid-template-columns: repeat(2, 1fr);
  max-width: none;
  margin-inline: 0;
}

@media screen and (max-width: 760px) {
  .p-tour-rv-grid {
    grid-template-columns: 1fr;
  }
}
/* 「残りN件の口コミをすべて見る」(見た目は .p-rv-more を流用。グリッド直後だけ間隔を広げる) */
.p-tour-rv-grid + .p-rv-more {
  margin-top: clamp(12px, 9.89px + 0.56vw, 18px);
}

/* 支店の電話番号カード（申込ボックスの下） */
.p-hotel-map__frame {
  display: block;
  width: 100%;
  border: 0;
}

/* ---- サイドナビの現在地（aria-current を見て装飾する）---- */
/* 電話番号を行の途中で割らない */
.p-tel-card__tel {
  white-space: nowrap;
}

/* ============================================================
   36. ニュース個別ページ (News Article)
   業務連絡・キャンペーン・重要なお知らせなど多様なトーンを1テンプレートで。
   ============================================================ */
.p-news-article {
  max-width: clamp(532px, 451.72px + 21.41vw, 760px);
  margin: clamp(26px, 19.66px + 1.69vw, 44px) auto 0;
  padding: 0 clamp(12px, 9.18px + 0.75vw, 20px);
}
.p-news-article__meta {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  flex-wrap: wrap;
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-news-article__meta .p-news-article__meta-time, .p-news-article__meta-time, .p-news-article__meta time {
  font-family: var(--font-en);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-3);
  letter-spacing: 0.04em;
}
.p-news-article__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--ink-3);
}
.p-news-article__meta-ico {
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.p-news-article__lead {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  line-height: 2;
  color: var(--ink-2);
  padding-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
  border-bottom: 1px solid var(--line);
  margin-bottom: clamp(17px, 13.13px + 1.03vw, 28px);
}
.p-news-article__lead p {
  margin: 0 0 0.8em;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
.p-news-article__lead p:last-child {
  margin-bottom: 0;
}
.p-news-article__title {
  font-size: clamp(25px, 23.59px + 0.38vw, 29px);
  font-weight: 800;
  line-height: 1.55;
  letter-spacing: 0.01em;
  color: var(--ink);
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
  /* 和文は文節の切れ目で折り返す */
  word-break: auto-phrase;
  text-wrap: balance;
}

@media screen and (max-width: 620px) {
  .p-news-article__title {
    font-size: clamp(20px, 15px + 1.33vw, 23px);
  }
}
.p-news-figure {
  margin: 0 0 clamp(17px, 13.13px + 1.03vw, 28px);
  border-radius: var(--r);
  overflow: hidden;
  border: 1px solid var(--line);
}
.p-news-figure .p-news-figure__img, .p-news-figure img {
  width: 100%;
  display: block;
  aspect-ratio: 16/8;
  object-fit: cover;
}
.p-news-figure .p-news-figure__caption {
  font-size: 12px;
  color: var(--ink-3);
  padding: clamp(6px, 4.94px + 0.28vw, 9px) clamp(9px, 7.94px + 0.28vw, 12px);
}

.p-news-body {
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  color: var(--ink-2);
  line-height: 2.05;
}
.p-news-body > .p-news-body__text, .p-news-body > p {
  margin-bottom: 1.5em;
}
.p-news-body .p-news-body__heading, .p-news-body h2 {
  font-size: clamp(17px, 15.94px + 0.28vw, 20px);
  font-weight: 800;
  color: var(--ink);
  margin: 2em 0 0.8em;
  line-height: 1.5;
}
.p-news-body .p-news-body__h3, .p-news-body h3 {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  font-weight: 700;
  color: var(--ink);
  margin: 1.6em 0 0.6em;
}
.p-news-body .p-news-body__list, .p-news-body .p-news-body__ol, .p-news-body ul, .p-news-body ol {
  margin: 0 0 1.5em;
  padding-left: 1.4em;
}
.p-news-body .p-news-body__item, .p-news-body li {
  margin-bottom: 0.5em;
}
.p-news-body a:not(.c-btn) {
  color: var(--brand-ink);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.p-news-body .p-news-body__strong, .p-news-body__strong, .p-news-body strong {
  color: var(--ink);
  font-weight: 700;
}
.p-news-body .c-table-wrap {
  margin: 1.5em 0;
}

.p-news-article__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  flex-wrap: wrap;
  margin-top: clamp(22px, 17.07px + 1.31vw, 36px);
  padding-top: clamp(13px, 9.83px + 0.85vw, 22px);
  border-top: 1px solid var(--line);
}

.p-news-back {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-news-back .c-ico {
  width: 16px;
  height: 16px;
}

.p-news-related-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
  max-width: clamp(532px, 451.72px + 21.41vw, 760px);
  margin-inline: auto;
}
.p-news-related-list .p-news-related-list__link {
  display: flex;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  align-items: center;
  flex-wrap: wrap;
  padding: clamp(10px, 7.89px + 0.56vw, 16px) clamp(5px, 3.94px + 0.28vw, 8px);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-news-related-list .p-news-related-list__link:hover {
    background: var(--bg-2);
  }
}
.p-news-related-list .p-news-related-list__time, .p-news-related-list__time, .p-news-related-list time {
  font-family: var(--font-en);
  font-size: 12.5px;
  color: var(--ink-3);
  flex: 0 0 84px;
}
.p-news-related-list .t {
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 600;
  line-height: 1.6;
  flex: 1;
  min-width: clamp(140px, 118.87px + 5.63vw, 200px);
}

/* ============================================================
   61. よくある質問・用語集の絞り込みUI (faq-filter.js)
   ------------------------------------------------------------
   47問+32語を1ページに置いたままにするための装置。
   検索でその場で絞り、カテゴリーチップは追従して現在地を示す。
   ============================================================ */
.p-faq-search {
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-faq-search__box {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  padding: clamp(9px, 7.94px + 0.28vw, 12px) clamp(12px, 9.18px + 0.75vw, 20px);
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-faq-search__box:focus-within {
  border-color: var(--brand);
  box-shadow: 0 0 0 4px var(--brand-050);
}
.p-faq-search__box > .c-ico {
  width: 19px;
  height: 19px;
  color: var(--ink-3);
  flex-shrink: 0;
}
.p-faq-search__box .p-faq-search__field {
  flex: 1;
  border: 0;
  background: none;
  font-size: 15px;
  font-family: inherit;
  color: var(--ink);
  outline: none;
  min-width: 0;
}
.p-faq-search__box .p-faq-search__field::placeholder {
  color: var(--ink-3);
}
.p-faq-search__box .p-faq-search__field::-webkit-search-cancel-button {
  display: none;
}
.p-faq-search__clear {
  display: none;
  align-items: center;
  justify-content: center;
  width: clamp(20px, 17.89px + 0.56vw, 26px);
  height: clamp(20px, 17.89px + 0.56vw, 26px);
  border: 0;
  border-radius: 999px;
  background: var(--bg-2);
  color: var(--ink-2);
  cursor: pointer;
  flex-shrink: 0;
}
.p-faq-search__clear .c-ico {
  width: 13px;
  height: 13px;
}
.p-faq-search__box:has(.p-faq-search__field:not(:placeholder-shown)) .p-faq-search__clear {
  display: inline-flex;
}
.p-faq-search__count {
  margin-top: clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  font-weight: 700;
  color: var(--brand-ink);
  padding-left: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-faq-search__count.is-zero {
  color: var(--accent);
}

/* カテゴリーチップの追従。ヘッダー(約72px)の下に貼り付く */
.p-faq-nav {
  position: sticky;
  top: calc(var(--header-stick) + 30px);
  z-index: 20;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  margin: 0 -12px clamp(24px, 18.37px + 1.5vw, 40px);
  padding: clamp(9px, 7.94px + 0.28vw, 12px);
  border-radius: var(--r-sm);
}
.p-faq-nav .c-chip {
  position: relative;
}
.p-faq-nav .c-chip.is-current {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.p-faq-nav .c-chip.is-current .c-ico {
  color: #fff;
}
.p-faq-nav .c-chip.is-off {
  opacity: 0.35;
  pointer-events: none;
}

.c-chip-n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  margin-left: clamp(5px, 4.3px + 0.19vw, 7px);
  padding: 0 5px;
  border-radius: 999px;
  background: var(--bg-2);
  color: var(--ink-3);
  font-family: var(--font-en);
  font-size: 11px;
  font-weight: 700;
}

.p-faq-nav .c-chip.is-current .c-chip-n {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

@media screen and (max-width: 760px) {
  .p-faq-nav {
    top: calc(var(--header-stick) + 26px);
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
  }
  .p-faq-nav::-webkit-scrollbar {
    display: none;
  }
  .p-faq-nav .c-chip {
    flex-shrink: 0;
  }
}
/* ---- 旅行ガイドのカテゴリー絞り込み (guide-filter.js) ---- */
.p-guide-cats {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  margin-bottom: clamp(18px, 13.77px + 1.13vw, 30px);
}

.p-guide-cat {
  display: inline-flex;
  align-items: center;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink-2);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(10px, 7.89px + 0.56vw, 16px);
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-guide-cat:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}
.p-guide-cat.is-on {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.p-guide-cat.is-on .c-chip-n {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}
.p-guide-cat.is-empty {
  opacity: 0.4;
  pointer-events: none;
}

.p-guide-empty {
  background: var(--bg-2);
  border-radius: var(--r);
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(14px, 10.48px + 0.94vw, 24px);
  text-align: center;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  margin-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
}
.p-guide-empty__reset {
  margin-left: clamp(5px, 3.94px + 0.28vw, 8px);
  border: 0;
  background: none;
  color: var(--brand-ink);
  font-weight: 700;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  font-family: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---- カテゴリーの節（.p-faq-cat） ----
   節と節の間の余白。前の節のリスト末尾と次の見出しがくっついていたので入れた。 */
.p-faq-cat + .p-faq-cat {
  margin-top: clamp(34px, 26.25px + 2.07vw, 56px);
}

/* 2カラム(.p-faq-layout / .p-faq-side)は object/project/_faq-side.scss にある（ツアー総合入口と共用） */
/* ---- 用語集の目次・小見出し（静的英語版の用語集は場面ごとに h3 で分かれている） ---- */
.p-gloss-nav {
  margin-bottom: clamp(18px, 15.18px + 0.75vw, 26px);
}

.p-gloss-group + .p-gloss-group {
  margin-top: clamp(22px, 17.77px + 1.13vw, 34px);
}

.p-gloss-group__heading {
  font-size: clamp(14.5px, 13.62px + 0.23vw, 17px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.5;
  margin: 0 0 clamp(10px, 8.59px + 0.38vw, 14px);
  padding-left: clamp(9px, 7.94px + 0.28vw, 12px);
  border-left: 3px solid var(--brand);
  scroll-margin-top: 120px;
}

/* 用語の日本語表記（英語の語の横に小さく） */
.p-gloss-item__ja {
  margin-left: 0.4em;
  font-weight: 500;
  font-size: 0.86em;
  color: var(--ink-3);
}

/* ============================================================
   よくある質問の2カラム (.p-faq-layout / .p-faq-side)
   ・PC(1001px〜): 本文 + 右サイドバー。サイドバーは追従(sticky)し、
     いま読んでいる節を強調する（faq.js のスクロールスパイ。チップ列と共通）
   ・スマホ: サイドバーは出さず、横並びチップ + 右下の追従ボタン(faq.js)から開く
   ・ツアー総合入口は .p-tours-layout（pages/_archive-tour.scss）の中で .p-faq-side を使う。
     現在地の強調は tour.js ③
   ============================================================ */
.p-faq-layout {
  display: block;
}

.p-faq-side {
  display: none;
}

@media screen and (min-width: 1001px) {
  .p-faq-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(210px, 189.58px + 5.45vw, 268px);
    gap: clamp(24px, 18.37px + 1.5vw, 40px);
    align-items: start;
  }
  /* PCではサイドバーが正。横並びチップは重複するので出さない */
  .p-faq-layout .p-faq-nav {
    display: none;
  }
  .p-faq-side {
    display: block;
    position: sticky;
    top: calc(var(--header-stick) + 18px);
  }
  .p-faq-side__inner {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--r);
    padding: clamp(14px, 11.89px + 0.56vw, 20px);
  }
  .p-faq-side .p-side-widget__title {
    margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  }
  .p-faq-side__list {
    display: grid;
    gap: 2px;
  }
  .p-faq-side__list .p-faq-side__link {
    display: flex;
    align-items: center;
    gap: clamp(6px, 4.94px + 0.28vw, 9px);
    padding: clamp(7px, 6.3px + 0.19vw, 9px) clamp(7px, 5.94px + 0.28vw, 10px);
    border-radius: 9px;
    font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
    font-weight: 600;
    color: var(--ink-2);
    line-height: 1.5;
  }
  .p-faq-side__list .p-faq-side__link .c-ico {
    width: 15px;
    height: 15px;
    color: var(--brand);
  }
  .p-faq-side {
    /* いま読んでいる節。クラス名は faq.js のスクロールスパイに合わせる */
    /* 絞り込みで0件になったカテゴリー */
    /* 件数バッジ(faq.js が付ける)は右端に寄せる */
    /* 「無料で相談する」。色はオレンジ（c-btn--primary）。
       c-btn--small 比で 縦の余白 +8%（8〜12 → 8.64〜12.96）、横の余白 +10%（11〜18 → 12.1〜19.8）、
       文字 +10%（11〜13.5 → 12.1〜14.85。アイコンは 1.1em なので文字に連動）。ツアー／よくある質問 共通 */
  }
}
@media screen and (min-width: 1001px) and (hover: hover) {
  .p-faq-side__list .p-faq-side__link:hover {
    background: var(--bg-2);
    color: var(--brand-ink);
  }
}
@media screen and (min-width: 1001px) {
  .p-faq-side__list .p-faq-side__link.is-current {
    background: var(--brand-050);
    color: var(--brand-ink);
    font-weight: 700;
  }
  .p-faq-side__list .p-faq-side__link.is-off {
    opacity: 0.4;
  }
  .p-faq-side__list .p-faq-side__link .c-chip-n {
    margin-left: auto;
  }
  .p-faq-side__cta {
    margin-top: clamp(11px, 9.24px + 0.47vw, 16px);
    padding-top: clamp(11px, 9.24px + 0.47vw, 16px);
    border-top: 1px solid var(--line);
    text-align: center;
  }
  .p-faq-side__cta-text {
    font-size: 12.5px;
    color: var(--ink-3);
    margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
  }
  .p-faq-side__cta .c-btn {
    width: 100%;
    justify-content: center;
    padding: clamp(8.64px, 7.12px + 0.41vw, 12.96px) clamp(12.1px, 9.39px + 0.72vw, 19.8px);
    font-size: clamp(12.1px, 11.13px + 0.26vw, 14.85px);
  }
}
/* ============================================================
   86. ガイド一覧のページャー補助
       記事が113本になり15件ずつのページ送りを導入(guide-filter.js)。
       ページ数が多いので「…」で中間をたたむ。
   ============================================================ */
.c-pagination__gap {
  min-width: auto;
  height: clamp(30px, 26.48px + 0.94vw, 40px);
  display: grid;
  place-items: center;
  padding: 0 2px;
  border: none;
  background: none;
  color: var(--ink-mute);
  font-family: var(--font-en);
}

@media screen and (max-width: 520px) {
  .c-pagination {
    gap: 5px;
    flex-wrap: wrap;
  }
  .c-pagination .c-pagination__item, .c-pagination a, .c-pagination__item, .c-pagination span {
    min-width: clamp(27px, 3.72px + 6.21vw, 36px);
    height: clamp(27px, 3.72px + 6.21vw, 36px);
    font-size: clamp(11px, 5.83px + 1.38vw, 13px);
  }
}
/* ============================================================
   97. 旅行ガイドのカテゴリー表示
       PC   … サイドバーのCATEGORY一覧が担当(参考: コラム一覧のサイドバー)。
              本文上のボタン群はPCでは出さない(重複するため)。
       スマホ… 「カテゴリで絞り込む▼」の開閉式。畳んだ状態は1行(48px)。
   ============================================================ */
.p-guide-filterbar {
  margin-bottom: clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-guide-filterbar__toggle {
  display: none;
}

/* サイドバーのエリア絞り込み。カテゴリーと違い件数が少ないのでプルダウンにする */
.p-side-area {
  width: 100%;
  font-family: inherit;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  color: var(--ink);
  /* background を一括で指定すると _base.scss が描いている矢印が消える */
  background-color: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: clamp(7px, 5.94px + 0.28vw, 10px) clamp(9px, 7.59px + 0.38vw, 13px);
  /* 矢印ぶんの余白（_base.scss の :where(select) と同じ幅） */
  padding-right: 2.2em;
  cursor: pointer;
}

/* 件数「◯件中 1〜12件を表示」（guide-filter.js が書き込む） */
.p-guide-count {
  margin: clamp(12px, 9.89px + 0.56vw, 18px) 0 0.375rem;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  color: var(--ink-3);
}

/* PCでは開閉バーを出さない */
/* --- サイドバーのCATEGORY一覧(選択中を強調できるように) --- */
.p-side-cats .p-side-cats__link {
  position: relative;
}
.p-side-cats .p-side-cats__link.is-on {
  color: var(--brand-ink);
  font-weight: 700;
}
.p-side-cats .p-side-cats__link.is-on .n {
  background: var(--brand);
  color: #fff;
}
.p-side-cats .p-side-cats__link.is-on::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 50%;
  translate: 0 -50%;
  width: 3px;
  height: 18px;
  border-radius: 2px;
  background: var(--brand);
}

@media screen and (min-width: 1001px) {
  /* PCは本文上のカテゴリーボタンを隠す(サイドバーが正) */
  .p-guide-filterbar {
    display: none;
  }
}
@media screen and (max-width: 1000px) {
  /* --- 開閉バー --- */
  .p-guide-filterbar {
    position: relative;
    margin-bottom: clamp(14px, 9.2px + 1.28vw, 22px);
  }
  .p-guide-filterbar__toggle {
    display: flex;
    align-items: center;
    gap: clamp(6px, 4.2px + 0.48vw, 9px);
    width: 100%;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: clamp(9px, 7.2px + 0.48vw, 12px);
    padding: clamp(8px, 5px + 0.8vw, 13px) clamp(10px, 7px + 0.8vw, 15px);
    font: inherit;
    font-size: clamp(12px, 10.8px + 0.32vw, 14px);
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
    text-align: left;
  }
  .p-guide-filterbar__toggle .c-ico {
    width: 17px;
    height: 17px;
    color: var(--brand);
    flex-shrink: 0;
  }
  .p-guide-filterbar__toggle .p-guide-filterbar__toggle-item, .p-guide-filterbar__toggle-item, .p-guide-filterbar__toggle span {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .p-guide-filterbar__toggle[aria-expanded=true] {
    border-color: var(--brand);
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  /* 開閉パネル。畳んでいるときは隠し、開いたらバーの下に重ねる */
  .p-guide-filterbar .p-guide-cats {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 20;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 0;
    margin: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--brand);
    border-top: none;
    border-radius: 0 0 clamp(9px, 7.2px + 0.48vw, 12px) clamp(9px, 7.2px + 0.48vw, 12px);
  }
  .p-guide-filterbar.is-open .p-guide-cats {
    display: flex;
  }
  /* 開閉パネルの最後に置くエリア選択（スマホはサイドバーが下に回るため） */
  .p-guide-cats__area {
    display: flex;
    align-items: center;
    gap: clamp(6px, 4.2px + 0.48vw, 9px);
    padding: clamp(8px, 5.6px + 0.64vw, 12px) clamp(10px, 7px + 0.8vw, 15px);
    border-top: 1px solid var(--line);
  }
  .p-guide-cats__area-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    font-size: clamp(12px, 11.1px + 0.24vw, 13.5px);
    font-weight: 700;
    color: var(--ink-2);
  }
  .p-guide-cats__area-label .c-ico {
    width: 15px;
    height: 15px;
    color: var(--brand);
  }
  .p-guide-cat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(6px, 3.6px + 0.64vw, 10px);
    width: 100%;
    border: none;
    border-radius: 0;
    background: none;
    padding: clamp(8px, 5.6px + 0.64vw, 12px) clamp(10px, 6.4px + 0.96vw, 16px);
    font-size: clamp(11px, 9.5px + 0.4vw, 13.5px);
    font-weight: 600;
    color: var(--ink-2);
    text-align: left;
  }
  .p-guide-cat + .p-guide-cat {
    border-top: 1px dashed var(--line-2);
  }
  .p-guide-cat.is-on {
    background: var(--brand-050);
    color: var(--brand-ink);
    font-weight: 700;
  }
  .p-guide-cat .c-chip-n {
    margin-left: 0;
  }
  .p-guide-cat.is-empty {
    display: none;
  }
}
/* ============================================================
   旅行ガイド記事テンプレートの見た目
   ============================================================ */
.p-guide__fig.p-guide__fig.p-guide__fig {
  margin: 0 0 clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-guide {
  /* 370箇所 / guide の <figure> 由来 */
}
.p-guide__fig-img.p-guide__fig-img.p-guide__fig-img {
  width: 100%;
  border-radius: var(--r-sm);
}
.p-guide {
  /* 370箇所 / guide の <img> 由来 */
}
.p-guide__p-2937bf.p-guide__p-2937bf.p-guide__p-2937bf {
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-guide {
  /* 2箇所 / guide の <p> 由来 */
}
.p-guide__th-088cf0.p-guide__th-088cf0.p-guide__th-088cf0 {
  width: clamp(84px, 71.32px + 3.38vw, 120px);
}
.p-guide {
  /* 1箇所 / guide の <th> 由来 */
}

.p-review-thanks {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(22px, 17.07px + 1.31vw, 36px) clamp(14px, 10.48px + 0.94vw, 24px);
  text-align: center;
  margin-top: clamp(14px, 10.48px + 0.94vw, 24px);
}
.p-review-thanks__heading {
  font-size: clamp(17px, 15.94px + 0.28vw, 20px);
  font-weight: 800;
  margin: clamp(9px, 7.24px + 0.47vw, 14px) 0 clamp(7px, 5.94px + 0.28vw, 10px);
}
.p-review-thanks__text {
  font-size: clamp(13px, 12.65px + 0.09vw, 14px);
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
}

/* ---- 申込ページのバッジ（受付終了などの控えめ表示）---- */
.p-column {
  padding: clamp(16px, 12.48px + 0.94vw, 26px) 0 clamp(48px, 36.73px + 3vw, 80px);
}
.p-column__title {
  font-size: clamp(23px, 3.6vw, 31px);
  font-weight: 800;
  line-height: 1.6;
  color: var(--ink);
  margin: clamp(8px, 6.59px + 0.38vw, 12px) 0;
}
.p-column__meta {
  display: flex;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  font-size: 12.5px;
  color: var(--ink-3);
  flex-wrap: wrap;
}
.p-column__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.p-column__meta-ico {
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.p-column__meta-author {
  display: flex;
  align-items: center;
  gap: 6px;
}
.p-column__meta-author-img {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  object-fit: cover;
  background: var(--brand-050);
}
.p-column {
  /* ロゴを出すとき。切り抜くと読めなくなるので、丸くせず横長のまま入れる */
}
.p-column__meta-author-img--logo {
  width: auto;
  height: 15px;
  border-radius: 0;
  object-fit: contain;
  background: none;
}
.p-column__related-heading {
  font-size: clamp(17px, 15.94px + 0.28vw, 20px);
  font-weight: 800;
  border-bottom: 2px solid var(--line);
  padding-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
  margin-bottom: clamp(12px, 9.18px + 0.75vw, 20px);
}

/* ---- ツアー詳細 ---- */
/* ============================================================
   56. 法人・企業向けページ (business/)
   ------------------------------------------------------------
   .p-bwhy  = 選ばれる理由の3カラムカード
   .p-bflow = ご利用の流れのステップタイムライン(PC横/スマホ縦)
   .p-bseg  = 目的別ソリューション(教育機関/企業の2カラム)
   .p-wp-band = ホワイトペーパー資料請求バンド
   ============================================================ */
.p-bwhy {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-bwhy__card {
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(16px, 12.48px + 0.94vw, 26px) clamp(16px, 12.48px + 0.94vw, 26px);
  overflow: hidden;
}
.p-bwhy__no {
  position: absolute;
  top: clamp(10px, 8.59px + 0.38vw, 14px);
  right: clamp(13px, 11.24px + 0.47vw, 18px);
  font-family: var(--font-en);
  font-size: clamp(29px, 27.24px + 0.47vw, 34px);
  font-weight: 800;
  color: var(--brand-050);
  letter-spacing: 0.02em;
  line-height: 1;
  user-select: none;
}
.p-bwhy__card .p-bwhy__card-heading {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  font-weight: 800;
  line-height: 1.6;
  color: var(--ink);
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-bwhy__card .p-bwhy__card-text {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.95;
  color: var(--ink-2);
}

@media screen and (max-width: 860px) {
  .p-bwhy {
    grid-template-columns: 1fr;
  }
  .p-bwhy__card .p-bwhy__card-heading br {
    display: none;
  }
}
.p-bflow {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  counter-reset: none;
  padding: 0;
  margin: 0;
}
.p-bflow__body .p-bflow__body-text, .p-bflow__body p {
  font-size: 12.5px;
  line-height: 1.9;
  color: var(--ink-2);
  text-align: left;
}

@media screen and (max-width: 760px) {
  .p-bflow {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .p-bflow__body {
    padding-top: clamp(6px, 2.1px + 1.04vw, 10px);
  }
}
.p-bseg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(13px, 9.83px + 0.85vw, 22px);
}
.p-bseg__card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(17px, 13.13px + 1.03vw, 28px) clamp(16px, 12.48px + 0.94vw, 26px);
}
.p-bseg__head {
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-bseg__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(39px, 33.01px + 1.6vw, 56px);
  height: clamp(39px, 33.01px + 1.6vw, 56px);
  border-radius: clamp(12px, 10.59px + 0.38vw, 16px);
  background: var(--brand-050);
  color: var(--brand);
}
.p-bseg__ico .c-ico {
  width: clamp(21px, 18.54px + 0.66vw, 28px);
  height: clamp(21px, 18.54px + 0.66vw, 28px);
}
.p-bseg__tag {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: var(--brand-ink);
  margin-bottom: 4px;
}
.p-bseg__card .p-bseg__card-heading {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.5;
}
.p-bseg__lead {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.95;
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-bseg__card .c-check-list {
  margin-bottom: clamp(12px, 9.18px + 0.75vw, 20px);
}
.p-bseg__card .c-btn {
  margin-top: auto;
  align-self: flex-start;
}

@media screen and (max-width: 860px) {
  .p-bseg {
    grid-template-columns: 1fr;
  }
}
.p-wp-band {
  display: flex;
  align-items: center;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  margin-top: clamp(16px, 12.48px + 0.94vw, 26px);
  background: var(--navy);
  border-radius: var(--r);
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(17px, 13.13px + 1.03vw, 28px);
  color: #fff;
  flex-wrap: wrap;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.p-wp-band::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(11, 28, 43, 0.82);
}
.p-wp-band__bg {
  position: absolute;
  inset: 0;
  z-index: -2;
  line-height: 0;
}
.p-wp-band__bg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-wp-band__body {
  flex: 1;
  min-width: clamp(168px, 142.65px + 6.76vw, 240px);
}
.p-wp-band__body .p-wp-band__body-strong, .p-wp-band__body-strong {
  display: block;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 800;
  line-height: 1.6;
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-wp-band__body .p-wp-band__body-text {
  font-size: 12.5px;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.78);
}
.p-wp-band .c-btn {
  flex-shrink: 0;
}

/* ============================================================
   節ごとの見せ方
   ・提供サービス10件は c-service-index（罫線の索引）
   ・選ばれる理由は紺の帯に置き、カード面にしない（下記）
   ・駐在員のプライベート旅行は枠なしの2カラムにする（--plain）
   ============================================================ */
/* ---- 紺の帯に置いた「選ばれる理由」 ---- */
.c-section--navy .p-bwhy__card {
  background: transparent;
  border: none;
  border-left: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0;
  box-shadow: none;
  padding: clamp(6px, 4.59px + 0.38vw, 10px) clamp(16px, 12.48px + 0.94vw, 26px) clamp(6px, 4.59px + 0.38vw, 10px);
}
.c-section--navy .p-bwhy__card:first-child {
  border-left: none;
  padding-left: 0;
}
.c-section--navy .p-bwhy__no {
  position: static;
  display: block;
  color: rgba(255, 255, 255, 0.34);
  font-size: clamp(26px, 23.89px + 0.56vw, 32px);
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.c-section--navy .p-bwhy__card .p-bwhy__card-heading {
  color: #fff;
}
.c-section--navy .p-bwhy__card .p-bwhy__card-text {
  color: #dbe8f2;
}

@media screen and (max-width: 860px) {
  .c-section--navy .p-bwhy__card {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    padding: clamp(14px, 9.71px + 1.14vw, 20px) 0;
  }
  .c-section--navy .p-bwhy__card:first-child {
    border-top: none;
    padding-top: 0;
  }
}
/* ---- 枠を持たないカード（駐在員のプライベート旅行） ---- */
.p-biz__grid--plain {
  gap: clamp(20px, 12.96px + 1.88vw, 40px);
}
.p-biz__card--plain {
  background: transparent;
  border: none;
  border-top: 1px solid var(--line); /* 区切りの細線 */
  border-radius: 0;
  box-shadow: none;
  padding: clamp(14px, 11.18px + 0.75vw, 22px) 0 0;
}
.p-biz__card--plain .c-btn--ghost {
  min-width: 0;
}
.p-biz {
  /* 日本語の字面は行の箱より下に寄るので、矢印を字面の中心に合わせて下げる */
}
.p-biz__card--plain .c-btn--ghost .c-arrow {
  translate: 0 0.0625rem;
}
.p-biz__dest-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(6px, 5.3px + 0.19vw, 8px);
  list-style: none;
  padding: 0;
  margin: 0;
}
.p-biz__dest {
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink);
  background: var(--brand-050);
  border-radius: 999px;
  padding: clamp(5px, 4.3px + 0.19vw, 7px) clamp(12px, 10.59px + 0.38vw, 16px);
}
.p-biz__dest-etc {
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  color: var(--ink-2);
  padding-left: clamp(2px, 1.3px + 0.19vw, 4px);
}
.p-biz__voice {
  background: var(--brand-050);
  border-radius: var(--r);
  padding: clamp(14px, 11.89px + 0.56vw, 20px) clamp(16px, 13.18px + 0.75vw, 24px);
  margin-bottom: clamp(12px, 10.59px + 0.38vw, 16px);
}
.p-biz__voice-quote {
  margin: 0;
}
.p-biz__voice .p-biz__flow-text {
  margin-bottom: clamp(6px, 5.3px + 0.19vw, 8px);
}
.p-biz__voice .p-biz__flow-strong {
  margin-bottom: 0;
  color: var(--brand-ink);
}

/* ============================================================
   英語版の法人ページ（静的英語版 business/index.html の並び）で足した部品
   ============================================================ */
/* 選ばれる理由: 英語版は4点＋数字 */
.p-bwhy--col4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media screen and (max-width: 1000px) {
  .p-bwhy--col4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 760px) {
  .p-bwhy--col4 {
    grid-template-columns: 1fr;
  }
}
.p-bwhy__stat {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
  padding-top: clamp(10px, 8.59px + 0.38vw, 14px);
  /* 紺の写真帯（c-section--navy）の上なので、線と文字は白の透過 */
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.p-bwhy__stat-num {
  flex-shrink: 0;
  font-size: clamp(24px, 21.89px + 0.56vw, 30px);
  font-weight: 700;
  line-height: 1;
  color: #fff;
}

.p-bwhy__stat-note {
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.8);
}

.p-bcosts,
.p-bcase,
.p-bcontact {
  margin-top: clamp(18px, 14.48px + 0.94vw, 28px);
}

/* 幹事向け10ステップ: 5列×2段 */
.p-bsteps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media screen and (max-width: 1000px) {
  .p-bsteps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 620px) {
  .p-bsteps {
    grid-template-columns: 1fr;
  }
}
/* 旅行会社向けの案内（ページ冒頭の帯） */
.p-b2b-note {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-b2b-note__text {
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.9;
  color: var(--ink-2);
}

/* 団体で下がる費用: 数字4つ */
.p-bstats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-bstats__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: clamp(14px, 11.89px + 0.56vw, 20px);
  background: var(--brand-050);
  border-radius: var(--r);
  text-align: center;
}
.p-bstats__label {
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 700;
  color: var(--ink-2);
}
.p-bstats__num {
  font-size: clamp(26px, 23.18px + 0.75vw, 34px);
  font-weight: 700;
  line-height: 1.15;
  color: var(--brand-ink);
}
.p-bstats__note {
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  line-height: 1.6;
  color: var(--ink-3);
}

@media screen and (max-width: 860px) {
  .p-bstats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* 比較表: 記号は中央、IACE の列を淡く塗る */
.p-bcompare .p-bcompare__cell {
  text-align: center;
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  color: var(--ink-3);
}

.p-bcompare__iace {
  background: var(--brand-050);
}

.p-bcompare__ok {
  width: 20px;
  height: 20px;
  color: var(--brand);
  vertical-align: middle;
}

/* 補足の囲み（4ステップの下・サービスの下） */
.p-b2b__point {
  margin-top: clamp(18px, 14.48px + 0.94vw, 28px);
}
.p-b2b__point .c-info-box__heading {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.p-b2b__point .c-info-box__heading .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
}

/* 年表の下の数字3つ */
.p-bstats--col3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media screen and (max-width: 760px) {
  .p-bstats--col3 {
    grid-template-columns: 1fr;
  }
}
.p-b2b__stats {
  margin-top: clamp(22px, 17.77px + 1.13vw, 34px);
}

/* サービスカードの丸アイコン */
.p-b2b__ico {
  display: grid;
  place-items: center;
  width: clamp(38px, 35.18px + 0.75vw, 46px);
  height: clamp(38px, 35.18px + 0.75vw, 46px);
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
  border-radius: 50%;
  background: var(--brand-050);
  color: var(--brand);
}
.p-b2b__ico .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
}

/* 文中のリンク（参考ページ・締めの下段） */
.p-b2b__ref {
  font-weight: 700;
  color: var(--brand-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-b2b__ref:hover {
    color: var(--brand);
  }
}

/* 相談の締め */
.p-b2b__cta {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(20px, 15.77px + 1.13vw, 32px);
}

.p-b2b__cta-heading {
  font-size: clamp(19px, 17.24px + 0.47vw, 24px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--ink);
}

.p-b2b__cta-acts {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  margin-top: clamp(4px, 2.59px + 0.38vw, 8px);
}

.p-b2b__cta-links {
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  color: var(--ink-3);
}

/* ---- ヒーロー下の使い方ヒント・目次・節 ---- */
.p-tickets__hint {
  display: block;
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  opacity: 0.9;
}

.p-tickets__nav {
  margin-bottom: clamp(20px, 15.77px + 1.13vw, 32px);
}

.p-tickets__sec {
  scroll-margin-top: calc(var(--header-stick, 90px) + 14px);
}
.p-tickets__sec + .p-tickets__sec {
  margin-top: clamp(36px, 28.96px + 1.88vw, 56px);
}

.p-tickets__lead {
  margin: clamp(-6px, -4.59px + -0.38vw, -10px) 0 clamp(14px, 11.89px + 0.56vw, 20px);
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.9;
  color: var(--ink-2);
}

/* ---- チケットカード ---- */
.p-tkt-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}

@media screen and (max-width: 1000px) {
  .p-tkt-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (max-width: 760px) {
  .p-tkt-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 520px) {
  .p-tkt-grid {
    grid-template-columns: 1fr;
  }
}
.p-tkt-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-tkt-card.is-picked {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px var(--brand-050);
}
.p-tkt-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--ink);
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-tkt-card__link:hover {
    background: var(--brand-050);
    color: var(--ink);
  }
}
.p-tkt-card__media {
  position: relative;
  display: block;
  aspect-ratio: 3/2;
  overflow: hidden;
  background: var(--bg-3);
}
.p-tkt-card__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-tkt-card {
  /* 写真が無いチケットは共通イラスト。切り抜かずに収める */
}
.p-tkt-card__img--illust {
  object-fit: contain;
  padding: 12%;
}
.p-tkt-card__area {
  position: absolute;
  left: 8px;
  bottom: 8px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1875rem 0.5rem;
  border-radius: 999px;
  background: rgba(16, 40, 64, 0.78);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
}
.p-tkt-card__area .c-ico {
  width: 12px;
  height: 12px;
}
.p-tkt-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: clamp(10px, 8.59px + 0.38vw, 14px) clamp(12px, 10.59px + 0.38vw, 16px) clamp(12px, 10.59px + 0.38vw, 16px);
}
.p-tkt-card__en {
  font-size: 0.6875rem;
  letter-spacing: 0.04em;
  color: var(--ink-3);
}
.p-tkt-card__title {
  font-size: clamp(14px, 13.47px + 0.14vw, 15.5px);
  font-weight: 700;
  line-height: 1.45;
}
.p-tkt-card__text {
  font-size: clamp(12px, 11.65px + 0.09vw, 13px);
  line-height: 1.75;
  color: var(--ink-2);
}
.p-tkt-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-tkt-card__id {
  font-size: 0.65625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink-3);
}
.p-tkt-card__go {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.78125rem;
  font-weight: 700;
  color: var(--brand-ink);
}
.p-tkt-card__go .c-ico {
  width: 14px;
  height: 14px;
}
.p-tkt-card {
  /* 「Add to enquiry」。選んだら塗りに変える */
}
.p-tkt-card__add {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  padding: 0.375rem 0.6875rem;
  border: 1.5px solid var(--brand);
  border-radius: 999px;
  background: #fff;
  color: var(--brand-ink);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-tkt-card__add:hover {
    background: var(--brand-050);
  }
}
.p-tkt-card__add[aria-pressed=true] {
  background: var(--brand);
  color: #fff;
}
.p-tkt-card__add-ico {
  display: inline-grid;
  place-items: center;
  width: 14px;
  height: 14px;
  font-size: 0.9375rem;
  line-height: 1;
}
.p-tkt-card__add-ico .c-ico {
  width: 14px;
  height: 14px;
}
.p-tkt-card__add-ico--check, .p-tkt-card__add[aria-pressed=true] .p-tkt-card__add-ico--plus {
  display: none;
}
.p-tkt-card__add[aria-pressed=true] .p-tkt-card__add-ico--check {
  display: inline-grid;
}

/* 追従バーがページ最下部（フッター）を隠さないよう、バーの高さぶん下に余白を取る */
.p-tickets {
  padding-bottom: 4rem;
}

/* ---- 問い合わせフォーム ---- */
.p-tk-ask__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  gap: clamp(18px, 11.66px + 1.69vw, 36px);
  align-items: start;
}

@media screen and (max-width: 860px) {
  .p-tk-ask__grid {
    grid-template-columns: 1fr;
  }
}
.p-tk-ask__side {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 8.59px + 0.38vw, 14px);
}

.p-tk-ask__title {
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 700;
  line-height: 1.5;
}

.p-tk-ask__text,
.p-tk-ask__alt {
  font-size: clamp(13px, 12.65px + 0.09vw, 14px);
  line-height: 1.9;
  color: var(--ink-2);
}

.p-tk-picked {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.p-tk-picked__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4375rem 0.625rem;
  border-radius: var(--r-sm, 8px);
  background: var(--brand-050);
  font-size: 0.8125rem;
}
.p-tk-picked__id {
  flex-shrink: 0;
  font-size: 0.65625rem;
  font-weight: 700;
  color: var(--ink-3);
}
.p-tk-picked__name {
  flex: 1 1 auto;
  font-weight: 700;
}
.p-tk-picked__rm {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--ink-2);
  font-size: 0.9375rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-tk-picked__rm:hover {
    background: var(--line);
  }
}
.p-tk-picked__empty {
  font-size: 0.78125rem;
  line-height: 1.8;
  color: var(--ink-3);
}

/* ---- 追従バー（1枚でも追加すると出る） ---- */
.p-tk-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  background: #fff;
  border-top: 1px solid var(--line);
  box-shadow: 0 -6px 20px rgba(16, 40, 64, 0.1);
}
.p-tk-bar[hidden] {
  display: none;
}
.p-tk-bar__in {
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.p-tk-bar__count {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 700;
}
.p-tk-bar__count .c-ico {
  width: 18px;
  height: 18px;
  color: var(--brand);
}
.p-tk-bar__num {
  font-size: 1rem;
  color: var(--brand-ink);
}
.p-tk-bar__names {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 0.78125rem;
  color: var(--ink-3);
}

@media screen and (max-width: 620px) {
  .p-tk-bar__names {
    display: none;
  }
  .p-tk-bar__in {
    justify-content: space-between;
  }
}
/* ---- 追加・削除の通知（バーのすぐ上） ---- */
.p-tk-toast {
  position: fixed;
  left: 50%;
  bottom: 76px;
  z-index: 90;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  max-width: min(92vw, 520px);
  padding: 0.625rem 1rem;
  border-radius: 999px;
  background: var(--navy, #102840);
  color: #fff;
  font-size: 0.8125rem;
  line-height: 1.5;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%);
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-tk-toast.is-on {
  opacity: 1;
}
.p-tk-toast .c-ico {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
}

.p-transport-page {
  /* 節の中央寄せボタン（表・カード列の下に置く） */
}
.p-transport-page__more-btn {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  margin: clamp(18px, 14.48px + 0.94vw, 28px) 0 0;
}
.p-transport-page {
  /* 空港アクセスの下の「ほかの移動手段」4枚。ボタンとの間を空ける */
}
.p-transport-page__more {
  margin-top: clamp(20px, 16.48px + 0.94vw, 30px);
}
.p-transport-page {
  /* アイコン → 本文 → 矢印 の横並び。サムネの代わりに丸アイコンを置く */
}
.p-transport-page__more-card {
  align-items: center;
  padding-left: clamp(12px, 9.89px + 0.56vw, 18px);
}
.p-transport-page__more-ico, .p-transport-page__case-ico {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: clamp(38px, 35.18px + 0.75vw, 46px);
  height: clamp(38px, 35.18px + 0.75vw, 46px);
  border-radius: 50%;
  background: var(--brand-050);
  color: var(--brand);
}
.p-transport-page__more-ico .c-ico, .p-transport-page__case-ico .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
}
.p-transport-page__case-ico {
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-transport-page__more-body {
  flex: 1 1 auto;
  color: var(--ink-2);
}
.p-transport-page__more-go {
  flex: 0 0 auto;
  padding-right: clamp(12px, 9.89px + 0.56vw, 18px);
  color: var(--brand);
}
.p-transport-page__more-go .c-ico {
  width: clamp(14px, 13.3px + 0.19vw, 16px);
  height: clamp(14px, 13.3px + 0.19vw, 16px);
}
.p-transport-page {
  /* 表の中で折り返させたくない短いセル（日数・空港名） */
}
.p-transport-page__nowrap {
  white-space: nowrap;
}
.p-transport-page {
  /* 表の下の注意（アイコン + 本文） */
}
.p-transport-page__note {
  margin-top: clamp(14px, 11.89px + 0.56vw, 20px);
  background: #fff;
}
.p-transport-page__note-text {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 7.3px + 0.19vw, 10px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.85;
  color: var(--ink-2);
}
.p-transport-page__note-text .c-ico {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 0.2em;
  color: var(--brand);
}
.p-transport-page__note-body {
  min-width: 0;
}
.p-transport-page {
  /* 商品カードの下の小さな注記 */
}
.p-transport-page__form-note {
  margin: clamp(12px, 10.59px + 0.38vw, 16px) 0 0;
  font-size: clamp(12px, 11.65px + 0.09vw, 13px);
  color: var(--ink-3);
  line-height: 1.8;
}

/* ---- 地域パス: オンラインで買える4種（券面の帯 + 商品名・価格・購入ボタン） ---- */
.p-transport-pass {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 9.89px + 0.56vw, 18px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-transport-pass__item {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-xs);
}
.p-transport-pass {
  /* 券面: 紺のベタ塗り。種別・日数・対象を英字で載せる */
}
.p-transport-pass__visual {
  display: flex;
  flex-direction: column;
  gap: clamp(2px, 1.3px + 0.19vw, 4px);
  padding: clamp(14px, 12.59px + 0.38vw, 18px) clamp(14px, 12.59px + 0.38vw, 18px) clamp(12px, 10.59px + 0.38vw, 16px);
  background: var(--navy);
  color: #fff;
}
.p-transport-pass__type {
  font-family: var(--font-en);
  font-size: clamp(10px, 9.65px + 0.09vw, 11px);
  font-weight: 700;
  letter-spacing: 0.12em;
  opacity: 0.8;
}
.p-transport-pass__days {
  font-family: var(--font-en);
  font-size: clamp(28px, 25.18px + 0.75vw, 36px);
  font-weight: 700;
  line-height: 1.1;
}
.p-transport-pass__days-unit {
  margin-left: 0.25em;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  letter-spacing: 0.08em;
}
.p-transport-pass__who {
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  line-height: 1.5;
}
.p-transport-pass__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding: clamp(12px, 10.59px + 0.38vw, 16px) clamp(14px, 12.59px + 0.38vw, 18px) clamp(14px, 12.59px + 0.38vw, 18px);
}
.p-transport-pass__name {
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink);
}
.p-transport-pass__price {
  margin-top: auto;
  font-family: var(--font-en);
  font-size: clamp(18px, 16.59px + 0.38vw, 22px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-transport-pass__btn {
  justify-content: center;
  width: 100%;
}

@media screen and (max-width: 860px) {
  .p-transport-pass {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 520px) {
  .p-transport-pass {
    grid-template-columns: 1fr;
  }
}
/* ---------- 数字の帯（ヒーロー直下の3枚） ---------- */
.p-trb-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-trb-facts__item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: clamp(14px, 11.89px + 0.56vw, 20px) clamp(14px, 11.18px + 0.75vw, 22px);
  background: var(--brand-050);
  border-radius: var(--r);
}
.p-trb-facts__label {
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 700;
  color: var(--ink-2);
}
.p-trb-facts__value {
  font-family: var(--font-en);
  font-size: clamp(26px, 23.18px + 0.75vw, 34px);
  font-weight: 700;
  line-height: 1.15;
  color: var(--brand-ink);
}
.p-trb-facts {
  /* 数字の前の「from ¥」「about ¥」 */
}
.p-trb-facts__unit {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  margin-right: 0.125rem;
}
.p-trb-facts {
  /* 数字ではなく言葉で出す枚（Prepaid in Canadian dollars など） */
}
.p-trb-facts__value--text {
  font-family: var(--font-sans);
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  line-height: 1.4;
}
.p-trb-facts__note {
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  line-height: 1.6;
  color: var(--ink-3);
}
.p-trb-facts {
  /* 本文の途中に置くとき（レンタカーの3つの利点） */
}
.p-trb-facts--mid {
  margin-top: clamp(20px, 16.48px + 0.94vw, 30px);
}

@media screen and (max-width: 760px) {
  .p-trb-facts {
    grid-template-columns: 1fr;
  }
}
/* ---------- カードの見出しに添える丸アイコン ---------- */
.p-trb-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(34px, 31.89px + 0.56vw, 40px);
  height: clamp(34px, 31.89px + 0.56vw, 40px);
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
  border-radius: 50%;
  background: var(--brand-050);
  color: var(--brand-ink);
}
.p-trb-ico .c-ico {
  width: clamp(17px, 15.94px + 0.28vw, 20px);
  height: clamp(17px, 15.94px + 0.28vw, 20px);
}

/* ---------- 空港シャトルの料金表 ---------- */
.p-trb-rate {
  /* 4列の金額が詰まらないよう、狭い画面では横スクロールに回す */
  min-width: 38.75rem;
}
.p-trb-rate .p-trb-rate__sub {
  display: block;
  font-size: clamp(10.5px, 10.15px + 0.09vw, 11.5px);
  font-weight: 500;
  opacity: 0.85;
}
.p-trb-rate .p-trb-rate__en {
  display: block;
  font-size: clamp(10.5px, 10.15px + 0.09vw, 11.5px);
  font-weight: 500;
  color: var(--ink-3);
}
.p-trb-rate .p-trb-rate__num {
  text-align: right;
  white-space: nowrap;
}
.p-trb-rate .p-trb-rate__na {
  font-family: var(--font-sans);
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 500;
  color: var(--ink-mute);
}

/* ---------- 1つの c-section に並べる小節（東京 / 大阪の料金表） ---------- */
.p-trb-block + .p-trb-block,
.p-trb-facts + .p-trb-block {
  margin-top: clamp(36px, 28.96px + 1.88vw, 56px);
}

/* ---------- 補足の囲み（表の読み方・IDP の注意） ---------- */
.p-trb-note {
  margin-top: clamp(18px, 14.48px + 0.94vw, 28px);
}
.p-trb-note__text {
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.9;
  color: var(--ink-2);
}
.p-trb-note {
  /* 原稿で太字の語（IDP の条件・チャイルドシート・赤信号） */
}
.p-trb-note__strong {
  font-weight: 700;
  color: var(--ink);
}

/* ---------- 高速バス: 昼行 / 夜行の2枚（c-plan-card を写真なしで使う） ---------- */
.p-trb-vs__card--pick {
  border-color: var(--brand);
  box-shadow: 0 0 0 1px var(--brand);
}
.p-trb-vs__tag {
  align-self: flex-start;
  font-size: 0.71875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
  background: var(--navy);
  border-radius: 999px;
  padding: 0.25rem clamp(9px, 7.94px + 0.28vw, 12px);
}

/* ---------- 高速バス: 人気路線のカード ---------- */
.p-trb-routes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-trb-routes__item {
  display: flex;
  flex-direction: column;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  padding: clamp(14px, 11.89px + 0.56vw, 20px) clamp(14px, 11.89px + 0.56vw, 20px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-xs);
}
.p-trb-routes__en {
  font-family: var(--font-en);
  font-size: clamp(10.5px, 10.15px + 0.09vw, 11.5px);
  letter-spacing: 0.12em;
  color: var(--ink-3);
}
.p-trb-routes__title {
  font-size: clamp(15px, 14.3px + 0.19vw, 17px);
  font-weight: 800;
  line-height: 1.45;
  color: var(--ink);
}
.p-trb-routes__price {
  font-size: clamp(13.5px, 12.97px + 0.14vw, 15px);
  font-weight: 700;
  color: var(--accent-ink);
}
.p-trb-routes__text {
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  line-height: 1.8;
  color: var(--ink-2);
}
.p-trb-routes__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  align-self: flex-start;
  margin-top: auto;
  padding: 0.1875rem clamp(8px, 7.3px + 0.19vw, 10px);
  border-radius: 999px;
  background: var(--bg-2);
  font-size: clamp(11px, 10.65px + 0.09vw, 12px);
  font-weight: 700;
  color: var(--ink-2);
}
.p-trb-routes__tag .c-ico {
  width: 13px;
  height: 13px;
  color: var(--brand);
}

@media screen and (max-width: 860px) {
  .p-trb-routes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 620px) {
  .p-trb-routes {
    grid-template-columns: 1fr;
  }
}
/* ---------- 高速バス: 乗る前のルール（c-point-list--boxed を2列に） ---------- */
.p-trb-points {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media screen and (max-width: 760px) {
  .p-trb-points {
    grid-template-columns: 1fr;
  }
}
/* ---------- 提携サイトへのボタン＋但し書き ---------- */
.p-trb-book {
  margin-top: clamp(20px, 17.18px + 0.75vw, 28px);
  text-align: center;
}
.p-trb-book__note {
  max-width: 38.75rem;
  margin: clamp(8px, 6.59px + 0.38vw, 12px) auto 0;
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  line-height: 1.7;
  color: var(--ink-3);
}

/* ---------- 専用車送迎: ツアーカードの下の案内とボタン ---------- */
.p-trb-transfer__notice {
  margin-top: clamp(18px, 15.89px + 0.56vw, 24px);
}
.p-trb-transfer__acts {
  margin-top: clamp(16px, 14.59px + 0.38vw, 20px);
}

/* ---- よくわかるガイド（原稿は inc/jrpass-guide.php）----
   開閉の枠は c-accordion。中身の体裁だけここで持つ。 */
.p-jrpass-guide {
  margin-top: clamp(12px, 9.89px + 0.56vw, 18px);
}
.p-jrpass-guide__text {
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.95;
  color: var(--ink-2);
}
.p-jrpass-guide__text + .p-jrpass-guide__text {
  margin-top: clamp(7px, 5.59px + 0.38vw, 11px);
}
.p-jrpass-guide__list {
  margin: clamp(7px, 5.59px + 0.38vw, 11px) 0 0;
  padding-left: 1.2em;
  list-style: disc;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.95;
  color: var(--ink-2);
}
.p-jrpass-guide__item + .p-jrpass-guide__item {
  margin-top: 4px;
}
.p-jrpass-guide__note {
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  color: var(--ink-3);
}
.p-jrpass-guide {
  /* 表・注記は共用部品。前の要素との間合いだけ足す */
}
.p-jrpass-guide .c-table-wrap {
  margin-top: clamp(9px, 7.24px + 0.47vw, 14px);
}

/* ============================================================
   英語化で足した部品: 診断（.p-jrq）・購入ゲート（.p-jrp-gate）・商品カード（.p-jrp-card）
   動きは main.js の「JRパス」の節（data-jrp-* / data-jrq-* を見る）
   ============================================================ */
/* ---- ページ内の間合い ---- */
.p-jrp__nav {
  margin-bottom: clamp(20px, 17.18px + 0.75vw, 28px);
}
.p-jrp__warn {
  margin-bottom: clamp(20px, 17.18px + 0.75vw, 28px);
}
.p-jrp__warn a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.p-jrp__group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: clamp(28px, 23.77px + 1.13vw, 40px) 0 clamp(12px, 10.59px + 0.38vw, 16px);
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 700;
  color: var(--ink);
}
.p-jrp__group .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
  color: var(--brand);
  flex: 0 0 auto;
}
.p-jrp__notice {
  margin-top: clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-jrp__price {
  min-width: 32.5rem;
}

/* ---- ① 3問診断 ---- */
.p-jrq {
  background: var(--brand-050);
  border: 1px solid var(--brand-100);
  border-radius: var(--r);
  padding: clamp(16px, 12.48px + 0.94vw, 26px) clamp(14px, 9.07px + 1.31vw, 28px);
}
.p-jrq__title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: clamp(10px, 8.59px + 0.38vw, 14px);
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-jrq__title .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
  flex: 0 0 auto;
}
.p-jrq__q + .p-jrq__q {
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
}
.p-jrq__label {
  margin-bottom: 0.375rem;
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  font-weight: 700;
  color: var(--ink);
}
.p-jrq__chip {
  cursor: pointer;
  white-space: normal;
  text-align: left;
}
.p-jrq__chip[aria-pressed=true] {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
@media (hover: hover) {
  .p-jrq__chip:hover {
    border-color: var(--brand);
  }
}
.p-jrq__result {
  margin-top: clamp(12px, 10.59px + 0.38vw, 16px);
  padding-top: clamp(10px, 8.59px + 0.38vw, 14px);
  border-top: 1px dashed var(--brand-100);
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.85;
  color: var(--ink-2);
}
.p-jrq__strong {
  color: var(--ink);
  font-weight: 700;
}

/* ---- ② 購入ゲート ---- */
.p-jrp-gate {
  margin-top: clamp(20px, 17.18px + 0.75vw, 28px);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: var(--r);
  padding: clamp(18px, 14.48px + 0.94vw, 28px) clamp(14px, 9.07px + 1.31vw, 28px);
  scroll-margin-top: calc(var(--header-h, 64px) + 16px);
}
.p-jrp-gate__en {
  font-family: var(--font-en);
  font-size: clamp(11px, 10.65px + 0.09vw, 12px);
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--brand);
}
.p-jrp-gate__title {
  margin-top: 0.125rem;
  font-size: clamp(18px, 16.59px + 0.38vw, 22px);
  font-weight: 700;
  color: var(--ink);
}
.p-jrp-gate__product {
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
  padding: clamp(8px, 7.3px + 0.19vw, 10px) clamp(10px, 8.59px + 0.38vw, 14px);
  background: var(--bg-2);
  border-radius: var(--r-sm);
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.7;
  color: var(--ink-2);
}
.p-jrp-gate__product-strong {
  color: var(--ink);
  font-weight: 700;
}
.p-jrp-gate__lead {
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.8;
  color: var(--ink-2);
}
.p-jrp-gate__checks {
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-jrp-gate__check-strong {
  color: var(--ink);
  font-weight: 700;
}
.p-jrp-gate__check-note {
  display: block;
  color: var(--ink-3);
}
.p-jrp-gate {
  /* 進み具合。JS が data-done（0〜4）を書き換える。インライン style は使わない */
}
.p-jrp-gate__progress {
  height: 6px;
  margin-top: clamp(12px, 10.59px + 0.38vw, 16px);
  background: var(--bg-3);
  border-radius: 999px;
  overflow: hidden;
}
.p-jrp-gate__bar {
  display: block;
  width: 0;
  height: 100%;
  background: var(--brand);
  border-radius: inherit;
  transition: width 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-jrp-gate__progress[data-done="1"] .p-jrp-gate__bar {
  width: 25%;
}
.p-jrp-gate__progress[data-done="2"] .p-jrp-gate__bar {
  width: 50%;
}
.p-jrp-gate__progress[data-done="3"] .p-jrp-gate__bar {
  width: 75%;
}
.p-jrp-gate__progress[data-done="4"] .p-jrp-gate__bar {
  width: 100%;
}
.p-jrp-gate__status {
  min-height: 1.7em;
  margin-top: 0.5rem;
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  font-weight: 600;
  color: var(--brand-ink);
}
.p-jrp-gate__foot {
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
}
.p-jrp-gate {
  /* 条件がそろうまで押せない見た目（クリックは main.js が止める） */
}
.p-jrp-gate__buy.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.p-jrp-gate__note {
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  color: var(--ink-3);
}

/* ---- ③ 商品カード ---- */
.p-jrp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
}
@media screen and (max-width: 860px) {
  .p-jrp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 520px) {
  .p-jrp-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.p-jrp-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
}
.p-jrp-card.is-picked {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px var(--brand);
}
.p-jrp-card {
  /* 券面風のアイキャッチ（分類ごとにベタ色） */
}
.p-jrp-card__visual {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding: clamp(12px, 10.59px + 0.38vw, 16px) clamp(14px, 12.59px + 0.38vw, 18px);
  color: #fff;
  background: var(--navy);
}
.p-jrp-card__visual--green {
  background: #2f6b4f;
}
.p-jrp-card__visual--area {
  background: var(--brand);
}
.p-jrp-card__visual--sim {
  background: var(--ink-2);
}
.p-jrp-card__type {
  font-family: var(--font-en);
  font-size: clamp(10px, 9.65px + 0.09vw, 11px);
  font-weight: 600;
  letter-spacing: 0.1em;
  opacity: 0.85;
}
.p-jrp-card__days {
  font-family: var(--font-en);
  font-size: clamp(28px, 25.18px + 0.75vw, 36px);
  font-weight: 700;
  line-height: 1.1;
}
.p-jrp-card__days-unit {
  margin-left: 0.25rem;
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  letter-spacing: 0.08em;
}
.p-jrp-card__who {
  font-size: clamp(12px, 11.65px + 0.09vw, 13px);
}
.p-jrp-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0.375rem;
  padding: clamp(12px, 10.59px + 0.38vw, 16px) clamp(14px, 12.59px + 0.38vw, 18px);
}
.p-jrp-card__name {
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink);
}
.p-jrp-card__price {
  margin-top: auto;
  font-family: var(--font-en);
  font-size: clamp(18px, 16.59px + 0.38vw, 22px);
  font-weight: 700;
  color: var(--ink);
}
.p-jrp-card__btn {
  align-self: flex-start;
}

/* ---- 一覧: カードが2枚の節は2列にする（p-svc-grid は3列が既定） ---- */
.p-svc-grid.p-sup-index__grid--col2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media screen and (max-width: 860px) {
  .p-svc-grid.p-sup-index__grid--col2 {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ---- 数字カード（静的版 fact-cards）。ラベル → 大きな数字 → 補足 ---- */
.p-sup-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-sup-facts--col3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.p-sup-facts {
  /* 表の下に続けて置くとき */
}
.p-sup-facts--after {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
}
.p-sup-facts__item {
  display: flex;
  flex-direction: column;
  gap: clamp(3px, 1.94px + 0.28vw, 6px);
  padding: clamp(14px, 11.18px + 0.75vw, 22px) clamp(14px, 11.89px + 0.56vw, 20px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: var(--sh-xs);
}
.p-sup-facts__label {
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  font-weight: 700;
  color: var(--ink-3);
  letter-spacing: 0.02em;
}
.p-sup-facts__num {
  font-family: var(--font-en);
  font-size: clamp(24px, 21.18px + 0.75vw, 32px);
  font-weight: 800;
  line-height: 1.15;
  color: var(--navy);
}
.p-sup-facts {
  /* 「Before discharge」のような文字の値は一段小さく、本文の書体で */
}
.p-sup-facts__num--text {
  font-family: inherit;
  font-size: clamp(17px, 15.59px + 0.38vw, 21px);
  line-height: 1.35;
}
.p-sup-facts__unit {
  font-size: 0.55em;
  font-weight: 700;
  margin-inline: 0.08em;
}
.p-sup-facts__note {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  line-height: 1.7;
  color: var(--ink-2);
}

@media screen and (max-width: 860px) {
  .p-sup-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 520px) {
  .p-sup-facts,
  .p-sup-facts--col3 {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* ---- 節の中の本文・小さな注記・関連ページ ---- */
.p-sup-text {
  max-width: clamp(560px, 468.45px + 24.41vw, 820px);
  margin: clamp(16px, 12.48px + 0.94vw, 26px) auto 0;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  line-height: 1.95;
  color: var(--ink-2);
}

.p-sup-small {
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: 0.75rem;
  line-height: 1.7;
  color: var(--ink-3);
}

.p-sup-related {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
  font-size: 0.78125rem;
  line-height: 1.8;
  color: var(--ink-3);
}

.p-sup-strong {
  font-family: var(--font-en);
  font-weight: 800;
  color: var(--ink);
}

/* カード列などを前の要素から離す */
.p-sup-after {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
}

/* ---- 提携先への購入・見積りボタン ---- */
.p-sup-buy {
  margin-top: clamp(20px, 15.77px + 1.13vw, 32px);
  text-align: center;
}
.p-sup-buy__note {
  margin-top: clamp(6px, 4.94px + 0.28vw, 9px);
  font-size: 0.75rem;
  line-height: 1.7;
  color: var(--ink-3);
}

/* ---- 囲み（c-info-box）・1行の案内 ---- */
.p-sup-box {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
}
.p-sup-box__text {
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.85;
  color: var(--ink-2);
}

/* 注意点を2列に敷き詰めるとき（c-info-grid）。上の余白はグリッドの gap に任せる */
.p-sup-boxes {
  margin-top: clamp(14px, 11.18px + 0.75vw, 22px);
}
.p-sup-boxes .p-sup-box {
  margin-top: 0;
}

.p-sup-notice {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 7.3px + 0.19vw, 10px);
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.8;
  color: var(--ink-2);
}
.p-sup-notice .c-ico {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 0.2em;
  color: var(--brand);
}
.p-sup-notice__tel {
  font-family: var(--font-en);
  font-weight: 700;
  white-space: nowrap;
}

/* ---- アイコンつきカード（c-merit-card の縦積み） ---- */
.p-sup-cards {
  margin-top: clamp(14px, 11.18px + 0.75vw, 22px);
}
.p-sup-cards__body {
  display: flex;
  flex-direction: column;
}
.p-sup-cards__text {
  display: block;
  color: var(--ink-2);
}

.p-sup-ico {
  display: grid;
  place-items: center;
  width: clamp(36px, 33.18px + 0.75vw, 44px);
  height: clamp(36px, 33.18px + 0.75vw, 44px);
  margin-bottom: clamp(8px, 6.59px + 0.38vw, 12px);
  border-radius: var(--r-sm);
  background: var(--brand-050);
  color: var(--brand-ink);
}
.p-sup-ico .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
}

/* カードの下に添える要点（静的版 point-card__fig） */
.p-sup-fig {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 7.3px + 0.19vw, 10px);
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(10px, 8.94px + 0.28vw, 13px) clamp(11px, 9.94px + 0.28vw, 14px);
  border-radius: var(--r-sm);
  background: var(--bg-2);
}
.p-sup-fig .c-ico {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 0.2em;
  color: var(--brand);
}
.p-sup-fig__title {
  display: block;
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink);
}
.p-sup-fig__text {
  display: block;
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  line-height: 1.65;
  color: var(--ink-3);
}

/* ---- 番号つきの横並び（c-step-row）の列数違い ---- */
.c-step-row.p-sup-steps--col2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 10.37px + 1.5vw, 32px);
}

.c-step-row.p-sup-steps--col5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media screen and (max-width: 860px) {
  .c-step-row.p-sup-steps--col5 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (max-width: 760px) {
  .c-step-row.p-sup-steps--col2,
  .c-step-row.p-sup-steps--col5 {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* 縦の手順（p-itinerary）を見出しの下に置くときの間 */
.p-sup-flow {
  margin-top: clamp(14px, 11.18px + 0.75vw, 22px);
}

/* ---- 表 ---- */
.p-sup-table {
  margin-top: clamp(4px, 2.59px + 0.38vw, 8px);
}

/* ---- チェックつきの箇条書き（静的版 tick-list） ---- */
.p-sup-ticks {
  display: grid;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-sup-ticks__item {
  display: flex;
  align-items: flex-start;
  gap: clamp(6px, 5.3px + 0.19vw, 8px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.75;
  color: var(--ink-2);
}
.p-sup-ticks__item .c-ico {
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  margin-top: 0.3em;
  color: var(--brand);
}

/* ---- 2択の比較（静的版 vs-grid）。左がおすすめ側 ---- */
.p-sup-vs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
  margin-top: clamp(14px, 11.18px + 0.75vw, 22px);
}
.p-sup-vs__mid {
  align-self: center;
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(16px, 13.89px + 0.56vw, 22px);
  color: var(--ink-3);
}
.p-sup-vs__card--pick {
  border: 2px solid var(--brand);
}
.p-sup-vs__tag {
  align-self: flex-start;
  padding: 0.25rem clamp(9px, 7.94px + 0.28vw, 12px);
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: 0.71875rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.p-sup-vs__lead {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--ink-3);
}
.p-sup-vs__lead--pick {
  font-family: var(--font-en);
  font-size: clamp(17px, 15.59px + 0.38vw, 21px);
  font-weight: 800;
  color: var(--navy);
}

@media screen and (max-width: 760px) {
  .p-sup-vs {
    grid-template-columns: minmax(0, 1fr);
  }
  .p-sup-vs__mid {
    justify-self: center;
  }
}
/* ---- 締めの相談CTA（p-svc-cta）の要点と支店案内リンク ---- */
.p-sup-cta {
  margin-top: 0;
}
.p-sup-cta__points {
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-sup-cta__sub {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: 0.78125rem;
  font-weight: 700;
  color: var(--brand-ink);
}
.p-sup-cta__sub .c-ico {
  width: 14px;
  height: 14px;
}

/* ============================================================
   はじめての日本（page-first-trip.php）
   ============================================================ */
/* ---- ヒーロー ---- */
.p-ft-hero {
  /* PC では2行目の途中の改行を消し、タブレット幅だけ折る。
     スマホ幅は2行目が1行に収まらず「to know」だけが取り残されるので、折らずに流す */
}
.p-ft-hero__br {
  display: none;
}

@media screen and (min-width: 521px) and (max-width: 760px) {
  .p-ft-hero__br {
    display: inline;
  }
}
/* ---- 要点・ボタン・数字の帯 ---- */
.p-ft-intro__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(12px, 9.89px + 0.56vw, 18px) clamp(18px, 13.07px + 1.31vw, 32px);
}
.p-ft-intro__points {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 4.59px + 0.38vw, 10px) clamp(12px, 8.48px + 0.94vw, 22px);
  list-style: none;
  margin: 0;
  padding: 0;
  flex: 1 1 100%;
}
.p-ft-intro__point {
  display: inline-flex;
  align-items: center;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--ink);
}
.p-ft-intro__point .c-ico {
  width: clamp(16px, 14.94px + 0.28vw, 19px);
  height: clamp(16px, 14.94px + 0.28vw, 19px);
  color: var(--brand);
  flex-shrink: 0;
}
.p-ft-intro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-ft-intro__meta {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 4.59px + 0.38vw, 10px) clamp(14px, 11.89px + 0.56vw, 20px);
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  color: var(--ink-3);
}
.p-ft-intro__meta-item {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
}
.p-ft-intro__meta-item .c-ico {
  width: 0.9375rem;
  height: 0.9375rem;
  color: var(--ink-3);
}

.p-ft-band {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(8px, 5.89px + 0.56vw, 14px);
  margin: clamp(20px, 15.77px + 1.13vw, 32px) 0 0;
  padding: 0;
  list-style: none;
}
.p-ft-band__item {
  display: flex;
  align-items: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(12px, 9.18px + 0.75vw, 20px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
}
.p-ft-band__num {
  flex-shrink: 0;
  font-family: var(--font-en);
  font-size: clamp(24px, 20.48px + 0.94vw, 34px);
  font-weight: 800;
  line-height: 1;
  color: var(--brand-ink);
}
.p-ft-band__label {
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  line-height: 1.45;
  color: var(--ink-2);
}

@media screen and (max-width: 860px) {
  .p-ft-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
/* ---- 本文の2カラム（静的版どおり目次サイドを左に置く） ---- */
@media screen and (min-width: 1001px) {
  .p-ft-layout {
    grid-template-columns: clamp(230px, 215.92px + 3.76vw, 270px) minmax(0, 1fr);
  }
  /* 目次・相談・関連記事をまとめて追従させる。画面より長いときはサイドの中でスクロール */
  .p-ft-side {
    position: sticky;
    top: calc(var(--header-stick) + 1.25rem);
    align-self: start;
    max-height: calc(100vh - var(--header-stick) - 2.5rem);
    overflow-y: auto;
  }
}
.p-ft-side__nav {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(12px, 9.89px + 0.56vw, 18px) clamp(8px, 6.59px + 0.38vw, 12px);
}

.p-ft-toc {
  counter-reset: ft-toc;
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-ft-toc__item {
  counter-increment: ft-toc;
  border-bottom: 1px solid var(--line);
}
.p-ft-toc__item:last-child {
  border-bottom: none;
}
.p-ft-toc__link {
  display: flex;
  gap: clamp(7px, 5.94px + 0.28vw, 10px);
  padding: clamp(6px, 5.3px + 0.19vw, 8px) 0.125rem;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  font-weight: 600;
  color: var(--ink-2);
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-ft-toc__link::before {
  content: counter(ft-toc, decimal-leading-zero);
  font-family: var(--font-en);
  font-weight: 700;
  color: var(--brand);
}
@media (hover: hover) {
  .p-ft-toc__link:hover {
    color: var(--brand-ink);
  }
}

/* ---- 各節 ---- */
.p-ft-sec {
  scroll-margin-top: calc(var(--header-stick) + 1.25rem);
}
.p-ft-sec + .p-ft-sec {
  margin-top: clamp(44px, 34.14px + 2.63vw, 72px);
  padding-top: clamp(36px, 28.96px + 1.88vw, 56px);
  border-top: 1px solid var(--line);
}
.p-ft-sec__head {
  display: flex;
  align-items: flex-start;
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
}
.p-ft-sec__no {
  flex-shrink: 0;
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(30px, 24.37px + 1.5vw, 46px);
  line-height: 1;
  color: var(--sky-200);
  letter-spacing: -0.02em;
}
.p-ft-sec .p-ft-sec__sec-head {
  margin-bottom: clamp(16px, 13.18px + 0.75vw, 24px);
}

/* 原稿の太字 */
.p-ft-em {
  font-weight: 700;
  color: var(--ink);
}

/* 補足の囲み（c-info-box） */
.p-ft-note {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
}
.p-ft-note--top {
  margin: 0 0 clamp(16px, 13.18px + 0.75vw, 24px);
}
.p-ft-note__text {
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.85;
  color: var(--ink-2);
}

/* アイコン付きカード */
.p-ft-cards {
  margin-top: clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-ft-cards:first-child {
  margin-top: 0;
}

.p-ft-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(36px, 33.18px + 0.75vw, 44px);
  height: clamp(36px, 33.18px + 0.75vw, 44px);
  margin-bottom: clamp(8px, 6.59px + 0.38vw, 12px);
  border-radius: 999px;
  background: var(--brand-050);
  color: var(--brand-ink);
}
.p-ft-ico .c-ico {
  width: clamp(18px, 16.59px + 0.38vw, 22px);
  height: clamp(18px, 16.59px + 0.38vw, 22px);
}

/* 01 手順 */
.p-ft-steps {
  margin-top: 0;
}

/* 02 季節の気温 */
.p-ft-seasons__temp {
  display: block;
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
  font-family: var(--font-en);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--brand-ink);
}

/* 03 フライトの数字タイル */
.p-ft-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(8px, 5.89px + 0.56vw, 14px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-ft-facts__item {
  display: flex;
  flex-direction: column;
  gap: clamp(3px, 2.3px + 0.19vw, 5px);
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(13px, 10.54px + 0.66vw, 20px);
  background: var(--bg-2);
  border-radius: var(--r);
}
.p-ft-facts__label {
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  font-weight: 700;
  color: var(--ink-3);
}
.p-ft-facts__value {
  font-family: var(--font-en);
  font-size: clamp(28px, 24.48px + 0.94vw, 38px);
  font-weight: 800;
  line-height: 1.1;
  color: var(--navy);
}
.p-ft-facts__item--text .p-ft-facts__value {
  font-size: clamp(17px, 15.59px + 0.38vw, 21px);
  line-height: 1.4;
}
.p-ft-facts__unit {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
}
.p-ft-facts__note {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  color: var(--ink-2);
}

@media screen and (max-width: 760px) {
  .p-ft-facts {
    grid-template-columns: 1fr;
  }
}
/* 03 羽田と成田 */
.p-ft-vs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(8px, 5.18px + 0.75vw, 16px);
  margin-top: clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-ft-vs__card {
  height: 100%;
  padding: clamp(14px, 11.18px + 0.75vw, 22px) clamp(14px, 11.18px + 0.75vw, 22px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
}
.p-ft-vs__card--pick {
  border: 2px solid var(--brand);
}
.p-ft-vs__tag {
  display: inline-block;
  margin-bottom: clamp(6px, 4.94px + 0.28vw, 9px);
  padding: 0.125rem clamp(8px, 6.94px + 0.28vw, 11px);
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  font-weight: 700;
}
.p-ft-vs__title {
  font-size: clamp(16px, 14.94px + 0.28vw, 19px);
  font-weight: 800;
  color: var(--ink);
}
.p-ft-vs__lead {
  margin: clamp(3px, 2.3px + 0.19vw, 5px) 0 clamp(8px, 6.59px + 0.38vw, 12px);
  font-family: var(--font-en);
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-ft-vs__list {
  display: grid;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  list-style: none;
  margin: 0;
  padding: 0;
}
.p-ft-vs__item {
  display: flex;
  gap: clamp(5px, 4.3px + 0.19vw, 7px);
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.7;
  color: var(--ink-2);
}
.p-ft-vs__item .c-ico {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.3em;
  color: var(--brand);
}
.p-ft-vs__mid {
  font-family: var(--font-en);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(16px, 14.59px + 0.38vw, 20px);
  color: var(--ink-3);
}

@media screen and (max-width: 760px) {
  .p-ft-vs {
    grid-template-columns: 1fr;
  }
  .p-ft-vs__mid {
    justify-self: center;
  }
}
/* 04 お金の番号カード */
.p-ft-num {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-ft-num__item {
  padding: clamp(14px, 11.89px + 0.56vw, 20px) clamp(14px, 11.89px + 0.56vw, 20px);
  background: var(--bg-2);
  border-radius: var(--r);
}
.p-ft-num__no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(26px, 24.59px + 0.38vw, 30px);
  height: clamp(26px, 24.59px + 0.38vw, 30px);
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font-family: var(--font-en);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
}
.p-ft-num__title {
  margin: clamp(8px, 7.3px + 0.19vw, 10px) 0 clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(13.5px, 12.8px + 0.19vw, 15.5px);
  font-weight: 700;
  line-height: 1.45;
  color: var(--ink);
}
.p-ft-num__text {
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.85;
  color: var(--ink-2);
}

@media screen and (max-width: 860px) {
  .p-ft-num {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 620px) {
  .p-ft-num {
    grid-template-columns: 1fr;
  }
}
/* 05・08 要点リスト（c-point-list --col3 の行間を本文向けに） */
.p-ft-points .c-point-list__note {
  line-height: 1.85;
}

/* 07 宿の料金表 */
.p-ft-stay .p-ft-stay__price {
  white-space: nowrap;
  color: var(--brand-ink);
}
.p-ft-stay .p-ft-stay__row--pick .c-fare-table__row-head {
  background: var(--brand-050);
  color: var(--brand-ink);
}

/* 09 マナーの番号リスト */
.p-ft-rules {
  counter-reset: ft-rule;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(18px, 12.37px + 1.5vw, 34px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-ft-rules__item {
  counter-increment: ft-rule;
  position: relative;
  padding: clamp(11px, 9.59px + 0.38vw, 15px) 0 clamp(11px, 9.59px + 0.38vw, 15px) clamp(34px, 30.48px + 0.94vw, 44px);
  border-bottom: 1px solid var(--line);
}
.p-ft-rules__item::before {
  content: counter(ft-rule);
  position: absolute;
  left: 0;
  top: clamp(10px, 8.59px + 0.38vw, 14px);
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(24px, 21.89px + 0.56vw, 30px);
  height: clamp(24px, 21.89px + 0.56vw, 30px);
  border: 2px solid var(--brand);
  border-radius: 999px;
  font-family: var(--font-en);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-ft-rules__title {
  display: block;
  font-size: clamp(13.5px, 12.8px + 0.19vw, 15.5px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--ink);
}
.p-ft-rules__text {
  margin-top: 0.125rem;
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.8;
  color: var(--ink-3);
}

@media screen and (max-width: 760px) {
  .p-ft-rules {
    grid-template-columns: 1fr;
  }
}
/* 10 緊急番号 */
.p-ft-emg {
  display: grid;
  grid-template-columns: 1fr 1fr 2fr;
  gap: clamp(8px, 5.89px + 0.56vw, 14px);
  margin: 0 0 clamp(14px, 11.89px + 0.56vw, 20px);
  padding: 0;
  list-style: none;
}
.p-ft-emg__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(2px, 1.3px + 0.19vw, 4px);
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(13px, 10.54px + 0.66vw, 20px);
  background: var(--navy);
  border-radius: var(--r);
  color: #fff;
}
.p-ft-emg__item--info {
  background: var(--brand-050);
  color: var(--navy);
}
.p-ft-emg__num {
  font-family: var(--font-en);
  font-size: clamp(26px, 22.48px + 0.94vw, 36px);
  font-weight: 800;
  line-height: 1.1;
}
.p-ft-emg__item--info .p-ft-emg__num {
  font-size: clamp(20px, 17.89px + 0.56vw, 26px);
}
.p-ft-emg__label {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  font-weight: 700;
}

@media screen and (max-width: 760px) {
  .p-ft-emg {
    grid-template-columns: 1fr 1fr;
  }
  .p-ft-emg__item--info {
    grid-column: 1/-1;
  }
}
/* 11 7日間の日程（p-itinerary に写真を添える） */
.p-ft-days__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(120px, 91.83px + 7.51vw, 200px);
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  align-items: start;
}
.p-ft-days__body {
  min-width: 0;
}
.p-ft-days__stay {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 700;
  color: var(--ink-3);
}
.p-ft-days__stay .c-ico {
  width: 0.9375rem;
  height: 0.9375rem;
  color: var(--brand);
}
.p-ft-days__media {
  display: block;
  aspect-ratio: 3/2;
  overflow: hidden;
  border-radius: var(--r-sm);
}
.p-ft-days__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 620px) {
  .p-ft-days__item {
    grid-template-columns: 1fr;
  }
  .p-ft-days__media {
    max-width: clamp(240px, 211.83px + 7.51vw, 320px);
  }
}
/* 本文エディタの追記 */
.p-ft-article {
  margin-top: clamp(36px, 28.96px + 1.88vw, 56px);
}

/* 締めの相談 */
.p-ft-cta {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(14px, 9.77px + 1.13vw, 26px);
  margin-top: clamp(40px, 32.96px + 1.88vw, 60px);
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(16px, 11.07px + 1.31vw, 30px);
  background: var(--brand-050);
  border-color: var(--brand-100);
}
.p-ft-cta__ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(48px, 43.77px + 1.13vw, 60px);
  height: clamp(48px, 43.77px + 1.13vw, 60px);
  border-radius: 999px;
  background: #fff;
  color: var(--brand-ink);
}
.p-ft-cta__ico .c-ico {
  width: clamp(24px, 21.89px + 0.56vw, 30px);
  height: clamp(24px, 21.89px + 0.56vw, 30px);
}
.p-ft-cta__title {
  font-size: clamp(16px, 14.59px + 0.38vw, 20px);
  font-weight: 800;
  color: var(--navy);
}
.p-ft-cta__text {
  margin-top: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  color: var(--ink-2);
}
.p-ft-cta__points {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 3.3px + 0.19vw, 6px) clamp(12px, 9.89px + 0.56vw, 18px);
  margin: clamp(8px, 6.59px + 0.38vw, 12px) 0 0;
  padding: 0;
  list-style: none;
}
.p-ft-cta__point {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  font-weight: 700;
  color: var(--ink);
}
.p-ft-cta__point .c-ico {
  width: 1rem;
  height: 1rem;
  color: var(--brand);
}
.p-ft-cta__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
}
.p-ft-cta__sub {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  font-weight: 700;
  color: var(--brand-ink);
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-ft-cta__sub .c-ico {
  width: 0.875rem;
  height: 0.875rem;
}
@media (hover: hover) {
  .p-ft-cta__sub:hover {
    color: var(--navy);
  }
}

@media screen and (max-width: 860px) {
  .p-ft-cta {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .p-ft-cta__actions {
    grid-column: 1/-1;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
  }
}
@media screen and (max-width: 620px) {
  .p-ft-cta {
    grid-template-columns: 1fr;
  }
  .p-ft-cta__ico {
    display: none;
  }
}
/* ============================================================
   規約3ページ（page-legal.php）
   ============================================================ */
.p-legal__notice {
  margin: clamp(16px, 13.18px + 0.75vw, 24px) 0;
}
.p-legal {
  /* 下書きの注意（静的版の notice--warn）。注意色は黄系のベタ */
}
.p-legal__notice--warn {
  margin-top: 0;
  background: var(--gold-050);
  border-color: var(--gold-100);
  color: var(--ink);
}
.p-legal__em {
  font-weight: 700;
}
.p-legal .p-legal__heading:first-child {
  margin-top: 0;
}
.p-legal__table {
  margin: 0 0 1.5em;
}
.p-legal .p-legal__num {
  text-align: right;
  white-space: nowrap;
}

/* ---- ページ全体・ヒーロー下のヒント・節 ---- */
.p-baseball {
  /* 追従バーがフッターを隠さないよう、バーの高さぶん下に余白を取る */
  padding-bottom: 4rem;
}
.p-baseball__hint {
  display: block;
  margin-top: clamp(8px, 6.59px + 0.38vw, 12px);
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  opacity: 0.9;
}
.p-baseball__sec {
  scroll-margin-top: calc(var(--header-stick, 90px) + 14px);
}
.p-baseball__sec + .p-baseball__sec {
  margin-top: clamp(36px, 28.96px + 1.88vw, 56px);
}
.p-baseball__lead {
  margin: clamp(-6px, -4.59px + -0.38vw, -10px) 0 clamp(14px, 11.89px + 0.56vw, 20px);
  font-size: clamp(13px, 12.47px + 0.14vw, 14.5px);
  line-height: 1.9;
  color: var(--ink-2);
}

/* ---- 球団の選択（リーグごとに 6 球団） ---- */
.p-bb-league + .p-bb-league {
  margin-top: clamp(14px, 11.89px + 0.56vw, 20px);
}
.p-bb-league__name {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--ink-3);
}
.p-bb-league__teams {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}

@media screen and (max-width: 860px) {
  .p-bb-league__teams {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (max-width: 520px) {
  .p-bb-league__teams {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.p-bb-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: clamp(10px, 8.59px + 0.38vw, 14px) 0.5rem;
  border: 1.5px solid var(--line);
  border-radius: var(--r);
  background: #fff;
  color: var(--ink);
  text-align: center;
  cursor: pointer;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-bb-team:hover {
    border-color: var(--brand);
  }
}
.p-bb-team.is-on {
  border-color: var(--brand);
  background: var(--brand-050);
}
.p-bb-team__logo {
  display: block;
  width: clamp(44px, 39.77px + 1.13vw, 56px);
  height: clamp(44px, 39.77px + 1.13vw, 56px);
}
.p-bb-team__img {
  display: block;
  width: 100%;
  height: 100%;
}
.p-bb-team__name {
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  font-weight: 700;
  line-height: 1.35;
}
.p-bb-team__state {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--brand-ink);
}
.p-bb-team {
  /* チケットの無い球団は押せるが控えめに見せる */
}
.p-bb-team--none .p-bb-team__logo {
  opacity: 0.45;
}
.p-bb-team--none .p-bb-team__state {
  color: var(--ink-3);
}

/* ---- 球団のパネル ---- */
.p-bb-panel {
  scroll-margin-top: calc(var(--header-stick, 90px) + 14px);
}
.p-bb-panel[hidden] {
  display: none;
}
.p-bb-panel__head {
  display: flex;
  align-items: center;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  margin-bottom: clamp(14px, 11.89px + 0.56vw, 20px);
  padding-bottom: clamp(12px, 10.59px + 0.38vw, 16px);
  border-bottom: 1px solid var(--line);
}
.p-bb-panel__logo {
  flex-shrink: 0;
  width: clamp(48px, 42.37px + 1.5vw, 64px);
  height: clamp(48px, 42.37px + 1.5vw, 64px);
}
.p-bb-panel__info {
  flex: 1 1 auto;
  min-width: 0;
}
.p-bb-panel__title {
  font-size: clamp(17px, 15.59px + 0.38vw, 21px);
  font-weight: 700;
  line-height: 1.4;
}
.p-bb-panel__stadium {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.125rem;
  font-size: clamp(12px, 11.65px + 0.09vw, 13px);
  color: var(--ink-2);
}
.p-bb-panel__stadium .c-ico {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.p-bb-panel__count {
  flex-shrink: 0;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  background: var(--bg-3);
  font-size: 0.71875rem;
  font-weight: 700;
  color: var(--ink-2);
}

@media screen and (max-width: 620px) {
  .p-bb-panel__head {
    flex-wrap: wrap;
  }
  .p-bb-panel__count {
    order: 3;
  }
}
/* ---- チケット（上の帯 / 写真・本文・料金の半券 / 試合日程） ---- */
.p-bb-tkt {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-bb-tkt + .p-bb-tkt {
  margin-top: clamp(16px, 13.18px + 0.75vw, 24px);
}
.p-bb-tkt.is-picked {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px var(--brand-050);
}
.p-bb-tkt__strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem clamp(14px, 9.07px + 1.31vw, 28px);
  padding: clamp(8px, 7.3px + 0.19vw, 10px) clamp(12px, 9.89px + 0.56vw, 18px);
  background: var(--navy);
  color: #fff;
}
.p-bb-tkt__cell {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.p-bb-tkt__cell--id {
  margin-left: auto;
}
.p-bb-tkt__cell-label {
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  opacity: 0.7;
}
.p-bb-tkt__cell-value {
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  font-weight: 700;
}
.p-bb-tkt__main {
  display: grid;
  grid-template-columns: clamp(180px, 158.87px + 5.63vw, 240px) minmax(0, 1fr) clamp(180px, 165.92px + 3.76vw, 220px);
}
.p-bb-tkt__media {
  position: relative;
  background: var(--bg-3);
}
.p-bb-tkt__img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 160px;
  object-fit: cover;
}
.p-bb-tkt {
  /* 写真が無いチケットは共通イラスト。切り抜かずに収める */
}
.p-bb-tkt__img--illust {
  object-fit: contain;
  padding: 14%;
}
.p-bb-tkt__soldout {
  position: absolute;
  left: 8px;
  top: 8px;
  padding: 0.1875rem 0.625rem;
  border-radius: 999px;
  background: var(--maple);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
}
.p-bb-tkt__body {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: clamp(12px, 9.89px + 0.56vw, 18px);
}
.p-bb-tkt__title {
  font-size: clamp(15px, 14.3px + 0.19vw, 17px);
  font-weight: 700;
  line-height: 1.5;
}
.p-bb-tkt__sub {
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  font-weight: 700;
  color: var(--brand-ink);
}
.p-bb-tkt__text {
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  line-height: 1.8;
  color: var(--ink-2);
}
.p-bb-tkt__notes {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  padding-left: 1.2em;
  list-style: disc;
}
.p-bb-tkt__note {
  font-size: 0.75rem;
  line-height: 1.7;
  color: var(--ink-3);
}
.p-bb-tkt {
  /* 料金の半券（点線で切り離し線に見立てる） */
}
.p-bb-tkt__stub {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: clamp(12px, 9.89px + 0.56vw, 18px);
  border-left: 1.5px dashed var(--line-strong, var(--line));
  background: var(--bg-2);
}
.p-bb-tkt__pp {
  font-size: 0.6875rem;
  color: var(--ink-3);
}
.p-bb-tkt__wait {
  font-size: 0.71875rem;
  line-height: 1.7;
  color: var(--maple-dark, var(--maple));
}
.p-bb-tkt {
  /* 「Add to enquiry」。選んだら塗りに変える */
}
.p-bb-tkt__add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3125rem;
  margin-top: auto;
  padding: 0.5rem 0.75rem;
  border: 1.5px solid var(--brand);
  border-radius: 999px;
  background: #fff;
  color: var(--brand-ink);
  font-size: 0.78125rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-bb-tkt__add:hover {
    background: var(--brand-050);
  }
}
.p-bb-tkt__add[aria-pressed=true] {
  background: var(--brand);
  color: #fff;
}
.p-bb-tkt__add-ico {
  display: inline-grid;
  place-items: center;
  width: 14px;
  height: 14px;
  font-size: 0.9375rem;
  line-height: 1;
}
.p-bb-tkt__add-ico .c-ico {
  width: 14px;
  height: 14px;
}
.p-bb-tkt__add-ico--check, .p-bb-tkt__add[aria-pressed=true] .p-bb-tkt__add-ico--plus {
  display: none;
}
.p-bb-tkt__add[aria-pressed=true] .p-bb-tkt__add-ico--check {
  display: inline-grid;
}

@media screen and (max-width: 860px) {
  .p-bb-tkt__main {
    grid-template-columns: clamp(160px, 138.87px + 5.63vw, 220px) minmax(0, 1fr);
  }
  .p-bb-tkt__stub {
    grid-column: 1/-1;
    border-left: 0;
    border-top: 1.5px dashed var(--line-strong, var(--line));
  }
}
@media screen and (max-width: 620px) {
  .p-bb-tkt__main {
    grid-template-columns: 1fr;
  }
  .p-bb-tkt__img {
    aspect-ratio: 3/2;
    height: auto;
  }
}
/* ---- 料金 ---- */
.p-bb-price {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.p-bb-price__label {
  font-size: 0.71875rem;
  line-height: 1.5;
  color: var(--ink-2);
}
.p-bb-price__amount {
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
}
.p-bb-price__from, .p-bb-price__cur {
  font-size: 0.71875rem;
  font-weight: 700;
  color: var(--ink-3);
}
.p-bb-price__num {
  font-size: clamp(22px, 20.59px + 0.38vw, 26px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--ink);
}

/* ---- 試合日程（月タブ・カード） ---- */
.p-bb-dates {
  padding: clamp(12px, 9.89px + 0.56vw, 18px);
  border-top: 1px solid var(--line);
}
.p-bb-dates__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin-bottom: 0.625rem;
}
.p-bb-dates__title .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
}
.p-bb-dates__heading {
  font-size: clamp(13.5px, 13.15px + 0.09vw, 14.5px);
  font-weight: 700;
}
.p-bb-dates__hint {
  font-size: 0.71875rem;
  color: var(--ink-3);
}

.p-bb-months {
  display: flex;
  gap: 0.375rem;
  margin-bottom: 0.75rem;
  overflow-x: auto;
}
.p-bb-months__tab {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-size: 0.78125rem;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-bb-months__tab:hover {
    border-color: var(--brand);
  }
}
.p-bb-months__tab[aria-selected=true] {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}
.p-bb-months__tab--empty {
  color: var(--ink-3);
}
.p-bb-months__num {
  display: inline-grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 0.3125rem;
  border-radius: 999px;
  background: var(--brand-050);
  color: var(--brand-ink);
  font-size: 0.65625rem;
}

.p-bb-month[hidden] {
  display: none;
}

.p-bb-series + .p-bb-series {
  margin-top: 0.75rem;
}
.p-bb-series__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.5rem;
  font-size: 0.78125rem;
}
.p-bb-series__logo {
  width: 22px;
  height: 22px;
}
.p-bb-series__team {
  font-weight: 700;
}
.p-bb-series__vs {
  font-size: 0.6875rem;
  color: var(--ink-3);
}
.p-bb-series__games {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
  gap: 0.375rem;
}

.p-bb-game {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas: "date time" "date pick";
  align-items: center;
  gap: 0.125rem 0.5rem;
  padding: 0.5rem 0.625rem;
  border: 1.5px solid var(--line);
  border-radius: var(--r-sm, 8px);
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (hover: hover) {
  .p-bb-game:hover {
    border-color: var(--brand);
  }
}
.p-bb-game[aria-pressed=true] {
  border-color: var(--brand);
  background: var(--brand-050);
}
.p-bb-game__date {
  grid-area: date;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 34px;
  line-height: 1.1;
}
.p-bb-game__date--sun {
  color: var(--maple);
}
.p-bb-game__date--sat {
  color: var(--sky-deep, var(--brand));
}
.p-bb-game__day {
  font-size: 1.125rem;
  font-weight: 700;
}
.p-bb-game__dow {
  font-size: 0.65625rem;
  font-weight: 700;
}
.p-bb-game__time {
  grid-area: time;
  font-size: 0.8125rem;
  font-weight: 700;
}
.p-bb-game__pick {
  grid-area: pick;
  display: inline-flex;
  align-items: center;
  gap: 0.1875rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--brand-ink);
}
.p-bb-game__pick-ico {
  display: inline-grid;
  place-items: center;
  width: 12px;
  height: 12px;
  font-size: 0.8125rem;
  line-height: 1;
}
.p-bb-game__pick-ico .c-ico {
  width: 12px;
  height: 12px;
}
.p-bb-game__pick-ico--check, .p-bb-game[aria-pressed=true] .p-bb-game__pick-ico--plus {
  display: none;
}
.p-bb-game[aria-pressed=true] .p-bb-game__pick-ico--check {
  display: inline-grid;
}

/* ---- 「この月は販売なし」・チケットの無い球団 ---- */
.p-bb-none {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem 0.875rem;
  border-radius: var(--r-sm, 8px);
  background: var(--bg-2);
  font-size: 0.78125rem;
  line-height: 1.8;
  color: var(--ink-2);
}
.p-bb-none .c-ico {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 0.25rem;
  color: var(--ink-3);
}

.p-bb-empty {
  display: flex;
  align-items: flex-start;
  gap: clamp(10px, 7.89px + 0.56vw, 16px);
  padding: clamp(16px, 13.18px + 0.75vw, 24px);
  border: 1px dashed var(--line-strong, var(--line));
  border-radius: var(--r);
  background: var(--bg-2);
}
.p-bb-empty > .c-ico {
  flex-shrink: 0;
  width: clamp(24px, 21.89px + 0.56vw, 30px);
  height: clamp(24px, 21.89px + 0.56vw, 30px);
  color: var(--brand);
}
.p-bb-empty__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}
.p-bb-empty__title {
  font-size: clamp(14.5px, 13.97px + 0.14vw, 16px);
  font-weight: 700;
}
.p-bb-empty__text {
  font-size: clamp(12.5px, 12.15px + 0.09vw, 13.5px);
  line-height: 1.8;
  color: var(--ink-2);
}

/* 年で絞り込むチップ列。
   ラベルは .c-chip-row__label（トップの「人気の目的地」用。PCで19pxまで大きくなる）を
   使わない。ここは本文の上に置く補助なので、静的版と同じく小さく灰色で止める。
   いま見ている年のチップは .is-current で塗る（テーマ共通の書き方）。 */
.p-news-years {
  /* ラベルとチップを2段に積む（.c-chip-row の横一列を上書き）。
     チップは __list の中で折り返す */
  display: block;
  overflow: visible;
  margin-bottom: clamp(20px, 15.07px + 1.31vw, 34px);
}
.p-news-years__label {
  margin-bottom: clamp(14px, 11.89px + 0.56vw, 20px);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  /* 静的版は12px。チップに対して小さすぎたので1.3倍にした */
  font-size: 15.6px;
  font-weight: 600;
  line-height: 1;
  color: var(--ink-2);
}
.p-news-years__label .c-ico {
  width: 18px;
  height: 18px;
  color: var(--brand);
  flex: 0 0 auto;
}
.p-news-years .c-chip {
  padding: 7px 16px;
  font-size: 13px;
  letter-spacing: 0.03em;
}
.p-news-years .c-chip.is-current {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}

/* 年見出しには共通の水色バーを出さない。年ごとの区切りは
   すぐ下の一覧の罫線が担っていて、線が二重になる */
.p-news-year .c-sec-head .c-sec-head__heading {
  padding-bottom: 0;
}
.p-news-year .c-sec-head .c-sec-head__heading::after {
  content: none;
}

.p-news-year + .p-news-year {
  margin-top: clamp(28px, 20.96px + 1.88vw, 48px);
}

.p-news-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.p-news-list__item {
  border-bottom: 1px solid var(--line);
}
.p-news-list__link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(8px, 5.18px + 0.75vw, 16px);
  padding: clamp(12px, 9.89px + 0.56vw, 18px) clamp(4px, 2.59px + 0.38vw, 8px);
  color: var(--ink);
}
@media (hover: hover) {
  .p-news-list__link:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}
.p-news-list__date {
  flex: 0 0 auto;
  min-width: clamp(74px, 68.37px + 1.5vw, 90px);
  font-family: var(--font-en);
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  letter-spacing: 0.04em;
  color: var(--ink-3);
}
.p-news-list__title {
  flex: 1 1 clamp(200px, 157.75px + 11.27vw, 320px);
  font-size: clamp(12.5px, 11.8px + 0.19vw, 14.5px);
  font-weight: 600;
  line-height: 1.6;
  /* SPはラベルが短いと題名が同じ行に入り、行ごとに並びが変わる。必ず次の行へ送る */
}
@media screen and (max-width: 620px) {
  .p-news-list__title {
    flex-basis: 100%;
  }
}

.p-first-trip {
  /* ---- ① リード ---- */
}
.p-first-trip__lead {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  line-height: 2.1;
  color: var(--ink-2);
}
.p-first-trip__lead-strong {
  font-weight: 800;
  color: var(--ink);
}
.p-first-trip {
  /* ---- ② ご不安4つ。白カード＋上辺の色帯、淡色の丸にアイコン、英字ラベル。
          色は項目ごとに --wc（線・文字）/ --wc-bg（丸・ラベルの地）で切り替える ---- */
}
.p-first-trip__worries {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 9.77px + 1.13vw, 26px) clamp(14px, 10.48px + 0.94vw, 24px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-first-trip__worry {
  --wc:var(--navy-700);
  --wc-bg:#edf2f8;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: clamp(14px, 10.48px + 0.94vw, 24px);
  align-items: center;
  padding: clamp(18px, 14.48px + 0.94vw, 28px) clamp(16px, 11.77px + 1.13vw, 28px);
  background: var(--bg);
  border-top: clamp(4px, 3.65px + 0.09vw, 5px) solid color-mix(in srgb, var(--wc) 55%, #fff); /* 上辺の線は項目色を白で薄めて使う */
  box-shadow: 0 6px 20px rgba(14, 34, 51, 0.07);
}
.p-first-trip__worry--orange {
  --wc:var(--accent);
  --wc-bg:var(--accent-050);
}
.p-first-trip__worry--teal {
  --wc:#16968a;
  --wc-bg:#e4f4f2;
}
.p-first-trip__worry--sky {
  --wc:var(--sky-ink);
  --wc-bg:var(--sky-050);
}
.p-first-trip__worry-icon-wrap {
  display: grid;
  place-items: center;
  width: clamp(52px, 44.96px + 1.88vw, 72px);
  height: clamp(52px, 44.96px + 1.88vw, 72px);
  border-radius: 999px;
  background: var(--wc-bg);
}
.p-first-trip__worry-icon {
  width: clamp(24px, 21.18px + 0.75vw, 32px);
  height: clamp(24px, 21.18px + 0.75vw, 32px);
  color: var(--wc);
}
.p-first-trip__worry-body {
  display: grid;
  justify-items: start;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  min-width: 0;
}
.p-first-trip__worry-label {
  padding: clamp(4px, 3.65px + 0.09vw, 5px) clamp(9px, 8.3px + 0.19vw, 11px);
  border-radius: clamp(6px, 5.3px + 0.19vw, 8px);
  background: var(--wc-bg);
  color: var(--wc);
  font-family: var(--font-en);
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
}
.p-first-trip__worry-text {
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 700;
  line-height: 1.7;
  color: var(--ink);
}
.p-first-trip__answer {
  margin-top: clamp(20px, 15.77px + 1.13vw, 32px);
  text-align: center;
  font-size: clamp(17px, 14.89px + 0.56vw, 23px);
  font-weight: 800;
  line-height: 1.6;
  color: var(--navy);
}
.p-first-trip {
  /* ---- ③ 比較表の見出しセルの補足 ---- */
}
.p-first-trip__vs-sub {
  display: block;
  margin-top: clamp(1px, 0.65px + 0.09vw, 2px);
  font-size: clamp(10px, 9.47px + 0.14vw, 11.5px);
  font-weight: 500;
}
.p-first-trip__punch {
  margin-top: clamp(26px, 21.07px + 1.31vw, 40px);
  text-align: center;
  font-size: clamp(16px, 14.24px + 0.47vw, 21px);
  font-weight: 700;
  line-height: 1.6;
  color: var(--ink);
}
.p-first-trip__punch-em {
  color: var(--accent);
  font-weight: 800;
}
.p-first-trip {
  /* ---- ⑧ 支店の電話 ---- */
}
.p-first-trip__offices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 7.18px + 0.75vw, 18px);
}
.p-first-trip__office {
  display: grid;
  justify-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(16px, 13.18px + 0.75vw, 24px);
  background: var(--bg);
  border-radius: var(--r);
  box-shadow: var(--sh);
  text-align: center;
}
.p-first-trip__office-name {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  font-weight: 700;
  color: var(--ink-2);
}
.p-first-trip__office-tel {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 4.94px + 0.28vw, 9px);
  font-family: var(--font-en);
  font-size: clamp(22px, 19.18px + 0.75vw, 30px);
  font-weight: 800;
  /* 行の高さを字面に合わせ、アイコンの丸と数字の上下中央を揃える */
  line-height: 1;
  color: var(--navy);
  /* 電話アイコンは番号と同じ濃紺の正円に白抜き。
     要素は増やさず、svg 自体に背景・角丸・内側の余白を付ける（box-sizing:border-box なので幅＝直径） */
}
.p-first-trip__office-tel .c-ico {
  width: clamp(32px, 28.48px + 0.94vw, 42px);
  height: clamp(32px, 28.48px + 0.94vw, 42px);
  padding: clamp(8px, 7.3px + 0.19vw, 10px);
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  vertical-align: middle;
  /* 数字の字面は文字枠の中心より少し下にある（実測1.6px）ので、丸もその分だけ下げて見た目の中央に合わせる */
  position: relative;
  top: 0.05em;
  /* svg は既定で枠の外を切り取る。padding で描画枠が縮んだぶん、受話器の線の端が見切れていた */
  overflow: visible;
}
.p-first-trip__office-note {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  color: var(--ink-3);
}
.p-first-trip__offices-note {
  grid-column: 1/-1;
  margin-top: clamp(4px, 2.59px + 0.38vw, 8px);
  text-align: center;
  font-size: clamp(12.5px, 11.97px + 0.14vw, 14px);
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.88); /* 紺のオーバーレイに直接乗る */
}
.p-first-trip {
  /* 「から。」の後の改行はSPだけ */
}
.p-first-trip__offices-br {
  display: none;
}
.p-first-trip__offices-link {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

@media screen and (max-width: 760px) {
  .p-first-trip__worries, .p-first-trip__offices {
    grid-template-columns: 1fr;
  }
  .p-first-trip__offices-br {
    display: inline;
  }
}
/* ============================================================
   59. 支店アクセスページ (company/access-vancouver.html)
   ============================================================ */
.p-access__lead {
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  line-height: 2.1;
  color: var(--ink-2);
  text-align: center;
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-access__note {
  font-size: 12.5px;
  color: var(--ink-3);
  text-align: center;
  margin-bottom: clamp(17px, 13.13px + 1.03vw, 28px);
}

.p-access-info {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(14px, 10.48px + 0.94vw, 24px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 9.18px + 0.75vw, 20px);
  flex-wrap: wrap;
}
.p-access-info .p-access-info__dl, .p-access-info dl {
  display: grid;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  margin: 0;
}
.p-access-info dl > div {
  display: flex;
  align-items: baseline;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
}
.p-access-info .p-access-info__term, .p-access-info dt {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 3.3px + 0.19vw, 6px);
  flex-shrink: 0;
  width: clamp(67px, 56.79px + 2.72vw, 96px);
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-3);
}
.p-access-info dt .c-ico {
  width: 14px;
  height: 14px;
  color: var(--brand);
}
.p-access-info .p-access-info__desc, .p-access-info dd {
  margin: 0;
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink);
  line-height: 1.7;
}
.p-access-info dd a {
  color: var(--brand-ink);
  font-weight: 700;
}

.p-access-steps {
  list-style: none;
  margin: clamp(16px, 12.48px + 0.94vw, 26px) 0 0;
  padding: 0;
  position: relative;
}
.p-access-steps::before {
  content: "";
  position: absolute;
  left: clamp(13px, 10.89px + 0.56vw, 19px);
  top: clamp(7px, 5.94px + 0.28vw, 10px);
  bottom: clamp(7px, 5.94px + 0.28vw, 10px);
  width: 2px;
  background: var(--line-2);
}

.p-access-step {
  position: relative;
  padding: 0 0 clamp(20px, 15.07px + 1.31vw, 34px) clamp(36px, 27.55px + 2.25vw, 60px);
}
.p-access-step:last-child {
  padding-bottom: 0;
}
.p-access-step__head {
  display: flex;
  align-items: center;
  gap: clamp(9px, 7.94px + 0.28vw, 12px);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-access-step__no {
  position: absolute;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(30px, 26.48px + 0.94vw, 40px);
  height: clamp(30px, 26.48px + 0.94vw, 40px);
  border-radius: 999px;
  background: var(--brand);
  color: #fff;
  font-family: var(--font-en);
  font-size: clamp(14px, 12.94px + 0.28vw, 17px);
  font-weight: 800;
  box-shadow: 0 6px 16px rgba(10, 158, 203, 0.3);
}
.p-access-step__head .p-access-step__head-heading, .p-access-step__head h3 {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 800;
  color: var(--ink);
  line-height: 1.6;
}
.p-access-step .p-access-step__text, .p-access-step p {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  line-height: 1.95;
  color: var(--ink-2);
}
.p-access-step .p-access-step__figure, .p-access-step figure {
  margin: clamp(9px, 7.24px + 0.47vw, 14px) 0 0;
}
.p-access-step figure .p-access-step__figure-img, .p-access-step figure img {
  width: 100%;
  max-width: clamp(392px, 332.85px + 15.77vw, 560px);
  height: auto;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  display: block;
}
.p-access-step__pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  max-width: clamp(532px, 451.72px + 21.41vw, 760px);
}
.p-access-step__pair .p-access-step__pair-figure, .p-access-step__pair figure {
  margin: clamp(9px, 7.24px + 0.47vw, 14px) 0 0;
}

@media screen and (max-width: 620px) {
  .p-access-step__pair {
    grid-template-columns: 1fr;
  }
}
.p-access-cta {
  margin-top: clamp(24px, 18.37px + 1.5vw, 40px);
  border-top: 1px solid var(--line);
  padding-top: clamp(17px, 13.13px + 1.03vw, 28px);
  text-align: center;
}
.p-access-cta .p-access-cta__text, .p-access-cta p {
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}
.p-access-cta__row {
  display: flex;
  justify-content: center;
  gap: clamp(9px, 7.24px + 0.47vw, 14px);
  flex-wrap: wrap;
}

/* ---- 地図（静的英語版は基本情報の下に埋め込み地図を置く）---- */
.p-access-info__map {
  flex: 1 1 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  border-radius: var(--r-sm, 8px);
  background: var(--bg-3);
}

.p-access-info__map-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---- 写真のキャプション（静的英語版の原稿） ---- */
.p-access-step__caption {
  margin-top: 6px;
  font-size: clamp(11.5px, 11.15px + 0.09vw, 12.5px);
  line-height: 1.7;
  color: var(--ink-3);
}

/* 縦長の写真1枚の手順（2枚並びと同じくらいの大きさにそろえる） */
.p-access-step__figure--portrait {
  max-width: clamp(260px, 231.83px + 7.51vw, 340px);
}

/* ---- 予約・問い合わせ・もう一方の支店（3列） ---- */
.p-access__cta-tel {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  font-weight: 700;
  font-size: clamp(15px, 14.3px + 0.19vw, 17px);
  color: var(--brand-ink);
}
.p-access__cta-tel .c-ico {
  width: 16px;
  height: 16px;
}

.p-access__cta-btn {
  /* 本文と同じ行に並ばないよう、ボタンだけで1行を取る（幅は中身なり） */
  display: flex;
  width: fit-content;
  margin-top: clamp(10px, 8.59px + 0.38vw, 14px);
}

/* ============================================================
   93. お問い合わせページの再構成v2
       FV = dfplus.io型の左右分割。左に案内(よくある内容+電話)、右にフォーム。
       その下に LINE(電話列なし) → ご来店 → よくある質問。
       FAQへの離脱導線はFVに置かない(離脱防止)。
   ============================================================ */
/* ---- FV: 全幅リード + 左右分割 ---- */
/* リードは2列の上に全幅で敷く */
.p-contact-lead {
  font-size: clamp(13px, 12.12px + 0.23vw, 15.5px);
  line-height: 2.1;
  color: var(--ink-2);
  text-align: center;
  max-width: clamp(588px, 499.27px + 23.66vw, 840px);
  margin: 0 auto clamp(20px, 15.07px + 1.31vw, 34px);
}

.p-contact-fv {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: clamp(26px, 19.66px + 1.69vw, 44px);
  align-items: start;
  max-width: clamp(784px, 665.69px + 31.55vw, 1120px);
  margin-inline: auto;
}
.p-contact-fv__info .p-contact-fv__info-heading, .p-contact-fv__info h3 {
  font-size: clamp(14px, 13.12px + 0.23vw, 16.5px);
  font-weight: 800;
  color: var(--ink);
  /* 節見出し(c-sec-head)と同じ、短い水色のバーを下に敷く */
  position: relative;
  padding-bottom: clamp(8px, 6.59px + 0.38vw, 12px);
  margin: 0 0 clamp(11px, 9.24px + 0.47vw, 16px);
}
.p-contact-fv__info .p-contact-fv__info-heading::after, .p-contact-fv__info h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: clamp(34px, 30.48px + 0.94vw, 44px);
  height: 3px;
  border-radius: 3px;
  background: var(--sky-200);
}
.p-contact-fv__info .p-contact-fv__info-heading:not(:first-child), .p-contact-fv__info h3:not(:first-child) {
  margin-top: clamp(26px, 20.37px + 1.5vw, 42px);
}
.p-contact-fv__hours {
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 2;
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-contact-fv {
  /* ただいまの現地時間(時刻は main.js の data-clock が入れる) */
}
.p-contact-fv__clock {
  font-family: var(--font-en);
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.p-contact-fv__clock-ico {
  width: 14px;
  height: 14px;
  margin-right: 4px;
  vertical-align: -2px;
}
.p-contact-fv__note {
  font-size: 12px;
  color: var(--ink-3);
  line-height: 1.9;
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-contact-fv__note-strong {
  display: block;
  font-weight: 700;
  color: var(--ink-2);
}
.p-contact-fv__tel-label {
  display: block;
}
.p-contact-fv {
  /* ---- 右カラム: フォームのカード ---- */
}
.p-contact-fv__form {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--sh-sm);
  padding: clamp(18px, 13.77px + 1.13vw, 30px) clamp(16px, 11.77px + 1.13vw, 28px);
}
.p-contact-fv {
  /* CF7 は .wpcf7 > form と1段深くなるので、フォーム本体側に項目の間隔を持たせる */
}
.p-contact-fv__form .wpcf7-form, .p-contact-fv__form form {
  display: grid;
  gap: clamp(12px, 9.89px + 0.56vw, 18px);
}
.p-contact-fv__form .p-booking-trust {
  margin-top: clamp(14px, 11.18px + 0.75vw, 22px);
}
.p-contact-fv__submit {
  justify-self: center;
  width: auto;
  min-width: clamp(232px, 208.06px + 6.38vw, 300px);
  margin-top: clamp(4px, 2.59px + 0.38vw, 8px);
  box-shadow: none; /* オレンジのグロー影は使わない(page-build.md) */
}

@media screen and (max-width: 860px) {
  .p-contact-fv {
    grid-template-columns: 1fr;
    gap: clamp(20px, 13.12px + 1.83vw, 30px);
  }
  .p-contact-lead {
    margin-bottom: clamp(17px, 10.81px + 1.65vw, 26px);
    text-align: left;
  }
}
/* ---- LINEブロックの1列版(電話列はFVにあるため撤去) ---- */
.p-line-consult__grid--single {
  grid-template-columns: 1fr;
  max-width: clamp(322px, 273.41px + 12.96vw, 460px);
  margin-inline: auto;
}

/* ---- FAQ導線(ページ下部のみで使用) ---- */
.p-faq-first {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px) clamp(11px, 8.54px + 0.66vw, 18px);
  flex-wrap: wrap;
  margin: clamp(20px, 15.07px + 1.31vw, 34px) auto 0;
  max-width: clamp(448px, 380.39px + 18.03vw, 640px);
  font-size: clamp(11px, 10.12px + 0.23vw, 13.5px);
  color: var(--ink-2);
}
.p-faq-first .c-btn {
  flex-shrink: 0;
}

/* ---- ご来店: 支店カード(写真つき) ---- */
.p-visit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(11px, 8.54px + 0.66vw, 18px);
}

.p-visit-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.p-visit-card__photo {
  aspect-ratio: 16/9;
  background: var(--bg-2);
}
.p-visit-card__photo .p-visit-card__photo-img, .p-visit-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.p-visit-card__body {
  padding: clamp(13px, 9.83px + 0.85vw, 22px) clamp(14px, 10.48px + 0.94vw, 24px) clamp(14px, 10.48px + 0.94vw, 24px);
  display: flex;
  flex-direction: column;
  flex: 1;
}
.p-visit-card .p-visit-card__heading {
  font-size: clamp(14px, 13.3px + 0.19vw, 16px);
  font-weight: 800;
  color: var(--ink);
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  display: flex;
  align-items: center;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-visit-card .p-visit-card__heading .c-ico {
  width: 17px;
  height: 17px;
  color: var(--brand);
}
.p-visit-card .p-visit-card__dl, .p-visit-card dl {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 4px clamp(9px, 7.94px + 0.28vw, 12px);
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  line-height: 1.8;
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-visit-card .p-visit-card__term, .p-visit-card dt {
  color: var(--ink-3);
  font-weight: 600;
}
.p-visit-card .p-visit-card__desc, .p-visit-card dd {
  color: var(--ink-2);
}
.p-visit-card {
  /* 実在スタッフの顔を並べて「誰が応対するか」を見せる(対面の安心感) */
}
.p-visit-card__staff {
  margin-bottom: clamp(10px, 7.89px + 0.56vw, 16px);
}
.p-visit-card__stafflabel {
  display: block;
  font-size: 12px;
  color: var(--ink-3);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}
.p-visit-card__faces {
  display: flex;
  gap: 0;
}
.p-visit-card__faces .p-visit-card__faces-img, .p-visit-card__faces img {
  width: clamp(33px, 29.13px + 1.03vw, 44px);
  height: clamp(33px, 29.13px + 1.03vw, 44px);
  border-radius: 999px;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(14, 34, 51, 0.16);
}
.p-visit-card__faces img + img {
  margin-left: -10px;
}
.p-visit-card__acts {
  margin-top: auto;
  display: flex;
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
  flex-wrap: wrap;
}

@media screen and (max-width: 760px) {
  .p-visit-grid {
    grid-template-columns: 1fr;
  }
}
/* ---- 同意チェック（プライバシーポリシー）---- */
/* .c-field label{display:block}（フォーム共通）の方が詳細度が高く、チェックボックスが文言の上に浮いていたので .c-field 配下でも flex にする */
.c-field .c-consent,
.c-consent {
  display: flex;
  align-items: flex-start;
  gap: clamp(7px, 5.94px + 0.28vw, 10px);
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.8;
  color: var(--ink-2);
  cursor: pointer;
}
.c-field .c-consent__input,
.c-consent__input {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--brand);
}
.c-field .c-consent__note,
.c-consent__note {
  display: block;
  margin-top: 4px;
  padding-left: clamp(25px, 23.94px + 0.28vw, 28px);
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  color: var(--ink-3);
  line-height: 1.8;
}

/* CF7 の acceptance も同じ見え方にそろえる（ラベルはベンダー生成なのでタグ指定にしている） */
.c-field--consent .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}
.c-field--consent .wpcf7-acceptance .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: clamp(7px, 5.94px + 0.28vw, 10px);
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  line-height: 1.8;
  color: var(--ink-2);
  cursor: pointer;
}
.c-field--consent .wpcf7-acceptance .wpcf7-list-item input {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: var(--brand);
}

@media screen and (max-width: 620px) {
  .p-contact-fv__submit {
    width: 100%;
  }
}
/* ---- よくあるお問い合わせ内容 ----
   英字の小さな番号 + 行間で読ませる。採番の見せ方はテーマの .p-scene-list に合わせている。 */
.p-contact-topics {
  counter-reset: cttopic;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-contact-topics__item {
  counter-increment: cttopic;
  display: grid;
  grid-template-columns: clamp(24px, 21.18px + 0.75vw, 32px) minmax(0, 1fr);
  align-items: baseline;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding: clamp(9px, 7.59px + 0.38vw, 13px) 0;
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  line-height: 1.75;
  color: var(--ink-2);
}
.p-contact-topics {
  /* 行の間にだけ区切りを入れる（先頭の上・末尾の下には引かない） */
}
.p-contact-topics__item + .p-contact-topics__item {
  border-top: 1px solid var(--line);
}
.p-contact-topics__item::before {
  content: counter(cttopic, decimal-leading-zero);
  font-family: var(--font-en);
  font-weight: 800;
  font-size: clamp(11px, 10.47px + 0.14vw, 12.5px);
  letter-spacing: 0.1em;
  color: var(--brand);
}

/* ---- お電話 ----
   支店名＋現地時間（左）と番号（右）の2列。番号は英字フォントで大きく取り、日本からの番号は副の行に落とす。 */
.p-contact-tel {
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
}
.p-contact-tel__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(9px, 6.54px + 0.66vw, 16px);
  padding: clamp(11px, 9.24px + 0.47vw, 16px) clamp(12px, 9.89px + 0.56vw, 18px);
}
.p-contact-tel__row + .p-contact-tel__row {
  border-top: 1px solid var(--line);
}
.p-contact-tel__place {
  display: grid;
  gap: 2px;
}
.p-contact-tel__name {
  font-size: clamp(11.5px, 10.97px + 0.14vw, 13px);
  font-weight: 700;
  color: var(--ink);
}
.p-contact-tel__clock {
  font-size: clamp(10.5px, 10.15px + 0.09vw, 11.5px);
  color: var(--ink-3);
}
.p-contact-tel__clock-time {
  font-family: var(--font-en);
  font-weight: 700;
  color: var(--ink-2);
}
.p-contact-tel__nums {
  text-align: right;
  margin: 0;
}
.p-contact-tel__main {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(17px, 15.59px + 0.38vw, 21px);
  font-weight: 800;
  letter-spacing: 0.01em;
  color: var(--ink);
}
@media (hover: hover) {
  .p-contact-tel__main:hover {
    color: var(--brand-ink);
  }
}
.p-contact-tel__sub {
  display: block;
  margin-top: 2px;
  font-size: clamp(10.5px, 9.97px + 0.14vw, 12px);
  color: var(--ink-3);
}
.p-contact-tel__sub-link {
  font-family: var(--font-en);
  font-weight: 700;
  color: var(--ink-2);
}
@media (hover: hover) {
  .p-contact-tel__sub-link:hover {
    color: var(--brand-ink);
  }
}

@media screen and (max-width: 520px) {
  .p-contact-tel__row {
    grid-template-columns: 1fr;
  }
  .p-contact-tel__nums {
    text-align: left;
  }
}
/* ============================================================
   42. デバイス対応強化 (iPhone / Android / iPad)
   ============================================================ */
/* iOS: 横向き回転時の自動文字拡大を防止 */
html {
  -webkit-text-size-adjust: 100%;
}

/* タップハイライトを抑えめに(Android Chrome) */
a, button {
  -webkit-tap-highlight-color: rgba(10, 158, 203, 0.14);
}

/* iOS: 16px未満の入力欄はフォーカス時に画面が自動ズームされるため、モバイルでは16pxに */
@media screen and (max-width: 760px) {
  .c-field .c-field__input, .c-field .c-field__select, .c-field .c-field__textarea, .c-field input, .c-field select, .c-field textarea, .p-rv-sort select, .p-search-box .p-search-box__input, .p-footer-search .p-footer-search__input {
    font-size: 16px;
  }
}
/* iPad縦(641〜900px): 口コミ・サービスカードを2列で活かす */
@media screen and (min-width: 621px) and (max-width: 860px) {
  .c-review-grid {
    grid-template-columns: 1fr 1fr;
    max-width: none;
  }
  .p-svc-grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* iPad横〜小型ノート(1001〜1180px): ツアー2カラムのサイドバーを最適幅に */
@media screen and (min-width: 1001px) and (max-width: 1180px) {
  .p-tour-layout {
    grid-template-columns: minmax(0, 1fr) 316px;
    gap: 28px;
  }
}
/* 小型スマホ(iPhone SE / 小型Android 380px以下): 余白と主要要素を微調整 */
@media screen and (max-width: 520px) {
  .l-container {
    padding-inline: 16px;
  }
  .c-btn--primary:not(.c-btn--small), .c-btn--brand:not(.c-btn--small) {
    padding: 13px 22px;
    font-size: 14.5px;
  }
  .p-tq-body {
    padding: 20px 16px 22px;
  }
  .p-tour-header__meta {
    gap: 8px 10px;
  }
  .p-seat-detail__price .p-seat-detail__price-strong, .p-seat-detail__price-strong {
    font-size: 29px;
  }
  .p-hotel-block__head, .p-hotel-block__body {
    padding-left: 16px;
    padding-right: 16px;
  }
}
/* 上部ユーティリティバー: 極小幅ではリンクを折り返して見切れ防止 */
@media screen and (max-width: 520px) {
  .l-utility-bar__right {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px clamp(6px, -21.27px + 7.27vw, 10px);
    padding: 3px 0;
  }
  .c-field-row {
    grid-template-columns: 1fr;
  }
}
/* iPad縦など中間幅でツアーカードグリッドが1列に落ちないよう補完 */
@media screen and (min-width: 621px) and (max-width: 860px) {
  .p-tour-grid {
    grid-template-columns: 1fr 1fr;
  }
}
/* 横長画面のドロワー(スマホ横向き): 上下の余白を詰めてメニューを見やすく */
@media screen and (max-width: 1080px) and (max-height: 500px) {
  .l-global-nav {
    padding-top: 64px;
  }
  .l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link {
    padding: 11px 6px;
    font-size: 15px;
  }
}
/* ============================================================
   72. スマホ専用の表示切替
       方針: PCデザインは変えず、スマホだけ
       ①.p-hswipe=カード列を横スワイプ化 ②[data-sp-acc]=カード群をアコーディオン化
       ③支店カードの地図を非表示(「大きな地図で見る」リンクは残る)
   ============================================================ */
@media screen and (max-width: 620px) {
  /* ① 横スワイプ列(.p-tour-grid/.c-post-grid/.c-review-grid に付与して使う) */
  /* カード1枚を画面中央に置き、左右に次のカードをチラ見せする(センタースライダー)。
     左右のpaddingで先頭・末尾も中央に来る。カード幅は grid-auto-columns:100%
     ＝ paddingを引いた内側の幅なので、余白は下の $peek だけで決まる。 */
  /* 左右の余白が広く「右に変な隙間」に見えたので、
     はみ出し量はSPのコンテナ余白(16px)に合わせ、チラ見せの余白を詰めた */
  .p-hswipe {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    grid-template-columns: none;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin-inline: -16px;
    padding: 4px 24px clamp(10px, 1.51px + 2.26vw, 16px);
  }
  .p-hswipe::-webkit-scrollbar {
    display: none;
  }
  .p-hswipe > * {
    scroll-snap-align: center;
    min-width: 0;
  }
  .p-hswipe {
    /* PC用の列数(u-grid-N)が同居していると、後に読む utility が勝って
       先頭2列が潰れ、クローンのカードが縦長になる。横スワイプ中は列数を無効にする */
  }
  .p-hswipe.u-grid-2, .p-hswipe.u-grid-3 {
    grid-template-columns: none;
  }
  .p-hswipe .c-tour-card__img .c-tour-card__img-img {
    aspect-ratio: 3/2;
    height: auto;
  }
  /* カード列のドット(main.js が .p-hswipe の直後に差し込む。PCでは削除される) */
  .c-hswipe-dots {
    display: flex;
    justify-content: center;
    gap: 0;
    margin-top: clamp(4px, -1.66px + 1.51vw, 8px);
  }
  /* ボタン自体を 24px 角にしてタップ領域を確保し、見た目の点(8px)は ::before で描く */
  .c-hswipe-dots__item {
    position: relative;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: width 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .c-hswipe-dots__item::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    translate: -50% -50%;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    /* --line-2 だと地に沈んで見えないので、インクの透過にする */
    background: rgba(21, 36, 47, 0.22);
    transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), width 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .c-hswipe-dots__item.is-current {
    width: 38px;
  }
  .c-hswipe-dots__item.is-current::before {
    width: 22px;
    background: var(--brand);
  }
  /* ② アコーディオン(コンテナに data-sp-acc、開閉はmain.jsが .is-open を付け外し) */
  [data-sp-acc] > * {
    position: relative;
    cursor: pointer;
  }
  [data-sp-acc] > *::after {
    content: "";
    position: absolute;
    top: clamp(18px, 6.68px + 3.02vw, 26px);
    right: clamp(14px, 5.51px + 2.26vw, 20px);
    width: 8px;
    height: 8px;
    border-right: 2px solid var(--ink-3);
    border-bottom: 2px solid var(--ink-3);
    transform: rotate(45deg);
    transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  [data-sp-acc] > .is-open::after {
    transform: rotate(-135deg);
  }
  /* 法人ページ サービスカード: アイコン+タイトルの行に圧縮、本文はタップで展開 */
  #services [data-sp-acc] {
    gap: clamp(6px, 0.34px + 1.51vw, 10px);
  }
  /* 会社案内 スタッフ紹介: 顔+名前の行、紹介文はタップで展開 */
  [data-sp-acc] > .p-guide-profile {
    display: flex;
    align-items: center;
    gap: clamp(9px, 1.92px + 1.89vw, 14px);
    padding: clamp(9px, 1.92px + 1.89vw, 14px) clamp(27px, 5.77px + 5.66vw, 42px) clamp(9px, 1.92px + 1.89vw, 14px) clamp(10px, 1.51px + 2.26vw, 16px);
  }
  [data-sp-acc] > .p-guide-profile .p-guide-profile__avatar {
    width: clamp(36px, 13.36px + 6.04vw, 52px);
    height: clamp(36px, 13.36px + 6.04vw, 52px);
    flex-shrink: 0;
  }
  [data-sp-acc] > .p-guide-profile > .p-guide-profile__body {
    min-width: 0;
  }
  [data-sp-acc] > .p-guide-profile > .p-guide-profile__body .p-guide-profile__text {
    margin-top: clamp(5px, 0.75px + 1.13vw, 8px);
  }
  [data-sp-acc] > .p-guide-profile:not(.is-open) > .p-guide-profile__body .p-guide-profile__text {
    display: none;
  }
  [data-sp-acc] > .p-guide-profile::after {
    top: 50%;
    margin-top: -6px;
  }
  [data-sp-acc] > .p-guide-profile.is-open {
    align-items: flex-start;
  }
  [data-sp-acc] > .p-guide-profile.is-open::after {
    top: clamp(18px, 6.68px + 3.02vw, 26px);
    margin-top: 0;
  }
  /* FAQ用語集: 語義はタップで展開(検索中はfaq-filter.jsが自動で開く) */
  .p-gloss-list[data-sp-acc] > .p-gloss-item:not(.is-open) .p-gloss-item__desc {
    display: none;
  }
  .p-gloss-list[data-sp-acc] > .p-gloss-item::after {
    top: clamp(15px, 5.09px + 2.64vw, 22px);
  }
  /* ③ 支店カードの埋め込み地図(縦600px超)はスマホでは出さない */
  .p-office-card__map {
    display: none;
  }
}
/* ============================================================
   94. スマホの追加UI
       [A] ドロワー内の言語切替(EN) … スマホではユーティリティバーが
           窮屈なため、ハンバーガーメニューの中に置く
       [B] ツアー個別: 予約フォームのモーダル(ボトムシート)表示
       [C] FAQ: 右下追従の「カテゴリー」ボタン + モーダル展開
   ============================================================ */
/* ---- [A] ドロワー内のEN切替 ---- */
.p-lang-switch--drawer {
  display: none;
}

@media screen and (max-width: 1080px) {
  .p-lang-switch--drawer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(5px, 3.4px + 0.43vw, 8px);
    margin-top: clamp(8px, 5.87px + 0.57vw, 12px);
    padding: clamp(8px, 5.87px + 0.57vw, 12px);
    font-size: clamp(12px, 10.94px + 0.28vw, 14px);
    font-weight: 700;
    color: var(--ink-2);
    border: 1px solid var(--line);
    border-radius: clamp(9px, 7.4px + 0.43vw, 12px);
  }
  .p-lang-switch--drawer .c-ico {
    width: 16px;
    height: 16px;
    color: var(--brand);
  }
}
/* ---- [B] 予約フォームのモーダル ----
   画面中央に浮かぶダイアログにする。
   長いフォームなのでパネル自身をスクロールさせ、見出し行は sticky で残す。 */
.p-bkm {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  place-items: center;
  padding: clamp(12px, 9.89px + 0.56vw, 18px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.22s, visibility 0.22s;
}
.p-bkm.is-open {
  opacity: 1;
  visibility: visible;
}
.p-bkm__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14, 34, 51, 0.55);
}
.p-bkm__panel {
  position: relative;
  width: min(28.75rem, 100%);
  max-height: 88svh;
  overflow-y: auto;
  background: var(--bg-2);
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px);
  padding: 0 clamp(10px, 8.59px + 0.38vw, 14px) clamp(12px, 9.89px + 0.56vw, 18px);
  box-shadow: 0 30px 80px rgba(8, 22, 36, 0.42);
  transform: translateY(12px) scale(0.975);
  transition: transform 0.26s;
  /* 開いた直後にフォーカスを移すが枠は出さない */
}
.p-bkm__panel:focus {
  outline: none;
}
.p-bkm.is-open .p-bkm__panel {
  transform: none;
}
.p-bkm__head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--bg-2);
  margin: 0 calc(-1 * clamp(10px, 8.59px + 0.38vw, 14px)) clamp(8px, 6.59px + 0.38vw, 12px);
  padding: clamp(11px, 9.59px + 0.38vw, 15px) clamp(12px, 10.59px + 0.38vw, 16px) clamp(9px, 7.94px + 0.28vw, 12px);
  border-bottom: 1px solid var(--line);
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px) clamp(14px, 12.59px + 0.38vw, 18px) 0 0;
}
.p-bkm__head-strong {
  font-weight: 700;
  font-size: clamp(13px, 12.3px + 0.19vw, 15px);
  color: var(--ink);
}
.p-bkm__close {
  width: clamp(30px, 28.59px + 0.38vw, 34px);
  height: clamp(30px, 28.59px + 0.38vw, 34px);
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  cursor: pointer;
}
.p-bkm__close .c-ico {
  width: 1.125rem;
  height: 1.125rem;
}
.p-bkm {
  /* モーダル内では booking-box の飾りを少し落ち着かせる */
}
.p-bkm .p-booking-box {
  box-shadow: none;
  margin: 0;
}

@media (prefers-reduced-motion: reduce) {
  .p-bkm__panel {
    transform: none;
    transition: none;
  }
}
/* ---- [B-2] 入力内容の一時保存メッセージ ----
   復元したときだけ出す(main.js initBookingDraft)。個人情報を端末に置くので、
   保存している事実と消す手段(クリア)を必ず同じ場所に示す。 */
.p-bk-draft-note {
  display: flex;
  align-items: center;
  gap: clamp(8px, 7.3px + 0.19vw, 10px);
  flex-wrap: wrap;
  margin: 0 0 clamp(10px, 8.59px + 0.38vw, 14px);
  padding: clamp(8px, 7.3px + 0.19vw, 10px) clamp(10px, 9.3px + 0.19vw, 12px);
  border-radius: clamp(8px, 7.3px + 0.19vw, 10px);
  background: var(--brand-050);
  border: 1px solid var(--brand-100);
  font-size: 0.78125rem;
  line-height: 1.7;
  color: var(--brand-ink);
}
.p-bk-draft-note__clear {
  margin-left: auto;
  flex-shrink: 0;
  padding: clamp(4px, 3.65px + 0.09vw, 5px) clamp(9px, 8.3px + 0.19vw, 11px);
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-2);
  font-size: 0.75rem;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
}
@media (hover: hover) {
  .p-bk-draft-note__clear:hover {
    background: var(--brand-050);
    color: var(--brand-ink);
  }
}

/* ---- [C] FAQのカテゴリーFAB + シート ---- */
.p-faqcat-fab {
  display: none;
}

@media screen and (max-width: 1080px) {
  .p-faqcat-fab {
    position: fixed;
    right: clamp(11px, 8.34px + 0.71vw, 16px);
    bottom: clamp(64px, 49.11px + 3.97vw, 92px);
    z-index: 941;
    width: clamp(41px, 31.96px + 2.41vw, 58px);
    height: clamp(41px, 31.96px + 2.41vw, 58px);
    border-radius: 999px;
    background: var(--navy);
    color: #fff;
    display: grid;
    place-items: center;
    gap: 1px;
    border: none;
    cursor: pointer;
    box-shadow: 0 10px 28px rgba(14, 34, 51, 0.35);
  }
  .p-faqcat-fab .c-ico {
    width: clamp(15px, 12.34px + 0.71vw, 20px);
    height: clamp(15px, 12.34px + 0.71vw, 20px);
  }
  .p-faqcat-fab .p-faqcat-fab__note, .p-faqcat-fab__note {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1;
  }
  /* 相談FAB(bottom:20)の上に積むため、トップへ戻るはさらに上へ */
  body.has-faqcat .c-back-to-top {
    bottom: clamp(115px, 88.94px + 6.95vw, 164px);
  }
  /* ツアー総合入口(/tours/)は一回り大きく(58px・アイコン24px)。tour.js ③ が付ける */
  .p-faqcat-fab--tours {
    width: 3.625rem;
    height: 3.625rem;
  }
  .p-faqcat-fab--tours .c-ico {
    width: 1.5rem;
    height: 1.5rem;
  }
  /* 大きくしたボタンの上端(下から 64+58px)にかぶらないよう、トップへ戻るをさらに上へ */
  body.has-tours-cat .c-back-to-top {
    bottom: clamp(132px, 114.98px + 4.54vw, 164px);
  }
}
.p-faqcat-sheet {
  position: fixed;
  inset: 0;
  z-index: 1250;
  background: rgba(14, 34, 51, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-faqcat-sheet.is-open {
  opacity: 1;
  visibility: visible;
}
.p-faqcat-sheet__panel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  border-radius: clamp(14px, 12.59px + 0.38vw, 18px) clamp(14px, 12.59px + 0.38vw, 18px) 0 0;
  padding: clamp(12px, 9.18px + 0.75vw, 20px) clamp(13px, 9.83px + 0.85vw, 22px) clamp(18px, 13.77px + 1.13vw, 30px);
  max-height: 72vh;
  overflow-y: auto;
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-faqcat-sheet.is-open .p-faqcat-sheet__panel {
  transform: none;
}
.p-faqcat-sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(9px, 7.94px + 0.28vw, 12px);
  font-weight: 700;
}
.p-faqcat-sheet__close {
  width: clamp(26px, 23.18px + 0.75vw, 34px);
  height: clamp(26px, 23.18px + 0.75vw, 34px);
  border-radius: 999px;
  background: var(--bg-2);
  border: none;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.p-faqcat-sheet__close .c-ico {
  width: clamp(15px, 13.24px + 0.47vw, 20px);
  height: clamp(15px, 13.24px + 0.47vw, 20px);
}
.p-faqcat-sheet__list {
  display: grid;
  gap: 4px;
}
.p-faqcat-sheet__list a {
  display: flex;
  align-items: center;
  gap: clamp(6px, 4.59px + 0.38vw, 10px);
  padding: clamp(7px, 5.59px + 0.38vw, 11px) clamp(4px, 3.3px + 0.19vw, 6px);
  font-size: clamp(12px, 11.3px + 0.19vw, 14px);
  font-weight: 600;
  color: var(--ink);
  border-bottom: 1px solid var(--line-2);
}
.p-faqcat-sheet__list a .c-ico {
  width: 16px;
  height: 16px;
  color: var(--brand);
}
.p-faqcat-sheet {
  /* 現在地（ツアー総合入口 /tours/ で tour.js ③ が付ける） */
}
.p-faqcat-sheet__list a.is-current {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.p-faqcat-sheet__list a.is-current .c-ico {
  color: #fff;
}
.p-faqcat-sheet__list a.is-current .c-chip-n {
  background: rgba(255, 255, 255, 0.25);
  color: #fff;
}

/* ============================================================
   汎用ユーティリティ
   ============================================================ */
.u-w-full.u-w-full.u-w-full {
  width: 100%;
}

.u-en-bold.u-en-bold.u-en-bold {
  font-family: var(--font-en);
  font-weight: 700;
}

.u-mt-26.u-mt-26.u-mt-26 {
  margin-top: clamp(16px, 12.48px + 0.94vw, 26px);
}

.u-mt-44.u-mt-44.u-mt-44 {
  margin-top: clamp(26px, 19.66px + 1.69vw, 44px);
}

.u-mb-14.u-mb-14.u-mb-14 {
  margin-bottom: clamp(9px, 7.24px + 0.47vw, 14px);
}

.u-mb-24.u-mb-24.u-mb-24 {
  margin-bottom: clamp(14px, 10.48px + 0.94vw, 24px);
}

.u-note.u-note.u-note {
  font-size: clamp(11px, 10.3px + 0.19vw, 13px);
  color: var(--ink-3);
}

.u-accent-ink.u-accent-ink.u-accent-ink {
  font-weight: 700;
  color: var(--accent-ink);
}

.u-navy.u-navy.u-navy {
  font-weight: 700;
  color: var(--navy-800);
}

.u-center-mt16.u-center-mt16.u-center-mt16 {
  text-align: center;
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}

.u-fs-18.u-fs-18.u-fs-18 {
  font-size: clamp(15px, 13.94px + 0.28vw, 18px);
}

.u-navy-head.u-navy-head.u-navy-head {
  font-weight: 700;
  display: block;
  color: var(--navy-800);
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}

.u-soft-mb6.u-soft-mb6.u-soft-mb6 {
  color: var(--ink-soft);
  margin-bottom: clamp(4px, 3.3px + 0.19vw, 6px);
}

.u-soft-mb8.u-soft-mb8.u-soft-mb8 {
  color: var(--ink-soft);
  margin-bottom: clamp(5px, 3.94px + 0.28vw, 8px);
}

.u-mute-sm.u-mute-sm.u-mute-sm {
  font-size: 12px;
  color: var(--ink-mute);
}

.u-mt-14.u-mt-14.u-mt-14 {
  margin-top: clamp(9px, 7.24px + 0.47vw, 14px);
}

.u-mt-30.u-mt-30.u-mt-30 {
  margin-top: clamp(18px, 13.77px + 1.13vw, 30px);
}

.u-mb-10.u-mb-10.u-mb-10 {
  margin-bottom: clamp(6px, 4.59px + 0.38vw, 10px);
}

.u-mb-26.u-mb-26.u-mb-26 {
  margin-bottom: clamp(16px, 12.48px + 0.94vw, 26px);
}

.u-bold.u-bold.u-bold {
  font-weight: 700;
}

.u-brand-link.u-brand-link.u-brand-link {
  color: var(--brand-ink);
  font-weight: 700;
}

.u-maple.u-maple.u-maple {
  color: var(--maple);
}

.u-mt-48.u-mt-48.u-mt-48 {
  margin-top: clamp(29px, 22.31px + 1.78vw, 48px);
}

/* ============================================================
   テンプレート用の追加分
   値は既存ユーティリティに
   合わせて fluid() 化している。
   ============================================================ */
.u-ink2 {
  color: var(--ink-2);
}

.u-center {
  text-align: center;
}

.u-center-mt32 {
  text-align: center;
  margin-top: clamp(20px, 15.77px + 1.13vw, 32px);
}

.u-mx-auto {
  margin-inline: auto;
}

.u-self-auto {
  align-self: auto;
}

.u-flat {
  border: none;
  box-shadow: none;
}

.u-grid-2 {
  grid-template-columns: repeat(2, 1fr);
}

.u-actions-center {
  display: flex;
  gap: clamp(8px, 6.59px + 0.38vw, 12px);
  justify-content: center;
  flex-wrap: wrap;
}

/* 余白 */
.u-mt-34 {
  margin-top: clamp(20px, 15.07px + 1.31vw, 34px);
}

.u-mt-56 {
  margin-top: clamp(34px, 26.25px + 2.07vw, 56px);
}

.u-mb-18 {
  margin-bottom: clamp(11px, 8.54px + 0.66vw, 18px);
}

.u-mb-22 {
  margin-bottom: clamp(13px, 9.83px + 0.85vw, 22px);
}

.u-mb-28 {
  margin-bottom: clamp(17px, 13.13px + 1.03vw, 28px);
}

.u-mb-32 {
  margin-bottom: clamp(20px, 15.77px + 1.13vw, 32px);
}

.u-mb-52 {
  margin-bottom: clamp(31px, 23.61px + 1.97vw, 52px);
}

.u-mb-56 {
  margin-bottom: clamp(34px, 26.25px + 2.07vw, 56px);
}

.u-my-18 {
  margin: clamp(11px, 8.54px + 0.66vw, 18px) 0;
}

.u-pt-0 {
  padding-top: 0;
}

.u-pb-0 {
  padding-bottom: 0;
}

.u-pt-30 {
  padding-top: clamp(18px, 13.77px + 1.13vw, 30px);
}

/* 幅 */
.u-w-150 {
  width: clamp(105px, 89.15px + 4.23vw, 150px);
}

.u-mw-560 {
  max-width: 560px;
}

.u-mw-640 {
  max-width: 640px;
}

.u-mw-760 {
  max-width: 760px;
}

.u-mw-860 {
  max-width: 860px;
}

/* 注記 */
.u-note-14 {
  font-size: clamp(12px, 11.47px + 0.14vw, 13.5px);
  color: var(--ink-2);
}

.u-note-mt8 {
  font-size: 12px;
  color: var(--ink-3);
  margin-top: clamp(5px, 3.94px + 0.28vw, 8px);
}

.u-note-mt14 {
  font-size: 12.5px;
  color: var(--ink-3);
  margin-top: clamp(9px, 7.24px + 0.47vw, 14px);
}

.u-note-mt16 {
  font-size: 12px;
  color: var(--ink-3);
  margin-top: clamp(10px, 7.89px + 0.56vw, 16px);
}

/* アイコンの symbol 定義を入れる入れ物。描画させないが display:none だと
   Safariで <use> 参照が壊れることがあるため、幅0＋absoluteで逃がす。 */
.u-svg-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* この範囲の中では折り返さない（見出しの「（日本・カナダ）」など） */
.u-nowrap {
  white-space: nowrap;
}

/* 画面には出さず、読み上げとフォームのラベルにだけ使う */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* 050 系（面の下地用）はマーカーには淡すぎるので、この用途だけ一段濃い値を持つ */
:root {
  --hl-gold:#fbe3a6;
  --hl-sky:#c7ebfa;
  --hl-maple:#fbd8c8;
}

.u-hl {
  box-shadow: inset 0 -0.42em 0 var(--hl-gold);
  padding: 0 0.12em 0.04em;
  font-weight: 700;
}
.u-hl--sky {
  box-shadow: inset 0 -0.42em 0 var(--hl-sky);
}
.u-hl--maple {
  box-shadow: inset 0 -0.42em 0 var(--hl-maple);
}
.u-hl {
  /* 面で塗る型。行末で切れると読みにくいので、短い語句にだけ使う */
}
.u-hl--solid {
  box-shadow: none;
  background: var(--hl-gold);
  border-radius: var(--r-xs);
  padding: 0.1em 0.4em;
}
.u-hl--solid.u-hl--sky {
  background: var(--hl-sky);
}
.u-hl--solid.u-hl--maple {
  background: var(--hl-maple);
}

/* ============================================================
   ホバーで変化する要素のトランジション
   すでに自前の transition を持つ要素は対象外(演出を壊さないため)。
   ============================================================ */
.c-btn--brand {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-btn--ghost-white {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-btn--line {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-btn--linegreen {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-btn--primary {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-btn--secondary {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-chip {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-dest-card .c-dest-card__img .c-dest-card__img-img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-lightbox__close {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-lightbox__nav {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-pagination a {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-pcard__main-strong {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-post-card .c-post-card__img .c-post-card__img-img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-rank-list__item {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-rank-list__item .c-rank-list__t {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* 青枠→青塗りに反転するピルになったので background-color も含める
   （ここが上書きしていて背景だけ瞬間切替になっていた）。中の丸矢印は _section.scss 側で持つ */
.c-sec-head__link {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-share-bar__btn--copy {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-sq-card {
  /* ホバーで写真を拡大 */
}
.c-sq-card .c-sq-card__img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-sq-card .c-sq-card__more {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-stepper button {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-tabs__btn {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-tour-card .c-tour-card__img .c-tour-card__img-img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.c-video-embed__btn .c-video-embed__play {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-video-embed__btn .c-video-embed__thumb {
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-breadcrumb .l-breadcrumb__link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-global-nav > .l-global-nav__list > .l-global-nav__list-item > .l-global-nav__link {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-header-cta {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-nav-acc {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-nav-dropdown .l-nav-dropdown__link {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-utility-bar .l-utility-bar__link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-article a:not([class]) {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-csort__opt {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-cta-consult__actions .p-cta-consult__alt {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-feature-link .p-feature-link__chip {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-feature-link .p-feature-link__chip .c-ico {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-feature-link .p-feature-link__go {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-feature-link .p-feature-link__go .c-ico {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-footer-bottom .p-legal-links .p-legal-links__link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-footer-cta .c-btn--primary {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-footer-cta__sub .p-footer-cta__sub-link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-footer-grid .p-footer-grid__link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-footer-subscribe .p-footer-subscribe__btn {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-footer-subscribe__line {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-hcard__attr .p-hcard__attr-link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-hotel-block__ota {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-jrq-restart {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-jrq-back {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-lang-switch {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-opt-check {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-promo-bar__close {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-q2-start__card .p-q2-start__btn {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-q2-start__card .p-q2-start__faces .p-q2-start__faces-img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* 診断のスワイプ画面のボタン */
.p-q2-hand {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-q2-deck__side {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* 診断の結果画面 */
.p-q2-result__more {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-q2-result .p-tsp-share__btn {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-q2-result__retry {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-qs-submit {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-shop-card__cart {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-partner-item {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-partner-item .p-partner-item__ext {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-partner-item .p-partner-item__media .p-partner-item__media-img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-side-cats .p-side-cats__link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-sns-list .p-sns-list__link {
  transition: background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-svc-card {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.p-svc-card .p-svc-card__media .p-svc-card__media-img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-svc-cta__tel {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-toc ol li a {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tour-gallery .p-tour-gallery__link .p-tour-gallery__figure-img, .p-tour-gallery .p-tour-gallery__link img {
  transition: transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tq-back {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tq-retry {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tqx-sub {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tsp-hero__retry a {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tsr__clear {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tsr-chip {
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-tsr-carry {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-contact-tel__main, .p-contact-tel__sub a {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.p-bk-draft-note__clear {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.l-global-nav__list-item > .l-nav-dropdown {
  transition: opacity 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* OSで「視差を減らす」がオンの環境ではトランジションを無効にする指定。
   コメントアウト中。戻すときはこのコメントを外す。
@include mq-reduce{
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
} */
/* 写真付きリンクカードは、リンクにホバーしたとき写真だけ拡大する。
   カード自体は <article> なので :has(a:hover) でリンク側の操作に限定する。
   キーボード操作でも同じ見え方になるよう :focus-within も対象。
   OSの「視差効果を減らす」設定による無効化は入れない。
   c-area-tile は以前から同じ演出を自前で持っているのでここには書かない。 */
.c-tour-card:focus-within .c-tour-card__img-img,
.c-post-card:focus-within .c-post-card__img-img,
.c-dest-card:focus-visible .c-dest-card__img-img,
.c-merit-card--link:focus-within .c-merit-card__thumb,
.p-svc-card:focus-within .p-svc-card__media-img,
.p-partner-item:focus-within .p-partner-item__media-img {
  transform: scale(1.06);
}

@media (hover: hover) {
  .c-tour-card:has(a:hover) .c-tour-card__img-img,
  .c-post-card:has(a:hover) .c-post-card__img-img,
  .c-dest-card:hover .c-dest-card__img-img,
  .c-merit-card--link:has(a:hover) .c-merit-card__thumb,
  .p-svc-card:has(a:hover) .p-svc-card__media-img,
  .p-partner-item:has(a:hover) .p-partner-item__media-img {
    transform: scale(1.06);
  }
}
.c-quote-source__link {
  transition: color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* JRパスの診断の選択肢（枠色・塗りの変化） */
.p-jrq__chip {
  transition: border-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), background-color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), color 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ============================================================
   slick-carousel 適用時の既存スタイル打ち消し
   (本体CSSは assets/vendor/slick/slick.css。カスケード最後に置くこと)
   メディアクエリは mq-down/mq-up mixin を使うこと
   ============================================================ */
/* ---- 共通: slickが生成するドットの土台 ---- */
.p-hgal__dots, .c-card-slider__dots .slick-dots {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  position: static;
  bottom: auto;
}

.p-hgal__dots .p-hgal__dots-item, .p-hgal__dots li, .c-card-slider__dots .slick-dots .slick-dots__item, .c-card-slider__dots .slick-dots li {
  width: auto;
  height: auto;
  margin: 0;
  display: flex;
}

.p-hgal__dots button, .c-card-slider__dots .slick-dots button {
  padding: 0;
  border: 0;
  border-radius: 999px;
  font-size: 0;
  cursor: pointer;
}

/* ---- FV (.p-fv__slides) : fadeモード ---- */
.p-fv__slides {
  position: absolute;
  inset: 0;
}
.p-fv__slides .slick-list, .p-fv__slides .slick-track {
  height: 100%;
}
.p-fv__slides.slick-initialized .p-fv__slide {
  position: relative;
  inset: auto;
  opacity: 1;
  pointer-events: auto;
  transition: none;
  height: 100%;
}

/* ---- カードスライダー (.c-card-slider) ---- */
.c-card-slider__track.slick-initialized {
  display: block;
  gap: 0;
}
.c-card-slider .slick-list {
  margin: 0 -8px;
}
.c-card-slider .slick-slide {
  margin: 0 8px;
  height: auto;
}
.c-card-slider__dots .slick-dots {
  gap: clamp(5px, 3.94px + 0.28vw, 8px);
}
.c-card-slider__dots .slick-dots button {
  width: 8px;
  height: 8px;
  background: rgba(21, 36, 47, 0.22);
  transition: background 0.28s cubic-bezier(0.22, 0.61, 0.36, 1), width 0.28s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.c-card-slider__dots .slick-dots li.slick-active button {
  background: var(--brand);
  width: 22px;
}

/* ---- ホテルギャラリー (.p-hgal) ---- */
.p-hgal__track.slick-initialized {
  display: block;
  overflow: visible;
  scroll-snap-type: none;
  gap: 0;
}
.p-hgal__track.slick-initialized .p-hgal__item {
  flex: none;
  width: auto;
}
.p-hgal__arrow.slick-disabled {
  opacity: 0;
  pointer-events: none;
}
.p-hgal__dots .p-hgal__dots-item button::before, .p-hgal__dots li button::before {
  content: none;
}
.p-hgal__dots .p-hgal__dots-item.slick-active button, .p-hgal__dots li.slick-active button {
  background: var(--brand);
  width: 20px;
}
.flatpickr-calendar {
  font-family: inherit;
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(14, 34, 51, 0.18);
}
.flatpickr-calendar .flatpickr-day.selected {
  background: var(--brand);
  border-color: var(--brand);
  color: #fff;
}
.flatpickr-calendar .flatpickr-day.today {
  border-color: var(--brand);
}
.flatpickr-calendar .flatpickr-months .flatpickr-month, .flatpickr-calendar .flatpickr-current-month {
  color: var(--ink);
}
