/* =============================================================
   会場別の体験会LP（page-templates/page-campaign-lp.php）
   ＋ 会場ページの体験会案内枠（template-parts/campaign-lp-banner.php）
   既存クラスと衝突しないよう、すべて clp- 接頭辞で定義する。
   値の正本＝marketing/branding/design-system.md（緑 #184D3C・CTA赤は申込導線のみ）
   ============================================================= */

.clp, .clp-crumb, .clp-sticky, .clp-vb {
  --clp-green:#184D3C; --clp-sky:#3F9BC8; --clp-cta:#DF2D22; --clp-cta-hover:#C1121F;
  --clp-txt:#1B2630; --clp-txt2:#5E6B78; --clp-warm:#FAFAF7; --clp-beige:#F7F3EA; --clp-tint:#EAF3EF;
  --clp-surface:#F4F7F4; --clp-border:#E2E8E3;
  --clp-shadow:0 2px 16px rgba(16,24,30,.06); --clp-shadow-lift:0 14px 36px rgba(16,24,30,.10);
  --clp-shadow-cta:0 5px 20px rgba(223,45,34,.32);
}
.clp { color:var(--clp-txt); font-feature-settings:"palt"; }
.clp-wrap { max-width:1100px; margin:0 auto; padding:0 20px; }
.clp-narrow { max-width:800px; }
.clp img { max-width:100%; height:auto; display:block; }

/* パンくず */
.clp-crumb { background:var(--clp-warm); border-bottom:1px solid var(--clp-border); font-size:12.5px; color:var(--clp-txt2); padding:10px 0; }
.clp-crumb a { color:var(--clp-green); font-weight:700; text-decoration:none; }
.clp-crumb a:hover { text-decoration:underline; }

/* 共通 */
.clp-sec { padding:64px 0; }
@media (min-width:900px){ .clp-sec { padding:88px 0; } }
.clp-bg-warm { background:var(--clp-warm); } .clp-bg-beige { background:var(--clp-beige); } .clp-bg-tint { background:var(--clp-tint); }
.clp-label { display:inline-flex; align-items:center; gap:8px; font-family:"Oswald",sans-serif; font-weight:600; font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--clp-green); margin:0 0 12px; }
.clp-label::before { content:""; width:16px; height:2px; background:var(--clp-green); }
.clp h2, .clp .clp-h3 { font-weight:900; line-height:1.4; letter-spacing:.04em; margin:0 0 20px; text-wrap:balance; color:var(--clp-txt); }
.clp h2 { font-size:clamp(24px,3.4vw,32px); }
.clp .clp-h3 { font-size:18px; margin-bottom:10px; }
.clp h3 { font-size:17px; font-weight:700; margin:0 0 6px; }
.clp p { margin:0 0 12px; line-height:1.85; }
.clp-lead { font-size:16px; color:var(--clp-txt2); margin-bottom:24px !important; max-width:800px; }
.clp-mk { box-shadow:inset 0 -.45em 0 rgba(24,77,60,.14); }
.clp-small { font-size:13.5px; color:var(--clp-txt2); margin-top:14px !important; }
.clp-red { color:var(--clp-cta); font-size:13px; font-weight:700; }
.clp-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.clp-ended { background:var(--clp-beige); border-radius:12px; padding:14px 16px; font-size:15px; }

