/* =====================================================================
   ReStart Lab — LP（ランディングページ）
   個人向け（job / change）は文字を大きく派手に、企業向け（hiring / startup）は落ち着いたビジネス調
   ===================================================================== */
.lp{
  --lp-a:#ff5a36; --lp-b:#ff2d87; --lp-ink:#14121f; --lp-soft:#fff4ef; --lp-mark:#ffe14d; --lp-dark:#1a1033;
  background:#fff; color:var(--lp-ink);
}
.lp--change { --lp-a:#4f46e5; --lp-b:#06b6d4; --lp-soft:#eef2ff; --lp-mark:#a7f3d0; --lp-dark:#13123a }
.lp--hiring { --lp-a:#0f766e; --lp-b:#0e7490; --lp-soft:#f0fdfa; --lp-mark:#99f6e4; --lp-dark:#0f2a33 }
.lp--startup{ --lp-a:#d97706; --lp-b:#1e3a8a; --lp-soft:#fffbeb; --lp-mark:#fde68a; --lp-dark:#111a3a }

.lp-wrap{ max-width:1120px; margin:0 auto; padding:0 24px }
.lp-narrow{ max-width:820px }
@media(max-width:560px){ .lp-wrap{ padding:0 16px } }

/* ヘッダー */
.lp-head{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); border-bottom:1px solid #eee }
.lp-head-inner{ display:flex; align-items:center; justify-content:space-between; height:62px; gap:12px }
.lp .pmr-brand-mark{ background:linear-gradient(135deg, var(--lp-a), var(--lp-b)) }
.lp-head-cta{
  display:inline-flex; align-items:center; gap:6px; padding:9px 18px; border-radius:99px;
  background:var(--lp-ink); color:#fff; font-weight:800; font-size:.88rem; white-space:nowrap;
}
.lp-head-cta:hover{ background:var(--lp-a); color:#fff }
@media(max-width:560px){ .lp-head-cta{ padding:8px 12px; font-size:.78rem } }

/* ヒーロー */
.lp-hero{ position:relative; overflow:hidden; background:var(--lp-soft); padding:56px 0 64px }
.lp-hero::before{
  content:""; position:absolute; width:720px; height:720px; right:-220px; top:-260px; border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--lp-b) 22%, transparent), transparent 65%);
}
.lp-hero-grid{ position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center }
@media(max-width:880px){ .lp-hero-grid{ grid-template-columns:1fr; gap:28px } .lp-hero{ padding:32px 0 44px } }
.lp-eyebrow{
  display:inline-block; padding:6px 14px; border-radius:99px; margin-bottom:18px;
  background:var(--lp-ink); color:#fff; font-weight:800; font-size:.85rem; letter-spacing:.04em;
  transform:rotate(-2deg);
}
.lp-h1{
  margin:0 0 20px; font-family:"Noto Sans JP",sans-serif; font-weight:900; letter-spacing:-.02em;
  font-size:clamp(2.1rem, 5.6vw, 4.2rem); line-height:1.18; text-wrap:balance;
}
.lp-h1 .lp-small{ display:block; font-size:.5em; font-weight:800; color:#555; margin-bottom:10px; letter-spacing:0 }
.lp-grad{ background:linear-gradient(100deg, var(--lp-a), var(--lp-b)); -webkit-background-clip:text; background-clip:text; color:transparent }
.lp-mark{ background:linear-gradient(transparent 58%, var(--lp-mark) 58%); padding:0 .06em }
.lp-huge{ font-size:1.45em; font-family:"Inter","Noto Sans JP",sans-serif; font-weight:900; letter-spacing:-.04em; line-height:1 }
.lp-lead{ font-size:1.12rem; line-height:1.85; color:#333; max-width:560px; margin:0 0 26px }
.lp-lead strong{ color:var(--lp-ink); font-weight:900 }
.lp-cta{
  display:inline-flex; align-items:center; gap:10px; padding:18px 34px; border-radius:16px;
  background:linear-gradient(120deg, var(--lp-a), var(--lp-b)); color:#fff !important;
  font-weight:900; font-size:1.15rem; letter-spacing:.02em;
  box-shadow:0 14px 30px -10px color-mix(in srgb, var(--lp-a) 70%, transparent);
  transition:transform .2s ease, box-shadow .2s ease;
}
.lp-cta:hover{ transform:translateY(-2px); box-shadow:0 18px 36px -10px color-mix(in srgb, var(--lp-a) 80%, transparent) }
.lp-cta small{ font-size:.75rem; font-weight:700; opacity:.9 }
.lp-cta--light{ background:#fff; color:var(--lp-ink) !important; box-shadow:0 14px 30px -12px rgba(0,0,0,.4) }
.lp-cta-row{ display:flex; flex-wrap:wrap; gap:12px; align-items:center }
.lp-sub-link{ font-weight:700; color:var(--lp-ink); text-decoration:underline }
.lp-badges{ display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 0; padding:0; list-style:none }
.lp-badges li{ background:#fff; border:2px solid var(--lp-ink); border-radius:99px; padding:4px 14px; font-weight:800; font-size:.85rem }
.lp-hero-img{ position:relative }
.lp-hero-img img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:28px; box-shadow:0 30px 60px -25px rgba(0,0,0,.35) }
.lp-hero-img .lp-burst{
  position:absolute; left:-18px; bottom:-18px; width:130px; height:130px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  background:var(--lp-mark); color:var(--lp-ink); font-weight:900; line-height:1.15; transform:rotate(-10deg);
  box-shadow:0 10px 24px -8px rgba(0,0,0,.3); font-size:.85rem;
}
.lp-burst b{ font-size:2rem; font-family:"Inter",sans-serif }
@media(max-width:560px){ .lp-hero-img img{ aspect-ratio:16/10 } .lp-hero-img .lp-burst{ width:100px; height:100px; left:auto; right:-6px; bottom:-14px; font-size:.72rem } .lp-burst b{ font-size:1.5rem } .lp-cta{ width:100%; justify-content:center; padding:17px 20px } }

/* セクション */
.lp-sec{ padding:72px 0 }
.lp-sec--soft{ background:var(--lp-soft) }
.lp-sec--dark{ background:var(--lp-dark); color:#fff }
@media(max-width:560px){ .lp-sec{ padding:52px 0 } }
.lp-h2{ margin:0 auto 34px; text-align:center; font-weight:900; font-size:clamp(1.6rem, 3.6vw, 2.5rem); line-height:1.35; letter-spacing:-.01em; text-wrap:balance; max-width:860px }
.lp-h2 small{ display:block; font-size:.5em; font-weight:800; color:var(--lp-a); letter-spacing:.12em; margin-bottom:6px }
.lp-sec--dark .lp-h2 small{ color:var(--lp-mark) }
.lp-center-lead{ text-align:center; max-width:720px; margin:-16px auto 32px; color:#444; line-height:1.9 }
.lp-sec--dark .lp-center-lead{ color:rgba(255,255,255,.8) }

.lp-pain-list{ list-style:none; margin:0 auto; padding:0; max-width:760px; display:grid; gap:12px }
.lp-pain-list li{ display:flex; gap:14px; align-items:flex-start; background:#fff; border:2px solid #eee; border-radius:14px; padding:16px 18px; font-weight:700; font-size:1.05rem; line-height:1.6 }
.lp-check{ flex-shrink:0; width:28px; height:28px; border-radius:8px; background:var(--lp-ink); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:900 }

.lp-statement{ text-align:center; padding:64px 0; background:linear-gradient(120deg, var(--lp-a), var(--lp-b)); color:#fff }
.lp-statement p{ margin:0 auto; max-width:900px; font-weight:900; font-size:clamp(1.6rem, 4.2vw, 3rem); line-height:1.35; letter-spacing:-.01em }
.lp-statement p small{ display:block; margin-top:12px; font-size:.42em; font-weight:700; opacity:.9; letter-spacing:0 }

.lp-cards{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px }
@media(max-width:880px){ .lp-cards{ grid-template-columns:1fr } }
.lp-card{ background:#fff; border:2px solid var(--lp-ink); border-radius:20px; padding:24px; box-shadow:6px 6px 0 var(--lp-ink) }
.lp-sec--dark .lp-card{ color:var(--lp-ink) }
.lp-card .lp-card-no{ font-family:"Inter",sans-serif; font-weight:900; font-size:2.6rem; line-height:1; background:linear-gradient(100deg, var(--lp-a), var(--lp-b)); -webkit-background-clip:text; background-clip:text; color:transparent }
.lp-card h3{ margin:8px 0 8px; font-size:1.3rem; font-weight:900 }
.lp-card p{ margin:0; color:#444; line-height:1.8 }
.lp--hiring .lp-card, .lp--startup .lp-card{ border:1px solid #e2e8f0; box-shadow:0 10px 30px -15px rgba(15,23,42,.25) }

/* 結果のサンプル表示 */
.lp-mock{ background:#fff; border-radius:20px; padding:22px; box-shadow:0 20px 50px -20px rgba(0,0,0,.25); max-width:440px; margin:0 auto; color:var(--lp-ink) }
.lp-mock-tag{ display:inline-block; font-size:.72rem; font-weight:800; color:#888; border:1px solid #ddd; border-radius:6px; padding:1px 8px; margin-bottom:10px }
.lp-mock-row{ display:grid; grid-template-columns:7.5em minmax(0,1fr) 3em; gap:10px; align-items:center; margin:8px 0; font-weight:700; font-size:.92rem }
.lp-mock-row i{ display:block; height:10px; border-radius:99px; background:linear-gradient(90deg, var(--lp-a), var(--lp-b)) }
.lp-mock-row span:last-child{ text-align:right; font-family:"Inter",sans-serif; font-weight:900 }
.lp-mock-salary{ margin-top:14px; padding:14px; border-radius:14px; background:var(--lp-soft); text-align:center }
.lp-mock-salary small{ display:block; font-weight:800; color:#666 }
.lp-mock-salary b{ font-family:"Inter",sans-serif; font-size:2rem; font-weight:900 }
.lp-split{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center }
@media(max-width:880px){ .lp-split{ grid-template-columns:1fr } }
.lp-split h3{ font-size:clamp(1.4rem, 3vw, 2rem); font-weight:900; line-height:1.4; margin:0 0 12px }
.lp-split p{ color:#444; line-height:1.9; margin:0 0 14px }
.lp-sec--dark .lp-split p{ color:rgba(255,255,255,.8) }

.lp-steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(200px,1fr)); gap:14px }
.lp-steps li{ position:relative; background:#fff; border-radius:16px; padding:22px 18px; border:1px solid #e5e7eb }
.lp-step-no{ display:inline-flex; width:38px; height:38px; border-radius:50%; align-items:center; justify-content:center; background:linear-gradient(120deg, var(--lp-a), var(--lp-b)); color:#fff; font-weight:900; font-family:"Inter",sans-serif; margin-bottom:10px }
.lp-steps b{ display:block; font-size:1.05rem; margin-bottom:4px }
.lp-steps p{ margin:0; color:#555; font-size:.92rem; line-height:1.7 }

/* 企業向け: タイプの表 */
.lp-types{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:14px }
@media(max-width:880px){ .lp-types{ grid-template-columns:1fr } }
.lp-type{ background:#fff; border-radius:16px; padding:18px; border-top:6px solid var(--c, var(--lp-a)); color:var(--lp-ink) }
.lp-type small{ font-weight:800; color:#888; letter-spacing:.06em }
.lp-type h3{ margin:4px 0 8px; font-size:1.15rem; font-weight:900 }
.lp-type p{ margin:0; font-size:.9rem; color:#555; line-height:1.7 }
.lp-chip{ display:inline-block; margin:6px 6px 0 0; padding:2px 10px; border-radius:99px; color:#fff; background:var(--c, var(--lp-a)); font-size:.78rem; font-weight:800 }

.lp-note{ font-size:.8rem; color:#888; text-align:center; margin:16px 0 0 }
.lp-sec--dark .lp-note{ color:rgba(255,255,255,.6) }

/* 最後の CTA */
.lp-final{ padding:80px 0; text-align:center; color:#fff; background:linear-gradient(135deg, var(--lp-dark), color-mix(in srgb, var(--lp-a) 60%, var(--lp-dark))) }
.lp-final h2{ margin:0 0 12px; font-weight:900; font-size:clamp(1.7rem, 4vw, 2.8rem); line-height:1.35 }
.lp-final p{ margin:0 0 28px; opacity:.85 }

.lp-foot{ background:#0b0b14; color:rgba(255,255,255,.6); padding:28px 0 96px; font-size:.82rem }
.lp-foot nav{ display:flex; flex-wrap:wrap; gap:8px 18px; margin-bottom:10px }
.lp-foot a{ color:rgba(255,255,255,.75) }
.lp-foot p{ margin:0 }

/* 下部に出る申し込みボタン */
.lp-sticky{
  position:fixed; left:50%; bottom:calc(14px + env(safe-area-inset-bottom, 0px)); z-index:60;
  transform:translate(-50%, 140%); opacity:0; transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .35s ease;
  display:inline-flex; align-items:center; gap:8px; padding:15px 28px; border-radius:99px;
  background:linear-gradient(120deg, var(--lp-a), var(--lp-b)); color:#fff !important; font-weight:900; white-space:nowrap;
  box-shadow:0 14px 30px -10px rgba(0,0,0,.45);
}
.lp-sticky.is-on{ transform:translate(-50%, 0); opacity:1 }
.lp-sticky.is-on.is-moving{ transform:translate(-50%, 140%); opacity:0 }
@media(max-width:560px){ .lp-sticky{ width:calc(100% - 32px); justify-content:center } }
.lp .test-ribbon{ top:auto; bottom:12px; left:12px; right:auto; transform:none; padding:4px 10px; border-radius:999px; font-size:10px }
@media(max-width:560px){ .lp .test-ribbon{ bottom:76px } }
@media (prefers-reduced-motion: reduce){ .lp-sticky, .lp-cta{ transition:none } }

/* 写真: 高さ属性より比率を優先し、人物（右寄り）が切れないようにする */
.lp-hero-img img{ height:auto; max-height:520px; object-position:72% center }
@media(max-width:560px){ .lp-hero-img img{ max-height:300px } }
/* 見出しが不自然な位置で折り返さないよう少し小さく */
.lp-h1{ font-size:clamp(2rem, 4.6vw, 3.5rem) }
.lp-huge{ font-size:1.3em }
.lp-nowrap{ white-space:nowrap }
.lp-pain-list li{ font-weight:500 }
.lp-pain-text b{ font-weight:900; color:var(--lp-a) }

.pmr-brand-emblem{ display:block; width:44px; height:44px; border-radius:50%; box-shadow:0 1px 4px rgba(15,23,42,.18) }

/* 企業向け LP: メインコピー（2 行は同じ大きさ）と補助コピー（小さく） */
.lp-h1 .lp-h1-line{ display:block }
.lp-h1 .lp-h1-sub{ display:block; margin-top:14px; font-size:.57em; font-weight:800; color:#333; letter-spacing:.01em }

/* サービス名を目立たせる（style.css の .pmr-hero-brand を LP の見出しに合わせる） */
.lp-hero .pmr-hero-brand{ margin-bottom:14px }
@media (max-width: 760px){ .lp-hero .pmr-hero-brand{ justify-content:flex-start } .pmr-brand-emblem{ width:38px; height:38px } }
