/* ============================================================
   LP: 春の入会キャンペーン 2026
   波之上スイミングスクール
   v7: ファーストビューCTAボタン削除・レイアウト調整
============================================================ */

/* --------------------------------------------------------
   基本設定
-------------------------------------------------------- */
.lp {
  width: 100%;
  overflow-x: hidden;
  font-family: var(--sans);
  color: #3a3a3a;
}

.lp-container {
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1.25rem;
}
@media (min-width: 1024px) {
  .lp-container { padding: 0 3rem; }
}

/* ============================================================
   グレーダミー画像プレースホルダー
   画像が未配置の場合に表示されるグレーのダミーブロック
   ★ 上部のラベルを参考に画像を書き出してください
============================================================ */
.lp-placeholder {
  background: linear-gradient(135deg, #d0d0d0 0%, #b0b0b0 100%);
  border: 2px dashed #888;
  border-radius: 0.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  gap: 0.5rem;
  padding: 1.25rem;
  position: relative;
}
.lp-placeholder__ico {
  font-size: 2.5rem;
  opacity: 0.85;
  display: block;
}
.lp-placeholder__label {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.7;
  background: rgba(0,0,0,0.22);
  padding: 0.4rem 0.75rem;
  border-radius: 0.5rem;
  word-break: break-all;
}
.lp-placeholder__label strong {
  font-size: 0.85rem;
  display: block;
  color: #ffe86e;
  margin-bottom: 0.15rem;
}
/* ヒーロー：子ども写真グリッドダミー */
.lp-placeholder--hero-kids {
  width: 100%;
  max-width: 480px;
  min-height: 320px;
}
.lp-placeholder__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  width: 100%;
  margin-bottom: 0.75rem;
}
.lp-placeholder__cell {
  background: rgba(255,255,255,0.18);
  border-radius: 0.5rem;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  font-size: 0.75rem;
}
.lp-placeholder__cell span { font-size: 1.75rem; }
/* インストラクターダミー */
.lp-placeholder--instructor {
  width: 120px;
  min-height: 220px;
  font-size: 0.65rem;
}
.lp-placeholder--instructor .lp-placeholder__ico { font-size: 2rem; }
/* MERITイラストダミー */
.lp-placeholder--merit-kids {
  width: 100%;
  max-width: 440px;
  min-height: 260px;
}
/* コース写真ダミー */
.lp-placeholder--course {
  width: 100%;
  aspect-ratio: 3 / 2;
  flex-direction: column;
  font-size: 0.68rem;
}
.lp-placeholder--course .lp-placeholder__ico { font-size: 1.75rem; }

/* 施設写真ダミー（figureが読み込み失敗時） */
.lp-facility__fig--dummy {
  background: linear-gradient(135deg, #c8c8c8, #a0a0a0) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: relative;
}
.lp-facility__fig--dummy img { display: none !important; }
.lp-facility__fig-dummy-label {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  font-size: 0.782rem;
  font-weight: 700;
  line-height: 1.7;
  padding: 0.5rem;
  background: rgba(0,0,0,0.25);
}
.lp-facility__fig--dummy .lp-facility__fig-dummy-label { display: flex; }

/* ボタン共通 */
.lp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 1rem 2.25rem;
  border-radius: 3rem;
  font-weight: 900;
  font-size: 1.15rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform 0.22s, box-shadow 0.22s;
  white-space: nowrap;
  letter-spacing: 0.03em;
}
.lp-btn:hover { transform: translateY(-4px); box-shadow: 0 10px 28px rgba(0,0,0,0.22); }
.lp-btn__icon { font-size: 1.15em; }

