@charset "UTF-8";
/* ============================================================================
   front-page.css  ―― トップページ専用（front-page.php）
   ----------------------------------------------------------------------------
   トップLPで表示される全セクションを収録。
   ※ 共有パーツ（.snr_ 選ばれる理由 / .fp_about_ pewとは / .ia_ 案内 /
      .ez* 導入 / .nayami_ お悩み / .mig* 移行 等）の「本体」は、
      スキャナページ側でも独立管理できるよう scanner.css にも重複配置している。
      本ファイルには .sc_page スコープの上書きは含めない（それは scanner.css）。
   ============================================================================
   【収録】
   - トップ背景グリッド（body）
   - CTA（.cta_* / scanner_cta_bg / redcta_bg）
   - 見出し装飾（.lv2*）／ボタン（.btn1）
   - ロゴスワイパー（.logoswiper*）
   - お悩み（.nayami* / .nayami_case*）
   - 料金（.price_*）
   - 動画（.video_*）
   - 導入フロー（.flow_* / .ez* / .ezflow_*）
   - FAQ（本体LP版 .faq_*）
   - cybozu（.cybozu_*）／キャンペーン（.campaign_*）
   - merit（.merit_*）／サンクス（.thanks_*）
   - 埋め込みシミュレーター（.pew-*）
   - 選ばれる理由 現行版（.snr_*）
   - ロゴ差し込み見出し（.hlead_*）
   - pewとは（.fp_about_*）／案内（.ia_*）／移行（.mig* / .mgc_* / .mig2_*）
   - FV（HTML化 .fv_*）
   ============================================================================ */


/* ============================================================================
   トップ背景グリッド
   ============================================================================ */
