/* ============================================================ Lumière token aliases (resolve to project tokens) */
:root {
  --ocean-navy: #173B6E;
  --navy-deep: #0D2A55;
  --cyan-400: #38BDF8;
  --cyan-500: #0EA5E9;
  --cyan-600: #0284C7;
  --cyan-700: #0369A1;
  --sky-50: #F2F7FC;
  --sky-100: #E3ECF5;
  --sky-300: #B9D0E6;
  --sky-white: #EAF4FB;
  --bg-soft: #EAF4FB;
  --bg-page: #FFFFFF;
  --border-soft: var(--line);
  --border-strong: var(--line-strong);
  --fg-on-deep: #FFFFFF;
  --radius-xl: 24px;
  --shadow-soft: var(--shadow-md);
  --font-jp: var(--font-body);
  --w-black: 900;
  --w-bold: 700;
  --w-medium: 500;
  --w-regular: 400;
}

/* ============================================================
   Lumière Design System — brand skin for SEO卒業診断 LP
   Ocean Navy #1B3A6B (60) / Sky White #EAF4FB (30) / Cyan #0EA5E9 (10)
   Headings: Noto Sans JP Black 900 ／ EN labels: Playfair Display italic
   Loads AFTER kit.css / lp.css and overrides tokens + key components.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Playfair+Display:ital,wght@1,400;1,500&display=swap');

.lp-root, body.tsumugu {
  /* fonts */
  --font-heading: 'Noto Sans JP', sans-serif;
  --font-body: 'Noto Sans JP', sans-serif;
  --font-display: 'Playfair Display', serif;

  /* surfaces */
  --ivory: #FFFFFF;
  --ivory-deep: #EAF4FB;
  --cream-mid: #EAF4FB;
  --bg-inverse: #142C55;

  /* navy scale mapped onto old bluegrey vars */
  --bluegrey: #1B3A6B;
  --bluegrey-700: #142C52;
  --bluegrey-500: #56729B;
  --bluegrey-300: #A9C4E0;
  --bluegrey-100: #D9E9F7;
  --bluegrey-50: #EAF4FB;

  /* ink */
  --charcoal: #152744;
  --charcoal-soft: #33415C;
  --ink-muted: #56688A;
  --ink-soft: #8CA0BC;

  /* accent (frames/headings = navy) */
  --accent-navy: #1B3A6B;
  --accent-navy-700: #142C52;
  --accent-navy-100: #D9ECFB;
  --accent-cyan: #0EA5E9;
  --accent-cyan-hover: #0284C7;

  /* lines */
  --line: #D8E8F5;
  --line-strong: #B9D4EA;

  /* radii — soft but confident */
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-xl: 28px;
}
body.tsumugu { background: #FFFFFF; }
.tsumugu .header-glass { background: rgba(255,255,255,0.92); border-bottom: 1px solid var(--line); }

/* ============ TYPE: bigger & bolder ============ */
.lp-root h1, .lp-root h2, .lp-root h3, .lp-root .lp-why-h { font-family: var(--font-heading); }
.lp-sec-head h2 { font-size: clamp(30px, 3.4vw, 44px); font-weight: 900; letter-spacing: 0; line-height: 1.4; }
.lp-hero-h { font-weight: 900; }
.lp-why-h { font-size: clamp(28px, 3.2vw, 42px); font-weight: 900; }
.lp-sec-head p { font-size: 16px; line-height: 1.85; }
.lp-hero-sub { font-size: clamp(18px, 2.1vw, 23px); font-weight: 900; color: var(--charcoal); }
.lp-hero-lead { font-size: 16px; }
.lp-why-lead { font-size: clamp(18px, 1.9vw, 22px); font-weight: 700; }
.lp-plan-name { font-size: 27px; font-weight: 900; }
.lp-plan-tagline { font-size: 17px; font-weight: 700; }
.lp-plan-summary { font-size: 14.5px; }
.lp-plan-scope li, .lp-judge-t, .lp-plan-for li { font-size: 13.5px; }
.lp-deliver-item h3 { font-size: 16.5px; font-weight: 900; }
.lp-deliver-item p { font-size: 13.5px; }
.lp-resolve-head h3 { font-size: clamp(22px, 2.4vw, 30px); font-weight: 900; }
.lp-resolve-head p { font-size: 15px; }
.lp-krs-item strong { font-size: 17px; font-weight: 900; }
.lp-krs-item p { font-size: 13.5px; }
.lp-loop-step strong { font-size: 17px; font-weight: 900; }
.lp-loop-step p { font-size: 13px; }
.lp-diag-title { font-size: 18px; font-weight: 900; }
.lp-sc-item span { font-size: 14px; }
.lp-cost-opt { font-size: 14px; font-weight: 700; }
.lp-compare th, .lp-compare td { font-size: 14.5px; }
.lp-compare thead th { font-size: 16px; font-weight: 900; }
.kit-faq-qtext { font-size: 15.5px; font-weight: 700; }
.lp-final h2 { font-weight: 900; }

/* ============ BUTTONS: pill + arrow / cyan = primary CTA ============ */
.lp-root .btn {
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.lp-root .btn-ghost { border-radius: 999px; }
/* primary conversion CTAs → cyan */
.lp-hero-cta .btn,
.lp-form .btn,
.lp-cta-bar-btn,
.lp-final .btn,
.lp-card-cta .btn,
.lp-card-go {
  background: var(--accent-cyan) !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(14, 165, 233, 0.35);
}
.lp-hero-cta .btn:hover,
.lp-form .btn:hover,
.lp-cta-bar-btn:hover,
.lp-final .btn:hover,
.lp-card-cta .btn:hover,
.lp-card-go:hover {
  background: var(--accent-cyan-hover) !important;
  box-shadow: 0 6px 18px rgba(2, 132, 199, 0.45);
  transform: translateY(-1px);
}
.lp-final .btn-ghost { background: transparent !important; color: #fff !important; border-color: #fff !important; }
.lp-final .btn-ghost:hover { background: rgba(255,255,255,0.14) !important; }

/* スマホ: スクロールをなめらかに */
@media (max-width: 640px) {
  html { scroll-behavior: smooth; }
  body { -webkit-overflow-scrolling: touch; }
}
.kit-sticky-cta-inner { background: var(--accent-navy); border-radius: var(--radius-lg); padding: 7px 12px 7px 20px !important; gap: 12px !important; max-width: 820px !important; }
.lp-cta-bar-info strong { font-size: 16px; }
.lp-cta-bar-info span { font-size: 11.5px; color: var(--bluegrey-300); }

/* hero plan mini-cards on sky */
.lp-hero-plan { background: rgba(255,255,255,0.9); backdrop-filter: blur(4px); border-color: var(--line); }
.lp-hero-plan.featured { background: var(--accent-navy-100); border-color: var(--accent-navy); }
.lp-hero-plan-name { font-weight: 900; }

/* hero overlay: sky-white tint */
.lp-hero-bg::after {
  background: linear-gradient(90deg,
    rgba(255,255,255,0.97) 0%,
    rgba(234,244,251,0.90) 38%,
    rgba(234,244,251,0.45) 64%,
    rgba(234,244,251,0.06) 100%);
}
@media (max-width: 640px) {
  .lp-hero-bg::after {
    background: linear-gradient(180deg,
      rgba(255,255,255,0.97) 0%,
      rgba(234,244,251,0.92) 55%,
      rgba(234,244,251,0.82) 100%);
  }
  .lp-sec-head h2 { font-size: 24px; }
  .lp-why-h { font-size: 22px; }
  .lp-hero-h { font-size: 27px; }
  .lp-sc-item span, .lp-cost-opt { font-size: 13.5px; }
  .lp-compare th, .lp-compare td { font-size: 13px; }
  .lp-compare thead th { font-size: 14px; }
}


/* badges on dark navy plane → cyan accent */
.lp-krs-k { background: var(--accent-cyan); color: #fff; }
.lp-loop-step:last-of-type .lp-loop-n { color: var(--error); }


/* PC: no hero overlay — show the photo as-is */
@media (min-width: 641px) {
  .lp-hero-bg::after { display: none; }
}


/* ============================================================ WHY: break the monotony (PC) */
/* Oversized editorial numerals */
.lp-loop-n {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: 46px;
  line-height: 0.9;
  letter-spacing: 0;
  color: #B9D4EA;
  display: block;
  margin-bottom: 6px;
}
.lp-loop-step { position: relative; border: 0; background: #EAF4FB; border-radius: var(--radius-lg); padding: var(--space-5) var(--space-5) var(--space-6); }
.lp-loop-step strong { font-size: 18px; font-weight: 900; }

@media (min-width: 641px) {
  .lp-loop { align-items: flex-start; gap: var(--space-4); margin-bottom: calc(var(--space-8) + 60px); }
  .lp-loop-arrow { display: none; }
  /* stair-step descent = 固定費化への転落 */
  .lp-loop-step:nth-of-type(2) { transform: translateY(22px); }
  .lp-loop-step:nth-of-type(3) { transform: translateY(44px); }
  .lp-loop-step:nth-of-type(4) { transform: translateY(66px); }
}
/* climax card */
.lp-loop-step:last-of-type {
  background: var(--accent-navy);
  border: 0;
}
.lp-loop-step:last-of-type .lp-loop-n { color: #FF8A80; }
.lp-loop-step:last-of-type strong { color: #fff; }
.lp-loop-step:last-of-type p { color: #B9D4EA; }

/* Resolve plane: editorial watermark + italic labels */
.lp-resolve { position: relative; overflow: hidden; }
.lp-resolve::after {
  content: "Graduate";
  position: absolute; right: 28px; top: 8px;
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(48px, 7vw, 96px);
  color: rgba(255,255,255,0.07);
  pointer-events: none;
  white-space: nowrap;
}
.lp-resolve-head, .lp-krs { position: relative; z-index: 1; }
.lp-krs-k {
  background: none; padding: 0; border-radius: 0; margin-bottom: 4px;
  font-family: var(--font-display); font-style: italic; font-weight: 400;
  font-size: 24px; letter-spacing: 0.02em; color: #38BDF8;
}
.lp-krs-item { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); }

/* hero price: breathing room */
.lp-hero-plan-price { gap: 4px; }
.lp-hero-plan-price .tax { margin-left: 6px; }
.lp-hero-plan-price .from { margin-left: 3px; }
.lp-plan-price .tax { margin-left: 8px; }


/* ============================================================ Result card: clear verdict */
.lp-card-verdict { margin-bottom: var(--space-5); }
.lp-card-verdict .vlab {
  display: inline-block;
  font-size: 12.5px; font-weight: 900; letter-spacing: 0.08em;
  color: #fff; background: var(--accent-navy);
  border-radius: 6px; padding: 4px 10px; margin-bottom: 10px;
}
.lp-card-verdict .v { margin: 0 0 8px; font-size: 18px; font-weight: 900; line-height: 1.55; color: var(--charcoal); }
.tier-warn .lp-card-verdict .v { color: var(--warn); }
.tier-danger .lp-card-verdict .v { color: var(--error); }
.lp-card-verdict .a { margin: 0; font-size: 13.5px; line-height: 1.85; color: var(--charcoal-soft); }

/* ============================================================ 納品物: numbered editorial grid */
#deliver .lp-deliver { counter-reset: dnum; gap: var(--space-6) var(--space-6); }
#deliver .lp-deliver-item {
  background: transparent; border: 0; border-radius: 0;
  border-top: 2px solid var(--accent-navy);
  padding: var(--space-4) 2px 0;
}
#deliver .lp-deliver-item:hover { transform: none; box-shadow: none; border-color: var(--accent-navy); }
#deliver .lp-deliver-ico { display: none; }
#deliver .lp-deliver-item::before {
  counter-increment: dnum;
  content: "0" counter(dnum);
  display: block;
  font-family: var(--font-display); font-style: italic;
  font-size: 36px; line-height: 1; color: #B9D4EA;
  margin-bottom: 10px;
}
#deliver .lp-deliver-item h3 { font-size: 17px; font-weight: 900; margin: 0 0 6px; }
#deliver .lp-deliver-item p { display: block; font-size: 13.5px; line-height: 1.75; }

/* ============================================================ 対象範囲: sky plane + annotations */
@media (min-width: 641px) {
  .lp-scope { grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; }
}
.lp-scope-target {
  background: #EAF4FB; border: 0; border-radius: var(--radius-xl);
  padding: var(--space-7);
}
.lp-scope-h { font-size: 15px; font-weight: 900; color: var(--accent-navy); letter-spacing: 0.06em; }
.lp-scope-target ul { gap: 14px; }
.lp-scope-target li { font-size: 15px; font-weight: 700; color: var(--charcoal); }
.lp-scope-target li .m { color: var(--accent-cyan); }
.lp-scope-notes { padding-top: 0; }
.lp-scope-notes p { font-size: 12.5px; line-height: 1.9; }

/* ============================================================ SP: form rows always single column */
@media (max-width: 640px) {
  .lp-form-row.two { grid-template-columns: 1fr; gap: var(--space-4); }
  #deliver .lp-deliver { gap: var(--space-4) var(--space-5); }
  #deliver .lp-deliver-item::before { font-size: 28px; margin-bottom: 6px; }
  #deliver .lp-deliver-item h3 { font-size: 14.5px; }
  #deliver .lp-deliver-item p { display: none; }
  .lp-scope-target { padding: var(--space-5); }
  .lp-scope-target li { font-size: 13.5px; }
}


/* ============================================================ ORGANIC PLANES — break the flat band monotony (PC) */
@media (min-width: 641px) {
  /* curved top edges (cropped organic planes) */
  .lp-selfcheck, #plans, #deliver, .lp-apply, .lp-belief, .lp-final { position: relative; }
  .lp-selfcheck::before, #plans::before, #deliver::before, .lp-apply::before, .lp-belief::before, .lp-final::before {
    content: ""; position: absolute; left: -6%; width: 112%; height: 104px; top: -52px;
    border-radius: 52% 48% 0 0 / 100% 88% 0 0;
    pointer-events: none;
  }
  .lp-selfcheck::before, #plans::before, #deliver::before, .lp-apply::before { background: #EAF4FB; }
  .lp-belief::before { background: var(--bg-inverse); }
  .lp-final::before { background: var(--accent-navy); border-radius: 48% 52% 0 0 / 92% 100% 0 0; }

  /* big cropped circles inside planes (large, few, bold) */
  .lp-selfcheck {
    background-color: #EAF4FB;
    background-image: radial-gradient(circle at 108% -6%, rgba(255,255,255,0.75) 0 300px, transparent 301px);
  }
  #plans.lp-sec-alt {
    background-color: #EAF4FB;
    background-image: radial-gradient(circle at -6% 110%, rgba(255,255,255,0.7) 0 340px, transparent 341px);
  }
  .lp-apply {
    background-color: #EAF4FB;
    background-image: radial-gradient(circle at 106% 8%, rgba(255,255,255,0.7) 0 280px, transparent 281px);
  }
  .lp-belief {
    background-image: radial-gradient(circle at 110% 115%, rgba(255,255,255,0.05) 0 380px, transparent 381px);
  }
  .lp-final {
    background-image: radial-gradient(circle at 50% 130%, rgba(255,255,255,0.07) 0 420px, transparent 421px);
  }

  /* plan cards: stepped offset, featured forward */
  .lp-plans { align-items: start; }
  #plan-full.lp-plan { transform: translateY(-22px); box-shadow: 0 24px 48px rgba(27,58,107,0.14); }

  /* diag tool card: lift off the sky plane */
  .lp-diag { box-shadow: 0 24px 48px rgba(27,58,107,0.10); border: 0; }
}


/* SP: result-card text readable */
@media (max-width: 640px) {
  .lp-card-comment { font-size: 13.5px; line-height: 1.8; }
  .lp-card-verdict .v { font-size: 17px; }
  .lp-card-verdict .a { font-size: 14px; line-height: 1.85; }
  .lp-card-realloc-chips .chip { font-size: 12.5px; }
}


/* ============================================================ FINAL CTA: sakura photo background */
.lp-final { position: relative; overflow: hidden; }
.lp-final::before { display: none; }
.lp-final-bg { position: absolute; inset: 0; z-index: 0; }
.lp-final-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; display: block; }
.lp-final-bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,44,85,0.86) 0%, rgba(27,58,107,0.78) 55%, rgba(20,44,85,0.88) 100%);
}
.lp-final { background: var(--accent-navy); background-image: none !important; }
.lp-final .kit-container { position: relative; z-index: 1; }
@media (max-width: 640px) {
  .lp-final-bg::after { background: linear-gradient(180deg, rgba(20,44,85,0.90) 0%, rgba(27,58,107,0.84) 100%); }
}


/* Consistency: final CTA keeps the same curved-edge language (navy cap over photo) */
@media (min-width: 641px) {
  .lp-final::before {
    display: block;
    content: ""; position: absolute; left: -6%; width: 112%; height: 104px; top: -52px;
    background: #142C55;
    border-radius: 48% 52% 0 0 / 92% 100% 0 0;
    z-index: 1;
  }
}


/* SP hero headline: extra break after そのSEO、 */
@media (max-width: 640px) {
  .lp-hero-h .mbr { display: block; }
}


