@charset "UTF-8";
/* リニューアルのトップページ（案）。
   共通の決まり（renewal.css）の文字の大きさ・余白・見出しの形・色をそのまま使い、
   このファイルでトップだけの見せ方を足す。
   ・一番うしろの背景だけを宇宙柄にする（今のサイトと同じ背景画像）
   ・その上に乗る枠は「白い面＋濃い文字」（半透明のガラスは使わない）
   ・動きは、ファーストビューの打ち上げ（1回だけ・最後の状態で止まる）と、
     白い面が画面に入るときに軽く現れるものだけ。 */

/* ======== 一番うしろの背景（宇宙柄） ======== */
.r-top {
  color: var(--c-text);
  isolation: isolate;
  position: relative;
}
.r-top > * { position: relative; z-index: 1; }
.r-top > .r-sky {
  background: #050a14 url(../images/background/space-top.webp) center center / cover no-repeat;
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: 0;
}
@media screen and (max-width: 959px) {
  .r-top > .r-sky { background-image: url(../images/background/space-top-sp.webp); }
}
/* 中身の横幅（画面の中央に寄りすぎないよう、共通の決まりより少し広げる） */
.r-top .r-container { max-width: 1280px; padding: 0 var(--s-3); }
@media screen and (max-width: 959px) {
  .r-top .r-container { padding: 0 var(--s-2); }
}

/* ======== 1. ファーストビュー ======== */
.r-fv { position: relative; }
.r-fv__stage { overflow: hidden; position: relative; }
.r-fv__media { position: relative; }
.r-fv__image { display: block; height: auto; transform-origin: 50% 42%; width: 100%; }
/* パソコンでは、画面の高さに合わせて少し低くする（帯と次のカードが下に少し見えるように）。
   写真の下側だけを切るので、ロケットと発射地点は必ず残る。 */
@media screen and (min-width: 960px) {
  .r-fv__stage { height: clamp(360px, min(50vw, 68vh), 1100px); overflow: hidden; }
  .r-fv__media { left: 0; position: absolute; top: 0; width: 100%; }
}

.r-fv__logo {
  height: auto;
  left: 5.3964%;
  /* 画面が低いときも、ロゴが下で切れないように高さにも上限を付ける */
  max-height: 66%;
  max-width: min(34.5103%, 620px);
  position: absolute;
  top: 15.3897%;
  width: auto;
  z-index: 3;
}
/* 「想いは、宇宙へ」と、その下の1行。右端が切れないよう right で位置を決める */
.r-fv__copy-box {
  bottom: 5.5%;
  position: absolute;
  right: 5%;
  width: min(23.2%, 460px);
  z-index: 3;
}
.r-fv__copy { display: block; height: auto; width: 100%; }
.r-fv__sub {
  color: #fff;
  font-size: clamp(11px, 1.02vw, 19px);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
  margin-top: 0.7em;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.85);
}
@media screen and (max-width: 959px) {
  /* ロゴは今のトップと同じく写真の下に半分はみ出す。はみ出すぶんの高さを下に確保する */
  .r-fv { padding-bottom: 30vw; }
  .r-fv__logo { bottom: -24.6036%; left: 0; margin: 0 auto; max-height: none; max-width: none; right: 0; top: auto; width: 54.0146%; }
  .r-fv__copy-box { bottom: auto; left: 4.9%; right: auto; top: 17.9%; width: 48.6%; }
  .r-fv__sub { font-size: clamp(10px, 3vw, 14px); }
}

/* ---- 動き（JavaScript が動くときだけ。動かないときは最初からこの見た目） ----
   1. 背景が数秒かけてごくわずかにズームする（1.000 → 1.035）
   2. ロゴと「想いは、宇宙へ」が1回だけふわっと現れる（0.5秒）
   どちらも1回だけで、終わったらその状態で止まる。 */
.js-fv-anim .r-fv__image { animation: r-fv-zoom 7s cubic-bezier(0.25, 0.6, 0.3, 1) 0.2s both; }
.js-fv-anim .r-fv__logo { animation: r-fv-appear 0.5s var(--motion-ease) 0.2s both; }
.js-fv-anim .r-fv__copy-box { animation: r-fv-appear 0.5s var(--motion-ease) 0.55s both; }
.js-fv-anim .r-fv__image,
.js-fv-anim .r-fv__logo,
.js-fv-anim .r-fv__copy-box { animation-play-state: paused; }
.js-fv-go .r-fv__image,
.js-fv-go .r-fv__logo,
.js-fv-go .r-fv__copy-box { animation-play-state: running; }
@keyframes r-fv-zoom {
  from { transform: scale(1); }
  to { transform: scale(1.035); }
}
@keyframes r-fv-appear {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .js-fv-anim .r-fv__image,
  .js-fv-anim .r-fv__logo,
  .js-fv-anim .r-fv__copy-box { animation: none; opacity: 1; transform: none; }
}

/* ======== 2. 営業時間の帯 ========
   左：本日の営業状況（営業中は明るい緑の面、それ以外は暗い面。色だけでなく文言とランプでも分かる）
   中央：営業時間を1行で大きく＋休館日
   右：主な導線（入場料金／団体受付） */
.r-strip {
  background: var(--c-bg-tint);
  border-top: 4px solid var(--c-sky);
}
.r-strip__inner {
  align-items: stretch;
  display: grid;
  gap: 0 var(--s-4);
  grid-template-columns: auto minmax(0, 1fr) auto;
  margin: 0 auto;
  max-width: 1280px;
  min-height: 0;
  padding: 0 var(--s-3) 0 0;
}
.r-strip__hours {
  align-self: center;
  color: var(--c-navy);
  min-width: 0;
  padding: 12px 0;
}
.r-strip__time {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 4px var(--s-2);
  margin: 0;
}
.r-strip__num {
  font-size: var(--f-h3);       /* 24px（大きくしすぎない） */
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.1;
  white-space: nowrap;
}
.r-strip__last { font-size: var(--f-body); font-weight: 700; white-space: nowrap; }
.r-strip__closed {
  color: var(--c-text);
  font-size: var(--f-note);
  line-height: 1.6;
  margin: 2px 0 0;
}
.r-strip__closed span { display: inline-block; }  /* 「／」の後ろでだけ改行する */
.r-strip__closed b { font-weight: 700; margin-right: 0.8em; }
.r-strip__actions { align-items: center; display: flex; flex-shrink: 0; gap: var(--s-2); }

