@charset "UTF-8";
/* ============================================================
   オーナー収益革命 LP（一括見積もりサイト型）
   色：紺 #004880（ロゴ文字）／青緑 #00A0B8（ロゴの旗）／申込ボタン 赤橙／強調 黄
   ============================================================ */
:root {
  --navy: #004880;
  --navy-d: #0a2b4c;
  --teal: #00a0b8;
  --teal-l: #e6f6f9;
  --cta1: #ff3b3b;
  --cta2: #ff7a1a;
  --yellow: #ffd23f;
  --ink: #23303d;
  --bg: #f3f8fb;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body {
  margin: 0;
  color: var(--ink);
  font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.75;
  letter-spacing: 0.03em;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; vertical-align: bottom; }
a { color: var(--navy); }
.sp { display: none; }
@media (max-width: 700px) { .sp { display: inline; } .pc { display: none; } }

/* ---------- ヘッダー ---------- */
.hd { position: sticky; top: 0; z-index: 80; background: rgba(255, 255, 255, 0.96); box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); backdrop-filter: blur(6px); }
.hd-in { max-width: 1160px; margin: 0 auto; display: flex; align-items: center; gap: 16px; padding: 8px 20px; }
.hd-logo img { width: 190px; display: block; }
.hd-op { margin: 0 auto 0 0; font-size: 0.75rem; color: #6b7785; }
.hd-cta {
  background: linear-gradient(180deg, var(--cta2), var(--cta1));
  color: #fff; font-weight: 800; text-decoration: none; border-radius: 999px;
  padding: 10px 22px; font-size: 0.9rem; box-shadow: 0 3px 0 #c22a1f;
}
@media (max-width: 700px) {
  .hd-in { padding: 6px 12px; gap: 8px; }
  .hd-logo img { width: 130px; }
  .hd-op { font-size: 0.6rem; }
  .hd-cta { padding: 8px 12px; font-size: 0.72rem; }
}

/* ---------- 見出し共通 ---------- */
.sec { padding: 72px 20px; }
.h2 { text-align: center; font-size: 2rem; font-weight: 900; line-height: 1.4; margin: 0 0 36px; color: var(--navy-d); }
.h2 mark { background: linear-gradient(transparent 60%, var(--yellow) 60%); color: var(--cta1); padding: 0 2px; }
.sec-sub { text-align: center; margin: -20px 0 28px; color: #5d6b78; font-size: 0.9rem; }
.note { text-align: center; font-size: 0.75rem; color: #8a96a3; margin-top: 16px; }
@media (max-width: 700px) {
  .sec { padding: 52px 16px; }
  .h2 { font-size: 1.45rem; margin-bottom: 26px; }
}

/* ---------- ファーストビュー ---------- */
.fv {
  position: relative;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.9) 45%, rgba(255, 255, 255, 0.15) 75%),
    url(../img/kv/bg.jpg) center / cover no-repeat;
  padding: 34px 20px 30px;
  overflow: hidden;
}
.fv-in { max-width: 1160px; margin: 0 auto; display: flex; align-items: flex-end; position: relative; }
.fv-copy { flex: 1; max-width: 650px; position: relative; z-index: 2; }
.fv-pill { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 1.35rem; font-weight: 800; color: var(--navy-d); }
.fv-pill .free { background: var(--cta1); color: #fff; border-radius: 6px; padding: 0 12px; font-size: 1.05rem; line-height: 1.9; }
.fv-pill b { font-size: 2.2rem; line-height: 1; color: var(--navy); font-family: "Montserrat", "Hiragino Sans", sans-serif; }
.fv-pill em { font-style: normal; color: var(--cta1); }
.fv-title { margin: 0; font-size: 2.3rem; font-weight: 900; line-height: 1.3; color: var(--navy-d); }
.fv-title strong {
  display: inline-block; font-size: 3.6rem; color: var(--navy);
  background: linear-gradient(transparent 72%, var(--yellow) 72%);
}
.fv-lead { margin: 14px 0 18px; font-size: 1.05rem; font-weight: 700; }
.fv-lead b { color: var(--cta1); }
.fv-case {
  position: relative; background: #fff; border-radius: 14px; padding: 14px 18px 12px;
  box-shadow: 0 10px 30px rgba(0, 72, 128, 0.15); max-width: 520px;
}
.fv-case-hd { margin: 0 0 8px; font-size: 0.85rem; font-weight: 800; color: var(--navy); }
.fv-bars .bar { position: relative; display: flex; align-items: center; justify-content: space-between; color: #fff; font-weight: 800; border-radius: 6px; padding: 6px 12px; margin-bottom: 6px; }
.fv-bars .bar.before { width: 46%; background: #8d9aa8; font-size: 0.9rem; }
.fv-bars .bar.after { width: 100%; background: linear-gradient(90deg, var(--cta2), var(--cta1)); font-size: 1.25rem; }
.fv-bars .lbl { font-size: 0.75rem; opacity: 0.95; }
.fv-bars small { font-size: 0.7rem; }
.fv-up {
  position: absolute; right: -26px; top: -30px; margin: 0; width: 108px; height: 108px; border-radius: 50%;
  background: var(--yellow); color: var(--cta1); display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-weight: 900; line-height: 1; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15); transform: rotate(8deg); font-size: 1.1rem;
}
.fv-up-n { white-space: nowrap; font-size: 1.1rem; }
.fv-up b { font-size: 2.3rem; font-family: "Montserrat", sans-serif; }
.fv-up small { font-size: 0.7rem; color: var(--navy-d); }
.fv-note { margin: 6px 0 0; font-size: 0.65rem; color: #8a96a3; line-height: 1.5; }
.fv-person { margin: 0 -20px 0 0; width: 400px; flex-shrink: 0; position: relative; z-index: 1; }
.fv-person img { display: block; width: 100%; margin-bottom: -30px; }

.fv-badges { list-style: none; display: flex; justify-content: center; gap: 22px; margin: 26px auto 18px; padding: 0; max-width: 820px; position: relative; z-index: 2; }
.fv-badges li {
  position: relative; width: 170px; height: 110px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: #fff; border-radius: 12px; box-shadow: 0 6px 18px rgba(0, 72, 128, 0.12); text-align: center;
}
.fv-badges li { border: 2px solid #e2b740; box-shadow: 0 0 0 4px #fff, 0 0 0 5px #f1d58a, 0 6px 18px rgba(0, 72, 128, 0.12); }
.fv-badges li::before { content: "★★★"; position: absolute; top: 6px; left: 0; right: 0; font-size: 0.6rem; letter-spacing: 0.3em; color: #e2b740; }
.fv-badges span { font-size: 0.8rem; font-weight: 700; color: #5d6b78; }
.fv-badges b { font-size: 1.1rem; font-weight: 900; color: var(--navy); line-height: 1.1; }
.fv-badges em { font-style: normal; font-size: 2.6rem; font-family: "Montserrat", sans-serif; margin: 0 2px; }

@media (max-width: 960px) {
  .fv-person { width: 300px; }
  .fv-title { font-size: 1.9rem; }
  .fv-title strong { font-size: 2.9rem; }
}
@media (max-width: 700px) {
  .fv { padding: 18px 14px 20px; background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.92) 70%, rgba(255, 255, 255, 0.6) 100%),
    url(../img/kv/bg-sp.jpg) center / cover no-repeat; }
  .fv-in { display: block; }
  .fv-pill { font-size: 1rem; }
  .fv-pill .free { font-size: 0.85rem; padding: 0 8px; }
  .fv-pill b { font-size: 1.6rem; }
  .fv-title { font-size: 1.35rem; }
  .fv-title strong { font-size: 2.3rem; }
  .fv-lead { font-size: 0.88rem; margin: 10px 0 14px; }
  .fv-case { padding: 12px 12px 10px; margin-right: 36px; }
  .fv-bars .bar.after { font-size: 1.05rem; }
  .fv-up { width: 84px; height: 84px; right: -40px; top: -22px; font-size: 0.9rem; }
  .fv-up b { font-size: 1.8rem; }
  .fv-person { display: none; }
  .fv-badges { gap: 8px; margin: 18px 0 14px; }
  .fv-badges li { width: 33%; height: 84px; border-radius: 10px; }
  .fv-badges span { font-size: 0.62rem; }
  .fv-badges b { font-size: 0.85rem; }
  .fv-badges em { font-size: 1.7rem; }
}

/* ---------- 申込ボタン ---------- */
.cta-wrap { text-align: center; position: relative; z-index: 2; }
.cta {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 14px;
  min-width: 520px; padding: 22px 70px 22px 34px; border-radius: 999px;
  background: linear-gradient(180deg, var(--cta2), var(--cta1)); color: #fff !important; text-decoration: none;
  font-size: 1.6rem; font-weight: 900; letter-spacing: 0.05em; box-shadow: 0 7px 0 #c22a1f, 0 14px 26px rgba(255, 59, 59, 0.35);
  transition: transform 0.15s, box-shadow 0.15s;
}
.cta:hover { transform: translateY(3px); box-shadow: 0 4px 0 #c22a1f, 0 8px 18px rgba(255, 59, 59, 0.3); }
.cta-tag {
  position: absolute; top: -18px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  background: var(--yellow); color: var(--navy-d); font-size: 0.85rem; border-radius: 999px; padding: 2px 16px;
}
.cta-time {
  display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%;
  background: #fff; color: var(--cta1); font-size: 1.05rem; font-weight: 900; border: 3px solid var(--yellow); flex-shrink: 0;
}
.cta i { position: absolute; right: 30px; font-style: normal; font-size: 2rem; line-height: 1; }
.cta-sub { margin: 14px 0 0; font-size: 0.85rem; font-weight: 700; }
.cta-sub b { color: var(--cta1); }
@media (max-width: 700px) {
  .cta { min-width: 0; width: 100%; font-size: 1.12rem; padding: 18px 44px 16px 16px; gap: 10px; }
  .cta-time { width: 44px; height: 44px; font-size: 0.85rem; }
  .cta i { right: 18px; font-size: 1.6rem; }
  .cta-sub { font-size: 0.72rem; }
}

/* ---------- 流れる帯 ---------- */
.marquee { background: var(--navy); color: #fff; overflow: hidden; padding: 12px 0; }
.marquee-track { display: flex; width: max-content; }
.marquee ul { display: flex; gap: 12px; list-style: none; margin: 0; padding: 0 6px; }
.marquee li { white-space: nowrap; border: 1px solid rgba(255, 255, 255, 0.45); border-radius: 999px; padding: 4px 18px; font-weight: 700; font-size: 0.9rem; }

/* ---------- 一括相談がおすすめ ---------- */
.recommend { background: var(--bg); }
.rec-list { list-style: none; padding: 0; margin: 0 auto; max-width: 1000px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.rec-list li {
  position: relative; background: #fff; border-radius: 22px; padding: 26px 22px 22px; font-size: 0.88rem; color: #5d6b78;
  box-shadow: 0 8px 20px rgba(0, 72, 128, 0.08); text-align: center;
}
.rec-list li::after { content: ""; position: absolute; bottom: -14px; left: 50%; margin-left: -12px; border: 12px solid transparent; border-top-color: #fff; border-bottom: 0; }
.rec-list b { display: block; font-size: 1.15rem; color: var(--navy); margin-bottom: 8px; line-height: 1.45; }
.rec-foot { text-align: center; margin: 42px 0 0; font-size: 1.35rem; font-weight: 900; color: var(--navy-d); }
.rec-foot strong { color: var(--cta1); background: linear-gradient(transparent 62%, var(--yellow) 62%); }
@media (max-width: 700px) {
  .rec-list { grid-template-columns: 1fr; gap: 20px; }
  .rec-foot { font-size: 1.05rem; }
}

/* ---------- お悩み ---------- */
.worry-list { list-style: none; padding: 0; margin: 0 auto; max-width: 960px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.worry-list li {
  position: relative; background: #fff; border: 2px solid #dbe6ee; border-radius: 14px; padding: 18px 16px 18px 60px;
  font-weight: 800; font-size: 1.02rem; line-height: 1.5;
}
.worry-list li::before {
  content: "?"; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%;
  background: #8d9aa8; color: #fff; text-align: center; line-height: 32px; font-weight: 900;
}
.worry-list em { font-style: normal; color: var(--cta1); }
.worry-answer { text-align: center; margin: 46px 0 0; position: relative; }
.worry-answer::before { content: ""; position: absolute; left: 50%; top: -38px; margin-left: -36px; border: 22px solid transparent; border-width: 22px 36px 0; border-top-color: #c9d3dc; }
.worry-answer span { display: inline-block; background: var(--navy); color: #fff; border-radius: 999px; padding: 4px 20px; font-weight: 800; margin-bottom: 10px; }
.worry-answer strong { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 2rem; font-weight: 900; color: var(--navy-d); flex-wrap: wrap; }
.worry-answer strong img { width: 230px; }
@media (max-width: 700px) {
  .worry-list { grid-template-columns: 1fr 1fr; gap: 10px; }
  .worry-list li { padding: 12px 8px 12px 38px; font-size: 0.82rem; }
  .worry-list li::before { left: 8px; width: 24px; height: 24px; line-height: 24px; font-size: 0.8rem; }
  .worry-answer strong { font-size: 1.35rem; }
  .worry-answer strong img { width: 180px; }
}

/* ---------- 3つの強み ---------- */
.strength { background: linear-gradient(180deg, var(--teal-l), #fff); }
.st-list { max-width: 1000px; margin: 0 auto; display: grid; gap: 22px; }
.st {
  position: relative; background: #fff; border-radius: 18px; padding: 28px 30px 26px 190px; min-height: 150px;
  box-shadow: 0 10px 24px rgba(0, 72, 128, 0.1); overflow: hidden;
}
.st-no { position: absolute; left: 0; top: 0; bottom: 0; width: 160px; margin: 0; background: var(--teal); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: 800; font-size: 0.8rem; letter-spacing: 0.15em; }
.st .st-no b { font-family: "Montserrat", sans-serif; font-size: 3rem; line-height: 1; letter-spacing: 0; color: #fff; }
.st h3 { margin: 0 0 8px; font-size: 1.5rem; font-weight: 900; color: var(--navy-d); }
.st h3 em { font-style: normal; color: var(--cta1); }
.st p { margin: 0; font-size: 0.95rem; }
.st p b { color: var(--cta1); font-size: 1.15rem; }
@media (max-width: 700px) {
  .st { padding: 74px 18px 20px; }
  .st-no { right: 0; bottom: auto; width: auto; height: 56px; flex-direction: row; gap: 10px; }
  .st .st-no b { font-size: 1.8rem; }
  .st h3 { font-size: 1.2rem; }
  .st p { font-size: 0.86rem; }
}

/* ---------- 比較表 ---------- */
.cmp-wrap { max-width: 900px; margin: 0 auto; overflow-x: auto; }
.cmp { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 8px 20px rgba(0, 72, 128, 0.08); }
.cmp th, .cmp td { padding: 16px 14px; border-bottom: 1px solid #e3eaf0; text-align: center; font-size: 0.92rem; }
.cmp thead th { background: #eef3f7; font-size: 1rem; }
.cmp thead th.us { background: var(--navy); }
.cmp thead th.us img { width: 170px; }
.cmp tbody th { background: #f7fafc; color: var(--navy-d); width: 22%; }
.cmp td { color: #6b7785; }
.cmp td.us { background: #fff8e1; color: var(--ink); font-weight: 700; border-left: 3px solid var(--yellow); border-right: 3px solid var(--yellow); }
.cmp td.us b { color: var(--cta1); }
.cmp tbody tr:last-child td.us { border-bottom: 3px solid var(--yellow); }
@media (max-width: 700px) {
  .cmp th, .cmp td { padding: 10px 6px; font-size: 0.74rem; }
  .cmp thead th.us img { width: 110px; }
}

/* ---------- 申込帯 ---------- */
.cta-band { background: linear-gradient(135deg, var(--navy) 0%, #0b5f9a 60%, var(--teal) 100%); color: #fff; text-align: center; }
.cb-lead { font-size: 1.6rem; font-weight: 900; margin: 0 0 34px; }
.cta-band .cta-sub { color: #fff; }
@media (max-width: 700px) { .cb-lead { font-size: 1.2rem; } }

/* ---------- 活用実例 ---------- */
.case-list { list-style: none; padding: 0; margin: 0 auto; max-width: 1060px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.case-list li { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 8px 20px rgba(0, 72, 128, 0.1); }
.ci { position: relative; margin: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.ci img { width: 100%; height: 100%; object-fit: cover; }
.ci span { position: absolute; right: 10px; bottom: 10px; background: var(--cta1); color: #fff; font-weight: 900; font-family: "Montserrat", sans-serif; border-radius: 6px; padding: 2px 10px; font-size: 1.1rem; }
.case-list h3 { margin: 12px 16px 4px; color: var(--navy); font-size: 1.05rem; }
.case-list dl { margin: 0 16px 16px; display: grid; grid-template-columns: 3em 1fr; gap: 2px 8px; font-size: 0.9rem; }
.case-list dt { color: #8a96a3; }
.case-list dd { margin: 0; font-weight: 700; }
.case-list s { color: #9aa6b2; margin-right: 8px; font-weight: 500; }
.case-list dd b { color: var(--cta1); font-size: 1.15rem; }
.case-list dd b::before { content: "→ "; color: #9aa6b2; font-size: 0.9rem; }
@media (max-width: 700px) {
  .case-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding-bottom: 8px; margin: 0 -16px; padding-left: 16px; }
  .case-list li { flex: 0 0 76%; scroll-snap-align: start; }
}

/* ---------- 流れ ---------- */
.flow { background: var(--bg); }
.flow-list { list-style: none; padding: 0; margin: 0 auto; max-width: 1000px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.flow-list li { position: relative; background: #fff; border-radius: 16px; padding: 24px 22px; box-shadow: 0 8px 20px rgba(0, 72, 128, 0.08); }
.flow-list li:not(:last-child)::after { content: ""; position: absolute; right: -26px; top: 50%; margin-top: -12px; border: 12px solid transparent; border-left: 16px solid var(--teal); border-right: 0; }
.fs { margin: 0 0 6px; color: var(--teal); font-weight: 800; font-size: 0.8rem; letter-spacing: 0.15em; }
.fs b { font-family: "Montserrat", sans-serif; font-size: 2rem; margin-left: 6px; letter-spacing: 0; }
.flow-list h3 { margin: 0 0 8px; font-size: 1.15rem; color: var(--navy-d); line-height: 1.45; }
.flow-list p:last-child { margin: 0; font-size: 0.86rem; color: #5d6b78; }
@media (max-width: 700px) {
  .flow-list { grid-template-columns: 1fr; gap: 30px; }
  .flow-list li:not(:last-child)::after { right: auto; left: 50%; top: auto; bottom: -24px; margin: 0 0 0 -12px; border: 12px solid transparent; border-top: 16px solid var(--teal); border-bottom: 0; }
}

/* ---------- ライフプランナー ---------- */
.life-in { max-width: 1000px; margin: 0 auto; display: flex; align-items: center; gap: 30px; background: #fff7ec; border-radius: 22px; padding: 34px 38px; }
.life-kicker { margin: 0; color: var(--cta2); font-weight: 900; }
.life-txt h2 { margin: 2px 0 10px; font-size: 1.8rem; color: var(--navy-d); }
.life-txt p { margin: 0 0 12px; font-size: 0.92rem; }
.life-tags { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.life-tags li { background: #fff; border: 2px solid var(--cta2); color: var(--cta2); border-radius: 999px; padding: 2px 14px; font-weight: 800; font-size: 0.85rem; }
.life-img { width: 300px; flex-shrink: 0; margin: 0; }
@media (max-width: 700px) {
  .life-in { flex-direction: column; padding: 24px 18px; }
  .life-txt h2 { font-size: 1.35rem; }
  .life-img { width: 220px; }
}

/* ---------- オーナー様の声 ---------- */
.voice-list { list-style: none; padding: 0; margin: 0 auto; max-width: 1060px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.voice-list li { background: #fff; border-radius: 16px; padding: 22px; box-shadow: 0 8px 20px rgba(0, 72, 128, 0.08); }
.vi { margin: 0 auto 12px; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; border: 4px solid var(--teal-l); }
.vi img { width: 100%; height: 100%; object-fit: cover; }
.voice-list h3 { margin: 0; text-align: center; color: var(--navy-d); font-size: 1.05rem; line-height: 1.45; }
.vw { text-align: center; color: var(--teal); font-weight: 700; font-size: 0.8rem; margin: 4px 0 10px; }
.voice-list p:last-child { margin: 0; font-size: 0.86rem; color: #5d6b78; }
@media (max-width: 700px) { .voice-list { grid-template-columns: 1fr; } }

/* ---------- よくある質問 ---------- */
.faq { background: var(--bg); }
.faq-list { max-width: 860px; margin: 0 auto; }
.faq-list dt {
  position: relative; background: #fff; border-radius: 12px; padding: 16px 48px 16px 58px; font-weight: 800; color: var(--navy-d);
  margin-top: 12px; box-shadow: 0 4px 12px rgba(0, 72, 128, 0.06);
}
.faq-list dt::before { content: "Q"; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: var(--teal); color: #fff; text-align: center; line-height: 30px; font-family: "Montserrat", sans-serif; }
.faq-list dd { margin: 0; background: #fff; border-radius: 0 0 12px 12px; padding: 4px 22px 18px 58px; position: relative; font-size: 0.9rem; color: #4d5b68; }
.faq-list dd::before { content: "A"; position: absolute; left: 16px; top: 8px; width: 30px; height: 30px; border-radius: 50%; background: var(--cta1); color: #fff; text-align: center; line-height: 30px; font-family: "Montserrat", sans-serif; font-weight: 700; }
.faq-list dd p { margin: 10px 0 0; }
.faq.faq-ready .faq-list dt { cursor: pointer; }
.faq.faq-ready .faq-list dt::after { content: ""; position: absolute; right: 20px; top: 50%; width: 10px; height: 10px; margin-top: -8px; border: solid var(--teal); border-width: 0 3px 3px 0; transform: rotate(45deg); transition: transform 0.3s; }
.faq.faq-ready .faq-list dt.is-open { border-radius: 12px 12px 0 0; }
.faq.faq-ready .faq-list dt.is-open::after { transform: rotate(-135deg); margin-top: -3px; }
.faq.faq-ready .faq-list dd { display: none; }
.faq.faq-ready .faq-list dd.is-open { display: block; animation: faqOpen 0.35s ease; }
@keyframes faqOpen { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 700px) { .faq-list dt { font-size: 0.9rem; padding: 14px 40px 14px 52px; } .faq-list dd { padding-left: 52px; font-size: 0.84rem; } }

/* ---------- 最後の申込 ---------- */
.final { background: linear-gradient(135deg, var(--navy-d), var(--navy) 55%, #0b6f8e); color: #fff; text-align: center; }
.final-logo img { width: 280px; }
.final-lead { font-size: 1.4rem; font-weight: 900; margin: 16px 0 34px; }
.final .cta-sub { color: #fff; }
.final .cta-sub b { color: var(--yellow); }
@media (max-width: 700px) { .final-logo img { width: 200px; } .final-lead { font-size: 1.05rem; } }

/* ---------- 運営会社 ---------- */
.company .h2 { font-size: 1.5rem; }
.co-grid { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.co { margin: 0; display: grid; grid-template-columns: 8em 1fr; font-size: 0.86rem; border-top: 1px solid #e3eaf0; }
.co dt, .co dd { margin: 0; padding: 10px 6px; border-bottom: 1px solid #e3eaf0; }
.co dt { color: var(--teal); font-weight: 700; }
@media (max-width: 700px) { .co-grid { grid-template-columns: 1fr; } .co { grid-template-columns: 7em 1fr; font-size: 0.8rem; } }

/* ---------- フッター ---------- */
.ft { background: var(--navy-d); color: rgba(255, 255, 255, 0.75); text-align: center; padding: 36px 20px 30px; }
.ft-logo img { width: 200px; }
.ft-note { font-size: 0.72rem; line-height: 1.7; margin: 14px auto; max-width: 760px; }
.ft small { font-size: 0.7rem; }
@media (max-width: 700px) { .ft { padding-bottom: 96px; } }

/* ---------- 追従する申込ボタン ---------- */
.float-cv {
  position: fixed; right: 22px; bottom: 22px; z-index: 90; display: block; text-align: center; text-decoration: none;
  background: linear-gradient(180deg, var(--cta2), var(--cta1)); color: #fff !important; font-weight: 900; font-size: 1.05rem; line-height: 1.3;
  padding: 12px 26px 14px; border-radius: 14px; box-shadow: 0 5px 0 #c22a1f, 0 10px 24px rgba(0, 0, 0, 0.25);
  opacity: 0; visibility: hidden; transform: translateY(20px); transition: opacity 0.35s, transform 0.35s, visibility 0.35s;
}
.float-cv small { display: block; font-size: 0.7rem; color: var(--yellow); }
.show-float-cv .float-cv { opacity: 1; visibility: visible; transform: none; }
.sp-fixed-cv { display: none; }
@media (max-width: 700px) {
  .float-cv { display: none; }
  .sp-fixed-cv { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; padding: 8px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.12); }
  .sp-fixed-cv a { display: block; text-align: center; color: #fff; text-decoration: none; font-weight: 900; padding: 13px 4px; border-radius: 999px; background: linear-gradient(180deg, var(--cta2), var(--cta1)); box-shadow: 0 4px 0 #c22a1f; }
  .js-motion .sp-fixed-cv { transform: translateY(120%); transition: transform 0.35s ease; }
  .js-motion.show-float-cv .sp-fixed-cv { transform: none; }
}

/* ============================================================
   動き（.js-motion の下だけに書く：動きが無効な環境では最初から全部表示）
   ============================================================ */
.marquee-track { animation: marquee 30s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

.js-motion .fv-pill, .js-motion .fv-title, .js-motion .fv-lead, .js-motion .fv-case, .js-motion .fv-person img, .js-motion .fv-badges li, .js-motion .fv .cta-wrap { opacity: 0; }
.kv-in .fv-pill { animation: up 0.6s 0.1s ease-out forwards; }
.kv-in .fv-title { animation: pop 0.7s 0.25s cubic-bezier(.2, 1.4, .4, 1) forwards; }
.kv-in .fv-lead { animation: up 0.6s 0.5s ease-out forwards; }
.kv-in .fv-case { animation: up 0.6s 0.7s ease-out forwards; }
.kv-in .fv-bars .bar.after { animation: grow 1.1s 1s cubic-bezier(.2, .8, .2, 1) both; }
.kv-in .fv-up { animation: stamp 0.6s 1.6s cubic-bezier(.3, 1.6, .5, 1) both, swing 3.2s 2.4s ease-in-out infinite; }
.kv-in .fv-person img { animation: slideL 0.9s 0.35s ease-out forwards; }
.kv-in .fv-badges li { animation: up 0.5s ease-out forwards; }
.kv-in .fv-badges li:nth-child(1) { animation-delay: 1.0s; }
.kv-in .fv-badges li:nth-child(2) { animation-delay: 1.12s; }
.kv-in .fv-badges li:nth-child(3) { animation-delay: 1.24s; }
.kv-in .fv .cta-wrap { animation: up 0.6s 1.35s ease-out forwards; }
@keyframes up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes pop { from { opacity: 0; transform: scale(0.88); } to { opacity: 1; transform: none; } }
@keyframes grow { from { width: 46%; } to { width: 100%; } }
@keyframes stamp { from { opacity: 0; transform: scale(2) rotate(-20deg); } to { opacity: 1; transform: rotate(8deg); } }
@keyframes swing { 0%, 100% { transform: rotate(8deg); } 50% { transform: rotate(-3deg) scale(1.06); } }
@keyframes slideL { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }

/* 申込ボタン：ゆっくり光る／矢印が動く */
.js-motion .cta, .js-motion .float-cv, .js-motion .sp-fixed-cv a { animation: glow 2.4s ease-in-out infinite; }
@keyframes glow { 0%, 100% { filter: none; } 50% { filter: drop-shadow(0 0 12px rgba(255, 150, 40, 0.8)); } }
.js-motion .cta i { animation: nudge 1.2s ease-in-out infinite; }
@keyframes nudge { 0%, 100% { transform: none; } 50% { transform: translateX(5px); } }
.js-motion .cta-tag { animation: bob 2s ease-in-out infinite; }
@keyframes bob { 0%, 100% { transform: translateX(-50%); } 50% { transform: translate(-50%, -4px); } }

/* スクロールで表示 */
.js-motion .reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.7s cubic-bezier(.2, .8, .2, 1), transform 0.7s cubic-bezier(.2, .8, .2, 1); }
.js-motion .reveal.is-in { opacity: 1; transform: none; }
.js-motion .worry-answer.is-in strong { animation: pop 0.8s 0.2s cubic-bezier(.3, 1.6, .5, 1) both; }
.js-motion .worry-answer::before { animation: arrow 1.6s ease-in-out infinite; }
@keyframes arrow { 0%, 100% { transform: none; } 50% { transform: translateY(6px); } }

/* 安全策：動きが進まない環境では、動きを省いて表示しきる（js/motion.js が付ける） */
.motion-settled .fv-pill, .motion-settled .fv-title, .motion-settled .fv-lead, .motion-settled .fv-case, .motion-settled .fv-person img,
.motion-settled .fv-badges li, .motion-settled .fv .cta-wrap, .motion-settled .fv-bars .bar.after {
  animation: none !important; opacity: 1 !important; transform: none !important;
}
.motion-settled .fv-bars .bar.after { width: 100% !important; }
.motion-settled .fv-up { animation: none !important; opacity: 1 !important; }
.js-motion .reveal.settled { transition: none !important; opacity: 1 !important; transform: none !important; }
.js-motion .reveal.settled strong { animation: none !important; opacity: 1 !important; }

@media (prefers-reduced-motion: reduce) {
  .marquee-track { animation: none; }
}

/* スマホの細部：ヘッダーの運営表記は省き、ボタンと棒グラフの文字を折り返さない */
.hd-cta, .fv-bars .bar span { white-space: nowrap; }
@media (max-width: 700px) {
  .hd-op { visibility: hidden; }
  .fv-bars .bar.before { width: 66%; font-size: 0.82rem; }
  @keyframes grow { from { width: 66%; } to { width: 100%; } }
  .cta-sub { line-height: 1.6; }
}


/* ===== 2026-10-15 修正 ===== */
/* 強調の赤文字・数字が細くならないように（参考LPの初期化スタイルが em を標準の太さに戻していたため） */
em { font-weight: inherit; }
.worry-list em, .st h3 em, .fv-pill em { font-weight: 900; }
.fv-badges em { font-weight: 800; }

/* サブタイトル「全国6万社から最適なプランを見つけます。」 */
.fv-sub {
  display: inline-block; margin: 14px 0 0; padding: 8px 22px 10px; border-radius: 10px;
  background: var(--navy); color: #fff; font-size: 1.45rem; font-weight: 900; line-height: 1.35;
  box-shadow: 0 6px 0 var(--teal);
}
.fv-sub span { color: var(--yellow); }
.fv-sub b { font-family: "Montserrat", sans-serif; font-size: 2.4rem; line-height: 1; margin: 0 2px; }
.js-motion .fv-sub { opacity: 0; }
.kv-in .fv-sub { animation: pop 0.6s 0.45s cubic-bezier(.2, 1.4, .4, 1) forwards; }
.motion-settled .fv-sub { animation: none !important; opacity: 1 !important; transform: none !important; }
@media (max-width: 700px) {
  .fv-sub { font-size: 1.05rem; padding: 6px 14px 8px; }
  .fv-sub b { font-size: 1.8rem; }
}

/* 人物：胴体が途中で切れないよう、ファーストビューの下端（すぐ下の帯）に足元をつける */
@media (min-width: 701px) {
  .fv { padding-bottom: 26px; }
  .fv-in { position: static; }
  .fv-person { position: absolute; margin: 0; right: max(0px, calc(50% - 600px)); bottom: 0; width: 430px; z-index: 1; }
  .fv-person img { margin-bottom: 0; }
  /* 信頼バッジと申込ボタンは人物と重ならないよう左側の列に置く */
  .fv-badges, .fv > .cta-wrap { max-width: 1160px; margin-left: auto; margin-right: auto; padding-right: 440px; }
  .fv-badges { justify-content: center; }
}
@media (min-width: 701px) and (max-width: 1100px) {
  .fv-person { width: 340px; }
  .fv-badges, .fv > .cta-wrap { padding-right: 330px; }
  .fv-badges { gap: 10px; }
  .fv-badges li { width: 150px; }
  .fv > .cta-wrap .cta { min-width: 0; width: 100%; max-width: 520px; font-size: 1.3rem; }
}

/* ヘッダー・フッターからメディアへのリンク */
/* ヘッダーの「物件活用新聞」への入口（アイコン＋小見出し付きのボタン） */
.hd-media {
  margin-left: auto; display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px 6px 10px; border: 2px solid var(--navy); border-radius: 10px;
  background: linear-gradient(180deg, #fff, #eef3f8); color: var(--navy);
  font-weight: 800; font-size: 0.9rem; line-height: 1.15; text-decoration: none; white-space: nowrap;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.08); transition: background .2s, color .2s, transform .2s;
}
.hd-media-ic { width: 26px; height: 26px; flex: none; }
.hd-media-tx { display: flex; flex-direction: column; }
.hd-media-tx small { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.04em; color: #fff; background: var(--cta1); border-radius: 3px; padding: 1px 6px; margin-bottom: 3px; align-self: flex-start; }
.hd-media-go { font-size: 1.1rem; margin-left: 2px; transition: transform .2s; }
.hd-media:hover, .hd-media:focus-visible { background: var(--navy); color: #fff; transform: translateY(-1px); }
.hd-media:hover .hd-media-go { transform: translateX(3px); }
.ft-links { font-size: 0.8rem; margin: 0 0 18px; }
.ft-links a { color: #fff; }
@media (max-width: 700px) { .hd-media { font-size: 0.72rem; padding: 4px 8px 4px 6px; gap: 4px; border-radius: 8px; } .hd-media-ic { width: 18px; height: 18px; } .hd-media-tx small { font-size: 0.5rem; padding: 0 4px; margin-bottom: 2px; } .hd-media-go { display: none; } }

/* ---------- 4つの特徴の注記・3者比較表（2026-10-24） ---------- */
.st p.st-note { margin-top: 8px; font-size: 0.78rem; color: #6b7785; }
.cmp3 tbody th { width: 16%; }
.cmp3 td { width: 26%; }
@media (max-width: 700px) { .cmp3 { min-width: 560px; } }
.flow-list.flow4 { grid-template-columns: repeat(4, 1fr); gap: 30px; max-width: 1100px; }
.flow-list.flow4 li { padding: 22px 18px; }
@media (max-width: 700px) { .flow-list.flow4 { grid-template-columns: 1fr; } }

/* ============================================================
   2026-10-24 デザイン案（オーナー収益革命LP_261023.pdf）にそろえる
   ここから下を消せば、直前の見た目に戻る
   ============================================================ */
:root { --or: #ea6a1c; --or-d: #c9540f; --red: #e8423f; --dark: #333; --blue-bg: #c7e5ed; --gray-bg: #f6f8fb; }
body { color: var(--dark); }
/* 見出し：濃いグレー・太さは標準の太字・強調は赤＋細い黄色の下線 */
.h2 { font-size: 2.6rem; font-weight: 700; color: var(--dark); letter-spacing: 0.02em; margin-bottom: 44px; }
.h2 mark { background: linear-gradient(transparent 86%, var(--yellow) 86%); color: var(--red); padding: 0; }
.h2.h2-line { display: table; margin-left: auto; margin-right: auto; padding-bottom: 8px; border-bottom: 3px double #444; }
@media (max-width: 700px) { .h2 { font-size: 1.5rem; margin-bottom: 28px; } }

/* ヘッダー */
.hd { background: #fff; box-shadow: 0 1px 0 #e3e6ea; }
.hd-in { padding: 12px 20px; }
.hd-media { border-radius: 999px; padding: 6px 18px 6px 14px; background: #fff; }
.hd-cta { background: var(--or); box-shadow: none; padding: 12px 26px; font-size: 1.05rem; font-weight: 700; }
.hd-cta::after { content: "→"; margin-left: 12px; font-weight: 400; }
@media (max-width: 700px) { .hd-cta { padding: 8px 12px; font-size: 0.72rem; } .hd-cta::after { margin-left: 4px; } }

/* 申込ボタン：単色のオレンジ・上に「簡単入力3分」の白い札・右に→ */
.cta {
  background: var(--or); font-weight: 700; font-size: 1.75rem; min-width: 560px; padding: 22px 80px 20px 60px;
  box-shadow: 0 6px 16px rgba(234, 106, 28, 0.35); letter-spacing: 0.06em;
}
.cta:hover { transform: translateY(2px); box-shadow: 0 3px 10px rgba(234, 106, 28, 0.35); background: var(--or-d); }
.cta-tag { top: -20px; background: #fff; color: var(--or); border: 2px solid var(--or); font-size: 0.95rem; font-weight: 700; padding: 1px 16px; }
.cta-tag::after { content: ""; position: absolute; left: 50%; bottom: -8px; margin-left: -6px; border: 6px solid transparent; border-top-color: var(--or); border-bottom: 0; }
.cta-time { display: none; }
.cta i { font-weight: 400; font-size: 1.6rem; right: 34px; }
.cta-sub { color: var(--dark); }
.cta-sub b { color: var(--red); }
.js-motion .cta, .js-motion .float-cv, .js-motion .sp-fixed-cv a { animation: none; }
.float-cv, .sp-fixed-cv a { background: var(--or) !important; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2) !important; }
@media (max-width: 700px) { .cta { min-width: 0; font-size: 1.15rem; padding: 18px 44px 16px 20px; } .cta i { right: 18px; font-size: 1.3rem; } }

/* ---------- ファーストビュー ---------- */
.fv { padding-top: 40px; }
.fv-pill { font-size: 1.5rem; font-weight: 700; color: var(--navy); }
.fv-pill .free { background: var(--red); border-radius: 2px; font-size: 1rem; padding: 0 14px; }
.fv-pill b { color: var(--navy); font-family: inherit; font-size: 1.5rem; }
.fv-pill em { color: var(--red); font-weight: 700; }
.fv-title { font-weight: 700; color: var(--navy); font-size: 2.6rem; }
.fv-title strong { font-size: 4.4rem; font-weight: 900; color: var(--navy); background: linear-gradient(transparent 76%, #ffd400 76%); }
.fv-sub { background: #fff; color: var(--dark); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12); border-radius: 14px; font-size: 1.45rem; font-weight: 700; padding: 10px 26px 12px; }
.fv-sub span { color: var(--red); }
.fv-sub b { font-family: inherit; font-size: 2.3rem; }
.fv-lead { font-weight: 500; font-size: 0.98rem; color: var(--dark); margin: 16px 0 12px; }
.fv-lead b { color: var(--red); font-weight: 700; }
/* 信頼バッジ：上に黄色の札 */
.fv-badges li { border: 1.5px solid #e2c56a; box-shadow: 0 0 0 4px #fff, 0 0 0 5px #efdc9c; border-radius: 4px; height: 96px; padding-top: 12px; }
.fv-badges li::before { content: none; }
.fv-badges span { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); white-space: nowrap; background: #ffd400; color: var(--navy); font-size: 0.85rem; font-weight: 700; padding: 1px 16px; border-radius: 3px; }
.fv-badges b { font-size: 1.3rem; font-weight: 700; color: var(--navy); }
.fv-badges em { font-family: "Montserrat", "Hiragino Sans", sans-serif; font-size: 3rem; font-weight: 700; }
.fv-badges { margin-top: 34px; }
/* 右上の吹き出し（六角形） */
.fv-bubble {
  position: absolute; z-index: 3; margin: 0; text-align: center; color: var(--red); font-weight: 700; font-size: 1.55rem; line-height: 1.3;
  background: #fde8e8; padding: 22px 46px; border: 1.5px solid #f2a9a9;
  clip-path: polygon(8% 0, 92% 0, 100% 50%, 92% 100%, 8% 100%, 0 50%);
}
.fv-bubble { filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.08)); }
/* 実例の札：人物の手前・右下に重ねる */
.fv-case { border-radius: 6px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15); padding: 14px 16px 10px; }
.fv-case-hd { color: var(--dark); font-size: 0.8rem; font-weight: 700; }
.fv-bars .bar { border-radius: 2px; }
.fv-bars .bar.before { background: #6e6e6e; }
.fv-bars .bar.after { background: var(--or); }
.fv-up {
  width: 136px; height: 136px; background: radial-gradient(circle at 35% 30%, #e6c457, #c79a1e 70%); color: #fff;
  border: 3px solid #fff; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); font-style: italic;
}
.fv-up small { color: #fff; font-size: 1rem; font-style: normal; font-weight: 700; }
.fv-up small:last-child { font-size: 1.6rem; font-style: italic; font-weight: 900; }
.fv-up b { font-size: 2.8rem; font-weight: 900; }
@media (min-width: 701px) {
  .fv-bubble { right: max(20px, calc(50% - 600px)); top: 40px; }
  .fv-case { position: absolute; z-index: 3; right: max(20px, calc(50% - 560px)); top: 440px; width: 400px; max-width: none; }
  .fv-up { right: -30px; top: -86px; }
}
@media (min-width: 701px) and (max-width: 1100px) {
  .fv-bubble { font-size: 1.15rem; padding: 16px 30px; }
  .fv-case { width: 330px; top: 470px; }
  .fv-up { width: 104px; height: 104px; top: -70px; }
  .fv-up b { font-size: 2.1rem; }
}
@media (max-width: 700px) {
  .fv-bubble { position: static; display: block; margin: 0 auto 14px; font-size: 0.95rem; padding: 12px 20px; }
  .fv-title strong { font-size: 2.5rem; }
  .fv-sub { font-size: 1.02rem; padding: 6px 14px 8px; }
  .fv-sub b { font-size: 1.7rem; }
  .fv-up { width: 92px; height: 92px; }
  .fv-up b { font-size: 1.9rem; }
  .fv-up small:last-child { font-size: 1.1rem; }
  .fv-badges li { height: 78px; }
  .fv-badges span { font-size: 0.62rem; padding: 0 6px; top: -11px; }
  .fv-badges em { font-size: 1.9rem; }
  .fv-badges b { font-size: 0.85rem; }
}

/* 活用方法の帯：紺地に白い枠の札 */
.marquee { background: #003566; padding: 18px 0; }
.marquee ul { gap: 16px; }
.marquee li { border: 1.5px solid #fff; padding: 8px 0; width: 170px; text-align: center; font-size: 1.05rem; }
@media (max-width: 700px) { .marquee li { width: 120px; font-size: 0.85rem; padding: 4px 0; } }

/* 一括相談がおすすめ */
.recommend { background: var(--gray-bg); }
.rec-list li { border-radius: 4px; border: 1px solid #e3e6ea; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.07); color: #555; font-size: 0.95rem; padding: 26px 22px 24px; }
.rec-list li::after { content: none; }
.rec-list b { font-size: 1.35rem; color: var(--navy); font-weight: 700; }
.rec-foot { font-size: 1.6rem; font-weight: 700; color: var(--dark); margin-top: 36px; }
.rec-foot b { font-weight: 700; }
.rec-foot strong { color: var(--red); background: linear-gradient(transparent 84%, #ffd400 84%); }
@media (max-width: 700px) { .rec-foot { font-size: 1.05rem; } .rec-list b { font-size: 1.12rem; } }

/* お悩み：線の絵つきの札 → その悩み → クリーム色の囲み */
.worries { position: relative; background: linear-gradient(180deg, #eef1f8 0%, #dbe3f1 100%); overflow: hidden; }
.worries::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 52%; z-index: 0;
  background: linear-gradient(180deg, #8fd0dc, #d9eef3); clip-path: polygon(0 0, 50% 22%, 100% 0, 100% 100%, 0 100%); }
.worries > * { position: relative; z-index: 1; }
.worry-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 2px solid #8fa1c9; border-radius: 6px; padding: 22px 18px 22px 30px; font-weight: 700; font-size: 1.2rem; }
.worry-list li::before { content: none; }
.worry-list em { color: var(--red); font-weight: 700; }
.w-ic { order: 2; width: 52px; height: 52px; flex: none; fill: none; stroke: var(--navy); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.worry-answer { margin-top: 30px; }
.worry-answer::before { border: 0; width: 40px; height: 34px; margin-left: -20px; top: -22px;
  background: linear-gradient(135deg, transparent 50%, transparent 50%);
  content: "︾"; color: #6f8fc7; font-size: 2.6rem; line-height: 1; text-align: center; }
.worry-answer span { position: relative; z-index: 2; background: #fff; color: var(--navy); border: 2.5px solid var(--navy); font-size: 1.4rem; font-weight: 700; padding: 2px 26px; margin-bottom: -16px; }
.worry-answer span::after { content: ""; position: absolute; left: 50%; bottom: -12px; margin-left: -9px; border: 9px solid transparent; border-top-color: var(--navy); border-bottom: 0; }
.worry-answer strong { max-width: 900px; margin: 0 auto; background: #fffbdf; border: 1px solid #c8c8c8; border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); padding: 40px 30px 34px; gap: 24px; }
.worry-answer strong img { width: 300px; }
.worry-answer strong em { font-style: normal; color: var(--red); font-size: 3rem; font-weight: 700; }
@media (max-width: 700px) {
  .worry-list li { font-size: 0.85rem; padding: 12px 8px 12px 12px; }
  .w-ic { width: 32px; height: 32px; }
  .worry-answer span { font-size: 1rem; }
  .worry-answer strong { padding: 24px 12px 18px; gap: 6px; }
  .worry-answer strong img { width: 170px; }
  .worry-answer strong em { font-size: 1.5rem; }
}

/* 特徴：矢印の形の青緑ブロック */
.strength { background: var(--gray-bg); }
.st { border-radius: 6px; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1); padding-left: 220px; }
.st-no { width: 196px; background: #0f94b3; clip-path: polygon(0 0, 88% 0, 100% 50%, 88% 100%, 0 100%); font-size: 1rem; letter-spacing: 0.05em; }
.st .st-no b { font-size: 3.6rem; font-family: "Hiragino Sans", sans-serif; font-weight: 700; }
.st h3 { font-weight: 700; color: var(--dark); font-size: 1.7rem; }
.st h3 em { color: var(--red); font-weight: 700; }
.st p { color: #444; font-size: 1rem; }
.st p b { color: var(--red); font-size: 1rem; font-weight: 500; }
@media (max-width: 700px) { .st { padding-left: 18px; } .st-no { width: auto; clip-path: none; } .st h3 { font-size: 1.2rem; } .st .st-no b { font-size: 1.8rem; } }

/* 比較表：灰色の見出し・オレンジの当社列 */
.compare { background: var(--gray-bg); }
.cmp { border-radius: 0; box-shadow: none; background: transparent; border-spacing: 3px 0; }
.cmp thead th { background: #9a9a9a; color: #fff; font-size: 1.2rem; font-weight: 700; }
.cmp thead th:first-child { background: #9a9a9a; }
.cmp thead th.us { background: var(--or); }
.cmp thead th.us img { width: 110px; }
.cmp tbody th { background: #e9e9e9; color: var(--dark); font-weight: 700; }
.cmp td { background: #fff; color: var(--dark); font-weight: 700; font-size: 0.95rem; border-bottom: 1px solid #ddd; }
.cmp td.us { background: #faf6ef; border-left: 4px solid var(--or); border-right: 4px solid var(--or); color: var(--dark); }
.cmp td.us b { color: var(--red); }
.cmp tbody tr:last-child td.us { border-bottom: 4px solid var(--or); }

/* 申込帯：青のグラデーション */
.cta-band { background: linear-gradient(135deg, #0050a5 0%, #00386e 50%, #0057b0 100%); }
.cb-lead { font-size: 2.6rem; font-weight: 700; margin-bottom: 40px; }
.cta-band .cta-sub { color: #fff; }
@media (max-width: 700px) { .cb-lead { font-size: 1.3rem; } }

/* 活用実例：赤い吹き出しの上昇率 */
.cases { background: var(--gray-bg); }
.case-list li { border-radius: 4px; box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12); overflow: visible; }
.ci { overflow: visible; }
.ci img { border-radius: 4px 4px 0 0; }
.ci span { right: 16px; bottom: -14px; background: var(--red); font-family: "Hiragino Sans", sans-serif; font-weight: 700; font-size: 2rem; padding: 2px 16px; border-radius: 4px; line-height: 1.3; }
.ci span::after { content: ""; position: absolute; left: 50%; bottom: -12px; margin-left: -8px; border: 8px solid transparent; border-top-color: var(--red); border-width: 12px 8px 0; }
.case-list h3 { margin-top: 26px; font-size: 1.3rem; font-weight: 700; color: var(--navy); }
.case-list dt { color: var(--dark); font-weight: 700; }
.case-list s { text-decoration: none; color: var(--dark); font-weight: 700; margin-right: 2px; }
.case-list dd b { font-size: 1.6rem; color: var(--red); font-weight: 700; }
.case-list dd b::before { content: "→ "; color: var(--dark); font-size: 1rem; }
@media (max-width: 700px) { .ci span { font-size: 1.3rem; } .case-list dd b { font-size: 1.25rem; } }

/* サービスの流れ：水色の背景・上に STEP の札 */
.flow { background: var(--blue-bg); }
.flow-list { margin-top: 60px; }
.flow-list li { border-radius: 4px; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08); padding: 74px 24px 24px; }
.flow-list li:not(:last-child)::after { border-left-color: #9a9a9a; }
.fs { position: absolute; top: -8px; left: 50%; transform: translateX(-50%); width: 76px; height: 76px; background: #0f94b3; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; letter-spacing: 0.05em; font-size: 0.85rem; line-height: 1; }
.fs b { margin: 4px 0 0; font-size: 2.2rem; font-family: "Hiragino Sans", sans-serif; font-weight: 700; }
.flow-list h3 { color: #0f94b3; font-size: 1.35rem; font-weight: 700; margin-top: 12px; }
.flow-list p:last-child { color: #444; }

/* ライフプランナー：オレンジの斜めの帯 */
.life { background: linear-gradient(105deg, var(--or) 0, var(--or) 64%, #f7ddd0 64%); padding: 70px 20px; }
.life-in { background: transparent; padding: 0; max-width: 1100px; }
.life-kicker { display: inline-block; background: #fff; color: var(--dark); border-radius: 999px; padding: 6px 24px; font-size: 1.15rem; font-weight: 700; }
.life-txt h2 { color: #fff; font-size: 3.4rem; font-weight: 700; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 14px 0 12px; }
.life-free { background: #fff; color: var(--or); font-size: 2.1rem; padding: 4px 14px; line-height: 1.2; }
.life-txt p { color: #fff; }
.life-tags li { background: #fff; border: 0; color: var(--or); font-size: 1rem; padding: 6px 22px; }
.life-img { width: 360px; }
@media (max-width: 700px) {
  .life { background: var(--or); padding: 44px 16px; }
  .life-txt h2 { font-size: 1.8rem; }
  .life-free { font-size: 1.2rem; }
  .life-img { width: 240px; background: #f7ddd0; border-radius: 8px; padding: 10px; }
}

/* オーナー様の声：VOICE の札・右上に写真 */
.voice { background: var(--gray-bg); }
.voice-list li { position: relative; border-radius: 4px; box-shadow: 0 3px 12px rgba(0, 0, 0, 0.12); padding: 24px 24px 24px; }
.vb { position: absolute; left: 22px; top: 22px; margin: 0; width: 72px; height: 72px; border-radius: 50%; background: #0f94b3; color: #fff; font-weight: 700; font-size: 0.85rem; display: flex; align-items: center; justify-content: center; }
.vb::after { content: ""; position: absolute; right: -2px; bottom: 2px; border: 10px solid transparent; border-left-color: #0f94b3; transform: rotate(30deg); }
.vi { margin: 0 0 18px auto; width: 132px; height: 112px; border-radius: 2px; border: 0; }
.voice-list h3 { text-align: left; color: #0f94b3; font-size: 1.45rem; font-weight: 700; }
.vw { text-align: left; color: #0f94b3; }
.voice-list p:last-child { color: #444; }

/* よくある質問：水色の背景・白い枠 */
.faq { background: var(--blue-bg); }
.faq-list dt { border-radius: 4px; border: 1px solid #b9b9b9; box-shadow: none; font-size: 1.3rem; font-weight: 700; color: var(--dark); padding: 20px 52px 20px 70px; }
.faq-list dt::before { left: 18px; width: 36px; height: 36px; line-height: 36px; background: #0f94b3; }
.faq.faq-ready .faq-list dt.is-open { border-radius: 4px 4px 0 0; }
.faq-list dd { border: 1px solid #b9b9b9; border-top: 0; border-radius: 0 0 4px 4px; padding-left: 70px; font-size: 0.98rem; }
.faq-list dd::before { left: 18px; width: 36px; height: 36px; line-height: 36px; background: var(--red); }
@media (max-width: 700px) { .faq-list dt { font-size: 0.95rem; padding: 14px 40px 14px 56px; } .faq-list dd { padding-left: 56px; } }

/* 最後の申込：青のグラデーション・2行の大きな文字 */
.final { background: linear-gradient(135deg, #0057b0 0%, #00386e 50%, #0050a5 100%); }
.final-logo { display: none; }
.final-lead { font-size: 2.7rem; font-weight: 700; line-height: 1.45; margin: 10px 0 44px; }
.final .cta-sub b { color: #ffd400; }
@media (max-width: 700px) { .final-lead { font-size: 1.4rem; } }

/* フッター */
.ft { background: #003566; }
/* 2026-10-24 デザイン合わせの微調整 */
@media (min-width: 701px) { .fv-copy { position: static; } }
.worry-list li { display: block; position: relative; padding: 22px 84px 22px 28px; }
.worry-list li .w-ic { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); }
@media (max-width: 700px) { .worry-list li { padding: 12px 44px 12px 12px; } .worry-list li .w-ic { right: 8px; } }
.flow-list.flow4 li { padding: 96px 20px 24px; }
.flow-list.flow4 h3 { margin-top: 0; }
.life-txt .life-kicker { color: var(--dark); }
@media (max-width: 700px) {
  .fv-pill { font-size: 1rem; flex-wrap: wrap; }
  .fv-pill b { font-size: 1.1rem; }
  .fv-title { font-size: 1.35rem; }
  .fv-title strong { font-size: 2.4rem; }
  .cb-lead, .final-lead { font-size: 1.3rem; }
  .worry-answer strong em { font-size: 1.4rem; }
}

/* ===== 2026-10-24 訴求強化（業種一覧・今までとの違い・新キャッチ）ここから ===== */
/* 新キャッチ：上に対象を小さく、2行目を大きく */
.fv-title-k { display: block; font-size: 1.05rem; font-weight: 800; color: var(--teal); letter-spacing: .04em; margin-bottom: 6px; }
.fv-title strong { font-size: 3.4rem; }
@media (max-width: 960px) { .fv-title strong { font-size: 2.7rem; } }
@media (max-width: 700px) {
  .fv-title-k { font-size: .82rem; margin-bottom: 4px; }
  .fv-title { font-size: 1.3rem; }
  .fv-title strong { font-size: 2.15rem; }
}

/* 今までの探し方と当社の違い */
.ba { background: var(--gray-bg); }
.ba-label { text-align: center; margin: 0 0 14px; }
.ba-label span { display: inline-block; background: #6b7785; color: #fff; font-weight: 800; border-radius: 999px; padding: 4px 22px; font-size: 1.05rem; }
.ba-old { max-width: 960px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ba-card { background: #fff; border: 2px solid #d5dbe1; border-radius: 12px; padding: 20px 24px; color: #4a5562; }
.ba-card h3 { margin: 0 0 10px; font-size: 1.25rem; color: #4a5562; display: flex; align-items: center; gap: 8px; }
.ba-card h3 i { font-style: normal; width: 28px; height: 28px; border-radius: 50%; background: #9aa5b1; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .9rem; }
.ba-card p { margin: 0; line-height: 1.8; }
.ba-card b { color: var(--red); }
.ba-card ul { margin: 0; padding: 0; list-style: none; }
.ba-card li { position: relative; padding-left: 1.2em; line-height: 1.9; }
.ba-card li::before { content: "・"; position: absolute; left: 0; }
.ba-arrow { width: 0; height: 0; margin: 22px auto; border: 30px solid transparent; border-top: 26px solid var(--cta1); border-bottom: 0; }
.ba-new { max-width: 960px; margin: 0 auto; background: linear-gradient(135deg, #0057b0 0%, #00386e 100%); border-radius: 16px; padding: 26px 28px 30px; color: #fff; box-shadow: 0 10px 30px rgba(0, 56, 110, .25); }
.ba-new-hd { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 0 0 20px; flex-wrap: wrap; }
.ba-new-hd img { width: 190px; height: auto; }
.ba-new-hd strong { font-size: 1.7rem; font-weight: 900; color: var(--yellow); }
.ba-points { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.ba-points li { background: #fff; color: var(--navy-d); border-radius: 12px; padding: 22px 16px 18px; text-align: center; position: relative; }
.ba-no { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); width: 32px; height: 32px; border-radius: 50%; background: var(--cta1); color: #fff; font-weight: 900; display: flex; align-items: center; justify-content: center; font-family: "Montserrat", sans-serif; }
.ba-points p { margin: 0; font-size: 1.1rem; font-weight: 700; line-height: 1.6; }
.ba-points b { color: var(--navy); font-size: 1.25rem; }
.ba-points em { font-style: normal; font-family: "Montserrat", sans-serif; font-size: 2rem; color: var(--cta1); }
.ba-foot { text-align: center; margin: 34px 0 0; font-size: 1.5rem; font-weight: 900; color: var(--navy-d); }
.ba-foot strong { color: var(--cta1); background: linear-gradient(transparent 62%, var(--yellow) 62%); }
.ba-note { max-width: 960px; margin: 18px auto 0; font-size: .78rem; color: #6b7785; line-height: 1.7; }
@media (max-width: 700px) {
  .ba-old, .ba-points { grid-template-columns: 1fr; }
  .ba-points { gap: 22px; }
  .ba-card { padding: 16px 18px; }
  .ba-card h3 { font-size: 1.1rem; }
  .ba-new { padding: 20px 16px 22px; }
  .ba-new-hd img { width: 150px; }
  .ba-new-hd strong { font-size: 1.3rem; }
  .ba-foot { font-size: 1.1rem; }
}

/* ご紹介できる業種一覧 */
.ind { background: #fff; }
.ind-kicker { text-align: center; margin: 0 0 6px; color: var(--teal); font-weight: 800; }
.ind-total { display: flex; justify-content: center; align-items: center; gap: 14px; margin: -14px 0 30px; flex-wrap: wrap; font-weight: 900; color: var(--navy-d); font-size: 1.3rem; }
.ind-total b { font-family: "Montserrat", sans-serif; font-size: 3rem; line-height: 1; color: var(--cta1); margin: 0 2px; }
.ind-t1, .ind-t2 { background: var(--teal-l); border-radius: 12px; padding: 8px 20px; }
.ind-x { color: #9aa5b1; font-size: 1.6rem; }
.ind-grid { list-style: none; margin: 0 auto; padding: 0; max-width: 1100px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.ind-grid li { border: 2px solid #d9eef3; border-radius: 12px; padding: 16px 14px 14px; background: #fbfeff; display: flex; flex-direction: column; }
.ind-no { margin: 0; font-family: "Montserrat", sans-serif; font-weight: 800; font-size: .8rem; color: var(--teal); }
.ind-grid h3 { margin: 2px 0 6px; font-size: 1.02rem; line-height: 1.4; color: var(--navy-d); }
.ind-n { margin: 0 0 10px; font-weight: 800; color: var(--navy-d); }
.ind-n b { font-family: "Montserrat", sans-serif; font-size: 1.6rem; color: var(--navy); margin-right: 2px; }
.ind-g { margin: auto 0 0; display: flex; flex-wrap: wrap; gap: 5px; }
.ind-g span { font-size: .74rem; background: var(--teal-l); color: #0f6b7c; border-radius: 999px; padding: 2px 9px; line-height: 1.6; }
.ind-note { max-width: 1100px; margin: 18px auto 0; font-size: .78rem; color: #6b7785; line-height: 1.7; }
@media (max-width: 960px) { .ind-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) {
  .ind-total { font-size: 1rem; gap: 8px; margin-top: -8px; }
  .ind-total b { font-size: 2.1rem; }
  .ind-t1, .ind-t2 { padding: 6px 12px; }
  .ind-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .ind-grid li { padding: 12px 10px; }
  .ind-grid h3 { font-size: .86rem; }
  .ind-n b { font-size: 1.25rem; }
  .ind-g span { font-size: .66rem; padding: 1px 7px; }
}
/* ===== 2026-10-24 訴求強化 ここまで ===== */
