/* ラーメン運営ゼミナールのページ（zemi/index.html）だけの見た目（2026-10-25 仮）。色・書体は TOP の下の区画（top-bottom.css）に合わせる */
.zemi-page { --z-ink: #1f1f1f; --z-pink: #e40055; --z-navy: #182987; --z-sky: #29abe2; --z-yellow: #fcef00; --z-round: "Zen Maru Gothic", var(--display); }
.zemi-page main { font-family: var(--z-round); color: var(--z-ink); }

/* 最初の画面：水色の面 */
.zp-hero { background: var(--z-sky); color: #fff; text-align: center; padding: clamp(80px, 12vw, 160px) var(--gutter) clamp(90px, 13vw, 170px); }
.zp-label { display: inline-block; margin: 0; background: var(--z-pink); color: #fff; font-weight: 700; letter-spacing: .14em; font-size: clamp(15px, 1.8vw, 24px); padding: .5em 1.4em; border-radius: 999px; }
.zp-title { margin: clamp(20px, 3vh, 32px) 0 0; font-weight: 700; letter-spacing: .1em; line-height: 1.45; font-size: clamp(28px, 4.6vw, 64px); word-break: auto-phrase; }
.zp-lead { margin: clamp(18px, 3vh, 30px) 0 0; font-weight: 700; letter-spacing: .08em; line-height: 1.9; font-size: clamp(16px, 2vw, 26px); }
.zp-btn, .zemi-page .soudan-btn {
  display: inline-flex; align-items: center; gap: .8em; margin-top: clamp(30px, 5vh, 50px);
  background: var(--z-pink); color: #fff; font-weight: 700; letter-spacing: .1em; font-size: clamp(18px, 2.2vw, 28px);
  padding: .75em .9em .75em 1.8em; border-radius: 999px; box-shadow: 0 6px 0 var(--z-navy); transition: transform .15s, box-shadow .15s;
}
.zp-btn::after { content: "→"; display: grid; place-items: center; width: 1.8em; height: 1.8em; border-radius: 50%; background: var(--z-yellow); color: var(--z-navy); font-family: var(--num); font-weight: 900; }
.zp-btn:hover { transform: translateY(3px); box-shadow: 0 3px 0 var(--z-navy); }

/* ふつうの区画：白い地 */
.zp-sec { max-width: 1200px; margin: 0 auto; padding: clamp(80px, 11vw, 150px) var(--gutter) 0; text-align: center; }
.zp-h2 { word-break: auto-phrase; text-wrap: balance; margin: 0; font-weight: 700; letter-spacing: .1em; line-height: 1.45; font-size: clamp(26px, 4vw, 54px); }
.zp-note { margin: clamp(28px, 4.5vh, 50px) 0 0; font-weight: 500; letter-spacing: .08em; line-height: 2; font-size: clamp(15px, 1.6vw, 20px); }
@media (max-width: 760px) { .zp-note br { display: none; } }

/* 5つの詰まりのカード（TOP の .zemi-list と同じ中身。ここでは画面の px で決める） */
.zp-five .zemi-list { list-style: none; margin: clamp(36px, 5vh, 60px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: clamp(12px, 1.6vw, 20px); }
.zp-five .zemi-list li { display: grid; grid-template-rows: auto 1fr auto; text-align: left; overflow: hidden; background: color-mix(in srgb, var(--c) 10%, #fff); border-radius: clamp(22px, 2.6vw, 32px); }
.zp-five .zemi-list h3 { margin: 0; background: var(--c); color: #fff; font-weight: 700; letter-spacing: .04em; line-height: 1.45; font-size: clamp(15px, 1.35vw, 18px); padding: .9em 1.1em; word-break: keep-all; overflow-wrap: anywhere; }
.zp-five .zemi-q { margin: 0; padding: 1.1em 1.1em .6em; font-weight: 700; line-height: 1.6; font-size: clamp(16px, 1.3vw, 19px); word-break: keep-all; overflow-wrap: anywhere; }
.zp-five .zemi-a { margin: 0 1.1em 1.2em; padding-top: .8em; border-top: 2px dotted color-mix(in srgb, var(--c) 45%, #fff); font-weight: 500; line-height: 1.8; font-size: clamp(13px, 1.1vw, 15px); }
.zp-five .zemi-a::before { content: "支援すること"; display: block; color: var(--c); font-weight: 700; font-size: .85em; letter-spacing: .1em; }

/* こんなお店に */
.zp-check { list-style: none; margin: clamp(30px, 5vh, 50px) auto 0; padding: 0; max-width: 720px; display: grid; gap: 12px; text-align: left; }
.zp-check li { display: flex; align-items: center; gap: .9em; background: color-mix(in srgb, var(--z-sky) 10%, #fff); border-radius: 999px; padding: .9em 1.4em; font-weight: 700; letter-spacing: .06em; font-size: clamp(15px, 1.6vw, 20px); }
.zp-check li::before { content: "✓"; display: grid; place-items: center; flex: none; width: 1.8em; height: 1.8em; border-radius: 50%; background: var(--z-sky); color: #fff; font-size: .9em; }

/* 進め方：TOP の .pflow を使い、7段ぶんの色を足す */
.zp-flow { margin-top: 0; }
.zp-flow .pflow-list li:nth-child(6) { --c: #00ad9d; }
.zp-flow .pflow-list li:nth-child(7) { --c: #e40055; }

/* お店でお願いすること */
.zp-roles { margin: clamp(30px, 5vh, 50px) auto 0; max-width: 900px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.zp-role-card { background: color-mix(in srgb, var(--z-sky) 10%, #fff); border-radius: 32px; padding: 1.6em 1.4em; }
.zp-role-card h3 { margin: 0; font-weight: 700; letter-spacing: .1em; font-size: clamp(18px, 2vw, 26px); color: var(--z-navy); }
.zp-role-card p { margin: .6em 0 0; font-weight: 700; letter-spacing: .04em; line-height: 1.7; font-size: clamp(15px, 1.5vw, 19px); }

/* 入校の申込：TOP の無料相談（黄の面）と同じ形 */
/* 黄色い面の上の弧は上へはみ出して描かれ、margin-top も 0 !important なので、上の区画の下に空きを取る */
.zp-role { padding-bottom: clamp(130px, 16vw, 230px); }
.zemi-page .soudan-btn::after { content: "→"; display: grid; place-items: center; width: 1.8em; height: 1.8em; border-radius: 50%; margin: 0; background: var(--z-yellow); color: var(--z-navy); font-family: var(--num); font-weight: 900; }
.zp-tour { margin: clamp(30px, 5vh, 46px) 0 0; font-weight: 500; letter-spacing: .06em; font-size: clamp(14px, 1.4vw, 18px); }
.zp-tour a { color: var(--z-pink); font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }

/* 最初の画面の「プログラムを見る」 */
.zp-jump { margin: 1.4em 0 0; font-weight: 700; letter-spacing: .08em; font-size: clamp(14px, 1.4vw, 18px); }
.zp-jump a { color: #fff; text-decoration: underline; text-underline-offset: .25em; }

/* プログラム：基礎編・実践編の2枚 */
.zp-courses { margin: clamp(36px, 5vh, 60px) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: clamp(16px, 2vw, 28px); text-align: left; }
.zp-course { position: relative; background: color-mix(in srgb, var(--c) 8%, #fff); border: 3px solid var(--c); border-radius: clamp(28px, 3vw, 40px); padding: clamp(26px, 3vw, 40px) clamp(20px, 2.6vw, 36px); }
.zp-course-tag { display: inline-block; margin: 0; background: var(--c); color: #fff; font-weight: 700; letter-spacing: .16em; font-size: clamp(16px, 1.7vw, 22px); padding: .4em 1.3em; border-radius: 999px; }
.zp-course-title { margin: .8em 0 0; font-weight: 700; letter-spacing: .08em; line-height: 1.5; font-size: clamp(21px, 2.3vw, 32px); }
.zp-course-text { margin: .8em 0 0; font-weight: 500; letter-spacing: .05em; line-height: 1.9; font-size: clamp(14px, 1.3vw, 17px); }
.zp-days { margin: 1.4em 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; }
.zp-day { background: #fff; border-radius: 22px; padding: 1em 1.2em; }
.zp-day-no { margin: 0; color: var(--c); font-weight: 900; letter-spacing: .1em; font-size: clamp(16px, 1.5vw, 20px); }
.zp-day ul, .zp-practice { list-style: none; margin: .5em 0 0; padding: 0; display: grid; gap: .45em; }
.zp-day li, .zp-practice li { position: relative; padding-left: 1.2em; font-weight: 700; line-height: 1.6; font-size: clamp(14px, 1.3vw, 17px); }
.zp-day li::before, .zp-practice li::before { content: ""; position: absolute; left: 0; top: .55em; width: .55em; height: .55em; border-radius: 50%; background: var(--c); }
.zp-practice { margin-top: 1.4em; background: #fff; border-radius: 22px; padding: 1.1em 1.2em; }
.zp-course-get { margin: 1.4em 0 0; padding-top: 1em; border-top: 2px dotted color-mix(in srgb, var(--c) 45%, #fff); font-weight: 500; line-height: 1.8; font-size: clamp(14px, 1.3vw, 17px); }
.zp-course-get b { display: block; color: var(--c); font-weight: 700; letter-spacing: .1em; font-size: .9em; }

@media (min-width: 1000px) {   /* 広い画面は5枚を1列に。字を少し小さくして、言葉の途中で折れないようにする */
  .zp-five .zemi-list { grid-template-columns: repeat(5, 1fr); gap: 14px; }
  .zp-five .zemi-list h3 { font-size: 15px; letter-spacing: 0; padding: .9em 1em; }
  .zp-five .zemi-q { font-size: 16px; letter-spacing: 0; padding: 1.1em 1em .6em; }
  .zp-five .zemi-a { margin: 0 1em 1.2em; letter-spacing: 0; }
}

/* 最初の画面の「ラゼミ」（大きく） */
.zp-name { margin: clamp(10px, 2vh, 20px) 0 0; font-weight: 900; letter-spacing: .06em; line-height: 1; font-size: clamp(64px, 11vw, 150px); color: #fcef00; text-shadow: 0 .05em 0 #182987; }
.zp-name + .zp-title { margin-top: clamp(16px, 2.6vh, 28px); }

.zp-name { font-size: clamp(40px, 7vw, 100px); line-height: 1.15; }   /* 「ラゼミ」から「ラーメン運営ゼミナール」に（2026-10-25 本人指示）。字数が増えたので小さく */

/* 5つの詰まりのカード：2段（3枚・2枚）、文字は中央ぞろえで大きく（2026-10-25 本人指示「２段 中央文字揃え 大きく」）。上の 5枚1列の指定より優先 */
.zp-five .zemi-list, .zp-five .zemi-list:is(*) {
  display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(16px, 2vw, 28px);
  max-width: 1160px; margin-left: auto; margin-right: auto;
}
.zp-five .zemi-list li { flex: 0 1 calc((100% - 2 * clamp(16px, 2vw, 28px)) / 3); min-width: 260px; text-align: center; }
.zp-five .zemi-list h3, .zp-five .zemi-list h3:is(*) { font-size: clamp(18px, 1.7vw, 24px); padding: 1em 1em; letter-spacing: .04em; }
.zp-five .zemi-q, .zp-five .zemi-q:is(*) { font-size: clamp(19px, 1.8vw, 25px); padding: 1.1em 1em .7em; letter-spacing: .02em; }
.zp-five .zemi-a, .zp-five .zemi-a:is(*) { font-size: clamp(15px, 1.3vw, 18px); margin: 0 1.2em 1.4em; letter-spacing: .02em; }
@media (max-width: 640px) { .zp-five .zemi-list li { flex-basis: 100%; } }

/* 書体をふつうのゴシックに（2026-10-25 本人指摘「ダサい ゴシックで」）。TOP の運営学の区画と同じ Zen Kaku Gothic New。丸ゴシックの指定より優先 */
.zemi-page { --z-round: "Zen Kaku Gothic New", var(--display); }
.zemi-page main, .zemi-page main :is(h1, h2, h3, p, li, a, span, b, small) { font-family: "Zen Kaku Gothic New", var(--display) !important; }
.zemi-page main :is(h1, h2, h3, .zp-name, .zp-title, .zp-h2, .ph2) { font-weight: 900; }
.zp-name { text-shadow: none; letter-spacing: .02em; }
.zp-five :is(.zemi-q, .zemi-a, h3) { word-break: auto-phrase; text-wrap: balance; }   /* 「見／直し」のような折れ方をふせぐ */
.zp-title { font-size: clamp(22px, 3vw, 40px); letter-spacing: .08em; }   /* 「運用の『詰まり』を、なくします。」を小さく（2026-10-25 本人指示） */

/* 最初の画面の配色（2026-10-25 本人指摘「配色がダサいな」）：紺の地に白、差し色は黄色だけ。ピンクと水色は使わない */
.zp-hero { background: #182987; color: #fff; }
.zp-label { background: none; color: #fcef00; border: 2px solid #fcef00; }
.zp-name { color: #fff; }
.zp-name em { font-style: normal; color: #fcef00; }
.zp-title { color: #fff; }
.zp-lead { color: rgba(255, 255, 255, .82); font-weight: 500; }
.zp-btn { background: #fcef00; color: #182987; box-shadow: none; }
.zp-btn::after { background: #182987; color: #fcef00; }
.zp-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.zp-jump a { color: rgba(255, 255, 255, .8); }
.zp-course-tag small { font-size: .62em; letter-spacing: .04em; margin-left: .2em; }   /* 「（＋基礎編）」は小さく（2026-10-25） */
.zp-course-wide { grid-column: 1 / -1; }   /* 個別プログラムは2枚の下に横いっぱい */
.zp-days-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* 実践編の4日間は 2×2 */
@media (max-width: 480px) { .zp-days-4 { grid-template-columns: 1fr; } }
/* 個別プログラムの成果物の例（表） */
.zp-indiv { margin-top: 1.4em; background: #fff; border-radius: 22px; padding: 1.2em 1.4em; }
.zp-indiv-cap { margin: 0 0 .6em; color: var(--c); font-weight: 900; letter-spacing: .1em; font-size: clamp(15px, 1.4vw, 18px); }
.zp-indiv-table { width: 100%; border-collapse: collapse; font-size: clamp(14px, 1.25vw, 17px); line-height: 1.6; }
.zp-indiv-table th, .zp-indiv-table td { text-align: left; padding: .7em .8em; border-bottom: 1px solid color-mix(in srgb, var(--c) 18%, #fff); vertical-align: top; }
.zp-indiv-table thead th { color: var(--c); font-size: .85em; letter-spacing: .1em; border-bottom: 2px solid var(--c); }
.zp-indiv-table tbody th { white-space: nowrap; font-weight: 900; }
.zp-indiv-note { margin: .9em 0 0; font-weight: 700; font-size: clamp(14px, 1.25vw, 17px); }
@media (max-width: 640px) {   /* スマホは表を縦に積む */
  .zp-indiv-table thead { display: none; }
  .zp-indiv-table tr { display: block; padding: .6em 0; border-bottom: 1px solid color-mix(in srgb, var(--c) 18%, #fff); }
  .zp-indiv-table th, .zp-indiv-table td { display: block; border: 0; padding: .15em 0; }
  .zp-indiv-table td:last-child::before { content: "完了の判断："; color: var(--c); font-weight: 700; }
}
/* 受講料（2026-10-25 本人指示）。すべて税別（2026-10-26 本人確定） */
.zp-price { margin: .7em 0 0; font-weight: 900; color: var(--c); font-size: clamp(18px, 1.7vw, 24px); letter-spacing: .04em; }
.zp-price b { font-family: var(--num), sans-serif; font-size: 1.9em; letter-spacing: .01em; margin-right: .05em; }
.zp-price small { font-size: .62em; font-weight: 700; color: #1f1f1f; margin-left: .3em; }

/* =====================================================================
   ページ全体の配色を、最初の画面と同じ 紺・白・黄色 の3色にそろえる（2026-10-25 本人指示「このページをこのデザインに配色に合わせる」）
   紺 #182987（地・見出し・枠）／白（地）／黄 #fcef00（差し色・ボタン）。ピンク・水色・緑・橙・紫の色分けはやめる
   ===================================================================== */
.zemi-page { --zn: #182987; --zy: #fcef00; --zpale: #eef0f8; }
.zemi-page main :is(.zp-five, .zp-prog, .zp-for, .zp-role, .zp-flow) [style*="--c"],
.zemi-page main .zp-five .zemi-list li,
.zemi-page main .zp-course,
.zemi-page main .pflow-list li { --c: var(--zn) !important; }

/* 見出しは紺 */
.zemi-page .zp-h2, .zemi-page #flow .ph2 { color: var(--zn); }

/* 5つの詰まり：紺の頭に白い文字、本文は白地に近い薄い紺 */
.zp-five .zemi-list li { background: var(--zpale); }
.zp-five .zemi-a { border-top-color: rgba(24, 41, 135, .25); }
.zp-five .zemi-a::before { color: var(--zn); }

/* プログラム：札は紺、金額は紺、カードの枠は紺。実践編だけ札を黄色にして見分ける */
.zp-course { background: var(--zpale); border-color: var(--zn); }
.zp-course-tag { background: var(--zn); color: #fff; }
.zp-prog .zp-course:nth-child(2) .zp-course-tag { background: var(--zy); color: var(--zn); }
.zp-day li::before, .zp-practice li::before { background: var(--zy); box-shadow: 0 0 0 2px var(--zn); }
.zp-course-get { border-top-color: rgba(24, 41, 135, .25); }
.zp-course-wide { background: var(--zn); color: #fff; }
.zp-course-wide .zp-course-tag { background: var(--zy); color: var(--zn); }
.zp-course-wide .zp-price, .zp-course-wide .zp-course-get b { color: var(--zy); }
.zp-course-wide .zp-price small { color: rgba(255, 255, 255, .85); }
.zp-course-wide .zp-course-get { border-top-color: rgba(255, 255, 255, .3); }
.zp-course-wide .zp-indiv { color: #1f1f1f; }

/* こんなお店に・お願いすること */
.zp-check li { background: var(--zpale); }
.zp-check li::before { background: var(--zn); color: var(--zy); }
.zp-role-card { background: var(--zpale); }
.zp-role-card h3 { color: var(--zn); }

/* 進め方：番号は紺、地は薄い紺、上の一文は紺 */
.zp-flow .pflow-list li { background: var(--zpale) !important; }
.zp-flow .pflow-list li::before { background: none; color: var(--zn); }
.zemi-page .pflow .pflow-lead { color: var(--zn); }

/* 入校の申込：紺の地。ラベルは黄色、ボタンは黄色に紺の文字 */
.zemi-page .zp-apply { background: var(--zn); color: #fff; }
.zemi-page .zp-apply::before { background: var(--zn) !important; }
.zemi-page .zp-apply :is(.soudan-title, .soudan-text) { color: #fff !important; }
.zemi-page .zp-apply .soudan-label { color: var(--zy) !important; background: none !important; }
.zemi-page .zp-apply .soudan-btn { background: var(--zy); color: var(--zn); box-shadow: none; }
.zemi-page .zp-apply .soudan-btn::after { background: var(--zn); color: var(--zy); }
.zp-tour { color: rgba(255, 255, 255, .85); }
.zp-tour a { color: var(--zy); }
/* 文字の大きさの段階（TOP の css/unei.css と同じ値。このページは unei.css を読まないのでここにも置く） */
.zemi-page { --fs-h2: clamp(28px, 4vw, 58px); --fs-lead: clamp(20px, 2.1vw, 30px); --fs-body: clamp(16px, 1.5vw, 21px); --fs-small: clamp(13px, 1.1vw, 15px); }
.zemi-page .zp-apply .soudan-title { font-size: var(--fs-h2); }
.zemi-page .zp-apply .soudan-text { font-size: var(--fs-body); }
.zemi-page .zp-apply .soudan-btn { font-size: var(--fs-lead); }
/* 「受講すると」どうなるか（2026-10-26 本人指示「持ち帰るというか、どうなるか」） */
.zp-after { list-style: none; margin: .5em 0 0; padding: 0; display: grid; gap: .45em; }
.zp-after li { position: relative; padding-left: 1.6em; font-weight: 700; font-size: clamp(15px, 1.35vw, 18px); line-height: 1.6; }
.zp-after li::before { content: "✓"; position: absolute; left: 0; top: .05em; display: grid; place-items: center; width: 1.2em; height: 1.2em; border-radius: 50%; background: var(--zn, #182987); color: var(--zy, #fcef00); font-size: .85em; }
/* チェックの印：文字の「✓」は書体で位置がずれるので、線で描く（2026-10-26 本人指摘「ずれ」） */
.zp-after li::before { content: ""; top: .2em; width: 1.2em; height: 1.2em; font-size: 1em; }
.zp-after li::after {
  content: ""; position: absolute; left: .44em; top: .36em; width: .3em; height: .54em;
  border: solid var(--zy, #fcef00); border-width: 0 .14em .14em 0; transform: rotate(45deg);
}
.zp-check li { position: relative; }
/* 「お店でお願いすること」を外したので、黄色→紺の申込の面の上の弧のための空きを、進め方の区画の下に移す */
.zemi-page .zp-flow { padding-bottom: clamp(130px, 16vw, 230px); }
/* 「経営学ではなく、現場を動かす運営学」：白い地に紺の大きな文字、「運営学」は黄色の帯 */
.zp-don { overflow: hidden; text-align: center; padding: clamp(80px, 11vw, 160px) var(--gutter) clamp(20px, 3vw, 40px); }
.zp-don p { margin: 0; font-family: "Zen Kaku Gothic New", var(--display) !important; font-weight: 900; color: var(--zn, #182987); line-height: 1.2; word-break: keep-all; }
.zp-don-a { font-size: clamp(22px, 3.2vw, 46px); letter-spacing: .08em; opacity: .75; }
.zp-don-b { margin-top: .2em !important; font-size: clamp(40px, 8.4vw, 124px); letter-spacing: .02em; transform-origin: 50% 60%; }
.zp-don-b em { font-style: normal; background: linear-gradient(transparent 62%, var(--zy, #fcef00) 62% 92%, transparent 92%); padding: 0 .05em; }
@media (max-width: 760px) { .zp-don-b { font-size: clamp(40px, 13vw, 64px); } }
.zp-don-c { margin-top: clamp(36px, 5vw, 64px) !important; font-weight: 700 !important; font-size: var(--fs-lead) !important; line-height: 1.9 !important; letter-spacing: .06em; color: #1f1f1f !important; }
.zp-don-d { margin-top: clamp(24px, 3vw, 40px) !important; font-weight: 700 !important; font-size: var(--fs-body) !important; line-height: 1.9 !important; letter-spacing: .06em; color: #1f1f1f !important; }
.zp-don-d b { font-size: 1.5em; color: var(--zn, #182987); }
@media (max-width: 760px) { .zp-don-c br { display: none; } }
.zp-days-5 .zp-day:last-child { grid-column: 1 / -1; }   /* 5日目は横いっぱい */
/* 基礎編と実践編の見た目をそろえる（2026-10-26 本人指示「みためなるべく合わせる」）：
   2枚のカードの中の段（札・金額・見出し・説明・日程・受講すると）を同じ高さの行にそろえる（subgrid） */
@media (min-width: 900px) {
  .zp-prog .zp-courses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .zp-prog .zp-course:not(.zp-course-wide) { display: grid; grid-template-rows: subgrid; grid-row: span 6; row-gap: 0; align-content: start; }
  .zp-prog .zp-course:not(.zp-course-wide) > .zp-days { align-self: stretch; }
  .zp-prog .zp-course:not(.zp-course-wide) > .zp-days .zp-day { height: auto; }
}
@media (min-width: 900px) {
  .zp-prog .zp-course:not(.zp-course-wide) > * { justify-self: stretch; }
  .zp-prog .zp-course:not(.zp-course-wide) > .zp-course-tag { justify-self: start; align-self: start; }
  .zp-prog .zp-course:not(.zp-course-wide) > .zp-days { align-self: start; align-items: start; }
}
/* 基礎編・実践編のカードと個別プログラムの間を詰める（2026-10-26 本人指示「詰めて」） */
.zp-prog .zp-courses { row-gap: 12px; }
.zp-prog .zp-course:not(.zp-course-wide) { padding-bottom: clamp(18px, 2vw, 26px); }
/* 「受講すると」を日程のすぐ下へ上げる（2026-10-26 本人指示「あげていいよ」「詰めて」）。2枚の行をそろえる subgrid はやめ、上の端だけそろえる */
@media (min-width: 900px) {
  .zp-prog .zp-course:not(.zp-course-wide) { display: block; grid-row: auto; }
  .zp-prog .zp-courses { align-items: start; }
  .zp-prog .zp-course:not(.zp-course-wide) > .zp-course-tag { display: inline-block; }
}
/* 同じ段の日程の箱は高さをそろえる（2026-10-26 本人指示「枠そろえる」） */
.zp-prog .zp-days, .zp-prog .zp-course:not(.zp-course-wide) > .zp-days { align-items: stretch !important; }
/* 基礎編の日程も2列に（実践編とそろえる）。説明文の高さを左右で同じにして、日程の箱の上の位置をそろえる（2026-10-26 本人指示「枠そろえる」） */
.zp-prog .zp-days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 480px) { .zp-prog .zp-days { grid-template-columns: 1fr; } }
@media (min-width: 900px) { .zp-prog .zp-course:not(.zp-course-wide) .zp-course-text { min-height: calc(3 * 1.9em); } }
/* 実践編 6日間（2026-10-26）：2列×3段。6日目は来社の札、日程の下に期間と受講の形 */
.zp-days-6 .zp-day:last-child { grid-column: auto; }
.zp-visit { display: inline-block; margin-left: .6em; padding: .1em .7em; border-radius: 999px; background: var(--zy, #fcef00); color: var(--zn, #182987); font-size: .72em; vertical-align: .15em; letter-spacing: .08em; }
.zp-schedule { margin: 1em 0 0; padding: .8em 1em; border-radius: 16px; background: #fff; border: 2px dashed rgba(24, 41, 135, .35); font-weight: 700; font-size: clamp(14px, 1.3vw, 17px); line-height: 1.8; }
/* 5つの詰まりのカードの色（2026-10-26 本人指示「色変えて」）：頭は黄色に紺の文字、本文は白に紺の細い枠 */
.zp-five .zemi-list li { background: #fff !important; box-shadow: inset 0 0 0 2px var(--zn, #182987); }
.zp-five .zemi-list h3, .zp-five .zemi-list h3:is(*) { background: var(--zy, #fcef00) !important; color: var(--zn, #182987) !important; border-bottom: 2px solid var(--zn, #182987); }
.zp-five .zemi-q { color: var(--zn, #182987); }
/* 頭のベタを黄色から薄い紺に（2026-10-26 本人指示「紺枠で ベタの色をかえる」）。枠は紺のまま */
.zp-five .zemi-list h3, .zp-five .zemi-list h3:is(*) { background: #dfe3f3 !important; }
/* 頭のベタをカードごとの色に（2026-10-26 本人指示「それぞれ」）。TOP の悩みの吹き出しと同じ色の組み合わせ。枠は紺 */
.zp-five .zemi-list li:nth-child(1) h3 { background: #00ad9d !important; }
.zp-five .zemi-list li:nth-child(2) h3 { background: #9837bb !important; }
.zp-five .zemi-list li:nth-child(3) h3 { background: #29abe2 !important; }
.zp-five .zemi-list li:nth-child(4) h3 { background: #ff9c00 !important; }
.zp-five .zemi-list li:nth-child(5) h3 { background: #ea545d !important; }
.zp-five .zemi-list h3, .zp-five .zemi-list h3:is(*) { color: #fff !important; }
/* 紺の枠をベタの外まわりにも（2026-10-26 本人指示「ベタにも紺枠」）：内側の影ではなく、カードの外側の線にする */
.zp-five .zemi-list li { box-shadow: none !important; border: 2px solid var(--zn, #182987); overflow: hidden; }
/* 行末に1〜2文字だけ残る折れ方を減らす・注記を読める大きさに（2026-10-26 確認係の指摘） */
.zemi-page main :is(p, li, h2, h3, td, th) { word-break: auto-phrase; text-wrap: pretty; }
.zp-course-tag small { font-size: .8em; }
.zp-price small { font-size: .72em; white-space: nowrap; }
@media (min-width: 900px) and (max-width: 1150px) { .zp-prog .zp-days { grid-template-columns: 1fr; } }

/* プライバシーポリシーのページ（privacy/index.html、2026-10-26） */
.pv { padding: clamp(110px, 12vw, 160px) var(--gutter) clamp(80px, 10vw, 140px); }
.pv-inner { max-width: 820px; margin: 0 auto; }
.pv-title { margin: 0; color: var(--zn, #182987); font-weight: 900; font-size: var(--fs-h2); letter-spacing: .06em; }
.pv-lead { margin: 1.6em 0 0; font-size: var(--fs-body); line-height: 2; }
.pv-sec { margin-top: clamp(32px, 4vw, 48px); padding-top: clamp(20px, 2.4vw, 28px); border-top: 2px solid rgba(24, 41, 135, .15); }
.pv-sec h2 { margin: 0; color: var(--zn, #182987); font-weight: 900; font-size: clamp(18px, 1.7vw, 23px); letter-spacing: .04em; }
.pv-sec p, .pv-sec li { font-size: var(--fs-body); line-height: 2; }
.pv-sec p { margin: .7em 0 0; }
.pv-sec ul { margin: .6em 0 0; padding-left: 1.3em; }
.pv-sec li + li { margin-top: .4em; }
.pv-sec a { color: var(--zn, #182987); text-decoration: underline; }
.pv-sign { margin: clamp(40px, 5vw, 60px) 0 0; text-align: right; font-weight: 700; font-size: var(--fs-body); line-height: 1.9; }