/* Consistency: all plane circles anchored top-right, same scale */
@media (min-width: 641px) {
  .lp-selfcheck { background-image: radial-gradient(circle at 108% -8%, rgba(255,255,255,0.75) 0 300px, transparent 301px); }
  #plans.lp-sec-alt { background-image: radial-gradient(circle at 108% -8%, rgba(255,255,255,0.7) 0 300px, transparent 301px); }
  .lp-apply { background-image: radial-gradient(circle at 108% -8%, rgba(255,255,255,0.7) 0 300px, transparent 301px); }
  .lp-belief { background-image: radial-gradient(circle at 108% -8%, rgba(255,255,255,0.05) 0 340px, transparent 341px); }
}


/* SP Belief: bigger illustration + readable type, no dead space */
@media (max-width: 640px) {
  .lp-belief-grid { gap: var(--space-4); }
  .lp-belief-ill { order: -1; justify-content: center; }
  .lp-belief-disc { width: 172px; height: 172px; }
  .lp-belief-h { font-size: 29px; line-height: 1.4; margin: var(--space-3) 0 var(--space-4); text-align: left; }
  .lp-belief-body p { font-size: 14.5px; line-height: 1.95; margin-bottom: var(--space-4); }
  .lp-belief { padding: var(--space-9) 0; }
}


/* PC: no sticky CTA bar (SP only) */
@media (min-width: 641px) {
  .kit-sticky-cta { display: none !important; }
}


/* Plan cards: equal heights (buttons pinned to bottom) */
.lp-plans { align-items: stretch; }


/* SP: hero featured card badge — clear of content below */
@media (max-width: 640px) {
  .lp-hero-plan-badge { top: -10px; right: 10px; padding: 3px 10px; }
  .lp-hero-plan.featured { padding-top: 18px; }
}


/* SP: swipe dots — slimmer & keep clear of content */
@media (max-width: 640px) {
  .lp-swipe-dots { right: 4px; padding: 8px 5px; gap: 5px; background: rgba(46,53,64,0.5); }
  .lp-swipe-dots i { width: 5px; height: 5px; }
  .lp-swipe-dots i.on { height: 14px; width: 5px; }
  .lp-root main > section .kit-container { padding-right: 26px; }
}


/* Plan cards: bigger red taglines + perfectly aligned frames */
.lp-plan-tagline { font-size: 20px; font-weight: 900; color: var(--error); line-height: 1.5; }
.lp-plan-kicker { color: var(--charcoal-soft); }
@media (min-width: 641px) {
  #plan-full.lp-plan { transform: none; box-shadow: 0 18px 40px rgba(27,58,107,0.12); }
}
@media (max-width: 640px) {
  .lp-plan-tagline { font-size: 16.5px; }
}


/* ============================================================ Hero CTA block & header nav (PC feedback) */
.kit-nav a { font-size: 15px; font-weight: 700; }
@media (min-width: 641px) {
  .lp-hero-cta .btn { padding: 18px 42px; font-size: 17.5px; }
}
.lp-hero-assure { margin-top: 16px; gap: 22px; }
.lp-hero-assure li { font-size: 14px; font-weight: 700; }
.lp-hero-sub-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 14.5px; font-weight: 700; }
@media (max-width: 640px) {
  .lp-hero-sub-link { display: none; }
}

/* Curve caps: clean symmetric circular arcs */
@media (min-width: 641px) {
  .lp-selfcheck::before, #plans::before, .lp-apply::before, .lp-belief::before, .lp-final::before {
    border-radius: 50% 50% 0 0 / 100% 100% 0 0;
    left: -10%; width: 120%;
  }
}


