/* ヘッダー・FVのスタイルは index.html の <style> にある(共通+TOPのFV) */
/* 文字入りの書き出しがある要素(タイトル・見出し・タイムスケジュール・プラン見出し/料金・ボタン)は画像で表示し、
   内容は alt / u-visually-hidden のテキストでも持つ。〜63.9375rem は SP書き出し、64rem〜 は PC書き出し */

.u-phrase { display: inline-block; }
.u-pc-only-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.c-heading img, .p-cruise__title img, .c-tt__img img, .c-plan__heading img, .c-plan__prices img, .c-btn img, .c-plan__warn img, .p-course__head img { width: 100%; }

/* ==========================================================
   クルーズ(タブパネル)共通
   ========================================================== */
.p-cruise--sunrise { isolation: isolate; background: #f5ecd0 url("../../img/bg-sunrise-tile.webp") center top / max(100%, 90rem) auto repeat-y; }
/* 日の出の装飾: タイトル画像の後ろに置き、下端(水平の切り口)を日付帯の下端に合わせて隠す */
.p-cruise--sunrise .p-cruise__title { position: relative; }
.p-cruise--sunrise .p-cruise__title::before { content: ""; position: absolute; z-index: -1; left: 50%; bottom: 27%; width: 62.5%; aspect-ratio: 1500 / 660; translate: -50% 0; background: url("../../img/bg-sunrise-sun.webp") center bottom / contain no-repeat; pointer-events: none; }
@media (max-width: 1023px) {
  .p-cruise--sunrise .p-cruise__title::before { bottom: 37%; width: 81%; }
}
.p-cruise--panorama { border-radius: 0 0 1.75rem 1.75rem; background: #06548a; }
.p-cruise__top { background: #f7f7f7 url("../../img/bg-panorama-tile.webp") center top / max(100%, 90rem) auto repeat-y; }

/* --- タイトル(タイトル・日時帯・リードを含む書き出し画像) --- */
.p-cruise__intro { padding-top: 7.3125rem; }
.p-cruise--panorama .p-cruise__intro { padding-top: 7.5625rem; }
.p-cruise--sunrise .p-cruise__intro { padding-top: 11.25rem; }

/* --- 見出し(Events / Special Menu) --- */
.c-heading { margin: 0; }

/* --- 船上の催し --- */
.p-events { margin-top: 7.625rem; text-align: center; }
.p-cruise--panorama .p-events { margin-top: 7.4375rem; }
.p-cruise--sunrise .p-events { margin-top: 5rem; }
.p-events__list { display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 23.75rem)); justify-content: center; gap: 2.4375rem 1.875rem; margin-top: 1.875rem; }
.p-events__list--2 { --cols: 2; }
.p-events__list--3 { --cols: 3; }
.p-cruise--sunrise .p-events__list { margin-top: 1.5625rem; }
.p-cruise--panorama .p-events__list { margin-top: 1.8125rem; }
.p-events__list + .p-events__list { margin-top: 2.5625rem; }
.p-events__item img { width: 100%; }
.p-events__image, .c-plan__image { margin-top: 0.625rem; font-size: 0.875rem; font-weight: 400; line-height: 1.25rem; text-align: right; }
.p-events__name { margin-top: 1.0625rem; font-size: 1.75rem; line-height: 2.5rem; letter-spacing: .05em; }
.p-cruise--sunrise .p-events__name { margin-top: 1.25rem; }
.p-events__image + .p-events__name { margin-top: 0; }
.p-events__when { margin-top: 0.25rem; font-size: 1.125rem; line-height: 1.625rem; letter-spacing: .05em; }
/* 日付・コース名を催し物名の上に置く場合 */
.p-events__image + .p-events__date { margin-top: 0; }
.p-events__date + .p-events__name { margin-top: 0.25rem; }
/* 写真2枚に共通のキャプション(乗下船時 → ブラスバンド演奏 の順) */
.p-events__caption { margin-top: 1.0625rem; text-align: center; }
.p-events__caption .p-events__name { margin-top: 0; }

/* --- お料理(パノラマ) --- */
.p-menu { margin-top: 8rem; padding-bottom: 7.625rem; text-align: center; }
.p-menu__body { width: 23.75rem; margin: 1.875rem auto 0; }
.p-menu__body .p-events__image { margin-top: 0.8125rem; }
.p-menu__text { margin-top: -0.25rem; width: 31.25rem; margin-left: -3.75rem; font-size: 1.75rem; line-height: 2.5rem; letter-spacing: .05em; }
.p-cruise__alert { padding: 1.125rem 1.25rem 1.25rem; background: var(--c-red); color: #fff; font-size: 1.625rem; line-height: 2.125rem; text-align: center; }

/* ==========================================================
   タイムスケジュール(枠・見出し・行まで含む書き出し画像)
   ========================================================== */
.c-tt__img { width: calc(100% + 0.375rem); margin-left: -0.25rem; }
.c-tt--countdown { margin-top: 7.1875rem; }
.c-tt--sunrise { margin-top: 6rem; }
.c-tt--sunrise .c-tt__img { width: calc(100% + 0.4375rem); }
.c-tt--sunshine .c-tt__img { width: calc(100% + 0.5rem); }
.c-tt--twilight .c-tt__img { width: calc(100% + 0.5rem); margin-left: 0; }

/* ==========================================================
   プラン
   ========================================================== */
.p-plans { padding-bottom: 7.5625rem; }
.c-plan { display: grid; grid-template-columns: minmax(0, 550fr) minmax(0, 560fr); column-gap: 5.625rem; align-items: start; margin-top: 7.5rem; }
.p-cruise--countdown .c-plan:first-child { margin-top: 7.3125rem; }
.p-cruise--sunrise .c-plan:first-child { margin-top: 6rem; }
.p-course--sunshine .c-plan:first-child { margin-top: 7.25rem; }
.p-course--twilight .c-plan:first-child { margin-top: 7.0625rem; }
.c-plan__media { position: relative; padding-top: 2.625rem; }
.c-plan--sunrise .c-plan__media, .c-plan--sunshine .c-plan__media, .c-plan--twilight .c-plan__media { padding-top: 1.8125rem; }
.c-plan__photo img { width: 100%; }
/* プラン写真のスライダー */
.c-slider { position: relative; }
.c-slider__list { position: relative; display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; }
.c-slider__list::-webkit-scrollbar { display: none; }
.c-slider__slide { flex: 0 0 100%; scroll-snap-align: start; }
.c-slider__slide img { aspect-ratio: 1100 / 786; object-fit: cover; }
.c-slider__dots { display: none; }
/* ドット: 写真の下・左寄せ(右の「※イメージ」と同じ行)。色はプランの配色に合わせる */
.has-js .c-slider__dots { display: flex; margin: 0.25rem 0 0 -0.5rem; }
/* ドットと同じ行の右端に「※イメージ」を置く */
.has-js .c-plan__media:has(.c-slider) .c-plan__image { margin-top: -1.375rem; line-height: 1.25rem; }
.c-slider__dot { --dot: #fff; --dot-on: var(--c-blue-text); display: grid; place-items: center; width: 1.5rem; height: 1.5rem; padding: 0; border: 0; background: none; cursor: pointer; }
.c-slider__dot::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--dot); }
.c-slider__dot[aria-current="true"]::before { background: var(--dot-on); }
.c-plan--countdown .c-slider__dot { --dot: #fff; --dot-on: #e5c259; }
.c-plan--sunrise .c-slider__dot { --dot: #262626; --dot-on: #e51414; }
.c-plan--sunshine .c-slider__dot { --dot: #262626; --dot-on: var(--c-blue-text); }
.c-plan--twilight .c-slider__dot { --dot: #fff; --dot-on: var(--c-blue-text); }
.c-plan__badge { position: absolute; top: 0; left: 82.4%; width: 9.5625rem; }
.c-plan--countdown .c-plan__badge { top: -0.5rem; left: 80.5%; width: 9.125rem; }
.c-plan--sunshine .c-plan__badge, .c-plan--twilight .c-plan__badge { top: -0.375rem; left: 83.8%; }
.c-plan__image { margin-top: 0.6875rem; color: var(--tx); }
.c-plan__notes { margin-top: 0.875rem; font-family: var(--ff-sans); font-size: 0.875rem; font-weight: 400; line-height: 1.375rem; letter-spacing: .03em; }
.c-plan__warn { width: 21rem; margin-top: 0.6875rem; }
.c-plan__body { color: var(--tx); }
.c-plan__heading { margin: 0 0 0 0.1875rem; }
.c-plan--sunrise .c-plan__heading { margin-left: -0.25rem; width: calc(100% + 2px); }
.c-plan--sunshine .c-plan__heading, .c-plan--twilight .c-plan__heading { margin-left: 0; width: calc(100% + 2px); }
.c-plan__prices { width: 25.375rem; margin: 0.625rem auto 0; }
.c-plan__extra { margin-top: 0.625rem; font-size: 1.125rem; font-weight: 400; line-height: 1.625rem; letter-spacing: .05em; text-align: center; }
.c-plan__menu { display: grid; gap: 0.625rem; margin-top: 1.9375rem; }
.c-plan__menu-row { display: grid; grid-template-columns: 8rem 1fr; column-gap: 1.25rem; }
.c-plan__menu-term { position: relative; font-size: 1.625rem; line-height: 2.3125rem; letter-spacing: .05em; white-space: nowrap; }
.c-plan__menu-term--wide { letter-spacing: .55em; }
.c-plan__menu-term::after { content: ""; position: absolute; top: 0.3125rem; right: 0; width: 1px; height: 1.75rem; background: currentColor; opacity: .6; }
.c-plan__menu-desc { margin-top: 0.375rem; font-size: 1rem; font-weight: 400; line-height: 1.4375rem; letter-spacing: .03em; }
.c-plan__menu-desc--food { font-size: 1.125rem; line-height: 1.625rem; }
.c-plan__dish { display: block; padding-left: 1em; text-indent: -1em; }
.c-plan__nowrap { display: inline-block; text-indent: 0; }
.c-plan__drink { display: block; }
.c-plan__drink + .c-plan__drink { margin-top: 0.625rem; }
.c-plan__fit br { display: none; }
@media (min-width: 1340px) {
  .c-plan__fit { white-space: nowrap; letter-spacing: -.04em; }
  .c-plan__fit br { display: inline; }
}

/* --- ボタン(書き出し画像) --- */
.c-btn { display: block; margin-top: 1.8125rem; transition: opacity .3s; }
.c-btn:hover { opacity: .7; }
/* 予約開始前: グレー表示で押せなくする(開始日時を過ぎたら main.js が is-prebook を外す) */
.c-btn__prebook { display: none; }
.is-prebook .js-reserve { position: relative; pointer-events: none; cursor: default; }
.is-prebook .js-reserve .c-btn__prebook { position: absolute; inset: 0; display: grid; place-items: center; padding: 0 0.5rem; background: #666; color: #fff; font-family: var(--ff-sans); font-size: 1.125rem; font-weight: 500; letter-spacing: .05em; text-align: center; }
/* 影の余白(書き出し画像の周囲0.8125rem@2x)を除いたボタンの形に合わせる */
.is-prebook .c-btn--sunrise .c-btn__prebook, .is-prebook .c-btn--sunshine .c-btn__prebook, .is-prebook .c-btn--twilight .c-btn__prebook { inset: 5.91% 1.12%; }
@media (max-width: 767px) {
  .is-prebook .js-reserve .c-btn__prebook { font-size: 0.9375rem; }
  /* お料理の品目: 23.4375rem(スクロールバー分の狭まりも含む)で「ゆく年くる年 前菜の盛り合わせ」が1行に収まるよう字間を詰める */
  .c-plan__dish { letter-spacing: -.04em; }
  .has-js .c-slider__dots { margin-top: 2px; }
  .has-js .c-plan__media:has(.c-slider) .c-plan__image { margin-top: -1.25rem; line-height: 1.125rem; }
  /* SPのカウントダウンは写真の中・左下 */
  .has-js .c-plan--countdown .c-slider__dots { position: absolute; bottom: 0.25rem; left: 0.25rem; margin: 0; }
  .has-js .c-plan--countdown .c-plan__media:has(.c-slider) .c-plan__image { margin-top: 0.25rem; line-height: 1rem; }
  /* ドットの行と注記が重ならないよう、注記はドットの下の行に */
  .has-js .c-plan:not(.c-plan--countdown) .c-plan__media:has(.c-slider) .c-plan__notes { margin-top: 0.25rem; padding-right: 0; }
}
.c-btn--sunrise, .c-btn--sunshine, .c-btn--twilight { width: calc(100% + 1.25rem); margin: 1.1875rem -0.625rem -0.625rem; }
.c-btn:not([class*="c-btn--"]) { width: calc(100% + 1.1875rem); margin: 1.375rem 0 -0.4375rem -0.4375rem; }

/* --- 電話番号コピーの通知(PC) --- */
.c-toast { position: fixed; z-index: 20; left: 50%; bottom: 7.5rem; translate: -50% 1rem; padding: 0.75rem 1.5rem; border-radius: 0.375rem; background: rgb(20 20 20 / .9); color: #fff; font-family: var(--ff-sans); font-size: 0.9375rem; font-weight: 400; opacity: 0; pointer-events: none; transition: opacity .3s, translate .3s; }
.c-toast.is-show { opacity: 1; translate: -50% 0; }
.c-toast:empty { padding: 0; }

/* --- 注意事項 --- */
.c-notes { margin-top: 7.375rem; padding-top: 2.4375rem; border-top: 1px solid currentColor; color: var(--tx); }
.c-notes--sunrise { margin-top: 7.625rem; }
.c-notes--countdown { border-top: 2px solid #9fa1ad; }
.c-notes--sunshine { border-top-color: #3f4040; }
.c-notes--sunshine .c-notes__list, .c-notes--twilight .c-notes__list { letter-spacing: 0; }
.c-notes__list { font-family: var(--ff-sans); font-size: 0.875rem; font-weight: 400; line-height: 1.75rem; letter-spacing: .03em; }

/* ==========================================================
   パノラマ: コース(PCはタイムスケジュール画像にコース名・日時帯が入っている)
   ========================================================== */
.p-course { --tx: var(--c-text); padding-top: 7.375rem; color: var(--tx); }
.p-course--twilight { --tx: #fff; padding-top: 7.6875rem; }
.p-course--sunshine { background: #eef8fa url("../../img/bg-sunshine-tile.webp") center top / max(100%, 90rem) auto repeat-y; }
.p-course--twilight { background: #06548a url("../../img/bg-twilight-tile.webp") center top / max(100%, 90rem) auto repeat-y; }
.p-course .p-plans { padding-bottom: 7.75rem; }
.p-course__head { margin: 0; }

/* ==========================================================
   フッター・追従CTA
   ========================================================== */
.l-footer { position: relative; margin-top: -3.3125rem; color: #fff; text-align: center; }
.l-footer__visual img { width: 100%; }
.l-footer__copy { height: 3.5rem; padding-top: 1.125rem; background: var(--c-footer); font-family: var(--ff-sans); font-size: 0.875rem; font-weight: 400; line-height: 1.25rem; }
.l-footer__copy small { font-size: inherit; }
.p-cta { position: fixed; z-index: 10; inset: auto 0 0; height: var(--cta-h); overflow: hidden; transition: opacity .4s, translate .4s; }
.has-js .p-cta:not(.is-show) { opacity: 0; translate: 0 100%; visibility: hidden; transition: opacity .4s, translate .4s, visibility 0s .4s; }
.p-cta__inner { display: flex; align-items: flex-start; height: 100%; }
.p-cta__label { flex: 1; display: grid; place-items: center; height: 100%; }
.p-cta__label picture { width: 15.625rem; max-width: 80%; }
.p-cta__label img { width: 100%; filter: drop-shadow(0 0 0.25rem rgb(0 0 0 / .8)) drop-shadow(0 0 0.625rem rgb(0 0 0 / .5)); }
.p-cta__label { pointer-events: none; }
.p-cta__list { position: relative; flex: 0 0 66.0625rem; height: 100%; }
.p-cta__list li { position: absolute; top: 0; }
.p-cta__list li:nth-child(1) { left: 0; width: 21.875rem; }
.p-cta__list li:nth-child(2) { left: 21.4375rem; width: 23.125rem; }
.p-cta__list li:nth-child(3) { right: 0; width: 22.5rem; }
.p-cta__btn { display: block; transition: opacity .3s; }
.p-cta__btn img { width: 100%; }
.p-cta__btn:hover { opacity: .7; }
.p-cta__btn--countdown {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.875rem;
  height: 4.0625rem;
  margin-top: 0.75rem;
  border-radius: 0.875rem 0.875rem 0 0;
  background: linear-gradient(100deg, #b79d68, #f3e6c2 25%, #e2cd9a 55%, #f6ecd0 80%, #c2a670);
  color: var(--c-text);
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-decoration: none;
}
.p-cta__btn--countdown::after { content: ""; width: 1.875rem; height: 0.5rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 8'%3E%3Cpath d='M0 7.5h29.5L22 1' fill='none' stroke='%23262626'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }

@media (prefers-reduced-motion: reduce) {
  .p-cta, .c-btn, .p-cta__btn { transition: none; }
}

/* ==========================================================
   タブレット(768〜63.9375rem)・SP: SP書き出しの画像を使う
   ========================================================== */
@media (max-width: 1439px) {
  body { --cta-h: 5.35vw; }
  .p-cta { height: 5.35vw; }
  .p-cta__list { flex-basis: 73.4vw; }
  .p-cta__list li:nth-child(1) { width: 33.11%; }
  .p-cta__list li:nth-child(2) { left: 32.45%; width: 35%; }
  .p-cta__list li:nth-child(3) { width: 34.06%; }
  .p-cta__btn--countdown { height: 4.5vw; margin-top: .83vw; font-size: 1.67vw; }
}
@media (max-width: 1023px) {
  /* --- 追従CTA: タブレット・SPは画面上部に固定(SP書き出し画像) --- */
  body { padding-bottom: 0; }
  .p-cta { inset: 0 0 auto; height: auto; padding-bottom: 0.75rem; background: linear-gradient(180deg, rgb(168 166 164 / .96), rgb(111 111 111 / .96) 12%, rgb(70 68 62 / .96) 55%, rgb(52 49 40 / .96)); }
  .has-js .p-cta:not(.is-show) { translate: 0 -100%; }
  .p-cta__inner { flex-direction: column; align-items: center; }
  .p-cta__label { flex: none; height: auto; padding-top: 1.375rem; }
  .p-cta__label picture { width: 11.75rem; max-width: none; }
  .p-cta__list { position: static; display: grid; flex: none; grid-template-columns: repeat(3, 1fr); gap: 0 0.2813rem; width: 97.6%; max-width: 30rem; height: auto; margin-top: 0.25rem; }
  .p-cta__list li, .p-cta__list li:nth-child(n) { position: static; width: auto; }
  .p-cta__btn--countdown { display: block; height: auto; margin: 0; border-radius: 0; background: none; }
  .p-cta__btn--countdown::after { content: none; }
  .p-cta__btn-text { display: none; }
  .p-cta__btn-img img { width: 100%; }
  /* フッター: SP書き出しはコピーライト入り */
  .l-footer__copy { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .p-panels { background: linear-gradient(#120c10 0 1.875rem, transparent 1.875rem); }
  .p-cruise { border-radius: 1.5625rem; }
  .p-cruise__title, .c-heading, .c-tt__img, .c-tt, .p-course__head { max-width: 30rem; margin-inline: auto; }
  .p-cruise__intro, .p-cruise--sunrise .p-cruise__intro, .p-cruise--panorama .p-cruise__intro { padding-top: 3.625rem; }
  .p-events, .p-cruise--sunrise .p-events, .p-cruise--panorama .p-events { margin-top: 3.8125rem; }
  .p-events__list, .p-events__list--3 { display: flex; flex-wrap: wrap; justify-content: center; gap: 2.5rem 1.875rem; }
  .p-cruise--sunrise .p-events__list, .p-cruise--panorama .p-events__list, .p-events__list { margin-top: 1.25rem; }
  .p-events__item { width: min(23.75rem, calc(50% - 0.9375rem)); }
  .p-cruise__alert { text-wrap: balance; }
  .c-tt__img, .c-tt--sunrise .c-tt__img, .c-tt--sunshine .c-tt__img, .c-tt--twilight .c-tt__img { width: 100%; margin-left: 0; }
  .c-tt--countdown, .c-tt--sunrise { margin-top: 3.75rem; }
  .c-tt--sunshine, .c-tt--twilight { margin-top: 1.25rem; }
  .p-course, .p-course--twilight { padding-top: 3.75rem; }
  /* プラン: 1列。写真→見出し→料金→メニュー */
  .c-plan, .p-cruise--countdown .c-plan:first-child, .p-cruise--sunrise .c-plan:first-child, .p-course--sunshine .c-plan:first-child, .p-course--twilight .c-plan:first-child { grid-template-columns: minmax(0, 1fr); row-gap: 1.25rem; max-width: 30rem; margin: 5rem auto 0; }
  .c-plan__media, .c-plan--sunrise .c-plan__media, .c-plan--sunshine .c-plan__media, .c-plan--twilight .c-plan__media { padding-top: 0; }
  .c-plan__heading, .c-plan--sunrise .c-plan__heading, .c-plan--sunshine .c-plan__heading, .c-plan--twilight .c-plan__heading { width: 100%; margin: 0; }
  .c-plan__prices, .c-plan__prices.u-sptb { width: 88.4%; margin: 0.9375rem auto 0; }
  .c-plan__prices + .c-plan__prices { margin-top: 0; }
  .c-btn, .c-btn--sunrise, .c-btn--sunshine, .c-btn--twilight, .c-btn:not([class*="c-btn--"]) { width: calc(100% + 0.8125rem); margin: 1.375rem -0.3125rem 0; }
  .c-plan__badge { top: -1.125rem; right: -0.4375rem; left: auto; width: 43%; }
  .c-plan--countdown .c-plan__badge { top: -1.125rem; left: auto; width: 43%; }
  .c-plan--sunrise .c-plan__badge { top: -0.9375rem; right: -2px; width: 32%; }
  .c-plan--sunshine .c-plan__badge, .c-plan--twilight .c-plan__badge { top: -0.375rem; right: -0.25rem; left: auto; width: 31%; }
}
@media (max-width: 767px) {
  /* --- 追従CTA: SPは画面上部に固定(書き出し画像) --- */

  /* --- タブパネル --- */
  .p-cruise--sunrise, .p-cruise__top, .p-course--sunshine, .p-course--twilight { background-size: 230% auto; }
  .p-cruise--sunrise { background-image: url("../../img/bg-sunrise-sp@2x.webp"), url("../../img/bg-sunrise-tile.webp"); background-size: 100% auto, 230% auto; }
  .p-cruise--sunrise .p-cruise__title::before { content: none; }
  .p-cruise--countdown { background: linear-gradient(180deg, #061b54, #002d66 22%, #003068 45%, #00386d 67%, #082961); }
  .p-cruise__title, .c-heading, .c-tt__img, .c-tt, .p-course__head { max-width: none; }

  /* --- 船上の催し --- */
  .p-events__list, .p-events__list--3 { flex-direction: column; align-items: center; gap: 1.625rem; }
  .p-events__list + .p-events__list { margin-top: 1.625rem; }
  .p-events__item { width: min(18.75rem, 100%); }
  .p-events__name, .p-cruise--sunrise .p-events__name { margin-top: 1.25rem; font-size: 1.125rem; line-height: 1.75rem; }
  .p-events__image + .p-events__name { margin-top: 0; }
  .p-events__when { margin-top: 2px; font-size: 0.8125rem; line-height: 1.25rem; }
  .p-events__image + .p-events__date { margin-top: 0; }
  .p-events__date + .p-events__name { margin-top: 2px; }
  .p-events__caption { margin-top: 1rem; }
  .p-events__image, .c-plan__image { margin-top: 0.25rem; font-size: 0.625rem; line-height: 1rem; }
  .p-menu { margin-top: 3.75rem; padding-bottom: 3.125rem; }
  .p-menu__body { width: min(18.75rem, 100%); margin-top: 1.25rem; }
  .p-menu__body .p-events__image { margin-top: 0.25rem; }
  .p-menu__text { width: auto; margin: 0; font-size: 1.125rem; line-height: 2rem; }
  .p-cruise__alert { padding: 0.8125rem 1rem; font-size: 0.875rem; line-height: 1.375rem; }

  /* --- プラン --- */
  .c-plan, .p-cruise--countdown .c-plan:first-child, .p-cruise--sunrise .c-plan:first-child, .p-course--sunshine .c-plan:first-child, .p-course--twilight .c-plan:first-child { max-width: none; }
  .c-plan__notes { margin-top: -1rem; padding-right: 3.75rem; font-size: 0.625rem; line-height: 1rem; letter-spacing: 0; }
  .c-plan__warn { width: 15.4375rem; margin-top: 0.375rem; }
  .c-plan__extra { margin-top: 0.5rem; font-size: 0.9375rem; line-height: 1.375rem; }
  .c-plan__menu { gap: 0.625rem; width: 88%; margin: 1.1875rem auto 0; }
  .c-plan__menu-row { grid-template-columns: 4.9375rem 1fr; column-gap: 0; }
  .c-plan__menu-term { font-size: 0.875rem; line-height: 1.25rem; }
  .c-plan__menu-term::after { top: 2px; right: 0.75rem; height: 1rem; }
  .c-plan__menu-desc, .c-plan__menu-desc--food { margin-top: 0; font-size: 0.875rem; line-height: 1.25rem; }
  .c-notes, .c-notes--sunrise { margin-top: 3.75rem; padding-top: 1.875rem; }
  .c-notes__list { font-size: 0.625rem; line-height: 1.25rem; }
  .p-plans, .p-course .p-plans { padding-bottom: 3.125rem; }

  /* --- フッター(コピーライト入りの書き出し画像) --- */
  .l-footer { margin-top: -1.5625rem; }
}
