/* =========================================================
   毎日留学ナビ 親子留学特集LP 2027年春休み ｜ CMS用スタイル
   ・すべてのルールは .oyako-lp の内側だけに効きます。
   ・クラス名とIDには "olp-" を付けています（サイト側のクラスと衝突しないため）。
   ・文字サイズは px 指定です（サイト側の html{font-size} の影響を受けません）。
   ・外部フォント・JavaScriptは使っていません。
   ========================================================= */
/* サイト側の要素スタイル（見出しの装飾、リストの記号、画像の枠など）を打ち消すリセット */
.oyako-lp section, .oyako-lp header, .oyako-lp h1, .oyako-lp h2, .oyako-lp h3, .oyako-lp p, .oyako-lp ul, .oyako-lp ol, .oyako-lp li, .oyako-lp dl, .oyako-lp dt, .oyako-lp dd, .oyako-lp figure, .oyako-lp figcaption, .oyako-lp small, .oyako-lp b {
  margin: 0; padding: 0; border: 0; background: none; box-shadow: none;
  color: inherit; font-style: normal; text-transform: none; text-indent: 0; float: none; width: auto; min-height: 0;
}
.oyako-lp h1::before, .oyako-lp h2::before, .oyako-lp h3::before, .oyako-lp p::before, .oyako-lp dt::before, .oyako-lp h1::after, .oyako-lp h2::after, .oyako-lp h3::after, .oyako-lp p::after, .oyako-lp dt::after { content: none; }
.oyako-lp ul, .oyako-lp ol { list-style: none; }
.oyako-lp img { border: 0; box-shadow: none; border-radius: 0; }

.oyako-lp {
  color-scheme: light;
  /* Color */
  --c-white: #ffffff;
  --c-ivory: #f8f5ef;
  --c-ivory-deep: #efe9de;
  --c-green: #2e4a3e;
  --c-green-soft: #dfe6df;
  --c-navy: #1e2a3a;
  --c-ink: #26292b;
  --c-muted: #62666a;
  --c-line: #d9d3c7;
  --c-on-dark: #f4f1ea;
  --c-on-dark-muted: #c3c9c6;

  /* Type */
  --f-display: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "Noto Serif CJK JP", serif;
  --f-body: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", "Noto Sans CJK JP", "Meiryo", sans-serif;
  --f-latin: "Cormorant Garamond", "Garamond", "Times New Roman", serif;

  /* Scale */
  --fs-xs: 12px;
  --fs-sm: 14px;
  --fs-base: 16px;
  --fs-md: 18px;
  --fs-lg: clamp(20px, 17.6px + 0.6vw, 24px);
  --fs-xl: clamp(26px, 20.8px + 1.4vw, 38px);
  --fs-hero: clamp(36px, 24px + 3.2vw, 64px);

  /* Layout */
  --gutter: max(20px, env(safe-area-inset-left, 0px));
  --gutter-r: max(20px, env(safe-area-inset-right, 0px));
  --container: 1160px;
  --container-narrow: 820px;
  --section-y: clamp(72px, 96px + 4vw, 152px);
  --radius: 2px;
}

/* ---------- Base ---------- */
.oyako-lp *, .oyako-lp *::before, .oyako-lp *::after { box-sizing: border-box; }
.oyako-lp {
  margin: 0;
  background: var(--c-white);
  color: var(--c-ink);
  font-family: var(--f-body);
  font-size: var(--fs-base);
  line-height: 1.9;
  letter-spacing: 0.03em;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;
}
.oyako-lp img { max-width: 100%; height: auto; display: block; }
.oyako-lp h1, .oyako-lp h2, .oyako-lp h3, .oyako-lp p, .oyako-lp ol, .oyako-lp ul, .oyako-lp dl, .oyako-lp dd, .oyako-lp figure { margin: 0; }
.oyako-lp ol, .oyako-lp ul { padding: 0; list-style: none; }
.oyako-lp a { color: inherit; }
.oyako-lp :focus-visible { outline: 2px solid var(--c-green); outline-offset: 3px; }

