/* サイヨウ90 LP 修正版（lp-revisions/saiyou90/revision）の追加スタイルを流用 */

/* ==========================================================
   修正版で追加したスタイル（既存の style.css は変更しない）
   既存の配色（--brand / --surface / --navy など）と部品を流用
   ========================================================== */

/* ---------- FV：問い＋説明（旧「紹介手数料は月40万円から」の位置） ---------- */
.fv__lead.rv-fv__q { font-size: calc(var(--fv-u) * 2.75); line-height: 1.4; }
.rv-fv__desc { margin-top: calc(var(--fv-u) * 1.3); color: rgba(255,255,255,.92); font-weight: 700; font-size: max(13px, var(--fv-u) * 1.2); line-height: 1.8; letter-spacing: .02em; }
.fv__cta-btn { word-break: keep-all; overflow-wrap: anywhere; }
.fv__cta-btn .tag { margin-right: .6em; font-size: .7em; }

/* ---------- サイヨウ90の考え方（比較・3列） ---------- */
.rv-compare { background: var(--surface); padding: 96px 0 88px; }
.rv-compare .compare { margin-bottom: 0; max-width: 1100px; }
.rv-compare__table { min-width: 860px; }
.rv-compare__table thead th { font-size: 1.05rem; line-height: 1.4; }
.rv-compare__table tbody th { width: 15%; }
.rv-compare__table tbody td { width: 26%; background: #fff; border-bottom-color: var(--surface); }
.rv-compare__table tbody td.is-hl { width: 33%; background: var(--surface-strong); }
.rv-compare .story__close { margin-top: 40px; }
.rv-compare .story__close .nw { display: inline-block; }

/* ---------- よくある課題：6項目と原因の一文 ---------- */
.rv-pains { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 40px; max-width: 980px; margin: 56px auto 0; background: var(--surface); border-radius: 20px; padding: 28px 40px 16px; }
.rv-pains li { font-size: 1.05rem; }
.rv-pains .nw { display: inline-block; }
.rv-pains__cause { margin-top: 28px; text-align: center; font-weight: 700; font-size: 1.05rem; line-height: 1.8; }

/* ---------- 人が足りないと：出典つきの数字カード ---------- */
.rv-stats { max-width: 1000px; margin: 64px auto 0; }
.rv-stats__title { text-align: center; color: var(--brand-on-dark); font-weight: 900; font-size: 1.15rem; letter-spacing: .06em; margin-bottom: 18px; }
.rv-stats__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rv-stats__list li { background: rgba(255,255,255,.06); border: 1px solid rgba(145,190,255,.4); border-radius: 16px; padding: 24px 20px 18px; text-align: center; }
.rv-stats__num { font-weight: 900; font-size: 1.1rem; color: #fff; line-height: 1.1; }
.rv-stats__num strong { font-family: var(--font-en); font-size: 3.2rem; letter-spacing: -.01em; color: #fff; margin-right: .05em; }
.rv-stats__label { margin-top: 10px; color: #e6e6e6; font-weight: 700; font-size: .98rem; line-height: 1.6; }
.rv-stats__src { margin-top: 12px; color: #a9abb2; font-size: .72rem; line-height: 1.6; text-align: left; }

/* ---------- どこで止まっているか：6段の流れ図＋前半・後半の括り ---------- */
.rv-funnel { max-width: 1000px; }
.rv-funnel .funnel__list { grid-template-columns: repeat(6, 1fr); }
.rv-funnel .funnel__list li.rv-funnel__after { background: var(--surface-strong); }
.rv-funnel__groups { display: grid; grid-template-columns: repeat(6, 1fr); gap: 22px; margin-bottom: 14px; }
.rv-funnel__group { grid-column: 1 / 4; text-align: center; font-weight: 900; font-size: 1.05rem; line-height: 1.4; padding-bottom: 10px; border-bottom: 3px solid var(--brand); color: var(--brand); }
.rv-funnel__group small { display: block; margin-top: 2px; color: var(--gray); font-size: .78rem; font-weight: 700; }
.rv-funnel__group--after { grid-column: 4 / 7; border-bottom-color: var(--navy); color: var(--navy); }

/* ---------- 90日の進め方 ---------- */
.rv-days { background: var(--surface); }
.rv-days .timeline__body { background: #fff; }
.rv-days .timeline__body h3.rv-days__verb { margin: 0; padding: 0; border: 0; font-size: 2rem; letter-spacing: .08em; }
.rv-days .timeline__body > p { margin-top: 12px; font-size: .98rem; line-height: 1.85; font-weight: 500; text-align: left; }
.rv-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.rv-tags li { background: var(--surface); border: 1px solid var(--brand-border); color: var(--brand-dark); border-radius: 999px; padding: .25em .9em; font-size: .85rem; font-weight: 700; line-height: 1.6; }
.rv-days .rv-tags li::before { display: none; }
.rv-days .timeline .rv-tags li { display: inline-block; grid-template-columns: none; padding: .25em .9em; }
.rv-tags li.is-key { background: var(--brand); border-color: var(--brand); color: #fff; }
.rv-days .note { margin-top: 28px; }

/* ---------- 導入事例：業種のチップ ---------- */
.rv-cases { background: #fff; }
.rv-chips { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: -12px 0 28px; }
.rv-chips button { padding: .5em 1.5em; border: 2px solid var(--brand); border-radius: 999px; background: #fff; color: var(--brand); font-weight: 900; font-size: 1rem; line-height: 1.4; }
.rv-chips button[aria-selected="true"] { background: var(--brand); color: #fff; }
.rv-case { max-width: 980px; margin: 0 auto; background: var(--surface); border-radius: 22px; padding: 28px 32px 32px; }
.rv-case[hidden] { display: none; }
.rv-case__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-bottom: 18px; }
.rv-case__h { font-family: var(--font-serif); font-weight: 900; font-size: 1.45rem; line-height: 1.5; letter-spacing: .03em; }
.rv-case__who { width: 100%; color: var(--gray); font-size: .92rem; font-weight: 700; }
.rv-case__tag--image { background: var(--navy); }
.rv-case__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) auto minmax(0, 1fr); gap: 18px; align-items: stretch; }
.rv-case .sc__before { background: #fff; min-height: 0; justify-content: flex-start; }
.rv-case .sc__before > p:not(.rv-case__lbl) { margin-top: 2px; }
.rv-case__lbl { color: var(--brand); font-size: .82rem !important; font-weight: 900 !important; margin-top: 12px !important; }
.rv-case__lbl:first-child { margin-top: 0 !important; }
.rv-case .sc__arrow { border: 14px solid transparent; border-left: 18px solid var(--brand); border-right: 0; }
.rv-case .sc__after { display: flex; flex-direction: column; justify-content: center; text-align: center; padding: 22px 18px; }
.rv-case .sc__after .sc__lbl { justify-content: center; }
.rv-case .nw { display: inline-block; }
.rv-case__was { margin-top: 10px; font-size: .88rem; font-weight: 700; }
.rv-case__image { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.rv-case__image li { background: #fff; border-radius: 14px; padding: 18px 20px; }
.rv-case__image b { display: block; color: var(--brand); font-weight: 900; font-size: 1.05rem; margin-bottom: 6px; }
.rv-case__image p { font-size: .95rem; line-height: 1.8; font-weight: 500; }
.rv-cases .note { margin-top: 16px; }

/* ---------- 任せられる理由 ---------- */
.rv-miniflow { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 12px; margin: 4px 0 12px; }
.rv-miniflow li { position: relative; background: #fff; color: var(--brand-dark); border-radius: 999px; padding: .2em .5em; font-size: .78rem; font-weight: 900; line-height: 1.6; }
.rv-miniflow li + li::before { content: ""; position: absolute; left: -11px; top: 50%; transform: translateY(-50%); border: 4px solid transparent; border-left: 6px solid var(--brand); border-right: 0; }
.rv-miniflow li.is-key { background: var(--brand); color: #fff; }
.rv-reason__note { margin-top: 8px; font-size: .74rem !important; color: var(--gray); line-height: 1.6 !important; }
.rv-reason__opt { margin-top: 18px; text-align: center; font-size: .82rem; color: var(--gray); }
.rv-reason__cta-lead { margin-top: 44px; text-align: center; font-family: var(--font-serif); font-weight: 900; font-size: clamp(20px, 16px + .9vw, 28px); line-height: 1.6; }
.reveal__panel .section-cta { margin-top: 22px; }

/* ---------- よくあるご質問 ---------- */
.doubt-list .nw { display: inline-block; }

/* ---------- 導入の流れ・利用条件・代表メッセージ ---------- */
.rv-flow__list { grid-template-columns: repeat(3, 1fr); }
.rv-flow__sub { margin-top: 8px; font-size: .8rem !important; color: var(--gray); }
.rv-terms { max-width: 1040px; margin: 44px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rv-terms__box { background: #fff; border-radius: 20px; padding: 26px 28px; }
.rv-terms__box h3 { font-size: 1.1rem; font-weight: 900; line-height: 1.35; margin-bottom: 14px; padding-left: .7em; border-left: 4px solid var(--brand); }
.rv-terms__box > p { font-size: .98rem; line-height: 1.85; font-weight: 500; }
.rv-terms__box:first-child { grid-row: span 3; }
.rv-terms__dl { display: grid; grid-template-columns: 8.5em 1fr; gap: 10px 14px; font-size: .95rem; line-height: 1.6; }
.rv-terms__dl dt { color: var(--gray); font-weight: 700; }
.rv-terms__dl dd { margin: 0; font-weight: 700; }
.rv-message { max-width: 820px; margin: 56px auto 0; background: #fff; border: 2px solid var(--brand-border); border-radius: 20px; padding: 40px 52px 36px; }
.rv-message__kicker { text-align: center; color: var(--brand); font-weight: 900; font-size: .95rem; letter-spacing: .08em; }
.rv-message__h { text-align: center; font-family: var(--font-serif); font-weight: 900; font-size: 1.6rem; line-height: 1.5; margin: 6px 0 22px; }
.rv-message p { font-size: 1rem; line-height: 2; font-weight: 500; }
.rv-message p + p { margin-top: 1em; }
.rv-message .rv-message__sign { text-align: right; font-weight: 700; margin-top: 22px; }

/* ---------- 追従ボタン：PCも右下に表示。相談フォームが見えている間は隠す ---------- */
.consultation-float.rv-at-contact { transform: translateY(100%); visibility: hidden; }
@media (min-width: 768px) {
  .consultation-float { transition: opacity .3s, transform .3s, visibility .3s; }
  .consultation-float.is-hidden, .consultation-float.rv-at-contact { opacity: 0; visibility: hidden; transform: translateY(16px); }
  .sp-cta { display: grid; gap: 10px; width: 300px; }
  .sp-cta .btn { width: 100%; min-height: 58px; padding: 6px 1.2em; font-size: 1rem; }
  .sp-cta .btn--line { min-height: 46px; font-size: .95rem; }
}

/* ---------- タブレット ---------- */
@media (max-width: 1024px) {
  .rv-funnel__groups { grid-template-columns: 1fr 1fr; gap: 10px; max-width: 420px; margin: 0 auto 16px; }
  .rv-funnel__group, .rv-funnel__group--after { grid-column: auto; font-size: .92rem; }
  .rv-funnel__group small { display: none; }
  .rv-funnel .funnel__list { grid-template-columns: 1fr; }
  .rv-funnel .funnel__list li { border-left: 5px solid var(--brand); }
  .rv-funnel .funnel__list li.rv-funnel__after { border-left-color: var(--navy); }
  .rv-funnel .funnel__list li:last-child { border-left-color: var(--brand-dark); }
  .rv-stats__list { gap: 12px; }
  .rv-flow__list { grid-template-columns: 1fr; max-width: 640px; }
  .rv-flow__list li + li::before { display: none; }
}

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
  .fv__lead.rv-fv__q { white-space: normal; font-size: clamp(19px, 6.2vw, 30px); }
  .rv-fv__desc { text-align: center; font-size: 13.5px; position: relative; z-index: 1; }
  .fv__portrait, .fv__proof { grid-row: 6; }
  .fv__cta-btn { min-width: 0; width: 100%; padding: 8px 1em; font-size: 1.05rem; line-height: 1.4; text-align: center; }
  .fv__cta { width: 100%; }

  .rv-compare { padding: 64px 0 56px; }
  .rv-compare__table { min-width: 0; border-spacing: 0; }
  .rv-compare__table thead { display: none; }
  .rv-compare__table, .rv-compare__table tbody, .rv-compare__table tr { display: block; width: 100%; }
  .rv-compare__table tr { margin-bottom: 14px; background: #fff; border-radius: 14px; overflow: hidden; }
  .rv-compare__table tbody th { display: block; width: auto; padding: 10px 14px 6px; font-size: .95rem; }
  .rv-compare__table tbody td, .rv-compare__table tbody td.is-hl { display: block; position: relative; width: auto; text-align: left; padding: 9px 14px 9px 110px; min-height: 48px; font-size: .88rem; line-height: 1.6; border-bottom: 1px solid var(--surface); }
  .rv-compare__table tbody td::before { content: attr(data-col); position: absolute; left: 14px; top: 11px; width: 84px; color: var(--gray); font-size: .7rem; font-weight: 700; line-height: 1.45; }
  .rv-compare__table tbody td.is-hl::before { color: var(--brand); font-weight: 900; }
  .rv-compare__table tbody td small { margin-top: 0; }
  .rv-compare__table tbody tr:last-child td { border-radius: 0; padding-bottom: 9px; }
  .rv-compare .story__close { margin-top: 28px; }

  .rv-pains { grid-template-columns: 1fr; padding: 20px 18px 8px; margin-top: 28px; }
  .rv-pains li { font-size: .95rem; }
  .rv-pains__cause { font-size: .95rem; }

  .rv-stats { margin-top: 44px; }
  .rv-stats__list { grid-template-columns: 1fr; }
  .rv-stats__list li { padding: 18px 16px 14px; }
  .rv-stats__num strong { font-size: 2.6rem; }

  .rv-funnel .funnel__list li { grid-template-columns: 1.4em 6.2em; }

  .rv-days .timeline__body h3.rv-days__verb { font-size: 1.5rem; }
  .rv-tags li { font-size: .8rem; }

  .rv-chips { gap: 8px; margin: -8px 0 20px; }
  .rv-chips { gap: 6px; }
  .rv-chips button { font-size: .82rem; padding: .4em .8em; }
  .rv-case { padding: 20px 16px 22px; border-radius: 18px; }
  .rv-case__h { font-size: 1.12rem; }
  .rv-case__grid { grid-template-columns: 1fr; gap: 12px; }
  .rv-case .sc__arrow { justify-self: center; border: 12px solid transparent; border-top: 16px solid var(--brand); border-bottom: 0; }
  .rv-case .sc__after strong { font-size: 2.6rem; }
  .rv-case .sc__after dt { font-size: .82rem; }
  .rv-case .sc__after dd { font-size: .95rem; }
  .rv-case__image { grid-template-columns: 1fr; gap: 10px; }

  .rv-reason__cta-lead { margin-top: 32px; }
  .rv-flow__list li { grid-template-rows: auto auto auto; }
  .rv-flow__list .flow__step { grid-row: 1 / 4; }
  .rv-flow__list .rv-flow__sub { grid-column: 2; margin-top: 4px; }

  .rv-terms { grid-template-columns: 1fr; gap: 12px; margin-top: 28px; }
  .rv-terms__box:first-child { grid-row: auto; }
  .rv-terms__box { padding: 20px 18px; border-radius: 16px; }
  .rv-terms__dl { grid-template-columns: 1fr; gap: 0; }
  .rv-terms__dl dd { margin-bottom: 10px; }
  .rv-message { padding: 28px 20px 24px; margin-top: 36px; border-radius: 16px; }
  .rv-message__h { font-size: 1.3rem; }
  .rv-message p { font-size: .95rem; line-height: 1.95; }
}
.rv-fv__note { margin: 8px 0 0; font-size: max(9px, var(--fv-u) * .6); color: rgba(255,255,255,.75); font-weight: 500; }
@media (max-width: 1024px) { .rv-fv__note { text-align: center; font-size: 9px; } }
@media (min-width: 1025px) { .fv__proof ul { gap: calc(var(--fv-u) * .5); } }
/* 実績の月桂樹を大きく見せる（2026-11-14 岡林さん「文字が小さくて分からない」） */
@media (min-width: 1025px) {
  .fv__proof { margin-top: calc(var(--fv-u) * 1.2); }
  .fv__proof li { width: calc(var(--fv-u) * 18); }
  .fv__proof-case, .fv__proof-value { font-size: max(13px, var(--fv-u) * 1.25); }
  .fv__proof-case small { font-size: .82em; }
  .fv__proof-value strong { font-size: max(36px, var(--fv-u) * 4.4); }
  .fv__proof-note { font-size: max(11px, var(--fv-u) * 1); }
  .rv-fv__note { margin-top: 2px; font-size: max(10px, var(--fv-u) * .75); }
}
@media (max-width: 1024px) {
  .fv__proof ul { gap: 0; }
  .fv__proof li { width: calc(100% / 3); max-width: 170px; padding-top: 5%; padding-bottom: 2%; }
  .fv__proof-case, .fv__proof-value { font-size: clamp(10px, 2.9vw, 12.5px); }
  .fv__proof-case { letter-spacing: -.02em; }
  .fv__proof-case small { font-size: .9em; }
  .fv__proof-value strong { font-size: clamp(28px, 9vw, 40px); line-height: 1; }
  .fv__proof-note { font-size: clamp(9px, 2.5vw, 11px); margin-top: 0; }
  .fv__proof li:last-child { padding-top: 3%; padding-bottom: 3%; }
  .fv__proof li:last-child .fv__proof-value strong { font-size: clamp(26px, 8vw, 36px); }
  .rv-fv__note { font-size: 10px; }
}