/* ボタン */
.clp-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:700; text-decoration:none; border-radius:999px; padding:14px 26px; font-size:15px; line-height:1; transition:transform .15s ease, background .15s ease; cursor:pointer; border:0; }
.clp-btn-cta { background:var(--clp-cta); color:#fff !important; box-shadow:var(--clp-shadow-cta); }
.clp-btn-cta:hover { background:var(--clp-cta-hover); transform:translateY(-1px); }
.clp-btn-ghost { background:transparent; color:var(--clp-green) !important; border:1.5px solid var(--clp-green); }
.clp-btn-ghost:hover { background:var(--clp-tint); }
.clp-btn-sm { padding:10px 16px; font-size:13.5px; }
.clp a:focus-visible, .clp-sticky a:focus-visible, .clp-vb a:focus-visible { outline:3px solid var(--clp-sky); outline-offset:2px; }

/* ヒーロー */
.clp-hero { padding:36px 0 56px; }
.clp-hero-grid { display:grid; grid-template-columns:1fr; gap:28px; align-items:center; }
@media (min-width:900px){ .clp-hero { padding:56px 0 72px; } .clp-hero-grid { grid-template-columns:1.05fr .95fr; gap:48px; } }
.clp-hero h1 { font-size:clamp(30px,4.6vw,46px); font-weight:900; line-height:1.3; letter-spacing:.04em; margin:0 0 14px; color:var(--clp-txt); }
.clp-line { display:block; }
.clp-kinen { display:inline-block; font-size:.46em; font-weight:700; letter-spacing:.28em; color:var(--clp-green); border:2px solid var(--clp-green); border-radius:8px; padding:.18em .7em .14em .98em; margin:.25em 0 .35em; line-height:1.3; }
.clp-sub { font-size:clamp(16px,1.6vw,18px); color:var(--clp-txt2); margin-bottom:20px !important; }
.clp-facts { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; padding:0; list-style:none; }
.clp-facts li { display:inline-flex; align-items:center; gap:8px; background:var(--clp-warm); border:1px solid var(--clp-border); border-radius:999px; padding:8px 14px; font-size:14px; font-weight:700; }
.clp-facts li::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--clp-green); }
.clp-next { display:flex; align-items:center; gap:14px; background:var(--clp-tint); border-radius:14px; padding:14px 16px; margin-bottom:22px; }
.clp-next-k { font-family:"Oswald",sans-serif; font-weight:600; font-size:12px; letter-spacing:.2em; color:var(--clp-green); }
.clp-next-d { font-family:"Oswald","Noto Sans JP",sans-serif; font-weight:700; font-size:22px; }
.clp-next-d small { font-family:"Noto Sans JP",sans-serif; font-size:14px; font-weight:700; color:var(--clp-txt2); margin-left:6px; }
.clp-cta-row { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.clp-note { font-size:12.5px; color:var(--clp-txt2); width:100%; }
.clp-hero-photo { position:relative; margin:0; border-radius:22px; overflow:hidden; aspect-ratio:4/3; box-shadow:var(--clp-shadow-lift); }
.clp-hero-photo img { width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.clp-hero-photo figcaption { position:absolute; left:12px; bottom:12px; background:rgba(255,255,255,.92); border-radius:8px; padding:6px 10px; font-size:12px; font-weight:700; color:var(--clp-green); }

/* こんなご家庭に */
.clp-fit-grid { display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width:720px){ .clp-fit-grid { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); } }
.clp-fit { display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--clp-border); border-radius:16px; padding:18px 20px; box-shadow:var(--clp-shadow); }
.clp-chk { flex:0 0 28px; width:28px; height:28px; border-radius:50%; border:2px solid var(--clp-green); display:grid; place-items:center; color:var(--clp-green); font-weight:900; font-size:14px; margin-top:2px; }
.clp-fit p { font-size:14.5px; color:var(--clp-txt2); margin:0; }
.clp-fit-note { font-size:14px; color:var(--clp-txt2); margin-top:16px !important; }
.clp-fit-note a, .clp-small a, .clp-ended a, .clp-venue a { color:var(--clp-green); font-weight:700; }

