/* ============================================================
   LP: 春の入会キャンペーン 2026
   波之上スイミングスクール
   v6: ポスター統一感・グレーダミー画像・ヘッダー被り修正
       強くなろう！折り返し修正・課状アイコン→画像対応
============================================================ */

/* --------------------------------------------------------
   基本設定
-------------------------------------------------------- */
.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;
  }
}

/* --- 左カラム --- */
.lp-hero__left { display: flex; flex-direction: column; gap: 1.1rem; }

.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ボタン群 --- */
.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;
}

/* --- 右カラム：ポスタービジュアル --- */
.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;
}

/* ============================================================
   v7 追加スタイル
   1. キャンペーン 3カラム特典カード＋ボーナスバナー
   2. 独立・体験セクション（lp-trial-section）
   3. MERITクラウドイラスト画像対応
   4. バブル下イラスト挿入スペース（lp-merit__mid-illust）
   5. プレースホルダー追加バリアント
============================================================ */

/* ─── 1. キャンペーンリードブロック ─────────────────────── */
.lp-campaign__lead-block {
  margin-top: 1.25rem;
  line-height: 1.4;
}
.lp-campaign__lead-sub {
  font-size: clamp(1.15rem, 2.875vw, 1.38rem);
  font-weight: 700;
  color: #444;
  margin-bottom: 0.25rem;
}
.lp-campaign__lead-sub strong { color: #e53935; }
.lp-campaign__lead-main {
  font-size: clamp(1.725rem, 4.6vw, 2.53rem);
  font-weight: 900;
  color: #02284d;
  margin: 0;
}
.lp-campaign__lead-main em {
  font-style: normal;
  color: #eb4e93;
  font-size: 1.265em;
  -webkit-text-stroke: 1.5px #fff;
  paint-order: stroke fill;
}

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

/* 個別カード */
.lp-campaign__gift-card {
  background: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
  border: 3px solid #4cc2c5;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.lp-campaign__gift-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.15);
}
.lp-campaign__gift-card--01 { border-color: #2cc7d6; }
.lp-campaign__gift-card--02 { border-color: #eb4e93; }
.lp-campaign__gift-card--03 { border-color: #4aae6b; }

/* カード番号バッジ */
.lp-campaign__gift-num {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.75rem 1rem 0;
}
.lp-campaign__gift-num-label {
  font-size: 0.805rem;
  font-weight: 900;
  color: #fff;
  background: #1f4999;
  padding: 0.15rem 0.55rem;
  border-radius: 2rem;
  letter-spacing: 0.1em;
}
.lp-campaign__gift-card--01 .lp-campaign__gift-num-label { background: #2cc7d6; }
.lp-campaign__gift-card--02 .lp-campaign__gift-num-label { background: #eb4e93; }
.lp-campaign__gift-card--03 .lp-campaign__gift-num-label { background: #4aae6b; }
.lp-campaign__gift-num-val {
  font-family: var(--Quicksand, 'Quicksand', sans-serif);
  font-size: 2.1275rem;
  font-weight: 900;
  color: #02284d;
  line-height: 1;
}

/* 画像エリア */
.lp-campaign__gift-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #f0f4f8;
  margin: 0.5rem 0 0;
}
.lp-campaign__gift-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.lp-campaign__gift-card:hover .lp-campaign__gift-img { transform: scale(1.05); }

/* カード本文 */
.lp-campaign__gift-body {
  padding: 1.25rem 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  flex: 1;
}

/* 対象バッジ */
.lp-campaign__gift-target {
  display: inline-block;
  font-size: 0.8625rem;
  font-weight: 800;
  border-radius: 2rem;
  padding: 0.2rem 0.85rem;
  width: fit-content;
}
.lp-campaign__gift-target--all  { background: #fef3c7; color: #b45309; }
.lp-campaign__gift-target--kids { background: #fce7f3; color: #be185d; }
.lp-campaign__gift-target--adult { background: #dcfce7; color: #166534; }

/* タイトル */
.lp-campaign__gift-title {
  font-size: clamp(1.5525rem, 3.45vw, 2.0125rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.25;
  margin: 0.25rem 0 0;
}

/* 通常価格（打ち消し） */
.lp-campaign__gift-regular {
  font-size: 0.897rem;
  color: #aaa;
  margin: 0;
}
.lp-campaign__gift-regular s { text-decoration: line-through; }

/* 特典価値（大文字） */
.lp-campaign__gift-value {
  font-size: clamp(2.3rem, 5.75vw, 3.1625rem);
  font-weight: 900;
  line-height: 1.05;
  margin: 0.15rem 0;
  -webkit-text-stroke: 1.5px #fff;
  paint-order: stroke fill;
}
.lp-campaign__gift-card--01 .lp-campaign__gift-value { color: #0d68b5; }
.lp-campaign__gift-card--02 .lp-campaign__gift-value { color: #eb4e93; }
.lp-campaign__gift-card--03 .lp-campaign__gift-value { color: #2e7d32; }
.lp-campaign__gift-value em { font-style: normal; }
.lp-campaign__gift-value-unit { font-size: 0.7475em; font-weight: 700; }

/* 詳細テキスト */
.lp-campaign__gift-detail {
  font-size: 0.943rem;
  line-height: 1.8;
  color: #555;
  background: #f8fafc;
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  margin-top: auto;
}
.lp-campaign__gift-detail p { margin: 0; }
.lp-campaign__gift-detail strong { color: #02284d; }
.lp-campaign__gift-detail small { font-size: 1.012em; color: #888; }

/* ─── 3. ボーナス横断バナー（お菓子セット） ─────────────── */
.lp-campaign__bonus-banner {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  background: linear-gradient(135deg, #fff0f8 0%, #ffe8f5 50%, #fff5e8 100%);
  border: 3px solid #eb4e93;
  border-radius: 1.5rem;
  padding: 1.5rem 2rem;
  margin-bottom: 2rem;
  box-shadow: 0 6px 24px rgba(235,78,147,0.18);
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
}
.lp-campaign__bonus-banner::before {
  content: '🎁';
  position: absolute;
  font-size: 6.9rem;
  opacity: 0.06;
  right: -0.5rem;
  top: -0.5rem;
  pointer-events: none;
}

.lp-campaign__bonus-badge {
  flex: 0 0 auto;
  background: linear-gradient(135deg, #eb4e93, #ff6b81);
  color: #fff;
  border-radius: 50%;
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(235,78,147,0.4);
  animation: pulse 2s ease-in-out infinite;
}
.lp-campaign__bonus-badge-txt {
  font-size: 1.012rem;
  font-weight: 900;
  text-align: center;
  line-height: 1.2;
}

.lp-campaign__bonus-img-col { flex: 0 0 auto; }
.lp-campaign__bonus-img-wrap {
  width: 140px;
  height: 120px;
  border-radius: 1rem;
  overflow: hidden;
  background: #f0f4f8;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
}
.lp-campaign__bonus-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lp-campaign__bonus-body { flex: 1 1 200px; }
.lp-campaign__bonus-limit {
  display: inline-block;
  background: #fef3c7;
  color: #b45309;
  font-size: 0.92rem;
  font-weight: 800;
  padding: 0.2rem 0.85rem;
  border-radius: 2rem;
  margin-bottom: 0.5rem;
}
.lp-campaign__bonus-limit em { font-style: normal; color: #e53935; }
.lp-campaign__bonus-title {
  font-size: clamp(1.4375rem, 3.45vw, 2.0125rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.25;
  margin: 0.3rem 0 0.5rem;
}
.lp-campaign__bonus-title em { font-style: normal; color: #eb4e93; }
.lp-campaign__bonus-desc {
  font-size: 0.9775rem;
  line-height: 1.75;
  color: #444;
  margin-bottom: 0.3rem;
}
.lp-campaign__bonus-note {
  font-size: 0.828rem;
  color: #999;
  margin: 0;
}

.lp-campaign__bonus-cta { flex: 0 0 auto; }

@media (max-width: 640px) {
  .lp-campaign__bonus-banner { flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1.25rem; }
  .lp-campaign__bonus-badge { width: 56px; height: 56px; }
  .lp-campaign__bonus-img-wrap { width: 100%; height: 160px; }
  .lp-campaign__bonus-cta { width: 100%; }
  .lp-campaign__bonus-cta .lp-btn { width: 100%; justify-content: center; }
}

/* ─── 4. 追加ボタンバリアント ────────────────────────────── */
.lp-btn--trial-main {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2.25rem;
  border-radius: 3rem;
  font-weight: 900;
  font-size: 1.2075rem;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
  background: linear-gradient(135deg, #0d68b5, #1a82d8);
  color: #fff;
  box-shadow: 0 5px 20px rgba(13,104,181,0.38);
  border: none;
  width: 100%;
  justify-content: center;
  margin-top: 1rem;
}
.lp-btn--trial-main:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(13,104,181,0.48); }

.lp-btn--trial-free {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2.25rem;
  border-radius: 3rem;
  font-weight: 900;
  font-size: 1.2075rem;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
  background: linear-gradient(135deg, #FFE41A, #ffcc00);
  color: #02284d;
  box-shadow: 0 5px 20px rgba(255,204,0,0.45);
  border: none;
  width: 100%;
  justify-content: center;
  margin-top: 1rem;
}
.lp-btn--trial-free:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(255,204,0,0.55); }

/* ─── 5. 独立・体験セクション ───────────────────────────── */
.lp-trial-section {
  position: relative;
  background: linear-gradient(180deg,
    #e8f7fd 0%,
    #d0eefa 30%,
    #c8e8f8 70%,
    #d8f0fb 100%);
  padding: 0 0 5rem;
  overflow: hidden;
}

/* 上部波形 */
.lp-trial-section__wave-top {
  width: 100%;
  height: 80px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80'%3E%3Cpath fill='%23fff5f9' d='M0,40 C240,80 480,0 720,40 C960,80 1200,0 1440,40 L1440,0 L0,0 Z'/%3E%3C/svg%3E") center bottom / cover no-repeat;
}
.lp-trial-section__wave-bottom {
  width: 100%;
  height: 80px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80'%3E%3Cpath fill='%23dff7fb' d='M0,40 C240,0 480,80 720,40 C960,0 1200,80 1440,40 L1440,80 L0,80 Z'/%3E%3C/svg%3E") center top / cover no-repeat;
  margin-top: 2rem;
}

/* セクションヘッダー */
.lp-trial-section__head {
  text-align: center;
  padding: 3.5rem 0 2.5rem;
}
.lp-trial-section__head-tag {
  display: inline-block;
  background: linear-gradient(135deg, #0d68b5, #1a82d8);
  color: #fff;
  font-size: 0.9775rem;
  font-weight: 900;
  padding: 0.45rem 1.5rem;
  border-radius: 2rem;
  letter-spacing: 0.1em;
  margin-bottom: 1rem;
  box-shadow: 0 3px 12px rgba(13,104,181,0.35);
}
.lp-trial-section__title {
  font-size: clamp(2.3rem, 6.325vw, 4.025rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.2;
  margin-bottom: 1rem;
  -webkit-text-stroke: 1.5px rgba(255,255,255,0.6);
  paint-order: stroke fill;
}
.lp-trial-section__title-cyan {
  color: #2cc7d6;
  -webkit-text-stroke: 2px #fff;
}
.lp-trial-section__lead {
  font-size: 1.15rem;
  color: #014a84;
  font-weight: 600;
  line-height: 1.8;
}

/* 2カラムグリッド */
.lp-trial-section__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 640px) {
  .lp-trial-section__grid { grid-template-columns: 1fr 1fr; gap: 1.75rem; }
}

/* 個別カード */
.lp-trial-section__card {
  background: #fff;
  border-radius: 1.75rem;
  overflow: hidden;
  box-shadow: 0 10px 36px rgba(13,104,181,0.15);
  border: 3px solid #2cc7d6;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.lp-trial-section__card:hover {
  transform: translateY(-8px);
  box-shadow: 0 18px 48px rgba(13,104,181,0.22);
}
.lp-trial-section__card--free {
  border-color: #FFE41A;
  box-shadow: 0 10px 36px rgba(255,204,0,0.2);
}
.lp-trial-section__card--free:hover {
  box-shadow: 0 18px 48px rgba(255,204,0,0.3);
}

/* カード画像エリア */
.lp-trial-section__img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #ddeefa;
}
.lp-trial-section__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.lp-trial-section__card:hover .lp-trial-section__img { transform: scale(1.06); }

/* 画像バッジ */
.lp-trial-section__img-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: linear-gradient(135deg, #0d68b5, #1a82d8);
  color: #fff;
  font-size: 0.943rem;
  font-weight: 900;
  padding: 0.35rem 1rem;
  border-radius: 2rem;
  box-shadow: 0 3px 10px rgba(13,104,181,0.4);
  letter-spacing: 0.06em;
}
.lp-trial-section__img-badge--free {
  background: linear-gradient(135deg, #FFE41A, #ffcc00);
  color: #02284d;
  box-shadow: 0 3px 10px rgba(255,204,0,0.5);
  font-size: 1.15rem;
}

/* カード本文 */
.lp-trial-section__card-body {
  padding: 1.5rem 1.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  flex: 1;
}
.lp-trial-section__target {
  font-size: 0.897rem;
  color: #0d68b5;
  font-weight: 700;
  background: #e8f3fb;
  display: inline-block;
  padding: 0.2rem 0.85rem;
  border-radius: 2rem;
  width: fit-content;
}
.lp-trial-section__card--free .lp-trial-section__target {
  background: #fffbeb;
  color: #92400e;
}
.lp-trial-section__card-title {
  font-size: clamp(1.725rem, 4.6vw, 2.5875rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.25;
  margin: 0.25rem 0 0;
}

/* 価格エリア（体験コース） */
.lp-trial-section__price-wrap {
  background: linear-gradient(135deg, #e8f3fb, #d0e8fa);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
}
.lp-trial-section__price-cross {
  font-size: 0.943rem;
  color: #888;
  margin: 0 0 0.25rem;
}
.lp-trial-section__price-cross s { text-decoration: line-through; }
.lp-trial-section__price {
  font-size: 1.2075rem;
  font-weight: 700;
  color: #02284d;
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 0.2rem;
}
.lp-trial-section__price em {
  font-style: normal;
  font-size: 3.7375rem;
  font-weight: 900;
  color: #e53935;
  line-height: 1;
  -webkit-text-stroke: 1.5px #fff;
  paint-order: stroke fill;
}
.lp-trial-section__price em small { font-size: 0.483em; font-weight: 700; }
.lp-trial-section__price-note {
  font-size: 0.8625rem;
  color: #555;
  margin: 0.4rem 0 0;
  font-weight: 600;
}

/* 日付エリア（無料体験会） */
.lp-trial-section__date-wrap {
  background: linear-gradient(135deg, #02284d, #1f4999);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  text-align: center;
}
.lp-trial-section__date-label {
  font-size: 0.92rem;
  color: rgba(255,255,255,0.8);
  font-weight: 700;
  margin: 0 0 0.2rem;
  letter-spacing: 0.08em;
}
.lp-trial-section__date {
  font-family: var(--Quicksand, 'Quicksand', sans-serif);
  font-size: clamp(3.45rem, 9.2vw, 5.4625rem);
  font-weight: 900;
  color: #FFE41A;
  line-height: 1;
  text-shadow: 3px 4px 0 rgba(0,0,0,0.22);
  -webkit-text-stroke: 2px rgba(255,255,255,0.25);
  paint-order: stroke fill;
}
.lp-trial-section__date small { font-size: 0.483em; font-weight: 700; color: #fff; }

/* 無料バッジ */
.lp-trial-section__free-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, #FFE41A, #ffcc00);
  color: #02284d;
  font-size: 1.15rem;
  font-weight: 900;
  padding: 0.5rem 1.5rem;
  border-radius: 2rem;
  box-shadow: 0 3px 12px rgba(255,204,0,0.45);
  width: fit-content;
}
.lp-trial-section__free-badge em {
  font-style: normal;
  color: #e53935;
  font-size: 1.38em;
}

/* ポイントリスト */
.lp-trial-section__points {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.lp-trial-section__points li {
  font-size: 0.9775rem;
  color: #333;
  padding: 0.35rem 0;
  border-bottom: 1px solid #e8f3fb;
  font-weight: 600;
}
.lp-trial-section__points li:last-child { border-bottom: none; }

/* ノート */
.lp-trial-section__note {
  font-size: 0.828rem;
  color: #999;
  text-align: center;
  margin-top: 0.5rem;
}

/* 下部CTA */
.lp-trial-section__cta-bottom {
  text-align: center;
  margin-top: 3rem;
  padding: 2rem 1.5rem;
  background: rgba(255,255,255,0.72);
  border-radius: 1.5rem;
  box-shadow: 0 4px 20px rgba(13,104,181,0.1);
  backdrop-filter: blur(8px);
  border: 1.5px solid rgba(255,255,255,0.8);
}
.lp-trial-section__cta-bottom-text {
  font-size: 1.15rem;
  font-weight: 700;
  color: #014a84;
  margin-bottom: 1.25rem;
  line-height: 1.8;
}
.lp-trial-section__cta-bottom-text strong { color: #0d68b5; }
.lp-trial-section__cta-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 1rem;
}
.lp-trial-section__cta-bottom-note {
  font-size: 0.92rem;
  color: #0d68b5;
  font-weight: 600;
  margin: 0;
}

/* ─── 6. MERITクラウドイラスト画像 ──────────────────────── */
.lp-merit__cloud-illust-wrap {
  width: 120px;
  height: 120px;
  margin: 0 auto 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.lp-merit__cloud-illust-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 4px 10px rgba(13,104,181,0.2));
  animation: floatKids 4s ease-in-out infinite;
}
@media (max-width: 640px) {
  .lp-merit__cloud-illust-wrap { width: 80px; height: 80px; }
}

/* ─── 7. バブル下イラスト挿入スペース ───────────────────── */
.lp-merit__mid-illust {
  position: relative;
  z-index: 1;
  text-align: center;
  margin: 0 0 3.5rem;
  min-height: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-merit__mid-illust-img {
  max-width: 100%;
  width: 900px;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: drop-shadow(0 8px 24px rgba(13,104,181,0.18));
  animation: floatKids 5s ease-in-out infinite;
}

/* ─── 8. プレースホルダー追加バリアント ─────────────────── */
.lp-placeholder--gift {
  width: 100%;
  aspect-ratio: 3 / 2;
  background: linear-gradient(135deg, #f0f0f0 25%, #e4e4e4 75%);
  border: 2px dashed #ccc;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: #888;
  text-align: center;
  padding: 1rem;
}

.lp-placeholder--candy {
  width: 140px;
  height: 120px;
  background: linear-gradient(135deg, #f8eff5 25%, #f0e4ee 75%);
  border: 2px dashed #d4a0c0;
  border-radius: 0.75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  color: #a06080;
  text-align: center;
  padding: 0.75rem;
}

.lp-placeholder--cloud-illust {
  width: 120px;
  height: 120px;
  background: linear-gradient(135deg, #e8f3fb 25%, #d0e8fa 75%);
  border: 2px dashed #4cc2c5;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  color: #0d68b5;
  text-align: center;
  padding: 0.75rem;
  margin: 0 auto;
}

.lp-placeholder--mid-illust {
  width: 100%;
  max-width: 900px;
  min-height: 240px;
  background: linear-gradient(135deg, #e8f3fb 25%, #d0e8fa 75%);
  border: 3px dashed #4cc2c5;
  border-radius: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0d68b5;
  text-align: center;
  padding: 2rem;
  margin: 0 auto;
}
.lp-placeholder__mid-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.lp-placeholder__ico-row {
  font-size: 1.75rem;
  letter-spacing: 0.4em;
  display: block;
}

.lp-placeholder--trial-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: linear-gradient(135deg, #e8f3fb 25%, #d0e8fa 75%);
  border: 2px dashed #4cc2c5;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: #0d68b5;
  text-align: center;
  padding: 1.5rem;
}

/* プレースホルダー共通テキスト補完 */
.lp-placeholder__ico { font-size: 2.5rem; display: block; }
.lp-placeholder__label {
  font-size: 0.72rem;
  line-height: 1.6;
  font-weight: 600;
}
.lp-placeholder__label strong {
  display: block;
  font-size: 0.85rem;
  margin-bottom: 0.15rem;
}


/* 体験コースカード（追加バリアント） */
.lp-trial-section__card--trial {
  border-color: #2cc7d6;
}

/* ============================================================
   2026muryo 無料体験会 — 追加スタイル
   v7（春の入会キャンペーン）ベース
   HEROの春ピンク→シアンブルー系に色変更
   無料体験会専用セクション追加
============================================================ */

/* ── HEROカラーオーバーライド（春ピンク→シアンブルー） ── */
.lp-hero__bg-grad {
  background:
    linear-gradient(145deg,
      rgba(195,244,255,0.95) 0%,
      rgba(160,230,255,0.88) 25%,
      rgba(200,240,255,0.82) 50%,
      rgba(220,248,255,0.78) 75%,
      rgba(240,252,255,0.85) 100%) !important;
}

.lp-hero__camp-badge {
  background: linear-gradient(135deg, #00A0E0 0%, #1EBDF5 50%, #00A0E0 100%) !important;
  box-shadow: 0 4px 16px rgba(0,160,224,0.45) !important;
}
@keyframes campBadgePulseBlue {
  0%,100% { box-shadow: 0 4px 16px rgba(0,160,224,0.45); }
  50%     { box-shadow: 0 6px 24px rgba(0,160,224,0.7); transform: scale(1.02); }
}
.lp-hero__camp-badge { animation: campBadgePulseBlue 2.5s ease-in-out infinite !important; }

/* ── RIBBON オーバーライド（ピンク→シアン） ── */
.lp-camp-ribbon {
  background: linear-gradient(90deg, #0040C0 0%, #00A0E0 50%, #0040C0 100%) !important;
  box-shadow: 0 3px 14px rgba(0,64,192,0.45) !important;
}

/* ── FREE EVENT セクション ── */
.lp-free-event {
  position: relative;
  background: linear-gradient(180deg,
    #f0faff 0%,
    #e8f5ff 40%,
    #fff8f0 100%);
  padding: 4.5rem 0 5rem;
  overflow: hidden;
}

/* 日付大バッジ */
.lp-free-event__title {
  line-height: 1.15;
  margin-bottom: 1rem;
  font-weight: 900;
  font-size: clamp(2.5875rem, 6.325vw, 4.6rem);
  color: #00A0E0;
  -webkit-text-stroke: 2.5px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 4px 0 rgba(0,80,160,0.2), 0 2px 16px rgba(0,160,224,0.2);
  white-space: nowrap;
}
.lp-free-event__title-free {
  display: inline-block;
  font-size: clamp(2.5875rem, 5.75vw, 4.025rem);
  color: #FF4080;
  -webkit-text-stroke: 2.5px #fff;
  paint-order: stroke fill;
  text-shadow: 3px 4px 0 rgba(180,0,80,0.18);
  margin-right: 0.1em;
}
@media (max-width: 480px) {
  .lp-free-event__title { white-space: normal; }
}

/* 日付バッジ */
.lp-free-event__date-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 1rem;
}
.lp-free-event__date-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 0.15rem;
  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-free-event__date-month {
  font-family: var(--Quicksand, 'Quicksand', sans-serif);
  font-size: clamp(2.3rem, 5.75vw, 3.68rem);
  font-weight: 900;
  color: #FFE41A;
  line-height: 1;
}
.lp-free-event__date-dot {
  font-size: clamp(1.725rem, 4.025vw, 2.875rem);
  font-weight: 900;
  color: #fff;
  margin: 0 0.05em;
}
.lp-free-event__date-day {
  font-family: var(--Quicksand, 'Quicksand', sans-serif);
  font-size: clamp(3.45rem, 9.2vw, 5.75rem);
  font-weight: 900;
  color: #FFE41A;
  line-height: 1;
  text-shadow: 3px 4px 0 rgba(0,0,0,0.2);
}
.lp-free-event__date-youbi {
  font-size: clamp(1.035rem, 2.3vw, 1.4375rem);
  font-weight: 700;
  color: rgba(255,228,26,0.9);
  align-self: flex-end;
  margin-bottom: 0.2rem;
}

/* 2カラム時間帯カード */
.lp-free-event__sessions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  margin-bottom: 2.5rem;
}
@media (min-width: 640px) {
  .lp-free-event__sessions { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}

.lp-free-event__session-card {
  background: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,0.1);
  border: 3px solid #00A0E0;
  display: flex;
  flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.lp-free-event__session-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.15);
}
.lp-free-event__session-card--01 { border-color: #00A0E0; }
.lp-free-event__session-card--02 { border-color: #eb4e93; }

.lp-free-event__session-num {
  padding: 0.75rem 1rem 0;
}

.lp-free-event__session-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #e8f4fb;
  margin: 0.5rem 0 0;
}
.lp-free-event__session-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s;
}
.lp-free-event__session-card:hover .lp-free-event__session-img { transform: scale(1.05); }

.lp-free-event__session-time {
  display: inline-block;
  background: linear-gradient(135deg, #0088cc, #00A0E0);
  color: #fff;
  font-size: 1.15rem;
  font-weight: 900;
  padding: 0.4rem 1.25rem;
  border-radius: 2rem;
  margin-bottom: 0.4rem;
  letter-spacing: 0.05em;
}

.lp-free-event__session-title {
  font-size: clamp(1.38rem, 3.45vw, 1.84rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.35;
  margin: 0.25rem 0 0.5rem;
}

/* 無料バッジ（共通） */
.lp-free-event__free-badge {
  display: inline-block;
  background: linear-gradient(135deg, #FF4080, #eb4e93);
  color: #fff;
  font-size: 1.012rem;
  font-weight: 900;
  padding: 0.4rem 1.25rem;
  border-radius: 2rem;
  margin: 0.25rem 0 0.75rem;
}
.lp-free-event__free-badge em {
  font-style: normal;
  font-size: 1.61em;
  -webkit-text-stroke: 0.5px rgba(255,255,255,0.5);
}

/* ── TRIAL SECTION スタイル（v7から継承・追加） ── */
.lp-trial-section {
  background: linear-gradient(180deg, #fff 0%, #f0faff 40%, #e8f5ff 100%);
  padding: 5rem 0;
  position: relative;
}

.lp-trial-section__wave-top,
.lp-trial-section__wave-bottom {
  height: 60px;
  background: transparent;
}

.lp-trial-section__head {
  text-align: center;
  margin-bottom: 2.5rem;
}
.lp-trial-section__head-tag {
  display: inline-block;
  background: linear-gradient(135deg, #00A0E0, #1EBDF5);
  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;
}
.lp-trial-section__title {
  font-size: clamp(1.84rem, 4.6vw, 2.875rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}
.lp-trial-section__title-cyan { color: #00A0E0; }
.lp-trial-section__lead {
  font-size: 1.15rem;
  color: #555;
  line-height: 1.8;
}

.lp-trial-section__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  margin-bottom: 2.5rem;
}
@media (min-width: 768px) {
  .lp-trial-section__grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}

.lp-trial-section__card {
  background: #fff;
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 6px 28px rgba(0,0,0,0.1);
  border: 3px solid #00A0E0;
}
.lp-trial-section__card--free { border-color: #eb4e93; }

.lp-trial-section__img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #e8f4fb;
}
.lp-trial-section__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.lp-trial-section__img-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: linear-gradient(135deg, #00A0E0, #1EBDF5);
  color: #fff;
  font-size: 0.943rem;
  font-weight: 900;
  padding: 0.3rem 0.9rem;
  border-radius: 2rem;
  box-shadow: 0 3px 10px rgba(0,160,224,0.4);
}
.lp-trial-section__img-badge--free {
  background: linear-gradient(135deg, #FF4080, #eb4e93);
}

.lp-trial-section__card-body {
  padding: 1.5rem 1.5rem 2rem;
}
.lp-trial-section__target {
  font-size: 0.92rem;
  color: #00A0E0;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.lp-trial-section__card-title {
  font-size: clamp(1.495rem, 3.45vw, 2.0125rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.35;
  margin-bottom: 1rem;
}

/* フローリスト（当日の流れ用） */
.lp-trial-section__flow-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.lp-trial-section__flow-list li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.035rem;
  font-weight: 600;
  color: #333;
  padding: 0.5rem 0.75rem;
  background: #f0faff;
  border-radius: 0.5rem;
  border-left: 3px solid #00A0E0;
}
.lp-flow-step {
  display: inline-block;
  background: #00A0E0;
  color: #fff;
  font-size: 0.782rem;
  font-weight: 900;
  padding: 0.15rem 0.55rem;
  border-radius: 2rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ポイントリスト */
.lp-trial-section__points {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.lp-trial-section__points li {
  font-size: 1.012rem;
  color: #333;
  font-weight: 600;
  padding: 0.4rem 0;
  border-bottom: 1px dashed #e0e8f0;
}

.lp-trial-section__note {
  font-size: 0.828rem;
  color: #999;
  margin-top: 0.75rem;
  line-height: 1.6;
}

/* CTA下部 */
.lp-trial-section__cta-bottom {
  text-align: center;
  background: linear-gradient(135deg, #02284d, #0040C0);
  border-radius: 1.5rem;
  padding: 2.5rem 2rem;
  color: #fff;
  box-shadow: 0 6px 28px rgba(2,40,77,0.3);
}
.lp-trial-section__cta-bottom-text {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.8;
  margin-bottom: 1.25rem;
}
.lp-trial-section__cta-bottom-text strong { color: #FFE41A; }
.lp-trial-section__cta-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.lp-trial-section__cta-bottom-note {
  font-size: 0.897rem;
  opacity: 0.8;
  letter-spacing: 0.05em;
}

/* 体験ボタン（無料体験会用） */
.lp-btn--trial-main {
  background: linear-gradient(135deg, #00A0E0 0%, #1EBDF5 100%);
  color: #fff;
  padding: 0.9rem 2rem;
  box-shadow: 0 4px 16px rgba(0,160,224,0.4);
  margin-top: 0.5rem;
  display: inline-flex;
}
.lp-btn--trial-free {
  background: linear-gradient(135deg, #FF4080 0%, #eb4e93 100%);
  color: #fff;
  padding: 0.9rem 2rem;
  box-shadow: 0 4px 16px rgba(235,78,147,0.4);
  margin-top: 0.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  border-radius: 3rem;
  font-weight: 900;
  text-decoration: none;
}

/* ── MID ILLUST プレースホルダー ── */
.lp-placeholder--mid-illust {
  width: 100%;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lp-placeholder__mid-inner {
  text-align: center;
}
.lp-placeholder__ico-row {
  font-size: 1.75rem;
  display: block;
  margin-bottom: 0.75rem;
  letter-spacing: 0.5rem;
}

/* ── CLOUD ILLUST プレースホルダー ── */
.lp-placeholder--cloud-illust {
  width: 80px;
  height: 80px;
  margin: 0 auto 0.6rem;
  border-radius: 50%;
}
.lp-placeholder--cloud-illust .lp-placeholder__ico {
  font-size: 1.5rem;
}
.lp-merit__cloud-illust-wrap {
  width: 80px;
  height: 80px;
  margin: 0 auto 0.6rem;
}
.lp-merit__cloud-illust-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* ── GIFT/BONUS BANNER スタイル修正 ── */
.lp-campaign__bonus-banner {
  background: linear-gradient(135deg, #e8f5ff 0%, #f0e8ff 100%);
  border-radius: 1.5rem;
  padding: 2rem 1.75rem;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
  border: 2.5px solid rgba(0,160,224,0.25);
}
.lp-campaign__bonus-badge {
  background: linear-gradient(135deg, #00A0E0, #1EBDF5);
  color: #fff;
  border-radius: 50%;
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8625rem;
  font-weight: 900;
  text-align: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0,160,224,0.4);
}
.lp-campaign__bonus-badge-txt { line-height: 1.3; }
.lp-campaign__bonus-body { flex: 1; min-width: 200px; }
.lp-campaign__bonus-limit {
  display: inline-block;
  font-size: 0.943rem;
  font-weight: 700;
  color: #0040C0;
  margin-bottom: 0.4rem;
}
.lp-campaign__bonus-limit em { font-style: normal; font-size: 1.265em; color: #FF4080; }
.lp-campaign__bonus-title {
  font-size: clamp(1.38rem, 3.45vw, 1.84rem);
  font-weight: 900;
  color: #02284d;
  line-height: 1.35;
  margin-bottom: 0.5rem;
}
.lp-campaign__bonus-title em { font-style: normal; color: #00A0E0; }
.lp-campaign__bonus-desc {
  font-size: 0.9775rem;
  line-height: 1.7;
  color: #555;
}
.lp-campaign__bonus-note {
  font-size: 0.828rem;
  color: #999;
  margin-top: 0.35rem;
}
.lp-campaign__bonus-cta { flex-shrink: 0; }

/* ── CAMPAIGN HEAD ラベルオーバーライド ── */
.lp-campaign__head-label {
  background: linear-gradient(135deg, #0040C0, #00A0E0) !important;
}

/* ── URGENCY バーオーバーライド ── */
.lp-campaign__urgency {
  background: linear-gradient(135deg, #0040C0, #00A0E0) !important;
}


/* ==========================================================
   HERO v3 — バナー風フルワイドデザイン（2026muryo）
   追加: 2026-04-02
   ========================================================== */

/* ─────────────────────────────
   セクションベース
───────────────────────────── */
.lp-hero--v3 {
  position: relative;
  width: 100%;
  min-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #02284d;
}

/* ─────────────────────────────
   背景レイヤー
───────────────────────────── */
.lp-hero__bg-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.lp-hero__bg-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  filter: brightness(0.55) saturate(1.2);
}

.lp-hero__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    135deg,
    rgba(0,40,80,0.78) 0%,
    rgba(0,100,180,0.50) 40%,
    rgba(0,160,224,0.30) 70%,
    rgba(30,189,245,0.20) 100%
  );
}

/* 斜めストライプ装飾 */
.lp-hero__bg-stripe {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 40px,
    rgba(255,255,255,0.025) 40px,
    rgba(255,255,255,0.025) 41px
  );
}

/* SVG波形 */
.lp-hero__bg-wave {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 120px;
}
.lp-hero__bg-wave svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ─────────────────────────────
   内部レイアウト（2カラム）
───────────────────────────── */
.lp-hero__v3-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  padding: 5rem 2rem 6rem;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}

/* ─────────────────────────────
   左カラム：テキスト
───────────────────────────── */
.lp-hero__v3-text {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

/* スクール名リボン */
.lp-hero__org-ribbon {
  display: inline-block;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  backdrop-filter: blur(4px);
  border-radius: 100px;
  padding: 0.4em 1.2em;
  font-size: clamp(0.7475rem, 1.725vw, 0.9775rem);
  color: #e0f4ff;
  letter-spacing: 0.04em;
}

/* 無料バッジ */
.lp-hero__free-badge-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.lp-hero__free-badge-text {
  background: linear-gradient(90deg, #FFE41A 0%, #FFD700 100%);
  color: #02284d;
  font-size: clamp(1.035rem, 2.3vw, 1.265rem);
  font-weight: 900;
  padding: 0.3em 1em;
  border-radius: 100px;
  letter-spacing: 0.05em;
  display: inline-block;
  box-shadow: 0 3px 10px rgba(255,215,0,0.4);
}
.lp-hero__free-badge-star {
  color: #FFD700;
  font-size: 1.15rem;
  filter: drop-shadow(0 1px 3px rgba(255,200,0,0.6));
}

/* メインタイトル */
.lp-hero__v3-title {
  display: flex;
  flex-direction: column;
  gap: 0.1em;
  line-height: 1.1;
  margin: 0;
}
.lp-hero__v3-title-sub {
  font-size: clamp(1.035rem, 2.3vw, 1.265rem);
  color: #1EBDF5;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.lp-hero__v3-title-main {
  font-size: clamp(3.45rem, 8.05vw, 6.325rem);
  font-weight: 900;
  color: #ffffff;
  letter-spacing: -0.02em;
  text-shadow:
    0 2px 0 rgba(0,80,140,0.5),
    0 4px 20px rgba(0,0,0,0.4),
    0 0 60px rgba(0,160,224,0.3);
  -webkit-text-stroke: 1px rgba(255,255,255,0.2);
  background: linear-gradient(180deg, #fff 0%, #d0eeff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.lp-hero__v3-title-en {
  font-size: clamp(0.805rem, 1.725vw, 1.035rem);
  color: rgba(255,255,255,0.5);
  font-weight: 700;
  letter-spacing: 0.25em;
}

/* 日付ブロック */
.lp-hero__date-block {
  background: rgba(255,255,255,0.08);
  border: 2px solid rgba(30,189,245,0.5);
  border-radius: 16px;
  padding: 1rem 1.5rem;
  backdrop-filter: blur(8px);
  box-shadow:
    0 4px 20px rgba(0,0,0,0.2),
    inset 0 1px 0 rgba(255,255,255,0.15);
  position: relative;
  overflow: hidden;
}
.lp-hero__date-block::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, #1EBDF5, #FFE41A, #1EBDF5);
}
.lp-hero__date-label-row {
  margin-bottom: 0.3em;
}
.lp-hero__date-label {
  font-size: 0.92rem;
  color: #1EBDF5;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.lp-hero__date-num-row {
  display: flex;
  align-items: baseline;
  gap: 0.1em;
  line-height: 1;
}
.lp-hero__date-num-large {
  font-size: clamp(4.025rem, 9.2vw, 6.9rem);
  font-weight: 900;
  color: #FFE41A;
  text-shadow: 0 2px 10px rgba(255,200,0,0.4), 0 0 40px rgba(255,200,0,0.2);
  letter-spacing: -0.02em;
  -webkit-text-stroke: 1px rgba(200,150,0,0.3);
  font-feature-settings: 'pnum' 1;
}
.lp-hero__date-dot {
  font-size: clamp(2.3rem, 5.75vw, 4.025rem);
  color: #fff;
  font-weight: 700;
  margin: 0 0.1em;
}
.lp-hero__date-youbi {
  font-size: clamp(1.15rem, 2.875vw, 1.84rem);
  color: #fff;
  font-weight: 700;
  margin-left: 0.3em;
}
.lp-hero__date-sub-row {
  margin-top: 0.5em;
}
.lp-hero__age-chip {
  background: linear-gradient(90deg, #00A0E0, #1EBDF5);
  color: #fff;
  font-size: 0.9775rem;
  font-weight: 700;
  padding: 0.25em 0.9em;
  border-radius: 100px;
  letter-spacing: 0.05em;
  display: inline-block;
  box-shadow: 0 2px 8px rgba(0,160,224,0.4);
}

/* セッション時間帯 */
.lp-hero__sessions-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.lp-hero__session-pill {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5em 1em;
  border-radius: 12px;
  flex: 1;
  min-width: 140px;
}
.lp-hero__session-pill--1 {
  background: linear-gradient(135deg, rgba(0,160,224,0.3), rgba(0,100,180,0.3));
  border: 1px solid rgba(30,189,245,0.6);
}
.lp-hero__session-pill--2 {
  background: linear-gradient(135deg, rgba(235,78,147,0.3), rgba(255,64,128,0.25));
  border: 1px solid rgba(235,78,147,0.5);
}
.lp-hero__session-num {
  font-size: 1.38rem;
  font-weight: 900;
  color: #FFE41A;
}
.lp-hero__session-time {
  font-size: clamp(1.035rem, 2.3vw, 1.265rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.02em;
  display: block;
}
.lp-hero__session-divider {
  color: rgba(255,255,255,0.4);
  font-size: 1.38rem;
  font-weight: 300;
}

/* 信頼バッジ行 */
.lp-hero__trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.lp-hero__trust-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.3em 0.8em;
  border-radius: 8px;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.lp-hero__trust-badge--gold {
  background: rgba(255,215,0,0.15);
  border: 1px solid rgba(255,215,0,0.4);
  color: #FFE41A;
}
.lp-hero__trust-badge--blue {
  background: rgba(0,160,224,0.15);
  border: 1px solid rgba(0,160,224,0.4);
  color: #7de4ff;
}
.lp-hero__trust-badge--cyan {
  background: rgba(30,189,245,0.12);
  border: 1px solid rgba(30,189,245,0.3);
  color: #a8efff;
}
.lp-hero__trust-badge-ico {
  font-size: 1.15rem;
}

/* HEROのCTAボタン（v3） */
.lp-hero__v3-cta {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  align-items: flex-start;
}
.lp-btn--hero-v3 {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  background: linear-gradient(90deg, #00A0E0 0%, #1EBDF5 50%, #00c4ff 100%);
  color: #fff;
  font-size: clamp(1.15rem, 2.875vw, 1.4375rem);
  font-weight: 900;
  padding: 0.9em 2.2em;
  border-radius: 100px;
  text-decoration: none;
  letter-spacing: 0.04em;
  box-shadow:
    0 6px 20px rgba(0,160,224,0.5),
    0 2px 0 rgba(0,80,120,0.3),
    inset 0 1px 0 rgba(255,255,255,0.3);
  transition: all 0.25s ease;
  position: relative;
  overflow: hidden;
}
.lp-btn--hero-v3::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transition: left 0.5s ease;
}
.lp-btn--hero-v3:hover {
  transform: translateY(-3px);
  box-shadow:
    0 10px 30px rgba(0,160,224,0.6),
    0 2px 0 rgba(0,80,120,0.3),
    inset 0 1px 0 rgba(255,255,255,0.3);
}
.lp-btn--hero-v3:hover::before {
  left: 150%;
}
.lp-btn__arrow {
  font-size: 0.8em;
}
.lp-hero__v3-cta-note {
  font-size: 0.897rem;
  color: rgba(255,255,255,0.6);
  margin: 0;
}

/* ─────────────────────────────
   右カラム：ビジュアル
───────────────────────────── */
.lp-hero__v3-visual {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* メイン画像 */
.lp-hero__v3-img-main-wrap {
  position: relative;
  border-radius: 20px;
  overflow: visible;
}
.lp-hero__v3-img-main {
  width: 100%;
  height: auto;
  aspect-ratio: 700 / 520;
  object-fit: cover;
  border-radius: 18px;
  display: block;
  position: relative;
  z-index: 2;
}

/* 装飾フレーム */
.lp-hero__v3-img-frame {
  position: absolute;
  inset: -8px;
  border-radius: 24px;
  z-index: 1;
  pointer-events: none;
}
.lp-hero__v3-img-frame::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  border-radius: 24px 24px 0 0;
}

/* 浮遊バッジ */
.lp-hero__v3-float-badge {
  position: absolute;
  z-index: 10;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  animation: floatBadge 3s ease-in-out infinite;
  text-align: center;
}
.lp-hero__v3-float-badge--free {
  top: -14px;
  right: -14px;
  width: 80px;
  height: 80px;
  background: linear-gradient(135deg, #FFE41A, #FFD700);
  animation-delay: 0s;
}
.lp-hero__v3-float-badge--date {
  bottom: -14px;
  left: -14px;
  width: 90px;
  height: 60px;
  background: linear-gradient(135deg, #00A0E0, #1EBDF5);
  animation-delay: 1.2s;
}
.lp-hero__v3-float-badge-num {
  font-size: 2.07rem;
  font-weight: 900;
  color: #02284d;
  line-height: 1;
}
.lp-hero__v3-float-badge-unit {
  font-size: 0.9775rem;
  font-weight: 800;
  color: #02284d;
  line-height: 1;
}
.lp-hero__v3-float-badge-label {
  font-size: 0.69rem;
  font-weight: 700;
  color: #02284d;
  opacity: 0.7;
}
.lp-hero__v3-float-badge--date .lp-hero__v3-float-badge-label {
  color: #fff;
  opacity: 0.9;
}
.lp-hero__v3-float-badge-d {
  font-size: 1.38rem;
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
}
@keyframes floatBadge {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50%       { transform: translateY(-6px) rotate(3deg); }
}

/* サブ画像 */
.lp-hero__v3-img-sub-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.lp-hero__v3-img-sub-wrap {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
}
.lp-hero__v3-img-sub {
  width: 100%;
  height: auto;
  aspect-ratio: 320 / 220;
  object-fit: cover;
  display: block;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  transition: transform 0.3s ease;
}
.lp-hero__v3-img-sub-wrap:hover .lp-hero__v3-img-sub {
  transform: scale(1.04);
}
.lp-hero__v3-img-sub-cap {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,40,80,0.85), transparent);
  color: #fff;
  font-size: 0.805rem;
  font-weight: 700;
  padding: 1rem 0.6rem 0.4rem;
  text-align: center;
  letter-spacing: 0.05em;
}

/* プレースホルダー（ヒーロー用） */
.lp-placeholder--hero-v3 {
  width: 100%;
  aspect-ratio: 700 / 520;
  background: linear-gradient(135deg, #1a4060 0%, #0a2a48 100%);
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(30,189,245,0.4);
}
.lp-placeholder__inner {
  text-align: center;
}
.lp-placeholder__big-ico {
  font-size: 3rem;
  display: block;
  margin-bottom: 0.5rem;
}
.lp-placeholder--hero-sub {
  width: 100%;
  aspect-ratio: 320 / 220;
  background: linear-gradient(135deg, #1a4060, #0a2a48);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(30,189,245,0.3);
  text-align: center;
}

/* ─────────────────────────────
   ボトムウェーブ
───────────────────────────── */
.lp-hero__v3-wave-bottom {
  position: relative;
  z-index: 3;
  line-height: 0;
  margin-top: auto;
}
.lp-hero__v3-wave-bottom svg {
  display: block;
  width: 100%;
  height: 80px;
}


/* ==========================================================
   CTA BOTTOM v3 — コントラスト改善版
   旧：紺背景+白文字（見にくい） → 白背景+濃色文字
   ========================================================== */
.lp-trial-section__cta-bottom--v3 {
  background: #ffffff !important;
  border: 3px solid #00A0E0;
  border-radius: 20px;
  padding: 2.5rem 2rem !important;
  text-align: center;
  box-shadow:
    0 8px 32px rgba(0,160,224,0.15),
    0 2px 8px rgba(0,0,0,0.06);
  position: relative;
  overflow: hidden;
  color: #02284d !important;
}
.lp-trial-section__cta-bottom--v3::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, #00A0E0, #1EBDF5, #FFE41A, #1EBDF5, #00A0E0);
}

.lp-cta-v3__icon-row {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  line-height: 1;
}
.lp-cta-v3__heading {
  font-size: clamp(1.495rem, 3.45vw, 2.07rem);
  font-weight: 900;
  color: #02284d;
  margin: 0 0 0.4rem;
  letter-spacing: 0.04em;
}
.lp-cta-v3__sub {
  font-size: 1.0925rem;
  color: #334a60;
  margin: 0 0 1.5rem;
  line-height: 1.6;
}
.lp-cta-v3__tel-line {
  font-size: 1.035rem;
  color: #445566;
  margin-top: 1rem;
}
.lp-cta-v3__tel-link {
  color: #00A0E0;
  font-weight: 700;
  font-size: 1.2075rem;
  text-decoration: none;
  display: inline-block;
  padding: 0.2em 0.6em;
  border: 1px solid #00A0E0;
  border-radius: 8px;
  margin-left: 0.3em;
  transition: background 0.2s;
}
.lp-cta-v3__tel-link:hover {
  background: #e8f7ff;
}
.lp-trial-section__cta-bottom--v3 .lp-trial-section__cta-bottom-note {
  color: #334a60 !important;
  margin-top: 1rem;
}


/* ==========================================================
   画像エリア強化 — コンテンツ奥行きデザイン
   ========================================================== */

/* セッションカード画像：アスペクト比統一・大型化 */
.lp-free-event__session-img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 14px 14px 0 0;
}
.lp-free-event__session-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.lp-free-event__session-card:hover .lp-free-event__session-img {
  transform: scale(1.04);
}

/* 施設写真グリッド — 大型化 */
.lp-facility__fig img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.lp-facility__item:hover .lp-facility__fig img {
  transform: scale(1.05);
}
.lp-facility__fig {
  overflow: hidden;
  border-radius: 10px;
}

/* ガイドカード画像 — 高さ拡張 */
.lp-trial-section__img-wrap {
  position: relative;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}
.lp-trial-section__img {
  width: 100%;
  min-height: 260px;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.lp-trial-section__card:hover .lp-trial-section__img {
  transform: scale(1.03);
}

/* コースカード画像 — 高さ拡張 */
.lp-courses__img-wrap {
  overflow: hidden;
  border-radius: 12px 12px 0 0;
}
.lp-courses__img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.lp-courses__card:hover .lp-courses__img {
  transform: scale(1.06);
}


/* ==========================================================
   奥行き・背景デザイン強化（全体）
   ========================================================== */

/* MERITセクション — テクスチャ背景 */
.lp-merit {
  background:
    radial-gradient(circle at 20% 50%, rgba(0,160,224,0.08) 0%, transparent 60%),
    radial-gradient(circle at 80% 20%, rgba(30,189,245,0.06) 0%, transparent 50%),
    linear-gradient(180deg, #e8f7ff 0%, #f0faff 50%, #e0f3ff 100%);
  position: relative;
}
.lp-merit::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, rgba(0,160,224,0.08) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;
}

/* REASONS — 奥行きシャドウ */
.lp-reasons__item {
  position: relative;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.lp-reasons__item:hover {
  transform: translateX(6px);
}

/* 施設セクション — カード奥行き */
.lp-facility__item {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.lp-facility__item:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 40px rgba(0,100,160,0.2);
}

/* FAQアイテム — アコーディオン風奥行き */
.lp-faq__item {
  position: relative;
  transition: box-shadow 0.25s ease;
}
.lp-faq__item:hover {
  box-shadow: 4px 0 0 #00A0E0, 0 4px 16px rgba(0,0,0,0.06);
}

/* コースカード — カード奥行き */
.lp-courses__card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.lp-courses__card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0,80,160,0.22);
}


/* ==========================================================
   レスポンシブ — ヒーローv3
   ========================================================== */
@media (max-width: 900px) {
  .lp-hero__v3-inner {
    grid-template-columns: 1fr;
    padding: 3rem 1.5rem 4rem;
    gap: 2.5rem;
  }
  .lp-hero__v3-title-main {
    font-size: clamp(3.22rem, 11.5vw, 4.6rem);
  }
  .lp-hero__date-num-large {
    font-size: clamp(3.45rem, 11.5vw, 5.75rem);
  }
  .lp-hero__sessions-row {
    justify-content: flex-start;
  }
}

@media (max-width: 600px) {
  .lp-hero--v3 {
    min-height: auto;
  }
  .lp-hero__v3-inner {
    padding: 2rem 1rem 3rem;
    gap: 1.5rem;
  }
  .lp-hero__v3-title-main {
    font-size: 3.5125rem;
  }
  .lp-hero__date-num-large {
    font-size: 4.0875rem;
  }
  .lp-hero__trust-badges {
    gap: 0.4rem;
  }
  .lp-hero__trust-badge {
    font-size: 0.8675rem;
    padding: 0.2em 0.6em;
  }
  .lp-hero__v3-img-sub-row {
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .lp-hero__v3-float-badge--free,
  .lp-hero__v3-float-badge--date {
    display: none;
  }
  .lp-trial-section__cta-bottom--v3 {
    padding: 2rem 1.2rem !important;
  }
}


/* ==========================================================
   v4 — HERO明度UP・全セクション水色カラフル背景・水玉装飾
   追加: 2026-04-02
   ========================================================== */

/* ──────────────────────────────────────────
   HERO v4 — 明度大幅アップ・明るいシアン基調
   ────────────────────────────────────────── */

/* 基本背景色を明るい水色に変更 */
.lp-hero--v4 {
  background: linear-gradient(135deg, #0099cc 0%, #1EBDF5 40%, #33ccff 70%, #00b8e6 100%) !important;
}

/* 写真は明るく表示 */
.lp-hero--v4 .lp-hero__bg-photo {
  filter: brightness(0.82) saturate(1.15) !important;
}

/* オーバーレイを大幅に薄く — 明るく見せる */
.lp-hero--v4 .lp-hero__bg-overlay {
  background: linear-gradient(
    135deg,
    rgba(0, 60, 120, 0.42) 0%,
    rgba(0, 120, 200, 0.28) 40%,
    rgba(0, 160, 224, 0.15) 70%,
    rgba(30, 189, 245, 0.08) 100%
  ) !important;
}

/* 斜めストライプを白くして明るい印象に */
.lp-hero--v4 .lp-hero__bg-stripe {
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 30px,
    rgba(255, 255, 255, 0.06) 30px,
    rgba(255, 255, 255, 0.06) 31px
  ) !important;
}

/* テキスト影を薄く — 明るい背景に合わせる */
.lp-hero--v4 .lp-hero__v3-title-main {
  text-shadow:
    0 2px 0 rgba(0, 60, 100, 0.3),
    0 4px 14px rgba(0, 0, 0, 0.18),
    0 0 40px rgba(0, 200, 255, 0.2) !important;
  background: linear-gradient(180deg, #fff 0%, #c8f0ff 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* 日付ブロック — ガラス感強化・明るめ */
.lp-hero--v4 .lp-hero__date-block {
  background: rgba(255, 255, 255, 0.22) !important;
  border-color: rgba(255, 255, 255, 0.6) !important;
  backdrop-filter: blur(12px) !important;
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
}

/* セッションピル — 明るく */
.lp-hero--v4 .lp-hero__session-pill--1 {
  background: rgba(255, 255, 255, 0.25) !important;
  border-color: rgba(255, 255, 255, 0.6) !important;
}
.lp-hero--v4 .lp-hero__session-pill--2 {
  background: rgba(255, 100, 160, 0.28) !important;
  border-color: rgba(255, 120, 170, 0.6) !important;
}

/* スクール名リボン — 明るく */
.lp-hero--v4 .lp-hero__org-ribbon {
  background: rgba(255, 255, 255, 0.25) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  color: #fff !important;
}

/* 信頼バッジ — 明るめ */
.lp-hero--v4 .lp-hero__trust-badge--gold {
  background: rgba(255, 228, 26, 0.28) !important;
  border-color: rgba(255, 228, 26, 0.7) !important;
}
.lp-hero--v4 .lp-hero__trust-badge--blue {
  background: rgba(255, 255, 255, 0.2) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
  color: #fff !important;
}
.lp-hero--v4 .lp-hero__trust-badge--cyan {
  background: rgba(255, 255, 255, 0.18) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #e0faff !important;
}


/* ──────────────────────────────────────────
   水玉（WATER BUBBLE）— 共通ベース
   ────────────────────────────────────────── */

/* コンテナ共通 */
.lp-bubbles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}

/* 水玉ベーススタイル */
[class*="wb--"] {
  position: absolute;
  border-radius: 50%;
  display: block;
}

/* ──────────────────────────────────────────
   HERO 水玉 — 大きく・ダイナミック
   ────────────────────────────────────────── */

/* 大きなシアン水玉 */
.wb--hero-1 {
  width: 380px; height: 380px;
  top: -80px; left: -100px;
  background: radial-gradient(circle at 35% 35%, rgba(100, 220, 255, 0.55), rgba(0, 180, 230, 0.25) 60%, transparent);
  animation: wbFloat1 7s ease-in-out infinite;
}
.wb--hero-2 {
  width: 260px; height: 260px;
  top: 40%; right: -60px;
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.45), rgba(100, 210, 255, 0.2) 55%, transparent);
  animation: wbFloat2 9s ease-in-out infinite;
}
.wb--hero-3 {
  width: 180px; height: 180px;
  bottom: 80px; left: 20%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.45), rgba(255, 200, 0, 0.2) 60%, transparent);
  animation: wbFloat3 6s ease-in-out infinite;
}
.wb--hero-4 {
  width: 120px; height: 120px;
  top: 15%; left: 45%;
  background: radial-gradient(circle at 30% 30%, rgba(255, 100, 160, 0.5), rgba(235, 78, 147, 0.2) 60%, transparent);
  animation: wbFloat1 8s 1s ease-in-out infinite;
}
.wb--hero-5 {
  width: 80px; height: 80px;
  top: 60%; left: 8%;
  background: radial-gradient(circle at 40% 40%, rgba(200, 240, 255, 0.6), rgba(100, 200, 240, 0.25) 60%, transparent);
  animation: wbFloat2 5s 0.5s ease-in-out infinite;
}
.wb--hero-6 {
  width: 60px; height: 60px;
  top: 25%; right: 25%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.7), rgba(180, 235, 255, 0.3) 55%, transparent);
  animation: wbFloat3 4s 2s ease-in-out infinite;
}
.wb--hero-7 {
  width: 200px; height: 200px;
  bottom: -40px; right: 30%;
  background: radial-gradient(circle at 30% 30%, rgba(0, 180, 230, 0.35), rgba(0, 140, 200, 0.15) 60%, transparent);
  animation: wbFloat1 10s 1.5s ease-in-out infinite;
}
.wb--hero-8 {
  width: 100px; height: 100px;
  top: 5%; right: 5%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.55), rgba(255, 190, 0, 0.2) 60%, transparent);
  animation: wbFloat2 6s 3s ease-in-out infinite;
}

/* 水滴・泡 絵文字 */
.wb--hero-drop-1 {
  font-size: 2.5rem;
  top: 10%; left: 52%;
  animation: wbDrop1 4s 0.5s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,150,220,0.4));
  border-radius: 0;
  background: none;
}
.wb--hero-drop-2 {
  font-size: 3rem;
  bottom: 20%; right: 6%;
  animation: wbDrop1 5s 1.2s ease-in-out infinite;
  filter: drop-shadow(0 2px 8px rgba(0,140,210,0.35));
  border-radius: 0;
  background: none;
}
.wb--hero-drop-3 {
  font-size: 2rem;
  top: 35%; left: 3%;
  animation: wbDrop2 6s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,160,224,0.3));
  border-radius: 0;
  background: none;
}
.wb--hero-drop-4 {
  font-size: 2.8rem;
  top: 70%; right: 18%;
  animation: wbDrop2 7s 2s ease-in-out infinite;
  filter: drop-shadow(0 2px 8px rgba(0,180,240,0.35));
  border-radius: 0;
  background: none;
}


/* ──────────────────────────────────────────
   セクション共通 水玉（中型）
   ────────────────────────────────────────── */

/* lp-free-event セクション */
.wb--sec-a1 {
  width: 300px; height: 300px;
  top: -60px; right: -80px;
  background: radial-gradient(circle at 35% 35%, rgba(30, 189, 245, 0.22), transparent 65%);
  animation: wbFloat1 11s ease-in-out infinite;
}
.wb--sec-a2 {
  width: 180px; height: 180px;
  bottom: 40px; left: -50px;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.2), transparent 60%);
  animation: wbFloat2 8s 1s ease-in-out infinite;
}
.wb--sec-a3 {
  width: 120px; height: 120px;
  top: 30%; left: 5%;
  background: radial-gradient(circle at 35% 35%, rgba(0, 160, 224, 0.18), transparent 60%);
  animation: wbFloat3 6s 0.5s ease-in-out infinite;
}
.wb--sec-a4 {
  width: 80px; height: 80px;
  top: 60%; right: 8%;
  background: radial-gradient(circle at 35% 35%, rgba(235, 78, 147, 0.18), transparent 60%);
  animation: wbFloat1 5s 2s ease-in-out infinite;
}
.wb--sec-a5 {
  width: 220px; height: 220px;
  bottom: -50px; right: 25%;
  background: radial-gradient(circle at 30% 30%, rgba(100, 220, 255, 0.15), transparent 65%);
  animation: wbFloat2 13s ease-in-out infinite;
}

/* lp-trial-section */
.wb--sec-b1 {
  width: 350px; height: 350px;
  top: -80px; left: -100px;
  background: radial-gradient(circle at 35% 35%, rgba(0, 160, 224, 0.14), transparent 65%);
  animation: wbFloat1 12s ease-in-out infinite;
}
.wb--sec-b2 {
  width: 200px; height: 200px;
  top: 20%; right: -60px;
  background: radial-gradient(circle at 30% 30%, rgba(30, 189, 245, 0.16), transparent 60%);
  animation: wbFloat3 9s 1s ease-in-out infinite;
}
.wb--sec-b3 {
  width: 100px; height: 100px;
  bottom: 60px; left: 15%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.18), transparent 60%);
  animation: wbFloat2 7s 0.8s ease-in-out infinite;
}
.wb--sec-b4 {
  width: 60px; height: 60px;
  top: 50%; right: 12%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 100, 160, 0.2), transparent 60%);
  animation: wbFloat1 5s 2.5s ease-in-out infinite;
}

/* MERIT セクション */
.wb--merit-1 {
  width: 400px; height: 400px;
  top: -100px; right: -120px;
  background: radial-gradient(circle at 35% 35%, rgba(0, 160, 224, 0.12), transparent 65%);
  animation: wbFloat1 14s ease-in-out infinite;
}
.wb--merit-2 {
  width: 250px; height: 250px;
  top: 40%; left: -80px;
  background: radial-gradient(circle at 35% 35%, rgba(30, 189, 245, 0.14), transparent 65%);
  animation: wbFloat2 10s 1s ease-in-out infinite;
}
.wb--merit-3 {
  width: 160px; height: 160px;
  bottom: 100px; right: 5%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.15), transparent 60%);
  animation: wbFloat3 8s 0.5s ease-in-out infinite;
}
.wb--merit-4 {
  width: 90px; height: 90px;
  top: 20%; left: 30%;
  background: radial-gradient(circle at 35% 35%, rgba(235, 78, 147, 0.14), transparent 60%);
  animation: wbFloat1 6s 3s ease-in-out infinite;
}
.wb--merit-5 {
  width: 130px; height: 130px;
  bottom: -30px; left: 40%;
  background: radial-gradient(circle at 30% 30%, rgba(100, 210, 255, 0.16), transparent 60%);
  animation: wbFloat2 9s 1.5s ease-in-out infinite;
}
.wb--merit-drop-1 {
  font-size: 3rem;
  top: 10%; left: 2%;
  animation: wbDrop1 5s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,150,220,0.3));
  border-radius: 0; background: none;
}
.wb--merit-drop-2 {
  font-size: 2.5rem;
  bottom: 15%; right: 2%;
  animation: wbDrop2 7s 1s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,180,240,0.3));
  border-radius: 0; background: none;
}

/* REASONS セクション */
.wb--rea-1 {
  width: 280px; height: 280px;
  top: -60px; left: -80px;
  background: radial-gradient(circle at 35% 35%, rgba(0, 160, 224, 0.12), transparent 65%);
  animation: wbFloat2 11s ease-in-out infinite;
}
.wb--rea-2 {
  width: 150px; height: 150px;
  top: 50%; right: -40px;
  background: radial-gradient(circle at 35% 35%, rgba(30, 189, 245, 0.15), transparent 60%);
  animation: wbFloat3 8s 1s ease-in-out infinite;
}
.wb--rea-3 {
  width: 80px; height: 80px;
  bottom: 40px; left: 20%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.16), transparent 60%);
  animation: wbFloat1 6s 2s ease-in-out infinite;
}
.wb--rea-drop-1 {
  font-size: 2rem;
  top: 5%; right: 5%;
  animation: wbDrop1 5s 0.5s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,150,220,0.3));
  border-radius: 0; background: none;
}
.wb--rea-drop-2 {
  font-size: 2.5rem;
  bottom: 10%; left: 5%;
  animation: wbDrop2 6s 1.5s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,180,240,0.3));
  border-radius: 0; background: none;
}

/* COURSES セクション */
.wb--crs-1 {
  width: 320px; height: 320px;
  top: -80px; right: -80px;
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.12), transparent 65%);
  animation: wbFloat1 12s ease-in-out infinite;
}
.wb--crs-2 {
  width: 200px; height: 200px;
  bottom: -50px; left: -60px;
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.1), transparent 65%);
  animation: wbFloat2 10s 1s ease-in-out infinite;
}
.wb--crs-3 {
  width: 120px; height: 120px;
  top: 30%; left: 2%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.18), transparent 60%);
  animation: wbFloat3 7s 0.5s ease-in-out infinite;
}
.wb--crs-4 {
  width: 80px; height: 80px;
  top: 60%; right: 3%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 100, 160, 0.18), transparent 60%);
  animation: wbFloat1 6s 2s ease-in-out infinite;
}
.wb--crs-drop-1 {
  font-size: 3rem;
  top: 5%; left: 5%;
  animation: wbDrop1 6s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(255,255,255,0.4));
  border-radius: 0; background: none;
}

/* FAQ セクション */
.wb--faq-1 {
  width: 260px; height: 260px;
  top: -70px; right: -70px;
  background: radial-gradient(circle at 35% 35%, rgba(0, 160, 224, 0.11), transparent 65%);
  animation: wbFloat2 11s ease-in-out infinite;
}
.wb--faq-2 {
  width: 140px; height: 140px;
  bottom: 30px; left: -40px;
  background: radial-gradient(circle at 35% 35%, rgba(30, 189, 245, 0.13), transparent 60%);
  animation: wbFloat3 8s 1s ease-in-out infinite;
}
.wb--faq-3 {
  width: 70px; height: 70px;
  top: 40%; left: 5%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.15), transparent 60%);
  animation: wbFloat1 5s 2s ease-in-out infinite;
}
.wb--faq-drop-1 {
  font-size: 2rem;
  bottom: 8%; right: 4%;
  animation: wbDrop2 5s 1s ease-in-out infinite;
  filter: drop-shadow(0 2px 6px rgba(0,150,220,0.3));
  border-radius: 0; background: none;
}


/* ──────────────────────────────────────────
   アニメーション キーフレーム
   ────────────────────────────────────────── */
@keyframes wbFloat1 {
  0%, 100% { transform: translateY(0) translateX(0) scale(1); }
  33%       { transform: translateY(-18px) translateX(8px) scale(1.04); }
  66%       { transform: translateY(10px) translateX(-6px) scale(0.97); }
}
@keyframes wbFloat2 {
  0%, 100% { transform: translateY(0) translateX(0) rotate(0deg); }
  40%       { transform: translateY(-22px) translateX(-10px) rotate(8deg); }
  75%       { transform: translateY(14px) translateX(8px) rotate(-5deg); }
}
@keyframes wbFloat3 {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.9; }
  50%       { transform: translateY(-14px) scale(1.08); opacity: 1; }
}
@keyframes wbDrop1 {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  50%       { transform: translateY(-12px) rotate(5deg); }
}
@keyframes wbDrop2 {
  0%, 100% { transform: translateY(0) scale(1); }
  45%       { transform: translateY(-16px) scale(1.1); }
  80%       { transform: translateY(6px) scale(0.95); }
}


/* ──────────────────────────────────────────
   セクション背景カラー v4
   ────────────────────────────────────────── */

/* FREE EVENT — 明るいシアン水色 */
.lp-section--aqua {
  background:
    radial-gradient(ellipse at 10% 20%, rgba(100, 220, 255, 0.28) 0%, transparent 50%),
    radial-gradient(ellipse at 90% 80%, rgba(0, 180, 230, 0.22) 0%, transparent 50%),
    linear-gradient(160deg, #e0f8ff 0%, #c8f2ff 40%, #ddf6ff 70%, #e8faff 100%);
  position: relative;
  overflow: hidden;
}

/* TRIAL SECTION — 空色 */
.lp-section--sky {
  background:
    radial-gradient(ellipse at 85% 15%, rgba(30, 189, 245, 0.2) 0%, transparent 55%),
    radial-gradient(ellipse at 15% 85%, rgba(255, 228, 26, 0.1) 0%, transparent 45%),
    linear-gradient(180deg, #f0faff 0%, #e4f5ff 50%, #d8f0ff 100%);
  position: relative;
  overflow: hidden;
}

/* MERIT — グラデ水色（v3からさらに明るく） */
.lp-section--merit-v4 {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(0, 200, 255, 0.22) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 70%, rgba(30, 189, 245, 0.18) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(255, 228, 26, 0.07) 0%, transparent 60%),
    linear-gradient(160deg, #e0f5ff 0%, #cceeff 35%, #d8f3ff 65%, #e5f8ff 100%) !important;
  position: relative;
  overflow: hidden;
}
/* 既存のdot背景上書き */
.lp-section--merit-v4::before {
  background-image: radial-gradient(circle, rgba(0, 160, 224, 0.12) 1.5px, transparent 1.5px) !important;
  background-size: 28px 28px !important;
}

/* REASONS — 白地 + シアンアクセント */
.lp-section--reasons-v4 {
  background:
    radial-gradient(ellipse at 5% 50%, rgba(0, 160, 224, 0.12) 0%, transparent 40%),
    radial-gradient(ellipse at 95% 20%, rgba(30, 189, 245, 0.1) 0%, transparent 40%),
    linear-gradient(180deg, #f8fdff 0%, #eef9ff 60%, #f0fbff 100%);
  position: relative;
  overflow: hidden;
}

/* COURSES — 鮮やかシアン〜ブルー */
.lp-section--courses-v4 {
  background:
    radial-gradient(ellipse at 20% 80%, rgba(0, 140, 200, 0.35) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 20%, rgba(30, 189, 245, 0.3) 0%, transparent 50%),
    linear-gradient(135deg, #0099cc 0%, #00b4e0 30%, #1EBDF5 60%, #00a8d8 100%);
  position: relative;
  overflow: hidden;
}

/* COURSES — カード白地に変更 */
.lp-section--courses-v4 .lp-courses__card {
  background: #ffffff;
  border: none;
  box-shadow: 0 6px 24px rgba(0, 80, 140, 0.18);
}
.lp-section--courses-v4 .lp-courses__card-body {
  color: #02284d;
}
.lp-section--courses-v4 .lp-courses__card-body h3 {
  color: #0060a0;
}
.lp-section--courses-v4 .lp-courses__card-body .lp-courses__age {
  color: #1EBDF5;
}

/* FAQ — 淡い水色 */
.lp-section--faq-v4 {
  background:
    radial-gradient(ellipse at 10% 60%, rgba(0, 160, 224, 0.1) 0%, transparent 50%),
    radial-gradient(ellipse at 90% 40%, rgba(30, 189, 245, 0.08) 0%, transparent 45%),
    linear-gradient(180deg, #f0fbff 0%, #e8f8ff 50%, #edfaff 100%);
  position: relative;
  overflow: hidden;
}


/* ──────────────────────────────────────────
   セクション区切り装飾 — 波形SVG（疑似要素で自動付与）
   ────────────────────────────────────────── */
.lp-section--aqua,
.lp-section--sky,
.lp-section--merit-v4,
.lp-section--reasons-v4,
.lp-section--faq-v4 {
  /* 上下に若干余白 */
  padding-top: 4rem;
  padding-bottom: 4rem;
}


/* ──────────────────────────────────────────
   RIBBON カラーアップ
   ────────────────────────────────────────── */
.lp-camp-ribbon {
  background: linear-gradient(90deg, #00A0E0 0%, #1EBDF5 30%, #33d0ff 50%, #1EBDF5 70%, #00A0E0 100%) !important;
  box-shadow: 0 4px 20px rgba(0, 160, 224, 0.4) !important;
}


/* ──────────────────────────────────────────
   FINAL CTA — 鮮やかシアン + 水玉風
   ────────────────────────────────────────── */
.lp-cta {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 15% 50%, rgba(255, 255, 255, 0.18) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 30%, rgba(255, 228, 26, 0.14) 0%, transparent 40%),
    linear-gradient(135deg, #0080c0 0%, #00A0E0 30%, #1EBDF5 60%, #0099cc 100%) !important;
}
.lp-cta::before {
  content: '';
  position: absolute;
  width: 320px; height: 320px;
  top: -80px; left: -80px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.18), transparent 65%);
  pointer-events: none;
  animation: wbFloat1 10s ease-in-out infinite;
}
.lp-cta::after {
  content: '';
  position: absolute;
  width: 200px; height: 200px;
  bottom: -50px; right: -50px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, rgba(255, 228, 26, 0.2), transparent 60%);
  pointer-events: none;
  animation: wbFloat2 8s 1s ease-in-out infinite;
}


/* ──────────────────────────────────────────
   ボトムウェーブ先頭色を更新
   ────────────────────────────────────────── */
.lp-hero__v3-wave-bottom svg path {
  fill: #e0f8ff !important;
}


/* ──────────────────────────────────────────
   レスポンシブ — 水玉サイズ縮小
   ────────────────────────────────────────── */
@media (max-width: 768px) {
  .wb--hero-1 { width: 220px; height: 220px; }
  .wb--hero-2 { width: 160px; height: 160px; }
  .wb--hero-3 { width: 100px; height: 100px; }
  .wb--hero-7 { width: 130px; height: 130px; }
  .wb--hero-drop-1, .wb--hero-drop-2 { font-size: 1.8rem; }
  .wb--merit-1 { width: 240px; height: 240px; }
  .wb--sec-a1  { width: 180px; height: 180px; }
  .wb--sec-b1  { width: 200px; height: 200px; }
}


/* ================================================================
   v5 — HERO最明化・テキストパネル視認性改善・全セクション波＆水玉強化
   ================================================================ */

/* ── HERO v5: 写真を最大限クリアに ── */
.lp-hero--v4 .lp-hero__bg-photo {
  filter: brightness(1.0) saturate(1.15) !important;
}

/* オーバーレイを極限まで薄く（写真がくっきり見える） */
.lp-hero--v4 .lp-hero__bg-overlay {
  background: linear-gradient(
    135deg,
    rgba(0, 30, 80, 0.10) 0%,
    rgba(0, 80, 150, 0.06) 50%,
    rgba(0, 160, 224, 0.04) 100%
  ) !important;
}

/* テキストエリアに専用パネル背景（視認性確保） */
.lp-hero__v3-text {
  position: relative;
  z-index: 10;
  background: linear-gradient(
    135deg,
    rgba(0, 40, 120, 0.82) 0%,
    rgba(0, 80, 180, 0.75) 60%,
    rgba(0, 120, 210, 0.65) 100%
  ) !important;
  border-radius: 24px !important;
  padding: 32px 36px !important;
  border: 2px solid rgba(255, 255, 255, 0.35) !important;
  box-shadow:
    0 8px 40px rgba(0, 20, 80, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 0 0 1px rgba(255,255,255,0.08) !important;
  backdrop-filter: blur(4px) !important;
}

/* タイトルテキストのシャドウ強化（写真が明るくなるので） */
.lp-hero--v4 .lp-hero__v3-title-main {
  text-shadow:
    2px 2px 0 rgba(0, 20, 80, 0.9),
    0 4px 16px rgba(0, 0, 0, 0.6),
    0 0 40px rgba(0, 200, 255, 0.4) !important;
  background: linear-gradient(180deg, #fff 0%, #c0f0ff 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* 日付ブロックを不透明ガラス板に */
.lp-hero--v4 .lp-hero__date-block {
  background: rgba(255, 240, 20, 0.18) !important;
  border: 2.5px solid rgba(255, 230, 0, 0.8) !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: 0 4px 20px rgba(255, 200, 0, 0.3), inset 0 1px 0 rgba(255,255,255,0.4) !important;
}

/* 日付数字を黄色に */
.lp-hero__date-num-large {
  color: #FFE41A !important;
  text-shadow: 2px 2px 8px rgba(200, 100, 0, 0.5) !important;
}

/* 「申し込み」CTAボタン強化 */
.lp-btn--hero-v3 {
  background: linear-gradient(135deg, #FFE41A 0%, #ffcc00 50%, #ffb800 100%) !important;
  color: #02284d !important;
  font-weight: 900 !important;
  font-size: 1.4375rem !important;
  padding: 18px 36px !important;
  border-radius: 60px !important;
  box-shadow: 0 6px 24px rgba(255, 200, 0, 0.6), 0 2px 0 rgba(180, 120, 0, 0.4) !important;
  text-shadow: none !important;
  border: 3px solid rgba(255,255,255,0.8) !important;
}
.lp-btn--hero-v3:hover {
  transform: translateY(-4px) scale(1.04) !important;
  box-shadow: 0 12px 36px rgba(255, 200, 0, 0.7) !important;
}

/* ── HERO追加水玉（v5強化版） ── */
.wb--hero-9  { width: 180px; height: 180px; background: rgba(255,255,255,0.12); top: 15%; right: 6%; animation: wbFloat 9s ease-in-out infinite; border-radius: 50%; position: absolute; }
.wb--hero-10 { width: 60px;  height: 60px;  background: rgba(255,228,26,0.25); top: 60%; left: 5%;  animation: wbPulse 5s ease-in-out infinite 1s; border-radius: 50%; position: absolute; }
.wb--hero-11 { width: 90px;  height: 90px;  background: rgba(255,100,180,0.20); bottom: 20%; right: 12%; animation: wbWiggle 7s ease-in-out infinite 2s; border-radius: 50%; position: absolute; }
.wb--hero-12 { width: 40px;  height: 40px;  background: rgba(0,220,255,0.30); top: 40%; left: 48%; animation: wbFloat 6s ease-in-out infinite 0.5s; border-radius: 50%; position: absolute; }

/* ── セクション間の波形区切り（大型・カラフル） ── */
.lp-wave-divider {
  position: relative;
  height: 80px;
  overflow: hidden;
  margin: 0;
  padding: 0;
  line-height: 0;
}
.lp-wave-divider svg {
  display: block;
  width: 100%;
  height: 100%;
}
.lp-wave-divider--aqua-to-sky svg .wave-fill { fill: #d4f4ff; }
.lp-wave-divider--sky-to-white svg .wave-fill { fill: #fff; }
.lp-wave-divider--white-to-blue svg .wave-fill { fill: #e8f7ff; }
.lp-wave-divider--blue-to-light svg .wave-fill { fill: #f0fcff; }

/* ── 下層セクション用追加バブル ── */
.lp-bubbles--free-event .wb--fe-extra-1 { width:140px; height:140px; background:rgba(0,200,255,0.12); top:5%; right:2%; border-radius:50%; position:absolute; animation:wbFloat 11s ease-in-out infinite; }
.lp-bubbles--free-event .wb--fe-extra-2 { width:60px;  height:60px;  background:rgba(255,228,26,0.22); bottom:10%; left:3%; border-radius:50%; position:absolute; animation:wbPulse 7s ease-in-out infinite 2s; }
.lp-bubbles--free-event .wb--fe-extra-3 { width:90px;  height:90px;  background:rgba(255,100,180,0.15); top:35%; right:8%; border-radius:50%; position:absolute; animation:wbWiggle 9s ease-in-out infinite 1s; }
.lp-bubbles--free-event .wb--fe-extra-4 { width:50px;  height:50px;  background:rgba(100,255,200,0.20); bottom:25%; right:15%; border-radius:50%; position:absolute; animation:wbFloat 6s ease-in-out infinite 3s; }

.lp-bubbles--trial .wb--tr-1 { width:120px; height:120px; background:rgba(0,180,255,0.12); top:10%; left:2%;   border-radius:50%; position:absolute; animation:wbFloat 10s ease-in-out infinite; }
.lp-bubbles--trial .wb--tr-2 { width:70px;  height:70px;  background:rgba(255,228,26,0.18); bottom:8%;  right:3%;  border-radius:50%; position:absolute; animation:wbPulse 8s ease-in-out infinite 1s; }
.lp-bubbles--trial .wb--tr-3 { width:45px;  height:45px;  background:rgba(0,255,180,0.20); top:50%; right:6%;   border-radius:50%; position:absolute; animation:wbWiggle 7s ease-in-out infinite 2s; }
.lp-bubbles--trial .wb--tr-4 { width:30px;  height:30px;  background:rgba(255,100,200,0.22); top:70%; left:8%;  border-radius:50%; position:absolute; animation:wbFloat 5s ease-in-out infinite 0.5s; }

.lp-bubbles--merit-v5 .wb--mv5-1 { width:160px; height:160px; background:rgba(0,200,255,0.10); top:5%; right:1%;  border-radius:50%; position:absolute; animation:wbFloat 12s ease-in-out infinite; }
.lp-bubbles--merit-v5 .wb--mv5-2 { width:100px; height:100px; background:rgba(255,228,26,0.15); top:30%; left:2%; border-radius:50%; position:absolute; animation:wbPulse 9s ease-in-out infinite 3s; }
.lp-bubbles--merit-v5 .wb--mv5-3 { width:70px;  height:70px;  background:rgba(255,100,180,0.15); bottom:15%; right:5%; border-radius:50%; position:absolute; animation:wbWiggle 8s ease-in-out infinite 1s; }
.lp-bubbles--merit-v5 .wb--mv5-4 { width:50px;  height:50px;  background:rgba(100,255,220,0.20); bottom:30%; left:5%; border-radius:50%; position:absolute; animation:wbFloat 7s ease-in-out infinite 2s; }
.lp-bubbles--merit-v5 .wb--mv5-5 { width:35px;  height:35px;  background:rgba(200,100,255,0.15); top:55%; left:10%; border-radius:50%; position:absolute; animation:wbPulse 6s ease-in-out infinite 0.5s; }

.lp-bubbles--reasons-v5 .wb--rv5-1 { width:110px; height:110px; background:rgba(0,180,255,0.12); top:8%;  right:3%;  border-radius:50%; position:absolute; animation:wbFloat 10s ease-in-out infinite; }
.lp-bubbles--reasons-v5 .wb--rv5-2 { width:65px;  height:65px;  background:rgba(255,228,26,0.18); top:40%; left:2%;  border-radius:50%; position:absolute; animation:wbPulse 7s ease-in-out infinite 1s; }
.lp-bubbles--reasons-v5 .wb--rv5-3 { width:45px;  height:45px;  background:rgba(0,255,180,0.18); bottom:10%; right:8%; border-radius:50%; position:absolute; animation:wbWiggle 6s ease-in-out infinite 2s; }
.lp-bubbles--reasons-v5 .wb--rv5-4 { width:30px;  height:30px;  background:rgba(255,100,180,0.20); top:60%; right:15%; border-radius:50%; position:absolute; animation:wbFloat 5s ease-in-out infinite 1.5s; }

.lp-bubbles--courses-v5 .wb--cv5-1 { width:130px; height:130px; background:rgba(255,255,255,0.10); top:6%;  left:1%;  border-radius:50%; position:absolute; animation:wbFloat 11s ease-in-out infinite; }
.lp-bubbles--courses-v5 .wb--cv5-2 { width:80px;  height:80px;  background:rgba(255,228,26,0.20); bottom:8%; right:2%; border-radius:50%; position:absolute; animation:wbPulse 8s ease-in-out infinite 2s; }
.lp-bubbles--courses-v5 .wb--cv5-3 { width:55px;  height:55px;  background:rgba(100,255,220,0.18); top:45%; right:5%; border-radius:50%; position:absolute; animation:wbWiggle 7s ease-in-out infinite 1s; }

.lp-bubbles--faq-v5 .wb--fv5-1 { width:90px;  height:90px;  background:rgba(0,180,255,0.10); top:5%;  right:2%;  border-radius:50%; position:absolute; animation:wbFloat 9s ease-in-out infinite; }
.lp-bubbles--faq-v5 .wb--fv5-2 { width:55px;  height:55px;  background:rgba(255,228,26,0.15); bottom:10%; left:3%; border-radius:50%; position:absolute; animation:wbPulse 6s ease-in-out infinite 1s; }
.lp-bubbles--faq-v5 .wb--fv5-3 { width:40px;  height:40px;  background:rgba(255,100,180,0.18); top:50%; right:8%; border-radius:50%; position:absolute; animation:wbWiggle 5s ease-in-out infinite 2s; }

.lp-bubbles--cta-v5 .wb--ctav5-1 { width:150px; height:150px; background:rgba(255,255,255,0.12); top:10%; left:2%;  border-radius:50%; position:absolute; animation:wbFloat 10s ease-in-out infinite; }
.lp-bubbles--cta-v5 .wb--ctav5-2 { width:80px;  height:80px;  background:rgba(255,228,26,0.22); bottom:5%; right:3%; border-radius:50%; position:absolute; animation:wbPulse 7s ease-in-out infinite 2s; }
.lp-bubbles--cta-v5 .wb--ctav5-3 { width:50px;  height:50px;  background:rgba(100,255,220,0.20); top:50%; right:10%; border-radius:50%; position:absolute; animation:wbWiggle 6s ease-in-out infinite 1s; }

/* ── セクション背景グラデーション強化 ── */
.lp-free-event.lp-section--aqua {
  background:
    radial-gradient(circle at 10% 20%, rgba(0,200,255,0.18) 0%, transparent 50%),
    radial-gradient(circle at 90% 80%, rgba(255,228,26,0.12) 0%, transparent 50%),
    linear-gradient(160deg, #d0f7ff 0%, #b8f0ff 30%, #c8eeff 60%, #d4f4ff 100%) !important;
}

.lp-trial-section.lp-section--sky {
  background:
    radial-gradient(circle at 80% 20%, rgba(0,180,255,0.15) 0%, transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(255,100,180,0.10) 0%, transparent 50%),
    linear-gradient(155deg, #e8faff 0%, #d4f2ff 40%, #e0f8ff 70%, #f0fcff 100%) !important;
}

.lp-merit.lp-section--merit-v4 {
  background:
    radial-gradient(circle at 5% 30%, rgba(0,200,255,0.15) 0%, transparent 45%),
    radial-gradient(circle at 95% 70%, rgba(255,228,26,0.12) 0%, transparent 45%),
    radial-gradient(circle at 50% 100%, rgba(0,150,255,0.10) 0%, transparent 40%),
    linear-gradient(160deg, #e0f9ff 0%, #ccf0ff 25%, #d8eeff 50%, #e8f7ff 75%, #f0fcff 100%) !important;
}

.lp-reasons.lp-section--reasons-v4 {
  background:
    radial-gradient(circle at 15% 50%, rgba(0,180,255,0.12) 0%, transparent 50%),
    radial-gradient(circle at 85% 20%, rgba(100,255,220,0.10) 0%, transparent 40%),
    linear-gradient(165deg, #f0faff 0%, #e0f5ff 40%, #eafaff 70%, #f5fdff 100%) !important;
}

.lp-courses.lp-section--courses-v4 {
  background:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,0.15) 0%, transparent 40%),
    radial-gradient(circle at 90% 90%, rgba(255,228,26,0.15) 0%, transparent 40%),
    linear-gradient(145deg, #0077b6 0%, #0096c7 25%, #00b4d8 50%, #1EBDF5 75%, #0099cc 100%) !important;
}

.lp-faq.lp-section--faq-v4 {
  background:
    radial-gradient(circle at 5% 5%, rgba(0,180,255,0.15) 0%, transparent 50%),
    radial-gradient(circle at 95% 95%, rgba(255,228,26,0.10) 0%, transparent 50%),
    linear-gradient(160deg, #e8f9ff 0%, #d8f3ff 40%, #e4f8ff 70%, #f0fcff 100%) !important;
}

.lp-cta {
  background:
    radial-gradient(circle at 20% 50%, rgba(255,255,255,0.18) 0%, transparent 50%),
    radial-gradient(circle at 80% 50%, rgba(255,228,26,0.18) 0%, transparent 50%),
    linear-gradient(135deg, #0077b6 0%, #00b4d8 40%, #1EBDF5 70%, #0099cc 100%) !important;
}

/* ── 波形 SVG デコレーション（セクション上下） ── */
.lp-wave-top, .lp-wave-bottom {
  position: relative;
  height: 60px;
  overflow: hidden;
  line-height: 0;
  margin: 0;
  padding: 0;
}
.lp-wave-top  { margin-bottom: -2px; }
.lp-wave-bottom { margin-top: -2px; }
.lp-wave-top svg, .lp-wave-bottom svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* ── セクション内追加波装飾 ── */
.lp-section-wave-deco {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 80px;
  pointer-events: none;
  overflow: hidden;
  line-height: 0;
}
.lp-section-wave-deco svg {
  display: block;
  width: 110%;
  height: 100%;
  margin-left: -5%;
}

/* ── コース・施設画像のホバーエフェクト強化 ── */
.lp-courses__card:hover { transform: translateY(-12px) scale(1.02) !important; }
.lp-facility__item:hover { transform: translateY(-8px) scale(1.03) !important; }

/* ── 全セクション共通：位置relative確認 ── */
.lp-free-event, .lp-trial-section, .lp-merit,
.lp-reasons, .lp-courses, .lp-faq, .lp-cta {
  position: relative;
  overflow: hidden;
}

/* ── HERO背景グラデーション（フォールバック） ── */
.lp-hero--v4 {
  background: linear-gradient(160deg, #0077b6 0%, #0096c7 30%, #00b4d8 55%, #1EBDF5 80%, #48cae4 100%) !important;
}



/* ================================================================
   v7 — カラーパレット全面刷新
   ─────────────────────────────────────────────────────────────
   🌊 アクアブルー  #00B4D8  水・海・スイミング
   ☀️ ビタミンイエロー #FFD60A  元気・太陽・子ども
   🌸 コーラル      #FF6B6B  やわらか強調（赤の代替）
   🏊 ネイビー      #02284D  テキスト・深み
   ⬜ ホワイト      #FFFFFF  ベース
   ─────────────────────────────────────────────────────────────
   変更点:
   ✅ 赤(#FF3030)→コーラル(#FF6B6B) でやさしい印象に
   ✅ オレンジ(#FFA500)→黄色(#FFD60A) で水色と相性よく
   ✅ 薄水色(#87CEFA)→アクア(#00B4D8) で彩度アップ
   ✅ 背景を鮮やかなグラデーションに
   ✅ ヘッダー被りを padding-top 8.5rem で確実に回避
   ================================================================ */

/* ── CSS変数 ── */
.lp {
  --pop-coral:  #FF6B6B;   /* コーラルレッド（旧 #FF3030 → やさしく） */
  --pop-yellow: #FFD60A;   /* ビタミンイエロー（旧 #FFA500 → 水色と相性◎） */
  --pop-aqua:   #00B4D8;   /* アクアブルー（旧 #87CEFA → 彩度アップ） */
  --pop-navy:   #02284D;   /* ネイビー（テキスト） */
  --pop-white:  #FFFFFF;
  /* 後方互換 */
  --pop-red:    #FF6B6B;
  --pop-sky:    #00B4D8;
  --pop-dark:   #02284D;
}

/* ================================================================
   HERO セクション — v7
   ================================================================ */

/* ヘッダー被り完全回避: padding-top を 8.5rem に */
.lp-hero {
  padding-top: 8.5rem !important;
  min-height: 100dvh !important;
}
@media (max-width: 768px) {
  .lp-hero {
    padding-top: 7rem !important;
    min-height: 100svh !important;
  }
}

/* 背景グラデーション: アクアブルー基調 */
.lp-hero--v4 .lp-hero__bg-grad {
  background: linear-gradient(
    150deg,
    #00B4D8 0%,
    #0096c7 30%,
    #0077b6 60%,
    #023e8a 100%
  ) !important;
}

/* 背景写真を明るく */
.lp-hero--v4 .lp-hero__bg-photo,
.lp-hero--v4 .lp-hero__bg-img {
  filter: brightness(1.0) saturate(1.1) !important;
  opacity: 0.9 !important;
}

/* オーバーレイ: 薄く */
.lp-hero--v4 .lp-hero__bg-overlay {
  background: linear-gradient(
    160deg,
    rgba(0,30,80,0.08) 0%,
    rgba(0,70,140,0.05) 50%,
    rgba(0,180,216,0.10) 100%
  ) !important;
}

/* 斜めストライプ */
.lp-hero--v4 .lp-hero__bg-stripe {
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 50px,
    rgba(255,255,255,0.04) 50px,
    rgba(255,255,255,0.04) 51px
  ) !important;
}

/* 内部グリッド */
.lp-hero__v3-inner {
  flex: 1 !important;
  align-items: center !important;
  padding: 20px 40px !important;
}
@media (max-width: 900px) {
  .lp-hero__v3-inner {
    padding: 16px 20px !important;
    flex-direction: column !important;
    gap: 20px !important;
  }
}

/* テキストパネル: 白半透明 */
.lp-hero__v3-text {
  background: rgba(255, 255, 255, 0.93) !important;
  border-radius: 20px !important;
  padding: 28px 32px !important;
  border: 2.5px solid rgba(255, 255, 255, 0.98) !important;
  box-shadow:
    0 8px 40px rgba(0, 100, 180, 0.15),
    0 2px 8px rgba(0,0,0,0.06) !important;
  backdrop-filter: none !important;
  color: var(--pop-navy) !important;
}

/* スクール名リボン */
.lp-hero__org-ribbon {
  background: var(--pop-aqua) !important;
  color: #fff !important;
  border-color: #00d4f5 !important;
  font-weight: 700 !important;
}

/* 「参加費完全無料」バッジ */
.lp-hero__free-badge-text {
  background: linear-gradient(135deg, #FF6B6B, #ff8e8e) !important;
  color: #fff !important;
  font-weight: 900 !important;
}
.lp-hero__free-badge-star {
  color: #FF6B6B !important;
}

/* 特別開催サブタイトル */
.lp-hero__v3-title-sub {
  background: var(--pop-aqua) !important;
  color: #fff !important;
  font-weight: 900 !important;
}

/* 「無料体験会」メインタイトル */
.lp-hero--v4 .lp-hero__v3-title-main {
  background: linear-gradient(135deg, #00B4D8 0%, #0077b6 50%, #023e8a 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  text-shadow: none !important;
  font-size: clamp(3.22rem, 6.9vw, 5.75rem) !important;
  line-height: 1.1 !important;
}
@media (max-width: 900px) {
  .lp-hero--v4 .lp-hero__v3-title-main {
    font-size: 3.45rem !important;
  }
}
@media (max-width: 600px) {
  .lp-hero--v4 .lp-hero__v3-title-main {
    font-size: 2.8225rem !important;
  }
}

/* FREE TRIAL 英字 */
.lp-hero__v3-title-en {
  color: var(--pop-aqua) !important;
  letter-spacing: 0.2em !important;
  font-weight: 900 !important;
}

/* 日付ブロック */
.lp-hero--v4 .lp-hero__date-block {
  background: linear-gradient(135deg, #fffef0, #fff9c0) !important;
  border: 2.5px solid var(--pop-yellow) !important;
  box-shadow: 0 4px 16px rgba(255,214,10,0.30) !important;
  backdrop-filter: none !important;
}
.lp-hero__date-label {
  background: var(--pop-yellow) !important;
  color: var(--pop-navy) !important;
  font-weight: 900 !important;
}
.lp-hero__date-num-large {
  color: var(--pop-aqua) !important;
  text-shadow: none !important;
}
.lp-hero__date-dot  { color: var(--pop-navy) !important; }
.lp-hero__date-youbi { color: var(--pop-navy) !important; font-weight: 700 !important; }
.lp-hero__age-chip {
  background: var(--pop-aqua) !important;
  color: #fff !important;
  font-weight: 700 !important;
}

/* セッションピル */
.lp-hero--v4 .lp-hero__session-pill--1 {
  background: linear-gradient(135deg, #e8faff, #c8f0ff) !important;
  border: 2px solid var(--pop-aqua) !important;
  color: #005577 !important;
}
.lp-hero--v4 .lp-hero__session-pill--2 {
  background: linear-gradient(135deg, #fffde6, #fff8b0) !important;
  border: 2px solid var(--pop-yellow) !important;
  color: #6a4f00 !important;
}
.lp-hero__session-time { color: inherit !important; font-weight: 800 !important; }
.lp-hero__session-num  { color: inherit !important; }

/* 信頼バッジ */
.lp-hero--v4 .lp-hero__trust-badge--gold {
  background: linear-gradient(135deg, #fffde6, #fff5b0) !important;
  border-color: var(--pop-yellow) !important;
  color: #6a4f00 !important;
}
.lp-hero--v4 .lp-hero__trust-badge--blue {
  background: linear-gradient(135deg, #e8faff, #c8f0ff) !important;
  border-color: var(--pop-aqua) !important;
  color: #005577 !important;
}
.lp-hero--v4 .lp-hero__trust-badge--cyan {
  background: linear-gradient(135deg, #fff0f0, #ffd8d8) !important;
  border-color: var(--pop-coral) !important;
  color: #8a2020 !important;
}

/* CTAボタン（アクア→ネイビー） */
.lp-btn--hero-v3 {
  background: linear-gradient(135deg, #FFD60A 0%, #ffc300 100%) !important;
  color: var(--pop-navy) !important;
  font-weight: 900 !important;
  font-size: 1.38rem !important;
  padding: 18px 36px !important;
  border-radius: 60px !important;
  border: 3px solid rgba(255,255,255,0.7) !important;
  box-shadow: 0 6px 24px rgba(255,214,10,0.5), 0 2px 0 rgba(180,140,0,0.25) !important;
  text-shadow: none !important;
  letter-spacing: 0.05em !important;
}
.lp-btn--hero-v3:hover {
  transform: translateY(-4px) scale(1.04) !important;
  box-shadow: 0 12px 36px rgba(255,214,10,0.65) !important;
}

/* 締切ノート */
.lp-hero__v3-cta-note { color: #666 !important; }

/* 波（下部） */
.lp-hero__v3-wave-bottom svg path { fill: #fff !important; }

/* ── HERO 水玉 ── */
.wb--hero-1  { background: rgba(0,180,216,0.22) !important; }
.wb--hero-2  { background: rgba(255,214,10,0.25) !important; }
.wb--hero-3  { background: rgba(255,107,107,0.18) !important; }
.wb--hero-4  { background: rgba(255,255,255,0.30) !important; }
.wb--hero-5  { background: rgba(0,180,216,0.18) !important; }
.wb--hero-6  { background: rgba(255,214,10,0.20) !important; }
.wb--hero-7  { background: rgba(255,255,255,0.25) !important; }
.wb--hero-8  { background: rgba(0,180,216,0.20) !important; }
.wb--hero-9  { background: rgba(255,107,107,0.15) !important; }
.wb--hero-10 { background: rgba(255,214,10,0.18) !important; }
.wb--hero-11 { background: rgba(255,255,255,0.22) !important; }
.wb--hero-12 { background: rgba(0,180,216,0.18) !important; }

/* ================================================================
   リボン・CTAボタン 全体
   ================================================================ */
.lp-camp-ribbon {
  background: linear-gradient(135deg, #00B4D8 0%, #0096c7 50%, #FFD60A 100%) !important;
}

.lp-btn--hero-main {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
  border: none !important;
  box-shadow: 0 4px 18px rgba(255,214,10,0.45) !important;
}
.lp-btn--hero-main:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 28px rgba(255,214,10,0.6) !important;
}

.lp-btn--cta {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
  font-weight: 900 !important;
  box-shadow: 0 4px 16px rgba(255,214,10,0.5) !important;
}

/* ================================================================
   FREE EVENT セクション — v7
   ================================================================ */
.lp-free-event.lp-section--aqua {
  background:
    radial-gradient(ellipse at 0% 0%, rgba(0,180,216,0.35) 0%, transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(255,214,10,0.25) 0%, transparent 50%),
    linear-gradient(160deg, #e0f7fc 0%, #b2ebf2 30%, #e8f9ff 60%, #fffde7 100%) !important;
}
.lp-free-event__title-free { color: var(--pop-aqua) !important; }
.lp-free-event__date-badge {
  background: linear-gradient(135deg, #00B4D8, #0096c7) !important;
}
.lp-free-event__date-month,
.lp-free-event__date-day   { color: #fff !important; }
.lp-free-event__date-youbi { color: #fff !important; }
.lp-free-event__session-time {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
}
.lp-free-event__session-card--01 { border-color: var(--pop-aqua) !important; }
.lp-free-event__session-card--02 { border-color: var(--pop-yellow) !important; }
.lp-free-event__free-badge {
  background: linear-gradient(135deg, #00B4D8, #0096c7) !important;
  color: #fff !important;
}
.lp-free-event__free-badge em { color: #FFD60A !important; }
.lp-campaign__gift-num-label {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
}
.lp-campaign__bonus-banner {
  background: linear-gradient(135deg, #00B4D8 0%, #0096c7 100%) !important;
  border-color: #0096c7 !important;
}
.lp-campaign__urgency {
  background: linear-gradient(135deg, #FF6B6B, #ff8e8e) !important;
  color: #fff !important;
}

/* 水玉 */
.wb--sec-a1, .wb--fe-extra-1 { background: rgba(0,180,216,0.22) !important; }
.wb--sec-a2, .wb--fe-extra-2 { background: rgba(255,214,10,0.25) !important; }
.wb--sec-a3, .wb--fe-extra-3 { background: rgba(255,107,107,0.18) !important; }
.wb--sec-a4, .wb--fe-extra-4 { background: rgba(255,255,255,0.35) !important; }
.wb--sec-a5                   { background: rgba(0,180,216,0.15) !important; }

/* ================================================================
   TRIAL セクション — v7
   ================================================================ */
.lp-trial-section.lp-section--sky {
  background:
    radial-gradient(ellipse at 100% 0%, rgba(255,214,10,0.20) 0%, transparent 50%),
    radial-gradient(ellipse at 0% 100%, rgba(0,180,216,0.25) 0%, transparent 50%),
    linear-gradient(160deg, #f0fdff 0%, #d9f6fc 30%, #f8fcff 60%, #fffef0 100%) !important;
}
.lp-trial-section__head-tag {
  background: linear-gradient(135deg, #00B4D8, #0096c7) !important;
  color: #fff !important;
}
.lp-trial-section__title-cyan { color: var(--pop-aqua) !important; }
.lp-flow-step {
  background: linear-gradient(135deg, #00B4D8, #0096c7) !important;
  color: #fff !important;
}
.lp-trial-section__img-badge {
  background: linear-gradient(135deg, #00B4D8, #0096c7) !important;
  color: #fff !important;
}
.lp-trial-section__img-badge--free {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
}
.lp-btn--trial-free {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
  font-weight: 900 !important;
  box-shadow: 0 4px 16px rgba(255,214,10,0.40) !important;
}
.lp-trial-section__free-badge {
  background: linear-gradient(135deg, #e8faff, #c8f0ff) !important;
  border: 2px solid var(--pop-aqua) !important;
  color: #005577 !important;
}
.lp-trial-section__free-badge em { color: var(--pop-aqua) !important; }

/* WEB申込みエリア */
.lp-trial-section__cta-bottom--v3 {
  background: linear-gradient(135deg, #f0fdff, #e0f7fc) !important;
  border: 2.5px solid rgba(0,180,216,0.35) !important;
  box-shadow: 0 4px 24px rgba(0,180,216,0.12) !important;
}
.lp-cta-v3__heading { color: var(--pop-aqua) !important; }
.lp-cta-v3__tel-link { color: var(--pop-aqua) !important; }

/* 水玉 */
.wb--sec-b1, .wb--tr-1 { background: rgba(0,180,216,0.22) !important; }
.wb--sec-b2, .wb--tr-2 { background: rgba(255,214,10,0.20) !important; }
.wb--sec-b3, .wb--tr-3 { background: rgba(255,107,107,0.15) !important; }
.wb--sec-b4, .wb--tr-4 { background: rgba(255,255,255,0.30) !important; }

/* ================================================================
   MERIT セクション — v7
   ================================================================ */
.lp-merit.lp-section--merit-v4 {
  background:
    radial-gradient(ellipse at 5% 20%, rgba(0,180,216,0.20) 0%, transparent 45%),
    radial-gradient(ellipse at 95% 80%, rgba(255,214,10,0.20) 0%, transparent 45%),
    linear-gradient(160deg, #e0f7fc 0%, #f0fdff 40%, #fffde7 70%, #ffffff 100%) !important;
}
.lp-merit__title-blue   { color: var(--pop-aqua) !important; }
.lp-merit__title-orange { color: var(--pop-coral) !important; }
.lp-merit__catch-label  { color: var(--pop-yellow) !important; }
.lp-merit__stat-num     { color: var(--pop-aqua) !important; }
.lp-merit__bubble-ring {
  border-color: var(--pop-aqua) !important;
  background: linear-gradient(135deg, #e8faff, #c8f0ff) !important;
}
.lp-merit__benefit-card {
  border-top: 4px solid var(--pop-aqua) !important;
}
.lp-merit__benefit-card:nth-child(even) {
  border-top-color: var(--pop-yellow) !important;
}
.lp-merit__benefit-card h4 { color: var(--pop-navy) !important; }

.bubble--1, .bubble--2, .bubble--3, .bubble--4,
.bubble--5, .bubble--6, .bubble--7 {
  background: rgba(0,180,216,0.15) !important;
  border-color: rgba(0,180,216,0.30) !important;
}

/* 水玉 */
.wb--merit-1, .wb--mv5-1 { background: rgba(0,180,216,0.20) !important; }
.wb--merit-2, .wb--mv5-2 { background: rgba(255,214,10,0.22) !important; }
.wb--merit-3, .wb--mv5-3 { background: rgba(255,107,107,0.15) !important; }
.wb--merit-4, .wb--mv5-4 { background: rgba(255,255,255,0.28) !important; }
.wb--merit-5, .wb--mv5-5 { background: rgba(0,180,216,0.15) !important; }

/* ================================================================
   REASONS セクション — v7
   ================================================================ */
.lp-reasons.lp-section--reasons-v4 {
  background:
    radial-gradient(ellipse at 15% 50%, rgba(0,180,216,0.22) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 20%, rgba(255,214,10,0.18) 0%, transparent 45%),
    linear-gradient(160deg, #d9f6fc 0%, #e8f9ff 40%, #fffde7 70%, #ffffff 100%) !important;
}
.lp-sec-head__en { color: var(--pop-aqua) !important; }
.lp-reasons__num {
  background: linear-gradient(135deg, var(--pop-aqua), #0096c7) !important;
  color: #fff !important;
  box-shadow: 0 4px 16px rgba(0,180,216,0.40) !important;
}
.lp-reasons__item {
  border-left: 5px solid var(--pop-aqua) !important;
  background: linear-gradient(135deg, #f0fdff, #ffffff) !important;
}
.lp-reasons__item:hover {
  border-left-color: var(--pop-yellow) !important;
  background: linear-gradient(135deg, #fffef0, #ffffff) !important;
}
.lp-facility__item p strong { color: var(--pop-aqua) !important; }
.lp-facility__fig { border-bottom: 3px solid var(--pop-aqua) !important; }

/* 水玉 */
.wb--rea-1, .wb--rv5-1 { background: rgba(0,180,216,0.22) !important; }
.wb--rea-2, .wb--rv5-2 { background: rgba(255,214,10,0.20) !important; }
.wb--rea-3, .wb--rv5-3 { background: rgba(255,107,107,0.15) !important; }
.wb--rv5-4             { background: rgba(255,255,255,0.28) !important; }

/* ================================================================
   COURSES セクション — v7
   ================================================================ */
.lp-courses.lp-section--courses-v4 {
  background:
    radial-gradient(ellipse at 10% 15%, rgba(255,255,255,0.20) 0%, transparent 40%),
    radial-gradient(ellipse at 90% 85%, rgba(255,214,10,0.25) 0%, transparent 45%),
    linear-gradient(145deg, #00B4D8 0%, #0096c7 30%, #0077b6 60%, #023e8a 100%) !important;
}
.lp-courses__card {
  border: none !important;
  box-shadow: 0 4px 20px rgba(0,60,120,0.20) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
.lp-courses__card:hover {
  transform: translateY(-12px) scale(1.02) !important;
  box-shadow: 0 16px 40px rgba(0,60,120,0.32) !important;
}
.lp-courses__card-body { background: #fff !important; }
.lp-courses__card-body h3 { color: var(--pop-aqua) !important; }
.lp-courses__age {
  color: var(--pop-navy) !important;
  background: linear-gradient(135deg, #e8faff, #d0f0ff) !important;
}
.lp-sec-head--white .lp-sec-head__en  { color: rgba(255,255,255,0.70) !important; }
.lp-sec-head--white .lp-sec-head__ja  { color: #fff !important; }

/* 水玉（白系） */
.wb--crs-1, .wb--cv5-1 { background: rgba(255,255,255,0.18) !important; }
.wb--crs-2, .wb--cv5-2 { background: rgba(255,214,10,0.22) !important; }
.wb--crs-3, .wb--cv5-3 { background: rgba(255,255,255,0.14) !important; }
.wb--crs-4             { background: rgba(255,214,10,0.18) !important; }

/* ================================================================
   FAQ セクション — v7
   ================================================================ */
.lp-faq.lp-section--faq-v4 {
  background:
    radial-gradient(ellipse at 5% 5%, rgba(0,180,216,0.20) 0%, transparent 50%),
    radial-gradient(ellipse at 95% 95%, rgba(255,214,10,0.18) 0%, transparent 50%),
    linear-gradient(160deg, #e8f9ff 0%, #f0fdff 40%, #fffef0 70%, #ffffff 100%) !important;
}
.lp-faq__item {
  border-left: 4px solid var(--pop-aqua) !important;
  background: #ffffff !important;
}
.lp-faq__item:hover {
  border-left-color: var(--pop-yellow) !important;
  background: #fffef5 !important;
}
.lp-faq__item dt span {
  background: var(--pop-aqua) !important;
  color: #fff !important;
  font-weight: 900 !important;
}
.lp-faq__item dd span {
  background: var(--pop-yellow) !important;
  color: var(--pop-navy) !important;
  font-weight: 900 !important;
}

/* 水玉 */
.wb--faq-1, .wb--fv5-1 { background: rgba(0,180,216,0.20) !important; }
.wb--faq-2, .wb--fv5-2 { background: rgba(255,214,10,0.18) !important; }
.wb--faq-3, .wb--fv5-3 { background: rgba(255,107,107,0.15) !important; }

/* ================================================================
   ACCESS セクション — v7
   ================================================================ */
.lp-access {
  background: linear-gradient(160deg, #f0fdff 0%, #e8f9ff 50%, #fffde7 100%) !important;
}
.lp-access__info dt {
  color: var(--pop-aqua) !important;
  font-weight: 700 !important;
}
.lp-access__info a { color: var(--pop-coral) !important; }

/* ================================================================
   FINAL CTA セクション — v7
   ================================================================ */
.lp-cta {
  background:
    radial-gradient(ellipse at 15% 50%, rgba(255,255,255,0.20) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 50%, rgba(0,150,199,0.30) 0%, transparent 50%),
    linear-gradient(135deg, #FFD60A 0%, #ffc300 30%, #00B4D8 70%, #0096c7 100%) !important;
}
.lp-cta__title {
  color: var(--pop-navy) !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
}
.lp-cta__text { color: rgba(2,40,77,0.88) !important; }
.lp-btn--white {
  background: #fff !important;
  color: var(--pop-aqua) !important;
  border: 3px solid #fff !important;
  font-weight: 900 !important;
}
.lp-btn--white:hover {
  background: #fffde6 !important;
  color: var(--pop-navy) !important;
}
.lp-cta__tel a     { color: var(--pop-navy) !important; font-weight: 900 !important; }
.lp-cta__tel small { color: rgba(2,40,77,0.80) !important; }

/* 水玉 */
.wb--ctav5-1 { background: rgba(255,255,255,0.18) !important; }
.wb--ctav5-2 { background: rgba(2,40,77,0.15) !important; }
.wb--ctav5-3 { background: rgba(255,255,255,0.12) !important; }

/* ================================================================
   セクション見出し 統一 — v7
   ================================================================ */
.lp-sec-head__ja {
  color: var(--pop-navy) !important;
  border-bottom: 4px solid var(--pop-aqua) !important;
}
.lp-trial-section__title { color: var(--pop-navy) !important; }

/* 統計数字: アクアに変更 */
.lp-merit__stats {
  background: linear-gradient(135deg, #00B4D8 0%, #0096c7 50%, #0077b6 100%) !important;
}
.lp-merit__stat-num { color: #FFD60A !important; }

/* ================================================================
   波形区切り — v7
   ================================================================ */
.lp-hero__v3-wave-bottom svg path { fill: #ffffff !important; }
.lp-trial-section__wave-top   { background: none !important; }
.lp-trial-section__wave-bottom { background: none !important; }

/* ================================================================
   モバイル全体 — v7
   ================================================================ */
@media (max-width: 900px) {
  .lp-hero--v3.lp-hero--v4 {
    min-height: 100svh !important;
    height: auto !important;
    max-height: none !important;
  }
}


/* ================================================================
   v7.1 — 3箇所ピンポイント修正
   ① lp-cta 背景（黄→水色グラデが強すぎ）→ 落ち着いたアクア単色に
   ② lp-courses 背景（右側が暗いネイビー）→ 均一な明るい水色に
   ③ 安心安全テキスト（アクア背景で見えない）→ 白文字に統一
   ================================================================ */

/* ①「無料体験会に参加しませんか？」CTA背景 ─────────────────── */
/* 黄→水色の強いグラデを廃止 → 爽やかなアクアブルー単色 */
.lp-cta {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(255,255,255,0.25) 0%, transparent 45%),
    radial-gradient(ellipse at 80% 70%, rgba(0,100,180,0.20) 0%, transparent 45%),
    linear-gradient(160deg, #00c8e8 0%, #00B4D8 40%, #0096c7 70%, #0082b5 100%) !important;
}
/* CTA内テキストを白に統一 */
.lp-cta__title {
  color: #fff !important;
  text-shadow: 0 2px 10px rgba(0,40,80,0.25) !important;
}
.lp-cta__text { color: rgba(255,255,255,0.95) !important; }
.lp-cta__tel a { color: #fff !important; font-weight: 900 !important; }
.lp-cta__tel small { color: rgba(255,255,255,0.85) !important; }
/* CTAボタン: 白地＋アクア文字 */
.lp-btn--white {
  background: #fff !important;
  color: #0082b5 !important;
  border: 3px solid #fff !important;
  font-weight: 900 !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12) !important;
}
.lp-btn--white:hover {
  background: #fffde6 !important;
  color: var(--pop-navy) !important;
}
/* 申し込みボタン（黄色）のテキストも読みやすく */
.lp-cta .lp-btn--cta {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
  color: var(--pop-navy) !important;
  box-shadow: 0 4px 16px rgba(255,214,10,0.45) !important;
}

/* ② コース紹介 — 右側の暗さを解消 ──────────────────────────── */
/* 右端のネイビー(#023e8a)をやめ、左右均一な明るい水色に */
.lp-courses.lp-section--courses-v4 {
  background:
    radial-gradient(ellipse at 15% 20%, rgba(255,255,255,0.22) 0%, transparent 40%),
    radial-gradient(ellipse at 85% 80%, rgba(255,255,255,0.15) 0%, transparent 40%),
    radial-gradient(ellipse at 50% 50%, rgba(0,200,230,0.12) 0%, transparent 60%),
    linear-gradient(150deg, #0096c7 0%, #00B4D8 35%, #00cce0 65%, #0096c7 100%) !important;
}

/* ③「安心安全」テキスト — アクア背景で埋もれるのを解消 ─────── */
/* .lp-campaign__bonus-banner はアクアブルー背景 → 全テキストを白に */
.lp-campaign__bonus-banner {
  background: linear-gradient(135deg, #0096c7 0%, #00B4D8 50%, #00cce0 100%) !important;
  border-color: rgba(255,255,255,0.35) !important;
  box-shadow: 0 6px 24px rgba(0,100,180,0.20) !important;
}
/* 「安心安全」: 黄色で目立たせる */
.lp-campaign__bonus-title em {
  color: #FFD60A !important;
  font-style: normal !important;
  font-weight: 900 !important;
  text-shadow: 0 1px 4px rgba(0,0,0,0.15) !important;
}
/* 「のスクールで体験！」: 白 */
.lp-campaign__bonus-title {
  color: #fff !important;
  text-shadow: 0 1px 6px rgba(0,40,80,0.20) !important;
}
/* 説明文・注記も白 */
.lp-campaign__bonus-desc {
  color: rgba(255,255,255,0.92) !important;
}
.lp-campaign__bonus-note {
  color: rgba(255,255,255,0.72) !important;
}
/* 「40年以上の指導実績」ラベル */
.lp-campaign__bonus-limit {
  color: rgba(255,255,255,0.90) !important;
  background: rgba(255,255,255,0.15) !important;
  border-radius: 20px !important;
  padding: 2px 10px !important;
  font-size: 0.92rem !important;
}
.lp-campaign__bonus-limit em {
  color: #FFD60A !important;
  font-style: normal !important;
  font-weight: 700 !important;
}
/* 「ポイント！」バッジ */
.lp-campaign__bonus-badge {
  background: linear-gradient(135deg, #FFD60A, #ffc300) !important;
}
.lp-campaign__bonus-badge-txt {
  color: var(--pop-navy) !important;
  font-weight: 900 !important;
}


/* ================================================================
   v7.2 — ファーストビュー 背景を超高彩度・超明るく
   ▸ 暗いネイビー(#023e8a, #0077b6)を完全排除
   ▸ 左:シアン→中央:スカイブルー→右:ライトアクア の明るい水系グラデ
   ▸ 水玉も高彩度に
   ================================================================ */

/* ── HERO 背景グラデーション: 超明るいアクア系 ── */
.lp-hero--v4 .lp-hero__bg-grad {
  background: linear-gradient(
    135deg,
    #00d4f5 0%,
    #00c8e8 20%,
    #00B4D8 45%,
    #29d8f0 70%,
    #5de8ff 100%
  ) !important;
}

/* 背景写真: 最大輝度 */
.lp-hero--v4 .lp-hero__bg-photo,
.lp-hero--v4 .lp-hero__bg-img {
  filter: brightness(1.05) saturate(1.2) !important;
  opacity: 0.88 !important;
}

/* オーバーレイ: ほぼ透明に */
.lp-hero--v4 .lp-hero__bg-overlay {
  background: linear-gradient(
    160deg,
    rgba(0,200,240,0.05) 0%,
    rgba(0,180,216,0.03) 50%,
    rgba(100,230,255,0.06) 100%
  ) !important;
}

/* ── hero全体のmin-height: 100dvh確実に ── */
.lp-hero--v3.lp-hero--v4 {
  min-height: 100dvh !important;
  background: linear-gradient(
    135deg,
    #00d4f5 0%,
    #00c8e8 25%,
    #00B4D8 50%,
    #29d8f0 75%,
    #5de8ff 100%
  ) !important;
}

/* ── 水玉を高彩度・高輝度に ── */
/* HERO bubbles */
.wb--hero-1  { background: rgba(255,255,255,0.35) !important; width: 120px !important; height: 120px !important; }
.wb--hero-2  { background: rgba(255,214,10,0.40)  !important; width: 80px  !important; height: 80px  !important; }
.wb--hero-3  { background: rgba(255,255,255,0.28) !important; width: 60px  !important; height: 60px  !important; }
.wb--hero-4  { background: rgba(0,230,255,0.30)   !important; width: 200px !important; height: 200px !important; }
.wb--hero-5  { background: rgba(255,255,255,0.22) !important; width: 50px  !important; height: 50px  !important; }
.wb--hero-6  { background: rgba(255,214,10,0.30)  !important; width: 90px  !important; height: 90px  !important; }
.wb--hero-7  { background: rgba(255,255,255,0.32) !important; width: 70px  !important; height: 70px  !important; }
.wb--hero-8  { background: rgba(0,220,255,0.25)   !important; width: 150px !important; height: 150px !important; }
.wb--hero-9  { background: rgba(255,255,255,0.20) !important; }
.wb--hero-10 { background: rgba(255,214,10,0.22)  !important; }
.wb--hero-11 { background: rgba(255,255,255,0.28) !important; }
.wb--hero-12 { background: rgba(0,210,245,0.20)   !important; }

/* ── テキストパネルも明るい背景に合わせ調整 ── */
.lp-hero__v3-text {
  background: rgba(255, 255, 255, 0.95) !important;
  border: 2.5px solid rgba(255,255,255,1) !important;
  box-shadow:
    0 8px 40px rgba(0,150,200,0.20),
    0 2px 8px rgba(0,0,0,0.05) !important;
}

/* ── 「無料体験会」メインタイトル: より鮮やかなアクア ── */
.lp-hero--v4 .lp-hero__v3-title-main {
  background: linear-gradient(135deg, #0096c7 0%, #00B4D8 50%, #00c8e8 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* ── 日付ブロックをより明るく ── */
.lp-hero--v4 .lp-hero__date-block {
  background: linear-gradient(135deg, #fffef0, #fff9c0) !important;
  border: 2.5px solid #FFD60A !important;
  box-shadow: 0 4px 20px rgba(255,214,10,0.40) !important;
}

/* ── セッションピルをより鮮やかに ── */
.lp-hero--v4 .lp-hero__session-pill--1 {
  background: linear-gradient(135deg, #d0f7ff, #a8efff) !important;
  border: 2px solid #00B4D8 !important;
  color: #005577 !important;
  font-weight: 800 !important;
}
.lp-hero--v4 .lp-hero__session-pill--2 {
  background: linear-gradient(135deg, #fffce0, #fff5a0) !important;
  border: 2px solid #FFD60A !important;
  color: #6a4f00 !important;
  font-weight: 800 !important;
}

/* ── 画像右カラム背景も明るく ── */
.lp-hero__v3-right,
.lp-hero__right-col {
  background: transparent !important;
}
/* ダミー画像プレースホルダーを明るいアクアに */
.lp-hero .lp-placeholder {
  background: linear-gradient(135deg, #00c8e8 0%, #00B4D8 100%) !important;
  border: 2px dashed rgba(255,255,255,0.5) !important;
  opacity: 0.9 !important;
}



/* ============================================================
   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%;
  }
}


/* ============================================================
   FINAL DEPLOY PATCH — 相対パス前提 / FV・帯の最終トーン
============================================================ */
.lp-fv {
  position: relative;
  overflow: hidden;
  padding-top: calc(var(--header-height, 6.5rem) + 0.35rem);
  padding-bottom: 0;
  line-height: 0;
  isolation: isolate;
  background: #e9f7ff;
}
.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;
}
.lp-camp-ribbon {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.9rem 1rem;
  color: #ffffff !important;
  text-align: center;
  font-weight: 900;
  letter-spacing: 0.04em;
  background: linear-gradient(135deg, #0e77c9 0%, #17a8ea 42%, #44c7ff 68%, #ffd34f 100%) !important;
  box-shadow: 0 8px 24px rgba(14, 119, 201, 0.22) !important;
}
.lp-camp-ribbon::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.18), rgba(255,255,255,0));
  pointer-events: none;
}
.lp-camp-ribbon__text,
.lp-camp-ribbon__period,
.lp-camp-ribbon__petal {
  position: relative;
  z-index: 1;
}
.lp-camp-ribbon__text {
  font-size: clamp(1.15rem, 3.45vw, 1.6675rem);
  line-height: 1.3;
  text-shadow: 0 2px 8px rgba(0, 86, 143, 0.3);
}
.lp-camp-ribbon__period {
  background: rgba(255,255,255,0.18);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 999px;
  padding: 0.28rem 0.9rem;
  font-size: clamp(0.943rem, 2.3vw, 1.15rem);
  line-height: 1.2;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.16);
}
.lp-camp-ribbon__petal {
  font-size: 1rem;
  opacity: 0.95;
}
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);
  }
  .lp-fv__inner {
    padding: 0;
  }
  .lp-fv__visual {
    width: 100%;
    max-width: 375px;
  }
  .lp-camp-ribbon {
    gap: 0.45rem;
    padding: 0.78rem 0.75rem;
  }
  .lp-camp-ribbon__text {
    font-size: clamp(1.1205rem, 4.6vw, 1.3275rem);
  }
  .lp-camp-ribbon__period {
    font-size: 1.0055rem;
  }
}


/* ============================================================
   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 muryo section hierarchy
============================================================ */
.lp-merit__bubble-desc {
  font-size: 0.95rem !important;
  font-weight: 800 !important;
  line-height: 1.85;
  color: #013b6a;
}
.lp-merit__benefits-ttl {
  font-size: calc(clamp(1.265rem, 2.875vw, 1.61rem) + 1px) !important;
  font-weight: 950 !important;
  line-height: 1.4;
}
.lp-sec-head__ja,
.lp-trial-section__title,
.lp-free-event__title,
.lp-cta__title {
  font-size: calc(100% + 1px);
}
.lp-sec-head__ja,
.lp-trial-section__title,
.lp-free-event__title,
.lp-merit__title-top,
.lp-merit__title-blue,
.lp-merit__title-orange,
.lp-cta__title {
  font-weight: 950 !important;
}
.lp-merit__benefit-card p {
  font-size: calc(0.8625rem + 1px) !important;
  font-weight: 700 !important;
  line-height: 1.8;
  color: #34495e;
}
.lp-merit__benefit-card h4 {
  font-size: calc(1.035rem + 1px) !important;
  font-weight: 900 !important;
}
@media (max-width: 768px) {
  .lp-merit__bubble-desc {
    font-size: calc(0.95rem + 1px) !important;
    line-height: 1.9;
  }
  .lp-merit__benefits-ttl {
    font-size: clamp(1.45rem, 5.5vw, 1.85rem) !important;
  }
  .lp-sec-head__ja {
    font-size: calc(1.15em + 1px) !important;
    line-height: 1.45;
  }
  .lp-trial-section__title,
  .lp-free-event__title,
  .lp-cta__title {
    font-size: calc(1.08em + 1px) !important;
    line-height: 1.35;
  }
  .lp-merit__benefit-card h4 {
    font-size: calc(1rem + 1px) !important;
    line-height: 1.45;
  }
  .lp-merit__benefit-card p {
    font-size: calc(0.9rem + 1px) !important;
    line-height: 1.85;
  }
}


/* ============================================================
   MOBILE HEADING BOOST — 2026 muryo energetic headings
============================================================ */
@media (max-width: 768px) {
  .lp-free-event__title,
  .lp-free-event__title-free,
  .lp-trial-section__title,
  .lp-trial-section__card-title,
  .lp-sec-head__ja,
  .lp-merit__title-top,
  .lp-merit__title-blue,
  .lp-merit__title-orange,
  .lp-merit__benefits-ttl,
  .lp-merit__benefit-card h4,
  .lp-cta__title {
    font-weight: 950 !important;
    letter-spacing: 0.01em;
  }
  .lp-free-event__title {
    font-size: clamp(2.45rem, 9.5vw, 3.25rem) !important;
    line-height: 1.08;
    -webkit-text-stroke: 2px #fff;
  }
  .lp-free-event__title-free {
    font-size: clamp(2.55rem, 9.8vw, 3.35rem) !important;
    margin-right: 0.06em;
    -webkit-text-stroke: 2px #fff;
  }
  .lp-trial-section__title {
    font-size: clamp(2rem, 7.8vw, 2.7rem) !important;
    line-height: 1.18;
    -webkit-text-stroke: 1.2px rgba(255,255,255,0.7);
  }
  .lp-trial-section__card-title {
    font-size: clamp(1.35rem, 5.8vw, 1.8rem) !important;
    line-height: 1.3;
  }
  .lp-sec-head__ja {
    font-size: clamp(1.75rem, 6.8vw, 2.35rem) !important;
    line-height: 1.35;
  }
  .lp-merit__title-top {
    font-size: clamp(2rem, 7vw, 2.55rem) !important;
    line-height: 1.08;
    -webkit-text-stroke: 1.2px #fff;
  }
  .lp-merit__title-blue,
  .lp-merit__title-orange {
    font-size: clamp(2.65rem, 10.8vw, 3.45rem) !important;
    line-height: 1.02;
    -webkit-text-stroke: 2.3px #fff;
    text-shadow: 2px 3px 0 rgba(0,0,0,0.14), 0 4px 14px rgba(0,0,0,0.08);
  }
  .lp-merit__benefits-ttl {
    font-size: clamp(1.55rem, 5.8vw, 1.95rem) !important;
  }
  .lp-cta__title {
    font-size: clamp(1.95rem, 7vw, 2.6rem) !important;
    line-height: 1.25;
  }
}


/* ============================================================
   FINAL READABILITY PATCH — 2026 muryo merit + course text
============================================================ */
.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.5rem, 3.2vw, 1.95rem) !important;
  font-weight: 950 !important;
}
.lp-merit__benefit-card p {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
  line-height: 1.82;
  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__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-section--courses-v4 .lp-courses__lead {
  max-width: 760px;
  margin: 0.65rem auto 1.35rem;
  text-align: center;
  font-size: 1.06rem;
  font-weight: 800;
  line-height: 1.8;
  letter-spacing: 0.01em;
  color: rgba(255,255,255,0.94) !important;
}
.lp-section--courses-v4 .lp-courses__card {
  background: #ffffff !important;
}
.lp-section--courses-v4 .lp-courses__card-body {
  background: #ffffff !important;
  color: #14324d !important;
}
.lp-section--courses-v4 .lp-courses__card-body h3 {
  color: #00A0E0 !important;
  font-weight: 900 !important;
  letter-spacing: 0.01em;
}
.lp-section--courses-v4 .lp-courses__age {
  color: #02284d !important;
  font-weight: 800 !important;
}
.lp-section--courses-v4 .lp-courses__card p:not(.lp-courses__age) {
  font-size: 0.98rem !important;
  font-weight: 700 !important;
  line-height: 1.78 !important;
  color: #35506b !important;
}
@media (max-width: 768px) {
  .lp-section--courses-v4 .lp-courses__lead {
    font-size: 1.06rem !important;
    line-height: 1.82;
    margin: 0.55rem auto 1.2rem;
  }
  .lp-section--courses-v4 .lp-courses__card-body h3 {
    font-size: 1.24rem !important;
    line-height: 1.35;
  }
  .lp-section--courses-v4 .lp-courses__age {
    font-size: 0.95rem !important;
  }
  .lp-section--courses-v4 .lp-courses__card p:not(.lp-courses__age) {
    font-size: 1rem !important;
    line-height: 1.8 !important;
  }
}