.oyako-lp .olp-container {
  width: 100%;
  max-width: calc(var(--container) + 2 * 20px);
  margin-inline: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter-r);
}
.oyako-lp .olp-container--narrow { max-width: calc(var(--container-narrow) + 2 * 20px); }

.oyako-lp .olp-nobr { display: inline; }
.oyako-lp .olp-hero__title .olp-nobr { display: inline-block; }
@media (min-width: 768px) { .oyako-lp .olp-nobr { display: inline-block; } }
.oyako-lp .olp-pc-only { display: none; }
.oyako-lp .olp-sp-only { display: inline; }
@media (min-width: 768px) {
  .oyako-lp .olp-pc-only { display: inline; }
  .oyako-lp .olp-sp-only { display: none; }
}

/* ---------- Prototype banner ---------- */

/* ---------- Type helpers ---------- */
.oyako-lp .olp-eyebrow {
  font-family: var(--f-latin);
  font-style: italic;
  font-size: var(--fs-md);
  letter-spacing: 0.06em;
  color: var(--c-green);
  margin-bottom: 14px;
}
.oyako-lp .olp-eyebrow--light { color: var(--c-on-dark-muted); }

.oyako-lp .olp-section { padding-block: var(--section-y); }
.oyako-lp .olp-section-head { max-width: 40em; margin-bottom: clamp(40px, 5vw, 72px); }
.oyako-lp .olp-section-head--center { margin-inline: auto; text-align: center; }
.oyako-lp .olp-section-title {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: var(--fs-xl);
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-wrap: balance;
}
.oyako-lp .olp-section-lead { margin-top: 22px; color: var(--c-muted); max-width: 36em; }

/* ---------- Buttons ---------- */
.oyako-lp .olp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 56px;
  padding: 14px 32px;
  background: var(--c-green);
  color: var(--c-on-dark);
  font-family: var(--f-body);
  font-size: var(--fs-base);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-decoration: none;
  text-align: center;
  border: 1px solid var(--c-green);
  border-radius: var(--radius);
  transition: background-color .2s ease, color .2s ease;
}
.oyako-lp .olp-btn::after { content: "→"; font-weight: 400; }
.oyako-lp .olp-btn:hover { background: var(--c-navy); border-color: var(--c-navy); }
.oyako-lp .olp-btn--small { min-height: 40px; padding: 8px 18px; font-size: var(--fs-sm); }
.oyako-lp .olp-btn--small::after { content: none; }
.oyako-lp .olp-btn--large { min-height: 64px; padding: 18px 40px; font-size: var(--fs-md); }
.oyako-lp .olp-btn--block { width: 100%; }

