/* ============================================================
   LP v3 モック v5（2026-08-17 アートディレクション「日曜の朝市」）
   ・3方向AD案(あたたかい/上質/王道LP)→2判定パネルでC案「王道LPの熱量」が全会一致
   ・フォント: 見出し=M PLUS Rounded 1c 900(ロゴと同族の丸ポップ)
     本文=BIZ UDPGothic(モリサワUD設計・シニア可読性) 手書き=Yusei Magic(キャプションのみ)
   ・テント庇/波区切り/0円バースト/値札表/賞状+検印スタンプ/ふきだし/FAQカード化
   ・動きは2つだけ: 保証の検印(1回0.45s)と.emマーカー走査(いずれもreduced-motion時は静止)
   ・#E77C50は非テキスト装飾専用を維持。黄マーカー上の#B54A22は24px以上太字限定(AA大テキスト)
   ─ 以下v4までの履歴 ─
   ・6視点デザインレビュー（余白/タイポ/配色/モバイル/シニアa11y/部品）→3者判定で35件を反映
   ・コントラストAA化: 文字用#B54A22・白抜き地#C15020のトークン新設（#E77C50は装飾専用に）
   ・必須バッジの#FF3131撤去（DESIGN.md準拠）・FAQ開閉を丸バッジ化・フォーカスリング追加
   ・375px/320px対応（h1 clamp・canグリッド1列化・検索ボタン折返し）
   ・FV郵便番号→フォームへ自動転記・検索ボタンdisabled制御・IntersectionObserverバッチ対策
   ・FVにオファー＋郵便番号検索を統合（旧§2は廃止）
   ・教室検索は本番同経路で実動（zipcloud→国土地理院→haversine・140教室実データ）
   ・受講生の声はシニア文脈の実在3件（教室ページ掲載文の抜粋・改変なし）
   ・「できるようになること」「受講生の声」を新設
   ・数字統一（授業50分／体験当日 約60分）・最小文字15.5px
   ・検索: Enter対応・20km上限・店舗名表示
   ・電話導線は「出さない」で確定（2026-08-16 判断）。CVパスはフォーム1本
   ・DESIGN.md トークン準拠（オレンジ主系）
   ============================================================ */