/* 日程 */
.clp-sched { display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width:560px){ .clp-sched { grid-template-columns:repeat(2,1fr); } }
@media (min-width:900px){ .clp-sched { grid-template-columns:repeat(3,1fr); gap:14px; } }
.clp-day { position:relative; background:#fff; border:1px solid var(--clp-border); border-radius:16px; padding:18px 18px 16px; box-shadow:var(--clp-shadow); display:flex; flex-direction:column; gap:8px; }
.clp-day.is-next { border:2px solid var(--clp-green); }
.clp-tag { position:absolute; top:-10px; left:16px; background:var(--clp-green); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.08em; border-radius:6px; padding:3px 9px; }
.clp-date { font-family:"Oswald","Noto Sans JP",sans-serif; font-weight:700; font-size:22px; }
.clp-date small { font-family:"Noto Sans JP",sans-serif; font-size:13.5px; color:var(--clp-txt2); font-weight:700; margin-left:4px; }
.clp-time { font-size:14px; color:var(--clp-txt2); }
.clp-day .clp-btn { align-self:flex-start; margin-top:4px; }

/* 当日の流れ・会場 */
.clp-two { display:grid; grid-template-columns:1fr; gap:28px; }
@media (min-width:900px){ .clp-two { grid-template-columns:1.1fr .9fr; gap:40px; } }
.clp-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.clp-steps li { display:grid; grid-template-columns:52px 1fr; gap:12px; align-items:start; }
.clp-t { font-family:"Oswald",sans-serif; font-weight:600; font-size:15px; color:var(--clp-green); padding-top:3px; }
.clp-b { background:#fff; border:1px solid var(--clp-border); border-radius:12px; padding:12px 14px; font-size:14.5px; line-height:1.75; }
.clp-b b { display:block; margin-bottom:2px; }
.clp-items { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.clp-items span { background:var(--clp-surface); border-radius:8px; padding:6px 10px; font-size:13.5px; font-weight:700; }
.clp-venue { background:#fff; border:1px solid var(--clp-border); border-radius:18px; overflow:hidden; box-shadow:var(--clp-shadow); align-self:start; }
.clp-map { aspect-ratio:16/10; background:var(--clp-surface); }
.clp-map iframe { width:100%; height:100%; border:0; display:block; }
.clp-venue-body { padding:18px 20px; }
.clp-venue dl { margin:0; display:grid; grid-template-columns:84px 1fr; gap:8px 12px; font-size:14.5px; }
.clp-venue dt { color:var(--clp-txt2); font-weight:700; font-size:13px; padding-top:2px; }
.clp-venue dd { margin:0; }
.clp-notice { margin-top:14px !important; background:var(--clp-beige); border-radius:10px; padding:10px 12px; font-size:13.5px; color:var(--clp-txt2); }

/* 特典 */
.clp-gifts { display:grid; grid-template-columns:1fr; gap:16px; align-items:start; }
@media (min-width:720px){ .clp-gifts { grid-template-columns:repeat(2,1fr); } }
.clp-gift { background:#fff; border:1px solid var(--clp-border); border-radius:14px; padding:20px; display:flex; flex-direction:column; gap:6px; }
.clp-gift-k { font-family:"Oswald","Noto Sans JP",sans-serif; font-weight:600; font-size:11px; letter-spacing:.16em; color:var(--clp-green); }
.clp-gift-big { font-size:clamp(18px,2.1vw,22px) !important; font-weight:900; line-height:1.35 !important; margin:0 !important; }
.clp-gift-big s { color:var(--clp-txt2); font-weight:700; font-size:.7em; margin-right:8px; }
.clp-gift p { font-size:14px; color:var(--clp-txt2); margin:0; }
.clp-gift-img-wrap { width:72px; height:72px; margin-top:4px; border-radius:10px; background:#fff; border:1px solid var(--clp-border); display:flex; align-items:center; justify-content:center; overflow:hidden; }
/* .clp img{height:auto} より優先させる（縦長のチャームが枠からはみ出して上下が切れるのを防ぐ） */
.clp .clp-gift-img-wrap .clp-gift-img { width:100%; height:100%; max-height:100%; object-fit:contain; background:none; }

/* コーチ */
.clp-coach { display:grid; grid-template-columns:1fr; gap:20px; align-items:center; }
@media (min-width:720px){ .clp-coach { grid-template-columns:240px 1fr; gap:32px; } }
.clp-coach img { width:100%; max-width:320px; aspect-ratio:1/1; object-fit:cover; object-position:center 20%; border-radius:18px; box-shadow:var(--clp-shadow); }
.clp-coach-name { font-size:22px; font-weight:900; margin:0 0 2px !important; }
.clp-coach-role { font-size:13.5px; color:var(--clp-green); font-weight:700; letter-spacing:.06em; margin-bottom:10px !important; }

/* 料金・ふだんのレッスン */
.clp-price-grid { display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:900px){ .clp-price-grid { grid-template-columns:1fr 1.3fr; } }
.clp-pcard { background:#fff; border:1px solid var(--clp-border); border-radius:18px; padding:22px; box-shadow:var(--clp-shadow); }
.clp-pcard h3 { color:var(--clp-green); letter-spacing:.06em; }
.clp-trial-price { font-size:clamp(26px,3vw,34px) !important; font-weight:900; line-height:1.25 !important; margin:4px 0 8px !important; }
.clp-trial-price small { display:block; font-size:14px; color:var(--clp-txt2); font-weight:700; margin-top:4px; }
.clp-fee { width:100%; border-collapse:collapse; font-size:14.5px; background:#fff; }
.clp-fee th, .clp-fee td { padding:10px 8px; border-bottom:1px solid var(--clp-border); text-align:left; vertical-align:top; }
.clp-fee th { font-size:13px; color:var(--clp-txt2); font-weight:700; white-space:nowrap; width:1%; }
.clp-fee tr:last-child th, .clp-fee tr:last-child td { border-bottom:0; }
.clp-regular { border:1px solid var(--clp-border); border-radius:14px; overflow:hidden; margin-bottom:18px; }
.clp-regular th, .clp-regular td { padding:12px 14px; }

/* FAQ */
.clp-faq { display:flex; flex-direction:column; gap:10px; }
.clp-faq details { background:#fff; border:1px solid var(--clp-border); border-radius:14px; overflow:hidden; }
.clp-faq summary { cursor:pointer; list-style:none; padding:16px 18px; font-weight:700; font-size:15.5px; display:flex; justify-content:space-between; gap:12px; align-items:center; }
.clp-faq summary::-webkit-details-marker { display:none; }
.clp-faq summary::after { content:"+"; font-family:"Oswald",sans-serif; color:var(--clp-green); font-size:20px; line-height:1; }
.clp-faq details[open] summary::after { content:"−"; }
.clp-a { padding:0 18px 16px; font-size:14.5px; color:var(--clp-txt2); line-height:1.8; }

/* 申込（Googleフォーム埋め込み） */
.clp-form { background:#fff; border:1px solid var(--clp-border); border-radius:20px; overflow:hidden; box-shadow:var(--clp-shadow-lift); }
.clp-form iframe { display:block; width:100%; height:1750px; border:0; }
@media (max-width:600px){ .clp-form iframe { height:2000px; } }

/* 追従CTA */
.page-campaign-lp { padding-bottom:84px; }
.clp-sticky { position:fixed; left:0; right:0; bottom:0; z-index:90; background:rgba(255,255,255,.96); border-top:1px solid var(--clp-border); padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); display:flex; gap:10px; align-items:center; justify-content:space-between; }
.clp-sticky-s { font-size:12.5px; line-height:1.4; color:var(--clp-txt2); }
.clp-sticky-s b { display:block; color:var(--clp-txt); font-size:14px; }
.clp-sticky .clp-btn { white-space:nowrap; padding:12px 20px; }

/* =============================================================
   会場ページの体験会案内枠（template-parts/campaign-lp-banner.php）
   ============================================================= */
.clp-vb { padding:8px 0 4px; }
.clp-vb-box { display:grid; grid-template-columns:1fr; gap:14px; align-items:center; background:var(--clp-tint); border:2px solid var(--clp-green); border-radius:18px; padding:18px 20px; }
@media (min-width:760px){ .clp-vb-box { grid-template-columns:1fr auto; padding:20px 24px; } }
.clp-vb-badge { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em; color:var(--clp-green); border:1.5px solid var(--clp-green); border-radius:6px; padding:3px 9px; margin-bottom:8px; background:#fff; }
.clp-vb-title { font-size:clamp(18px,2.2vw,22px); font-weight:900; line-height:1.4; margin:0 0 6px; color:var(--clp-txt); }
.clp-vb-text { font-size:14.5px; color:var(--clp-txt2); margin:0; line-height:1.75; }
.clp-vb-text b { color:var(--clp-txt); }

@media (prefers-reduced-motion: reduce){ .clp-btn { transition:none; } }

/* =============================================================
   トップの日程欄・会場一覧の「特別体験会 受付中」リンク（inc/campaign-lp.php の triangle_campaign_badge_html）
   ============================================================= */
.clp-badge { display:inline-block; margin-left:6px; padding:2px 9px; border-radius:999px; background:#DF2D22; color:#fff !important; font-size:11.5px; font-weight:700; letter-spacing:.04em; line-height:1.6; text-decoration:none !important; vertical-align:middle; white-space:nowrap; }
.clp-badge:hover { background:#C1121F; }
.clp-notice-line { border-left:3px solid #184D3C; }
.clp-notice-link { display:inline-block; margin-left:6px; color:#184D3C !important; font-weight:700; text-decoration:underline; white-space:nowrap; }
.location-index-body .clp-notice-line { margin:4px 0 10px; padding:8px 10px; background:#EAF3EF; border-radius:8px; font-size:13px; line-height:1.6; }

/* 雰囲気（写真） */
.clp-gallery-sec { padding-top:8px; }
@media (min-width:900px){ .clp-gallery-sec { padding-top:16px; } }
.clp-gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
@media (min-width:900px){ .clp-gallery { grid-template-columns:repeat(4,1fr); gap:14px; } }
.clp-gallery-item { position:relative; margin:0; border-radius:16px; overflow:hidden; aspect-ratio:4/3; box-shadow:var(--clp-shadow); }
.clp-gallery-item img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.clp-gallery-item figcaption { position:absolute; left:8px; bottom:8px; background:rgba(255,255,255,.92); border-radius:999px; padding:4px 10px; font-size:12.5px; font-weight:700; color:var(--clp-green); }

/* 当日の流れのイラスト（ファイルがあるステップだけ表示） */
.clp-b.has-img { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.clp-step-img { flex:0 0 76px; width:76px; height:76px; object-fit:contain; }
@media (min-width:900px){ .clp-step-img { flex-basis:88px; width:88px; height:88px; } }

/* 金曜以外の日程・会場をご希望の方へ */
.clp-other { margin-top:22px; background:var(--clp-warm); border:1px solid var(--clp-border); border-radius:16px; padding:18px 20px; }
.clp-other-h { font-weight:900; font-size:16px; margin:0 0 6px !important; color:var(--clp-txt); }
.clp-other-p { font-size:14px; color:var(--clp-txt2); margin:0 0 12px !important; }
.clp-other-links { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.clp-other-more { font-size:13.5px; font-weight:700; color:var(--clp-green); text-decoration:underline; }