/* ヒーローメインCTA */
.lp-btn--hero-main {
  background: linear-gradient(135deg, #FFE41A 0%, #ffcc00 100%);
  color: #02284d;
  font-size: 1.2075rem;
  padding: 1.1rem 2.5rem;
  box-shadow: 0 6px 24px rgba(255,204,0,0.55), 0 2px 0 #c8a000 inset;
  border-bottom: 3px solid #c8a000;
}
.lp-btn--hero-main:hover { box-shadow: 0 12px 32px rgba(255,204,0,0.65); }

/* ヒーローサブCTA */
.lp-btn--hero-sub {
  background: #fff;
  color: #1f4999;
  border: 2.5px solid #1f4999;
  padding: 1rem 2rem;
}
.lp-btn--hero-sub:hover { background: #f0f4ff; }

/* 体験ボタン */
.lp-btn--trial {
  background: linear-gradient(135deg, #1f4999 0%, #2a6dd9 100%);
  color: #fff;
  padding: 0.9rem 2rem;
  box-shadow: 0 4px 16px rgba(31,73,153,0.4);
  margin-top: 0.5rem;
  display: inline-flex;
}

.lp-btn--cta   { background: linear-gradient(135deg,#FFE41A,#ffcc00); color: #02284d; box-shadow: 0 4px 16px rgba(255,228,26,0.5); font-weight: 900; }
.lp-btn--accent{ background: #1f4999; color: #fff; }
.lp-btn--white { background: #fff; color: #1f4999; border: 2px solid #fff; }
.lp-btn--lg    { padding: 1.1rem 3rem; font-size: 1.2937rem; }

/* セクション共通見出し */
.lp-sec-head { text-align: center; margin-bottom: 2.5rem; }
.lp-sec-head__en {
  font-family: var(--Quicksand);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: #1f4999;
  margin-bottom: 0.4rem;
}
.lp-sec-head__ja {
  font-size: clamp(1.61rem, 3.22vw, 2.3rem);
  font-weight: 800;
  color: #02284d;
  line-height: 1.5;
}
.lp-sec-head--white .lp-sec-head__en { color: rgba(255,255,255,0.7); }
.lp-sec-head--white .lp-sec-head__ja { color: #fff; }

/* ============================================================
   HERO — v6 ポスターレベル完全再現
   ★ ヘッダー高さ修正: padding-top をヘッダー + 余白
============================================================ */
.lp-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  /* ★ WP ヘッダー高さ（--header-height: 4.625〜6.375rem）+ 余白 */
  padding-top: calc(6.5rem + 1.5rem); /* 約120px = ヘッダー最大値 + 余白 */
  padding-bottom: 4rem;
}
@media (max-width: 768px) {
  .lp-hero {
    padding-top: calc(5rem + 1rem);
    min-height: auto;
  }
}

/* --- 背景画像レイヤー --- */
.lp-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.lp-hero__bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  opacity: 0.9;
}
/* グラデーションオーバーレイ（ポスター①のピンクグラデーション背景を再現） */
.lp-hero__bg-grad {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(145deg,
      rgba(248,207,224,0.95) 0%,
      rgba(247,214,230,0.88) 25%,
      rgba(240,230,245,0.82) 50%,
      rgba(220,238,252,0.78) 75%,
      rgba(200,232,252,0.85) 100%);
}

/* 波形ウォーター装飾（ポスター左端のウォーター模様） */
.lp-hero__wave {
  position: absolute;
  left: -5%;
  top: 20%;
  width: 30%;
  height: 60%;
  background: radial-gradient(ellipse at center,
    rgba(44,199,214,0.12) 0%,
    rgba(44,199,214,0.06) 50%,
    transparent 100%);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

/* --- 花びら --- */
.petal {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  animation: petalFall 8s ease-in-out infinite;
}
.petal--1,.petal--2,.petal--3,.petal--4,.petal--5,.petal--6 {
  border-radius: 50% 0 50% 0;
  opacity: 0.72;
}
.petal--1 { width:38px; height:38px; background:#f8c9dc; top:8%;  left:4%;  transform:rotate(25deg);  animation-delay:0s;   }
.petal--2 { width:26px; height:26px; background:#f5a8c8; top:15%; left:18%; transform:rotate(70deg);  animation-delay:1.2s; }
.petal--3 { width:44px; height:44px; background:#fad4e3; top:6%;  right:8%; transform:rotate(-15deg); animation-delay:0.6s; }
.petal--4 { width:28px; height:28px; background:#eda8c8; top:22%; right:15%;transform:rotate(50deg);  animation-delay:2s;   }
.petal--5 { width:32px; height:32px; background:#f8c9dc; top:44%; left:2%;  transform:rotate(12deg);  animation-delay:3s;   }
.petal--6 { width:24px; height:24px; background:#f5a8c8; top:58%; right:5%; transform:rotate(85deg);  animation-delay:1.5s; }
.petal--7 { width:16px; height:16px; background:#f9d0e0; border-radius:50%; top:32%; left:14%; opacity:0.5; animation-delay:2.5s; }
.petal--8 { width:12px; height:12px; background:#f5a8c8; border-radius:50%; top:68%; right:20%; opacity:0.45; animation-delay:4s; }

@keyframes petalFall {
  0%,100% { transform: translateY(0) rotate(0deg); }
  33%     { transform: translateY(-14px) rotate(12deg); }
  66%     { transform: translateY(7px)  rotate(-7deg); }
}

/* キラキラ */
.hstar {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  animation: hstarTwinkle 2.8s ease-in-out infinite;
}
.hstar--1 { top:10%; left:14%; font-size:1.5rem; color:#ffd1e8; animation-delay:0s;   }
.hstar--2 { top:7%;  right:24%;font-size:1.1rem; color:#fff;    animation-delay:0.7s; }
.hstar--3 { top:36%; left:42%; font-size:1.3rem; color:#ffd1e8; animation-delay:1.4s; }
.hstar--4 { top:20%; right:9%; font-size:0.95rem; color:#fff;   animation-delay:2.1s; }
.hstar--5 { top:58%; left:58%; font-size:1.2rem; color:#ffd1e8; animation-delay:0.4s; }

@keyframes hstarTwinkle {
  0%,100% { opacity:0.5; transform:scale(1); }
  50%     { opacity:1;   transform:scale(1.35) rotate(15deg); }
}

/* --- 内部レイアウト --- */
.lp-hero__inner {
  position: relative;
  z-index: 2;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem;
  align-items: center;
}
@media (max-width: 768px) {
  .lp-hero__inner {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* --- 左カラム --- */
/* v7: CTAボタン削除後、gapを少し広げてバランス調整 */
.lp-hero__left { display: flex; flex-direction: column; gap: 1.4rem; }

.lp-hero__org {
  display: inline-block;
  background: rgba(255,255,255,0.88);
  color: #1f4999;
  font-size: 0.897rem;
  font-weight: 700;
  padding: 0.3rem 1rem;
  border-radius: 2rem;
  letter-spacing: 0.05em;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(31,73,153,0.18);
  width: fit-content;
}

/* ★★★ メインキャッチ（「強くなろう！」折り返し修正） ★★★ */
.lp-hero__catch {
  line-height: 1.08;
  margin: 0;
  filter: drop-shadow(0 4px 12px rgba(0,0,0,0.12));
}
.lp-hero__catch-line1 {
  display: block;
  font-size: clamp(2.0125rem, 5.175vw, 3.45rem);
  font-weight: 900;
  color: #2ec1d1;
  -webkit-text-stroke: 2.5px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 3px 0 rgba(0,120,140,0.2), 0 2px 14px rgba(46,193,209,0.3);
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.lp-hero__catch-line2 {
  display: block;
  /* ★折り返し防止: white-space: nowrap + フォントサイズ調整 */
  white-space: nowrap;
  font-size: clamp(2.875rem, 8.05vw, 6.0375rem);
  font-weight: 900;
  color: #fff;
  -webkit-text-stroke: 4px #2ec1d1;
  paint-order: stroke fill;
  text-shadow:
    4px 5px 0 rgba(0,120,140,0.28),
    0 3px 20px rgba(46,193,209,0.35);
  letter-spacing: -0.01em;
  line-height: 1.05;
}
@media (max-width: 480px) {
  .lp-hero__catch-line2 {
    font-size: clamp(2.5875rem, 11.5vw, 4.025rem);
  }
}

/* --- 春のキャンペーン帯バッジ --- */
.lp-hero__camp-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: linear-gradient(135deg, #eb4e93 0%, #f8799a 50%, #eb4e93 100%);
  color: #fff;
  border-radius: 3rem;
  padding: 0.55rem 1.25rem;
  font-weight: 900;
  font-size: 1.035rem;
  box-shadow: 0 4px 16px rgba(235,78,147,0.45);
  border: 2px solid rgba(255,255,255,0.35);
  width: fit-content;
  animation: campBadgePulse 2.5s ease-in-out infinite;
}
.lp-hero__camp-badge-hana { font-size: 1.265rem; }
.lp-hero__camp-badge-text {
  font-size: clamp(0.9775rem, 2.3vw, 1.15rem);
  -webkit-text-stroke: 0.3px rgba(255,255,255,0.5);
}
.lp-hero__camp-badge-period {
  background: rgba(255,255,255,0.22);
  padding: 0.15rem 0.65rem;
  border-radius: 2rem;
  font-size: 0.943rem;
  white-space: nowrap;
}
@keyframes campBadgePulse {
  0%,100% { box-shadow: 0 4px 16px rgba(235,78,147,0.45); }
  50%     { box-shadow: 0 6px 24px rgba(235,78,147,0.7); transform: scale(1.02); }
}

/* --- 体力バッジ（ポスターの円形バブル） --- */
.lp-hero__power {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.lp-hero__power-badge {
  border-radius: 1rem;
  padding: 0.65rem 0.85rem;
  font-size: 0.8625rem;
  line-height: 1.55;
  flex: 1 1 120px;
  min-width: 100px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.1);
  backdrop-filter: blur(4px);
  text-align: center;
}
.lp-hero__power-badge strong {
  display: block;
  font-size: 1.035rem;
  font-weight: 900;
  margin-bottom: 0.2rem;
}
.lp-hero__power-badge p { margin: 0; font-size: 0.805rem; line-height: 1.55; }
/* アイコン画像対応 */
.lp-power-icon-wrap {
  width: 48px;
  height: 48px;
  margin: 0 auto 0.35rem;
  position: relative;
}
.lp-power-icon-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.lp-power-icon-fallback {
  font-size: 1.725rem;
  display: none;
  text-align: center;
  line-height: 48px;
}
.lp-hero__power-badge--cyan   { background: rgba(231,248,251,0.92); border: 2.5px solid #3ab7be; }
.lp-hero__power-badge--cyan   strong { color: #2ec1d1; }
.lp-hero__power-badge--yellow { background: rgba(255,253,225,0.92); border: 2.5px solid #f2e46b; }
.lp-hero__power-badge--yellow strong { color: #c8a000; }
.lp-hero__power-badge--pink   { background: rgba(255,236,247,0.92); border: 2.5px solid #f06aa5; }
.lp-hero__power-badge--pink   strong { color: #eb4e93; }
.lp-hero__power-plus,
.lp-hero__power-arrow {
  font-size: 1.84rem;
  font-weight: 900;
  color: #1f4999;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15));
}

/* --- CTAボタン群（v7: ヒーローセクションでは非使用） --- */
.lp-hero__cta-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.lp-hero__trust {
  font-size: 0.874rem;
  font-weight: 700;
  color: #1f4999;
  background: rgba(255,255,255,0.85);
  padding: 0.4rem 1rem;
  border-radius: 2rem;
  backdrop-filter: blur(4px);
  letter-spacing: 0.04em;
  margin: 0;
}
/* v7: ボタンなし時のtrustバッジ — 少し大きく目立たせる */
.lp-hero__trust--no-btn {
  font-size: 0.943rem;
  padding: 0.5rem 1.4rem;
  background: rgba(255,255,255,0.92);
  box-shadow: 0 2px 10px rgba(31,73,153,0.12);
  border: 1.5px solid rgba(31,73,153,0.15);
}

/* --- 右カラム：ポスタービジュアル --- */
.lp-hero__right {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.lp-hero__visual {
  position: relative;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0.5rem;
}

/* ポスターリンクバッジ（右上） */
.lp-hero__poster-link {
  position: absolute;
  top: -1rem;
  right: 0;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: linear-gradient(135deg,#eb4e93,#f8799a);
  color: #fff;
  padding: 0.65rem 1.25rem;
  border-radius: 3rem;
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 800;
  box-shadow: 0 4px 20px rgba(235,78,147,0.5);
  transition: transform 0.2s, box-shadow 0.2s;
  line-height: 1.4;
  text-align: center;
  border: 2px solid rgba(255,255,255,0.45);
  white-space: nowrap;
}
.lp-hero__poster-link:hover { transform: translateY(-4px) scale(1.03); box-shadow: 0 8px 28px rgba(235,78,147,0.6); }
.lp-hero__poster-link-ico  { font-size: 1.4375rem; }
.lp-hero__poster-link-text { line-height: 1.4; }
.lp-hero__poster-link-arrow { font-size: 1.61rem; font-weight: 900; }

/* 子ども写真コラージュ */
.lp-hero__kids-wrap {
  flex: 1;
  max-width: 420px;
  position: relative;
}
.lp-hero__kids-img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 12px 32px rgba(0,0,0,0.2));
  animation: kidsFloat 5s ease-in-out infinite;
}
@keyframes kidsFloat {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-14px); }
}

/* インストラクター画像 */
.lp-hero__instructor {
  flex: 0 0 auto;
  align-self: flex-end;
}
.lp-hero__instructor-img {
  width: 120px;
  height: auto;
  display: block;
  filter: drop-shadow(0 8px 20px rgba(0,0,0,0.16));
  animation: instructorFloat 6s ease-in-out infinite;
  animation-delay: 1s;
}
@keyframes instructorFloat {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-8px); }
}

/* スクロール誘導 */
.lp-hero__scroll {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  text-align: center;
  animation: scrollBounce 2s ease-in-out infinite;
}
@keyframes scrollBounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%     { transform: translateX(-50%) translateY(7px); }
}
.lp-hero__scroll-text {
  display: block;
  font-size: 0.805rem;
  font-weight: 700;
  color: #1f4999;
  background: rgba(255,255,255,0.85);
  padding: 0.2rem 0.8rem;
  border-radius: 2rem;
  margin-bottom: 0.2rem;
  backdrop-filter: blur(4px);
}
.lp-hero__scroll-arrow {
  display: block;
  font-size: 1.38rem;
  color: #1f4999;
}

/* ============================================================
   CAMPAIGN RIBBON — 橋渡し帯
============================================================ */
.lp-camp-ribbon {
  background: linear-gradient(90deg, #eb4e93 0%, #f8799a 50%, #eb4e93 100%);
  color: #fff;
  text-align: center;
  padding: 0.8rem 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-weight: 900;
  font-size: clamp(1.035rem, 2.875vw, 1.3225rem);
  letter-spacing: 0.06em;
  position: relative;
  z-index: 5;
  box-shadow: 0 3px 14px rgba(235,78,147,0.45);
}
.lp-camp-ribbon__text {
  font-size: clamp(1.15rem, 3.45vw, 1.6675rem);
  -webkit-text-stroke: 0.5px rgba(255,255,255,0.5);
}
.lp-camp-ribbon__period {
  background: rgba(255,255,255,0.22);
  padding: 0.2rem 0.85rem;
  border-radius: 2rem;
  font-size: clamp(0.9775rem, 2.53vw, 1.2075rem);
  font-weight: 800;
}
.lp-camp-ribbon__period small { font-size: 0.805em; }
.lp-camp-ribbon__petal { font-size: 1.15rem; }

/* ============================================================
   CAMPAIGN — フル強化版
============================================================ */
.lp-campaign {
  position: relative;
  background: linear-gradient(180deg,
    #fff5f9 0%,
    #fff0e8 40%,
    #fffbf0 100%);
  padding: 4.5rem 0 5rem;
  overflow: hidden;
}

/* 花びら装飾 */
.cpetal {
  position: absolute;
  pointer-events: none;
  opacity: 0.45;
  border-radius: 50% 0 50% 0;
}
.cpetal--1 { width:34px; height:34px; background:#f8c9dc; top:4%;  left:5%;  transform:rotate(30deg); }
.cpetal--2 { width:24px; height:24px; background:#fad4e3; top:8%;  right:8%; transform:rotate(-20deg); }
.cpetal--3 { width:20px; height:20px; background:#f5a8c8; top:88%; left:3%;  transform:rotate(60deg); }
.cpetal--4 { width:28px; height:28px; background:#eda8c8; top:92%; right:5%; transform:rotate(40deg); }

/* ヘッダー */
.lp-campaign__head {
  text-align: center;
  margin-bottom: 2.75rem;
}
.lp-campaign__head-label {
  display: inline-block;
  background: linear-gradient(135deg,#e53935,#ff5252);
  color: #fff;
  font-size: 0.943rem;
  font-weight: 900;
  padding: 0.35rem 1.25rem;
  border-radius: 2rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
  animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(229,57,53,0.4); }
  50%     { transform: scale(1.04); box-shadow: 0 0 0 8px rgba(229,57,53,0); }
}

/* キャンペーンタイトル */
.lp-campaign__title {
  line-height: 1.15;
  margin-bottom: 1rem;
  font-weight: 900;
  font-size: clamp(2.5875rem, 6.325vw, 4.6rem);
  color: #eb4e93;
  -webkit-text-stroke: 2.5px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 4px 0 rgba(180,20,80,0.2), 0 2px 16px rgba(235,78,147,0.2);
  white-space: nowrap;
}
.lp-campaign__title-haru {
  display: inline-block;
  font-size: clamp(2.5875rem, 5.75vw, 4.025rem);
  color: #2ec1d1;
  -webkit-text-stroke: 2.5px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 4px 0 rgba(0,120,140,0.18);
  margin-right: 0.1em;
}
@media (max-width: 480px) {
  .lp-campaign__title { white-space: normal; }
}

/* 期間バッジ */
.lp-campaign__period-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.lp-campaign__period-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #02284d;
  color: #fff;
  border-radius: 3rem;
  padding: 0.65rem 2.25rem;
  box-shadow: 0 4px 18px rgba(2,40,77,0.38);
  border: 3px solid #FFE41A;
}
.lp-campaign__period-from,
.lp-campaign__period-to {
  font-family: var(--Quicksand);
  font-size: clamp(2.0125rem, 5.175vw, 3.1625rem);
  font-weight: 900;
  color: #FFE41A;
  letter-spacing: 0.03em;
  line-height: 1;
}
.lp-campaign__period-from small,
.lp-campaign__period-to   small { font-size: 0.575em; font-weight: 600; color: rgba(255,228,26,0.85); }
.lp-campaign__period-tilde { font-size: 2.0125rem; font-weight: 900; color: #fff; }
.lp-campaign__period-note { font-size: 0.8625rem; color: #888; }

.lp-campaign__lead {
  font-size: clamp(1.15rem, 2.875vw, 1.38rem);
  color: #333;
  font-weight: 700;
  margin-bottom: 0;
}
.lp-campaign__lead em {
  font-style: normal;
  color: #e53935;
  font-size: 1.4375em;
  font-weight: 900;
}

/* --- 特典カードグリッド --- */
.lp-campaign__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-bottom: 2.5rem;
}
@media (min-width: 640px) {
  .lp-campaign__grid { grid-template-columns: repeat(4, 1fr); }
}

.lp-campaign__card {
  background: #fff;
  border-radius: 1.25rem;
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(0,0,0,0.1);
  border: 3px solid #4cc2c5;
  text-align: center;
  padding: 1.25rem 0.75rem 1.5rem;
  transition: transform 0.22s, box-shadow 0.22s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
}
.lp-campaign__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.15);
}
.lp-campaign__card--kids  { border-color: #2cc7d6; }
.lp-campaign__card--adult { border-color: #4aae6b; }
.lp-campaign__card--gift  { border-color: #eb4e93; }

.lp-campaign__card-num {
  font-family: var(--Quicksand);
  font-size: 0.828rem;
  font-weight: 900;
  color: #fff;
  background: #1f4999;
  border-radius: 2rem;
  padding: 0.1rem 0.55rem;
  letter-spacing: 0.08em;
}
.lp-campaign__card--kids  .lp-campaign__card-num { background: #2cc7d6; }
.lp-campaign__card--adult .lp-campaign__card-num { background: #4aae6b; }
.lp-campaign__card--gift  .lp-campaign__card-num { background: #eb4e93; }

/* カードアイコン画像対応 */
.lp-campaign__card-ico-wrap {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-campaign__card-ico-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.lp-campaign__card-ico { font-size: 2.5875rem; line-height: 1; }

.lp-campaign__card-tag {
  font-size: 0.828rem;
  font-weight: 800;
  color: #fff;
  background: #1f4999;
  padding: 0.2rem 0.7rem;
  border-radius: 2rem;
}
.lp-campaign__card--kids  .lp-campaign__card-tag { background: #2cc7d6; }
.lp-campaign__card--adult .lp-campaign__card-tag { background: #4aae6b; }
.lp-campaign__card--gift  .lp-campaign__card-tag { background: #eb4e93; }
.lp-campaign__card-tag--red { background: #e53935 !important; }

.lp-campaign__card-label {
  font-size: 0.943rem;
  font-weight: 700;
  color: #333;
  line-height: 1.4;
}
.lp-campaign__card-cross { font-size: 0.805rem; color: #aaa; }
.lp-campaign__card-cross s { text-decoration: line-through; }

.lp-campaign__card-value {
  font-size: clamp(1.725rem, 4.6vw, 2.5875rem);
  font-weight: 900;
  color: #eb4e93;
  line-height: 1.1;
  -webkit-text-stroke: 1px #fff;
  paint-order: stroke fill;
  text-shadow: 2px 3px 0 rgba(180,20,80,0.15);
}
.lp-campaign__card-value span { font-size: 0.8625em; }
.lp-campaign__card--kids  .lp-campaign__card-value { color: #0d68b5; }
.lp-campaign__card--adult .lp-campaign__card-value { color: #2e7d32; }

.lp-campaign__card-note { font-size: 0.713rem; color: #aaa; line-height: 1.5; }

/* 区切り */
.lp-campaign__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin: 0.5rem 0 2rem;
  font-size: 1.15rem;
  font-weight: 800;
  color: #eb4e93;
}
.lp-campaign__divider span:nth-child(2) {
  background: linear-gradient(135deg,#fff0f8,#ffe8f5);
  padding: 0.4rem 1.5rem;
  border-radius: 2rem;
  border: 2px solid #f5a8c8;
  font-size: 1.0925rem;
  color: #eb4e93;
}

/* --- 体験ボックス2つ --- */
.lp-trial {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-bottom: 2rem;
}
@media (min-width: 640px) {
  .lp-trial { grid-template-columns: 1fr 1fr; }
}

.lp-trial__box {
  border-radius: 1.5rem;
  padding: 2rem 1.75rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.lp-trial__box--blue {
  background: linear-gradient(135deg,#e8f3fb 0%,#d0eaf8 100%);
  border: 3px solid #1f4999;
  box-shadow: 0 4px 20px rgba(31,73,153,0.15);
}
.lp-trial__box--dark {
  background: linear-gradient(135deg,#02284d 0%,#0a3d70 100%);
  color: #fff;
  box-shadow: 0 4px 20px rgba(2,40,77,0.35);
}

.lp-trial__tag {
  display: inline-block;
  background: linear-gradient(135deg,#FFE41A,#ffcc00);
  color: #02284d;
  font-size: 0.8625rem;
  font-weight: 900;
  padding: 0.25rem 1rem;
  border-radius: 2rem;
  margin-bottom: 0.6rem;
  box-shadow: 0 2px 8px rgba(255,204,0,0.4);
}
.lp-trial__tag--yellow { background: linear-gradient(135deg,#FFE41A,#ffcc00); }

.lp-trial__target {
  font-size: 0.897rem;
  opacity: 0.75;
  margin-bottom: 0.4rem;
  color: inherit;
}
.lp-trial__box--blue .lp-trial__target { color: #1f4999; }

.lp-trial__title {
  font-size: clamp(1.38rem, 3.45vw, 1.84rem);
  font-weight: 900;
  margin-bottom: 0.75rem;
  line-height: 1.35;
}
.lp-trial__box--blue .lp-trial__title { color: #02284d; }

.lp-trial__price-wrap { margin-bottom: 0.5rem; }
.lp-trial__price-cross { font-size: 0.897rem; color: #888; }
.lp-trial__price-cross s { text-decoration: line-through; }
.lp-trial__price {
  font-size: 1.2075rem;
  font-weight: 700;
  color: #02284d;
  margin: 0;
}
.lp-trial__price em {
  font-style: normal;
  font-size: 3.45rem;
  font-weight: 900;
  color: #e53935;
  line-height: 1;
  -webkit-text-stroke: 1.5px #fff;
  paint-order: stroke fill;
}
.lp-trial__price em small { font-size: 0.5175em; font-weight: 600; }

.lp-trial__desc {
  font-size: 0.943rem;
  line-height: 1.7;
  color: #555;
  margin-bottom: 0.75rem;
}
.lp-trial__box--dark .lp-trial__desc { color: rgba(255,255,255,0.8); }

.lp-trial__date {
  font-family: var(--Quicksand);
  font-size: clamp(3.1625rem, 8.05vw, 5.175rem);
  font-weight: 900;
  color: #FFE41A;
  line-height: 1.05;
  margin-bottom: 1rem;
  text-shadow: 3px 4px 0 rgba(0,0,0,0.2);
  -webkit-text-stroke: 2px rgba(255,255,255,0.3);
  paint-order: stroke fill;
}
.lp-trial__date small { font-size: 0.5175em; font-weight: 700; }

.lp-trial__note {
  font-size: 0.782rem;
  margin-top: 0.75rem;
  color: #aaa;
  line-height: 1.6;
}

/* --- 緊急申込みバー --- */
.lp-campaign__urgency {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  background: linear-gradient(135deg,#02284d,#1f4999);
  border-radius: 1.25rem;
  padding: 1.25rem 2rem;
  color: #fff;
  margin-top: 1rem;
  box-shadow: 0 4px 20px rgba(2,40,77,0.3);
}
.lp-campaign__urgency-ico { font-size: 1.725rem; }
.lp-campaign__urgency p {
  font-size: 1.0925rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 0;
}
.lp-campaign__urgency strong { color: #FFE41A; font-size: 1.265em; }

/* ============================================================
   MERIT セクション（フル強化版）
   ポスター②デザイン完全再現
============================================================ */
.lp-merit {
  position: relative;
  background: linear-gradient(180deg,
    #dff7fb 0%,
    #c7ecff 25%,
    #b8e1f8 55%,
    #a8d8f0 80%,
    #9ecce8 100%);
  padding: 5rem 0 6rem;
  overflow: hidden;
}

/* 背景：泡 */
.bubble {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.32);
  border: 1.5px solid rgba(255,255,255,0.55);
  pointer-events: none;
  animation: floatBubble 6s ease-in-out infinite;
}
.bubble--1 { width: 80px;  height: 80px;  top: 5%;  left: 4%;   animation-delay: 0s;   }
.bubble--2 { width: 48px;  height: 48px;  top: 18%; right: 6%;  animation-delay: 1s;   }
.bubble--3 { width: 110px; height: 110px; top: 52%; left: 1%;   animation-delay: 2.5s; }
.bubble--4 { width: 36px;  height: 36px;  top: 68%; right: 10%; animation-delay: 0.8s; }
.bubble--5 { width: 60px;  height: 60px;  top: 82%; left: 8%;   animation-delay: 3.5s; }
.bubble--6 { width: 30px;  height: 30px;  top: 38%; left: 50%;  animation-delay: 1.8s; }
.bubble--7 { width: 90px;  height: 90px;  top: 72%; right: 3%;  animation-delay: 4s;   }

@keyframes floatBubble {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

/* 星キラキラ */
.mstar {
  position: absolute;
  pointer-events: none;
  font-size: 1.1rem;
  color: rgba(255,255,255,0.75);
  animation: twinkle 3s ease-in-out infinite;
}
.mstar--1 { top: 8%;  left: 15%; font-size: 1.3rem; animation-delay: 0s;   }
.mstar--2 { top: 22%; right: 18%; font-size: 0.9rem; animation-delay: 0.6s; }
.mstar--3 { top: 60%; left: 30%; font-size: 1.1rem; animation-delay: 1.2s; }
.mstar--4 { top: 44%; right: 28%; font-size: 0.8rem; animation-delay: 1.8s; }
.mstar--5 { top: 78%; left: 55%; font-size: 1.0rem; animation-delay: 2.4s; }

@keyframes twinkle {
  0%,100% { opacity: 0.6; transform: scale(1); }
  50%      { opacity: 1;   transform: scale(1.25); }
}

/* ① メインコピー */
.lp-merit__catch {
  text-align: center;
  margin-bottom: 2.5rem;
  position: relative;
  z-index: 1;
}
.lp-merit__catch-label {
  display: inline-block;
  background: rgba(255,255,255,0.78);
  color: #0d68b5;
  font-size: 0.943rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 0.3rem 1.25rem;
  border-radius: 2rem;
  margin-bottom: 0.75rem;
  border: 1.5px solid rgba(13,104,181,0.2);
}
.lp-merit__title {
  line-height: 1.15;
  margin-bottom: 0.75rem;
}
.lp-merit__title-top {
  display: block;
  font-size: clamp(1.725rem, 4.025vw, 2.5875rem);
  font-weight: 900;
  color: #014a84;
  -webkit-text-stroke: 1.5px #fff;
  paint-order: stroke fill;
  margin-bottom: 0.1rem;
  text-shadow: 0 2px 10px rgba(1,74,132,0.18);
}
.lp-merit__title-bottom { display: block; }
.lp-merit__title-blue {
  font-style: normal;
  font-size: clamp(2.875rem, 8.05vw, 5.4625rem);
  font-weight: 900;
  color: #0d68b5;
  -webkit-text-stroke: 3px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 4px 0 rgba(1,74,132,0.22), 0 2px 16px rgba(13,104,181,0.2);
  letter-spacing: 0.02em;
}
.lp-merit__title-orange {
  font-style: normal;
  font-size: clamp(2.875rem, 8.05vw, 5.4625rem);
  font-weight: 900;
  color: #ff9a1f;
  -webkit-text-stroke: 3px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 4px 0 rgba(180,100,0,0.18), 0 2px 16px rgba(255,154,31,0.2);
  letter-spacing: 0.02em;
}
.lp-merit__sub {
  font-size: 1.15rem;
  color: #014a84;
  font-weight: 700;
  margin-top: 0.5rem;
}

/* ② 雲クラウド3つ（アイコン画像対応） */
.lp-merit__clouds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 3rem;
  position: relative;
  z-index: 1;
}
@media (max-width: 640px) {
  .lp-merit__clouds { grid-template-columns: 1fr; gap: 0.875rem; }
}

.lp-merit__cloud {
  background: rgba(255,255,255,0.92);
  border-radius: 50% 50% 50% 50% / 38% 38% 62% 62%;
  padding: 1.75rem 1.25rem 1.5rem;
  text-align: center;
  box-shadow: 0 6px 20px rgba(13,104,181,0.14), 0 2px 6px rgba(255,255,255,0.6);
  backdrop-filter: blur(6px);
  border: 2px solid rgba(255,255,255,0.7);
  transition: transform 0.25s;
}
.lp-merit__cloud:hover { transform: translateY(-6px); }
.lp-merit__cloud--center { transform: translateY(-14px); }
.lp-merit__cloud--center:hover { transform: translateY(-20px); }

/* クラウドアイコン画像対応 */
.lp-merit__cloud-ico-wrap {
  width: 56px;
  height: 56px;
  margin: 0 auto 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-merit__cloud-ico-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.lp-merit__cloud-ico {
  font-size: 2.5875rem;
  margin-bottom: 0;
  line-height: 1;
}
.lp-merit__cloud-text {
  font-size: 1.012rem;
  line-height: 1.75;
  color: #014a84;
}
.lp-merit__cloud-text strong {
  color: #0d68b5;
  font-weight: 900;
  font-size: 1.15rem;
}

/* ③ イラスト画像エリア */
.lp-merit__illust-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 3rem;
  min-height: 200px;
  z-index: 1;
}

.lp-merit__illust-center {
  position: relative;
  flex: 0 0 auto;
  max-width: 440px;
  width: 100%;
  text-align: center;
}
.lp-merit__illust-img {
  width: 100%;
  max-width: 440px;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 8px 24px rgba(13,104,181,0.22));
  animation: floatKids 4s ease-in-out infinite;
}
@keyframes floatKids {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

/* 吹き出しバッジ（左右） */
.lp-merit__illust-speech {
  flex: 0 0 auto;
  background: #fff;
  border-radius: 1.25rem;
  padding: 1rem 1.1rem;
  text-align: center;
  box-shadow: 0 4px 16px rgba(13,104,181,0.16);
  border: 2.5px solid #44d8e0;
  min-width: 96px;
  position: relative;
}
.lp-merit__illust-speech::after {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0; height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
}
.lp-merit__illust-speech--left::after {
  right: -10px;
  border-left: 10px solid #44d8e0;
}
.lp-merit__illust-speech--right::after {
  left: -10px;
  border-right: 10px solid #44d8e0;
}
.lp-merit__speech-ico { font-size: 2.0125rem; display: block; margin-bottom: 0.3rem; }
.lp-merit__illust-speech p {
  font-size: 0.943rem;
  font-weight: 800;
  color: #0d68b5;
  margin: 0;
  line-height: 1.4;
}

@media (max-width: 640px) {
  .lp-merit__illust-wrap { flex-direction: column; gap: 1rem; }
  .lp-merit__illust-speech { display: none; }
}

/* ④ バブル3つ */
.lp-merit__bubbles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 3.5rem;
  position: relative;
  z-index: 1;
  align-items: start;
}
@media (max-width: 640px) {
  .lp-merit__bubbles { grid-template-columns: 1fr; gap: 1.5rem; }
}

.lp-merit__bubble {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lp-merit__bubble-ring {
  background: #fff;
  border-radius: 50%;
  aspect-ratio: 1 / 1;
  width: 100%;
  max-width: 220px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1.5rem;
  box-shadow: 0 6px 24px rgba(1,87,155,0.22);
  transition: transform 0.25s, box-shadow 0.25s;
}
.lp-merit__bubble-ring:hover {
  transform: scale(1.05);
  box-shadow: 0 10px 32px rgba(1,87,155,0.28);
}
.lp-merit__bubble--1 .lp-merit__bubble-ring { border: 4px solid #2cc7d6; }
.lp-merit__bubble--2 .lp-merit__bubble-ring { border: 4px solid #ff9a1f; }
.lp-merit__bubble--3 .lp-merit__bubble-ring { border: 4px solid #ec5a96; }

.lp-merit__bubble-label {
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 0.3rem;
  letter-spacing: 0.05em;
}
.lp-merit__bubble--1 .lp-merit__bubble-label { color: #2cc7d6; }
.lp-merit__bubble--2 .lp-merit__bubble-label { color: #ff9a1f; }
.lp-merit__bubble--3 .lp-merit__bubble-label { color: #ec5a96; }

.lp-merit__bubble-main {
  font-size: clamp(1.1rem, 2.5vw, 1.5rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.35;
}
.lp-merit__bubble-desc {
  font-size: 0.82rem;
  line-height: 1.8;
  color: #014a84;
  text-align: center;
  background: rgba(255,255,255,0.72);
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  box-shadow: 0 2px 8px rgba(13,104,181,0.08);
  backdrop-filter: blur(4px);
  width: 100%;
}

/* ⑤ 6つのベネフィットカード */
.lp-merit__benefits {
  background: rgba(255,255,255,0.58);
  border-radius: 1.5rem;
  padding: 2rem 1.5rem 2.25rem;
  margin-bottom: 3rem;
  backdrop-filter: blur(8px);
  border: 1.5px solid rgba(255,255,255,0.7);
  box-shadow: 0 4px 24px rgba(13,104,181,0.1);
  position: relative;
  z-index: 1;
}
.lp-merit__benefits-ttl {
  text-align: center;
  font-size: clamp(1.265rem, 2.875vw, 1.61rem);
  font-weight: 900;
  color: #02284d;
  margin-bottom: 1.5rem;
}
.lp-merit__benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
@media (max-width: 640px) {
  .lp-merit__benefits-grid { grid-template-columns: repeat(2, 1fr); }
}

.lp-merit__benefit-card {
  background: #fff;
  border-radius: 1rem;
  padding: 1.25rem 0.9rem;
  text-align: center;
  box-shadow: 0 3px 12px rgba(13,104,181,0.1);
  border-top: 4px solid #2cc7d6;
  transition: transform 0.2s;
}
.lp-merit__benefit-card:nth-child(2) { border-top-color: #ff9a1f; }
.lp-merit__benefit-card:nth-child(3) { border-top-color: #4aae6b; }
.lp-merit__benefit-card:nth-child(4) { border-top-color: #ec5a96; }
.lp-merit__benefit-card:nth-child(5) { border-top-color: #1a75c8; }
.lp-merit__benefit-card:nth-child(6) { border-top-color: #d4a800; }
.lp-merit__benefit-card:hover { transform: translateY(-4px); }

/* ベネフィットアイコン画像対応 */
.lp-benefit-ico-wrap {
  width: 52px;
  height: 52px;
  margin: 0 auto 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-merit__benefit-ico-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.lp-merit__benefit-ico {
  font-size: 2.3rem;
  display: block;
  line-height: 1;
}

.lp-merit__benefit-card h4 {
  font-size: 1.035rem;
  font-weight: 800;
  color: #02284d;
  margin-bottom: 0.4rem;
  line-height: 1.4;
}
.lp-merit__benefit-card p {
  font-size: 0.8625rem;
  line-height: 1.7;
  color: #555;
}

/* ⑥ 保護者の声 */
.lp-merit__voices {
  margin-bottom: 3rem;
  position: relative;
  z-index: 1;
}
.lp-merit__voices-ttl {
  text-align: center;
  font-size: clamp(1.265rem, 2.875vw, 1.61rem);
  font-weight: 900;
  color: #02284d;
  margin-bottom: 1.5rem;
  position: relative;
  display: inline-block;
  left: 50%;
  transform: translateX(-50%);
}
.lp-merit__voices-ttl::before,
.lp-merit__voices-ttl::after {
  content: '★';
  color: #ffcc00;
  margin: 0 0.4rem;
  font-size: 1.15em;
}

.lp-merit__voices-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 768px) {
  .lp-merit__voices-grid { grid-template-columns: 1fr; }
}

.lp-merit__voice-card {
  background: rgba(255,255,255,0.92);
  border-radius: 1.25rem;
  padding: 1.5rem 1.25rem;
  box-shadow: 0 4px 18px rgba(13,104,181,0.12);
  border: 2px solid rgba(255,255,255,0.8);
  backdrop-filter: blur(6px);
  position: relative;
}
.lp-merit__voice-card::before {
  content: '\201C';
  position: absolute;
  top: -0.2rem;
  left: 1rem;
  font-size: 4.6rem;
  color: #2cc7d6;
  opacity: 0.25;
  font-family: Georgia, serif;
  line-height: 1;
}

.lp-merit__voice-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.875rem;
}
.lp-merit__voice-avatar {
  font-size: 2.3rem;
  background: #e8f3fb;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid #2cc7d6;
}
.lp-merit__voice-name {
  font-size: 1.012rem;
  font-weight: 800;
  color: #02284d;
  margin-bottom: 0.1rem;
}
.lp-merit__voice-tag {
  font-size: 0.828rem;
  color: #2cc7d6;
  font-weight: 600;
}
.lp-merit__voice-text {
  font-size: 0.9775rem;
  line-height: 1.8;
  color: #444;
  margin-bottom: 0.75rem;
}
.lp-merit__voice-stars {
  color: #ffcc00;
  font-size: 1.0925rem;
  letter-spacing: 0.15em;
}

/* ⑦ 実績数字バナー */
.lp-merit__stats {
  background: linear-gradient(135deg, #0d68b5 0%, #2cc7d6 100%);
  border-radius: 1.5rem;
  padding: 2rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 1.25rem;
  box-shadow: 0 6px 28px rgba(13,104,181,0.35);
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.lp-merit__stats::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    45deg,
    rgba(255,255,255,0.04) 0px,
    rgba(255,255,255,0.04) 1px,
    transparent 1px,
    transparent 12px
  );
  pointer-events: none;
}

.lp-merit__stat {
  text-align: center;
  color: #fff;
  flex: 1 1 120px;
}
.lp-merit__stat-num {
  font-family: var(--Quicksand);
  font-size: clamp(2.0125rem, 4.6vw, 2.875rem);
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 0.2rem;
}
.lp-merit__stat-num span {
  font-size: 0.6325em;
  font-weight: 700;
  display: inline-block;
  margin-left: 0.1rem;
  vertical-align: baseline;
}
.lp-merit__stat-label {
  font-size: 0.897rem;
  opacity: 0.88;
  font-weight: 600;
}
.lp-merit__stat-div {
  width: 1px;
  height: 3rem;
  background: rgba(255,255,255,0.3);
  flex-shrink: 0;
}
@media (max-width: 640px) {
  .lp-merit__stat-div { display: none; }
  .lp-merit__stats { gap: 1.5rem 2rem; }
}

/* --------------------------------------------------------
   REASONS
-------------------------------------------------------- */
.lp-reasons {
  background: #fff;
  padding: 5rem 0;
}

.lp-reasons__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-bottom: 3rem;
  padding: 0;
}
.lp-reasons__item {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background: #f4f7fc;
  border-radius: 1rem;
  padding: 1.75rem 1.5rem;
  border-left: 5px solid #1f4999;
}
.lp-reasons__num {
  font-family: var(--Quicksand);
  font-size: 3.45rem;
  font-weight: 900;
  color: #1f4999;
  opacity: 0.18;
  line-height: 1;
  flex-shrink: 0;
  width: 2.5rem;
}
.lp-reasons__item h3 {
  font-size: 1.2075rem;
  font-weight: 800;
  color: #02284d;
  margin-bottom: 0.35rem;
  line-height: 1.5;
}
.lp-reasons__item p {
  font-size: 1.012rem;
  line-height: 1.7;
  color: #555;
}

/* 施設グリッド */
.lp-facility {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 768px) {
  .lp-facility { grid-template-columns: repeat(3, 1fr); }
}

.lp-facility__item {
  border-radius: 0.75rem;
  overflow: hidden;
  background: #f4f7fc;
  text-align: center;
}
.lp-facility__fig {
  margin: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #c8c8c8, #a0a0a0);
  overflow: hidden;
  position: relative;
}
.lp-facility__fig img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lp-facility__item p {
  font-size: 0.897rem;
  line-height: 1.65;
  color: #444;
  padding: 0.6rem 0.75rem 0.75rem;
}
.lp-facility__item strong { color: #02284d; }

/* --------------------------------------------------------
   COURSES（写真あり版）
-------------------------------------------------------- */
.lp-courses {
  background: #02284d;
  padding: 5rem 0;
}

.lp-courses__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
@media (min-width: 768px) {
  .lp-courses__grid { grid-template-columns: repeat(4, 1fr); }
}

.lp-courses__card {
  display: block;
  text-decoration: none;
  background: rgba(255,255,255,0.07);
  border: 1.5px solid rgba(255,255,255,0.18);
  border-radius: 1rem;
  overflow: hidden;
  text-align: center;
  transition: transform 0.2s, background 0.2s;
  color: #fff;
}
.lp-courses__card:hover {
  background: rgba(255,255,255,0.14);
  transform: translateY(-5px);
}

/* コース画像エリア */
.lp-courses__img-wrap {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  position: relative;
  background: rgba(255,255,255,0.05);
}
.lp-courses__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}
.lp-courses__card:hover .lp-courses__img { transform: scale(1.05); }

.lp-courses__card-body {
  padding: 1rem 1rem 1.25rem;
}
.lp-courses__ico { font-size: 2.25rem; display: block; margin-bottom: 0.6rem; }
.lp-courses__card h3 {
  font-size: 1.15rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 0.3rem;
}
.lp-courses__age {
  font-size: 0.828rem;
  color: #FFE41A;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.lp-courses__card p:not(.lp-courses__age) {
  font-size: 0.897rem;
  color: rgba(255,255,255,0.72);
  line-height: 1.6;
}

/* --------------------------------------------------------
   FAQ
-------------------------------------------------------- */
.lp-faq {
  background: #f5f7fb;
  padding: 5rem 0;
}

.lp-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.lp-faq__item {
  background: #fff;
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.lp-faq__item dt,
.lp-faq__item dd {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.1rem 1.5rem;
  font-size: 1.0695rem;
  line-height: 1.7;
}
.lp-faq__item dt {
  background: #1f4999;
  color: #fff;
  font-weight: 700;
}
.lp-faq__item dd {
  color: #444;
  margin: 0;
}
.lp-faq__item dt span,
.lp-faq__item dd span {
  font-family: var(--Quicksand);
  font-size: 1.38rem;
  font-weight: 800;
  flex-shrink: 0;
  line-height: 1.5;
}
.lp-faq__item dd span { color: #1f4999; }

/* --------------------------------------------------------
   ACCESS
-------------------------------------------------------- */
.lp-access {
  background: #fff;
  padding: 5rem 0;
}

.lp-access__wrap {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
@media (min-width: 768px) {
  .lp-access__wrap { flex-direction: row; align-items: flex-start; }
  .lp-access__info { flex: 0 0 280px; }
  .lp-access__map  { flex: 1; }
}

.lp-access__info dl {
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 0.4rem 0.75rem;
  margin-bottom: 1.25rem;
  font-size: 1.058rem;
  line-height: 1.7;
}
.lp-access__info dt {
  font-weight: 700;
  color: #1f4999;
}
.lp-access__info a {
  color: inherit;
  text-decoration: none;
}
.lp-access__info a:hover { color: #1f4999; text-decoration: underline; }

.lp-access__map {
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 2px 14px rgba(0,0,0,0.1);
}

/* --------------------------------------------------------
   FINAL CTA
-------------------------------------------------------- */
.lp-cta {
  background: linear-gradient(135deg, #02284d 0%, #1f4999 100%);
  padding: 5rem 0;
  text-align: center;
  color: #fff;
}
.lp-cta__title {
  font-size: clamp(1.725rem, 3.45vw, 2.5875rem);
  font-weight: 800;
  line-height: 1.5;
  margin-bottom: 0.875rem;
  color: #fff;
}
.lp-cta__text {
  font-size: 1.0925rem;
  line-height: 1.8;
  opacity: 0.9;
  margin-bottom: 2.5rem;
}
.lp-cta__btns {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}
@media (min-width: 640px) {
  .lp-cta__btns { flex-direction: row; justify-content: center; }
}
.lp-cta__tel {
  font-size: 1.035rem;
  opacity: 0.85;
  line-height: 1.9;
}
.lp-cta__tel a {
  color: #FFE41A;
  font-size: 1.84rem;
  font-weight: 900;
  text-decoration: none;
  display: inline-block;
}
.lp-cta__tel small {
  display: block;
  font-size: 0.897rem;
  opacity: 0.72;
  margin-top: 0.2rem;
}

/* ================================================================
   v8 — ファーストビュー「春の入会キャンペーン」強調
================================================================ */
.lp-hero__camp-badge {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  background: linear-gradient(135deg, #d4006e 0%, #eb4e93 40%, #f87bb5 70%, #eb4e93 100%) !important;
  color: #fff !important;
  border-radius: 1rem !important;
  padding: 0.9rem 1.8rem !important;
  font-weight: 900 !important;
  font-size: clamp(1.3225rem, 3.22vw, 1.8975rem) !important;
  box-shadow: 0 6px 24px rgba(180,0,80,0.50), 0 2px 0 rgba(255,255,255,0.20) inset !important;
  border: 3px solid rgba(255,255,255,0.55) !important;
  width: fit-content !important;
  animation: campBadgePulseV8 2.5s ease-in-out infinite !important;
  letter-spacing: 0.04em !important;
  position: relative !important;
}
.lp-hero__camp-badge::before {
  content: '' !important;
  display: block !important;
  width: 6px !important;
  height: 100% !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  background: rgba(255,255,255,0.50) !important;
  border-radius: 1rem 0 0 1rem !important;
}
.lp-hero__camp-badge-hana { font-size: 2.07rem !important; }
.lp-hero__camp-badge-text {
  font-size: clamp(1.3225rem, 3.22vw, 1.8975rem) !important;
  letter-spacing: 0.06em !important;
}
.lp-hero__camp-badge-period {
  background: rgba(255,255,255,0.28) !important;
  padding: 0.25rem 0.85rem !important;
  border-radius: 2rem !important;
  font-size: clamp(1.035rem, 2.3vw, 1.265rem) !important;
  white-space: nowrap !important;
  border: 1.5px solid rgba(255,255,255,0.45) !important;
}
@keyframes campBadgePulseV8 {
  0%,100% { box-shadow: 0 6px 24px rgba(180,0,80,0.50); transform: scale(1); }
  50%     { box-shadow: 0 10px 36px rgba(180,0,80,0.70); transform: scale(1.025); }
}
@media (max-width: 768px) {
  .lp-hero__camp-badge { font-size: clamp(1.2125rem, 5.175vw, 1.5575rem) !important; padding: 0.75rem 1.4rem !important; }
  .lp-hero__camp-badge-text { font-size: clamp(1.2125rem, 5.175vw, 1.5575rem) !important; }
  .lp-hero__camp-badge-hana { font-size: 1.6725rem !important; }
}

/* ============================================================
   v9: camp-badge 縦積み + trust 右カラム
   ============================================================ */

/* --- バッジ縦積みレイアウト --- */
.lp-hero__camp-badge--stack {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.3rem;
  padding: 0.9rem 1.6rem 0.85rem;
  border-radius: 1rem;
}

.lp-hero__camp-badge-top {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  white-space: nowrap;
}

.lp-hero__camp-badge-bottom {
  display: block;
  width: 100%;
  padding-left: 0.1rem;
}

.lp-hero__camp-badge-bottom .lp-hero__camp-badge-period {
  display: block;
  white-space: nowrap;
  font-size: clamp(1.0925rem, 2.53vw, 1.38rem);
  font-weight: 700;
  background: rgba(255,255,255,0.22);
  padding: 0.2rem 0.8rem;
  border-radius: 0.5rem;
  letter-spacing: 0.04em;
}

.lp-hero__camp-badge-bottom .lp-hero__camp-badge-period small {
  font-size: 0.8625em;
  font-weight: 600;
  opacity: 0.9;
}

/* --- trust を右カラム下部に表示 --- */
.lp-hero__right .lp-hero__trust {
  display: block;
  margin-top: 0.9rem;
  text-align: center;
  font-size: clamp(0.897rem, 2.07vw, 1.058rem);
  color: #fff;
  background: rgba(0,0,0,0.28);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

@media (max-width: 768px) {
  .lp-hero__camp-badge--stack {
    padding: 0.75rem 1.2rem 0.7rem;
  }
  .lp-hero__camp-badge-bottom .lp-hero__camp-badge-period {
    font-size: clamp(1.0745rem, 4.6vw, 1.2125rem);
  }
  .lp-hero__right .lp-hero__trust {
    white-space: normal;
    text-align: left;
    font-size: 1.0055rem;
  }
}

/* ============================================================
   v9: lp-taiken — 体験コースセクション（キャンペーンとは独立したデザイン）
   ============================================================ */
.lp-taiken {
  padding: 4rem 0 4.5rem;
  background: linear-gradient(180deg, #f0f9ff 0%, #e6f4f9 60%, #dff0f8 100%);
  position: relative;
  overflow: hidden;
}

/* 背景の波形装飾（上部） */
.lp-taiken::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 0;
  width: 100%;
  height: 60px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60'%3E%3Cpath d='M0,30 C200,60 400,0 600,30 C800,60 1000,0 1200,30 L1200,0 L0,0 Z' fill='%23ffe9f5'/%3E%3C/svg%3E") center/cover no-repeat;
}

.lp-taiken__head {
  text-align: center;
  margin-bottom: 2.5rem;
}

.lp-taiken__head-label {
  display: inline-block;
  background: linear-gradient(135deg, #00B4D8, #0096b7);
  color: #fff;
  font-size: 0.943rem;
  font-weight: 800;
  padding: 0.3rem 1.2rem;
  border-radius: 2rem;
  margin-bottom: 0.75rem;
  letter-spacing: 0.06em;
  box-shadow: 0 3px 12px rgba(0, 180, 216, 0.35);
}

.lp-taiken__title {
  font-size: clamp(1.84rem, 4.6vw, 2.76rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.2;
  margin: 0 0 0.6rem;
}

.lp-taiken__lead {
  font-size: clamp(1.012rem, 2.3vw, 1.15rem);
  color: #446;
  line-height: 1.8;
  margin: 0;
}

/* カード間の区切り線（上部） */
.lp-taiken .lp-trial--standalone {
  margin-top: 0;
  margin-bottom: 0;
}

/* 体験ボックスのスタンドアロン版調整 */
.lp-trial--standalone .lp-trial__box {
  box-shadow: 0 6px 28px rgba(0, 100, 160, 0.13);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.lp-trial--standalone .lp-trial__box:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px rgba(0, 100, 160, 0.2);
}

@media (max-width: 640px) {
  .lp-taiken {
    padding: 3rem 0 3.5rem;
  }
  .lp-taiken::before {
    height: 36px;
  }
}

/* ============================================================
   v10: キャンペーン特典カード — 写真付き3列 + お菓子横長バナー
   ============================================================ */

/* --- 3大特典グリッド：3列固定 --- */
.lp-campaign__grid--3col {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 600px) {
  .lp-campaign__grid--3col {
    grid-template-columns: 1fr !important;
    max-width: 340px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* --- カード：写真エリア（上部） --- */
.lp-campaign__card-photo {
  position: relative;
  width: calc(100% + 1.5rem); /* カードのpadding分広げて端まで届かせる */
  margin: -1.25rem -0.75rem 0.75rem; /* カード上部padding打ち消し */
  border-radius: 1rem 1rem 0 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #f0f4f8;
}
.lp-campaign__card-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.lp-campaign__card:hover .lp-campaign__card-photo-img {
  transform: scale(1.04);
}

/* 番号バッジ（写真左上に重ねる） */
.lp-campaign__card-photo .lp-campaign__card-num {
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
  font-family: var(--Quicksand);
  font-size: 0.897rem;
  font-weight: 900;
  color: #fff;
  background: #1f4999;
  border-radius: 2rem;
  padding: 0.15rem 0.65rem;
  letter-spacing: 0.08em;
  box-shadow: 0 2px 8px rgba(0,0,0,0.25);
  /* 既存のmarginリセット */
  margin: 0;
}
.lp-campaign__card--kids  .lp-campaign__card-photo .lp-campaign__card-num { background: #2cc7d6; }
.lp-campaign__card--adult .lp-campaign__card-photo .lp-campaign__card-num { background: #4aae6b; }

/* カード本体エリア（写真の下） */
.lp-campaign__card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  width: 100%;
}

/* フォールバック（写真なし時） */
.lp-placeholder--card {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  background: linear-gradient(135deg, #f0f4f8, #dde8f0);
  color: #aaa;
}


/* ============================================================
   v11: 体験カード写真エリア + swim-scene illust
   ============================================================ */

/* --- 体験カード上部写真 --- */
.lp-trial__photo {
  width: calc(100% + 3.5rem);   /* box の padding 1.75rem×2 を打ち消し */
  margin: -2rem -1.75rem 1.25rem;
  border-radius: 1.25rem 1.25rem 0 0;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  position: relative;
  background: #d0e8f5;
}
.lp-trial__photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}
.lp-trial__box:hover .lp-trial__photo-img {
  transform: scale(1.04);
}
.lp-placeholder--trial {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, #d0eaf8, #b8d8f0);
  color: #5a8fa8;
  font-size: 2rem;
}
.lp-placeholder--trial small {
  font-size: 0.7rem;
  text-align: center;
  line-height: 1.5;
  color: #7aaabf;
}

/* --- illust-swim-scene（横長イラスト） --- */
.lp-merit__mid-illust {
  margin: 2rem 0;
  text-align: center;
}
.lp-merit__mid-illust-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}
.lp-placeholder--mid-illust {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 160px;
  background: linear-gradient(135deg, #d0eaf8, #b8d8f0);
  border-radius: 1rem;
  padding: 1.5rem;
}
.lp-placeholder__mid-inner {
  text-align: center;
}
.lp-placeholder__ico-row {
  font-size: 1.8rem;
  display: block;
  margin-bottom: 0.75rem;
  letter-spacing: 0.3em;
}

/* ============================================================
   v12: お菓子プレゼントバナー リデザイン
   ============================================================ */

/* ラッパー：バッジがはみ出すのでoverflow:visible */
.lp-campaign__gift-wrap {
  margin-left: 2.2rem;   /* 左側にバッジ分のスペース */
  margin-bottom: 2rem;
  position: relative;
}

/* バナー本体 */
.lp-campaign__gift-banner {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  background: linear-gradient(135deg, #fff5f8 0%, #fff8f0 60%, #fffbf0 100%);
  border: 2.5px solid #f5a8c8;
  border-radius: 1.5rem;
  padding: 1.1rem 1.5rem 1.1rem 1rem;
  box-shadow: 0 6px 24px rgba(235, 78, 147, 0.15);
  position: relative;
  overflow: visible;
  transition: transform 0.22s, box-shadow 0.22s;
}
.lp-campaign__gift-banner:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(235, 78, 147, 0.25);
}

/* 左外にはみ出す「さらに！」円形バッジ */
.lp-campaign__gift-sarani {
  position: absolute;
  left: -2rem;
  top: 50%;
  transform: translateY(-50%);
  width: 3.8rem;
  height: 3.8rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #eb4e93 0%, #c2006e 100%);
  color: #fff;
  font-size: 0.828rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.2;
  box-shadow: 0 4px 14px rgba(194, 0, 110, 0.45);
  letter-spacing: 0.04em;
  border: 2px solid #fff;
  z-index: 2;
}

/* キャンディーイラストエリア */
.lp-campaign__gift-illust {
  flex: 0 0 auto;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* スパークル星デコ */
.lp-campaign__gift-spark {
  position: absolute;
  color: #FFD60A;
  font-size: 1.15rem;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}
.lp-campaign__gift-spark--1 { top: -4px; left: -6px; font-size: 1.265rem; }
.lp-campaign__gift-spark--2 { top: -2px; right: -4px; font-size: 0.805rem; color: #FFE41A; }
.lp-campaign__gift-spark--3 { bottom: 0; left: 50%; transform: translateX(-50%); font-size: 0.9775rem; }

/* キャンディー画像ボックス（白い正方形） */
.lp-campaign__gift-candy-box {
  width: 110px;
  height: 110px;
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-campaign__gift-candy-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lp-placeholder--gift-candy {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  background: linear-gradient(135deg, #ffe0ef, #ffd6e8);
}

/* テキストエリア（中央） */
.lp-campaign__gift-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: left;
}

/* 「先着20セット限定！」ラベル */
.lp-campaign__gift-limited {
  display: inline-block;
  background: linear-gradient(90deg, #e53935, #ff5252);
  color: #fff;
  font-size: 0.8625rem;
  font-weight: 900;
  padding: 0.25rem 1rem;
  border-radius: 2rem;
  letter-spacing: 0.06em;
  width: fit-content;
  box-shadow: 0 2px 6px rgba(229, 57, 53, 0.35);
}

/* タイトル「お菓子セットをプレゼント！」 */
.lp-campaign__gift-title {
  font-size: clamp(1.495rem, 3.45vw, 2.1275rem);
  font-weight: 900;
  line-height: 1.25;
  margin: 0;
  -webkit-text-stroke: 0.5px rgba(0,0,0,0.08);
}
.lp-campaign__gift-title--navy {
  color: #02284d;
}
.lp-campaign__gift-title--pink {
  color: #eb4e93;
  text-shadow: 0 1px 4px rgba(235, 78, 147, 0.3);
}

/* なくなり次第終了 */
.lp-campaign__gift-note {
  font-size: 0.805rem;
  color: #999;
  margin: 0;
}

/* CTAボタン（右端） */
.lp-campaign__gift-cta {
  flex: 0 0 auto;
}
.lp-campaign__gift-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, #FFD60A 0%, #FFB300 100%);
  color: #02284d;
  font-size: clamp(0.9775rem, 2.07vw, 1.15rem);
  font-weight: 900;
  padding: 0.85rem 1.4rem;
  border-radius: 2.5rem;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(255, 179, 0, 0.45);
  transition: transform 0.2s, box-shadow 0.2s;
  letter-spacing: 0.03em;
}
.lp-campaign__gift-btn:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 8px 22px rgba(255, 179, 0, 0.6);
  color: #02284d;
  text-decoration: none;
}

/* ─── レスポンシブ ─── */
@media (max-width: 640px) {
  .lp-campaign__gift-wrap {
    margin-left: 1.8rem;
  }
  .lp-campaign__gift-banner {
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 1rem 1rem 1rem 0.75rem;
  }
  .lp-campaign__gift-sarani {
    width: 3.2rem;
    height: 3.2rem;
    left: -1.6rem;
    font-size: 0.81rem;
  }
  .lp-campaign__gift-candy-box {
    width: 80px;
    height: 80px;
  }
  .lp-campaign__gift-body {
    flex: 1 1 180px;
  }
  .lp-campaign__gift-cta {
    width: 100%;
    text-align: center;
  }
  .lp-campaign__gift-btn {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }
}
@media (max-width: 400px) {
  .lp-campaign__gift-wrap {
    margin-left: 1.4rem;
  }
  .lp-campaign__gift-sarani {
    width: 2.8rem;
    height: 2.8rem;
    left: -1.4rem;
    font-size: 0.7525rem;
  }
}

/* ================================================================
   v13 — ファーストビュー リデザイン
   「春の入会キャンペーン」メイン化 / スマホ表示順序最適化
================================================================ */

/* ── PCグリッド比: 左(テキスト)を広く ── */
.lp-hero__inner {
  grid-template-columns: 3fr 2fr !important;
}

/* ── キャンペーンバッジ: さらに大きく・目立つように ── */
.lp-hero__camp-badge {
  font-size: clamp(1.5525rem, 3.68vw, 2.3rem) !important;
  padding: 1.1rem 2.2rem !important;
  border-radius: 1.25rem !important;
  border: 3px solid rgba(255,255,255,0.65) !important;
  box-shadow:
    0 8px 32px rgba(180,0,80,0.55),
    0 3px 0 rgba(255,255,255,0.22) inset !important;
}
.lp-hero__camp-badge-text {
  font-size: clamp(1.5525rem, 3.68vw, 2.3rem) !important;
  letter-spacing: 0.08em !important;
}
.lp-hero__camp-badge-hana { font-size: 2.415rem !important; }
.lp-hero__camp-badge-bottom .lp-hero__camp-badge-period {
  font-size: clamp(1.2075rem, 2.76vw, 1.5525rem) !important;
  padding: 0.3rem 1rem !important;
}

/* ── h1 キャッチ: サブキャッチとして縮小 ── */
.lp-hero__catch-line1 {
  font-size: clamp(1.265rem, 3.22vw, 2.0125rem) !important;
  -webkit-text-stroke: 1.5px #fff !important;
}
.lp-hero__catch-line2 {
  font-size: clamp(2.0125rem, 5.175vw, 3.7375rem) !important;
  -webkit-text-stroke: 2.5px #2ec1d1 !important;
}

/* ── 体力バッジ: 少しコンパクトに ── */
.lp-hero__power-badge {
  padding: 0.55rem 0.7rem !important;
  font-size: 0.805rem !important;
}
.lp-hero__power-badge strong {
  font-size: 0.943rem !important;
}
.lp-hero__power-badge p {
  font-size: 0.736rem !important;
}
.lp-power-icon-wrap {
  width: 38px !important;
  height: 38px !important;
}

/* ── 左カラム: gapを締める ── */
.lp-hero__left {
  gap: 1rem !important;
}

/* ================================================================
   v13 — スマホ レイアウト再構成（display:contents + order）
================================================================ */
@media (max-width: 768px) {

  /* innerをflex縦積みに切り替え */
  .lp-hero__inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.85rem !important;
    padding: 0 1rem !important;
  }

  /* leftの直接の子要素をflexの直接の子として扱う */
  .lp-hero__left {
    display: contents !important;
  }

  /* ── 表示順番の定義 ──
     1: org (スクール名)
     2: キャンペーンバッジ
     3: 右カラム（画像）
     4: h1 キャッチ
     5: 安心安全・信頼バッジ (trust)
     6: 体力バッジ
  */
  .lp-hero__org          { order: 1; }
  .lp-hero__camp-badge   { order: 2; width: 100% !important; box-sizing: border-box; }
  .lp-hero__right        { order: 3; }
  .lp-hero__catch        { order: 4; }
  .lp-hero__power        { order: 6; }

  /* キャンペーンバッジ: スマホでも大きく */
  .lp-hero__camp-badge {
    font-size: clamp(1.3225rem, 6.325vw, 1.84rem) !important;
    padding: 1rem 1.5rem !important;
    border-radius: 1rem !important;
    align-items: flex-start !important;
  }
  .lp-hero__camp-badge-text {
    font-size: clamp(1.3225rem, 6.325vw, 1.84rem) !important;
  }
  .lp-hero__camp-badge-hana { font-size: 1.955rem !important; }
  .lp-hero__camp-badge-bottom .lp-hero__camp-badge-period {
    font-size: clamp(1.0925rem, 5.175vw, 1.38rem) !important;
  }

  /* 右カラム: 画像エリアをコンパクト・横並びに */
  .lp-hero__right {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-end !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    width: 100% !important;
    max-height: 220px !important;
    overflow: hidden !important;
  }
  .lp-hero__visual {
    flex: 1 !important;
    max-height: 210px !important;
    overflow: hidden !important;
  }
  .lp-hero__kids-wrap {
    max-width: 100% !important;
    max-height: 200px !important;
    overflow: hidden !important;
  }
  .lp-hero__kids-img {
    max-height: 200px !important;
    width: auto !important;
    object-fit: contain !important;
  }
  .lp-hero__instructor {
    flex: 0 0 auto !important;
  }
  .lp-hero__instructor-img {
    width: 70px !important;
  }

  /* trust バッジ: 右カラムに付属して order 5 */
  .lp-hero__trust {
    order: 5 !important;
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  /* h1キャッチ: スマホでコンパクトに */
  .lp-hero__catch-line1 {
    font-size: clamp(1.0925rem, 4.6vw, 1.5525rem) !important;
  }
  .lp-hero__catch-line2 {
    font-size: clamp(1.8975rem, 9.775vw, 2.99rem) !important;
    white-space: nowrap !important;
  }

  /* 体力バッジ: スマホではさらにコンパクト */
  .lp-hero__power {
    gap: 0.35rem !important;
  }
  .lp-hero__power-badge {
    flex: 1 1 90px !important;
    min-width: 85px !important;
    padding: 0.45rem 0.55rem !important;
    font-size: 0.713rem !important;
  }
  .lp-hero__power-badge strong {
    font-size: 0.828rem !important;
  }
  .lp-hero__power-badge p {
    font-size: 0.667rem !important;
    line-height: 1.4 !important;
  }
  .lp-power-icon-wrap {
    width: 30px !important;
    height: 30px !important;
    margin-bottom: 0.2rem !important;
  }
  .lp-hero__power-plus,
  .lp-hero__power-arrow {
    font-size: 1.265rem !important;
  }

  /* ヒーロー全体の余白調整 */
  .lp-hero {
    padding-top: calc(4.5rem + 0.75rem) !important;
    padding-bottom: 2.5rem !important;
  }
}

/* さらに小さい画面 (max-width: 480px) */
@media (max-width: 480px) {
  .lp-hero__camp-badge {
    font-size: clamp(1.2125rem, 5.75vw, 1.615rem) !important;
    padding: 0.85rem 1.2rem !important;
  }
  .lp-hero__camp-badge-text {
    font-size: clamp(1.2125rem, 5.75vw, 1.615rem) !important;
  }
  .lp-hero__right {
    max-height: 180px !important;
  }
  .lp-hero__kids-img {
    max-height: 165px !important;
  }
  .lp-hero__instructor-img {
    width: 58px !important;
  }
}

/* ================================================================
   v13b — スマホ右カラム修正: trust が切れないように overflow解除
================================================================ */
@media (max-width: 768px) {
  .lp-hero__right {
    flex-direction: column !important;
    max-height: none !important;
    overflow: visible !important;
    align-items: center !important;
    gap: 0.5rem !important;
  }
  .lp-hero__visual {
    max-height: none !important;
    overflow: visible !important;
    width: 100% !important;
  }
  .lp-hero__kids-wrap {
    max-height: none !important;
    overflow: visible !important;
    max-width: 280px !important;
  }
  .lp-hero__kids-img {
    max-height: 180px !important;
    width: auto !important;
  }
  /* インストラクターは右下に重ねる（absolute配置を維持 or 非表示） */
  .lp-hero__instructor {
    position: absolute !important;
    bottom: 0 !important;
    right: 0 !important;
  }
  /* trust: right 内で全幅表示 */
  .lp-hero__trust {
    order: 0 !important;   /* right内での順番は通常通り */
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
    font-size: 0.851rem !important;
  }
}

/* ================================================================
   v13c — スマホ: インストラクター非表示、kids を全幅表示
================================================================ */
@media (max-width: 768px) {
  /* インストラクターは画面が狭いので非表示 */
  .lp-hero__instructor {
    display: none !important;
  }
  /* kids 画像: 中央揃えでコンパクト表示 */
  .lp-hero__visual {
    justify-content: center !important;
  }
  .lp-hero__kids-wrap {
    max-width: 260px !important;
  }
  .lp-hero__kids-img {
    max-height: 180px !important;
    width: 100% !important;
    object-fit: contain !important;
  }
  /* right 全体のpaddingを調整 */
  .lp-hero__right {
    padding: 0 !important;
    width: 100% !important;
  }
}


/* ============================================================
   HERO — 画像レイヤー型ファーストビュー v8
============================================================ */
.lp-placeholder--fv-main {
  width: min(100%, 980px);
  min-height: clamp(320px, 48vw, 640px);
  border-radius: 2rem;
  background: linear-gradient(145deg, rgba(178,178,178,0.96), rgba(137,137,137,0.96));
  border: 3px dashed rgba(255,255,255,0.88);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08), 0 22px 60px rgba(56, 41, 75, 0.2);
}
.lp-placeholder--fv-main .lp-placeholder__ico {
  font-size: clamp(3rem, 6vw, 4.75rem);
}
.lp-placeholder--fv-main .lp-placeholder__label {
  font-size: clamp(0.85rem, 1.6vw, 1rem);
  padding: 0.8rem 1rem;
}
.lp-hero.lp-hero--image {
  min-height: auto;
  padding-top: calc(6.5rem + 0.35rem);
  padding-bottom: 0;
}
.lp-hero--image .lp-hero__bg-img {
  object-position: center center;
  opacity: 1;
}
.lp-hero--image .lp-hero__bg-grad {
  background:
    radial-gradient(circle at 50% 28%, rgba(255,255,255,0.96) 0 23%, rgba(255,255,255,0.78) 34%, rgba(255,255,255,0.15) 58%, rgba(255,255,255,0) 68%),
    linear-gradient(180deg, rgba(247, 214, 228, 0.94) 0%, rgba(247, 224, 236, 0.8) 32%, rgba(255,255,255,0.35) 58%, rgba(255,255,255,0.92) 100%);
}
.lp-hero__inner--image {
  width: 100%;
  max-width: none;
  min-height: auto;
  grid-template-columns: 1fr;
  gap: 0;
  justify-items: center;
  align-items: start;
  padding: 0;
}
.lp-hero__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
  text-align: center;
}
.lp-hero--image .lp-hero__org {
  background: rgba(255,255,255,0.88);
  box-shadow: 0 6px 18px rgba(31,73,153,0.08);
}
.lp-hero__stage {
  width: 100%;
  display: flex;
  justify-content: center;
}
.lp-hero__stage--only {
  align-items: flex-start;
}
.lp-hero__stage-frame {
  width: 100%;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.lp-hero__stage-frame--only {
  width: 100%;
  max-width: none;
  margin: 0;
  display: flex;
  justify-content: center;
  line-height: 0;
  font-size: 0;
  text-align: center;
}
.lp-hero__picture--main {
  display: block;
  width: min(100%, 1000px);
  max-width: 1000px;
  margin: 0 auto;
  line-height: 0;
  font-size: 0;
  flex: 0 0 auto;
}
.lp-hero__main-visual {
  width: 100%;
  max-width: 1000px;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 24px 54px rgba(65, 43, 79, 0.22));
}
.lp-hero__main-visual--center {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  display: block;
}
.lp-placeholder--fv-main,
.l-aside,
.l-aside-cta,
.c-btn-aside {
  display: none !important;
}
.lp-hero__trust--hero {
  display: none;
}
@media (max-width: 768px) {
  .lp-hero.lp-hero--image {
    padding-top: calc(4.6rem + 0.2rem);
    padding-bottom: 0;
  }
  .lp-hero__inner--image {
    min-height: auto;
    padding: 0 0.75rem;
  }
  .lp-hero__stage--only {
    align-items: center;
  }
  .lp-hero__stage-frame--only {
    width: 100%;
  }
  .lp-hero__picture--main {
    width: 100%;
    max-width: 100%;
  }
  .lp-hero__main-visual,
  .lp-hero__main-visual--center {
    width: 100%;
    max-width: 100%;
  }
}

/* ============================================================
   FV CLEANUP — 旧hero系の競合を避ける専用クラス
============================================================ */
.lp-fv {
  position: relative;
  overflow: hidden;
  padding-top: calc(var(--header-height, 6.5rem) + 0.35rem);
  padding-bottom: 0;
  line-height: 0;
}
.lp-fv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.lp-fv__bg-picture,
.lp-fv__bg-img {
  display: block;
  width: 100%;
  height: 100%;
}
.lp-fv__bg-img {
  object-fit: cover;
  object-position: center center;
}
.lp-fv__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 0;
}
.lp-fv__visual {
  display: block;
  width: min(100%, 1000px);
  max-width: 1000px;
  margin: 0 auto;
  flex: 0 0 auto;
}
.lp-fv__visual-img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
body .l-aside,
body .l-aside-cta,
body .c-btn-aside {
  display: none !important;
}
@media (max-width: 768px) {
  .lp-fv {
    padding-top: calc(4.6rem + 0.2rem);
    padding-bottom: 0;
  }
  .lp-fv__inner {
    padding: 0 0.75rem;
  }
  .lp-fv__visual {
    width: 100%;
    max-width: 100%;
  }
}

/* ============================================================
   STRENGTH SECTION
============================================================ */
.lp-strength {
  position: relative;
  padding: 4.75rem 0 4.5rem;
  background: linear-gradient(180deg, #ffffff 0%, #fef8fb 42%, #eef9ff 100%);
  overflow: hidden;
}
.lp-strength::before,
.lp-strength::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.lp-strength::before {
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(244,196,220,0.34) 0%, rgba(244,196,220,0) 70%);
  top: -180px;
  left: -120px;
}
.lp-strength::after {
  width: 360px;
  height: 360px;
  background: radial-gradient(circle, rgba(125,214,227,0.22) 0%, rgba(125,214,227,0) 70%);
  bottom: -150px;
  right: -90px;
}
.lp-strength__head {
  text-align: center;
  margin-bottom: 2.25rem;
}
.lp-strength__eyebrow {
  display: inline-block;
  margin: 0 0 0.7rem;
  padding: 0.35rem 1rem;
  border-radius: 999px;
  background: rgba(46,193,209,0.12);
  color: #1f4999;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.897rem;
}
.lp-strength__title {
  margin: 0;
  font-size: clamp(2.185rem, 4.6vw, 3.45rem);
  font-weight: 900;
  color: #1c3f73;
  line-height: 1.25;
}
.lp-strength__title span {
  color: #eb4e93;
}
.lp-strength__lead {
  margin: 0.85rem auto 0;
  max-width: 720px;
  font-size: 1.15rem;
  line-height: 1.9;
  color: #555;
  font-weight: 700;
}
.lp-strength__flow {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  gap: 1rem;
  align-items: stretch;
}
.lp-strength__card {
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,0.92);
  border-radius: 1.75rem;
  padding: 2rem 1.5rem 1.7rem;
  box-shadow: 0 14px 34px rgba(28,63,115,0.08);
  border: 2px solid rgba(255,255,255,0.8);
  text-align: center;
}
.lp-strength__card--defense { border-color: rgba(46,193,209,0.5); }
.lp-strength__card--action  { border-color: rgba(248,197,68,0.65); }
.lp-strength__card--result  { border-color: rgba(235,78,147,0.5); }
.lp-strength__icon {
  width: 84px;
  height: 84px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 2.3rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
}
.lp-strength__card--defense .lp-strength__icon { background: linear-gradient(135deg, #dff8fb, #baf0f4); }
.lp-strength__card--action .lp-strength__icon  { background: linear-gradient(135deg, #fff8cf, #ffe989); }
.lp-strength__card--result .lp-strength__icon  { background: linear-gradient(135deg, #ffe0ee, #ffc1de); }
.lp-strength__label {
  margin: 0 0 0.5rem;
  color: #1f4999;
  font-size: 0.9775rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}
.lp-strength__card h3 {
  margin: 0;
  font-size: clamp(1.265rem, 2.3vw, 1.5525rem);
  line-height: 1.75;
  color: #2f2f2f;
}
.lp-strength__operator {
  align-self: center;
  font-size: clamp(2.3rem, 4.6vw, 3.22rem);
  font-weight: 900;
  color: #1f4999;
  line-height: 1;
}
.lp-strength__operator--arrow {
  color: #eb4e93;
}
.lp-strength__trust {
  margin: 2rem auto 0;
  width: fit-content;
  max-width: 100%;
  background: #fff;
  border: 1px solid rgba(31,73,153,0.12);
  border-radius: 999px;
  padding: 0.75rem 1.4rem;
  font-size: 0.989rem;
  font-weight: 800;
  color: #1f4999;
  box-shadow: 0 8px 20px rgba(31,73,153,0.08);
}
@media (max-width: 900px) {
  .lp-strength__flow {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  .lp-strength__operator {
    justify-self: center;
    transform: rotate(90deg);
  }
  .lp-strength__trust {
    border-radius: 1rem;
    text-align: center;
    line-height: 1.7;
  }
}


/* ============================================================
   TYPOGRAPHY PATCH — readable scale + mobile boost
============================================================ */
.lp p,
.lp li {
  letter-spacing: 0.01em;
}
@media (max-width: 768px) {
  .lp p,
  .lp li,
  .lp dt,
  .lp dd,
  .lp small,
  .lp a,
  .lp button,
  .lp [class*="__text"],
  .lp [class*="__lead"],
  .lp [class*="__note"],
  .lp [class*="__copy"],
  .lp [class*="__label"] {
    line-height: 1.7;
  }
}


/* ============================================================
   EMPHASIS PATCH — 2026 nyukai specific text contrast
============================================================ */
.lp-campaign__card-value {
  font-weight: 950;
  font-size: clamp(1.85rem, 4.4vw, 2.8rem) !important;
  line-height: 1.05;
  letter-spacing: 0.01em;
  text-shadow: 0 3px 10px rgba(0,0,0,0.08);
}
.lp-campaign__card-value span {
  font-weight: 950;
}
.lp-campaign__gift-title {
  font-size: clamp(1.8rem, 4vw, 2.5rem) !important;
  font-weight: 950 !important;
  line-height: 1.18;
}
.lp-campaign__gift-title--navy,
.lp-campaign__gift-title--pink {
  font-weight: 950;
}
.lp-campaign__gift-limited {
  font-size: 0.98rem !important;
  font-weight: 950 !important;
}
.lp-campaign__lead {
  font-size: clamp(1.15rem, 2.8vw, 1.45rem) !important;
  font-weight: 900 !important;
}
.lp-taiken__lead {
  font-size: clamp(1.12rem, 2.55vw, 1.32rem) !important;
  font-weight: 800 !important;
  color: #24364d;
}
.lp-taiken__lead strong,
.lp-taiken__lead b {
  font-weight: 900;
}
@media (max-width: 768px) {
  .lp-campaign__card-value {
    font-size: clamp(2.05rem, 8vw, 2.7rem) !important;
  }
  .lp-campaign__gift-title {
    font-size: clamp(1.62rem, 6.5vw, 2rem) !important;
    line-height: 1.15;
  }
  .lp-campaign__gift-limited {
    font-size: 1.02rem !important;
  }
  .lp-campaign__lead {
    font-size: clamp(1.2rem, 4.8vw, 1.45rem) !important;
  }
  .lp-taiken__lead {
    font-size: clamp(1.1rem, 4.6vw, 1.28rem) !important;
    line-height: 1.8;
  }
}


/* ============================================================
   MOBILE HEADING BOOST — 2026 nyukai energetic headings
============================================================ */
@media (max-width: 768px) {
  .lp-strength__title,
  .lp-campaign__title,
  .lp-taiken__title,
  .lp-sec-head__ja,
  .lp-cta__title,
  .lp-trial__title,
  .lp-merit__title-top,
  .lp-merit__title-blue,
  .lp-merit__title-orange,
  .lp-merit__benefits-ttl,
  .lp-merit__benefit-card h4 {
    font-weight: 950 !important;
    letter-spacing: 0.01em;
  }
  .lp-merit__title-top {
    font-size: clamp(2.05rem, 7vw, 2.65rem) !important;
    line-height: 1.08;
    -webkit-text-stroke: 1.25px #fff;
  }
  .lp-merit__title-blue,
  .lp-merit__title-orange {
    font-size: clamp(2.7rem, 11vw, 3.6rem) !important;
    line-height: 1.02;
    -webkit-text-stroke: 2.4px #fff;
    text-shadow: 2px 3px 0 rgba(0,0,0,0.14), 0 4px 14px rgba(0,0,0,0.08);
  }
  .lp-merit__sub {
    font-size: 1.08rem !important;
    font-weight: 700 !important;
  }
  .lp-strength__title,
  .lp-campaign__title,
  .lp-taiken__title,
  .lp-sec-head__ja,
  .lp-cta__title {
    text-shadow: 0 2px 10px rgba(0,0,0,0.06);
  }
}


/* ============================================================
   FINAL READABILITY PATCH — 2026 nyukai merit + course text
============================================================ */
.lp-merit__title-top {
  font-size: clamp(1.95rem, 4.8vw, 3rem) !important;
  font-weight: 950 !important;
  line-height: 1.08;
}
.lp-merit__title-blue,
.lp-merit__title-orange {
  font-size: clamp(3.05rem, 8.8vw, 5.9rem) !important;
  font-weight: 950 !important;
  line-height: 1.02;
}
.lp-merit__bubble-desc {
  font-size: 1.02rem !important;
  font-weight: 900 !important;
  line-height: 1.88;
  color: #013b6a;
}
.lp-merit__benefits-ttl {
  font-size: clamp(1.45rem, 3.2vw, 1.9rem) !important;
  font-weight: 950 !important;
}
.lp-merit__benefit-card p {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
  line-height: 1.8;
  color: #41566f;
}
.lp-courses__lead {
  max-width: 760px;
  margin: 0.65rem auto 1.35rem;
  text-align: center;
  font-size: 1.06rem;
  font-weight: 700;
  line-height: 1.8;
  color: rgba(255,255,255,0.92);
}
.lp-courses__card h3 {
  font-weight: 900;
}
.lp-courses__age {
  font-weight: 800;
}
.lp-courses__card p:not(.lp-courses__age) {
  font-size: 0.98rem;
  font-weight: 700;
  color: rgba(255,255,255,0.88);
}
@media (max-width: 768px) {
  .lp-merit__title-top {
    font-size: clamp(2.15rem, 7.5vw, 2.85rem) !important;
  }
  .lp-merit__title-blue,
  .lp-merit__title-orange {
    font-size: clamp(2.9rem, 11.5vw, 3.85rem) !important;
  }
  .lp-merit__bubble-desc {
    font-size: 1.08rem !important;
    line-height: 1.92;
  }
  .lp-merit__benefits-ttl {
    font-size: clamp(1.62rem, 6vw, 2rem) !important;
    line-height: 1.45;
  }
  .lp-merit__benefit-card p {
    font-size: 1rem !important;
    font-weight: 800 !important;
    line-height: 1.85;
  }
  .lp-courses__lead {
    font-size: 1.04rem;
    line-height: 1.8;
    margin: 0.55rem auto 1.2rem;
  }
  .lp-courses__card h3 {
    font-size: 1.2rem;
  }
  .lp-courses__card p:not(.lp-courses__age) {
    font-size: 0.98rem;
    line-height: 1.75;
  }
}

/* ================================================================
   FINAL CONSISTENCY FIX — 2026-04-03
   PC/SPの可読性統一・コース本文の見え方安定化
   ================================================================ */
.lp-courses__lead {
  font-weight: 800;
  letter-spacing: 0.01em;
}
.lp-courses__card h3 {
  font-weight: 900;
  letter-spacing: 0.01em;
}
.lp-courses__age {
  font-weight: 800;
}
.lp-courses__card p:not(.lp-courses__age) {
  font-weight: 700;
}
@media (max-width: 768px) {
  .lp-courses__lead {
    font-size: 1.06rem !important;
    line-height: 1.82;
  }
  .lp-courses__card h3 {
    font-size: 1.24rem !important;
    line-height: 1.35;
  }
  .lp-courses__age {
    font-size: 0.95rem !important;
  }
  .lp-courses__card p:not(.lp-courses__age) {
    font-size: 1rem !important;
    line-height: 1.8;
  }
}