/* ---------- Header ---------- */
.oyako-lp .olp-site-header__inner {
  max-width: calc(var(--container) + 40px);
  margin-inline: auto;
  padding-block: 12px;
  padding-left: var(--gutter);
  padding-right: var(--gutter-r);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.oyako-lp .olp-site-header__brand { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; min-width: 0; line-height: 1.4; }
.oyako-lp .olp-site-header__logo { font-family: var(--f-display); font-weight: 600; font-size: var(--fs-md); letter-spacing: 0.08em; }
.oyako-lp .olp-site-header__tag { font-size: var(--fs-xs); color: var(--c-muted); letter-spacing: 0.08em; }
@media (max-width: 599px) { /* スマホは下部の追従CTAに集約 */
}

/* ---------- Media / placeholder（比率・角丸・余白を統一） ---------- */
.oyako-lp .olp-media { position: relative; width: 100%; max-width: 100%; }
.oyako-lp .olp-media img,
.oyako-lp .olp-media .olp-ph {
  width: 100%;
  aspect-ratio: var(--ratio, 4/3);
  object-fit: cover;
  object-position: var(--pos, 50% 50%);
  border-radius: var(--radius);
}
.oyako-lp .olp-media__caption {
  margin-top: 8px;
  font-size: var(--fs-xs);
  color: var(--c-muted);
  line-height: 1.6;
}
.oyako-lp .olp-media__flag {
  position: absolute; top: 10px; left: 10px;
  background: #6b5a1e; color: #fffbea;
  font-size: var(--fs-xs); padding: 2px 8px; border-radius: var(--radius);
}
.oyako-lp .olp-ph {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 24px;
  text-align: center;
  color: #4f5a54;
  background:
    repeating-linear-gradient(135deg, transparent 0 14px, rgba(46, 74, 62, 0.06) 14px 15px),
    var(--c-green-soft);
  border: 1px dashed #9aa89f;
}
.oyako-lp .olp-ph__badge {
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  background: var(--c-white);
  color: var(--c-green);
  padding: 3px 10px;
  border-radius: var(--radius);
}
.oyako-lp .olp-ph__desc { font-size: var(--fs-sm); line-height: 1.7; max-width: 22em; }
.oyako-lp .olp-ph__meta { font-size: 11px; line-height: 1.6; color: #6c7670; max-width: 30em; }

/* ---------- 1. Hero ---------- */
.oyako-lp .olp-hero { background: var(--c-ivory); }
.oyako-lp .olp-hero__inner {
  max-width: calc(var(--container) + 40px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  padding-block: 32px 72px;
  padding-left: var(--gutter);
  padding-right: var(--gutter-r);
}
.oyako-lp .olp-hero__media { order: -1; min-width: 0; }
.oyako-lp .olp-hero__media .olp-media .olp-ph,
.oyako-lp .olp-hero__media .olp-media img { aspect-ratio: 4/3; }
.oyako-lp .olp-hero__text { min-width: 0; }
.oyako-lp .olp-hero__title {
  font-family: var(--f-display);
  font-weight: 600;
  font-size: var(--fs-hero);
  line-height: 1.35;
  letter-spacing: 0.08em;
  color: var(--c-navy);
}
.oyako-lp .olp-hero__lead {
  margin-top: 24px;
  font-family: var(--f-display);
  font-size: var(--fs-lg);
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: var(--c-green);
}
.oyako-lp .olp-hero__body { margin-top: 20px; color: var(--c-muted); max-width: 30em; }
.oyako-lp .olp-hero__cta { margin-top: 36px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.oyako-lp .olp-hero__cta-note { font-size: var(--fs-sm); color: var(--c-muted); }
@media (max-width: 599px) {
  .oyako-lp .olp-hero__cta .olp-btn { width: 100%; }
}
@media (min-width: 960px) {
  .oyako-lp .olp-hero__inner {
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    align-items: center;
    gap: clamp(48px, 5vw, 88px);
    padding-block: 72px 104px;
  }
  .oyako-lp .olp-hero__media { order: 0; }
  .oyako-lp .olp-hero__media .olp-media .olp-ph,
  .oyako-lp .olp-hero__media .olp-media img { aspect-ratio: var(--ratio, 4/5); }
}

/* ---------- 2. Why ---------- */
.oyako-lp .olp-why__intro { display: grid; gap: 32px; margin-bottom: clamp(48px, 6vw, 80px); }
.oyako-lp .olp-why__intro .olp-section-head { margin-bottom: 0; }
.oyako-lp .olp-why__media { min-width: 0; }
@media (min-width: 960px) {
  .oyako-lp .olp-why__intro { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(48px, 5vw, 88px); align-items: end; }
}
.oyako-lp .olp-why__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  border-top: 1px solid var(--c-line);
}
.oyako-lp .olp-why__item {
  display: grid;
  grid-template-columns: 52px 1fr;
  column-gap: 16px;
  row-gap: 10px;
  padding-block: 32px;
  border-bottom: 1px solid var(--c-line);
}
.oyako-lp .olp-why__num {
  grid-row: span 2;
  font-family: var(--f-latin);
  font-size: 28px;
  line-height: 1.2;
  color: var(--c-green);
  font-variant-numeric: lining-nums;
}
.oyako-lp .olp-why__title { font-family: var(--f-display); font-weight: 600; font-size: var(--fs-lg); line-height: 1.5; letter-spacing: 0.06em; }
.oyako-lp .olp-why__item p { color: var(--c-muted); min-width: 0; }
@media (min-width: 900px) {
  .oyako-lp .olp-why__list { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; gap: 48px; }
  .oyako-lp .olp-why__item { grid-template-columns: 1fr; border-bottom: 0; border-top: 1px solid var(--c-ink); padding-block: 28px 0; }
  .oyako-lp .olp-why__num { grid-row: auto; }
}

/* ---------- 3. Possibilities ---------- */
.oyako-lp .olp-possibilities { background: var(--c-green); color: var(--c-on-dark); }
.oyako-lp .olp-possibilities .olp-eyebrow { color: var(--c-on-dark-muted); }
.oyako-lp .olp-possibilities__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: rgba(244, 241, 234, 0.22);
  border: 1px solid rgba(244, 241, 234, 0.22);
}
.oyako-lp .olp-possibility {
  background: var(--c-green);
  padding: clamp(28px, 3vw, 44px);
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.oyako-lp .olp-possibility__en {
  font-family: var(--f-latin);
  font-size: clamp(32px, 25.6px + 1.6vw, 48px);
  line-height: 1.1;
  font-style: italic;
  color: var(--c-on-dark-muted);
}
.oyako-lp .olp-possibility__title { font-family: var(--f-display); font-weight: 600; font-size: var(--fs-lg); letter-spacing: 0.08em; line-height: 1.5; }
.oyako-lp .olp-possibility p:last-child { color: var(--c-on-dark-muted); font-size: 15px; }
@media (min-width: 900px) {
  .oyako-lp .olp-possibilities__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- 4. Destinations ---------- */
.oyako-lp .olp-dest-list { display: grid; gap: clamp(72px, 9vw, 128px); }
.oyako-lp .olp-dest {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
.oyako-lp .olp-dest__media { min-width: 0; display: grid; gap: 12px; align-content: start; }
.oyako-lp .olp-dest__body { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.oyako-lp .olp-dest__region {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px;
  font-size: var(--fs-sm); letter-spacing: 0.1em; color: var(--c-muted); line-height: 1.4;
}
.oyako-lp .olp-dest__en {
  font-family: var(--f-latin);
  font-size: clamp(36px, 28.8px + 2vw, 56px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--c-navy);
}
.oyako-lp .olp-dest__title {
  font-family: var(--f-display); font-weight: 600; font-size: var(--fs-lg);
  line-height: 1.7; letter-spacing: 0.06em; text-wrap: balance;
}
.oyako-lp .olp-dest__school {
  font-size: var(--fs-sm); letter-spacing: 0.06em; color: var(--c-green);
  padding-top: 12px; border-top: 1px solid var(--c-line);
}
.oyako-lp .olp-dest__text { color: var(--c-ink); }
.oyako-lp .olp-dest__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.oyako-lp .olp-dest__tags li {
  font-size: var(--fs-xs); letter-spacing: 0.08em; line-height: 1.5;
  padding: 4px 12px; border: 1px solid var(--c-green); color: var(--c-green); border-radius: 999px;
}
.oyako-lp .olp-dest__fit { background: var(--c-ivory); padding: 18px 20px; display: grid; gap: 6px; }
.oyako-lp .olp-dest__fit dt { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.12em; color: var(--c-green); }
.oyako-lp .olp-dest__fit dd { font-size: var(--fs-sm); line-height: 1.75; padding-left: 1.1em; position: relative; }
.oyako-lp .olp-dest__fit dd::before { content: ""; position: absolute; left: 0; top: 0.8em; width: 0.5em; height: 1px; background: var(--c-ink); }
.oyako-lp .olp-dest__status { font-size: var(--fs-xs); color: var(--c-muted); line-height: 1.7; }
.oyako-lp .olp-dest__status a { color: var(--c-green); text-underline-offset: 3px; }

/* 追加写真：素材がある地域だけ。メイン写真の下に同じ比率で最大2枚 */
.oyako-lp .olp-dest__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.oyako-lp .olp-dest__gallery[data-count="1"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.oyako-lp .olp-media--sub .olp-media__caption { display: none; }

@media (min-width: 900px) {
  .oyako-lp .olp-dest { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(40px, 5vw, 80px); align-items: start; }
  .oyako-lp .olp-dest--reverse { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .oyako-lp .olp-dest--reverse .olp-dest__media { order: 2; }
}

.oyako-lp .olp-cta-band {
  margin-top: clamp(72px, 9vw, 120px);
  padding: clamp(32px, 4vw, 48px);
  background: var(--c-ivory);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}
.oyako-lp .olp-cta-band__text { font-family: var(--f-display); font-size: var(--fs-lg); line-height: 1.7; letter-spacing: 0.06em; }
.oyako-lp .olp-nobr-always { white-space: nowrap; }
@media (max-width: 599px) {
  .oyako-lp .olp-cta-band .olp-btn { width: 100%; }
  .oyako-lp .olp-cta-band__text { font-size: var(--fs-md); }
  .oyako-lp .olp-cta-band { padding: 24px 16px; }
  .oyako-lp .olp-cta-band .olp-btn { font-size: 15px; }
  .oyako-lp .olp-cta-band .olp-btn::after { content: none; }
  .oyako-lp .olp-btn--large { font-size: var(--fs-base); }
  .oyako-lp .olp-final-cta .olp-btn { padding-inline: 16px; }
  .oyako-lp .olp-btn { padding-inline: 16px; letter-spacing: 0.04em; gap: 8px; }
}
@media (min-width: 900px) {
  .oyako-lp .olp-cta-band .olp-btn { flex-shrink: 0; white-space: nowrap; }
  .oyako-lp .olp-cta-band__text { font-size: var(--fs-md); }
}
@media (min-width: 900px) {
  .oyako-lp .olp-cta-band { flex-direction: row; align-items: center; justify-content: space-between; }
}

/* ---------- 5. Basics（3プログラム比較） ---------- */
.oyako-lp .olp-basics { background: var(--c-ivory); }
.oyako-lp .olp-basics__list { border-top: 1px solid var(--c-ink); }
.oyako-lp .olp-basics__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  padding-block: 32px;
  border-bottom: 1px solid var(--c-line);
}
.oyako-lp .olp-basics__row dt { font-family: var(--f-display); font-weight: 600; font-size: var(--fs-md); letter-spacing: 0.06em; line-height: 1.6; }
.oyako-lp .olp-basics__row dd { min-width: 0; }
.oyako-lp .olp-basics__progs { display: grid; grid-template-columns: 1fr; gap: 12px; }
.oyako-lp .olp-basics__progs li {
  min-width: 0;
  background: var(--c-white);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 15px;
  line-height: 1.8;
}
.oyako-lp .olp-basics__progs b { font-weight: 700; color: var(--c-green); }
.oyako-lp .olp-basics__prog {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px;
  font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.08em; color: var(--c-navy);
  padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--c-line);
}
.oyako-lp .olp-basics__prog span { font-size: var(--fs-xs); font-weight: 400; letter-spacing: 0.04em; color: var(--c-muted); }
.oyako-lp .olp-basics__key {
  font-family: var(--f-display); font-weight: 600; font-size: var(--fs-lg);
  line-height: 1.4; letter-spacing: 0.04em; color: var(--c-ink);
}
.oyako-lp .olp-basics__key small { font-size: var(--fs-sm); font-weight: 400; color: var(--c-muted); }
.oyako-lp .olp-basics__caution { font-size: var(--fs-sm); color: #6b4e1e; line-height: 1.7; padding-left: 1.1em; position: relative; }
.oyako-lp .olp-basics__caution::before { content: "※"; position: absolute; left: 0; }
.oyako-lp .olp-basics__common { margin-top: 12px; font-size: var(--fs-sm); color: var(--c-muted); line-height: 1.8; }
.oyako-lp .olp-basics__note { margin-top: 28px; font-size: var(--fs-sm); color: var(--c-muted); line-height: 1.8; max-width: 52em; }
@media (min-width: 768px) {
  .oyako-lp .olp-basics__progs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .oyako-lp .olp-basics__row { grid-template-columns: 11em minmax(0, 1fr); gap: 32px; }
}

.oyako-lp .olp-basics__key--pending {
  display: inline-block; align-self: flex-start;
  font-family: var(--f-body); font-size: var(--fs-sm); font-weight: 700;
  color: #6b4e1e; background: #faf6e4; border: 1px dashed #9a8a4a; padding: 2px 10px;
}

/* 費用について：①〜③の3ブロック */
.oyako-lp .olp-cost { display: grid; grid-template-columns: 1fr; gap: 12px; counter-reset: none; }
.oyako-lp .olp-cost__item {
  min-width: 0; background: var(--c-white); padding: 20px;
  display: flex; flex-direction: column; gap: 8px; font-size: 15px; line-height: 1.8;
}
.oyako-lp .olp-cost__num { font-family: var(--f-display); font-size: var(--fs-lg); color: var(--c-green); line-height: 1; }
.oyako-lp .olp-cost__title {
  font-family: var(--f-display); font-weight: 600; font-size: var(--fs-md);
  letter-spacing: 0.04em; line-height: 1.6; color: var(--c-navy);
  padding-bottom: 8px; border-bottom: 1px solid var(--c-line);
}
.oyako-lp .olp-cost__points { display: grid; gap: 4px; }
.oyako-lp .olp-cost__points li { padding-left: 1.1em; position: relative; }
.oyako-lp .olp-cost__points li::before { content: ""; position: absolute; left: 0; top: 0.9em; width: 0.5em; height: 1px; background: var(--c-ink); }
@media (min-width: 768px) {
  .oyako-lp .olp-cost { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- 6. Counseling ---------- */
.oyako-lp .olp-counseling { background: var(--c-navy); color: var(--c-on-dark); }
.oyako-lp .olp-counseling__inner { display: grid; gap: 48px; }
.oyako-lp .olp-counseling__lead { margin-top: 22px; color: var(--c-on-dark-muted); max-width: 34em; }
.oyako-lp .olp-steps { display: grid; gap: 0; counter-reset: none; border-top: 1px solid rgba(244, 241, 234, 0.25); }
.oyako-lp .olp-step {
  display: grid;
  gap: 6px;
  padding-block: 24px;
  border-bottom: 1px solid rgba(244, 241, 234, 0.25);
}
.oyako-lp .olp-step__num { font-family: var(--f-latin); font-style: italic; font-size: var(--fs-md); color: var(--c-on-dark-muted); line-height: 1.3; }
.oyako-lp .olp-step__title { font-family: var(--f-display); font-weight: 600; font-size: var(--fs-md); letter-spacing: 0.06em; line-height: 1.6; }
.oyako-lp .olp-step p { color: var(--c-on-dark-muted); font-size: 15px; }
@media (min-width: 960px) {
  .oyako-lp .olp-counseling__inner { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 64px; align-items: start; }
}

/* ---------- 7. Final CTA ---------- */
.oyako-lp .olp-final-cta { text-align: center; background: var(--c-white); }
.oyako-lp .olp-final-cta .olp-container { display: flex; flex-direction: column; align-items: center; }
.oyako-lp .olp-final-cta__title {
  font-family: var(--f-display); font-weight: 600; font-size: var(--fs-xl);
  line-height: 1.6; letter-spacing: 0.08em; color: var(--c-navy); text-wrap: balance;
}
.oyako-lp .olp-final-cta__lead { margin-top: 20px; margin-bottom: 40px; color: var(--c-muted); max-width: 32em; }
@media (max-width: 599px) { .oyako-lp .olp-final-cta .olp-btn { width: 100%; padding-inline: 20px; } }
.oyako-lp .olp-form-placeholder__label { font-weight: 700; letter-spacing: 0.1em; margin-bottom: 4px; }

/* ---------- Footer ---------- */
.oyako-lp .olp-site-footer__brand { font-family: var(--f-display); font-size: var(--fs-md); color: var(--c-ink); letter-spacing: 0.08em; margin-bottom: 8px; }

/* ---------- Mobile sticky CTA ---------- */
.oyako-lp .olp-sticky-cta { display: none; }
@media (max-width: 767px) {
  .oyako-lp .olp-sticky-cta {
    display: block;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 30;
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--c-line);
    padding-top: 10px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    padding-left: var(--gutter);
    padding-right: var(--gutter-r);
  }
  .oyako-lp .olp-sticky-cta .olp-btn { min-height: 50px; }
}

/* スマートフォンの追従ボタンがページ末尾の内容に重ならないよう余白を確保 */
@media (max-width: 767px) {
  .oyako-lp { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
}
