@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .rv-rainbow          - ロゴ虹色のグラデーションバー（区切り・装飾）
 * .rv-header 系        - デザイン踏襲のスティッキーヘッダー（虹色トップバー＋SNS＋角ばりCTA）
 * .rv-btn 系           - 角ばり（clip-path）CTAボタン各種
 * .rv-section 系       - デザインの余白・背景・虹色トップライン付きセクション
 * .rv-eyebrow          - Quicksand英字ラベル（見出し上の小見出し）
 * .rv-h2 / .rv-hero    - clampで可変する見出し・下層ヒーロー
 * .rv-mv 系            - 動画メインビュー
 * .rv-worry 系         - お困りごとリスト
 * .rv-svc-card 系      - 事業案内カード（画像＋角バッジ＋アウトラインボタン）
 * .rv-reason-card 系   - 選ばれる理由カード（トップボーダー色分け）
 * .rv-stat-card / .rv-marquee 系 - 導入実績＋ロゴ横流れ
 * .rv-grid-lined 系    - 1pxギャップの罫線グリッド＋トップボーダーカード
 * .rv-msg 系           - 代表挨拶2カラム
 * .rv-detail-card 系   - サービス内容カード（テキスト＋アイコン画像）
 * .rv-flow 系          - フロー行（ダーク背景・番号付き）
 * .rv-plan 系          - 料金プランカード（POPULARバッジ・最上位ダーク）
 * .rv-faq 系           - details方式のFAQ
 * .rv-cinfo 系         - 会社情報テーブル
 * .rv-method-card 系   - お問い合わせ方法カード
 * .rv-form 系          - お問い合わせフォーム
 * .rv-footer 系        - 虹色CTA帯＋ダーク3カラムフッター
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・構造不足：clip-pathの角ばりボタン、虹色グラデ帯、動画MV、1px罫線グリッド、
 *   下層ヒーロー冒頭の虹色トップライン付きダークセクション
 * ・装飾パターン不足：ロゴ虹色（4色）グラデーションのライン／帯
 * ・状態不足：スクロールreveal（data-reveal）フェードイン
 * これらはデザイン（claude-design-output）を「正」として site.css で再現。
 */

/* ============================================================
 * ベース微調整
 * ============================================================ */
body { line-height: 1.85; }
body.is-nav-open { overflow: hidden; }
img { display: block; }

.rv-en { font-family: "Quicksand", sans-serif; }