/* 営業状況（帯の左端） */
.r-status {
  display: flex;
  flex-direction: column;
  gap: 2px;
  justify-content: center;
  min-width: 260px;
  padding: 10px var(--s-4) 10px var(--s-3);
  transition: background-color 0.3s var(--motion-ease), color 0.3s var(--motion-ease);
}
.r-status__date { font-size: var(--f-note); font-weight: 700; letter-spacing: 0.06em; min-height: 1.5em; }
.r-status__main { align-items: center; display: flex; gap: 10px; min-height: 1.3em; }
.r-status__lamp { border-radius: 50%; flex: none; height: 12px; width: 12px; }
.r-status__label { font-size: 1.1rem; font-weight: 900; letter-spacing: 0.06em; line-height: 1.25; }
.r-status__note { font-size: var(--f-note); font-weight: 500; min-height: 1.5em; }
/* 判定前も、文字が入ったときと同じ高さを取っておく（表示されたときにガタつかせない） */
.r-status__date:empty::before,
.r-status__label:empty::before,
.r-status__note:empty::before { content: "\00a0"; }
/* 判定前（読み込み中・JavaScript なし）は暗い面のまま中身を出さない */
.r-status { background: #1f2a36; color: #fff; }
.r-status .r-status__lamp { background: #8f9aa6; }
/* 営業中 */
.r-status[data-status="open"] { background: #7fe0b4; color: #0b3b2a; }
.r-status[data-status="open"] .r-status__lamp {
  animation: r-lamp 2.4s ease-in-out infinite;
  background: #0f8a55;
  box-shadow: 0 0 0 5px rgba(15, 138, 85, 0.2);
}
@keyframes r-lamp { 50% { box-shadow: 0 0 0 9px rgba(15, 138, 85, 0); } }
@media (prefers-reduced-motion: reduce) {
  .r-status[data-status="open"] .r-status__lamp { animation: none; }
}

@media screen and (max-width: 1100px) {
  .r-strip__inner { grid-template-columns: minmax(0, 1fr); padding: 0; }
  .r-status {
    align-items: center;
    column-gap: var(--s-2);
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    min-width: 0;
    padding: var(--s-2);
  }
  .r-status__label { font-size: 1rem; }
  .r-status__note { width: 100%; }
  .r-strip__hours { padding: var(--s-2) var(--s-2) 0; }
  .r-strip__num { font-size: var(--f-h3); }
  .r-strip__actions { display: grid; gap: var(--s-1); grid-template-columns: 1fr 1fr; padding: var(--s-2); }
}
@media screen and (max-width: 520px) {
  .r-strip__actions { grid-template-columns: minmax(0, 1fr); }
}

/* ======== 3. 3つの枠（白い面） ======== */
.r-deck { padding: var(--s-4) 0 var(--s-5); }
.r-deck__grid {
  align-items: start;
  display: grid;
  gap: var(--s-3);
  grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
}
@media screen and (max-width: 959px) {
  .r-deck { padding: var(--s-4) 0; }
  .r-deck__grid { grid-template-columns: minmax(0, 1fr); }
}

.r-panel {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  padding: var(--s-3);
}
.r-panel--cal { grid-row: span 2; }
@media screen and (max-width: 959px) {
  .r-panel--cal { grid-row: auto; order: 3; }
  .r-panel--news { order: 1; }
  .r-panel--event { order: 2; }
}

/* 面の見出し（上に水色のバー＋日本語の見出し） */
.r-panel__head {
  align-items: baseline;
  border-bottom: 2px solid var(--c-line);
  display: flex;
  gap: var(--s-2);
  justify-content: space-between;
  margin-bottom: var(--s-3);
  padding-bottom: var(--s-2);
  padding-top: var(--s-2);
  position: relative;
}
.r-panel__head::before {
  background: var(--c-sky);
  border-radius: 2px;
  content: "";
  height: 4px;
  left: 0;
  position: absolute;
  top: 0;
  width: 40px;
}
.r-panel__title {
  color: var(--c-navy);
  font-size: var(--f-h3);
  font-weight: 700;
  line-height: 1.3;
}
.r-panel__more {
  color: var(--c-navy);
  flex-shrink: 0;
  font-size: var(--f-note);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
  white-space: nowrap;
}
.r-panel__more:hover { color: #0a6fa6; }

/* カレンダー（罫線のある、ふつうのカレンダーの形） */
.r-cal .p-calendar__contents { display: block; gap: 0; grid-row: auto; grid-template-rows: none; }
.r-cal .p-calendar__caption { margin-bottom: var(--s-2); }
.r-cal .p-calendar__year,
.r-cal .p-calendar__month-name { color: var(--c-text); font-size: var(--f-note); }
.r-cal .p-calendar__month { color: var(--c-navy); font-size: 1.3rem; }
.r-cal .p-calendar__button::before { border-color: var(--c-navy); }
.r-cal .p-calendar__row { border-left: 1px solid var(--c-line); gap: 0; }
.r-cal .p-calendar__row--weekend { border: 0; margin-bottom: 0; }
.r-cal .p-calendar__weekday {
  border-bottom: 2px solid var(--c-navy);
  color: var(--c-navy);
  font-size: var(--f-note);
  font-weight: 700;
  padding-bottom: 4px;
}
.r-cal .p-calendar__weekday--Sun { color: #b40000; }
.r-cal .p-calendar__weekday--Sat { color: #0a6fa6; }
.r-cal .p-calendar__day {
  aspect-ratio: 1 / 1;
  border-bottom: 1px solid var(--c-line);
  border-radius: 0;
  border-right: 1px solid var(--c-line);
  color: var(--c-text);
  font-size: var(--f-note);
  padding: 0;
}
.r-cal .p-calendar__day--closed-day {
  background: var(--c-navy);
  color: #fff;
  font-weight: 700;
}
.r-cal .p-calendar__day--events {
  background: #d9f1fb;
  box-shadow: inset 0 -4px 0 var(--c-sky);
  color: var(--c-navy);
  font-weight: 700;
}
.r-cal .p-calendar__link--events { cursor: pointer; }
.r-cal__legend {
  color: var(--c-text);
  display: flex;
  flex-wrap: wrap;
  font-size: var(--f-note);
  gap: var(--s-2);
  margin-top: var(--s-2);
}
.r-cal__legend span { align-items: center; display: inline-flex; gap: 6px; }
.r-cal__legend i {
  border: 1px solid var(--c-line);
  display: inline-block;
  height: 14px;
  width: 14px;
}
.r-cal__legend i.is-event { background: #d9f1fb; box-shadow: inset 0 -4px 0 var(--c-sky); }
.r-cal__legend i.is-closed { background: var(--c-navy); }

/* 新着情報・イベント情報（文字だけ・1件1行） */
.r-list__item { border-bottom: 1px solid var(--c-line); }
.r-list__item:last-child { border-bottom: 0; }
.r-list__link {
  align-items: center;
  color: var(--c-text);
  display: grid;
  gap: 4px var(--s-2);
  grid-template-columns: auto auto minmax(0, 1fr);
  padding: 12px 0;
  transition: color 0.2s var(--motion-ease);
}
.r-list__link:hover { color: var(--c-navy); }
.r-list__link:hover .r-list__title { text-decoration: underline; text-underline-offset: 4px; }
.r-list__date {
  color: var(--c-text);
  font-size: var(--f-note);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.r-list__tag {
  background: var(--c-bg-tint);
  border-radius: 4px;
  color: #1e1e1e;
  font-size: 0.6rem;
  font-weight: 700;
  justify-self: start;
  line-height: 1.8;
  min-width: 96px;
  padding: 0 10px;
  text-align: center;
  white-space: nowrap;
}
/* 長いタイトルは末尾を「…」で省略して、1行に収める */
.r-list__title {
  font-size: var(--f-body);
  font-weight: 500;
  line-height: 1.6;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media screen and (max-width: 959px) {
  .r-list__link { grid-template-columns: auto minmax(0, 1fr); }
  .r-list__title { grid-column: 1 / -1; }
  .r-panel--news .r-list__item:nth-child(n + 5) { display: none; }
}

/* イベント情報は「日付｜タイトル｜（終了の目印）」の並びにして、タイトルの位置をそろえる */
.r-panel--event .r-list__link { grid-template-columns: auto minmax(0, 1fr) auto; }
@media screen and (max-width: 959px) {
  .r-panel--event .r-list__link { grid-template-columns: auto auto; }
  .r-panel--event .r-list__title { grid-column: 1 / -1; grid-row: 2; }
  .r-panel--event .r-list__ended { grid-column: 2; grid-row: 1; }
}
/* 終了したイベントの目印 */
.r-list__ended {
  background: #e7eaee;
  border-radius: 4px;
  color: #1e1e1e;
  font-size: 0.6rem;
  font-weight: 700;
  justify-self: start;
  line-height: 1.8;
  padding: 0 10px;
  white-space: nowrap;
}
.r-list__empty { font-size: var(--f-note); line-height: 1.8; }
.r-panel__foot { margin-top: var(--s-3); }

/* 読み込み中・失敗の表示は、必要なときだけ出す */
.r-top .js-calendar-loading { display: none; }
.r-top .js-calendar-error { display: none; }
.r-top .js-calendar-error.js-active { display: block; }

/* カレンダーの日付を選んだときに出る「その日のイベント」（文字だけで見せる） */
.r-day-events {
  border-top: 1px solid var(--c-line);
  margin-top: var(--s-3);
  padding-top: var(--s-2);
}
.r-day-events__title {
  color: var(--c-navy);
  font-size: var(--f-note);
  font-weight: 700;
  margin-bottom: var(--s-1);
}
.r-day-events .p-event-list__image-wrapper,
.r-day-events .p-event-list__link > strong { display: none; }
.r-day-events .p-event-list__item { border-bottom: 1px solid var(--c-line); }
.r-day-events .p-event-list__item:last-child { border-bottom: 0; }
.r-day-events .p-event-list__link { display: block; padding: 8px 0; }
.r-day-events .p-event-list__date { color: var(--c-text); display: block; font-size: var(--f-note); font-weight: 700; }
.r-day-events .p-event-list__title { color: var(--c-text); font-size: var(--f-note); line-height: 1.6; }

/* ======== 4〜9 の各セクション（すべて白い面＋濃い文字。背景だけ宇宙柄） ======== */
.r-sec { padding: 0 0 var(--s-3); }
.r-sec--last { padding-bottom: var(--s-5); }
.r-lead { font-size: var(--f-body); line-height: 1.9; margin-bottom: var(--s-3); }
.r-sub {
  border-left: 4px solid var(--c-sky);
  color: var(--c-navy);
  font-size: var(--f-h4);
  font-weight: 700;
  line-height: 1.4;
  margin: var(--s-4) 0 var(--s-2);
  padding-left: var(--s-2);
}
.r-note-sm { color: var(--c-text); font-size: var(--f-note); margin-top: var(--s-2); }
.u-visually-hidden {
  clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden;
  position: absolute; white-space: nowrap; width: 1px;
}

/* 小さなボタン（各節の「詳細へ」）。四角・紺の線、ホバーで紺に塗る */
.r-more-btn {
  align-items: center;
  border: 2px solid var(--c-navy);
  border-radius: 4px;
  color: var(--c-navy);
  display: inline-flex;
  font-size: var(--f-note);
  font-weight: 700;
  gap: 8px;
  line-height: 1.3;
  padding: 7px 14px;
  transition: background-color 0.2s var(--motion-ease), color 0.2s var(--motion-ease);
}
.r-more-btn::after {
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  content: "";
  height: 6px;
  transform: rotate(45deg);
  width: 6px;
}
.r-more-btn:hover { background: var(--c-navy); color: #fff; }

/* ---- 4. 施設の特徴とフロア構成 ---- */
.r-floors { display: grid; gap: var(--s-4); grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
@media screen and (max-width: 959px) {
  .r-floors { gap: var(--s-4); grid-template-columns: minmax(0, 1fr); }
}
.r-guide__title {
  border-left: 4px solid var(--c-sky);
  color: var(--c-navy);
  font-size: var(--f-h4);
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: var(--s-2);
  padding-left: var(--s-2);
}
/* チラシの「フロア別案内」と同じ配色（3階＝青み・2階＝緑み・1階＝赤み） */
.r-guide { border-collapse: separate; border-spacing: 0 0; width: 100%; }
.r-guide thead th {
  background: var(--c-navy);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 6px 8px;
  text-align: center;
}
.r-guide thead th:first-child { border-radius: 6px 0 0 0; width: 3.4em; }
.r-guide thead th:last-child { border-radius: 0 6px 0 0; white-space: nowrap; width: 6.4em; }  /* 「入場チケット」を2行にしない */
.r-guide td, .r-guide tbody th {
  border-bottom: 2px solid #fff;
  font-size: var(--f-note);
  font-weight: 700;
  line-height: 1.5;
  padding: 9px 12px;
  vertical-align: middle;
}
.r-guide td small { font-size: 0.6rem; font-weight: 500; }
.r-guide td small:first-child { display: block; }
.r-guide tbody th {
  border-right: 2px solid #fff;
  color: var(--c-navy);
  font-size: 1.3rem;
  line-height: 1.1;
  text-align: center;
}
.r-guide tbody th span { display: block; font-size: 0.65rem; }
.r-guide__ticket { border-left: 2px solid #fff; text-align: center; }
.r-guide__f3 td, .r-guide__f3 th { background: #e4e9f6; }
.r-guide__f2 td, .r-guide__f2 th { background: #d9f0ee; }
.r-guide__f1 td, .r-guide__f1 th { background: #fbe6e5; }
.r-need, .r-free { align-items: center; display: inline-flex; font-size: var(--f-note); font-weight: 700; gap: 6px; white-space: nowrap; }
.r-need::before, .r-free::before {
  align-items: center;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: none;
  font-size: 0.6rem;
  height: 22px;
  justify-content: center;
  width: 22px;
}
.r-need::before { background: #e2574c; content: "○"; }
.r-free::before { background: #2f6fbd; content: "×"; }

/* 館内の写真スライド */
.r-shots { margin-top: var(--s-3); padding-bottom: 28px; }
.r-shots img {
  aspect-ratio: 3 / 2;
  border-radius: 6px;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.r-shots .splide__slide { position: relative; }
.r-shots__cap {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0));
  border-radius: 0 0 6px 6px;
  bottom: 0;
  color: #fff;
  font-size: var(--f-note);
  font-weight: 700;
  left: 0;
  padding: 24px 14px 10px;
  position: absolute;
  right: 0;
}

/* 階ごとの紹介 */
.r-floors__main { display: grid; gap: var(--s-2); }
.r-floor-card {
  background: var(--c-bg-tint);
  border-radius: 6px;
  display: grid;
  gap: var(--s-3);
  grid-template-columns: minmax(0, 1fr) minmax(0, 220px);
  padding: var(--s-3);
}
.r-floor-card__img {
  aspect-ratio: 4 / 3;
  border-radius: 6px;
  display: block;
  height: auto;
  object-fit: cover;
  width: 100%;
}
.r-floor-card__no { color: var(--c-navy); font-size: var(--f-note); font-weight: 700; line-height: 1; margin-bottom: 4px; }
.r-floor-card__no b { font-size: 1.8rem; margin-right: 2px; }
.r-floor-card__title { color: var(--c-navy); font-size: var(--f-h4); font-weight: 700; line-height: 1.45; margin-bottom: var(--s-1); }
.r-floor-card__text { font-size: var(--f-note); line-height: 1.8; margin-bottom: var(--s-1) !important; }
.r-floor-card__list { display: grid; font-size: var(--f-note); gap: 6px; line-height: 1.7; margin-bottom: var(--s-1); }
.r-floor-card__list b { color: var(--c-navy); display: block; }
.r-floor-card__free { font-size: 0.65rem; line-height: 1.7; margin-bottom: var(--s-1) !important; }
.r-floor-card__links { display: flex; flex-wrap: wrap; gap: var(--s-1); }
.r-floor-card .r-more-btn { margin-top: 4px; }
@media screen and (max-width: 640px) {
  .r-floor-card { grid-template-columns: minmax(0, 1fr); padding: var(--s-2); }
  .r-floor-card__img { order: -1; aspect-ratio: 16 / 9; }
}

/* ---- 5. 公式アプリ（白ではなく淡い水色の面にして、ほかの節と区別する） ---- */
.r-app-band {
  align-items: center;
  background: linear-gradient(120deg, #e3f4fc 0%, #f4fbff 60%, #fff8dc 100%);
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  display: grid;
  gap: var(--s-5);
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  padding: var(--s-4) var(--s-5);
}
.r-app-band__phone img { border-radius: 12px; display: block; height: auto; width: 100%; }
.r-app-band__kicker {
  color: var(--c-navy);
  font-size: var(--f-note);
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: var(--s-1) !important;
  padding-top: 14px;
  position: relative;
}
.r-app-band__kicker::before { background: var(--c-sky); border-radius: 2px; content: ""; height: 4px; left: 0; position: absolute; top: 0; width: 40px; }
.r-app-band__title { color: var(--c-navy); font-size: var(--f-h3); font-weight: 700; line-height: 1.55; }
.r-app-band__title em { color: #d81f4a; font-style: normal; }
.r-app-band__points { display: flex; flex-wrap: wrap; gap: var(--s-1); margin-top: var(--s-2); }
.r-app-band__points li {
  background: #fff;
  border: 2px solid var(--c-navy);
  border-radius: 4px;
  color: var(--c-navy);
  font-size: var(--f-note);
  font-weight: 700;
  padding: 2px 12px;
}
.r-app-band__offer {
  background: #fff;
  border: 2px solid #e8c200;
  border-radius: 6px;
  font-size: var(--f-h4);
  font-weight: 700;
  line-height: 1.6;
  margin-top: var(--s-3);
  padding: 12px var(--s-2);
}
.r-app-band__offer span { background: #e8c200; border-radius: 4px; color: #3a2d00; font-size: var(--f-note); margin-right: 10px; padding: 2px 10px; }
.r-app-band__offer strong { color: #d81f4a; font-size: 1.35em; }
.r-app-band__offer small { font-size: var(--f-note); font-weight: 500; }
.r-app-band__actions { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-3); }
.r-app-band__more { margin-top: var(--s-2); }
@media screen and (max-width: 959px) {
  .r-app-band { gap: var(--s-3); grid-template-columns: minmax(0, 1fr); padding: var(--s-3) var(--s-2); }
  .r-app-band__phone { margin: 0 auto; max-width: 220px; }
  .r-app-band__actions { display: grid; }
}

/* ---- 6. ホワイトパズル ---- */
.r-wp { display: grid; gap: var(--s-4); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.r-wp__visual { border-radius: 6px; display: block; height: auto; width: 100%; }
.r-wp__catch { color: var(--c-navy); font-size: var(--f-h3); font-weight: 700; line-height: 1.4; margin-top: var(--s-3); }
.r-wp__catch b { color: #e60013; }
.r-wp__text { font-size: var(--f-note); line-height: 1.8; margin-top: var(--s-1); }
.r-wp__fee {
  align-items: baseline;
  background: var(--c-navy);
  border-radius: 4px;
  color: #fff;
  display: inline-flex;
  font-size: var(--f-note);
  font-weight: 700;
  gap: 8px;
  margin-top: var(--s-2);
  padding: 4px 14px;
}
.r-wp__fee b { font-size: var(--f-h4); }
.r-wp__rank { background: var(--c-bg-tint); border-radius: 6px; padding: var(--s-3); }
.r-wp__rank-title { color: var(--c-navy); font-size: var(--f-h4); font-weight: 700; line-height: 1.4; margin-bottom: var(--s-2) !important; }
.r-wp__rank-title small { color: var(--c-text); display: block; font-size: 0.65rem; font-weight: 500; }
.r-wp__boards { display: grid; gap: var(--s-2); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); margin-bottom: var(--s-2); }
.r-wp__board { background: #fff; border-radius: 6px; padding: 12px 14px; }
.r-wp__board h3 { border-bottom: 2px solid var(--c-sky); color: var(--c-navy); font-size: var(--f-note); font-weight: 700; padding-bottom: 6px; }
.r-wp__board li {
  align-items: center;
  border-bottom: 1px solid var(--c-line);
  display: grid;
  gap: 10px;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  padding: 8px 0;
}
.r-wp__board li:last-child { border-bottom: 0; }
.r-wp__board li.r-wp__empty { color: var(--c-text, #1e1e1e); display: block; font-size: var(--f-note); line-height: 1.7; padding: 14px 0; }
.r-wp__no {
  align-items: center;
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  font-size: 0.65rem;
  font-weight: 700;
  height: 26px;
  justify-content: center;
  width: 26px;
}
.r-wp__no.is-1 { background: #c9a227; }
.r-wp__no.is-2 { background: #8d98a5; }
.r-wp__no.is-3 { background: #b07a4f; }
.r-wp__name { font-size: var(--f-note); font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r-wp__time { color: var(--c-navy); font-size: var(--f-h4); font-variant-numeric: tabular-nums; font-weight: 700; }
@media screen and (max-width: 959px) {
  .r-wp { grid-template-columns: minmax(0, 1fr); }
}
@media screen and (max-width: 520px) {
  .r-wp__boards { grid-template-columns: minmax(0, 1fr); }
  .r-wp__rank { padding: var(--s-2); }
}

/* ---- 7. ピックアップ（写真を大きく） ---- */
.r-pick { display: grid; gap: var(--s-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.r-pick a { display: block; }
.r-pick__img { border-radius: 6px; display: block; overflow: hidden; }
.r-pick__img img {
  aspect-ratio: 1 / 1;
  display: block;
  height: auto;
  object-fit: cover;
  transition: transform 0.4s var(--motion-ease);
  width: 100%;
}
.r-pick a:hover .r-pick__img img { transform: scale(1.04); }
.r-pick__title { color: var(--c-navy); display: block; font-size: var(--f-h4); font-weight: 700; line-height: 1.45; margin-top: 12px; }
.r-pick__text { display: block; font-size: var(--f-note); margin-top: 2px; }
.r-pick a:hover .r-pick__title { text-decoration: underline; text-underline-offset: 4px; }
@media screen and (max-width: 640px) {
  .r-pick { gap: var(--s-2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r-pick li:first-child { grid-column: 1 / -1; }
  .r-pick li:first-child .r-pick__img img { aspect-ratio: 16 / 9; }
}

/* ---- 8. おすすめアイテム（淡い面の上に白い商品カード） ---- */
.r-panel--tint { background: var(--c-bg-tint); }
.r-items { display: grid; gap: var(--s-3); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.r-items a {
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0, 56, 103, 0.08);
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  transition: box-shadow 0.2s var(--motion-ease), transform 0.2s var(--motion-ease);
}
.r-items a:hover { box-shadow: 0 8px 20px rgba(0, 56, 103, 0.16); transform: translateY(-2px); }
.r-items__img img { aspect-ratio: 4 / 3; display: block; height: auto; object-fit: cover; width: 100%; }
.r-items__body { display: block; padding: var(--s-2); }
.r-items__title { color: var(--c-navy); display: block; font-size: var(--f-h4); font-weight: 700; line-height: 1.45; }
.r-items__text { display: block; font-size: var(--f-note); line-height: 1.7; margin-top: 6px; }
@media screen and (max-width: 959px) {
  .r-items { grid-template-columns: minmax(0, 1fr); }
  .r-items a { display: grid; grid-template-columns: 40% minmax(0, 1fr); }
  .r-items__img img { height: 100%; }
}

/* アクセス */
.r-access { display: grid; gap: var(--s-4); grid-template-columns: minmax(0, 420px) minmax(0, 1fr); }
.r-access__list { display: grid; gap: 0 var(--s-3); grid-template-columns: 6em minmax(0, 1fr); }
.r-access__list dt {
  border-top: 1px solid var(--c-line);
  color: var(--c-navy);
  font-size: var(--f-note);
  font-weight: 700;
  padding: 10px 0;
}
.r-access__list dd {
  border-top: 1px solid var(--c-line);
  font-size: var(--f-note);
  line-height: 1.7;
  padding: 10px 0;
}
.r-access__tel { color: var(--c-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.r-access__map { height: 100%; min-height: 320px; }
.r-access__map iframe { border-radius: 6px; display: block; height: 100%; min-height: 320px; width: 100%; }
@media screen and (max-width: 959px) {
  .r-access { grid-template-columns: minmax(0, 1fr); }
  .r-access__list { grid-template-columns: 5em minmax(0, 1fr); }
  .r-access__map, .r-access__map iframe { min-height: 240px; }
}

/* フッター：大きなアイコンの帯のかわりの、小さな表記 */
.p-footer__information--compact {
  display: block;
  font-size: var(--f-note);
  line-height: 1.8;
  text-align: center;
}
.p-footer__information--compact p + p { margin-top: 2px; }
.p-footer__information--compact a { text-decoration: none; }
.p-footer__information--compact a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* ======== PAGE TOP は少しスクロールしてから出す ======== */
body.renewal-top .c-page-top {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s var(--motion-ease);
}
body.renewal-top.is-scrolled .c-page-top {
  opacity: 1;
  pointer-events: auto;
}

/* カレンダーの見出しを日本語（2026年 10月）にしたときの並び */
.r-cal .p-calendar__year { justify-self: end; }
.r-cal .p-calendar__month-name { justify-self: start; }

/* 営業時間の帯のボタンは、営業時間が1行に収まるよう横幅を詰める */
@media screen and (min-width: 1101px) {
  .r-strip__actions .r-btn { min-width: 0; padding: 0 var(--s-3); }
}

/* スマホ：ロゴは今のトップと同じく写真の下に半分はみ出す形。
   外枠（.r-fv__stage）で切れてしまい、宇宙柄のすき間だけが見えていたため、
   切り取りは写真（.r-fv__media）だけにして、ロゴは枠の外まで見せる */
@media screen and (max-width: 959px) {
  .r-fv__stage { overflow: visible; }
  .r-fv__media { overflow: hidden; }
}

/* 営業時間の帯のボタンは、帯の高さに合わせて低めにする */
@media screen and (min-width: 1101px) {
  .r-strip__actions .r-btn { min-height: 48px; }
}

/* パソコンでは、右の階ごとの紹介を読む間、左のフロア別案内と写真を画面に留める */
@media screen and (min-width: 960px) {
  .r-floors__side { align-self: start; position: sticky; top: calc(var(--header-height, 80px) + 16px); }
}
.r-guide thead th:last-child { width: 7.8em; }

/* スマホ：見出しが長い節でも、見出しを1行目、「一覧」などのリンクを2行目に置いて崩れないようにする */
@media screen and (max-width: 640px) {
  .r-panel__head { align-items: flex-start; flex-direction: column; gap: 4px; }
}

/* ===== 2026-10-25 微調整（塩野さんの指示） ===== */
/* 施設紹介の文：単語の途中で改行しない（文節の切れ目＝<wbr> でだけ折り返す） */
.r-floor-card__title, .r-floor-card__text, .r-floor-card__list li, .r-floor-card__free { word-break: keep-all; overflow-wrap: anywhere; }
@supports (word-break: auto-phrase) {
  .r-floor-card__title, .r-floor-card__text, .r-floor-card__list li, .r-floor-card__free { word-break: auto-phrase; }
}
.r-floor-card__list--dot { gap: 4px; }
.r-floor-card__list--dot li { padding-left: 1em; position: relative; }
.r-floor-card__list--dot li::before { color: var(--c-sky); content: "●"; font-size: 0.5em; left: 0.1em; position: absolute; top: 0.9em; }

/* パソコン：カレンダーと新着情報の白い面の高さを揃える */
@media screen and (min-width: 960px) {
  .r-deck__grid { align-items: stretch; }
  .r-deck__grid:has(.js-event-panel[hidden]) .r-panel--cal { grid-row: auto; }
}

/* パソコン：左（フロア別案内）を少し縦長に、右（階ごとの紹介）を詰めて、左右の長さを揃える */
@media screen and (min-width: 960px) {
  .r-guide td, .r-guide tbody th { padding-bottom: 13px; padding-top: 13px; }
  .r-floors__main { gap: 12px; }
  .r-floor-card { gap: var(--s-2); grid-template-columns: minmax(0, 1fr) minmax(0, 200px); padding: 18px 22px; }
  .r-floor-card__no b { font-size: 1.5rem; }
  .r-floor-card__title { margin-bottom: 6px; }
  .r-floor-card__text, .r-floor-card__list { line-height: 1.7; }
  .r-floor-card__list { gap: 4px; }
  .r-floor-card__list b { margin-top: 2px; }
}

/* アクセスの下がフッターの波に隠れないよう、最後の節の下に余白をとる */
.r-sec--last { padding-bottom: 110px; }
@media screen and (max-width: 959px) { .r-sec--last { padding-bottom: 90px; } }
/* フロア別案内の表：スマホで「ロケットミュージア／ム」のように単語の途中で折れないようにする */
.r-guide td { word-break: keep-all; overflow-wrap: anywhere; }
@supports (word-break: auto-phrase) { .r-guide td { word-break: auto-phrase; } }
@media screen and (max-width: 520px) {
  .r-guide td, .r-guide tbody th { padding: 9px 8px; }
  .r-guide td { font-size: 0.7rem; }
  .r-guide thead th:last-child { width: 5.8em; }
  .r-need, .r-free { font-size: 0.7rem; gap: 4px; }
}

/* ===== ソラミル公式アプリ（機能一覧つき・2026-10-25 塩野さん原稿） ===== */
.r-app2 { border-top: 6px solid var(--c-sky); padding: var(--s-4) var(--s-4) var(--s-3); }
.r-app2__hero { align-items: center; display: grid; gap: var(--s-4); grid-template-columns: minmax(0, 1fr) minmax(0, 300px); }
.r-app2__kicker { border-bottom: 3px solid var(--c-sky); color: var(--c-navy); display: inline-block; font-size: var(--f-note); font-weight: 700; letter-spacing: .08em; margin-bottom: 14px; padding-bottom: 4px; }
.r-app2__title { color: #1e1e1e; font-size: 2.1rem; font-weight: 700; line-height: 1.3; margin-bottom: 14px; }
.r-app2__title mark { background: linear-gradient(transparent 62%, #ffd23f 62%); color: inherit; padding: 0 2px; }
.r-app2__lead { color: #1e1e1e; font-size: 0.9rem; font-weight: 700; line-height: 1.85; margin-bottom: 16px; }
.r-app2__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.r-app2__tags li { border: 2px solid #1e1e1e; color: #1e1e1e; font-size: var(--f-note); font-weight: 700; line-height: 1; padding: 9px 12px; }
.r-app2__offer { background: #fff; border: 3px solid #1e1e1e; box-shadow: 8px 8px 0 #ffd23f; display: grid; grid-template-columns: auto minmax(0, 1fr); margin-bottom: 8px; }
.r-app2__offer-label { align-items: center; background: #ffd23f; color: #1e1e1e; display: flex; font-size: 0.85rem; font-weight: 700; padding: 0 18px; white-space: nowrap; }
.r-app2__offer-body { padding: 14px 18px; }
.r-app2__offer-title { color: #1e1e1e; font-size: 1.05rem; font-weight: 700; line-height: 1.4; margin-bottom: 6px; }
.r-app2__offer-title strong { color: #0f6fb0; font-size: 1.6rem; margin-left: 2px; }
.r-app2__offer-text { color: #333; font-size: var(--f-note); line-height: 1.75; }
.r-app2__phone img { border: 8px solid #1e1e1e; border-radius: 34px; box-shadow: 0 18px 40px rgba(0, 0, 0, .28); display: block; height: auto; margin: 0 auto; max-width: 260px; width: 100%; }

.r-app2__features { border-top: 1px solid var(--c-line); margin-top: var(--s-4); padding-top: var(--s-4); }
.r-app2__ftitle { color: #1e1e1e; font-size: 1.3rem; font-weight: 700; line-height: 1.4; }
.r-app2__ftitle small { color: var(--c-navy); display: inline-block; font-size: var(--f-note); margin-left: 12px; }
.r-app2__fnote { color: #333; font-size: var(--f-note); margin: 4px 0 18px; }
.r-app2__cards { display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.r-app2__card { background: #fff; border: 1px solid #d6dee7; box-shadow: 0 6px 16px rgba(0, 56, 103, .08); display: flex; flex-direction: column; }
.r-app2__shot { background: #e9eef4; padding: 12px 12px 0; }
.r-app2__shot img { aspect-ratio: 4 / 3; box-shadow: 0 4px 12px rgba(0, 0, 0, .12); display: block; height: auto; object-fit: cover; object-position: top; width: 100%; }
.r-app2__cbody { padding: 14px 16px 18px; }
.r-app2__no { color: #0f6fb0; font-size: 0.7rem; font-weight: 700; letter-spacing: .06em; }
.r-app2__ctitle { color: #1e1e1e; font-size: 0.95rem; font-weight: 700; line-height: 1.45; margin: 2px 0 8px; }
.r-app2__ctext { color: #333; font-size: var(--f-note); line-height: 1.8; }
.r-app2__ctitle, .r-app2__ctext, .r-app2__offer-text, .r-app2__lead { word-break: keep-all; overflow-wrap: anywhere; }
@supports (word-break: auto-phrase) { .r-app2__ctitle, .r-app2__ctext, .r-app2__offer-text, .r-app2__lead { word-break: auto-phrase; } }
.r-app2__extra { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 18px; }
.r-app2__extra li { color: #1e1e1e; font-size: var(--f-note); font-weight: 700; }
.r-app2__extra li::before { color: #e8a400; content: "★"; margin-right: 4px; }

.r-app2__dl { align-items: center; border-top: 1px solid var(--c-line); display: grid; gap: var(--s-3); grid-template-columns: minmax(0, 1fr) auto; margin-top: var(--s-4); padding-top: var(--s-4); }
.r-app2__stores { display: flex; flex-wrap: wrap; gap: 14px; }
.r-app2__store { background: #0f6fb0; box-shadow: 0 5px 0 #0a4f7e; color: #fff !important; display: block; font-size: 1.05rem; font-weight: 700; line-height: 1.3; padding: 12px 26px 14px; text-decoration: none !important; transition: transform .15s, box-shadow .15s; }
.r-app2__store small { display: block; font-size: 0.65rem; font-weight: 700; opacity: .95; }
.r-app2__store:hover { box-shadow: 0 2px 0 #0a4f7e; transform: translateY(3px); }
.r-app2__store:focus-visible { outline: 3px solid #ffd23f; outline-offset: 3px; }
.r-app2__link { color: #0f6fb0 !important; display: inline-block; font-size: var(--f-note); font-weight: 700; margin-top: 16px; text-decoration: underline; text-underline-offset: 4px; }
.r-app2__qr { align-items: center; border: 2px solid #1e1e1e; display: flex; gap: 16px; padding: 14px 18px; }
.r-app2__qr img { display: block; height: 110px; width: 110px; }
.r-app2__qr p { color: #1e1e1e; font-size: 0.8rem; font-weight: 700; line-height: 1.6; }
.r-app2__qr small { color: #333; display: block; font-size: 0.65rem; font-weight: 500; }
.r-app2__stores--sp { display: none; }

@media screen and (max-width: 1100px) {
  .r-app2__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 959px) {
  .r-app2 { padding: var(--s-3) var(--s-2) var(--s-2); }
  .r-app2__hero { grid-template-columns: minmax(0, 1fr); }
  .r-app2__phone { order: -1; }
  .r-app2__phone img { max-width: 200px; }
  .r-app2__title { font-size: 1.6rem; }
  .r-app2__stores--sp { display: flex; margin-top: 22px; }
  .r-app2__dl { grid-template-columns: minmax(0, 1fr); }
  .r-app2__qr { display: none; }   /* スマホではQRを出さない（読み取れないため） */
}
@media screen and (max-width: 640px) {
  /* 機能カードは横にスワイプ */
  .r-app2__cards { display: flex; gap: 12px; margin: 0 calc(var(--s-2) * -1); overflow-x: auto; padding: 0 var(--s-2) 10px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
  .r-app2__card { flex: 0 0 78%; scroll-snap-align: start; }
  .r-app2__ftitle small { display: block; margin: 4px 0 0; }
  .r-app2__offer { grid-template-columns: minmax(0, 1fr); }
  .r-app2__offer-label { padding: 8px 14px; }
  .r-app2__store { flex: 1 1 100%; text-align: center; }
}
/* アプリ紹介：スマホで「100／円引き」「でき／ること」のように語の途中で折れないようにする */
.r-app2__offer-title strong { white-space: nowrap; }
.r-app2__ftitle, .r-app2__extra li, .r-app2__link, .r-app2__offer-title { word-break: keep-all; overflow-wrap: anywhere; }
@supports (word-break: auto-phrase) { .r-app2__ftitle, .r-app2__extra li, .r-app2__link, .r-app2__offer-title { word-break: auto-phrase; } }
@media screen and (max-width: 640px) {
  .r-app2__ftitle { font-size: 1.1rem; }
  .r-app2__store { font-size: 0.95rem; }
}
.r-app2__nw { white-space: nowrap; }
/* アプリ紹介：できることを4つに絞った版（2026-10-25）。ストアのボタンは特典のすぐ下に（パソコン・スマホ共通） */
.r-app2__stores--hero { display: flex; margin-top: 24px; }
.r-app2__stores--hero + .r-app2__link { margin-top: 14px; }
.r-app2__cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media screen and (max-width: 1100px) { .r-app2__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===== 施設紹介：紺の面＋各階カード（写真スライド16:9・できること・見出し）。2026-10-25 塩野さん承認（見本5） ===== */
/* ===== デザイン見本：構成（並び・左右の配置）は今のまま、あしらいと抑揚だけを変える ===== */
/* 1. セクションの面：白い枠をやめ、深い紺の面に細かな星を散らす */
.r-fac {
  background-color: #0b2340;
  background-image:
    radial-gradient(1px 1px at 12% 18%, rgba(255,255,255,.55) 50%, transparent 51%),
    radial-gradient(1px 1px at 38% 72%, rgba(255,255,255,.4) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 66% 28%, rgba(255,255,255,.5) 50%, transparent 51%),
    radial-gradient(1px 1px at 84% 64%, rgba(255,255,255,.45) 50%, transparent 51%),
    radial-gradient(1px 1px at 92% 12%, rgba(255,255,255,.35) 50%, transparent 51%);
  background-size: 420px 420px;
  color: #fff;
  overflow: hidden;
  padding: 48px 48px 56px;
  position: relative;
}
/* 右上に、軌道を描く細い弧（宇宙らしさのあしらい） */
.r-fac::after {
  border: 1px solid rgba(127, 211, 245, .35);
  border-radius: 50%;
  content: "";
  height: 900px;
  pointer-events: none;
  position: absolute;
  right: -420px;
  top: -560px;
  width: 1200px;
}
.r-fac > * { position: relative; z-index: 1; }
/* 見出し：大きく、白で。下線ではなく、軌道の点をつける */
.r-fac .r-panel__head { border-bottom: 1px solid rgba(255,255,255,.18); margin-bottom: 36px; padding-bottom: 20px; }
.r-fac .r-panel__head::before { background: #7fd3f5; box-shadow: 0 0 12px #7fd3f5; height: 4px; width: 56px; }
.r-fac .r-panel__title { color: #fff; font-size: 2rem; letter-spacing: .06em; }
.r-fac .r-panel__more { color: #7fd3f5 !important; }


/* ===== フロア別案内と各フロア紹介を1つに（2026-10-25 塩野さんの案） ===== */
.r-fl-wrap { display: grid; gap: 26px; }
.r-fl { --fc: #4b63c6; --fc-bg: #e4e9f6; background: #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(0,0,0,.38); color: #1e1e1e; display: grid; grid-template-columns: minmax(0, 42%) minmax(0, 1fr); overflow: hidden; position: relative; transition: transform .3s ease, box-shadow .3s ease; }
.r-fl--f2 { --fc: #1f9a8f; --fc-bg: #d9f0ee; grid-template-columns: minmax(0, 1fr) minmax(0, 42%); }
.r-fl--f1 { --fc: #d9545e; --fc-bg: #fbe6e5; }
.r-fl::before { background: var(--fc); bottom: 0; content: ""; left: 0; position: absolute; top: 0; width: 7px; z-index: 2; }
.r-fl__img { display: block; height: 100%; min-height: 300px; object-fit: cover; transition: transform .6s ease; width: 100%; }
.r-fl--f2 .r-fl__img { order: 2; }
.r-fl__body { padding: 30px 34px 30px 40px; }
.r-fl__no { align-items: baseline; color: var(--fc); display: flex; font-size: 0.85rem; font-weight: 700; gap: 2px; }
.r-fl__no b { font-size: 3.6rem; font-weight: 800; line-height: .9; }
.r-fl__title { color: #0b2340; font-size: 1.2rem; font-weight: 700; line-height: 1.45; margin: 6px 0 14px; }
/* 中身の一覧（旧フロア別案内の表）：その階の色の面に、入場チケットの要・不要を札で示す */
.r-fl__items { background: var(--fc-bg); border-radius: 8px; display: grid; gap: 2px 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 16px; padding: 12px 16px; }
.r-fl__items li { align-items: center; border-bottom: 1px dashed rgba(0,0,0,.12); display: flex; flex-wrap: wrap; font-size: 0.75rem; font-weight: 700; gap: 2px 6px; padding: 7px 0; }
.r-fl__items small { font-size: 0.6rem; font-weight: 500; }
.r-tk { border-radius: 999px; font-size: 0.55rem; font-weight: 700; line-height: 1; margin-left: auto; padding: 5px 8px; white-space: nowrap; }
.r-tk--need { background: #c8323c; color: #fff; }
.r-tk--free { background: #fff; border: 1px solid #2f6fbd; color: #1d5aa5; }
.r-fl__text, .r-fl__desc dd, .r-fl__dots li { font-size: 0.75rem; line-height: 1.75; }
.r-fl__desc { display: grid; gap: 2px; margin-bottom: 8px; }
.r-fl__desc dt { color: var(--fc); font-size: 0.75rem; font-weight: 700; margin-top: 6px; }
.r-fl__dots li { padding-left: 1em; position: relative; }
.r-fl__dots li::before { color: var(--fc); content: "●"; font-size: .5em; left: .1em; position: absolute; top: .95em; }
.r-fl__free { font-size: 0.65rem; line-height: 1.7; margin: 8px 0 4px; }
.r-fl__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.r-fl .r-more-btn { border-color: var(--fc); color: var(--fc); }
.r-fl .r-more-btn:hover { background: var(--fc); color: #fff; }
.r-fl__title, .r-fl__text, .r-fl__desc dd, .r-fl__dots li, .r-fl__free, .r-fl__items li { word-break: keep-all; overflow-wrap: anywhere; }
/* 動き */
.r-fl:hover { box-shadow: 0 26px 52px rgba(0,0,0,.5); transform: translateY(-4px); }
.r-fl:hover .r-fl__img { transform: scale(1.05); }
@media (prefers-reduced-motion: no-preference) {
  .r-fac.r-reveal:not(.is-shown) .r-fl { opacity: 0; transform: translateX(-40px); }
  .r-fac.r-reveal:not(.is-shown) .r-fl--f2 { transform: translateX(40px); }
  .r-fl { transition: opacity .7s ease, transform .7s ease, box-shadow .3s ease; }
  .r-fl--f2 { transition-delay: .12s; } .r-fl--f3 { transition-delay: .24s; }
}
/* 館内の写真：幅いっぱい、真ん中を大きく */
.r-fl-gallery-title { color: #fff; font-size: 1.1rem; font-weight: 700; margin: 48px 0 18px; text-align: center; }
.r-shots--wide { padding-bottom: 32px; }
.r-shots--wide .splide__slide { opacity: .45; transform: scale(.92); transition: opacity .5s, transform .5s; }
.r-shots--wide .splide__slide.is-active { opacity: 1; transform: scale(1); }
.r-shots--wide img { aspect-ratio: 3 / 2; border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.45); }
.r-shots--wide .splide__pagination__page { background: rgba(255,255,255,.4); }
.r-shots--wide .splide__pagination__page.is-active { background: #7fd3f5; }
.r-shots--wide .splide__arrow { background: #fff; opacity: 1; }

@media screen and (max-width: 959px) {
  .r-fac { padding: 28px 12px 32px; }
  .r-fac .r-panel__title { font-size: 1.5rem; word-break: keep-all; }
  .r-fl, .r-fl--f2 { grid-template-columns: minmax(0, 1fr); }
  .r-fl__img, .r-fl--f2 .r-fl__img { aspect-ratio: 16 / 9; height: auto; min-height: 0; order: 0; }
  .r-fl__body { padding: 20px 18px 22px 24px; }
  .r-fl__no b { font-size: 2.6rem; }
  .r-fl__items { grid-template-columns: minmax(0, 1fr); }
}
/* 札は必ず右端に1行でそろえる（名前のほうを折り返す） */
.r-fl__items li { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; }
.r-fl__items li .r-tk { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin-left: 0; }
.r-fl__items small { display: block; grid-column: 1; }
.r-fac .r-panel__title { word-break: keep-all; overflow-wrap: anywhere; }
@media screen and (max-width: 520px) {
  .r-fl__body { padding: 18px 14px 20px 20px; }
  .r-fl__items { padding: 8px 10px; }
  .r-fl__items li { font-size: 0.68rem; gap: 6px; }
  .r-tk { font-size: 0.5rem; padding: 4px 6px; }
}
/* ===== 各階の写真をスライドに（16:9）、写真の幅を広げる ===== */
@media screen and (min-width: 960px) {
  .r-fl { align-items: start; grid-template-columns: minmax(0, 56%) minmax(0, 1fr); }
  .r-fl--f2 { grid-template-columns: minmax(0, 1fr) minmax(0, 56%); }
  .r-fl--f2 .r-fl__media { order: 2; }
  .r-fl__media { padding: 22px 0 22px 22px; position: sticky; top: calc(var(--header-height, 80px) + 16px); }
  .r-fl--f2 .r-fl__media { padding: 22px 22px 22px 0; }
  .r-fl__items { grid-template-columns: minmax(0, 1fr); }
}
.r-fl__shots { border-radius: 10px; overflow: hidden; position: relative; }
.r-fl__shots img { aspect-ratio: 16 / 9; display: block; height: auto; object-fit: cover; transition: transform .6s ease; width: 100%; }
.r-fl:hover .r-fl__shots img { transform: none; }
.r-fl__cap { background: linear-gradient(to top, rgba(0,0,0,.72), rgba(0,0,0,0)); bottom: 0; color: #fff; font-size: 0.75rem; font-weight: 700; left: 0; padding: 36px 16px 12px; position: absolute; right: 0; }
.r-fl__shots .splide__slide { position: relative; }
.r-fl__shots .splide__arrow { background: rgba(255,255,255,.92); height: 40px; opacity: 1; width: 40px; }
.r-fl__shots .splide__arrow svg { fill: var(--fc); }
.r-fl__shots .splide__pagination { bottom: 10px; justify-content: flex-end; left: auto; padding: 0 14px; right: 0; }
.r-fl__shots .splide__pagination__page { background: rgba(255,255,255,.55); }
.r-fl__shots .splide__pagination__page.is-active { background: #fff; transform: scale(1.3); }
@media screen and (max-width: 959px) {
  .r-fl__media { padding: 0; }
  .r-fl__shots { border-radius: 0; }
}
@media screen and (min-width: 960px) { .r-fl__media { position: static; } }
/* ===== レイアウトの見直し：写真の列＝写真（16:9）＋この階でできること、文章の列＝見出し・説明・ボタン =====
   写真の下に空白ができないよう、写真の下に「できること（入場チケットの要・不要）」を置いて2つの列の高さを近づける。
   文章の列はボタンを下端にそろえ、短い階でも間延びしない */
@media screen and (min-width: 960px) {
  .r-fl { align-items: stretch; }
  .r-fl__media { display: flex; flex-direction: column; gap: 14px; padding: 24px 0 24px 24px; }
  .r-fl--f2 .r-fl__media { padding: 24px 24px 24px 0; }
  .r-fl__media .r-fl__items { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
  .r-fl__body { display: flex; flex-direction: column; padding: 30px 36px 28px 40px; }
  .r-fl__links { margin-top: auto; padding-top: 18px; }
  .r-fl--f3 .r-fl__body { justify-content: center; }
  .r-fl--f3 .r-fl__links { margin-top: 18px; padding-top: 0; }
}
.r-fl__items-title { color: var(--fc); font-size: 0.7rem; font-weight: 700; letter-spacing: .08em; margin: 0 0 -6px; }
@media screen and (max-width: 959px) {
  .r-fl__media { display: flex; flex-direction: column; }
  .r-fl__items-title { margin: 16px 18px 6px; }
  .r-fl__media .r-fl__items { margin: 0 14px; }
}
@media screen and (min-width: 960px) {
  /* 文章の列は上下中央に。ボタンは文章のすぐ下（下端に離さない） */
  .r-fl__body { justify-content: center; }
  .r-fl__links, .r-fl--f3 .r-fl__links { margin-top: 18px; padding-top: 0; }
  /* 写真の下の一覧は2列。語の途中で折れないよう文字を少し小さく */
  .r-fl__media .r-fl__items li { font-size: 0.68rem; }
  .r-fl__media .r-tk { font-size: 0.5rem; padding: 4px 7px; }
}
/* スマホ：写真 → 階の数字・見出し → できること → 説明 → ボタン の順に並べ替える */
@media screen and (max-width: 959px) {
  .r-fl, .r-fl--f2 { display: flex; flex-direction: column; padding-bottom: 22px; }
  .r-fl__media, .r-fl__body { display: contents; }
  .r-fl__shots { order: 1; }
  .r-fl__no { order: 2; margin: 20px 18px 0 24px; }
  .r-fl__title { order: 3; margin-left: 24px; margin-right: 18px; }
  .r-fl__items-title { order: 4; margin: 0 18px 6px 24px; }
  .r-fl__media .r-fl__items { order: 5; margin: 0 18px 14px 24px; }
  .r-fl__text, .r-fl__desc, .r-fl__dots, .r-fl__free { order: 6; margin-left: 24px; margin-right: 18px; }
  .r-fl__links { order: 7; margin-left: 24px; margin-right: 18px; }
}

/* ===== ホワイトパズル：白いパズルの面＋得点板（2026-10-25 見本） =====
   施設紹介（紺の面）の次に来るので、真っ白なパズルの面で明暗を切り替え、ロゴの黒・赤を色にする */
/* 背景：本物のジグソーパズルの切れ目（凸凹が交互にかみ合う）をSVGで描く（2026-10-25） */
.r-wp2 {
  background-color: #fbfbfa;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cpath d='M-110.0,-110.0L-70.4,-110.0C-66.0,-110.0 -63.8,-105.6 -67.1,-99.0C-72.6,-88.0 -66.0,-80.3 -55.0,-80.3C-44.0,-80.3 -37.4,-88.0 -42.9,-99.0C-46.2,-105.6 -44.0,-110.0 -39.6,-110.0L0.0,-110.0M-110.0,-110.0L-110.0,-70.4C-110.0,-66.0 -114.4,-63.8 -121.0,-67.1C-132.0,-72.6 -139.7,-66.0 -139.7,-55.0C-139.7,-44.0 -132.0,-37.4 -121.0,-42.9C-114.4,-46.2 -110.0,-44.0 -110.0,-39.6L-110.0,0.0M0.0,-110.0L39.6,-110.0C44.0,-110.0 46.2,-114.4 42.9,-121.0C37.4,-132.0 44.0,-139.7 55.0,-139.7C66.0,-139.7 72.6,-132.0 67.1,-121.0C63.8,-114.4 66.0,-110.0 70.4,-110.0L110.0,-110.0M0.0,-110.0L0.0,-70.4C0.0,-66.0 4.4,-63.8 11.0,-67.1C22.0,-72.6 29.7,-66.0 29.7,-55.0C29.7,-44.0 22.0,-37.4 11.0,-42.9C4.4,-46.2 0.0,-44.0 0.0,-39.6L0.0,0.0M110.0,-110.0L149.6,-110.0C154.0,-110.0 156.2,-105.6 152.9,-99.0C147.4,-88.0 154.0,-80.3 165.0,-80.3C176.0,-80.3 182.6,-88.0 177.1,-99.0C173.8,-105.6 176.0,-110.0 180.4,-110.0L220.0,-110.0M110.0,-110.0L110.0,-70.4C110.0,-66.0 105.6,-63.8 99.0,-67.1C88.0,-72.6 80.3,-66.0 80.3,-55.0C80.3,-44.0 88.0,-37.4 99.0,-42.9C105.6,-46.2 110.0,-44.0 110.0,-39.6L110.0,0.0M220.0,-110.0L259.6,-110.0C264.0,-110.0 266.2,-114.4 262.9,-121.0C257.4,-132.0 264.0,-139.7 275.0,-139.7C286.0,-139.7 292.6,-132.0 287.1,-121.0C283.8,-114.4 286.0,-110.0 290.4,-110.0L330.0,-110.0M220.0,-110.0L220.0,-70.4C220.0,-66.0 224.4,-63.8 231.0,-67.1C242.0,-72.6 249.7,-66.0 249.7,-55.0C249.7,-44.0 242.0,-37.4 231.0,-42.9C224.4,-46.2 220.0,-44.0 220.0,-39.6L220.0,0.0M-110.0,0.0L-70.4,0.0C-66.0,0.0 -63.8,-4.4 -67.1,-11.0C-72.6,-22.0 -66.0,-29.7 -55.0,-29.7C-44.0,-29.7 -37.4,-22.0 -42.9,-11.0C-46.2,-4.4 -44.0,0.0 -39.6,0.0L0.0,0.0M-110.0,0.0L-110.0,39.6C-110.0,44.0 -105.6,46.2 -99.0,42.9C-88.0,37.4 -80.3,44.0 -80.3,55.0C-80.3,66.0 -88.0,72.6 -99.0,67.1C-105.6,63.8 -110.0,66.0 -110.0,70.4L-110.0,110.0M0.0,0.0L39.6,0.0C44.0,0.0 46.2,4.4 42.9,11.0C37.4,22.0 44.0,29.7 55.0,29.7C66.0,29.7 72.6,22.0 67.1,11.0C63.8,4.4 66.0,0.0 70.4,0.0L110.0,0.0M0.0,0.0L0.0,39.6C0.0,44.0 -4.4,46.2 -11.0,42.9C-22.0,37.4 -29.7,44.0 -29.7,55.0C-29.7,66.0 -22.0,72.6 -11.0,67.1C-4.4,63.8 0.0,66.0 0.0,70.4L0.0,110.0M110.0,0.0L149.6,0.0C154.0,0.0 156.2,-4.4 152.9,-11.0C147.4,-22.0 154.0,-29.7 165.0,-29.7C176.0,-29.7 182.6,-22.0 177.1,-11.0C173.8,-4.4 176.0,0.0 180.4,0.0L220.0,0.0M110.0,0.0L110.0,39.6C110.0,44.0 114.4,46.2 121.0,42.9C132.0,37.4 139.7,44.0 139.7,55.0C139.7,66.0 132.0,72.6 121.0,67.1C114.4,63.8 110.0,66.0 110.0,70.4L110.0,110.0M220.0,0.0L259.6,0.0C264.0,0.0 266.2,4.4 262.9,11.0C257.4,22.0 264.0,29.7 275.0,29.7C286.0,29.7 292.6,22.0 287.1,11.0C283.8,4.4 286.0,0.0 290.4,0.0L330.0,0.0M220.0,0.0L220.0,39.6C220.0,44.0 215.6,46.2 209.0,42.9C198.0,37.4 190.3,44.0 190.3,55.0C190.3,66.0 198.0,72.6 209.0,67.1C215.6,63.8 220.0,66.0 220.0,70.4L220.0,110.0M-110.0,110.0L-70.4,110.0C-66.0,110.0 -63.8,114.4 -67.1,121.0C-72.6,132.0 -66.0,139.7 -55.0,139.7C-44.0,139.7 -37.4,132.0 -42.9,121.0C-46.2,114.4 -44.0,110.0 -39.6,110.0L0.0,110.0M-110.0,110.0L-110.0,149.6C-110.0,154.0 -114.4,156.2 -121.0,152.9C-132.0,147.4 -139.7,154.0 -139.7,165.0C-139.7,176.0 -132.0,182.6 -121.0,177.1C-114.4,173.8 -110.0,176.0 -110.0,180.4L-110.0,220.0M0.0,110.0L39.6,110.0C44.0,110.0 46.2,105.6 42.9,99.0C37.4,88.0 44.0,80.3 55.0,80.3C66.0,80.3 72.6,88.0 67.1,99.0C63.8,105.6 66.0,110.0 70.4,110.0L110.0,110.0M0.0,110.0L0.0,149.6C0.0,154.0 4.4,156.2 11.0,152.9C22.0,147.4 29.7,154.0 29.7,165.0C29.7,176.0 22.0,182.6 11.0,177.1C4.4,173.8 0.0,176.0 0.0,180.4L0.0,220.0M110.0,110.0L149.6,110.0C154.0,110.0 156.2,114.4 152.9,121.0C147.4,132.0 154.0,139.7 165.0,139.7C176.0,139.7 182.6,132.0 177.1,121.0C173.8,114.4 176.0,110.0 180.4,110.0L220.0,110.0M110.0,110.0L110.0,149.6C110.0,154.0 105.6,156.2 99.0,152.9C88.0,147.4 80.3,154.0 80.3,165.0C80.3,176.0 88.0,182.6 99.0,177.1C105.6,173.8 110.0,176.0 110.0,180.4L110.0,220.0M220.0,110.0L259.6,110.0C264.0,110.0 266.2,105.6 262.9,99.0C257.4,88.0 264.0,80.3 275.0,80.3C286.0,80.3 292.6,88.0 287.1,99.0C283.8,105.6 286.0,110.0 290.4,110.0L330.0,110.0M220.0,110.0L220.0,149.6C220.0,154.0 224.4,156.2 231.0,152.9C242.0,147.4 249.7,154.0 249.7,165.0C249.7,176.0 242.0,182.6 231.0,177.1C224.4,173.8 220.0,176.0 220.0,180.4L220.0,220.0M-110.0,220.0L-70.4,220.0C-66.0,220.0 -63.8,215.6 -67.1,209.0C-72.6,198.0 -66.0,190.3 -55.0,190.3C-44.0,190.3 -37.4,198.0 -42.9,209.0C-46.2,215.6 -44.0,220.0 -39.6,220.0L0.0,220.0M-110.0,220.0L-110.0,259.6C-110.0,264.0 -105.6,266.2 -99.0,262.9C-88.0,257.4 -80.3,264.0 -80.3,275.0C-80.3,286.0 -88.0,292.6 -99.0,287.1C-105.6,283.8 -110.0,286.0 -110.0,290.4L-110.0,330.0M0.0,220.0L39.6,220.0C44.0,220.0 46.2,224.4 42.9,231.0C37.4,242.0 44.0,249.7 55.0,249.7C66.0,249.7 72.6,242.0 67.1,231.0C63.8,224.4 66.0,220.0 70.4,220.0L110.0,220.0M0.0,220.0L0.0,259.6C0.0,264.0 -4.4,266.2 -11.0,262.9C-22.0,257.4 -29.7,264.0 -29.7,275.0C-29.7,286.0 -22.0,292.6 -11.0,287.1C-4.4,283.8 0.0,286.0 0.0,290.4L0.0,330.0M110.0,220.0L149.6,220.0C154.0,220.0 156.2,215.6 152.9,209.0C147.4,198.0 154.0,190.3 165.0,190.3C176.0,190.3 182.6,198.0 177.1,209.0C173.8,215.6 176.0,220.0 180.4,220.0L220.0,220.0M110.0,220.0L110.0,259.6C110.0,264.0 114.4,266.2 121.0,262.9C132.0,257.4 139.7,264.0 139.7,275.0C139.7,286.0 132.0,292.6 121.0,287.1C114.4,283.8 110.0,286.0 110.0,290.4L110.0,330.0M220.0,220.0L259.6,220.0C264.0,220.0 266.2,224.4 262.9,231.0C257.4,242.0 264.0,249.7 275.0,249.7C286.0,249.7 292.6,242.0 287.1,231.0C283.8,224.4 286.0,220.0 290.4,220.0L330.0,220.0M220.0,220.0L220.0,259.6C220.0,264.0 215.6,266.2 209.0,262.9C198.0,257.4 190.3,264.0 190.3,275.0C190.3,286.0 198.0,292.6 209.0,287.1C215.6,283.8 220.0,286.0 220.0,290.4L220.0,330.0' fill='none' stroke='%23ffffff' stroke-width='2' transform='translate(1 1)'/%3E%3Cpath d='M-110.0,-110.0L-70.4,-110.0C-66.0,-110.0 -63.8,-105.6 -67.1,-99.0C-72.6,-88.0 -66.0,-80.3 -55.0,-80.3C-44.0,-80.3 -37.4,-88.0 -42.9,-99.0C-46.2,-105.6 -44.0,-110.0 -39.6,-110.0L0.0,-110.0M-110.0,-110.0L-110.0,-70.4C-110.0,-66.0 -114.4,-63.8 -121.0,-67.1C-132.0,-72.6 -139.7,-66.0 -139.7,-55.0C-139.7,-44.0 -132.0,-37.4 -121.0,-42.9C-114.4,-46.2 -110.0,-44.0 -110.0,-39.6L-110.0,0.0M0.0,-110.0L39.6,-110.0C44.0,-110.0 46.2,-114.4 42.9,-121.0C37.4,-132.0 44.0,-139.7 55.0,-139.7C66.0,-139.7 72.6,-132.0 67.1,-121.0C63.8,-114.4 66.0,-110.0 70.4,-110.0L110.0,-110.0M0.0,-110.0L0.0,-70.4C0.0,-66.0 4.4,-63.8 11.0,-67.1C22.0,-72.6 29.7,-66.0 29.7,-55.0C29.7,-44.0 22.0,-37.4 11.0,-42.9C4.4,-46.2 0.0,-44.0 0.0,-39.6L0.0,0.0M110.0,-110.0L149.6,-110.0C154.0,-110.0 156.2,-105.6 152.9,-99.0C147.4,-88.0 154.0,-80.3 165.0,-80.3C176.0,-80.3 182.6,-88.0 177.1,-99.0C173.8,-105.6 176.0,-110.0 180.4,-110.0L220.0,-110.0M110.0,-110.0L110.0,-70.4C110.0,-66.0 105.6,-63.8 99.0,-67.1C88.0,-72.6 80.3,-66.0 80.3,-55.0C80.3,-44.0 88.0,-37.4 99.0,-42.9C105.6,-46.2 110.0,-44.0 110.0,-39.6L110.0,0.0M220.0,-110.0L259.6,-110.0C264.0,-110.0 266.2,-114.4 262.9,-121.0C257.4,-132.0 264.0,-139.7 275.0,-139.7C286.0,-139.7 292.6,-132.0 287.1,-121.0C283.8,-114.4 286.0,-110.0 290.4,-110.0L330.0,-110.0M220.0,-110.0L220.0,-70.4C220.0,-66.0 224.4,-63.8 231.0,-67.1C242.0,-72.6 249.7,-66.0 249.7,-55.0C249.7,-44.0 242.0,-37.4 231.0,-42.9C224.4,-46.2 220.0,-44.0 220.0,-39.6L220.0,0.0M-110.0,0.0L-70.4,0.0C-66.0,0.0 -63.8,-4.4 -67.1,-11.0C-72.6,-22.0 -66.0,-29.7 -55.0,-29.7C-44.0,-29.7 -37.4,-22.0 -42.9,-11.0C-46.2,-4.4 -44.0,0.0 -39.6,0.0L0.0,0.0M-110.0,0.0L-110.0,39.6C-110.0,44.0 -105.6,46.2 -99.0,42.9C-88.0,37.4 -80.3,44.0 -80.3,55.0C-80.3,66.0 -88.0,72.6 -99.0,67.1C-105.6,63.8 -110.0,66.0 -110.0,70.4L-110.0,110.0M0.0,0.0L39.6,0.0C44.0,0.0 46.2,4.4 42.9,11.0C37.4,22.0 44.0,29.7 55.0,29.7C66.0,29.7 72.6,22.0 67.1,11.0C63.8,4.4 66.0,0.0 70.4,0.0L110.0,0.0M0.0,0.0L0.0,39.6C0.0,44.0 -4.4,46.2 -11.0,42.9C-22.0,37.4 -29.7,44.0 -29.7,55.0C-29.7,66.0 -22.0,72.6 -11.0,67.1C-4.4,63.8 0.0,66.0 0.0,70.4L0.0,110.0M110.0,0.0L149.6,0.0C154.0,0.0 156.2,-4.4 152.9,-11.0C147.4,-22.0 154.0,-29.7 165.0,-29.7C176.0,-29.7 182.6,-22.0 177.1,-11.0C173.8,-4.4 176.0,0.0 180.4,0.0L220.0,0.0M110.0,0.0L110.0,39.6C110.0,44.0 114.4,46.2 121.0,42.9C132.0,37.4 139.7,44.0 139.7,55.0C139.7,66.0 132.0,72.6 121.0,67.1C114.4,63.8 110.0,66.0 110.0,70.4L110.0,110.0M220.0,0.0L259.6,0.0C264.0,0.0 266.2,4.4 262.9,11.0C257.4,22.0 264.0,29.7 275.0,29.7C286.0,29.7 292.6,22.0 287.1,11.0C283.8,4.4 286.0,0.0 290.4,0.0L330.0,0.0M220.0,0.0L220.0,39.6C220.0,44.0 215.6,46.2 209.0,42.9C198.0,37.4 190.3,44.0 190.3,55.0C190.3,66.0 198.0,72.6 209.0,67.1C215.6,63.8 220.0,66.0 220.0,70.4L220.0,110.0M-110.0,110.0L-70.4,110.0C-66.0,110.0 -63.8,114.4 -67.1,121.0C-72.6,132.0 -66.0,139.7 -55.0,139.7C-44.0,139.7 -37.4,132.0 -42.9,121.0C-46.2,114.4 -44.0,110.0 -39.6,110.0L0.0,110.0M-110.0,110.0L-110.0,149.6C-110.0,154.0 -114.4,156.2 -121.0,152.9C-132.0,147.4 -139.7,154.0 -139.7,165.0C-139.7,176.0 -132.0,182.6 -121.0,177.1C-114.4,173.8 -110.0,176.0 -110.0,180.4L-110.0,220.0M0.0,110.0L39.6,110.0C44.0,110.0 46.2,105.6 42.9,99.0C37.4,88.0 44.0,80.3 55.0,80.3C66.0,80.3 72.6,88.0 67.1,99.0C63.8,105.6 66.0,110.0 70.4,110.0L110.0,110.0M0.0,110.0L0.0,149.6C0.0,154.0 4.4,156.2 11.0,152.9C22.0,147.4 29.7,154.0 29.7,165.0C29.7,176.0 22.0,182.6 11.0,177.1C4.4,173.8 0.0,176.0 0.0,180.4L0.0,220.0M110.0,110.0L149.6,110.0C154.0,110.0 156.2,114.4 152.9,121.0C147.4,132.0 154.0,139.7 165.0,139.7C176.0,139.7 182.6,132.0 177.1,121.0C173.8,114.4 176.0,110.0 180.4,110.0L220.0,110.0M110.0,110.0L110.0,149.6C110.0,154.0 105.6,156.2 99.0,152.9C88.0,147.4 80.3,154.0 80.3,165.0C80.3,176.0 88.0,182.6 99.0,177.1C105.6,173.8 110.0,176.0 110.0,180.4L110.0,220.0M220.0,110.0L259.6,110.0C264.0,110.0 266.2,105.6 262.9,99.0C257.4,88.0 264.0,80.3 275.0,80.3C286.0,80.3 292.6,88.0 287.1,99.0C283.8,105.6 286.0,110.0 290.4,110.0L330.0,110.0M220.0,110.0L220.0,149.6C220.0,154.0 224.4,156.2 231.0,152.9C242.0,147.4 249.7,154.0 249.7,165.0C249.7,176.0 242.0,182.6 231.0,177.1C224.4,173.8 220.0,176.0 220.0,180.4L220.0,220.0M-110.0,220.0L-70.4,220.0C-66.0,220.0 -63.8,215.6 -67.1,209.0C-72.6,198.0 -66.0,190.3 -55.0,190.3C-44.0,190.3 -37.4,198.0 -42.9,209.0C-46.2,215.6 -44.0,220.0 -39.6,220.0L0.0,220.0M-110.0,220.0L-110.0,259.6C-110.0,264.0 -105.6,266.2 -99.0,262.9C-88.0,257.4 -80.3,264.0 -80.3,275.0C-80.3,286.0 -88.0,292.6 -99.0,287.1C-105.6,283.8 -110.0,286.0 -110.0,290.4L-110.0,330.0M0.0,220.0L39.6,220.0C44.0,220.0 46.2,224.4 42.9,231.0C37.4,242.0 44.0,249.7 55.0,249.7C66.0,249.7 72.6,242.0 67.1,231.0C63.8,224.4 66.0,220.0 70.4,220.0L110.0,220.0M0.0,220.0L0.0,259.6C0.0,264.0 -4.4,266.2 -11.0,262.9C-22.0,257.4 -29.7,264.0 -29.7,275.0C-29.7,286.0 -22.0,292.6 -11.0,287.1C-4.4,283.8 0.0,286.0 0.0,290.4L0.0,330.0M110.0,220.0L149.6,220.0C154.0,220.0 156.2,215.6 152.9,209.0C147.4,198.0 154.0,190.3 165.0,190.3C176.0,190.3 182.6,198.0 177.1,209.0C173.8,215.6 176.0,220.0 180.4,220.0L220.0,220.0M110.0,220.0L110.0,259.6C110.0,264.0 114.4,266.2 121.0,262.9C132.0,257.4 139.7,264.0 139.7,275.0C139.7,286.0 132.0,292.6 121.0,287.1C114.4,283.8 110.0,286.0 110.0,290.4L110.0,330.0M220.0,220.0L259.6,220.0C264.0,220.0 266.2,224.4 262.9,231.0C257.4,242.0 264.0,249.7 275.0,249.7C286.0,249.7 292.6,242.0 287.1,231.0C283.8,224.4 286.0,220.0 290.4,220.0L330.0,220.0M220.0,220.0L220.0,259.6C220.0,264.0 215.6,266.2 209.0,262.9C198.0,257.4 190.3,264.0 190.3,275.0C190.3,286.0 198.0,292.6 209.0,287.1C215.6,283.8 220.0,286.0 220.0,290.4L220.0,330.0' fill='none' stroke='%23d4d4ce' stroke-width='1.4'/%3E%3C/svg%3E");
  background-size: 220px 220px;
  overflow: hidden;
  padding: 44px 48px 48px;
  position: relative;
}
/* 右上・左下に、大きなパズルのピース（白地に影）を少しはみ出させて置く */
.r-wp2__piece {
  background: #fff;
  box-shadow: 0 14px 30px rgba(0,0,0,.12);
  height: 180px;
  pointer-events: none;
  position: absolute;
  width: 180px;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M20 20h20c-4-12 24-12 20 0h20v20c12-4 12 24 0 20v20H60c4 12-24 12-20 0H20V60c-12 4-12-24 0-20z'/%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 100 100'%3E%3Cpath d='M20 20h20c-4-12 24-12 20 0h20v20c12-4 12 24 0 20v20H60c4 12-24 12-20 0H20V60c-12 4-12-24 0-20z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.r-wp2__piece--a { background: #e60013; opacity: .9; right: -46px; top: -40px; transform: rotate(14deg); }
.r-wp2__piece--b { background: #1e1e1e; bottom: -70px; height: 150px; left: -50px; opacity: .9; transform: rotate(-10deg); width: 150px; }
.r-wp2 > *:not(.r-wp2__piece) { position: relative; z-index: 1; }
.r-wp2 .r-panel__head { border-bottom: 2px solid #1e1e1e; }
.r-wp2 .r-panel__head::before { background: #e60013; }
.r-wp2 .r-panel__title { color: #1e1e1e; font-size: 2rem; letter-spacing: .04em; word-break: keep-all; }
.r-wp2 .r-panel__more { color: #1e1e1e !important; }

.r-wp2__grid { align-items: center; display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); margin-top: 28px; }
/* 左：ロゴの画像を少し傾けたカードに。キャッチは大きく */
.r-wp2__visual { border: 6px solid #fff; box-shadow: 0 16px 34px rgba(0,0,0,.18); display: block; height: auto; transform: rotate(-2deg); transition: transform .4s ease; width: 100%; }
.r-wp2__intro:hover .r-wp2__visual { transform: rotate(0deg) scale(1.02); }
.r-wp2__catch { color: #1e1e1e; font-size: 1.6rem; font-weight: 800; line-height: 1.4; margin-top: 28px; word-break: keep-all; }
.r-wp2__catch b { background: linear-gradient(transparent 60%, rgba(230,0,19,.18) 60%); color: #e60013; font-size: 1.25em; padding: 0 2px; }
.r-wp2__text { color: #333; font-size: 0.8rem; line-height: 1.85; margin-top: 12px; }
.r-wp2__fee { align-items: center; background: #1e1e1e; color: #fff; display: inline-flex; gap: 12px; margin-top: 20px; padding: 10px 20px 10px 16px; }
.r-wp2__fee span { border-right: 1px solid rgba(255,255,255,.4); font-size: 0.75rem; font-weight: 700; padding-right: 12px; }
.r-wp2__fee b { font-size: 1.6rem; font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; }
.r-wp2__fee small { font-size: .55em; margin-left: 2px; }

/* 右：得点板。黒い板に、タイムを大きな数字で。1位の行だけ赤い帯で強調する */
.r-wp2__board { background: #161616; border-radius: 14px; box-shadow: 0 20px 44px rgba(0,0,0,.28); color: #fff; padding: 26px 26px 24px; }
.r-wp2__board-head { align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.18); display: flex; justify-content: space-between; margin-bottom: 18px; padding-bottom: 12px; }
.r-wp2__board-title { font-size: 1.15rem; font-weight: 800; letter-spacing: .06em; }
.r-wp2__board-title::before { color: #e60013; content: "●"; font-size: .6em; margin-right: 8px; vertical-align: middle; }
.r-wp2__asof small { color: #cfcfcf; font-size: 0.7rem; }
.r-wp2__divs { display: grid; gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.r-wp2__div h3 { color: #fff; font-size: 0.75rem; font-weight: 700; letter-spacing: .08em; margin-bottom: 8px; }
.r-wp2__div ol { display: grid; gap: 6px; }
.r-wp2__div li { align-items: center; background: rgba(255,255,255,.06); border-radius: 8px; display: grid; gap: 10px; grid-template-columns: auto minmax(0, 1fr) auto; padding: 10px 12px; }
.r-wp2__div li:first-child { background: #e60013; padding: 14px 12px; }
.r-wp2 .r-wp__no { font-size: 0.65rem; height: 24px; width: 24px; }
.r-wp2__div li:first-child .r-wp__no { background: #fff; color: #e60013; }
.r-wp2 .r-wp__name { color: #fff; font-size: 0.75rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r-wp2 .r-wp__time { color: #fff; font-family: "Helvetica Neue", Arial, sans-serif; font-size: 1.15rem; font-variant-numeric: tabular-nums; font-weight: 800; letter-spacing: .02em; }
.r-wp2__div li:first-child .r-wp__time { font-size: 1.45rem; }
.r-wp2 .r-wp__empty { background: none !important; color: #ddd; display: block; font-size: 0.75rem; }
.r-wp2__all { border: 1px solid rgba(255,255,255,.6); border-radius: 999px; color: #fff !important; display: block; font-size: 0.75rem; font-weight: 700; margin-top: 18px; padding: 11px; text-align: center; transition: background .2s, color .2s; }
.r-wp2__all::after { content: " →"; }
.r-wp2__all:hover { background: #fff; color: #161616 !important; }
/* 動き：板が出てくるとき、順位の行が上から順に出る */
@media (prefers-reduced-motion: no-preference) {
  .r-wp2.r-reveal:not(.is-shown) .r-wp2__div li { opacity: 0; transform: translateY(10px); }
  .r-wp2__div li { transition: opacity .5s ease, transform .5s ease; }
  .r-wp2__div li:nth-child(2) { transition-delay: .12s; }
  .r-wp2__div li:nth-child(3) { transition-delay: .24s; }
}
@media screen and (max-width: 959px) {
  .r-wp2 { padding: 28px 16px 32px; }
  .r-wp2 .r-panel__title { font-size: 1.5rem; }
  .r-wp2__grid { gap: 28px; grid-template-columns: minmax(0, 1fr); }
  .r-wp2__catch { font-size: 1.3rem; }
  .r-wp2__piece--a { height: 120px; right: -40px; top: -36px; width: 120px; }
  .r-wp2__piece--b { display: none; }
}
@media screen and (max-width: 520px) {
  .r-wp2__board { padding: 18px 14px; }
  .r-wp2__divs { grid-template-columns: minmax(0, 1fr); }
}
/* 調整：赤いピースは見出しのリンクにかからないよう、得点板の右横からのぞかせる。名前は省略せず折り返す */
.r-wp2__piece--a { height: 150px; right: -78px; top: 46%; transform: rotate(18deg); width: 150px; }
.r-wp2 .r-wp__name { line-height: 1.35; overflow: visible; text-overflow: clip; white-space: normal; word-break: break-all; }
@media screen and (max-width: 959px) { .r-wp2__piece--a { height: 110px; right: -50px; top: 30%; width: 110px; } }
@media screen and (max-width: 959px) {
  .r-wp2__piece--a { height: 96px; right: -34px; top: -28px; width: 96px; }
  .r-wp2 .r-panel__head { padding-right: 48px; }
  .r-wp2__board-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  .r-wp2__board-title { word-break: keep-all; }
}
/* ===== 写真スライド＋新ロゴ ===== */
.r-wp2__grid { align-items: start; }
.r-wp2__shots { border: 6px solid #fff; box-shadow: 0 16px 34px rgba(0,0,0,.18); position: relative; }
.r-wp2__shots img { aspect-ratio: 16 / 9; display: block; height: auto; object-fit: cover; width: 100%; }
.r-wp2__shots .splide__slide { position: relative; }
.r-wp2__cap { background: linear-gradient(to top, rgba(0,0,0,.72), transparent); bottom: 0; color: #fff; font-size: .75rem; font-weight: 700; left: 0; padding: 32px 14px 10px; position: absolute; right: 0; }
.r-wp2__shots .splide__arrow { background: #fff; opacity: 1; }
.r-wp2__shots .splide__arrow svg { fill: #e60013; }
.r-wp2__shots .splide__pagination { bottom: 10px; justify-content: flex-end; left: auto; padding: 0 12px; right: 0; }
.r-wp2__shots .splide__pagination__page { background: rgba(255,255,255,.6); }
.r-wp2__shots .splide__pagination__page.is-active { background: #e60013; }
.r-wp2__right { display: flex; flex-direction: column; gap: 18px; }
.r-wp2__logo { align-self: center; display: block; height: auto; width: 46%; }
@media screen and (max-width: 959px) { .r-wp2__logo { width: 56%; } .r-wp2__right { gap: 14px; } }
@media screen and (min-width: 960px) {
  .r-wp2__grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); }
  .r-wp2__logo { width: 38%; }
  .r-wp2__catch { margin-top: 22px; }
}
/* スマホ：ロゴ → 写真 → キャッチ・説明・参加費 → 得点板 の順に */
@media screen and (max-width: 959px) {
  .r-wp2__grid { display: flex; flex-direction: column; gap: 0; }
  .r-wp2__intro, .r-wp2__right { display: contents; }
  .r-wp2__logo { order: 1; margin: 4px auto 22px; width: 52%; }
  .r-wp2__shots { order: 2; }
  .r-wp2__catch, .r-wp2__text { order: 3; }
  .r-wp2__fee { order: 4; align-self: flex-start; margin-bottom: 26px; }
  .r-wp2__board { order: 5; }
}

/* 得点板：「リアルタイムで更新中！」の札（点が点滅して、今も動いていることを伝える） */
.r-wp2__board-titles { align-items: center; display: flex; flex-wrap: wrap; gap: 8px 14px; }
.r-wp2__live { align-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; color: #fff; display: inline-flex; font-size: 0.6rem; font-weight: 700; gap: 6px; letter-spacing: .04em; padding: 5px 10px 5px 8px; }
.r-wp2__live-dot { background: #ff3b47; border-radius: 50%; box-shadow: 0 0 0 0 rgba(255,59,71,.7); height: 8px; width: 8px; }
@media (prefers-reduced-motion: no-preference) {
  .r-wp2__live-dot { animation: r-wp2-live 1.6s ease-out infinite; }
  @keyframes r-wp2-live { 0% { box-shadow: 0 0 0 0 rgba(255,59,71,.7); } 70% { box-shadow: 0 0 0 7px rgba(255,59,71,0); } 100% { box-shadow: 0 0 0 0 rgba(255,59,71,0); } }
}
.r-wp2__asof { flex-shrink: 0; white-space: nowrap; }
.r-wp2__board-head { align-items: flex-start; gap: 12px; }

/* ===== 全体の面の組み立て（2026-10-25 塩野さん承認）：帯（画面の端まで・上下は波）と、宇宙の背景に直接のせる節を交互にする。節は top.njk の data-band で指定 ===== */
/* 画面の幅の半分。100vw は縦スクロールバーの幅も数えるので、帯が左右に数pxはみ出して
   横スクロールが出てしまう（Windows の Chrome／Edge など、スクロールバーが場所を取る環境）。
   function.js が body の幅から出している --vw（1%ぶん）を使って、バーを除いた半分にする。
   JavaScript が動かないときだけ 1vw に戻るが、下の overflow-x: clip で横スクロールは出ない */
:root { --vw-50: calc(var(--vw, 1vw) * 50); }
body.renewal-top { overflow-x: clip; }
:root { --band-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 60V28C240 2 480 0 720 22s480 30 720 6v32z'/%3E%3C/svg%3E"); }
[data-band] { position: relative; }
/* 帯にする節：中の白い枠を画面の端まで広げ、角丸・影をなくす。上下は既存HPと同じく波で切る */
[data-band="deck"], [data-band="fac"], [data-band="wp"], [data-band="items"], [data-band="access"] { margin: 70px 0; padding: 0; }
[data-band="fac"] .r-panel, [data-band="wp"] .r-panel, [data-band="items"] .r-panel, [data-band="access"] .r-panel {
  border-radius: 0; box-shadow: none; margin-left: calc(50% - var(--vw-50)); margin-right: calc(50% - var(--vw-50));
  padding: 80px max(24px, calc(var(--vw-50) - 616px)) 84px; position: relative;
}
[data-band] .r-panel::after { display: none; }
/* 波の縁（上下） */
[data-band="fac"] .r-panel::before, [data-band="wp"] .r-panel::before, [data-band="items"] .r-panel::before, [data-band="access"] .r-panel::before,
[data-band="deck"]::before { background: inherit; content: ""; height: 46px; left: 0; position: absolute; right: 0; top: -45px; -webkit-mask: var(--band-wave) center / 100% 100% no-repeat; mask: var(--band-wave) center / 100% 100% no-repeat; }
[data-band="fac"] .r-panel > :last-child, [data-band="items"] .r-panel > :last-child { margin-bottom: 0; }
.r-band-foot { display: none; }

/* 1. 新着・カレンダー：白い帯の中に、枠なしの列として並べる（既存HPと同じ考え方） */
[data-band="deck"] { background: #fff; padding: 56px 0 64px; }
[data-band="deck"]::before { background: #fff; }
[data-band="deck"]::after { background: #fff; bottom: -45px; content: ""; height: 46px; left: 0; position: absolute; right: 0; transform: scaleY(-1); -webkit-mask: var(--band-wave) center / 100% 100% no-repeat; mask: var(--band-wave) center / 100% 100% no-repeat; }
[data-band="deck"] .r-panel { border-radius: 0; box-shadow: none; padding: 8px 4px; }
[data-band="deck"] .r-panel--cal { border-right: 1px solid #dfe5ec; padding-right: 32px; }

/* 2. 施設紹介：紺の帯 */
[data-band="fac"] .r-panel { background-color: #0b2340; }

/* 3. 公式アプリ：帯にせず、宇宙の背景に浮かぶ1枚のカードに（帯が続きすぎないよう、ここで背景を見せる） */
[data-band="app"] { margin: 90px 0; }
[data-band="app"] .r-panel { box-shadow: 0 30px 70px rgba(0,0,0,.55); }

/* 4. ホワイトパズル：白いパズル柄の帯（端まで） */
[data-band="wp"] .r-panel { background-color: #fbfbfa; }
[data-band="wp"] .r-wp2__piece--a { right: max(-60px, calc(var(--vw-50) - 700px)); }

/* 5. ピックアップ：白い枠をやめ、宇宙の背景に直接カードを並べる（見出しは白） */
[data-band="pick"] { margin: 90px 0; }
[data-band="pick"] .r-panel { background: transparent; box-shadow: none; padding: 0; }
[data-band="pick"] .r-panel__head { border-bottom-color: rgba(255,255,255,.25); }
[data-band="pick"] .r-panel__title { color: #fff; font-size: 2rem; }
[data-band="pick"] .r-panel__more { color: #7fd3f5 !important; }
[data-band="pick"] img { border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.5); }
[data-band="pick"] a, [data-band="pick"] p, [data-band="pick"] h3 { color: #fff; }

/* 6. おすすめアイテム：あたたかい色の帯 */
[data-band="items"] .r-panel { background: #f6efe4; }

/* 7. アクセス：白い帯（下はフッターの波につながる） */
[data-band="access"] { margin-bottom: 0; }
[data-band="access"] .r-panel { background: #fff; padding-bottom: 140px; }

/* 帯と帯のあいだは、宇宙の背景が見えるよう間隔をあける */
[data-band="fac"] + [data-band="app"], [data-band="app"] + [data-band="wp"] { margin-top: 110px; }
@media screen and (max-width: 959px) {
  [data-band="fac"] .r-panel, [data-band="wp"] .r-panel, [data-band="items"] .r-panel, [data-band="access"] .r-panel { padding: 56px 16px 60px; }
  [data-band="deck"] .r-panel--cal { border-right: 0; padding-right: 4px; }
  [data-band="pick"] .r-panel__title { font-size: 1.5rem; }
}
/* 波の縁を切らないよう、帯は横方向だけはみ出しを隠す */
[data-band="fac"] .r-panel, [data-band="wp"] .r-panel { overflow: visible; overflow-x: clip; }
/* 帯の下の縁も波にする */
[data-band="fac"] .r-panel::after, [data-band="wp"] .r-panel::after, [data-band="items"] .r-panel::after {
  background: inherit; border: 0; border-radius: 0; bottom: -45px; content: ""; display: block; height: 46px; left: 0; position: absolute; right: 0; top: auto; transform: scaleX(-1) scaleY(-1); width: auto;
  -webkit-mask: var(--band-wave) center / 100% 100% no-repeat; mask: var(--band-wave) center / 100% 100% no-repeat;
}
[data-band="deck"] { margin-bottom: 130px; }
[data-band="fac"], [data-band="wp"], [data-band="items"] { margin-bottom: 120px; }

/* ファーストビュー：コピーの下に所在地（どこにある施設かを最初の画面で伝える。2026-10-25 塩野さんの指示） */
.r-fv__place { align-items: center; border: 1px solid rgba(255,255,255,.55); border-radius: 999px; color: #fff; display: flex; font-size: clamp(11px, 0.95vw, 17px); font-weight: 700; gap: .45em; letter-spacing: .12em; margin: 0.9em auto 0 !important; padding: .35em 1.1em .35em .9em; text-shadow: 0 2px 10px rgba(0,0,0,.8); width: fit-content; background: rgba(0,0,0,.28); }
.r-fv__pin { background: #ffd23f; display: inline-block; height: 1.05em; width: .8em;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 22'%3E%3Cpath d='M8 0a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6z'/%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 16 22'%3E%3Cpath d='M8 0a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6z'/%3E%3C/svg%3E") center / contain no-repeat; }
@media screen and (max-width: 959px) { .r-fv__place { font-size: clamp(10px, 2.9vw, 13px); } }

/* ===== 公式アプリ（2026-10-25 塩野さんのイメージ「見本v3」）：淡い水色の帯（端まで、上下は波）＋軌道と惑星のあしらい＋大きな見出し＋特典の面＋実機の画面 ===== */
[data-band="app"] { margin: 70px 0 120px; }
.r-app3 { background: #f2f7fb; overflow-x: clip; padding: 96px 0 100px; position: relative; }
.r-app3::before, .r-app3::after { background: #f2f7fb; content: ""; height: 46px; left: 0; position: absolute; right: 0; -webkit-mask: var(--band-wave) center / 100% 100% no-repeat; mask: var(--band-wave) center / 100% 100% no-repeat; }
.r-app3::before { top: -45px; }
.r-app3::after { bottom: -45px; transform: scale(-1, -1); }
.r-app3__inner { align-items: center; display: grid; gap: 40px; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); position: relative; z-index: 1; }

/* あしらい：右側に大きな軌道の弧、黄色い惑星、水色の点と星 */
.r-app3__deco { inset: 0; overflow: hidden; pointer-events: none; position: absolute; }
.r-app3__orbit { border: 1.5px solid #cfe1ee; border-radius: 50%; height: 1100px; position: absolute; right: -360px; top: 20px; width: 1100px; }
.r-app3__orbit::after { background: radial-gradient(circle, #dfeef8 0 58%, transparent 59%); border-radius: 50%; content: ""; height: 560px; left: 50%; position: absolute; top: 130px; transform: translateX(-30%); width: 560px; }
.r-app3__planet { background: #ffd66b; border-radius: 50%; height: 300px; position: absolute; right: -120px; top: 60px; width: 300px; }
.r-app3__dot { background: #8fcbef; border-radius: 50%; position: absolute; }
.r-app3__dot--1 { height: 20px; left: 56%; top: 170px; width: 20px; }
.r-app3__dot--2 { height: 13px; right: 7%; top: 58%; width: 13px; }
.r-app3__dot--3 { height: 10px; left: 60%; top: 82%; width: 10px; }
.r-app3__spark { color: #f6c445; font-size: 26px; position: absolute; }
.r-app3__spark--1 { left: 61%; top: 33%; }
.r-app3__spark--2 { right: 5%; top: 86%; }

/* 文章 */
.r-app3__kicker { border-bottom: 3px solid #0f6fb0; color: #0f6fb0; display: inline-block; font-size: 0.8rem; font-weight: 700; letter-spacing: .14em; padding-bottom: 6px; }
.r-app3__title { color: #12233a; font-size: 3.6rem; font-weight: 900; letter-spacing: .02em; line-height: 1.15; margin: 26px 0 26px; }
.r-app3__lead { color: #12233a; font-size: 1.1rem; font-weight: 800; line-height: 1.6; }
.r-app3__sub { color: #2d3a4a; font-size: 0.8rem; margin-top: 8px; }
/* 特典：淡い黄色の面。左に「100円引き」を大きく、右に使い方 */
.r-app3__offer { align-items: center; background: #fff3c4; box-shadow: 0 18px 40px rgba(18,35,58,.10); display: grid; gap: 28px; grid-template-columns: auto minmax(0, 1fr); margin: 30px 0 28px; max-width: 660px; padding: 24px 30px; }
.r-app3__offer-label { background: #ffc62b; color: #12233a; display: inline-block; font-size: 0.7rem; font-weight: 800; padding: 5px 12px; }
.r-app3__offer-shop { color: #12233a; font-size: 1.05rem; font-weight: 800; margin-top: 10px; }
.r-app3__offer-price { color: #12233a; font-size: 1.75rem; font-weight: 900; line-height: 1; margin-top: 4px; white-space: nowrap; }
.r-app3__offer-price b { font-size: 4.6rem; letter-spacing: -.02em; margin-right: 2px; }
.r-app3__offer-side { border-left: 1px solid #e6c97a; padding-left: 28px; }
.r-app3__offer-head { color: #12233a; font-size: 1.2rem; font-weight: 800; line-height: 1.55; }
.r-app3__offer-note { color: #2d3a4a; font-size: 0.72rem; line-height: 1.75; margin-top: 10px; }
/* ストアのボタン：黒 */
.r-app3__stores { display: flex; flex-wrap: wrap; gap: 16px; }
.r-app3__store { background: #111; box-shadow: 0 10px 22px rgba(0,0,0,.22); color: #fff !important; display: flex; flex-direction: column; min-width: 250px; padding: 12px 24px; text-decoration: none !important; transition: transform .2s, box-shadow .2s; }
.r-app3__store b { font-size: 1.25rem; font-weight: 800; line-height: 1.2; }
.r-app3__store small { font-size: 0.65rem; font-weight: 700; margin-top: 2px; }
.r-app3__store:hover { box-shadow: 0 14px 28px rgba(0,0,0,.28); transform: translateY(-2px); }
.r-app3__link { border-bottom: 2px solid #0f6fb0; color: #0f6fb0 !important; display: inline-block; font-size: 0.85rem; font-weight: 800; margin-top: 22px; padding-bottom: 3px; text-decoration: none !important; }
/* できること：小さな画面と名前を、細い線で区切って横に並べる */
.r-app3__feats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 30px; max-width: 640px; }
.r-app3__feats li { align-items: center; display: flex; flex-direction: column; gap: 10px; }
.r-app3__feats li + li { border-left: 1px solid #d7e1ea; }
.r-app3__fimg { background: #fff; box-shadow: 0 6px 14px rgba(18,35,58,.12); display: block; padding: 3px; width: 72px; }
.r-app3__fimg img { aspect-ratio: 1; display: block; height: auto; object-fit: cover; object-position: top; width: 100%; }
.r-app3__fname { color: #12233a; font-size: 0.8rem; font-weight: 800; }
.r-app3__more { color: #2d3a4a; font-size: 0.72rem; margin-top: 16px; }
/* 実機の画面 */
.r-app3__phone { justify-self: center; }
.r-app3__phone img { border: 10px solid #111; border-radius: 40px; box-shadow: 0 30px 60px rgba(18,35,58,.28); display: block; height: auto; max-width: 320px; width: 100%; }
@media (prefers-reduced-motion: no-preference) {
  .r-app3__phone img { animation: r-app3-float 6s ease-in-out infinite; }
  @keyframes r-app3-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
}
@media screen and (max-width: 1100px) { .r-app3__title { font-size: 3rem; } .r-app3__offer-price b { font-size: 3.8rem; } }
@media screen and (max-width: 959px) {
  .r-app3 { padding: 64px 0 70px; }
  .r-app3__inner { gap: 32px; grid-template-columns: minmax(0, 1fr); }
  .r-app3__phone { order: -1; }
  .r-app3__phone img { max-width: 230px; }
  .r-app3__title { font-size: 2.3rem; margin: 18px 0; }
  .r-app3__lead { font-size: 1rem; }
  .r-app3__offer { gap: 16px; grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .r-app3__offer-side { border-left: 0; border-top: 1px solid #e6c97a; padding: 14px 0 0; }
  .r-app3__offer-price b { font-size: 3.4rem; }
  .r-app3__store { flex: 1 1 100%; min-width: 0; }
  .r-app3__feats { gap: 10px 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r-app3__feats li:nth-child(3) { border-left: 0; }
  .r-app3__planet { height: 160px; right: -70px; top: 30px; width: 160px; }
  .r-app3__orbit { height: 640px; right: -300px; top: 10px; width: 640px; }
  .r-app3__orbit::after { display: none; }
  .r-app3__dot--1, .r-app3__spark--1 { display: none; }
}
.r-app3 p { margin-bottom: 0 !important; }
.r-app3__offer-shop { margin-top: 12px !important; }
.r-app3__offer-price { margin-top: 2px !important; }
.r-app3__offer-note { margin-top: 10px !important; }
.r-app3__sub { margin-top: 8px !important; }
.r-app3__more { margin-top: 16px !important; }
@media screen and (min-width: 960px) { .r-app3__inner { padding-left: 56px; padding-right: 40px; } .r-app3 { padding-bottom: 80px; } }
.r-app3__lead, .r-app3__sub, .r-app3__more { word-break: keep-all; overflow-wrap: anywhere; }
/* 縦を短く（2026-10-25）：見出しは1行、余白と画面の高さを詰める */
.r-app3 { padding: 64px 0 60px; }
@media screen and (min-width: 960px) { .r-app3 { padding-bottom: 56px; } }
.r-app3__title { font-size: 3rem; margin: 16px 0 14px; white-space: nowrap; }
.r-app3__offer { margin: 22px 0 20px; padding: 18px 26px; }
.r-app3__offer-price b { font-size: 3.9rem; }
.r-app3__link { margin-top: 16px; }
.r-app3__feats { margin-top: 22px; }
.r-app3__fimg { width: 60px; }
.r-app3__phone img { max-width: 270px; }
.r-app3__planet { height: 240px; top: 40px; width: 240px; }
.r-app3__orbit { height: 900px; top: 10px; width: 900px; }
@media screen and (max-width: 1100px) { .r-app3__title { font-size: 2.6rem; } }
@media screen and (max-width: 959px) {
  .r-app3 { padding: 48px 0 52px; }
  .r-app3__title { font-size: 2rem; white-space: normal; word-break: keep-all; }
  .r-app3__phone img { max-width: 190px; }
}

/* ピックアップ：画像は切らずに全体を表示（左右に余白が出てもよい／2026-10-25 塩野さん指示） */
[data-band="pick"] .r-pick__img { align-items: center; aspect-ratio: 1 / 1; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.45); display: flex; justify-content: center; }
[data-band="pick"] .r-pick__img img, [data-band="pick"] li:first-child .r-pick__img img { aspect-ratio: auto; border-radius: 0; box-shadow: none; height: 100%; object-fit: contain; width: 100%; }
[data-band="pick"] .r-pick__title { color: #fff; }
[data-band="pick"] .r-pick__text { color: #d6e2f2; }
@media screen and (max-width: 959px) {
  [data-band="pick"] li:first-child .r-pick__img { aspect-ratio: 16 / 10; }
}

/* 2階のボタンに「古座サテライトオフィスについて」を並べる（2026-10-29 塩野さんの指示）。
   形と大きさは隣のボタンと同じ。外部リンクなので印を付ける。スマホでは縦に並べる */
.r-more-btn--external::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 3h7v7h-2V6.41l-9.29 9.3-1.42-1.42 9.3-9.29H14V3zM5 5h5v2H7v10h10v-3h2v5H5V5z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M14 3h7v7h-2V6.41l-9.29 9.3-1.42-1.42 9.3-9.29H14V3zM5 5h5v2H7v10h10v-3h2v5H5V5z'/></svg>");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
@media screen and (max-width: 767px) {
  .r-fl__links {
    flex-direction: column;
    align-items: stretch;
  }
  .r-fl__links .r-more-btn {
    justify-content: center;
  }
}