:root{
  --c-accent:#E77C50; --c-accent2:#004AAD; --c-cta:#FBC03C;
  --c-ink:#353231; --c-info:#E5F5FF; --c-bg:#FFF8F3;
  --c-white:#FFFFFF; --c-line:#F0E0D6; --c-muted:#7a5c44;
  /* 文字用・白抜き地用の濃オレンジ（AA充足。#E77C50は白/黒どちらの文字も4.5:1に届かない中間トーン） */
  --c-accent-text:#B54A22;   /* オレンジの文字色（白地5.3:1） */
  --c-accent-deep:#C15020;   /* 白文字を載せる地（4.7:1） */
  --c-accent-ring:rgba(231,124,80,.18);  /* フォーカスリング（DESIGN.md §2.3） */
  --font-disp:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --font-body:"BIZ UDPGothic","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  --font-hand:"Yusei Magic","Hiragino Maru Gothic ProN",sans-serif;
  --r-lg:20px; --r-md:14px; --r-sm:8px;
  --bd:2.5px solid var(--c-line);
  --pop:0 4px 0 var(--c-line);
  --pop-cta:0 5px 0 #d9a020;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--c-ink); background:var(--c-bg);
  font-size:18px; line-height:1.9; -webkit-text-size-adjust:100%;
}
.wrap{max-width:520px;margin:0 auto;background:var(--c-white)}
section{padding:44px 22px}
h2{
  font-family:var(--font-disp);font-weight:900;letter-spacing:-.015em;
  font-size:clamp(25px,7vw,29px);line-height:1.45;margin-bottom:24px;text-align:center;
}
h2::after{ /* 筆の一閃（図形のみ・新規テキストなし） */
  content:"";display:block;width:110px;height:12px;margin:8px auto 0;
  background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 110 12"><path d="M4 8 C 34 2, 76 2, 106 6" stroke="%23FBC03C" stroke-width="6" stroke-linecap="round" fill="none"/></svg>') center/contain no-repeat;
}
h2 .accent{color:var(--c-accent-text)}
.h2-sub{text-align:center;font-size:16px;color:var(--c-muted);margin-top:-14px;margin-bottom:22px}
.sec-alt{ /* 生成り面＝豆絞りドット地（約1.06:1・柄として知覚される最小限） */
  background:
    radial-gradient(rgba(231,124,80,.06) 1.5px,transparent 1.6px) 0 0/22px 22px,
    var(--c-bg);
  position:relative;
}
.sec-alt::before{ /* 波の区切り（直前の白面へ生成りの波が立ち上がる） */
  content:"";position:absolute;top:-17px;left:0;right:0;height:18px;pointer-events:none;
  background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 18" preserveAspectRatio="none"><path d="M0 18 C 20 4, 60 4, 80 18 Z" fill="%23FFF8F3"/></svg>') repeat-x;
  background-size:80px 18px;
}
.sec-blue{ /* 淡青面＝制度・手続きの色（DESIGN.md: 紺=情報の領分） */
  background:var(--c-info);position:relative;
}
.sec-blue::before{
  content:"";position:absolute;top:-17px;left:0;right:0;height:18px;pointer-events:none;
  background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 18" preserveAspectRatio="none"><path d="M0 18 C 20 4, 60 4, 80 18 Z" fill="%23E5F5FF"/></svg>') repeat-x;
  background-size:80px 18px;
}
.awning{ /* テントの庇: 「スーパーの中の教室」を文字ゼロで伝えるブランドモチーフ（3箇所限定）
   上9pxの帯＋下辺スカラップ（マスク2層のunion） */
  height:18px;
  background:repeating-linear-gradient(90deg,var(--c-accent) 0 26px,#FFE3D2 26px 52px);
  filter:drop-shadow(0 2px 0 rgba(160,60,20,.12));
  -webkit-mask:linear-gradient(#000,#000) 0 0/100% 9px no-repeat,
               radial-gradient(9px at 13px 9px,#000 8.5px,#0000 9px) 0 0/26px 18px repeat-x;
          mask:linear-gradient(#000,#000) 0 0/100% 9px no-repeat,
               radial-gradient(9px at 13px 9px,#000 8.5px,#0000 9px) 0 0/26px 18px repeat-x;
}
.awning-in{margin:-44px -22px 30px}

/* ヘッダー（実ロゴで信頼の土台） */
header{padding:12px 18px;background:var(--c-white);border-bottom:1px solid var(--c-line);display:flex;justify-content:center}
header img{height:34px;width:auto}

/* --- CTA --- */
.cta-btn{
  display:block;width:100%;max-width:420px;margin:0 auto;
  background:var(--c-cta);color:var(--c-ink);
  font-family:var(--font-disp);font-weight:900;letter-spacing:-.01em;
  font-size:22px;text-align:center;text-decoration:none;
  padding:20px 52px;border-radius:999px;border:none;cursor:pointer;
  position:relative;box-shadow:var(--pop-cta);
}
.cta-btn::after{ /* 白丸に紺矢印（記号のみ） */
  content:"";position:absolute;right:14px;top:50%;translate:0 -50%;
  width:32px;height:32px;
  background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="12" r="12" fill="white"/><path d="M10 7l5 5-5 5" stroke="%23004AAD" stroke-width="2.6" fill="none" stroke-linecap="round"/></svg>') center/contain no-repeat;
}
.cta-btn:active{transform:translateY(3px);box-shadow:0 2px 0 #d9a020}
.cta-sub{
  text-align:center;font-size:15.5px;color:var(--c-muted);margin-top:10px;
  display:flex;justify-content:center;gap:12px;flex-wrap:wrap;
}
.cta-sub span::before{content:"✔ ";color:var(--c-accent)}

#stickyCta{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  background:rgba(255,255,255,.96);border-top:1px solid var(--c-line);
  transform:translateY(110%);transition:transform .3s;
}
#stickyCta .sticky-inner{padding:8px 16px calc(8px + env(safe-area-inset-bottom))}
#stickyCta.show{transform:none}
#stickyCta .cta-btn{font-size:18px;padding:14px 46px}
#stickyCta .cta-btn::after{width:26px;height:26px;right:12px}

/* --- §1 FV（オファー＋検索を統合） --- */
.fv{padding:26px 22px 40px;background:linear-gradient(180deg,#FFF3EA,var(--c-white))}
.fv .eyebrow{ /* 紺の座布団ピル＝「どこにあるか」の窓口色 */
  display:table;margin:0 auto 14px;background:var(--c-accent2);color:#fff;
  font-family:var(--font-disp);font-weight:900;font-size:15.5px;
  padding:8px 20px;border-radius:999px;letter-spacing:.02em;
}
.fv h1{
  font-family:var(--font-disp);font-weight:900;letter-spacing:-.015em;
  font-size:22px;line-height:1.6;text-align:center;margin-bottom:12px;
}
.fv h1 .big{ /* 主役を別階級のサイズに。34px超太字×#FFE7A8マーカー=4.35:1(AA大テキスト充足) */
  display:block;width:fit-content;margin:6px auto 0;
  font-size:clamp(34px,9.6vw,40px);line-height:1.35;
  color:var(--c-accent-text);
  background:linear-gradient(transparent 70%,#FFE7A8 70%);
}
.kenten{ /* 圏点（ゴマ点）。テキスト追加ゼロで紙広告の熱 */
  -webkit-text-emphasis:filled sesame var(--c-accent-text);
  text-emphasis:filled sesame var(--c-accent-text);
}
.burst{ /* 朝市バースト: 彩度を落とした集中線。静的CSSのみ(reduced-motion無風) */
  background:
    radial-gradient(82% 70% at 50% 54%, var(--c-white) 59%, transparent 60%),
    repeating-conic-gradient(from -6deg at 50% 46%, #FFF3EA 0 7deg, #FFE9DB 7deg 10deg);
  border-radius:var(--r-lg);padding:20px 14px 14px;margin:0 -6px 16px;text-align:center;
}
.offer-band{ /* 両垂れリボン */
  position:relative;display:table;margin:0 auto;z-index:1;
  background:var(--c-accent-deep);color:#fff;
  font-family:var(--font-disp);font-weight:900;font-size:23px;
  padding:12px 30px;letter-spacing:.06em;
}
.offer-band::before,.offer-band::after{
  content:"";position:absolute;top:9px;width:36px;height:100%;background:var(--c-accent-text);z-index:-1;
}
.offer-band::before{left:-24px;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,14px 50%)}
.offer-band::after{right:-24px;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 50%,100% 100%,0 100%)}
.offer-sub{font-size:16px;font-weight:700;margin-top:10px}
.offer-sub .zero{
  font-family:var(--font-disp);font-weight:900;font-size:1.9em;
  color:var(--c-accent-text);letter-spacing:-.03em;vertical-align:-2px;
}
/* FVは「スーパーの中の教室」が一目で分かる外観写真（差別化の視覚化・レビューC-2）。
   写真全体をそのまま出す（クロップなし・4:3）。
   ※写真内に店頭掲示「日本一敷居が低い」が写る。最上級表示なので、根拠資料（出典・調査年）の
     有無を本部に確認すること（本部確認リストの食い違い⑤）。無い場合はこの掲示が写らない
     素材（「店頭＋人」の実写真）への差し替えが必要 */
.fv-photo{ /* ポラロイド風の極太白フレーム（信頼優先で水平維持）。
   2026-08-18 判断: クロップはやめて写真全体を出す。上下左右どこも切れない。
   （店頭掲示「日本一敷居が低い」が写るが、現行 v1/v2 でも同じ文言を大きく掲載しているため
     新たな表現の追加ではない。根拠資料の有無は本部確認リストの食い違い⑤で確認中） */
  display:block;width:100%;height:auto;margin-bottom:8px;
  border:8px solid var(--c-white);border-radius:16px;
  box-shadow:0 4px 0 var(--c-line), 0 10px 24px rgba(160,110,70,.14);
}
.fv-caption{font-family:var(--font-hand);font-size:17px;color:var(--c-muted);text-align:center;margin-bottom:16px}
.fv-badges{display:flex;justify-content:center;gap:8px;margin-top:16px;flex-wrap:wrap}
.fv-badges div{ /* スタンプ二重枠 */
  background:var(--c-white);color:var(--c-accent2);font-size:15.5px;font-weight:700;
  border:2px solid var(--c-accent2);outline:2px solid var(--c-white);outline-offset:-5px;
  padding:9px 15px;border-radius:999px;
}

/* --- 検索（FV内） --- */
.zip-block{ /* 紺の窓口カウンター */
  background:var(--c-white);border:3px solid var(--c-accent2);border-radius:var(--r-lg);
  box-shadow:0 4px 0 rgba(0,74,173,.18);padding:18px 16px;margin:20px 0 22px;
}
.zip-block .zb-title{
  font-family:var(--font-disp);font-weight:900;font-size:18px;
  color:var(--c-accent2);text-align:center;margin-bottom:10px;
}
.search-box{display:flex;gap:10px}
.search-box input{
  flex:1;font-size:20px;padding:14px;border:2px solid var(--c-accent2);
  border-radius:10px;min-width:0;background:#fff;
}
.search-box button{
  background:var(--c-accent2);color:#fff;font-size:17px;font-weight:700;
  border:none;border-radius:10px;padding:0 22px;cursor:pointer;white-space:nowrap;
}
.search-box button:active{opacity:.75}
.search-box button:disabled{opacity:.6}
.search-box input:focus{outline:none;box-shadow:0 0 0 4px rgba(0,74,173,.15)}
.search-box input::placeholder{font-size:16px}
.search-box button{font-family:var(--font-disp);font-weight:900}
#searchResult{margin-top:12px}
#searchResult .hit{
  background:var(--c-white);border-radius:12px;padding:13px 16px;margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  border:2px solid #cfe6f7;box-shadow:0 3px 0 #cfe6f7;font-size:16.5px;line-height:1.5;
}
#searchResult .hit .store{display:block;font-size:15.5px;color:var(--c-muted)}
#searchResult .dist{color:var(--c-accent2);font-weight:700;white-space:nowrap}
#searchResult .cta-btn{margin-top:12px;font-size:18px;padding:15px 48px 15px 20px}

/* --- 共感 --- */
.worries li{ /* つぶやきのふきだし */
  list-style:none;background:var(--c-white);border:var(--bd);
  border-radius:18px 18px 18px 4px;box-shadow:var(--pop);
  padding:14px 16px 14px 44px;margin-bottom:14px;position:relative;font-size:17px;
}
.worries li::before{
  content:"";position:absolute;left:14px;top:19px;width:18px;height:18px;border-radius:50%;
  background:var(--c-accent);
  -webkit-mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z"/></svg>') center/contain no-repeat;
}

/* --- できるようになること --- */
.can-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.can{
  background:var(--c-white);border:var(--bd);border-radius:var(--r-md);
  padding:16px 14px;box-shadow:var(--pop);text-align:center;
}
.can b{display:block;font-size:16.5px;line-height:1.55;margin-bottom:10px}
.can span{
  display:inline-block;background:var(--c-bg);color:var(--c-accent-text);font-size:15.5px;
  font-weight:700;border-radius:8px;padding:2px 9px;
}

/* --- 理由 --- */
.reason{margin-bottom:26px}
.reason .num{
  display:inline-block;background:var(--c-accent-deep);color:#fff;
  font-family:var(--font-disp);font-weight:900;
  width:38px;height:38px;border-radius:50%;text-align:center;line-height:38px;
  font-size:20px;flex:none;box-shadow:0 2px 0 rgba(160,60,20,.35);
}
.reason h3{ /* 座布団帯 */
  font-family:var(--font-disp);font-weight:900;letter-spacing:-.015em;
  background:var(--c-bg);border-left:6px solid var(--c-accent);
  border-radius:0 12px 12px 0;padding:9px 14px 9px 10px;
  font-size:20px;display:flex;align-items:center;gap:10px;margin-bottom:10px;line-height:1.5;
}
.reason p{font-size:16.5px}
.guarantee-box{ /* クリーム地＋検印。理由③の中に入るため賞状の二重枠は外している
   （枠の中に枠が重なると、シニアには「読む範囲」が分かりにくくなる） */
  position:relative;border-radius:4px;padding:18px 4px 16px;
  background:#FFFBF1;font-size:16px;margin:16px 0 6px;
}
.guarantee-box::before{ /* 検印の下に本文が潜り込まないよう1行目末尾を退避させるスペーサー */
  content:"";float:right;width:36px;height:24px;
}
.guarantee-box::after{ /* 検印（✔二重リング・図形のみ）。到達時に1回だけ捺す */
  content:"";position:absolute;top:-18px;right:-8px;width:56px;height:56px;
  opacity:0;transform:rotate(-8deg);pointer-events:none;
  background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><circle cx="32" cy="32" r="29" fill="none" stroke="%23C15020" stroke-width="3"/><circle cx="32" cy="32" r="23" fill="none" stroke="%23C15020" stroke-width="1.8"/><path d="M22 33 l7 7 l14 -16" fill="none" stroke="%23C15020" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat;
}
.guarantee-box.stamped::after{opacity:.92}
@media (prefers-reduced-motion: no-preference){
  .guarantee-box.stamped::after{animation:stamp .45s cubic-bezier(.2,1.6,.4,1) both}
  @keyframes stamp{from{opacity:0;transform:rotate(-8deg) scale(1.7)}to{opacity:.92;transform:rotate(-8deg) scale(1)}}
}
@media (prefers-reduced-motion: reduce){
  .guarantee-box::after{opacity:.92} /* 動きなしで常時表示 */
}
.guarantee-box .small{font-size:15.5px;color:var(--c-muted);display:block;margin-top:8px}

/* --- 声 --- */
.voice{
  position:relative;background:var(--c-white);border-radius:var(--r-lg);border:var(--bd);
  box-shadow:var(--pop);padding:20px 18px 16px;margin-bottom:24px;font-size:16.5px;
}
.voice::after{ /* ふきだしの尻尾 */
  content:"";position:absolute;bottom:-13px;right:44px;
  border:14px solid transparent;border-top-color:var(--c-white);border-bottom:0;
  filter:drop-shadow(0 3px 0 var(--c-line));
}
.voice .who{font-size:15.5px;color:var(--c-muted);margin-top:10px;text-align:right}
.voice .em{background:linear-gradient(transparent 62%,#FFE7A8 62%);font-weight:700}

/* --- 料金 --- */
table{ /* 値札カード */
  width:100%;border-collapse:separate;border-spacing:0;margin:14px 0;
  background:var(--c-white);border:var(--bd);border-radius:var(--r-md);overflow:hidden;
  box-shadow:var(--pop);
}
th,td{padding:12px 10px;text-align:center;font-size:17px;border:none}
th{background:var(--c-accent-deep);color:#fff;font-family:var(--font-disp);font-weight:900;font-size:16px}
tr+tr td{border-top:1.5px solid var(--c-line)}
th+th,td+td{border-left:1.5px solid var(--c-line)}
table tr:nth-child(2) td{background:#FFF3EA} /* 入口プラン(月4回)の座布団 */
td .price{font-family:var(--font-disp);font-weight:900;font-size:24px;letter-spacing:-.03em}
.price-note{font-size:15.5px;color:var(--c-muted);line-height:1.8}
.passport{
  background:var(--c-info);border:3px solid var(--c-accent2);border-radius:var(--r-lg);
  padding:18px;margin-top:22px;text-align:center;
}
.passport h3{font-family:var(--font-disp);font-weight:900;color:var(--c-accent2);font-size:20px;margin-bottom:8px}
.passport .hero-price{
  font-family:var(--font-disp);font-weight:900;letter-spacing:-.03em;
  font-size:clamp(38px,11vw,46px);line-height:1.25;color:var(--c-accent2);
}
.campaign{ /* 4大0円キャンペーンの引換券（両端パンチ穴） */
  position:relative;border:2px dashed var(--c-accent-deep);border-radius:var(--r-md);
  padding:20px 22px 18px;margin-top:34px;text-align:center;font-size:16px;background:#FFFBF1;
}
.campaign::before,.campaign::after{
  content:"";position:absolute;top:50%;translate:0 -50%;width:18px;height:18px;border-radius:50%;
  background:var(--c-white);border:2px dashed var(--c-accent-deep);
}
.campaign::before{left:-11px}
.campaign::after{right:-11px}
.cp-lead{ /* 期限・定員（打消し表示ではなく訴求の一部として近接配置） */
  display:inline-block;background:var(--c-accent-deep);color:#fff;
  font-family:var(--font-disp);font-weight:900;font-size:17px;
  border-radius:999px;padding:7px 20px;margin-bottom:14px;
}
.cp-main{font-family:var(--font-disp);font-weight:900;font-size:19px;line-height:1.4;margin-bottom:2px}
.cp-zero{display:block;font-size:clamp(36px,10vw,42px);color:var(--c-accent-text);letter-spacing:-.03em;line-height:1.25}
.cp-sub{font-size:16.5px;margin-bottom:12px}
.cp-note{font-size:15.5px;color:var(--c-muted);line-height:1.75;text-align:left;text-wrap:pretty}
/* 4大0円の内訳（通常価格→0円）。金額はすべて教室ページで確認済みの実価格 */
.cp-list{list-style:none;margin:14px 0 12px;text-align:left}
.cp-list li{
  display:flex;align-items:baseline;gap:8px;padding:9px 4px;font-size:16.5px;
  border-bottom:1px dashed var(--c-line);
}
.cp-list li:last-child{border-bottom:none}
.cp-item{flex:1;font-weight:700}
.cp-was{color:var(--c-muted);text-decoration:line-through;font-size:15.5px;white-space:nowrap;min-width:5.6em;text-align:right}
.cp-was.no-strike{text-decoration:none} /* 「実費」は価格ではないので取り消し線を引かない */
.cp-now{
  font-family:var(--font-disp);font-weight:900;font-size:21px;
  color:var(--c-accent-text);letter-spacing:-.02em;white-space:nowrap;min-width:3.4em;text-align:right;
}
/* FV: 夏の入会応援キャンペーン（紺地パネル）。
   料金の引換券が「内訳」なら、こちらは「結論」。FVで4大0円を一撃で伝える。
   期限を過ぎたら cp-only ごと消える（外し忘れ防止） */
.cp-hero{
  position:relative;margin:22px -4px 0;border-radius:18px;overflow:hidden;
  background:#0E3A6B;box-shadow:0 6px 0 rgba(0,0,0,.18);
}
.cp-hero::before{ /* 紺地の集中線（白5.5%・柄として知覚される最小限） */
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-conic-gradient(from -6deg at 50% 40%,rgba(255,255,255,.055) 0 7deg,transparent 7deg 14deg);
}
.cp-hero-top{height:10px;background:repeating-linear-gradient(90deg,var(--c-cta) 0 20px,#E7A82C 20px 40px)}
.cp-hero-body{position:relative;padding:20px 18px 22px;text-align:center;color:#fff}
.cp-hero-label{
  display:table;margin:0 auto;border:2px solid var(--c-cta);color:var(--c-cta);
  font-family:var(--font-disp);font-weight:900;font-size:15.5px;letter-spacing:.16em;
  padding:5px 18px;border-radius:4px;
}
.cp-hero-items{font-family:var(--font-disp);font-weight:900;font-size:19px;line-height:1.55;margin-top:16px;letter-spacing:-.01em}
.cp-hero-zero{ /* 320〜520pxのどこでも1行に収まるよう vw 追従（上限はデザイン値の56/72px） */
  font-family:var(--font-disp);font-weight:900;
  font-size:clamp(38px,11.2vw,56px);line-height:1.05;letter-spacing:-.04em;
  color:var(--c-cta);margin-top:6px;text-shadow:0 4px 0 rgba(0,0,0,.25);
}
.cp-hero-zero .num{font-size:clamp(48px,14.4vw,72px)}
.cp-hero-lead{font-size:16.5px;line-height:1.8;margin-top:14px;color:#E9F1FA;text-wrap:pretty}
.cp-hero-lead b{color:#fff}
.cp-hero-lead .was{text-decoration:line-through}
/* 取り消し価格の内訳。合計の根拠を打消しでなく本文の直下に置く（景表法の二重価格表示） */
.cp-hero-note{font-size:15.5px;line-height:1.75;margin-top:8px;color:#B9CDE4;text-wrap:pretty}
.cp-hero-foot{position:relative;background:#FFF3EA;padding:12px 16px;text-align:center;border-top:3px solid var(--c-cta)}
.cp-hero-foot p{font-family:var(--font-disp);font-weight:900;font-size:17px;color:var(--c-accent-text);line-height:1.4}
.cp-hero-foot .num{font-size:34px;letter-spacing:-.03em;vertical-align:-3px;margin:0 3px}
/* 追従CTAの紺キャンペーンバー（FVパネルと同じ紺＋金で、同じ約束だと分かるように） */
#stickyCta .cp-bar{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:#0E3A6B;color:#fff;padding:7px 12px;border-bottom:3px solid var(--c-cta);
}
#stickyCta .cp-bar .label{font-family:var(--font-disp);font-weight:900;font-size:14px;letter-spacing:.12em;color:var(--c-cta);white-space:nowrap}
#stickyCta .cp-bar .sep{width:1px;height:18px;background:rgba(255,255,255,.35);flex:none}
#stickyCta .cp-bar .days{font-family:var(--font-disp);font-weight:900;font-size:15.5px;line-height:1.3;white-space:nowrap}
#stickyCta .cp-bar .days .num{font-size:28px;color:var(--c-cta);letter-spacing:-.03em;vertical-align:-2px;margin:0 3px}
/* 期限を過ぎたらキャンペーン表示を全部消す（外し忘れ防止・景表法の有利誤認対策） */
body.cp-over .cp-only{display:none !important}

/* --- 流れ --- */
.step{display:flex;gap:14px;margin-bottom:24px;position:relative}
.step:not(:last-of-type)::before{ /* ①②③を一本道でつなぐ点線 */
  content:"";position:absolute;left:21px;top:50px;bottom:-28px;
  border-left:3px dotted rgba(0,74,173,.3);
}
.step .n{
  flex:none;width:44px;height:44px;border-radius:50%;background:var(--c-accent-deep);
  color:#fff;font-family:var(--font-disp);font-weight:900;font-size:22px;
  display:grid;place-items:center;position:relative;z-index:1;
  box-shadow:0 2px 0 rgba(160,60,20,.35);
}
.step h3{font-family:var(--font-disp);font-weight:900;letter-spacing:-.015em;font-size:20px;margin-bottom:4px}
.step p{font-size:16px}
.em{background:linear-gradient(transparent 62%,#FFE7A8 62%);font-weight:700}

/* --- 写真 --- */
.photos{display:grid;grid-template-columns:1fr 1fr;gap:26px 12px}
.photos figure,.reason-photo,.work-photo{ /* アルバムに貼った写真（テープ留め・傾きは信頼優先でなし） */
  position:relative;background:var(--c-white);padding:8px 8px 4px;border-radius:6px;
  box-shadow:0 3px 0 var(--c-line),0 8px 18px rgba(160,110,70,.12);
}
.photos figure::before,.reason-photo::before,.work-photo::before{ /* マスキングテープ（#E77C50半透明=非テキスト装飾） */
  content:"";position:absolute;top:-10px;left:50%;translate:-50% 0;z-index:1;
  width:86px;height:22px;background:rgba(231,124,80,.4);
  transform:rotate(-2deg);border-radius:2px;
}
.photos figure img,.reason-photo img,.work-photo img{width:100%;border-radius:4px;display:block;aspect-ratio:4/3;object-fit:cover;background:#eee;height:auto}
/* 先生画像は652×1024のプロフィールカード合成画像。3/4クロップだと下端の教室名帯が文字の途中で切れるため原寸比で全表示（応急）。恒久対応は文字焼き込みの無い素の写真への差し替え（素材依頼済み） */
.photos figure.tall img{aspect-ratio:652/1024}
.photos figcaption,.reason-photo figcaption,.work-photo figcaption{font-family:var(--font-hand);font-size:17px;color:var(--c-muted);margin-top:4px;padding:0 4px 6px;text-align:center;line-height:1.5}
/* v1/v2 の合成カードから切り出した写真（2026-08-18 追加）。
   素材の実寸が 162〜300px しかないため、表示幅を素材幅以下に抑えて拡大ボケを避ける。
   せいさんから合成前の元データが届いたら、この max-width の制約は外せる */
.photos figure.p34 img{aspect-ratio:3/4}
.reason-photo{margin:16px auto 0;max-width:260px}   /* 素材 268px 幅 */
.reason-photo img{aspect-ratio:3/4}
.work-photo{margin:18px auto 0;max-width:162px}     /* 素材 162px 幅ちょうど（拡大しない上限） */
.work-photo img{aspect-ratio:3/4}

/* --- FAQ --- */
details{ /* 1問1カード */
  background:var(--c-white);border:var(--bd);border-radius:var(--r-md);
  box-shadow:0 3px 0 var(--c-line);margin-bottom:12px;padding:2px 14px;
}
details[open]{border-color:var(--c-accent)}
summary{
  font-family:var(--font-disp);font-weight:900;letter-spacing:-.01em;
  font-size:17px;padding:15px 44px 15px 44px;min-height:56px;cursor:pointer;
  position:relative;list-style:none;line-height:1.6;
}
summary::-webkit-details-marker{display:none}
summary::before{ /* Qの紺丸座布団 */
  content:"Q";position:absolute;left:2px;top:13px;width:32px;height:32px;
  border-radius:50%;background:var(--c-accent2);color:#fff;
  text-align:center;line-height:32px;font-size:17px;
}
summary::after{
  content:"＋";position:absolute;right:2px;top:50%;transform:translateY(-50%);
  width:30px;height:30px;line-height:30px;text-align:center;font-size:20px;font-weight:700;
  color:var(--c-accent-text);background:var(--c-bg);border:1px solid var(--c-line);border-radius:50%;
}
details[open] summary::after{content:"－"}
details .a{
  background:var(--c-info);border-radius:var(--r-sm);
  padding:14px 14px 14px 48px;margin:0 2px 14px;font-size:16px;position:relative;
}
details .a::before{ /* Aの白丸バッジ（Qの紺と対・Q丸と縦整列） */
  content:"A";position:absolute;left:2px;top:12px;width:30px;height:30px;
  border-radius:50%;background:var(--c-white);border:2px solid var(--c-accent-deep);
  color:var(--c-accent-text);font-family:var(--font-disp);font-weight:900;
  text-align:center;line-height:26px;font-size:16px;
}

/* --- フォーム --- */
.form-sec{ /* ゴールは最暖面で受ける */
  background:#FFF3EA;position:relative;
}
.form-sec::before{
  content:"";position:absolute;top:-17px;left:0;right:0;height:18px;pointer-events:none;
  background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 18" preserveAspectRatio="none"><path d="M0 18 C 20 4, 60 4, 80 18 Z" fill="%23FFF3EA"/></svg>') repeat-x;
  background-size:80px 18px;
}
.form-card{ /* 1枚の申込書 */
  background:var(--c-white);border:3px solid var(--c-accent);
  border-radius:var(--r-lg);padding:22px 16px 20px;box-shadow:var(--pop);
}
.field{margin-bottom:20px}
.field label{display:block;font-weight:700;font-size:17px;margin-bottom:6px}
.field label .fnum{
  display:inline-block;background:var(--c-accent-deep);color:#fff;border-radius:50%;
  font-family:var(--font-disp);font-weight:900;
  width:28px;height:28px;text-align:center;line-height:28px;font-size:16px;margin-right:8px;
}
.field label .req{
  background:var(--c-accent-deep);color:#fff;font-size:15.5px;border-radius:6px;padding:2px 8px;margin-left:8px;vertical-align:2px;
}
.field .hint{font-size:15.5px;color:var(--c-muted);margin-bottom:8px;line-height:1.7}
.field input{
  width:100%;font-size:20px;padding:16px;min-height:58px;
  border:3px solid #a88d76;border-radius:12px;background:var(--c-white);
}
.field input:focus{outline:none;border-color:var(--c-accent-deep);box-shadow:0 0 0 4px var(--c-accent-ring)}
.privacy{font-size:15.5px;color:var(--c-muted);text-align:center;margin:18px 0 22px;line-height:1.7}
.flow-remind{
  background:var(--c-info);border-radius:12px;padding:12px 14px;font-size:15.5px;
  text-align:center;margin-bottom:10px;color:#1d3f5c;
}
.form-ease{font-size:15.5px;color:var(--c-muted);text-align:center;margin-bottom:18px}
.form-deadline{ /* 期限＝無料体験申込の期限なので、決断の場所にも置く */
  display:table;margin:-6px auto 12px;background:var(--c-accent-deep);color:#fff;
  font-family:var(--font-disp);font-weight:900;font-size:16px;
  border-radius:999px;padding:6px 18px;
}

footer{padding:34px 22px calc(44px + env(safe-area-inset-bottom));background:var(--c-ink);color:#e8ddd6;font-size:15.5px;line-height:2.1;text-align:center}
footer a{color:#ffd9a8}
.privacy a,footer a,.guarantee-box .small a{display:inline-block;padding:8px 6px;margin:-4px 0}
.privacy a,.guarantee-box .small a{color:var(--c-accent2)}
/* フッターのロゴは撤去（ヘッダーと重複するため）。運営情報のみのシンプルな締め */

.worries li:last-child,.reason:last-of-type,.step:last-of-type,.voice:last-of-type{margin-bottom:0}
.voice .who,.can b{text-wrap:balance}
.step p,.worries li,details .a,.price-note{text-wrap:pretty}
td .price{white-space:nowrap}

/* 狭幅端末（〜399px）: できることカードを1カラムに */
@media(max-width:399px){
  .can-grid{grid-template-columns:1fr}
}
/* 〜430px: 期限ピールは15.5pxに落とし、折り返し時も座布団として成立させる */
@media(max-width:430px){
  .cp-lead,.form-deadline{
    font-size:15.5px;letter-spacing:-.01em;padding:6px 14px;
    border-radius:16px;white-space:normal;line-height:1.55;
  }
  #stickyCta .cp-bar{gap:8px;padding:6px 8px}
  #stickyCta .cp-bar .label{font-size:13px;letter-spacing:.06em}
  #stickyCta .cp-bar .days{font-size:14.5px}
  #stickyCta .cp-bar .days .num{font-size:24px}
}
/* 320px級: 検索ボタンを下段全幅に・料金表のパディングを詰める */
@media(max-width:374px){
  .search-box{flex-wrap:wrap}
  .search-box button{flex:1 1 100%;min-height:48px;padding:12px}
  th,td{padding:12px 5px}
}

/* マーカー走査: reduced-motionでない環境のみbodyにink-readyが付き、到達時に左→右へ引かれる */
body.ink-ready .em{background:linear-gradient(#FFE7A8,#FFE7A8) 0 62%/0% 38% no-repeat}
body.ink-ready .em.ink{background-size:100% 38%;transition:background-size .8s ease}

.demo-note{background:#333;color:#ffd;font-size:12px;padding:6px 10px;text-align:center;position:sticky;top:0;z-index:99}

/* ============================================================
   CF7フォーム（.kef--simple）の見た目は public/css/lp3-form.css へ移した
   ------------------------------------------------------------
   2026-09-07 に切り出した。**中身は変えていない。**

   v3 / v4 は lp3.css → lp3-form.css の順で両方読む（inc/lp3.php）。
   節はもともとこのファイルの末尾にあったので、カスケードは変わらない。

   ⚠ フォームの見た目を直すときは lp3-form.css を直すこと。

   なお v1 / v2 への埋め込み（`[karun_lp_form]`）はこの見た目を使わない。
   2026-09-09 から `/lp-form/` のフォーム（lp-form.css）をそのまま貼っている。
   ============================================================ */

/* ── VK ExUnit の「トップへ戻る」ボタンを広告LPでは出さない（2026-09-10） ──
   右下固定で、こちらの追従CTAとトーストに重なる（実機で確認）。
   LPには自前の追従CTAがあり、そちらが常に画面下にいるので、
   同じ場所にもう1つ固定ボタンを置く理由がない。
   ⚠ プラグインを止めるのではなく、このLPでだけ隠す。他のページでは今までどおり出る。
   ⚠ v3 / v4 / v5 すべてに効く。追従CTAはどの版にもあり、重なり方も同じため。 */
body.lp3 #page_top{display:none !important}