body {
	background-image: linear-gradient(0deg, transparent calc(100% - 1px), #F2F6DC calc(100% - 1px)),
		linear-gradient(90deg, transparent calc(100% - 1px), #F2F6DC calc(100% - 1px));
	background-size: 16px 16px;
	background-repeat: repeat;
	background-position: center center;
}
.main_wrap { overflow: hidden; }


/* ============================================================================
   CTA
   ============================================================================ */
.cta_bg { position: relative; margin-bottom: -30px; }
.cta_bg::before { background: #D10000; z-index: 1; height: calc(100% - 30px); }
.scanner_cta_bg::before { background: #2d4585; z-index: 1; height: calc(100% - 30px); }
.cta_dots1 { font-size: 0; position: absolute; width: 88px; z-index: 2; }
.cta_dots1_left { left: 6px; top: 6px; }
.cta_dots1_right { right: 6px; bottom: 36px; }
.cta_wrap { position: relative; background: #FFF100; border-radius: 12px; border: 2px solid #000; overflow: hidden; text-align: center; padding: 20px 16px; transform: translateY(-50px); -webkit-transform: translateY(-50px); -ms-transform: translateY(-50px); z-index: 5; }
.cta_dots2 { position: absolute; font-size: 0; z-index: 1; width: 100%; max-width: 200px; }
.cta_dots2_left { left: 0; top: 0; }
.cta_dots2_right { right: 0; bottom: 0; }
.cta_wrap_in { position: relative; z-index: 5; }
.cta_txt1 { font-size: 11px; font-weight: 700; }
.cta_txt2 { font-size: 16px; font-weight: 700; margin-bottom: 14px; }
.cta_btn a { display: inline-block; width: 100%; border-radius: 999px; color: #FFF; box-shadow: 0 2px 4px rgba(0,0,0,.25); line-height: 1.4; padding: 5px 0 8px; transition: .2s; }
.cta_btn1 a { background: #D10000; }
.cta_btn2 a { background: #338DF4; }
.cta_btn a:hover { box-shadow: none; transform: translate3d(0,2px,0); }
.cta_btn1 a:hover { background: #F20000; }
.cta_btn2 a:hover { background: #0878F8; }
.cta_btn_flexbox { margin: 14px 0 0; }
.cta_btn_txt1 { font-size: 12px; font-weight: 600; }
.cta_btn_txt2 { font-size: 16px; font-weight: 600; }
.cta_btn_txt2 img { display: inline-block; margin: 0 0 4px 0; vertical-align: middle; }
.cta_btn1 .cta_btn_txt2 img { width: 12px; }
.cta_btn2 .cta_btn_txt2 img { width: 15px; }

/* --- CTA レスポンシブ：タブレット（トップ本体側） --- */
@media screen and (min-width: 768px) {
	.cta_dots1_left { left: 20px; top: 8px; }
	.cta_dots1_right { right: 20px; bottom: 38px; }
	.cta_dots2 { max-width: 100%; width: 400px; }
	.cta_wrap { padding: 32px 20px 24px; }
	.cta_wrap_in { max-width: 816px; margin: 0 auto; }
	.cta_txt1 { font-size: 20px; }
	.cta_txt2 { font-size: 32px; }
	.cta_btn_flexbox { width: 49%; max-width: 400px; margin: 0; }
	.cta_btn_txtimg1 { font-size: 0; }
	.cta_btn_txtimg1 img { width: 240px; }
	.cta_btn_txt1 { display: none; }
	.cta_btn_txt2 { font-size: 20px; }
	.cta_btn a { padding: 12px 10px; }
	.cta_btn1 .cta_btn_txt2 img { width: 18px; }
	.cta_btn2 .cta_btn_txt2 img { width: 24px; }
}

.scanner_cta_bg .cta_top { background:#FFF100; padding:30px 20px 26px; }
.scanner_cta_bg .cta_txt1 {
	display:inline-block; background:#000; color:#FFF100;
	padding:5px 16px; border-radius:999px; line-height:1;
	font-size:14px; font-weight:800; margin-bottom:14px;
}
.scanner_cta_bg .cta_txt2 { font-size:22px; font-weight:800; line-height:1.5; margin-bottom:16px; }
.scanner_cta_bg .cta_reassure {
	list-style:none; margin:0 0 20px; padding:0;
	display:flex; flex-wrap:wrap; justify-content:center; gap:6px 16px;
	font-size:14px; font-weight:800;
}
.scanner_cta_bg .cta_reassure li { position:relative; padding-left:20px; }
.scanner_cta_bg .cta_reassure li::before {
	content:"✓"; position:absolute; left:0; top:0;
	color:#D10000; font-weight:800;
}
.scanner_cta_bg .cta_main_btn {
	display:inline-block; width:100%; max-width:480px;
	background:#D10000; color:#fff;
	border:3px solid #000; border-radius:14px;
	padding:11px 20px; box-shadow:0 4px 0 #000;
	transition:.15s;
}
.scanner_cta_bg .cta_main_btn:hover { transform:translateY(3px); box-shadow:0 2px 0 #000; }
.scanner_cta_bg .cta_main_sub { display:block; font-size:14px; font-weight:800; margin-bottom:2px; }
.scanner_cta_bg .cta_main_lg { font-size:26px; font-weight:800; line-height:1.2; }
.scanner_cta_bg .cta_bottom {
	background:#2D4585; color:#fff;
	padding:14px 20px;
	display:flex; align-items:center; justify-content:center;
	gap:6px 12px; flex-wrap:wrap;
}
.scanner_cta_bg .cta_bottom_lead { font-size:14px; font-weight:700; }
.scanner_cta_bg .cta_bottom_tel { font-size:22px; font-weight:800; color:#FFF100; }

@media screen and (min-width:768px){
	.scanner_cta_bg .cta_wrap_in { max-width:816px; margin:0 auto; }
	.scanner_cta_bg .cta_txt1 { font-size:16px; }
	.scanner_cta_bg .cta_txt2 { font-size:30px; }
	.scanner_cta_bg .cta_main_lg { font-size:25px; }
	.scanner_cta_bg .cta_reassure { font-size:15px; gap:8px 24px; }
}

/* 赤背景・水色ボタン版CTA（scanner_cta_bg のカラー違い） */
.redcta_bg { position: relative; margin-bottom: -30px; }
.redcta_bg::before { background: #D10000; z-index: 1; height: calc(100% - 30px); }
.redcta_bg .cta_wrap {
	position:relative;
	background:transparent;
	border:3px solid #000;
	border-radius:12px;
	overflow:hidden;
	padding:0;
	text-align:center;
	transform:translateY(-50px);
	-webkit-transform:translateY(-50px);
	-ms-transform:translateY(-50px);
	z-index:5;
}
.redcta_bg .cta_top { background:#FFF100; padding:30px 20px 26px; }
.redcta_bg .cta_txt1 {
	display:inline-block; background:#000; color:#FFF100;
	padding:5px 16px; border-radius:999px; line-height:1;
	font-size:14px; font-weight:800; margin-bottom:14px;
}
.redcta_bg .cta_txt2 { font-size:22px; font-weight:800; line-height:1.5; margin-bottom:16px; }
.redcta_bg .cta_reassure {
	list-style:none; margin:0 0 20px; padding:0;
	display:flex; flex-wrap:wrap; justify-content:center; gap:6px 16px;
	font-size:14px; font-weight:800;
}
.redcta_bg .cta_reassure li { position:relative; padding-left:20px; }
.redcta_bg .cta_reassure li::before {
	content:"✓"; position:absolute; left:0; top:0;
	color:#D10000; font-weight:800;
}
.redcta_bg .cta_main_btn {
	display:inline-block; width:100%; max-width:480px;
	background:#338DF4; color:#fff;
	border:3px solid #000; border-radius:14px;
	padding:11px 20px; box-shadow:0 4px 0 #000;
	transition:.15s;
}
.redcta_bg .cta_main_btn:hover { transform:translateY(3px); box-shadow:0 2px 0 #000; }
.redcta_bg .cta_main_sub { display:block; font-size:14px; font-weight:800; margin-bottom:2px; }
.redcta_bg .cta_main_lg { font-size:26px; font-weight:800; line-height:1.2; }

@media screen and (min-width:768px){
	.redcta_bg .cta_wrap_in { max-width:816px; margin:0 auto; }
	.redcta_bg .cta_txt1 { font-size:16px; }
	.redcta_bg .cta_txt2 { font-size:30px; }
	.redcta_bg .cta_main_lg { font-size:25px; }
	.redcta_bg .cta_reassure { font-size:15px; gap:8px 24px; }
}


/* ============================================================================
   ロゴスワイパー
   ============================================================================ */
.logoswiper_sec { background: #FFF; overflow: hidden; padding: 60px 0 48px; text-align: center; }
.logoswiper_txt1 { font-size: 14px; font-weight: 700; margin-bottom: 14px; }
.logoswiper .swiper-wrapper { transition-timing-function: linear; align-items: center; }
.logoswiper .swiper-slide { width: 180px; }
.logoswiper .swiper-slide.kyoyama { width: 130px; }
.logoswiper .swiper-slide.wands { width: 130px; }
.logoswiper .swiper-slide.goodplus { width: 130px; }
.logoswiper .swiper-slide.rozai { width: 130px; }
.logoswiper_logo { font-size: 0; box-shadow: 1px 1px 4px rgba(0,0,0,.1); border-radius: 4px; }
.logoswiper2 { margin: 20px 0 0; }

@media screen and (min-width: 768px) {
	.logoswiper_sec { padding: 50px 0 80px; }
	.logoswiper_txt1 { font-size: 24px; margin-bottom: 20px; }
}


/* ============================================================================
   お悩み（旧・画像版）
   ============================================================================ */
.nayami_bg { background: #FFF; overflow: hidden; position: relative; }
.nayami_bg::before { background: #338DF4; left: 50%; transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); width: 200vw; border-radius: 50% 50% 0 0; }
.nayami_wrap { position: relative; z-index: 5; }
.nayami_img { font-size: 0; text-align: center; }
.nayami_img img { width: 911px; }

@media screen and (min-width: 768px) {
	.nayami_bg::before { width: 120vw; }
}


/* ============================================================================
   料金（旧・画像版）
   ============================================================================ */
.price_bg { background: #FFF100; margin-bottom: 80px; }
.price_wrap { text-align: center; padding: 32px 0 32px; }
.price_txt1 { margin-bottom: 20px; font-weight: 700; font-size: 14px; }
.price_flexbox { font-size: 0; margin: 0 0 20px; text-align: center; }

@media screen and (min-width: 768px) {
	.price_txt1 { font-size: 28px; margin-bottom: 28px; }
	.price_flexbox { margin: 0; width: 48%; max-width: 502px; }
	.price_flex { margin-bottom: 66px; }
	.price_bg { margin-bottom: 120px; }
	.price_wrap { padding: 100px 0 122px; }
}


/* ============================================================================
   見出し（lv2）＋装飾
   ============================================================================ */
.lv2_wrap { text-align: center; position: relative; padding: 0 0 20px; }
.lv2 { position: relative; font-size: 16px; padding: 0 0 10px; }
.lv2::before { content: ""; display: inline-block; width: 60px; height: 2px; border-radius: 999px; background: #BDBDBD; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); }
.lv2_img1 { font-size: 0; position: absolute; width: 115px; bottom: 10px; left: calc(50% - 110px); transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); }
.lv2_icon { font-size: 0; margin-bottom: 5px; }
.lv2_icon img { width: 42px; }
.lv2_line { background: linear-gradient(transparent 60%, #FFF100 60%); }
.lv2_img2 { font-size: 0; width: 112px; position: absolute; bottom: 60px; left: calc(50% + 100px); transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); }
.lv2_img3 { font-size: 0; position: absolute; width: 85px; bottom: 20px; left: calc(50% - 100px); transform: translateX(-50%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); }

/* ボタン（btn1） */
.btn1 { text-align: center; }
.btn1 a { display: inline-block; width: 100%; background: #2D4585; transition: .2s; box-shadow: 0 4px 4px rgba(0,0,0,.25); color: #FFF; font-size: 12px; border-radius: 4px; padding: 12px 29px 12px 10px; line-height: 1.3; position: relative; max-width: 484px; }
.btn1 a::before { content: ""; position: absolute; top: 50%; right: 8px; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); display: inline-block; width: 6px; height: 12px; background-size: contain; background-position: center; background-repeat: no-repeat; background-image: url(https://benemo.jp/pew/sub/wp-content/themes/hello-elementor-child/img/arrow1.webp); }
.btn1 a:hover { box-shadow: none; transform: translate3d(0,2px,0); background: #1647CB; }

@media screen and (min-width: 768px) {
	.lv2 { font-size: 36px; padding: 0 0 20px; }
	.lv2::before { width: 120px; }
	.lv2_wrap { padding: 0 0 40px; }
	.lv2_img1 { width: 252px; left: calc(50% - 250px) }
	.btn1 a { font-size: 16px; padding: 16px 26px 16px 16px; }
	.btn1 a::before { width: 8px; height: 14px; right: 30px; }
	.lv2_icon { margin: 0; }
	.lv2_icon img { width: 52px; }
	.lv2_line { display: inline-block; padding: 0 1em; }
	.lv2_img2 { width: 259px; bottom: 50px; left: calc(50% + 410px); }
	.lv2_img3 { bottom: -16px; width: 151px; left: calc(50% - 220px); }
}


/* ============================================================================
   動画（本体LPの黄色帯版）
   ============================================================================ */
.video_img1 { text-align: center; font-size: 0; margin-bottom: 12px; }
.video_wrap { text-align: center; padding: 72px 0 76px; }
.video_embed_box { padding: 10px; background: repeating-linear-gradient(-45deg, #FDF200, #FDF200 45px, #FDF58C 0, #FDF58C 90px); }
.video_embed { width: 100%; aspect-ratio: 16 / 9; font-size: 0; }
.video_embed iframe { width: 100%; height: 100%; }

@media screen and (min-width: 768px) {
	.video_wrap { padding: 100px 0 122px; }
	.video_embed_box { padding: 32px 52px; }
}


/* ============================================================================
   導入フロー（旧・画像版）
   ============================================================================ */
.flow_wrap { text-align: center; padding: 40px 0 80px; }
.flow_img1 { font-weight: 0; }
.flow_img2 { font-size: 0; margin-bottom: 32px; }
.flow_flexbox { font-size: 0; margin: 0 0 20px; }

@media screen and (min-width: 768px) {
	.flow_flexbox { margin: 0; width: 49%; max-width: 522px; margin-bottom: 32px; }
	.flow_wrap { padding: 70px 0 70px; }
}


/* ============================================================================
   FAQ（本体LP版）
   ============================================================================ */
.faq_wrap { padding: 80px 0 45px; }
.faq_list dt { position: relative; background: #2D4585; color: #FFF; font-size: 13px; font-weight: 500; padding: 8.5px 28px 10.5px 32px; cursor: pointer; margin: 16px 0 0; }
.faq_list dt::before { content: "Q"; position: absolute; left: 12px; top: 7px; font-size: 14px; font-weight: 700; }
.faq_list_toggle { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); display: inline-block; width: 8px; height: 5px; background-size: contain; background-position: center; background-repeat: no-repeat; background-image: url(https://benemo.jp/pew/sub/wp-content/themes/hello-elementor-child/img/arrow2.webp); transition: .2s; }
.faq_clicked .faq_list_toggle { transform: translateY(-50%) rotate(180deg); -webkit-transform: translateY(-50%) rotate(180deg); -ms-transform: translateY(-50%) rotate(180deg); }
.faq_list dd { margin: 0 0 16px; background: #FFF; position: relative; border: 1px solid #000; font-size: 13px; padding: 8px 12px 10px 31px; display: none; }
.faq_list dd::before { content: "A"; position: absolute; left: 12px; top: 7px; font-size: 14px; font-weight: 700; }

@media screen and (min-width: 768px) {
	.faq_wrap { padding: 120px 0 68px; }
	.faq_list dt { font-size: 16px; padding: 10px 60px 12px 60px; }
	.faq_list dt::before { font-size: 20px; top: 6px; left: 34px; }
	.faq_list_toggle { width: 12px; height: 10px; right: 20px; }
	.faq_list dd { font-size: 16px; padding: 10px 30px 12px 60px; }
	.faq_list dd::before { font-size: 20px; top: 8px; left: 34px; }
}


/* ============================================================================
   cybozu / キャンペーン
   ============================================================================ */
.cybozu_bg { background: #2D4585; }
.cybozu_wrap { text-align: center; padding: 28px 0; }
.cybozu_lv2 { font-size: 0; margin-bottom: 32px; }
.cybozu_lv2 img { width: 790px; }
.cybozu_txt1 { text-align: left; color: #FFF; font-size: 12px; margin-bottom: 16px; }
.cybozu_img1 { font-size: 0; margin-bottom: 24px; }
.cybozu_img1 img { width: 800px; }
.cybozu_btn { font-size: 0; }
.cybozu_btn a { display: inline-block; box-shadow: 0 2px 4px rgba(0,0,0,.25); border-radius: 30px; }
.cybozu_btn img { width: 808px; }

.campaign_wrap { text-align: center; padding: 60px 0 0 0; }
.campaign_img img { width: 808px; }

@media screen and (min-width: 768px) {
	.cybozu_wrap { padding: 60px 0; }
	.cybozu_txt1 { text-align: center; font-size: 20px; margin-bottom: 40px; }
	.cybozu_img1 { margin-bottom: 45px; }
}


/* ============================================================================
   merit（選ばれる理由・本体LP画像版）
   ============================================================================ */
.merit_bg { text-align: center; overflow: hidden; padding: 0 0 100px; }
.merit_delta { width: 0; height: 0; border-style: solid; border-color: #338DF4 transparent transparent transparent; border-width: 34.64px 20px 0px 20px; display: inline-block; margin-bottom: 16px; }
.merit_lv2 { font-size: 0; margin-bottom: 12px; padding: 0 24px; }
.merit_swiper { position: relative; padding: 0 24px; }
.merit_swiper .swiper-pagination { bottom: -20px; }
.merit_swiper .swiper-pagination .swiper-pagination-bullet-active { background: #000; }
.merit_swiper .swiper-button-prev::after, .merit_swiper .swiper-button-next::after { display: none; }
.merit_swiper .swiper-button-prev { top: 7%; left: calc(24px + 2%); transform: none; -webkit-transform: none; -ms-transform: none; width: 9%; }
.merit_swiper .swiper-button-next { top: 7%; right: calc(24px + 2%); transform: none; -webkit-transform: none; -ms-transform: none; width: 9%; }

@media screen and (min-width: 768px) {
	.merit_delta { border-width: 69.28px 40px 0px 40px; margin-bottom: 70px; }
	.merit_lv2 { margin-bottom: 60px; }
	.merit_pc { margin: 0 auto; max-width: 1450px; }
	.merit_pc_img1 { font-size: 0; text-align: left; }
	.merit_pc_img2 { font-size: 0; margin: 55px 0; text-align: right; }
	.merit_pc_img img { width: 1312px; }
}


/* ============================================================================
   サンクスページ
   ============================================================================ */
.thanks_wrap { text-align: center; padding: 45px 0 80px; }
.thanks_img1 { font-size: 0; margin-bottom: 22px; }
.thanks_img1 img { width: 205px; }
.thanks_lv2 { margin-bottom: 22px; }
.thanks_txt1 { font-size: 14px; margin-bottom: 30px; }
.thanks_btn a { display: inline-block; width: 100%; max-width: 220px; background: #FFF100; border: 1px solid #333; padding: 12px 5px; }


/* ============================================================================
   埋め込みシミュレーター（本体LP埋め込み用 .pew-*）
   ============================================================================ */
.pew-simulator-wrapper { padding: 40px 0 80px; }
.pew-simulator-inner { max-width: 800px; margin: 0 auto; background: #FFF; border: 2px solid #000; border-radius: 12px; padding: 24px 16px; box-shadow: 0 4px 4px rgba(0,0,0,.1); }
.pew-sim-block { margin-bottom: 32px; }
.pew-sim-heading { font-size: 16px; font-weight: 700; border-bottom: 2px solid #FFF100; padding-bottom: 6px; margin-bottom: 16px; display: inline-block; }
.pew-input-group { display: flex; align-items: center; gap: 10px; }
.pew-input-group input { width: 140px; padding: 10px 12px; font-size: 16px; border: 1px solid #BDBDBD; border-radius: 4px; font-family: inherit; outline: none; }
.pew-input-group input:focus { border-color: #338DF4; }
.pew-unit { font-size: 16px; font-weight: 700; }
.pew-note { font-size: 12px; color: #D10000; margin-top: 8px; font-weight: 500; }
.pew-sim-details { margin-bottom: 24px; border: 1px solid #BDBDBD; border-radius: 8px; background: #fff; }
.pew-sim-summary { display: block; cursor: pointer; padding: 16px; font-size: 16px; font-weight: 700; background: #F6F6F6; border-radius: 8px; position: relative; transition: .2s; }
.pew-sim-summary:hover { background: #FFF100; }
.pew-sim-summary::-webkit-details-marker { display: none; }
.pew-sim-summary::after { content: "＋"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 18px; color: #333; }
.pew-sim-details[open] .pew-sim-summary { border-radius: 8px 8px 0 0; border-bottom: 1px solid #BDBDBD; }
.pew-sim-details[open] .pew-sim-summary::after { content: "－"; }
.pew-sim-details-content { padding: 20px 16px 8px; }
.pew-checkbox-label, .pew-radio-label { display: block; cursor: pointer; padding: 16px; border: 1px solid #BDBDBD; border-radius: 8px; margin-bottom: 12px; transition: .2s; background: #F6F6F6; }
.pew-checkbox-label:hover, .pew-radio-label:hover { background: #FFF100; border-color: #000; }
.pew-checkbox, .pew-radio { margin-right: 8px; transform: scale(1.3); vertical-align: middle; }
.pew-label-text { font-weight: 700; font-size: 14px; vertical-align: middle; }
.pew-note-small { margin: 6px 0 0 28px; font-size: 12px; color: #333; }
.pew-sim-result { background: #2D4585; color: #FFF; padding: 24px; border-radius: 8px; margin-top: 32px; }
.pew-result-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; font-size: 16px; font-weight: 700; }
.pew-result-row:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,0.2); }
.pew-result-row.total { font-size: 20px; color: #FFF100; }
.pew-tax { font-size: 12px; font-weight: 400; margin-left: 4px; }

@media screen and (min-width: 768px) {
	.pew-simulator-wrapper { padding: 60px 0 120px; }
	.pew-simulator-inner { padding: 40px 60px; }
	.pew-sim-heading { font-size: 20px; }
	.pew-label-text { font-size: 16px; }
	.pew-note { font-size: 14px; }
	.pew-note-small { font-size: 14px; }
	.pew-result-row { font-size: 20px; padding: 16px 0; }
	.pew-result-row.total { font-size: 28px; }
}


/* ============================================================================
   選ばれる理由 ノート型 現行版（.snr_*）
   ============================================================================ */
.snr_sec { overflow:hidden; padding:20px 0 56px; text-align:center; }
.snr_delta { width:0; height:0; border-style:solid; border-color:#2D4585 transparent transparent transparent; border-width:34.64px 20px 0 20px; display:inline-block; margin-bottom:24px; }
.snr_lv2 { position:relative; font-size:18px; font-weight:800; line-height:1.6; padding:0 24px 14px; margin:0 auto 32px; }
.snr_lv2::before { content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:60px; height:3px; border-radius:999px; background:#2D4585; }
.snr_marker { background:linear-gradient(transparent 60%,#FFF100 60%); padding:0 .1em; }
.snr_inner { max-width:1450px; margin:0 auto; }
.snr_card { position:relative; background:#FFF100; border-radius:22px; padding:28px 24px 28px 52px; margin-bottom:36px; text-align:left; box-shadow:8px 8px 0 rgb(0 0 0 / 50%); }
.snr_card:last-child { margin-bottom:0; }
.snr_card::before {
	content:""; position:absolute; top:26px; bottom:26px; width:44px; left:14px;
	background-image:url(https://benemo.jp/pew/sub/wp-content/themes/hello-elementor-child/img/ring-hall.svg);
	background-repeat:no-repeat;
	background-position:left center;
	background-size:38px 100%;
}
.snr_card.right { padding:28px 52px 28px 24px; box-shadow:-8px 8px 0 rgb(0 0 0 / 50%); }
.snr_card.right::before {
	left:auto; right:14px;
	background-image:url(https://benemo.jp/pew/sub/wp-content/themes/hello-elementor-child/img/ring-hall-right.svg);
	background-repeat:no-repeat;
	background-position:right center;
	background-size:38px 100%;
}
.snr_head { display:flex; align-items:flex-start; gap:18px; margin-bottom:20px; }
.snr_no { line-height:1; flex-shrink:0; text-align:center; }
.snr_no_num { font-size:48px; font-weight:800; letter-spacing:-.02em; }
.snr_no_en { font-size:15px; font-weight:bold; letter-spacing:.15em; }
.snr_ttl { font-size:18px; font-weight:800; line-height:1.5; padding-top:4px; }
.snr_ttl .hl { color:#D10000; }
.snr_divider { border:0; border-top:2px dashed rgba(0,0,0,.25); margin:0 0 22px; }
.snr_bubble { margin:18px auto 0; max-width:320px; background:#2D4585; color:#fff; border-radius:12px; text-align:center; font-size:14px; font-weight:800; line-height:1.5; padding:14px 18px; box-shadow:4px 4px 0 #000; border:2px solid #000; }
.snr_bubble_inline { margin:0 0 16px; max-width:none; }
.snr_flow { display:flex; flex-direction:column; align-items:center; gap:14px; }
.snr_step { position:relative; width:100%; max-width:260px; }
.snr_badge { position:absolute; left:8px; top:-10px; z-index:2; width:32px; height:32px; border-radius:999px; background:#FFF100; border:2px dashed #1a1a1a; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; font-style:italic; }
.snr_img .ph { display:flex; align-items:center; justify-content:center; text-align:center; aspect-ratio:9/16; background:#F0F0F0; color:#999; font-size:12px; font-weight:700; padding:8px; }
.snr_img { height:320px; display:flex; align-items:center; justify-content:center; margin-bottom: 10px;}
.snr_img img { width:100%; height:auto; display:block; }
.snr_cap { text-align:center; font-size:17px; font-weight:700; line-height:1.5; background:#fff; border-radius:8px; padding:14px 18px; box-shadow:4px 4px 0 #000; border:2px solid #000; }
.snr_arrow { font-size:70px; color:#2D4585; font-weight:800; transform:rotate(90deg); }
.snr_final { position:relative; width:100%; max-width:340px; }
.snr_final_img { position:relative; height:320px; display:flex; align-items:center; justify-content:center; }
.snr_final .ph { display:flex; align-items:center; justify-content:center; text-align:center; aspect-ratio:4/3; background:#F0F0F0; color:#999; font-size:12px; font-weight:700; border-radius:12px; box-shadow:0 3px 8px rgba(0,0,0,.12); }
.snr_final img { width:100%; height:auto; display:block; margin:0 auto; }
.snr_final .snr_cap { margin:5px auto 0; max-width:320px; background:#2D4585; color:#fff; border-radius:8px; font-size:14px; font-weight:700; padding:8px 35px; box-shadow:3px 3px 0 #000; border:2px solid #000; }
.snr_split { display:flex; flex-direction:column; gap:20px; align-items:center; }
.snr_split_main { width:100%; }
.snr_split_main .ph { display:flex; align-items:center; justify-content:center; text-align:center; aspect-ratio:16/10; background:#F0F0F0; color:#999; font-size:12px; font-weight:700; border-radius:12px; box-shadow:0 3px 8px rgba(0,0,0,.12); }
.snr_split_main img { width:100%; display:block; padding:10px; }
.snr_split_side { width:100%; }
.snr_tags { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.snr_tag { background:#fff; border-radius:8px; font-size:14px; font-weight:700; padding:8px 14px; box-shadow:3px 3px 0 #000; border:2px solid #000; text-align: center; }

@media screen and (min-width: 768px) {
	.snr_sec { padding:20px 0 80px; }
	.snr_delta { border-width:50px 28px 0 28px; margin-bottom:40px; }
	.snr_lv2 { font-size:30px; margin-bottom:48px; }
	.snr_lv2::before { width:120px; }
	.snr_card { width:92%; max-width:1360px; padding:36px 40px 36px 76px; margin-bottom:48px; }
	.snr_card.left { margin-left:0; margin-right:auto; }
	.snr_card.right { margin-left:auto; margin-right:0; padding:36px 76px 36px 40px; }
	.snr_card::before { left:0px; }
	.snr_card.right::before { left:auto; right:0px; }
	.snr_no_num { font-size:45px; }
	.snr_ttl { font-size:27px; }
	.snr_flow { flex-direction:row; align-items:stretch; justify-content:center; gap:10px; }
	.snr_step { max-width:none; flex:1; display:flex; flex-direction:column; }
	.snr_arrow { transform:none; display:flex; align-items:center; height:320px; }
	.snr_final { flex:1.3; display:flex; flex-direction:column; justify-content:center; }
	.snr_bubble { margin-left:auto; margin-right:0; }
	.snr_split { flex-direction:row; align-items:center; gap:32px; }
	.snr_split_main { width:60%; }
	.snr_split_side { width:40%; }
	.snr_lr { flex-direction:row; align-items:center; gap:40px; }
	.snr_lr_img { width:55%; }
	.snr_lr_txt { width:45%; }
	.snr_swiper { overflow: visible; }
	.snr_swiper .swiper-wrapper {
		display: block;         /* flex解除 → 縦積み */
		transform: none !important;  /* Swiperのtranslateを無効化 */
	}
	.snr_swiper .swiper-slide {
		width: 100% !important;  /* Swiperが付ける固定幅を打ち消す */
	}
	.snr_swiper_pagination { display: none; }  /* PCはドット非表示 */
	.snr_swiper_prev{display:none;}
	.snr_swiper_next{display:none;}
}
/* 料金プランのテイストを反映（追記） */
.snr_card {
	border: 3px solid #000;
	box-shadow: 8px 8px 0 #000;
}
.snr_card.right {
	box-shadow: -8px 8px 0 #000;
}
.snr_no {
	background: #000;
	border-radius: 10px;
	padding: 10px 14px;
	color: #FFF100;
}
.snr_no_num { color: #FFF100; }
.snr_no_en {
	color: #FFF100;
	opacity: .85;
}
.snr_ttl .hl {
	background: linear-gradient(transparent 60%, rgba(255,241,0,.7) 60%);
	padding: 0 .1em;
}

/* reason02(共有) / reason03(AI精度) 専用レイアウト */
.snr_share { display:flex; flex-direction:column; gap:20px; align-items:stretch; }
.snr_share_cost {
	background:#FFF100; border:3px solid #000; border-radius:16px;
	box-shadow:6px 6px 0 #000;
	text-align:center; padding:24px 20px;
}
.snr_share_cost_lead { font-size:16px; font-weight:800; margin-bottom:6px; }
.snr_share_cost_price { line-height:1; margin-bottom:10px; }
.snr_share_cost_num {
	font-size:48px; font-weight:800; color:#D10000;
	background:linear-gradient(transparent 60%, rgba(255,255,255,.6) 60%);
	padding:0 .1em;
}
.snr_share_cost_note { font-size:15px; font-weight:700; line-height:1.6; }
.snr_share_spread { display:flex; flex-direction:column; gap:14px; }
.snr_ai { display:flex; flex-direction:column; gap:20px; align-items:center; }
.snr_ai_visual { width:100%; }
.snr_ai_visual img {
	width:100%; display:block; border-radius:12px;
	box-shadow:0 6px 16px rgba(0,0,0,.15);
}
.snr_ai_body { width:100%; display:flex; flex-direction:column; gap:14px; }
.snr_ai_list { list-style:none; margin:0; padding:0; }
.snr_ai_list li {
	position:relative; background:#fff; border:2px solid #000; border-radius:10px;
	box-shadow:3px 3px 0 #000;
	font-size:15px; font-weight:700; line-height:1.6;
	padding:12px 14px 12px 40px; margin-bottom:10px;
}
.snr_ai_list li:last-child { margin-bottom:0; }
.snr_ai_list li::before {
	content:"✓"; position:absolute; left:14px; top:12px;
	color:#D10000; font-weight:800; font-size:16px;
}
@media screen and (min-width:768px){
	.snr_share { flex-direction:row; align-items:center; gap:32px; }
	.snr_share_cost { width:40%; padding:32px 24px; }
	.snr_share_cost_num { font-size:64px; }
	.snr_share_spread { width:60%; }
	.snr_ai { flex-direction:row; align-items:center; gap:40px; }
	.snr_ai_visual { width:52%; }
	.snr_ai_body { width:48%; }
	.snr_ai_list li { font-size:16px; }
}

/* reason01(撮影→登録→共有) / 02(定額) / 03(精度) */
.snr_flow01 { display:flex; flex-direction:column; gap:16px; align-items:center; }
.snr_f01_step { position:relative; width:100%; max-width:280px; text-align:center; }
.snr_f01_badge {
	position:absolute; left:10px; top:-6px; z-index:3;
	width:38px; height:38px; border-radius:999px;
	background:#FFF100; border:2px dashed #1a1a1a;
	display:flex; align-items:center; justify-content:center;
	font-size:14px; font-weight:800; font-style:italic;
}
.snr_f01_shot { margin-bottom:12px; }
.snr_f01_shot:empty::after {
	content:"［スマホ画面\A 画像枠］"; white-space:pre; text-align:center;
	color:#999; font-size:12px; font-weight:700; line-height:1.6;
}
.snr_f01_shot img { width:100%; height:100%; object-fit:cover; display:block; }
.snr_f01_cap { font-size:20px; font-weight:800; line-height:1.5; }
.snr_f01_arrow { font-size:40px; color:#2D4585; font-weight:800; line-height:1; transform:rotate(90deg); }
.snr_f01_goal { width:100%; max-width:340px; text-align:center; }
.snr_f01_pc { margin-bottom:14px; }
.snr_f01_pc:empty::after {
	content:"［kintone画面\A 画像枠］"; white-space:pre; text-align:center;
	color:#999; font-size:12px; font-weight:700; line-height:1.6;
}
.snr_f01_pc img { width:100%; height:100%; object-fit:cover; display:block; }
.snr_f01_bubble {
	display:inline-block; background:#2D4585; color:#fff;
	border:2px solid #000; border-radius:12px; box-shadow:3px 3px 0 #000;
	font-size:20px; font-weight:800; line-height:1.5; padding:12px 45px;
}
.snr_f01_share { margin-top:14px; }
.snr_f01_share img { width:100%; display:block; border-radius:10px; }

/* reason02：画像＋吹き出し ／ 100名比較グラフ */
.snr_flat { display:flex; flex-direction:column; gap:24px; align-items:stretch; }
.snr_flat_left { text-align:center; }
.snr_flat_img { margin-bottom:14px; font-size:0; }
.snr_flat_img:empty { display:none; }
.snr_flat_img img { width:75%; height:auto; display:block; margin:0 auto; border-radius:12px; }
.snr_flat_vis { display:flex; flex-direction:column; }
.bargraph {
	background:#fff; border:3px solid #000; border-radius:14px; box-shadow:4px 4px 0 #000;
	padding:22px 20px; display:flex; flex-direction:column; gap:16px;
}
.bargraph_title { font-size:20px; font-weight:800; text-align:center; line-height:1.5; margin-bottom:2px; }
.bargraph_title_badge {
	display:inline-block; background:#D10000; color:#fff; font-size:1.05em;
	border-radius:6px; padding:1px 10px; margin-right:2px;
}
.bargraph_row { display:flex; flex-direction:column; gap:6px; }
.bargraph_name { font-size:14px; font-weight:700; color:#666; }
.bargraph_row--pew .bargraph_name { font-size:17px; font-weight:800; color:#2D4585; }
.bargraph_track { position:relative; background:#EFEFEF; border-radius:999px; overflow:visible; }
.bargraph_row--pew .bargraph_track { background:#DDE5F2; padding:4px 0; }
.bargraph_bar {
	height:34px; border-radius:999px; display:flex; align-items:center; justify-content:flex-end;
	padding:0 16px; box-sizing:border-box; min-width:180px; position:relative;
}
.bargraph_bar--other1 { background:#8A8A8A; }
.bargraph_bar--other2 { background:#ADADAD; }
.bargraph_bar--pew {
	background:#2D4585; justify-content:flex-start;
	height:46px; border:3px solid #000; box-shadow:3px 3px 0 #000;
}
.bargraph_val { font-size:14px; font-weight:800; color:#fff; white-space:nowrap; }
.bargraph_bar--pew .bargraph_val { font-size:16px; }
.bargraph_flag {
	position:absolute; left:calc(42% + 12px); top:50%; transform:translateY(-50%);
	background:#FFF100; color:#000; font-size:18px; font-weight:800;
	border:2px solid #000; border-radius:999px; padding:3px 12px; white-space:nowrap;
	box-shadow:2px 2px 0 #000;
}
@media screen and (min-width:768px){
	.snr_flat { flex-direction:row; align-items:center; gap:36px; }
	.snr_flat_left { width:42%; flex-shrink:0; }
	.snr_flat_vis { width:58%; }
	.bargraph_title { font-size:17px; }
	.bargraph { padding:28px 26px; gap:20px; }
	.bargraph_bar { height:38px; }
	.bargraph_bar--pew { height:52px; }
	.bargraph_name { font-size:15px; }
	.bargraph_row--pew .bargraph_name { font-size:19px; }
	.bargraph_val { font-size:15px; }
	.bargraph_bar--pew .bargraph_val { font-size:18px; }
}

/* reason03：Before→After */
.snr_acc { display:flex; flex-direction:column; gap:24px; align-items:stretch; }
.snr_acc_shots { display:flex; align-items:center; justify-content:center; gap:10px; }
.snr_acc_shot { flex:1; text-align:center; }
.snr_acc_shot_pic { margin-bottom:12px; }
.snr_acc_shot_pic img { width:100%; height:100%; object-fit:cover; display:block; }
.snr_acc_shot_ph { color:#999; font-size:12px; font-weight:700; line-height:1.6; text-align:center; }
.snr_acc_shot_pic:has(img) .snr_acc_shot_ph { display:none; }
.snr_acc_shot_cap {
	display:inline-block; font-size:18px; font-weight:800; color:#fff;
	border-radius:999px; padding:3px 18px; letter-spacing:.04em;
}
.snr_acc_shot_cap--before { background:#999; }
.snr_acc_shot_cap--after { background:#D10000; }
.snr_acc_shot_arrow {
	flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:6px;
}
.snr_acc_time {
	background:#FFF100; color:#000; font-size:18px; font-weight:800;
	border:2px solid #000; border-radius:999px; padding:3px 12px; white-space:nowrap;
	box-shadow:2px 2px 0 #000;
}
.snr_acc_arrow_mark { font-size:32px; font-weight:800; color:#2D4585; line-height:1; }
@media screen and (min-width:768px){
	.snr_acc_time { font-size:14px; padding:4px 14px; }
	.snr_acc_arrow_mark { font-size:38px; }
}
.snr_acc_body { display:flex; flex-direction:column; gap:16px; }
.snr_acc_stat {
	display:flex; align-items:center; gap:16px;
	background:#2D4585; border:3px solid #000; border-radius:16px; box-shadow:6px 6px 0 #000;
	padding:20px 22px; color:#fff;
}
.snr_acc_stat_ico {
	flex-shrink:0; width:54px; height:54px; font-size:0;
	display:flex; align-items:center; justify-content:center;
}
.snr_acc_stat_ico:empty { display:none; }
.snr_acc_stat_ico img { width:100%; height:100%; object-fit:contain; display:block; }
.snr_acc_stat_hl { color:#FFF100; padding:0 .1em; }
.snr_acc_stat_txt { text-align:left; }
.snr_acc_stat_label { display:block; font-size:19px; font-weight:800; line-height:1.4; }
.snr_acc_stat_note { display:block; font-size:16px; font-weight:700; color:#C8D2E8; margin-top:4px; }
.snr_acc_lead { font-size:18px; font-weight:700; line-height:1.8; }
.snr_acc_lead b { color:#D10000; }
.snr_acc_list { list-style:none; margin:0; padding:0; }
.snr_acc_list li {
	position:relative; background:#fff; border:2px solid #000; border-radius:10px; box-shadow:3px 3px 0 #000;
	font-size:15px; font-weight:700; line-height:1.6;
	padding:14px 14px 14px 42px; margin-bottom:12px;
}
.snr_acc_list li:last-child { margin-bottom:0; }
.snr_acc_list li::before {
	content:"✓"; position:absolute; left:15px; top:14px;
	color:#D10000; font-weight:800; font-size:16px;
}
@media screen and (min-width:768px){
	.snr_acc { flex-direction:row; align-items:center; gap:40px; }
	.snr_acc_shots { width:52%; gap:14px; }
	.snr_acc_body { width:48%; }
	.snr_acc_stat_ico { width:64px; height:64px; font-size:36px; }
	.snr_acc_stat_label { font-size:22px; }
	.snr_acc_list li { font-size:18px; }
}
@media screen and (min-width:768px){
	.snr_flow01 { flex-direction:row; align-items:stretch; justify-content:center; gap:8px; }
	.snr_f01_step { max-width:none; flex:1; display:flex; flex-direction:column; }
	.snr_f01_step .snr_f01_cap { margin-top:auto; }
	.snr_f01_arrow { transform:none; display:flex; align-items:center; font-size:32px; }
	.snr_f01_goal { flex:1.3; display:flex; flex-direction:column; justify-content:center; }
	.snr_flat { flex-direction:row; align-items:center; gap:32px; }
	.snr_flat_price { width:40%; padding:32px 24px; }
	.snr_flat_price_num { font-size:96px; }
	.snr_flat_vis { width:60%; }
}


/* ============================================================================
   ロゴ差し込み見出し（.hlead_*）
   ============================================================================ */
.hlead { text-align:center; padding:40px 16px; }
.hlead_sub { font-size:18px; font-weight:800; line-height:1.6; margin-bottom:16px; }
.hlead_mark { color:#D10000; background-image:radial-gradient(circle 1.5px, #D10000 1.5px, transparent 1.5px); background-size:9px 3px; background-repeat:repeat-x; background-position:left bottom; padding-bottom:6px; }
.hlead_main { font-size:24px; font-weight:800; line-height:1.5; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:2px; }
.hlead_logo { display:inline-flex; align-items:center; }
.hlead_logo img { height:1.1em; width:auto; display:block; vertical-align:middle; }
.hlead_num { color:#D10000; font-size:70px; line-height:1; position:relative; padding:0 .05em; }

@media screen and (min-width: 768px) {
	.hlead { padding:56px 16px; }
	.hlead_sub { font-size:24px; margin-bottom:20px; }
	.hlead_main { font-size:34px; }
}


/* ============================================================================
   お悩み（現行版）
   ----------------------------------------------------------------------------
   ※ 生CSSでは .nayami_* が複数版くり返し定義され、後勝ちで最終的に効いていたのは
      「CASEカード型・吹き出しセリフ＋右上はみ出しイラスト」版。ここではその最終版を
      採用（＝当時の見た目）。見出し .nayami_lv2 / .nayami_mark も現行値に統一。
   ============================================================================ */

/* 見出し（点線マーカーは黄） */
.nayami_lv2 { text-align:center; color:#fff; font-size:19px; font-weight:800; line-height:1.6; }
.nayami_mark {
	color:#FFF100;
	background-image:radial-gradient(circle 1.5px, #FFF100 1.5px, transparent 1.5px);
	background-size:9px 3px; background-repeat:repeat-x; background-position:left bottom;
	padding-bottom:6px;
}

/* カード並び（SP縦・PC横3カラム） */
.nayami_cases { list-style:none; margin:0 auto; padding:0 0 20px; display:flex; flex-direction:column; gap:44px; }

/* カード本体 */
.nayami_case { position:relative; background:#fff; border:3px solid #2D4585; border-radius:14px; padding:0 0 22px; }

/* CASE番号バッジ（上辺からはみ出す） */
.nayami_case_badge {
	position:absolute; top:-18px; left:18px; z-index:4;
	width:58px; height:58px; border-radius:999px;
	background:#FFF100; border:3px solid #2D4585;
	display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1;
}
.nayami_case_badge_en { font-size:10px; font-weight:700; color:#2D4585; }
.nayami_case_badge_no { font-size:20px; font-weight:800; color:#2D4585; }

/* 右下はみ出しイラスト */
.nayami_case_illust { position:absolute; bottom:0; right:8px; z-index:4; width:160px; }
.nayami_case_illust_big { width:170px; }
.nayami_case_illust:empty { display:none; }
.nayami_case_illust img { width:100%; height:auto; display:block; }

/* 見出し帯（紺・吹き出し風・下向きの尻尾） */
.nayami_case_bubble { position:relative; background:#2D4585; border-radius:11px 11px 0 0; padding:20px 16px 20px; text-align:center; margin-bottom:22px; }
.nayami_case_bubble::after {
	content:""; position:absolute; bottom:-13px; left:50%; transform:translateX(-50%);
	width:0; height:0; border-style:solid; border-width:14px 12px 0 12px;
	border-color:#2D4585 transparent transparent transparent;
}
.nayami_case_ttl { font-size:22px; font-weight:800; color:#fff; line-height:1.35; margin:0; }
.nayami_case_ttl .hl { color:#FFF100; }

/* お悩み箇条書き */
.nayami_case_list { list-style:none; margin:0; padding:0 18px 30px; }
.nayami_case_list li { position:relative; font-size:14px; font-weight:700; color:#333; line-height:1.5; padding:6px 0 6px 26px; }
/* 危険アイコン（画像差し込み） */
.nayami_danger { position:absolute; left:0; top:13px; font-size:0; width:16px; height:16px; }
.nayami_danger img { width:100%; height:auto; display:block; }

/* --- PC（768px以上）：当時PCで効いていた上書き --- */
@media screen and (min-width:768px){
	.nayami_lv2 { font-size:30px; padding: 75px 0; }
	.nayami_cases { flex-direction:row; align-items:stretch; justify-content:space-between; gap:18px; padding-bottom:20px; }
	.nayami_case { flex:1; }
	.nayami_case_ttl { font-size:24px; }
	.nayami_case_list li { font-size:20px; }
}
/* ============================================================================
   スキャナプラグインとは（.fp_about_*）
   ============================================================================ */
.fp_about_sec { width:100%; background:#2D4585; padding:48px 0; }
.fp_about_card { color:#fff; }
.fp_about_eyebrow { display:inline-block; background:#FFF100; color:#2D4585; font-size:15px; font-weight:800; border-radius:999px; padding:5px 16px; margin-bottom:14px; }
.fp_about_ttl { font-size:24px; font-weight:800; line-height:1.5; margin:0 0 12px; }
.fp_about_ttl .hl { color:#FFF100; }
.fp_about_txt { font-size:14px; line-height:1.9; color:#D8E0F0; margin:0 0 20px; }
.fp_about_img { margin:0 0 4px; }
.fp_about_img img { width:100%; display:block; border-radius:12px; }
.fp_about_btn { display:inline-flex; align-items:center; gap:10px; background:#FFF100; color:#000; border:3px solid #000; border-radius:12px; box-shadow:0 4px 0 #000; padding:14px 28px; font-size:20px; font-weight:800; transition:.15s; }
.fp_about_btn:hover { transform:translateY(2px); box-shadow:0 2px 0 #000; }
.fp_about_btn_arrow { font-size:18px; }
.fp_about_list { list-style:none; margin:0 0 20px; padding:0; }
.fp_about_list li { position:relative; font-size:20px; line-height:1.8; padding:4px 0 4px 22px; font-weight:700;}
.fp_about_list li::before { content:"✓"; position:absolute; left:0; top:4px; color:#FFF100; font-weight:800; }
.fp_about_list li b {color: #FFF100;}

@media screen and (min-width:768px){
	.fp_about_sec { padding:72px 0; }
	.fp_about_card { display:flex; align-items:center; gap:48px; }
	.fp_about_body { width:56%; }
	.fp_about_img { width:44%; margin:0; }
	.fp_about_ttl { font-size:35px; }
	.fp_about_txt { font-size:16px; }
}


/* ============================================================================
   FAQ・アップデート案内（.ia_*）
   ============================================================================ */
.ia_sec { padding:48px 0; }
.ia_head { text-align:center; margin-bottom:24px; }
.ia_note { display:inline-block; background:#FFF100; border:2px solid #000; border-radius:999px; font-size:14px; font-weight:800; padding:5px 16px; margin-bottom:12px; }
.ia_ttl { font-size:22px; font-weight:800; line-height:1.5; }
.ia_lead { font-size:14px; color:#666; margin-top:8px; line-height:1.7; }
.ia_grid { display:flex; flex-direction:column; gap:16px; }
.ia_card { display:block; background:#fff; border:3px solid #000; border-radius:14px; box-shadow:6px 6px 0 #000; padding:24px; transition:.15s; }
.ia_card:hover { transform:translate(2px,2px); box-shadow:4px 4px 0 #000; }
.ia_icon { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:10px; font-size:22px; font-weight:800; color:#fff; margin-bottom:12px; }
.ia_icon_faq { background:#2D4585; }
.ia_icon_upd { background:#D10000; }
.ia_card_ttl { display:block; font-size:18px; font-weight:800; margin-bottom:6px; }
.ia_card_txt { display:block; font-size:14px; line-height:1.8; color:#555; margin-bottom:14px; }
.ia_card_link { display:block; font-size:14px; font-weight:800; color:#338DF4; }

@media screen and (min-width:768px){
	.ia_sec { padding:72px 0; }
	.ia_ttl { font-size:28px; }
	.ia_grid { flex-direction:row; }
	.ia_card { flex:1; }
}


/* ============================================================================
   導入かんたん（.ez_*）
   ============================================================================ */
.ez_sec { padding:48px 0; }
.ez_head { text-align:center; margin-bottom:32px; }
.ez_eyebrow { display:inline-block; font-size:14px; font-weight:800; color:#2D4585; letter-spacing:.14em; margin-bottom:10px; }
.ez_ttl { font-size:26px; font-weight:800; line-height:1.5; }
.ez_marker { background:linear-gradient(transparent 60%, #FFF100 60%); padding:0 .08em; }
.ez_hero { background:#FFF100; border:3px solid #000; border-radius:16px; box-shadow:8px 8px 0 #000; padding:32px 24px; text-align:center; margin-bottom:20px; }
.ez_step { display:inline-block; background:#000; color:#FFF100; font-size:14px; font-weight:800; border-radius:999px; padding:5px 20px; margin-bottom:14px; }
.ez_big { font-size:30px; font-weight:800; line-height:1.4; margin-bottom:10px; }
.ez_under { border-bottom:4px solid #D10000; padding-bottom:2px; }
.ez_sub { font-size:14px; font-weight:700; line-height:1.8; color:#333; }
.ez_pew { background:#2D4585; color:#fff; border-radius:14px; padding:24px; text-align:left; }
.ez_pew_flag { display:inline-block; background:#FFF100; color:#2D4585; font-size:14px; font-weight:800; border-radius:999px; padding:5px 16px; margin-bottom:12px; }
.ez_pew_ttl { font-size:17px; font-weight:800; line-height:1.6; margin-bottom:8px; }
.ez_pew_ttl .hl { color:#FFF100; }
.ez_pew_txt { font-size:14px; line-height:1.9; color:#D8E0F0; }
.ez_pew_txt strong { color:#fff; }

@media screen and (min-width:768px){
	.ez_sec { padding:72px 0; }
	.ez_ttl { font-size:34px; }
	.ez_big { font-size:35px; }
	.ez_pew_ttl { font-size:19px; }
	.ez_pew_txt { font-size:15px; }
}
/* 導入かんたん（2ステップ・矢印シェイプ＋アイコン／現行版） */
.ezflow_wrap { text-align:center; padding:40px 0 80px; }
.ezflow_sub { font-size:17px; font-weight:800; line-height:1.6; margin-bottom:32px; }
.ezflow_mark { color:#D10000; }
.yello_mark { color:#FFF100; }
.ezflow_steps { display:flex; flex-direction:column; gap:20px; align-items:stretch; margin-bottom:36px; }
.ezflow_step { position:relative; padding:28px 24px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:120px; }
.ezflow_shape { position:absolute; inset:0; z-index:0; clip-path:polygon(0 0, 100% 0, 100% 82%, 50% 100%, 0 82%); }
.ezflow_step--yellow .ezflow_shape { background:#FFF100; }
.ezflow_step--navy .ezflow_shape { background:#2D4585; }
.ezflow_step--yellow { color:#000; }
.ezflow_step--navy { color:#fff; }
.ezflow_badge, .ezflow_body { position:relative; z-index:2; }
.ezflow_badge { position:absolute; top:-16px; left:24px; width:52px; height:52px; border-radius:999px; background:#fff; border:2px solid #000; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; color:#000;}
.ezflow_badge_en { font-size:10px; font-weight:700; color:#555; }
.ezflow_badge_no { font-size:18px; font-weight:800; }
.ezflow_body { margin-top:0; }
.ezflow_lead { font-size:15px; font-weight:700; margin-bottom:6px; line-height:1.5; }
.ezflow_ttl { font-size:24px; font-weight:800; line-height:1.3; }
/* アイコン＋本文の横並び */
.ezflow_row { position:relative; z-index:2; display:flex; align-items:center; gap:14px; text-align:left; }
.ezflow_ico { flex-shrink:0; font-size:0; }
.ezflow_ico img { width:44px; height:auto; display:block; }
/* マニュアル確認ボタン（大） */
.ezflow_manual { text-align:center; }
.ezflow_manual_lead { font-size:15px; font-weight:700; color:#555; margin-bottom:14px; }
.ezflow_manual_btn { display:inline-flex; align-items:center; gap:14px; background:#fff; color:#2D4585; border:3px solid #2D4585; border-radius:14px; box-shadow:0 4px 0 #2D4585; padding:16px 32px; font-size:18px; font-weight:800; text-decoration:none; transition:.15s; }
.ezflow_manual_btn:hover { transform:translateY(3px); box-shadow:0 1px 0 #2D4585; background:#2D4585; color:#fff; }
.ezflow_manual_ico { font-size:20px; }
.ezflow_manual_arrow { font-size:20px; font-weight:800; }

@media screen and (min-width:768px){
	.ezflow_wrap { padding:70px 0 0px; }
	.ezflow_sub { font-size:24px; margin-bottom:44px; }
	.ezflow_steps { flex-direction:row; gap:16px; margin-bottom:48px; }
	.ezflow_step { flex:1; min-height:150px; padding:32px 40px; }
	.ezflow_shape { clip-path:polygon(0 0, 88% 0, 100% 50%, 88% 100%, 0 100%); }
	.ezflow_step--navy .ezflow_shape { clip-path:polygon(0 0, 88% 0, 100% 50%, 88% 100%, 0 100%, 12% 50%); }
	.ezflow_badge { top:-18px; left:32px; width:60px; height:60px; }
	.ezflow_badge_no { color:#000; font-size:20px; }
	.ezflow_lead { font-size:18px; }
	.ezflow_ttl { font-size:28px; }
	.ezflow_ico img { width:52px; }
	.ezflow_manual_lead { font-size:17px; }
	.ezflow_manual_btn { font-size:22px; padding:20px 48px; }
}

/* トップ用：料金リード文の最小定義（色サイズはHTML側style併用） */
.fp_price_lead { text-align:center; line-height:1.7; }

/* トップ用：メディアのプレースホルダ枠（旧 .sc_page .ph 相当を素で定義） */
.fp_ph { display:flex; align-items:center; justify-content:center; text-align:center; background:#EEF1F7; border:1px dashed #A9B4CC; color:#6B7794; font-size:13px; font-weight:700; letter-spacing:.05em; }


/* ============================================================================
   移行方法（現行版）
   ----------------------------------------------------------------------------
   ※ 生CSSでは移行セクションが複数版くり返し定義されていた
      （.mig_* 案2 → .mig_* 強化版 → .mgc_* v4 → .mig2_* 案B「現行使用」）。
      後勝ちで最終的に効いていた各クラスの定義をここに集約し、当時のPC表示を再現する。
      HTML側でどの版を使っていても崩れないよう、.mig_* / .mgc_* / .mig2_* を網羅。
   ============================================================================ */

/* ==========================================================================
   .mig_*（おすすめ強化版：斜めストライプ／コーナーリボン）※後勝ちの最終版
   ========================================================================== */
.mig_wrap { padding:40px 0 80px; }
.mig_lead { text-align:center; font-size:16px; font-weight:700; line-height:1.7; margin-bottom:32px; }
.mig_lead b { color:#D10000; font-size:1.15em; }

.mig_hero { position:relative; background:#FFF100; border:4px solid #000; border-radius:20px; box-shadow:10px 10px 0 #000; padding:32px 22px 28px; margin-bottom:28px; overflow:hidden; }
.mig_hero::before { content:""; position:absolute; inset:0; z-index:0; opacity:.12; background:repeating-linear-gradient(-45deg, #000 0 2px, transparent 2px 16px); pointer-events:none; }
.mig_hero > * { position:relative; z-index:1; }
.mig_hero_ribbon { position:absolute; top:0; left:0; width:150px; height:150px; overflow:hidden; z-index:2; }
.mig_hero_ribbon span { position:absolute; top:28px; left:-40px; width:180px; transform:rotate(-45deg); text-align:center; background:#D10000; color:#fff; font-size:14px; font-weight:800; padding:6px 0; box-shadow:0 2px 4px rgba(0,0,0,.4); border-top:1px solid rgba(255,255,255,.4); border-bottom:1px solid rgba(0,0,0,.3); }
.mig_hero_top { text-align:center; margin-bottom:22px; padding-top:4px; }
.mig_hero_eyebrow { display:inline-block; background:#000; color:#FFF100; font-size:14px; font-weight:800; border-radius:999px; padding:4px 18px; margin-bottom:12px; }
.mig_hero_ttl { font-size:26px; font-weight:800; line-height:1.4; }
.mig_hero_hl { color:#D10000; background:linear-gradient(transparent 62%, #fff 62%); padding:0 .1em; }
.mig_hero_main { display:flex; flex-direction:column; gap:22px; }
.mig_hero_visual { text-align:center; }
.mig_hero_img { background:#fff; border:3px solid #000; border-radius:16px; box-shadow:5px 5px 0 #000; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; overflow:hidden; margin-bottom:12px; }
.mig_hero_img img { width:100%; height:100%; object-fit:contain; display:block; padding:12px; }
.mig_hero_img_ph { color:#999; font-size:13px; font-weight:700; line-height:1.6; }
.mig_hero_img:has(img) .mig_hero_img_ph { display:none; }
.mig_hero_ref { display:inline-block; font-size:14px; font-weight:800; color:#2D4585; text-decoration:underline; }
.mig_hero_txt { font-size:16px; font-weight:700; line-height:1.9; margin-bottom:18px; }
.mig_hero_txt b { color:#D10000; }
.mig_hero_price { display:flex; align-items:stretch; justify-content:center; gap:10px; margin-bottom:18px; }
.mig_price_box { flex:1; background:#fff; border:3px solid #000; border-radius:14px; box-shadow:4px 4px 0 #000; padding:16px 10px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:2px; }
.mig_price_label { font-size:13px; font-weight:800; color:#2D4585; }
.mig_price_val { font-weight:800; line-height:1; }
.mig_price_val b { font-size:40px; color:#D10000; letter-spacing:-.02em; }
.mig_price_yen { font-size:16px; }
.mig_price_sub { font-size:12px; font-weight:700; color:#555; }
.mig_price_plus { align-self:center; font-size:26px; font-weight:800; }
.mig_hero_more { display:block; text-align:center; background:#2D4585; color:#fff; font-size:16px; font-weight:800; border:2px solid #000; border-radius:12px; box-shadow:0 4px 0 #000; padding:14px 20px; text-decoration:none; transition:.15s; }
.mig_hero_more:hover { transform:translateY(3px); box-shadow:0 1px 0 #000; }

.mig_subs { display:flex; flex-direction:column; gap:18px; margin-bottom:36px; }
.mig_sub { background:#fff; border:3px solid #000; border-radius:16px; box-shadow:6px 6px 0 rgba(0,0,0,.4); padding:0 0 22px; overflow:hidden; }
.mig_sub_head { padding:20px 20px 16px; border-bottom:3px solid #000; position:relative; }
.mig_sub--csv .mig_sub_head { background:#EAF2FF; }
.mig_sub--outsource .mig_sub_head { background:#F3F6FF; }
.mig_sub_tag { display:inline-block; background:#D10000; color:#fff; font-size:12px; font-weight:800; border-radius:999px; padding:3px 14px; margin-bottom:10px; }
.mig_sub_tag--navy { background:#2D4585; }
.mig_sub_ttl { font-size:22px; font-weight:800; line-height:1.4; }
.mig_sub_hl { color:#2D4585; }
.mig_sub_img { margin:16px 20px 0; background:#F7F9FC; border:2px dashed #A9B4CC; border-radius:12px; aspect-ratio:16/9; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.mig_sub_img img { width:100%; height:100%; object-fit:contain; display:block; padding:10px; }
.mig_sub_img_ph { color:#6B7794; font-size:12px; font-weight:700; line-height:1.6; text-align:center; }
.mig_sub_img:has(img) { border-style:solid; border-color:#000; background:#fff; }
.mig_sub_img:has(img) .mig_sub_img_ph { display:none; }
.mig_sub_txt { font-size:15px; font-weight:700; line-height:1.8; padding:16px 20px 0; }
.mig_sub_fee { margin:16px 20px 0; background:#FFF100; border:2px solid #000; border-radius:12px; padding:14px 16px; text-align:center; }
.mig_sub_fee_label { display:block; font-size:13px; font-weight:800; color:#2D4585; margin-bottom:2px; }
.mig_sub_fee_val { font-size:16px; font-weight:800; }
.mig_sub_fee_val b { font-size:32px; color:#D10000; }
.mig_sub_fee_sub { display:block; font-size:12px; font-weight:700; color:#555; margin-top:2px; }

.mig_cta { text-align:center; background:#2D4585; border-radius:16px; padding:32px 20px; }
.mig_cta_lead { color:#fff; font-size:17px; font-weight:800; margin-bottom:16px; }
.mig_cta_btn { display:inline-flex; flex-direction:column; align-items:center; gap:2px; background:#FFF100; color:#000; border:3px solid #000; border-radius:14px; box-shadow:0 5px 0 #000; padding:16px 32px; text-decoration:none; transition:.15s; width:100%; max-width:520px; box-sizing:border-box; position:relative; }
.mig_cta_btn:hover { transform:translateY(3px); box-shadow:0 2px 0 #000; }
.mig_cta_sub { font-size:14px; font-weight:800; background:#000; color:#FFF100; padding:2px 12px; border-radius:20px; }
.mig_cta_main { font-size:20px; font-weight:800; line-height:1.3; margin-top:6px; }
.mig_cta_arrow { font-size:22px; font-weight:800; }
.mig_cta_note { color:#D8E0F0; font-size:14px; margin-top:14px; line-height:1.6; }

@media screen and (min-width:768px){
	.mig_wrap { padding:70px 0 100px; }
	.mig_lead { font-size:20px; margin-bottom:44px; }
	.mig_hero { padding:40px 44px 36px; margin-bottom:32px; }
	.mig_hero_ttl { font-size:34px; }
	.mig_hero_main { flex-direction:row; align-items:center; gap:40px; }
	.mig_hero_visual { width:42%; flex-shrink:0; }
	.mig_hero_detail { flex:1; }
	.mig_hero_txt { font-size:17px; }
	.mig_price_val b { font-size:48px; }
	.mig_subs { flex-direction:row; gap:24px; margin-bottom:48px; }
	.mig_sub { flex:1; display:flex; flex-direction:column; }
	.mig_sub_fee { margin-top:auto; }
	.mig_cta { padding:44px 20px; }
	.mig_cta_main { font-size:26px; }
	.mig_cta_arrow { position:absolute; right:24px; top:50%; transform:translateY(-50%); }
}

/* ==========================================================================
   .mgc_*（移行方法 v4：紺パネル一枚・スキャナを黄カードで浮かせる）
   ========================================================================== */
.mgc_wrap { padding:40px 0 80px; }
.mgc_panel { background:#2D4585; border-radius:20px; padding:28px 20px; border:3px solid #000; box-shadow:8px 8px 0 rgba(0,0,0,.28); }
.mgc_head { text-align:center; margin-bottom:22px; }
.mgc_head_sub { font-size:13px; font-weight:700; color:#C8D2E8; margin:0 0 6px; }
.mgc_head_ttl { font-size:20px; font-weight:800; color:#fff; line-height:1.5; margin:0; }
.mgc_head_ttl .hl { color:#FFF100; }
.mgc_hero { position:relative; background:#FFF100; border-radius:16px; border:3px solid #000; box-shadow:6px 6px 0 #000; padding:26px 20px 22px; margin-bottom:22px; }
.mgc_badge { position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:#D10000; color:#fff; font-size:14px; font-weight:800; border:2px solid #000; border-radius:999px; padding:5px 22px; white-space:nowrap; box-shadow:3px 3px 0 #000; }
.mgc_hero_top { text-align:center; margin-bottom:18px; }
.mgc_hero_eyebrow { font-size:13px; font-weight:800; color:#7a6a00; margin:8px 0 4px; }
.mgc_hero_ttl { font-size:22px; font-weight:800; color:#000; line-height:1.4; margin:0; }
.mgc_hero_main { display:flex; flex-direction:column; gap:20px; align-items:stretch; }
.mgc_hero_visual { text-align:center; }
.mgc_hero_img { background:#fff; border:3px solid #000; border-radius:14px; aspect-ratio:5/3; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.mgc_hero_img img { width:100%; height:100%; object-fit:contain; padding:10px; display:block; }
.mgc_hero_img_ph { color:#999; font-size:13px; font-weight:700; line-height:1.6; }
.mgc_hero_img:has(img) .mgc_hero_img_ph { display:none; }
.mgc_points { list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:8px; }
.mgc_points li { position:relative; font-size:16px; font-weight:800; color:#000; line-height:1.5; padding-left:28px; }
.mgc_points li::before { content:"✓"; position:absolute; left:0; top:0; color:#D10000; font-weight:800; font-size:18px; }
.mgc_price { display:flex; align-items:stretch; justify-content:center; gap:8px; }
.mgc_price_box { flex:1; background:#fff; border:2px solid #000; border-radius:12px; padding:12px 8px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:2px; }
.mgc_price_label { font-size:13px; font-weight:800; color:#2D4585; }
.mgc_price_val { font-weight:800; line-height:1; }
.mgc_price_val b { font-size:34px; color:#D10000; letter-spacing:-.02em; }
.mgc_price_yen { font-size:14px; }
.mgc_price_sub { font-size:12px; font-weight:700; color:#555; }
.mgc_price_plus { align-self:center; font-size:24px; font-weight:800; color:#000; }
.mgc_alt_lead { text-align:center; font-size:13px; font-weight:800; color:#C8D2E8; margin:0 0 12px; }
.mgc_alts { display:flex; flex-direction:column; gap:10px; }
.mgc_alt { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); border-radius:12px; padding:14px 16px; display:flex; align-items:center; gap:14px; }
.mgc_alt_icon { flex-shrink:0; font-size:0; width:34px; text-align:center; }
.mgc_alt_body { flex:1; text-align:left; }
.mgc_alt_name { font-size:16px; font-weight:800; color:#fff; margin:0; line-height:1.4; }
.mgc_alt_desc { font-size:12px; font-weight:700; color:#C8D2E8; margin:2px 0 0; }
.mgc_alt_fee { white-space:nowrap; text-align:right; }
.mgc_alt_fee b { font-size:22px; font-weight:800; color:#FFF100; letter-spacing:-.02em; }
.mgc_alt_fee span { font-size:13px; font-weight:800; color:#fff; }
.mgc_alt_fee small { display:block; font-size:11px; font-weight:700; color:#C8D2E8; margin-top:2px; }
.mgc_cta { text-align:center; margin-top:26px; }
.mgc_cta_lead { font-size:16px; font-weight:800; margin:0 0 14px; }
.mgc_cta_btn { display:inline-flex; flex-direction:column; align-items:center; gap:2px; background:#FFF100; color:#000; border:3px solid #000; border-radius:14px; box-shadow:0 5px 0 #000; padding:16px 32px; text-decoration:none; transition:.15s; width:100%; max-width:520px; box-sizing:border-box; position:relative; }
.mgc_cta_btn:hover { transform:translateY(3px); box-shadow:0 2px 0 #000; }
.mgc_cta_sub { font-size:14px; font-weight:800; background:#000; color:#FFF100; padding:2px 12px; border-radius:20px; }
.mgc_cta_main { font-size:20px; font-weight:800; line-height:1.3; margin-top:6px; }
.mgc_cta_arrow { font-size:22px; font-weight:800; }
.mgc_cta_note { color:#555; font-size:14px; margin-top:14px; line-height:1.6; }

@media screen and (min-width:768px){
	.mgc_wrap { padding:70px 0 100px; }
	.mgc_panel { padding:44px 40px; }
	.mgc_head_ttl { font-size:28px; }
	.mgc_hero { padding:34px 32px 28px; margin-bottom:28px; }
	.mgc_hero_ttl { font-size:30px; }
	.mgc_hero_main { flex-direction:row; align-items:center; gap:36px; }
	.mgc_hero_visual { width:42%; flex-shrink:0; }
	.mgc_hero_detail { flex:1; }
	.mgc_points li { font-size:17px; }
	.mgc_price_val b { font-size:42px; }
	.mgc_alt_name { font-size:18px; }
	.mgc_alt_fee b { font-size:26px; }
	.mgc_cta_main { font-size:26px; }
	.mgc_cta_arrow { position:absolute; right:24px; top:50%; transform:translateY(-50%); }
}

/* ==========================================================================
   .mig2_*（移行方法 案B：主役1枚＝紺ベース／補助2枚を並列）※現行使用
   ========================================================================== */
.mig2_wrap { padding:40px 0 80px; }
.mig2_lead { text-align:center; font-size:18px; font-weight:800; line-height:1.7; margin:0 0 26px; }
.mig2_hl { color:#D10000; background:linear-gradient(transparent 60%, #FFF100 60%); padding:0 .1em; }

.mig2_hero { position:relative; background:#2D4585; border-radius:16px; padding:28px 22px 24px; margin-bottom:24px; overflow:hidden; }
.mig2_ribbon { position:absolute; top:22px; right:-40px; z-index:5; width:160px; background:#D10000; color:#fff; font-size:14px; font-weight:800; text-align:center; line-height:1.9; transform:rotate(45deg); box-shadow:0 2px 4px rgba(0,0,0,.25); }
.mig2_hero_body { display:flex; flex-direction:column; gap:20px; }
.mig2_hero_visual { display:flex; flex-direction:column; }
.mig2_hero_cap { text-align:center; font-size:25px; font-weight:800; color:#FFF100; line-height:1; margin:0 0 8px; }
.mig2_hero_img { width:100%; aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.mig2_hero_img img { width:100%; height:100%; object-fit:contain; padding:10px; display:block; }
.mig2_hero_img_ph { color:#8ea0c8; font-size:13px; font-weight:700; line-height:1.6; text-align:center; }
.mig2_hero_img:has(img) .mig2_hero_img_ph { display:none; }
.mig2_hero_detail { display:flex; flex-direction:column; }
.mig2_points { list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:10px; }
.mig2_points li { position:relative; font-size:16px; font-weight:800; color:#fff; line-height:1.5; padding-left:30px; }
.mig2_points li::before { content:"✓"; position:absolute; left:0; top:0; color:#FFF100; font-weight:800; font-size:18px; }
.mig2_price { background:rgba(255,255,255,.08); border-radius:12px; padding:0 18px; }
.mig2_price_row { display:flex; justify-content:space-between; gap:12px; padding:20px 0; }
.mig2_price_row + .mig2_price_row { border-top:1px solid rgba(255,255,255,.15); }
.mig2_price_name { font-size:20px; font-weight:700; color:#fff; }
.mig2_price_name small { display:block; font-size:15px; font-weight:400; color:#C8D2E8; margin-top:2px; }
.mig2_price_fee { white-space:nowrap; text-align:right; }
.mig2_price_fee b { font-size:28px; font-weight:800; color:#FFF100; letter-spacing:-.02em; line-height:1; }
.mig2_price_yen2 { font-size:20px; font-weight:700; color:#fff; margin-left:2px; }
.mig2_caution { margin:10px 0 0; font-size:13px; font-weight:600; color:#C8D2E8; line-height:1.7; text-align:center; }

.mig2_alts { display:flex; flex-direction:column; gap:16px; margin-bottom:36px; }
.mig2_alt { background:#fff; border:2px solid #2D4585; border-radius:14px; padding:20px 18px; display:flex; flex-direction:column; }
.mig2_alt_head { display:flex; align-items:center; gap:10px; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid #E2E8F2; line-height:1; }
.mig2_alt_ico { font-size:0; line-height:1; flex-shrink:0; }
.mig2_alt_ico img { display:block; }
.mig2_alt_label { font-size:25px; font-weight:800; color:#2D4585; }
.mig2_alt_name { font-size:18px; font-weight:800; color:#1F2A44; line-height:1.4; margin:0 0 14px; }
.mig2_alt_points { list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:9px; }
.mig2_alt_points li { position:relative; font-size:20px; font-weight:800; color:#333; line-height:1.5; padding-left:24px; }
.mig2_alt_points li::before { content:"✓"; position:absolute; left:0; top:0; color:#2D4585; font-weight:800; font-size:15px; }
.mig2_alt_fee { margin-top:auto; padding-top:14px; text-align:right; white-space:nowrap; }
.mig2_alt_fee b { font-size:40px; font-weight:800; color:#D10000; letter-spacing:-.02em; line-height:1; }
.mig2_alt_fee span { font-size:20px; font-weight:800; margin-left:2px; }
.mig2_alt_fee small { display:block; font-size:15px; font-weight:700; color:#777; margin-bottom:4px; white-space:normal; }

@media screen and (min-width:768px){
	.mig2_lead { font-size:22px; margin-bottom:44px; }
	.mig2_hero { padding:36px 40px 32px; margin-bottom:24px; }
	.mig2_hero_body { flex-direction:row; align-items:stretch; gap:32px; }
	.mig2_hero_visual { width:38%; flex-shrink:0; }
	.mig2_hero_detail { flex:1; }
	.mig2_points li { font-size:20px; }
	.mig2_price_fee b { font-size:40px; }
	.mig2_caution { text-align:left; font-size:15px; }
	.mig2_alts { flex-direction:row; gap:24px; }
	.mig2_alt { flex:1; }
	.mig2_alt_points li { font-size:20px; }
}
/* ============================================================================
   FV（メインビジュアル・HTML化／現行版）
   ----------------------------------------------------------------------------
   ※ 旧・生CSSでは、このFVブロックの直後で @media(min-width:768px) が
      「.fv」と書きかけのまま閉じ忘れており、以降の記述（.fv_inner のPCレイアウト
      など）が丸ごとPC用として効いていた。ここでは閉じ忘れを正しく閉じたうえで、
      当時PCで効いていた見た目をそのまま再現する。
      ・囲みなし         … 全デバイス共通の土台
      ・@media(768px)     … PCだけの上書き（当時PCで効いていた分）
   ============================================================================ */

/* --- 土台（全デバイス共通） --- */
.fv_wrap { padding:24px 18px 40px; }
.fv_inner { display:flex; flex-direction:column; gap:24px; align-items:center; }
.fv_text { width:100%; margin-bottom:70px; }

/* ＼ 何名でも ／ */
.fv_nagashi { font-size:25px; left:315px; font-weight:800; color:#333; margin:0 0 6px; position:relative; }
.fv_nagashi::before, .fv_nagashi::after {
	content:""; display:inline-block; width:3px; height:20px; background:#333; vertical-align:middle;
	margin:0 20px;
}
.fv_nagashi::before { transform:rotate(-20deg); }
.fv_nagashi::after { transform:rotate(20deg); }

/* 赤バッジ（12,000円が上辺からはみ出す） */
.fv_badge {
	position:relative; display:flex; align-items:center; justify-content:center; gap:8px;
	background:#D10000; border-radius:12px; padding:5px 22px; margin:20px 0;
	width:fit-content; max-width:100%;
}
.fv_badge_txt1 { color:#fff; font-size:35px; font-weight:800; white-space:nowrap; }
.fv_badge_txt2 { color:#fff; font-size:25px; font-weight:800; }
.fv_badge_price { color:#fff; font-size:80px; font-weight:800; line-height:1; white-space:nowrap; margin-top:-45px; margin-bottom:-6px; }
.fv_badge_yen { font-size:25px; font-weight:800; }

/* 黄色い点々 */
.fv_dots { display:flex; gap:59px; justify-content:flex-start; margin:0 0 10px 25px; }
.fv_dots span { width:15px; height:15px; border-radius:50%; background:#FFD400; }

/* メイン見出し */
.fv_ttl { font-size:73px; font-weight:900; line-height:1.25; margin:0 0 14px; color:#1a1a1a; }
.fv_line { background:linear-gradient(transparent 90%, #FFD400 68%); }
.fv_stroke { color:#fff; -webkit-text-stroke:3px #D10000; font-weight:900; letter-spacing:-0.01em; }
.fv_sub { font-size:25px; font-weight:800; color:#333; margin:0 0 24px; }

/* point円（SVGを背景に敷いて文字を乗せる） */
.fv_points { display:flex; gap:10px; justify-content:flex-start; flex-wrap:wrap; }
.fv_point {
	width:170px; height:170px; flex-shrink:0;
	background-image:url(img/point01.svg);
	background-size:contain; background-repeat:no-repeat;
	display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
	padding:0 8px;
}
.fv_point_no { font-size:12px; font-weight:800; color:#D10000; font-style:italic; transform:rotate(-8deg); margin-bottom:4px; }
.fv_point_txt1 { font-size:15px; font-weight:700; color:#D10000; line-height:1.3; }
.fv_point_txt2 { font-size:20px; font-weight:800; color:#D10000; line-height:1.3; }

/* スマホ画像 */
.fv_img { width:100%; font-size:0; }
.fv_img img { width:120%; max-width:none; height:auto; display:block; margin-left:-10%; }

/* --- PC（768px以上）：当時PCで効いていた上書き --- */
@media screen and (min-width:768px){
	.fv_wrap { padding:20px 40px 0px 40px; }
	.fv_inner { flex-direction:row; align-items:center; gap:40px; max-width:1200px; margin:0 auto; }
	.fv_text { text-align:left; width:56%; }
	.fv_img { width:100%; }
	.fv_ttl { font-size:73px; }
	.fv_sub { font-size:25px; }
	.fv_points { justify-content:flex-start; }
}


/* ============================================================================
   トップ専用に移植したセクション（旧 sc_ / scn_ 由来 → fp_ にリネーム）
   ----------------------------------------------------------------------------
   料金(.fp_price/.fp_plan)、見出し(.fp_head)、動画・メディア(.fp_video/.fp_media)、
   料金CTA(.fp_price_cta) など。トップHTMLがスキャナ用クラスを流用していたため、
   トップ専用クラスとして独立させたもの。スキャナページ側は scanner.css の
   sc_/scn_ をそのまま使用（相互に影響しない）。
   ============================================================================ */
/* === トップ用にリネーム移植（sc_/scn_ → fp_）: 素の定義 === */
.fp_ph_fv { width:100%; min-height:220px; }
.fp_ph_icon { width:64px; height:64px; font-size:11px; border-radius:999px; flex-shrink:0; }
.fp_video { padding:48px 0; }
.fp_video_box { background:#FFF; border:2px solid #2D4585; border-radius:16px; overflow:hidden; display:flex; flex-direction:column; }
.fp_video_left { background:#000; width:100%; font-size:0; }
.fp_video_player { position:relative; width:100%; padding-top:56.25%; cursor:pointer; overflow:hidden; }
.fp_video_player iframe, .fp_video_thumb { position:absolute; top:0; left:0; width:100%; height:100%; border:0; object-fit:cover; }
.fp_video_play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:72px; height:50px; border:0; border-radius:12px; background:#D10000; cursor:pointer; padding:0; transition:.2s; box-shadow:0 4px 10px rgba(0,0,0,.3); }
.fp_video_play::after { content:""; position:absolute; top:50%; left:50%; transform:translate(-40%,-50%); border-style:solid; border-width:11px 0 11px 18px; border-color:transparent transparent transparent #FFF; }
.fp_video_player:hover .fp_video_play { background:#F20000; transform:translate(-50%,-50%) scale(1.06); }
.fp_video_right { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:28px 20px; }
.fp_video_catch { font-size:24px; font-weight:700; color:#2D4585; margin-bottom:20px; letter-spacing:.04em; }
.fp_video_logos { display:flex; flex-direction:column; align-items:center; gap:12px; }
.fp_video_logos img { max-width:80%; height:auto; }
.fp_video_player--soon { cursor:default; background:#000; }
.fp_video_soon { position:absolute; top:0; left:0; width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:20px; }
.fp_video_soon_en { font-size:32px; font-weight:700; color:#FFF; letter-spacing:.08em; }
.fp_video_soon_ja { font-size:15px; color:rgba(255,255,255,.8); letter-spacing:.04em; }
.fp_media_list { display:flex; flex-direction:column; gap:20px; margin-top:32px; }
.fp_media_card { display:block; text-decoration:none; color:#000; background:#FFF; border:2px solid #2D4585; border-radius:12px; overflow:hidden; transition:.2s; }
.fp_media_card:hover { transform:translateY(-4px); box-shadow:0 8px 16px rgba(45,69,133,.18); }
.fp_media_thumb { position:relative; width:100%; padding-top:62%; background:#F2F6DC; overflow:hidden; font-size:0; }
.fp_media_thumb img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; }
.fp_ph_media { position:absolute; top:0; left:0; width:100%; height:100%; border:2px dashed #2D4585; }
.fp_media_label { font-size:14px; font-weight:700; color:#2680E0; padding:14px 16px 0; }
.fp_media_ttl { font-size:15px; font-weight:700; line-height:1.6; padding:4px 16px 18px; }
.fp_media_soon { cursor:default; }
.fp_media_soon:hover { transform:none; box-shadow:none; }
.fp_media_soon_inner { position:absolute; top:0; left:0; width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:#2D4585; color:#FFF; font-size:18px; font-weight:700; letter-spacing:.08em; }
.fp_head { text-align:center; margin-bottom:40px; }
.fp_head_en {  display:inline-block; font-size:12px; font-weight:700;
  letter-spacing:.16em; margin-bottom:12px;
  padding:6px 16px; border-radius:999px;}
.fp_head_ja { 	position:relative;
  font-size:26px; font-weight:800; letter-spacing:.03em;
  padding-bottom:16px;}
.fp_head_ja::after {  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:48px; height:3px; border-radius:2px;}
.fp_head--light .fp_head_en { color:#2D4585; background:#EEF1F8; }
.fp_head--light .fp_head_ja { color:#1F2A44; }
.fp_head--light .fp_head_ja::after { background:#8fa0c6; }
.fp_head--light .fp_head_ja .hl { color:#2D4585; }
.fp_head--dark .fp_head_en { color:#C5D0EC; background:rgba(255,255,255,.08); }
.fp_head--dark .fp_head_ja { color:#F5F7FC; }
.fp_head--dark .fp_head_ja::after { background:linear-gradient(90deg,#7E9BDC,#B7C6EE); }
.fp_head--dark .fp_head_ja .hl { color:#9FB5E6; }
.fp_price { padding:56px 0; background:#2D4585; }
.fp_price .fp_head_en { color:#8FA0C6; }
.fp_price .fp_head_ja { color:#fff; }
.fp_plan_flex { display:flex; flex-direction:column; gap:32px; margin-bottom:24px; }
.fp_plan { background:#fff; border-radius:14px; position:relative; overflow:hidden; border: #000000 3px solid;}
.fp_plan_head { background:#FFF100; color:#000; font-size:30px; font-weight:800; text-align:center; line-height:1.4; padding:14px 16px; border-bottom:3px solid #000; }
.fp_plan_body { padding:24px 24px 28px; }
.fp_plan_no { font-size:12px; font-weight:800; color:#2D4585; margin-bottom:10px; }
.fp_plan_price { display:flex; align-items:baseline; justify-content:center; gap:6px; margin-bottom:14px; flex-wrap:wrap; }
.fp_plan_unit_pre { font-size:25px; font-weight:800; }
.fp_plan_num_wrap { background:linear-gradient(transparent 65%, #FFF100 55%); padding:0 6px; }
.fp_plan_num { font-size:44px; font-weight:800; color:#000; line-height:1; }
.fp_plan_unit { font-size:25px; font-weight:800; position:relative; }
.fp_plan_tax { font-size:15px; font-weight:700; position:absolute; top:-20px; left:50%; transform:translateX(-50%); white-space:nowrap; }
.fp_plan_break { font-size:14px; color:#777; margin-bottom:14px; text-align:center; }
.fp_plan_list { list-style:none; padding:0; margin:0; }
.fp_plan_list li { position:relative; font-size:14px; line-height:1.6; padding:7px 0 7px 22px; border-top:2px dashed rgba(0,0,0,.2); }
.fp_plan_list li::before { content:"✓"; position:absolute; left:0; top:7px; color:#2D4585; font-weight:800; }
.fp_plan_best { border:#d10000 3px solid; }
.fp_plan_best .fp_plan_head { background:#D10000; color:#fff; border-bottom-color:#D10000; }
.fp_plan_best .fp_plan_num { color:#000; }
.fp_plan_best .fp_plan_break { color:#555; font-weight:700; }
.fp_plan_best .fp_plan_list li { border-top:2px dashed rgba(0,0,0,.25); }
.fp_plan_best .fp_plan_list li::before { color:#D10000; }
.fp_plan_badge { position:absolute; top:18px; right:-38px; z-index:5; width:150px; background:#D10000; color:#fff; font-size:14px; font-weight:800; text-align:center; line-height:1.8; transform:rotate(45deg); box-shadow:0 2px 4px rgba(0,0,0,.25); }
.fp_price_init { background:rgba(255,255,255,.12); border-radius:12px; padding:20px; text-align:center; color:#fff; }
.fp_price_init_ttl { font-size:14px; font-weight:700; color:#FFF100; margin-bottom:6px; }
.fp_price_init_main { font-size:16px; font-weight:800; }
.fp_price_init_num { font-size:28px; }
.fp_plan_cap { display:flex; align-items:center; justify-content:center; gap:10px; margin:20px 0; flex-wrap:wrap; }
.fp_plan_cap_badge { background:#000; color:#FFF100; font-size:20px; font-weight:800; padding:5px 10px; border-radius:4px; line-height:1; }
.fp_plan_cap_num { font-size:25px; font-weight:800; color:#000; line-height:1; }
.fp_plan_cap_unit { font-size:20px; font-weight:800; line-height:1; }
.fp_plan_cap_note { font-size:17px; color:#777; text-align:center; line-height:1.5; margin-bottom:6px; }
.fp_plan_cap_note_sum { color:#333; background:#FFF9C4; border:1px solid #FFF100; border-radius:6px; padding:8px 10px; font-weight:600; margin-bottom:8px; }
.fp_plan_cap_note_sum strong { color:#D10000; }
.fp_price_cta { margin-top:32px; text-align:center; }
.fp_price_cta_btn {	display:inline-flex; align-items:center; gap:14px;
	background:#FFF100; color:#000;
	border:3px solid #000; border-radius:12px;
	padding:18px 40px;
	font-weight:800; text-decoration:none;
	box-shadow:0 4px 0 #000;
	transition:transform .15s ease, box-shadow .15s ease;}
.fp_price_cta_btn:hover {	transform:translateY(2px);
	box-shadow:0 2px 0 #000;}
.fp_price_cta_sub {	font-size:14px; font-weight:800;
	background:#000; color:#FFF100;
	padding:3px 10px; border-radius:20px;
	line-height:1;}
.fp_price_cta_main { font-size:20px; line-height:1.3; }
.fp_price_cta_arrow { font-size:22px; font-weight:800; }
.fp_price_cta_note { color:#fff; font-size:15px; margin-top:12px; }

@media screen and (min-width: 768px) {
	.fp_ph_fv { min-height:320px; }
	.fp_video { padding:72px 0; }
	.fp_video_box { flex-direction:row; align-items:stretch; }
	.fp_video_left { width:58%; align-self:center; }
	.fp_video_right { width:42%; padding:32px; }
	.fp_video_catch { font-size:32px; }
	.fp_media_list { flex-direction:row; justify-content:space-between; margin-top:40px; }
	.fp_media_card { width:32%; }
	.fp_media_ttl { font-size:16px; }
	.fp_head_ja { font-size:36px; }
	.fp_price { padding:88px 0; }
	.fp_plan_flex { flex-direction:row; align-items:stretch; }
	.fp_plan { width:50%;}
	.fp_plan_num { font-size:65px; }
}

@media (max-width:600px) {
	.fp_price_cta_btn { flex-direction:column; gap:8px; padding:18px 28px; width:100%; box-sizing:border-box; }
	.fp_price_cta_main { font-size:17px; }
	.fp_price_cta_arrow { display:none; }
}


/* ============================================================================
   ★★★ スマホ崩れ修正リージョン（〜767px）★★★
   ----------------------------------------------------------------------------
   ・目的：上の既存デザイン（特にPC=768px以上）を一切変えずに、
     スマホでの「はみ出し・横スクロール・巨大文字・要素の重なり」を解消する。
   ・仕組み：ここはファイル末尾なので後勝ちで確実に効く。
     PCに影響しないよう、上書きはすべて @media (max-width:767px) の中だけに限定。
   ・並び：FV → ロゴ → お悩み → 選ばれる理由 → 見出し → 料金 → 導入 →
     移行 → pewとは → 動画 → フォーム、と本文の登場順にそろえてある。
   ============================================================================ */

@media screen and (max-width: 767px) {

	/* 万一のはみ出し源を丸ごと封じる */
	.main_wrap,
	.fv_wrap, .fv_inner, .fv_text,
	.snr_sec, .snr_inner, .snr_card,
	.content_div, .co_padding {
		max-width: 100%;
		overflow-x: hidden;
	}

	/* ---- FV（メインビジュアル）：崩れの主因 ---- */
	.fv_wrap { padding: 20px 16px 32px; }
	.fv_inner { gap: 8px; }
	.fv_text { width: 100%; margin-bottom: 24px; }

	/* 「＼ 何名でも ／」：left:315px で画面外に飛んでいたのを中央へ */
	.fv_nagashi { left: 27px; font-size: 18px; text-align: center; margin: 0 0 4px; }
	.fv_nagashi::before, .fv_nagashi::after { height: 14px; margin: 0 10px; }

	/* 赤バッジ：80pxの価格がはみ出す＆マイナスマージンで重なる問題を解消 */
	.fv_badge { gap: 4px; padding: 6px 16px 8px; margin: 10px auto 16px; }
	.fv_badge_txt1 { font-size: 20px; }
	.fv_badge_price { font-size: 44px; margin-top: -22px; margin-bottom: 0; }
	.fv_badge_yen { font-size: 16px; }

	/* 黄色い点々：gap:59px＋左マージンで右へ溢れるのを詰める */
	.fv_dots { gap: 18px; justify-content: center; margin: 0 0 10px; }
	.fv_dots span { width: 10px; height: 10px; }

	/* メイン見出し：73px→画面幅で自動縮小（横スクロール最大の原因） */
	.fv_ttl { font-size: clamp(34px, 11vw, 46px); line-height: 1.3; text-align: center; margin: 0 0 12px; word-break: break-word; }
	.fv_stroke { -webkit-text-stroke: 2px #D10000; }
	.fv_sub { font-size: 17px; text-align: center; margin: 0 0 20px; }

	/* point円：170px×3が溢れる → 3等分の可変サイズで必ず1行に */
	.fv_points { gap: 6px; justify-content: center; flex-wrap: nowrap; }
	.fv_point { width: auto; flex: 1 1 0; min-width: 0; aspect-ratio: 1 / 1; max-width: 33.33%; padding: 0 4px; height:135px; }
	.fv_point_txt1 { font-size: 13px; }
	.fv_point_txt2 { font-size: 17px; }

	/* スマホ画像：width:120% + margin-left:-10% で右にはみ出す → 是正 */
	.fv_img { width: 100%; margin-top: 8px; }
	.fv_img img { width: 100%; margin: 0 0 -75px 0; }

	/* ---- ロゴスワイパー ---- */
	.logoswiper_sec { padding: 40px 0 32px; }
	.logoswiper .swiper-slide { width: 140px; }

	/* ---- お悩み（CASEカード）：右下はみ出しイラストの余白確保 ---- */
	.nayami_cases { gap: 40px; padding: 30px 0 20px; }
	.nayami_case_illust { width: 75px; right: 6px; }
	.nayami_case_illust_big { width: 75px; }
	.nayami_case_ttl { font-size: 19px; }
	.nayami_case_list { padding: 0 16px 10px; }

	/* ---- 選ばれる理由（.snr_） ---- */
	.snr_sec { padding: 10px 0 40px; }
	.snr_card, .snr_card.right { width: auto; padding: 24px 18px 24px 18px; box-shadow: 5px 5px 0 #000; }
	.snr_card.right { padding: 24px 18px 24px 18px; box-shadow: -5px 5px 0 #000; }
	.snr_card::before, .snr_card.right::before { display:none; }
	.snr_head { gap: 12px; }
	.snr_no { padding: 8px 10px; }
	.snr_no_num { font-size: 34px; }
	.snr_no_en { font-size: 12px; }
	.snr_ttl { font-size: 17px; }
	.snr_f01_cap { font-size: 16px; }
	.snr_f01_bubble { font-size: 16px; padding: 12px 4px; }
	.snr_f01_arrow { font-size: 32px; }

	/* reason02 棒グラフ：「ずっと定額！」フラグが右にはみ出す → バー下へ */
	.bargraph { padding: 18px 14px; }
	.bargraph_title { font-size: 17px; }
	.bargraph_bar { min-width: 0; padding: 0 8px; height: 30px; }
	.bargraph_bar--pew { height: 40px; width:50%;}
	.bargraph_val { font-size: 13px; }
	.bargraph_bar--pew .bargraph_val { font-size: 15px; }
	.bargraph_flag { position: static; transform: none; display: inline-block; margin: 8px 0; font-size: 13px; padding: 3px 10px; }
	.bargraph_row--pew .bargraph_track { display: flex; align-items: flex-start; }
	.bargraph_name{font-size:15px;}

	/* reason03 Before/After */
	.snr_acc_shots { gap: 6px; }
	.snr_acc_shot_cap { font-size: 14px; padding: 3px 12px; }
	.snr_acc_time { font-size: 12px; padding: 3px 8px; }
	.snr_acc_arrow_mark { font-size: 24px; }
	.snr_acc_stat { padding: 16px; gap: 12px; }
	.snr_acc_stat_ico { width: 44px; height: 44px; }
	.snr_acc_stat_label { font-size: 17px; }
	.snr_acc_stat_note { font-size: 15px; }
	.snr_acc_lead { font-size: 15px; line-height: 1.7; }
	.snr_acc_list li { font-size: 17px; }

	/* ---- ロゴ差し込み見出し（.hlead_） ---- */
	.hlead { padding: 32px 16px; }
	.hlead_sub { font-size: 16px; }
	.hlead_main { font-size: 25px; }
	.hlead_num { font-size: 52px; }

	/* ---- 料金（.fp_price / .fp_plan） ---- */
	.fp_price { padding: 44px 0; }
	.fp_price_lead { font-size: 20px !important; } /* HTML側inline 30px 対策 */
	.fp_plan_flex { gap: 24px; }
	.fp_plan_head { font-size: 25px; }
	.fp_plan_num { font-size: 55px; }
	.fp_plan_price { gap: 4px; }
	.fp_plan_unit_pre, .fp_plan_unit { font-size: 25px; }
	.fp_plan_cap_badge { font-size: 20px; }
	.fp_plan_cap_num { font-size: 25px; }
	.fp_plan_cap_unit { font-size: 20px; }
	.fp_plan_badge { right: -42px; font-size: 12px; }
	.fp_price_cta_main { font-size: 20px; }

	/* ---- 見出し（.fp_head） ---- */
	.fp_head { margin-bottom: 28px; }
	.fp_head_ja { font-size: 25px; }

	/* ---- 導入の流れ（.ezflow_） ---- */
	.ezflow_wrap { padding: 32px 0 40px; }
	.ezflow_ttl { font-size: 24px; }
	.ezflow_lead { font-size: 17px; }
	.ezflow_ico img { width: 38px; }

	/* ---- 移行方法（.mig2_）：リボンのはみ出し・文字サイズ ---- */
	.mig2_wrap { padding: 32px 0 40px; }
	.mig2_hero { padding: 24px 18px 20px; }
	.mig2_ribbon { top: 16px; right: -44px; width: 150px; font-size: 12px; }
	.mig2_hero_cap { font-size: 20px; }
	.mig2_points li { font-size: 17px; }
	.mig2_price_name { font-size: 17px; }
	.mig2_price_name small { font-size: 15px; }
	.mig2_price_fee b { font-size: 25px; }
	.mig2_price_yen2 { font-size: 17px; }
	.mig2_alt_label { font-size: 20px; }
	.mig2_alt_name { font-size: 16px; }
	.mig2_alt_points li { font-size: 17px; }
	.mig2_alt_fee b { font-size: 35px; }
	.mig2_alt_fee span { font-size: 20px; }
	.mig2_alt_fee small { font-size: 15px; }

	/* ---- pewとは（.fp_about_） ---- */
	.fp_about_sec { padding: 40px 0; }
	.fp_about_ttl { font-size: 25px; }
	.fp_about_list li { font-size: 17px; }
	.fp_about_btn { font-size: 17px; padding: 12px 22px; }

	/* ---- 動画・メディア（.fp_video / .fp_media） ---- */
	.fp_video { padding: 40px 0; }
	.fp_video_catch { font-size: 20px; }
	.fp_media_ttl { font-size: 17px; }

	/* ---- お問い合わせフォーム：入力欄が枠からはみ出さない ---- */
	.form_embed input, .form_embed select, .form_embed textarea { max-width: 100%; box-sizing: border-box; }

	/* ============================================================
	   FV：スマホは画像を上・テキストを下に
	   ============================================================ */
	.fv_img  { order: 1; }
	.fv_text { order: 2; }

	/* ============================================================
	   CTA：FVに重なる飛び出しデザインを維持しつつ上辺切れを解消
	   ============================================================ */

	/* 親要素の縦クリップを解除（上辺が切れる原因） */
	.main_wrap,
	.fv_wrap,
	.fv_cta,
	.content_div {
		overflow: visible;
	}

	/* 飛び出しは維持。CTAをFVより前面へ */
	.redcta_bg .cta_wrap,
	.scanner_cta_bg .cta_wrap {
		transform: translateY(-50px);
		-webkit-transform: translateY(-50px);
		-ms-transform: translateY(-50px);
		position: relative;
		z-index: 100;
	}
	.fv_wrap { position: relative; z-index: 1; }

	/* テキスト・ボタンを装飾ドットより前面に */
	.redcta_bg .cta_txt1,
	.redcta_bg .cta_txt2,
	.redcta_bg .cta_reassure,
	.redcta_bg .cta_main_btn,
	.scanner_cta_bg .cta_txt1,
	.scanner_cta_bg .cta_txt2,
	.scanner_cta_bg .cta_reassure,
	.scanner_cta_bg .cta_main_btn {
		position: relative;
		z-index: 2;
	}

	/* 装飾ドットは最背面へ */
	.redcta_bg .cta_dots2,
	.scanner_cta_bg .cta_dots2 {
		z-index: 0;
	}
	
	.redcta_bg .cta_txt2{
		font-size: 20px;
	}
	
	.redcta_bg .cta_main_lg{
		font-size: 20px;
	}
	
	.logoswiper_txt1{
		font-size: 17px;
	}
	
	.nayami_wrap{
		margin: 70px 0;
	}
	
	.nayami_case_list li{
		font-size: 17px;
	}
	
	.nayami_case{
		font-size: 20px;
	}
	
	.nayami_case_ttl{
		font-size: 20px;
	}
	.mig2_caution{
		font-size: 15px;
	}
	.fp_media_label{
		font-size: 15px;
	}
	.fp_about_txt{
		font-size:15px;
	}
	.fp_about_img{
		display:none;
	}
	.snr_flat{
		flex-direction: column-reverse;
	}	

	/* 矢印は1つ目（step1↔2）だけ残して他は非表示 */
	.snr_flow01 > .snr_f01_arrow { display: none; }
	.snr_f01_arrow--to { display: none; }
	
	.co_padding{
		padding: 0 10px;
	}
}

/* ★SP-FIX ごく小さい端末（〜360px）向けの追い込み */
@media screen and (max-width: 360px) {
	.fv_ttl { font-size: 32px; }
	.fv_badge_price { font-size: 38px; }
	.fv_point_txt2 { font-size: 12px; }
	.snr_no_num { font-size: 28px; }
	.snr_ttl { font-size: 15px; }
	.nayami_case_ttl { font-size: 17px; }
}

/* ============================================================================
   ★ 選ばれる理由（.snr_）SPスライド化 + 見出し拡大 + reason01フロー
   ----------------------------------------------------------------------------
   このブロックは front-page.css の「末尾」に貼るだけ。既存CSSは書き換え不要。
   後勝ちで確実に効かせるため、必ずファイルの一番下に置くこと。
   （前回の append ブロックは、これで丸ごと置き換える）

   ・PC（768px以上）: Swiperを解除して従来の縦積み・左右交互・横1列フローを維持
   ・SP（767px以下）: 1枚ずつスライド／全カード高さ揃え／下にドット
                      reason01は「step1・2が横並び → 下にstep3 → 下にgoal」
   ============================================================================ */

/* ---- PC：ラッパー透過（reason01の横1列フローを維持） ---- */
@media screen and (min-width: 768px) {
	.snr_f01_steps,
	.snr_f01_lastgroup { display: contents; }
}

/* ---- PC：Swiperを解除して従来の縦積みに戻す ---- */
@media screen and (min-width: 768px) {
	.snr_swiper { overflow: visible; }
	.snr_swiper .swiper-wrapper {
		display: block;
		transform: none !important;
	}
	.snr_swiper .swiper-slide {
		width: 100% !important;
		margin-bottom: 50px;
	}
	.snr_swiper_pagination { display: none; }
}

/* ---- SP：スライド化・高さ揃え・見出し拡大・reason01フロー ---- */
@media screen and (max-width: 767px) {

	/* Swiper本体：1枚表示・高さ揃え */
	.snr_swiper { overflow: hidden; }
	.snr_swiper .swiper-wrapper { align-items: stretch; }
	.snr_swiper .swiper-slide { height: auto; padding: 4px; box-sizing: border-box; }
	.snr_swiper .swiper-slide > .snr_card { height: 100%; box-sizing: border-box; }

	/* カードを画面幅いっぱい・left/rightの振り分けと影の向きを統一 */
	.snr_card, .snr_card.left, .snr_card.right {
		width: auto;
		margin: 0;
		box-shadow: 0px 0px 0 #000;
	}
	.snr_card::before, .snr_card.right::before { display: none; }

	/* ページネーション（ドット） */
	.snr_swiper_pagination { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
	.snr_swiper_pagination .swiper-pagination-bullet {
		width: 9px; height: 9px; background: #C9CBB0; opacity: 1; margin: 0 !important;
	}
	.snr_swiper_pagination .swiper-pagination-bullet-active { background: #2D4585; }

	/* 見出しバッジを縦積みにして見出しを大きく */
	.snr_head { flex-direction: column; gap: 8px; align-items: flex-start; }
	.snr_no { display: inline-flex; align-items: baseline; gap: 6px; padding: 5px 12px; }
	.snr_no_num { font-size: 22px; }
	.snr_no_en  { font-size: 11px; }
	.snr_ttl { font-size: 20px; line-height: 1.5; }

	/* reason01：全体を縦フローに */
	.snr_flow01 { flex-direction: column; align-items: center; }

	/* step1・2を横並び */
	.snr_f01_steps { display: flex; flex-direction: row; align-items: stretch; gap: 6px; width: 100%; }
	.snr_f01_steps .snr_f01_step { flex: 1; min-width: 0; }
	.snr_f01_steps .snr_f01_arrow { transform: none; font-size: 24px; align-self: center; }

	/* step2グループ → step3グループ間の矢印（下向き） */
	.snr_flow01 > .snr_f01_arrow { transform: rotate(90deg); font-size: 24px; margin: 4px 0; }

	/* step3 + goal を縦にまとめる */
	.snr_f01_lastgroup { display: flex; align-items: center; gap: 8px; width: 100%; }
	.snr_f01_lastgroup .snr_f01_step { width: 100%; max-width: 260px; }
	.snr_f01_arrow--to { transform: rotate(90deg); font-size: 24px; align-self: center; margin: 4px 0; }
	.snr_f01_goal { width: 100%; max-width: 340px; margin: 0 auto; }

	.snr_f01_cap { font-size: 15px; }
	.snr_f01_bubble { font-size: 20px;}
	.snr_flow01 .snr_f01_bubble { font-size: 17px; }
	
	/* スライド前後ボタン */
	.snr_swiper { position: relative; }
	.snr_swiper_prev,
	.snr_swiper_next {
		position: absolute;
		top: 40%;
		transform: translateY(-50%);
		z-index: 10;
		width: 45px;
		height: 45px;
		display: flex;
		align-items: center;
		justify-content: center;
		background: #2D4585;
		color: #fff;
		border: 2px solid #000;
		border-radius: 999px;
		font-size: 30px;
		font-weight: 800;
		line-height: 1;
		cursor: pointer;
		user-select: none;
		padding-bottom:9px;
	}
	.snr_swiper_prev { left: 10px; }
	.snr_swiper_next { right: 10px; }

	/* 端で押せないときは半透明に（Swiperが自動付与するクラス） */
	.snr_swiper_prev.swiper-button-disabled,
	.snr_swiper_next.swiper-button-disabled {
		opacity: .35;
		box-shadow: 1px 1px 0 #000;
	}
}

/* ---- 極小端末（360px以下）の追い込み（任意） ---- */
@media screen and (max-width: 360px) {
	.snr_ttl { font-size: 17px; }
	.snr_f01_cap { font-size: 12px; }
}