/* 虹色グラデーション（ロゴ4色） */
.rv-rainbow {
  height: 4px;
  background: linear-gradient(90deg, #5e204e, #d82a90, #f38a52, #1f8cd4);
}

/* スクロール表示アニメーション */
[data-reveal] {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .7s ease, transform .8s cubic-bezier(.16,.8,.3,1);
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* ============================================================
 * ボタン（角ばり）
 * ============================================================ */
.rv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #0cb5e7;
  color: #fff;
  font-weight: 900;
  font-size: 16px;
  line-height: 1.4;
  padding: 17px 40px;
  text-align: center;
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  transition: filter .2s ease, transform .2s ease;
}
.rv-btn:hover { color: #fff; opacity: 1; filter: brightness(1.08); transform: translateY(-2px); }
.rv-btn--pink { background: #d82a90; }
.rv-btn--sm {
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 700;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
}
.rv-btn--full { display: flex; width: 100%; }

/* アウトライン（カード内「詳しく見る」） */
.rv-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: flex-start;
  border: 2px solid #0cb5e7;
  color: #0797c5;
  font-weight: 700;
  font-size: 15px;
  padding: 12px 26px;
  transition: background .2s ease, color .2s ease;
}
.rv-btn-outline:hover { background: #0cb5e7; color: #fff; opacity: 1; }
.rv-btn-outline--pink { border-color: #d82a90; color: #c0247f; }
.rv-btn-outline--pink:hover { background: #d82a90; color: #fff; }

/* ============================================================
 * セクション・見出し
 * ============================================================ */
.rv-section { padding: 96px 24px; }
.rv-section--sm { padding: 80px 24px; }
.rv-section--tight { padding: 90px 24px 70px; }
.rv-section--light { background: #f2f9fc; }
.rv-section--pink { background: #faf3f7; }
.rv-section--dark { position: relative; background: #04384a; }
.rv-section--purple { position: relative; background: #3a1440; }
.rv-section--dark::before,
.rv-section--purple::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, #5e204e, #d82a90, #f38a52, #1f8cd4);
}

.rv-inner { max-width: 1120px; margin: 0 auto; }
.rv-inner--900 { max-width: 900px; margin: 0 auto; }
.rv-inner--1000 { max-width: 1000px; margin: 0 auto; }
.rv-inner--1180 { max-width: 1180px; margin: 0 auto; }
.rv-inner--plan { max-width: 1320px; }
.rv-inner--1360 { max-width: 1360px; margin: 0 auto; }
.rv-inner--860 { max-width: 860px; margin: 0 auto; }
.rv-inner--1160 { max-width: 1245px; margin: 0 auto; }
.rv-inner--form { max-width: 760px; margin: 0 auto; }

.rv-head { margin-bottom: 52px; }
.rv-head--center { text-align: center; }
.rv-eyebrow {
  font-family: "Quicksand", sans-serif;
  font-weight: 700;
  letter-spacing: .24em;
  font-size: 13px;
  color: #0cb5e7;
  margin-bottom: 10px;
}
.rv-eyebrow--light { color: #8fe4ff; }
.rv-eyebrow--pink { color: #d82a90; }
.rv-eyebrow--rose { color: #f6a9cf; }
.rv-strong-pink { color: #c0247f; }
.rv-h2 {
  margin: 0;
  font-size: clamp(24px, 3.4vw, 36px);
  font-weight: 900;
  line-height: 1.45;
  color: #16232b;
}
.rv-h2--sm { font-size: clamp(23px, 3.2vw, 32px); }
.rv-h2--white { color: #fff; }
.rv-lead {
  max-width: 820px;
  color: #40525c;
  font-size: 15px;
  line-height: 1.95;
  margin: 0 0 44px;
}
.rv-lead--dark { color: #2b3a42; font-size: 15.5px; line-height: 2; }

.rv-prose { font-size: 15.5px; line-height: 2.1; color: #2b3a42; }
.rv-prose p { margin: 0 0 22px; }
.rv-prose p:last-child { margin-bottom: 0; }
.rv-prose strong { color: #16232b; }

/* ============================================================
 * メインビュー（動画）
 * ============================================================ */
.rv-mv {
  position: relative;
  height: min(88vh, 760px);
  min-height: 520px;
  overflow: hidden;
  background: #04384a;
}
.rv-mv__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rv-mv__overlay {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(4,40,58,.55) 0%, rgba(4,40,58,.15) 55%, rgba(4,40,58,0) 100%);
}
.rv-mv__inner {
  position: absolute; inset: 0;
  display: flex; align-items: center;
  pointer-events: none;
}
.rv-mv__content { max-width: 1280px; width: 100%; margin: 0 auto; padding: 0 24px; }
.rv-mv__tag { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.rv-mv__tag-bar { width: 44px; height: 3px; display: block; background: linear-gradient(90deg, #f38a52, #d82a90, #1f8cd4); }
.rv-mv__tag-text {
  font-family: "Quicksand", sans-serif;
  font-weight: 700; letter-spacing: .28em; font-size: 14px; color: #8fe4ff;
}
.rv-mv__title {
  margin: 0; color: #fff; font-weight: 900;
  font-size: clamp(30px, 5vw, 60px); line-height: 1.3;
  text-shadow: 0 4px 28px rgba(0,0,0,.35);
}
.rv-mv__title-grad {
  background: linear-gradient(90deg, #8fe4ff, #0cb5e7);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rv-mv__sub {
  color: #e8f7ff; font-size: clamp(16px, 2vw, 21px); font-weight: 500;
  margin: 22px 0 0; text-shadow: 0 2px 14px rgba(0,0,0,.4);
}

/* ============================================================
 * 下層ページヒーロー
 * ============================================================ */
.rv-hero { position: relative; overflow: hidden; padding: 78px 24px 66px; background: #04384a; }
.rv-hero--purple { background: #3a1440; }
.rv-hero::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, #5e204e, #d82a90, #f38a52, #1f8cd4);
}
.rv-hero__inner { max-width: 1120px; margin: 0 auto; position: relative; }
.rv-hero__title { margin: 10px 0 0; color: #fff; font-size: clamp(28px, 4.4vw, 46px); font-weight: 900; }
.rv-hero__lead { margin: 18px 0 0; max-width: 780px; color: #cfe6ef; font-size: 16px; line-height: 1.95; }
.rv-hero--purple .rv-hero__lead { color: #f0dcea; }

/* ============================================================
 * お困りごと（index）
 * ============================================================ */
.rv-worry { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.rv-worry__lead { flex: 1 1 320px; max-width: 420px; }
.rv-worry__bar { display: block; width: 56px; height: 4px; background: #0cb5e7; margin: 22px 0 0; }
.rv-worry__illust { width: 100%; max-width: 400px; height: auto; margin-top: 28px; }
.rv-worry__list { flex: 2 1 420px; display: flex; flex-direction: column; gap: 16px; padding-top: 6px; }
.rv-worry__item {
  display: flex; align-items: center; gap: 20px;
  background: #f2f9fc; border-radius: 14px; padding: 22px 30px;
}
.rv-worry__item--pink { background: #faf3f7; }
.rv-worry__item svg { flex: none; }
.rv-worry__item p { margin: 0; font-size: 16.5px; line-height: 1.65; color: #3a4a53; }
.rv-worry__item strong { color: #16232b; }
.rv-worry__closing { text-align: center; margin: 56px 0 0; font-size: 18px; font-weight: 700; color: #16232b; }
.rv-worry__closing strong { color: #0797c5; }

/* ============================================================
 * 事業案内カード（index）
 * ============================================================ */
.rv-svc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; }
.rv-svc-card { border: 1px solid #e2eef3; background: #fff; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.rv-svc-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(12,181,231,.14); }
.rv-svc-card__media { position: relative; height: 220px; overflow: hidden; background: #04384a; }
.rv-svc-card__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.rv-svc-card:hover .rv-svc-card__media img { transform: scale(1.06); }
.rv-svc-card__badge {
  position: absolute; left: 0; top: 0; background: #0cb5e7; color: #fff;
  font-family: "Quicksand", sans-serif; font-weight: 700; letter-spacing: .1em;
  font-size: 12px; padding: 8px 16px;
}
.rv-svc-card__badge--pink { background: #d82a90; }
.rv-svc-card__body { padding: 32px; flex: 1; display: flex; flex-direction: column; }
.rv-svc-card__title { margin: 0; font-size: 23px; font-weight: 900; }
.rv-svc-card__text { margin: 14px 0 24px; color: #40525c; font-size: 15px; line-height: 1.9; flex: 1; }

/* ============================================================
 * 選ばれる理由カード（index dark）
 * ============================================================ */
.rv-reason-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 28px; }
.rv-reason-card { background: rgba(255,255,255,.06); border-top: 3px solid #0cb5e7; padding: 34px 30px; }
.rv-reason-card--pink { border-top-color: #d82a90; }
.rv-reason-card--orange { border-top-color: #f38a52; }
.rv-reason-card__num { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 34px; line-height: 1; color: #0cb5e7; }
.rv-reason-card--pink .rv-reason-card__num { color: #f0679f; }
.rv-reason-card--orange .rv-reason-card__num { color: #f8a06e; }
.rv-reason-card__title { margin: 18px 0 12px; color: #fff; font-size: 20px; font-weight: 900; }
.rv-reason-card__text { margin: 0; color: #bcd6e0; font-size: 14.5px; line-height: 1.9; }

/* ============================================================
 * 導入実績（index）
 * ============================================================ */
.rv-works { position: relative; overflow: hidden; padding: 100px 0 90px; }
.rv-works__watermark {
  position: absolute; left: -60px; bottom: -40px; width: min(46vw, 520px);
  height: auto; opacity: .1; pointer-events: none; z-index: 0;
}
.rv-works__inner { max-width: 1120px; margin: 0 auto; padding: 0 24px; position: relative; z-index: 1; }
.rv-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; margin-bottom: 60px; }
.rv-stat-card { border: 1px solid #e2eef3; padding: 36px 34px; background: #fff; }
.rv-stat-card__label { font-size: 13px; font-weight: 700; color: #0797c5; margin-bottom: 8px; }
.rv-stat-card__label--pink { color: #c0247f; }
.rv-stat-card__figure { display: flex; align-items: baseline; gap: 10px; }
.rv-stat-card__value { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 48px; line-height: 1; color: #0cb5e7; }
.rv-stat-card__value--pink { color: #d82a90; }
.rv-stat-card__unit { font-size: 16px; font-weight: 700; color: #40525c; }
.rv-stat-card__note { margin: 14px 0 0; color: #40525c; font-size: 14.5px; }

.rv-marquee { border-top: 1px solid #e2eef3; border-bottom: 1px solid #e2eef3; padding: 34px 0; overflow: hidden; position: relative; }
.rv-marquee__track { display: flex; width: max-content; animation: rv-marquee 26s linear infinite; }
.rv-marquee__item {
  width: 170px; height: 60px; margin: 0 14px; flex: none;
  background: #f2f9fc; border: 1px solid #e2eef3;
  display: flex; align-items: center; justify-content: center;
  color: #9fb6c0; font-family: "Quicksand", sans-serif; font-weight: 600; font-size: 14px;
}
@keyframes rv-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ============================================================
 * 罫線グリッド（1pxギャップ）＋トップボーダーカード
 * ============================================================ */
.rv-grid-lined {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1px; background: #e2eef3; border: 1px solid #e2eef3;
}
.rv-grid-lined--pink { background: #ecd9e4; border-color: #ecd9e4; }
.rv-lined-card { background: #fff; padding: 40px 32px; }
.rv-lined-card--top-cyan { border-top: 3px solid #0cb5e7; }
.rv-lined-card--top-pink { border-top: 3px solid #d82a90; }
.rv-lined-card--top-red { border-top: 3px solid #FF0000; }
.rv-lined-card--top-blue { border-top: 3px solid #1f8cd4; }
.rv-lined-card--top-dark { border-top: 3px solid #16232b; }
.rv-lined-card--top-green { border-top: 3px solid #06c755; }
.rv-lined-card--center { text-align: center; padding: 44px 32px 40px; }
.rv-lined-card__num { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 30px; line-height: 1; color: #0cb5e7; }
.rv-lined-card--top-cyan .rv-lined-card__num { color: #0cb5e7; }
.rv-lined-card--top-pink .rv-lined-card__num { color: #d82a90; }
.rv-lined-card--top-red .rv-lined-card__num { color: #FF0000; }
.rv-lined-card__title { margin: 16px 0 12px; font-size: 19px; font-weight: 900; line-height: 1.5; }
.rv-lined-card__text { margin: 0; color: #40525c; font-size: 14.5px; line-height: 1.9; }
.rv-lined-card__ptext { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.75; }
.rv-lined-card__icon { margin-bottom: 18px; }

/* ============================================================
 * 代表挨拶（about）
 * ============================================================ */
.rv-msg { display: grid; grid-template-columns: 320px 1fr; gap: 48px; align-items: start; }
.rv-msg__aside { position: sticky; top: 96px; }
.rv-msg__photo {
  aspect-ratio: 1134 / 1667; background: #0a4a5f; display: flex; align-items: center; justify-content: center;
  border: 1px solid #e2eef3; color: #7fbcd0; font-family: "Quicksand", sans-serif; font-size: 13px; letter-spacing: .1em;
}
.rv-msg__photo img { width: 100%; height: 100%; object-fit: cover; }
.rv-msg__namecard { background: #fff; border: 1px solid #e2eef3; border-top: none; padding: 20px 22px; }
.rv-msg__role { font-size: 12px; color: #7f9dad; font-weight: 700; }
.rv-msg__name { font-size: 20px; font-weight: 900; margin-top: 2px; }
.rv-msg__iglink { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; font-weight: 700; color: #c0247f; }
.rv-msg__sns { background: #fff; border: 1px solid #e2eef3; border-top: none; padding: 18px 22px 20px; }
.rv-msg__sns-group + .rv-msg__sns-group { margin-top: 16px; padding-top: 16px; border-top: 1px solid #eef4f7; }
.rv-msg__sns-title { font-size: 12.5px; font-weight: 700; color: #2b3a42; line-height: 1.5; }
.rv-msg__sns-links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 8px; }
.rv-msg__sns-links .rv-msg__iglink { margin-top: 0; }
.rv-msg__linelink { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #06c755; }
.rv-msg__body { font-size: 15.5px; line-height: 2.15; color: #2b3a42; }
.rv-msg__body p { margin: 0 0 22px; }
.rv-msg__sign { border-left: 4px solid #0cb5e7; padding-left: 18px; margin-top: 6px; }
.rv-msg__sign-role { font-size: 13px; color: #7f9dad; }
.rv-msg__sign-name { font-size: 22px; font-weight: 900; letter-spacing: .06em; }

/* ============================================================
 * サービス内容カード（sns）
 * ============================================================ */
.rv-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 28px; }
.rv-detail-card { border: 1px solid #e2eef3; padding: 32px 30px; display: flex; align-items: flex-start; gap: 16px; }
.rv-detail-card__body { flex: 1; }
.rv-detail-card__num { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 14px; color: #0cb5e7; }
.rv-detail-card__title { margin: 8px 0 12px; font-size: 19px; font-weight: 900; }
.rv-detail-card__text { margin: 0; color: #40525c; font-size: 14.5px; line-height: 1.9; }
.rv-detail-card__img { width: 140px; height: 140px; object-fit: contain; flex: none; }

/* 対応SNSカード（アイコン＋ラベル） */
.rv-platform { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.rv-platform i { font-size: 22px; }
.rv-ic-ig { color: #d82a90; }
.rv-ic-tt { color: #16232b; }
.rv-ic-yt { color: #ff0000; }
.rv-ic-line { color: #06c755; }
.rv-platform__name { font-weight: 900; font-size: 18px; }
.rv-platform-text { margin: 0; color: #40525c; font-size: 14px; line-height: 1.85; }

/* ============================================================
 * フロー行（dark）
 * ============================================================ */
.rv-flow { display: flex; flex-direction: column; gap: 1px; }
.rv-flow__row { background: rgba(255,255,255,.05); display: flex; gap: 24px; padding: 28px 30px; align-items: baseline; }
.rv-flow__num { font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 30px; color: #0cb5e7; min-width: 52px; }
.rv-flow--pink .rv-flow__num { color: #f0679f; }
.rv-flow__title { margin: 0 0 8px; color: #fff; font-size: 18px; font-weight: 900; }
.rv-flow__text { margin: 0; color: #bcd6e0; font-size: 14.5px; line-height: 1.85; }
.rv-flow--pink .rv-flow__text { color: #e6cddb; }

/* ============================================================
 * 料金プラン（sns）
 * ============================================================ */
.rv-plan-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: 24px; }
.rv-plan { border: 1px solid #e2eef3; display: flex; flex-direction: column; position: relative; }
.rv-plan--featured { border: 2px solid #0cb5e7; }
.rv-plan--dark { border: 1px solid #16232b; background: #04283a; }
.rv-plan__badge {
  position: absolute; top: 0; right: 0; background: #0cb5e7; color: #fff;
  font-family: "Quicksand", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .06em; padding: 5px 12px;
}
.rv-plan__head { background: #f2f9fc; padding: 26px 26px 22px; border-bottom: 1px solid #e2eef3; }
.rv-plan__head--featured { background: #e6f7fd; border-color: #cfeefb; }
.rv-plan__head--dark { background: transparent; border-color: rgba(255,255,255,.12); }
.rv-plan__name { font-size: 15px; font-weight: 900; }
.rv-plan__name--white { color: #fff; }
.rv-plan__name-tag { font-size: 11px; color: #8fe4ff; margin-left: 6px; }
.rv-plan__price { margin-top: 8px; font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 26px; color: #0cb5e7; }
.rv-plan__price--blue { color: #0797c5; }
.rv-plan__price--pink { color: #d82a90; }
.rv-plan__price--orange { color: #f38a52; }
.rv-plan__price span { font-size: 13px; color: #40525c; }
.rv-plan__price--orange span { color: #bcd6e0; }
.rv-plan__target { margin-top: 8px; font-size: 12.5px; color: #7f9dad; }
.rv-plan__target--featured { color: #5c7480; }
.rv-plan__target--dark { color: #9fbccc; }
.rv-plan__body { padding: 24px 26px; font-size: 13.5px; line-height: 1.95; color: #2b3a42; flex: 1; }
.rv-plan__body--dark { color: #cfe3ec; }
.rv-plan__body-head { font-weight: 700; margin-bottom: 10px; }
.rv-plan__body-head--white { color: #fff; }
.rv-note { margin: 26px 0 0; font-size: 12.5px; color: #7f9dad; }

/* ============================================================
 * FAQ（details）
 * ============================================================ */
.rv-faq { display: flex; flex-direction: column; gap: 12px; }
.rv-faq details { background: #fff; border: 1px solid #e2eef3; }
.rv-faq summary { cursor: pointer; padding: 22px 24px; display: flex; gap: 16px; align-items: center; list-style: none; }
.rv-faq summary::-webkit-details-marker { display: none; }
.rv-faq__q { font-family: "Quicksand", sans-serif; font-weight: 700; color: #0cb5e7; font-size: 18px; }
.rv-faq--pink .rv-faq__q { color: #d82a90; }
.rv-faq__question { flex: 1; font-size: 16px; font-weight: 700; color: #16232b; }
.rv-faq__plus { color: #0cb5e7; font-size: 20px; font-weight: 700; margin-left: auto; }
.rv-faq--pink .rv-faq__plus { color: #d82a90; }
.rv-faq__plus::before { content: "+"; }
.rv-faq details[open] .rv-faq__plus::before { content: "−"; }
.rv-faq__a { padding: 0 24px 24px 56px; color: #40525c; font-size: 14.5px; line-height: 1.95; }

/* ============================================================
 * 汎用CTAセクション（sns/sidejob）
 * ============================================================ */
.rv-cta { text-align: center; }
.rv-cta__inner { max-width: 720px; margin: 0 auto; }
.rv-cta__title { margin: 0 0 14px; font-size: clamp(22px, 3vw, 30px); font-weight: 900; }
.rv-cta__text { margin: 0 0 30px; color: #40525c; font-size: 15px; line-height: 1.9; }

/* ============================================================
 * 副業ページ 概要2カラム
 * ============================================================ */
.rv-split { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.rv-split__text { flex: 1 1 440px; }
.rv-split__media { flex: 1 1 360px; }
.rv-split__media img { width: 100%; height: auto; }
.rv-quote { border-left: 4px solid #d82a90; padding: 6px 0 6px 22px; margin-bottom: 30px; }
.rv-quote__text { font-size: clamp(20px, 3vw, 28px); font-weight: 900; color: #c0247f; line-height: 1.5; }

/* 期間・対象ボックス（副業） */
.rv-facts { display: flex; flex-wrap: wrap; gap: 1px; background: #e2eef3; border: 1px solid #e2eef3; margin-bottom: 44px; }
.rv-facts-title { margin: 0 0 24px; font-size: 19px; font-weight: 900; }
.rv-facts__cell { background: #fff; padding: 24px 32px; flex: 1; min-width: 200px; }
.rv-facts__cell--wide { flex: 3; min-width: 280px; }
.rv-facts__label { font-size: 12px; color: #7f9dad; font-weight: 700; }
.rv-facts__value { font-size: 20px; font-weight: 900; margin-top: 4px; }
.rv-facts__value--sm { font-size: 14.5px; font-weight: 500; line-height: 1.8; color: #2b3a42; }

/* サポート内容カード（副業） */
.rv-support-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px; }
.rv-support-card { border: 1px solid #e2eef3; padding: 28px; }
.rv-support-card__title { margin: 0 0 10px; font-size: 16px; font-weight: 900; color: #c0247f; }
.rv-support-card__text { margin: 0; color: #40525c; font-size: 14px; line-height: 1.85; }

/* ============================================================
 * 会社情報テーブル（company）
 * ============================================================ */
.rv-cinfo { border-top: 2px solid #0cb5e7; }
.rv-cinfo__row { display: flex; border-bottom: 1px solid #e2eef3; }
.rv-cinfo__th { width: 200px; flex: none; background: #f2f9fc; padding: 20px 26px; font-weight: 700; font-size: 14.5px; }
.rv-cinfo__td { padding: 20px 26px; font-size: 14.5px; line-height: 1.85; }
.rv-lead-block { margin: 0 0 60px; font-size: 16px; line-height: 2; color: #2b3a42; }

/* ============================================================
 * 埋め込み地図
 * ============================================================ */
.rv-map { border: 1px solid #e2eef3; overflow: hidden; }
.rv-map iframe { display: block; border: 0; width: 100%; }
.rv-map--lg { height: 360px; }
.rv-map--lg iframe { height: 360px; }

/* ============================================================
 * お問い合わせ方法カード
 * ============================================================ */
.rv-method-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.rv-method-card { border: 1px solid #e2eef3; padding: 32px 30px; display: block; transition: box-shadow .2s ease, transform .2s ease; }
a.rv-method-card:hover { box-shadow: 0 10px 24px rgba(12,181,231,.12); transform: translateY(-3px); opacity: 1; }
.rv-method-card__head { display: flex; align-items: center; gap: 10px; }
.rv-method-card__head--cyan { color: #0cb5e7; }
.rv-method-card__head--line { color: #06c755; }
.rv-method-card__head--orange { color: #f38a52; }
.rv-method-card__title { font-size: 18px; font-weight: 900; color: #16232b; }
.rv-method-card__text { margin: 14px 0 0; color: #40525c; font-size: 14px; line-height: 1.85; }

/* ============================================================
 * お問い合わせフォーム
 * ============================================================ */
.rv-form { display: flex; flex-direction: column; gap: 24px; }
.rv-form__label { display: block; font-size: 14px; font-weight: 700; margin-bottom: 8px; }
.rv-form__req { color: #d82a90; }
.rv-form__field {
  width: 100%; font-family: inherit; font-size: 15px; padding: 14px 16px;
  border: 1px solid #cddbe2; background: #fff; color: #16232b;
}
.rv-form__field:focus { border-color: #0cb5e7; outline: none; }
textarea.rv-form__field { resize: vertical; }
.rv-form__submit { align-self: center; border: none; cursor: pointer; }
.rv-form-done { border: 2px solid #0cb5e7; background: #e6f7fd; padding: 48px 32px; text-align: center; }
.rv-form-done__title { font-size: 20px; font-weight: 900; color: #0797c5; margin-bottom: 10px; }
.rv-form-done__text { margin: 0; color: #40525c; font-size: 14.5px; line-height: 1.9; }
.rv-form-error { border: 1px solid #d82a90; background: #faf0f5; color: #c0247f; padding: 18px 22px; margin-bottom: 24px; font-size: 14px; line-height: 1.8; }

/* ページ内リンク時にstickyヘッダーへ隠れないようオフセット */
#contact-form { scroll-margin-top: 90px; }

/* --- フォームCMS（form-pattern-1）をサイトデザインに合わせる --- */
/* 送信ボタンをサイトの .rv-btn デザインに揃える */
.form-pattern-1 .submit-btn {
  display: flex !important;
  width: fit-content !important;
  margin-left: auto !important;
  margin-right: auto !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  background: #0cb5e7 !important;
  color: #fff !important;
  font-weight: 900 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
  padding: 17px 40px !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px) !important;
  transition: filter .2s ease, transform .2s ease !important;
}
.form-pattern-1 .submit-btn:hover {
  color: #fff !important;
  opacity: 1 !important;
  filter: brightness(1.08) !important;
  transform: translateY(-2px) !important;
}
/* 必須バッジ・ボタン装飾をサイトカラーに変更 */
.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  content: '必須' !important;
  color: #fff !important;
  background: #d82a90 !important;
}
.form-pattern-1 .submit-btn::before {
  background-color: #fff !important;
}
.form-pattern-1 .submit-btn:hover::before {
  background-color: #0797c5 !important;
}

/* ============================================================
 * ヘッダー
 * ============================================================ */
.rv-header { position: sticky; top: 0; z-index: 100; background: #fff; border-bottom: 1px solid #e2eef3; }
.rv-header__inner {
  max-width: 1280px; margin: 0 auto; padding: 0 24px; height: 72px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.rv-header__logo { display: flex; align-items: center; }
.rv-header__logo img { height: 55px; width: auto; }
.rv-nav { display: flex; align-items: center; gap: 6px; }
.rv-nav__link { position: relative; font-size: 15px; font-weight: 500; color: #16232b; padding: 8px 12px; }
.rv-nav__link:hover { color: #0cb5e7; opacity: 1; }
.rv-nav__link.is-current { color: #0797c5; }
.rv-nav__link.is-current::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 3px; background: #0cb5e7;
}
.rv-nav__aside {
  display: flex; align-items: center; gap: 12px;
  margin-left: 12px; padding-left: 16px; border-left: 1px solid #e2eef3;
}
.rv-nav__sns { color: #16232b; display: flex; }
.rv-nav__sns:hover { color: #0cb5e7; opacity: 1; }
.rv-spnav__sns { display: flex; gap: 22px; justify-content: center; }
.rv-spnav__sns a { color: #fff; display: flex; }

/* SPナビ（ハンバーガー）の背景をサイトのダークティールに統一 */
.sp-nav { background: #04384a; }
.sp-nav__link::after { margin-left: 10px; }
.sp-nav__en { font-size: 1.5rem; }

/* ============================================================
 * フッター
 * ============================================================ */
.rv-footer { background: #04283a; color: #cfe3ec; }
.rv-footer__cta { background: linear-gradient(90deg, #5e204e, #d82a90, #f38a52, #1f8cd4); }
.rv-footer__cta-inner {
  max-width: 1120px; margin: 0 auto; padding: 54px 24px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px;
}
.rv-footer__cta-en { font-family: "Quicksand", sans-serif; font-weight: 700; letter-spacing: .22em; font-size: 13px; color: rgba(255,255,255,.85); }
.rv-footer__cta-title { margin: 6px 0 0; color: #fff; font-size: clamp(22px, 3vw, 32px); font-weight: 900; }
.rv-footer__cta-btn {
  background: #fff; color: #0797c5; font-weight: 900; font-size: 16px; padding: 19px 42px;
  display: inline-flex; align-items: center; gap: 10px;
  box-shadow: 0 7px 0 0 #b45c1e, 0 14px 22px rgba(4,40,58,.32);
  transition: transform .14s ease, box-shadow .14s ease;
}
.rv-footer__cta-btn:hover {
  color: #0797c5; opacity: 1; transform: translateY(4px);
  box-shadow: 0 3px 0 0 #b45c1e, 0 7px 12px rgba(4,40,58,.28);
}
.rv-footer__cta-btn span { font-size: 18px; }
.rv-footer__grid {
  max-width: 1120px; margin: 0 auto; padding: 64px 24px 40px;
  display: grid; grid-template-columns: 1.3fr 1fr 1.2fr; gap: 48px;
}
.rv-footer__logo { height: 80px; width: auto; background: #fff; padding: 6px 10px; }
.rv-footer__desc { margin: 20px 0 0; font-size: 14px; line-height: 1.9; color: #9fbccc; }
.rv-footer__sns { display: flex; gap: 18px; margin-top: 22px; }
.rv-footer__sns a { color: #cfe3ec; display: flex; }
.rv-footer__sns a:hover { color: #fff; opacity: 1; }
.rv-footer__col-title { font-family: "Quicksand", sans-serif; font-weight: 700; letter-spacing: .14em; font-size: 13px; color: #0cb5e7; margin-bottom: 18px; }
.rv-footer__menu { display: flex; flex-direction: column; }
.rv-footer__menu a { font-size: 14px; color: #cfe3ec; padding: 6px 0; }
.rv-footer__menu a:hover { color: #fff; opacity: 1; }
.rv-footer__addr { margin: 0 0 6px; font-size: 14px; line-height: 1.8; color: #cfe3ec; }
.rv-footer__tel { display: inline-flex; align-items: center; gap: 8px; font-family: "Quicksand", sans-serif; font-weight: 700; font-size: 24px; color: #fff; margin: 8px 0 4px; }
.rv-footer__tel i { font-size: 20px; }
.rv-footer__tel:hover { color: #fff; opacity: .85; }
.rv-footer__hours { margin: 0 0 16px; font-size: 13px; color: #9fbccc; }
.rv-footer__map { border: 1px solid rgba(255,255,255,.15); height: 170px; overflow: hidden; }
.rv-footer__map iframe { display: block; }
.rv-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); }
.rv-footer__copy { max-width: 1120px; margin: 0 auto; padding: 20px 24px; font-size: 12px; color: #7f9dad; font-family: "Quicksand", sans-serif; letter-spacing: .05em; }

/* ============================================================
 * レスポンシブ
 * ============================================================ */
@media (max-width: 1100px) {
  .rv-nav { display: none; }
}
@media (max-width: 900px) {
  .rv-msg { grid-template-columns: 1fr; gap: 32px; }
  .rv-msg__aside { position: static; }
  .rv-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 640px) {
  .rv-section, .rv-section--sm { padding: 60px 20px; }
  .rv-section--tight { padding: 56px 20px 44px; }
  .rv-hero { padding: 60px 20px 48px; }
  .rv-head { margin-bottom: 36px; }
  .rv-worry { gap: 32px; }
  .rv-worry__list { flex-basis: 100%; }
  .rv-worry__lead { max-width: 100%; }
  .rv-detail-card { flex-direction: column; align-items: stretch; }
  .rv-detail-card__img { align-self: center; }
  .rv-cinfo__row { flex-direction: column; }
  .rv-cinfo__th { width: 100%; }
  .rv-footer__grid { grid-template-columns: 1fr; gap: 32px; padding: 48px 24px 32px; }
  .rv-footer__menu { display: none; }
  .rv-footer__cta-inner { flex-direction: column; align-items: flex-start; }
  .rv-mv { height: 78vh; min-height: 440px; }
  .rv-pc-br { display: none; }
}