/* SP hero: white background, no lead paragraph (readability) */
@media (max-width: 640px) {
  .lp-hero-lead { display: none; }
  .lp-hero-bg { display: none; }
  .lp-hero { background: #FFFFFF; }
}


/* PC hero headline: white text over photo */
@media (min-width: 641px) {
  .lp-hero-h { color: #FFFFFF; text-shadow: 0 2px 22px rgba(27,58,107,0.5), 0 1px 4px rgba(27,58,107,0.35); }
  .lp-hero-h .nav, .lp-hero-h .qmark { color: #FFFFFF; }
}


/* Hero headline: bigger, red highlight, no lead on PC */
.lp-hero-h .hl-red { color: #FF5A4E; }
@media (min-width: 641px) {
  .lp-hero-h { font-size: clamp(40px, 5vw, 64px); }
  .lp-hero-lead { display: none; }
}


/* Hero headline: even bigger ／ SP: drop assure row (sticky bar carries it) */
@media (min-width: 641px) {
  .lp-hero-h { font-size: clamp(44px, 5.4vw, 72px); line-height: 1.28; }
}
@media (max-width: 640px) {
  .lp-hero-h { font-size: 30px; }
  .lp-hero-assure { display: none; }
}
/* plan kicker: bigger now that PLAN labels are gone */
.lp-plan-kicker { font-size: 13.5px; font-weight: 700; letter-spacing: 0.04em; }


/* Hero service name — big brand label above headline */
.lp-hero-service {
  font-family: var(--font-heading);
  font-weight: 900;
  letter-spacing: 0.05em;
  margin-bottom: 14px;
}
@media (min-width: 641px) {
  .lp-hero-service { font-size: 32px; color: #FFFFFF; text-shadow: 0 2px 18px rgba(27,58,107,0.5); }
}
@media (max-width: 640px) {
  .lp-hero-service { font-size: 21px; color: var(--accent-navy); margin-bottom: 8px; }
}


/* No text shadows on hero (user pref) */
@media (min-width: 641px) {
  .lp-hero-h { text-shadow: none; }
  .lp-hero-service { text-shadow: none; }
}
@media (max-width: 640px) {
  .lp-hero-service { font-size: 24px; }
}


/* SEO卒業診断 = the biggest type on the page */
@media (min-width: 641px) {
  .lp-hero-service { font-size: clamp(56px, 6.6vw, 84px); line-height: 1.12; margin-bottom: 18px; letter-spacing: 0.02em; }
  .lp-hero-h { font-size: clamp(34px, 3.6vw, 46px); }
}
@media (max-width: 640px) {
  .lp-hero-service { font-size: 38px; line-height: 1.2; }
  .lp-hero-h { font-size: 24px; }
}


/* SP: long logo fits on one line */
@media (max-width: 640px) {
  .lum-logo .lum-sub { font-size: 15px; white-space: nowrap; }
}


/* Diag right card: compact initial state (no wasted space) */
@media (min-width: 641px) {
  .lp-card-initial { display: grid; grid-template-columns: 132px 1fr; gap: 20px; align-items: center; text-align: left; padding: var(--space-3) 0; }
  .lp-card-initial-ill { width: 132px; margin: 0; }
  .lp-card-initial h3 { font-size: 17px; margin: 0 0 8px; }
  .lp-card-initial p { font-size: 13.5px; line-height: 1.8; margin: 0; }
}


/* ============================================================ DIAG SECTION: bold navy plane, tool pops */
.lp-selfcheck { background-color: var(--accent-navy) !important; }
@media (min-width: 641px) {
  .lp-selfcheck { background-image: radial-gradient(circle at 108% -8%, rgba(255,255,255,0.07) 0 320px, transparent 321px) !important; }
  .lp-selfcheck::before { background: var(--accent-navy); }
}
.lp-selfcheck .lp-sec-head h2 { color: #FFFFFF; font-size: clamp(32px, 3.8vw, 48px); }
.lp-selfcheck .lp-sec-head p { color: #C9DCF0; }
.lp-diag { box-shadow: 0 30px 70px rgba(8, 22, 46, 0.4); border: 0; }
.lp-diag-head { background: #0F2347; }
.lp-diag-head .lp-diag-title::before { content: "無料"; display: inline-block; background: #FF5A4E; color: #fff; font-size: 13px; font-weight: 900; border-radius: 6px; padding: 2px 10px; margin-right: 10px; vertical-align: 3px; }
@media (max-width: 640px) {
  .lp-selfcheck .lp-sec-head h2 { font-size: 26px; }
}


/* Result CTA price line: emphasis big & red, supplement small on new line */
.lp-card-price { text-align: center; margin-top: 4px; }
.lp-card-price strong { display: block; font-size: 17.5px; font-weight: 900; color: var(--error); line-height: 1.5; }
.lp-card-price small { display: block; font-size: 11.5px; color: var(--ink-muted); margin-top: 2px; }


/* No white decorative circles (user pref) */
.lp-selfcheck, #plans.lp-sec-alt, .lp-apply, .lp-belief, .lp-final {
  background-image: none !important;
}

/* Mini-card 詳しく見る → Lumière circle-arrow button, bottom right */
.lp-hero-plan { position: relative; }
.lp-hero-plan-link {
  width: 100%;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  margin-top: auto;
}
.lp-hero-plan-link .arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--accent-navy); color: #fff;
  transition: background 200ms var(--ease-out), transform 200ms var(--ease-out);
}
.lp-hero-plan:hover .lp-hero-plan-link .arrow { background: var(--accent-cyan); transform: translateX(3px); }


/* Hero text: clear dark colors (white was washing out on the photo) */
@media (min-width: 641px) {
  .lp-hero-service { color: var(--accent-navy); }
  .lp-hero-h { color: var(--charcoal); }
  .lp-hero-h .nav, .lp-hero-h .qmark { color: var(--charcoal); }
}
/* header logo: never wrap */
.lum-logo .lum-sub { white-space: nowrap; }
@media (min-width: 641px) {
  .lum-logo .lum-sub { font-size: 17px; }
}


/* Service title removed — headline back to dominant size, plain & readable */
@media (min-width: 641px) {
  .lp-hero-h { font-size: clamp(40px, 4.6vw, 58px); line-height: 1.32; }
}
@media (max-width: 640px) {
  .lp-hero-h { font-size: 28px; }
}


/* Mini-card link: corner circle arrow only (no text row) */
@media (min-width: 641px) {
  .lp-hero-plan { padding-bottom: 60px; }
  .lp-hero-plan-link { position: absolute; right: 16px; bottom: 14px; width: auto; margin: 0; font-size: 0; gap: 0; }
  .lp-hero-plan-link .arrow { width: 38px; height: 38px; font-size: 16px; }
  .lp-hero-plan-tag { margin-bottom: 0; }
}
@media (max-width: 640px) {
  .lp-hero-plan-link { position: absolute; right: 12px; bottom: 10px; width: auto; margin: 0; font-size: 0; gap: 0; }
  .lp-hero-plan-link .arrow { width: 30px; height: 30px; font-size: 14px; }
  .lp-hero-plan { padding-bottom: 46px; }
}


/* Resolve block: light sky plane (dark navy was hard to read) */
.lp-resolve { background: #EAF4FB; }
.lp-resolve::after { color: rgba(27,58,107,0.08); }
.lp-resolve-head h3 { color: var(--charcoal); }
.lp-resolve-head p { color: var(--charcoal-soft); }
.lp-resolve-head p b { color: var(--accent-navy); }
.lp-krs-item { background: #FFFFFF; border: 1px solid var(--line); }
.lp-krs-item strong { color: var(--charcoal); }
.lp-krs-item p { color: var(--charcoal-soft); }


/* SP hero: photo band below text (readable white bg + imagery) */
.lp-hero-photo-sp { display: none; }
@media (max-width: 640px) {
  .lp-hero-photo-sp { display: block; height: 136px; border-radius: 14px; overflow: hidden; margin: 14px 0 2px; }
  .lp-hero-photo-sp img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 22%; display: block; }
  .lp-hero-sub { margin-bottom: var(--space-3); }
}


/* Apply section: drop the odd sky bulge over the navy section above */
.lp-apply::before { display: none !important; }

/* Apply aside: bigger, readable */
.lp-apply-aside .meta { font-size: 14px; font-weight: 700; }
.lp-apply-price { font-size: 46px; }
.lp-apply-aside .p-sm { font-size: 14.5px; line-height: 1.9; }
.lp-apply-steps li { font-size: 15px; line-height: 1.7; }
.lp-apply-steps li .sn { width: 28px; height: 28px; font-size: 13px; }
.lp-eligibility p { font-size: 13px; }
.lp-eligibility-h { font-size: 14px; }


/* SP: avoid arrow/dots overlap */
@media (max-width: 640px) {
  .lp-swipe-dots { right: 2px; padding: 6px 4px; background: rgba(46,53,64,0.35); }
  .lp-hero-plan-link { right: 10px; bottom: 8px; }
  .lp-hero-plan-link .arrow { width: 26px; height: 26px; font-size: 13px; }
  .lp-hero-plan { padding-bottom: 42px; }
}


/* Diag initial card (PC): big centered illustration, vertically centered */
@media (min-width: 641px) {
  .lp-diag-card .lp-card-inner:has(.lp-card-initial) { display: flex; flex-direction: column; justify-content: center; height: 100%; }
  .lp-card-initial { display: block; text-align: center; padding: var(--space-5) var(--space-3); }
  .lp-card-initial-ill { width: 230px; margin: 0 auto var(--space-5); }
  .lp-card-initial h3 { font-size: 19px; margin: 0 0 10px; }
  .lp-card-initial p { font-size: 14px; line-height: 1.9; max-width: 360px; margin: 0 auto; }
}


/* Resolve title: red emphasis */
.lp-resolve-head h3 { color: var(--error); }


/* Problem → Solution bridge */
.lp-why-bridge { display: flex; flex-direction: column; align-items: center; gap: 4px; margin: 0 0 var(--space-5); }
@media (min-width: 641px) {
  .lp-loop { margin-bottom: calc(var(--space-6) + 70px); }
  .lp-why-bridge { margin: 0 0 var(--space-5); }
}
.lp-why-bridge-label { font-family: var(--font-heading); font-weight: 900; font-size: 16px; color: var(--charcoal); }
.lp-why-bridge-arrow { font-size: 26px; font-weight: 900; color: var(--error); line-height: 1; }
.lp-resolve-badge {
  display: inline-block; background: var(--error); color: #fff;
  font-weight: 900; font-size: 13.5px; letter-spacing: 0.06em;
  border-radius: 999px; padding: 6px 18px; margin-bottom: 12px;
}
@media (max-width: 640px) {
  .lp-why-bridge-label { font-size: 14px; }
  .lp-why-bridge-arrow { font-size: 22px; }
}


/* Belief creed: emphasized declarations */
.lp-belief-creed {
  list-style: none; padding: 20px 24px; margin: 16px 0 18px;
  background: rgba(255,255,255,0.07);
  border-left: 3px solid #38BDF8;
  border-radius: 12px;
  display: flex; flex-direction: column; gap: 12px;
}
.lp-belief-creed li {
  font-family: var(--font-heading); font-weight: 900;
  font-size: 17px; line-height: 1.65; color: #FFFFFF;
}
@media (max-width: 640px) {
  .lp-belief-creed { padding: 14px 16px; gap: 9px; }
  .lp-belief-creed li { font-size: 14.5px; }
}

/* Final CTA: no shape over the sakura photo */
.lp-final::before { display: none !important; }


/* Diag section: back to light sky (navy was disliked) */
.lp-selfcheck { background-color: #EAF4FB !important; }
.lp-selfcheck .lp-sec-head h2 { color: var(--charcoal); }
.lp-selfcheck .lp-sec-head p { color: var(--charcoal-soft); }
@media (min-width: 641px) {
  .lp-selfcheck::before { background: #EAF4FB; }
}
.lp-diag { box-shadow: 0 24px 48px rgba(27,58,107,0.14); }

/* SP Belief: lighter cognitive load */
@media (max-width: 640px) {
  .lp-belief-body > p:first-of-type { display: none; }
  .lp-belief-h { font-size: 26px; margin-bottom: var(--space-3); }
  .lp-belief-creed { margin-top: 0; }
  .lp-belief-creed li { font-size: 15px; }
  .lp-belief-body > p:last-of-type { font-size: 13px; line-height: 1.85; }
  .lp-belief-disc { width: 120px; height: 120px; }
}


/* Belief section: light (no more dark navy bands before FAQ) */
.lp-belief { background: #FFFFFF !important; background-image: none !important; }
@media (min-width: 641px) {
  .lp-belief::before { background: #FFFFFF; }
}
.lp-belief-h { color: var(--charcoal); }
.lp-belief-h .dim { color: var(--ink-muted); }
.lp-belief-body p { color: var(--charcoal-soft); }
.lp-belief-body p b { color: var(--accent-navy); }
.lp-belief-creed { background: #EAF4FB; border-left-color: var(--accent-cyan); }
.lp-belief-creed li { color: var(--charcoal); }
.lp-belief-disc { background: #EAF4FB; box-shadow: none; border: 1px solid var(--line); }


/* SP belief closing line: bigger */
@media (max-width: 640px) {
  .lp-belief-body > p:last-of-type { font-size: 15px; line-height: 1.9; font-weight: 500; }
  .lp-belief-body > p:last-of-type b { font-size: 15.5px; }
}


/* Loop steps: appear in sequence on scroll */
@media (prefers-reduced-motion: no-preference) {
  .lp-loop .lp-loop-step { opacity: 0; }
  .lp-loop.loop-animate .lp-loop-step { animation: lp-step-in 480ms var(--ease-out) backwards; opacity: 1; }
  .lp-loop.loop-animate .lp-loop-step:nth-of-type(2) { animation-delay: 280ms; }
  .lp-loop.loop-animate .lp-loop-step:nth-of-type(3) { animation-delay: 560ms; }
  .lp-loop.loop-animate .lp-loop-step:nth-of-type(4) { animation-delay: 840ms; }
  @keyframes lp-step-in { from { opacity: 0; } to { opacity: 1; } }
}


/* Belief heading: line-by-line entrance */
@media (prefers-reduced-motion: no-preference) {
  .lp-belief-h > span { opacity: 0; }
  .lp-belief.belief-animate .lp-belief-h > span { animation: lp-line-in 620ms var(--ease-out) backwards; opacity: 1; }
  .lp-belief.belief-animate .lp-belief-h > span:nth-child(2) { animation-delay: 360ms; }
  @keyframes lp-line-in { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
}


/* Belief closing statement: large */
.lp-belief-body > p:last-of-type { font-size: 19px; line-height: 1.85; font-weight: 700; color: var(--charcoal); }
.lp-belief-body > p:last-of-type b { color: var(--accent-navy); }
@media (max-width: 640px) {
  .lp-belief-body > p:last-of-type { font-size: 16px; font-weight: 700; }
  .lp-belief-body > p:last-of-type b { font-size: 16px; }
}


/* Belief conclusion: standalone closing statement */
.lp-belief-conclusion {
  margin: var(--space-7) auto 0;
  max-width: 880px;
  text-align: center;
  font-family: var(--font-heading);
  font-weight: 900;
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.75;
  color: var(--charcoal);
}
.lp-belief-conclusion::before {
  content: ""; display: block; width: 48px; height: 4px;
  background: var(--accent-cyan); border-radius: 2px;
  margin: 0 auto var(--space-5);
}
.lp-belief-conclusion b { color: var(--error); }
@media (max-width: 640px) {
  .lp-belief-conclusion { font-size: 17px; margin-top: var(--space-5); }
}


/* Diag section heading: entrance animation */
@media (prefers-reduced-motion: no-preference) {
  .lp-selfcheck .lp-sec-head h2, .lp-selfcheck .lp-sec-head p { opacity: 0; }
  .lp-selfcheck.diag-animate .lp-sec-head h2 { animation: lp-line-in 620ms var(--ease-out) backwards; opacity: 1; }
  .lp-selfcheck.diag-animate .lp-sec-head p { animation: lp-line-in 620ms var(--ease-out) backwards; animation-delay: 320ms; opacity: 1; }
}


/* SP FV: card arrow never touches text */
@media (max-width: 640px) {
  .lp-hero-plan { padding-bottom: 44px; }
  .lp-hero-plan-link { right: 8px; bottom: 8px; }
  .lp-hero-plan-link .arrow { width: 24px; height: 24px; font-size: 12px; }
  .lp-hero-plan-price { margin-bottom: 0; padding-bottom: 4px; border-bottom: 0; }
  .lp-hero-plan-name { padding-right: 6px; }
}


/* Belief conclusion: larger */
.lp-belief-conclusion { font-size: clamp(24px, 2.9vw, 34px); line-height: 1.7; }
@media (max-width: 640px) {
  .lp-belief-conclusion { font-size: 19px; }
}


/* SP FV cards: taller frame so the arrow has its own zone */
@media (max-width: 640px) {
  .lp-hero-plan { padding: 16px 12px 56px; }
  .lp-hero-plan.featured { padding-top: 22px; }
  .lp-hero-plan-link { right: 10px; bottom: 12px; }
  .lp-hero-plan-link .arrow { width: 28px; height: 28px; font-size: 13px; }
}


/* Belief conclusion: even larger */
.lp-belief-conclusion { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.65; max-width: 1080px; }
@media (max-width: 640px) {
  .lp-belief-conclusion { font-size: 21px; }
}


/* ==== FORCE (cascade rescue) ==== */
.lp-belief-conclusion {
  font-size: clamp(22px, 2.5vw, 31px) !important;
  line-height: 1.65 !important;
  font-weight: 900 !important;
}
@media (max-width: 640px) {
  .lp-belief-conclusion { font-size: 18px !important; }
  .lp-hero-plan { padding-bottom: 56px !important; }
  .lp-hero-plan-link { right: 10px !important; bottom: 12px !important; }
}


/* ============================================================ SP: 1スワイプ＝1画面 圧縮 */
@media (max-width: 640px) {
  /* 診断ツール: リード文・ツールヘッダー装飾を抑制 */
  .lp-selfcheck .lp-sec-head p { display: none; }
  .lp-selfcheck .lp-sec-head h2 { font-size: 21px; margin-bottom: 12px; }
  .lp-diag-ico, .lp-diag-sub, .lp-diag-meta { display: none; }
  .lp-diag-head { padding: 11px 16px; }
  .lp-diag-title { font-size: 16px; }
  /* 初期ガイド（アイコン＋案内文）はスマホでは出さない → inputだけで1画面 */
  .lp-card-initial { display: none !important; }
  .lp-diag-card:has(.lp-card-initial) { display: none; }
  .lp-cost-step-label { font-size: 12.5px; margin: 12px 0 8px; }
  .lp-cost-step-label.step2 { margin-top: 16px; }
  .lp-cost-options { gap: 6px; }
  .lp-cost-opt { padding: 10px 6px; font-size: 12.5px; }
  .lp-sc-q { gap: 6px; }
  .lp-sc-item { padding: 9px 10px; }
  .lp-sc-item > span:last-child { font-size: 12.5px; line-height: 1.45; }

  /* プラン: 説明文・概要を抑制 */
  #plans .lp-sec-head p { display: none; }
  .lp-plan-summary { display: none; }
}


/* ============================================================ SP 診断: STEP2直下に結果ボタン／1カラム素直フロー */
@media (max-width: 640px) {
  /* aside の装飾を外し、STEP2 の続きとして自然に並べる */
  .lp-diag-2col { display: block; }
  .lp-diag-card { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin-top: 14px; }
  .lp-diag-card .lp-card-inner { padding: 0 !important; }
  /* ライブ結果（年間額・ゲージ・コメント）はスマホでは隠し、結果ボタンを STEP2 直下へ */
  .lp-card-annual, .lp-card-risk, .lp-card-comment { display: none !important; }
  .lp-card-go { margin-top: 0; }

  /* 初期状態が1画面に収まるよう詰める */
  .lp-selfcheck { padding-top: var(--space-6); }
  .lp-selfcheck > .kit-container > .lp-diag { padding-bottom: 4px; }
  #router.lp-root, #router { padding-bottom: 64px; }
  .lp-sc-item { padding: 7px 10px; }
  .lp-sc-q { gap: 5px; }
  .lp-cost-opt { padding: 8px 6px; }
}


/* ============================================================ SP 診断: 結果表示時は入力を畳んで結果だけ1画面 */
@media (max-width: 640px) {
  /* 結果表示後は STEP1/STEP2 を隠す → 結果のみで1画面 */
  .lp-diag.is-revealed .lp-diag-inputs { display: none; }
  /* 結果表示時は年間投資額だけ復活（説得材料） */
  .lp-diag.is-revealed .lp-card-annual { display: block !important; margin-bottom: 14px; }
  .lp-diag.is-revealed .lp-card-inner { padding-top: 4px !important; }

  /* 初期入力をさらに詰めて1画面に収める */
  .lp-selfcheck .lp-sec-head h2 { font-size: 20px; margin-bottom: 8px; }
  .lp-diag-head { padding: 8px 14px; }
  .lp-cost-step-label { margin: 8px 0 6px; }
  .lp-cost-step-label.step2 { margin-top: 12px; }
  .lp-sc-item { padding: 5px 10px; }
  .lp-sc-q { gap: 4px; }
  .lp-cost-opt { padding: 7px 6px; }
}


/* SP 診断: 最終詰め（初期・結果ともに1画面へ） */
@media (max-width: 640px) {
  .lp-selfcheck .lp-sec-head h2 { font-size: 19px; margin-bottom: 4px; }
  .lp-selfcheck .eyebrow { margin-bottom: 4px; }
  .lp-diag-head { padding: 6px 14px; }
  #router { padding-bottom: 58px; }
  /* 結果側の余白を圧縮 */
  .lp-diag.is-revealed .lp-card-annual { margin-bottom: 8px; }
  .lp-diag.is-revealed .lp-card-verdict { margin: 0 0 12px; }
  .lp-diag.is-revealed .lp-card-verdict .a { margin-top: 6px; }
  .lp-diag.is-revealed .lp-card-cta { gap: 8px; }
  .lp-diag.is-revealed .lp-card-price { margin-top: 2px; }
  .lp-sc-reset { margin-top: 8px; }
}


/* ============================================================ SP プラン: 横スワイプ・カルーセル（5万円を先頭） */
@media (max-width: 640px) {
  .lp-plans {
    display: flex;
    flex-direction: row;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    margin: 0 calc(-1 * var(--container-pad));
    padding: 4px var(--container-pad) 8px;
    scroll-padding-left: var(--container-pad);
  }
  .lp-plans .lp-plan {
    flex: 0 0 88%;
    scroll-snap-align: start;
    margin: 0;
  }
  .lp-plans .lp-plan.featured { order: -1; }   /* 5万円(卒業診断)を先頭に */
  /* カルーセルのヒント */
  #plans .lp-sec-head { margin-bottom: 12px; }
}


/* SP プラン: 見出し＋カードを1画面に圧縮 */
@media (max-width: 640px) {
  #plans { padding-top: var(--space-5); padding-bottom: 58px; }
  #plans .lp-sec-head { margin-bottom: 10px; }
  #plans .lp-sec-head h2 { font-size: 20px; margin: 0; line-height: 1.4; }
  #plans .lp-sec-head .eyebrow { margin-bottom: 4px; }
  .lp-plans .lp-plan { padding: 16px 16px 18px; }
  .lp-plan-kicker { margin-bottom: 4px; }
  .lp-plan-name { font-size: 19px; }
  .lp-plan-tagline { font-size: 14px; margin: 4px 0 6px; }
  .lp-plan-price { margin-bottom: 8px; }
  .lp-plan-h { margin: 10px 0 5px; font-size: 12.5px; }
  .lp-plan-scope { gap: 3px; }
  .lp-plan-scope li { padding: 3px 0 3px 18px; font-size: 12.5px; line-height: 1.45; }
  .lp-plan-for-head { padding: 9px 0; }
  .lp-plan .btn { padding: 12px 18px; font-size: 14px; }
}


/* ============================================================ ADDED SECTIONS (Lumière) */
/* shared */
.lp-worry, .lp-direction, .lp-authority, .lp-outcomes, .lp-results, .lp-strengths { position: relative; }

/* 01 不安想起 */
.lp-worry-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: var(--space-6); }
.lp-worry-card {
  background: var(--white); border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
  padding: 26px 22px; display: flex; flex-direction: column; gap: 14px;
}
.lp-worry-q {
  width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: var(--sky-100); color: var(--ocean-navy); font-family: var(--font-display); font-style: italic;
  font-size: 24px; font-weight: 700;
}
.lp-worry-card p { font-size: 16px; line-height: 1.8; color: var(--charcoal); font-weight: var(--w-medium); margin: 0; text-wrap: pretty; }
.lp-worry-foot { margin-top: var(--space-6); font-size: 17px; font-weight: var(--w-bold); color: var(--ocean-navy); text-align: center; }

/* 02 解決方向 Before/After */
.lp-ba { display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 18px; margin-top: var(--space-6); }
.lp-ba-col { background: var(--white); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 26px 24px; }
.lp-ba-after { border-color: var(--cyan-500); box-shadow: var(--shadow-soft); }
.lp-ba-tag { font-family: var(--font-display); font-style: italic; font-size: 22px; margin-bottom: 14px; color: var(--ink-muted); }
.lp-ba-after .lp-ba-tag { color: var(--cyan-600); }
.lp-ba-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.lp-ba-col li { font-size: 16px; line-height: 1.7; color: var(--charcoal); padding-left: 18px; position: relative; }
.lp-ba-before li { color: var(--ink-muted); }
.lp-ba-before li::before { content: "・"; position: absolute; left: 0; }
.lp-ba-after li { font-weight: var(--w-bold); }
.lp-ba-after li::before { content: "✓"; position: absolute; left: 0; color: var(--cyan-600); font-weight: 700; }
.lp-ba-arrow { align-self: center; font-size: 30px; color: var(--cyan-500); font-weight: 700; }

/* 03 権威性 */
.lp-auth-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: var(--space-6); }
.lp-auth-card { background: var(--bg-soft, var(--sky-50)); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 24px 22px; }
.lp-auth-k {
  display: inline-block; font-weight: var(--w-bold); font-size: 14px; color: var(--ocean-navy);
  border-bottom: 2px solid var(--cyan-500); padding-bottom: 4px; margin-bottom: 12px;
}
.lp-auth-card p { font-size: 15px; line-height: 1.8; color: var(--charcoal-soft, var(--charcoal)); margin: 0; }

/* 05 診断で分かること */
.lp-outcome-grid { list-style: none; padding: 0; margin: var(--space-6) 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.lp-outcome-grid li {
  background: var(--white); border: 1px solid var(--border-soft); border-radius: var(--radius-md);
  padding: 18px 18px; font-size: 16px; font-weight: var(--w-bold); color: var(--charcoal);
  display: flex; align-items: center; gap: 12px;
}
.lp-outcome-ck { flex: 0 0 24px; width: 24px; height: 24px; border-radius: 50%; background: var(--cyan-500); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.lp-outcome-ck svg { width: 14px; height: 14px; }

/* 06 実績 */
.lp-result-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: var(--space-6); }
.lp-result-card { background: var(--ocean-navy); color: var(--fg-on-deep, #fff); border-radius: var(--radius-lg); padding: 26px 20px; }
.lp-result-big { font-family: var(--font-display); font-style: italic; font-size: 34px; line-height: 1.1; color: #fff; }
.lp-result-unit { font-family: var(--font-jp); font-style: normal; font-size: 14px; font-weight: var(--w-bold); margin-left: 4px; color: var(--cyan-400, #38BDF8); }
.lp-result-card p { font-size: 13.5px; line-height: 1.7; color: rgba(255,255,255,0.82); margin: 12px 0 0; }
.lp-result-note { margin-top: var(--space-4); font-size: 12px; color: var(--ink-soft); }

/* 07 強み */
.lp-strength-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: var(--space-6); }
.lp-strength-card { background: var(--white); border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 26px 22px; }
.lp-strength-n { font-family: var(--font-display); font-style: italic; font-size: 30px; color: var(--cyan-600); margin-bottom: 10px; }
.lp-strength-body h3 { font-size: 18px; line-height: 1.5; color: var(--ocean-navy); margin: 0 0 10px; font-weight: var(--w-bold); }
.lp-strength-body p { font-size: 14.5px; line-height: 1.8; color: var(--charcoal-soft, var(--charcoal)); margin: 0; }
.lp-strength-bridge {
  margin: var(--space-7) auto 0; max-width: 820px; text-align: center;
  font-size: 18px; line-height: 1.8; font-weight: var(--w-bold); color: var(--ocean-navy);
}
.lp-strength-bridge::after { content: "↓"; display: block; margin-top: 10px; color: var(--cyan-500); font-size: 22px; }


/* ============================================================ ADDED SECTIONS — SP 1画面圧縮 */
@media (max-width: 640px) {
  .lp-worry, .lp-direction, .lp-authority, .lp-outcomes, .lp-results, .lp-strengths { padding-top: var(--space-6); }
  .lp-worry .lp-sec-head h2, .lp-direction .lp-sec-head h2, .lp-authority .lp-sec-head h2,
  .lp-outcomes .lp-sec-head h2, .lp-results .lp-sec-head h2, .lp-strengths .lp-sec-head h2 { font-size: 21px; line-height: 1.45; }
  .lp-authority .lp-sec-head h2 { font-size: 19px; }
  .lp-results .lp-sec-head h2 { font-size: 19px; }
  .lp-worry .lp-sec-head p, .lp-direction .lp-sec-head p, .lp-authority .lp-sec-head p,
  .lp-outcomes .lp-sec-head p, .lp-results .lp-sec-head p { font-size: 13.5px; line-height: 1.8; }

  /* 01 worry: stacked compact */
  .lp-worry-cards { grid-template-columns: 1fr; gap: 10px; margin-top: var(--space-4); }
  .lp-worry-card { flex-direction: row; align-items: center; gap: 14px; padding: 14px 16px; }
  .lp-worry-q { flex: 0 0 32px; width: 32px; height: 32px; font-size: 19px; }
  .lp-worry-card p { font-size: 14px; line-height: 1.55; }
  .lp-worry-foot { margin-top: var(--space-4); font-size: 14px; line-height: 1.7; }

  /* 02 direction: stack before/after */
  .lp-ba { grid-template-columns: 1fr; gap: 10px; margin-top: var(--space-4); }
  .lp-ba-col { padding: 14px 16px; }
  .lp-ba-tag { font-size: 17px; margin-bottom: 8px; }
  .lp-ba-col ul { gap: 5px; }
  .lp-ba-col li { font-size: 13.5px; line-height: 1.5; }
  .lp-ba-arrow { transform: rotate(90deg); font-size: 22px; }

  /* 03 authority: stacked */
  .lp-auth-points { grid-template-columns: 1fr; gap: 10px; margin-top: var(--space-4); }
  .lp-auth-card { padding: 12px 16px; }
  .lp-auth-k { margin-bottom: 6px; font-size: 13px; }
  .lp-auth-card p { font-size: 13px; line-height: 1.6; }

  /* 05 outcomes: 2-col chips */
  .lp-outcome-grid { grid-template-columns: 1fr 1fr; gap: 8px; margin-top: var(--space-4); }
  .lp-outcome-grid li { padding: 12px 12px; font-size: 13px; gap: 8px; }
  .lp-outcome-ck { flex-basis: 20px; width: 20px; height: 20px; }

  /* 06 results: 2x2 */
  .lp-result-stats { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: var(--space-4); }
  .lp-result-card { padding: 16px 16px; }
  .lp-result-big { font-size: 26px; }
  .lp-result-card p { font-size: 12px; margin-top: 8px; }
  .lp-result-note { margin-top: var(--space-3); }

  /* 07 strengths: stacked rows */
  .lp-strength-list { grid-template-columns: 1fr; gap: 10px; margin-top: var(--space-4); }
  .lp-strength-card { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; }
  .lp-strength-n { font-size: 24px; margin-bottom: 0; flex: 0 0 auto; }
  .lp-strength-body h3 { font-size: 15px; margin-bottom: 5px; }
  .lp-strength-body p { font-size: 12.5px; line-height: 1.6; }
  .lp-strength-bridge { margin-top: var(--space-5); font-size: 14px; line-height: 1.7; }
}


/* ============================================================ SEO優先度診断（主役の無料診断UI） */
.lp-priority { background: var(--bg-soft, #EAF4FB); position: relative; }
.lp-prio-grid { display: grid; grid-template-columns: 0.82fr 1.05fr; gap: 48px; align-items: center; }
.lp-prio-intro h1 { font-size: clamp(30px, 3.4vw, 44px); line-height: 1.3; margin: 8px 0 16px; color: var(--ocean-navy); }
.lp-prio-sub { font-size: 16px; line-height: 1.85; color: var(--charcoal-soft, var(--charcoal)); margin: 0 0 18px; }
.lp-prio-sub b { color: var(--ocean-navy); font-weight: var(--w-bold); }
.lp-prio-meta { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0 0 20px; }
.lp-prio-meta li { font-size: 13px; font-weight: var(--w-bold); color: var(--cyan-700, #0369A1); background: #fff; border: 1px solid var(--border-soft); border-radius: 999px; padding: 6px 14px; }
.lp-prio-creed { font-size: 13.5px; line-height: 1.85; color: var(--ink-muted); border-left: 3px solid var(--cyan-500); padding-left: 14px; margin: 0; }

/* quiz card */
.lp-prio-card { background: #fff; border: 1px solid var(--border-soft); border-radius: var(--radius-xl, 24px); box-shadow: 0 30px 60px rgba(20,44,85,0.14); overflow: hidden; }
.lp-prio-card-head { background: var(--ocean-navy); color: #fff; padding: 16px 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.lp-prio-card-name { font-weight: var(--w-bold); font-size: 16px; }
.lp-prio-card-name::before { content: "無料"; display: inline-block; background: #FF5A4E; color: #fff; font-size: 11px; font-weight: 900; border-radius: 5px; padding: 2px 8px; margin-right: 9px; vertical-align: 2px; }
.lp-prio-card-meta { display: flex; gap: 6px; flex-wrap: wrap; }
.lp-prio-card-meta span { font-size: 11px; color: rgba(255,255,255,0.78); border: 1px solid rgba(255,255,255,0.24); border-radius: 999px; padding: 3px 9px; }

.lp-prio-quiz { padding: 22px 24px 24px; }
.lp-prio-track { height: 5px; border-radius: 999px; background: var(--sky-100, #E2ECF6); overflow: hidden; margin-bottom: 16px; }
.lp-prio-track span { display: block; height: 100%; background: var(--cyan-500); border-radius: 999px; transition: width 320ms var(--ease-out); }
.lp-prio-step { font-family: var(--font-display); font-style: italic; font-size: 15px; color: var(--cyan-700, #0369A1); display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; letter-spacing: 0.04em; }
.lp-prio-count { font-family: var(--font-jp); font-style: normal; font-size: 12px; color: var(--ink-soft); font-weight: var(--w-bold); }
.lp-prio-q { font-size: 21px; line-height: 1.5; color: var(--ocean-navy); margin: 0 0 16px; font-weight: var(--w-bold); }
.lp-prio-opts { display: flex; flex-direction: column; gap: 8px; }
.lp-prio-opt {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; text-align: left; cursor: pointer;
  background: var(--sky-50, #F4F9FE); border: 1.5px solid var(--border-soft); border-radius: 12px;
  padding: 14px 16px; font-size: 15px; font-weight: var(--w-medium); color: var(--charcoal);
  transition: border-color 160ms var(--ease-out), background 160ms var(--ease-out), transform 80ms;
}
.lp-prio-opt:hover { border-color: var(--cyan-500); background: #fff; }
.lp-prio-opt.on { border-color: var(--cyan-500); background: #fff; box-shadow: inset 0 0 0 1px var(--cyan-500); }
.lp-prio-opt-ar { color: var(--cyan-500); font-weight: 700; opacity: 0; transform: translateX(-4px); transition: all 160ms var(--ease-out); }
.lp-prio-opt:hover .lp-prio-opt-ar, .lp-prio-opt.on .lp-prio-opt-ar { opacity: 1; transform: none; }
.lp-prio-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 16px; min-height: 28px; }
.lp-prio-back, .lp-prio-skip { background: none; border: none; cursor: pointer; font-size: 13px; font-weight: var(--w-bold); color: var(--ink-muted); padding: 4px 2px; }
.lp-prio-skip { color: var(--cyan-700, #0369A1); }
.lp-prio-result-btn { padding: 13px 24px; font-size: 15px; }

/* result */
.lp-prio-result { padding: 22px 24px 24px; }
.lp-prio-result-lab { font-size: 12px; font-weight: var(--w-bold); letter-spacing: 0.1em; color: var(--ink-soft); }
.lp-prio-type { font-size: 25px; line-height: 1.35; color: var(--ocean-navy); margin: 4px 0 8px; font-weight: var(--w-black, 900); }
.lp-prio-type-lead { font-size: 14.5px; line-height: 1.8; color: var(--charcoal-soft, var(--charcoal)); margin: 0 0 18px; }
.lp-prio-block { margin-bottom: 16px; }
.lp-prio-block-h { font-size: 12.5px; font-weight: var(--w-bold); color: var(--cyan-700, #0369A1); margin-bottom: 8px; letter-spacing: 0.02em; }
.lp-prio-reasons { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 7px; }
.lp-prio-reasons li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.65; color: var(--charcoal); }
.lp-prio-reasons .ck { flex: 0 0 18px; width: 18px; height: 18px; border-radius: 50%; background: var(--cyan-500); color: #fff; display: inline-flex; align-items: center; justify-content: center; margin-top: 2px; }
.lp-prio-reasons .ck svg { width: 11px; height: 11px; }
.lp-prio-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.lp-prio-chip { font-size: 13px; font-weight: var(--w-bold); color: var(--ocean-navy); background: var(--sky-100, #E2ECF6); border-radius: 999px; padding: 7px 14px; }
.lp-prio-judge { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.lp-prio-judge li { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; padding: 7px 0; border-bottom: 1px dashed var(--border-soft); }
.lp-prio-judge .jk { color: var(--ink-muted); }
.lp-prio-judge .jv { font-weight: var(--w-bold); color: var(--ocean-navy); }
.lp-prio-next { background: var(--ocean-navy); color: #fff; border-radius: 12px; padding: 14px 16px; font-size: 14.5px; font-weight: var(--w-bold); line-height: 1.6; margin: 4px 0 18px; }
.lp-prio-next span { display: block; font-size: 11px; color: var(--cyan-400, #38BDF8); letter-spacing: 0.08em; margin-bottom: 4px; }
.lp-prio-result-cta { display: flex; flex-direction: column; gap: 10px; align-items: center; }
.lp-prio-result-cta .btn { width: 100%; }
.lp-prio-result-sub { font-size: 13px; font-weight: var(--w-bold); color: var(--cyan-700, #0369A1); }
.lp-prio-restart { display: block; margin: 12px auto 0; background: none; border: none; cursor: pointer; font-size: 12.5px; color: var(--ink-soft); text-decoration: underline; }

/* 結果タイプ一覧 */
.lp-rtype-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: var(--space-6); }
.lp-rtype-card { background: #fff; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 22px 20px; transition: border-color 180ms, transform 180ms; }
.lp-rtype-card:hover { border-color: var(--cyan-500); transform: translateY(-2px); }
.lp-rtype-name { font-weight: var(--w-bold); font-size: 16px; color: var(--ocean-navy); margin-bottom: 8px; padding-bottom: 8px; border-bottom: 2px solid var(--cyan-500); display: inline-block; }
.lp-rtype-card p { font-size: 13.5px; line-height: 1.7; color: var(--charcoal-soft, var(--charcoal)); margin: 0; }

/* strengths bridge: no downward arrow now (no following loop) */
.lp-strength-bridge::after { display: none; }


/* ============================================================ SEO優先度診断 — SP（診断UIを主役に、1ステップ1画面） */
@media (max-width: 640px) {
  .lp-prio-grid { grid-template-columns: 1fr; gap: 16px; }
  .lp-prio-intro h1 { font-size: 24px; line-height: 1.35; margin: 4px 0 10px; }
  .lp-prio-sub { font-size: 13.5px; line-height: 1.75; margin-bottom: 12px; }
  .lp-prio-meta { margin-bottom: 0; gap: 6px; }
  .lp-prio-meta li { font-size: 12px; padding: 5px 12px; }
  .lp-prio-creed { display: none; }   /* SPは説明を削り、診断UIを見せる */

  .lp-priority { padding-top: var(--space-6); padding-bottom: 58px; }
  .lp-prio-card { box-shadow: 0 18px 36px rgba(20,44,85,0.16); }
  .lp-prio-card-head { padding: 12px 16px; }
  .lp-prio-card-name { font-size: 14px; }
  .lp-prio-card-meta { display: none; }
  .lp-prio-quiz, .lp-prio-result { padding: 16px 16px 18px; }
  .lp-prio-q { font-size: 17px; margin-bottom: 12px; }
  .lp-prio-opt { padding: 12px 14px; font-size: 13.5px; }
  .lp-prio-opts { gap: 7px; }

  /* result SP: 詰める */
  .lp-prio-type { font-size: 20px; }
  .lp-prio-type-lead { font-size: 13px; margin-bottom: 12px; }
  .lp-prio-block { margin-bottom: 12px; }
  .lp-prio-reasons li { font-size: 12.5px; }
  .lp-prio-chip { font-size: 12px; padding: 6px 11px; }
  .lp-prio-judge li { font-size: 12.5px; padding: 5px 0; }
  .lp-prio-next { font-size: 13px; padding: 11px 14px; margin-bottom: 12px; }

  /* 結果タイプ: 2カラム */
  .lp-rtypes .lp-sec-head h2 { font-size: 21px; }
  .lp-rtypes .lp-sec-head p { font-size: 13px; }
  .lp-rtype-grid { grid-template-columns: 1fr 1fr; gap: 8px; margin-top: var(--space-4); }
  .lp-rtype-card { padding: 13px 13px; }
  .lp-rtype-name { font-size: 12.5px; margin-bottom: 6px; padding-bottom: 5px; }
  .lp-rtype-card p { font-size: 11.5px; line-height: 1.55; }
}


/* SP 優先度診断: イントロを最小化して診断UIを主役に＝1画面 */
@media (max-width: 640px) {
  .lp-prio-sub { display: none; }
  .lp-prio-intro h1 { font-size: 22px; margin: 0 0 8px; }
  .lp-prio-meta { margin-bottom: 0; }
  .lp-prio-grid { gap: 12px; }
  .lp-priority { padding-top: var(--space-5); }
  .lp-prio-card-head { padding: 11px 14px; }
  .lp-prio-quiz, .lp-prio-result { padding: 14px 14px 16px; }
  .lp-prio-track { margin-bottom: 12px; }
  .lp-prio-step { margin-bottom: 8px; }
  .lp-prio-q { font-size: 16px; margin-bottom: 10px; }
  .lp-prio-opt { padding: 11px 13px; font-size: 13px; }
  .lp-prio-opts { gap: 6px; }
  .lp-prio-nav { margin-top: 12px; }
  /* result: tighter */
  .lp-prio-block { margin-bottom: 10px; }
  .lp-prio-reasons { gap: 5px; }
  .lp-prio-next { margin-bottom: 10px; }
  .lp-prio-result-cta .btn { padding: 12px 18px; font-size: 13.5px; }
}


/* SP hero: new longer headline fits one screen */
@media (max-width: 640px) {
  .lp-hero-h { font-size: 26px; line-height: 1.36; }
  .lp-hero-photo-sp { height: 118px; margin: 10px 0 2px; }
  .lp-hero-cta .btn { padding: 13px 22px; }
}


/* ============================================================ KEEP / CUT / SHIFT 図解 */
.lp-kcs { background: #fff; }
.lp-kcs-row { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: stretch; gap: 14px; margin-top: var(--space-6); }
.lp-kcs-card { border-radius: var(--radius-lg); padding: 28px 24px; border: 1px solid var(--border-soft); background: var(--sky-50, #F4F9FE); }
.lp-kcs-en { font-family: var(--font-display); font-style: italic; font-size: 40px; line-height: 1; margin-bottom: 6px; }
.lp-kcs-ja { font-weight: var(--w-bold); font-size: 17px; color: var(--ocean-navy); margin-bottom: 12px; }
.lp-kcs-card p { font-size: 14px; line-height: 1.8; color: var(--charcoal-soft, var(--charcoal)); margin: 0; }
.kcs-keep { background: var(--sky-50, #F4F9FE); border-color: var(--cyan-500); }
.kcs-keep .lp-kcs-en { color: var(--cyan-600, #0284C7); }
.kcs-cut .lp-kcs-en { color: var(--ink-soft); }
.kcs-cut { background: #F6F7F9; }
.kcs-shift { background: var(--ocean-navy); border-color: var(--ocean-navy); }
.kcs-shift .lp-kcs-en { color: #fff; }
.kcs-shift .lp-kcs-ja { color: #fff; }
.kcs-shift p { color: rgba(255,255,255,0.82); }
.lp-kcs-arrow { align-self: center; font-size: 26px; color: var(--cyan-500); font-weight: 700; }

/* ============================================================ TIMELINE 診断の流れ */
.lp-timeline { background: #F4FAFE url("../timeline-bg.png") center / cover no-repeat; }
.lp-tl { list-style: none; padding: 0; margin: var(--space-7) 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; position: relative; }
.lp-tl::before { content: ""; position: absolute; top: 26px; left: 10%; right: 10%; height: 2px; background: var(--border-strong, var(--line-strong)); z-index: 0; }
.lp-tl-step { position: relative; z-index: 1; padding: 0 12px; text-align: center; }
.lp-tl-node {
  width: 52px; height: 52px; border-radius: 50%; margin: 0 auto 16px;
  background: var(--ocean-navy); color: #fff; display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-style: italic; font-size: 22px;
  box-shadow: 0 0 0 6px #fff;
}
.lp-tl-body h3 { font-size: 15px; line-height: 1.5; color: var(--ocean-navy); margin: 0 0 8px; font-weight: var(--w-bold); }
.lp-tl-body p { font-size: 12.5px; line-height: 1.7; color: var(--charcoal-soft, var(--charcoal)); margin: 0; }

/* ============================================================ 実績を濃紺バンドに（締め色） */
.lp-results { background: var(--ocean-navy); }
.lp-results .lp-sec-head h2 { color: #fff; }
.lp-results .lp-sec-head p { color: rgba(255,255,255,0.82); }
.lp-results .lp-sec-head p b { color: var(--cyan-400, #38BDF8); }
.lp-result-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.14); }
.lp-result-note { color: rgba(255,255,255,0.55); }

/* ============================================================ 背景リズム（隣接で色を変える） */
.lp-priority { background: #fff; }
.lp-priority::before { background: #fff; }
#plans.lp-sec-alt { background: var(--bg-soft, #EAF4FB); }


/* ============================================================ SP: KCS / Timeline / ResultTypes横スライド */
@media (max-width: 640px) {
  /* Keep/Cut/Shift: 縦積み（矢印は下向き） */
  .lp-kcs .lp-sec-head h2 { font-size: 20px; }
  .lp-kcs .lp-sec-head p { font-size: 13px; }
  .lp-kcs-row { grid-template-columns: 1fr; gap: 8px; margin-top: var(--space-4); }
  .lp-kcs-card { padding: 14px 16px; }
  .lp-kcs-en { font-size: 28px; }
  .lp-kcs-ja { font-size: 14px; margin-bottom: 6px; }
  .lp-kcs-card p { font-size: 12.5px; line-height: 1.6; }
  .lp-kcs-arrow { transform: rotate(90deg); font-size: 18px; justify-self: center; }

  /* Timeline: 縦タイムライン */
  .lp-timeline .lp-sec-head h2 { font-size: 21px; }
  .lp-timeline .lp-sec-head p { font-size: 13px; }
  .lp-tl { grid-template-columns: 1fr; gap: 0; margin-top: var(--space-4); }
  .lp-tl::before { top: 0; bottom: 0; left: 19px; right: auto; width: 2px; height: auto; }
  .lp-tl-step { display: grid; grid-template-columns: 40px 1fr; gap: 12px; text-align: left; padding: 0 0 14px; }
  .lp-tl-node { width: 40px; height: 40px; font-size: 17px; margin: 0; box-shadow: 0 0 0 4px var(--bg-page, #fff); }
  .lp-tl-body h3 { font-size: 14px; margin-bottom: 3px; }
  .lp-tl-body p { font-size: 12px; line-height: 1.55; }
  .lp-tl-step:last-child { padding-bottom: 0; }

  /* 結果タイプ: 横スライド（カルーセル） */
  .lp-rtype-grid {
    display: flex; flex-direction: row; grid-template-columns: none;
    overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain; gap: 10px;
    margin: var(--space-4) calc(-1 * var(--container-pad)) 0;
    padding: 0 var(--container-pad) 6px; scroll-padding-left: var(--container-pad);
  }
  .lp-rtype-grid .lp-rtype-card { flex: 0 0 72%; scroll-snap-align: start; }
}


/* SP KCS: 最終詰め */
@media (max-width: 640px) {
  .lp-kcs { padding-top: var(--space-5); padding-bottom: 58px; }
  .lp-kcs .lp-sec-head { margin-bottom: 8px; }
  .lp-kcs-card { padding: 12px 16px; }
  .lp-kcs-en { font-size: 25px; margin-bottom: 2px; }
  .lp-kcs-card p { font-size: 12px; line-height: 1.55; }
  .lp-kcs-arrow { font-size: 16px; }
}


/* ============================================================ 結果タイプ 8枚（注目4 + その他4） */
.lp-rtype-grid { grid-template-columns: repeat(4, 1fr); }
.lp-rtype-card { position: relative; }
.lp-rtype-card.feat { border-top: 3px solid var(--cyan-500); background: #fff; box-shadow: var(--shadow-soft); }
.lp-rtype-card:not(.feat) { background: #fff; }
.lp-rtype-tag {
  position: absolute; top: -1px; right: 14px; transform: translateY(-50%);
  background: var(--cyan-500); color: #fff; font-size: 10px; font-weight: 900;
  letter-spacing: 0.08em; border-radius: 999px; padding: 3px 9px;
}
.lp-rtypes .lp-sec-head h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.35; }

@media (max-width: 980px) and (min-width: 641px) {
  .lp-rtype-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  /* 横スライド時もタグが切れないよう padding-top を確保 */
  .lp-rtype-grid { padding-top: 8px; }
  .lp-rtype-card.feat { border-top-width: 3px; }
  .lp-rtypes .lp-sec-head h2 { font-size: 20px; }
}


/* ============================================================ TYPO HIERARCHY + GRID（強調大／説明小） PC */
@media (min-width: 641px) {
  /* 見出しを大きく・強く */
  .lp-root .lp-sec-head h2 {
    font-size: clamp(30px, 3.4vw, 46px);
    line-height: 1.3; font-weight: var(--fw-black, 900); letter-spacing: -0.01em;
    text-wrap: balance;
  }
  /* 見出し上のアクセントバー＝グリッドの起点 */
  .lp-root .lp-sec-head h2::before {
    content: ""; display: block; width: 44px; height: 4px;
    background: var(--cyan-500); border-radius: 2px; margin-bottom: 18px;
  }
  .lp-root .lp-sec-head.center h2::before { margin-left: auto; margin-right: auto; }
  .lp-results .lp-sec-head h2::before { background: var(--cyan-400); }

  /* 説明文は小さく・控えめ */
  .lp-root .lp-sec-head p {
    font-size: 14px; line-height: 1.85; color: var(--ink-muted); max-width: 600px;
  }
  /* カード内の説明文を小さく */
  .lp-worry-card p, .lp-auth-card p, .lp-rtype-card p, .lp-strength-body p,
  .lp-kcs-card p, .lp-tl-body p, .lp-result-card p, .lp-prio-type-lead {
    font-size: 13.5px; line-height: 1.75;
  }
  /* カード見出しは太く明確に */
  .lp-strength-body h3, .lp-tl-body h3 { font-size: 18px; font-weight: var(--fw-bold); }
  .lp-rtype-name, .lp-auth-k { font-size: 16px; }
  .lp-worry-card p { font-size: 15px; font-weight: var(--fw-medium); }

  /* 数字・キーワードの強調はさらに大きく */
  .lp-result-big { font-size: 42px; }
  .lp-kcs-en { font-size: 48px; }
  .lp-prio-type { font-size: 28px; }
}


/* ============================================================ HERO 診断UIモック（FV） */
.lp-hero-demo {
  display: block; max-width: 460px; margin-top: var(--space-5);
  background: rgba(255,255,255,0.94); backdrop-filter: blur(6px);
  border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
  box-shadow: 0 24px 50px rgba(20,44,85,0.18); padding: 18px 20px; text-decoration: none;
  transition: transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out);
}
.lp-hero-demo:hover { transform: translateY(-2px); box-shadow: 0 30px 60px rgba(20,44,85,0.22); }
.lp-hero-demo-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.lp-hero-demo-name { font-weight: var(--fw-bold); font-size: 14px; color: var(--ocean-navy); }
.lp-hero-demo-name::before { content: "無料"; background: #FF5A4E; color: #fff; font-size: 10px; font-weight: 900; border-radius: 5px; padding: 2px 7px; margin-right: 8px; vertical-align: 2px; }
.lp-hero-demo-step { font-family: var(--font-display); font-style: italic; font-size: 13px; color: var(--cyan-700); }
.lp-hero-demo-q { font-size: 16px; font-weight: var(--fw-bold); color: var(--charcoal); margin-bottom: 12px; }
.lp-hero-demo-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.lp-hero-demo-opts span { background: var(--sky-50); border: 1.5px solid var(--border-soft); border-radius: 10px; padding: 10px 12px; font-size: 13px; font-weight: var(--fw-medium); color: var(--charcoal); text-align: center; }
.lp-hero-demo:hover .lp-hero-demo-opts span:first-child { border-color: var(--cyan-500); background: #fff; }
.lp-hero-demo-cta { display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--cyan-500); color: #fff; border-radius: 999px; padding: 12px; font-size: 14px; font-weight: var(--fw-bold); }
.lp-hero-demo .arrow { transition: transform 200ms var(--ease-out); }
.lp-hero-demo:hover .arrow { transform: translateX(4px); }

/* ============================================================ GRID DISCIPLINE（左揃え・ガター統一） */
.lp-worry-foot { text-align: left; max-width: 720px; }
.lp-worry-foot::before { content: ""; display: inline-block; width: 18px; height: 2px; background: var(--cyan-500); vertical-align: middle; margin-right: 10px; }

/* ============================================================ DESKTOP: 通常スクロール（スワイプ無効） */
@media (min-width: 641px) {
  .kit-sticky-cta { display: none !important; }
  .lp-hero-demo { margin-top: var(--space-5); }
}
@media (min-width: 641px) and (max-width: 99999px) {
  /* （旧フルページ・スナップは無効化） */
}
@media (max-width: 640px) {
  .lp-hero-demo { display: none; }
}


/* PC 1画面: プラン圧縮 */
@media (min-width: 641px) {
  #plans .lp-sec-head { margin-bottom: var(--space-4); }
  .lp-plans { gap: 20px; }
  .lp-plan { padding: 24px 26px; }
  .lp-plan-summary { margin: 8px 0 10px; font-size: 13.5px; line-height: 1.7; }
  .lp-plan-h { margin: 12px 0 6px; }
  .lp-plan-scope { gap: 3px; }
  .lp-plan-scope li { padding: 3px 0 3px 20px; font-size: 13px; line-height: 1.5; }
  .lp-plan-for-head { padding: 10px 0; }
  .lp-plan .btn { margin-top: 14px; }
}


/* PC 1画面: 考え方・FAQ・最終CTA 圧縮 */
@media (min-width: 641px) {
  /* 思想セクション */
  .lp-belief { padding-top: var(--space-6); padding-bottom: var(--space-6); }
  .lp-belief-h { font-size: clamp(30px, 3.2vw, 40px); }
  .lp-belief-creed { padding: 16px 20px; gap: 9px; }
  .lp-belief-creed li { font-size: 15px; line-height: 1.55; }
  .lp-belief-conclusion { margin-top: var(--space-5); font-size: clamp(20px, 2.2vw, 28px); }
  .lp-belief-disc { width: 150px; height: 150px; }

  /* FAQ */
  .kit-faq-q { padding: 16px 0; font-size: 16px; }
  .lp-faq .lp-sec-head, #faq .lp-sec-head { margin-bottom: var(--space-4); }

  /* 最終CTA */
  .lp-final { padding-top: var(--space-7); padding-bottom: var(--space-7); }
  .lp-final h2 { font-size: clamp(30px, 3.4vw, 44px); }
}


/* PC 1画面: 申込フォーム圧縮 */
@media (min-width: 641px) {
  .lp-apply { padding-top: var(--space-6); padding-bottom: var(--space-6); }
  .lp-apply .lp-sec-head { margin-bottom: var(--space-4); }
  .lp-apply-grid { gap: 36px; align-items: start; }
  .lp-form-row { margin-bottom: 12px; }
  .lp-form .label { margin-bottom: 5px; font-size: 13px; }
  .lp-form .input, .lp-form .select, .lp-form .textarea { padding: 9px 12px; }
  .lp-form .textarea { rows: 2; min-height: 56px; }
  .lp-consent { margin-top: 8px; font-size: 12.5px; }
  .lp-apply-price { font-size: 40px; }
  .lp-eligibility { padding: 12px 14px; margin-top: 12px; }
  .lp-eligibility p { font-size: 12px; line-height: 1.7; }
}


/* PC 1画面: さらに圧縮（hero / plans / apply） */
@media (min-width: 641px) {
  /* hero: 余白詰め */
  .lp-hero-sub { margin-bottom: 10px; }
  .lp-hero-lead { display: none; }
  .lp-hero-cta { margin: 14px 0 10px; }
  .lp-hero-demo { margin-top: 14px; padding: 14px 18px; }

  /* plans: 概要文を畳み、スコープを詰める */
  .lp-plan-summary { display: none; }
  .lp-plan { padding: 20px 24px; }
  .lp-plan-name { font-size: 20px; }
  .lp-plan-tagline { font-size: 16px; margin: 6px 0 8px; }
  .lp-plan-price { margin-bottom: 8px; }
  .lp-plan-h { margin: 8px 0 5px; font-size: 12px; }
  .lp-plan-scope li { padding: 2px 0 2px 18px; font-size: 12.5px; line-height: 1.45; }
  .lp-plan-for-head { padding: 8px 0; }
  .lp-plan .btn { margin-top: 10px; padding: 11px 18px; }

  /* apply: フォーム行をさらに詰める */
  .lp-form-row { margin-bottom: 10px; }
  .lp-consent { margin-top: 6px; }
}


/* PC 1画面: フォーム最終圧縮 */
@media (min-width: 641px) {
  .lp-apply .lp-sec-head h2 { font-size: clamp(26px, 2.8vw, 36px); }
  .lp-form .textarea { min-height: 48px; }
  .lp-form-row { margin-bottom: 9px; }
  .lp-consent { margin-top: 5px; line-height: 1.5; }
  .lp-form > .btn { margin-top: 12px; }
}


/* PC 1画面: 仕上げトリム */
@media (min-width: 641px) {
  .lp-hero-assure { margin-top: 10px; }
  .lp-hero-h { font-size: clamp(34px, 4vw, 50px); }
  #plans .lp-plan-for { display: none; }   /* 「こんな方におすすめ」アコーディオンはPCでは省略 */
  .kit-faq-q { padding: 13px 0; }
  .kit-faq-a { padding-bottom: 12px; }
  .lp-apply-aside .lp-apply-price { font-size: 36px; }
  .lp-apply-aside .p-sm { font-size: 12.5px; }
}


/* PC hero: あと少し詰める */
@media (min-width: 641px) {
  .lp-root main > section.lp-hero { padding-top: var(--space-5); padding-bottom: var(--space-5); }
  .lp-hero-demo-opts { margin-bottom: 10px; }
  .lp-hero-demo { padding: 12px 16px; }
}


/* PC hero: 安心材料はモックと重複するため非表示／CTA折返し防止 */
@media (min-width: 641px) {
  .lp-hero-assure { display: none; }
  .lp-hero-demo { margin-top: var(--space-4); }
  .lp-hero-demo-cta { white-space: nowrap; font-size: 13.5px; padding: 12px 14px; }
}


/* ============================================================ 診断結果: 2カラムで横に広げて縦圧縮 */
.lp-prio-result-head { margin-bottom: 16px; }
.lp-prio-result-cols { display: block; }
.lp-prio-result-c2 { display: flex; flex-direction: column; gap: 16px; }
.lp-prio-result-foot { margin-top: 4px; }

@media (min-width: 641px) {
  /* 結果表示時はカードを全幅に（イントロを畳む） */
  .lp-prio-grid:has(.lp-prio-result) { grid-template-columns: 1fr; }
  .lp-prio-grid:has(.lp-prio-result) .lp-prio-intro { display: none; }
  .lp-prio-card:has(.lp-prio-result) { max-width: 920px; margin: 0 auto; }

  .lp-prio-result-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 32px; align-items: start; }
  .lp-prio-result-head { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 8px 16px; margin-bottom: 18px; }
  .lp-prio-result-head .lp-prio-result-lab { align-self: center; }
  .lp-prio-type { margin: 0; }
  .lp-prio-type-lead { grid-column: 1 / -1; margin: 0; }
  .lp-prio-result-foot { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; margin-top: 18px; }
  .lp-prio-next { margin: 0; }
  .lp-prio-result-cta { margin: 0; }
  .lp-prio-result-cta .btn { width: auto; white-space: nowrap; }
  .lp-prio-restart { margin-top: 12px; }
}


/* ============================================================ PC: 余白過多のセクションを“画面を満たす”大きさに */
@media (min-width: 641px) {
  /* セクション見出しの存在感UP */
  .lp-worry .lp-sec-head, .lp-authority .lp-sec-head, .lp-kcs .lp-sec-head,
  .lp-timeline .lp-sec-head, .lp-results .lp-sec-head, .lp-rtypes .lp-sec-head { margin-bottom: var(--space-7); }

  /* 不安想起: カードを大きく */
  .lp-worry-cards { gap: 26px; }
  .lp-worry-card { padding: 34px 30px; gap: 18px; }
  .lp-worry-q { width: 48px; height: 48px; font-size: 26px; }
  .lp-worry-card p { font-size: 18px; line-height: 1.9; }
  .lp-worry-foot { font-size: 18px; margin-top: var(--space-6); }

  /* 権威性: カードを大きく */
  .lp-auth-points { gap: 26px; }
  .lp-auth-card { padding: 34px 30px; }
  .lp-auth-k { font-size: 18px; margin-bottom: 16px; }
  .lp-auth-card p { font-size: 15.5px; line-height: 1.9; }

  /* Keep/Cut/Shift: カードを大きく */
  .lp-kcs-row { gap: 18px; }
  .lp-kcs-card { padding: 40px 32px; }
  .lp-kcs-en { font-size: 56px; }
  .lp-kcs-ja { font-size: 19px; margin-bottom: 16px; }
  .lp-kcs-card p { font-size: 15px; line-height: 1.9; }

  /* タイムライン: ノード・余白を大きく */
  .lp-tl { margin-top: var(--space-9); }
  .lp-tl::before { top: 32px; }
  .lp-tl-node { width: 64px; height: 64px; font-size: 26px; margin-bottom: 22px; }
  .lp-tl-body h3 { font-size: 17px; }
  .lp-tl-body p { font-size: 13.5px; }

  /* 実績: 数字を特大に */
  .lp-result-stats { gap: 20px; }
  .lp-result-card { padding: 40px 28px; }
  .lp-result-big { font-size: 56px; }
  .lp-result-card p { font-size: 14.5px; margin-top: 16px; }

  /* 結果タイプ: カードを大きく */
  .lp-rtype-card { padding: 28px 24px; }
  .lp-rtype-name { font-size: 17px; }
  .lp-rtype-card p { font-size: 14.5px; line-height: 1.8; }
}


/* 診断カードヘッダー: メタ折返し防止 */
.lp-prio-card-meta { flex-wrap: nowrap; }
.lp-prio-card-meta span { white-space: nowrap; }
@media (max-width: 480px) { .lp-prio-card-meta { display: none; } }


/* 診断カード: ステップ間で高さを一定に（最多の選択肢数ぶんを確保） */
.lp-prio-opts { min-height: 432px; }
@media (max-width: 640px) { .lp-prio-opts { min-height: 332px; } }


/* 診断結果: 3カラムで均等配置・折返し解消 */
@media (min-width: 641px) {
  .lp-prio-result-cols { grid-template-columns: 1fr 1fr 1fr; gap: 28px; }
  .lp-prio-result-foot { grid-template-columns: 1fr; justify-items: start; }
  .lp-prio-result-cta { display: flex; align-items: center; gap: 18px; }
}
.lp-prio-chips { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.lp-prio-chip { white-space: normal; }
.lp-prio-judge li { gap: 10px; }
.lp-prio-judge .jv { white-space: nowrap; text-align: right; }
.lp-prio-judge .jk { white-space: nowrap; }


/* 優先施策: ピルをやめてリスト型に（折返し崩れ解消・3カラム整列） */
.lp-prio-chips { display: flex; flex-direction: column; gap: 9px; align-items: stretch; }
.lp-prio-chip {
  background: none !important; border-radius: 0; padding: 0 0 0 20px; position: relative;
  font-size: 14px; font-weight: var(--fw-bold); color: var(--charcoal); line-height: 1.6; white-space: normal;
}
.lp-prio-chip::before { content: ""; position: absolute; left: 2px; top: 9px; width: 8px; height: 8px; border-right: 2px solid var(--cyan-600); border-bottom: 2px solid var(--cyan-600); transform: rotate(-45deg); }


/* 無料診断結果: 2カラム（理由｜次に確認すべきこと）＋実データ誘導 */
@media (min-width: 641px) {
  .lp-prio-result-cols { grid-template-columns: 1fr 1fr; gap: 32px; }
}
.lp-prio-checks .ck-q { background: var(--ocean-navy); font-weight: 900; font-size: 12px; }
.lp-prio-gate {
  margin-top: 18px; background: var(--sky-100); border: 1px solid var(--border-soft);
  border-left: 3px solid var(--cyan-500); border-radius: 12px; padding: 16px 18px;
}
.lp-prio-gate strong { display: block; font-size: 15px; color: var(--ocean-navy); margin-bottom: 6px; }
.lp-prio-gate p { margin: 0; font-size: 13px; line-height: 1.7; color: var(--ink-muted); }
@media (max-width: 640px) {
  .lp-prio-gate { padding: 12px 14px; margin-top: 12px; }
  .lp-prio-gate strong { font-size: 13.5px; }
  .lp-prio-gate p { font-size: 12px; }
}


/* Worry 締め文: カード直下の中央バナーに（位置を明確化） */
.lp-worry-foot {
  text-align: center; max-width: 760px; margin: var(--space-6) auto 0;
  background: var(--sky-50); border: 1px solid var(--border-soft); border-radius: 999px;
  padding: 14px 28px; font-weight: var(--fw-bold); color: var(--ocean-navy);
}
.lp-worry-foot::before {
  content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  background: var(--cyan-500); vertical-align: middle; margin-right: 10px;
}
@media (min-width: 641px) { .lp-worry-foot { font-size: 17px; margin-top: var(--space-7); } }
@media (max-width: 640px) { .lp-worry-foot { font-size: 13px; padding: 11px 18px; margin-top: var(--space-4); } }


/* 診断カード: 縦幅をさらに圧縮 */
.lp-prio-opt { padding: 10px 14px; }
.lp-prio-opts { gap: 6px; min-height: 360px; }
.lp-prio-q { margin-bottom: 12px; }
.lp-prio-track { margin-bottom: 12px; }
.lp-prio-step { margin-bottom: 8px; }
@media (min-width: 641px) {
  .lp-prio-quiz { padding-top: 20px; padding-bottom: 20px; }
}
@media (max-width: 640px) {
  .lp-prio-opt { padding: 9px 13px; }
  .lp-prio-opts { min-height: 300px; }
}


/* 結果フッター: 実データ誘導＋CTAを一体のバンドに */
.lp-prio-result-foot { margin-top: 18px; display: flex; flex-direction: column; gap: 14px; }
.lp-prio-result-foot .lp-prio-gate { margin-top: 0; }
.lp-prio-result-cta { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.lp-prio-result-cta .btn { width: 100%; justify-content: center; }
.lp-prio-result-sub { text-align: center; }
@media (min-width: 641px) {
  .lp-prio-result-foot { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center; }
  .lp-prio-result-cta { align-items: stretch; min-width: 280px; }
  .lp-prio-result-cta .btn { width: auto; white-space: nowrap; }
}


/* 診断結果タイプを“はっきり”見せる */
.lp-prio-type { font-size: clamp(24px, 3.2vw, 36px); font-weight: var(--fw-black, 900); color: var(--ocean-navy); letter-spacing: -0.01em; }
.lp-prio-result-lab { display: inline-block; background: var(--cyan-500); color: #fff; padding: 4px 12px; border-radius: 999px; font-size: 12px; letter-spacing: 0.04em; }
@media (min-width: 641px) { .lp-prio-result-head .lp-prio-result-lab { align-self: center; } }

/* フォームに添える診断結果バッジ */
.lp-form-diag {
  display: flex; flex-direction: column; gap: 4px;
  background: var(--sky-100); border: 1px solid var(--border-soft); border-left: 3px solid var(--cyan-500);
  border-radius: 12px; padding: 14px 16px; margin-bottom: 16px;
}
.lp-form-diag .lab { font-size: 11px; font-weight: var(--fw-bold); letter-spacing: 0.08em; color: var(--cyan-700); }
.lp-form-diag strong { font-size: 18px; font-weight: var(--fw-black, 900); color: var(--ocean-navy); }
.lp-form-diag .meta { font-size: 12px; color: var(--ink-muted); }


/* Worry カード: 余白過多で“おかしい”を解消（内容を中央寄せ・バランス調整） */
@media (min-width: 641px) {
  .lp-worry-card { justify-content: center; padding: 30px 28px; gap: 16px; min-height: 200px; }
  .lp-worry-card p { font-size: 17px; line-height: 1.8; font-weight: var(--fw-medium); }
  .lp-worry-q { width: 44px; height: 44px; font-size: 24px; }
}


/* ===== Worry: 見出し＋イラスト2カラム＆締め文を素直に ===== */
.lp-worry-head { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 28px; margin-bottom: var(--space-6); }
.lp-worry-head .lp-sec-head { margin-bottom: 0; max-width: none; order: 1; }
.lp-worry-head .lp-worry-ill { order: 2; }
.lp-worry-ill { width: 150px; height: 142px; flex: 0 0 auto; background: center/contain no-repeat url("../worry-person.png"); }
.lp-worry-foot { background: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; text-align: center; max-width: 720px; margin: var(--space-6) auto 0; font-weight: var(--fw-bold); color: var(--ocean-navy); }
.lp-worry-foot::before { content: ""; display: block; width: 40px; height: 3px; background: var(--cyan-500); border-radius: 2px; margin: 0 auto 14px; }
@media (max-width: 640px) {
  .lp-worry-head { grid-template-columns: 1fr 72px; gap: 14px; margin-bottom: var(--space-4); }
  .lp-worry-ill { width: 72px; height: 68px; }
  .lp-worry-foot { font-size: 13px; margin-top: var(--space-4); }
}

/* ===== 診断カードヘッダー: チェックリストアイコン ===== */
.lp-prio-card-head { display: flex; align-items: center; gap: 10px; }
.lp-prio-card-ico { width: 26px; height: 28px; flex: 0 0 auto; background: center/contain no-repeat url("../checklist.png"); }

/* ===== 強み＋実績 統合: 実績ストリップ（明色で見やすく） ===== */
.lp-strength-stats { margin-top: var(--space-7); }
.lp-strength-stats-h { font-weight: var(--fw-bold); font-size: 16px; color: var(--ocean-navy); margin-bottom: 16px; text-align: center; }
.lp-strength-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.lp-sstat { background: #fff; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); padding: 22px 18px; text-align: center; }
.lp-sstat-big { font-family: var(--font-display); font-style: italic; font-size: 34px; color: var(--accent-navy); line-height: 1.1; }
.lp-sstat-unit { font-family: var(--font-jp); font-style: normal; font-size: 13px; font-weight: var(--fw-bold); margin-left: 4px; color: var(--cyan-600); }
.lp-sstat p { font-size: 12.5px; color: var(--ink-muted); margin: 10px 0 0; line-height: 1.6; }
.lp-strength-stats-note { font-size: 11px; color: var(--ink-soft); margin-top: 12px; text-align: center; }
@media (max-width: 640px) {
  .lp-strength-stats { margin-top: var(--space-5); }
  .lp-strength-stats-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .lp-sstat { padding: 14px; }
  .lp-sstat-big { font-size: 24px; }
}


/* ===== ステップ式フォーム ===== */
.lp-fstep-bar { height: 5px; border-radius: 999px; background: var(--sky-100); overflow: hidden; margin-bottom: 12px; }
.lp-fstep-bar span { display: block; height: 100%; background: var(--cyan-500); border-radius: 999px; transition: width 320ms var(--ease-out); }
.lp-fstep-label { font-family: var(--font-display); font-style: italic; font-size: 14px; color: var(--cyan-700); margin-bottom: 14px; display: flex; align-items: baseline; gap: 10px; }
.lp-fstep-label span { font-family: var(--font-jp); font-style: normal; font-size: 13px; font-weight: var(--fw-bold); color: var(--ocean-navy); }
.lp-fstep-nav { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 16px; }
.lp-fstep-nav .btn { min-width: 160px; justify-content: center; }
.lp-fstep-nav .lp-prio-back { background: none; border: none; cursor: pointer; font-size: 13px; font-weight: var(--fw-bold); color: var(--ink-muted); }
.lp-form-stepped .lp-consent { margin-top: 10px; }
.lp-form-foot { margin-top: 14px; font-size: 12px; color: var(--ink-muted); line-height: 1.7; }


/* FV背景: 軽量な解析グラフィック */
.lp-priority { background: #FBFDFF url("../fv-bg.png") center top / cover no-repeat; }
.lp-priority::before { background: transparent; }
@media (max-width: 640px) {
  .lp-priority { background-size: 200% auto; background-position: right -20px top; }
}


/* 申込: フォームを上げて幅を縮める */
.lp-apply .lp-sec-head { margin-bottom: var(--space-4); }
@media (min-width: 641px) {
  .lp-apply-grid { grid-template-columns: 0.8fr 1fr; gap: 48px; align-items: start; }
  .lp-form-stepped { max-width: 560px; }
}


/* ===== 強み カードを見やすく（現行のシアン/ネイビー・クリーンカードに統一） ===== */
.lp-strengths { background: #fff; }
.lp-strength-list { gap: 18px; }
.lp-strength-card {
  display: block; background: #fff; border: 1px solid var(--border-soft);
  border-top: 3px solid var(--cyan-500); border-radius: var(--radius-lg);
  padding: 26px 24px; transition: box-shadow 180ms var(--ease-out), transform 180ms var(--ease-out);
}
.lp-strength-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.lp-strength-n {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%; background: var(--sky-100);
  color: var(--accent-navy); font-family: var(--font-display); font-style: italic;
  font-size: 22px; margin-bottom: 16px;
}
.lp-strength-body h3 { font-size: 17px; line-height: 1.5; color: var(--ocean-navy); margin: 0 0 10px; font-weight: var(--fw-bold); }
.lp-strength-body p { font-size: 13.5px; line-height: 1.85; color: var(--ink-muted); margin: 0; }
.lp-strengths .lp-sec-head p { color: var(--ink-muted); }
@media (max-width: 640px) {
  .lp-strength-card { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: center; padding: 16px; border-top-width: 3px; }
  .lp-strength-n { width: 40px; height: 40px; font-size: 18px; margin: 0; }
  .lp-strength-body h3 { font-size: 14.5px; margin-bottom: 4px; }
  .lp-strength-body p { font-size: 12.5px; line-height: 1.6; }
}


/* フォームの戻る・ナビを見やすく */
.lp-fstep-nav .lp-prio-back { font-size: 15px; padding: 10px 14px; color: var(--accent-navy); }
.lp-fstep-nav .lp-prio-back:hover { color: var(--cyan-600); }
.lp-fstep-nav .btn { font-size: 15px; }


/* Worry 締め文: 主張を抑えて控えめに */
.lp-worry-foot { font-weight: var(--fw-regular); color: var(--ink-muted); font-size: 14px; }
.lp-worry-foot::before { display: none; }
@media (min-width: 641px) { .lp-worry-foot { font-size: 15px; margin-top: var(--space-6); } }


/* プラン: 2枚のカードを揃える（CTAを下端で一直線に） */
.lp-plans { align-items: stretch; }
.lp-plan { display: flex; flex-direction: column; }
.lp-plan-cta-row { margin-top: auto; display: flex; justify-content: flex-end; padding-top: var(--space-4); }
.lp-plan-note { margin: 10px 0 0; font-size: 12px; line-height: 1.7; color: var(--ink-muted); }
@media (min-width: 641px) {
  /* 両カードのコンテンツ開始位置を揃える（フラグは絶対配置） */
  .lp-plan.featured .lp-plan-flag { position: absolute; top: -14px; left: 24px; }
  .lp-plan.featured { padding-top: 24px; }
}


/* ===== 強み・実績: 非対称2カラム（左=見出し+実績ネイビーパネル / 右=強み3枚） ===== */
.lp-strengths-grid { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: start; }
.lp-strengths-aside h2 { font-size: clamp(26px, 3vw, 40px); font-weight: var(--fw-black,900); color: var(--ocean-navy); line-height: 1.3; margin: 0 0 12px; letter-spacing: -0.01em; }
.lp-strengths-aside h2::before { content:""; display:block; width:44px; height:4px; background:var(--cyan-500); border-radius:2px; margin-bottom:16px; }
.lp-strengths-aside > p { font-size: 13.5px; line-height: 1.85; color: var(--ink-muted); margin: 0; }
.lp-strengths-stats { margin-top: 20px; background: var(--ocean-navy); border-radius: var(--radius-lg); padding: 22px 22px 16px; }
.lp-strengths-stats-h { color:#fff; font-weight:var(--fw-bold); font-size:14px; margin-bottom:12px; }
.lp-sstat-row { display:flex; align-items:baseline; gap:14px; padding:9px 0; border-bottom:1px solid rgba(255,255,255,0.12); }
.lp-sstat-row .lp-sstat-big { color:#fff; font-size:26px; flex:0 0 auto; min-width:118px; }
.lp-sstat-row .lp-sstat-unit { color: var(--cyan-400,#38BDF8); }
.lp-sstat-row p { color:rgba(255,255,255,0.8); font-size:12px; line-height:1.5; margin:0; }
.lp-strengths-stats .lp-strength-stats-note { color:rgba(255,255,255,0.5); text-align:left; margin-top:10px; }
.lp-strength-list { display:flex; flex-direction:column; gap:14px; }
.lp-strengths .lp-strength-card { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; border:1.5px solid #BFCAD9; border-radius: var(--radius-md); background:#fff; padding:22px 24px; }
.lp-strengths .lp-strength-n { margin:0; }
@media (min-width: 641px) {
  .lp-strengths-grid { grid-template-columns: 0.85fr 1.15fr; gap: 44px; }
}

/* ===== Worry 締め文: センターで大きく ===== */
.lp-worry-foot { text-align:center !important; font-weight:var(--fw-bold) !important; color:var(--ocean-navy) !important; font-size:18px !important; margin-left:auto; margin-right:auto; }
@media (min-width:641px){ .lp-worry-foot { font-size:24px !important; margin-top:var(--space-7) !important; } }

/* ===== FAQ: 開閉でレイアウトが崩れない（中央寄せをやめ上詰め） ===== */
@media (min-width: 641px) {
  .lp-root main > section#faq { justify-content: flex-start; padding-top: var(--space-9); }
}


/* プラン「見る範囲」リストを見やすく（シアンのチェック＋行区切り） */
.lp-plan-scope { display: flex; flex-direction: column; gap: 0; }
.lp-plan-scope li {
  position: relative; list-style: none; padding: 9px 0 9px 28px;
  font-size: 13.5px; line-height: 1.6; color: var(--charcoal);
  border-bottom: 1px dashed var(--border-soft);
}
.lp-plan-scope li:last-child { border-bottom: 0; }
.lp-plan-scope li::before {
  content: ""; position: absolute; left: 4px; top: 13px;
  width: 9px; height: 9px; border-right: 2px solid var(--cyan-600); border-bottom: 2px solid var(--cyan-600);
  transform: rotate(45deg);
}
.lp-plan.featured .lp-plan-scope li::before { border-color: var(--cyan-500); }
.lp-plan-h { color: var(--cyan-700); font-weight: var(--fw-bold); letter-spacing: 0.04em; }
@media (max-width: 640px) { .lp-plan-scope li { font-size: 12.5px; padding: 7px 0 7px 24px; } }


/* 強み・実績: 余分な空間を解消（両カラムを揃え、内容を分散） */
@media (min-width: 641px) {
  .lp-strengths-grid { align-items: stretch; }
  .lp-strengths-aside { display: flex; flex-direction: column; }
  .lp-strengths-stats { margin-top: auto; }
  .lp-strength-list { justify-content: space-between; height: 100%; }
  .lp-strengths .lp-strength-card { flex: 1; }
}


/* 見出し・本文の改行を自然に */
.lp-root .lp-sec-head h2 { text-wrap: balance; }
.lp-root .lp-sec-head p { text-wrap: pretty; max-width: 640px; }
.lp-rtypes .lp-sec-head h2 { text-wrap: balance; }

/* Worry 締め文: 右余白・変な改行を解消（全幅センター） */
.lp-worry-foot { max-width: none !important; text-wrap: balance; }


/* FV診断カード: 末尾の余白を解消（選択肢領域は内容にフィット） */
.lp-prio-opts { min-height: 0 !important; }

/* 強み aside: 改行反映＋注釈を小さく */
.lp-strengths-aside > p { white-space: pre-line; }
.lp-strengths-stats .lp-strength-stats-note { font-size: 10px; }

/* フォーム注釈をより小さく */
.lp-form-foot { font-size: 11px; color: var(--ink-soft); }

/* フォーム注釈: さらに小さく・薄いグレー */
.lp-form-stepped .lp-form-foot { font-size: 10.5px !important; color: #9AA6B6 !important; font-weight: var(--fw-regular) !important; line-height: 1.6 !important; margin-top: 10px !important; }


/* Worry 締め文: 赤字で強調 */
.lp-worry-foot { color: var(--error) !important; }


/* 結果タイプ見出し: 1行に収める */
.lp-rtypes .lp-sec-head h2 { font-size: clamp(24px, 2.7vw, 34px); white-space: nowrap; text-wrap: nowrap; }
@media (max-width: 640px) { .lp-rtypes .lp-sec-head h2 { font-size: 19px; white-space: normal; text-wrap: balance; } }

/* 結果タイプカード: スキャンしやすく（マーカー＋階層強化） */
.lp-rtype-card { padding: 22px 22px; }
.lp-rtype-name { display: block; border-bottom: none; padding: 0 0 0 18px; margin-bottom: 8px; position: relative; font-size: 16px; color: var(--ocean-navy); line-height: 1.4; }
.lp-rtype-name::before { content: ""; position: absolute; left: 0; top: 6px; width: 9px; height: 9px; border-radius: 2px; background: var(--cyan-500); }
.lp-rtype-card:not(.feat) .lp-rtype-name::before { background: var(--bluegrey-300); }
.lp-rtype-card p { font-size: 13px; line-height: 1.7; color: var(--ink-muted); padding-left: 18px; }


/* 強み aside: 実績パネルと上要素の余白を確保 */
.lp-strengths-stats { margin-top: var(--space-6) !important; }
.lp-strengths-aside > p { margin-bottom: 4px; }


/* 強み: 解説イラスト（見出し横にアクセント配置） */
.lp-strengths-aside { position: relative; }
.lp-strengths-ill { width: 110px; height: 124px; background: center/contain no-repeat url("../teacher.png"); }
@media (min-width: 641px) {
  .lp-strengths-ill { position: absolute; top: -6px; right: 0; width: 116px; height: 130px; }
  .lp-strengths-aside h2 { padding-right: 120px; }
}
@media (max-width: 640px) {
  .lp-strengths-ill { width: 72px; height: 82px; margin-bottom: 6px; }
}


/* FAQ: 見出し横にアイコン */
.lp-faq-head { display: flex; align-items: center; gap: 18px; }
.lp-faq-ico { width: 64px; height: 64px; flex: 0 0 auto; background: center/contain no-repeat url("../faq-icon.png"); }
@media (max-width: 640px) { .lp-faq-ico { width: 44px; height: 44px; } .lp-faq-head { gap: 12px; } }


/* 強み: イラストを見出しと同じ行に（重なり解消） */
.lp-strengths-htop { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.lp-strengths-htop h2 { margin: 0; padding-right: 0 !important; }
.lp-strengths-ill { position: static !important; }
@media (min-width: 641px) { .lp-strengths-ill { width: 104px; height: 118px; } }


/* FAQ アイコン: 4つのうち「?」1つだけ使用 */
.lp-faq-ico { background-image: url("../faq-bubble.png") !important; }


/* 開閉で中央寄せが効いて上が見切れる→上詰めに固定（崩れ防止） */
@media (min-width: 641px) {
  .lp-root main > section#faq, .lp-root main > section#apply {
    justify-content: flex-start !important;
    padding-top: var(--space-8); padding-bottom: var(--space-8);
  }
}
/* FAQ 回答の開閉をなめらかに */
.kit-faq-item { overflow: hidden; }

/* FAQ 背景: 軽量な抽象グラフィック */
#faq.lp-sec { background: #F6FBFF url("../faq-bg.png") center / cover no-repeat; }

/* FAQ 開閉で崩れない: 開いた状態でも1画面に収める（行間・余白を圧縮） */
@media (max-width: 640px) {
  #faq.lp-sec { padding-top: 22px !important; padding-bottom: 64px !important; }
  #faq .kit-faq-q { padding: 8px 0 !important; }
  #faq .kit-faq-a { padding-bottom: 8px; }
  #faq .kit-faq-a p { font-size: 12px; line-height: 1.7; }
  #faq .lp-sec-head { margin-bottom: 10px !important; }
}
@media (min-width: 641px) {
  #faq .kit-faq-q { padding: 12px 0; }
}


/* 申込: 見出しを左カラムへ（フォームと横並び） */
.lp-apply-aside .eyebrow { margin-bottom: 8px; }
.lp-apply-aside h2 { font-size: clamp(24px, 2.6vw, 34px); font-weight: var(--fw-black,900); color: var(--ocean-navy); line-height: 1.35; margin: 0 0 12px; letter-spacing: -0.01em; }
.lp-apply-intro { font-size: 13.5px; line-height: 1.85; color: var(--ink-muted); margin: 0 0 18px; }
@media (min-width: 641px) {
  .lp-apply .lp-apply-grid { align-items: start; }
}
@media (max-width: 640px) {
  .lp-apply-aside h2 { font-size: 21px; }
  .lp-apply-intro { font-size: 13px; margin-bottom: 12px; }
}


/* 戻るボタン: 1行固定 */
.lp-fstep-nav .lp-prio-back { white-space: nowrap; flex: 0 0 auto; }
.lp-fstep-nav { flex-wrap: nowrap; }

/* 強み 見出し: 大きく */
.lp-strengths .lp-strength-body h3 { font-size: 21px !important; line-height: 1.45 !important; }
@media (max-width: 640px) { .lp-strengths .lp-strength-body h3 { font-size: 16px !important; } }

/* FAQ アコーディオン崩れ防止: 開いた回答が次セクションに重ならないよう、セクションを内容に追従 */
@media (min-width: 641px) {
  .lp-root main > section#faq {
    justify-content: flex-start !important;
    height: auto; min-height: 100%;
    padding-top: var(--space-7) !important; padding-bottom: var(--space-7) !important;
    overflow: visible;
  }
  #faq .kit-faq-q { padding: 11px 0; }
  #faq .kit-faq-a { padding-bottom: 12px; }
}


/* ===== タイムライン: ステップ順次アニメーション ===== */
@media (prefers-reduced-motion: no-preference) {
  .lp-tl-step { opacity: 0; transform: translateY(16px); }
  .lp-timeline.tl-animate .lp-tl-step { animation: tlStepIn 600ms var(--ease-out) forwards; }
  .lp-timeline.tl-animate .lp-tl-step:nth-child(1) { animation-delay: 80ms; }
  .lp-timeline.tl-animate .lp-tl-step:nth-child(2) { animation-delay: 260ms; }
  .lp-timeline.tl-animate .lp-tl-step:nth-child(3) { animation-delay: 440ms; }
  .lp-timeline.tl-animate .lp-tl-step:nth-child(4) { animation-delay: 620ms; }
  .lp-timeline.tl-animate .lp-tl-step:nth-child(5) { animation-delay: 800ms; }
  /* 接続線も伸びる */
  .lp-tl::before { transform-origin: left center; transform: scaleX(0); }
  .lp-timeline.tl-animate .lp-tl::before { animation: tlLineGrow 1100ms var(--ease-out) 200ms forwards; }
  /* モバイル(縦線)は上から伸ばす */
  @media (max-width: 640px) {
    .lp-tl::before { transform-origin: top center; transform: scaleY(0); }
    .lp-timeline.tl-animate .lp-tl::before { animation: tlLineGrowY 1100ms var(--ease-out) 200ms forwards; }
  }
  /* モバイルはスライドが見えてから発火 */
  .lp-timeline.slide-active.tl-animate .lp-tl-step { animation-play-state: running; }
}
@keyframes tlStepIn { to { opacity: 1; transform: none; } }
@keyframes tlLineGrow { to { transform: scaleX(1); } }
@keyframes tlLineGrowY { to { transform: scaleY(1); } }


/* ===== FAQ: 常時DOM＋grid-rowsで滑らか開閉（ジャンプ・見切れ撲滅） ===== */
.kit-faq-a-wrap { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 280ms var(--ease-out); }
.kit-faq-item.is-open .kit-faq-a-wrap { grid-template-rows: 1fr; }
/* 折りたたみの“切り口”要素は padding/border/margin を持たない（0fr時に隙間が出ないように） */
.kit-faq-a-wrap > .kit-faq-a { overflow: hidden; min-height: 0; padding: 0 !important; margin: 0 !important; border: 0 !important; }
/* 余白は内側の要素に持たせる（閉時はクリップされ、開時のみ見える） */
.kit-faq-a-wrap > .kit-faq-a > p { padding: 4px 0 16px; margin: 0; }
#faq .kit-faq-a { padding-bottom: 0; }
/* セクションは内容に追従（min-heightで最低1画面、必要なら伸びる） */
.lp-root main > section#faq { height: auto; }
@media (min-width: 641px) {
  .lp-root main > section#faq { min-height: 100%; justify-content: flex-start; }
}


/* ============================================================ SP 1画面化（plans / strengths / apply 再設計） */
@media (max-width: 640px) {
  /* --- プラン: カードを縦に詰める --- */
  #plans .lp-plans .lp-plan { padding: 14px 16px 16px; }
  #plans .lp-plan-kicker { font-size: 11px; margin-bottom: 3px; }
  #plans .lp-plan-name { font-size: 18px; }
  #plans .lp-plan-tagline { font-size: 13px; margin: 3px 0 5px; }
  #plans .lp-plan-price { margin-bottom: 6px; }
  #plans .lp-plan-price .num { font-size: 30px; }
  #plans .lp-plan-h { margin: 7px 0 4px; font-size: 11px; }
  #plans .lp-plan-scope li { padding: 4px 0 4px 22px; font-size: 12px; line-height: 1.4; }
  #plans .lp-plan-note { font-size: 11px; margin-top: 6px; }
  #plans .lp-plan-cta-row { padding-top: 10px; }
  #plans .lp-plan .btn { padding: 11px 18px; font-size: 13.5px; }

  /* --- 強み・実績: 縦積みを圧縮、実績は2x2 --- */
  #strengths .lp-strengths-grid { gap: 16px; }
  #strengths .lp-strengths-htop h2 { font-size: 21px; }
  #strengths .lp-strengths-ill { width: 60px; height: 68px; }
  #strengths .lp-strengths-aside > p { font-size: 12px; line-height: 1.7; margin-bottom: 2px; }
  #strengths .lp-strengths-stats { margin-top: 12px !important; padding: 14px 14px 10px; }
  #strengths .lp-strengths-stats-h { font-size: 12.5px; margin-bottom: 8px; }
  #strengths .lp-sstat-row { padding: 6px 0; gap: 10px; }
  #strengths .lp-sstat-row .lp-sstat-big { font-size: 19px; min-width: 92px; }
  #strengths .lp-sstat-row p { font-size: 11px; }
  #strengths .lp-strengths-stats .lp-strength-stats-note { font-size: 10px; margin-top: 6px; }
  #strengths .lp-strength-list { gap: 8px; }
  #strengths .lp-strengths .lp-strength-card, #strengths .lp-strength-card { padding: 11px 14px; gap: 12px; }
  #strengths .lp-strength-n { width: 34px; height: 34px; font-size: 16px; }
  #strengths .lp-strengths .lp-strength-body h3 { font-size: 14px !important; margin-bottom: 2px; }
  #strengths .lp-strength-body p { font-size: 11.5px; line-height: 1.5; }

  /* --- 申込: aside を最小化（重複情報は隠し）フォーム主役 --- */
  #apply .lp-apply-grid { gap: 12px; }
  #apply .lp-apply-aside .eyebrow { margin-bottom: 4px; }
  #apply .lp-apply-aside h2 { font-size: 19px; margin-bottom: 6px; }
  #apply .lp-apply-intro { font-size: 12px; line-height: 1.7; margin-bottom: 8px; }
  #apply .lp-apply-price { display: none; }
  #apply .lp-apply-aside .p-sm { display: none; }
  #apply .lp-eligibility { display: none; }
  #apply .lp-fstep-label { margin-bottom: 10px; }
  #apply .lp-form-row { margin-bottom: 9px; }
  #apply .lp-form-foot { display: none; }
}


/* SP 仕上げ: strengths / apply を1画面に収める */
@media (max-width: 640px) {
  #strengths.lp-sec { padding-top: var(--space-5) !important; padding-bottom: 56px !important; }
  #strengths .lp-strengths-grid { gap: 12px; }
  #strengths .lp-strengths-stats { padding: 12px 14px 8px; }
  #strengths .lp-sstat-row { padding: 5px 0; }
  #strengths .lp-sstat-row .lp-sstat-big { font-size: 18px; }
  #strengths .lp-strength-list { gap: 7px; }
  #strengths .lp-strength-card { padding: 9px 14px !important; }
  #strengths .lp-strength-n { width: 30px; height: 30px; font-size: 14px; }
  #strengths .lp-strength-body p { font-size: 11px; line-height: 1.45; }

  #apply.lp-sec { padding-top: var(--space-5) !important; padding-bottom: 56px !important; }
  #apply .lp-apply-aside h2 { font-size: 18px; }
  #apply .lp-apply-intro { margin-bottom: 6px; }
  #apply .lp-fstep-bar { margin-bottom: 8px; }
  #apply .lp-form-diag { padding: 10px 12px; margin-bottom: 10px; }
  #apply .lp-form-row { margin-bottom: 8px; }
}


/* ============================================================ SP: 各セクションの中身を縦中央に（変な下余白を解消） */
@media (max-width: 640px) {
  .lp-root main > section {
    display: flex; flex-direction: column; justify-content: center;
    padding-top: 52px !important; padding-bottom: 76px !important;
  }
  .lp-root main > section > .kit-container { width: 100%; }
  /* フッターは中央寄せしない */
  .lp-root main > .kit-footer { display: block; }
}


/* ============================================================ SP 仕上げ: 不安想起のバランス & 結果タイプの覗き＋ヒント */
@media (max-width: 640px) {
  /* 不安想起: カードをやや大きく、結論文に余白 */
  .lp-worry-cards { gap: 12px; margin-top: var(--space-5); }
  .lp-worry-card { padding: 16px 18px; gap: 14px; }
  .lp-worry-card p { font-size: 13.5px; line-height: 1.6; }
  .lp-worry-q { flex: 0 0 36px; width: 36px; height: 36px; font-size: 20px; }
  .lp-worry-foot { margin-top: var(--space-5) !important; font-size: 13.5px !important; line-height: 1.7 !important; padding: 0 8px; }

  /* 結果タイプ: 2枚目をしっかり覗かせる＋スワイプヒント */
  .lp-rtype-grid .lp-rtype-card { flex: 0 0 78%; }
  .lp-rtypes .lp-sec-head { position: relative; }
  .lp-rtypes .lp-sec-head::after {
    content: "← スワイプして8タイプを見る →";
    display: block; margin-top: 10px;
    font-size: 11px; font-weight: var(--fw-bold); color: var(--cyan-700);
    letter-spacing: 0.02em;
  }
  .lp-rtype-card p { font-size: 12px; line-height: 1.6; }
}


/* 結果タイプ: 自分の診断結果カードを強調＋バッジ */
.lp-rtype-card.is-mine { border: 2px solid var(--cyan-500); background: var(--sky-50); box-shadow: var(--shadow-soft); position: relative; }
.lp-rtype-mine {
  position: absolute; top: 0; left: 14px; transform: translateY(-50%);
  background: var(--cyan-500); color: #fff; font-size: 10.5px; font-weight: 900;
  letter-spacing: 0.04em; border-radius: 999px; padding: 3px 12px; white-space: nowrap;
}
.lp-rtype-card.is-mine .lp-rtype-name::before { background: var(--cyan-600); }
@media (max-width: 640px) { .lp-rtype-grid { padding-top: 14px; } }


/* 結果タイプ: feat色分けを撤廃し全カード均一（「あなたの診断結果」だけ強調） */
.lp-rtype-card.feat { border-top: 1px solid var(--border-soft) !important; background: #fff !important; box-shadow: none !important; }
.lp-rtype-card.feat .lp-rtype-name::before { background: var(--bluegrey-300) !important; }
.lp-rtype-tag { display: none !important; }
/* is-mine だけは強調維持 */
.lp-rtype-card.is-mine { border: 2px solid var(--cyan-500) !important; background: var(--sky-50) !important; box-shadow: var(--shadow-soft) !important; }
.lp-rtype-card.is-mine .lp-rtype-name::before { background: var(--cyan-600) !important; }


/* ============================================================ SP 修正: プランバッジ重なり / タイムライン余白 / FV背景 */
@media (max-width: 640px) {
  /* プラン: 「上位版/おすすめ」バッジが文字に重ならないよう余白確保 */
  #plans .lp-plans .lp-plan.featured { padding-top: 26px; position: relative; }
  #plans .lp-plan.featured .lp-plan-flag {
    position: absolute; top: 12px; left: 16px;
    font-size: 11px; padding: 3px 10px; border-radius: 999px; margin: 0;
  }
  #plans .lp-plan.featured .lp-plan-kicker { margin-top: 4px; }

  /* タイムライン: 上下余白を詰めてステップ間を広げる（中央寄せの空きすぎ解消） */
  #flow.lp-sec { justify-content: flex-start; padding-top: 40px !important; padding-bottom: 72px !important; }
  #flow .lp-tl { margin-top: var(--space-5); }
  #flow .lp-tl-step { padding-bottom: 22px; }
  #flow .lp-tl-step:last-child { padding-bottom: 0; }

  /* FV背景: スマホは画像なし（無地スカイ） */
  .lp-priority {
    background: #EAF4FB !important;
  }
}


/* ============================================================ SP 再調整: 余白を埋める / 結果タイプ縦並び / バッジ重なり解消 */
@media (max-width: 640px) {
  /* --- プラン featured: バッジを文字に重ねない --- */
  #plans .lp-plans .lp-plan.featured { padding-top: 40px !important; }
  #plans .lp-plan.featured .lp-plan-flag { top: 12px !important; left: 16px !important; }
  #plans .lp-plan.featured .lp-plan-kicker { margin-top: 0 !important; }

  /* --- 不安想起: カード/間隔を大きくして画面を満たす --- */
  #worry .lp-worry-cards { gap: 14px; margin-top: var(--space-5); }
  #worry .lp-worry-card { padding: 20px 18px; }
  #worry .lp-worry-card p { font-size: 14px; line-height: 1.7; }
  #worry .lp-worry-q { flex: 0 0 40px; width: 40px; height: 40px; font-size: 22px; }
  #worry .lp-worry-foot { font-size: 14.5px !important; margin-top: var(--space-6) !important; }
  #worry .lp-worry-head { margin-bottom: var(--space-5); }
  #worry .lp-worry-head h2 { font-size: 23px; }

  /* --- 結果タイプ: 横スライド廃止 → 2列の縦並び --- */
  #result-types .lp-rtype-grid {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px;
    overflow: visible !important; margin: var(--space-4) 0 0 !important; padding: 0 !important;
  }
  #result-types .lp-rtype-grid .lp-rtype-card { flex: none !important; padding: 14px 14px; }
  #result-types .lp-rtypes .lp-sec-head::after, .lp-rtypes .lp-sec-head::after { display: none !important; }
  #result-types .lp-rtype-card.is-mine { grid-column: 1 / -1; }

  /* --- FAQ: 行間を広げて画面を満たす（上下空きすぎ解消） --- */
  #faq.lp-sec { justify-content: flex-start; padding-top: 36px !important; }
  #faq .kit-faq-q { padding: 14px 0 !important; }
  #faq .lp-sec-head { margin-bottom: var(--space-4) !important; }
}


/* SP 微修正: 結果タイプを確実に1画面（is-mineも1セル）/ plans -5 */
@media (max-width: 640px) {
  #result-types .lp-rtype-card.is-mine { grid-column: auto !important; }
  #result-types .lp-rtype-grid .lp-rtype-card { padding: 12px 13px; }
  #result-types .lp-rtype-name { font-size: 12.5px; }
  #result-types .lp-rtype-card p { font-size: 11px; line-height: 1.5; }
  #result-types.lp-sec { padding-top: 40px !important; padding-bottom: 64px !important; }
  #result-types .lp-sec-head h2 { font-size: 19px; }
  #result-types .lp-sec-head p { font-size: 12px; }
  #plans .lp-plans .lp-plan { padding-bottom: 14px; }
  #plans .lp-plan-cta-row { padding-top: 8px; }
}


/* ============================================================ SP: フッター整頓 / FV見出し中央・大きく / リード文を診断下に */
.lp-prio-lead-sp { display: none; }
@media (max-width: 640px) {
  /* FV見出し: 中央・大きく・自然な改行 */
  #priority .lp-prio-intro { text-align: center; }
  #priority .lp-prio-intro .eyebrow { display: inline-block; }
  #priority .lp-prio-intro h1 { font-size: 27px; line-height: 1.4; margin: 6px 0 14px; }
  #priority .lp-prio-intro h1 br { display: none; }
  /* リード文を診断カードの下に表示 */
  .lp-prio-lead-sp { display: block; margin-top: 16px; font-size: 13px; line-height: 1.85; color: var(--ink-muted); text-align: left; }
  .lp-prio-lead-sp b { color: var(--ocean-navy); font-weight: var(--fw-bold); }

  /* フッター: 1カラムで整頓 */
  .lp-root main > .kit-footer { padding-top: var(--space-7); padding-bottom: 90px; }
  .kit-footer-inner { grid-template-columns: 1fr 1fr; gap: var(--space-5) var(--space-4); padding-bottom: var(--space-5); }
  .kit-footer-inner > div:first-child { grid-column: 1 / -1; }
  .kit-footer h4 { font-size: 13px; margin-bottom: var(--space-3); }
  .kit-foot-links a { font-size: 12.5px; }
  .kit-foot-bottom { flex-direction: column; align-items: flex-start; gap: 8px; font-size: 11.5px; }
}


/* SP: 優先度診断セクションを1画面に収める（リード文追加分を吸収） */
@media (max-width: 640px) {
  #priority.lp-sec { padding-top: 36px !important; padding-bottom: 70px !important; }
  #priority .lp-prio-intro h1 { font-size: 24px; margin: 4px 0 10px; }
  #priority .lp-prio-grid { gap: 10px; }
  #priority .lp-prio-card-head { padding: 10px 14px; }
  #priority .lp-prio-quiz, #priority .lp-prio-result { padding: 12px 14px 14px; }
  #priority .lp-prio-opts { min-height: 270px; gap: 6px; }
  #priority .lp-prio-opt { padding: 8px 12px; font-size: 12.5px; }
  #priority .lp-prio-q { font-size: 15px; margin-bottom: 8px; }
  .lp-prio-lead-sp { margin-top: 12px; font-size: 12px; }
}


/* SP: 「見る範囲」チェックマーカーを第1行に揃える（ずれ解消） */
@media (max-width: 640px) {
  #plans .lp-plan-scope li { padding-top: 5px; padding-bottom: 5px; line-height: 1.5; }
  #plans .lp-plan-scope li::before { top: 9px; width: 8px; height: 8px; }
}

/* SP: 優先度診断をもう一段詰めて1画面に収める */
@media (max-width: 640px) {
  #priority .lp-prio-opts { min-height: 232px; }
  #priority .lp-prio-opt { padding: 7px 12px; }
  #priority .lp-prio-track { margin-bottom: 10px; }
  #priority .lp-prio-step { margin-bottom: 6px; }
  .lp-prio-lead-sp { margin-top: 10px; font-size: 11.5px; line-height: 1.7; }
  #priority.lp-sec { padding-bottom: 64px !important; }
}


/* SP: plans/priority のわずかなはみ出しを解消 */
@media (max-width: 640px) {
  #plans .lp-plans .lp-plan { padding-top: 14px; }
  #plans .lp-plan-scope li { padding-top: 4px; padding-bottom: 4px; }
  #plans .lp-plan-h { margin: 6px 0 3px; }
  #priority .lp-prio-opts { min-height: 222px; }
}

/* ============================================================
   レビュー対応 — フォント統一 / 強み再構成 / 各種左揃え
   ============================================================ */

/* EN・数字フォントを本文・見出しに統一（装飾セリフ斜体を解除） */
:root { --font-display: var(--font-heading); }
.tsumugu .quote,
.kit-value-en, .kit-ceo-pull, .kit-manifesto-h em,
.kit-hero-text .hero-h .accent, .kit-lp-hero-text .hero-h .accent,
.lp-hero-h .qmark, .lp-pain .qt, .lp-card-annual .amt .big,
.lp-loop-n, .lp-krs-k, .lp-worry-q, .lp-ba-tag, .lp-result-big,
.lp-strength-n, .lp-prio-step, .lp-kcs-en, .lp-sstat-big, .lp-cvstat-big,
.lp-fstep-label, .lp-hero-demo-step,
.lp-resolve::after, #deliver .lp-deliver-item::before {
  font-family: var(--font-heading) !important;
  font-style: normal !important;
}

/* Worry 見出しを左揃え */
#worry .lp-worry-head .lp-sec-head,
#worry .lp-worry-head h2 { text-align: left; }

/* Worry イラスト: PCは見出し横、スマホは締め文の直前に中央・大きめ */
.lp-worry-ill-sp { display: none; }
@media (max-width: 640px) {
  #worry .lp-worry-head .lp-worry-ill { display: none; }
  #worry .lp-worry-head { grid-template-columns: 1fr; }
  .lp-worry-ill-sp { display: block; width: 168px; height: 159px; margin: var(--space-5) auto 0; }
}

/* 優先度診断カード見出しを左揃え */
#priority .lp-prio-card-head { justify-content: flex-start; }
#priority .lp-prio-card-name { text-align: left; }

/* FAQ 見出し: アイコン削除に伴い左揃え */
#faq .lp-faq-head { gap: 0; }

/* 強み: イラストを大きく・左右反転してasideに配置 */
#strengths .lp-strengths-htop { display: block; }
#strengths .lp-strengths-aside .lp-strengths-ill {
  transform: scaleX(-1);
  margin-top: var(--space-5);
}
@media (min-width: 641px) {
  #strengths .lp-strengths-aside .lp-strengths-ill { width: 200px !important; height: 226px !important; }
  #strengths .lp-strengths-aside h2 { padding-right: 0 !important; }
}
@media (max-width: 640px) {
  #strengths .lp-strengths-aside .lp-strengths-ill { width: 120px !important; height: 136px !important; }
}

/* 強みイラスト: スマホはCV見出しの直前に中央・大きめ表示 */
.lp-strengths-ill-sp { display: none; }
@media (max-width: 640px) {
  #strengths .lp-strengths-aside .lp-strengths-ill { display: none; }
  .lp-strengths-ill-sp { display: block !important; width: 150px !important; height: 170px !important; margin: 0 auto var(--space-4) !important; transform: scaleX(-1); }
}

/* 強み: CV改善実績を横長4カラムバンド（FAQ直前） */
.lp-cvstats { margin-top: var(--space-8); }
.lp-cvstats-h {
  font-weight: var(--w-bold); font-size: 20px; color: var(--ocean-navy);
  text-align: center; margin-bottom: var(--space-5);
}
.lp-cvstats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.lp-cvstat {
  background: var(--ocean-navy); color: #fff;
  border-radius: var(--radius-lg); padding: 28px 22px; text-align: center;
}
.lp-cvstat-big { font-size: 36px; line-height: 1.1; font-weight: 900; color: #fff; }
.lp-cvstat-unit { font-size: 14px; font-weight: var(--fw-bold); margin-left: 4px; color: var(--cyan-400, #38BDF8); }
.lp-cvstat p { font-size: 13.5px; line-height: 1.75; color: rgba(255,255,255,0.82); margin: 14px 0 0; }
.lp-cvstats-note { text-align: center; color: var(--ink-muted); font-size: 12px; margin-top: 14px; }
@media (max-width: 760px) {
  .lp-cvstats-grid { grid-template-columns: 1fr 1fr; }
  .lp-cvstat { padding: 20px 16px; }
  .lp-cvstat-big { font-size: 28px; }
}

/* Belief セクション: 左寄せ */
.lp-belief .lp-belief-main,
.lp-belief .lp-belief-h,
.lp-belief .lp-belief-body { text-align: left; }
.lp-belief .lp-belief-grid { align-items: start; }
.lp-belief .kit-container { max-width: var(--container-max); }
.lp-belief .lp-belief-body p {
  font-size: 22px;
  line-height: 1.95;
  word-break: auto-phrase;
  text-wrap: pretty;
  color: var(--charcoal-soft);
}
@media (min-width: 641px) {
  .lp-belief .lp-belief-grid { grid-template-columns: minmax(0, 1fr) minmax(240px, 360px); }
  .lp-belief .lp-belief-disc { width: 100%; max-width: 360px; height: auto; aspect-ratio: 1 / 1; }
}

/* Worry 締め文: 注意喚起の赤系 */
.lp-worry-foot { color: #D8453B !important; }

/* プランのタグライン: 赤系 */
.lp-plan-tagline { color: #D8453B !important; }

/* スマホでは優先度診断のEN eyebrowを非表示 */
@media (max-width: 640px) {
  #priority .lp-prio-intro .eyebrow { display: none; }
  #priority .lp-prio-intro,
  #priority .lp-prio-intro h1,
  #priority .lp-prio-intro .lp-prio-sub,
  #priority .lp-prio-intro .lp-prio-lead-sp { text-align: left; }
}

/* 優先度見出し: 日本語を文節単位で自然に折り返す */
#priority .lp-prio-intro h1 { word-break: auto-phrase; text-wrap: pretty; }
/* スマホでは最初の改行を解除（「1分で」から改行させる） */
@media (max-width: 640px) { .br-pc { display: none; } }
/* スマホ: 優先度見出しを各行1行に収める */
@media (max-width: 640px) {
  #priority .lp-prio-intro h1 { font-size: clamp(20px, 6.4vw, 28px); white-space: nowrap; word-break: normal; }
}

/* 強みカードの見出し・本文を文節単位で自然に折り返す */
.lp-strength-body h3,
.lp-strength-body p { word-break: auto-phrase; text-wrap: pretty; }

/* 強み01の見出しを赤字 */
#strengths .lp-strength-list .lp-strength-card:first-child .lp-strength-body h3 { color: #D8453B; }

/* スティッキーCTAボタンの幅を詰める */
@media (min-width: 641px) {
  .lp-cta-bar-btn { padding: 12px 20px !important; font-size: 14px; }
}

/* 「ご利用対象について」枠: 白背景 */
.lp-eligibility { background: #fff !important; border: 1px solid var(--line); }

/* CV実績見出し: スマホのみ「網羅的に」前で改行 */
.cv-br-sp { display: none; }
@media (max-width: 640px) { .cv-br-sp { display: inline; } }

/* Belief: PC=テキスト左/イラスト右、スマホ=イラスト上/テキスト下・見切れ防止 */
@media (min-width: 641px) {
  .lp-belief .lp-belief-main { order: 0 !important; }
  .lp-belief .lp-belief-ill { order: 1 !important; justify-content: flex-end; }
  .lp-belief .lp-belief-grid { grid-template-columns: minmax(0, 1fr) minmax(240px, 360px); }
  .lp-belief .lp-belief-disc { width: 100%; max-width: 360px; height: auto; aspect-ratio: 1 / 1; }
  .lp-belief .lp-belief-h { font-size: clamp(24px, 2.7vw, 34px); line-height: 1.55; }
}
@media (max-width: 640px) {
  .lp-belief .lp-belief-grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .lp-belief .lp-belief-ill { order: -1 !important; justify-content: center; }
  .lp-belief .lp-belief-main { order: 0 !important; }
  .lp-belief .lp-belief-h { font-size: clamp(20px, 6vw, 26px) !important; line-height: 1.55; word-break: auto-phrase; text-align: center !important; }
  .lp-belief .lp-belief-body p { font-size: 16px !important; word-break: auto-phrase; text-align: center !important; }
  .lp-belief .lp-belief-disc { width: 220px !important; height: 220px !important; }
}

/* Belief イラスト: 円形に収まるよう中央配置（見切れ防止） */
.lp-belief-disc { display: flex !important; align-items: center !important; justify-content: center !important; }
.lp-belief-disc img { width: auto !important; height: 72% !important; max-width: 72% !important; margin: 0 !important; object-fit: contain; }

/* ===== 本番固有のスマホ微調整（Claude Design版に上乗せ） ===== */
@media (max-width: 640px) {
  /* スクロールのひっかかり対策: snapのみ解除（mainはスクロールコンテナ維持） */
  .lp-root main { scroll-snap-type: none !important; }
  .lp-root main > section { scroll-snap-align: none !important; scroll-snap-stop: normal !important; }
  .lp-swipe-dots, .lp-swipe-hint { display: none !important; }
  /* FV見出し: 各行1行に確実に収める実測フィット値（Claude Designの6.4vwは1行目がはみ出すため） */
  #priority .lp-prio-intro h1 { font-size: clamp(16px, 5.4vw, 21px) !important; line-height: 1.5 !important; white-space: nowrap !important; word-break: normal !important; }
  #priority .lp-prio-intro h1 > span { display: block; white-space: nowrap; }
}
/* 強みカード見出し: 語中改行回避（auto-phrase非対応ブラウザ対策） */
.lp-strength-body h3 { word-break: keep-all; overflow-wrap: anywhere; }

/* プラン: スマホは縦積み（横カルーセルのはみ出し解消） */
@media (max-width: 640px) {
  .lp-plans { display: flex !important; flex-direction: column !important; gap: 16px !important; overflow-x: visible !important; scroll-snap-type: none !important; margin: 0 !important; padding: 0 !important; }
  .lp-plans .lp-plan { flex: 1 1 auto !important; width: auto !important; max-width: none !important; scroll-snap-align: none !important; }
}

/* 極狭幅(〜360px)の取りこぼし対策: 全部収める */
@media (max-width: 360px) {
  #apply .lp-apply-grid > * { min-width: 0 !important; }
  #apply .lp-form .input, #apply .lp-form .select, #apply .lp-form .textarea { max-width: 100% !important; box-sizing: border-box !important; }
  .kit-sticky-cta-inner .lp-cta-bar-info { min-width: 0 !important; }
  .kit-sticky-cta-inner .lp-cta-bar-info strong { font-size: 13px !important; white-space: nowrap; }
  .kit-sticky-cta-inner .lp-cta-bar-info span { font-size: 10px !important; }
  .kit-sticky-cta-inner .lp-cta-bar-btn { padding-left: 14px !important; padding-right: 14px !important; }
}


/* ============================================================
   スクロール中のちらつき防止: 旧スワイプ用スライド入場演出を無効化
   通常スクロール化済みのため不要。slide-active がスクロールのたび付け替わり、
   その都度 .kit-container の子が lp-slide-in (opacity 0→1) を再生していたのが
   ちらつき(チカチカ)の真因。アニメを無効化し常時表示に固定する。 */
@media (max-width: 640px) {
  .lp-root main > section.slide-active .kit-container > * {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
