/* ============================================
   LUCHOUETTE V2 — LP Design System
   Target: 日本人ママ（35-45歳）親子留学検討層
   Design: Dusty Rose × Warm Gold × Honey Cream
   Image: 暖かいライフスタイル雑誌 × 頼れる先輩ママ感
   ============================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Colors */
  /* V11：ローズ系のまま「濃淡2段構え」にした版。
     v10が平板だったのは色相ではなく“濃い側が無かった”こと（#D4837A 一色＝淡いトーンのみ）。
     深いローズ(#7A4A52)を主色に据えると反転セクション（白抜き）が作れてコントラストが出る。
     LP準拠の #D4837A は --rose として残し、アイコン・マーカー側で連続性を保つ */
  --bg:          #FFFFFF;
  --bg-section:  #FDF5F5;
  --bg-warm:     #FBF3F0;
  --primary:     #7A4A52;
  --primary-dk:  #5E3A42;
  --primary-lt:  #EFDEDE;
  --rose:        #D4837A;
  --gold:        #B08344;
  --gold-lt:     #EBDCB4;
  --text:        #2E2024;
  --text-mid:    #5F4A4F;
  --text-lt:     #968287;
  --border:      #EADEE0;
  --white:       #FFFFFF;
  --cream:       #FBF7EF;

  /* Typography */
  --font-jp: 'Noto Sans JP', sans-serif;
  --font-en: 'Cormorant Garamond', serif;

  /* Radius */
  --r-sm:  10px;
  --r-md:  18px;
  --r-lg:  28px;
  --r-xl:  40px;
  --r-pill: 999px;

  /* Shadow */
  --shadow-sm: 0 1px 3px rgba(80,32,42,0.09), 0 1px 2px rgba(80,32,42,0.05);
  --shadow-md: 0 4px 16px rgba(80,32,42,0.11);
  --shadow-lg: 0 16px 48px rgba(80,32,42,0.16);
}

/* ---- Base ---- */
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-jp);
  background: var(--bg);
  color: var(--text);
  font-size: 17px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
img { max-width: 100%; display: block; }
.container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.sp-only { display: none; }

/* ---- Section Common ---- */
.section-label {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 12px;
  text-align: center;
}
.section-title {
  font-size: clamp(22px, 3.5vw, 34px);
  font-weight: 700;
  line-height: 1.55;
  color: var(--primary-dk);
  margin-bottom: 14px;
  text-align: center;
}
.section-sub {
  color: var(--text-mid);
  font-size: 16px;
  margin-bottom: 52px;
  line-height: 1.85;
  text-align: center;
}
.link-arrow {
  color: var(--primary);
  font-size: 14px;
  font-weight: 700;
  display: inline-block;
  margin-top: 12px;
  transition: gap 0.2s;
}
.link-arrow:hover { color: var(--primary-dk); }

/* ---- Buttons ---- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 15px 32px;
  border-radius: var(--r-pill);
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  transition: all 0.22s ease;
  border: 2px solid transparent;
  white-space: nowrap;
}
.btn--primary {
  background: var(--primary);
  color: var(--white);
  border-color: var(--primary);
}
.btn--primary:hover { background: var(--primary-dk); border-color: var(--primary-dk); }
.btn--outline {
  background: transparent;
  color: var(--primary);
  border-color: var(--primary);
}
.btn--outline:hover { background: var(--primary); color: var(--white); }
.btn--outline-rose {
  background: transparent;
  color: var(--primary);
  border-color: var(--primary-lt);
}
.btn--outline-rose:hover { background: var(--primary-lt); }
.btn--white {
  background: var(--white);
  color: var(--primary-dk);
  border-color: var(--white);
}
.btn--white:hover { background: var(--cream); }
.btn--sm { padding: 10px 22px; font-size: 14px; }

/* ============ HEADER ============ */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,251,244,0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
  transition: box-shadow 0.3s;
}
.header__inner {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 56px;
  max-width: 100%;
  padding: 0 32px;
}
.header__logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.header__logo-img {
  height: 36px;
  width: auto;
  display: block;
}
.header__nav {
  display: flex;
  gap: 0;
  margin-left: auto;
  flex-wrap: nowrap;
}
.header__nav a {
  font-size: 11.5px;
  color: var(--text-mid);
  font-weight: 500;
  transition: color 0.2s;
  white-space: nowrap;
  padding: 0 10px;
}
.header__nav a:hover { color: var(--primary); }
.header__btns {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.header__seminar {
  font-size: 13px;
  font-weight: 700;
  color: var(--gold);
  border: 1.5px solid var(--gold);
  padding: 7px 18px;
  border-radius: var(--r-pill);
  transition: all 0.2s;
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  line-height: 1.3;
}
.header__seminar:hover { background: var(--gold); color: var(--white); }
.header__seminar-sub {
  font-size: 9px;
  font-weight: 500;
  opacity: 0.8;
  letter-spacing: 0.03em;
}
.header__cta { padding: 10px 22px; font-size: 14px; }

/* ============ HERO ============ */
.hero { position: relative; }
.hero__img { width: 100%; height: auto; display: block; }
.hero__cta-btn {
  position: absolute;
  bottom: 28px;
  right: 28px;
  background: #E05A2B;
  color: var(--white);
  padding: 14px 24px;
  border-radius: var(--r-md);
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(224,90,43,0.4);
  transition: background 0.2s, transform 0.2s;
}
.hero__cta-btn:hover { background: #C04820; transform: translateY(-2px); }

/* ============ TRUST BAR ============ */
.trust-bar {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
}
.trust-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: nowrap;
}
.trust-bar__heading {
  font-size: 14px;
  font-weight: 700;
  color: var(--primary-dk);
  flex-shrink: 0;
  line-height: 1.4;
  white-space: nowrap;
}
.trust-bar__list {
  display: flex;
  gap: 20px;
  flex-wrap: nowrap;
}
.trust-bar__list li {
  font-size: 12px;
  color: var(--text-mid);
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
}
.trust-bar__list strong {
  color: var(--primary);
  font-size: 13px;
}

/* ============ TARGET ============ */
.target {
  padding: 88px 0;
  background: var(--bg);
}
.target__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.target__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 40px 32px;
  text-align: center;
  transition: box-shadow 0.25s, transform 0.25s;
}
.target__card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.target__card--primary {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.target__card--primary h3,
.target__card--primary p,
.target__card--primary .link-arrow { color: var(--white); }
.target__card--primary .link-arrow { opacity: 0.85; }
.target__img-wrap {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 20px;
  border: 3px solid var(--primary-lt);
}
.target__card--primary .target__img-wrap { border-color: rgba(255,255,255,0.4); }
.target__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.target__card h3 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 10px;
  line-height: 1.5;
}
.target__card p { font-size: 14px; line-height: 1.8; color: var(--text-mid); }
.target__card--primary p { color: rgba(255,255,255,0.88); }

/* ============ CAMPAIGN ============ */
.campaign {
  background: linear-gradient(135deg, #E8B4B0 0%, #F0D4A0 60%, #F5E8C0 100%);
  padding: 80px 0;
}
.campaign__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.campaign__badges {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
}
.badge {
  padding: 5px 14px;
  border-radius: var(--r-pill);
  font-size: 13px;
  font-weight: 700;
}
.badge--gold { background: var(--gold); color: var(--white); }
.badge--rose { background: var(--primary-dk); color: var(--white); }
.campaign__title {
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  color: var(--text);
  line-height: 1.45;
  margin-bottom: 16px;
}
.campaign__desc {
  font-size: 15px;
  color: var(--text-mid);
  margin-bottom: 28px;
  line-height: 1.8;
}
.campaign__desc strong { color: var(--primary-dk); }
.campaign__price-box {
  background: var(--white);
  border-radius: var(--r-md);
  padding: 24px 28px;
  margin-bottom: 28px;
  border: 1px solid var(--border);
}
.campaign__price-label { font-size: 12px; color: var(--text-lt); margin-bottom: 4px; }
.campaign__price-orig {
  font-size: 18px;
  color: var(--text-lt);
  text-decoration: line-through;
  margin-bottom: 4px;
}
.campaign__price-orig span { font-size: 14px; }
.campaign__price-arrow { font-size: 13px; color: var(--primary); font-weight: 700; margin: 6px 0; }
.campaign__price-new {
  font-size: 32px;
  font-weight: 700;
  color: var(--primary-dk);
}
.campaign__price-new span { font-size: 17px; }
.campaign__note { font-size: 12px; color: var(--text-lt); margin-top: 14px; }
.campaign__img-wrap {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
}
.campaign__img-wrap img { width: 100%; border-radius: var(--r-lg); }
.campaign__discount-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  background: var(--primary);
  color: var(--white);
  width: 72px;
  height: 72px;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.2;
  box-shadow: 0 4px 16px rgba(192,122,133,0.4);
}
.campaign__discount-badge small { font-size: 12px; }
.campaign__features {
  background: var(--white);
  border-radius: var(--r-md);
  padding: 22px 24px;
  margin-top: 16px;
  border: 1px solid var(--border);
}
.campaign__features h3 { font-size: 15px; font-weight: 700; margin-bottom: 12px; color: var(--primary-dk); }
.campaign__features li { font-size: 14px; padding: 6px 0; border-bottom: 1px solid var(--border); color: var(--text-mid); }
.campaign__features li:last-child { border-bottom: none; }

/* ============ WHY MALAYSIA ============ */
.whymy {
  background: var(--bg-section);
  padding: 80px 0;
}
.whymy__grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  margin-top: 48px;
}
.whymy__item {
  background: var(--white);
  border-radius: var(--r-lg);
  overflow: hidden;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--border);
}
.whymy__img {
  width: 100%;
  height: 140px;
  overflow: hidden;
  flex-shrink: 0;
  margin-bottom: 8px;
}
.whymy__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.whymy__num { padding-inline: 16px; }
.whymy__label { padding-inline: 16px; }
.whymy__desc { padding: 0 16px 20px; }
.whymy__num {
  font-size: 24px;
  font-weight: 800;
  color: var(--primary);
  line-height: 1.2;
}
.whymy__label {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.4;
}
.whymy__desc {
  font-size: 13.5px;
  color: var(--text-mid);
  line-height: 1.7;
  margin-top: 8px;
  text-align: left;
}
@media (max-width: 1024px) {
  .whymy__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 640px) {
  .whymy__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .whymy__grid .whymy__item:last-child {
    grid-column: 1 / -1;
  }
}

/* ============ LIFESTYLE ============ */
.lifestyle {
  background: var(--text);
  color: var(--white);
}
.lifestyle__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
}
.lifestyle__img-wrap {
  overflow: hidden;
}
.lifestyle__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lifestyle__body {
  padding: 60px 56px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 24px;
}
.lifestyle__body .section-label {
  color: var(--primary-lt);
  margin-bottom: 0;
}
.lifestyle__title {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--white);
}
.lifestyle__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lifestyle__list li {
  padding-left: 20px;
  position: relative;
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,0.88);
}
.lifestyle__list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--primary-lt);
  font-weight: 700;
}
@media (max-width: 768px) {
  .lifestyle__inner {
    grid-template-columns: 1fr;
  }
  .lifestyle__img-wrap {
    height: 240px;
  }
  .lifestyle__body {
    padding: 40px 24px;
  }
}

/* ============ VALUE ============ */
.value {
  padding: 88px 0;
  background: var(--bg-section);
}
.value__list {
  display: flex;
  flex-direction: column;
  gap: 72px;
}
.value__row {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 64px;
  align-items: center;
}
.value__row--rev {
  grid-template-columns: 1fr 320px;
}
.value__row--rev .value__visual { order: 2; }
.value__row--rev .value__body  { order: 1; }
.value__visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.value__num {
  font-family: var(--font-en);
  font-size: 56px;
  font-weight: 600;
  color: var(--primary-lt);
  line-height: 1;
  letter-spacing: 0.05em;
}
.value__img-wrap {
  width: 100%;
  aspect-ratio: 1;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 3px solid var(--primary-lt);
}
.value__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.value__body h3 {
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 700;
  color: var(--primary-dk);
  margin-bottom: 14px;
  line-height: 1.4;
}
.value__lead {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-mid);
  margin-bottom: 16px;
  line-height: 1.7;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.value__body p:last-child { font-size: 16px; color: var(--text-mid); line-height: 1.9; }

/* ============ PLANS ============ */
.plans {
  padding: 88px 0;
  background: var(--bg);
}
.plans__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 24px;
  align-items: start;
}
.plan__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 36px 28px;
  position: relative;
}
.plan__card--featured {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.plan__badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gold);
  color: var(--white);
  padding: 5px 18px;
  border-radius: var(--r-pill);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.plan__img-wrap {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 18px;
  border: 3px solid rgba(255,255,255,0.3);
}
.plan__card:not(.plan__card--featured) .plan__img-wrap { border-color: var(--primary-lt); }
.plan__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.plan__card h3 {
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 8px;
  color: var(--white);
}
.plan__card:not(.plan__card--featured) h3 { color: var(--primary-dk); }
.plan__target {
  font-size: 14px;
  text-align: center;
  opacity: 0.8;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.25);
}
.plan__card:not(.plan__card--featured) .plan__target {
  color: var(--text-mid);
  border-color: var(--border);
}
.plan__list { margin-bottom: 28px; }
.plan__list li {
  font-size: 15px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  opacity: 0.92;
}
.plan__card:not(.plan__card--featured) .plan__list li {
  color: var(--text-mid);
  border-color: var(--border);
}
.plan__card .btn { width: 100%; }
.plan__card:not(.plan__card--featured) .btn--outline { color: var(--primary); border-color: var(--primary); }

/* ============ FLOW ============ */
.flow {
  padding: 88px 0;
  background: var(--bg-warm);
}
.flow__steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  margin-bottom: 48px;
  align-items: start;
}
.flow__step {
  text-align: center;
  padding: 28px 16px;
  position: relative;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  margin: 0 4px;
}
.flow__img-wrap {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  margin: 0 auto 14px;
  border: 3px solid var(--primary-lt);
}
.flow__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.flow__arrow {
  position: absolute;
  right: -18px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--primary-lt);
  font-size: 20px;
  z-index: 1;
  font-weight: 700;
}
.flow__step:last-child .flow__arrow { display: none; }
.flow__step h3 {
  font-size: 14px;
  font-weight: 700;
  color: var(--primary-dk);
  margin-bottom: 8px;
}
.flow__step p { font-size: 12px; color: var(--text-mid); line-height: 1.7; }
.flow__cta { text-align: center; }

/* ============ RESULTS ============ */
.results {
  padding: 88px 0;
  background: var(--bg);
}
.results__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 56px;
}
.results__stat {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 40px 24px;
  text-align: center;
}
.results__num {
  font-family: var(--font-en);
  font-size: 52px;
  font-weight: 600;
  color: var(--primary);
  line-height: 1;
  margin-bottom: 8px;
}
.results__unit { font-size: 20px; }
.results__label { font-size: 14px; color: var(--text-mid); }
.voice__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.voice {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 28px;
  display: flex;
  gap: 18px;
  align-items: flex-start;
  transition: box-shadow 0.25s;
}
.voice:hover { box-shadow: var(--shadow-sm); }
.voice__img-wrap {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  border: 2px solid var(--primary-lt);
}
.voice__img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.voice__text { font-size: 15.5px; color: var(--text-mid); line-height: 1.85; margin-bottom: 10px; }
.voice__attr { font-size: 13px; color: var(--text-mid); }

/* ============ FAQ ============ */
.faq {
  padding: 88px 0;
  background: var(--bg-section);
  text-align: center;
}
.faq .section-title,
.faq .section-label,
.faq .section-sub { text-align: center; }
.faq__list {
  max-width: 720px;
  margin: 0 auto 32px;
  text-align: left;
}
.faq__item {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  margin-bottom: 12px;
  overflow: hidden;
  transition: box-shadow 0.2s;
}
.faq__item[open] { box-shadow: var(--shadow-sm); }
.faq__q {
  padding: 20px 24px;
  font-size: 15px;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  transition: background 0.2s;
}
.faq__q:hover { background: var(--bg-section); }
.faq__q::-webkit-details-marker { display: none; }
.faq__icon { color: var(--gold); font-size: 20px; flex-shrink: 0; }
.faq__item[open] .faq__icon { transform: rotate(45deg); }
.faq__a {
  padding: 0 24px 24px;
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.9;
  border-top: 1px solid var(--border);
  padding-top: 18px;
}
.faq__more { font-size: 14px; color: var(--text-mid); margin-bottom: 24px; }

/* ============ SCHOOLS ============ */
.schools {
  padding: 88px 0;
  background: var(--bg);
}
.schools__tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 36px;
  flex-wrap: wrap;
}
.schools__tab {
  padding: 10px 24px;
  border-radius: var(--r-pill);
  font-size: 14px;
  font-weight: 700;
  border: 2px solid var(--border);
  background: var(--white);
  color: var(--text-mid);
  cursor: pointer;
  transition: all 0.2s;
}
.schools__tab.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.schools__panel { display: none; }
.schools__panel.is-active { display: block; }
.schools__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-bottom: 28px;
}
.school__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: box-shadow 0.25s, transform 0.25s;
}
.school__card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.school__card img { width: 100%; height: 140px; object-fit: cover; }
.school__info { padding: 14px 16px; }
.school__info h3 { font-size: 14px; font-weight: 700; margin-bottom: 4px; color: var(--text); }
.school__info p { font-size: 13px; color: var(--text-lt); }
/* 学校サブタブ */
.schools__sub-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.schools__sub-tab {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-pill);
  padding: 6px 18px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-mid);
  cursor: pointer;
  transition: all 0.2s;
}
.schools__sub-tab.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.schools__sub-panel { display: none; }
.schools__sub-panel.is-active { display: block; }

/* スライダー */
.schools__slider {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 12px;
  scrollbar-width: none;
}
.schools__slider::-webkit-scrollbar { display: none; }

/* コンパクトカード */
.school__card--sm {
  flex: 0 0 200px;
  scroll-snap-align: start;
  background: var(--white);
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  padding: 0;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  overflow: hidden;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.school__card-img {
  width: 100%;
  height: 120px;
  overflow: hidden;
  flex-shrink: 0;
}
.school__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.school__card--sm .school__name,
.school__card--sm .school__meta {
  padding-inline: 14px;
}
.school__card--sm .school__name { padding-top: 12px; }
.school__card--sm .school__meta { padding-bottom: 14px; }
.school__card--sm:hover {
  border-color: var(--primary-lt);
  box-shadow: var(--shadow-md);
}
.school__card--sm .school__name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.4;
}
.school__card--sm .school__meta {
  font-size: 11px;
  color: var(--text-lt);
}
.school__card--feature {
  border-color: var(--primary-lt);
  background: linear-gradient(135deg, #fff9f7 0%, #fff 100%);
}
.school__card--feature .school__name { color: var(--primary-dk); }

.schools__links {
  background: var(--bg-section);
  border-radius: var(--r-md);
  padding: 22px 28px;
  margin-bottom: 36px;
}
.schools__links p { font-size: 14px; color: var(--text-mid); font-weight: 700; margin-bottom: 12px; }
.schools__links ul { display: flex; flex-wrap: wrap; gap: 8px; }
.schools__links li a {
  font-size: 13px;
  color: var(--primary);
  padding: 5px 14px;
  border: 1px solid var(--primary-lt);
  border-radius: var(--r-pill);
  background: var(--white);
  transition: background 0.2s;
  display: inline-block;
}
.schools__links li a:hover { background: var(--primary-lt); }
.schools { text-align: initial; }
.schools > .container > .btn { display: block; width: fit-content; margin: 0 auto; }

/* ============ ARTICLES ============ */
.articles {
  padding: 88px 0;
  background: var(--bg-section);
  text-align: center;
}
.articles .section-title, .articles .section-label, .articles .section-sub { text-align: center; }
.articles__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 40px;
  text-align: left;
}
.article__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: box-shadow 0.25s, transform 0.25s;
}
.article__card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.article__card img { width: 100%; height: 160px; object-fit: cover; }
.article__body { padding: 16px; }
.article__tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  color: var(--primary);
  background: var(--bg-warm);
  padding: 3px 10px;
  border-radius: var(--r-pill);
  margin-bottom: 8px;
}
.article__card h3 {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--text);
}

/* ============ SEMINAR ============ */
.seminar {
  padding: 88px 0;
  background: var(--text);
}
.seminar .section-title,
.seminar .section-label,
.seminar .section-sub { text-align: center; }
.seminar .section-label { color: var(--gold); }
.seminar .section-title { color: var(--white); }
.seminar .section-sub { color: rgba(255,255,255,0.6); }

/* 2ボックス */
.seminar__two { display: none; }
.seminar__wide-box {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--r-md);
  padding: 24px 32px;
  margin-bottom: 20px;
}
.seminar__wide-top {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
.seminar__wide-box--primary {
  background: var(--primary);
  border-color: var(--primary);
}
.seminar__wide-body { flex: 1; }
.seminar__wide-action {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  min-width: 220px;
}
@media (max-width: 640px) {
  .seminar__wide-box { padding: 20px 16px; }
  .seminar__wide-top { flex-direction: column; gap: 20px; }
  .seminar__wide-action { width: 100%; }
}
.seminar__box {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--r-md);
  padding: 32px 28px;
}
.seminar__box--primary {
  background: var(--primary);
  border-color: var(--primary);
}
.seminar__box-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.9);
  padding: 3px 10px;
  border-radius: var(--r-pill);
  margin-bottom: 14px;
}
.seminar__box-tag--primary { background: rgba(255,255,255,0.25); }
.seminar__box-title {
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: 700;
  color: var(--white);
  line-height: 1.45;
  margin-bottom: 20px;
}
.seminar__points {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 16px;
  margin-bottom: 0;
}
.seminar__points li {
  font-size: 14px;
  color: rgba(255,255,255,0.85);
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.seminar__points li::before {
  content: "✓";
  color: var(--gold);
  font-weight: 700;
  flex-shrink: 0;
}
.seminar__box--primary .seminar__points li::before { color: rgba(255,255,255,0.9); }
.seminar__note { font-size: 12px; color: rgba(255,255,255,0.5); text-align: center; margin-top: 12px; }
.btn--gold-v2 {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--gold);
  color: var(--white);
  padding: 15px 24px;
  border-radius: var(--r-pill);
  font-weight: 700;
  font-size: 15px;
  transition: background 0.22s;
}
.btn--gold-v2:hover { background: #a87a2e; }

/* 日程グリッド */
.seminar__schedule { margin-top: 24px; margin-bottom: 0; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.12); }
.seminar__schedule-label {
  font-size: 13px;
  font-weight: 700;
  color: rgba(255,255,255,0.6);
  margin-bottom: 14px;
  letter-spacing: 0.05em;
}
.seminar__dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.seminar__date-item {
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--r-sm);
  padding: 14px 16px;
  transition: background 0.2s;
}
.seminar__date-item:hover { background: rgba(255,255,255,0.12); }
.seminar__date-cal {
  background: var(--primary);
  color: var(--white);
  border-radius: 8px;
  padding: 8px 12px;
  text-align: center;
  min-width: 52px;
  flex-shrink: 0;
}
.seminar__date-month { font-size: 11px; display: block; }
.seminar__date-day { font-size: 26px; font-weight: 700; line-height: 1; display: block; }
.seminar__date-dow { font-size: 11px; display: block; margin-top: 1px; }
.seminar__date-info { flex: 1; }
.seminar__date-time { font-size: 11px; color: rgba(255,255,255,0.5); margin-bottom: 3px; }
.seminar__date-title { font-size: 13px; font-weight: 700; color: rgba(255,255,255,0.85); line-height: 1.4; }
.seminar__date-btn { font-size: 12px; color: var(--gold); font-weight: 700; white-space: nowrap; flex-shrink: 0; }

/* ============ COST TABLE ============ */
.costtable {
  padding: 88px 0;
  background: var(--bg);
}
.costtable .section-label,
.costtable .section-title,
.costtable .section-sub { text-align: center; }
.costtable__wrap {
  overflow-x: auto;
  margin-bottom: 16px;
  border-radius: var(--r-md);
  box-shadow: var(--shadow-sm);
}
.howtocost .costtable__wrap { margin-top: 0; }
.howtocost .costtable__note { margin-bottom: 48px; }
.costtable__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  background: var(--white);
  table-layout: fixed;
}
.costtable__table th:first-child,
.costtable__table td:first-child { width: 18%; }
.costtable__table th:not(:first-child),
.costtable__table td:not(:first-child) { width: 27.3%; }
.costtable__table thead tr { background: var(--text); }
.costtable__table thead th {
  padding: 14px 16px;
  color: var(--white);
  font-weight: 700;
  text-align: center;
  font-size: 13px;
}
.costtable__table thead th:first-child { text-align: left; }
.costtable__table tbody tr:nth-child(even) { background: var(--bg-section); }
.costtable__table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  text-align: center;
  color: var(--text);
}
.costtable__table tbody td:first-child { text-align: left; font-weight: 500; color: var(--text-mid); }
.costtable__total td {
  background: var(--bg-warm) !important;
  font-weight: 700;
  color: var(--primary-dk) !important;
  font-size: 15px;
}
.costtable__note { font-size: 12px; color: var(--text-lt); text-align: center; margin-bottom: 32px; }
.costtable__cta { text-align: center; }

/* ============ CAMPAIGN ============ */
.campaign {
  padding: 60px 0;
  background: var(--bg-section);
}
.campaign .section-label,
.campaign .section-title { text-align: center; }
.campaign__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-top: 32px;
}
.campaign__card {
  display: grid;
  grid-template-columns: 220px 1fr auto;
  background: var(--white);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border-left: 4px solid var(--gold);
}
.campaign__thumb {
  grid-column: 1;
  grid-row: 1;
  overflow: hidden;
}
.campaign__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.campaign__body { padding: 24px 28px; }
.campaign__limit {
  display: inline-block;
  background: var(--gold);
  color: var(--white);
  font-size: 12px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: var(--r-pill);
  margin-bottom: 10px;
}
.campaign__title { font-size: 20px; font-weight: 700; color: var(--text); margin-bottom: 8px; line-height: 1.4; }
.campaign__title em { font-style: normal; color: var(--primary); }
.campaign__desc { font-size: 13px; color: var(--text-mid); line-height: 1.7; margin-bottom: 12px; }
.campaign__points {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px 16px;
  margin-bottom: 16px;
}
.campaign__points li {
  font-size: 13px;
  color: var(--text);
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.campaign__points li::before { content: "✓"; color: var(--gold); font-weight: 700; flex-shrink: 0; }
.campaign__caution { font-size: 11px; color: var(--text-lt); margin-bottom: 14px; line-height: 1.5; }
.campaign__price-box {
  background: var(--text);
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  text-align: center;
}
.campaign__price-label { font-size: 11px; color: rgba(255,255,255,0.55); }
.campaign__price-orig { font-size: 16px; color: rgba(255,255,255,0.35); text-decoration: line-through; margin-bottom: 4px; }
.campaign__badge { background: var(--gold); color: var(--white); font-size: 12px; font-weight: 700; padding: 3px 12px; border-radius: var(--r-pill); margin: 4px 0 6px; }
.campaign__price-main { font-size: 34px; font-weight: 700; color: var(--gold); line-height: 1.1; }
.campaign__price-note { font-size: 11px; color: rgba(255,255,255,0.45); margin-top: 4px; }
@media (max-width: 640px) {
  .campaign__card { grid-template-columns: 1fr; border-left: none; border-top: 4px solid var(--gold); }
  .campaign__thumb { grid-column: 1; height: 160px; }
  .campaign__price-box { grid-column: 1; }
}
@media (min-width: 641px) {
  .campaign__price-box { min-width: 180px; }
}

/* ============ PICKUP ============ */
.pickup { padding: 64px 0; background: var(--bg-section); }
.pickup__slider {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  margin-top: 40px;
  padding-bottom: 8px;
}
.pickup__slider::-webkit-scrollbar { display: none; }
.pickup__hint {
  text-align: center;
  font-size: 13px;
  color: var(--text-lt);
  margin-top: 16px;
  letter-spacing: 0.08em;
}
.pickup__item {
  flex: 0 0 320px;
  scroll-snap-align: start;
  border-radius: var(--r-lg);
  overflow: hidden;
  display: block;
  transition: opacity 0.2s, transform 0.2s;
}
.pickup__item:hover { opacity: 0.88; transform: translateY(-2px); }
.pickup__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 640px) {
  .pickup__item { flex: 0 0 280px; }
}

/* ============ FINAL CTA ============ */
.cta-section {
  padding: 88px 0;
  background: var(--bg-section);
  text-align: center;
}
.cta-section .section-title,
.cta-section .section-label,
.cta-section .section-sub { text-align: center; }
.cta__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 20px;
  margin-bottom: 36px;
  text-align: left;
}
.cta__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 32px 28px;
}
.cta__card--primary {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--white);
}
.cta__card h3 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 8px;
  line-height: 1.5;
}
.cta__card--primary h3 { color: var(--white); }
.cta__card:not(.cta__card--primary) h3 { color: var(--primary-dk); }
.cta__card p { font-size: 14.5px; color: var(--text-mid); margin-bottom: 20px; line-height: 1.7; }
.cta__card--primary p { color: rgba(255,255,255,0.82); }
.cta__card .btn { width: 100%; }
.cta__note { font-size: 14px; color: var(--text-mid); margin-bottom: 20px; }
.cta__hours {
  display: inline-flex;
  gap: 48px;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 20px 36px;
  font-size: 14px;
  color: var(--text-mid);
  line-height: 1.9;
  text-align: left;
}
.cta__hours strong { color: var(--primary-dk); }

/* ============ COMPANY ============ */
.company {
  padding: 72px 0;
  background: var(--bg-warm);
  border-top: 1px solid var(--border);
}
.company__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.company__col h2 {
  font-size: 16px;
  font-weight: 700;
  color: var(--primary-dk);
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--primary-lt);
}
.company__map {
  background: var(--bg-section);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 28px;
  text-align: center;
  font-size: 14px;
  color: var(--text-mid);
  margin-bottom: 18px;
}
.company__dl dt {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-lt);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 16px;
  margin-bottom: 4px;
}
.company__dl dd { font-size: 14px; color: var(--text-mid); line-height: 1.8; }
.company__dl small { font-size: 11px; color: var(--text-lt); }
.company__payment {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}
.payment-badge {
  padding: 6px 16px;
  border: 1px solid var(--border);
  border-radius: var(--r-sm);
  font-size: 13px;
  font-weight: 700;
  color: var(--text-mid);
  background: var(--white);
}
.company__sns { display: flex; gap: 10px; margin-bottom: 24px; }
.sns-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: var(--r-pill);
  font-size: 13px;
  font-weight: 700;
  border: 1px solid var(--border);
  transition: opacity 0.2s;
}
.sns-btn--fb { background: #1877F2; color: var(--white); border-color: #1877F2; }
.sns-btn--x { background: #111; color: var(--white); border-color: #111; }
.sns-btn:hover { opacity: 0.85; }
.company__related-label { font-size: 13px; color: var(--text-lt); margin-bottom: 10px; }
.company__related-card {
  display: block;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: box-shadow 0.2s;
}
.company__related-card:hover { box-shadow: var(--shadow-sm); }
.company__related-card img { width: 100%; height: 90px; object-fit: cover; }
.company__related-card p { padding: 12px 14px; font-size: 13px; color: var(--primary); font-weight: 700; line-height: 1.6; }

/* ============ FOOTER ============ */
.footer {
  background: var(--text);
  padding: 48px 0 24px;
}
.footer__main-nav {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
  padding-bottom: 24px;
  margin-bottom: 32px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.footer__main-nav a {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255,255,255,0.75);
  text-decoration: none;
  transition: color 0.2s;
}
.footer__main-nav a:hover { color: var(--white); }
.footer__top {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 48px;
  margin-bottom: 40px;
}
.footer__logo-img {
  height: 48px;
  width: auto;
  display: block;
  margin-bottom: 8px;
  opacity: 0.85;
  filter: brightness(0) invert(1);
}
.footer__logo {
  font-family: var(--font-en);
  font-size: 22px;
  color: var(--primary-lt);
  letter-spacing: 0.06em;
  margin-bottom: 8px;
}
.footer__tagline { font-size: 12px; color: rgba(255,255,255,0.45); margin-bottom: 20px; line-height: 1.6; }
.footer__info { margin-bottom: 20px; }
.footer__info-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 0.05em;
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer__info-text { font-size: 12px; color: rgba(255,255,255,0.5); line-height: 1.7; margin-bottom: 4px; }
.footer__info-note { font-size: 11px; color: rgba(255,255,255,0.35); }
.footer__info-link { font-size: 12px; color: var(--primary-lt); text-decoration: none; display: inline-block; margin-top: 6px; }
.footer__info-link:hover { color: var(--white); }
.footer__payment { margin-bottom: 8px; }
.footer__payment-img { height: 28px; width: auto; display: block; background: var(--white); border-radius: 4px; padding: 2px 6px; }
.footer__payment span {
  font-size: 11px;
  font-weight: 700;
  color: var(--white);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 4px;
  padding: 3px 10px;
}
.footer__sns { display: flex; gap: 8px; margin-bottom: 12px; }
.footer__sns-btn {
  font-size: 12px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: var(--r-pill);
  text-decoration: none;
  transition: opacity 0.2s;
}
.footer__sns-btn:hover { opacity: 0.8; }
.footer__sns-btn--fb { background: #1877F2; color: var(--white); }
.footer__sns-btn--x { background: #000; color: var(--white); border: 1px solid rgba(255,255,255,0.2); }
.footer__related {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  background: rgba(255,255,255,0.07);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: background 0.2s;
}
.footer__related:hover { background: rgba(255,255,255,0.12); }
.footer__related img { width: 72px; height: 52px; object-fit: cover; flex-shrink: 0; }
.footer__related span { font-size: 12px; color: var(--primary-lt); line-height: 1.6; padding-right: 10px; }
.footer__sub-nav { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.footer__sub-nav a { font-size: 12px; color: rgba(255,255,255,0.4); text-decoration: none; transition: color 0.2s; }
.footer__sub-nav a:hover { color: var(--primary-lt); }
.footer__services {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.footer__col-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 0.05em;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
}
.footer__col ul { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.footer__col ul li a {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  text-decoration: none;
  transition: color 0.2s;
  line-height: 1.5;
}
.footer__col ul li a:hover { color: rgba(255,255,255,0.9); }
.footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 20px;
  text-align: center;
}
.footer__copy { font-size: 12px; color: rgba(255,255,255,0.3); }
@media (max-width: 960px) {
  .footer__top { grid-template-columns: 1fr; gap: 32px; }
  .footer__services { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .footer__services { grid-template-columns: 1fr; }
}

/* ============ LINE FLOAT ============ */
.line-float {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: #06C755;
  color: var(--white);
  border-radius: var(--r-md);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(6,199,85,0.35);
  z-index: 200;
  transition: transform 0.2s, box-shadow 0.2s;
  line-height: 1.4;
}
.line-float:hover { transform: translateY(-3px); box-shadow: 0 8px 28px rgba(6,199,85,0.4); }

/* ============ HOWTOCOST ============ */
.howtocost {
  padding: 88px 0;
  background: var(--bg-warm);
}
.howtocost__tabs {
  display: flex;
  gap: 0;
  margin-bottom: 36px;
  border-bottom: 2px solid var(--border);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.howtocost__tabs::-webkit-scrollbar { display: none; }
.howtocost__tab {
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  padding: 12px 24px;
  font-family: var(--font-jp);
  font-size: 14px;
  font-weight: 700;
  color: var(--text-mid);
  cursor: pointer;
  transition: color 0.2s, border-color 0.2s;
  line-height: 1.4;
  text-align: center;
}
.howtocost__tab small { font-size: 11px; font-weight: 400; display: block; }
.howtocost__tab.is-active,
.howtocost__tab:hover { color: var(--primary); border-bottom-color: var(--primary); }
.howtocost__panel { display: none; }
.howtocost__panel.is-active { display: block; }

/* コスト内訳表（タブ内） */
.cost__breakdown {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin-bottom: 32px;
  font-size: 14px;
  table-layout: fixed;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.cost__breakdown col.col-item { width: 55%; }
.cost__breakdown col.col-price { width: 45%; }
.cost__breakdown th,
.cost__breakdown td {
  padding: 10px 16px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.cost__breakdown tbody td { background: var(--white); }
.cost__breakdown th {
  background: var(--text);
  color: var(--white);
  font-weight: 700;
  font-size: 13px;
}
.cost__breakdown th:last-child,
.cost__breakdown td:last-child { text-align: right; }
.cost__breakdown td:last-child { color: var(--text); font-weight: 500; }
.cost__breakdown-total td { background: rgba(192,122,133,0.10); border-bottom: none; }
.cost__breakdown-total td strong { color: var(--primary); }

.cost__summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 40px;
}
.cost__item {
  background: var(--white);
  border-radius: var(--r-md);
  padding: 28px 24px;
  text-align: center;
  border: 1px solid var(--border);
}
.cost__label {
  font-size: 13px;
  color: var(--text-lt);
  margin-bottom: 8px;
  font-weight: 500;
}
.cost__val {
  font-family: var(--font-en);
  font-size: clamp(26px, 4vw, 40px);
  font-weight: 600;
  color: var(--primary-dk);
  line-height: 1.2;
  margin-bottom: 8px;
}
.cost__unit {
  font-size: 0.5em;
  font-family: var(--font-jp);
  font-weight: 700;
}
.cost__note { font-size: 12px; color: var(--text-lt); line-height: 1.6; }

.cost__steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 32px;
}
.cost__step {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: var(--white);
  border-radius: var(--r-md);
  padding: 22px 28px;
  border: 1px solid var(--border);
}
.cost__step-num {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--primary);
  color: var(--white);
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cost__step-body h3 { font-size: 16px; font-weight: 700; color: var(--primary-dk); margin-bottom: 4px; }
.cost__step-body p { font-size: 14px; color: var(--text-mid); line-height: 1.7; }

.cost__extra-nav {
  background: var(--bg-section);
  border-radius: var(--r-md);
  padding: 20px 24px;
  margin-bottom: 32px;
}
.cost__extra-label { font-size: 13px; font-weight: 700; color: var(--text-mid); margin-bottom: 12px; }
.cost__extra-nav ul { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.cost__extra-nav a { font-size: 13px; color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.cost__extra-nav a:hover { color: var(--primary-dk); }

/* Plan extra links */
.plan__extra-links {
  margin: 12px 0 16px;
  font-size: 12px;
  color: var(--text-lt);
  line-height: 1.8;
}
.plan__extra-links a { color: var(--text-lt); text-decoration: underline; text-underline-offset: 2px; }
.plan__extra-links a:hover { color: var(--text-mid); }
.plan__card--featured .plan__extra-links,
.plan__card--featured .plan__extra-links a { color: rgba(255,255,255,0.65); }

/* ============ ANIMATIONS ============ */
@media (prefers-reduced-motion: no-preference) {
  .target__card,
  .value__row,
  .plan__card,
  .results__stat,
  .voice,
  .flow__step,
  .seminar__card,
  .article__card,
  .school__card,
  .faq__item {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.55s ease, transform 0.55s ease;
  }
  .is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
}

/* ============ RESPONSIVE ============ */
@media (max-width: 960px) {
  .target__grid { grid-template-columns: repeat(3, 1fr); }
  .value__row { grid-template-columns: 240px 1fr; gap: 40px; }
  .value__row--rev { grid-template-columns: 1fr 240px; }
  .plans__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .flow__steps { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .results__stats { grid-template-columns: repeat(3, 1fr); }
  .voice__grid { grid-template-columns: 1fr; }
  .schools__grid { grid-template-columns: repeat(2, 1fr); }
  .articles__grid { grid-template-columns: repeat(2, 1fr); }
  .seminar__grid { grid-template-columns: 1fr; }
  .cta__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto 36px; }
  .company__grid { grid-template-columns: 1fr; }
  .campaign__inner { grid-template-columns: 1fr; gap: 36px; }
  .cost__summary { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .sp-only { display: block; }
  .header__nav { display: none; }
  .header__inner { gap: 16px; }
  .trust-bar__inner { flex-direction: column; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
  .trust-bar__list { gap: 10px; flex-wrap: wrap; }
  .target__grid { grid-template-columns: 1fr; }
  .value__row,
  .value__row--rev { grid-template-columns: 1fr; gap: 28px; }
  .value__row--rev .value__visual { order: 0; }
  .value__row--rev .value__body  { order: 0; }
  .value__img-wrap { max-width: 240px; margin: 0 auto; }
  .flow__steps { grid-template-columns: 1fr; gap: 12px; }
  .flow__arrow { display: none; }
  .results__stats { grid-template-columns: 1fr; }
  .schools__grid { grid-template-columns: 1fr; }
  .articles__grid { grid-template-columns: 1fr; }
  .hero__cta-btn { font-size: 12px; padding: 12px 16px; bottom: 12px; right: 12px; }
  .cta__hours { flex-direction: column; gap: 16px; }
  .whatwedo__grid { grid-template-columns: 1fr; }
  .need__step-head { flex-direction: column; gap: 4px; }
  .need__total { flex-direction: column; gap: 4px; }
}

/* ============================================
   V8 追加スタイル
   ============================================ */

/* WHAT WE DO */
.whatwedo { padding: 80px 0; background: var(--bg); }
.whatwedo__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.whatwedo__card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px 24px;
  position: relative;
  transition: box-shadow .2s;
}
.whatwedo__card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.08); }
.whatwedo__card--main {
  border-color: var(--gold);
  box-shadow: 0 4px 20px rgba(200,153,90,.15);
}
.whatwedo__badge {
  position: absolute;
  top: -12px;
  left: 24px;
  background: var(--gold);
  color: var(--white);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  letter-spacing: .05em;
}
.whatwedo__icon { font-size: 36px; margin-bottom: 16px; }
.whatwedo__title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 12px; line-height: 1.5; }
.whatwedo__text { font-size: 14px; color: var(--text-mid); line-height: 1.8; margin-bottom: 16px; }
.whatwedo__price {
  font-size: 13px;
  color: var(--gold);
  font-weight: 700;
  background: rgba(200,153,90,.08);
  padding: 8px 12px;
  border-radius: 8px;
  margin-bottom: 16px;
}
.whatwedo__link {
  font-size: 13px;
  color: var(--primary);
  text-decoration: none;
  font-weight: 700;
}
.whatwedo__link:hover { text-decoration: underline; }

/* PLAN COST */
.plan__cost {
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: rgba(200,153,90,.07);
  border-radius: 8px;
  padding: 12px 16px;
  margin: 16px 0;
}
.plan__cost-label { font-size: 11px; color: var(--text-lt); font-weight: 700; letter-spacing: .05em; }
.plan__cost-val { font-size: 20px; font-weight: 700; color: var(--gold); }
.plan__cost-note { font-size: 13px; color: var(--text-mid); }

/* RESULTS: 5-column stats */
.results__stats { grid-template-columns: repeat(5, 1fr); }

/* WHAT YOU NEED */
.whatyouneed { padding: 80px 0; background: var(--bg-section); }
.need__scenario {
  background: var(--white);
  border-left: 4px solid var(--gold);
  border-radius: 0 12px 12px 0;
  padding: 20px 24px;
  margin-bottom: 32px;
}
.need__scenario-label { font-size: 12px; font-weight: 700; color: var(--gold); letter-spacing: .1em; margin-bottom: 6px; }
.need__scenario-text { font-size: 16px; font-weight: 700; color: var(--text); line-height: 1.6; }
.need__steps { display: flex; flex-direction: column; gap: 0; }
.need__step {
  border-left: 2px solid var(--border);
  margin-left: 20px;
  padding: 0 0 24px 28px;
  position: relative;
}
.need__step::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 6px;
  width: 14px;
  height: 14px;
  background: var(--white);
  border: 2px solid var(--gold);
  border-radius: 50%;
}
.need__step-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.need__step-num {
  font-size: 11px;
  font-weight: 700;
  color: var(--gold);
  background: rgba(200,153,90,.1);
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: .05em;
  white-space: nowrap;
}
.need__step-title { font-size: 16px; font-weight: 700; color: var(--text); flex: 1; }
.need__step-cost { font-size: 13px; font-weight: 700; color: var(--primary); white-space: nowrap; }
.need__step-body { font-size: 14px; }
.need__list { list-style: none; padding: 0; }
.need__list li {
  padding: 4px 0 4px 16px;
  position: relative;
  color: var(--text-mid);
  line-height: 1.7;
}
.need__list li::before { content: '→'; position: absolute; left: 0; color: var(--gold); }
.need__step--summary {
  border-left: 2px solid var(--gold);
  background: var(--white);
  border-radius: 12px;
  padding: 24px;
  margin-left: 20px;
}
.need__step--summary::before { display: none; }
.need__total {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.need__total-label { font-size: 12px; font-weight: 700; color: var(--text-lt); letter-spacing: .05em; }
.need__total-val { font-size: 28px; font-weight: 700; color: var(--gold); }
.need__total-note { font-size: 13px; color: var(--text-lt); }
.need__note { font-size: 14px; color: var(--text-mid); line-height: 1.7; margin-top: 8px; }

/* =====================================================================
   v10 追加分：LPトンマナ統一 ＋ 新セクション（notice-bar / age / fee）
   ===================================================================== */

/* --- ① V11：ここは v10 で「短期留学LPとカラートークンを統一」した2つ目の :root。
       後勝ちで冒頭を打ち消すので、必ず冒頭と同じ値を書くこと（8/6にここで一度つまづいた） --- */
:root {
  --primary:     #7A4A52;
  --primary-dk:  #5E3A42;
  --primary-lt:  #EFDEDE;
  --rose:        #D4837A;
  --gold:        #B08344;
  --bg:          #FFFFFF;
  --bg-section:  #FDF5F5;
  --bg-warm:     #FBF3F0;
  --cream:       #FBF3F0;
  --text:        #2E2024;
  --text-mid:    #5F4A4F;
  --text-lt:     #968287;
  --border:      #EADEE0;
}

/* --- ② インラインSVGアイコン（絵文字の置き換え） --- */
.ico { display: inline-block; vertical-align: middle; color: var(--primary); flex-shrink: 0; }
.ico--inline { width: 18px; height: 18px; margin-right: 6px; position: relative; top: -1px; }
.ico--tab { width: 20px; height: 20px; margin-right: 6px; }
.ico--check { width: 15px; height: 15px; margin-right: 7px; color: var(--primary); }
.whatwedo__icon .ico { color: var(--primary); }
.plan__list li { display: flex; align-items: flex-start; gap: 2px; }
.plan__list li .ico--check { margin-top: 4px; }
.howtocost__tab { display: inline-flex; align-items: center; justify-content: center; gap: 2px; flex-wrap: wrap; }

/* --- ③ お知らせバナー --- */
.notice-bar { background: linear-gradient(90deg, var(--primary) 0%, var(--primary-dk) 100%); }
.notice-bar__inner {
  max-width: 1080px; margin: 0 auto; padding: 12px 20px;
  display: flex; align-items: center; gap: 14px;
  color: #fff; text-decoration: none; flex-wrap: wrap; justify-content: center;
}
.notice-bar__tag {
  background: #fff; color: var(--primary-dk); font-weight: 700; font-size: 12px;
  padding: 4px 10px; border-radius: var(--r-pill); letter-spacing: .02em; white-space: nowrap;
}
.notice-bar__text { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.notice-bar__text strong { font-size: 15px; font-weight: 700; }
.notice-bar__price { font-size: 13px; opacity: .95; }
.notice-bar__price em { font-style: normal; font-weight: 700; }
.notice-bar__link { font-size: 13px; text-decoration: underline; white-space: nowrap; }
.notice-bar__inner:hover { opacity: .92; }
@media (max-width: 767px) {
  .notice-bar__inner { padding: 10px 14px; gap: 8px; }
  .notice-bar__text strong { font-size: 14px; }
  .notice-bar__price { font-size: 12px; width: 100%; text-align: center; }
  .notice-bar__link { display: none; }
}

/* --- ④ 年齢別セクション --- */
.age { padding: 72px 0; background: var(--bg-section); }
.age__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 36px; }
.age__card {
  display: flex; flex-direction: column; background: var(--white);
  border: 1px solid var(--border); border-radius: var(--r-md);
  padding: 22px 18px 20px; text-decoration: none; color: inherit;
  transition: transform .2s ease, box-shadow .2s ease;
}
.age__card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.age__card--main { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.age__badge {
  align-self: flex-start; background: var(--bg-warm); color: var(--primary-dk);
  font-size: 13px; font-weight: 700; padding: 5px 12px; border-radius: var(--r-pill); margin-bottom: 12px;
}
.age__badge--main { background: var(--primary); color: #fff; }
.age__title { font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 10px; }
.age__text { font-size: 14.5px; line-height: 1.85; color: var(--text-mid); flex: 1; }
.age__link { margin-top: 14px; font-size: 13px; font-weight: 700; color: var(--primary); }
.age__note { margin-top: 24px; text-align: center; font-size: 13.5px; color: var(--text-mid); line-height: 1.9; }
.age__note a { color: var(--primary); font-weight: 700; }
@media (max-width: 900px) { .age__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .age { padding: 52px 0; } .age__grid { grid-template-columns: 1fr; gap: 12px; } }

/* --- ⑤ 費用の目安セクション --- */
.fee { padding: 72px 0; background: var(--bg); }
.fee__lead {
  margin: 34px 0 12px; font-size: 15px; font-weight: 700; color: var(--text);
  padding-left: 12px; border-left: 4px solid var(--primary);
}
.fee__table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--r-sm); }
.fee__table { width: 100%; min-width: 640px; border-collapse: collapse; background: var(--white); font-size: 15px; }
.fee__table thead th {
  background: var(--primary); color: #fff; font-weight: 700; font-size: 14px;
  padding: 12px 14px; text-align: left; white-space: nowrap;
}
.fee__table tbody th, .fee__table tbody td {
  padding: 14px; border-bottom: 1px solid var(--border);
  text-align: left; vertical-align: top; line-height: 1.7;
}
.fee__table tbody th { font-weight: 700; color: var(--text); width: 26%; }
.fee__table tbody th a { color: var(--primary-dk); text-decoration: underline; text-underline-offset: 3px; }
.fee__table tbody td { color: var(--text-mid); }
.fee__table tbody tr:last-child th, .fee__table tbody tr:last-child td { border-bottom: none; }
.fee__price { font-weight: 700; color: var(--text) !important; white-space: nowrap; }
.fee__row--campaign { background: var(--bg-section); }
.fee__row--campaign .fee__price s { color: var(--text-lt); font-weight: 400; }
.fee__row--campaign .fee__price em { font-style: normal; color: var(--primary-dk); font-size: 16px; }
.fee__off {
  display: inline-block; background: var(--primary); color: #fff; font-size: 11px;
  font-weight: 700; padding: 3px 8px; border-radius: var(--r-badges, 4px); margin-left: 4px; vertical-align: middle;
}
.fee__note { margin-top: 18px; font-size: 13.5px; line-height: 1.95; color: var(--text-mid); }
.fee__links { margin: 22px 0 26px; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.fee__links a { font-size: 14.5px; font-weight: 700; color: var(--primary); text-decoration: none; }
.fee__links a:hover { text-decoration: underline; }
@media (max-width: 560px) { .fee { padding: 52px 0; } .fee__table { font-size: 13px; } }

/* --- ⑥ お客様の声（写真なしカード） --- */
.voice--nophoto .voice__body { padding-left: 0; }
.voice__more { margin-top: 22px; text-align: center; }
.voice__more a { font-size: 13.5px; font-weight: 700; color: var(--primary); }

/* --- ⑦ セミナー日程タグ --- */
.seminar__date-tag {
  display: inline-block; font-size: 11px; font-weight: 700; padding: 3px 9px;
  border-radius: var(--r-pill); margin-bottom: 7px;
}
.seminar__date-tag--free { background: var(--primary); color: #fff; }
.seminar__date-tag--paid { background: var(--bg-warm); color: var(--primary-dk); }
.seminar__schedule-note { margin-top: 12px; font-size: 12.5px; color: var(--text-lt); line-height: 1.85; }

/* --- ⑧ 学校カードのプレースホルダSVG --- */
.school__card-img img[src$="school-mark.svg"] { object-fit: cover; background: var(--bg-section); }

/* =====================================================================
   v10 追加分②：横はみ出し修正 ＋ SPドロワーメニュー
   ===================================================================== */

/* --- ① h1（trust-bar）の nowrap を解除して折り返す --- */
.trust-bar__heading { white-space: normal; }
@media (max-width: 900px) {
  .trust-bar__inner { flex-wrap: wrap; }
  .trust-bar__heading { flex-shrink: 1; min-width: 0; }
}

/* --- ② ヘッダーの横はみ出し（PC1319px / SP474px）を解消 --- */
.header__inner { min-width: 0; }
.header__nav { min-width: 0; flex-shrink: 1; overflow: hidden; }
.header__btns { flex-shrink: 1; min-width: 0; }
@media (max-width: 1180px) {
  .header__inner { gap: 12px; padding: 0 20px; }
  .header__nav { gap: 12px; font-size: 12px; }
  .header__seminar { display: none; }   /* PC狭幅では主CTA1本に絞る */
}
@media (max-width: 640px) {
  .header__btns { display: none; }      /* SPは下部LINEボタン＋ドロワーに集約 */
}

/* --- ③ SPドロワーメニュー（SPでナビに到達できない問題の解消） --- */
.header__menu-btn {
  display: none; margin-left: auto; width: 40px; height: 40px;
  background: none; border: 0; padding: 8px; cursor: pointer; color: var(--text);
}
.header__menu-btn span {
  display: block; height: 1.6px; background: currentColor; border-radius: 2px;
  transition: transform .25s ease, opacity .2s ease;
}
.header__menu-btn span + span { margin-top: 6px; }
.is-drawer-open .header__menu-btn span:nth-child(1) { transform: translateY(7.6px) rotate(45deg); }
.is-drawer-open .header__menu-btn span:nth-child(2) { opacity: 0; }
.is-drawer-open .header__menu-btn span:nth-child(3) { transform: translateY(-7.6px) rotate(-45deg); }

.drawer {
  position: fixed; inset: 0 0 0 auto; width: min(84vw, 320px);
  background: var(--white); box-shadow: var(--shadow-lg);
  transform: translateX(100%); transition: transform .28s ease;
  z-index: 60; overflow-y: auto; padding: 76px 24px 40px;
  visibility: hidden;
}
.is-drawer-open .drawer { transform: translateX(0); visibility: visible; }
.drawer a {
  display: block; padding: 14px 4px; font-size: 14px; color: var(--text);
  text-decoration: none; border-bottom: 1px solid var(--border);
}
.drawer a:last-child { border-bottom: 0; }
.drawer__cta {
  margin-top: 20px; display: block !important; text-align: center;
  background: var(--primary); color: #fff !important; font-weight: 700;
  padding: 14px !important; border-radius: var(--r-pill); border: 0 !important;
}
.drawer__overlay {
  position: fixed; inset: 0; background: rgba(74,51,48,.42);
  opacity: 0; visibility: hidden; transition: opacity .28s ease; z-index: 55;
}
.is-drawer-open .drawer__overlay { opacity: 1; visibility: visible; }
.is-drawer-open { overflow: hidden; }
@media (max-width: 640px) { .header__menu-btn { display: block; } }
@media (min-width: 641px) { .drawer, .drawer__overlay { display: none; } }

/* --- ④ 費用表・学校スライダーに横スクロールの手がかりを出す --- */
.fee__table-wrap { position: relative; }
.fee__scroll-hint {
  display: none; font-size: 12px; color: var(--text-lt); margin: 6px 0 0; text-align: right;
}
@media (max-width: 767px) { .fee__scroll-hint { display: block; } }

/* --- ⑤ セミナー日程を2件以上でも崩れないように --- */
.seminar__dates { display: flex; flex-direction: column; gap: 12px; }
.seminar__date-item { width: 100%; }
@media (max-width: 640px) {
  .seminar__date-item { flex-wrap: wrap; gap: 10px; }
  .seminar__date-info { flex: 1 1 100%; min-width: 0; }
  .seminar__date-btn { margin-left: auto; }
}

/* --- ⑥ 取り消し線価格のコントラスト改善（濃色パネル内） --- */
.campaign__price-orig { color: #C9B3AE; }
.campaign__price-yen { display: block; font-size: 15px; margin-top: 2px; }

/* =====================================================================
   v10 追加分③：SP横スクロールの根治
   （※ .results__stats の 5カラム固定は CSS 末尾で定義されており
      既存のメディアクエリを打ち消していたため、ここで上書きする）
   ===================================================================== */
.results__stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .results__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
}
@media (max-width: 640px) {
  .results__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .results__stat { min-width: 0; }
  .results__num { font-size: 26px; }
  .results__label { font-size: 12px; line-height: 1.6; }
}

/* ドロワーは閉じている間 画面外にあるため、横スクロールを発生させない */
body { overflow-x: hidden; }

/* =====================================================================
   v10 追加分④：FV（画像焼き込み → HTMLテキスト＋実写）
   ===================================================================== */
.hero { background: linear-gradient(180deg, var(--bg-section) 0%, var(--bg) 100%); padding: 56px 0 60px; }
.hero__inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.hero__eyebrow {
  display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: .04em;
  color: var(--primary-dk); background: var(--white);
  border: 1px solid var(--primary-lt); padding: 6px 14px; border-radius: var(--r-pill); margin-bottom: 20px;
}
.hero__catch {
  font-size: 40px; font-weight: 700; line-height: 1.45; color: var(--text);
  letter-spacing: .01em; margin-bottom: 18px;
}
.hero__sub { font-size: 15px; line-height: 2; color: var(--text-mid); margin-bottom: 22px; }
.hero__points { display: flex; flex-direction: column; gap: 9px; margin-bottom: 28px; }
.hero__points li {
  position: relative; padding-left: 26px; font-size: 14px; font-weight: 500; color: var(--text);
}
.hero__points li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 17px; height: 17px;
  border-radius: 50%; background: var(--primary);
}
.hero__points li::after {
  content: ""; position: absolute; left: 5px; top: 8px; width: 7px; height: 4px;
  border-left: 1.8px solid #fff; border-bottom: 1.8px solid #fff; transform: rotate(-45deg);
}
.hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.hero__btn { padding: 15px 30px; font-size: 15px; }
.hero__btn2 { padding: 15px 26px; font-size: 14px; }
/* min-width:0 = grid項目の初期値 min-width:auto だと画像の実寸(1410px)を要求してSPで横スクロールが出る */
.hero__visual { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-md); min-width: 0; }
.hero__visual img { display: block; width: 100%; max-width: 100%; height: 100%; object-fit: cover; }
.pc-only { display: inline; }

@media (max-width: 960px) {
  .hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .hero__catch { font-size: 32px; }
  .hero__visual { order: -1; }
  .pc-only { display: none; }
}
@media (max-width: 560px) {
  .hero { padding: 32px 0 40px; }
  .hero__catch { font-size: 26px; line-height: 1.5; }
  .hero__sub { font-size: 14px; line-height: 1.95; }
  .hero__ctas { flex-direction: column; }
  .hero__btn, .hero__btn2 { width: 100%; text-align: center; }
}

/* =====================================================================
   v10 追加分⑤：ヘッダーナビの見切れ・FVキャッチの折り返し調整
   ===================================================================== */
@media (max-width: 1360px) {
  .header__inner { gap: 14px; padding: 0 20px; }
  .header__nav { gap: 13px; font-size: 12.5px; }
  .header__nav a { white-space: nowrap; }
}
@media (max-width: 1240px) {
  .header__seminar { display: none; }        /* 主CTAを「無料相談」1本に絞る */
}
@media (max-width: 1080px) {
  .header__nav a:nth-child(n+8) { display: none; }  /* 会社概要・お問い合わせはフッター/CTAに集約 */
}
/* FVキャッチ：PCで3行に割れないようサイズを調整 */
@media (max-width: 1360px) { .hero__catch { font-size: 36px; } }
@media (max-width: 1100px) { .hero__catch { font-size: 32px; } }

/* =====================================================================
   v10 追加分⑥：ヘッダーの出し分けを整理（見切れを構造的に無くす）
   1101px以上 … ロゴ＋ナビ9本＋CTA（1321px以上は2本、以下は「無料相談」1本）
   1100px以下 … ロゴ＋CTA＋ハンバーガー（ナビはドロワーへ集約）
   ===================================================================== */
@media (max-width: 1320px) { .header__seminar { display: none; } }
@media (max-width: 1100px) {
  .header__nav { display: none; }
  .header__menu-btn { display: block; }
  .header__btns { display: flex; margin-left: auto; }
}
@media (max-width: 640px) {
  .header__btns { display: none; }
  .header__menu-btn { display: block; }
}
/* 1080px以下でナビ項目を隠す旧ルールは不要（ナビ自体を非表示にするため）*/
@media (max-width: 1080px) { .header__nav a:nth-child(n+8) { display: inline; } }

/* FVキャッチ：2行に収まるサイズへ（1500px以上でも36pxのまま＝40pxだと3行に割れる）
   ※PC専用に閉じること。無条件だと下の SP用 26px/32px を後勝ちで潰し、
     keep-all と重なってSPで横スクロール（幅495px）が発生する */
@media (min-width: 961px) {
  .hero__catch { font-size: 36px; }
}

/* =====================================================================
   v10 追加分⑦：SPレイアウトの実崩れ修正
   ===================================================================== */
/* ① WHAT WE DO の3カードがSPでも3カラムのまま → 1カラムへ */
@media (max-width: 900px) {
  .whatwedo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 640px) {
  .whatwedo__grid { grid-template-columns: 1fr; gap: 14px; }
  .whatwedo__card { padding: 22px 20px; }
  .whatwedo__title { font-size: 17px; }
}

/* ② 実績バーの数字・単位・ラベルの折り返しを整える */
.results__num { white-space: nowrap; }
.results__unit { white-space: nowrap; font-size: .5em; }
.results__label { word-break: keep-all; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .results__stat { padding: 14px 8px; }
  .results__label { font-size: 11.5px; }
}

/* ③ 「やりたいこと」タブがSPで3行に割れる → 2列グリッドで整列 */
@media (max-width: 640px) {
  .howtocost__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .howtocost__tab { font-size: 12.5px; padding: 10px 6px; line-height: 1.5; }
  .howtocost__tab small { font-size: 10.5px; }
  .howtocost__tab .ico--tab { width: 17px; height: 17px; margin-right: 4px; }
}

/* ④ SPでLINEフローティングがFV本文に大きくかぶらないよう小型化 */
@media (max-width: 640px) {
  .line-float { transform: scale(.86); transform-origin: bottom right; }
}

/* ⑤ プランカードの費用ボックスを3枚とも同じ体裁に */
.plan__cost { background: var(--white); border-radius: var(--r-sm); padding: 12px 14px; }
.plan__card--main .plan__cost { background: rgba(255,255,255,.92); }
.plan__cost-val { color: var(--text); }

/* ⑥ フッター関連サイトバナーの右パディング */
.footer__related { padding-right: 12px; }

/* =====================================================================
   v10 追加分⑧：最終目視で見つかった崩れの修正
   ===================================================================== */

/* ① 実績5枚目「渡航後も」だけ数字用の大サイズでカード外へはみ出す
      → 文字系の項目はサイズを落として枠内に収める */
.results__stat:nth-child(5) .results__num { font-size: 26px; letter-spacing: .01em; }
.results__stat:nth-child(5) .results__unit { font-size: .8em; }
@media (max-width: 640px) { .results__stat:nth-child(5) .results__num { font-size: 22px; } }

/* ② ラベルが語中で改行される（「実/績」「スクー/ル」）→ 文節で折り返す */
.results__label, .whymy__label, .age__title, .plan__cost-label {
  word-break: keep-all; overflow-wrap: break-word; line-break: strict;
}

/* ③ ピックアップのバナーは文字が主役 → cover で両端が切れるのを防ぐ */
.pickup__item { background: var(--bg-section); }
.pickup__item img { object-fit: contain; height: auto; }

/* ④ SP：LINEフローティングがFVのベネフィット3行目を隠す → 位置を下げる */
@media (max-width: 640px) {
  .line-float { bottom: 12px; right: 12px; }
}

/* ⑤ SP：FV見出しが「マレー/シアで。」と語中で割れる */
@media (max-width: 640px) {
  .hero__catch { word-break: keep-all; overflow-wrap: break-word; }
}

/* ⑥ 提携校カルーセルにも横スクロールの手がかりを出す（ピックアップと揃える） */
.schools__hint { margin-top: 10px; font-size: 12px; color: var(--text-lt); text-align: center; }

/* ⑦ SP：LINEフローティングはアイコンのみにして本文への被りを最小化 */
@media (max-width: 640px) {
  .line-float {
    width: 52px; height: 52px; padding: 0; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    transform: none; bottom: 14px; right: 14px;
  }
  .line-float span { display: none; }
  .line-float svg { width: 26px; height: 26px; }
}

/* ⑧ LINEフローティングはFVを通過してから出す（FV内のコピーに被らせない） */
.line-float { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, transform .3s ease; }
.is-scrolled .line-float { opacity: 1; visibility: visible; pointer-events: auto; }

/* ⑨ 実績カード：数字・ラベルをカード幅に収める（語中改行・枠接触の解消） */
.results__stat { padding-left: 10px; padding-right: 10px; }
.results__num { font-size: 30px; }
.results__unit { font-size: .55em; }
.results__label { font-size: 12.5px; line-height: 1.6; }
@media (max-width: 1100px) {
  .results__num { font-size: 26px; }
  .results__label { font-size: 12px; }
}

/* =====================================================================
   v10 追加分⑨：ボタンのホバーで文字が消える不具合の修正
   原因＝`.plan__card:not(.plan__card--featured) .btn--outline`（詳細度0,3,0）が
        `.btn--outline:hover`（0,2,0）の文字色指定を打ち消していた
   ===================================================================== */
.plan__card:not(.plan__card--featured) .btn--outline:hover,
.plan__card .btn--outline:hover,
.btn--outline:hover { background: var(--primary); color: var(--white); border-color: var(--primary); }

/* 同種の「背景だけ変わる」ホバーも文字色を明示して読めなくならないようにする */
.btn--outline-rose:hover { background: var(--primary); color: var(--white); border-color: var(--primary); }
.btn--white:hover { background: var(--cream); color: var(--primary-dk); }
.btn--primary:hover { color: var(--white); }
.btn--gold-v2:hover { color: var(--white); }
.schools__links li a:hover { background: var(--primary); color: var(--white); }
.footer__related:hover { color: var(--white); }
.hero__cta-btn:hover { color: var(--white); }

/* そのほかのサービス（WHAT WE DO 下部の一覧） */
.whatwedo__more {
  margin-top: 34px; padding: 22px 24px; background: var(--white);
  border: 1px solid var(--border); border-radius: var(--r-md);
}
.whatwedo__more-label {
  font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 12px;
  padding-left: 10px; border-left: 3px solid var(--primary);
}
.whatwedo__more-list { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.whatwedo__more-list a {
  display: inline-block; font-size: 12.5px; color: var(--text-mid); text-decoration: none;
  background: var(--bg-section); border: 1px solid var(--border);
  padding: 6px 12px; border-radius: var(--r-pill); transition: background .18s ease, color .18s ease;
}
.whatwedo__more-list a:hover { background: var(--primary); color: var(--white); border-color: var(--primary); }
@media (max-width: 560px) {
  .whatwedo__more { padding: 18px 16px; }
  .whatwedo__more-list a { font-size: 12px; padding: 5px 10px; }
}

/* --- 強みセクションの補足（選ばれる理由） --- */
.value__more {
  margin-top: 44px; padding: 28px 30px; background: var(--white);
  border: 1px solid var(--border); border-radius: var(--r-md);
}
.value__more-label {
  font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 18px;
  padding-left: 11px; border-left: 3px solid var(--primary);
}
.value__more-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; }
.value__more-list li {
  font-size: 14px; line-height: 1.9; color: var(--text-mid);
  padding-left: 22px; position: relative;
}
.value__more-list li::before {
  content: ""; position: absolute; left: 0; top: 7px; width: 13px; height: 13px;
  border-radius: 50%; background: var(--primary-lt);
}
.value__more-list li::after {
  content: ""; position: absolute; left: 3.5px; top: 11px; width: 6px; height: 3px;
  border-left: 1.6px solid var(--primary-dk); border-bottom: 1.6px solid var(--primary-dk); transform: rotate(-45deg);
}
.value__more-title { display: block; font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 3px; }
.value__more-link { display: inline-block; margin-top: 20px; font-size: 13.5px; font-weight: 700; color: var(--primary); }
@media (max-width: 767px) {
  .value__more { padding: 22px 18px; margin-top: 32px; }
  .value__more-list { grid-template-columns: 1fr; gap: 14px; }
}

/* --- お客様の声：4枚グリッド＋星評価 --- */
.voice__grid--4 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.voice__stars { color: var(--gold); line-height: 1; margin-bottom: 10px; display: flex; gap: 2px; }
.voice__stars svg { display: block; }
.voice--nophoto .voice__body { padding-left: 0; }
.voice__img-wrap img[src$="avatar-mark.svg"] { background: var(--bg-section); }
@media (max-width: 767px) { .voice__grid--4 { grid-template-columns: 1fr; gap: 14px; } }

/* --- セミナー：シンプル版（LP準拠） --- */
.seminar__simple {
  background: var(--white); border-radius: var(--r-lg); padding: 34px 36px;
  box-shadow: var(--shadow-sm); margin-bottom: 24px; text-align: center;
}
.seminar__simple-title { font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 18px; }
.seminar__simple-box { background: var(--bg-section); border-radius: var(--r-md); padding: 22px 24px; }
.seminar__simple-lead { font-size: 22px; font-weight: 700; color: var(--primary); margin-bottom: 10px; }
.seminar__simple-text { font-size: 13.5px; line-height: 2; color: var(--text-mid); max-width: 760px; margin: 0 auto; }
.seminar__simple-action { margin-top: 24px; }
.seminar__simple-note { font-size: 13px; font-weight: 700; color: var(--text-mid); margin-bottom: 10px; }
.seminar__simple-btn { padding: 15px 34px; font-size: 15px; }
@media (max-width: 560px) {
  .seminar__simple { padding: 24px 18px; }
  .seminar__simple-lead { font-size: 18px; }
  .seminar__simple-box { padding: 18px 14px; }
  .seminar__simple-text { font-size: 13px; line-height: 1.95; }
  .seminar__simple-btn { width: 100%; padding: 14px 16px; font-size: 14px; }
}

/* --- 3本柱カード内の内訳リンク（リンクだと分かる見た目に） --- */
.whatwedo__items { margin: 16px 0 4px; display: flex; flex-direction: column; gap: 2px; }
.whatwedo__items li { position: relative; padding-left: 15px; }
.whatwedo__items li::before {
  content: ""; position: absolute; left: 0; top: 10px; width: 5px; height: 5px;
  border-radius: 50%; background: var(--primary-lt);
}
.whatwedo__items a {
  display: inline-block; font-size: 13px; line-height: 1.85; color: var(--text-mid);
  text-decoration: none; padding: 2px 0;
  border-bottom: 1px solid transparent; transition: color .16s ease, border-color .16s ease;
}
.whatwedo__items a:hover { color: var(--primary-dk); border-bottom-color: var(--primary-lt); }
.whatwedo__card .whatwedo__price { margin-top: 14px; }

/* --- 微調整：星の視認性／セミナーCTAの幅 --- */
.voice__stars { color: #B8792B; gap: 3px; }
.voice__stars svg { width: 16px; height: 16px; }
.seminar__simple-btn { display: inline-block; width: auto; min-width: 340px; }
@media (max-width: 560px) { .seminar__simple-btn { min-width: 0; width: 100%; } }

/* =====================================================================
   v10 追加分⑩：本文のメリハリ（太字＋黄色マーカー・LP準拠）
   ===================================================================== */
.mk {
  font-weight: 700;
  color: var(--text);
  background: linear-gradient(transparent 86%, rgba(226,179,60,.85) 86%);
  padding-bottom: 1px;
}
/* 濃色パネル内では下線を明るく、文字は白のまま */
.seminar .mk, .lifestyle .mk, .cta-section .mk, .footer .mk {
  color: inherit;
  background: linear-gradient(transparent 86%, rgba(240,200,90,.55) 86%);
}

/* --- ピックアップ：カード高さを画像に合わせて下端が切れないようにする --- */
.pickup__slider { align-items: flex-start; }
.pickup__item { height: auto; align-self: flex-start; line-height: 0; }
.pickup__item img { width: 100%; height: auto; object-fit: contain; display: block; }

/* =====================================================================
   v10 追加分⑪：競合比較を受けた改修
   （総額モデルケース／帰国後の出口／口コミ属性タグ）
   ===================================================================== */

/* --- 費用：総額モデルケース --- */
.fee__model-note { font-size: 13.5px; line-height: 1.95; color: var(--text-mid); margin-bottom: 18px; }
.fee__models { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fee__model {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: 22px 20px; display: flex; flex-direction: column;
}
.fee__model--main { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.fee__model-tag {
  align-self: flex-start; font-size: 11.5px; font-weight: 700; color: var(--primary-dk);
  background: var(--bg-warm); padding: 4px 11px; border-radius: var(--r-pill); margin-bottom: 12px;
}
.fee__model-tag--main { background: var(--primary); color: #fff; }
.fee__model-title { font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.fee__model-cond { font-size: 13.5px; line-height: 1.8; color: var(--text-lt); margin-bottom: 14px; }
.fee__model-rows { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; flex: 1; }
.fee__model-rows li {
  display: flex; justify-content: space-between; gap: 10px; align-items: baseline;
  font-size: 14px; color: var(--text-mid); border-bottom: 1px dashed var(--border); padding-bottom: 6px;
}
.fee__model-rows em { font-style: normal; font-weight: 700; color: var(--text); white-space: nowrap; }
.fee__model-total {
  font-size: 14px; color: var(--text); background: var(--bg-section);
  border-radius: var(--r-sm); padding: 12px 14px; text-align: center;
}
.fee__model-total strong { display: block; font-size: 21px; color: var(--primary-dk); margin-top: 3px; }
.fee__model-monthly { display: block; font-size: 12px; color: var(--text-lt); margin-top: 4px; }
.fee__note--model { margin-top: 16px; }
@media (max-width: 900px) { .fee__models { grid-template-columns: 1fr; } }

/* --- 帰国後の出口戦略 --- */
.after { padding: 76px 0; background: var(--bg-section); }
.after__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 38px; }
.after__card {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--r-md); padding: 26px 24px;
}
.after__num {
  font-family: var(--font-en); font-size: 26px; color: var(--primary-lt); line-height: 1; margin-bottom: 10px;
}
.after__title { font-size: 18px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.after__text { font-size: 14.5px; line-height: 1.95; color: var(--text-mid); }
.after__meta { margin-top: 12px; font-size: 12px; line-height: 1.8; color: var(--text-lt); }
.after__meta a { color: var(--primary); font-weight: 700; }
.after__note {
  margin-top: 30px; background: var(--white); border: 1px solid var(--primary-lt);
  border-radius: var(--r-md); padding: 26px 28px; text-align: center;
}
.after__note-title { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 10px; }
.after__note p { font-size: 13.5px; line-height: 2; color: var(--text-mid); }
.after__note .btn { margin-top: 18px; }
@media (max-width: 900px) { .after__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .after { padding: 52px 0; } .after__note { padding: 20px 16px; } }

/* --- 口コミの属性タグ --- */
.voice__tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 7px; }
.voice__tags span {
  font-size: 10.5px; font-weight: 700; color: var(--primary-dk);
  background: var(--bg-warm); border-radius: var(--r-pill); padding: 3px 9px;
}
.voice__attr { display: block; }

/* =====================================================================
   v10 追加分⑫：料金ページ（price.html）
   ===================================================================== */
.page-head { background: var(--bg-section); padding: 44px 0 40px; border-bottom: 1px solid var(--border); }
.breadcrumb { font-size: 12px; color: var(--text-lt); margin-bottom: 16px; }
.breadcrumb a { color: var(--primary); text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.breadcrumb span { margin: 0 4px; }
.page-head__title { font-size: 30px; font-weight: 700; color: var(--text); line-height: 1.45; margin-bottom: 14px; }
.page-head__lead { font-size: 14.5px; line-height: 2; color: var(--text-mid); }
.page-head__meta { margin-top: 12px; font-size: 12px; color: var(--text-lt); }

.price-sec { padding: 68px 0; background: var(--bg); }
.price-sec--alt { background: var(--bg-section); }
.price-sec .section-title { text-align: left; }
.price-sec .section-label { text-align: left; }
.price-sec .section-sub { text-align: left; margin-bottom: 26px; }

/* 無料でできること */
.price-free {
  margin-top: 26px; background: var(--white); border: 1px solid var(--primary-lt);
  border-radius: var(--r-md); padding: 22px 24px;
}
.price-free__title { font-size: 14.5px; font-weight: 700; color: var(--primary-dk); margin-bottom: 12px; }
.price-free__list { display: flex; flex-direction: column; gap: 7px; }
.price-free__list li { position: relative; padding-left: 22px; font-size: 13.5px; line-height: 1.85; color: var(--text-mid); }
.price-free__list li::before {
  content: ""; position: absolute; left: 0; top: 6px; width: 13px; height: 13px;
  border-radius: 50%; background: var(--primary-lt);
}
.price-free__list li::after {
  content: ""; position: absolute; left: 3.5px; top: 10px; width: 6px; height: 3px;
  border-left: 1.6px solid var(--primary-dk); border-bottom: 1.6px solid var(--primary-dk); transform: rotate(-45deg);
}
.price-free__note { margin-top: 12px; font-size: 12px; color: var(--text-lt); }

/* 含まれるもの／含まれないもの */
.incl__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
.incl__card { border-radius: var(--r-md); padding: 24px 26px; border: 1px solid var(--border); background: var(--white); }
.incl__card--in { border-color: var(--primary-lt); }
.incl__card--out { background: var(--bg-warm); }
.incl__head { font-size: 15px; font-weight: 700; color: var(--text); margin-bottom: 14px; padding-left: 11px; border-left: 3px solid var(--primary); }
.incl__card--out .incl__head { border-left-color: var(--text-lt); }
.incl__list { display: flex; flex-direction: column; gap: 8px; }
.incl__list li { font-size: 13.5px; line-height: 1.85; color: var(--text-mid); padding-left: 16px; position: relative; }
.incl__list li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 50%; background: var(--primary-lt); }
.incl__card--out .incl__list li::before { background: var(--text-lt); }

/* 要確認ブロック（公開前に消す前提。目立たせる） */
.incl__todo {
  margin-top: 26px; border: 2px dashed #C77; border-radius: var(--r-md);
  padding: 22px 24px; background: #FFF6F4;
}
.incl__todo-title { font-size: 14px; font-weight: 700; color: #B3453A; margin-bottom: 10px; }
.incl__todo p { font-size: 13px; line-height: 1.9; color: var(--text-mid); }
.incl__todo ul { margin-top: 10px; display: flex; flex-direction: column; gap: 5px; }
.incl__todo li { font-size: 13px; color: var(--text-mid); padding-left: 16px; position: relative; }
.incl__todo li::before { content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 6px; border-radius: 50%; background: #C77; }

/* TOP側：料金詳細への導線 */
.fee__more { margin: 22px 0 4px; }
.fee__more-link {
  display: inline-block; font-size: 13.5px; font-weight: 700; color: var(--primary-dk);
  border-bottom: 2px solid var(--primary-lt); padding-bottom: 3px; text-decoration: none;
}
.fee__more-link:hover { border-bottom-color: var(--primary); }

@media (max-width: 767px) {
  .page-head__title { font-size: 22px; }
  .price-sec { padding: 46px 0; }
  .incl__grid { grid-template-columns: 1fr; }
}

/* --- 最終CTA：3ステップ導線（セミナー主役） --- */
.cta__step {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .02em;
  background: rgba(255,255,255,.22); color: #fff; padding: 4px 11px;
  border-radius: var(--r-pill); margin-bottom: 12px;
}
.cta__step--sub { background: var(--bg-warm); color: var(--primary-dk); }
.cta__note { margin-top: 12px; font-size: 11.5px; line-height: 1.7; color: var(--text-lt); }
.cta__card--primary .cta__note { color: rgba(255,255,255,.78); }
.cta__card--primary .mk { color: #fff; background: linear-gradient(transparent 86%, rgba(240,200,90,.5) 86%); }

/* =====================================================================
   v10 追加分⑬：個別相談カードの刷新／特典の色味・コントラスト改善
   ===================================================================== */

/* --- 個別相談カード（濃色ベタをやめ、白地＋枠でコントラストを確保） --- */
.seminar__consult {
  display: grid; grid-template-columns: 1fr 300px; gap: 32px; align-items: center;
  background: var(--white); border: 1px solid var(--primary-lt);
  border-radius: var(--r-lg); padding: 30px 34px; box-shadow: var(--shadow-sm);
}
.seminar__consult-tag {
  display: inline-block; font-size: 12px; font-weight: 700;
  background: var(--bg-warm); color: var(--primary-dk);
  padding: 5px 13px; border-radius: var(--r-pill); margin-bottom: 14px;
}
.seminar__consult-title { font-size: 21px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.seminar__consult-lead { font-size: 13.5px; line-height: 1.95; color: var(--text-mid); margin-bottom: 16px; }
.seminar__consult-list { display: flex; flex-direction: column; gap: 7px; }
.seminar__consult-list li {
  font-size: 13.5px; color: var(--text); padding-left: 24px; position: relative; line-height: 1.7;
}
.seminar__consult-list li::before {
  content: ""; position: absolute; left: 0; top: 4px; width: 15px; height: 15px;
  border-radius: 50%; background: var(--primary-lt);
}
.seminar__consult-list li::after {
  content: ""; position: absolute; left: 4px; top: 8.5px; width: 6px; height: 3px;
  border-left: 1.7px solid var(--primary-dk); border-bottom: 1.7px solid var(--primary-dk); transform: rotate(-45deg);
}
.seminar__consult-action { text-align: center; }
.seminar__consult-action .btn { width: 100%; padding: 15px 20px; }
.seminar__consult-note {
  margin-top: 14px; font-size: 12px; line-height: 1.8; color: var(--text-mid);
  background: var(--bg-section); border-radius: var(--r-sm); padding: 10px 12px;
}
.seminar__consult-note strong { color: var(--primary-dk); }
@media (max-width: 860px) {
  .seminar__consult { grid-template-columns: 1fr; gap: 22px; padding: 24px 20px; }
  .seminar__consult-title { font-size: 18px; }
}

/* --- 特典：濃茶の価格ボックス → クリーム地で読みやすく --- */
.campaign__price-box {
  background: var(--bg-section);
  border-left: 1px solid var(--border);
  padding: 26px 22px;
}
.campaign__price-label { font-size: 11.5px; color: var(--text-lt); font-weight: 500; }
.campaign__price-orig {
  font-size: 15px; color: var(--text-lt); text-decoration: line-through;
  text-decoration-color: var(--primary); margin-bottom: 6px;
}
.campaign__badge {
  background: var(--primary); color: #fff; font-size: 12px; font-weight: 700;
  padding: 4px 13px; border-radius: var(--r-pill); margin: 6px 0 8px;
}
.campaign__price-main { font-size: 32px; font-weight: 700; color: var(--primary-dk); line-height: 1.15; }
.campaign__price-yen { display: block; font-size: 15px; color: var(--text-mid); margin-top: 3px; }
.campaign__price-note { font-size: 11.5px; color: var(--text-lt); margin-top: 6px; }

/* 特典カードのレイアウト調整（写真の切れ・余白のばらつきを解消） */
.campaign__card { grid-template-columns: 210px 1fr 210px; align-items: stretch; overflow: hidden; }
.campaign__thumb img { object-position: center; }
.campaign__body { padding: 26px 28px; }
.campaign__limit { background: var(--primary); }
.campaign__points li::before { color: var(--primary); }
.campaign__title em { color: var(--primary-dk); }
@media (max-width: 900px) {
  .campaign__card { grid-template-columns: 1fr; }
  .campaign__thumb { height: 180px; }
  .campaign__price-box { border-left: none; border-top: 1px solid var(--border); }
}

/* =====================================================================
   v10 追加分⑭：強みの補足6項目 — カード化でグルーピング＋ジャンプ率を上げる
   ===================================================================== */
.value__more { padding: 30px 32px; }
.value__more-label {
  font-size: 15px; margin-bottom: 20px;
}
.value__more-list {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
}
/* 1項目＝1カード。境界をはっきりさせて視線の迷子を防ぐ */
.value__more-list li {
  background: var(--bg-section);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 18px 20px 17px;
  font-size: 12.5px;
  line-height: 1.85;
  color: var(--text-lt);
  padding-left: 20px;
}
.value__more-list li::before,
.value__more-list li::after { content: none; }

/* 見出しを大きく・本文を小さく＝ジャンプ率を確保 */
.value__more-title {
  display: block;
  font-size: 15.5px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.55;
  margin-bottom: 9px;
  padding-left: 26px;
  position: relative;
  letter-spacing: -.01em;
}
.value__more-title::before {
  content: ""; position: absolute; left: 0; top: 2px;
  width: 18px; height: 18px; border-radius: 50%; background: var(--primary);
}
.value__more-title::after {
  content: ""; position: absolute; left: 5px; top: 7.5px;
  width: 7px; height: 4px;
  border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg);
}

/* このブロック内のマーカーは控えめに（数が多いと本文が読みづらくなる） */
.value__more .mk {
  font-weight: 700; color: var(--text);
  background: linear-gradient(transparent 88%, rgba(226,179,60,.55) 88%);
}

.value__more-link {
  margin-top: 22px; font-size: 14px;
}
@media (max-width: 767px) {
  .value__more { padding: 22px 18px; }
  .value__more-list { grid-template-columns: 1fr; gap: 12px; }
  .value__more-title { font-size: 14.5px; }
}

/* =====================================================================
   v10 追加分⑮：プランのステップ表示／サービス内訳の枠背景／実績バーの月桂樹
   ===================================================================== */

/* --- プラン：STEPバッジ --- */
.plan__badge { font-size: 11.5px; letter-spacing: .01em; white-space: nowrap; }
.plan__badge--next {
  background: var(--bg-warm); color: var(--primary-dk);
  border: 1px solid var(--primary-lt);
}
.plan__card--next { border-color: var(--primary-lt); }

/* --- サービス3本柱：内訳リンクを薄い枠背景でまとめる --- */
.whatwedo__items {
  background: var(--bg-section);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: 14px 16px;
  margin: 16px 0 4px;
  gap: 4px;
}
.whatwedo__items li { padding-left: 15px; }
.whatwedo__items li::before { top: 11px; background: var(--primary); opacity: .55; }
.whatwedo__items a { color: var(--text-mid); }
.whatwedo__items a:hover { color: var(--primary-dk); border-bottom-color: var(--primary); }
.whatwedo__card--main .whatwedo__items { background: var(--white); border-color: var(--primary-lt); }

/* --- 実績バー：各項目を月桂樹で囲む --- */
.trust-bar__list li {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--text-mid);
}
.trust-bar__list li .laurel { color: var(--primary-lt); flex-shrink: 0; }
.trust-bar__list li .laurel--r { transform: scaleX(-1); }
.trust-bar__list li > span { display: inline-block; padding: 0 1px; }
@media (max-width: 900px) {
  .trust-bar__list li .laurel { width: 10px; height: 24px; }
}
@media (max-width: 560px) {
  .trust-bar__list li .laurel { display: none; }   /* SPは幅が足りないので省略 */
}

/* --- 実績バー：月桂樹を入れた分の幅調整（項目が切れないように） --- */
.trust-bar__inner { flex-wrap: wrap; gap: 8px 18px; }
.trust-bar__list { flex-wrap: wrap; gap: 4px 10px; row-gap: 6px; }
.trust-bar__list li { gap: 2px; font-size: 12px; white-space: nowrap; }
.trust-bar__list li .laurel { width: 10px; height: 24px; }
@media (max-width: 1240px) {
  .trust-bar__heading { flex: 1 1 100%; }
}

/* --- 年齢別：7〜10歳のバッジも他と同じ配色に揃える --- */
.age__badge--main { background: var(--bg-warm); color: var(--primary-dk); }

/* --- 総額モデル：タグの塗りをやめ、他と同じ配色に（強調はしない） --- */
.fee__model-tag--main { background: var(--bg-warm); color: var(--primary-dk); }

/* --- 実績バー：h1を独立行にして、実績項目を大きく見せる --- */
.trust-bar { padding: 16px 0; }
.trust-bar__inner { flex-direction: column; align-items: center; gap: 10px; }
.trust-bar__heading { flex: 0 0 auto; text-align: center; font-size: 13.5px; }
.trust-bar__list { justify-content: center; gap: 6px 14px; }
.trust-bar__list li { font-size: 14px; gap: 3px; }
.trust-bar__list li strong { font-size: 16px; }
.trust-bar__list li .laurel { width: 14px; height: 32px; }
@media (max-width: 900px) {
  .trust-bar__list li { font-size: 13px; }
  .trust-bar__list li strong { font-size: 14.5px; }
  .trust-bar__list li .laurel { width: 12px; height: 28px; }
}
@media (max-width: 560px) {
  .trust-bar__heading { font-size: 12.5px; }
  .trust-bar__list li { font-size: 12.5px; }
  .trust-bar__list li strong { font-size: 13.5px; }
}

/* --- サービス3本柱：内訳の枠は3枚とも白背景に統一 --- */
.whatwedo__items,
.whatwedo__card--main .whatwedo__items { background: var(--white); border-color: var(--border); }

/* =====================================================================
   v10 追加分⑧：8/6 Takuレビュー代行での是正
   ===================================================================== */
/* ① SP：費用表が min-width:640px のため主役の「料金」列が画面外に隠れていた
      → SPだけ折り返し表示にして横スクロールを不要にする */
@media (max-width: 560px) {
  .fee__table { min-width: 0; font-size: 12.5px; }
  .fee__table thead th { padding: 10px 8px; white-space: normal; }
  .fee__table tbody th, .fee__table tbody td { padding: 10px 8px; }
  /* 列幅を明示しないと「期間・単位」が細く潰れて4行に割れる */
  .fee__table tbody th { width: 27%; }
  .fee__table tbody td:nth-of-type(1) { width: 15%; }
  .fee__table tbody td:nth-of-type(2) { width: 32%; }
  .fee__table tbody td:nth-of-type(3) { width: 26%; }
  .fee__price { white-space: normal; }
  .fee__scroll-hint { display: none; }
}

/* ② プランカード3枚が align-items:start で下端バラバラ・CTAの高さも揃わない
      → 高さを揃え、CTAはカード下端に固定する */
.plans__grid { align-items: stretch; }
.plan__card { display: flex; flex-direction: column; }
.plan__card > .btn { margin-top: auto; }

/* ③ featuredカード（濃いローズ地）のチェックアイコンが地色と同化して消えていた */
.plan__card--featured .ico--check { color: #fff; }
/* ④ 「対象：〜」が1行/2行でカード間の縦位置がずれる（PCのみ揃える） */
@media (min-width: 961px) {
  .plan__target { min-height: 3em; }
}

/* =====================================================================
   ▼▼▼ V11 テーマレイヤー（2026-08-06）▼▼▼
   競合2社（mys-ryugaku / malaysia-ryugaku）の実地調査から採った型：
     ① 背景の切り替えでセクションを区切る（v10は全面クリームで境界が曖昧だった）
     ② 主色を大面積のベタ塗りで使い、反転セクションを2〜3箇所つくる
     ③ 各セクションは「英語ラベル＋見出し＋短文＋下層へのCTA」の3点セット
     ④ 見出しに下線マーカーを引いて視認性を上げる
     ⑤ 余白を詰めて縦を短くする（＝一画面あたりの情報が読み取りやすい）
   ===================================================================== */

/* ---------- 1. セクションの背景を交互に切り替える ---------- */
.whatwedo, .plans, .results, .after, .schools, .faq, .cta-section { background: var(--white); }
.whymy, .fee, .age, .campaign, .articles { background: var(--bg-section); }

/* 反転セクション（濃いグリーン地・白文字）＝ページのリズムをつくる */
.trust-bar, .value { background: var(--primary); }
.trust-bar *, .value:not(.value__more) { color: #fff; }
.value .section-label { color: var(--gold-lt); }
.value .section-title, .value .section-sub { color: #fff; }
.value .value__item-title { color: #fff; }
.value .value__item-lead { color: rgba(255,255,255,.92); }
.value .value__item-body { color: rgba(255,255,255,.80); }
.value .value__num { color: rgba(255,255,255,.22); }
.value .value__extra { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.16); }
.value .value__extra-title, .value .value__extra-item-ttl { color: #fff; }
.value .value__extra-item-body { color: rgba(255,255,255,.76); }
.value .value__extra-head { color: #fff; }
.value a { color: var(--gold-lt); }
.value .mk { background: linear-gradient(transparent 62%, rgba(232,206,150,.32) 0); color: #fff; }

/* 反転セクション内のカードは白のまま浮かせる（可読性優先） */
.value .value__extra-item { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); }

/* ---------- 2. 見出しのコントラストを上げる ---------- */
.section-label {
  color: var(--gold); font-weight: 700; font-size: 11.5px;
  letter-spacing: .16em; text-transform: uppercase; margin-bottom: 10px;
}
.section-title {
  color: var(--text); font-weight: 700; letter-spacing: -.01em;
  position: relative; padding-bottom: 16px; margin-bottom: 14px;
}
/* 見出し下の短い下線（競合2社ともこの型。一目でセクションの切れ目が分かる） */
.section-title::after {
  content: ""; position: absolute; left: 50%; transform: translateX(-50%);
  bottom: 0; width: 46px; height: 3px; border-radius: 2px; background: var(--gold);
}
.value .section-title::after { background: var(--gold-lt); }
.section-sub { color: var(--text-mid); }

/* ---------- 3. CTA：主CTAはゴールド塗り（濃地でも白地でも視認できる） ---------- */
.btn { font-weight: 700; letter-spacing: .01em; }
.btn--primary { background: var(--gold); border-color: var(--gold); color: #fff; }
.btn--primary:hover { background: var(--accent-dk, #96601F); border-color: #96601F; }
.btn--gold-v2 { background: var(--gold); border-color: var(--gold); color: #fff; }
.btn--outline { border-width: 2px; border-color: var(--primary); color: var(--primary); background: transparent; }
.btn--outline:hover { background: var(--primary); color: #fff; }
.header__seminar { background: var(--primary); color: #fff; }
.header__seminar .header__seminar-sub { color: rgba(255,255,255,.82); }
.header__cta { border-color: var(--primary); color: var(--primary); }

/* ---------- 4. 余白を詰める（縦を短くして読み進めやすくする） ---------- */
.whatwedo, .whymy, .plans, .fee, .results, .age, .value, .schools,
.campaign, .after, .faq, .articles, .cta-section, .seminar { padding: 64px 0; }
@media (max-width: 767px) {
  .whatwedo, .whymy, .plans, .fee, .results, .age, .value, .schools,
  .campaign, .after, .faq, .articles, .cta-section, .seminar { padding: 44px 0; }
}

/* ---------- 5. カードの境界をはっきりさせる ---------- */
.whatwedo__card, .plan__card, .voice, .age__card, .after__card, .faq__item, .article-card {
  border: 1px solid var(--border); box-shadow: var(--shadow-sm);
}
.plan__card--featured { background: var(--primary); border-color: var(--primary); }
.plan__card--featured .plan__badge { background: var(--gold); }

/* ---------- 6. 実績バー（反転）を competitor 型の「数字が主役」に ---------- */
.trust-bar { padding: 22px 0; }
.trust-bar__lead { color: rgba(255,255,255,.86) !important; font-weight: 600; }
.trust-bar__list li { color: #fff !important; font-size: 13px; font-weight: 700; }
.trust-bar__list li b, .trust-bar__list li strong { color: var(--gold-lt) !important; }

/* ---------- 7. お知らせバナー：ゴールドの帯にして「今動く理由」を目立たせる ---------- */
.notice-bar { background: var(--gold); }
.notice-bar * { color: #fff !important; }
.notice-bar__tag { background: rgba(255,255,255,.22); color: #fff !important; }
.notice-bar__link { color: #fff !important; }

/* ---------- 8. FV：写真を主役にしてコピーを短く見せる ---------- */
.hero { background: linear-gradient(180deg, var(--bg-section) 0%, var(--white) 100%); }
.hero__eyebrow { background: var(--white); border-color: var(--primary-lt); color: var(--primary); }
.hero__catch { color: var(--text); }

/* ---------- 9. フッター：内部リンクの受け皿（本文から削ったリンクはここに集約） ---------- */
.footer { background: var(--primary-dk); }

/* ---------- 10. 「3つの強み」を縦3段(2,022px)から3カラムのカードへ ----------
   競合の「選ばれる◯つの理由」はいずれも横並びカード。縦に積むとページが伸びるうえ、
   3つの関係（並列）が伝わらない */
.value__list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.value__row, .value__row--rev { display: block; grid-template-columns: none; }
.value__row--rev .value__visual, .value__row--rev .value__body { order: initial; }
.value__visual { display: block; position: relative; margin-bottom: 16px; }
.value__num {
  position: absolute; top: 8px; left: 12px; z-index: 2;
  font-size: 34px; color: rgba(255,255,255,.55); text-shadow: 0 1px 6px rgba(0,0,0,.28);
}
.value__img-wrap { aspect-ratio: 16/10; border-width: 0; border-radius: var(--r-md); }
.value__body h3 { font-size: 19px; line-height: 1.5; color: #fff; margin-bottom: 8px; }
.value__body p:last-child { font-size: 13.5px; line-height: 1.8; }
.value__lead { font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.value__more-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 900px) {
  .value__list { grid-template-columns: 1fr; gap: 18px; }
  .value__more-list { grid-template-columns: 1fr; }
}

/* ---------- 11. 見出し下線をはっきり出す ---------- */
.section-title::after { width: 56px; height: 4px; }

/* ---------- 12. ローズ系のイラストPNGをブランドカラーに寄せる ----------
   why_icon / plan_icon / feat_icon は短期留学LPのローズ系素材。差し替え素材が来るまでの暫定で
   色相を回して緑側に寄せる（実写・SVG化ができたら filter は外す） */
/* 元素材（why_icon / plan_icon）はローズ系なのでフィルタ不要。彩度だけ少し落として主色に馴染ませる */
.whymy__img img, .plan__img-wrap img, .whatwedo__icon img, .feat__icon img {
  filter: saturate(.88);
}

/* ---------- 13. 反転セクション（濃緑地）の可読性を確保 ----------
   v10のテキスト色（--text-mid）のままだと緑地に暗い緑文字で読めない。
   黄色マーカーも白地前提なので、反転側は下線に置き換える */
.value .value__body p,
.value .value__body p:last-child { color: rgba(255,255,255,.84); }
.value .value__body h3 { color: #fff; }
.value .value__lead { color: var(--gold-lt); }
.value .value__body .mk {
  background: none; color: #fff; font-weight: 700;
  border-bottom: 2px solid rgba(232,206,150,.85); padding-bottom: 1px;
}
/* 「ほかにも評価いただいている点」の白カードは3カラムグリッドの外へ（全幅） */
.value__more { grid-column: 1 / -1; margin-top: 26px; }
.value__more .mk { background: linear-gradient(transparent 62%, rgba(184,121,43,.22) 0); color: var(--text); border: 0; }
.value__more, .value__more * { color: var(--text-mid); }
.value__more .value__more-title, .value__more .value__more-head { color: var(--text); }
.value__more-list li { background: var(--white); border: 1px solid var(--border); border-radius: var(--r-sm); padding: 14px 16px; }
.value__more-link { color: var(--primary) !important; font-weight: 700; }

/* =====================================================================
   V11-rose 調整（2026-08-06）：ローズ系のまま「美容サロン感」を避けるための3点
     ① CTAを主色と分ける（主色=深いローズ／CTA=明るいローズレッド）
        ローズ主色＋ゴールドCTAの組み合わせは美容・エステの定番配色なので外す。
        ゴールドは英語ラベルと見出し下線だけに残して上品さを担保する
     ② 角丸を詰める（丸みが強いほど美容・サロン寄りに見える）
     ③ 濃い反転セクションは主色ベタ＋白抜き（淡いローズだけだった v10 との最大の差）
   ===================================================================== */
:root {
  --cta:    #B85F66;
  --cta-dk: #9E4B52;
  --r-sm:  8px;
  --r-md:  14px;
  --r-lg:  20px;
  --r-xl:  28px;
}
.btn--primary, .btn--gold-v2 { background: var(--cta); border-color: var(--cta); color: #fff; }
.btn--primary:hover, .btn--gold-v2:hover { background: var(--cta-dk); border-color: var(--cta-dk); }
.notice-bar { background: var(--cta); }
.plan__card--featured .plan__badge { background: var(--cta); }
.section-title::after { background: var(--gold); }

/* 反転セクション内のCTAは白塗り（主色ベタの上でCTAが最も強く見える） */
.value .btn--primary, .cta__card--primary .btn { background: #fff; border-color: #fff; color: var(--primary-dk); }
.value .btn--primary:hover, .cta__card--primary .btn:hover { background: var(--cream); border-color: var(--cream); }

/* 数値・アイコンは LP準拠のローズ(--rose)にして短期留学LPとの連続性を残す */
.whymy__num, .ico--check, .whatwedo__icon .ico { color: var(--rose); }

/* 淡ローズの面が白と近すぎて区切りが弱かったので一段濃くする */
:root { --bg-section: #F9F1F1; --bg-warm: #FAF1EC; }
.whymy, .fee, .age, .campaign, .articles { background: var(--bg-section); }

/* ---------- 14. 費用の単価表を開閉式に（2026-08-06）----------
   競合6社はいずれもトップに単価を置いていない。ただし下層へ移すとテキスト資産が
   トップから消えるので、開閉に畳んでHTML上には残す（アコーディオン内でも通常どおり評価される）。
   総額モデルケース3本は開いたまま＝競合が誰も答えていない情報を主役に置く */
.fee__acc {
  background: var(--white); border: 1px solid var(--border); border-radius: var(--r-md);
  margin-bottom: 14px; overflow: hidden;
}
.fee__acc[open] { box-shadow: var(--shadow-sm); }
.fee__acc-head {
  list-style: none; cursor: pointer; position: relative;
  display: grid; grid-template-columns: 1fr auto; align-items: center;
  gap: 4px 16px; padding: 18px 22px;
  transition: background .2s;
}
.fee__acc-head::-webkit-details-marker { display: none; }
.fee__acc-head:hover { background: var(--bg-section); }
.fee__acc-ttl {
  grid-column: 1; font-size: 16px; font-weight: 700; color: var(--text);
  padding-left: 12px; border-left: 4px solid var(--primary); line-height: 1.5;
}
.fee__acc-sub {
  grid-column: 1; font-size: 13.5px; color: var(--text-lt); padding-left: 16px;
}
.fee__acc-icon {
  grid-column: 2; grid-row: 1 / span 2;
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--primary-lt); color: var(--primary-dk);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; transition: transform .25s;
}
.fee__acc[open] .fee__acc-icon { transform: rotate(45deg); }
.fee__acc .fee__table-wrap { margin: 0 22px; }
.fee__acc .fee__scroll-hint { margin: 8px 22px 18px; }
.fee__acc > .fee__table-wrap:last-child { margin-bottom: 22px; }
@media (max-width: 560px) {
  .fee__acc-head { padding: 14px 16px; }
  .fee__acc-ttl { font-size: 14.5px; }
  .fee__acc-sub { font-size: 11.5px; }
  .fee__acc .fee__table-wrap { margin: 0 16px; }
  .fee__acc .fee__scroll-hint { margin: 8px 16px 16px; }
}

/* ---------- 15. サービス統合（2026-08-06）----------
   「WHAT WE DO（3本柱）」と「WHO WE SUPPORT（目的別3プラン）」が
   3カード＋リスト＋CTAの同じ見た目で連続し、同じものが2回出ているように見えていた。
   → 目的別3プランを主役に一本化し、「暮らす」「はたらく」は下の横帯へ落とす（リンクは全数保持） */
.svc-bars { display: grid; gap: 14px; margin-top: 28px; }
.svc-bar {
  background: var(--bg-section); border: 1px solid var(--border);
  border-radius: var(--r-md); padding: 20px 24px;
}
.svc-bar__head {
  display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 14px;
  padding-bottom: 14px; border-bottom: 1px solid var(--border);
}
.svc-bar__ico { color: var(--primary); display: flex; padding-top: 2px; }
.svc-bar__title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 5px; }
.svc-bar__lead { font-size: 13px; line-height: 1.75; color: var(--text-mid); }
.svc-bar__link {
  font-size: 13px; font-weight: 700; color: var(--primary); white-space: nowrap;
  align-self: center;
}
.svc-bar__items {
  list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 6px 20px; margin-top: 14px;
}
.svc-bar__items li { position: relative; padding-left: 13px; font-size: 12.5px; line-height: 1.7; }
.svc-bar__items li::before {
  content: ""; position: absolute; left: 0; top: 8px;
  width: 5px; height: 5px; border-radius: 50%; background: var(--rose);
}
.svc-bar__items a { color: var(--text-mid); }
.svc-bar__items a:hover { color: var(--primary); text-decoration: underline; }
@media (max-width: 900px) {
  .svc-bar__items { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .svc-bar { padding: 16px 16px; }
  .svc-bar__head { grid-template-columns: auto 1fr; }
  .svc-bar__link { grid-column: 1 / -1; align-self: start; }
  .svc-bar__items { grid-template-columns: 1fr; }
}
/* そのほかのサービス（タグ群）はクラス名を svc-more に変更したので旧定義を引き継ぐ */
.svc-more { margin-top: 22px; background: var(--white); border: 1px solid var(--border); border-radius: var(--r-md); padding: 18px 22px; }
.svc-more__label { font-size: 13.5px; font-weight: 700; color: var(--text); padding-left: 10px; border-left: 3px solid var(--primary); margin-bottom: 12px; }
.svc-more__list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.svc-more__list a {
  display: inline-block; font-size: 12.5px; color: var(--text-mid);
  border: 1px solid var(--border); border-radius: var(--r-pill); padding: 5px 13px; background: var(--white);
}
.svc-more__list a:hover { border-color: var(--primary); color: var(--primary); }

/* ---------- 16. 新着情報リスト（2026-08-06）----------
   競合2社ともトップに新着リスト（テキスト1行×N）を置いている。更新されている感＝信頼になり、
   内部リンクも増える。カード4枚とは別の記事を出す */
.newslist { margin-top: 30px; background: var(--white); border: 1px solid var(--border); border-radius: var(--r-md); padding: 22px 26px 10px; }
.newslist__title {
  font-size: 15px; font-weight: 700; color: var(--text);
  padding-left: 11px; border-left: 4px solid var(--primary); margin-bottom: 6px;
}
.newslist__items { list-style: none; }
.newslist__items li { border-bottom: 1px solid var(--border); }
.newslist__items li:last-child { border-bottom: 0; }
.newslist__items a {
  display: flex; align-items: center; gap: 12px; padding: 13px 2px;
  font-size: 14.5px; line-height: 1.6; color: var(--text-mid); transition: color .2s;
}
.newslist__items a:hover { color: var(--primary); }
.newslist__cat {
  flex-shrink: 0; font-size: 11px; font-weight: 700; color: var(--primary-dk);
  background: var(--primary-lt); border-radius: 4px; padding: 4px 9px; min-width: 74px; text-align: center;
}
@media (max-width: 640px) {
  .newslist { padding: 18px 16px 8px; }
  .newslist__items a { align-items: flex-start; gap: 9px; font-size: 12.5px; padding: 11px 2px; }
  .newslist__cat { font-size: 10px; min-width: 62px; padding: 3px 6px; }
}

/* ---------- 17. FAQ をページ最下部へ移した分の調整 ----------
   並びが「最終CTA（3択）→ FAQ（不安の解消）→ 無料相談ボタン」になったので、
   最後のボタンがページのトリ。背景を分けて最終CTAと続いて見えないようにする */
.faq { background: var(--bg-section); }
.faq .btn--primary { padding: 18px 46px; font-size: 16px; }

/* ---------- 18. 特典を上部に集約（2026-08-06）----------
   同じキャンペーン（スクールツアー50%OFF）が「上のお知らせ帯」と「下の特典セクション(973px)」に
   二重に出ていた。競合6社は例外なく3セクション以内にキャンペーンを出しているので、
   下のセクションを畳んで上の帯を"コンパクトな特典2件"に差し替える */
.offerbar { background: var(--primary); padding: 18px 0 20px; }
.offerbar__label {
  color: var(--gold-lt); font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-align: center; margin-bottom: 12px;
}
.offerbar__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.offerbar__item {
  background: rgba(255,255,255,.97); border-radius: var(--r-md);
  padding: 14px 18px; display: grid;
  grid-template-columns: auto 1fr auto auto; align-items: center; gap: 6px 14px;
}
.offerbar__tag {
  grid-row: 1 / span 2; align-self: start;
  font-size: 10.5px; font-weight: 700; color: #fff; background: var(--cta);
  border-radius: var(--r-pill); padding: 4px 10px; white-space: nowrap; margin-top: 2px;
}
.offerbar__body { grid-column: 2; }
.offerbar__ttl { font-size: 14.5px; font-weight: 700; color: var(--text); line-height: 1.45; }
.offerbar__desc { font-size: 11.5px; color: var(--text-lt); line-height: 1.5; margin-top: 2px; }
.offerbar__price { grid-column: 3; text-align: right; line-height: 1.3; white-space: nowrap; }
.offerbar__price s { font-size: 11.5px; color: var(--text-lt); }
.offerbar__price em { font-style: normal; font-size: 19px; font-weight: 700; color: var(--cta); }
.offerbar__price span { display: block; font-size: 10.5px; color: var(--text-lt); }
.offerbar__item .btn { grid-column: 4; }
@media (max-width: 1024px) {
  .offerbar__grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .offerbar__item { grid-template-columns: auto 1fr; gap: 8px 10px; padding: 13px 14px; }
  .offerbar__tag { grid-row: 1; }
  .offerbar__body { grid-column: 1 / -1; }
  .offerbar__price { grid-column: 1; text-align: left; }
  .offerbar__item .btn { grid-column: 2; justify-self: end; }
}

/* ---------- 19. プランカードの関連リンクをタグ表示に（2026-08-06）----------
   中黒区切りのテキストだと「文章の続き」に見えて拾い読みできない。
   ページ下部の「そのほかのサービス」と同じピル型に揃える */
.plan__extra-links { margin: 14px 0 4px; }
.plan__extra-label { font-size: 11px; font-weight: 700; color: var(--text-lt); margin-bottom: 7px; letter-spacing: .04em; }
.plan__extra-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.plan__extra-tags a {
  display: inline-block; font-size: 11.5px; line-height: 1.5; color: var(--text-mid);
  background: var(--white); border: 1px solid var(--border); border-radius: var(--r-pill);
  padding: 5px 11px; text-decoration: none; transition: border-color .2s, color .2s;
}
.plan__extra-tags a:hover { border-color: var(--primary); color: var(--primary); }
/* featured（濃地）カードは白抜きのタグに */
.plan__card--featured .plan__extra-label { color: rgba(255,255,255,.62); }
.plan__card--featured .plan__extra-tags a {
  color: rgba(255,255,255,.92); background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.32);
}
.plan__card--featured .plan__extra-tags a:hover { background: rgba(255,255,255,.2); border-color: #fff; color: #fff; }

/* 19-b. 特典ボックス：ボタンを省いてボックス全体をリンクに。価格を主役サイズへ、余白は圧縮 */
.offerbar { padding: 16px 0 18px; }
.offerbar__grid { gap: 10px; }
.offerbar__item {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto auto;
  align-items: center; gap: 4px 14px;
  padding: 12px 16px; text-decoration: none;
  transition: transform .18s, box-shadow .18s;
}
.offerbar__item:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.16); }
.offerbar__tag { grid-row: 1 / span 2; align-self: center; margin-top: 0; }
.offerbar__body { grid-column: 2; display: block; }
.offerbar__ttl { display: block; font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.4; }
.offerbar__desc { display: block; font-size: 11.5px; color: var(--text-lt); line-height: 1.5; margin-top: 3px; }
.offerbar__price { grid-column: 3; grid-row: 1 / span 2; display: block; text-align: right; line-height: 1.15; white-space: nowrap; }
.offerbar__price s { display: block; font-size: 11.5px; color: var(--text-lt); margin-bottom: 1px; }
.offerbar__price em { display: block; font-style: normal; font-size: 27px; font-weight: 700; color: var(--cta); letter-spacing: -.01em; }
.offerbar__note { display: block; font-size: 10.5px; color: var(--text-lt); margin-top: 3px; }
.offerbar__arrow {
  grid-column: 4; grid-row: 1 / span 2;
  width: 30px; height: 30px; border-radius: 50%; background: var(--cta); color: #fff;
  display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700;
}
@media (max-width: 640px) {
  .offerbar__item { grid-template-columns: auto minmax(0,1fr) auto; gap: 6px 10px; padding: 12px 13px; }
  .offerbar__tag { grid-row: 1; align-self: start; }
  .offerbar__body { grid-column: 1 / -1; grid-row: 2; }
  .offerbar__price { grid-column: 1 / span 2; grid-row: 3; text-align: left; }
  .offerbar__price em { font-size: 23px; }
  .offerbar__arrow { grid-column: 3; grid-row: 3; align-self: end; }
}

/* ---------- 20. セクション順の入れ替え（2026-08-06）----------
   「サービス（目的別に選ぶ）→ マレーシアが選ばれる理由」の順に変更。
   トップに来た人はまず“何をしてくれるのか”を見たいので、説得（なぜマレーシアか）は後ろへ。
   入れ替えで白／淡色の交互が崩れるため、割り当てし直す */
.plans, .fee, .age, .after, .schools, .cta-section { background: var(--white); }
.whymy, .results, .value, .articles, .faq { background: var(--bg-section); }
.value { background: var(--primary); }  /* 反転セクションは維持 */

/* ---------- 21. 「3つの強み」を「選ばれる理由」の直後へ（2026-08-06）----------
   国の魅力（なぜマレーシアか）→ 会社の魅力（なぜルシュエットか）で説得が繋がる。
   反転セクションの位置が変わるので白／淡色の交互を割り当て直す */
.plans, .fee, .age, .schools, .cta-section { background: var(--white); }
.whymy, .results, .after, .articles, .faq { background: var(--bg-section); }
.value { background: var(--primary); }

/* ---------- 22. 体験談 → 費用 の順に（2026-08-06）----------
   体験談で納得してもらってから費用を見せる。白／淡色の交互を再割り当て */
.plans, .results, .age, .after, .cta-section { background: var(--white); }
.whymy, .fee, .schools, .articles, .faq { background: var(--bg-section); }
.value { background: var(--primary); }

/* ---------- 23. FAQ回答内のリスト（帰国後の進路をここへ集約） ---------- */
/* 回答内のリスト。既存の .faq__list（FAQ全体のコンテナ・max-width:720px + margin:0 auto）と
   同名にすると後勝ちで中央寄せが外れて左に寄るので、別名にしている */
.faq__points { list-style: none; margin: 10px 0; display: flex; flex-direction: column; gap: 9px; }
.faq__points li {
  position: relative; padding-left: 15px; font-size: 14.5px; line-height: 1.9; color: var(--text-mid);
}
.faq__points li::before {
  content: ""; position: absolute; left: 0; top: 10px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--rose);
}
.faq__points li b { color: var(--text); }

/* ---------- 24. 「そのほかのサービス」に3グループを集約（2026-08-06）----------
   横帯2本（暮らし／法人）とタグ群が別ブロックに分かれて縦に伸びていた。
   主役は上の目的別3プランなので、残りは1ボックスにグループ分けして畳む */
.svc-more { margin-top: 24px; padding: 20px 24px 22px; }
.svc-more__label { margin-bottom: 16px; }
.svc-more__group { margin-bottom: 16px; }
.svc-more__group:last-child { margin-bottom: 0; }
.svc-more__gttl {
  display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap;
  font-size: 12.5px; font-weight: 700; color: var(--text-lt);
  letter-spacing: .04em; margin-bottom: 8px;
}
.svc-more__gttl a { font-size: 12px; font-weight: 700; color: var(--primary); margin-left: auto; }
.svc-more__gttl a:hover { text-decoration: underline; }
@media (max-width: 640px) {
  .svc-more { padding: 16px 15px 18px; }
  .svc-more__gttl a { margin-left: 0; }
}

/* ---------- 25. 「ほかにも評価いただいている点」を6項目のトグルに（2026-08-06）----------
   本番サイトの「選ばれる理由6つ」と同じ数を載せつつ、畳んで場所を取らない形にする。
   反転セクション（濃地）の上に置くので白抜きで組む */
.value__acc { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.value__acc-item { border-bottom: 1px solid var(--border); }
.value__acc-q {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px;
  padding: 13px 2px; font-size: 15px; font-weight: 700; color: var(--text);
  transition: color .2s;
}
.value__acc-q::-webkit-details-marker { display: none; }
.value__acc-q:hover { color: var(--primary); }
.value__acc-no {
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 5px;
  background: var(--primary-lt); color: var(--primary-dk);
  display: flex; align-items: center; justify-content: center;
  font-size: 11.5px; font-weight: 700;
}
.value__acc-icon {
  margin-left: auto; flex-shrink: 0; color: var(--primary);
  font-size: 14px; font-weight: 700; transition: transform .25s;
}
.value__acc-item[open] .value__acc-icon { transform: rotate(45deg); }
.value__acc-a { padding: 0 2px 14px 34px; }
.value__acc-a p { font-size: 14px; line-height: 1.85; color: var(--text-mid); }
@media (max-width: 767px) {
  .value__acc { grid-template-columns: 1fr; }
}

/* ---------- 26. プランカードの写真を大きく（2026-08-06）----------
   丸い線画アイコンは何のプランか伝わらない。競合はいずれも写真で見せているので写真に差し替え。
   ※いまは短期留学LPの素材を仮置き。実写が用意できたら同じ枠に差し替えるだけでよい
   （カードの左右paddingは28pxなので、写真だけネガティブマージンで端まで出す） */
.plan__card { padding-top: 0; overflow: hidden; }
.plan__photo {
  margin: 0 -28px 18px; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg-section);
}
.plan__photo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: none; }
.plan__badge { top: 14px; z-index: 3; }
/* 写真の上にバッジが乗るので影を足して読めるようにする */
.plan__badge { box-shadow: 0 2px 8px rgba(0,0,0,.28); }
@media (max-width: 640px) {
  .plan__photo { margin: 0 -20px 16px; }
}

/* ---------- 27. プランカードの写真サイズを揃え、STEPバッジを写真の外へ（2026-08-06）----------
   ① 3列が 1.2fr / 1fr / 1fr で幅が違うため、aspect-ratio指定だと写真の高さもバラバラになる
      → 列を均等にし、写真は高さ固定にする
   ② バッジが写真に重なって読みにくいので、写真の直下（カードはflex縦なのでorderで並べ替え）へ */
.plans__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.plan__photo {
  order: -2; aspect-ratio: auto; height: 186px; margin: 0 -28px 0;
}
.plan__badge {
  order: -1; position: static; transform: none; align-self: center;
  margin: 16px 0 14px; box-shadow: none;
}
.plan__card { padding-top: 0; }
@media (max-width: 900px) {
  .plans__grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .plan__photo { height: 210px; }
}
@media (max-width: 640px) {
  .plan__photo { margin: 0 -20px 0; height: 180px; }
}

/* ---------- 28. 提携校セクションは白地に（2026-08-06）----------
   学校写真が並ぶので、淡い地色だと写真の白枠と干渉して見えづらい。
   白にすることで前後（費用＝淡／記事＝淡）との交互も成立する */
.plans, .results, .schools, .cta-section { background: var(--white); }
.whymy, .fee, .articles, .faq { background: var(--bg-section); }
.value { background: var(--primary); }

/* ---------- 29. 「そのほかのサービス」もトグルに（2026-08-06）----------
   主役は上の目的別3プラン。21件のタグが常時開いていると視線を奪うので畳む。
   「〜を見る →」リンクはsummary内に置くとクリックが競合するので中身側へ移した */
.svc-more__group { border-bottom: 1px solid var(--border); margin-bottom: 0; }
.svc-more__group:last-child { border-bottom: 0; }
.svc-more__gttl {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px;
  padding: 13px 2px; margin-bottom: 0;
  font-size: 13.5px; font-weight: 700; color: var(--text); letter-spacing: 0;
  transition: color .2s;
}
.svc-more__gttl::-webkit-details-marker { display: none; }
.svc-more__gttl:hover { color: var(--primary); }
.svc-more__count {
  font-size: 11px; font-weight: 700; color: var(--text-lt);
  background: var(--bg-section); border-radius: var(--r-pill); padding: 3px 9px;
}
.svc-more__icon {
  margin-left: auto; color: var(--primary); font-size: 14px; font-weight: 700;
  transition: transform .25s;
}
.svc-more__group[open] .svc-more__icon { transform: rotate(45deg); }
.svc-more__body { padding: 2px 2px 16px; }
.svc-more__glink { margin-top: 11px; }
.svc-more__glink a { font-size: 12.5px; font-weight: 700; color: var(--primary); }
.svc-more__glink a:hover { text-decoration: underline; }

/* 29-b. 件数バッジ → 中身の例示に差し替え（何が入っているか分かる＝開く動機になる） */
.svc-more__gttl { align-items: center; gap: 14px; padding: 14px 2px; }
.svc-more__gtext { display: block; min-width: 0; }
.svc-more__gname { display: block; font-size: 13.5px; font-weight: 700; color: var(--text); line-height: 1.4; }
.svc-more__gex {
  display: block; font-size: 11.5px; font-weight: 400; color: var(--text-lt);
  line-height: 1.5; margin-top: 3px;
}
.svc-more__count { display: none; }

/* ---------- 30. LINE導線を撤去（2026-08-06・Taku判断）----------
   最終CTAはセミナー／個別相談の2枚に。フローティングボタンも削除 */
.line-float { display: none !important; }
.cta__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; margin: 0 auto; }
@media (max-width: 767px) { .cta__grid { grid-template-columns: 1fr; max-width: 420px; } }

/* =====================================================================
   V11 SP調整（2026-08-06・実機幅での指摘反映）
   ===================================================================== */
/* ① SPでプラン写真の左右に余白が出ていた（カードのpadding 28px に対して -20px しか出していなかった） */
@media (max-width: 900px) {
  .plan__card { padding: 0 24px 30px; }
  .plan__photo { margin: 0 -24px 0; height: 200px; }
}
@media (max-width: 640px) {
  .plan__card { padding: 0 18px 26px; }
  .plan__photo { margin: 0 -18px 0; height: 180px; }
}

/* ② 「マレーシア留学が選ばれる理由」はSPで5つ縦並びに（2列だと最後の1枚が余って歪む） */
@media (max-width: 640px) {
  .whymy__grid { grid-template-columns: 1fr; gap: 12px; }
  .whymy__grid .whymy__item:last-child { grid-column: auto; }
  .whymy__item { display: grid; grid-template-columns: 68px 1fr; align-items: center; gap: 4px 14px; text-align: left; padding: 16px 18px; }
  .whymy__img { grid-row: 1 / span 3; }
  .whymy__num { font-size: 21px; }
  .whymy__label { font-size: 12px; }
  .whymy__desc { grid-column: 2; font-size: 12px; line-height: 1.75; }
}

/* ③ 「3つの強み」＝番号を写真の上（中央）に置き、写真はコンテンツ幅いっぱいに */
@media (max-width: 900px) {
  .value__num {
    position: static; text-align: center; display: block;
    color: var(--gold-lt); font-size: 26px; margin-bottom: 8px;
    text-shadow: none; opacity: .9;
  }
  .value__visual { margin-bottom: 14px; }
  .value__img-wrap { aspect-ratio: 16/9; }
  .value__row { padding: 0; }
  .value__body h3 { text-align: center; }
  .value__lead { text-align: center; }
}

/* =====================================================================
   V11 余白の詰まり修正（2026-08-06）
   隣接要素の実測ギャップを全要素で測って、0pxで密着していた箇所を個別に開ける。
   （セクション間の0px＝各セクションのpaddingで間隔を取っているので正常。
     アコーディオンのsummary→本文の0pxも仕様）
   ===================================================================== */
/* ① 費用：総額モデル3枚 → 単価表の開閉が密着していた */
.fee__models { margin-bottom: 26px; }
.fee__acc + .fee__acc { margin-top: 12px; }
/* ② 記事：新着リスト → 「記事をもっと見る」が密着していた */
.articles .btn { margin-top: 26px; }
/* ③ 最終CTA：3枚のカード → 営業時間ボックスが密着していた */
.cta__grid { margin-bottom: 26px; }
/* ④ 提携校：横スクロールの注記 → 「提携校について相談する」が密着していた */
.schools__hint { margin-bottom: 0; }
.schools .btn { margin-top: 18px; }
/* ⑤ 見出し直下のリード文が8pxで詰まっていた分を少し開ける */
.plan__card h3 + .plan__target { margin-top: 6px; }
.value__body h3 + .value__lead { margin-top: 10px; }

/* ⑥ 提携校のボタン：`.schools > .container > .btn` の margin:0 auto（詳細度0,3,0）が
      margin-top を打ち消していたので、同じセレクタで指定し直す */
.schools > .container > .btn { margin: 18px auto 0; }

/* ---------- 31. プランカードの関連タグもトグルに（2026-08-06）----------
   タグが常時開いているとカードが縦に伸び、3枚の比較（費用・対象）がしづらい */
.plan__extra-links { margin: 16px 0 4px; }
.plan__extra-label {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 700; color: var(--text-lt);
  letter-spacing: .04em; margin-bottom: 0; padding: 8px 0;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  transition: color .2s;
}
.plan__extra-label::-webkit-details-marker { display: none; }
.plan__extra-label:hover { color: var(--primary); }
.plan__extra-icon { margin-left: auto; color: var(--primary); font-size: 13px; transition: transform .25s; }
.plan__extra-links[open] .plan__extra-icon { transform: rotate(45deg); }
.plan__extra-links .plan__extra-tags { margin-top: 11px; }
/* featured（濃地）側 */
.plan__card--featured .plan__extra-label {
  color: rgba(255,255,255,.66); border-color: rgba(255,255,255,.22);
}
.plan__card--featured .plan__extra-label:hover { color: #fff; }
.plan__card--featured .plan__extra-icon { color: rgba(255,255,255,.8); }
/* ⑦ 「3つの強み」リード文 → 本文が8pxで詰まっていた */
.value__lead { margin-bottom: 12px; }

/* ⑧ SPの「選ばれる理由」でイラストが見切れていた
      （元CSSが height:140px + object-fit:cover のため、76px幅の列に入れると上下左右が切れる）
      → SPでは列幅に合わせて全体を収める（contain）*/
@media (max-width: 640px) {
  .whymy__item { grid-template-columns: 76px 1fr; gap: 4px 16px; }
  .whymy__img { width: 76px; height: 76px; margin-bottom: 0; align-self: center; }
  .whymy__img img { width: 100%; height: 100%; object-fit: contain; }
}

/* ⑨ SPの「選ばれる理由」は縦積みに戻す（イラストを上に大きく置く）
      1列×5枚は維持。イラストは contain で見切れさせない */
@media (max-width: 640px) {
  .whymy__item { display: block; text-align: center; padding: 22px 20px; }
  .whymy__img { width: 100%; height: 116px; margin-bottom: 10px; align-self: auto; }
  .whymy__img img { width: 100%; height: 100%; object-fit: contain; }
  .whymy__num { font-size: 26px; }
  .whymy__label { font-size: 12.5px; }
  .whymy__desc { text-align: left; margin-top: 10px; font-size: 12.5px; line-height: 1.85; }
}

/* ⑩ SPで「3つの強み」の写真が本文より狭かった
      （旧CSS 1884行の `.value__img-wrap { max-width:240px; margin:0 auto }` が効いていた）
      → テキストと同じ幅に揃える */
@media (max-width: 960px) {
  .value__img-wrap { max-width: none; margin: 0; }
}


/* =====================================================================
   V12（2026-09-02）ルシュエットFB反映
   ① 配色を現行ホームページの実色に合わせた（2026-09-02 差し替え）
      luchouette.com をレンダリングして実測：ブランドピンク #DD6F9F / #D16393、
      肌色（ベージュ）#F4EFE5 / #F6F4EB、ナビのグレージュ #998979。
      ※初回は index.html のインライン #800000 を拾って赤にしてしまった＝Taku却下
      V11 の濃淡2段構え（反転セクション＝trust-bar・value）はそのまま維持している
   ② 文字を大きく・濃く（基本ルール側のfont-sizeを引き上げ済み。ここは新規パーツのみ）
   ===================================================================== */
:root {
  /* 反転セクション（実績バー・3つの強み）に置く深いローズピンク。白文字で 5.19:1 */
  --primary:     #B34674;
  --primary-dk:  #92375D;
  --primary-lt:  #F6DCE7;
  /* 数値・チェックアイコン＝現行サイトのブランドピンクそのもの */
  --rose:        #DD6F9F;
  --gold:        #B08344;
  --gold-lt:     #FBEBD6;
  /* CTAは主色と分ける（V11からの原則）。主色より明るく彩度の高いピンク */
  --cta:         #D93B7B;
  --cta-dk:      #B92E66;
  /* 面＝現行サイトの肌色（ベージュ）。旧V12の淡ピンクから差し替え */
  --bg:          #FFFFFF;
  --bg-section:  #F4EFE5;
  --bg-warm:     #FAF6EE;
  --cream:       #FAF6EE;
  --text:        #241C1F;
  --text-mid:    #4A3B40;
  --text-lt:     #6F5F64;
  --border:      #E5DCCE;
  --shadow-sm: 0 1px 3px rgba(90,40,60,.10), 0 1px 2px rgba(90,40,60,.06);
  --shadow-md: 0 4px 16px rgba(90,40,60,.12);
  --shadow-lg: 0 16px 48px rgba(90,40,60,.17);
}

/* ---------- 実績バー：数値＋説明の2段組（FB「2行に分けて説明」） ---------- */
.trust-bar__list--v12 li { align-items: center; }
/* 既存の `.trust-bar__list li > span { display:inline-block }` に負けるので同等以上の詳細度で書く */
.trust-bar__list--v12 li > .tb__stack {
  display: flex; flex-direction: column; align-items: center; line-height: 1.3; padding: 0 3px;
}
.tb__num { font-size: 19px; font-weight: 800; color: var(--gold-lt) !important; letter-spacing: .01em; }
.tb__cap { font-size: 11.5px; font-weight: 600; color: rgba(255,255,255,.92) !important; white-space: nowrap; }
@media (max-width: 1080px) { .tb__num { font-size: 18px; } .tb__cap { font-size: 11px; } }
@media (max-width: 640px) {
  .trust-bar__list--v12 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 8px; width: 100%; }
  .trust-bar__list--v12 li { justify-content: center; }
  .trust-bar__list--v12 li:last-child { grid-column: 1 / -1; }
  .tb__num { font-size: 17px; }
  .tb__cap { font-size: 11px; white-space: normal; text-align: center; }
}

/* ---------- 選ばれる理由：数値でなく短語を置くカード ---------- */
.whymy__num--word { font-size: 16px; line-height: 1.35; letter-spacing: -.01em; }
/* ラベルが長くなったので keep-all を解除して折り返させる（2429行の指定を上書き） */
.whymy__label { word-break: normal; overflow-wrap: anywhere; }
@media (max-width: 640px) { .whymy__num--word { font-size: 16px; } }

/* ---------- 費用表：行ごとの「含まれるもの」開閉 ---------- */
.fee__incl-row td { padding: 0 14px 12px; background: var(--white); border-bottom: 1px solid var(--border); }
.fee__incl { border-top: 1px dashed var(--border); padding-top: 10px; }
.fee__incl-sum { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 6px;
  font-size: 13.5px; font-weight: 700; color: var(--primary); }
.fee__incl-sum::-webkit-details-marker { display: none; }
.fee__incl-icon { margin-left: auto; display: inline-block; font-weight: 700; color: var(--primary); transition: transform .2s; }
.fee__incl[open] .fee__incl-icon { transform: rotate(45deg); }
.fee__incl-body { padding: 10px 2px 4px; }
.fee__incl-g { font-size: 13px; font-weight: 700; color: var(--text); margin: 12px 0 4px; }
.fee__incl-g:first-child { margin-top: 0; }
.fee__incl-list { display: flex; flex-wrap: wrap; gap: 2px 20px; }
.fee__incl-list li { font-size: 13.5px; color: var(--text-mid); line-height: 1.85; position: relative; padding-left: 13px; }
.fee__incl-list li::before { content: "・"; position: absolute; left: -1px; color: var(--rose); }

/* =====================================================================
   V12-B 配色調整（2026-09-11）— 「ピンクが強すぎる」への対応
   方針：面積の大きい反転ブロック（実績バー／3つの強み／特典バー／
         プラン中央カード）だけを淡ピンクの面＋濃い文字に変える。
         バッジ・ボタン・タブなど小面積の塗りは濃いピンクのまま残す
         ＝ `--primary` は書き換えない（部品の可読性を壊さないため）。
   戻すとき：この最終ブロックを丸ごと削除すれば元のV12に戻る。
   ===================================================================== */
:root{
  --soft-face:    #FBEAF1;  /* 大面積の面（淡ピンク） */
  --soft-face-2:  #F6E1EA;  /* 面の中の一段濃いエリア */
  --soft-ink:     #6B3550;  /* 面の上の本文（淡面に対し 7.4:1） */
  --soft-ink-sub: #86596B;  /* 面の上の補足文 */
  --soft-bd:      #EBD2DF;  /* 面の中の罫線 */
  --soft-accent:  #B34674;  /* 面の上で効かせる濃ピンク（数値など） */
  --soft-gold:    #9C6B2F;  /* 面の上のゴールド（淡ゴールドは沈むため） */
}

/* ---------- 1. 面を淡くする ---------- */
.trust-bar, .value, .offerbar { background: var(--soft-face) !important; }
.trust-bar { border-bottom: 1px solid var(--soft-bd); }
.plan__card--featured { background: var(--soft-face) !important; border-color: var(--soft-bd) !important; }

/* ---------- 2. 面の上の文字を濃くする（白文字前提を解除） ---------- */
.trust-bar *, .value:not(.value__more), .offerbar * { color: var(--soft-ink) !important; }
.trust-bar__lead, .tb__cap { color: var(--soft-ink-sub) !important; }
.trust-bar__list li b, .trust-bar__list li strong, .tb__num { color: var(--soft-accent) !important; }

.value .section-label { color: var(--soft-gold) !important; }
.value .section-title, .value .value__item-title,
.value .value__extra-title, .value .value__extra-item-ttl,
.value .value__extra-head, .value__body h3 { color: var(--soft-ink) !important; }
.value .section-sub, .value .value__item-lead { color: var(--soft-ink) !important; }
.value .value__item-body, .value .value__extra-item-body,
.value__body p, .value__body p:last-child { color: var(--soft-ink-sub) !important; }
.value .value__lead, .value a { color: var(--soft-accent) !important; }
.value .value__num { color: rgba(179,70,116,.20) !important; }
.value .section-title::after { background: var(--soft-accent) !important; }
.value .value__extra { background: rgba(255,255,255,.72) !important; border-color: var(--soft-bd) !important; }

/* 「ほかにも、こんな点を評価いただいています」＝白カードなので元の文字色に戻す */
.value .value__more, .value .value__more * { color: var(--text) !important; }
.value .value__more-link { color: var(--soft-accent) !important; }
.value .value__more-list li::after { color: var(--soft-accent) !important; }

/* 特典バー：ラベルの淡ゴールドは淡面で沈むため濃いゴールドへ */
.offerbar .offerbar__label, .offerbar__label { color: var(--soft-gold) !important; }

/* ---------- 3. プラン中央カード：バッジと価格の色は残す ---------- */
.plan__card--featured h3, .plan__card--featured .plan__target,
.plan__card--featured .plan__list li { color: var(--soft-ink) !important; }
.plan__card--featured .plan__badge { color: #fff !important; }
.plan__card--featured .ico--check { color: var(--soft-accent) !important; }
.plan__card--featured .plan__extra-label, .plan__card--featured .plan__extra-icon,
.plan__card--featured .plan__extra-links, .plan__card--featured .plan__extra-links a { color: var(--soft-ink-sub) !important; }
.plan__card--featured .plan__extra-tags a { color: var(--soft-ink) !important; border-color: var(--soft-bd) !important; }
.plan__card--featured .plan__extra-tags a:hover { background: var(--soft-accent) !important; border-color: var(--soft-accent) !important; color: #fff !important; }
.plan__card--featured .btn--primary { color: #fff !important; }

/* ---------- 4. 上の一括指定で潰れた2種を個別に戻す（2026-09-11 検査で検出） ---------- */
/* 特典バーの丸タグ・矢印は濃ピンクの塗りなので文字は白のまま */
.offerbar .offerbar__tag, .offerbar .offerbar__arrow { color: #fff !important; }
/* マーカー強調（反転前提で白文字だった）＝淡面では濃い文字＋ゴールド下線 */
.value .mk, .plan__card--featured .mk { color: var(--soft-ink) !important; }
/* 中央カードは面が淡くなったので、白ボタンではなくCTA色の塗りにする（＝Primary／他2枚は枠線のSecondary） */
.plan__card--featured .btn--white {
  background: var(--cta) !important; color: #fff !important; border-color: var(--cta) !important;
}
.plan__card--featured .btn--white:hover { background: var(--cta-dk) !important; border-color: var(--cta-dk) !important; }

/* ---------- 5. フッターも淡ピンクの面にする（2026-09-11） ---------- */
/* 実績バーより一段濃い淡ピンク＝ページの終わりとして少し締める */
.footer { background: var(--soft-face-2) !important; border-top: 1px solid var(--soft-bd); }
.footer, .footer * { color: var(--soft-ink-sub) !important; }
.footer__main-nav a, .footer__col ul li a { color: var(--soft-ink) !important; }
.footer__main-nav a:hover, .footer__col ul li a:hover,
.footer__sub-nav a:hover, .footer__info-link:hover { color: var(--soft-accent) !important; }
.footer__logo, .footer__info-link, .footer__related span { color: var(--soft-accent) !important; }
.footer__info-title, .footer__col-title { color: var(--soft-gold) !important; border-bottom-color: var(--soft-bd) !important; }
.footer__related { background: rgba(255,255,255,.66) !important; }
.footer__related:hover { background: #fff !important; color: var(--soft-accent) !important; }
.footer__bottom { border-top-color: var(--soft-bd) !important; }
.footer__payment span { border-color: var(--soft-bd) !important; color: var(--soft-ink) !important; }
/* SNSボタンは各社の色を保つ＝文字は白のまま */
.footer__sns-btn--fb, .footer__sns-btn--x, .footer__sns-btn--fb *, .footer__sns-btn--x * { color: #fff !important; }
/* ロゴは濃い面用に白へ反転させていた（brightness(0) invert(1)）＝淡面では消えるので元の色に戻す */
.footer__logo-img { filter: none !important; opacity: 1 !important; }

/* ---------- 6. 為替の注記（三好さんFB「トップ数箇所に RM1=38円 を追記」）---------- */
.fx-note {
  max-width: 1120px; margin: 22px auto 0; padding: 0 20px;
  font-size: 12.5px; line-height: 1.7; color: var(--text-lt); text-align: center;
}
.fx-note strong { color: var(--soft-accent); font-weight: 700; }
/* 費用表：RM主・円は従にする */
.fee__yen { display: block; font-size: 12px; color: var(--text-lt); margin-top: 2px; }
@media (max-width: 640px) { .fx-note { font-size: 12px; text-align: left; } }
.offerbar__fx { margin-top: 12px; font-size: 11.5px; line-height: 1.6; text-align: center; color: var(--soft-ink-sub) !important; }
.offerbar__fx strong { color: var(--soft-accent) !important; font-weight: 700; }
@media (max-width: 640px) { .offerbar__fx { text-align: left; } }

/* =====================================================================
   2026-09-17 三好さんFB「新Top Page 修正案」への対応
   このブロックを丸ごと消せば適用前に戻る
   ① ヘッダー：「お問い合わせ」の見切れを解消（ナビ9本＋無料相談）
   ② 実績バー／特典バーの文字を全体的に大きく
   ④ プランカード「対象：」の改行位置
   ===================================================================== */

/* ① ヘッダー：1101px以上はナビ9本を全部出しきる */
@media (min-width: 1101px) {
  .header__inner { gap: 10px; padding: 0 16px; }
  .header__nav { gap: 10px; font-size: 12.5px; }
  .header__logo-img { width: 172px; height: auto; }
  .header__cta { padding: 9px 18px; font-size: 13.5px; }
}
@media (min-width: 1101px) and (max-width: 1240px) {
  .header__nav { gap: 8px; font-size: 12px; }
}

/* ② 実績バー・特典バーの文字（PC専用に閉じる＝SPの既存指定を潰さない） */
@media (min-width: 901px) {
  .trust-bar__heading { font-size: 16px; }
  .trust-bar__list li { font-size: 15px; }
  .trust-bar__list li b,
  .trust-bar__list li strong { font-size: 17px; }
  .offerbar__label { font-size: 13px; }
  .offerbar__tag { font-size: 12px; padding: 4px 8px; }
  /* 文字を大きくしてもタイトルが2行に折れないよう、内側の余白を詰めて本文列を広げる */
  .offerbar__item { padding: 12px 13px; gap: 4px 10px; }
  .offerbar__arrow { width: 28px; height: 28px; }
  .offerbar__ttl { font-size: 15.5px; }
  .offerbar__desc { font-size: 13px; }
  .offerbar__price s { font-size: 13px; }
  .offerbar__price em { font-size: 28px; }
  .offerbar__note { font-size: 11px; }
  .offerbar__fx { font-size: 12.5px; }
}

/* ④ プランカード「対象：」は語の途中で折らない */
.plan__target .nw { white-space: nowrap; }

/* =====================================================================
   2026-10-20 見せ方調整（グローバルTOP参考）
   方針＝文言・情報・色はそのまま。「中央揃えの見出し＋金の下線」「同じ角丸カードの反復」
   「ピル・番号バッジ・チェック記号」を減らし、左揃えの見出しと罫線で組む。
   BPは既存の 900px（2列→1列）／640px（SP）だけを使う。
   ===================================================================== */
:root { --v13-accent: #B34674; --v13-line: #E6D6DA; }

/* ---- 1. 見出しブロック：中央揃え→左揃え、金の下線を外し、日本語を主役に ---- */
body .sec-head { margin-bottom: 44px; text-align: left; }
body .sec-head .section-label {
  font-family: var(--font-jp); font-size: 12px; font-weight: 700; letter-spacing: .14em;
  color: var(--v13-accent); text-align: left; margin: 0 0 10px;
  display: flex; align-items: center; gap: 8px;
}
body .sec-head .section-label::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--v13-accent); flex-shrink: 0;
}
body .sec-head .section-title {
  font-size: 36px; line-height: 1.4; letter-spacing: .02em; text-align: left;
  padding: 0; margin: 0;
}
body .sec-head .section-title::after { display: none !important; content: none !important; }
body .sec-head .section-sub {
  text-align: left; margin: 16px 0 0; max-width: 40em; font-size: 16px; line-height: 1.9;
}
/* 見出し左・リード右（節ごとに組みを変える＝同じ型の反復を避ける） */
@media (min-width: 901px) {
  body .sec-head--split {
    display: grid; grid-template-columns: auto minmax(0, 1fr);
    column-gap: 56px; align-items: end;
  }
  body .sec-head--split .section-label { grid-column: 1; }
  body .sec-head--split .section-title { grid-column: 1; }
  body .sec-head--split .section-title { white-space: nowrap; }
  body .sec-head--split .section-sub { grid-column: 2; grid-row: 1 / span 2; margin: 0 0 0 auto; padding-bottom: 8px; max-width: 32em; }
}
/* 締めの相談セクションだけ中央（CTAの着地なので） */
body .sec-head--center { text-align: center; }
body .sec-head--center .section-label { justify-content: center; }
body .sec-head--center .section-title,
body .sec-head--center .section-sub { text-align: center; margin-left: auto; margin-right: auto; }

@media (max-width: 640px) {
  body .sec-head { margin-bottom: 32px; }
  body .sec-head .section-title { font-size: 28px; }
  body .sec-head .section-sub { font-size: 15px; }
}

/* ---- 2. FV：ピル型のラベル→色文字＋短い線 ---- */
body .hero__eyebrow {
  background: none; border: 0; border-radius: 0; padding: 0 0 0 30px; position: relative;
  color: var(--v13-accent); font-size: 14px; letter-spacing: .06em;
}
body .hero__eyebrow::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 20px; height: 2px; background: var(--v13-accent);
}

/* ---- 3. 実績バー：月桂樹の飾り→縦の罫線で区切る ---- */
body .trust-bar__list .laurel { display: none; }
@media (min-width: 641px) {
  body .trust-bar__list li { padding: 0 26px; }
  body .trust-bar__list li + li { border-left: 1px solid rgba(179, 70, 116, .28); }
}

/* ---- 4. 目的別のサポート：ピル→文字ラベル、✓の箇条→罫線の行、本文は左揃え ---- */
body .plan__badge {
  background: none !important; box-shadow: none !important; border-radius: 0; padding: 0;
  color: var(--v13-accent); font-size: 13px; letter-spacing: .04em; position: static;
  margin: 20px 0 6px; align-self: flex-start;
}
body .plan__card--featured .plan__badge { color: var(--v13-accent) !important; }
body .plan__card h3, body .plan__card .plan__target { text-align: left; }
body .plan__card h3 { font-size: 21px; }
body .plan__list .ico--check { display: none; }
body .plan__list li { gap: 0; padding-left: 0; }

/* ---- 5. マレーシアが選ばれる理由：白カード5枚→箱を外し、上罫線で並べる ---- */
body .whymy__item {
  background: none; border: 0; border-top: 2px solid var(--v13-accent); border-radius: 0;
  box-shadow: none; text-align: left; padding-top: 18px;
}
body .whymy__img { display: flex; justify-content: flex-start; padding-inline: 0; width: 100%; height: 84px; margin-bottom: 10px; }
body .whymy__img img { width: auto; height: 100%; max-width: 100%; object-fit: contain; object-position: left center; }
body .whymy__num, body .whymy__label, body .whymy__desc { padding-inline: 0; text-align: left; }

/* ---- 6. 3つの強み：「ほかにも」の番号バッジ（順番に意味がない）を外す ---- */
body .value__acc-no { display: none; }
body .value__acc-a { padding-left: 2px; }
body .value__more { background: none; border: 0; box-shadow: none; padding: 8px 0 0; border-top: 1px solid var(--v13-line); border-radius: 0; }
body .value__more-label { border-left: 0; padding-left: 0; }

/* ---- 7. 体験談：箱＋影→上罫線、タグのピル→スラッシュ区切りの文字 ---- */
body .voice {
  background: none; border: 0; border-top: 1px solid var(--v13-line); border-radius: 0;
  box-shadow: none; padding: 28px 0 8px;
}
body .voice__tags { gap: 0; }
body .voice__tags span { background: none; padding: 0; border-radius: 0; color: var(--v13-accent); font-size: 12px; }
body .voice__tags span + span::before { content: "／"; color: var(--text-lt); margin: 0 4px; }

/* ---- 8. 費用：影を外し、ケースのピル→文字ラベル（金額の囲みは残す） ---- */
body .fee__model { box-shadow: none; border-radius: 12px; }
body .fee__model-tag, body .fee__model-tag--main {
  background: none; padding: 0; border-radius: 0; color: var(--v13-accent); font-size: 13px; letter-spacing: .04em;
}

/* ---- 9. エリアの切替：ピル→下線（主タブの塗りは残す） ---- */
body .schools__sub-tab {
  background: none !important; border: 0 !important; border-radius: 0 !important;
  border-bottom: 2px solid transparent !important; padding: 6px 2px; margin-right: 14px; box-shadow: none !important;
  color: var(--text-mid);
}
body .schools__sub-tab.is-active { color: var(--v13-accent) !important; border-bottom-color: var(--v13-accent) !important; }

/* ---- 10. 記事：枠付きカード→写真＋文字（枠なし）、最新情報の外枠を外す ---- */
body .articles .article__card { background: none; border: 0; border-radius: 0; text-align: left; }
body .articles .article__card:hover { box-shadow: none; transform: none; }
body .articles .article__card img { border-radius: 12px; }
body .articles .article__body { padding: 14px 0 0; }
body .article__tag { background: none; padding: 0; border-radius: 0; color: var(--v13-accent); }
body .newslist { background: none; border: 0; border-top: 1px solid var(--v13-line); border-radius: 0; padding: 22px 0 0; text-align: left; }

/* ---- 11. よくある質問：見出し左・質問の一覧右（箱→罫線の行） ---- */
@media (min-width: 901px) {
  body .faq .container { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: 56px; align-items: start; }
  body .faq .sec-head--side { margin-bottom: 0; position: sticky; top: 120px; }
  body .faq .faq__list { max-width: none; margin: 0; }
}
body .faq__item {
  background: none; border: 0; border-bottom: 1px solid var(--v13-line); border-radius: 0; box-shadow: none; margin: 0;
}
body .faq__list { border-top: 1px solid var(--v13-line); }
body .faq__icon { color: var(--v13-accent); }
body .faq__q { padding: 22px 4px; font-size: 16px; }
body .faq__q:hover { background: none; color: var(--v13-accent); }
body .faq__a { padding: 0 4px 24px; border-top: 0; }
body .newslist__cat { background: none; padding: 0; border-radius: 0; color: var(--v13-accent); text-align: left; }
body .plan__badge, body .plan__badge--next, body .plan__card .plan__badge { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; border-radius: 0 !important; color: var(--v13-accent) !important; }
@media (max-width: 640px) {
  body .sec-head--center .section-sub { text-align: left; }
}
body .whymy__item .whymy__num, body .whymy__item .whymy__label, body .whymy__item .whymy__desc { text-align: left !important; align-self: stretch; }
body .whymy__item .whymy__img { height: 104px; justify-content: flex-start !important; align-self: stretch; }
body .whymy__item .whymy__img img { width: 130px !important; height: 100% !important; max-width: 100%; object-fit: contain; object-position: left center; }

/* =====================================================================
   2026-10-20 v13 色味調整（Taku「ボタンのピンクが強い」）
   CTA #D93B7B・主色 #B34674 はブランドピンク #DD6F9F より彩度が高く浮いていた
   → 彩度を落としたくすみローズへ。白文字コントラスト CTA 4.5:1以上／主色 5.9:1
   ===================================================================== */
:root {
  --cta:         #B5587C;
  --cta-dk:      #974766;
  --primary:     #94526E;
  --primary-dk:  #7A4259;
  --primary-lt:  #F2E3E9;
  --v13-accent:  #94526E;
}
/* 見出しの1〜2文字落ち対策（v13で見出しを大きくしたため） */
.plan__card h3 { font-size: clamp(20px, 1.7vw, 23px); text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
.plan__card h3 .nw, .plan__target .nw { white-space: nowrap; }

/* =====================================================================
   2026-10-20 v13 配色刷新（明るく・若く）
   Taku「全体的に渋すぎる。おばさん向け？って感じ、色味が」
   原因＝①文字がプラム／茶系（#241C1F・#4A3B40）②面がベージュ（#F4EFE5）
        ③CTAを彩度の低いくすみローズ（#B5587C）にした ＝3つが重なって年齢層が上がった
   方針＝30〜40代の子育て層向けに「白＋ごく淡いピンクの面×すっきりした紺の文字」へ。
   色の役割（1色1意味）
     --cta     #C24A80 ＝押す所だけ（白文字 4.58:1）。ブランドピンク #DD6F9F と同じ色相で、旧 #D93B7B ほど蛍光でない
     --primary #23709B ＝情報のアクセント（ラベル・数値・アイコン・タブ・バッジ）＝CTAと色相を分ける（白地 5.6:1）
     --brand   #D8608F ＝ブランドの飾り（FVの手書き文字など大きな文字・線だけ）。押せる所には使わない
     --text    #1E2A3A ＝本文（紺寄りのチャコール）
     面＝白／淡ピンク #FFF4F8／淡い空色 #F3F8FB（ベージュは廃止）
   戻すとき：このブロックと次の「v13b FV」ブロックを丸ごと削除
   ===================================================================== */
:root {
  --cta:          #C24A80;
  --cta-dk:       #B32469;
  --primary:      #23709B;
  --primary-dk:   #1B5A7E;
  --primary-lt:   #E3F0F7;
  --v13-accent:   #23709B;
  --v13-line:     #E3E7EE;
  --brand:        #D8608F;
  --brand-lt:     #FDE7F0;
  --rose:         #23709B;
  --gold:         #F2B33D;   /* マーカー線・小さな飾り線だけ（文字色には使わない） */
  --gold-lt:      #FFF3D1;
  --bg:           #FFFFFF;
  --bg-section:   #FFF4F8;
  --bg-warm:      #F3F8FB;
  --cream:        #F3F8FB;
  --text:         #1E2A3A;
  --text-mid:     #465364;
  --text-lt:      #5F6B7E;
  --border:       #E3E7EE;
  --white:        #FFFFFF;
  --shadow-sm: 0 1px 3px rgba(30,42,58,.08), 0 1px 2px rgba(30,42,58,.05);
  --shadow-md: 0 6px 18px rgba(30,42,58,.09);
  --shadow-lg: 0 16px 44px rgba(30,42,58,.12);
  /* 淡面（実績バー・3つの強み・特典・フッター）＝淡ピンク＋紺文字 */
  --soft-face:    #FFF0F6;
  --soft-face-2:  #FDE9F2;
  --soft-ink:     #1E2A3A;
  --soft-ink-sub: #465364;
  --soft-bd:      #F6D5E3;
  --soft-accent:  #23709B;
  --soft-gold:    #23709B;
}
body { color: var(--text); }
/* マーカー：くすんだ金→明るい黄色の蛍光ペン */
.mk, .value .mk, .value__more .mk, .plan__card--featured .mk {
  background: linear-gradient(transparent 62%, rgba(255,214,90,.55) 0) !important;
  border-bottom: 0 !important;
}
.cta__card--primary .mk { background: linear-gradient(transparent 62%, rgba(255,214,90,.55) 0) !important; }
/* 見出し下の短い線はブランドの飾りに */
.section-title::after { background: var(--brand); }
/* 実績バーの縦罫線（旧ローズの rgba を直書きしていた） */
@media (min-width: 641px) {
  body .trust-bar__list li + li { border-left-color: var(--soft-bd); }
}

/* ヘッダー：生成り（rgba(255,251,244)）→白 */
.header { background: rgba(255,255,255,.96); }
/* ボタンは「ピンク＝押す所」に統一：塗り＝最重要（Primary）／ピンクの枠線＝補助（Secondary）。
   旧 .btn--outline は主色（今回 情報用の青）を使っていたので、CTA色の枠線へ付け替える */
.btn--outline, .plan__card:not(.plan__card--featured) .btn--outline { color: var(--cta); border-color: var(--cta); background: #fff; }
.btn--outline:hover, .plan__card:not(.plan__card--featured) .btn--outline:hover { background: var(--cta); border-color: var(--cta); color: #fff; }
/* ヘッダー：無料相談を塗り（最重要）、セミナー案内を枠線（補助）に入れ替え（色だけ・並びと文言はそのまま） */
body .header__cta.btn--outline { background: var(--cta); border-color: var(--cta); color: #fff; }
body .header__cta.btn--outline:hover { background: var(--cta-dk); border-color: var(--cta-dk); }
body .header__seminar { background: #fff; color: var(--cta); border: 2px solid var(--cta); }
body .header__seminar .header__seminar-sub { color: var(--text-lt); }
body .header__seminar:hover { background: var(--brand-lt); color: var(--cta); }

/* 面の交互：淡ピンク（実績・強み・特典）と淡い空色（理由・費用・記事）を交互にして、
   隣り合う節が同じ色で溶けないようにする */
:root { --bg-section: #F3F8FB; }
/* 最終CTA：主色ベタの大きな青い面→淡ピンクの面＋紺文字。ボタンはCTA色の塗り（Primary） */
body .cta__card--primary { background: var(--soft-face); border-color: var(--soft-bd); color: var(--text); }
body .cta__card--primary h3 { color: var(--text); }
body .cta__card:not(.cta__card--primary) h3 { color: var(--text); }
body .cta__card--primary p, body .cta__card--primary .cta__note { color: var(--text-mid); }
body .cta__card--primary .mk { color: var(--text); }
body .cta__card--primary .btn, body .cta__card--primary .btn--white { background: var(--cta); border-color: var(--cta); color: #fff; }
body .cta__card--primary .btn:hover { background: var(--cta-dk); border-color: var(--cta-dk); color: #fff; }
body .cta__step { background: #fff; color: var(--primary); }
body .cta__step--sub { background: var(--bg-section); color: var(--primary); }
.btn--outline-rose { color: var(--cta); border-color: var(--cta); background: #fff; }
.btn--outline-rose:hover { background: var(--brand-lt); color: var(--cta); }

/* =====================================================================
   2026-10-20 v13b FV作り直し（Taku「FVもグローバルの感じで作り直して」）
   グローバル親子留学TOP（.tp-fv2）の作り方を移植：
   淡色の背景＋右に景色と実写のコラージュ（角丸・斜めカット・丸）＋左に大きなコピー
   ＋FV直下の太いCTA帯。BPは既存の 900px（2列→1列）／640px（SP）
   ===================================================================== */
body .hero.hero--fv2 {
  padding: 0; overflow: hidden;
  background:
    radial-gradient(90% 80% at 88% 8%, #E6F2FA 0%, rgba(230,242,250,0) 62%),
    linear-gradient(180deg, #FFF6FA 0%, #FFEFF5 100%);
}
.fv2__in {
  display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 10fr);
  gap: 40px; align-items: center; min-height: 540px; padding-top: 24px; padding-bottom: 24px;
}
.fv2__copy { padding: 40px 0 24px; }
body .hero--fv2 .hero__eyebrow { margin-bottom: 18px; font-size: 15px; font-weight: 700; color: var(--primary); }
body .hero--fv2 .fv2__catch {
  font-size: clamp(40px, 3.7vw, 54px); font-weight: 900; line-height: 1.38; letter-spacing: .02em;
  color: var(--text); margin: 0 0 22px; word-break: keep-all;
}
.fv2__nw { white-space: nowrap; }
.fv2__hand {
  display: inline-block; white-space: nowrap;
  font-family: "Klee One", var(--font-jp); font-weight: 600; font-size: 1.16em; line-height: 1.25;
  color: var(--brand); transform: rotate(-3deg); transform-origin: left bottom; margin-top: .08em;
  padding: 0 .04em;
}
body .hero--fv2 .fv2__sub { font-size: 16px; line-height: 1.95; color: var(--text-mid); margin: 0; max-width: 34em; }

/* コラージュ（右） */
.fv2__vis { position: relative; height: 500px; min-width: 0; }
.fv2__t { position: absolute; display: block; object-fit: cover; border-radius: 22px; box-shadow: 0 12px 28px rgba(30,42,58,.12); }
.fv2__t--a { left: 0; top: 4%; width: 36%; height: 66%; clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%); }
.fv2__t--c { right: 0; top: 0; width: 46%; height: 36%; clip-path: polygon(0 0, 100% 0, 100% 84%, 0 100%); }
.fv2__t--d { left: 6%; bottom: 2%; width: 23%; aspect-ratio: 1; height: auto; border-radius: 50%; border: 5px solid #fff; z-index: 2; }
.fv2__t--b { right: 2%; bottom: 6%; width: 70%; height: 58%; border: 6px solid #fff; border-radius: 26px; z-index: 1; box-shadow: 0 18px 40px rgba(30,42,58,.16); }

/* FV直下のCTA帯 */
.fv2__band { background: rgba(255,255,255,.72); border-top: 1px solid var(--soft-bd); padding: 22px 0 24px; }
body .hero--fv2 .fv2__band-in { display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: nowrap; margin: 0 auto; }
body .hero--fv2 .fv2__btn {
  min-width: 420px; padding: 22px 40px; font-size: 19px; font-weight: 700; letter-spacing: .04em;
  border-radius: 12px; box-shadow: 0 4px 0 var(--cta-dk); text-align: center;
}
body .hero--fv2 .fv2__btn:hover { transform: translateY(2px); box-shadow: 0 2px 0 var(--cta-dk); }
body .hero--fv2 .fv2__btn2 {
  padding: 20px 30px; font-size: 16px; border-radius: 12px; background: #fff;
  color: var(--text); border: 2px solid var(--border); text-align: center;
}
body .hero--fv2 .fv2__btn2:hover { border-color: var(--text-lt); }

@media (max-width: 1100px) {
  body .hero--fv2 .fv2__catch { font-size: 38px; }
  .fv2__vis { height: 440px; }
}
@media (max-width: 900px) {
  .fv2__in { grid-template-columns: 1fr; gap: 8px; min-height: 0; padding-top: 12px; }
  .fv2__copy { padding: 24px 0 0; }
  .fv2__vis { height: 400px; max-width: 620px; width: 100%; margin: 0 auto; }
}
@media (max-width: 640px) {
  body .hero--fv2 .hero__eyebrow { font-size: 13px; margin-bottom: 12px; }
  body .hero--fv2 .fv2__catch { font-size: clamp(29px, 8.4vw, 34px); line-height: 1.42; margin-bottom: 14px; }
  body .hero--fv2 .fv2__sub { font-size: 14px; line-height: 1.9; }
  .fv2__vis { height: clamp(270px, 76vw, 330px); margin: 8px -4px 0; width: auto; }
  .fv2__t { border-radius: 16px; }
  .fv2__t--a { width: 38%; height: 64%; }
  .fv2__t--c { width: 48%; height: 36%; }
  .fv2__t--b { width: 74%; height: 58%; border-width: 4px; border-radius: 18px; }
  .fv2__t--d { width: 25%; border-width: 4px; left: 2%; }
  .fv2__band { padding: 16px 0 20px; }
  body .hero--fv2 .fv2__band-in { flex-direction: column; gap: 10px; }
  body .hero--fv2 .fv2__btn { min-width: 0; width: 100%; padding: 18px 16px; font-size: 17px; }
  body .hero--fv2 .fv2__btn2 { width: 100%; padding: 13px 16px; font-size: 15px; }
}

/* 1文字落ちの対策（実測で検出：理由カードの補足「…インター/も」、SP見出し「…理/由」） */
.whymy__label, .section-title { text-wrap: balance; }
/* 限定数のタグ・プランの「人気」バッジ＝情報なので青（ピンクの塗りは押せる所だけに残す） */
body .offerbar__tag, body .plan__card--featured .plan__badge { background: var(--primary) !important; color: #fff !important; }

/* =====================================================================
   2026-10-20 v13 青をやめてピンク＋濃色の2色に（Taku「青って今の配色に似合うかな？」）
   情報（数値・ラベル・タブ・バッジ）＝濃い文字色の太字／小さな飾り（点・短い線・上罫）＝ブランドピンク
   ピンクの塗り＝申し込みボタン（CTA）だけ。淡い空色の面も無彩色寄りの白に
   ===================================================================== */
:root {
  --primary:      #1E2A3A;
  --primary-dk:   #0F1824;
  --primary-lt:   #FDE7F0;
  --v13-accent:   #1E2A3A;
  --rose:         #1E2A3A;
  --soft-accent:  #1E2A3A;
  --soft-gold:    #1E2A3A;
  --bg-warm:      #F8F8FA;
  --cream:        #F8F8FA;
  --bg-section:   #F8F8FA;
}
body .sec-head .section-label::before,
body .hero__eyebrow::before { background: var(--brand) !important; }
body .whymy__item { border-top-color: var(--brand) !important; }
body .schools__sub-tab.is-active { border-bottom-color: var(--brand) !important; }
/* サポート1のラベルが濃色の塗りになっていた（--primary を背景に使う既存ルール）→ 他カードと同じ文字ラベルに */
html body .plans__grid .plan__card.plan__card--featured .plan__badge { background: none !important; color: var(--text) !important; padding: 0 !important; }
html body .offerbar .offerbar__tag { background: var(--brand-lt) !important; color: var(--text) !important; }
html body .drawer__cta { background: var(--cta) !important; color: #fff !important; }

/* =====================================================================
   2026-10-20 実績バーをCTA帯の上へ＋月桂樹を復活（Taku指示）
   ===================================================================== */
body .trust-bar__list .laurel { display: block !important; color: var(--brand); width: 14px; height: 32px; flex-shrink: 0; }
body .trust-bar__list .laurel--r { transform: scaleX(-1); }
body .trust-bar__list li { display: flex; align-items: center; gap: 8px; }
@media (min-width: 641px) {
  body .trust-bar__list li + li { border-left: 0 !important; }
  body .trust-bar__list li { padding: 0 14px; }
}
body .trust-bar__list li .laurel { color: var(--brand) !important; }
@media (max-width: 640px) {
  body .trust-bar__list li { gap: 4px; }
  body .trust-bar__list li .laurel { width: 9px !important; height: 24px !important; }
  body .trust-bar__list .tb__cap { text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
}
body .tb__cap .nw { white-space: nowrap; }

/* =====================================================================
   2026-10-20 FV下のCTA2本（無料カウンセリング予約／LINE）＝参考画像のタブ付き大ボタン
   ===================================================================== */
body .fvcta { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; max-width: 1000px; margin: 0 auto; padding-top: 22px; }
body .fvcta__btn {
  --c: var(--cta); --c-dk: var(--cta-dk);
  position: relative; display: flex; align-items: center; justify-content: center; gap: 14px;
  min-height: 92px; padding: 18px 20px 14px; border-radius: 10px;
  background: var(--c); color: #fff; text-decoration: none;
  box-shadow: 0 6px 0 var(--c-dk); transition: transform .12s, box-shadow .12s;
}
body .fvcta__btn:hover { transform: translateY(3px); box-shadow: 0 3px 0 var(--c-dk); color: #fff; }
body .fvcta__btn--line { --c: #06B04C; --c-dk: #04913E; }
body .fvcta__tab {
  position: absolute; top: 0; left: 50%; transform: translate(-50%, -55%);
  background: #fff; color: var(--c); border: 3px solid var(--c);
  border-radius: 999px; padding: 4px 26px; font-size: 16px; font-weight: 700; white-space: nowrap; line-height: 1.4;
}
body .fvcta__ico { width: 30px; height: 30px; flex-shrink: 0; fill: none; stroke: #fff; stroke-width: 1.8; }
body .fvcta__ico--line { width: 40px; height: 40px; stroke: none; color: var(--c); }
body .fvcta__label { font-size: 22px; font-weight: 700; letter-spacing: .06em; line-height: 1.3; }
@media (max-width: 840px) {
  body .fvcta { grid-template-columns: 1fr; gap: 30px; padding: 22px 16px 0; }
  body .fvcta__btn { min-height: 74px; gap: 10px; }
  body .fvcta__label { font-size: 18px; }
  body .fvcta__tab { font-size: 14px; padding: 3px 20px; }
  body .fvcta__ico--line { width: 34px; height: 34px; }
}
body .hero--fv2 .fv2__band-in.fvcta { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; max-width: 1040px; padding-top: 26px; }
@media (max-width: 840px) {
  body .hero--fv2 .fv2__band-in.fvcta { grid-template-columns: 1fr; gap: 36px; padding: 28px 16px 4px; }
}
/* 月桂樹を素材4番（Hugeicons laurel-wreath-left-01・MIT）に差し替え（2026-10-20 Taku選定） */
body .trust-bar__list li .laurel { width: 16px !important; height: 30px !important; }
@media (max-width: 640px) { body .trust-bar__list li .laurel { width: 12px !important; height: 24px !important; } }
body .trust-bar__list li .laurel path { stroke: currentColor !important; fill: none !important; }
body .tb__cap .nw { font-weight: inherit; color: inherit; }
@media (min-width: 841px) {
  body .trust-bar__list { flex-wrap: nowrap !important; }
  body .trust-bar__list li { padding: 0 10px !important; gap: 6px; }
}
/* 2026-10-20 Taku「ボタンのピンクが渋い・少しだけ彩度を上げて」#C24A80(S50%)→#D42F7A(S58%)・白文字4.57:1 */
:root { --cta: #D42F7A; --cta-dk: #B32469; }
/* 月桂樹の線色が文字色のままだった→ブランドピンクを直接指定 */
html body .trust-bar .trust-bar__list li svg.laurel, html body .trust-bar .trust-bar__list li svg.laurel path { color: #D8608F !important; stroke: #D8608F !important; }
html body .trust-bar .tb__cap .nw { font-weight: inherit !important; }
/* 2026-10-20 特典の見出しを吹き出しに（Taku） */
html body .offerbar .offerbar__bubble { text-align: center; margin: 0 0 22px; letter-spacing: 0; text-transform: none; }
html body .offerbar .offerbar__bubble span {
  position: relative; display: inline-block; padding: 10px 30px; border-radius: 999px;
  background: var(--cta); color: #fff; font-size: 20px; font-weight: 700; letter-spacing: .06em; line-height: 1.4;
}
html body .offerbar .offerbar__bubble span::after {
  content: ""; position: absolute; left: 50%; bottom: -9px; transform: translateX(-50%);
  border: 10px solid transparent; border-bottom: 0; border-top-color: var(--cta);
}
@media (max-width: 840px) { html body .offerbar .offerbar__bubble span { font-size: 17px; padding: 8px 22px; } }

/* =====================================================================
   2026-10-20 FB一式（Taku FB 1〜10）。既存ルールは残し、ここで上書きする
   ===================================================================== */
/* 語句単位で折り返す（1文字落ち・不自然な改行の対策）。中の文字は通常どおり */
.fbw { display: inline-block; }

/* FB1 FVコピー差し替え：3行目の手書き風を9文字に伸ばしたぶん、1行の幅に収まる大きさに */
body .hero--fv2 .fv2__catch { font-size: clamp(36px, 3.4vw, 50px); }
body .hero--fv2 .fv2__catch .fv2__hand { font-size: 1.08em; }
@media (max-width: 1100px) { body .hero--fv2 .fv2__catch { font-size: 36px; } }
@media (max-width: 640px) { body .hero--fv2 .fv2__catch { font-size: clamp(26px, 7.9vw, 31px); } }

/* FB2・FB6 帯の区切りを整理：FV（淡ピンク→空色のグラデ）｜実績バー＋CTA帯＝ひと続きの白｜特典帯＝淡ピンク
   ・実績バーがFVと同色で同化していた → 白にしてFVと切る
   ・CTA帯だけ半透明の白で浮いていた → 実績バーと同じ白の1枚にまとめる（間の罫線もなくす） */
html body .hero--fv2 .trust-bar { background: #fff !important; border-top: 1px solid var(--soft-bd); border-bottom: 0 !important; }
html body .hero--fv2 .fv2__band { background: #fff; border-top: 0; padding-bottom: 36px; }
html body .offerbar { border-top: 1px solid var(--soft-bd); }

/* FB3 FV下ボタンの吹き出し＝ステップフォーム完了画面の型（塗り＋白文字・しっぽでボタンを指す・幅は文字幅）
   左＝カウンセリング（ピンク）／右＝LINE（緑）。白文字4.5:1以上の濃さにしている */
body .hero--fv2 .fv2__band-in.fvcta { padding-top: 60px; }
html body .fvcta__tab {
  top: -14px; transform: translate(-50%, -100%);
  background: var(--tab-bg, #B32469); color: #fff; border: 0;
  padding: 7px 20px; font-size: 15px; font-weight: 700; letter-spacing: .02em; line-height: 1.4;
}
html body .fvcta__tab::after {
  content: ""; position: absolute; left: 50%; bottom: -6px; width: 11px; height: 11px; margin-left: -6px;
  background: inherit; transform: rotate(45deg); border-radius: 0 0 2px 0;
}
html body .fvcta__btn--consult { --tab-bg: #B32469; }   /* 白文字 6.05:1 */
html body .fvcta__btn--line { --tab-bg: #037A35; }      /* 白文字 5.47:1 */
@media (max-width: 840px) {
  html body .hero--fv2 .fv2__band-in.fvcta { gap: 58px; padding-top: 52px; }
  html body .fvcta__tab { font-size: 14px; padding: 6px 16px; top: -12px; }
}

/* FB4 LINEボタンを明るく：彩度100%の緑へ。白文字で3:1を保てる上限（#00A849＝3.14:1）
   ※LINE公式の #06C755 は白文字2.26:1で3:1を割るため不採用（変更点メモ参照） */
html body .fvcta__btn--line {
  --c: #00A849; --c-dk: #008238;
  box-shadow: 0 6px 0 var(--c-dk), inset 0 2px 0 rgba(255,255,255,.22);
}
html body .fvcta__btn--line:hover { box-shadow: 0 3px 0 var(--c-dk), inset 0 2px 0 rgba(255,255,255,.22); }

/* FB5 特典の吹き出し：白文字が「.offerbar * { color: … !important }」（2026-10-?? 淡色化）に負けて紺になっていた → 白に戻す */
html body .offerbar .offerbar__bubble span { color: #fff !important; }

/* FB7 目的別サポートのリード：語句単位で折り返す（.fbw）。PCは1文1行に収まる幅へ */
html body #service .section-sub.fb-lead { max-width: 46em; }

/* FB8 選ばれる理由：見出しの下にリード（sec-head--stack に変更）／各項目の見出し下にブランドピンクの短い線
   ・項目の上の罫線（ピンク）は見出し下の線と二重になるので外した */
html body .whymy__item { border-top: 0 !important; }
html body .whymy__label::after {
  content: ""; display: block; width: 28px; height: 2px; border-radius: 2px;
  background: var(--brand); margin-top: 12px;
}
html body .whymy__label { margin-bottom: 14px; }

/* 強み・理由の節見出し＝見出しの下に説明（split解除に伴う余白） */
html body #whymy .sec-head--stack .section-sub,
html body #value .sec-head--stack .section-sub { max-width: none; margin-left: 0; }

/* FB9 3つの強み：見出しを体言止め＋SVGアイコン（Tabler Icons・MIT） */
html body .value__body h3.value__h { display: flex; align-items: flex-start; gap: 12px; }
html body .value__ico { width: 30px; height: 30px; flex-shrink: 0; color: #D42F7A; margin-top: 2px; }
html body .value__lead { text-wrap: balance; }

/* FB10 体験談の仮写真（Codex生成）を見える大きさに */
html body .voice__img-wrap { width: 72px; height: 72px; }
@media (max-width: 640px) { html body .voice__img-wrap { width: 60px; height: 60px; } }
/* 体験談本文の末尾1〜2文字落ち対策（写真を72pxにして本文幅が縮んだため） */
html body .voice__text { text-wrap: pretty; }
/* FB9 SP：見出しが中央揃えの節なので、アイコン＋2行のかたまりごと中央に置き、行頭は揃える */
@media (max-width: 840px) {
  html body .value__body h3.value__h { justify-content: center; }
  html body .value__body h3.value__h > span { text-align: left; }
}

/* 2026-10-20 v14：サポートカードの費用欄を外し、費用の目安へのリンク1本に */
body .svc-fee-link { text-align: center; margin: 32px 0 8px; }
body .svc-fee-link a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--text); text-decoration: underline; text-decoration-color: var(--brand); text-decoration-thickness: 2px; text-underline-offset: 6px; }
body .svc-fee-link a:hover { color: var(--cta); }
/* 2026-10-20 Taku「吹き出しやめて＼今だけ…／に」 */
html body .offerbar .offerbar__slash { text-align: center; margin: 0 0 18px; font-size: 22px; font-weight: 700; letter-spacing: .06em; color: var(--cta) !important; background: none; text-transform: none; }
@media (max-width: 840px) { html body .offerbar .offerbar__slash { font-size: 17px; letter-spacing: .02em; } }

/* =====================================================================
   2026-10-20 FV飛び出し型（Taku「グローバルのこういう親子が飛び出しているような構成のファーストビューにしたい」）
   グローバルTOP .tp-fv2 の配置を移植：景色タイル4枚（縦長KL・海・街並み・丸い料理）を奥に、
   切り抜きの親子（透過PNG）を手前に。足はタイルの下端より下へはみ出す。
   コピー・実績バー・CTA帯は変更なし。BPは既存の 900px／640px に合わせる
   ===================================================================== */
@media (min-width: 901px) {
  body .hero--fv2 .fv2__in { max-width: 1200px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; min-height: 0; padding-top: 8px; padding-bottom: 0; }
  body .hero--fv2 .fv2__copy { padding: 24px 0 40px; }
}
.fv2__vis--jump { height: 560px; }
.fv2__vis--jump .fv2__tiles { position: absolute; inset: 0; z-index: 0; }
.fv2__vis--jump .fv2__t { border: 0; box-shadow: 0 10px 24px rgba(30,42,58,.12); border-radius: 22px; z-index: auto; }
.fv2__vis--jump .fv2__t--a { left: 2%; top: 7%; width: 42%; height: 66%; bottom: auto; right: auto; clip-path: polygon(0 6%, 100% 0, 100% 100%, 0 100%); }
.fv2__vis--jump .fv2__t--b { right: 0; top: 3%; left: auto; bottom: auto; width: 40%; height: 38%; clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
.fv2__vis--jump .fv2__t--c { right: 3%; top: 45%; left: auto; bottom: auto; width: 34%; height: 34%; clip-path: none; }
.fv2__vis--jump .fv2__t--d { left: 50%; top: 0; bottom: auto; width: 19%; height: auto; aspect-ratio: 1; border-radius: 50%; border: 5px solid #fff; clip-path: none; }
.fv2__person {
  position: absolute; z-index: 2; left: 52%; bottom: 0; transform: translateX(-50%);
  height: 90%; width: auto; max-width: none;
  filter: drop-shadow(0 10px 16px rgba(30,42,58,.18));
}
@media (max-width: 1100px) and (min-width: 901px) {
  .fv2__vis--jump { height: 520px; }
}
@media (max-width: 900px) {
  .fv2__vis--jump { height: 480px; max-width: 560px; }
}
@media (max-width: 640px) {
  .fv2__vis--jump { height: clamp(330px, 92vw, 400px); margin: 10px -16px 0; width: auto; max-width: none; }
  .fv2__vis--jump .fv2__t { border-radius: 16px; }
  .fv2__vis--jump .fv2__t--a { left: 5%; top: 6%; width: 40%; height: 66%; }
  .fv2__vis--jump .fv2__t--b { right: 4%; top: 2%; width: 40%; height: 38%; }
  .fv2__vis--jump .fv2__t--c { right: 7%; top: 44%; width: 32%; height: 34%; }
  .fv2__vis--jump .fv2__t--d { left: 51%; top: 0; width: 21%; border-width: 4px; border-radius: 50%; }
  .fv2__person { height: 96%; left: 50%; }
}
/* ===== /2026-10-20 FV飛び出し型 ===== */

/* =====================================================================
   2026-10-20 相談節＝完了画面型（Taku「ホームのサンクスページを参考にして同じような見せ方に。nitteも埋め込んで」）
   手本＝制作/stepform_test_site/index.html の完了画面（.tabs-block / .seg / .seg-bubble / .embed-wrap.is-nitte）
   ・旧 STEP1/STEP2 の2カード（.cta__grid）は HTML から外した。旧ルールは残置（当たる要素が無いだけ）
   ・nitteの幅＝iframe幅701〜720pxで3日→7日表示に切り替わり、736pxで横にはみ出す（手本の実測）
     → カードを最大680pxにして iframe を約620pxに抑え、3日表示のまま見せる
   ・nitteは720px未満だと説明文＋「はじめる」の画面が先に出る（URLで飛ばせない）＝--view 720px で「はじめる」まで見える高さ
   ===================================================================== */
.cbox {
  --cb-pink: #B32469;          /* 白文字 6.05:1（FV下ボタンの吹き出しと同じ） */
  --cb-face: #FDF3F7;
  max-width: 680px; margin: 0 auto 28px; background: #fff;
  border: 1px solid var(--soft-bd, #F6D5E3); border-radius: 12px;
  box-shadow: 0 6px 24px rgba(192,82,122,.07);
  padding: 24px 28px 28px;
}
/* 吹き出し＝タブと同じ2等分。選択中＝ピンク塗り白文字／非選択＝白地ピンク枠。しっぽでタブを指す。幅は文字幅 */
.cbox__bubbles { display: grid; grid-template-columns: 1fr 1fr; justify-items: center; margin: 0 0 16px; }
.cbox__bubble {
  max-width: calc(100% - 8px); position: relative;
  padding: 6px 14px; border-radius: 999px; text-align: center; white-space: nowrap;
  font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: 0;
  color: var(--cb-pink); background: #fff; border: 1.5px solid #E9B8CB;
}
.cbox__bubble::after {
  content: ""; position: absolute; left: 50%; bottom: -6px; width: 9px; height: 9px; margin-left: -5px;
  background: inherit; border-right: inherit; border-bottom: inherit; transform: rotate(45deg);
}
.cbox__bubble.is-on { color: #fff; background: var(--cb-pink); border-color: var(--cb-pink); }
/* タブ＝下線タブ＋選択中だけ淡い地（手本の .seg と同じ） */
.cbox__tabs { display: flex; margin: 0 0 20px; border-bottom: 1px solid var(--soft-bd, #F6D5E3); }
.cbox__tab {
  flex: 1 1 0; min-width: 0; min-height: 46px; padding: 10px 2px; border: 0; background: none; position: relative;
  white-space: nowrap; text-align: center; font-family: inherit;
  font-size: 16px; line-height: 1.45; font-weight: 700; color: var(--text-mid);
  cursor: pointer; transition: color .18s;
}
.cbox__tab::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0;
  background: transparent; transition: background .18s;
}
.cbox__tab.is-on { color: var(--cb-pink); background: var(--cb-face); border-radius: 8px 8px 0 0; }
.cbox__tab.is-on::after { background: var(--cta, #D42F7A); }
@media (hover: hover) and (pointer: fine) { .cbox__tab:not(.is-on):hover { color: var(--cta, #D42F7A); } }
.cbox__tab:focus-visible, .cbox__kind-btn:focus-visible, .cbox__go:focus-visible { outline: 2px solid var(--cta, #D42F7A); outline-offset: 2px; }

/* JSが無いとき＝2つのパネルを縦に並べる（区切りの線だけ入れる）。JSがあるときは hidden で切り替え */
.cbox:not(.is-js) .cbox__tabs, .cbox:not(.is-js) .cbox__bubbles { display: none; }
.cbox:not(.is-js) #cpane-sem { border-top: 1px solid var(--soft-bd, #F6D5E3); margin-top: 24px; padding-top: 24px; }
.cbox__pane[hidden] { display: none; }

.cbox__note {
  font-size: 15px; color: var(--text-mid); line-height: 1.8; margin: 0 0 18px; text-align: center;
  text-wrap: balance; line-break: strict;
}
.cbox__note b { color: var(--text); font-weight: 700; }
/* ご相談の内容＝2択（Segmented Control） */
.cbox__q { font-size: 14px; font-weight: 700; color: var(--text); text-align: center; margin: 0 0 10px; }
.cbox__kind {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; margin: 0 0 16px;
  background: #F6EEF2; border-radius: 12px;
}
.cbox__kind-btn {
  min-height: 56px; padding: 8px 6px; border: 1.5px solid transparent; border-radius: 9px; background: none;
  font-family: inherit; font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--text-mid);
  cursor: pointer; transition: background .18s, color .18s, border-color .18s;
}
.cbox__kind-btn small { display: block; font-size: 12px; font-weight: 500; color: inherit; opacity: .9; margin-top: 2px; }
.cbox__kind-btn.is-on {
  background: #fff; border-color: var(--cta, #D42F7A); color: var(--cb-pink);
  box-shadow: 0 2px 8px rgba(174,50,108,.12);
}
@media (hover: hover) and (pointer: fine) { .cbox__kind-btn:not(.is-on):hover { color: var(--cb-pink); } }
/* 「埋まりがち」の一言＝手本は青緑の囲み。v13で青をやめた（10/20）ので淡いピンクの面にする */
.cbox__callout {
  border: 1px solid var(--soft-bd, #F6D5E3); background: #FFF8FB; color: var(--text);
  border-radius: 10px; padding: 10px 14px; margin: 0 0 16px;
  font-size: 13px; font-weight: 700; line-height: 1.8; text-align: center; text-wrap: balance; line-break: strict;
}
/* nitte埋め込み（手本 .embed-wrap.is-nitte{--crop:0px; --view:720px} を踏襲） */
.cbox__embed {
  --crop: 0px; --view: 720px;
  width: 100%; border-radius: 12px; overflow: hidden;
  border: 1px solid #F0DBE4; background: #fff; margin-bottom: 10px;
}
.cbox__iframe {
  display: block; width: 100%; border: 0;
  margin-top: calc(var(--crop) * -1); min-height: calc(var(--view) + var(--crop));
}
.cbox__fallback { display: block; text-align: center; font-size: 12px; color: var(--text-lt); text-decoration: underline; padding: 4px 0; }
/* セミナー側 */
.cbox__facts {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0 0 20px;
}
.cbox__facts > div { background: #FFF8FB; border-radius: 10px; padding: 12px 8px; text-align: center; }
.cbox__facts dt { font-size: 12px; font-weight: 700; color: var(--cb-pink); margin: 0 0 2px; letter-spacing: .06em; }
.cbox__facts dd { font-size: 15px; font-weight: 700; color: var(--text); margin: 0; line-height: 1.5; }
.cbox__go {
  display: flex; align-items: center; justify-content: center; min-height: 56px; padding: 12px 20px;
  border-radius: 999px; background: var(--cta, #D42F7A); color: #fff; text-decoration: none;
  font-size: 16px; font-weight: 700; letter-spacing: .04em; transition: background .18s;
}
@media (hover: hover) and (pointer: fine) { .cbox__go:hover { background: var(--cta-dk, #B32469); color: #fff; } }
.cbox__after { font-size: 13px; color: var(--text-mid); text-align: center; margin: 12px 0 0; }

@media (max-width: 840px) {
  .cbox { padding: 20px 10px 22px; }
  /* SPは複数行の説明を左揃えに（台帳 10/14＝SPで複数行の導入文を中央揃えにしない） */
  .cbox__note { text-align: left; font-size: 14px; }
  .cbox__bubble { font-size: 11px; padding: 6px 8px; }
  .cbox__tab { font-size: 15px; }
  .cbox__callout { font-size: 12px; }
  .cbox__kind-btn { font-size: 14px; padding: 8px 4px; }
  .cbox__kind-btn small { font-size: 11px; }
  .cbox__facts { grid-template-columns: 1fr; gap: 6px; }
  .cbox__facts > div { display: flex; align-items: baseline; gap: 12px; text-align: left; padding: 10px 14px; }
  .cbox__facts dt { flex: 0 0 auto; margin: 0; }
}
/* ===== /2026-10-20 相談節＝完了画面型 ===== */

/* ===== 2026-10-20 目的別＝写真カード型（#service）=====
   手本＝グローバル親子留学サイト SEARCH「目的から探す」（.sf-pslide）。
   差分＝台帳10/19「見出しは日本語を大きく、英語は小さく」に従い、英字は小ラベル・日本語見出しを最大に（台帳10/20「写真上の日本語は16px以上・900」も満たす）。
   カード全体のリンク＝.pcard__go::after を全面に広げる（hrefを増やさない）。開閉と関連リンクは z-index で上に出して押せるまま。
   SP（≤840px）＝横スライダー（scroll-snap・次のカードを約15%のぞかせる）＝スマ留比較メモ 高2 の推奨 */
.pcards {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px;
  align-items: stretch; margin-top: 8px;
}
.pcard {
  position: relative; display: flex; flex-direction: column; min-width: 0;
  color: var(--text, #1E2A3A);
}
.pcard__ph {
  position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 14px;
  background: #E9EDF2;
}
.pcard__ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pcard__cap {
  position: absolute; left: 0; right: 0; bottom: 0;
  display: flex; flex-direction: column; padding: 96px 20px 20px; color: #fff;
  /* 濃紺寄りの黒（#0F1824）。白文字のコントラストを下端で確保 */
  background: linear-gradient(to bottom, rgba(15,24,36,0) 0%, rgba(15,24,36,.62) 38%, rgba(15,24,36,.88) 100%);
}
.pcard__en {
  font-family: inherit; font-size: 12px; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; line-height: 1.3; opacity: .92;
}
.pcard .pcard__jp {
  margin: 6px 0 0; padding: 0; font-size: 21px; font-weight: 900; line-height: 1.4;
  letter-spacing: .03em; color: #fff; text-align: left; border: 0; background: none;
}
.pcard__jp::before, .pcard__jp::after { content: none; }
.pcard__catch {
  margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.6);
  font-size: 14px; font-weight: 700; line-height: 1.5;
}
.pcard__when {
  margin: 14px 2px 0; font-size: 18px; font-weight: 900; line-height: 1.4;
  color: #B32469; letter-spacing: .02em;
}
.pcard__txt { margin: 2px 2px 0; font-size: 14px; line-height: 1.6; color: var(--text, #1E2A3A); }
.pcard__inc {
  position: relative; z-index: 2;
  margin: 14px 0 0; padding: 12px 14px; border-radius: 10px; background: #F5F7FA;
}
.pcard__inc-ttl { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #465364; }
.pcard__list { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; padding: 0; list-style: none; }
.pcard__list li {
  max-width: 100%; padding: 3px 9px; border-radius: 6px; background: #fff;
  font-size: 12.5px; line-height: 1.55; color: #33404F;
}
.pcard .nw { white-space: nowrap; }
.pcard__more { position: relative; z-index: 2; margin: 10px 0 0; }
.pcard__more-label {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-height: 44px; padding: 0 14px; border-radius: 10px; background: #F5F7FA;
  font-size: 13px; font-weight: 700; color: #465364; cursor: pointer; list-style: none;
}
.pcard__more-label::-webkit-details-marker { display: none; }
.pcard__more-icon { font-size: 15px; line-height: 1; color: #465364; transition: transform .2s; }
.pcard__more[open] .pcard__more-icon { transform: rotate(45deg); }
.pcard__more-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.pcard__more-tags a {
  display: inline-flex; align-items: center; min-height: 32px; padding: 4px 12px;
  border: 1px solid #D5DBE3; border-radius: 999px; background: #fff;
  font-size: 12.5px; color: #1E2A3A; text-decoration: none;
}
.pcard__more-tags a:hover { border-color: #D42F7A; color: #B32469; }
.pcard__go {
  display: flex; align-items: center; justify-content: center; min-height: 48px;
  margin-top: 14px; padding: 0 16px; border-radius: 999px;
  background: #FDE7F0; color: #B32469; font-size: 14px; font-weight: 700; text-decoration: none;
}
.pcard__more { margin-bottom: auto; }
.pcard__go::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 14px; }
.pcard__go:focus-visible { outline: 2px solid #D42F7A; outline-offset: 2px; }
@media (hover: hover) {
  .pcard__ph img { transition: transform .4s; }
  .pcard:hover .pcard__ph img { transform: scale(1.04); }
  .pcard:hover .pcard__go { background: #D42F7A; color: #fff; }
}
@media (min-width: 841px) and (max-width: 1100px) {
  .pcards { gap: 18px; }
  .pcard .pcard__jp { font-size: 19px; }
  .pcard__cap { padding: 80px 16px 16px; }
}
@media (max-width: 840px) {
  .pcards {
    display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: 16px;
    margin: 8px -16px 0; padding: 0 16px 6px; scrollbar-width: none;
  }
  .pcards::-webkit-scrollbar { display: none; }
  .pcard { flex: 0 0 82%; max-width: 340px; scroll-snap-align: start; }
  .pcard__ph { aspect-ratio: 4 / 5; }
  .pcard__cap { padding: 72px 16px 16px; }
  .pcard .pcard__jp { font-size: 19px; }
  .pcard__catch { font-size: 13px; }
}
/* ===== /2026-10-20 目的別＝写真カード型 ===== */

/* =====================================================================
   2026-10-20 探し方・FAQ・理由見出し（Taku指示3件）
   1) 特典帯の直後に「親子留学の探し方」（.find）を新設＝グローバルTOPのFIND節が手本
      背景＝淡グレー：前（特典帯＝淡ピンク）・後（目的別のサポート＝白）のどちらとも区別する
   2) よくある質問＝見出しも質問も中央の1列（左右2列をやめる）
   3) 選ばれる理由＝5項目の見出し（強調語／小見出し）の大きさ・太さ・色を統一
   ===================================================================== */
/* ---- 1. 親子留学の探し方 ---- */
.find { background: #F8F8FA; padding: 64px 0; }
.find .section-sub b { font-weight: 700; color: var(--text); }
.find__dx {
  margin-top: 32px; border-radius: 16px; overflow: hidden;
  background: #FFF8F0; border: 1px solid #F1E4DA;
}
.find__dx-in { padding: 24px 20px 20px; text-align: center; }
.find__dx-ttl { margin: 0; font-size: 20px; font-weight: 700; line-height: 1.5; color: #1E2A3A; }
.find__dx-q { margin: 8px 0 18px; font-size: 15px; line-height: 1.8; color: #465364; }
.find__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; max-width: 320px; min-height: 52px; padding: 12px 24px;
  border-radius: 10px; background: #D42F7A; color: #fff;
  font-size: 16px; font-weight: 700; text-decoration: none; white-space: nowrap;
  box-shadow: 0 4px 12px rgba(204, 63, 128, .22);
}
.find__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.find__btn:focus-visible { outline: 2px solid #D42F7A; outline-offset: 3px; }
.find__dx-art { display: block; width: 100%; height: auto; aspect-ratio: 2.3 / 1; object-fit: cover; }

.find__menu { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 40px; align-items: start; }
.find__item { border: 0; }
.find__sum {
  list-style: none; cursor: pointer; display: flex; flex-direction: column; align-items: center;
  padding: 12px 0 4px; text-align: center; color: #1E2A3A;
}
.find__sum::-webkit-details-marker { display: none; }
.find__en { font-size: 12px; font-weight: 700; letter-spacing: .16em; line-height: 1.4; color: #1E2A3A; opacity: .7; }
.find__jp { margin-top: 4px; font-size: 18px; font-weight: 700; letter-spacing: .02em; line-height: 1.4; color: #1E2A3A; white-space: nowrap; }
.find__bar { display: block; width: 100%; height: 5px; margin-top: 12px; border-radius: 3px; background: #D8608F; transition: background .2s; }
.find__arw { width: 22px; height: 22px; margin-top: 6px; fill: none; stroke: #1E2A3A; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.find__item[open] .find__arw { transform: rotate(180deg); }
.find__sum:focus-visible { outline: 2px solid #D42F7A; outline-offset: 4px; border-radius: 6px; }
.find__links { list-style: none; margin: 8px 0 0; padding: 4px 0; background: #fff; border-radius: 12px; border: 1px solid #E6D6DA; }
.find__links li + li { border-top: 1px solid #F0E6E9; }
.find__links a {
  display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 16px;
  font-size: 15px; font-weight: 700; line-height: 1.5; color: #1E2A3A; text-decoration: none;
}
.find__links a::after {
  content: ""; flex: 0 0 auto; margin-left: auto; width: 7px; height: 7px;
  border-top: 2px solid #D8608F; border-right: 2px solid #D8608F; transform: rotate(45deg);
}
.find__tag {
  flex: 0 0 auto; display: inline-block; min-width: 4.2em; padding: 2px 8px; border-radius: 999px;
  background: #FDE7F0; font-size: 12px; font-weight: 700; color: #1E2A3A; text-align: center;
}
@media (hover: hover) {
  .find__btn:hover { background: #B32469; }
  .find__sum:hover .find__bar { background: #D42F7A; }
  .find__links a:hover { color: #D42F7A; }
}
@media (min-width: 841px) {
  .find { padding: 88px 0; }
  .find__dx { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; }
  .find__dx-in { padding: 32px 36px; text-align: left; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
  .find__dx-ttl { font-size: 22px; }
  .find__btn { width: auto; min-width: 280px; }
  .find__dx-art { height: 100%; aspect-ratio: auto; min-height: 220px; }
  .find__menu { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 48px; }
  .find__en { font-size: 13px; }
  .find__jp { font-size: 21px; }
}

/* ---- 2. よくある質問：中央揃え・1列（v13の「見出し左・質問右」2列をやめる） ---- */
html body .faq .container { display: block; }
html body .faq .sec-head--side { position: static; margin: 0 auto 32px; text-align: center; }
html body .faq .sec-head--side .section-label,
html body .faq .sec-head--side .section-title,
html body .faq .sec-head--side .section-sub { text-align: center; margin-left: auto; margin-right: auto; justify-content: center; }
html body .faq .faq__list { max-width: 760px; margin: 0 auto; }

/* ---- 3. 選ばれる理由：5項目の見出しを同じ大きさ・太さ・色に（数字系24px／文章系16pxの不揃いを解消） ---- */
html body #whymy .whymy__item .whymy__num,
html body #whymy .whymy__item .whymy__num--word { font-size: 18px; font-weight: 800; line-height: 1.4; letter-spacing: 0; color: #1E2A3A; }
html body #whymy .whymy__item .whymy__label { font-size: 14px; font-weight: 700; line-height: 1.4; color: #1E2A3A; }
@media (max-width: 840px) {
  html body #whymy .whymy__item .whymy__num,
  html body #whymy .whymy__item .whymy__num--word { font-size: 20px; }
}
/* ===== /2026-10-20 探し方・FAQ・理由見出し ===== */

/* ===== 2026-10-20 強み写真カード・体験談カード =====
   1) #value「3つの強み」＝写真カード型（Taku 案A）。手本＝グローバル親子留学サイト「年齢から探す」(.sf-pslide)
      #service（.pcard＝縦長3:4・写真単体・カード下に期間＋灰色の箱＋ピンクのボタン）と見分ける工夫：
      ・写真を横長4:3／・写真上に STRENGTH 01〜03 の番号／・写真と説明文を1枚の白いカードに一体化（ボタンなし）
      ・写真上の日本語見出し＝18px以上・900（台帳10/20）。白文字の下は濃色を .74 以上にしてコントラスト4.5:1以上
   2) #results 体験談＝手本 VOICES（.tp-article）＝上に写真、下にタグ・見出し・利用サービス・抜粋・続きを読む
   SP（≤840px）はどちらも横スライダー（次のカードがのぞく） */
#value .value__list { display: block; }
.vcards {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px;
  margin-top: 8px; padding: 0; list-style: none;
}
.vcard {
  display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border-radius: 16px; background: #fff; box-shadow: 0 6px 22px rgba(30,42,58,.07);
}
.vcard__ph { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #E9EDF2; }
.vcard__ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vcard__cap {
  position: absolute; left: 0; right: 0; bottom: 0;
  display: flex; flex-direction: column; padding: 52px 20px 18px; color: #fff;
  background: linear-gradient(to bottom, rgba(15,24,36,0) 0, rgba(15,24,36,.74) 44px, rgba(15,24,36,.88) 100%);
}
.vcard__no { display: flex; align-items: center; gap: 6px; line-height: 1; }
.vcard__no > span { font-size: 11px; font-weight: 700; letter-spacing: .16em; opacity: .95; }
.vcard__no b { font-size: 20px; font-weight: 800; letter-spacing: .04em; }
.vcard__ico { width: 18px; height: 18px; flex: none; color: #fff; margin-right: 2px; }
#value .vcard .vcard__jp {
  margin: 8px 0 0; padding: 0; font-size: 19px; font-weight: 900; line-height: 1.4;
  letter-spacing: .02em; color: #fff; text-align: left; border: 0; background: none;
}
#value .vcard .vcard__jp::before, #value .vcard .vcard__jp::after { content: none; }
.vcard__catch {
  margin-top: 9px; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.6);
  font-size: 13.5px; font-weight: 700; line-height: 1.5;
}
.vcard__body { padding: 18px 20px 22px; border-top: 3px solid #D42F7A; }
.vcard__body p { margin: 0; font-size: 14.5px; line-height: 1.85; color: var(--text, #1E2A3A); }
#value .value__more { margin-top: 40px; }
@media (min-width: 841px) and (max-width: 1100px) {
  .vcards { gap: 18px; }
  #value .vcard .vcard__jp { font-size: 18px; }
  .vcard__cap { padding: 48px 16px 16px; }
  .vcard__body { padding: 16px 16px 20px; }
}
@media (max-width: 840px) {
  .vcards {
    display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: 16px;
    margin: 8px -16px 0; padding: 4px 16px 14px; scrollbar-width: none;
  }
  .vcards::-webkit-scrollbar { display: none; }
  .vcard { flex: 0 0 84%; max-width: 340px; scroll-snap-align: start; }
  .vcard__cap { padding: 44px 16px 14px; }
  #value .vcard .vcard__jp { font-size: 18px; }
  .vcard__body { padding: 16px 16px 18px; }
  .vcard__body p { font-size: 14px; }
  #value .value__more { margin-top: 28px; }
}

/* 体験談カード（.vstory） */
#results .vstories {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px;
  margin: 8px 0 0; padding: 0; list-style: none;
}
#results .vstories > li { display: flex; min-width: 0; margin: 0; padding: 0; }
.vstory {
  flex: 1; display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border: 1px solid #E6D6DA; border-radius: 14px; background: #fff;
}
.vstory__ph { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: #E9EDF2; }
.vstory__ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vstory__body { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 18px; }
.vstory__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; padding: 0; list-style: none; }
.vstory__tags li {
  margin: 0; padding: 2px 10px; border-radius: 999px; background: #FDE7F0;
  font-size: 12px; font-weight: 700; line-height: 1.6; color: #B32469;
}
.vstory__tags li::before { content: none; }
#results .vstory .vstory__ttl {
  margin: 0; padding: 0; font-size: 16px; font-weight: 700; line-height: 1.6;
  color: #1E2A3A; text-align: left; border: 0; background: none;
}
#results .vstory .vstory__ttl::before, #results .vstory .vstory__ttl::after { content: none; }
.vstory__who { margin: 6px 0 0; font-size: 12.5px; font-weight: 700; line-height: 1.6; color: #B32469; }
.vstory__ex { margin: 8px 0 14px; font-size: 13.5px; line-height: 1.8; color: #33404F; }
.vstory__ex b { font-weight: 700; color: #1E2A3A; }
.vstory__more {
  display: inline-flex; align-items: center; align-self: flex-start; min-height: 44px; margin-top: auto;
  font-size: 14px; font-weight: 700; color: #B32469; text-decoration: none;
}
.vstory__more:hover { text-decoration: underline; }
@media (min-width: 841px) and (max-width: 1180px) {
  #results .vstories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 840px) {
  #results .vstories {
    display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: 16px;
    margin: 8px -16px 0; padding: 4px 16px 14px; scrollbar-width: none;
  }
  #results .vstories::-webkit-scrollbar { display: none; }
  #results .vstories > li { flex: 0 0 80%; max-width: 320px; scroll-snap-align: start; }
}
/* 2026-10-20 強み・体験談 微調整（1440実測後）：タグの折返し・見出しの1文字落ち・写真上の帯の高さ */
.vcard__cap { padding-top: 44px; }
.vcard__catch, #value .vcard .vcard__jp { text-wrap: balance; }
.vstory__tags { gap: 5px; }
.vstory__tags li { padding: 1px 8px; font-size: 11.5px; }
#results .vstory .vstory__ttl, .vstory__who { text-wrap: pretty; }
.vstory__more { gap: 4px; }

/* SP 390で「経験/者」「掲/載）→」の1〜2文字落ち（変更前から）を解消 */
#value .value__acc-q, #results .voice__more { text-wrap: balance; }
/* ===== /2026-10-20 強み写真カード・体験談カード ===== */

/* =====================================================================
   2026-10-20 理由＝数字帯／年齢・予算節（Taku指示2件）
   1) #whymy＝Bloom Baby「MALAYSIA TODAY」型：KL写真の全幅＋暗いオーバーレイ＋大きな数字5つ＋縦の細線＋出典
      前後＝#age（淡グレー）／#value（淡ピンク）＝写真帯で必ず区切れる
   2) #find のメニュー＝ページ内スクロールの4ボタン（目的・年齢・学校・予算）
      新設 #age（#serviceの直後＝淡グレー）／#budget（#schoolsの直後＝淡ピンク。前=白・後=#articles淡グレー）
   ===================================================================== */
#service, #age, #schools, #budget { scroll-margin-top: 72px; }

/* ---- 1. 選ばれる理由＝数字帯 ---- */
html body #whymy.whymy--band {
  position: relative; padding: 112px 0 64px; color: #fff;
  background: #2A2421 url(../images/whymy/whymy_kl.webp) center 30% / cover no-repeat;
}
html body #whymy.whymy--band::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(22,20,26,.62) 0%, rgba(22,20,26,.72) 40%, rgba(22,20,26,.88) 100%);
}
html body #whymy.whymy--band .container { position: relative; z-index: 1; }
html body #whymy.whymy--band .sec-head { text-align: center; margin: 0 auto 48px; }
html body #whymy.whymy--band .section-label { color: rgba(255,255,255,.88); justify-content: center; }
html body #whymy.whymy--band .section-label::before,
html body #whymy.whymy--band .section-label::after { background: rgba(255,255,255,.6); }
html body #whymy.whymy--band .section-title {
  color: #fff; font-family: "Shippori Mincho B1", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-weight: 700; letter-spacing: .08em; text-align: center;
}
html body #whymy.whymy--band .section-sub {
  color: #fff; text-align: center; margin: 16px auto 0; max-width: 720px; font-size: 16px; line-height: 2;
  text-shadow: 0 1px 8px rgba(0,0,0,.35);
}
.wmy__stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); max-width: 1120px; margin: 0 auto; padding: 0; list-style: none; }
.wmy__stats li { padding: 4px 20px 0; border-left: 1px solid rgba(255,255,255,.38); text-align: center; }
.wmy__stats li:first-child { border-left: 0; }
.wmy__num {
  margin: 0; font-family: "Shippori Mincho B1", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  font-size: 44px; font-weight: 700; line-height: 1.2; letter-spacing: .02em; color: #fff; white-space: nowrap;
}
.wmy__num small { margin-left: 4px; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.wmy__lbl { margin: 8px 0 0; font-size: 14px; font-weight: 700; line-height: 1.6; color: #fff; }
.wmy__desc { margin: 12px 0 0; font-size: 13px; line-height: 1.8; color: rgba(255,255,255,.9); text-align: left; }
html body #whymy.whymy--band .mk { background: none; color: #fff; font-weight: 700; box-shadow: inset 0 -2px 0 rgba(255,214,120,.85); }
.wmy__more { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; max-width: 1000px; margin: 48px auto 0; padding: 24px 0 0; border-top: 1px solid rgba(255,255,255,.38); }
.wmy__more > div { padding: 0 24px; }
.wmy__more > div + div { border-left: 1px solid rgba(255,255,255,.38); }
.wmy__more dt { font-size: 17px; font-weight: 800; line-height: 1.5; color: #fff; }
.wmy__more dt span { display: block; margin-top: 2px; font-size: 13px; font-weight: 700; color: rgba(255,255,255,.88); }
.wmy__more dd { margin: 8px 0 0; font-size: 14px; line-height: 1.8; color: rgba(255,255,255,.92); }
.wmy__src { max-width: 1000px; margin: 40px auto 0; font-size: 11px; line-height: 1.8; color: rgba(255,255,255,.82); text-align: left; }
@media (max-width: 1240px) {
  .wmy__stats li { padding: 4px 14px 0; }
  .wmy__num { font-size: 38px; }
}
@media (max-width: 840px) {
  html body #whymy.whymy--band { padding: 80px 0 48px; background-image: url(../images/whymy/whymy_kl-sp.webp); }
  html body #whymy.whymy--band .section-sub { font-size: 14px; text-align: left; }
  .wmy__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wmy__stats li { padding: 20px 12px; border-left: 0; border-top: 1px solid rgba(255,255,255,.38); }
  .wmy__stats li:nth-child(even) { border-left: 1px solid rgba(255,255,255,.38); }
  .wmy__stats li:nth-child(-n+2) { border-top: 0; padding-top: 4px; }
  .wmy__stats li:last-child { grid-column: 1 / -1; }
  .wmy__num { font-size: 34px; }
  .wmy__num small { font-size: 14px; }
  .wmy__lbl { font-size: 13px; }
  .wmy__desc { font-size: 13px; }
  .wmy__more { grid-template-columns: 1fr; margin-top: 24px; padding-top: 0; }
  .wmy__more > div { padding: 20px 0 0; }
  .wmy__more > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.38); margin-top: 20px; }
  .wmy__src { margin-top: 32px; }
}

/* ---- 2a. 探し方：ページ内スクロールの4ボタン ---- */
.find__menu--jump { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; margin-top: 40px; }
.find__menu--jump .find__item {
  display: flex; flex-direction: column; align-items: center; min-height: 44px; padding: 12px 0 4px;
  text-align: center; color: #1E2A3A; text-decoration: none;
}
.find__menu--jump .find__jp { font-size: 17px; }
.find__menu--jump .find__item:focus-visible { outline: 2px solid #D42F7A; outline-offset: 4px; border-radius: 6px; }
@media (hover: hover) {
  .find__menu--jump .find__item:hover .find__bar { background: #D42F7A; }
  .find__menu--jump .find__item:hover .find__arw { transform: translateY(3px); }
}
@media (min-width: 841px) {
  .find__menu--jump { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; margin-top: 48px; }
  .find__menu--jump .find__jp { font-size: 20px; }
}

/* ---- 2b. 年齢から探す（写真なし＝成長の帯＋タイポ＋アイコン） ---- */
.age2 { background: #F8F8FA; padding: 64px 0; }
.age2 .section-sub b, .bud .section-sub b { font-weight: 700; color: var(--text); }
.age2__list { display: grid; grid-template-columns: 1fr; gap: 0; margin: 32px 0 0; padding: 0; list-style: none; }
.age2__col { position: relative; padding: 20px 0 24px 24px; border-left: 6px solid var(--age-tone); }
.age2__col--1 { --age-tone: #F5C9DB; --age-ink: #1E2A3A; }
.age2__col--2 { --age-tone: #E487AE; --age-ink: #fff; }
.age2__col--3 { --age-tone: #C23E7B; --age-ink: #fff; }
.age2__head { display: grid; grid-template-columns: 52px 1fr; column-gap: 14px; align-items: center; }
.age2__ico {
  grid-row: span 2; width: 52px; height: 52px; padding: 12px; border-radius: 50%;
  background: var(--age-tone); color: var(--age-ink);
  fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.age2__stage { margin: 0; font-size: 26px; font-weight: 900; line-height: 1.3; letter-spacing: .02em; color: #1E2A3A; }
.age2__kind { margin: 2px 0 0; font-size: 13px; font-weight: 700; line-height: 1.5; color: #465364; }
.age2__txt { margin: 14px 0 0; font-size: 15px; line-height: 1.8; color: #2C3646; }
.age2__txt b { font-weight: 700; color: #1E2A3A; }
.age2__links, .bud__plinks { list-style: none; margin: 14px 0 0; padding: 0; border-top: 1px solid #E3DCE0; }
.age2__links li, .bud__plinks li { border-bottom: 1px solid #E3DCE0; }
.age2__links a, .bud__plinks a {
  display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 4px;
  font-size: 15px; font-weight: 700; line-height: 1.5; color: #1E2A3A; text-decoration: none;
}
.age2__links a::after, .bud__plinks a::after {
  content: ""; flex: 0 0 auto; margin-left: auto; width: 7px; height: 7px;
  border-top: 2px solid #D42F7A; border-right: 2px solid #D42F7A; transform: rotate(45deg);
}
@media (hover: hover) { .age2__links a:hover, .bud__plinks a:hover, .bud__fee:hover .bud__band { color: #D42F7A; } }
@media (min-width: 841px) {
  .age2 { padding: 88px 0; }
  .age2__list { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; }
  .age2__col { padding: 28px 28px 0; border-left: 0; border-top: 8px solid var(--age-tone); }
  .age2__col + .age2__col { border-left: 1px solid #E3DCE0; }
  .age2__stage { font-size: 28px; }
}

/* ---- 2c. 予算と期間から探す（料金表は出さない＝期間の長さを帯の長さで・学費帯をコインの数で） ---- */
.bud { background: #FFF0F6; padding: 64px 0; }
.bud__grid { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 32px; }
.bud__h { margin: 0 0 8px; padding-bottom: 10px; border-bottom: 2px solid #1E2A3A; font-size: 20px; font-weight: 800; line-height: 1.4; color: #1E2A3A; }
.bud__period { list-style: none; margin: 0; padding: 0; }
.bud__prow { padding: 18px 0 4px; }
.bud__prow + .bud__prow { border-top: 1px dashed #E2B9CB; }
.bud__term { margin: 0; font-size: 20px; font-weight: 900; line-height: 1.4; color: #1E2A3A; }
.bud__len { display: block; width: var(--len); min-width: 48px; height: 8px; margin: 8px 0 0; border-radius: 4px; background: linear-gradient(90deg, #E487AE, #C23E7B); }
.bud__plinks { margin-top: 10px; border-top: 0; }
.bud__plinks li:last-child { border-bottom: 0; }
.bud__fees { list-style: none; margin: 0; padding: 0; }
.bud__fees li + li { border-top: 1px dashed #E2B9CB; }
.bud__fee { display: grid; grid-template-columns: 84px 1fr auto; align-items: center; column-gap: 12px; min-height: 72px; padding: 12px 4px; color: #1E2A3A; text-decoration: none; }
.bud__fee::after { content: ""; grid-column: 3; justify-self: end; width: 8px; height: 8px; border-top: 2px solid #D42F7A; border-right: 2px solid #D42F7A; transform: rotate(45deg); }
.bud__coins { display: flex; gap: 2px; color: #C23E7B; }
.bud__coin { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bud__band { font-size: 22px; font-weight: 900; line-height: 1.3; letter-spacing: .01em; white-space: nowrap; }
.bud__band small { margin-right: 6px; font-size: 13px; font-weight: 700; color: #465364; }
.bud__go { grid-column: 2; font-size: 13px; font-weight: 700; color: #465364; }
.bud__note { margin: 12px 0 0; font-size: 13px; line-height: 1.7; color: #465364; }
@media (min-width: 841px) {
  .bud { padding: 88px 0; }
  .bud__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; margin-top: 48px; }
  .bud__band { font-size: 24px; }
}
/* ===== /2026-10-20 理由＝数字帯／年齢・予算節 ===== */
/* 2026-10-20 数字帯 1440実測後の調整：「約」を小さく（約9,000人の列はみ出し）・説明文の下地を濃く（4.5:1）・見出しの字間 */
html body #whymy.whymy--band::before { background: linear-gradient(180deg, rgba(22,20,26,.66) 0%, rgba(22,20,26,.8) 35%, rgba(22,20,26,.9) 100%); }
html body #whymy.whymy--band .section-title { letter-spacing: .06em; }
.wmy__num .wmy__pre { margin: 0 2px 0 0; font-size: 20px; }
.wmy__desc { color: #fff; }
.wmy__more dd { color: #fff; }
@media (max-width: 840px) { .wmy__num .wmy__pre { font-size: 16px; } }
html body #whymy.whymy--band::before { background: linear-gradient(180deg, rgba(22,20,26,.68) 0%, rgba(22,20,26,.86) 30%, rgba(22,20,26,.92) 100%); }
.wmy__desc, .wmy__more dd, .wmy__src { text-shadow: 0 1px 6px rgba(0,0,0,.45); }
html body #whymy.whymy--band .mk { background: none !important; }
.wmy__desc, .wmy__more dd, .wmy__src, .age2__txt, .bud__note, .wmy__lbl { text-wrap: pretty; }

/* ===== 2026-10-20 三好FB最終照合 ===== */
/* ② 三好さんFB「実績バー・特典バーの文字を全体的に大きく」：v12時点の 数値19px／説明11.5px・特典の注記10.5px のまま残っていたため引き上げ（font-sizeは整数） */
html body .trust-bar .tb__num { font-size: 24px; }
html body .trust-bar .tb__cap { font-size: 14px; }
html body .offerbar .offerbar__desc { font-size: 14px; }
html body .offerbar .offerbar__price s { font-size: 14px; }
html body .offerbar .offerbar__price .offerbar__note { font-size: 11px; }
html body .offerbar .offerbar__fx { font-size: 14px; }
@media (max-width: 1240px) {
  html body .trust-bar .tb__num { font-size: 22px; }
  html body .trust-bar .tb__cap { font-size: 13px; }
}
@media (max-width: 840px) {
  html body .trust-bar .tb__num { font-size: 20px; }
  html body .trust-bar .tb__cap { font-size: 12px; }
  html body .offerbar .offerbar__ttl { font-size: 16px; }
  html body .offerbar .offerbar__desc { font-size: 13px; }
  html body .offerbar .offerbar__price s { font-size: 13px; }
  html body .offerbar .offerbar__tag { font-size: 12px; }
  html body .offerbar .offerbar__fx { font-size: 13px; }
}
/* 三好さんFB「RMメインで（）円表示・為替レート表記を数箇所」：そのほかのサービス内の注記 */
.svc-more__list .nw { white-space: nowrap; }
.svc-more__fx { margin: 10px 0 0; font-size: 13px; line-height: 1.6; color: #465364; }
/* ===== /2026-10-20 三好FB最終照合 ===== */

/* =====================================================================
   2026-10-21 タスク1 追従CTAバー（.fixcta）＝js/fixcta.js
   ・SP（〜840px）：画面下に全幅・2ボタン横並び・安全領域を考慮
   ・PC：右下にコンパクトな縦2段
   ・出し入れはtransform＋visibilityのみ（position:fixedなのでCLSなし）
   ===================================================================== */
.fixcta {
  position: fixed; z-index: 55; right: 24px; bottom: 24px;
  transform: translateY(calc(100% + 40px)); visibility: hidden;
  transition: transform .28s ease, visibility 0s linear .28s;
}
.fixcta.is-shown { transform: none; visibility: visible; transition: transform .28s ease, visibility 0s; }
.is-drawer-open .fixcta { visibility: hidden; }
.fixcta__in {
  display: grid; gap: 8px; width: 288px; padding: 10px;
  background: #fff; border-radius: 14px; box-shadow: 0 10px 30px rgba(30,42,58,.18);
}
.fixcta__btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 8px 12px; border-radius: 8px;
  color: #fff; text-decoration: none; font-weight: 700; line-height: 1.3;
}
.fixcta__btn--consult { background: #D42F7A; box-shadow: 0 3px 0 #B32469; }
.fixcta__btn--line { background: #00A849; box-shadow: 0 3px 0 #04913E; }
.fixcta__btn:hover { color: #fff; filter: brightness(1.05); }
.fixcta__ico { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: #fff; stroke-width: 1.8; }
.fixcta__ico--line { width: 24px; height: 24px; stroke: none; color: #00A849; }
.fixcta__label { font-size: 15px; letter-spacing: .04em; white-space: nowrap; }
@media (max-width: 840px) {
  .fixcta { left: 0; right: 0; bottom: 0; transform: translateY(100%); }
  .fixcta__in {
    width: auto; grid-template-columns: 1fr 1fr; gap: 8px; border-radius: 0;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    box-shadow: 0 -4px 16px rgba(30,42,58,.12);
  }
  .fixcta__btn { min-height: 46px; padding: 6px 6px; gap: 5px; }
  .fixcta__btn--consult .fixcta__ico { display: none; }
  .fixcta__ico--line { width: 20px; height: 20px; }
  .fixcta__label { font-size: 13px; letter-spacing: 0; }
  /* フッター最下部がバーに隠れないよう余白（バーはフッター表示中は隠れるが念のため） */
  .footer__bottom { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
}
/* ===== /2026-10-21 タスク1 ===== */

/* =====================================================================
   2026-10-21 タスク2 SPの縦の長さを詰める（〜840pxのみ・PCは不変）
   ・文章・リンクは削らない（DOMはそのまま）。横スライダー化＋余白・画像高さの圧縮
   ・スライダーは既存（.pcards／.vcards／.vstories）と同じ作法＝次のカードがのぞく・scroll-snap
   ===================================================================== */
@media (max-width: 840px) {
  /* --- 共通：節の上下余白・見出し下の余白 --- */
  html body section.find, html body section.age2, html body section.bud { padding-top: 44px; padding-bottom: 44px; }
  html body section.plans, html body section.value, html body section.results,
  html body section.schools, html body section.articles, html body section.cta-section,
  html body section.faq { padding-top: 40px; padding-bottom: 40px; }
  html body section.whymy--band { padding-top: 56px; padding-bottom: 40px; }
  html body .sec-head { margin-bottom: 22px; }
  html body .whymy--band .sec-head { margin-bottom: 28px; }

  /* --- 共通：横スライダー（次のカードがのぞく） --- */
  html body .age2__list, html body .articles__grid {
    display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: 16px;
    margin-left: -16px; margin-right: -16px; padding: 0 16px 6px; scrollbar-width: none;
  }
  html body .age2__list::-webkit-scrollbar, html body .articles__grid::-webkit-scrollbar { display: none; }

  /* --- 年齢から探す：3列の縦積み → 横スライダー --- */
  html body .age2__list > li { flex: 0 0 82%; max-width: 330px; scroll-snap-align: start; }

  /* --- よく読まれる記事：4枚の縦積み → 横スライダー --- */
  html body .articles__grid { margin-bottom: 28px; }
  html body .articles__grid > .article__card { flex: 0 0 74%; max-width: 300px; scroll-snap-align: start; }
  html body .articles__grid > .article__card img { height: 150px; }

  /* --- FV：コラージュの高さ・実績バー・2ボタン帯 --- */
  html body .fv2__vis--jump { max-height: 300px; }
  html body .fv2__band { padding-bottom: 24px; }
  html body .hero--fv2 .fv2__band-in.fvcta { gap: 34px; }
  html body .fvcta__btn { min-height: 64px; }

  /* --- 親子留学の探し方：イラスト高さ --- */
  html body .find__dx-art { max-height: 110px; object-fit: cover; width: 100%; }

  /* --- 目的別：写真を低く --- */
  html body .pcard__ph { aspect-ratio: 5 / 4; }

  /* --- 体験談 --- */
  html body .footer__services { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; row-gap: 20px; }
  html body .footer__col ul { gap: 2px; }
  html body .footer__col ul li a { display: block; padding-top: 4px; padding-bottom: 4px; font-size: 12px; line-height: 1.45; text-wrap: pretty; }

  /* --- 学校：タブを横1列のスクロールに --- */
  html body .schools__tabs, html body .schools__sub-tabs {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
    margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px;
  }
  html body .schools__tabs { margin-bottom: 20px; }
  html body .schools__tabs::-webkit-scrollbar, html body .schools__sub-tabs::-webkit-scrollbar { display: none; }
  html body .schools__tab, html body .schools__sub-tab { flex-shrink: 0; white-space: nowrap; }

  /* --- FAQ：行の余白 --- */
  html body .faq__q { padding-top: 15px; padding-bottom: 15px; }

  /* --- （2巡目）選ばれる理由：数字5つ → 横スライダー（2枚＋のぞき） --- */
  html body #whymy.whymy--band { padding-top: 56px; padding-bottom: 40px; }
  html body #whymy .sec-head { margin-bottom: 26px; }
  html body #whymy .wmy__stats {
    display: flex; gap: 0; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: 16px;
    margin-left: -16px; margin-right: -16px; padding: 0 16px 6px; scrollbar-width: none;
  }
  html body #whymy .wmy__stats::-webkit-scrollbar { display: none; }
  html body #whymy .wmy__stats > li { flex: 0 0 62%; scroll-snap-align: start; padding-top: 4px; padding-bottom: 8px; }
  html body #whymy .wmy__more { margin-top: 20px; }

  /* --- （2巡目）そのほかのサービス：＋を右に並べて行を低く --- */
  html body .svc-more__gttl { display: flex; flex-wrap: nowrap; align-items: center; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
  html body .svc-more__gex { text-wrap: pretty; }
  html body .svc-more__gtext { flex: 1 1 auto; min-width: 0; }
  html body .svc-more__icon { flex: 0 0 auto; margin: 0; position: static; }

  /* --- （2巡目）フッター：列見出しを小さく・会社情報の余白 --- */
  html body .footer__col-title { font-size: 12px; letter-spacing: 0; text-wrap: pretty; }
  html body .footer__info { margin-bottom: 14px; }
  html body .footer__top { margin-bottom: 24px; }

  /* --- （3巡目）写真の高さ（強み・体験談）・予算の行・営業時間 --- */
  html body .vcard__ph { aspect-ratio: 16 / 9; }
  html body .vstory__ph { aspect-ratio: 16 / 9; }
  html body .bud__prow { padding: 12px 0 2px; }
  html body .bud__fee { min-height: 60px; padding-top: 8px; padding-bottom: 8px; }
  html body .bud__grid { gap: 28px; }
  html body .cta__hours { flex-direction: row; flex-wrap: wrap; gap: 6px 24px; padding: 14px 18px; font-size: 13px; line-height: 1.75; }
  html body .newslist__items a, html body .newslist__items li { text-wrap: pretty; }
  /* --- （4巡目）細かな余白 --- */
  html body .pcard__ph { aspect-ratio: 16 / 11; }
  html body .find__dx-in { padding: 18px 16px 14px; }
  html body .trust-bar { padding-top: 16px; padding-bottom: 14px; }
  html body .value__acc-q { padding-top: 10px; padding-bottom: 10px; }
  html body .footer__main-nav { padding-bottom: 14px; margin-bottom: 20px; }
}
/* ===== /2026-10-21 タスク2 ===== */

/* 2026-10-21 タスク2：フッターのリンク群を details 化（PCは常に開いた状態・見た目は従来どおり） */
.footer__grp-sum { display: block; list-style: none; }
.footer__grp-sum::-webkit-details-marker { display: none; }
.footer__grp-sum::marker { content: ""; }
.footer__grp-sum .footer__col-title { margin-top: 0; }
@media (min-width: 841px) {
  .footer__grp-sum { pointer-events: none; cursor: default; }
  .footer__grp--sub { margin-top: 16px; }
}
@media (max-width: 840px) {
  html body .footer__services { display: block; }
  html body .footer__grp { border-bottom: 1px solid #F1C9DA; }
  html body .footer__grp:first-child, html body .footer__col:first-child .footer__grp:first-child { border-top: 1px solid #F1C9DA; }
  html body .footer__grp-sum { position: relative; display: flex; align-items: center; min-height: 46px; padding-right: 28px; cursor: pointer; }
  html body .footer__grp-sum .footer__col-title { margin: 0; padding: 0; border: 0; font-size: 13px; }
  html body .footer__grp-sum::after { content: "＋"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 15px; color: #D42F7A; }
  html body .footer__grp[open] .footer__grp-sum::after { content: "－"; }
  html body .footer__grp > ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; padding-bottom: 12px; }
}
/* ===== /2026-10-21 タスク2（フッター） ===== */

/* =====================================================================
   2026-10-21 タスク3 本番トップの網羅（足したリンクは控えめな文字リンク）
   ===================================================================== */
.schools__more { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: 4px auto 24px; padding: 0; max-width: 900px; }
.schools__more a, .faq__more a, .footer__ext { font-size: 13px; font-weight: 700; color: #465364; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #C9D1DB; }
.schools__more a:hover, .faq__more a:hover, .footer__ext:hover { color: #D42F7A; }
.artmore { margin: 0 0 28px; text-align: left; }
.artmore__title { margin: 0 0 8px; font-size: 15px; font-weight: 700; color: #1E2A3A; }
.artmore__items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
.artmore__items li { border-bottom: 1px solid var(--border); }
.artmore__items a { display: block; padding: 10px 0; font-size: 14px; line-height: 1.55; color: #1E2A3A; text-decoration: none; text-wrap: pretty; }
.artmore__items a:hover { color: #D42F7A; }
.faq__more { grid-column: 1 / -1; max-width: 760px; margin: 20px auto 0; text-align: right; }
.footer__ext { display: inline-block; margin-top: 10px; font-weight: 400; }
@media (max-width: 840px) {
  .schools__more { justify-content: flex-start; gap: 4px 14px; margin-bottom: 18px; }
  .artmore__items { grid-template-columns: 1fr; }
  .artmore__items a { padding: 8px 0; font-size: 13px; }
  .faq__more { text-align: left; margin-top: 14px; }
}
/* ===== /2026-10-21 タスク3 ===== */

/* =====================================================================
   2026-10-21 タスク4 細かい直し（台帳照合）
   ===================================================================== */
/* 台帳10/20「明朝体の数字が見にくい」：選ばれる理由の数字を本文と同じゴシックの太字に（大きさは据え置き） */
html body #whymy .wmy__num { font-family: "Noto Sans JP", sans-serif; font-weight: 800; letter-spacing: 0; }
/* 台帳10/14「SPで複数行の導入文が中央揃え」：探し方の診断ボックスはSPで左揃え */
@media (max-width: 840px) {
  html body .find__dx-in { text-align: left; }
  html body .find__dx-in .find__btn { margin-left: 0; }
  /* FAQ回答の1文字落ち（「…あります。」の「す。」） */
  html body .faq__a p, html body .faq__a li { text-wrap: pretty; }
}
/* ===== /2026-10-21 タスク4 ===== */
/* 2026-10-21 タスク4追補：「ほかによく読まれている記事」をSPでは開閉に（PCは常に開く＝js/sp-compact.js） */
.artmore__sum { display: block; list-style: none; }
.artmore__sum::-webkit-details-marker { display: none; }
.artmore__sum::marker { content: ""; }
@media (min-width: 841px) { .artmore__sum { pointer-events: none; } }
@media (max-width: 840px) {
  html body .artmore { border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); margin-bottom: 20px; }
  html body .artmore__sum { position: relative; display: flex; align-items: center; min-height: 48px; padding-right: 28px; cursor: pointer; }
  html body .artmore__sum .artmore__title { margin: 0; font-size: 14px; }
  html body .artmore__sum::after { content: "＋"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); color: #D42F7A; }
  html body .artmore[open] .artmore__sum::after { content: "－"; }
}
/* 2026-10-21 タスク4追補：体験談本文の1文字落ち（1180pxで「た。」」だけが最終行に）。v14から既存 */
html body .vstory__ex { text-wrap: pretty; }
/* ===== /2026-10-21 タスク4（追補） ===== */
/* 2026-10-21 Taku「少し明るくできる？」＝オーバーレイを薄く（.68〜.92 → .42〜.66）。読みやすさは文字の影で補う */
html body #whymy.whymy--band::before { background: linear-gradient(180deg, rgba(22,20,26,.42) 0%, rgba(22,20,26,.56) 35%, rgba(22,20,26,.66) 100%); }
html body #whymy.whymy--band .section-title, .wmy__num, .wmy__lbl, .wmy__desc, .wmy__more dt, .wmy__more dd, .wmy__src { text-shadow: 0 1px 3px rgba(0,0,0,.55), 0 0 14px rgba(0,0,0,.45); }
/* 2026-10-21 コピー変更「子どもの可能性を広げる。」がSP390で右端に接する→SPだけ文字を少し小さく */
@media (max-width: 640px) { html body .hero .fv2__catch { font-size: clamp(22px, 6.8vw, 34px); } }
/* 2026-10-21 Taku「何の数字か分からない→上に小見出し。白帯・丸みのタグ」 */
.wmy__tag { display: inline-block; margin: 0 0 12px; padding: 4px 16px; border-radius: 999px; background: #fff; color: #1E2A3A; font-size: 14px; font-weight: 700; line-height: 1.5; letter-spacing: .04em; text-shadow: none !important; }
@media (max-width: 840px) { .wmy__tag { font-size: 12px; padding: 3px 12px; margin-bottom: 8px; } }
/* 2026-10-21 Taku「体験談の続きを読むは外す」＝カード下の余白を詰める */ .vstory__body { padding-bottom: 24px; }
.articles__subttl { margin: 0 0 16px; }
.articles__subttl { text-align: left; margin: 0 0 20px !important; } .articles__grid { align-items: start; } .articles__grid .article__card { margin-top: 0 !important; }
/* 2026-10-21 Taku「できることの高さを揃え、関連サービスの位置を3枚で合わせる（余白OK）」 */
@media (min-width: 841px) {
  html body .plans .pcard { display: flex; flex-direction: column; }
  html body .plans .pcard__inc { flex: 1 1 auto; }
}

/* =====================================================================
   2026-10-21 SP見栄え調整（Taku指摘6件・〜840pxのみ／PCは不変）
   1) FV直下2ボタン：LINEの吹き出しがカウンセリングボタンに重なる→間隔を「吹き出し高さ＋余白」以上に
   2) 探し方の診断バナー：イラストを上・文章とボタンを下に
   3) 目的別：横スライダーは維持し、カード下に現在位置のドット＋「スワイプ」の案内（JS＝js/sp-compact.js）
   4) 年齢から探す：横スライダー→縦並び（余白・リンク行を詰める。タップ44px以上）
   5) 選ばれる理由の数字：横スライダー→2列グリッド（5つ目は全幅・中央）
   6) 3つの強み：横スライダー→縦並び（写真を低く）
   ===================================================================== */
.pcards__nav { display: none; }
@media (max-width: 840px) {
  /* 1) 吹き出し(約32px)＋吹き出しの浮き12px＋ボタンの影6px＋余白10px */
  html body .hero--fv2 .fv2__band-in.fvcta { gap: 60px; }

  /* 2) 診断バナー：イラスト→文章→ボタン */
  html body .find__dx { display: flex; flex-direction: column; }
  html body .find__dx-art { order: -1; }

  /* 3) 目的別：スライダーの現在位置 */
  html body .pcards__nav { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 14px 0 4px; }
  html body .pcards__dots { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
  html body .pcards__dots li { width: 8px; height: 8px; border-radius: 999px; background: #D5CCD2; transition: width .2s, background-color .2s; }
  html body .pcards__dots li.is-on { width: 22px; background: #D42F7A; }
  html body .pcards__hint { margin: 0; font-size: 12px; font-weight: 700; line-height: 1.5; color: #6B7686; letter-spacing: .02em; }

  /* 4) 年齢から探す：縦並び・コンパクト */
  html body .age2__list {
    display: grid; grid-template-columns: 1fr; gap: 12px; overflow: visible;
    margin: 0; padding: 0; scroll-snap-type: none;
  }
  html body .age2__list > li { flex: none; max-width: none; padding: 12px 0 4px 16px; border-left-width: 5px; }
  html body .age2__head { grid-template-columns: 40px 1fr; column-gap: 12px; }
  html body .age2__ico { width: 40px; height: 40px; padding: 9px; }
  html body .age2__stage { font-size: 20px; }
  html body .age2__kind { font-size: 12px; margin-top: 0; }
  html body .age2__txt { margin-top: 8px; font-size: 14px; line-height: 1.7; }
  html body .age2__links { margin-top: 8px; }
  html body .age2__links a { min-height: 44px; padding: 6px 4px; font-size: 14px; line-height: 1.45; }

  /* 5) 選ばれる理由：数字5つを2列グリッド（5つ目は全幅・中央） */
  html body #whymy .wmy__stats {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0;
    overflow: visible; margin: 0; padding: 0; scroll-snap-type: none;
  }
  html body #whymy .wmy__stats > li { flex: none; padding: 18px 10px; border-left: 0; border-top: 1px solid rgba(255,255,255,.38); }
  html body #whymy .wmy__stats > li:nth-child(-n+2) { border-top: 0; padding-top: 2px; }
  html body #whymy .wmy__stats > li:nth-child(even) { border-left: 1px solid rgba(255,255,255,.38); }
  html body #whymy .wmy__stats > li:last-child { grid-column: 1 / -1; padding-left: 12%; padding-right: 12%; padding-bottom: 4px; }
  html body #whymy .wmy__num { font-size: 30px; }
  html body #whymy .wmy__num small { font-size: 13px; margin-left: 2px; }
  html body #whymy .wmy__num .wmy__pre { font-size: 14px; margin: 0 2px 0 0; }
  html body #whymy .wmy__lbl { margin-top: 6px; font-size: 12px; line-height: 1.55; }
  html body #whymy .wmy__desc { margin-top: 8px; font-size: 12px; line-height: 1.75; }
  html body #whymy .wmy__tag { font-size: 12px; padding: 2px 10px; margin-bottom: 6px; }

  /* 6) 3つの強み：縦並び・写真を低く */
  html body .vcards {
    display: grid; grid-template-columns: 1fr; gap: 16px; overflow: visible;
    margin: 8px 0 0; padding: 0; scroll-snap-type: none;
  }
  html body .vcards > .vcard { flex: none; max-width: none; }
  html body .vcard__ph { aspect-ratio: 2 / 1; }
  html body .vcard__cap { padding-top: 28px; }
  html body .vcard__body p { text-wrap: pretty; }
}
/* ===== /2026-10-21 SP見栄え調整 ===== */
/* 2026-10-21 FVを現行本番の画像に（Taku「いったん原稿のもので」） */
html body .hero--fv2 { background: #fff; }
.fv-orig { max-width: 1200px; margin: 0 auto; }
.fv-orig img { display: block; width: 100%; height: auto; }
html body .hero.hero--fv2, html body .hero.hero--fv2::before, html body .hero.hero--fv2::after { background: #fff !important; background-image: none !important; }
html body .offerbar .offerbar__tag { text-align: center; line-height: 1.35; border-radius: 14px; padding: 6px 12px; white-space: nowrap; }
html body .offerbar s { display: block; line-height: 1.35; text-align: right; } html body .offerbar__title, html body .offerbar h3 { text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
html body .offerbar__desc .nw { white-space: nowrap; }
/* 2026-10-21 RM/円併記を戻した（Taku「やっぱ戻して」）＝取り消し線は1行に */ html body .offerbar s { display: inline; }
/* 2026-10-21 Taku「目的別サポートの写真の位置調整」＝横長のAdobe写真を縦長カードで切り抜く位置を人物の顔に合わせる */
html body .plans .pcard__ph img[src*="adobe746251689"] { object-position: 33% 30%; }   /* 女の子2人と先生 */
html body .plans .pcard__ph img[src*="adobe1194114223"] { object-position: 68% 30%; }  /* 息子と母親 */
html body .plans .pcard__ph img[src*="adobe873134736"] { object-position: 45% 30%; }   /* 大学生3人 */
html body #value img[src*="adobe573445717"] { object-position: 50% 20%; }
/* 2026-10-21 並べ替え（予算→年齢の後／セミナー→体験談の後）で同色の帯が隣接→交互に（体験談 白｜セミナー 淡ピンク｜学校 白｜最新情報 グレー｜FAQ 白） */
html body section#cta.cta-section { background: #FFF0F6 !important; }
html body section#faq.faq { background: #fff !important; }
/* 2026-10-21 Taku「少し写真上に」＝横長写真は縦に余白がなく位置だけでは動かせない→1.3倍に拡大し下端基準で人物を上へ */
html body .plans .pcard__ph { overflow: hidden; }
@media (min-width: 841px) { html body .plans .pcard__ph img[src*="adobe873134736"] { transform: scale(1.3); transform-origin: 45% 100%; } }
/* 2026-10-21 予算：短期の費用を追加（短期／長期の小見出し） */
.bud__sub { margin: 18px 0 4px; font-size: 13px; font-weight: 700; color: #465364; letter-spacing: .04em; }
.bud__h + .bud__sub { margin-top: 4px; }
/* 2026-10-21 予算節の小見出しにアイコン（Tabler Icons・MIT） */
html body .bud__h { display: flex; align-items: center; gap: 8px; }
.bud__hico { width: 24px; height: 24px; flex-shrink: 0; color: #D8608F; }

/* ============ 2026-10-28 Figmaコメント対応（ルシュ・FB 819:12） ============ */
/* #88 カウンセリングのボタンを一番目立たせる＝相談を主役（塗り・幅広）、LINEは補助（白地＋緑の枠） */
html body .hero--fv2 .fv2__band-in.fvcta { grid-template-columns: 1.35fr 1fr; align-items: end; }
html body .fvcta__btn--consult { min-height: 100px; }
html body .fvcta__btn--consult .fvcta__label { font-size: 25px; }
html body .fvcta__btn--line {
  background: #fff; color: #00863A; border: 2px solid #00A849; min-height: 76px;
  box-shadow: 0 4px 0 #CFE9D9;
}
html body .fvcta__btn--line:hover { color: #00863A; box-shadow: 0 2px 0 #CFE9D9; }
html body .fvcta__btn--line .fvcta__label { font-size: 18px; }
html body .fvcta__btn--line .fvcta__ico--line path { fill: #00A849; }
html body .fvcta__btn--line .fvcta__ico--line text { fill: #fff; }
.fixcta__btn--line { background: #fff; color: #00863A; border: 2px solid #00A849; box-shadow: none; }
.fixcta__btn--line:hover { color: #00863A; }
@media (max-width: 840px) {
  html body .hero--fv2 .fv2__band-in.fvcta { grid-template-columns: 1fr; }
  html body .fvcta__btn--consult { min-height: 80px; }
  html body .fvcta__btn--consult .fvcta__label { font-size: 20px; }
  html body .fvcta__btn--line { min-height: 64px; }
  html body .fvcta__btn--line .fvcta__label { font-size: 16px; }
}
/* #89 キャンペーン帯を目立たせる＝見出しを大きく・金の枠・価格を大きく */
html body .offerbar { padding: 30px 0 30px; background: linear-gradient(135deg, #D2468A 0%, #B8336F 100%) !important; border-top: 0; }
html body .offerbar .offerbar__fx { color: #fff; }
html body .offerbar .offerbar__fx strong { color: #fff; }
html body .offerbar .offerbar__label { font-size: 22px; color: #fff; letter-spacing: .08em; margin-bottom: 18px; }
html body .offerbar .offerbar__item { border: 0; box-shadow: 0 8px 22px rgba(90,10,45,.30); padding: 16px 20px; }
html body .offerbar .offerbar__ttl { font-size: 17px; }
html body .offerbar .offerbar__price em { font-size: 32px; }
@media (max-width: 840px) {
  html body .offerbar { padding: 22px 0 24px; }
  html body .offerbar .offerbar__label { font-size: 17px; margin-bottom: 14px; }
  html body .offerbar .offerbar__item { padding: 14px 14px; }
  html body .offerbar .offerbar__price em { font-size: 27px; }
}
/* #65 費用帯の「見学」「5日間」「年間」などを大きく */
html body .bud__band small { font-size: 16px; }
html body .offerbar .offerbar__label, html body .offerbar .offerbar__label.offerbar__slash { color: #fff !important; }
html body .offerbar .offerbar__label::before, html body .offerbar .offerbar__label::after { color: #fff !important; background-color: #fff; }
html body .offerbar .offerbar__fx, html body .offerbar .offerbar__fx strong { color: #fff !important; }
html body .offerbar .offerbar__item { background: #fff; }
html body .offerbar__ttl .nw { display: inline-block; }

/* ============ 2026-10-28 Taku FB（コメント対応の見直し） ============ */
/* ボタンは2つ同じサイズに戻す（相談＝塗り・LINE＝白地枠で主従は色で付ける） */
html body .hero--fv2 .fv2__band-in.fvcta { grid-template-columns: 1fr 1fr; align-items: stretch; }
html body .fvcta__btn--consult, html body .fvcta__btn--line { min-height: 92px; }
html body .fvcta__btn--consult .fvcta__label, html body .fvcta__btn--line .fvcta__label { font-size: 22px; }
/* 吹き出しは両方とも塗りをやめて枠だけ */
html body .fvcta__tab { background: #fff; border: 2px solid var(--tab-c, #D42F7A); color: var(--tab-c, #D42F7A); }
html body .fvcta__tab::after { background: #fff; border-right: 2px solid var(--tab-c, #D42F7A); border-bottom: 2px solid var(--tab-c, #D42F7A); bottom: -7px; }
html body .fvcta__btn--consult { --tab-c: #B32469; }
html body .fvcta__btn--line { --tab-c: #00863A; }
html body .fvcta__tab s { margin: 0 2px; text-decoration-thickness: 2px; }
html body .fvcta__free { font-style: normal; color: #E60012; font-size: 1.15em; margin-left: 2px; }
@media (max-width: 840px) {
  html body .hero--fv2 .fv2__band-in.fvcta { grid-template-columns: 1fr; }
  html body .fvcta__btn--consult, html body .fvcta__btn--line { min-height: 74px; }
  html body .fvcta__btn--consult .fvcta__label, html body .fvcta__btn--line .fvcta__label { font-size: 18px; }
}
/* キャンペーン帯をボタンのピンクと別の色に＝暖かい黄色の面＋濃い文字 */
html body .offerbar { background: linear-gradient(135deg, #FFE27A 0%, #FFCE4A 100%) !important; }
html body .offerbar .offerbar__label, html body .offerbar .offerbar__label.offerbar__slash { color: #3A2A10 !important; }
html body .offerbar .offerbar__label::before, html body .offerbar .offerbar__label::after { color: #3A2A10 !important; background-color: #3A2A10; }
html body .offerbar .offerbar__fx, html body .offerbar .offerbar__fx strong { color: #3A2A10 !important; }
html body .offerbar .offerbar__item { box-shadow: 0 8px 22px rgba(120,80,0,.22); }
/* 2026-10-28 権威性（実績バー）＝金の月桂樹（Adobe Stock 1900722462）＋王冠 */
html body .trust-bar__list li .laurel-img { display: block; width: auto; height: 58px; flex-shrink: 0; }
html body .trust-bar__list li > .tb__stack { position: relative; display: flex; flex-direction: column; align-items: center; }
html body .trust-bar__list .tb__crown { display: block; width: 24px; height: auto; margin: 0 auto 2px; }
@media (max-width: 840px) {
  html body .trust-bar__list li .laurel-img { height: 46px; }
  html body .trust-bar__list .tb__crown { width: 20px; }
}
@media (min-width: 841px) {
  html body .trust-bar__list--v12 { column-gap: 40px; justify-content: center; }
  html body .trust-bar__list--v12 li { gap: 8px; }
}

/* ============ 2026-10-28 キャンペーン帯＝案B（ネイビー×ゴールド）横長カード ============ */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html body .offerbar.offerbar--b {
  --ob-navy: #1B2A52; --ob-navy2: #22356A; --ob-gold: #D9B45A; --ob-gold-lt: #F3DC97; --ob-gold-dk: #A9802F;
  background: linear-gradient(180deg, #F7F3EA 0%, #EFE7D6 100%) !important; padding: 34px 0 30px; border-top: 0;
}
html body .offerbar--b .offerbar__label, html body .offerbar--b .offerbar__label.offerbar__slash {
  color: var(--ob-navy) !important; font-family: "Shippori Mincho", serif; font-weight: 800; font-size: 24px; letter-spacing: .1em; margin-bottom: 20px;
}
html body .offerbar--b .offerbar__label::before, html body .offerbar--b .offerbar__label::after { color: var(--ob-gold-dk) !important; background-color: var(--ob-gold-dk); }
html body .offerbar--b .offerbar__grid { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 1040px; margin: 0 auto; }
html body .offerbar--b .offerbar__item {
  position: relative; display: grid; grid-template-columns: 1.15fr 1fr auto; align-items: center; gap: 0;
  padding: 22px 34px; border-radius: 6px; text-decoration: none; color: #fff;
  background: radial-gradient(120% 140% at 50% 0%, var(--ob-navy2) 0%, var(--ob-navy) 70%);
  border: 0; box-shadow: 0 10px 26px rgba(20,30,60,.28), inset 0 0 0 2px var(--ob-gold), inset 0 0 0 7px var(--ob-navy), inset 0 0 0 8px rgba(217,180,90,.6);
  transition: transform .18s, box-shadow .18s;
}
html body .offerbar--b .offerbar__item:hover { transform: translateY(-2px); color: #fff; }
html body .offerbar--b .offerbar__item > span + span:not(.ob__medal):not(.visually-hidden) { border-left: 1px solid rgba(217,180,90,.45); }
html body .offerbar--b .ob__head { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-right: 26px; }
html body .offerbar--b .ob__ribbon {
  position: relative; display: inline-block; padding: 5px 22px; font-size: 14px; font-weight: 800; letter-spacing: .06em; color: var(--ob-navy);
  background: linear-gradient(90deg, var(--ob-gold-dk), var(--ob-gold-lt) 45%, var(--ob-gold) 100%);
  clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 50%, 100% 100%, 0 100%, 10px 50%);
}
html body .offerbar--b .ob__ttl { font-family: "Shippori Mincho", serif; font-weight: 800; font-size: 28px; line-height: 1.3; color: #fff; letter-spacing: .03em; }
html body .offerbar--b .ob__desc { padding: 0 26px; font-size: 15px; font-weight: 500; line-height: 1.7; color: #E7EAF3; text-align: center; }
html body .offerbar--b .nw { display: inline-block; white-space: nowrap; }
html body .offerbar--b .ob__price { padding-left: 26px; display: flex; flex-direction: column; align-items: center; line-height: 1.15; min-width: 210px; }
html body .offerbar--b .ob__price s { display: block; font-size: 15px; color: #C5CBDB; text-decoration-color: #E85A5A; text-decoration-thickness: 2px; }
html body .offerbar--b .ob__price em {
  display: block; font-style: normal; font-weight: 900; font-size: 40px; letter-spacing: .01em; margin-top: 4px;
  background: linear-gradient(180deg, #FFF1C2 0%, var(--ob-gold) 55%, #C7953C 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
}
html body .offerbar--b .ob__yen { display: block; margin-top: 4px; font-size: 13px; color: #E7EAF3; }
html body .offerbar--b .ob__medal {
  position: absolute; top: -16px; right: -14px; width: 84px; height: 84px; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
  color: var(--ob-navy); background: radial-gradient(circle at 35% 30%, #FFF3C9 0%, var(--ob-gold) 55%, var(--ob-gold-dk) 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,.3), inset 0 0 0 3px rgba(255,255,255,.45);
}
html body .offerbar--b .ob__medal img { width: 20px; height: auto; margin-bottom: 2px; }
html body .offerbar--b .ob__medal b { font-size: 22px; font-weight: 900; }
html body .offerbar--b .ob__medal small { font-size: 12px; font-weight: 800; letter-spacing: .06em; }
html body .offerbar--b .offerbar__fx, html body .offerbar--b .offerbar__fx strong { color: #4A4F5E !important; margin-top: 14px; }
@media (max-width: 840px) {
  html body .offerbar.offerbar--b { padding: 24px 0 22px; }
  html body .offerbar--b .offerbar__label, html body .offerbar--b .offerbar__label.offerbar__slash { font-size: 18px; margin-bottom: 14px; }
  html body .offerbar--b .offerbar__grid { gap: 22px; }
  html body .offerbar--b .offerbar__item { grid-template-columns: 1fr; padding: 22px 20px 20px; text-align: center; }
  html body .offerbar--b .offerbar__item > span + span:not(.ob__medal):not(.visually-hidden) { border-left: 0; border-top: 1px solid rgba(217,180,90,.45); }
  html body .offerbar--b .ob__head { align-items: center; padding: 0 0 12px; }
  html body .offerbar--b .ob__ttl { font-size: 23px; }
  html body .offerbar--b .ob__desc { padding: 12px 0; font-size: 14px; }
  html body .offerbar--b .ob__price { padding: 12px 0 0; min-width: 0; }
  html body .offerbar--b .ob__price em { font-size: 34px; }
  html body .offerbar--b .ob__medal { width: 68px; height: 68px; top: -14px; right: -8px; }
  html body .offerbar--b .ob__medal b { font-size: 18px; }
}
/* 旧「.offerbar * { color … !important }」に負けないよう、案Bの文字色は !important で指定 */
html body .offerbar--b .offerbar__item, html body .offerbar--b .offerbar__item * { color: #fff !important; }
html body .offerbar--b .ob__ribbon, html body .offerbar--b .ob__medal, html body .offerbar--b .ob__medal * { color: #1B2A52 !important; }
html body .offerbar--b .ob__desc, html body .offerbar--b .ob__desc *, html body .offerbar--b .ob__yen { color: #E7EAF3 !important; }
html body .offerbar--b .ob__price s { color: #C5CBDB !important; }
html body .offerbar--b .ob__price em { color: transparent !important; -webkit-text-fill-color: transparent; }
html body .offerbar--b .offerbar__label, html body .offerbar--b .offerbar__label.offerbar__slash { white-space: nowrap; }
@media (max-width: 840px) { html body .offerbar--b .offerbar__label, html body .offerbar--b .offerbar__label.offerbar__slash { font-size: 16px; letter-spacing: .04em; } }
/* 2026-10-28 Taku「左右の葉っぱ、少しだけ下に」 */
html body .trust-bar__list li .laurel-img { transform: translateY(8px); }
@media (max-width: 840px) { html body .trust-bar__list li .laurel-img { transform: translateY(6px); } }
/* 2026-10-28 Taku「バナー内の余白が目立つ」＝見出しを1行に・列幅を中身に合わせて詰める・説明を大きく */
@media (min-width: 841px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: max-content 1fr max-content; padding: 20px 30px; }
  html body .offerbar--b .ob__head { padding-right: 30px; gap: 8px; }
  html body .offerbar--b .ob__ttl { font-size: 30px; white-space: nowrap; }
  html body .offerbar--b .ob__ttl .nw { display: inline; }
  html body .offerbar--b .ob__desc { padding: 0 28px; font-size: 17px; line-height: 1.65; }
  html body .offerbar--b .ob__price { padding-left: 30px; min-width: 230px; }
  html body .offerbar--b .ob__price em { font-size: 42px; }
}
@media (min-width: 841px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: auto minmax(0,1fr) auto; }
  html body .offerbar--b .offerbar__grid { width: 100%; }
}
@media (min-width: 841px) and (max-width: 1100px) {
  html body .offerbar--b .ob__ttl { white-space: normal; font-size: 26px; }
  html body .offerbar--b .ob__ttl .nw { display: inline-block; }
  html body .offerbar--b .ob__desc { font-size: 15px; padding: 0 20px; }
  html body .offerbar--b .ob__price { min-width: 190px; padding-left: 20px; }
  html body .offerbar--b .ob__price em { font-size: 36px; }
}
/* メダルは価格に重なるので廃止→旧価格の横に「50%OFF」の金札。2枚の区切り線の位置を揃える（列幅を固定） */
html body .offerbar--b .ob__was { display: flex; align-items: center; justify-content: center; gap: 8px; }
html body .offerbar--b .ob__off {
  display: inline-block; padding: 2px 9px; border-radius: 3px; font-size: 13px; font-weight: 900; letter-spacing: .04em;
  color: #1B2A52 !important; background: linear-gradient(90deg, #C7953C, #F3DC97 50%, #D9B45A);
}
@media (min-width: 841px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: minmax(0,1fr) 270px 240px; }
  html body .offerbar--b .ob__price { min-width: 0; }
}
@media (min-width: 841px) and (max-width: 1100px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: minmax(0,1fr) 230px 210px; }
}
@media (min-width: 1101px) { html body .offerbar--b .ob__ttl { font-size: 26px; letter-spacing: .02em; } }
/* 2026-10-28 Taku「実績バーに何かしら背景色を」＝金の月桂樹に合わせた淡いクリーム＋上下に金の細線 */
html body .hero--fv2 .trust-bar, html body .trust-bar { background: linear-gradient(180deg, #FFFBF1 0%, #F8EFD9 100%) !important; border-top: 1px solid #E6D3A3; border-bottom: 1px solid #E6D3A3 !important; }
/* #90 プレミアム追加で価格桁が増えた＝列幅を広げる */
@media (min-width: 1101px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: minmax(0,1fr) 270px 270px; }
  html body .offerbar--b .ob__desc { font-size: 16px; padding: 0 22px; }
  html body .offerbar--b .ob__price em { font-size: 40px; }
}
@media (min-width: 841px) and (max-width: 1100px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: minmax(0,1fr) 220px 230px; }
  html body .offerbar--b .ob__price em { font-size: 32px; }
}
@media (min-width: 841px) and (max-width: 1100px) { html body .offerbar--b .ob__desc { font-size: 14px; padding: 0 14px; } html body .offerbar--b .ob__desc .nw { white-space: normal; } }
/* 2026-10-28 Figmaコメント#86（ルシュ）＝学校の写真より、学校の名前（とロゴ）を目立たせる。写真を低く・名前を大きく。ロゴは素材待ち */
html body .school__card--sm .school__card-img { height: 78px; }
html body .school__card--sm .school__name { font-size: 16px; font-weight: 800; color: #1B2A52; line-height: 1.35; padding-top: 14px; min-height: calc(16px * 1.35 * 2 + 14px); }
html body .school__card--sm .school__meta { font-size: 12.5px; font-weight: 700; color: #B32469; padding-top: 4px; }
@media (max-width: 840px) { html body .school__card--sm .school__card-img { height: 70px; } html body .school__card--sm .school__name { font-size: 15px; } }

/* ============ 2026-10-28 実績バー＝月桂冠バッジに統一（全項目同じ型） ============ */
html body .trust-bar .tbw-list { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 18px 26px; margin: 14px auto 0; padding: 0; list-style: none; max-width: 1000px; }
html body .trust-bar .tbw-list li.tbw {
  position: relative; display: flex; align-items: center; justify-content: center; flex: 0 0 168px; width: 168px; aspect-ratio: 420 / 352; margin: 0; padding: 0;
  background: url("../images/lp/authority_wreath_adobe1900722462.webp") center / contain no-repeat;
}
html body .trust-bar .tbw__crown { position: absolute; top: -18px; left: 50%; width: 30px; height: auto; transform: translateX(-50%); }
html body .trust-bar .tbw__in { display: flex; flex-direction: column; align-items: center; text-align: center; margin-top: -10px; }
html body .trust-bar .tbw__num { font-size: 34px; font-weight: 900; line-height: 1.05; letter-spacing: -.01em; color: #1B2A52 !important; white-space: nowrap; }
html body .trust-bar .tbw__num small { font-size: 14px; font-weight: 800; margin-left: 1px; color: #1B2A52 !important; }
html body .trust-bar .tbw__cap { margin-top: 5px; font-size: 12.5px; font-weight: 700; line-height: 1.3; color: #6B4A12 !important; white-space: nowrap; }
html body .trust-bar .tbw__cap sup { font-size: 9px; margin-left: 1px; color: #6B4A12 !important; }
html body .trust-bar .tbw-note { margin: 10px 0 0; text-align: center; font-size: 11px; color: #7A6A4A !important; }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 20px 6px; max-width: 360px; }
  html body .trust-bar .tbw-list li.tbw { flex: 0 0 31%; width: 31%; }
  html body .trust-bar .tbw__crown { width: 22px; top: -14px; }
  html body .trust-bar .tbw__in { margin-top: -6px; }
  html body .trust-bar .tbw__num { font-size: 22px; }
  html body .trust-bar .tbw__num small { font-size: 10px; }
  html body .trust-bar .tbw__cap { font-size: 9.5px; margin-top: 3px; }
  html body .trust-bar .tbw-note { font-size: 10px; line-height: 1.6; }
}
/* 月桂冠の中は数字だけ（単位は2段目）・説明は月桂冠の下へ＝SPではみ出さない */
html body .trust-bar .tbw-list li.tbw { display: flex; flex-direction: column; align-items: center; aspect-ratio: auto; background: none; flex: 0 0 150px; width: 150px; }
html body .trust-bar .tbw__badge {
  position: relative; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 420 / 352;
  background: url("../images/lp/authority_wreath_adobe1900722462.webp") center / contain no-repeat;
}
html body .trust-bar .tbw__num { display: flex; flex-direction: column; align-items: center; margin-top: -12px; font-size: 32px; }
html body .trust-bar .tbw__num small { display: block; margin: 2px 0 0; font-size: 13px; letter-spacing: .04em; }
html body .trust-bar .tbw__cap { margin-top: 6px; font-size: 13px; color: #1B2A52 !important; }
html body .trust-bar .tbw__cap sup { color: #1B2A52 !important; }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 18px 4px; max-width: 370px; }
  html body .trust-bar .tbw-list li.tbw { flex: 0 0 32%; width: 32%; }
  html body .trust-bar .tbw__num { font-size: 24px; margin-top: -8px; }
  html body .trust-bar .tbw__num small { font-size: 10px; }
  html body .trust-bar .tbw__cap { font-size: 11px; margin-top: 4px; }
}
/* 2026-10-28 Taku「値段の部分を赤に」「右下に矢印を入れて押せる感を」 */
html body .offerbar--b .ob__price em { background: none; -webkit-text-fill-color: #FF5A5A; color: #FF5A5A !important; text-shadow: 0 2px 0 rgba(0,0,0,.25); }
html body .offerbar--b .ob__go {
  position: absolute; right: 14px; bottom: 12px; width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #F3DC97, #D9B45A 60%, #B8893A); box-shadow: 0 3px 8px rgba(0,0,0,.35);
  transition: transform .18s;
}
html body .offerbar--b .ob__go svg { width: 18px; height: 18px; fill: none; stroke: #1B2A52; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
html body .offerbar--b .offerbar__item:hover .ob__go { transform: translateX(4px); }
html body .offerbar--b .offerbar__item > span.ob__go { border-left: 0 !important; border-top: 0 !important; }
@media (max-width: 840px) { html body .offerbar--b .ob__go { right: 12px; bottom: 12px; width: 32px; height: 32px; } }
@media (min-width: 841px) { html body .offerbar--b .offerbar__item { padding-right: 62px; } }
@media (max-width: 840px) { html body .hero--fv2 .fv2__band-in.fvcta { row-gap: 16px !important; gap: 16px !important; } }
/* 2026-10-28 Taku「（金丸は）ダサいから矢印だけでいい」 */
html body .offerbar--b .ob__go { background: none; box-shadow: none; width: 30px; height: 30px; }
html body .offerbar--b .ob__go svg { width: 26px; height: 26px; stroke: #D9B45A; stroke-width: 2.2; }
html body .offerbar--b .offerbar__item > span.ob__medal { border-left: 0 !important; border-top: 0 !important; }
html body .offerbar--b .ob__medal { top: -20px; right: -16px; width: 80px; height: 80px; z-index: 2; }
@media (max-width: 840px) { html body .offerbar--b .ob__medal { width: 66px; height: 66px; top: -16px; right: -8px; } }
html body .offerbar--b .ob__go svg { width: 28px; height: 28px; }
/* 2026-10-28 Taku 価格の赤＝A案（深紅＋金の縁取り） */
html body .offerbar--b .ob__price em { -webkit-text-fill-color: #E0283A; color: #E0283A !important; -webkit-text-stroke: 1px #F3DC97; text-shadow: none; background: none; }
/* 2026-10-28 Taku「FV（PC）左右の白が気になる。下（実績バー）と色味を合わせ、徐々に白へグラデーション」 */
html body .hero--fv2 .fv-orig { background: linear-gradient(180deg, #FFFFFF 0%, #FFF8EA 100%); }
html body .hero--fv2 .trust-bar { background: linear-gradient(180deg, #FFF8EA 0%, #F8EFD9 100%) !important; border-top: 0 !important; }
html body .hero--fv2 .fv-orig { max-width: none; width: 100%; }
html body .hero--fv2 .fv-orig picture { display: block; max-width: 1200px; margin: 0 auto; }
/* 2026-10-28 Taku「元の値段にも日本円を入れて取り消し線」「後の日本円も少し大きく」 */
html body .offerbar--b .ob__yen { font-size: 16px; font-weight: 700; margin-top: 6px; }
@media (max-width: 840px) { html body .offerbar--b .ob__yen { font-size: 15px; } }
/* 2026-10-28 Taku「（実績バーの見出し）なんかリボン入れてもいいかも」＝キャンペーン帯と同じ金リボン（両端に切り込み＋折り返し） */
html body .trust-bar .trust-bar__heading {
  position: relative; display: table; margin: 0 auto 26px; padding: 9px 46px 10px;
  font-size: 16px; font-weight: 800; letter-spacing: .06em; line-height: 1.5; text-align: center; color: #1B2A52 !important;
  background: linear-gradient(90deg, #C7953C 0%, #F3DC97 30%, #E8C77A 60%, #C7953C 100%);
  clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 50%, 100% 100%, 0 100%, 16px 50%);
  filter: drop-shadow(0 3px 4px rgba(120,80,0,.22));
}
html body .trust-bar .trust-bar__heading-wrap { position: relative; }
@media (max-width: 840px) {
  html body .trust-bar .trust-bar__heading { font-size: 13px; padding: 8px 26px 9px; margin-bottom: 22px; letter-spacing: .02em; clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 50%, 100% 100%, 0 100%, 12px 50%); }
}
html body .trust-bar .trust-bar__heading .nw { display: inline-block; white-space: nowrap; }
html body .fvcta__free { margin-left: 8px; }
html body .fvcta__btn--consult .fvcta__tab--red { color: #E60012 !important; font-size: 16px; letter-spacing: .06em; }
@media (max-width: 840px) { html body .fvcta__btn--consult .fvcta__tab--red { font-size: 15px; } }
/* 2026-10-28 Taku「8,000円の取り消し線を斜めに」 */
html body .fvcta__btn--consult .fvcta__tab--red { color: #B32469 !important; }
html body .fvcta__btn--consult .fvcta__red { color: #E60012 !important; font-weight: 800; }
html body .fvcta__was { margin-left: 10px; font-size: .9em; }
html body .fvcta__slash { position: relative; text-decoration: none; display: inline-block; margin-left: 2px; }
html body .fvcta__slash::after { content: ""; position: absolute; left: -3px; right: -3px; top: 50%; height: 2px; background: #E60012; transform: rotate(-14deg); }
html body .fvcta__slash::after { transform: rotate(-9deg); }
/* 2026-10-28 Taku「単位まで入れてから改行」「完全日本語は同じサイズで」 */
html body .trust-bar .tbw__num { margin-top: -10px; }
html body .trust-bar .tbw__l1 { display: block; white-space: nowrap; line-height: 1.05; }
html body .trust-bar .tbw__l1 small { display: inline; font-size: .5em; margin: 0 0 0 1px; letter-spacing: 0; }
html body .trust-bar .tbw__l2 { display: block; margin-top: 3px; font-size: 13px; font-weight: 800; letter-spacing: .04em; color: #1B2A52 !important; }
html body .trust-bar .tbw__num--word { font-size: 24px; }
html body .trust-bar .tbw__num--word .tbw__l1 { line-height: 1.15; }
@media (max-width: 840px) {
  html body .trust-bar .tbw__num { margin-top: -6px; }
  html body .trust-bar .tbw__l2 { font-size: 10px; margin-top: 2px; }
  html body .trust-bar .tbw__num--word { font-size: 18px; }
}
@media (max-width: 840px) { html body .trust-bar .tbw__num:not(.tbw__num--word) { font-size: 21px; letter-spacing: -.02em; } }
/* 2026-10-28 探し方の4ボタン＝押せる形（白カード・枠・影・ピンクの丸矢印） */
html body .find__menu--btn { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
html body .find__menu--btn .find__item {
  position: relative; display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 20px 18px 20px 24px; background: #fff; border: 1.5px solid #EBC9D7; border-radius: 14px;
  box-shadow: 0 4px 0 #F1DCE5, 0 6px 16px rgba(180,60,110,.08); text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s;
}
html body .find__menu--btn .find__item:hover { transform: translateY(2px); box-shadow: 0 2px 0 #F1DCE5, 0 4px 10px rgba(180,60,110,.08); border-color: #D42F7A; }
html body .find__menu--btn .find__bar { display: none !important; }
html body .find__menu--btn .find__jp { font-size: 18px; font-weight: 800; color: #1B2A52 !important; text-align: left; line-height: 1.3; }
html body .find__menu--btn .find__jp-v { margin-left: 2px; }
html body .find__menu--btn .find__arw {
  flex-shrink: 0; width: 34px; height: 34px; padding: 8px; border-radius: 50%; background: #D42F7A; stroke: #fff !important; fill: none; stroke-width: 2.4; position: static !important; margin: 0 !important;
}
@media (max-width: 840px) {
  html body .find__menu--btn { grid-template-columns: 1fr 1fr; gap: 10px; }
  html body .find__menu--btn .find__item { padding: 14px 12px 14px 14px; border-radius: 12px; }
  html body .find__menu--btn .find__jp { font-size: 15px; }
  html body .find__menu--btn .find__arw { width: 28px; height: 28px; padding: 6px; }
}
html body .find__menu--btn .find__jp { display: block; text-align: center; letter-spacing: .02em; }
html body .find__menu--btn .find__jp-v { margin-left: 0; display: inline; }
html body .find__menu--btn .find__item { flex-direction: column; justify-content: center; gap: 10px; padding: 18px 12px; }
@media (max-width: 840px) { html body .find__menu--btn .find__item { padding: 14px 8px; gap: 8px; } }
/* 2026-10-28 Taku「デザイン変えていいから（数字と説明を）同じ括りに入れたい」＝月桂冠＋数字＋説明を1枚のカードに */
html body .trust-bar .tbw-list { gap: 26px 16px; margin-top: 30px; }
html body .trust-bar .tbw-list li.tbw {
  flex: 0 0 172px; width: 172px; padding: 18px 10px 14px; border-radius: 16px;
  background: linear-gradient(180deg, #FFFFFF 0%, #FFFBF2 100%); border: 1.5px solid #E6CF95;
  box-shadow: 0 6px 16px rgba(150,110,30,.12);
}
html body .trust-bar .tbw__badge { width: 140px; }
html body .trust-bar .tbw__crown { top: -30px; }
html body .trust-bar .tbw__cap { margin-top: 6px; padding-top: 8px; width: 100%; text-align: center; border-top: 1px dashed #E6CF95; font-size: 13.5px; }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 24px 6px; max-width: 380px; }
  html body .trust-bar .tbw-list li.tbw { flex: 0 0 31.5%; width: 31.5%; padding: 14px 4px 10px; border-radius: 12px; }
  html body .trust-bar .tbw__badge { width: 100%; }
  html body .trust-bar .tbw__crown { top: -24px; }
  html body .trust-bar .tbw__cap { font-size: 10.5px; padding-top: 6px; white-space: nowrap; letter-spacing: -.02em; }
}
html body .trust-bar .tbw-list { margin-top: 12px; }
html body .trust-bar .tbw-list li.tbw { padding-top: 34px; }
html body .trust-bar .tbw__crown { top: -26px; width: 26px; }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { margin-top: 6px; gap: 10px 6px; }
  html body .trust-bar .tbw-list li.tbw { padding-top: 26px; }
  html body .trust-bar .tbw__crown { top: -21px; width: 20px; }
  html body .trust-bar .trust-bar__heading { margin-bottom: 14px; }
}
@media (min-width: 841px) { html body .trust-bar .tbw-list li.tbw { padding: 34px 10px 14px !important; } }
/* 2026-10-28 Taku「葉っぱが主張強い」「サブコピーはそれぞれ上に」「5番目は現地スタッフ」 */
html body .trust-bar .tbw-list li.tbw { justify-content: flex-start; }
html body .trust-bar .tbw__cap { order: 0; margin: 0 0 4px; padding: 0 0 8px; border-top: 0; border-bottom: 1px dashed #E6CF95; font-size: 14px; }
html body .trust-bar .tbw__badge { order: 1; margin-top: 18px; background-size: 86%; }
html body .trust-bar .tbw__badge::before { content: ""; position: absolute; inset: 0; background: rgba(255,251,242,.45); pointer-events: none; }
html body .trust-bar .tbw__badge { background-image: url("../images/lp/authority_wreath_adobe1900722462.webp"); filter: none; }
html body .trust-bar .tbw__num { position: relative; z-index: 1; }
html body .trust-bar .tbw__crown { z-index: 1; top: -16px; width: 22px; }
@media (min-width: 841px) { html body .trust-bar .tbw-list li.tbw { padding: 16px 10px 12px !important; } }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list li.tbw { padding: 12px 4px 8px; }
  html body .trust-bar .tbw__cap { font-size: 11px; padding-bottom: 6px; }
  html body .trust-bar .tbw__badge { margin-top: 14px; }
  html body .trust-bar .tbw__crown { top: -13px; width: 17px; }
}
html body .trust-bar .tbw__badge { background: none !important; }
html body .trust-bar .tbw__badge::before { background: url("../images/lp/authority_wreath_adobe1900722462.webp") center / 86% no-repeat; opacity: .55; }
/* 2026-10-28 Taku「四角でくくるの微妙」「葉っぱの素材をもっと細めのものに」＝カード枠なし・細い月桂冠（同素材の上段3番目） */
html body .trust-bar .tbw-list li.tbw { background: none !important; border: 0 !important; box-shadow: none !important; }
@media (min-width: 841px) { html body .trust-bar .tbw-list li.tbw { padding: 0 6px !important; } }
html body .trust-bar .tbw__cap { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; }
html body .trust-bar .tbw__badge { aspect-ratio: 420 / 410; width: 128px; margin-top: 14px; }
html body .trust-bar .tbw__badge::before { background: url("../images/lp/authority_wreath_thin_adobe1900722462.webp") center / contain no-repeat; opacity: .9; }
html body .trust-bar .tbw__num { margin-top: 2px; }
html body .trust-bar .tbw__crown { top: -12px; }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list li.tbw { padding: 0 2px; }
  html body .trust-bar .tbw__badge { width: 96px; margin-top: 10px; }
  html body .trust-bar .tbw__crown { top: -10px; }
}
@media (min-width: 841px) { html body .trust-bar .tbw__num:not(.tbw__num--word) { font-size: 28px; letter-spacing: -.02em; } html body .trust-bar .tbw__num--word { font-size: 22px; } }
@media (max-width: 840px) { html body .trust-bar .tbw__num:not(.tbw__num--word) { font-size: 19px; } }
/* 2026-10-28 Taku「＼今だけお得なキャンペーン実施中／ 細い」＝明朝→ゴシック900 */
html body .offerbar--b .offerbar__label, html body .offerbar--b .offerbar__label.offerbar__slash { font-family: "Noto Sans JP", sans-serif; font-weight: 900; font-size: 26px; letter-spacing: .08em; }
@media (max-width: 840px) { html body .offerbar--b .offerbar__label, html body .offerbar--b .offerbar__label.offerbar__slash { font-size: 18px; letter-spacing: .03em; } }
/* 2026-10-28 Taku「アイコン入れて、矢印は下くの字でシンプルに」 */
html body .find__menu--btn .find__item { gap: 6px; padding: 18px 12px 12px; }
html body .find__menu--btn .find__ico { width: 34px; height: 34px; fill: none; stroke: #D42F7A; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
html body .find__menu--btn .find__arw.find__chev { width: 22px; height: 22px; padding: 0; border-radius: 0; background: none; stroke: #D42F7A !important; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 840px) { html body .find__menu--btn .find__ico { width: 28px; height: 28px; } html body .find__menu--btn .find__item { padding: 14px 8px 10px; } }
/* 2026-10-28 Taku「（項目名も）月桂樹の中に入れる」「素材も別のに」＝同素材の上段2番目（左右の枝・中が広い）を1枚に */
html body .trust-bar .tbw-list { gap: 30px 18px; margin-top: 24px; }
html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 188px; width: 188px; padding: 0 !important; }
html body .trust-bar .tbw--in .tbw__badge {
  width: 100%; aspect-ratio: 520 / 347; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
}
html body .trust-bar .tbw--in .tbw__badge::before { background: url("../images/lp/authority_laurel_pair_adobe1900722462.webp") center / contain no-repeat; opacity: .9; }
html body .trust-bar .tbw--in .tbw__crown { top: -14px; width: 22px; }
html body .trust-bar .tbw--in .tbw__cap { position: relative; z-index: 1; margin: 0; padding: 0; border: 0; width: auto; font-size: 12.5px; font-weight: 800; color: #8A6420 !important; letter-spacing: .02em; }
html body .trust-bar .tbw--in .tbw__cap sup { color: #8A6420 !important; }
html body .trust-bar .tbw--in .tbw__num { margin: 0; }
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 24px 2px; max-width: 390px; margin-top: 18px; }
  html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 32.5%; width: 32.5%; }
  html body .trust-bar .tbw--in .tbw__crown { top: -12px; width: 16px; }
  html body .trust-bar .tbw--in .tbw__cap { font-size: 9px; letter-spacing: -.03em; white-space: nowrap; }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 18px; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 14px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 9px; margin-top: 1px; }
}
html body .trust-bar .tbw__br { display: none; }
@media (max-width: 840px) { html body .trust-bar .tbw__br { display: inline; } html body .trust-bar .tbw--in .tbw__cap { font-size: 10px; line-height: 1.2; text-align: center; } }
/* 2026-10-28 Taku「スマホもうちょい大きく、左右の余白少し開けて」＝SPは2列（2＋2＋1）で大きく */
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 26px 20px; max-width: 340px; }
  html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 calc(50% - 10px); width: calc(50% - 10px); }
  html body .trust-bar .tbw--in .tbw__crown { top: -15px; width: 22px; }
  html body .trust-bar .tbw--in .tbw__cap { font-size: 12px; }
  html body .trust-bar .tbw__br { display: none; }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 25px; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 18px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 11px; }
}
/* 2026-10-28 Taku「SP改行」＝注記は※ごとに改行 */
html body .trust-bar .tbw-note span { display: inline-block; margin: 0 8px; white-space: nowrap; }
@media (max-width: 840px) { html body .trust-bar .tbw-note span { display: block; margin: 0; } }
/* 2026-10-28 Taku「2行で収まる範囲で（大きく）」＝SPは3＋2・隙間を詰めて幅いっぱい */
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 22px 0; max-width: none; margin-left: -10px; margin-right: -10px; }
  html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 33.33%; width: 33.33%; }
  html body .trust-bar .tbw__br { display: inline; }
  html body .trust-bar .tbw--in .tbw__crown { top: -13px; width: 18px; }
  html body .trust-bar .tbw--in .tbw__cap { font-size: 10.5px; }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 21px; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 15px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 10px; }
}
@media (max-width: 840px) { html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 20px; letter-spacing: -.04em; } html body .trust-bar .tbw--in .tbw__cap { font-size: 10px; } }
/* 2026-10-28 Taku「一つ一つの左右の余白、少し間隔開けれるでしょ」 */
@media (max-width: 840px) {
  html body .trust-bar .tbw-list { gap: 22px 12px; }
  html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 calc((100% - 24px) / 3); width: calc((100% - 24px) / 3); }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 19px; }
}
@media (max-width: 840px) { html body .trust-bar .trust-bar__heading { margin-bottom: 10px !important; } html body .trust-bar .tbw-list { margin-top: 18px !important; } } /* 2026-10-28 Taku「リボンとバッジの間の余白詰めて」 */
@media (max-width: 840px) { html body .trust-bar .tbw-list { margin-top: 8px !important; } }
/* 2026-10-28 相談ボタンの吹き出し＝A案（期間限定｜料金の分割タグ）をボタン上辺に重ねる */
html body .fvcta__btn--consult .fvcta__tab.fvcta__tab--split {
  top: 0 !important; transform: translate(-50%, -55%) !important; display: inline-flex; align-items: stretch; padding: 0 !important;
  background: none !important; border: 0 !important; border-radius: 999px; overflow: hidden; box-shadow: 0 3px 8px rgba(120,20,60,.18);
  font-size: 14px; line-height: 1; white-space: nowrap; z-index: 2;
}
html body .fvcta__btn--consult .fvcta__tab--split::after { display: none !important; }
html body .fvcta__tab--split b { display: flex; align-items: center; background: #B32469; color: #fff !important; padding: 8px 12px; font-weight: 800; letter-spacing: .06em; }
html body .fvcta__tab--split > span { display: flex; align-items: center; gap: 4px; background: #fff; color: #1B2A52 !important; padding: 6px 14px 6px 10px; font-weight: 700; border: 1.5px solid #B32469; border-left: 0; border-radius: 0 999px 999px 0; }
html body .fvcta__tab--split s { color: #8A8F9C !important; font-weight: 500; text-decoration-thickness: 1px; }
html body .fvcta__tab--split em { font-style: normal; color: #D42F7A !important; font-size: 18px; font-weight: 900; }
html body .hero--fv2 .fv2__band-in.fvcta { padding-top: 40px; }
@media (max-width: 840px) {
  html body .fvcta__btn--consult .fvcta__tab.fvcta__tab--split { font-size: 12px; }
  html body .fvcta__tab--split b { padding: 7px 9px; }
  html body .fvcta__tab--split > span { padding: 5px 10px 5px 8px; }
  html body .fvcta__tab--split em { font-size: 16px; }
  html body .hero--fv2 .fv2__band-in.fvcta { padding-top: 34px; }
}
html body .fvcta__btn--consult { padding-top: 26px; } @media (max-width: 840px) { html body .fvcta__btn--consult { padding-top: 22px; } }
html body .fvcta__tab--split > span s { color: #5B6170 !important; font-weight: 700; text-decoration-color: #D42F7A; text-decoration-thickness: 1.5px; }
/* 2026-10-28 Taku「PCは文字の頭の高さを揃えて」「中身（黒字）をもう少し大きく」 */
@media (min-width: 841px) {
  html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 200px; width: 200px; }
  html body .trust-bar .tbw--in .tbw__badge { justify-content: flex-start; padding-top: 30px; }
  html body .trust-bar .tbw--in .tbw__cap { font-size: 13.5px; margin-bottom: 2px; }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 34px; letter-spacing: -.03em; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 25px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 14px; }
}
@media (min-width: 841px) and (max-width: 1100px) { html body .trust-bar .tbw-list { gap: 30px 8px; } html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 170px; width: 170px; } html body .trust-bar .tbw--in .tbw__badge { padding-top: 24px; } html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 29px; } html body .trust-bar .tbw--in .tbw__num--word { font-size: 21px; } html body .trust-bar .tbw--in .tbw__cap { font-size: 12px; } }
@media (min-width: 841px) and (max-width: 960px) { html body .trust-bar .tbw-list { gap: 30px 2px; } html body .trust-bar .tbw-list li.tbw--in { flex: 0 0 156px; width: 156px; } html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 26px; } html body .trust-bar .tbw--in .tbw__cap { font-size: 11px; } }
/* 2026-10-28 Taku「（相談ボタンのタグ）もう少し大きく」「左側のピンクも少し濃く」 */
html body .fvcta__btn--consult .fvcta__tab.fvcta__tab--split { font-size: 17px; }
html body .fvcta__tab--split b { background: #9C1858; padding: 10px 16px; }
html body .fvcta__tab--split > span { padding: 8px 18px 8px 14px; }
html body .fvcta__btn--consult { padding-top: 32px; }
html body .hero--fv2 .fv2__band-in.fvcta { padding-top: 46px; }
@media (max-width: 840px) {
  html body .fvcta__btn--consult .fvcta__tab.fvcta__tab--split { font-size: 14.5px; }
  html body .fvcta__tab--split b { padding: 9px 12px; }
  html body .fvcta__tab--split > span { padding: 7px 14px 7px 10px; }
  html body .fvcta__btn--consult { padding-top: 26px; }
  html body .hero--fv2 .fv2__band-in.fvcta { padding-top: 38px; }
}
@media (min-width: 841px) { html body .trust-bar .trust-bar__heading { margin-bottom: 8px !important; } html body .trust-bar .tbw-list { margin-top: 14px !important; } } /* 2026-10-28 Taku「PC ここ少し詰めて」（リボン〜王冠） */
html body img[src*="svc3_training_adobe566096249"] { object-position: 62% 18%; }
/* 2026-10-28 相談ボタン＝左上に丸バッジ（キャンペーン）＋上中央に「＼まずはここから／」の吹き出し */
html body .fvcta__btn--consult { padding-top: 18px; }
html body .fvcta__btn--consult .fvcta__tab.fvcta__tab--bubble {
  top: -14px !important; transform: translate(-50%, -100%) !important; display: inline-block; padding: 7px 20px !important;
  background: #fff !important; border: 2px solid #B32469 !important; border-radius: 999px; color: #B32469 !important;
  font-size: 15px; font-weight: 800; letter-spacing: .06em; white-space: nowrap; box-shadow: none; overflow: visible;
}
html body .fvcta__btn--consult .fvcta__tab--bubble::after {
  display: block !important; content: ""; position: absolute; left: 50%; bottom: -7px; width: 11px; height: 11px; margin-left: -6px;
  background: #fff !important; border-right: 2px solid #B32469; border-bottom: 2px solid #B32469; transform: rotate(45deg);
}
html body .fvcta__badge {
  position: absolute; left: -18px; top: -26px; z-index: 3; width: 88px; height: 88px; border-radius: 50%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; line-height: 1.1;
  background: #9C1858; color: #fff; border: 3px solid #fff; box-shadow: 0 4px 10px rgba(120,20,60,.3); transform: rotate(-10deg);
}
html body .fvcta__badge small { font-size: 9.5px; font-weight: 700; letter-spacing: .02em; }
html body .fvcta__badge s { font-size: 10px; font-weight: 600; opacity: .85; text-decoration-thickness: 1px; }
html body .fvcta__badge b { font-size: 24px; font-weight: 900; color: #FFE27A; letter-spacing: .04em; }
html body .hero--fv2 .fv2__band-in.fvcta { padding-top: 54px; }
@media (max-width: 840px) {
  html body .fvcta__btn--consult .fvcta__tab.fvcta__tab--bubble { font-size: 13.5px; padding: 6px 16px !important; }
  html body .fvcta__badge { width: 74px; height: 74px; left: -10px; top: -22px; }
  html body .fvcta__badge small { font-size: 8.5px; } html body .fvcta__badge s { font-size: 9px; } html body .fvcta__badge b { font-size: 20px; }
  html body .hero--fv2 .fv2__band-in.fvcta { padding-top: 48px; }
  html body .fvcta__btn--consult { padding-top: 12px; padding-left: 52px; }
}
html body .fvcta__badge { gap: 2px; }
html body .fvcta__badge b { font-size: 26px; line-height: 1; }
html body .fvcta__badge small { font-size: 10.5px; font-weight: 800; letter-spacing: 0; }
@media (max-width: 840px) { html body .fvcta__badge b { font-size: 22px; } html body .fvcta__badge small { font-size: 9px; } }
html body .fvcta__badge { width: 96px; height: 96px; top: -30px; left: -20px; }
html body .fvcta__badge s { font-size: 10.5px; font-weight: 700; opacity: .9; margin-bottom: 1px; text-decoration-thickness: 1.5px; }
@media (max-width: 840px) { html body .fvcta__badge { width: 80px; height: 80px; top: -24px; left: -12px; } html body .fvcta__badge s { font-size: 9px; } html body .fvcta__badge b { font-size: 20px; } }
html body .fvcta__badge .fvcta__badge-was { font-size: 10.5px; font-weight: 700; opacity: .9; margin-bottom: 1px; } @media (max-width: 840px) { html body .fvcta__badge .fvcta__badge-was { font-size: 9px; } } /* 2026-10-28 Taku「取り消し線いらない」 */
html body .fvcta__btn--line .fvcta__tab.fvcta__tab--bubble {
  top: -14px !important; transform: translate(-50%, -100%) !important; display: inline-block; padding: 7px 20px !important;
  background: #fff !important; border: 2px solid #00863A !important; border-radius: 999px; color: #00863A !important;
  font-size: 15px; font-weight: 800; letter-spacing: .04em; white-space: nowrap; box-shadow: none;
}
html body .fvcta__btn--line .fvcta__tab--bubble::after {
  display: block !important; content: ""; position: absolute; left: 50%; bottom: -7px; width: 11px; height: 11px; margin-left: -6px;
  background: #fff !important; border-right: 2px solid #00863A; border-bottom: 2px solid #00863A; transform: rotate(45deg);
}
@media (max-width: 840px) {
  html body .fvcta__btn--line .fvcta__tab.fvcta__tab--bubble { font-size: 13.5px; padding: 6px 16px !important; }
  html body .hero--fv2 .fv2__band-in.fvcta { row-gap: 46px !important; gap: 46px !important; }
}
@media (max-width: 840px) { html body .hero--fv2 .fv2__band-in.fvcta { row-gap: 60px !important; gap: 60px !important; } }
html body .trust-bar .tbw--in .tbw__cap, html body .trust-bar .tbw--in .tbw__cap sup { color: #5E420E !important; } /* 2026-10-28 Taku「（項目名）ちょっと濃くしても」#8A6420→#5E420E */
html body .fvcta__btn--line .fvcta__tab.fvcta__tab--bubble { font-size: 13.5px; padding: 6px 16px !important; } @media (max-width: 840px) { html body .fvcta__btn--line .fvcta__tab.fvcta__tab--bubble { font-size: 12px; padding: 5px 14px !important; } } /* 2026-10-28 Taku「若干サイズ小さく」 */
@media (max-width: 840px) { html body .trust-bar .trust-bar__heading { white-space: nowrap; font-size: min(14px, 3.6vw); padding-left: 22px; padding-right: 22px; } }
html body #whymy.whymy--band::before { background: linear-gradient(180deg, rgba(22,20,26,.52) 0%, rgba(22,20,26,.64) 35%, rgba(22,20,26,.74) 100%); } /* 2026-10-28 Taku「ちょっとだけ暗く」(.42/.56/.66→.52/.64/.74) */

/* =====================================================================
   ★2026-10-29 TakuFB対応（口頭FB）。戻し＝old/261029_TakuFB前/
   ===================================================================== */
/* --- 実績：数字を小さく・葉を小さく --- */
@media (min-width: 841px) {
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 26px; letter-spacing: -.01em; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 20px; }
  html body .trust-bar .tbw__l1 small { font-size: 16px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 16px; }
  html body .trust-bar .tbw--in .tbw__cap { font-size: 16px; }
  html body .trust-bar .tbw--in .tbw__badge { width: 112px; padding-top: 26px; }
}
@media (max-width: 840px) {
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 19px; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 15px; }
  html body .trust-bar .tbw__l1 small { font-size: 15px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 15px; }
  html body .trust-bar .tbw--in .tbw__cap { font-size: 15px; }
  html body .trust-bar .tbw--in .tbw__badge { width: 86px; }
  html body .trust-bar .trust-bar__heading { font-size: min(15px, 3.85vw); }
}
html body .trust-bar sup { font-size: .75em; }

/* --- キャンペーン：円主体・50%OFF大きく・詳しくはこちらボタン --- */
html body .offerbar--b .ob__ttl { font-family: "Noto Sans JP", sans-serif; font-weight: 900; }
html body .offerbar--b .ob__go { display: none !important; }
html body .offerbar--b .ob__price { gap: 2px; }
html body .offerbar--b .ob__price s { font-size: 16px; }
html body .offerbar--b .ob__price em { font-size: 38px; margin-top: 2px; }
html body .offerbar--b .ob__rm { display: block; font-size: 16px; font-weight: 700; color: #E7EAF3 !important; }
html body .offerbar--b .ob__save {
  display: inline-block; margin-top: 6px; padding: 3px 12px; border-radius: 4px; text-align: center; line-height: 1.4;
  background: #E0283A; color: #fff !important; font-size: 16px; font-weight: 800; letter-spacing: .02em;
}
html body .offerbar--b .ob__btn {
  display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; padding: 9px 18px 9px 22px; border-radius: 999px;
  background: linear-gradient(180deg, #F3DC97 0%, #D9B45A 100%); color: #1B2A52 !important; font-size: 16px; font-weight: 800; line-height: 1.2;
}
html body .offerbar--b .ob__btn svg { width: 18px; height: 18px; fill: none; stroke: #1B2A52; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
html body .offerbar--b .offerbar__item:hover .ob__btn { filter: brightness(1.05); }
html body .offerbar--b .ob__medal { top: -30px; right: -22px; width: 116px; height: 116px; gap: 0; }
html body .offerbar--b .ob__medal b { font-size: 40px; line-height: .95; font-weight: 900; }
html body .offerbar--b .ob__medal b small { font-size: 22px; letter-spacing: 0; }
html body .offerbar--b .ob__medal > small { font-size: 20px; font-weight: 900; letter-spacing: .08em; }
/* 2枚目：含まれるサポート（全幅・区切り線の位置は1枚目と同じ列） */
html body .offerbar--b .offerbar__item > span.ob__inc { grid-column: 1 / -1; border-left: 0 !important; border-top: 1px solid rgba(217,180,90,.45); margin-top: 18px; padding-top: 16px; display: flex; gap: 16px; align-items: flex-start; }
html body .offerbar--b .ob__inc-ttl { flex: 0 0 auto; font-size: 16px; font-weight: 800; color: #F3DC97 !important; padding-top: 4px; }
html body .offerbar--b .ob__inc-list { display: flex; flex-wrap: wrap; gap: 8px; }
html body .offerbar--b .ob__inc-list > span { display: inline-block; padding: 4px 12px; border: 1px solid rgba(217,180,90,.6); border-radius: 999px; font-size: 16px; line-height: 1.5; color: #E7EAF3 !important; }
@media (max-width: 840px) {
  html body .offerbar--b .ob__price em { font-size: 32px; }
  html body .offerbar--b .ob__rm, html body .offerbar--b .ob__price s, html body .offerbar--b .ob__save, html body .offerbar--b .ob__btn, html body .offerbar--b .ob__inc-ttl, html body .offerbar--b .ob__inc-list > span { font-size: 15px; }
  html body .offerbar--b .ob__btn { width: 100%; justify-content: center; padding: 12px 18px; }
  html body .offerbar--b .ob__medal { top: -22px; right: -10px; width: 92px; height: 92px; }
  html body .offerbar--b .ob__medal b { font-size: 32px; }
  html body .offerbar--b .ob__medal b small { font-size: 18px; }
  html body .offerbar--b .ob__medal > small { font-size: 16px; }
  html body .offerbar--b .offerbar__item > span.ob__inc { flex-direction: column; gap: 8px; margin-top: 14px; padding-top: 14px; text-align: left; }
  html body .offerbar--b .ob__inc-list { gap: 6px; }
}

/* --- 予算と期間から探す：「期間から」「費用から」を見出しと分かる形に --- */
html body .bud__h {
  display: flex; align-items: center; gap: 10px; margin: 0 0 14px; padding: 12px 18px; border: 0 !important;
  background: #fff; border-left: 6px solid #D42F7A !important; border-radius: 10px; box-shadow: 0 4px 14px rgba(180,40,100,.10);
  font-size: 22px; font-weight: 900; color: #B32469 !important; letter-spacing: .04em;
}
html body .bud__h .bud__hico { flex: 0 0 36px; width: 36px; height: 36px; padding: 7px; border-radius: 50%; background: #FCE4EF; color: #D42F7A; }
@media (max-width: 840px) { html body .bud__h { font-size: 20px; padding: 10px 14px; } }
@media (min-width: 841px) {
  html body .trust-bar .tbw--in .tbw__badge { width: 168px; }
  html body .offerbar--b .offerbar__item.ob--tour { padding-right: 128px; }
  html body .offerbar--b .offerbar__item.ob--basic { padding-right: 128px; } /* 2枚の区切り線のx座標を揃える */
}
@media (max-width: 840px) { html body .trust-bar .tbw--in .tbw__badge { width: 100px; } }
@media (min-width: 841px) { html body .trust-bar .tbw__br { display: inline; } html body .trust-bar .tbw--in .tbw__badge { width: 160px; } }
@media (max-width: 840px) {
  html body .trust-bar .trust-bar__heading { padding-left: 16px !important; padding-right: 16px !important; margin-left: -10px; margin-right: -10px; max-width: calc(100% + 20px); }
  html body .trust-bar .tbw-list { width: calc(100% + 20px); flex: 0 0 auto; }
}
@media (max-width: 840px) {
  html body .offerbar--b .ob__inc-list { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  html body .offerbar--b .ob__inc-list > span { padding: 5px 8px; border-radius: 8px; text-align: center; line-height: 1.45; display: flex; align-items: center; justify-content: center; }
  html body .offerbar--b .ob__inc-ttl { text-align: center; }
}
@media (max-width: 840px) {
  html body .offerbar--b .ob__inc-list { display: block; text-align: left; line-height: 1.8; }
  html body .offerbar--b .ob__inc-list > span { display: inline; padding: 0; border: 0; border-radius: 0; line-height: 1.8; }
  html body .offerbar--b .ob__inc-list > span:not(:last-child)::after { content: "／"; color: #D9B45A; margin: 0 2px; }
}

/* --- 2026-10-29 TakuFB「本文より小さい文字を作らない」＝本文（PC16px／SP15px＝<p>の最頻値）未満の文字を一括で本文サイズへ。対象は実測で機械抽出（svg内の文字・sup・visually-hiddenは除外） --- */
@media (min-width: 841px) {
  html body #top div.container.header__inner > nav.header__nav > a,
  html body #top div.header__btns > a.btn.btn--outline.header__cta,
  html body .trust-bar div.container.trust-bar__inner > p.tbw-note > span,
  html body #hero a.fvcta__btn.fvcta__btn--consult > span.fvcta__tab.fvcta__tab--bubble,
  html body #hero span.fvcta__badge > span.fvcta__badge-was,
  html body #hero a.fvcta__btn.fvcta__btn--consult > span.fvcta__badge > small,
  html body #hero a.fvcta__btn.fvcta__btn--line > span.fvcta__tab.fvcta__tab--bubble.fvcta__tab--bubble-line,
  html body .offerbar span.ob__head > span.ob__ribbon,
  html body .offerbar div.container > p.offerbar__fx,
  html body .offerbar div.container > p.offerbar__fx > strong,
  html body #find div.find__dx-in > p.find__dx-q,
  html body #find p.find__dx-q > span.fbw,
  html body #service div.pcard__cap > span.pcard__catch,
  html body #service article.pcard > p.pcard__txt,
  html body #service div.pcard__inc > p.pcard__inc-ttl,
  html body #service div.pcard__inc > ul.pcard__list > li,
  html body #service details.pcard__more > summary.pcard__more-label,
  html body #service summary.pcard__more-label > span.pcard__more-icon,
  html body #service details.pcard__more > p.pcard__more-tags > a,
  html body #service article.pcard > a.pcard__go,
  html body #service article.pcard > a.pcard__go > span,
  html body #service p.pcard__txt > span.nw,
  html body #service ul.pcard__list > li > span.nw,
  html body #service div.svc-more > p.svc-more__label,
  html body #service span.svc-more__gtext > span.svc-more__gname,
  html body #service span.svc-more__gtext > span.svc-more__gex,
  html body #service summary.svc-more__gttl > span.svc-more__icon,
  html body #service div.svc-more__body > ul.svc-more__list > li > a,
  html body #service ul.svc-more__list > li > a > span.nw,
  html body #service div.svc-more__body > p.svc-more__fx,
  html body #service div.svc-more__body > p.svc-more__glink > a,
  html body #age div.age2__head > p.age2__kind,
  html body #age li.age2__col.age2__col--1 > p.age2__txt,
  html body #age li.age2__col.age2__col--1 > p.age2__txt > b,
  html body #age li.age2__col.age2__col--1 > ul.age2__links > li > a,
  html body #age li.age2__col.age2__col--2 > p.age2__txt,
  html body #age li.age2__col.age2__col--2 > p.age2__txt > b,
  html body #age li.age2__col.age2__col--2 > ul.age2__links > li > a,
  html body #age li.age2__col.age2__col--3 > p.age2__txt > b,
  html body #age li.age2__col.age2__col--3 > p.age2__txt,
  html body #age li.age2__col.age2__col--3 > ul.age2__links > li > a,
  html body #budget li.bud__prow > ul.bud__plinks > li > a,
  html body #budget div.bud__block > p.bud__sub,
  html body #budget a.bud__fee > span.bud__go,
  html body #budget div.bud__block > p.bud__note,
  html body #whymy ul.wmy__stats > li > p.wmy__tag,
  html body #whymy ul.wmy__stats > li > p.wmy__lbl,
  html body #whymy p.wmy__desc > span.mk,
  html body #whymy ul.wmy__stats > li > p.wmy__desc,
  html body #whymy div.container > dl.wmy__more > div > dt > span,
  html body #whymy div.container > dl.wmy__more > div > dd,
  html body #whymy dl.wmy__more > div > dd > span.mk,
  html body #value div.vcard__cap > span.vcard__catch,
  html body #value article.vcard > div.vcard__body > p,
  html body #value div.vcard__body > p > span.mk,
  html body #value article.vcard > div.vcard__body > p > b,
  html body #value div.value__more > p.value__more-label,
  html body #value details.value__acc-item > summary.value__acc-q,
  html body #value summary.value__acc-q > span.value__acc-icon,
  html body #value div.value__acc-a > p > span.mk,
  html body #value details.value__acc-item > div.value__acc-a > p,
  html body #value div.value__more > a.value__more-link,
  html body #results div.vstory__body > ul.vstory__tags > li,
  html body #results div.vstory__body > p.vstory__who,
  html body #results div.vstory__body > p.vstory__ex,
  html body #results div.vstory__body > p.vstory__ex > b,
  html body #results div.container > p.voice__more > a,
  html body #cta div.cbox__bubbles > span.cbox__bubble,
  html body #cta p.cbox__note > span.fbw,
  html body #cta div.cbox__pane > p.cbox__note,
  html body #cta div.cbox__pane > p.cbox__note > b,
  html body #cta div.cbox__pane > p.cbox__q,
  html body #cta button.cbox__kind-btn > span.fbw,
  html body #cta div.cbox__kind > button.cbox__kind-btn > small,
  html body #cta p.cbox__callout > span.fbw,
  html body #cta div.cbox__pane > a.cbox__fallback,
  html body #cta div.container > div.cta__hours > div > p > strong,
  html body #cta div.container > div.cta__hours > div > p,
  html body #schools div.schools__tabs > button.schools__tab,
  html body #schools div.schools__sub-tabs > button.schools__sub-tab,
  html body #schools a.school__card.school__card--sm > p.school__meta,
  html body #schools a.school__card.school__card--sm.school__card--feature > p.school__meta,
  html body #schools div.container > p.schools__hint,
  html body #schools div.container > ul.schools__more > li > a,
  html body #schools div.container > a.btn.btn--outline,
  html body #articles div.container > h3.newslist__title.articles__subttl,
  html body #articles div.article__body > span.article__tag,
  html body #articles a.article__card > div.article__body > h3,
  html body #articles summary.artmore__sum > h3.artmore__title,
  html body #articles details.artmore > ul.artmore__items > li > a,
  html body #articles div.newslist > h3.newslist__title,
  html body #articles ul.newslist__items > li > a > span.newslist__cat,
  html body #articles div.newslist > ul.newslist__items > li > a,
  html body #articles div.container > a.btn.btn--outline,
  html body #faq details.faq__item > div.faq__a > p,
  html body #faq div.faq__a > p > span.mk,
  html body #faq div.faq__a > ul.faq__points > li > b,
  html body #faq div.faq__a > ul.faq__points > li,
  html body #faq ul.faq__points > li > span.mk,
  html body #faq div.faq__a > ul.faq__points > li > a,
  html body #faq details.faq__item > div.faq__a > p > b,
  html body #faq div.container > p.faq__more > a,
  html body .footer div.container > nav.footer__main-nav > a,
  html body .footer div.footer__brand > p.footer__tagline,
  html body .footer div.footer__info > p.footer__info-title,
  html body .footer div.footer__info > p.footer__info-text,
  html body .footer p.footer__info-text > span.footer__info-note,
  html body .footer div.footer__info > a.footer__info-link,
  html body .footer div.footer__sns > a.footer__sns-btn.footer__sns-btn--fb,
  html body .footer div.footer__sns > a.footer__sns-btn.footer__sns-btn--x,
  html body .footer div.footer__info > a.footer__related > span,
  html body .footer div.footer__info > a.footer__ext,
  html body .footer summary.footer__grp-sum > h3.footer__col-title,
  html body .footer div.footer__col > details.footer__grp > ul > li > a,
  html body .footer div.footer__col > details.footer__grp.footer__grp--sub > ul > li > a,
  html body .footer div.footer__bottom > p.footer__copy { font-size: 16px !important; }
}
@media (max-width: 840px) {
  html body .trust-bar div.container.trust-bar__inner > p.tbw-note > span,
  html body #hero a.fvcta__btn.fvcta__btn--consult > span.fvcta__tab.fvcta__tab--bubble,
  html body #hero span.fvcta__badge > span.fvcta__badge-was,
  html body #hero a.fvcta__btn.fvcta__btn--consult > span.fvcta__badge > small,
  html body #hero a.fvcta__btn.fvcta__btn--line > span.fvcta__tab.fvcta__tab--bubble.fvcta__tab--bubble-line,
  html body .offerbar span.ob__head > span.ob__ribbon,
  html body .offerbar span.ob__desc > span.nw,
  html body .offerbar div.container > p.offerbar__fx,
  html body .offerbar div.container > p.offerbar__fx > strong,
  html body #service div.pcard__cap > span.pcard__catch,
  html body #service article.pcard > p.pcard__txt,
  html body #service div.pcard__inc > p.pcard__inc-ttl,
  html body #service div.pcard__inc > ul.pcard__list > li,
  html body #service details.pcard__more > summary.pcard__more-label,
  html body #service details.pcard__more > p.pcard__more-tags > a,
  html body #service article.pcard > a.pcard__go,
  html body #service article.pcard > a.pcard__go > span,
  html body #service p.pcard__txt > span.nw,
  html body #service ul.pcard__list > li > span.nw,
  html body #service div.pcards__nav > p.pcards__hint,
  html body #service div.svc-more > p.svc-more__label,
  html body #service span.svc-more__gtext > span.svc-more__gname,
  html body #service span.svc-more__gtext > span.svc-more__gex,
  html body #service summary.svc-more__gttl > span.svc-more__icon,
  html body #service div.svc-more__body > ul.svc-more__list > li > a,
  html body #service ul.svc-more__list > li > a > span.nw,
  html body #service div.svc-more__body > p.svc-more__fx,
  html body #service div.svc-more__body > p.svc-more__glink > a,
  html body #age div.age2__head > p.age2__kind,
  html body #age li.age2__col.age2__col--1 > p.age2__txt,
  html body #age li.age2__col.age2__col--1 > p.age2__txt > b,
  html body #age li.age2__col.age2__col--1 > ul.age2__links > li > a,
  html body #age li.age2__col.age2__col--2 > p.age2__txt,
  html body #age li.age2__col.age2__col--2 > p.age2__txt > b,
  html body #age li.age2__col.age2__col--2 > ul.age2__links > li > a,
  html body #age li.age2__col.age2__col--3 > p.age2__txt > b,
  html body #age li.age2__col.age2__col--3 > p.age2__txt,
  html body #age li.age2__col.age2__col--3 > ul.age2__links > li > a,
  html body #budget div.bud__block > p.bud__sub,
  html body #budget a.bud__fee > span.bud__go,
  html body #budget div.bud__block > p.bud__note,
  html body #whymy p.section-sub > span.fbw,
  html body #whymy ul.wmy__stats > li > p.wmy__tag,
  html body #whymy p.wmy__num > small.wmy__pre,
  html body #whymy ul.wmy__stats > li > p.wmy__lbl,
  html body #whymy p.wmy__desc > span.mk,
  html body #whymy ul.wmy__stats > li > p.wmy__desc,
  html body #whymy ul.wmy__stats > li > p.wmy__num > small,
  html body #whymy div.container > dl.wmy__more > div > dt > span,
  html body #whymy div.container > dl.wmy__more > div > dd,
  html body #whymy dl.wmy__more > div > dd > span.mk,
  html body #value div.vcard__cap > span.vcard__catch,
  html body #value article.vcard > div.vcard__body > p,
  html body #value div.vcard__body > p > span.mk,
  html body #value article.vcard > div.vcard__body > p > b,
  html body #value summary.value__acc-q > span.value__acc-icon,
  html body #value div.value__acc-a > p > span.mk,
  html body #value details.value__acc-item > div.value__acc-a > p,
  html body #value div.value__more > a.value__more-link,
  html body #results div.vstory__body > ul.vstory__tags > li,
  html body #results div.vstory__body > p.vstory__who,
  html body #results div.vstory__body > p.vstory__ex,
  html body #results div.vstory__body > p.vstory__ex > b,
  html body #results div.container > p.voice__more > a,
  html body #cta div.cbox__bubbles > span.cbox__bubble,
  html body #cta p.cbox__note > span.fbw,
  html body #cta div.cbox__pane > p.cbox__note,
  html body #cta div.cbox__pane > p.cbox__note > b,
  html body #cta div.cbox__pane > p.cbox__q,
  html body #cta button.cbox__kind-btn > span.fbw,
  html body #cta div.cbox__kind > button.cbox__kind-btn > small,
  html body #cta p.cbox__callout > span.fbw,
  html body #cta div.cbox__pane > a.cbox__fallback,
  html body #cta div.container > div.cta__hours > div > p > strong,
  html body #cta div.container > div.cta__hours > div > p,
  html body #schools div.schools__tabs > button.schools__tab,
  html body #schools div.schools__sub-tabs > button.schools__sub-tab,
  html body #schools a.school__card.school__card--sm > p.school__meta,
  html body #schools a.school__card.school__card--sm.school__card--feature > p.school__meta,
  html body #schools div.container > p.schools__hint,
  html body #schools div.container > ul.schools__more > li > a,
  html body #articles div.article__body > span.article__tag,
  html body #articles a.article__card > div.article__body > h3,
  html body #articles summary.artmore__sum > h3.artmore__title,
  html body #articles details.artmore > ul.artmore__items > li > a,
  html body #articles ul.newslist__items > li > a > span.newslist__cat,
  html body #articles div.newslist > ul.newslist__items > li > a,
  html body #faq details.faq__item > div.faq__a > p,
  html body #faq div.faq__a > p > span.mk,
  html body #faq div.faq__a > ul.faq__points > li > b,
  html body #faq div.faq__a > ul.faq__points > li,
  html body #faq ul.faq__points > li > span.mk,
  html body #faq div.faq__a > ul.faq__points > li > a,
  html body #faq details.faq__item > div.faq__a > p > b,
  html body #faq div.container > p.faq__more > a,
  html body .footer div.container > nav.footer__main-nav > a,
  html body .footer div.footer__brand > p.footer__tagline,
  html body .footer div.footer__info > p.footer__info-title,
  html body .footer div.footer__info > p.footer__info-text,
  html body .footer p.footer__info-text > span.footer__info-note,
  html body .footer div.footer__info > a.footer__info-link,
  html body .footer div.footer__sns > a.footer__sns-btn.footer__sns-btn--fb,
  html body .footer div.footer__sns > a.footer__sns-btn.footer__sns-btn--x,
  html body .footer div.footer__info > a.footer__related > span,
  html body .footer div.footer__info > a.footer__ext,
  html body .footer summary.footer__grp-sum > h3.footer__col-title,
  html body .footer div.footer__col > details.footer__grp > ul > li > a,
  html body .footer div.footer__col > details.footer__grp.footer__grp--sub > ul > li > a,
  html body .footer div.footer__bottom > p.footer__copy { font-size: 15px !important; }
}
html body .trust-bar sup { font-size: inherit !important; vertical-align: baseline; top: 0; margin-left: 1px; } /* 2026-10-29 本文より小さい文字を作らない＝※1/※2も同サイズで */
/* --- 2026-10-29 相談節：SPはCTA→その場でnitteを開く／PCは最初から7日表示（iframe幅720px以上・高さ約1,020px） --- */
html body .cbox__embed.is-closed { display: none; }
html body .cbox__how-sp { display: none; }
@media (max-width: 840px) {
  html body .cbox.is-js .cbox__how-sp { display: inline; }
  html body .cbox.is-js .cbox__how-pc { display: none; }
  html body #cta .cbox__open { display: flex; width: 100%; margin: 52px 0 16px; cursor: pointer; font-family: inherit; border: 0; }
  html body #cta .cbox__open[hidden] { display: none; }
  html body #cta .cbox__open[aria-expanded="true"] .fvcta__badge, html body #cta .cbox__open[aria-expanded="true"] .fvcta__tab { display: none; }
}
@media (min-width: 841px) {
  html body .cbox { max-width: 820px; }
  html body .cbox__embed { --view: 1020px; }
}
@media (max-width: 840px) {
  html body #cta div.cbox__bubbles > span.cbox__bubble { padding: 6px 8px; letter-spacing: 0; white-space: nowrap; }
  html body #cta div.cbox__bubbles { margin-left: -6px; margin-right: -6px; column-gap: 4px; }
}
@media (max-width: 840px) { html body #cta div.cbox__bubbles > span.cbox__bubble { white-space: normal; max-width: 100%; line-height: 1.35; border-radius: 14px; word-break: keep-all; } }
html body .cbox__open[hidden] { display: none !important; }
html body .cbox__kind-btn small .fbw { display: inline-block; }
/* nitteの7日表示は左に説明欄が付き、全7日が見えるのは枠幅約1,020px以上（10/29実測）＝PCだけ相談ボックスの外へ広げる */
@media (min-width: 841px) {
  html body .cbox__embed { width: min(1060px, calc(100vw - 64px)); position: relative; left: 50%; transform: translateX(-50%); }
}
@media (min-width: 841px) { html body .cbox__embed { width: min(1100px, calc(100vw - 40px)); } } /* 10/29実測：全7日が枠内に収まるのは約1,100px（1,020pxだと日曜が切れる） */
/* --- 2026-10-29 TakuFB：学校カード＝ロゴ＋学校名を主役に、写真は従（ロゴ→名前→カナ→写真の順） --- */
html body #schools a.school__card.school__card--sm { display: flex; flex-direction: column; }
html body #schools .school__logo { order: 0; display: flex; align-items: center; justify-content: center; height: 84px; padding: 12px 16px; background: #fff; border-bottom: 1px solid #F1E6EB; }
html body #schools .school__logo img { max-width: 100%; max-height: 60px; width: auto; height: auto; object-fit: contain; }
html body #schools .school__logo--dark { background: #1B2A52; }
html body #schools .school__logo--txt span { font-size: 16px; font-weight: 900; color: #1B2A52; text-align: center; line-height: 1.3; }
html body #schools a.school__card--sm > .school__name { order: 1; }
html body #schools a.school__card--sm > .school__meta { order: 2; }
html body #schools a.school__card--sm > .school__card-img { order: 3; height: 64px; margin-top: auto; opacity: .95; }
html body #schools a.school__card--sm > .school__card-img img { border-radius: 0; }
@media (max-width: 840px) { html body #schools .school__logo { height: 72px; padding: 10px 12px; } html body #schools .school__logo img { max-height: 50px; } html body #schools a.school__card--sm > .school__card-img { height: 56px; } }
/* カリキュラムの絞り込み（地域の下の2段目） */
html body #schools .schools__curr { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 18px; }
html body #schools .schools__curr[hidden], html body #schools .schools__curr-empty[hidden] { display: none; }
html body #schools .schools__curr-lbl { font-size: 16px; font-weight: 800; color: #1B2A52; margin-right: 4px; }
html body #schools .schools__curr-btn { min-height: 44px; padding: 8px 16px; border: 1.5px solid #E3D2DA; border-radius: 999px; background: #fff; color: #465364; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; }
html body #schools .schools__curr-btn.is-active { background: #1B2A52; border-color: #1B2A52; color: #fff; }
html body #schools .schools__curr-empty { font-size: 16px; color: #465364; margin: 0 0 16px; }
html body #schools .schools__curr-empty a { color: #B32469; text-decoration: underline; }
html body #schools .school__card.is-curr-off { display: none !important; }
@media (max-width: 840px) {
  html body #schools .schools__curr { flex-wrap: nowrap; overflow-x: auto; margin-right: -24px; padding-right: 24px; gap: 6px; -webkit-overflow-scrolling: touch; }
  html body #schools .schools__curr-lbl { flex: 0 0 auto; font-size: 15px; }
  html body #schools .schools__curr-btn { flex: 0 0 auto; font-size: 15px; padding: 8px 14px; }
  html body #schools .schools__curr-empty { font-size: 15px; }
}
@media (min-width: 841px) { html body #schools .schools__tabs { flex-wrap: nowrap; gap: 8px; } html body #schools button.schools__tab { padding-left: 16px; padding-right: 16px; white-space: nowrap; } }
html body #schools a.school__card--sm > .school__meta { letter-spacing: 0; }
@media (max-width: 840px) {
  html body #cta .cbox__open span.fvcta__tab.fvcta__tab--bubble, html body #cta .cbox__open .fvcta__badge > span.fvcta__badge-was, html body #cta .cbox__open .fvcta__badge > small { font-size: 15px !important; }
  html body #cta a.cbox__fallback { display: flex; align-items: center; justify-content: center; min-height: 44px; }
  html body #schools .schools__sub-tab { min-height: 44px; }
}
/* 2026-10-29 本文サイズ未満を作らない→丸バッジの文字（通常8,000円／キャンペーン）が円からはみ出すので円を大きく */
html body .fvcta__badge { width: 128px; height: 128px; top: -46px; left: -30px; gap: 2px; }
html body .fvcta__badge b { font-size: 30px; }
@media (max-width: 840px) {
  html body .fvcta__badge { width: 112px; height: 112px; top: -50px; left: -14px; }
  html body .fvcta__badge b { font-size: 26px; }
  html body .fvcta__btn--consult { padding-left: 76px !important; }
  html body .fvcta__btn--consult .fvcta__ico { display: none; }
}
@media (min-width: 841px) { html body .fvcta__btn--consult .fvcta__ico { display: none; } html body .fvcta__btn--consult { padding-left: 96px; } }
@media (max-width: 840px) {
  html body #cta .cbox__open { padding-left: 16px !important; margin-top: 96px; }
  html body #cta .cbox__open .fvcta__badge { top: -92px; left: -8px; }
  html body #cta .cbox__open .fvcta__tab--bubble { left: auto !important; right: 8px; transform: translate(0, -100%) !important; }
  html body #cta .cbox__open .fvcta__tab--bubble::after { left: 70%; }
}

/* --- 2026-10-29 TakuFB訂正：実績は「黒文字（数字・単位・以上）を大きく」が正しい意図（小さくしたのは誤解）。茶色の項目名はそのまま。
       文字を大きくした分、葉の間隔（badge幅）を広げて重ならないようにする（葉そのものの大きさは変えない） --- */
@media (min-width: 841px) {
  html body .trust-bar .tbw--in .tbw__badge { width: 196px; }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 38px; letter-spacing: -.02em; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 26px; line-height: 1.15; }
  html body .trust-bar .tbw__l1 small { font-size: 20px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 18px; }
}
@media (max-width: 840px) {
  html body .trust-bar .tbw--in .tbw__badge { width: 112px; }
  html body .trust-bar .tbw--in .tbw__num:not(.tbw__num--word) { font-size: 23px; letter-spacing: -.02em; }
  html body .trust-bar .tbw--in .tbw__num--word { font-size: 18px; line-height: 1.15; }
  html body .trust-bar .tbw__l1 small { font-size: 15px; }
  html body .trust-bar .tbw--in .tbw__l2 { font-size: 15px; }
}

/* --- 2026-10-29 TakuFB再修正：「期間から」「費用から」の白カード＋影＋左帯は「浮いて見える・AIっぽい」→箱をやめ、
       塗りのアイコン＋ピンクの大きめ文字＋下線で見出しと分かる形に（下の小見出し＝灰色・小さい文字と色・大きさ・アイコンで差をつける） --- */
html body .bud__h {
  background: none; box-shadow: none; border: 0 !important; border-bottom: 2px solid #D42F7A !important; border-radius: 0;
  padding: 0 0 10px; margin: 0 0 14px; gap: 10px; font-size: 24px; color: #B32469 !important;
}
html body .bud__h .bud__hico { flex: 0 0 38px; width: 38px; height: 38px; padding: 8px; border-radius: 50%; background: #D42F7A; color: #fff; }
@media (max-width: 840px) { html body .bud__h { font-size: 21px; padding: 0 0 8px; } html body .bud__h .bud__hico { flex-basis: 34px; width: 34px; height: 34px; padding: 7px; } }

/* --- 2026-10-29 Taku指摘「表示崩れ」：フッター右列（PC幅220px）で文字を16pxに上げた結果、SNSボタンが楕円に折れ・関連サイトが4行に。
       ボタンは折り返さず横幅いっぱいで縦に並べ、関連サイトは写真を上・文字を下に --- */
@media (min-width: 841px) {
  html body .footer .footer__sns { flex-direction: column; gap: 8px; }
  html body .footer div.footer__sns > a.footer__sns-btn { display: block; width: 100%; white-space: nowrap; text-align: center; padding: 10px 14px; line-height: 1.3; border-radius: 999px; box-sizing: border-box; }
  html body .footer a.footer__related { flex-direction: column; align-items: stretch; padding: 0 !important; overflow: hidden; }
  html body .footer a.footer__related img { width: 100%; height: 96px; }
  html body .footer div.footer__info > a.footer__related > span { padding: 10px 14px 12px; line-height: 1.6; }
}
/* カリキュラムタブ下の補足リンク（比較一覧・学校基本情報） */
html body .schools__cur-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; }
html body .schools__cur-link { font-weight: 700; color: var(--soft-accent, #B32469); text-decoration: underline; text-underline-offset: 4px; }
html body .schools__cur-link span { margin-left: 8px; font-weight: 400; color: #5a5a6a; text-decoration: none; display: inline-block; }
html body .schools__cur-link span::before { content: "→ "; }

/* --- 2026-10-29 Taku決定（案1・`調査・戦略/HP・LP改修/261029_学校カード案/`）：写真が下にちらっと見える違和感→
       写真を上のヘッダーに、ロゴを白い円で写真の下端に半分重ね、校名・カナは中央。ロゴは円の内側に収める（縦横比から内接サイズをJSで計算＝main.js fitSchoolLogo） --- */
html body #schools a.school__card--sm:has(> .school__logo) > .school__card-img { order: 0; height: 120px; margin-top: 0; opacity: 1; flex: 0 0 auto; }
html body #schools a.school__card--sm > .school__logo {
  order: 1; position: relative; z-index: 1; width: 116px; height: 116px; margin: -58px auto 0; padding: 0;
  border: 3px solid #fff; border-bottom: 3px solid #fff; border-radius: 50%; overflow: hidden; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.12);
}
html body #schools a.school__card--sm > .school__logo img { max-width: 100px; max-height: 70px; }
html body #schools a.school__card--sm > .school__logo--dark { background: #1B2A52; }
html body #schools a.school__card--sm > .school__logo--txt { padding: 10px; }
html body #schools a.school__card--sm > .school__logo--txt span { font-size: 15px; line-height: 1.25; }
html body #schools a.school__card--sm:has(> .school__logo) > .school__name { order: 2; text-align: center; padding-top: 12px; }
html body #schools a.school__card--sm:has(> .school__logo) > .school__meta { order: 3; text-align: center; padding-bottom: 18px; }
@media (max-width: 840px) {
  html body #schools a.school__card--sm:has(> .school__logo) > .school__card-img { height: 100px; }
  html body #schools a.school__card--sm > .school__logo { width: 104px; height: 104px; margin-top: -52px; }
  html body #schools a.school__card--sm > .school__logo img { max-width: 90px; max-height: 62px; }
}

/* --- 2026-10-29 Taku「期間の線が太いからもう少し弱めて」：8px・濃いグラデ→4px・淡いピンクに --- */
html body .bud__len { height: 4px; border-radius: 2px; margin-top: 6px; background: linear-gradient(90deg, #F2C3D7, #DE8BB0); }

/* --- 2026-10-29 Taku決定（案A）：SPは種別ボタン2つ＝そのまま予約ボタン（タブ＋CTAの2段をやめる）。PCは従来どおり --- */
.cbox__free-sp, .cbox__kind-sp { display: none; }
@media (max-width: 840px) {
  html body #cta .cbox__open { display: none !important; }
  html body #cta .cbox__free-sp { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin: 4px 0 8px; font-size: 15px; font-weight: 800; color: #B32469; }
  html body #cta .cbox__free-sp span { color: #6b5a62; font-weight: 700; text-decoration: line-through; }
  html body #cta .cbox__free-sp b { font-size: 24px; font-weight: 900; color: #E0283A; }
  html body #cta .cbox__kind { display: flex; flex-direction: column; gap: 14px; background: none; padding: 0; }
  html body #cta .cbox__kind .cbox__kind-sp { display: inline; }
  html body #cta button.cbox__kind-btn, html body #cta button.cbox__kind-btn.is-on {
    display: block; width: 100%; min-height: 76px; padding: 14px 40px 14px 16px; position: relative;
    border: 0 !important; outline: 0; border-radius: 10px; background: #B32469 !important; color: #fff !important;
    box-shadow: 0 5px 0 #7E1749 !important; font-size: 18px; font-weight: 800; line-height: 1.4; text-align: center;
  }
  html body #cta button.cbox__kind-btn small { display: block; margin-top: 2px; font-size: 15px; font-weight: 700; color: #FCE4EF !important; }
  html body #cta button.cbox__kind-btn::after {
    content: ""; position: absolute; right: 18px; top: 50%; width: 10px; height: 10px; margin-top: -8px;
    border-right: 3px solid #fff; border-bottom: 3px solid #fff; transform: rotate(45deg); transition: transform .2s;
  }
  html body #cta button.cbox__kind-btn.is-open::after { transform: rotate(-135deg); margin-top: -2px; }
  html body #cta button.cbox__kind-btn:active { transform: translateY(3px); box-shadow: 0 2px 0 #7E1749 !important; }
  html body #cta .cbox__callout { margin-top: 18px; }
}
@media (max-width: 840px) {
  html body #cta button.cbox__kind-btn .fbw { font-size: 18px; }
  html body #cta .cbox__q .cbox__q-main { display: block; font-size: 20px; font-weight: 900; color: #1E2A3A; margin-bottom: 2px; }
}
@media (max-width: 840px) { html body #cta button.cbox__kind-btn small .fbw { font-size: 15px; } }

/* --- 2026-10-29 Taku「上の文字は前より少し小さめでいい」：実績の項目名（茶色）だけ本文サイズ未満を許容（PC 16→14px／SP 15→13px） --- */
@media (min-width: 841px) { html body .trust-bar .tbw--in .tbw__cap { font-size: 14px; } }
@media (max-width: 840px) { html body .trust-bar .tbw--in .tbw__cap { font-size: 13px; } }

/* --- 2026-10-29 Taku「エリアと学費は写真が上の方が綺麗・少し大きめに」：解説系カード（--feature）は写真を上に・カードと写真を大きく --- */
html body #schools a.school__card--sm.school__card--feature > .school__card-img { order: 0; height: 150px; margin-top: 0; opacity: 1; }
html body #schools a.school__card--sm.school__card--feature { flex-basis: 260px; }
html body #schools a.school__card--sm.school__card--feature > .school__name { order: 1; padding-top: 14px; font-size: 18px; }
html body #schools a.school__card--sm.school__card--feature > .school__meta { order: 2; padding-bottom: 16px; }
@media (max-width: 840px) {
  html body #schools a.school__card--sm.school__card--feature { flex-basis: 220px; }
  html body #schools a.school__card--sm.school__card--feature > .school__card-img { height: 130px; }
  html body #schools a.school__card--sm.school__card--feature > .school__name { font-size: 17px; }
}

/* --- 2026-10-29 実績をCodex画像に差し替え（PC 1600×420／SP 780×640） --- */
html body .trust-bar .tbw-img { display: block; width: 100%; max-width: 1120px; margin: 20px auto 0; }
html body .trust-bar .tbw-img img { display: block; width: 100%; height: auto; }
@media (max-width: 840px) { html body .trust-bar .tbw-img { max-width: 400px; margin-top: 14px; } }

/* --- 2026-10-29 Taku：キャンペーン帯＝赤帯（ob__save）を右上のメダルへ・真ん中の説明文を削除・含まれるサポートを見やすく --- */
html body .offerbar--b .offerbar__item { grid-template-columns: 1fr auto; }
html body .offerbar--b .ob__medal { width: 132px; height: 132px; top: -30px; right: -22px; gap: 1px; }
html body .offerbar--b .ob__medal i { display: block; font-style: normal; font-size: 13px; font-weight: 800; line-height: 1.25; letter-spacing: 0; color: var(--ob-navy); }
html body .offerbar--b .ob__medal > i:last-child { margin-top: 3px; }
html body .offerbar--b .ob__medal--early b { font-size: 30px; letter-spacing: -.01em; }
html body .offerbar--b .ob__medal--early > small { font-size: 16px; }
html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 150px; }
/* 含まれるサポート：見出し＋チェック付きの4列（SP2列）。枠付きのピルをやめて読みやすく */
html body .offerbar--b .offerbar__item > span.ob__inc { display: block; }
html body .offerbar--b .ob__inc-ttl { display: block; margin: 0 0 12px; padding: 0; font-size: 16px; color: #F3DC97 !important; letter-spacing: .06em; }
html body .offerbar--b span.ob__inc-list { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 20px; text-align: left; line-height: 1.5; }
html body .offerbar--b span.ob__inc-list > span { display: flex !important; align-items: flex-start; gap: 8px; padding: 0 !important; border: 0 !important; border-radius: 0; font-size: 15px; line-height: 1.5; color: #E7EAF3 !important; }
html body .offerbar--b span.ob__inc-list > span::before { content: ""; flex: 0 0 16px; width: 16px; height: 16px; margin-top: 4px; border-radius: 50%; background: var(--ob-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%231B2A52' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat; }
html body .offerbar--b span.ob__inc-list > span::after { content: none !important; }
@media (max-width: 840px) {
  html body .offerbar--b .offerbar__item { grid-template-columns: 1fr; }
  html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 20px; }
  html body .offerbar--b .ob__medal { width: 104px; height: 104px; top: -22px; right: -10px; }
  html body .offerbar--b .ob__medal i { font-size: 11px; }
  html body .offerbar--b .ob__medal--early b { font-size: 22px; }
  html body .offerbar--b .ob__medal--early > small { font-size: 13px; }
  html body .offerbar--b span.ob__inc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
  html body .offerbar--b span.ob__inc-list > span { font-size: 14px; }
  html body .offerbar--b .ob__inc-ttl { text-align: left; }
}
html body .offerbar--b span.ob__inc-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 28px; }
html body .offerbar--b span.ob__inc-list > span { white-space: nowrap; }
@media (max-width: 840px) {
  html body .offerbar--b .offerbar__item { padding-top: 76px; }
  html body .offerbar--b .ob__medal { width: 96px; height: 96px; top: -18px; right: -8px; }
  html body .offerbar--b .ob__medal--early b { font-size: 20px; }
  html body .offerbar--b .ob__medal i { font-size: 10.5px; }
  html body .offerbar--b span.ob__inc-list { grid-template-columns: 1fr; gap: 8px; justify-items: start; }
  html body .offerbar--b span.ob__inc-list > span { white-space: normal; text-align: left; font-size: 15px; }
}

/* --- 2026-10-30 Taku「nitteの枠がコンテンツ幅から飛び出している→箱ごと横に伸ばして日程が入るように」：
       PCは相談ボックス自体を1,100pxに広げ、nitteは箱の内側いっぱい（はみ出し・中央寄せのtransformをやめる）。中の文章・種別ボタンは読みやすい幅に --- */
@media (min-width: 841px) {
  html body .cbox { max-width: 1100px; }
  html body .cbox__embed { width: 100% !important; left: auto !important; transform: none !important; }
  html body .cbox__note, html body .cbox__q, html body .cbox__kind, html body .cbox__callout { max-width: 820px; margin-left: auto; margin-right: auto; }
}

/* --- 2026-10-30 Taku「見栄え整えて」（SPの相談タブ上部）：説明文を中央揃え・「下のボタンから〜」は見出しと重複するので非表示／
       見出し→無料バッジ→補足の順に1つのまとまりへ（無料はピンクの淡い帯に） --- */
@media (max-width: 840px) {
  html body #cta .cbox__note { text-align: center; font-size: 15px; line-height: 1.8; }
  html body #cta .cbox__note .fbw { display: inline-block; }
  html body #cta .cbox.is-js .cbox__note .cbox__how-sp, html body #cta .cbox.is-js .cbox__note .cbox__how-sp + br { display: none; }
  html body #cta .cbox__q { margin-top: 20px; text-align: center; }
  html body #cta .cbox__q .cbox__q-main { font-size: 21px; margin-bottom: 10px; }
  html body #cta .cbox__q span.cbox__free-sp { display: inline-flex !important; align-items: baseline; justify-content: center; gap: 6px; margin: 0 0 12px; padding: 6px 16px; border-radius: 999px; background: #FDEAF2; font-size: 14px; font-weight: 800; color: #B32469; }
  html body #cta .cbox__q span.cbox__free-sp s { color: #6b5a62; font-weight: 700; text-decoration-color: #E0283A; }
  html body #cta .cbox__q span.cbox__free-sp .cbox__free-arw { color: #B32469; }
  html body #cta .cbox__q span.cbox__free-sp b { font-size: 20px; font-weight: 900; color: #E0283A; }
  html body #cta .cbox__q .cbox__q-sub { display: block; font-size: 15px; font-weight: 700; color: #465364; }
}
@media (max-width: 840px) {
  html body #cta .cbox__q span.cbox__free-sp > span { text-decoration: none !important; color: #B32469 !important; font-weight: 800; }
  html body #cta .cbox.is-js .cbox__note b:has(.cbox__how-sp) + br { display: none; }
}
/* 2026-10-30 Taku「スマホは消そう。カレンダー見えてないから」＝SPは「直近の日程はすぐに埋まって〜」を非表示（PCは表示） */
@media (max-width: 840px) { html body #cta .cbox__callout { display: none; } }
/* 2026-10-30 Taku「これもスマホはいらない」＝SPの「通常8,000円→無料 キャンペーン中」帯を非表示 */
@media (max-width: 840px) { html body #cta .cbox__q span.cbox__free-sp { display: none !important; } }

/* 2026-10-30 Taku「単語の途中で改行しない」：カタカナ語・英数字のまとまり（main.js が .nobr で包む）は折り返さない／Chrome系は文節単位 */
html body .nobr { white-space: nowrap; }
html body { word-break: auto-phrase; }
html body .nobr.nobr--off { white-space: normal; }
html body footer, html body .footer { word-break: normal; } /* フッターの狭い列は文節単位だと列が広がるため通常の折り返し（見出しは<wbr>で区切り位置を指定） */

/* --- 2026-10-30 Taku：メダル削除・「詳しくはこちら」をカード右下へ・「約9,900円お得」を目立たせる --- */
html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 34px; }
html body .offerbar--b .offerbar__item > span.ob__btn--br { grid-column: 1 / -1; justify-self: end; margin-top: 18px; border-left: 0 !important; }
html body .offerbar--b .offerbar__item.ob--basic > span.ob__inc { order: 0; }
html body .offerbar--b .ob__early {
  display: flex; flex-direction: column; align-items: center; margin-top: 12px; padding: 8px 18px 10px; border-radius: 10px;
  background: linear-gradient(180deg, #FFF4D2 0%, #F3DC97 100%); box-shadow: 0 0 0 2px #D9B45A inset;
}
html body .offerbar--b .ob__early small { font-size: 14px; font-weight: 800; color: #1B2A52 !important; line-height: 1.4; }
html body .offerbar--b .ob__early b { font-size: 26px; font-weight: 900; color: #C8102E !important; line-height: 1.2; letter-spacing: .02em; }
@media (max-width: 840px) {
  html body .offerbar--b .offerbar__item { padding-top: 22px; }
  html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 20px; }
  html body .offerbar--b .offerbar__item > span.ob__btn--br { justify-self: stretch; width: 100%; justify-content: center; }
  html body .offerbar--b .ob__early b { font-size: 22px; }
}
/* 単語保持用の span（main.js）は見た目を一切変えない＝親の文字色・書体を継承（「x span」系の既存ルールに拾われて白くなる事故を防ぐ） */
html body .nobr, html body .nobr-wrap { display: inline; color: inherit !important; font: inherit !important; letter-spacing: inherit !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; text-decoration: inherit; }
/* 「.offerbar__item * { color:#fff !important }」等のワイルドカード指定に負けないよう、:is(#id, *) で詳細度を上げて継承させる */
html body :is(#__nobr, *) .nobr, html body :is(#__nobr, *) .nobr-wrap { color: inherit !important; font: inherit !important; letter-spacing: inherit !important; }
/* フッターも単語途中で折らない：nowrap の語で列が広がらないよう、グリッド・フレックスの子に min-width:0 */
html body .footer .footer__top > *, html body .footer .footer__services > *, html body .footer .footer__col, html body .footer details, html body .footer ul, html body .footer li { min-width: 0; }
html body .nobr-seg { white-space: nowrap; color: inherit !important; font: inherit !important; }

/* --- 2026-10-30 Taku「右上のバッジは取らないでほしかった」＝メダルは残し、中身を「◯◯円お得」に（50%OFF・RM300 OFFの表記はなし） --- */
html body .offerbar--b .ob__medal--yen { width: 140px; height: 140px; top: -30px; right: -22px; gap: 2px; }
html body .offerbar--b .ob__medal--yen b { font-size: 25px; font-weight: 900; letter-spacing: -.02em; color: #B0122C !important; line-height: 1.1; }
html body .offerbar--b .ob__medal--yen > small { font-size: 17px; font-weight: 900; letter-spacing: .1em; }
html body .offerbar--b .ob__medal--yen i { font-size: 13px; }
html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 150px; }
@media (max-width: 840px) {
  html body .offerbar--b .offerbar__item { padding-top: 84px; }
  html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 20px; }
  html body .offerbar--b .ob__medal--yen { width: 108px; height: 108px; top: -18px; right: -8px; }
  html body .offerbar--b .ob__medal--yen b { font-size: 19px; }
  html body .offerbar--b .ob__medal--yen > small { font-size: 14px; }
  html body .offerbar--b .ob__medal--yen i { font-size: 11px; }
}
@media (min-width: 841px) { html body .offerbar--b .ob__medal--yen b { font-size: 22px; } }

/* --- 2026-10-30 Taku「バッジが安っぽい・文字が小さい」：光沢の強い放射グラデ＋赤文字＋濃い影をやめ、
       落ち着いた金の面＋内側の細い二重線＋紺の大きな数字に（色は金と紺の2系統だけ）。円も文字も大きく --- */
html body .offerbar--b .ob__medal--yen {
  width: 168px; height: 168px; top: -34px; right: -26px; gap: 4px;
  background: linear-gradient(145deg, #F6E4AE 0%, #E2C27A 48%, #CFA75A 100%);
  box-shadow: 0 6px 16px rgba(10,20,50,.28), inset 0 0 0 5px rgba(255,255,255,.0), inset 0 0 0 6px #B8904A, inset 0 0 0 9px rgba(255,248,225,.7), inset 0 0 0 10px #B8904A;
}
html body .offerbar--b .ob__medal--yen i { font-size: 15px; font-weight: 800; letter-spacing: .04em; color: #1B2A52 !important; line-height: 1.3; }
html body .offerbar--b .ob__medal--yen b { font-size: 30px; font-weight: 900; letter-spacing: -.01em; color: #1B2A52 !important; line-height: 1.1; }
html body .offerbar--b .ob__medal--yen > small { font-size: 18px; font-weight: 900; letter-spacing: .12em; color: #1B2A52 !important; }
html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 170px; }
@media (max-width: 840px) {
  html body .offerbar--b .offerbar__item { padding-top: 104px; }
  html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 20px; }
  html body .offerbar--b .ob__medal--yen { width: 128px; height: 128px; top: -20px; right: -10px; }
  html body .offerbar--b .ob__medal--yen i { font-size: 12px; }
  html body .offerbar--b .ob__medal--yen b { font-size: 23px; }
  html body .offerbar--b .ob__medal--yen > small { font-size: 15px; }
}

/* --- 2026-10-30 Taku「バッジはCodexで画像に」：メダルは画像（images/lp/badge_*.webp・生成元 _codex_out/luchouette/261030_キャンペーンバッジ/）。CSSの金の面・影は外す --- */
html body .offerbar--b .ob__medal--img { width: 170px; height: 170px; top: -36px; right: -28px; background: none !important; box-shadow: none !important; border-radius: 50%; filter: drop-shadow(0 6px 12px rgba(10,20,50,.3)); }
html body .offerbar--b .ob__medal--img img { width: 100%; height: 100%; display: block; }
html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 170px; }
@media (max-width: 840px) {
  html body .offerbar--b .offerbar__item { padding-top: 104px; }
  html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 20px; }
  html body .offerbar--b .ob__medal--img { width: 128px; height: 128px; top: -20px; right: -10px; }
}
/* 2026-10-30 Taku：SPの予約ボタン文言＝「短期留学・親子留学で相談する」「インター入学・大学進学で相談する」 */
@media (max-width: 840px) {
  html body #cta .cbox__kind .cbox__kind-sp { display: inline; }
  html body #cta button.cbox__kind-btn { padding-left: 12px; padding-right: 34px; }
  html body #cta button.cbox__kind-btn .fbw, html body #cta button.cbox__kind-btn .cbox__kind-sp { font-size: 16.5px; }
  html body #cta button.cbox__kind-btn::after { right: 14px; }
}
/* 2026-10-30 Taku「もっと小さくていい」＝バッジ PC170→132px／SP128→100px */
html body .offerbar--b .ob__medal--img { width: 132px; height: 132px; top: -26px; right: -20px; }
html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 140px; }
@media (max-width: 840px) {
  html body .offerbar--b .ob__medal--img { width: 100px; height: 100px; top: -16px; right: -8px; }
  html body .offerbar--b .offerbar__item { padding-top: 80px; }
  html body .offerbar--b .offerbar__item.ob--tour, html body .offerbar--b .offerbar__item.ob--basic { padding-right: 20px; }
}

/* --- 2026-10-30 Taku「横並びでもっと大きくできそう」：PCは右の価格列を大きく。金のフチは文字の外側だけに（字の中に線が入って見えていた） --- */
html body .offerbar--b .ob__price em { -webkit-text-stroke: 4px #F3DC97; paint-order: stroke fill; }
@media (min-width: 841px) {
  html body .offerbar--b .ob__price { min-width: 320px; padding-left: 36px; }
  html body .offerbar--b .ob__price em { font-size: 58px; line-height: 1.1; }
  html body .offerbar--b .ob__price s { font-size: 20px; }
  html body .offerbar--b .ob__rm { font-size: 18px !important; margin-top: 4px; }
}
@media (max-width: 840px) { html body .offerbar--b .ob__price em { -webkit-text-stroke-width: 3px; } }
/* 2026-10-30 Taku「詳しくはこちらもっと右に」＝PCはバッジ用の右余白（140px）を越えて、左の余白（34px）と揃う位置まで右へ */
@media (min-width: 841px) { html body .offerbar--b .offerbar__item > span.ob__btn--br { margin-right: -106px; } }
/* 2026-10-30 Taku「ちょっと大きい」＝PCの価格 58→48px・金のフチ 4→3px */
@media (min-width: 841px) { html body .offerbar--b .ob__price em { font-size: 48px; -webkit-text-stroke-width: 3px; } html body .offerbar--b .ob__price { min-width: 280px; } }
/* 2026-10-30 Taku「約と円小さく」＝数字の6割の大きさ */
html body .offerbar--b .ob__price em .ob__unit { font-size: .6em; font-weight: 900; letter-spacing: 0; color: inherit !important; -webkit-text-fill-color: inherit; }
html body .offerbar--b .ob__price em .ob__unit:first-child { margin-right: .04em; }
/* 2026-10-30 Taku「薄い緑で」＝「直近の日程はすぐに埋まって〜」の枠を淡い緑に（nitteの空き枠の緑に寄せる） */
html body #cta .cbox__callout { background: #EEF7F3 !important; border-color: #BFE0D3 !important; }
html body #cta .cbox__callout, html body #cta .cbox__callout * { color: #1F4D3E !important; }
/* 2026-10-30 Taku「約は白文字で」 */
html body .offerbar--b .ob__price em .ob__unit:first-child { color: #fff !important; -webkit-text-fill-color: #fff; -webkit-text-stroke: 0; }
/* 2026-10-30 Taku「スマホのバッジのバランスが悪い。前は良かった」＝SPは前の128px・上余白104pxに戻す。「約」「円」を小さくした分、数字を少し大きく */
@media (max-width: 840px) {
  html body .offerbar--b .ob__medal--img { width: 128px; height: 128px; top: -20px; right: -10px; }
  html body .offerbar--b .offerbar__item { padding-top: 104px; }
  html body .offerbar--b .ob__price em { font-size: 40px; }
}
/* 2026-10-30 Taku「改行箇所、他にないか確認して」：「.tbw-note span { display:block }」のような既存の span 指定が、単語保持用の span にも効いて1語ずつ改行していた
   → 単語保持用 span は常にインライン・余白なし（!important＋高い詳細度） */
html body :is(#__nobr, *) .nobr, html body :is(#__nobr, *) .nobr-wrap, html body :is(#__nobr, *) .nobr-seg { display: inline !important; margin: 0 !important; padding: 0 !important; width: auto !important; min-width: 0 !important; max-width: none !important; float: none !important; position: static !important; border: 0 !important; background: none !important; box-shadow: none !important; }

/* =====================================================================
   2026-10-30 本番前QA（表示崩れの機械点検で見つかったもの）
   ===================================================================== */
/* ①1101〜1400px：ナビ文字を本文サイズ(16px)にした結果、ナビが「無料相談」ボタンの下に潜り「お問い合わせ」が切れていた
   → この幅だけ「会社概要」「お問い合わせ」をナビから外す（フッター・CTAに同じ導線あり＝v10の1080px以下と同じ考え方） */
@media (min-width: 1101px) and (max-width: 1400px) {
  html body #top div.container.header__inner > nav.header__nav > a:nth-child(n+8) { display: none; }
}
/* ②641〜1100px：「無料相談」とハンバーガーの両方に margin-left:auto が付き、ボタンがヘッダーの真ん中に浮いていた → ボタンの右に寄せる */
@media (min-width: 641px) and (max-width: 1100px) {
  html body header#top div.header__inner > button.header__menu-btn { margin-left: 12px; }
}
/* ③841〜約1000px：学校の種類タブ（7個）が1行固定で画面の右へはみ出し、ページ全体が横スクロールしていた → この幅だけ折り返す */
@media (min-width: 841px) and (max-width: 1100px) {
  html body #schools .schools__tabs { flex-wrap: wrap; }
}
/* ④ロゴ画像が無い学校の文字ロゴ：「International」が円の内側からはみ出していた → 内側の余白だけ詰める（文字サイズは変えない） */
html body #schools a.school__card--sm > .school__logo--txt { padding: 4px; }
/* ⑤SPのタップ領域：44px未満だったボタン・タグを44pxへ（見た目の文字サイズ・色は変えない） */
@media (max-width: 840px) {
  html body header#top button.header__menu-btn { min-width: 44px; min-height: 44px; }
  html body #service p.pcard__more-tags > a,
  html body #schools div.schools__sub-tabs > button.schools__sub-tab { min-height: 44px; box-sizing: border-box; }
  html body #schools a.school__card--sm > .school__logo--txt span { letter-spacing: -0.03em; }
  html body #service p.svc-fee-link > a,
  html body #value a.value__more-link,
  html body #schools ul.schools__more > li > a { display: inline-flex; align-items: center; min-height: 44px; }
  html body footer a.footer__sns-btn { min-height: 44px; }
}

/* 2026-10-30 Taku「スマホはバッジを中央揃えに」「バッジの上を少しだけ空けて重ならないように」
   → SPだけバッジをカード中央に。見出し（＼今だけ〜／）・上のカードと重なっていたので、カードの上の余白とカード同士の間隔を広げる */
@media (max-width: 840px) {
  html body .offerbar--b .ob__medal--img { left: 50%; right: auto; transform: translateX(-50%); }
  html body .offerbar--b .offerbar__grid { margin-top: 32px; row-gap: 44px; }
  html body .offerbar--b .offerbar__item { padding-top: 122px; }
}

/* ★2026-10-30 Taku「この画像でFVをスライダーに」＝1200×500の画像3枚を横に並べてスライド（scroll-snap＋JSで自動切替） */
html body .hero--fv2 .fvs { position: relative; max-width: 1200px; margin: 0 auto; }
html body .hero--fv2 .fvs__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
html body .hero--fv2 .fvs__track::-webkit-scrollbar { display: none; }
html body .hero--fv2 .fvs__slide { flex: 0 0 100%; scroll-snap-align: start; display: block; }
html body .hero--fv2 .fvs__slide picture { display: block; max-width: none; margin: 0; }
html body .hero--fv2 .fvs__slide img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 500; }
html body .hero--fv2 .fvs__arrow { position: absolute; top: 50%; width: 44px; height: 44px; margin-top: -22px; border: 0; border-radius: 50%; background: rgba(255,255,255,.85); box-shadow: 0 2px 8px rgba(10,20,50,.2); cursor: pointer; z-index: 2; }
html body .hero--fv2 .fvs__arrow::before { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-top: 2.5px solid #1B2A52; border-right: 2.5px solid #1B2A52; }
html body .hero--fv2 .fvs__arrow--prev { left: 12px; }
html body .hero--fv2 .fvs__arrow--prev::before { transform: translate(-30%,-50%) rotate(-135deg); }
html body .hero--fv2 .fvs__arrow--next { right: 12px; }
html body .hero--fv2 .fvs__arrow--next::before { transform: translate(-70%,-50%) rotate(45deg); }
html body .hero--fv2 .fvs__dots { display: flex; justify-content: center; gap: 4px; padding: 6px 0 4px; }
html body .hero--fv2 .fvs__dots button { width: 28px; height: 28px; border: 0; background: none; padding: 0; cursor: pointer; position: relative; }
html body .hero--fv2 .fvs__dots button::before { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: #C9D1DB; }
html body .hero--fv2 .fvs__dots button[aria-selected="true"]::before { background: #1B2A52; width: 22px; margin-left: -11px; border-radius: 5px; }
@media (max-width: 840px) {
  html body .hero--fv2 .fvs__arrow { width: 32px; height: 32px; margin-top: -16px; }
  html body .hero--fv2 .fvs__arrow--prev { left: 6px; } html body .hero--fv2 .fvs__arrow--next { right: 6px; }
  html body .hero--fv2 .fvs__arrow::before { width: 8px; height: 8px; border-width: 2px; }
}

/* ★2026-10-30 Taku「（体験談カード）ここだけなんかわかりにくいな」
   原因＝①タグ3つがピンクの太字ピルで1行に1つずつ縦積み（ボタンに見える）②「〜をご利用のお客様」も同じピンク太字で、見出し・タグと強さが競る
         ③本文が文節改行（auto-phrase）で狭い幅に短い行が続き、行末がガタガタ
   → 読む順＝見出し → 本文 → 「〜をご利用のお客様」（カード下に灰色で署名のように）。タグは灰色の控えめな札にして横に流す。本文の改行は文節単位のまま（通常改行にすると「調/べて」「丁/寧」と語の途中で切れる＝台帳NG） */
html body #results div.vstory__body { display: flex; flex-direction: column; }
html body #results div.vstory__body > ul.vstory__tags { order: 1; gap: 6px; margin: 0 0 12px; }
html body #results div.vstory__body > ul.vstory__tags > li { background: #F1F3F6 !important; color: #4A5563 !important; font-weight: 500 !important; border: 0 !important; padding: 2px 10px !important; border-radius: 4px !important; line-height: 1.6 !important; }
html body #results div.vstory__body > h3.vstory__ttl { order: 2; margin-bottom: 10px; }
html body #results div.vstory__body > p.vstory__ex { order: 3; margin: 0; }
html body #results div.vstory__body > p.vstory__who { order: 4; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid #E6EAF0; color: #6B7684 !important; font-weight: 500 !important; }
/* 同上（2回目）：Taku「一番上は元のタグっぽいものでいい」「その下（見出し）は吹き出しっぽくできる？」
   → タグは元のピンクの札に戻す（下の灰色札の指定を打ち消し）。見出しを淡い灰青の吹き出しに（下向きのしっぽで本文の「」へつなぐ） */
html body #results div.vstory__body > ul.vstory__tags > li { background: #FBE9F1 !important; color: #B32469 !important; font-weight: 700 !important; padding: 1px 10px !important; border-radius: 999px !important; }
html body #results div.vstory__body > h3.vstory__ttl { position: relative; margin: 2px 0 18px; padding: 12px 14px; background: #EEF2F7; border-radius: 12px; }
html body #results div.vstory__body > h3.vstory__ttl::after { content: "" !important; display: block !important; position: absolute; left: 22px; bottom: -9px; width: 0; height: 0; border-style: solid; border-width: 10px 9px 0 9px; border-color: #EEF2F7 transparent transparent transparent; background: none !important; }

/* ★2026-10-30 Taku「こういう文章長いものは変に改行しなくていい。コンテンツ幅で」
   原因＝ページ全体に word-break:auto-phrase（文節改行）＋ text-wrap:pretty をかけていたため、長い本文も文節ごとに早めに折れて短い行が続いていた
   → 本文（段落・リスト・説明）は通常の改行でコンテンツ幅いっぱいに流す。見出し・ボタン・ラベルなど短い文字は文節改行のまま
   ※カタカナ語・英数字の途中で切れない処理（js/main.js の .nobr）はそのまま効く */
html body :is(p, li, dd, td, blockquote, figcaption) { word-break: normal !important; line-break: strict; text-wrap: wrap !important; }
html body :is(h1, h2, h3, h4, h5, h6, button, summary, .btn, [class*="__btn"], [class*="__ttl"], [class*="__title"], [class*="__lbl"], [class*="__tag"], [class*="__label"]) { word-break: auto-phrase !important; }
/* 同上：体験談の「〜をご利用のお客様」は短い署名＝文節改行のまま（「お客/様」と切れないように） */
html body #results div.vstory__body > p.vstory__who { word-break: auto-phrase !important; }
