@charset "utf-8";

/* =============================================================
   Foundation
   -------------------------------------------------------------
   デザイン原寸 : 2160 × 1133 (=1.5倍相当)
   実装基準幅   : 1440px  →  1rem = 10px
   1440px 以下は vw で等比縮小
============================================================= */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  font-size: 10px;
}
@media screen and (max-width: 1440px) {
  html { font-size: 0.694444vw; }
}

body,
h1, h2, h3, p, ul, li, figure {
  margin: 0;
  padding: 0;
}
ul { list-style: none; }
img { max-width: 100%; height: auto; vertical-align: bottom; }
a { text-decoration: none; color: inherit; }

/* PC / SP 出し分け */
.u-sp { display: none; }

body {
  font-family: "fot-tsukubrdgothic-std", "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "ヒラギノ丸ゴ ProN W4", "Meiryo", sans-serif;
  font-weight: 700;
  color: #000;
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

/* =============================================================
   FV
============================================================= */
.p-fv {
  position: relative;
  width: 100%;
  background-color: #4de6ff;
  background-image: url("../img/mainBG.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% 75.5333rem;
  height: 75.4rem;
  overflow: hidden;
}

/* デザイン原寸 2160×1133 を 1/1.5 したステージ */
.p-fv__stage {
  position: relative;
  width: 144rem;
  height: 75.5333rem;
  margin: 0 auto;
}

/* ---------- ロゴ ---------- */
.p-fv__logo {
  position: absolute;
  top: 4.2rem;
  left: 21.8667rem;
  width: 18rem;
  line-height: 0;
}

/* ---------- 開催日 ---------- */
.p-fv__date {
  position: absolute;
  top: 8.9667rem;
  left: 25.42rem;
  line-height: 1;
  white-space: nowrap;
  font-weight: 700;
  color: #fff;
}
.p-fv__date-lead {
  font-size: 2.6333rem;
  letter-spacing: 0;
}
/* ＼ ／ */
.p-fv__slash {
  position: absolute;
  top: 13.6333rem;
  width: 0.4rem;
  height: 2.5333rem;
  background: #fff;
  border-radius: 0.2rem;
}
.p-fv__slash--l {
  left: 23.5rem;
  transform: translate(-50%, -50%) rotate(-43deg);
}
.p-fv__slash--r {
  left: 34.7333rem;
  transform: translate(-50%, -50%) rotate(43deg);
}
.p-fv__date-num {
  color: #000;
  font-weight: 700;
  font-size: 5.8667rem;
  letter-spacing: 0;
}
.p-fv__date-unit {
  font-size: 3.0667rem;
  letter-spacing: 0;
}
.p-fv__date-num--9  { margin-left: 4.1267rem; }
.p-fv__date-num--12 { margin-left: 1.0467rem; }
.p-fv__date-unit--m { margin-left: 0.68rem; }
.p-fv__date-unit--d { margin-left: 1.7rem; letter-spacing: -0.02em; }

/* ---------- タイトル ---------- */
.p-fv__title {
  position: absolute;
  top: 15.9333rem;
  left: 20.7333rem;
  width: 49.4667rem;
  height: 7.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 0.7333rem solid #000;
  border-radius: 3rem;
  box-shadow: 1.0667rem 1rem 0 #000;
}
.p-fv__title-in {
  font-size: 4.2667rem;
  line-height: 1;
  letter-spacing: 0;
  transform: translate(-1.2rem, -0.1833rem);
}

/* ---------- バッジ ---------- */
.p-fv__badges {
  position: absolute;
  top: 16.6rem;
  left: 72.5333rem;
  display: flex;
  flex-direction: column;
  gap: 0.3333rem;
}
.p-fv__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 12.4rem;
  height: 3.3333rem;
  border: 0.3333rem solid #000;
  border-radius: 5rem;
  font-size: 1.8667rem;
  line-height: 1;
  letter-spacing: 0;
}
.p-fv__badge--sm {
  height: 3.2rem;
  font-size: 1.6rem;
}

/* ---------- キャッチ ---------- */
.p-fv__dot {
  position: absolute;
  width: 2.0667rem;
  height: 2.0667rem;
  border-radius: 50%;
  background: #fff800;
}
.p-fv__dot--1 { top: 28.0333rem; left: 42.2667rem; }
.p-fv__dot--2 { top: 28.0333rem; left: 52.8667rem; }
.p-fv__dot--3 { top: 28.0333rem; left: 63.4667rem; }

.p-fv__catch {
  position: absolute;
  top: 29.4333rem;
  left: 24.4rem;
  line-height: 1;
  white-space: nowrap;
}
.p-fv__catch-sub {
  font-size: 5.7333rem;
  letter-spacing: 0;
}
.p-fv__catch-main {
  margin-left: 1.5rem;
  display: inline-block;
  transform: translateY(0.9rem);
  font-size: 9.7333rem;
  font-weight: 700;
  letter-spacing: 0.1525em;
  color: #fff;
  -webkit-text-stroke: 1.0667rem #000;
  paint-order: stroke fill;
}

.p-fv__catch2 {
  position: absolute;
  top: 41.4rem;
  left: 24.3333rem;
  font-size: 4.5333rem;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

/* ---------- ポイント ---------- */
.p-fv__points {
  position: absolute;
  top: 48.6667rem;
  left: 24.2667rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5333rem;
}
.p-fv__point {
  display: flex;
  align-items: center;
  height: 3.3333rem;
  padding: 0 1.1667rem;
  background: #fff;
  border-radius: 5rem;
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

.p-fv__lead {
  position: absolute;
  top: 59.4667rem;
  left: 20.4rem;
  font-size: 2.7333rem;
  line-height: 1;
  letter-spacing: -0.025em;
  white-space: nowrap;
}

/* ---------- イラスト ---------- */
.p-fv__man {
  position: absolute;
  top: 9.3333rem;
  left: 75.0667rem;
  display: block;
  width: 49.4rem;
  line-height: 0;
}
.p-fv__man img { width: 100%; }

/* ポイント1行目の全角スペース分 */
.p-fv__point-lead { margin-right: 1em; }

/* ---------- CTA ---------- */
.p-fv__gift {
  position: absolute;
  top: 48.4rem;
  left: 79.8667rem;
  width: 43.1333rem;
  text-align: center;
  font-size: 2.0667rem;
  line-height: 1;
  letter-spacing: 0.025em;
  text-indent: 0.025em;
  white-space: nowrap;
  transform: translateX(0.3333rem);
}

.p-fv__cta {
  position: absolute;
  top: 51.6667rem;
  left: 79.8667rem;
  width: 43.1333rem;
  height: 6.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff800;
  border: 0.4rem solid #000;
  border-radius: 5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.p-fv__cta:hover {
  transform: translateY(-0.2rem);
  box-shadow: 0 0.4rem 0 rgba(0, 0, 0, 0.25);
}
.p-fv__cta-txt {
  font-size: 3.7667rem;
  line-height: 1;
  letter-spacing: 0.015em;
  text-indent: 0.015em;
  transform: translate(-2.7rem, 0.1rem);
}
.p-fv__cta-icon {
  position: absolute;
  top: 50%;
  right: 3.5333rem;
  width: 4.5333rem;
  height: 4.4rem;
  margin-top: -2.2rem;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-fv__cta-icon svg {
  display: block;
  width: 1.6667rem;
  height: 2.2rem;
  transform: translateX(0.5333rem);
}

.p-fv__note {
  position: absolute;
  top: 59.3333rem;
  left: 79.8667rem;
  width: 43.1333rem;
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.01em;
  text-indent: 0.01em;
  transform: translateX(0.5rem);
}
.p-fv__note a {
  display: inline-block;
  margin-right: -0.01em;
  padding-bottom: 0.6667rem;
  border-bottom: 0.1333rem solid #000;
}

/* =============================================================
   ありがちな状況（FVに食い込ませる）
   -------------------------------------------------------------
   デザイン原寸 : 1441 × 611 (等倍) / 画像素材は1.5倍書き出し
============================================================= */
.p-problem {
  position: relative;
  z-index: 1;
  margin-top: -10.4rem;
  background: transparent;
  overflow-x: clip;
}
.p-problem__stage {
  position: relative;
  width: 144rem;
  height: 61.1rem;
  margin: 0 auto;
}

/* ---------- 見出し ---------- */
.p-problem__title {
  position: absolute;
  top: 4.1rem;
  left: 45.5rem;
  font-size: 3.42rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.p-problem__dots {
  margin-left: 0.9rem;
  letter-spacing: 0.33em;
}
.p-problem__wave {
  position: absolute;
  top: 8rem;
  left: 45.8rem;
  width: 50.8rem;
  height: 1.2rem;
  /* 1枚のSVGとして描画（Edgeのタイル境界の途切れ対策） */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='508' height='12' viewBox='0 0 508 12'%3E%3Cpath d='M0 5.9C6 1.9 18 1.9 24 5.9C30 9.9 42 9.9 48 5.9C54 1.9 66 1.9 72 5.9C78 9.9 90 9.9 96 5.9C102 1.9 114 1.9 120 5.9C126 9.9 138 9.9 144 5.9C150 1.9 162 1.9 168 5.9C174 9.9 186 9.9 192 5.9C198 1.9 210 1.9 216 5.9C222 9.9 234 9.9 240 5.9C246 1.9 258 1.9 264 5.9C270 9.9 282 9.9 288 5.9C294 1.9 306 1.9 312 5.9C318 9.9 330 9.9 336 5.9C342 1.9 354 1.9 360 5.9C366 9.9 378 9.9 384 5.9C390 1.9 402 1.9 408 5.9C414 9.9 426 9.9 432 5.9C438 1.9 450 1.9 456 5.9C462 9.9 474 9.9 480 5.9C486 1.9 498 1.9 504 5.9C510 9.9 522 9.9 528 5.9' fill='none' stroke='%2300F3FF' stroke-width='5'/%3E%3C/svg%3E");
  background-size: 50.8rem 1.2rem;
  background-repeat: no-repeat;
}

/* ---------- イラスト ---------- */
.p-problem__fig--1 {
  position: absolute;
  top: 11.4rem;
  left: 25.1rem;
  width: 15.6667rem;
}
.p-problem__fig--2 {
  position: absolute;
  top: 16.6rem;
  left: 103.1rem;
  width: 15.7333rem;
}

/* ---------- 状況リスト ---------- */
.p-problem__list {
  position: absolute;
  top: 10.9rem;
  left: 43.8rem;
}
.p-problem__list li {
  padding-left: 1.7rem;
  text-indent: -1.7rem;
  font-size: 2.04rem;
  font-weight: 700;
  line-height: 2.8rem;
  letter-spacing: 0;
}
.p-problem__list li + li {
  margin-top: 3.3rem;
}

/* ---------- まとめ文 ---------- */
.p-problem__lead {
  position: absolute;
  top: 38rem;
  left: 30.5rem;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-problem__marker {
  background: linear-gradient(#4de6ff, #4de6ff) no-repeat 0 calc(100% - 0.2rem) / 100% 0.6rem;
}

/* ---------- 結び ---------- */
.p-problem__conclusion {
  position: absolute;
  top: 45.6rem;
  left: 29rem;
  font-size: 5.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-problem__metabo {
  position: relative;
  display: inline-block;
  top: -0.3rem;
  margin: 0 6rem 0 3.95rem;
  font-size: 8.06rem;
  font-weight: 700;
  letter-spacing: 0.065em;
  color: #fff;
  -webkit-text-stroke: 0.6rem #000;
  paint-order: stroke fill;
}
.p-problem__metabo::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -1rem;
  bottom: -0.6rem;
  width: 44.3rem;
  height: 1.9rem;
  border-radius: 1rem;
  background: #00f3ff;
}
.p-problem__tail {
  letter-spacing: -0.47em;
  margin-left: 0.35rem;
  margin-right: 0.47em;
}
.p-problem__quote {
  position: absolute;
  top: 0.7rem;
  width: 2.7rem;
  height: 2.6rem;
  font-style: normal;
}
.p-problem__quote::before,
.p-problem__quote::after {
  content: "";
  position: absolute;
  top: 0;
  width: 1.3rem;
  height: 2.6rem;
  border: 0.3rem solid #000;
  border-radius: 50%;
  background: #fff;
}
.p-problem__quote::before { left: 0; }
.p-problem__quote::after  { right: 0; }
.p-problem__quote--l { left: -4.2rem; }
.p-problem__quote--r { left: auto; right: -3.6rem; }

/* =============================================================
   情報メタボを解消するには？
   -------------------------------------------------------------
   デザイン原寸 : 1441 × 905 (等倍) / 背景は1.5倍書き出し
============================================================= */
.p-solution {
  position: relative;
  overflow-x: clip;
  background-color: #4de6ff;
  background-image: url("../img/section3BG.png");
  background-repeat: no-repeat;
  background-position: center top;
  /* 素材下端の白3pxをセクション外にクリップ */
  background-size: 144rem 90.8rem;
}
.p-solution__stage {
  position: relative;
  width: 144rem;
  height: 90.5rem;
  margin: 0 auto;
}

/* ---------- 丸・三角 ---------- */
.p-solution__dot {
  position: absolute;
  left: 70.5rem;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: #fff;
}
.p-solution__dot--1 { top: 8.7rem; }
.p-solution__dot--2 { top: 13.4rem; }

.p-solution__tri {
  position: absolute;
  left: 70.6rem;
  width: 2.8rem;
  height: 2.6rem;
  line-height: 0;
}
.p-solution__tri--1 { top: 25.3rem; }
.p-solution__tri--2 { top: 30rem; }

/* ---------- 見出し ---------- */
.p-solution__mark {
  position: absolute;
  top: 21.2rem;
  left: 46.5rem;
  width: 48.8rem;
  height: 1.7rem;
  background: #fff800;
}
.p-solution__title {
  position: absolute;
  top: 18.15rem;
  left: 47.3rem;
  font-size: 3.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}

/* ---------- 帯 ---------- */
.p-solution__pill {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 5rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.p-solution__pill--1 {
  top: 36.6rem;
  left: 29.5rem;
  width: 83.2rem;
  height: 6.1rem;
  padding-right: 1.3rem;
  box-shadow: 0.9rem 0.7rem 0 #000;
  font-size: 3.37rem;
  letter-spacing: 0;
}
.p-solution__pill--2 {
  top: 45.3rem;
  left: 34.1rem;
  width: 75.3rem;
  height: 6.5rem;
  padding-bottom: 0.6rem;
  box-shadow: 0.8rem 0.8rem 0 #000;
  font-size: 4.15rem;
  letter-spacing: 0.013em;
  text-indent: 0.013em;
}

/* ---------- 本文 ---------- */
.p-solution__body {
  position: absolute;
  top: 56.3rem;
  left: 31.55rem;
  width: 88rem;
  font-size: 2.14rem;
  font-weight: 700;
  line-height: 3.74rem;
  letter-spacing: 0;
}
.p-solution__body em {
  font-style: normal;
  font-size: 3.8rem;
  line-height: 1;
  padding-bottom: 0.05rem;
  background: linear-gradient(#f3ff00, #f3ff00) no-repeat 0 100% / 100% 0.5rem;
}
.p-solution__body .pt {
  letter-spacing: -0.5em;
}
.p-solution__body p + p {
  margin-top: 0.6rem;
}
/* 注釈（※入居中かつ〜）本文より小さく、下に少し離して置く。
   本文ブロックはセクション中央からずれた位置にあるため、
   その差（本文中心 31.55+44=75.55rem − ステージ中心 72rem）を戻して画面中央に揃える */
.p-solution__body p + .p-solution__note {
  position: relative;
  left: -3.55rem;
  margin-top: 1.9rem;
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: center;
}

/* =============================================================
   3つのポイント
   -------------------------------------------------------------
   デザイン原寸 : 1503 × 1245 (等倍・左右に31.5pxの塗り足し)
   画像素材は1.5倍書き出し
============================================================= */
.p-value {
  position: relative;
  overflow-x: clip;
  background: #fff;
}
.p-value__stage {
  position: relative;
  width: 144rem;
  height: 124.5rem;
  margin: 0 auto;
}

/* ---------- 背景の飾り文字 ---------- */
.p-value__deco {
  position: absolute;
  top: -0.3rem;
  left: 0.5rem;
  font-family: inherit;
  font-weight: 700;
  font-size: 11.4rem;
  line-height: 1;
  letter-spacing: -0.084em;
  color: #e5feff;
  white-space: nowrap;
  user-select: none;
}

/* ---------- 見出し ---------- */
.p-value__sub {
  position: absolute;
  top: 12.9rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(-2rem);
  font-size: 3.3rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-value__title {
  position: absolute;
  top: 17.9rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(-1.25rem);
  font-size: 4.4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.065em;
  text-indent: 0.065em;
}

/* ---------- カード ---------- */
.p-value__card {
  position: absolute;
  top: 30.7rem;
  width: 34.8rem;
  height: 66.9rem;
  background: #fff;
  border: 0.6rem solid #000;
  border-radius: 3rem;
  /* 本文の左右余白はここで指定（上は本文の開始位置） */
  padding: 18.6rem 2.2rem 0;
}
.p-value__card--1 { left: 18.45rem; }
.p-value__card--2 { left: 55.45rem; }
.p-value__card--3 { left: 92.95rem; width: 34.65rem; }
.p-value__card--1 .p-value__badge { background: #00ffbc; }
.p-value__card--2 .p-value__badge { background: #00ffe0; }
.p-value__card--3 .p-value__badge { background: #00f3ff; }

/* 上辺の切り欠き・点 */
.p-value__notch {
  position: absolute;
  top: -0.6rem;
  left: 50%;
  width: 16.2rem;
  height: 0.8rem;
  margin-left: -8.1rem; /* 幅の半分＝中央 */
  background: #fff;
}
.p-value__dot {
  position: absolute;
  top: -0.55rem;
  left: 50%;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: #000;
}
/* 中央を挟んで左右対称（ドット幅0.6rem を加味） */
.p-value__dot--l1 { margin-left: -7.45rem; }
.p-value__dot--l2 { margin-left: -6.45rem; }
.p-value__dot--r1 { margin-left:  5.85rem; }
.p-value__dot--r2 { margin-left:  6.85rem; }

/* バッジ */
.p-value__badge {
  position: absolute;
  top: -4.4rem;
  left: 50%;
  width: 10.5rem;
  height: 10.5rem;
  margin-left: -5.25rem; /* 幅の半分＝中央 */
  border: 0.65rem solid #000;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-value__badge-label {
  margin-top: 2rem;
  font-size: 1.77rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-value__badge-num {
  margin-top: -0.2rem;
  font-size: 4.1rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
}

/* カード見出し */
.p-value__cardTitle,
.p-value__cardSub {
  position: absolute;
  left: 0;
  width: 100%;
  text-align: center;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-value__cardTitle { top: 8.55rem; font-size: 2.2rem; }
.p-value__cardSub   { top: 13.3rem; font-size: 1.9rem; }
.p-value__cardTitle span,
.p-value__cardSub span {
  background: linear-gradient(#00f3ff, #00f3ff) no-repeat 0 100% / 100% 0.6rem;
  padding-bottom: 0.55rem;
}
.p-value__cardTitle span {
  background-size: calc(100% - 2.1rem) 0.6rem;
  background-position: 1.05rem 100%;
}

/* カード本文
   位置指定はせず、カードの padding に収まる通常フローで配置。
   左右余白は .p-value__card の padding で一括指定。
   文中の折り返しは自然改行に任せ、両端揃えで幅いっぱいに振る。
   文末（。の後）の br は段落区切りとして残してあり、
   その行は text-align-last: auto により左揃えのままになる。 */
.p-value__cardText {
  text-align: justify;
  font-size: 1.71rem;
  font-weight: 700;
  line-height: 3.02rem;
  letter-spacing: 0;
}

/* ---------- CTA ---------- */
.p-value__gift {
  position: absolute;
  top: 102.6rem;
  left: 49.7rem;
  width: 50.2rem;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-value__cta {
  position: absolute;
  top: 106.4rem;
  left: 49.15rem;
  width: 50.2rem;
  height: 7.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff800;
  border: 0.5rem solid #000;
  border-radius: 5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.p-value__cta:hover {
  transform: translateY(-0.2rem);
  box-shadow: 0 0.4rem 0 rgba(0, 0, 0, 0.25);
}
.p-value__cta-txt {
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.058em;
  text-indent: 0.058em;
  transform: translate(-3.25rem, 0);
}
.p-value__cta-icon {
  position: absolute;
  top: 50%;
  left: 40.5rem;
  transform: translateY(-50%);
  width: 5.4rem;
  height: 5.3rem;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-value__cta-icon svg {
  display: block;
  width: 1.9rem;
  height: 2.7rem;
}
.p-value__note {
  position: absolute;
  top: 115.3rem;
  left: 49.75rem;
  width: 50.2rem;
  text-align: center;
  font-size: 2.36rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-value__note a {
  display: inline-block;
  padding-bottom: 0.8rem;
  border-bottom: 0.2rem solid #000;
}

/* SPのみ表示するバッジ */
.p-value__badges,
.p-voice__badges,
.p-form__dots { display: none; }

/* ---------- 装飾イラスト ---------- */
.p-value__fig--trees {
  position: absolute;
  top: 106.2rem;
  left: 21.15rem;
  width: 16.13rem;
}
.p-value__fig--bus {
  position: absolute;
  top: 114.3rem;
  left: 103.25rem;
  width: 22.47rem;
}

/* =============================================================
   当日のスケジュール
   -------------------------------------------------------------
   デザイン原寸 : 1455 × 1727 (等倍・左右に7.5pxの塗り足し)
   画像素材は1.5倍書き出し
============================================================= */
.p-sch {
  position: relative;
  overflow: hidden;
  background-color: #4de6ff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='151' height='41.6' viewBox='0 0 151 41.6'%3E%3Cpath d='M0 18C18.9 36.67 56.6 36.67 75.5 18S132.1 -0.67 151 18' fill='none' stroke='%2363eaff' stroke-width='16'/%3E%3Cpath d='M0 59.6C18.9 78.27 56.6 78.27 75.5 59.6S132.1 40.93 151 59.6' fill='none' stroke='%2363eaff' stroke-width='16'/%3E%3Cpath d='M0 -23.6C18.9 -4.93 56.6 -4.93 75.5 -23.6S132.1 -42.27 151 -23.6' fill='none' stroke='%2363eaff' stroke-width='16'/%3E%3C/svg%3E");
  background-size: 15.1rem 4.16rem;
  background-position: 1.175rem -0.9rem;
  background-repeat: repeat;
}
.p-sch__stage {
  position: relative;
  width: 144rem;
  height: 172.7rem;
  margin: 0 auto;
}

/* ---------- 見出し ---------- */
.p-sch__title {
  position: absolute;
  top: 5.5rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(-0.35rem);
  font-size: 4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-sch__title::after {
  content: "";
  position: absolute;
  top: 4.8rem;
  left: 50%;
  width: 37.2rem;
  height: 0.5rem;
  margin-left: -18.6rem;
  background: #000;
}
.p-sch__note {
  position: absolute;
  top: 11.9rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(2.15rem);
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

/* ---------- 時間軸 ---------- */
.p-sch__line {
  position: absolute;
  top: 24.4rem;
  left: 25.45rem;
  width: 1.5rem;
  height: 92.1rem;
  background: #fff;
}

/* ---------- 時間バー ---------- */
.p-sch__pill {
  position: absolute;
  left: 17.35rem;
  height: 6.6rem;
  display: flex;
  align-items: center;
  background: #fff;
  border-radius: 1.6rem;
  white-space: nowrap;
}
.p-sch__pill--1 { top: 21.1rem; width: 31.4rem; }
.p-sch__pill--2 { top: 47rem;   width: 48.6rem; }
.p-sch__pill--3 { top: 82.5rem; width: 48.6rem; }
.p-sch__pill--4 { top: 113.3rem; width: 51.9rem; }
.p-sch__pill--4 .p-sch__time { width: 15.6rem; transform: translate(0.95rem, -0.25rem); }
.p-sch__pill--4 .p-sch__label { margin-left: 3.3rem; }
.p-sch__time {
  width: 17.8rem;
  transform: translateY(-0.25rem); /* 光学中央合わせ（ラベルと横軸を揃える） */
  text-align: center;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  text-indent: 0.05em;
}
.p-sch__time--sm { font-size: 2.5rem; }
.p-sch__label {
  margin-left: 2rem;
  transform: translateY(-0.3rem);
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

/* ---------- CHECK POINT ---------- */
.p-sch__cp {
  position: absolute;
  left: 35.45rem;
}
.p-sch__cp--1 { top: 28.5rem; }
.p-sch__cp--2 { top: 54.8rem; }
.p-sch__cp--3 { top: 90.6rem; }
.p-sch__cp--4 { top: 121rem; }
.p-sch__bulb {
  position: absolute;
  top: 0;
  left: 0;
  width: 2.6667rem;
  height: 5rem;
}
.p-sch__cpTitle {
  margin-left: 3.8rem;
  padding-bottom: 0.55rem;
  border-bottom: 0.3rem solid #fff;
  display: inline-block;
  color: #fff;
  font-size: 2.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  text-indent: 0.04em;
  transform: translateY(0.5rem);
}
.p-sch__cpBody {
  margin: 1.3rem 0 0 3.7rem;
  font-size: 2.63rem;
  font-weight: 700;
  line-height: 4.2rem;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-sch__li {
  padding-left: 1.7rem;
  text-indent: -1.7rem;
}
.p-sch__li::before { content: "・"; }
.p-sch__ind { display: inline-block; text-indent: 0; }
.p-sch__sm { font-size: 2.3rem; }
.p-sch__note2 {
  margin-top: 0.4rem;
  padding-left: 2.4rem;
  font-size: 2.2rem;
  line-height: 3.7rem;
}

/* ---------- 写真 ---------- */
.p-sch__ph { position: absolute; margin: 0; }
.p-sch__ph img { display: block; }
.p-sch__ph--1 { top: 11.2rem; left: 97.85rem; }
.p-sch__ph--1 img { width: 33.1rem; }
.p-sch__ph--2 { top: 43.4rem; left: 100.25rem; }
.p-sch__ph--2 img { width: 27.4rem; }
.p-sch__ph--3 { top: 89.8rem; left: 98.25rem; }
.p-sch__ph--3 img { width: 30.2rem; }

.p-sch__cap {
  position: absolute;
  top: 21.8rem;
  left: 7.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 4.6rem;
  padding: 0 1.4rem;
  background: #fff;
  border: 0.3rem solid #000;
  border-radius: 5rem;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-sch__cap--2 {
  top: 33.3rem;
  left: -2.2rem;
  width: 32.1rem;
  height: 4.3rem;
  padding: 0;
  border-radius: 1.4rem;
  font-size: 2rem;
  letter-spacing: -0.05em;
  text-indent: -0.05em;
}
.p-sch__cap--3 { top: 20.7rem; left: 7.1rem; height: 4.7rem; font-size: 1.9rem; }

.p-sch__soldout {
  position: absolute;
  z-index: 2;
  top: 32.1rem;
  left: 24.3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7.9rem;
  height: 2.1rem;
  background: #ff1733;
  border-radius: 5rem;
  box-shadow: 0 0 0 0.2rem #fff; /* 白枠 */
  color: #fff;
  font-size: 1.9rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-sch__disc {
  position: absolute;
  top: 38.5rem;
  left: -1.1rem;
  font-size: 1.16rem;
  font-weight: 700;
  line-height: 1.7rem;
  letter-spacing: -0.05em;
  white-space: nowrap;
}

/* ---------- 注意ボックス ---------- */
.p-sch__box {
  position: absolute;
  top: 142.3rem;
  left: 31.65rem;
  width: 80.7rem;
  height: 15.9rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  background: #fff;
  border: 0.4rem solid #000;
  border-radius: 3rem;
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 4.1rem;
  letter-spacing: 0;
}

/* ---------- 下部カーブ ---------- */
.p-sch__curve {
  position: absolute;
  top: 164.2rem;
  left: 50%;
  width: 116.4%;
  height: 34rem;
  transform: translateX(-50%);
  border-radius: 50%;
  background: #fff;
}

/* =============================================================
   参加者の声
   -------------------------------------------------------------
   デザイン原寸 : 1441 × 1046 (等倍) / 顔イラストは1.5倍書き出し
============================================================= */
.p-voice {
  position: relative;
  z-index: 1;
  margin-top: -9.6rem;
  background: transparent;
  overflow-x: clip;
}
.p-voice__stage {
  position: relative;
  width: 144rem;
  height: 104.6rem;
  margin: 0 auto;
  background: url("../img/voiceBG.png") no-repeat 5.65rem 9.9rem / 132.4rem 90.2rem;
}

/* ---------- 見出し ---------- */
.p-voice__title {
  position: absolute;
  top: 5.8rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(1.35rem);
  font-size: 3.96rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-voice__title::after {
  content: "";
  position: absolute;
  top: 5.15rem;
  left: 50%;
  width: 20rem;
  height: 0.5rem;
  margin-left: -10.55rem;
  background: #000;
}

/* ---------- カード ---------- */
.p-voice__card {
  position: absolute;
  left: 33.35rem;
  width: 78.8rem;
  height: 16.3rem;
  background: #fff;
  border-radius: 2.4rem;
  box-shadow: 0.2rem 0.3rem 0.9rem rgba(0, 0, 0, 0.35);
}
.p-voice__card--1 { top: 17.15rem; }
.p-voice__card--2 { top: 38.65rem; height: 16.2rem; }
.p-voice__card--3 { top: 60.15rem; height: 16.2rem; }
.p-voice__card--3 .p-voice__stars { left: 3.6rem; }
.p-voice__card--3 .p-voice__head,
.p-voice__card--3 .p-voice__body { left: 3.6rem; }

.p-voice__stars {
  position: absolute;
  top: 1.35rem;
  left: 4.6rem;
  font-size: 3.35rem;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #f2e000;
  white-space: nowrap;
}
.p-voice__star--off { color: #444; }
.p-voice__card--2 .p-voice__stars { left: auto; right: 3.5rem; top: 1.25rem; }

.p-voice__age {
  position: absolute;
  top: 1.75rem;
  right: 2.8rem;
  font-size: 2.42rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-voice__card--2 .p-voice__age { right: auto; left: 3.6rem; top: 2.05rem; }

.p-voice__face { position: absolute; }
.p-voice__card--1 .p-voice__face { top: 5.9rem;  left: 64.4rem; width: 10.87rem; }
.p-voice__card--2 .p-voice__face { top: 5.6rem;  left: 4.3rem;  width: 10rem; }
.p-voice__card--3 .p-voice__face { top: 5.5rem;  left: 64.8rem; width: 10.47rem; }

.p-voice__head {
  position: absolute;
  top: 6rem;
  left: 4.5rem;
  padding-bottom: 1rem;
  border-bottom: 0.3rem solid #000;
  font-size: 2.31rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-voice__card--1 .p-voice__head { width: 57.5rem; }
.p-voice__card--2 .p-voice__head { top: 6rem; left: 17.7rem; width: 57.5rem; text-align: right; }
.p-voice__card--3 .p-voice__head { width: 57.4rem; }

.p-voice__body {
  position: absolute;
  top: 10.5rem;
  left: 4.5rem;
  font-size: 1.57rem;
  font-weight: 700;
  line-height: 2.5rem;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-voice__card--2 .p-voice__body { left: 17.5rem; top: 10.6rem; }

/* ---------- CTA ---------- */
.p-voice__gift {
  position: absolute;
  top: 82.7rem;
  left: 50.5rem;
  width: 50.2rem;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-voice__cta {
  position: absolute;
  top: 86.55rem;
  left: 49.85rem;
  width: 50.2rem;
  height: 7.3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff800;
  border: 0.5rem solid #000;
  border-radius: 5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.p-voice__cta:hover {
  transform: translateY(-0.2rem);
  box-shadow: 0 0.4rem 0 rgba(0, 0, 0, 0.25);
}
.p-voice__cta-txt {
  font-size: 4.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.058em;
  text-indent: 0.058em;
  transform: translate(-3.25rem, 0);
}
.p-voice__cta-icon {
  position: absolute;
  top: 50%;
  left: 40.5rem;
  transform: translateY(-50%);
  width: 5.4rem;
  height: 5.3rem;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-voice__cta-icon svg { display: block; width: 1.9rem; height: 2.7rem; }
.p-voice__note {
  position: absolute;
  top: 95.45rem;
  left: 50.55rem;
  width: 50.2rem;
  text-align: center;
  font-size: 2.36rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-voice__note a {
  display: inline-block;
  padding-bottom: 0.8rem;
  border-bottom: 0.2rem solid #000;
}

/* =============================================================
   ツアー概要
   -------------------------------------------------------------
   デザイン原寸 : 1441 × 841 (等倍) / 背景飾りは1.5倍書き出し
============================================================= */
.p-ov {
  position: relative;
  height: 84.1rem;
  background: #fff;
  overflow-x: clip;
}
.p-ov__panel {
  position: absolute;
  top: 0.1rem;
  left: 0;
  width: 100%;
  height: 83.6rem;
  border-radius: 11.5rem;
  background-color: #4de6ff;
  background-image: url("../img/overviewBG.png");
  background-repeat: no-repeat;
  background-position: calc(50% - 1.01rem) 3.04rem;
  background-size: 123.33rem 80.93rem;
  overflow: hidden;
}
.p-ov__stage {
  position: relative;
  width: 144rem;
  height: 83.6rem;
  margin: 0 auto;
}

/* ---------- 見出し ---------- */
.p-ov__title {
  position: absolute;
  top: 5.7rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(1.9rem);
  font-size: 4.1rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-ov__title::after {
  content: "";
  position: absolute;
  top: 4.2rem;
  left: 50%;
  width: 19.6rem;
  height: 0.5rem;
  margin-left: -9.8rem;
  background: #000;
}

/* ---------- テーブル ---------- */
.p-ov__table {
  position: absolute;
  top: 14.9rem;
  left: 33rem;
  width: 79.5rem;
  border-collapse: collapse;
  table-layout: fixed;
  font-weight: 700;
  letter-spacing: 0;
}
.p-ov__table th,
.p-ov__table td {
  border: 0.3rem solid #000;
  vertical-align: middle;
}
.p-ov__table th {
  width: 19.3rem;
  background: #75fcfc;
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
.p-ov__table td {
  padding: 0 0 0 2.2rem;
  background: #fff;
  font-size: 2rem;
  line-height: 3rem;
  text-align: left;
  white-space: nowrap;
}
.p-ov__note {
  display: block;
  font-size: 1.6rem;
  line-height: 2.6rem;
}
.p-ov__note--1 { line-height: 2.2rem; }
.p-ov__note--2 { line-height: 3.4rem; }
.p-ov__num { letter-spacing: 0.055em; }
.p-ov__row--5 th { vertical-align: middle; }
.p-ov__row--5 th > span { display: inline-block; transform: translateY(0.9rem); }
.p-ov__row--1 td { height: 7.35rem; }
.p-ov__row--2 td { height: 10.4rem; padding-top: 0.8rem; }
.p-ov__row--3 td { height: 4.6rem; }
.p-ov__row--4 td { height: 4.5rem; }
.p-ov__row--5 td { height: 28.05rem; padding-top: 0.6rem; vertical-align: top; }
/* 本文＋※の2行になったため、他行と同じ上下アキ（12.5px）になる高さにする。
   ※の行送りが本文より大きく上下が5pxずれるので padding-bottom で相殺している */
.p-ov__row--6 td {
  height: 8.4rem;
  padding-bottom: 0.5rem;
}
.p-ov__row--5 p + p { margin-top: 0.9rem; }
.p-ov__row--5 p + p + p { margin-top: 1.4rem; }

/* =============================================================
   申し込みフォーム
   -------------------------------------------------------------
   デザイン原寸 : 1500 × 1032 (等倍・左右に30pxの塗り足し)
   背景飾りは1.5倍書き出し
============================================================= */
.p-form {
  position: relative;
  height: 111.2rem;
  background-color: #fff;
  background-image: url("../img/formBG.png");
  background-repeat: no-repeat;
  background-position: calc(50% - 1.3rem) 6.9rem;
  background-size: 144rem 86rem;
  overflow: hidden;
}
.p-form__stage {
  position: relative;
  width: 144rem;
  height: 111.2rem;
  margin: 0 auto;
}

/* ---------- 見出し ---------- */
.p-form__title {
  position: absolute;
  top: 11.9rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(0.5rem);
  font-size: 3.97rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-form__title::after {
  content: "";
  position: absolute;
  top: 4.8rem;
  left: 50%;
  width: 31.6rem;
  height: 0.5rem;
  margin-left: -15.9rem;
  background: #000;
}

/* ---------- 各行 ---------- */
.p-form__row { position: absolute; left: 31.2rem; width: 77.9rem; }
.p-form__row--1 { top: 24.5rem; }
.p-form__row--2 { top: 35.3rem; }
.p-form__row--3 { top: 46.2rem; }
.p-form__row--4 { top: 57rem; display: flex; }
.p-form__row--4 .p-form__input { margin-top: 1rem; }
.p-form__row--5 { top: 67.8rem; }
.p-form__radios { display: flex; gap: 4.8rem; margin-top: 1.4rem; }
.p-form__radioLabel {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 2.38rem;
  font-weight: 700;
  line-height: 1;
}
.p-form__radio {
  appearance: none;
  -webkit-appearance: none;
  width: 2.6rem;
  height: 2.6rem;
  margin: 0 1rem 0 0;
  border: 0.3rem solid #4de6ff;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}
.p-form__radio:checked {
  background: radial-gradient(circle, #4de6ff 0 0.65rem, #fff 0.75rem);
}

.p-form__label {
  display: block;
  padding-left: 1.5rem;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-form__req { margin-left: 0.4rem; font-size: 0.7em; }
.p-form__note {
  position: absolute;
  top: 0.65rem;
  left: 33.7rem;
  font-size: 1.845rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
}
.p-form__input {
  display: block;
  width: 100%;
  height: 5.9rem;
  margin-top: 1.6rem;
  padding: 0 1.5rem;
  border: 0;
  border-radius: 0;
  background: #e3feff;
  font-family: inherit;
  font-size: 2.2rem;
  font-weight: 700;
  color: #000;
  appearance: none;
}
/* プルダウン（ご年齢・ご年収・ご職業） */
.p-form__select {
  padding-left: 1.2rem;
  padding-right: 3.4rem;
  font-size: 1.75rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1.5 1.5 L6 6 L10.5 1.5' fill='none' stroke='%234de6ff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1.4rem center;
  background-size: 1.5rem 1rem;
  cursor: pointer;
  -webkit-appearance: none;
}
.p-form__select:invalid { color: #000; }
/* 展開リストの文字サイズ（Chrome/Edge/Firefoxのポップアップに適用。iOS/Androidはネイティブピッカーのため端末標準サイズ） */
.p-form__select option { font-size: 16px; }

.p-form__input:focus {
  outline: 0.3rem solid #4de6ff;
  outline-offset: -0.3rem;
}
/* プルダウン化に伴い3カラムを均等拡幅（行全体の幅 77.9rem は維持） */
.p-form__col--age    { width: 20.4rem; }
.p-form__col--income { width: 20.4rem; margin-left: 8.35rem; }
.p-form__col--job    { width: 20.4rem; margin-left: 8.35rem; }

/* ---------- 同意 ---------- */
.p-form__agreeTitle {
  position: absolute;
  top: 77.4rem;
  left: 31rem;
  font-size: 2.38rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-form__agree {
  position: absolute;
  top: 81.1rem;
  left: 31.3rem;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.p-form__check {
  width: 2.4rem;
  height: 2.3rem;
  margin: 0;
  border: 0.1rem solid #b6e3ea;
  border-radius: 0.8rem;
  background: #e3feff;
  appearance: none;
  cursor: pointer;
}
.p-form__check:checked {
  background: #4de6ff;
  border-color: #000;
}
.p-form__agreeTxt {
  margin-left: 1.5rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}

/* ---------- 送信ボタン ---------- */
.p-form__submit {
  position: absolute;
  top: 84.8rem;
  left: 62.4rem;
  width: 15.4rem;
  height: 5.8rem;
  border: 0.5rem solid #000;
  border-radius: 5rem;
  background: #4de6ff;
  font-family: inherit;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
  text-indent: 0.05em;
  color: #000;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.p-form__submit:hover {
  transform: translateY(-0.2rem);
  box-shadow: 0 0.4rem 0 rgba(0, 0, 0, 0.25);
}

/* ---------- プライバシーポリシー ---------- */
.p-form__pp {
  position: absolute;
  top: 93.1rem;
  left: 0;
  width: 144rem;
  text-align: center;
  transform: translateX(-1.4rem);
  font-size: 2.44rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.p-form__pp a {
  display: inline-block;
  padding-bottom: 0.75rem;
  border-bottom: 0.3rem solid #000;
}


/* =========================================================
   Amazonギフトカード進呈条件
   ========================================================= */
.p-terms {
  position: relative;
  background: #4de6ff;
  overflow: hidden;
}

/* ---------- 上部の境目 ---------- */
.p-terms__wave {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  /* 素材下端の透過3px（左半分）を確実に切り落とす。
     切り落とした先はセクション背景の #4de6ff（素材と同色）が続くため見た目は変わらない */
  height: 6.67rem;
  background: url("../img/amazon_top.png") no-repeat center top, #fff;
  background-size: 100% 7.4667rem;
}

/* ---------- 装飾 ---------- */
.p-terms__deco {
  position: absolute;
  z-index: 1;
  border-radius: 5rem;
  background: #7feeff;
}
.p-terms__deco--r3  { display: none; }
.p-terms__deco--l1  { top: 82.4rem;  left: 0;       width: 16.2rem; height: 2.6rem; }
.p-terms__deco--l2  { top: 87.4rem;  left: 0;       width: 20rem;   height: 2.7rem; }
.p-terms__deco--lc  { top: 87.1rem;  left: 20.9rem; width: 3.8rem;  height: 3.8rem; }
.p-terms__deco--rc  { top: 23.8rem;  right: 19.6rem; width: 3.6rem; height: 3.6rem; }
.p-terms__deco--r1  { top: 23.8rem;  right: 0;      width: 17.8rem; height: 2.8rem; }
.p-terms__deco--r2  { top: 28.5rem;  right: 0;      width: 14.7rem; height: 2.6rem; }

/* ---------- 中身 ---------- */
.p-terms__stage {
  position: relative;
  z-index: 3;
  width: 144rem;
  margin: 0 auto;
  padding: 12.1rem 0 12.4rem;
}

/* ---------- 見出し ---------- */
.p-terms__title {
  text-align: center;
  font-size: 4rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;
}
.p-terms__title span {
  display: inline-block;
  padding-bottom: 1.4rem;
  border-bottom: 0.4rem solid #000;
  text-indent: 0.05em;
}

/* ---------- 本文 ---------- */
.p-terms__body {
  margin-top: 5rem;
  padding-left: 37.6rem;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 2.08rem;
  letter-spacing: 0.02em;
}
.p-terms__group { margin-top: 5.3rem; }
.p-terms__lead + .p-terms__group { margin-top: 3.95rem; }
.p-terms__h {
  font-size: inherit;
  font-weight: 700;
}
.p-terms__list { list-style: none; }
.p-terms__body .pt { letter-spacing: -0.5em; }
/* 「進呈時期：」の5文字分をぶら下げ、2行目以降を「ツアー開催日から〜」の頭に揃える。
   5.1em = 全角5文字（5em）＋ letter-spacing 0.02em × 5 */
.p-terms__hang {
  padding-left: 5.1em;
  text-indent: -5.1em;
}
/* 行頭「・」のぶら下げインデント。
   デバイスによって折り返し位置が変わるため、どこで折り返しても
   2行目以降が「・」の右側（＝1文字分の字下げ）で揃うようにする。
   1.02em = 「・」1文字（1em）＋ letter-spacing 0.02em */
.p-terms__list li {
  padding-left: 1.02em;
  text-indent: -1.02em;
}
.p-terms__sub {
  display: block;
  margin-left: -1.02em;   /* li の padding を打ち消して従来の位置に戻す */
  padding-left: 2.4rem;   /* 補足文はすべての行をこの位置で揃える */
  text-indent: 0;         /* li から継承する負の text-indent を解除 */
}
.p-terms__list--last { margin-top: 6.9rem; }
.p-terms__body a { text-decoration: none; color: inherit; }

/* PC / SP 出し分け */
.u-sp { display: none; }
.p-terms__body a:hover { text-decoration: underline; }

/* 米印は本文より小さく。全角の左右アキが目立つので少し詰める */
.u-ast {
  font-size: 0.7em;
  letter-spacing: -0.1em;
  margin-right: -0.05em;
}

/* =========================================================
   フッター
   ========================================================= */
.p-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 8.9rem;
  background: #fff;
}
.p-footer__copy {
  font-family: inherit;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  color: #4de6ff;
}


/* =============================================================
   THANKS（サンクスページ）
   -------------------------------------------------------------
   デザイン原寸 : 1441 × 901（塗り足し込み）
   実装基準幅   : 1440px  →  1rem = 10px
============================================================= */
.p-thanks {
  position: relative;
  width: 100%;
  height: 81.4rem;
  background: #4de6ff;
  overflow-x: clip;
}
.p-thanks__stage {
  position: relative;
  width: 144rem;
  height: 81.4rem;
  margin: 0 auto;
}

/* ---------- ロゴ ---------- */
.p-thanks__logo {
  position: absolute;
  top: 3.2rem;
  left: 3.1rem;
  width: 18rem;
  line-height: 0;
}

/* ---------- チェックアイコン ---------- */
.p-thanks__icon {
  position: absolute;
  top: 10.6rem;
  left: 50%;
  width: 12rem;
  height: 12rem;
  margin-left: -6rem;
}
.p-thanks__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ---------- 白カード ---------- */
.p-thanks__card {
  position: absolute;
  top: 25.8rem;
  left: 50%;
  width: 99.4rem;
  height: 50.6rem;
  margin-left: -49.85rem;
  border-radius: 2rem;
  background: #fff;
}

/* ---------- 見出し ---------- */
.p-thanks__head {
  position: absolute;
  top: 3.2rem;
  left: 0;
  width: 100%;
  padding-left: 0.3rem;
  font-size: 4.22rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}
.p-thanks__head .pt,
.p-thanks__sub .pt { letter-spacing: -0.3em; }

/* ---------- サブ見出し ---------- */
.p-thanks__sub {
  position: absolute;
  top: 10.3rem;
  left: 0;
  width: 100%;
  padding-left: 0.3rem;
  font-size: 3.34rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}

/* ---------- 注意書き ---------- */
.p-thanks__notes {
  position: absolute;
  top: 14.3rem;
  left: 25.55rem;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 2.4rem;
  letter-spacing: 0;
}
.p-thanks__notes li:nth-child(2) { letter-spacing: -0.0765em; }
.p-thanks__notes li:nth-child(3) { letter-spacing: -0.062em; }

/* ---------- EVENT INFO ---------- */
.p-thanks__info {
  position: absolute;
  top: 25.2rem;
  left: 0;
  width: 100%;
  padding-left: 0.3rem;
  font-family: inherit;
  font-size: 2.67rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
}
.p-thanks__info::after {
  content: "";
  display: block;
  width: 16.9rem;
  height: 0.2rem;
  margin: 0.35rem auto 0;
  background: #000;
}

/* ---------- テーブル ---------- */
.p-thanks__table {
  position: absolute;
  top: 29.6rem;
  left: 50%;
  width: 56.4rem;
  margin-left: -28.05rem;
  border-collapse: collapse;
  table-layout: fixed;
  letter-spacing: 0;
}
.p-thanks__table th,
.p-thanks__table td {
  border-top: 0.1rem solid #000;
  border-bottom: 0.1rem solid #000;
  vertical-align: middle;
}
.p-thanks__table th {
  width: 9.6rem;
  padding-left: 0.6rem;
  background: #4de6ff;
  font-size: 1.53rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}
.p-thanks__table td {
  padding-left: 1.7rem;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: left;
  white-space: nowrap;
}
.p-thanks__row--1 th,
.p-thanks__row--1 td { height: 4.4rem; }
.p-thanks__row--2 th,
.p-thanks__row--2 td { height: 4.4rem; }
.p-thanks__row--3 th,
.p-thanks__row--3 td { height: 4.7rem; }
.p-thanks__row--4 th,
.p-thanks__row--4 td { height: 4.6rem; }
.p-thanks__row--1 td { letter-spacing: 0.032em; }
.p-thanks__row--2 td { letter-spacing: 0.012em; }
.p-thanks__row--3 td { letter-spacing: 0.011em; }
.p-thanks__row--4 td { letter-spacing: -0.077em; }

/* ---------- フッター（サンクス） ---------- */
.p-footer--thanks { height: 8.6rem; }
.p-footer--thanks .p-footer__copy {
  font-size: 2.5rem;
  transform: translateY(-0.15rem);
}


/* =============================================================
   SP
   -------------------------------------------------------------
   デザイン原寸 : 391 × 701（上下左右 0.5px の塗り足し込み）
   実装基準幅   : 390px  →  1rem = 10px
============================================================= */
@media screen and (max-width: 767px) {

  html { font-size: 2.5641vw; }

  /* =========================================================
     FV
     ========================================================= */
  .p-fv {
    height: 70.05rem;
    background-color: #fff;
    background-image: url("../img/mainBGSP.png");
    background-position: center 0.05rem;
    background-size: 42.1333rem 73.5333rem;
  }
  .p-fv__stage {
    width: 39rem;
    height: 70.05rem;
  }

  /* ---------- ロゴ ---------- */
  .p-fv__logo {
    top: 2.05rem;
    left: 1.45rem;
    width: 7.2rem;
  }

  /* ---------- 開催日 ---------- */
  .p-fv__date {
    top: 2.2rem;
    left: 7.65rem;
    font-size: 1.5rem;
    color: #000;
  }
  .p-fv__date-lead { font-size: 1.5rem; }
  .p-fv__date-num {
    font-size: 3.55rem;
    font-weight: 700;
    color: #4de6ff;
    -webkit-text-stroke: 0.2rem #000;
    paint-order: stroke fill;
  }
  .p-fv__date-unit { font-size: 1.4rem; }
  .p-fv__date-num--9  { margin-left: 3rem; }
  .p-fv__date-num--12 { margin-left: 0.4rem; }
  .p-fv__date-unit--m { margin-left: 0.3rem; }
  .p-fv__date-unit--d { margin-left: 0.9rem; letter-spacing: 0; }

  .p-fv__slash {
    top: 4.85rem;
    width: 0.25rem;
    height: 1.55rem;
    background: #000;
    border-radius: 0.15rem;
  }
  .p-fv__slash--l { left: 6.6rem; transform: translate(-50%, -50%) rotate(-45deg); }
  .p-fv__slash--r { left: 13.2rem;  transform: translate(-50%, -50%) rotate(45deg); }

  /* ---------- タイトル ---------- */
  .p-fv__title {
    top: 6.25rem;
    left: 4.95rem;
    width: 28.5rem;
    height: 4.4rem;
    border-width: 0.35rem;
    border-radius: 2.2rem;
    box-shadow: 0.5rem 0.4rem 0 #000;
  }
  .p-fv__title-in {
    font-size: 2.15rem;
    transform: translate(0, 0);
  }

  /* ---------- キャッチ ---------- */
  .p-fv__dot {
    top: 13.55rem;
    width: 1.2rem;
    height: 1.2rem;
  }
  .p-fv__dot--1 { left: 8.15rem; }
  .p-fv__dot--2 { left: 14.45rem; }
  .p-fv__dot--3 { left: 20.75rem; }

  .p-fv__catch {
    top: 13.45rem;
    left: 4.65rem;
  }
  .p-fv__catch-sub {
    position: absolute;
    top: 2.12rem;
    left: -3.05rem;
    display: inline-block;
    width: 3.1rem;
    font-size: 3.1rem;
    line-height: 3.15rem;
    white-space: normal;
  }
  .p-fv__catch-main {
    margin-left: 0;
    transform: translateY(1.25rem);
    font-size: 7rem;
    letter-spacing: -0.08em;
    -webkit-text-stroke: 0.8rem #000;
  }

  .p-fv__catch2 {
    top: 22.5rem;
    left: 1.5rem;
    font-size: 2.3rem;
  }

  /* ---------- イラスト ---------- */
  .p-fv__man {
    top: 11.85rem;
    left: 24.25rem;
    width: 14.2rem;
  }

  /* ---------- リード ---------- */
  .p-fv__lead {
    top: 30.25rem;
    left: 2.09rem;
    font-size: 1.9rem;
    line-height: 3.35rem;
    letter-spacing: 0;
  }
  .p-fv__lead-l1,
  .p-fv__lead-l2 { display: block; }
  .p-fv__lead-l2 { padding-left: 12.06rem; }
  .p-fv__lead .pt { letter-spacing: -0.3rem; }
  .p-fv__lead-u {
    text-decoration: underline;
    text-decoration-color: #fff;
    text-decoration-thickness: 0.2rem;
    text-underline-offset: 0.15rem;
  }

  /* ---------- ポイント ---------- */
  .p-fv__points {
    top: 0;
    left: 0;
    display: block;
    width: 39rem;
    height: 0;
  }
  .p-fv__point {
    display: block;
    height: auto;
    padding: 0;
    background: none;
    border-radius: 0;
    font-size: inherit;
  }
  .p-fv__point-lead {
    position: absolute;
    top: 39.55rem;
    left: 0;
    width: 39rem;
    margin-right: 0;
    text-align: center;
    font-size: 1.89rem;
    line-height: 1;
    transform: translateX(-0.15rem);
  }
  .p-fv__point-lead::before,
  .p-fv__point-lead::after {
    content: "";
    position: absolute;
    top: 0.1rem;
    width: 1.8rem;
    height: 1.55rem;
    /* 黒縁の楔形の集中線（デザイン準拠・線幅ぶんの余白をviewBoxに確保） */
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-1 -1.5 18 15.5'%3E%3Cg fill='%23fff800' stroke='%23000' stroke-width='1.1' stroke-linejoin='round'%3E%3Cpath d='M0.53 6.55 A2 2 0 0 1 3.47 3.85 L8.6 12.4 Z'/%3E%3Cpath d='M8.28 2.92 A2 2 0 0 1 11.72 0.88 L15 10.3 Z'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / 100% 100%;
  }
  .p-fv__point-lead::before { left: 10.8rem; }
  .p-fv__point-lead::after  { left: 26.4rem; transform: scaleX(-1); }

  .p-fv__point-main {
    position: absolute;
    top: 42.15rem;
    left: 4.55rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 29.4rem;
    height: 4.2rem;
    padding-left: 0.8rem;
    background: #000;
    border-radius: 2.1rem;
    font-size: 2.29rem;
    line-height: 1;
    color: #fff;
  }

  .p-fv__point--2 {
    position: absolute;
    top: 47.15rem;
    left: 0;
    width: 39rem;
    text-align: center;
    font-size: 1.51rem;
    line-height: 1;
    transform: translateX(-0.24rem);
  }
  .p-fv__point--2::before { content: "〜"; }
  .p-fv__point--2::after  { content: "〜"; }

  /* ---------- CTA ---------- */
  .p-fv__gift {
    top: 51.5rem;
    left: 0;
    width: 39rem;
    font-size: 1.26rem;
    letter-spacing: 0;
    text-indent: 0;
    transform: translateX(-0.32rem);
  }
  .p-fv__cta {
    top: 53.45rem;
    left: 6.05rem;
    width: 26rem;
    height: 4.8rem;
    border-width: 0.3rem;
  }
  .p-fv__cta-txt {
    font-size: 2.4rem;
    letter-spacing: 0;
    text-indent: 0;
    transform: translate(-1.3rem, 0);
  }
  .p-fv__cta-icon {
    right: 1.2rem;
    width: 2.7rem;
    height: 2.7rem;
    margin-top: -1.35rem;
  }
  .p-fv__cta-icon svg {
    width: 1rem;
    height: 1.35rem;
    transform: translateX(0.08rem); /* シェブロンの光学中央 */
  }

  /* ---------- バッジ ---------- */
  .p-fv__badges {
    top: 58.75rem;
    left: 11.25rem;
    flex-direction: row;
    gap: 0.65rem;
  }
  .p-fv__badge {
    width: 7.6rem;
    height: 2rem;
    border-width: 0.2rem;
    font-size: 1.2rem;
  }
  .p-fv__badge--sm {
    width: 7.7rem;
    height: 2rem;
    font-size: 1.2rem;
  }

  .p-fv__note {
    top: 61.4rem;
    left: 0;
    width: 39rem;
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    text-indent: 0;
    transform: translateX(-0.5rem);
  }
  .p-fv__note a {
    padding-bottom: 0.2rem;
    border-bottom-width: 0.15rem;
  }

  .u-pc { display: none; }
  .u-sp { display: inline; }

  /* =========================================================
     ありがちな状況
     デザイン原寸 : 391 × 506
     ========================================================= */
  .p-problem {
    margin-top: -3.6rem;
    background: transparent;
    overflow: hidden;
  }
  .p-problem__stage {
    width: 39rem;
    height: 50.6rem;
  }

  /* ---------- 見出し ---------- */
  .p-problem__title {
    top: 1.77rem;
    left: 0;
    width: 39rem;
    text-align: center;
    font-size: 2.4rem;
    line-height: 1;
    letter-spacing: 0.02em;
    white-space: normal;
  }
  .p-problem__title-l1,
  .p-problem__title-l2 {
    display: block;
    width: fit-content;
    margin: 0 auto;
    padding-bottom: 0.5rem;
    white-space: nowrap;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='12' viewBox='0 0 48 12'%3E%3Cpath d='M0 5.9C6 1.9 18 1.9 24 5.9S42 9.9 48 5.9' fill='none' stroke='%2300F3FF' stroke-width='5'/%3E%3C/svg%3E") repeat-x 0 100% / 1.8rem 0.5rem;
  }
  .p-problem__title-l1 { margin-bottom: 0.15rem; }
  .p-problem__title-l2 { transform: translateX(0.4rem); }
  .p-problem__dots { margin-left: 0.6rem; letter-spacing: 0.33em; }
  .p-problem__wave { display: none; }
  .p-problem__fig { display: none; }

  /* ---------- 状況リスト ---------- */
  .p-problem__list {
    top: 10.85rem;
    left: 2.15rem;
    width: 34.7rem;
  }
  .p-problem__list li {
    position: relative;
    display: block;
    height: 7.1rem;
    padding: 0 0 0 4.7rem;
    text-indent: 0;
    border-radius: 0.9rem;
    background: #b6f8ff;
    font-size: 1.3rem;
    line-height: 1.6rem;
  }
  .p-problem__list li + li { margin-top: 1.8rem; }
  /* 白丸 */
  .p-problem__list li::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0.9rem;
    width: 2.9rem;
    height: 2.9rem;
    margin-top: -1.45rem;
    border-radius: 50%;
    background: #fff;
  }
  /* チェック */
  .p-problem__list li::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 1.3rem;
    width: 1.9rem;
    height: 1.5rem;
    margin-top: -0.75rem;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 15'%3E%3Cpath d='M2 7.6 7.2 12.8 17 2.4' fill='none' stroke='%23000' stroke-width='3.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
  }
  .p-problem__bullet { display: none; }
  .p-problem__box {
    display: table-cell;
    vertical-align: middle;
    width: 29.7rem;
    height: 7.1rem;
    padding-left: 1rem;
    /* 上下の枠線を実ボーダーで均一に */
    border: 0.3rem solid #b6f8ff;
    border-left: 0;
    border-radius: 0 1.1rem 1.1rem 0;
    background: #fff;
    background-clip: padding-box;
  }

  /* ---------- まとめ文 ---------- */
  .p-problem__lead {
    top: 37.6rem;
    left: 0;
    width: 39rem;
    text-align: center;
    font-size: 1.8rem;
    line-height: 2.1rem;
    white-space: normal;
  }
  .p-problem__marker {
    background: linear-gradient(#4de6ff, #4de6ff) no-repeat 0 calc(100% - 0.28rem) / 100% 0.3rem;
  }
  .p-problem__lead .pt { letter-spacing: -0.5em; }

  /* ---------- 結び ---------- */
  .p-problem__conclusion {
    top: 44.4rem;
    left: 0;
    width: 39rem;
    text-align: center;
    font-size: 2rem;
    transform: translateX(0.45rem);
  }
  .p-problem__metabo {
    top: -0.1rem;
    margin: 0 2.45rem 0 1.55rem;
    font-size: 3.11rem;
    letter-spacing: 0.065em;
    -webkit-text-stroke: 0.25rem #000;
  }
  .p-problem__metabo::before {
    left: -0.32rem;
    bottom: -0.25rem;
    width: 17rem;
    height: 0.9rem;
    border-radius: 0.5rem;
  }
  .p-problem__tail { margin-left: 0.14rem; margin-right: 0; }
  /* 引用符はメタボ文字列に追従（metabo基準の絶対配置） */
  .p-problem__quote {
    top: 0.1rem;
    width: 0.9rem;
    height: 0.9rem;
  }
  .p-problem__quote::before,
  .p-problem__quote::after {
    width: 0.4rem;
    height: 0.9rem;
    border-width: 0.14rem;
    background: #fff;
    transform: none;
  }
  .p-problem__quote--l { left: -1.5rem; }
  .p-problem__quote--r { left: auto; right: -1.1rem; }

  /* =========================================================
     情報メタボを解消するには？
     デザイン原寸 : 391 × 596
     ========================================================= */
  .p-solution {
    background-color: #4de6ff;
    background-image: url("../img/section3BGSP.png"), url("../img/section3BG_imgSP.png"), url("../img/03_solution.png");
    background-repeat: no-repeat, no-repeat, no-repeat;
    background-position: 1.817rem 1.617rem, 21.85rem calc(100% + 0.35rem), 1.34rem 101%;
    background-size: 33.5333rem 12.4rem, 16.4667rem 8.2667rem, 6rem 9.3rem;
  }
  /* 上部の白い逆三角 */
  .p-solution::before {
    content: "";
    position: absolute;
    top: -1.9rem;
    left: 50%;
    width: 11rem;
    height: 4.05rem;
    margin-left: -5.5rem;
    /* 角丸の逆三角（stroke-linejoin: round で先端と両角を丸める） */
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 40.5'%3E%3Cpath d='M10 -8 L100 -8 L55 30 Z' fill='%23fff' stroke='%23fff' stroke-width='20' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center top / 100% 100%;
  }
  .p-solution__stage {
    width: 39rem;
    /* 59.6rem だと本文最終行と左下のイラストが接触するため余白を確保 */
    height: 65rem;
  }

  /* ---------- 丸・三角 ---------- */
  .p-solution__dot {
    left: 18.95rem;
    width: 1.3rem;
    height: 1.3rem;
  }
  .p-solution__dot--1 { top: 3.25rem; }
  .p-solution__dot--2 { top: 5.55rem; }

  .p-solution__tri {
    left: 18.85rem;
    width: 1.5rem;
    height: 1.4rem;
  }
  .p-solution__tri--1 { top: 11.35rem; }
  .p-solution__tri--2 { top: 13.65rem; }

  /* ---------- 見出し ---------- */
  .p-solution__mark {
    top: 9.75rem;
    left: 5.05rem;
    width: 28.7rem;
    height: 0.7rem;
  }
  .p-solution__title {
    top: 7.85rem;
    left: 5.4rem;
    font-size: 2.2rem;
  }

  /* ---------- 帯 ---------- */
  .p-solution__pill--1 {
    top: 17.05rem;
    left: 2.45rem;
    width: 34rem;
    height: 2.2rem;
    padding-right: 1.3rem;
    box-shadow: 0.4rem 0.3rem 0 #000;
    font-size: 1.38rem;
  }
  .p-solution__pill--2 {
    top: 20.15rem;
    left: 2.85rem;
    width: 33.3rem;
    height: 2.8rem;
    padding-bottom: 0.25rem;
    box-shadow: 0.35rem 0.35rem 0 #000;
    font-size: 1.83rem;
  }

  /* ---------- 本文 ---------- */
  .p-solution__body {
    top: 24.5rem;
    left: 6.1rem;
    width: 30rem;
    font-size: 1.41rem;
    line-height: 2.9rem;
  }
  .p-solution__body em {
    font-size: 1.76rem;
    padding-bottom: 0;
    background-position: 0 calc(100% - 0.3rem);
    background-size: 100% 0.25rem;
  }
  .p-solution__body p + p { margin-top: 0; }
  /* 本文中心 6.1+15=21.1rem − ステージ中心 19.5rem = 1.6rem 分を戻す */
  .p-solution__body p + .p-solution__note {
    left: -1.6rem;
    margin-top: 1rem;
    font-size: 1.1rem;
    line-height: 1.4;
  }

  /* =========================================================
     3つのポイント
     デザイン原寸 : 408 × 1521（左右に9pxの塗り足し）
     ========================================================= */
  .p-value { overflow: hidden; }
  .p-value__stage {
    width: 39rem;
    height: 154.6rem;
  }

  /* ---------- 背景の飾り文字 ---------- */
  .p-value__deco {
    top: -0.71rem;
    left: -0.1rem;
    font-size: 4.42rem;
    letter-spacing: -0.094em;
  }

  /* ---------- 見出し ---------- */
  .p-value__sub {
    top: 4.15rem;
    width: 39rem;
    transform: translateX(-0.14rem);
    font-size: 2rem;
  }
  .p-value__title {
    top: 6.9rem;
    width: 39rem;
    transform: translateX(0.34rem);
    font-size: 1.93rem;
  }

  /* ---------- カード ---------- */
  .p-value__card {
    width: 36.5rem;
    border-width: 0.3rem;
    border-radius: 1.4rem;
    /* 本文の左右余白はここで指定（上は本文の開始位置） */
    padding: 10rem 1.4rem 0;
  }
  /* left は (39rem − 36.5rem) ÷ 2 = 1.25rem で左右中央 */
  .p-value__card--1 { top: 15rem;   left: 1.25rem; height: 33.5rem; }
  .p-value__card--2 { top: 54.5rem; left: 1.25rem; height: 36.5rem; width: 36.5rem; padding-top: 10.6rem; }
  /* 03 は本文が11行になるため 37.3rem から 2.5rem 拡張（以降の要素も同量下げる） */
  .p-value__card--3 { top: 96.5rem; left: 1.25rem; height: 39.8rem; width: 36.5rem; padding-top: 11rem; }

  .p-value__notch {
    top: -0.4rem;
    width: 11.1rem;
    height: 0.5rem;
    margin-left: -5.55rem; /* 幅の半分＝中央 */
  }
  .p-value__dot {
    top: -0.24rem;
    width: 0.3rem;
    height: 0.3rem;
  }
  /* 中央を挟んで左右対称（ドット幅0.3rem を加味） */
  .p-value__dot--l1 { margin-left: -5.05rem; }
  .p-value__dot--l2 { margin-left: -4.35rem; }
  .p-value__dot--r1 { margin-left:  4.05rem; }
  .p-value__dot--r2 { margin-left:  4.75rem; }

  .p-value__badge {
    top: -3.7rem;
    width: 7rem;
    height: 7rem;
    margin-left: -3.5rem; /* 幅の半分＝中央 */
    border-width: 0.25rem;
  }
  .p-value__badge-label {
    margin-top: 1.35rem;
    font-size: 1.15rem;
  }
  .p-value__badge-num {
    margin-top: -0.1rem;
    font-size: 2.75rem;
  }

  /* カード見出し */
  .p-value__cardTitle { top: 4.5rem;  font-size: 2rem; }
  .p-value__cardSub   { top: 6.85rem; font-size: 2rem; }
  .p-value__cardTitle span,
  .p-value__cardSub span {
    /* 太さは固定px（remだとDPRによって上下の線で丸めが変わり太さが揃わない） */
    background-size: calc(100% - 0.3rem) 2px;
    background-position: 0.15rem 100%;
    padding-bottom: 2px;
  }
  .p-value__cardTitle span {
    background-size: calc(100% - 2.6rem) 2px;
    background-position: 1.3rem 100%;
  }

  /* カード本文
     位置指定をやめ、カードの padding に収まる通常フローに戻す。
     左右余白は .p-value__card の padding で一括指定。
     文中の折り返しは自然改行に任せ、両端揃えで幅いっぱいに振る。
     文末（。の後）の br は段落区切りとして残してあり、
     その行は text-align-last: auto により左揃えのままになる。 */
  .p-value__cardText {
    letter-spacing: -0.1px;
    font-size: 1.39rem;
    line-height: 2.46rem;
  }

  /* ---------- CTA ---------- */
  .p-value__gift {
    top: 138.9rem;
    left: 0;
    width: 39rem;
    transform: translateX(0.45rem);
    font-size: 1.26rem;
  }
  .p-value__cta {
    top: 140.8rem;
    left: 7.1rem;
    width: 25.9rem;
    height: 4.7rem;
    border-width: 0.3rem;
  }
  .p-value__cta-txt {
    font-size: 2.4rem;
    letter-spacing: 0;
    text-indent: 0;
    transform: translate(-1.3rem, 0);
  }
  .p-value__cta-icon {
    left: 21.5rem;
    width: 2.7rem;
    height: 2.7rem;
  }
  .p-value__cta-icon svg {
    width: 1rem;
    height: 1.35rem;
    transform: translateX(0.08rem);
  }

  .p-value__badges {
    position: absolute;
    top: 146.1rem;
    left: 12.3rem;
    display: flex;
    gap: 0.8rem;
  }
  .p-value__badge2 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.5rem;
    height: 2rem;
    border: 0.2rem solid #000;
    border-radius: 5rem;
    font-size: 1.2rem;
    line-height: 1;
    letter-spacing: 0;
  }

  .p-value__note {
    top: 148.7rem;
    left: 0;
    width: 39rem;
    transform: translateX(0.4rem);
    font-size: max(1rem, 10px);
  }
  .p-value__note a {
    padding-bottom: 0.2rem;
    border-bottom-width: 0.15rem;
  }

  /* ---------- 装飾イラスト ---------- */
  .p-value__fig--trees {
/*    top: 144.5rem;*/
    top: auto;
    bottom: 0;
    left: 3.9rem;
    width: 6.63rem;
  }
  .p-value__fig--bus {
/*    top: 147.6rem;*/
    top: auto;
    bottom: 0;
    left: 26.9rem;
    width: 9.8rem;
  }

  /* =========================================================
     当日のスケジュール
     デザイン原寸 : 290 × 1076（0.744倍書き出し / 390基準に換算）
     ========================================================= */
  .p-sch {
    background-size: 6.7rem 2.1rem;
    background-position: 0.5rem -0.4rem;
  }
  .p-sch__stage {
    width: 39rem;
    height: 144.7rem;
  }

  /* ---------- 見出し ---------- */
  .p-sch__title {
    top: 2.36rem;
    width: 39rem;
    transform: translateX(0.06rem);
    font-size: 1.76rem;
  }
  .p-sch__title::after {
    top: 1.94rem;
    width: 16.1rem;
    height: 0.3rem;
    margin-left: -8.05rem;
  }
  .p-sch__note {
    top: 5.05rem;
    width: 39rem;
    transform: translateX(0.14rem);
    font-size: 1.21rem;
  }

  /* ---------- 時間軸 ---------- */
  .p-sch__line {
    top: 11.5rem;
    left: 4.03rem;
    width: 0.54rem;
    height: 104.5rem;
  }

  /* ---------- 時間バー ---------- */
  .p-sch__pill {
    left: 0.67rem;
    height: 2.9rem;
    border-radius: 0.7rem;
  }
  /* scheduleSP.png 実測値ベース（時刻1.5rem・行高でピル中央固定） */
  .p-sch__pill--1 { top: 9rem;    width: 12.8rem; }
  .p-sch__pill--2 { top: 39.7rem; width: 19.7rem; }
  .p-sch__pill--3 { top: 82.7rem; width: 19.7rem; }
  .p-sch__pill--2 .p-sch__label,
  .p-sch__pill--3 .p-sch__label { margin-left: 0.95rem; }
  .p-sch__pill--4 { top: 116rem;  left: 1.2rem; width: 20.8rem; }
  .p-sch__pill--4 .p-sch__time  { width: auto; padding-left: 1.07rem; transform: none; }
  .p-sch__pill--4 .p-sch__label { margin-left: 1.8rem; }
  .p-sch__pill--1 .p-sch__label { margin-left: 1.9rem; }
  .p-sch__time {
    width: auto;
    padding-left: 1.6rem;
    text-align: left;
    font-size: 1.5rem;
    line-height: 2.9rem;
    transform: none;
  }
  .p-sch__time--sm {
    padding-left: 0.45rem;
    font-size: 1.1rem;
  }
  .p-sch__label {
    margin-left: 0.9rem;
    transform: none;
    font-size: 1.5rem;
    line-height: 2.9rem;
  }

  /* ---------- CHECK POINT ---------- */
  .p-sch__cp { left: 5.65rem; }
  .p-sch__cp--1 { top: 12.24rem; }
  .p-sch__cp--2 { top: 43.44rem; }
  .p-sch__cp--3 { top: 86.74rem; }
  .p-sch__cp--4 { top: 119.69rem; }
  .p-sch__bulb {
    width: 1.48rem;
    height: 2.82rem;
  }
  .p-sch__cpTitle {
    margin-left: 1.87rem;
    padding-bottom: 0.45rem;
    border-bottom-width: 0.2rem;
    font-size: 1.74rem;
    transform: translateY(0.25rem);
  }
  .p-sch__cpBody {
    margin: 0.6rem 0 0 2.15rem;
    font-size: 1.16rem;
    line-height: 1.75rem;
  }
  .p-sch__li { padding-left: 0; text-indent: 0; }
  .p-sch__li::before { content: none; }
  .p-sch__sm { font-size: 1.05rem; }
  .p-sch__note2 {
    margin-top: 0;
    padding-left: 0;
    font-size: 1.05rem;
    line-height: 1.75rem;
  }

  /* ---------- 写真 ---------- */
  .p-sch__ph--1 { top: 19.8rem; left: 7.13rem; }
  .p-sch__ph--1 img {
    width: 23.94rem;
    border-radius: 50%;
  }
  .p-sch__ph--2 { top: 55.48rem; left: 11.16rem; }
  .p-sch__ph--2 img {
    width: 16.54rem;
    border-radius: 50%;
  }
  .p-sch__ph--3 { top: 95.92rem; left: 7.26rem; }
  .p-sch__ph--3 img {
    width: 24.07rem;
    border-radius: 50%;
  }

  .p-sch__cap {
    top: 3.5rem;
    left: 19.77rem;
    height: 2.3rem;
    padding: 0 0.7rem;
    border-width: 0.15rem;
    font-size: 1.15rem;
  }
  .p-sch__cap--2 {
    top: -0.58rem;
    left: -3.36rem;
    width: 23.23rem;
    height: 3.14rem;
    padding: 0;
    border-width: 0.3rem;
    border-radius: 1.1rem;
    font-size: 1.4rem;
    letter-spacing: 0;
    text-indent: 0;
  }
  .p-sch__cap--3 {
    top: 1.32rem;
    left: 19.64rem;
    height: 2.3rem;
    font-size: 1.05rem;
  }
  .p-sch__soldout {
    top: -1.42rem;
    left: 14.12rem;
    width: 5.24rem;
    height: 1.34rem;
    font-size: max(1.24rem, 10px);
  }
  .p-sch__disc {
    top: 21.58rem;
    left: -2.82rem;
    font-size: max(1rem, 10px);
    line-height: 1.15rem;
  }

  /* ---------- 注意ボックス ---------- */
  .p-sch__box {
    top: 129.5rem;
    left: 2.96rem;
    width: 32.95rem;
    height: 9.39rem;
    border-width: 0.33rem;
    border-radius: 1.5rem;
    font-size: 1.3rem;
    line-height: 2.05rem;
  }

  .p-sch__curve {
    top: 141.98rem;
    height: 9.4rem;
  }

  /* =========================================================
     参加者の声
     デザイン原寸 : 391 × 641
     ========================================================= */
  .p-voice { margin-top: -2.9rem; }
  .p-voice__stage {
    width: 39rem;
    height: 64.1rem;
    background: url("../img/voiceBGSP.png") no-repeat center 0 / 39rem 64rem;
  }

  /* ---------- 見出し ---------- */
  .p-voice__title {
    top: 3.4rem;
    width: 39rem;
    transform: translateX(-0.3rem);
    font-size: 1.76rem;
  }
  .p-voice__title::after {
    top: 2rem;
    width: 8.8rem;
    height: 0.2rem;
    margin-left: -4.4rem;
  }

  /* ---------- カード ---------- */
  .p-voice__card {
    left: 2.05rem;
    width: 34.7rem;
    height: 10.9rem;
    overflow: hidden;
    border-radius: 1.05rem;
    box-shadow: 0.1rem 0.4rem 1.4rem rgba(0, 0, 0, 0.5);
  }
  .p-voice__card--1 { top: 8.95rem; }
  .p-voice__card--2 { top: 22.55rem; height: 10.9rem; }
  .p-voice__card--3 { top: 36.05rem; height: 10.7rem; }

  .p-voice__stars {
    top: 0.3rem;
    left: 1.1rem;
    font-size: 2.3rem;
    letter-spacing: 0.04em;
  }
  .p-voice__card--2 .p-voice__stars { left: auto; right: 2.25rem; top: 0.3rem; }
  .p-voice__card--3 .p-voice__stars { left: 1.6rem; }

  .p-voice__age {
    top: 0.95rem;
    right: 2.2rem;
    font-size: 1.4rem;
  }
  .p-voice__card--2 .p-voice__age { right: auto; left: 1.4rem; top: 1.15rem; }

  .p-voice__card--1 .p-voice__face { top: 4.7rem; left: 25.5rem; width: 6.5rem; }
  .p-voice__card--2 .p-voice__face { top: 4.4rem; left: 1.7rem;  width: 6rem; }
  .p-voice__card--3 .p-voice__face { top: 4.3rem; left: auto; right: 0.5rem; width: 6.3rem; }

  .p-voice__head {
    top: 3.1rem;
    left: 1rem;
    padding-bottom: 0.2rem;
    border-bottom-width: 0.3rem;
    font-size: 1.2rem;
  }
  .p-voice__card--1 .p-voice__head { width: 26.9rem; }
  .p-voice__card--2 .p-voice__head { top: 3.1rem; left: 7.9rem; width: 25.1rem; }
  .p-voice__card--3 .p-voice__head { top: 3rem; left: 1.5rem; width: 26.4rem; }

  .p-voice__body {
    top: 5.55rem;
    left: 1rem;
    font-size: 1.05rem;
    line-height: 1.55rem;
  }
  .p-voice__card--2 .p-voice__body { top: 5.25rem; left: 8rem; }
  .p-voice__card--3 .p-voice__body { top: 5.45rem; left: 1.6rem; }

  /* ---------- CTA ---------- */
  .p-voice__gift {
    top: 49.85rem;
    left: 0;
    width: 39rem;
    transform: translateX(-0.15rem);
    font-size: 1.26rem;
  }
  .p-voice__cta {
    top: 51.75rem;
    left: 6.45rem;
    width: 25.8rem;
    height: 4.7rem;
    border-width: 0.3rem;
  }
  .p-voice__cta-txt {
    font-size: 2.4rem;
    letter-spacing: 0;
    text-indent: 0;
    transform: translate(-1.3rem, 0);
  }
  .p-voice__cta-icon {
    left: 21.2rem;
    width: 2.7rem;
    height: 2.7rem;
  }
  .p-voice__cta-icon svg { width: 1rem; height: 1.35rem; transform: translateX(0.08rem); }

  .p-voice__badges {
    position: absolute;
    top: 56.95rem;
    left: 11.65rem;
    display: flex;
    gap: 0.7rem;
  }
  .p-voice__badge2 {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 7.5rem;
    height: 2.1rem;
    border: 0.2rem solid #000;
    border-radius: 5rem;
    font-size: 1.2rem;
    line-height: 1;
    letter-spacing: 0;
  }
  .p-voice__note {
    top: 59.75rem;
    left: 0;
    width: 39rem;
    transform: translateX(-0.15rem);
    font-size: max(1rem, 10px);
  }
  .p-voice__note a {
    padding-bottom: 0.2rem;
    border-bottom-width: 0.15rem;
  }

  /* =========================================================
     ツアー概要
     デザイン原寸 : 876 × 963（2.246倍書き出し / 390基準に換算）
     ========================================================= */
  /* SP は端末幅で折り返し行数が変わるため、高さを固定せず内容に追従させる。
     （固定高のままだと行が増えたときにパネルからはみ出す）
     上下の余白はデザイン overviewSP.png 実測：上 6.95rem / 下 2.76rem */
  .p-ov {
    height: auto;
    padding-bottom: 0.1rem;
  }
  .p-ov__panel {
    position: relative;
    top: 0;
    height: auto;
    border-radius: 2rem;
    background-position: center 1.5rem;
    background-size: 39rem 25.6rem;
  }
  .p-ov__stage {
    width: 39rem;
    height: auto;
    padding: 6.95rem 0 2.76rem;
  }

  /* ---------- 見出し ---------- */
  .p-ov__title {
    top: 2.07rem;
    width: 39rem;
    transform: translateX(0.5rem);
    font-size: 1.71rem;
  }
  .p-ov__title::after {
    top: 1.98rem;
    width: 8.77rem;
    height: 0.2rem;
    margin-left: -4.39rem;
  }

  /* ---------- テーブル ---------- */
  /* 絶対配置をやめて通常フローに。stage の padding が上下の余白になる */
  .p-ov__table {
    position: static;
    width: 36.2rem;
    margin: 0 auto;
  }
  .p-ov__table th,
  .p-ov__table td { border-width: 0.13rem; }
  .p-ov__table th {
    width: 6.4rem;
    font-size: 1.25rem;
    white-space: nowrap;
  }
  .p-ov__table td {
    padding: 0.5rem 1.2rem;
    font-size: 1.2rem;
    line-height: 1.45rem;
    white-space: normal;
  }
  .p-ov__row--5 p + p { margin-top: 1rem; }
  .p-ov__row--5 p + p + p { margin-top: 1.3rem; }
  .p-ov__note {
    font-size: max(1rem, 10px);
    line-height: 1.6rem;
  }
  .p-ov__note--1 { line-height: 1.6rem; }
  .p-ov__note--2 { line-height: 1.9rem; }
  .p-ov__ind { display: inline-block; padding-left: 1.2rem; }
  .p-ov__row--5 th > span { transform: translateY(0.4rem); }
  .p-ov__row--1 td { height: 5.6rem; }
  .p-ov__row--2 td { height: 5.4rem; }
  .p-ov__row--3 td { height: 3.9rem; }
  .p-ov__row--4 td { height: 2.5rem; }
  .p-ov__row--5 td { height: 16.1rem; }
  .p-ov__row--6 td { height: 2.5rem; }

  /* =========================================================
     申し込みフォーム
     デザイン原寸 : 584 × 1013（1.5倍書き出し / 390基準に換算）
     ========================================================= */
  .p-form {
    height: 69.5rem;
    background-image: none;
  }
  .p-form__stage {
    width: 39rem;
    height: 69.5rem;
  }

  /* ---------- ドット装飾 ---------- */
  .p-form__dots {
    display: block;
    position: absolute;
    /* DPRによる欠けを防ぐためSVGパターンで描画 */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Ccircle cx='1.2' cy='1.2' r='1.15' fill='%23a7f3ff'/%3E%3C/svg%3E");
    background-size: 1rem 1rem;
  }
  .p-form__dots--1 { top: 1.27rem;  left: 0.07rem;  width:  8.5rem; height: 2.5rem; }
  .p-form__dots--2 { top: 1.27rem;  left: 30.12rem; width:  4.5rem; height: 4.5rem; }
  .p-form__dots--3 { top: 25.31rem; left: 30.12rem; width:  8.5rem; height: 5.5rem; }
  .p-form__dots--4 { top: 33.72rem; left: 0.07rem;  width:  4.5rem; height: 5rem; }
  .p-form__dots--5 { top: 41.33rem; left: 27.11rem; width:  5.5rem; height: 1.5rem; }
  .p-form__dots--6 { top: 58.5rem; left: 29.12rem; width:  6.5rem; height: 6.5rem; }

  /* ---------- 見出し ---------- */
  .p-form__title {
    top: 2.8rem;
    width: 39rem;
    transform: translateX(-0.07rem);
    font-size: 1.72rem;
  }
  .p-form__title::after {
    top: 1.94rem;
    width: 14.03rem;
    height: 0.15rem;
    margin-left: -7rem;
  }

  /* ---------- 各項目 ---------- */
  .p-form__row {
    left: 2.4rem;
    width: 34.33rem;
  }
  .p-form__row--1 { top: 7.86rem; }
  .p-form__row--2 { top: 14.66rem; }
  .p-form__row--3 { top: 21.46rem; }
  .p-form__row--4 { top: 30.4rem; display: block; }
  .p-form__row--5 { top: 51.2rem; }
  .p-form__radios { gap: 3rem; margin-top: 0.8rem; }
  .p-form__radioLabel { font-size: 1.48rem; }
  .p-form__radio {
    width: 1.8rem;
    height: 1.8rem;
    margin-right: 0.7rem;
    border-width: 0.15rem;
  }
  .p-form__radio:checked {
    background: radial-gradient(circle, #4de6ff 0 0.45rem, #fff 0.52rem);
  }
  .p-form__label {
    padding-left: 0.67rem;
    font-size: 1.35rem;
  }
  .p-form__req { margin-left: 0.6rem; }
  .p-form__note {
    position: static;
    display: block;
    margin-top: 0.4rem;
    padding-left: 0.67rem;
    font-size: max(1rem, 10px);
    white-space: normal;
  }
  .p-form__input {
    height: 4.01rem;
    margin-top: 0.67rem;
    padding: 0 1rem;
    font-size: 1.4rem;
  }
  .p-form__row--4 .p-form__input { margin-top: 0.67rem; font-size: 1.35rem;}
  .p-form__select {
    padding-right: 3rem;
    background-position: right 1rem center;
    background-size: 1.1rem 0.75rem;
    /* 16px未満だとiOS Safariがフォーカス時に自動ズームするため下限を設ける */
    font-size: max(1.4rem, 16px);
  }
  .p-form__col--age,
  .p-form__col--income,
  .p-form__col--job { width: 100%; margin: 0; }
  .p-form__col--income { margin-top: 0.72rem; }
  .p-form__col--job { margin-top: 1.58rem; }

  /* ---------- 同意 ---------- */
  .p-form__agreeTitle {
    top: 56.6rem;
    left: 2.6rem;
    font-size: 1.48rem;
  }
  .p-form__agree {
    top: 58.55rem;
    left: 2.75rem;
  }
  .p-form__check {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    border: 0.15rem solid #4de6ff;
  }
  .p-form__agreeTxt {
    margin-left: 0.9rem;
    font-size: 1.04rem;
  }

  /* ---------- 送信 ---------- */
  .p-form__submit {
    top: 61.11rem;
    left: 14.62rem;
    width: 9.82rem;
    height: 3.6rem;
    border-width: 0.25rem;
    font-size: 1.9rem;
    letter-spacing: 0.05em;
  }
  .p-form__pp {
    top: 65.55rem;
    left: 0;
    width: 39rem;
    transform: translateX(0.13rem);
    font-size: 1.15rem;
  }
  .p-form__pp a {
    padding-bottom: 0.26rem;
    border-bottom-width: 0.15rem;
  }

  /* =========================================================
     Amazonギフトカード進呈条件
     デザイン原寸 : 583 × 906（1.5倍書き出し / 390基準に換算）
     ========================================================= */
  .p-terms__wave {
    height: 1.8rem;
    background-size: 100% 2.02rem;
  }
  .p-terms__stage {
    width: 39rem;
    padding: 4.05rem 0 3.5rem;
  }

  /* ---------- 見出し ---------- */
  .p-terms__title { font-size: 1.76rem; }
  .p-terms__title span {
    padding-bottom: 0.4rem;
    border-bottom-width: 0.21rem;
  }

  /* ---------- 本文 ---------- */
  .p-terms__body {
    margin-top: 2.2rem;
    padding: 0 2rem 0 2.87rem;
    font-size: max(1rem, 12px);
    line-height: 1.5rem;
    letter-spacing: 0;
  }
  .p-terms__group { margin-top: 1.1rem; }
  .p-terms__lead + .p-terms__group { margin-top: 1.1rem; }
  .p-terms__list--last { margin-top: 1.1rem; }
  /* SP は letter-spacing: 0 なので全角5文字ちょうど */
  .p-terms__hang { padding-left: 5em; text-indent: -5em; }
  /* SP は letter-spacing: 0 なので「・」の幅はちょうど 1em */
  .p-terms__list li {
    padding-left: 1em;
    text-indent: -1em;
  }
  /* 補足文は li の padding をそのまま使い、「・」行の折り返し位置と完全に揃える。
     rem を使うと font-size: max(1rem, 12px) のクランプ分だけずれるので em / 継承に任せる */
  .p-terms__sub {
    margin-left: 0;
    padding-left: 0;
    text-indent: 0;
  }

  /* ---------- 装飾 ---------- */
  /* SP は右上が「太いバー＋丸」＋下に細いバーの3点構成 */
  .p-terms__deco--r1  { top: 8.29rem;  right: 0;       width: 8.34rem; height: 2.07rem; }
  .p-terms__deco--r2  { display: none; }
  .p-terms__deco--rc  { top: 8.36rem;  right: 9.36rem; width: 1.83rem; height: 1.83rem; }
  .p-terms__deco--r3  { display: block; top: 11.84rem; right: 0; width: 6.42rem; height: 1.21rem; }
  .p-terms__deco--l1  { top: 41.68rem; left: 0;        width: 6.3rem;  height: 1.14rem; }
  .p-terms__deco--l2  { top: 44.08rem; left: 0;        width: 7.76rem; height: 1.81rem; }
  .p-terms__deco--lc  { top: 44.02rem; left: 8.83rem;  width: 1.83rem; height: 1.83rem; }

  /* ---------- フッター ---------- */
  .p-footer { height: 3.81rem; }
  .p-footer__copy { font-size: max(1rem, 10px); }

  /* =========================================================
     THANKS（サンクスページ）
     デザイン原寸 : 390 × 851
     ========================================================= */
  .p-thanks { height: 77.5rem; }
  .p-thanks__stage {
    width: 39rem;
    height: 77.5rem;
  }

  /* ---------- ロゴ ---------- */
  .p-thanks__logo {
    top: 1.2rem;
    left: 1.3rem;
    width: 9.3rem;
  }

  /* ---------- チェックアイコン ---------- */
  .p-thanks__icon {
    top: 6.6rem;
    width: 7.35rem;
    height: 7.35rem;
    margin-left: -3.675rem;
  }

  /* ---------- 白カード ---------- */
  .p-thanks__card {
    top: 17.95rem;
    width: 33.75rem;
    height: 45.25rem;
    margin-left: -16.875rem;
    border-radius: 1.95rem;
  }

  /* ---------- 見出し ---------- */
  .p-thanks__head {
    top: 2rem;
    padding-left: 0;
    font-size: 2.75rem;
    line-height: 3.5rem;
  }
  .p-thanks__head .pt { letter-spacing: -0.4em; }

  /* ---------- サブ見出し ---------- */
  .p-thanks__sub {
    top: 12.5rem;
    padding-left: 0;
    font-size: 1.69rem;
  }

  /* ---------- 注意書き ---------- */
  .p-thanks__notes {
    top: 15.5rem;
    left: 1.7rem;
    font-size: max(1rem, 10px);
    line-height: 1.75rem;
  }
  /* ---------- EVENT INFO ---------- */
  .p-thanks__info {
    top: 24rem;
    padding-left: 0;
    font-size: 1.41rem;
  }
  .p-thanks__info::after {
    width: 9.2rem;
    height: 0.1rem;
    margin-top: 0.32rem;
  }

  /* ---------- テーブル ---------- */
  .p-thanks__table {
    top: 27.8rem;
    width: 26.2rem;
    margin-left: -13.1rem;
  }
  .p-thanks__table th {
    width: 6.4rem;
    padding-left: 0.4rem;
    font-size: 1.09rem;
  }
  .p-thanks__table td {
    padding-left: 1rem;
    font-size: max(1rem, 10px);
    line-height: 1.4rem;
    white-space: normal;
  }
  .p-thanks__row--1 td { letter-spacing: 0.063em; }
  .p-thanks__row--2 td { letter-spacing: -0.015em; }
  .p-thanks__row--3 td { letter-spacing: 0.012em; }
  .p-thanks__row--4 td { letter-spacing: -0.07em; }
  .p-thanks__row--1 th,
  .p-thanks__row--1 td { height: 3.5rem; }
  .p-thanks__row--2 th,
  .p-thanks__row--2 td { height: 3.5rem; }
  .p-thanks__row--3 th,
  .p-thanks__row--3 td { height: 3.7rem; }
  .p-thanks__row--4 th,
  .p-thanks__row--4 td { height: 3.6rem; }

  /* ---------- フッター（サンクス） ---------- */
  .p-footer--thanks { height: 7.6rem; }
  .p-footer--thanks .p-footer__copy {
    font-size: max(1.5rem, 10px);
    transform: none;
  }

}


/* =========================================================
   見出しアニメーション（後から追記／既存スタイルは変更なし）
   - .js-anim は JS が <html> に付与。JS 無効時は一切適用されない
   - 位置調整の transform とぶつからないよう translate プロパティを使用
   ========================================================= */
.js-anim .js-fadeup {
  opacity: 0;
  translate: 0 2rem;
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
              translate 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, translate;
}
.js-anim .js-fadeup.is-inview {
  opacity: 1;
  translate: 0 0;
}

/* 動きを減らす設定の環境では無効化 */
@media (prefers-reduced-motion: reduce) {
  .js-anim .js-fadeup,
  .js-anim .js-fadeup.is-inview {
    opacity: 1;
    translate: none;
    transition: none;
  }
}
