@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* =========================================================
   スマホヘッダー：電話・お問い合わせ導線
========================================================= */
.rm-sp-header-cta {
	display: none;
}
@media (max-width: 959px) {
	.rm-sp-header-cta {
		display: flex;
	}
}
.rm-sp-header-cta {
	background: #fff;
	border-top: 1px solid var(--color_border, #e5e5e5);
}
.rm-sp-header-cta__item {
	flex: 1 1 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	padding: 0.7em 0.5em;
	text-decoration: none !important;
	font-size: 14px;
	font-weight: 700;
}
.rm-sp-header-cta__item--tel {
	color: #333 !important;
	border-right: 1px solid var(--color_border, #e5e5e5);
}
.rm-sp-header-cta__item--contact {
	background: var(--rm-cta-red);
	color: #fff !important;
}
.rm-sp-header-cta__icon {
	font-size: 1.1em;
	line-height: 1;
}

/* =========================================================
   /contact/ ：問い合わせハブページ
========================================================= */
.rm-contact-audience {
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 0.8em 1.2em;
	font-weight: 700;
	display: inline-block;
}
.rm-contact-cta {
	text-align: center;
	margin: 0.9em 0;
}
.rm-contact-cta__btn {
	display: inline-block;
	padding: 0.9em 2.4em;
	border-radius: 6px;
	font-weight: 700;
	text-decoration: none !important;
	transition: opacity 0.2s;
}
.rm-contact-cta__btn--primary {
	background: var(--rm-cta-red);
	color: #fff !important;
}
.rm-contact-cta__btn--secondary {
	background: #f0f0f0;
	color: var(--color_text) !important;
	border: 1px solid var(--color_border, #ccc);
}
.rm-contact-cta__btn:hover {
	opacity: 0.85;
}
.rm-contact-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 1.2em 0;
	justify-content: center;
}
.rm-contact-card {
	flex: 1 1 220px;
	max-width: 280px;
	display: flex;
	flex-direction: column;
	gap: 0.3em;
	text-align: center;
	padding: 1em 1em;
	border: 2px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	text-decoration: none !important;
	color: inherit;
	transition: border-color 0.2s, background-color 0.2s;
}
.rm-contact-card:hover {
	border-color: var(--color_main);
	background: var(--color_pale02, #f3f8fd);
}
.rm-contact-card strong {
	color: var(--color_text);
	font-size: 1.05em;
}
.rm-contact-card span {
	font-size: 0.85em;
	color: #666;
}
.rm-contact-card__hint {
	font-size: 0.8em;
	font-style: normal;
	color: var(--rm-link);
	margin-top: 0.4em;
}

/* =========================================================
   TOP：個人向け／法人向けの案内バー（メインビジュアル直下）
========================================================= */
.rm-audience-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.6em 1.6em;
	padding: 1.4em 1.5em;
	background: #fff8f0;
	border-top: 1px solid var(--color_border, #e5e5e5);
	border-bottom: 3px solid var(--rm-nav-orange, #FF8128);
}
.rm-audience-banner__icon {
	font-size: 1.3em;
	line-height: 1;
}
.rm-audience-banner__personal {
	color: var(--color_text);
	font-weight: 700;
	font-size: 1.15em;
}
.rm-audience-banner__biz {
	display: inline-flex;
	align-items: center;
	color: #fff;
	background: #2E7D4F;
	font-weight: 700;
	font-size: 1.05em;
	padding: 0.6em 1.4em;
	border-radius: 999px;
	text-decoration: none;
	transition: opacity 0.2s, box-shadow 0.2s;
}
.rm-audience-banner__biz::after {
	content: " →";
}
.rm-audience-banner__biz:hover {
	opacity: 0.85;
	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
}
@media (max-width: 599px) {
	.rm-audience-banner {
		flex-direction: column;
		gap: 0.7em;
		text-align: center;
		padding: 1.3em 1.2em;
	}
	.rm-audience-banner__biz {
		width: 100%;
		max-width: 320px;
		justify-content: center;
	}
}

/* =========================================================
   ヘッダー / グローバルナビ調整
========================================================= */

/* ロゴ・メニュー・電話番号・お問い合わせの縦位置を揃える */
.l-header__inner {
	align-items: center;
	min-height: 100px;
}
/* SPはPC拡大ロゴの影響を受けないよう、余白を抑えた高さに戻す */
@media (max-width: 959px) {
	.l-header__inner {
		min-height: 72px;
	}
}
.c-gnav {
	align-items: center;
}
.w-header {
	display: flex;
	align-items: center;
}

/* グローバルナビ ブランドアクセント（個人サイトのメインカラー＝オレンジを主役に、グリーンは補助色程度） */
:root {
	--rm-nav-orange: #FF8128;      /* 下線・アクセント用 */
	--rm-nav-orange-text: #E06B00; /* 文字色用（白背景でのコントラスト確保） */
	--rm-nav-green: #3CAF29;       /* 補助色（グローバルナビでは基本使用しない） */
	--rm-cta-red: #E94B3C;         /* 問い合わせ・申込系CTA専用（オレンジ＝サイト全体アクセント、赤＝行動喚起の役割分け） */
	--rm-cta-red-hover: #D8402F;
	--rm-link: #5b8290;            /* 通常テキストリンク用（オレンジを使わない中間色） */
}

/* グローバルナビ 全体の文字サイズ・余白・行間 */
.c-gnav > li {
	line-height: 1.4;
}
.c-gnav > li > a {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
	padding-top: 0.9em;
	padding-bottom: 0.9em;
	padding-left: 1em;
	padding-right: 1em;
	border-bottom: 2px solid transparent;
	transition: color 0.2s, border-color 0.2s;
}
/* 【不具合修正】上のfont-size:20pxは<a>要素自体には適用されるが、実際の文字は
   SWELL本体のCSS「.c-gnav>.menu-item>a .ttl{font-size:14px}」がラップしている
   内側の.ttlスパンに対して、より詳細度の高いセレクタで14px指定しているため、
   実際の描画には反映されていなかった（<a>のfont-sizeはpaddingのem計算にのみ
   影響し、見た目の文字サイズには影響しない）。実際に文字を描画している.ttl側を
   直接指定して上書きする。ロゴ・電話番号・お問い合わせボタンには影響しない。 */
.c-gnav > .menu-item > a .ttl {
	font-size: 20px !important;
}

/* 親メニューのホバー */
.c-gnav > li:hover > a {
	color: var(--rm-nav-orange-text);
	border-bottom-color: var(--rm-nav-orange);
}

/* 現在地（アクティブ状態）の明確な表現 */
.c-gnav > li.current-menu-item > a,
.c-gnav > li.current_page_item > a,
.c-gnav > li.current-menu-ancestor > a,
.c-gnav > li.current_page_ancestor > a {
	color: var(--rm-nav-orange-text);
	border-bottom-color: var(--rm-nav-orange);
	border-bottom-width: 3px;
}

/* 子メニュー（ドロップダウン）の見た目調整 */
.c-gnav .sub-menu {
	min-width: 260px;
	padding: 10px 0;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.c-gnav .sub-menu a {
	font-size: 14px;
	line-height: 1.6;
	padding: 0.75em 1.25em;
	transition: color 0.15s, background-color 0.15s;
}
.c-gnav .sub-menu a:hover {
	color: var(--rm-nav-orange-text);
	background-color: rgba(255, 129, 40, 0.08);
}
.c-gnav .sub-menu a:before {
	display: none;
}
.c-gnav .sub-menu li + li {
	border-top: 1px solid var(--color_border, #f0f0f0);
}

/* ヘッダー内部ウィジェット（電話番号＋お問い合わせボタン） */
#head_box {
	height: 100%;
}
.header-cta-group {
	display: flex;
	align-items: center;
	gap: 20px;
	height: 100%;
}
.header-cta-tel {
	font-size: 20px;
	font-weight: 700;
	color: var(--color_text) !important;
	text-decoration: none !important;
	white-space: nowrap;
}
.header-cta-tel::before {
	content: "📞";
	margin-right: 0.35em;
	font-size: 0.85em;
}
.header-cta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--rm-cta-red);
	color: #fff !important;
	border-radius: 999px;
	padding: 0.65em 1.4em;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none !important;
	transition: opacity 0.2s;
}
.header-cta-btn:hover {
	opacity: 0.85;
}

@media (max-width: 959px) {
	.c-gnav > li > a {
		font-size: 16px;
	}
}

/* =========================================================
   スマホ：ハンバーガーメニュー（c-spnav）の装飾
========================================================= */
.c-spnav a {
	font-size: 16px;
	font-weight: 700;   /* Noto Sans JP は 400/700 のみ読込。600→700（表示は不変。ナビは太字） */
	padding: 0.9em 0.6em;
	border-bottom: 1px solid var(--color_border, #eee);
	transition: color 0.15s, background-color 0.15s;
}
.c-spnav > .menu-item > a {
	font-weight: 700;
}
.c-spnav .sub-menu {
	background: #fafafa;
}
.c-spnav .sub-menu a {
	font-size: 14.5px;
	font-weight: 400;   /* 500→400（読込ウェイトへ統一。表示は不変・子リンクは通常太さ） */
	padding-left: 1.6em;
	color: #555;
}
/* 現在地の軽いアクセント（オレンジ） */
.c-spnav .current-menu-item > a,
.c-spnav .current_page_item > a {
	color: var(--rm-nav-orange-text);
	font-weight: 700;
	border-left: 3px solid var(--rm-nav-orange);
	padding-left: calc(0.6em - 3px);
}
.c-spnav .current-menu-parent > a,
.c-spnav .current-menu-ancestor > a {
	color: var(--rm-nav-orange-text);
}

/* 営業時間バー（お知らせバー）の表示調整 */
.c-infoBar {
	padding: 9px 20px;
}
.c-infoBar__text {
	display: block;
	max-width: 1080px;
	margin: 0 auto;
	text-align: center;
}
@media (min-width: 960px) {
	.c-infoBar__text {
		font-size: 13px;
		line-height: 1.8;
		letter-spacing: 0.02em;
	}
}

/* お知らせ（投稿）は告知ページとして運用するため、記事下部のカテゴリ／タグ表示も非表示にする */
.p-articleMetas.-bottom {
	display: none;
}
/* お知らせ一覧：サムネイル（未設定時の代替画像含む）とカテゴリバッジを非表示にし、
   日付・タイトル・抜粋だけのシンプルな告知リストにする */
.p-postList__thumb {
	display: none;
}

/* =========================================================
   パンくずリストの非表示（全ページ共通）
   ※ SWELLカスタマイザーに「全体非表示」の項目が無いためCSSで対応。
     構造化データ(BreadcrumbList)は削除せず、画面表示のみ非表示にする。
========================================================= */
#breadcrumb {
	display: none;
}

/* パンくず非表示にともない、上部に残る余白を全ページで詰める */
.c-pageTitle {
	padding-top: 0.6em;
	padding-bottom: 0.6em;
	margin-bottom: 0.4em;
}
.page-id-36 .post_content > *:first-child,
.page-id-37 .post_content > *:first-child {
	margin-top: 0;
}


/* =========================================================
   見出し（H2 / H3）デザイン統一
   SWELL標準の濃色ベタ背景H2をやめ、軽く現代的なデザインに変更
========================================================= */

.post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	background: var(--color_pale02, #f3f8fd);
	color: var(--color_text);
	border: none;
	border-left: 5px solid var(--color_main);
	padding: 0.5em 0.9em;
	margin: 1.8em 0 0.9em;
	font-size: 1.3em;
	border-radius: 0 6px 6px 0;
}
.post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	content: none;
	border: none;
}

.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	padding: 0 0 0.3em;
	margin: 1.3em 0 0.7em;
	border-bottom: 2px solid var(--color_main_thin, #eee);
	font-size: 1.1em;
}
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	content: none;
	background: none;
}

.post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	padding: 0 0 0 12px;
	border-left: 3px solid var(--color_main);
	margin: 1.1em 0 0.6em;
}


/* =========================================================
   固定ページ共通レイアウト調整
========================================================= */

/* コンテンツと見出しの間隔（先頭要素の余分な上余白をなくす） */
.post_content > *:first-child {
	margin-top: 0;
}

/* サービスサイト用セクション（rebuild_pages.php の section() 関数が出力するdiv） */
.post_content > div[style*="padding"] {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	width: 100vw;
	max-width: 100vw;
	box-sizing: border-box;
}
.post_content > div[style*="padding"] > * {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}
.post_content > div[style*="padding"] table,
.post_content > div[style*="padding"] ul,
.post_content > div[style*="padding"] ol {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
}

/* 画像は必要以上に大きくしない */
.post_content figure img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
}
.post_content figure {
	max-width: 640px;
	margin: 1.5em auto;
}

/* 料金表を少し見やすく */
.post_content table.has-fixed-layout {
	width: 100%;
	max-width: 640px;
	margin: 1.3em auto;
	border-collapse: collapse;
}
.post_content table.has-fixed-layout th,
.post_content table.has-fixed-layout td {
	border: 1px solid var(--color_border, #e5e5e5);
	padding: 0.55em 1em;
	font-size: 16px;
	line-height: 1.6;
}
.post_content table.has-fixed-layout th {
	background: var(--color_pale02, #f3f8fd);
	text-align: left;
	white-space: nowrap;
}

/* 料金表（項目名｜金額の2列）：横に間延びさせず、内容に合わせてコンパクトに */
.post_content table.rm-price-table {
	width: auto;
	max-width: 480px;
	margin: 1.3em auto;
}
.post_content table.rm-price-table th,
.post_content table.rm-price-table td {
	padding: 0.55em 1.3em;
}
.post_content table.rm-price-table td:last-child,
.post_content table.rm-price-table th:last-child {
	text-align: right;
	white-space: nowrap;
}
/* グループ見出し行（<th colspan="2">）は表全体に対して中央揃えにする。
   上のtd/th:last-childルールはcolspanセル（=同時にlast-childでもある）にも
   適用されて右寄せになってしまうため、より詳細度の高いこちらで上書きする。 */
.post_content table.rm-price-table th[colspan] {
	text-align: center;
	white-space: normal;
}
/* プラン名列は左揃え、料金列は右揃えを明示（列幅はcolgroupで70〜75%／25〜30%に指定） */
.post_content table.rm-price-table--plan td:first-child {
	text-align: left;
	white-space: normal;
}
@media (max-width: 599px) {
	.post_content table.rm-price-table {
		width: 100%;
		max-width: 100%;
	}
	.post_content table.rm-price-table--plan td:first-child {
		font-size: 0.92em;
	}
}

/* スマホでの余白調整 */
@media (max-width: 599px) {
	.post_content > div[style*="padding"] {
		padding-left: 5vw !important;
		padding-right: 5vw !important;
	}
	.post_content h2:where(:not([class^="swell-block-"])) {
		font-size: 1.1em;
	}
}


/* =========================================================
   機種詳細ページ（limit_post）を商品ページらしく
========================================================= */
.rm-product {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: flex-start;
	max-width: 1100px;
	margin: 0 auto 1.4em;
}
.rm-product__figure {
	flex: 1 1 320px;
	max-width: 380px;
	margin: 0 auto;
}
.rm-product__figure img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	border: 1px solid var(--color_border, #e5e5e5);
}
.rm-product__body {
	flex: 1 1 380px;
}
.rm-product__price {
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 0.7em 1.1em;
	margin: 0.8em 0;
}
.rm-product__price p {
	margin: 0.25em 0;
	font-size: 1.1em;
}
/* スペック表：table構造だと1行でも長い項目があると全行の列幅が引きずられて
   横に間延びするため、行ごとに項目名の幅が決まるflex構成に変更 */
.rm-spec-list {
	max-width: 520px;
	margin: 0.8em auto;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	overflow: hidden;
}
.rm-spec-list__row {
	display: flex;
}
.rm-spec-list__row + .rm-spec-list__row {
	border-top: 1px solid var(--color_border, #e5e5e5);
}
.rm-spec-list__label {
	flex: 0 0 auto;
	min-width: 7.5em;
	background: #fafafa;
	padding: 0.5em 0.9em;
	font-size: 16px;
	line-height: 1.5;
	white-space: nowrap;
}
.rm-spec-list__value {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.5em 0.9em;
	font-size: 16px;
	line-height: 1.5;
	border-left: 1px solid var(--color_border, #e5e5e5);
	word-break: break-word;
}
@media (max-width: 380px) {
	.rm-spec-list__label {
		min-width: 6em;
		font-size: 14.5px;
	}
	.rm-spec-list__value {
		font-size: 14.5px;
	}
}
@media (max-width: 599px) {
	.rm-spec-list {
		max-width: 100%;
	}
}
/* PC表示：中央に細長く浮いて見えないよう横幅を広げ、左右比率を明示（文字サイズ・行間・SP表示は変更しない） */
@media (min-width: 600px) {
	.rm-spec-list {
		width: 100%;
		max-width: 740px;
	}
	.rm-spec-list__label {
		flex: 0 0 33%;
		min-width: 0;
	}
	.rm-spec-list__value {
		flex: 1 1 67%;
	}
}


/* =========================================================
   料金シミュレーター（/sim ページのプラン選択）
========================================================= */
.rm-price-sim {
	max-width: 1100px;
	margin: 1.2em auto;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 10px;
	padding: 18px 20px;
}
.rm-price-sim__note {
	margin: 0 0 0.7em;
	font-size: 0.9em;
	color: #666;
}
.rm-price-sim__options {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 14px;
	align-items: stretch;
}
/* post_content の wpautop により選択肢の間に紛れ込む <br> がグリッド枠を1つ消費し、
   PCで2列＋中央に大きな空白ができる原因になっていたため、グリッド内では無効化する */
.rm-price-sim__options br {
	display: none;
}
.rm-price-sim__option {
	position: relative;
	display: block;
	border: 2px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 9px 10px 9px 32px;
	cursor: pointer;
	transition: border-color 0.2s, background-color 0.2s;
	font-size: 0.9em;
	line-height: 1.3;
}
.rm-price-sim__option input[type="radio"] {
	position: absolute;
	left: 12px;
	top: 14px;
}
.rm-price-sim__option:has(input:checked) {
	border-color: var(--color_main);
	background: var(--color_pale02, #f3f8fd);
}
/* 金額そのものは選択状態に関わらず常に濃色。選択状態は枠・背景・ラジオで示す */
.rm-price-sim__option-text strong {
	color: var(--color_text);
}
.rm-price-sim__result {
	display: flex;
	gap: 24px;
	justify-content: center;
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 12px 16px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}
/* プラン未選択時：「￥ー」のみの表示を避け、選択を促す案内文を表示する */
.rm-price-sim__placeholder {
	margin: 0;
	width: 100%;
	text-align: center;
	font-size: 0.95em;
	color: #666;
}
.rm-price-sim__result-item {
	text-align: center;
}
.rm-price-sim__result-item span {
	display: block;
	font-size: 0.85em;
	color: #666;
	margin-bottom: 4px;
}
.rm-price-sim__result-item strong {
	font-size: 1.5em;
	color: var(--color_text);
}
.rm-price-sim__cta {
	text-align: center;
}
.rm-price-sim__btn {
	background-color: var(--color_main);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 0.9em 2.5em;
	font-size: 1em;
	font-weight: 700;
	cursor: pointer;
	transition: opacity 0.2s;
}
.rm-price-sim__btn:disabled {
	background-color: #ccc;
	cursor: not-allowed;
}
/* 確認画面：同意チェックボックス未チェック時の送信ボタンを視覚的にも無効表示にする */
.wpcf7-form .wpcf7-submit:disabled {
	background-color: #ccc !important;
	opacity: 1 !important;
	cursor: not-allowed;
	box-shadow: none !important;
}
.rm-price-sim__btn:not(:disabled):hover {
	opacity: 0.85;
}
@media (max-width: 767px) {
	.rm-price-sim__options {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 480px) {
	.rm-price-sim__options {
		grid-template-columns: 1fr;
	}
}
.rm-price-sim__options--charger {
	grid-template-columns: repeat(2, 1fr);
	max-width: 480px;
}
@media (max-width: 480px) {
	.rm-price-sim__options--charger {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* =========================================================
   規約・注意事項ページ：長い条文リストの行間・項目間の余白を改善
   （文言・色は変更せず、可読性のための余白のみ調整）
========================================================= */
.rm-legal-list li {
	line-height: 1.9;
	margin-bottom: 0.9em;
}
@media (max-width: 599px) {
	.rm-legal-list li {
		line-height: 2;
		margin-bottom: 1.1em;
	}
}

/* =========================================================
   共通：本文冒頭の余白統一（H1直下の間隔を主要ページで揃える）
   /sim・/sales・/wi-fi は元々 padding:32px 20px の冒頭ブロックを持っていたため、
   同じ余白を持たない /flow・/pay・/qa・/contact の本文先頭要素にも付与する。
========================================================= */
.rm-content-top-space {
	padding-top: 32px;
}

/* =========================================================
   /sales ページ（機種一覧・商品ページ）
========================================================= */
.rm-sales-intro {
	max-width: 1100px;
	margin: 0 auto;
	padding: 32px 20px;
}
.rm-sales-intro h2 {
	margin-top: 0;
}
/* ファーストビュー：見出し・説明・CTA（左）と商品画像（右）の2カラム。
   PCで画像なし・空白のみになっていた問題を解消。/sim・/wi-fi と縦の余白を揃える。 */
.rm-sales-hero {
	display: flex;
	align-items: center;
	gap: 40px;
	margin-bottom: 1.6em;
}
.rm-sales-hero__body {
	flex: 1 1 50%;
	min-width: 0;
}
.rm-sales-hero__body h2 {
	margin-top: 0;
}
.rm-sales-hero__visual {
	flex: 1 1 50%;
	min-width: 0;
	margin: 0;
}
.rm-sales-hero__visual img.rm-page-visual {
	margin: 0;
}
@media (max-width: 767px) {
	.rm-sales-hero {
		flex-direction: column;
		gap: 1.2em;
	}
	.rm-sales-hero__body,
	.rm-sales-hero__visual {
		flex: 1 1 auto;
		width: 100%;
	}
}
.rm-sales-catalog {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px 32px;
}
.rm-sales-catalog__heading {
	text-align: center;
	margin: 0 0 1.2em;
}
.rm-device-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	margin: 0 0 1.5em;
}
@media (max-width: 1000px) {
	.rm-device-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (max-width: 700px) {
	.rm-device-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}
}
@media (max-width: 420px) {
	.rm-device-grid {
		grid-template-columns: 1fr;
	}
}
.rm-device-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 10px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.2s, transform 0.2s;
}
.rm-device-card:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}
.rm-device-card__figure {
	aspect-ratio: 1 / 1;
	background: #fafafa;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.rm-device-card__figure img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 12px;
}
.rm-device-card__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	padding: 14px 16px 18px;
}
.rm-device-card__name {
	margin: 0 0 0.4em;
	font-weight: 700;
	font-size: 1em;
	line-height: 1.4;
}
.rm-device-card__price {
	margin: 0 0 0.2em;
	font-size: 0.9em;
	color: #444;
}
.rm-device-card__from {
	margin: 0 0 0.8em;
	font-size: 0.85em;
	color: #666;
}
.rm-device-card__btn {
	margin-top: auto;
	display: block;
	text-align: center;
	background: var(--color_main);
	color: #fff;
	border-radius: 6px;
	padding: 0.6em 0.8em;
	font-size: 0.85em;
	font-weight: 700;
}

/* 選択内容サマリー（申込フォーム上部） */
.rm-selection-summary {
	max-width: 640px;
	margin: 0 auto 2em;
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 18px 20px;
}
.rm-selection__title {
	margin: 0 0 0.6em;
	font-weight: 700;
	font-size: 0.95em;
	color: var(--color_main);
}
.rm-selection__row {
	padding: 0.35em 0;
	font-size: 0.95em;
	border-top: 1px dashed rgba(0, 0, 0, 0.08);
}
.rm-selection__row,
.rm-selection__row > p {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
}
.rm-selection__row:first-of-type {
	border-top: none;
}
.rm-selection__label {
	color: #666;
	flex: 0 0 auto;
}
.rm-selection__value {
	font-weight: 700;
	text-align: right;
}

/* 確認画面：入力内容の一覧テーブル（項目名｜内容の2列。編集不可のテキスト表示専用）
   PCは横並びの2列、SPは項目名→内容の縦積みにして横スクロールを発生させない。 */
.rm-confirm-table {
	max-width: 640px;
	margin: 1.5em auto;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	overflow: hidden;
}
.rm-confirm-table__row {
	display: flex;
}
.rm-confirm-table__row + .rm-confirm-table__row {
	border-top: 1px solid var(--color_border, #e5e5e5);
}
.rm-confirm-table__label {
	flex: 0 0 9.5em;
	background: #fafafa;
	padding: 0.75em 1em;
	font-weight: 700;
	font-size: 0.95em;
}
.rm-confirm-table__value {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.75em 1em;
	border-left: 1px solid var(--color_border, #e5e5e5);
	font-size: 0.95em;
	word-break: break-word;
}
/* お問い合わせ内容など複数行の入力のみ、改行を保持して表示する */
.rm-confirm-table__value--message {
	white-space: pre-wrap;
}
/* wpautopが行内テキストを<p>で包む際に前後へ挿入する改行が、
   pre-wrap指定の行で余白として見えてしまうのを防ぐ */
.rm-confirm-table__label > p,
.rm-confirm-table__value > p {
	margin: 0;
	display: inline;
}
@media (max-width: 599px) {
	.rm-confirm-table__row {
		flex-direction: column;
	}
	.rm-confirm-table__label {
		flex-basis: auto;
		border-bottom: 1px solid var(--color_border, #e5e5e5);
	}
	.rm-confirm-table__value {
		border-left: none;
	}
}

/* 確認画面の操作エリア：「戻る」（控えめ）と「送信する」（既存の強調ボタン）を横並びに */
.rm-confirm-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 2em;
}
.rm-confirm-actions input[type="submit"] {
	width: auto;
	min-width: 200px;
	margin: 0;
}
.rm-confirm-back-btn {
	display: inline-block;
	padding: 0.9em 1.6em;
	font-size: 0.95em;
	color: #666;
	background: #f4f4f4;
	border: 1px solid #ddd;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s;
	white-space: nowrap;
}
.rm-confirm-back-btn:hover {
	background: #eaeaea;
	border-color: #ccc;
	text-decoration: none;
}
@media (max-width: 599px) {
	.rm-confirm-actions {
		flex-direction: column;
	}
	.rm-confirm-actions input[type="submit"],
	.rm-confirm-back-btn {
		width: 100%;
		max-width: 320px;
		text-align: center;
	}
}


/* =========================================================
   申込フォーム（CF7）レイアウト全面調整
========================================================= */
.wpcf7-form,
.wpcf7 {
	max-width: 640px;
	margin: 0 auto;
}
.wpcf7-form p {
	margin: 0 0 1.4em;
}
.wpcf7-form > p:first-child,
.wpcf7-form br {
	display: none;
}
.wpcf7-form label {
	display: block;
	font-weight: 700;
	font-size: 0.95em;
	margin-bottom: 0.5em;
	line-height: 1.5;
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form select,
.wpcf7-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 0.75em 0.9em;
	font-size: 1em;
	border: 1px solid var(--color_border, #ccc);
	border-radius: 6px;
	background: #fff;
}
.wpcf7-form textarea {
	min-height: 120px;
}
.wpcf7-form input:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus {
	outline: none;
	border-color: var(--color_main);
	box-shadow: 0 0 0 3px var(--color_main_thin, rgba(4,56,76,0.08));
}

/* 姓名・セイメイなど、1つの p 内に入力欄が2つ並ぶ場合は横並び2分割 */
.wpcf7-form p:has(> span.wpcf7-form-control-wrap + span.wpcf7-form-control-wrap) {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.wpcf7-form p:has(> span.wpcf7-form-control-wrap + span.wpcf7-form-control-wrap) > span.wpcf7-form-control-wrap {
	flex: 1 1 0;
	min-width: 140px;
}

/* ラジオボタン・チェックボックス */
.wpcf7-form .wpcf7-radio,
.wpcf7-form .wpcf7-checkbox {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}
.wpcf7-form .wpcf7-list-item {
	margin: 0;
}
.wpcf7-form .wpcf7-list-item-label {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	cursor: pointer;
}
.wpcf7-form input[type="radio"],
.wpcf7-form input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--color_main);
}

/* 郵便番号・住所欄 */
.wpcf7-form input#zip {
	max-width: 200px;
}

/* 申込フォーム：送信ボタン手前の案内文（未入力時に進めない理由の説明） */
.wpcf7-form .rm-form-hint {
	max-width: 480px;
	margin: 1.6em auto 0.6em;
	padding: 0.7em 1em;
	background: var(--color_pale02, #f3f8fd);
	border-radius: 6px;
	font-size: 0.85em;
	line-height: 1.7;
	color: #555;
}

/* 必須・任意ラベル */
.wpcf7-form .necessary {
	display: inline-block;
	background: #e0433f;
	color: #fff;
	font-size: 0.7em;
	font-weight: 700;
	padding: 0.15em 0.6em;
	border-radius: 3px;
	margin-left: 0.5em;
	vertical-align: middle;
}

/* 確認画面へ／送信するボタン */
.wpcf7-form input[type="submit"] {
	display: block;
	width: 100%;
	max-width: 320px;
	margin: 2em auto 0;
	background-color: var(--rm-cta-red);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 0.9em 1.5em;
	font-size: 1.05em;
	font-weight: 700;
	cursor: pointer;
	transition: opacity 0.2s;
}
.wpcf7-form input[type="submit"]:hover {
	opacity: 0.85;
}

/* 同意チェックボックス
   DOM構造: <span class="wpcf7-acceptance"><span class="wpcf7-list-item"><label>
             <input type=checkbox><span class="wpcf7-list-item-label">文章＋リンク</span>
           </label></span></span>
   → チェックボックスとラベル文の親である<label>自体をflexにし、
     チェックボックスを左に固定、文章側だけを折り返させることで
     「チェックボックス左・文章右・折り返しても崩れない」を実現する。 */
.wpcf7-form .wpcf7-acceptance {
	display: block;
	margin: 1.5em 0;
	font-size: 0.95em;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
	display: block;
}
.wpcf7-form .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	max-width: 480px;
	margin: 0 auto;
	text-align: left;
	cursor: pointer;
}
.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	flex: 0 0 auto;
	margin-top: 0.25em;
}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item-label {
	display: block;
	flex: 1 1 auto;
	min-width: 0;
	white-space: normal;
	line-height: 1.7;
}
.wpcf7-form .wpcf7-acceptance a {
	color: var(--color_link, var(--color_main));
	text-decoration: underline;
}
.wpcf7-form .wpcf7-acceptance a:hover {
	text-decoration: none;
}

/* 申込フォーム：個人情報保護方針／利用規約／注意事項を独立した3つのチェックボックスとして縦並び表示。
   各行は上のflexレイアウト（チェックボックス左・文言右）をそのまま踏襲し、
   行の開始位置（チェックボックスの左端）が全行で揃うよう、
   グループ全体とその中の各wpcf7-acceptanceの最大幅・中央寄せを一致させている。 */
.rm-consent-group {
	max-width: 480px;
	margin: 1.6em auto;
}
.rm-consent-group__item {
	margin: 0 0 0.9em;
}
.rm-consent-group__item:last-child {
	margin-bottom: 0;
}
.rm-consent-group .wpcf7-acceptance {
	margin: 0;
}
.rm-consent-group .wpcf7-acceptance label {
	max-width: none;
	margin: 0;
}

/* エラー・送信結果メッセージ */
.wpcf7-form .wpcf7-not-valid-tip {
	color: #e0433f;
	font-size: 0.85em;
	margin-top: 0.4em;
}
.wpcf7-form .wpcf7-response-output {
	max-width: 640px;
	margin: 1.5em auto 0;
	border-radius: 6px;
	padding: 1em 1.2em;
}

@media (max-width: 599px) {
	.wpcf7-form .form_item_flex {
		flex-direction: column;
		gap: 1em;
	}
	.wpcf7-form input[type="submit"] {
		max-width: 100%;
	}
}

/* =========================================================
   サイト全体のブランドカラー統一
   SWELL標準の赤/青系装飾色（FAQ・リスト等）をメインカラー系に統一する
========================================================= */
:root {
	--color_faq_q: var(--color_main);
	--color_faq_a: #5b8290;
	--color_list_check: var(--color_main);
	--color_list_num: var(--color_main);
	--color_sub: #5b8290;
}

/* ステップ番号の丸背景（自作マークアップには色指定用の要素が無いため付与） */
.swell-block-step__number {
	background-color: var(--color_main);
}
.swell-block-step__item:before {
	border-left-color: var(--color_border, #e5e5e5);
}

/* FAQ：Q/Aのバッジ感を出しつつブランドカラーに統一 */
.swell-block-faq .faq_q,
.swell-block-faq .faq_a {
	position: relative;
	padding-left: 2em;
}
.swell-block-faq .faq_q:before,
.swell-block-faq .faq_a:before {
	position: absolute;
	left: 0;
	top: 0;
	font-weight: 700;
}
.swell-block-faq .faq_q:before {
	content: "Q";
	color: #fff;
	background: var(--color_main);
	width: 1.6em;
	height: 1.6em;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.9em;
}
.swell-block-faq .faq_a:before {
	content: "A";
	color: var(--color_main);
	background: var(--color_pale02, #f3f8fd);
	width: 1.6em;
	height: 1.6em;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.9em;
}
.swell-block-faq__item {
	border-bottom: 1px solid var(--color_border, #e5e5e5);
	padding: 1.2em 0;
}
.swell-block-faq__item:first-child {
	border-top: 1px solid var(--color_border, #e5e5e5);
}

/* =========================================================
   TOPページ：本文側の実H1（ヘッダーロゴのH1格下げとセットで追加。
   デザイン・配色は変更せず、既存の見出し色・中央寄せの体裁のみを踏襲）
========================================================= */
.rm-top-h1 {
	max-width: 1100px;
	margin: 0 auto;
	padding: 32px 20px 0;
	text-align: center;
	font-size: 1.3em;
	font-weight: 700;
	line-height: 1.6;
	color: var(--color_text);
}
@media (max-width: 599px) {
	.rm-top-h1 {
		font-size: 1.1em;
	}
}

/* =========================================================
   TOPページ：セクション共通ラッパー（背景色の交互切り替え）
========================================================= */
.rm-section {
	padding: 60px 20px;
}
.rm-section--alt {
	background: var(--color_pale02, #f3f8fd);
}
.rm-section h2,
.rm-section h3 {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
.rm-section h2 {
	font-size: 1.7em;
}
@media (max-width: 599px) {
	.rm-section h2 {
		font-size: 1.4em;
	}
}
.rm-section > p,
.rm-section > div:not([class]) {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 599px) {
	.rm-section {
		padding: 40px 16px;
	}
}

/* 選ばれる理由：カード */
.rm-feature-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	max-width: 1000px;
	margin: 1.5em auto 0;
}
.rm-feature-card {
	flex: 1 1 260px;
	padding: 24px 20px;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	border-top: 3px solid var(--color_main);
}
.rm-feature-card h4 {
	margin: 0 0 0.5em;
	color: var(--color_text);
	font-size: 1.15em;
}
.rm-feature-card p {
	margin: 0;
	font-size: 0.98em;
}

/* 会社情報・法人バナー（1段完結・背景画像＋白系グラデーション＋HTMLテキスト） */
.rm-corp-banner-group {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	max-width: 900px;
	margin: 0 auto;
}
.rm-corp-banner {
	position: relative;
	flex: 1 1 320px;
	display: flex;
	align-items: center;
	min-height: 220px;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid var(--color_border, #e5e5e5);
	background-color: #fff;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: right center;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}
/* 画像の上に白系グラデーションを重ねて左側のテキストの可読性を確保する */
.rm-corp-banner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 255, 255, 0.9) 42%, rgba(255, 255, 255, 0.4) 75%, rgba(255, 255, 255, 0.05) 100%);
}
.rm-corp-banner:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}
.rm-corp-banner:focus-visible {
	outline: 3px solid var(--color_main);
	outline-offset: 2px;
}
.rm-corp-banner--company {
	background-image: url('/wp-content/uploads/2026/08/company_info_banner_visual-1024x341.png');
	border-top: 3px solid var(--color_main);
}
.rm-corp-banner--company:hover {
	border-color: var(--color_main);
}
.rm-corp-banner--main {
	background-image: url('/wp-content/uploads/2026/08/corporate_government_banner_visual-1024x341.png');
	border-top: 3px solid #6fae8c;
}
.rm-corp-banner--main::before {
	background: linear-gradient(90deg, rgba(240, 250, 244, 0.97) 0%, rgba(240, 250, 244, 0.9) 42%, rgba(240, 250, 244, 0.4) 75%, rgba(240, 250, 244, 0.05) 100%);
}
.rm-corp-banner--main:hover {
	border-color: #2e7d4f;
}
.rm-corp-banner__body {
	position: relative;
	z-index: 1;
	padding: 16px 24px;
	max-width: 72%;
}
.rm-corp-banner__title {
	display: flex;
	align-items: center;
	gap: 0.35em;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 0.4em;
	color: var(--color_text);
}
.rm-corp-banner--company .rm-corp-banner__title {
	color: var(--rm-nav-orange-text, #e06b00);
}
.rm-corp-banner--main .rm-corp-banner__title {
	color: #2e7d4f;
}
.rm-corp-banner__desc {
	display: block;
	font-size: 15px;
	line-height: 1.5;
	color: #555;
}
.rm-corp-banner__arrow {
	display: inline-block;
	margin-top: 0.5em;
	font-size: 18px;
	font-weight: 700;
}
.rm-corp-banner--company .rm-corp-banner__arrow {
	color: var(--rm-nav-orange-text, #e06b00);
}
.rm-corp-banner--main .rm-corp-banner__arrow {
	color: #2e7d4f;
}
/* 外部サイトへのリンクであることを示す小さなアイコン（法人・官公庁カードのみ） */
.rm-corp-banner__extlink {
	font-size: 0.7em;
	line-height: 1;
	opacity: 0.8;
}
@media (max-width: 599px) {
	.rm-corp-banner {
		min-height: 200px;
		flex: 1 1 100%;
	}
	.rm-corp-banner__body {
		max-width: 80%;
	}
	.rm-corp-banner__title {
		font-size: 20px;
	}
	.rm-corp-banner__desc {
		font-size: 14px;
	}
}

/* サービス紹介カード */
.rm-service-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 1100px;
	margin: 1.5em auto 0;
}
.rm-service-card {
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 1.6em 1.4em;
	text-align: center;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
/* カード上端いっぱいに画像を配置（カード自体のpaddingを打ち消してブリードさせる） */
.rm-service-card__img {
	display: block;
	width: calc(100% + 2.8em);
	max-width: none;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	margin: -1.6em -1.4em 1em;
	border-radius: 0;
}
.rm-service-card__title {
	margin: 0 0 0.3em;
	color: var(--color_text);
	font-size: 1.2em;
}
.rm-service-card__caption {
	margin: 0 0 0.8em;
	font-weight: 700;
	font-size: 0.95em;
}
.rm-service-card__text {
	margin: 0 0 1em;
	font-size: 0.95em;
	color: #555;
	text-align: left;
	flex: 1 1 auto;
}
/* サービス紹介カード内に料金の目安を統合表示（旧・別枠の.rm-price-highlightは廃止） */
.rm-service-card__price {
	display: flex;
	justify-content: center;
	gap: 1.6em;
	margin: 0 0 1em;
	padding-top: 0.9em;
	border-top: 1px solid var(--color_border, #e5e5e5);
}
.rm-service-card__price-item {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.rm-service-card__price-label {
	font-size: 0.78em;
	color: #666;
	margin-bottom: 0.2em;
}
.rm-service-card__price-item strong {
	font-size: 1.3em;
	font-weight: 700;
	color: var(--color_text);
	line-height: 1.2;
}
.rm-service-card__price-item strong small {
	font-size: 0.55em;
	font-weight: 700;
}
.rm-service-card__link {
	display: inline-block;
	color: var(--rm-link);
	text-decoration: underline;
	font-size: 0.9em;
}
@media (max-width: 767px) {
	.rm-service-grid {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   TOP：お支払い方法（銀行振込／クレジットカード払い の画像2枚）
   ※ [payment_methods] ショートコード出力。旧 .rm-payment-icons* は廃止。
========================================================= */
.rm-payment-methods {
	display: flex;
	justify-content: center;
	gap: 24px;
	margin: 1.4em auto 0;
	max-width: 560px;
}
.rm-payment-methods__item {
	flex: 1 1 0;
	max-width: 240px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.6em;
}
.rm-payment-methods__figure {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 4 / 3;
	background: #fafafa;
	border-radius: 8px;
	padding: 10px;
	box-sizing: border-box;
}
.rm-payment-methods__img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}
.rm-payment-methods__label {
	font-weight: 700;
	font-size: 0.95em;
	color: var(--color_text);
}
@media (max-width: 480px) {
	.rm-payment-methods {
		flex-direction: column;
		align-items: center;
		gap: 16px;
	}
	.rm-payment-methods__item {
		max-width: 260px;
		width: 100%;
	}
}

/* =========================================================
   TOP：問い合わせCTA（メール主役型）
   1パネル・PCは 2カラム（左＝見出し／右＝メール→電話→LINE）。
   3枚同サイズカードの旧 .rm-cta-banner* 構造は廃止。
========================================================= */
.rm-cta {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 40px;
	padding: 6px 1.2em;
}
.rm-cta__intro {
	flex: 1 1 42%;
	min-width: 0;
}
.rm-cta__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 0.5em;
	font-size: 0.85em;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--rm-nav-orange-text, #e06b00);
}
.rm-cta__eyebrow::before {
	content: "";
	width: 1.8em;
	height: 3px;
	border-radius: 2px;
	background: var(--color_main, #ff8128);
}
.rm-cta__title {
	margin: 0 0 0.45em;
	padding: 0;
	border-left: 0;                /* 共通 h2 の左ボーダー/背景装飾を打ち消す（オレンジは eyebrow のみに限定） */
	background: none;
	border-radius: 0;
	font-size: 1.45em;
	font-weight: 700;   /* 800→700（読込ウェイトへ統一。表示は不変） */
	line-height: 1.45;
	color: var(--rm-ink-strong, #2d2d2d);
}
.post_content h2.rm-cta__title {
	padding: 0;
	border-left: 0;
	background: none;
}
.post_content h2.rm-cta__title::before { content: none; }
.rm-cta__lead {
	margin: 0;
	font-size: 1em;
	color: #555;
}
.rm-cta__actions {
	flex: 1 1 46%;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.rm-cta__mail {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	min-height: 60px;
	padding: 0.85em 1.4em;
	border-radius: 10px;
	background: var(--rm-cta-red, #e94b3c);
	color: #fff !important;
	font-weight: 700;
	font-size: 1.05em;
	line-height: 1.4;
	white-space: nowrap;
	text-decoration: none !important;
	box-shadow: 0 4px 14px rgba(233, 75, 60, 0.22);
	transition: opacity 0.2s;
}
.rm-cta__mail:hover { opacity: 0.92; }
.rm-cta__mail .rm-ic { width: 1.3em; height: 1.3em; }
.rm-cta__sub {
	display: flex;
	align-items: center;
	gap: 12px 20px;
	flex-wrap: wrap;
}
.rm-cta__tel {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 0.55em;
	min-height: 44px;
	padding: 0.35em 0.2em;
	color: var(--color_text) !important;
	text-decoration: none !important;
}
.rm-cta__tel .rm-ic {
	width: 1.5em;
	height: 1.5em;
	flex: 0 0 auto;
	color: var(--rm-link, #5b8290);
}
.rm-cta__tel-body {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}
.rm-cta__tel-num {
	font-size: 1.5em;
	font-weight: 700;   /* 800→700（電話番号は太字を維持・読込ウェイトへ統一） */
	letter-spacing: 0.01em;
}
.rm-cta__tel-hours {
	font-size: 0.78em;
	font-weight: 400;   /* 500→400（営業時間＝補足） */
	color: #666;
}
.rm-cta__line {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	min-height: 44px;
	padding: 0.5em 1.2em;
	border-radius: 999px;
	background: #06c755;
	color: #fff !important;
	font-weight: 700;
	font-size: 0.9em;
	text-decoration: none !important;
	transition: opacity 0.2s;
}
.rm-cta__line:hover { opacity: 0.9; }
.rm-cta__line .rm-ic { width: 1.15em; height: 1.15em; }
@media (max-width: 899px) {
	.rm-cta {
		flex-direction: column;
		align-items: stretch;
		gap: 1.3em;
		text-align: center;
	}
	.rm-cta__eyebrow { align-self: center; }
	.rm-cta__sub {
		flex-direction: column;
		align-items: center;
	}
	.rm-cta__tel {
		flex: 0 0 auto;
		justify-content: center;
	}
}
@media (max-width: 480px) {
	/* 「メールでお問い合わせ・お申込み」：SPのみ文字と余白を微調整して1行を狙う。
	   万一折り返す場合も keep-all で「・」でのみ改行させ、単語の途中で切らない。 */
	.rm-cta__mail {
		font-size: 0.95em;
		padding: 0.85em 0.6em;
		gap: 0.4em;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: anywhere;
	}
	.rm-cta__mail .rm-ic { width: 1.1em; height: 1.1em; }
	.rm-cta__title { font-size: 1.3em; }
}

/* =========================================================
   お知らせ（TOPページ / アーカイブ共通）
========================================================= */
.rm-news {
	max-width: 800px;
	margin: 1.2em auto 0;
	background: #fff;
	border-radius: 8px;
	border: 1px solid var(--color_border, #e5e5e5);
}
.rm-news__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.rm-news__item + .rm-news__item {
	border-top: 1px solid var(--color_border, #e5e5e5);
}
.rm-news__link {
	display: flex;
	align-items: center;
	gap: 1.2em;
	padding: 1.1em 1.5em;
	text-decoration: none;
	color: inherit;
	transition: background-color 0.15s;
}
.rm-news__link:hover {
	background: var(--color_pale02, #f3f8fd);
}
.rm-news__link:hover .rm-news__title {
	color: var(--rm-nav-orange-text, #E06B00);
}
.rm-news__date {
	flex: 0 0 auto;
	color: #888;
	font-size: 0.85em;
	font-variant-numeric: tabular-nums;
}
.rm-news__title {
	flex: 1 1 auto;
	font-size: 1.05em;
	font-weight: 700;   /* 600→700（お知らせ見出し。表示は不変） */
	transition: color 0.15s;
}
.rm-news__link::after {
	content: "›";
	flex: 0 0 auto;
	color: #bbb;
	font-size: 1.4em;
	line-height: 1;
}
.rm-news__empty {
	text-align: center;
	padding: 2em 1em;
	color: #888;
	max-width: none;
	margin: 0;
}
.rm-news__more {
	text-align: center;
	margin-top: 1.2em;
}
.rm-news__more a {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	color: var(--rm-nav-orange-text, #E06B00);
	font-weight: 700;
	font-size: 0.98em;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
	transition: opacity 0.2s;
}
.rm-news__more a:hover {
	opacity: 0.75;
}
.rm-news__more a::after {
	content: "→";
}

/* FAQ「もっと見る」：オレンジのアウトラインボタン（お知らせより一段強い導線） */
.rm-faq__more {
	text-align: center;
	margin-top: 1.8em;
}
.rm-faq__more a {
	display: inline-block;
	padding: 0.75em 2.2em;
	border: 2px solid var(--rm-nav-orange, #FF8128);
	color: var(--rm-nav-orange-text, #E06B00);
	background: #fff;
	border-radius: 999px;
	font-weight: 700;
	font-size: 1em;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}
.rm-faq__more a:hover {
	background: var(--rm-nav-orange, #FF8128);
	color: #fff;
}
.rm-faq__more a::after {
	content: " →";
}
@media (max-width: 480px) {
	.rm-news__link {
		flex-direction: column;
		gap: 0.3em;
	}
}

/* お知らせアーカイブ・詳細記事：サムネイル無し時のグレー枠を非表示 */
.blog .p-postList__thumb:has(img[src=""]),
.blog .p-postList__thumb:not(:has(img)) {
	display: none;
}

/* =========================================================
   フッター：営業時間バー
========================================================= */
.w-beforeFooter {
	background: var(--color_pale02, #f3f8fd);
	padding: 14px 20px;
}
.rm-footer-hours {
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
	font-size: 0.9em;
	color: var(--color_text, #333);
}
.rm-footer-hours__label {
	font-weight: 700;
	margin-right: 0.5em;
}
.l-footer__nav {
	flex-wrap: wrap;
	row-gap: 0.5em;
}

/* =========================================================
   FAQ アコーディオン（swell-block-accordion をベースにブランド化）
========================================================= */
.swell-block-accordion {
	max-width: 900px;
	margin: 0 auto 2em;
}
.swell-block-accordion__item {
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5) !important;
	border-radius: 8px;
	margin-top: 0.8em !important;
	overflow: hidden;
}
.swell-block-accordion__title {
	background: var(--color_pale02, #f3f8fd) !important;
	color: var(--color_text) !important;
	padding: 1em 1.2em !important;
	font-weight: 700;
}
.swell-block-accordion__item.is-opened > .swell-block-accordion__title {
	background: var(--color_pale02, #f3f8fd) !important;
	color: var(--color_text) !important;
}
.swell-block-accordion__label {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
}
.swell-block-accordion__icon {
	color: var(--color_main);
}
.rm-faq__qa-badge {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.6em;
	height: 1.6em;
	border-radius: 50%;
	font-weight: 700;
	font-size: 0.9em;
}
.rm-faq__qa-badge--q {
	background: #fff;
	color: var(--color_main);
}
.swell-block-accordion__item.is-opened .rm-faq__qa-badge--q {
	background: var(--color_main);
	color: #fff;
	box-shadow: 0 0 0 1px #fff inset;
}
.rm-faq__qa-badge--a {
	background: var(--color_pale02, #f3f8fd);
	color: var(--color_faq_a);
	float: left;
	margin-right: 0.6em;
}
.swell-block-accordion__content:after {
	content: "";
	display: block;
	clear: both;
}
.swell-block-accordion__content p {
	margin: 0;
}

/* /qa ページ：カテゴリ目次 */
.rm-faq-page {
	max-width: 900px;
	margin: 0 auto;
}
.rm-faq-toc {
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 1.2em 1.4em;
	margin-bottom: 2em;
}
.rm-faq-toc__label {
	margin: 0 0 0.6em;
	font-weight: 700;
	color: var(--color_text);
}
.rm-faq-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em 1.4em;
}
.rm-faq-toc__list a {
	display: inline-block;
	padding: 0.4em 1.1em;
	background: #fff;
	border: 1px solid var(--color_border, #e0e0e0);
	border-radius: 999px;
	color: var(--color_text);
	font-size: 0.92em;
	font-weight: 500;
	text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
}
.rm-faq-toc__list a:hover {
	border-color: var(--rm-nav-orange, #FF8128);
	color: var(--rm-nav-orange-text, #E06B00);
	text-decoration: none;
}

/* =========================================================
   申込フロー（新：4ステップ／郵送契約のみ）
========================================================= */
.rm-flow-steps {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	max-width: 1100px;
	margin: 1.5em auto 0.8em;
	position: relative;
}
/* /flow/ は [apply_flow] が本文先頭に来るため、共通の
   「.post_content > *:first-child { margin-top: 0 }」でステップ番号バッジ
   （top:-14px）がページタイトルへ寄りすぎる。従来の上余白のみ維持する。 */
.page-id-38 .post_content > .rm-flow-steps:first-child {
	margin-top: 1.5em;
}
.rm-flow-step {
	position: relative;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 10px;
	padding: 1.8em 1em 1.4em;
	text-align: center;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}
.rm-flow-step:after {
	content: "";
	position: absolute;
	top: 50%;
	right: -19px;
	width: 16px;
	height: 16px;
	border-top: 3px solid var(--color_border, #ccc);
	border-right: 3px solid var(--color_border, #ccc);
	transform: translateY(-50%) rotate(45deg);
	background: #fff;
	z-index: 1;
}
.rm-flow-step:last-child:after {
	content: none;
}
.rm-flow-step__num {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--color_main);
	color: #fff;
	font-weight: 700;
	font-size: 0.9em;
	display: flex;
	align-items: center;
	justify-content: center;
}
.rm-flow-step__icon {
	font-size: 2em;
	margin: 0.4em 0 0.5em;
}
.rm-flow-step__text {
	font-size: 0.9em;
	font-weight: 700;
	line-height: 1.6;
}
@media (max-width: 959px) {
	.rm-flow-steps {
		grid-template-columns: repeat(2, 1fr);
	}
	.rm-flow-step:nth-child(2):after {
		content: none;
	}
	.rm-flow-step:nth-child(odd):after {
		top: auto;
		bottom: -19px;
		right: 50%;
		transform: translate(50%, 50%) rotate(135deg);
	}
}
@media (max-width: 599px) {
	.rm-flow-steps {
		grid-template-columns: 1fr;
	}
	.rm-flow-step:after {
		top: auto;
		bottom: -19px;
		right: 50%;
		left: auto;
		transform: translate(50%, 50%) rotate(135deg);
	}
}

/* =========================================================
   ご契約時に必要な本人確認書類（見本カード）
   ※画像領域・余白・背景を統一。詳細スタイルは末尾の追加分に集約。
========================================================= */
.rm-docs-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
	max-width: 720px;
	margin: 1.4em auto 0;
}
.rm-docs-card {
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 12px 12px 14px;
	text-align: center;
}
.rm-docs-card__text {
	margin: 0;
	font-size: 0.86em;
	color: #666;
	line-height: 1.6;
}
@media (max-width: 559px) {
	.rm-docs-grid {
		grid-template-columns: 1fr;
		max-width: 340px;
	}
}

/* =========================================================
   IC認証端末条件（NFC対応スマホ）注意ボックス
========================================================= */
.rm-nfc-box {
	max-width: 800px;
	margin: 1.5em auto 0;
	display: flex;
	gap: 1em;
	background: #fff8ec;
	border: 1px solid #f0c987;
	border-radius: 8px;
	padding: 1.4em 1.6em;
}
.rm-nfc-box__icon {
	flex: 0 0 auto;
	font-size: 2em;
}
.rm-nfc-box__title {
	margin: 0 0 0.4em;
	font-weight: 700;
	color: var(--color_text);
}
.rm-nfc-box__desc {
	margin: 0 0 0.5em;
}
.rm-nfc-box__list {
	margin: 0 0 0.6em;
	padding-left: 1.4em;
	font-weight: 700;
}
.rm-nfc-box__note {
	margin: 0;
	font-size: 0.85em;
	color: #777;
}
@media (max-width: 599px) {
	.rm-nfc-box {
		flex-direction: column;
		text-align: center;
	}
}

/* =========================================================
   本文装飾ユーティリティ（全ページ共通・1セクション1〜2箇所を目安に使用）
========================================================= */

/* 補足情報：薄い背景ボックス */
.rm-note-box {
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 0.7em 1.1em;
	margin: 1em 0;
	font-size: 0.95em;
}
.rm-note-box p:first-child { margin-top: 0; }
.rm-note-box p:last-child { margin-bottom: 0; }

/* 規約系ページ：前のページに戻るリンク（お問い合わせ・申込CTAより控えめな二次ボタン） */
.rm-back-link {
	text-align: center;
	margin: 1.6em 0;
}
.rm-back-link__btn {
	display: inline-block;
	padding: 0.6em 1.5em;
	font-size: 0.92em;
	color: #666;
	background: #f4f4f4;
	border: 1px solid #ddd;
	border-radius: 5px;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s;
}
.rm-back-link__btn:hover {
	background: #eaeaea;
	border-color: #ccc;
	text-decoration: none;
}
@media (max-width: 599px) {
	.rm-back-link__btn {
		display: block;
		width: 100%;
		max-width: 320px;
		margin: 0 auto;
		padding: 0.75em 1em;
	}
}

/* 注意事項：専用の注意ボックス（NFCボックスと同系統） */
.rm-notice-box {
	display: flex;
	gap: 0.7em;
	background: #fff8ec;
	border: 1px solid #f0c987;
	border-radius: 8px;
	padding: 0.8em 1.1em;
	margin: 1em 0;
}
.rm-notice-box__icon {
	flex: 0 0 auto;
	font-size: 1.4em;
	line-height: 1.2;
}
.rm-notice-box__body { flex: 1 1 auto; }
.rm-notice-box__body p:first-child { margin-top: 0; }
.rm-notice-box__body p:last-child { margin-bottom: 0; }
.rm-notice-box strong { color: #a86a00; }

/* 重要な一文の軽い強調（背景マーカー風） */
.rm-highlight {
	background: linear-gradient(transparent 60%, var(--color_pale02, #f3f8fd) 60%);
	font-weight: 700;
}

/* 「こんな方におすすめ」等：アイコン付きの軽いカード群 */
.rm-recommend-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 1em 0;
}
.rm-recommend-card {
	flex: 1 1 220px;
	display: flex;
	align-items: flex-start;
	gap: 0.7em;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 0.7em 0.9em;
}
.rm-recommend-card__icon {
	flex: 0 0 auto;
	font-size: 1.3em;
	line-height: 1.3;
}
/* wpautop が要素間に差し込む <br> がフレックス枠を消費するのを防ぐ */
.rm-recommend-grid > br,
.rm-related br {
	display: none;
}
.rm-recommend-card__text {
	font-size: 0.92em;
	line-height: 1.6;
}

/* 数字・料金・要点を通常本文から視覚的に分離する小さなポイントボックス */
.rm-point-box {
	border-left: 4px solid var(--color_main);
	background: #fafafa;
	padding: 0.9em 1.1em;
	margin: 1.2em 0;
	font-size: 0.95em;
}
.rm-point-box strong {
	color: var(--color_main);
}

/* 長文をカード単位に区切って読みやすくする（TOP後半など） */
.rm-info-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin: 1.6em 0 0;
}
.rm-info-card {
	flex: 1 1 280px;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 1.4em 1.3em;
}
.rm-info-card__icon {
	font-size: 1.6em;
	margin-bottom: 0.4em;
}
.rm-info-card__title {
	margin: 0 0 0.5em;
	color: var(--color_text);
}
.rm-info-card__text {
	margin: 0;
	font-size: 0.92em;
	line-height: 1.7;
}
@media (max-width: 599px) {
	.rm-info-card {
		flex: 1 1 100%;
	}
}

/* =========================================================
   /dousa/ ：動作確認機種の検索・絞り込み一覧
========================================================= */
.rm-devcheck-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: center;
	margin: 1.2em 0 1.6em;
}
.rm-devcheck-search {
	flex: 1 1 240px;
	padding: 0.6em 1em;
	border: 1px solid var(--color_border, #ccc);
	border-radius: 6px;
	font-size: 16px;
}
.rm-devcheck-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.rm-devcheck-filter {
	padding: 0.5em 1.1em;
	border: 1px solid var(--color_border, #ccc);
	border-radius: 999px;
	background: #fff;
	color: var(--color_text);
	font-size: 0.9em;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}
.rm-devcheck-filter.is-active {
	background: var(--color_main);
	border-color: var(--color_main);
	color: #fff;
}
.rm-devcheck-group {
	margin: 1.8em 0;
}
.rm-devcheck-group__title {
	margin: 0 0 0.4em;
	font-size: 1.05em;
	color: var(--color_text);
	border-left: 4px solid var(--color_main);
	padding-left: 0.6em;
}
.rm-devcheck-group__note {
	margin: 0 0 0.9em;
	font-size: 0.85em;
	color: #666;
}
.rm-devcheck-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
.rm-devcheck-card {
	padding: 0.7em 0.9em;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 6px;
	font-size: 0.92em;
	line-height: 1.5;
	text-align: center;
}
.rm-devcheck-empty {
	text-align: center;
	padding: 1.3em 1.2em;
	color: #666;
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	font-size: 0.92em;
}
@media (max-width: 767px) {
	.rm-devcheck-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 480px) {
	.rm-devcheck-grid {
		grid-template-columns: 1fr;
	}
	.rm-devcheck-card {
		text-align: left;
	}
}

/* =========================================================
   アップロード済みビジュアル画像 01〜17 の表示調整
   （画像はビジュアルのみ・見出し/説明文はHTMLのまま。
    縦横比は変形しない＝object-fit不使用、height:auto）
========================================================= */
/* 01〜03：TOP「選ばれる理由」カード上部
   元画像の比率が01/02=16:9・03=4:3で不揃いなため、表示上のみ16:9に統一する
   （画像ファイル自体は無加工。object-fit:coverによるトリミング表示のみ） */
.rm-feature-card__img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	object-fit: cover;
	border-radius: 8px;
	margin: 0 0 0.9em;
}
/* 07〜09：TOP「レンタル携帯・スマホとは」カード上部（旧絵文字アイコンの置き換え） */
.rm-info-card__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
	margin: 0 0 0.8em;
}
/* 11〜14：/flow/「お申し込みの流れ（詳細）」各工程 */
.rm-flow-img {
	display: block;
	width: 100%;
	max-width: 340px;
	height: auto;
	border-radius: 8px;
	margin: 0 auto 0.9em;
}
/* 15〜17：/sim/・/sales/・/wi-fi/ 冒頭のサービス説明ビジュアル（旧説明画像の置き換え） */
/* SWELL本体の「.post_content figure img{max-width:100%}」より詳細度を上げる */
.post_content figure img.rm-page-visual {
	display: block;
	width: 100%;
	max-width: 620px;
	height: auto;
	margin: 1.5em auto;
	border-radius: 8px;
}

/* =========================================================
   /sim/・/wi-fi/ 冒頭：見出し＋説明（左）とサービス画像（右）の2カラム。
   /sales の .rm-sales-hero と同じ考え方。PCで画像が横に付き、初期表示が締まる。
   SPは1カラム（自然な縦積み）。
========================================================= */
.rm-intro-hero {
	display: flex;
	align-items: center;
	gap: 40px;
	margin: 0 0 1.4em;
}
.rm-intro-hero__body {
	flex: 1 1 50%;
	min-width: 0;
}
.rm-intro-hero__body > *:first-child {
	margin-top: 0;
}
.rm-intro-hero__visual {
	flex: 1 1 50%;
	min-width: 0;
	margin: 0;
}
.rm-intro-hero__visual img.rm-page-visual {
	margin: 0;
	max-width: 100%;
}
@media (max-width: 767px) {
	.rm-intro-hero {
		flex-direction: column;
		gap: 1.2em;
	}
	.rm-intro-hero__body,
	.rm-intro-hero__visual {
		flex: 1 1 auto;
		width: 100%;
	}
}

/* =========================================================
   関連ページ（各ページ末尾の内部リンク導線）
========================================================= */
.rm-related {
	max-width: 1100px;
	margin: 2.4em auto 0;
	padding: 1em 1.2em;
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	font-size: 0.95em;
	line-height: 2;
}
.rm-related__label {
	font-weight: 700;
	margin-right: 0.5em;
}
.rm-related a {
	white-space: nowrap;
	display: inline-block;
}
.rm-related a + a::before {
	content: "／";
	margin: 0 0.5em;
	color: var(--color_border, #ccc);
}

/* 機種詳細（limit_post）：本文リード文 */
.rm-product__lead {
	max-width: 1100px;
	margin: 0 auto 1.2em;
	line-height: 1.8;
}

/* .rm-recommend-card をリンク（<a>）として使う場合の見た目 */
a.rm-recommend-card {
	text-decoration: none;
	color: inherit;
	transition: border-color 0.2s, box-shadow 0.2s;
}
a.rm-recommend-card:hover {
	border-color: var(--color_main);
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.06);
}
a.rm-recommend-card:focus-visible {
	outline: 3px solid var(--color_main);
	outline-offset: 2px;
}

/* =========================================================
   2026-09-09 デザイン改善 追加分
   ・装飾絵文字を、サイト共通の単色ラインアイコン（CSS mask）へ置き換え
   ・縦積みになっていた文章／表を、カード・薄い背景ブロック・目次・注意枠で整理
   ・オレンジ（--color_main）は見出しアクセント・CTAに限定し、
     本文内の補助アイコンは中間色（--rm-link）／注意色（琥珀）で統一
========================================================= */

/* ---- 共通ラインアイコン（currentColor・24pxビュー・2px stroke） ---- */
:root {
	--rm-ic-device: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='2' width='14' height='20' rx='2'/%3E%3Cline x1='12' y1='18' x2='12.01' y2='18'/%3E%3C/svg%3E");
	--rm-ic-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
	--rm-ic-wifi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.55a11 11 0 0 1 14.08 0'/%3E%3Cpath d='M1.42 9a16 16 0 0 1 21.16 0'/%3E%3Cpath d='M8.53 16.11a6 6 0 0 1 6.95 0'/%3E%3Cline x1='12' y1='20' x2='12.01' y2='20'/%3E%3C/svg%3E");
	--rm-ic-laptop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='1'/%3E%3Cline x1='1' y1='20' x2='23' y2='20'/%3E%3C/svg%3E");
	--rm-ic-box: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 9.4 7.5 4.21'/%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpath d='m3.27 6.96 8.73 5.05 8.73-5.05'/%3E%3Cline x1='12' y1='22.08' x2='12' y2='12'/%3E%3C/svg%3E");
	--rm-ic-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
	--rm-ic-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cline x1='1' y1='10' x2='23' y2='10'/%3E%3C/svg%3E");
	--rm-ic-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--rm-ic-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E");
	--rm-ic-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
	--rm-ic-chat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z'/%3E%3C/svg%3E");
	--rm-ic-doc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E");
}
.rm-ic {
	display: inline-block;
	flex: 0 0 auto;
	width: 1em;
	height: 1em;
	background-color: currentColor;
	-webkit-mask: var(--_ic) center / contain no-repeat;
	        mask: var(--_ic) center / contain no-repeat;
	vertical-align: -0.14em;
}
.rm-ic--device { --_ic: var(--rm-ic-device); }
.rm-ic--check  { --_ic: var(--rm-ic-check); }
.rm-ic--wifi   { --_ic: var(--rm-ic-wifi); }
.rm-ic--laptop { --_ic: var(--rm-ic-laptop); }
.rm-ic--box    { --_ic: var(--rm-ic-box); }
.rm-ic--alert  { --_ic: var(--rm-ic-alert); }
.rm-ic--card   { --_ic: var(--rm-ic-card); }
.rm-ic--phone  { --_ic: var(--rm-ic-phone); }
.rm-ic--mail   { --_ic: var(--rm-ic-mail); }
.rm-ic--user   { --_ic: var(--rm-ic-user); }
.rm-ic--doc    { --_ic: var(--rm-ic-doc); }
.rm-ic--chat   { --_ic: var(--rm-ic-chat); }

/* 「こんな方におすすめ」カードのアイコン（絵文字→ラインアイコン。中間色で統一） */
.rm-recommend-card__icon {
	color: var(--rm-link, #5b8290);
	font-size: 1.4em;
	line-height: 1.3;
}
.rm-recommend-card__icon.rm-ic {
	margin-top: 0.05em;
}

/* 注意枠のアイコン（絵文字→ラインアイコン。琥珀色でカードの枠色と揃える） */
.rm-notice-box__icon.rm-ic,
.rm-nfc-box__icon.rm-ic {
	color: #c07f1c;
}

/* スマホ固定ヘッダーの電話／メール導線アイコン */
.rm-sp-header-cta__icon.rm-ic {
	font-size: 1.15em;
}
/* TOP：個人向け案内バーの人物アイコン */
.rm-audience-banner__icon.rm-ic {
	color: #7a7a7a;
	font-size: 1.25em;
}
/* ---- 本人確認書類カード（見本画像2枚。画像領域を統一・余白を圧縮） ---- */
.rm-docs-card__figure {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	aspect-ratio: 1.5 / 1;
	background: #fafafa;
	border-radius: 6px;
	overflow: hidden;
	margin: 0 0 0.55em;
}
.rm-docs-card__img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}
.rm-docs-card__sample {
	position: absolute;
	top: 6px;
	right: 6px;
	padding: 0.12em 0.55em;
	border-radius: 4px;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-size: 0.7em;
	font-weight: 700;
	letter-spacing: 0.06em;
}
.rm-docs-card__label {
	margin: 0 0 0.2em;
	padding: 0;
	border-left: 0;
	font-size: 1.06em;
	font-weight: 700;
	text-align: center;
	color: var(--color_text);
}
.post_content h4.rm-docs-card__label { padding-left: 0; border-left: 0; }

/* ---- チェックリスト（「このような方におすすめ」等の箇条書き） ---- */
.rm-checklist {
	list-style: none;
	margin: 1.2em 0;
	padding: 0;
	max-width: 720px;
}
.rm-checklist li {
	position: relative;
	padding: 0.6em 0 0.6em 2em;
	line-height: 1.8;
}
.rm-checklist li + li {
	border-top: 1px solid var(--color_border, #ececec);
}
.rm-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.7em;
	width: 1.2em;
	height: 1.2em;
	background-color: var(--rm-nav-green, #3CAF29);
	-webkit-mask: var(--rm-ic-check) center / contain no-repeat;
	        mask: var(--rm-ic-check) center / contain no-repeat;
}

/* ---- ○×の対比ブロック（/pay/ の利用可否など） ---- */
.rm-yesno {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 1.2em 0;
	max-width: 720px;
}
.rm-yesno__col {
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 1em 1.1em 1.1em;
}
.rm-yesno__col--ok  { border-top: 3px solid var(--rm-nav-green, #3CAF29); }
.rm-yesno__col--ng  { border-top: 3px solid #b9c0c5; }
.rm-yesno__head {
	display: flex;
	align-items: center;
	gap: 0.45em;
	margin: 0 0 0.5em;
	font-weight: 700;
	color: var(--color_text);
}
.rm-yesno__head::before {
	content: "";
	width: 1.2em;
	height: 1.2em;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: var(--_ic) center / contain no-repeat;
	        mask: var(--_ic) center / contain no-repeat;
}
.rm-yesno__col--ok .rm-yesno__head  { color: #2b8a3e; --_ic: var(--rm-ic-check); }
.rm-yesno__col--ng .rm-yesno__head  { color: #6b7075; --_ic: var(--rm-ic-alert); }
.rm-yesno__col ul {
	margin: 0;
	padding-left: 1.2em;
	line-height: 1.9;
}
@media (max-width: 559px) {
	.rm-yesno { grid-template-columns: 1fr; }
}

/* ---- スペックの横並びストリップ（/wi-fi/ 冒頭の主要数値） ---- */
.rm-spec-strip {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 10px;
	margin: 1.2em 0 0;
}
.rm-spec-strip__item {
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 0.8em 0.4em;
	text-align: center;
}
.rm-spec-strip__val {
	display: block;
	font-weight: 700;
	font-size: 1.05em;
	color: var(--color_text);
	line-height: 1.3;
}
.rm-spec-strip__key {
	display: block;
	margin-top: 0.3em;
	font-size: 0.75em;
	color: #777;
}
@media (max-width: 767px) {
	.rm-spec-strip { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 400px) {
	.rm-spec-strip { grid-template-columns: repeat(2, 1fr); }
}

/* ---- 注意事項リスト（見出し＋本文をカード単位に分割。/notice/ など） ---- */
.rm-caution-list {
	margin: 1em 0 1.6em;
}
.rm-caution-list__item {
	background: #fafafa;
	border: 1px solid var(--color_border, #ececec);
	border-left: 4px solid var(--color_main, #ff8128);
	border-radius: 0 8px 8px 0;
	padding: 0.9em 1.1em;
	margin: 0 0 0.8em;
}
.rm-caution-list__item p { margin: 0; }
.rm-caution-list__head {
	font-weight: 700;
	color: var(--color_text);
	margin-bottom: 0.3em !important;
	line-height: 1.6;
}
.rm-caution-list__item p + p { margin-top: 0.35em; }

/* ---- 規約・方針ページの見出し目次（.rm-faq-toc とは別クラス） ---- */
.rm-doc-toc {
	background: var(--color_pale02, #f3f8fd);
	border-radius: 8px;
	padding: 1.1em 1.3em;
	margin: 0 0 2em;
}
.rm-doc-toc__label {
	margin: 0 0 0.6em;
	font-weight: 700;
	color: var(--color_text);
}
.rm-doc-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 0.8em;
}
.rm-doc-toc__list a {
	display: inline-block;
	padding: 0.35em 1em;
	background: #fff;
	border: 1px solid var(--color_border, #e0e0e0);
	border-radius: 999px;
	color: var(--color_text);
	font-size: 0.9em;
	text-decoration: none;
	transition: border-color 0.15s, color 0.15s;
}
.rm-doc-toc__list a:hover {
	border-color: var(--rm-nav-orange, #ff8128);
	color: var(--rm-nav-orange-text, #e06b00);
}

/* ---- ボタン2本の横並び（/dousa/・機種詳細の末尾導線など） ---- */
.rm-linkpair {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	justify-content: center;
	margin: 1.4em 0;
}
.rm-linkpair .swell-block-button { margin: 0; }

/* 機種詳細ページ：一覧へ戻る導線 */
.rm-product__back {
	text-align: center;
	margin: 2em 0 0;
}
.rm-product__back a {
	color: var(--rm-link, #5b8290);
	text-decoration: none;
	font-weight: 700;   /* 600→700（読込ウェイトへ統一。表示は不変） */
}
.rm-product__back a:hover { text-decoration: underline; }

/* /pay/ のお支払いタイミング図（月額の前払いイメージ） */
.rm-paytiming {
	max-width: 720px;
	margin: 1.2em 0;
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	padding: 1em 1.2em;
	line-height: 1.9;
}
.rm-paytiming dt {
	font-weight: 700;
	color: var(--color_main, #ff8128);
}
.rm-paytiming dd {
	margin: 0 0 0.8em;
	font-size: 0.95em;
}
.rm-paytiming dd:last-child { margin-bottom: 0; }


/* =========================================================
   2026-09-09 回帰対応 追加分（デザイン改善の指摘反映）
   ・/flow/ の手順アイコンを共通ラインアイコンへ
   ・/dousa/ の副ボタンの配色（白地・青灰文字/枠・十分なコントラスト）
   ・下層ページ上部余白の共通調整（PCのみ）
   ・本文タイポグラフィの役割整理
   ・PC子メニュー／SP子メニュー／フッターの整え
========================================================= */

:root {
	--rm-ic-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
	--rm-ink-strong: #2d2d2d;   /* 見出し・結論 */
	--rm-ink-body:   #333;      /* 本文 */
	--rm-ink-weak:   #667;      /* 補足 */
}

/* ---- /flow/ 手順アイコン（共通ラインアイコンに統一。色・線幅を /sales/・/pay/ と揃える） ---- */
.rm-flow-step__icon {
	color: var(--rm-link, #5b8290);
	line-height: 1;
	margin: 0.2em 0 0.5em;
}
.rm-flow-step__icon .rm-ic {
	width: 34px;
	height: 34px;
}

/* ---- /dousa/・機種詳細などの副ボタン（rm-linkpair 内） ---- */
.rm-linkpair .swell-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.1em;
	padding: 0.7em 1.9em;
	border-radius: 999px;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none !important;
	box-sizing: border-box;
	white-space: normal;
	text-align: center;
}
.rm-linkpair .is-style-btn_solid .swell-block-button__link,
.rm-linkpair .swell-block-button:not(.is-style-btn_outline) .swell-block-button__link {
	background: var(--color_main, #ff8128);
	color: #fff !important;
	border: 2px solid var(--color_main, #ff8128);
}
.rm-linkpair .is-style-btn_outline .swell-block-button__link {
	background: #fff;
	color: #3f636d !important;              /* 青灰系・白地で 4.5:1 以上 */
	border: 2px solid #6d8f99;
	transition: background-color 0.2s, border-color 0.2s;
}
.rm-linkpair .is-style-btn_outline .swell-block-button__link:hover {
	background: #eef3f5;
	border-color: #5b8290;
	color: #34565f !important;
}
@media (max-width: 559px) {
	.rm-linkpair { flex-direction: column; align-items: stretch; }
	.rm-linkpair .swell-block-button__link { width: 100%; }
}

/* ---- 下層ページ上部余白の共通調整（PCのみ・「少し詰める」／現在の余白感は保つ） ----
   主因は SWELL 標準の .post_content { margin-top: 4rem }。PCのみ 48px へ、
   さらに本文先頭の padding-top:32px ブロックを 24px へ（合計 96px → 72px）。 */
@media (min-width: 960px) {
	.l-article .post_content { margin-top: 48px; }
	.l-article .c-pageTitle {
		padding-top: 0.45em;
		padding-bottom: 0.45em;
		margin-bottom: 0.25em;
	}
	.l-article .post_content > .rm-content-top-space { padding-top: 24px; }
	.l-article .post_content > .rm-sales-intro:first-child { padding-top: 24px; }
	.l-article .post_content > div[style*="padding:32px 20px"]:first-child { padding-top: 24px !important; }
	.l-article .post_content > .rm-top-h1:first-child { padding-top: 24px; }
}

/* ---- 本文タイポグラフィの役割整理（.post_content 内に限定。フォントファミリーは不変） ---- */
.l-article .post_content {
	color: var(--rm-ink-body);
}
.l-article .post_content p {
	font-weight: 400;   /* 500→400（本文＝読込ウェイトへ統一） */
	line-height: 1.8;
}
@media (min-width: 768px) {
	.l-article .post_content p { line-height: 1.85; }
}
/* 補足：小さめ・弱い色・太字にしない */
.l-article .post_content small,
.l-article .post_content .rm-note-box,
.l-article .post_content figcaption,
.l-article .post_content .wp-element-caption {
	font-weight: 400;   /* 500→400（補足・注記＝読込ウェイトへ統一） */
	color: var(--rm-ink-weak);
}
.l-article .post_content small { font-size: 0.86em; }
/* 下層 H2 / H3：結論を担う見出しははっきり太く */
.post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	font-weight: 700;   /* 800→700（下層H2＝読込ウェイトへ統一。表示は不変） */
	color: var(--rm-ink-strong);
}
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	font-weight: 700;
	color: var(--rm-ink-strong);
}
/* カード見出しの統一（17〜18px 相当・700） */
.rm-feature-card h4,
.rm-info-card__title,
.rm-service-card__title,
.rm-devcheck-group__title {
	font-weight: 700;
}
/* 料金・主要数値は強め（800→700：読込ウェイトへ統一。表示は不変） */
.rm-price-sim__result-item strong,
.rm-service-card__price-item strong,
.rm-spec-strip__val,
.rm-product__price strong,
.rm-selection__value {
	font-weight: 700;
}
/* すべて太字にしない：本文中の <strong> は 700 どまり・色は本文色 */
.l-article .post_content p strong,
.l-article .post_content li strong {
	font-weight: 700;
	color: var(--rm-ink-body);
}

/* ---- PC グローバルナビ：子メニューの改善 ---- */
@media (min-width: 960px) {
	.c-gnav .sub-menu li > a {
		display: flex;
		align-items: center;
		gap: 0.55em;
		min-height: 44px;
		box-sizing: border-box;
	}
	.c-gnav .sub-menu li > a::before {
		content: "";
		display: inline-block !important;
		flex: 0 0 auto;
		width: 0.66em;
		height: 0.66em;
		background: none;
		background-color: currentColor;
		-webkit-mask: var(--rm-ic-chevron) center / contain no-repeat;
		        mask: var(--rm-ic-chevron) center / contain no-repeat;
		opacity: 0.5;
	}
	.c-gnav .sub-menu .current-menu-item > a,
	.c-gnav .sub-menu .current_page_item > a {
		color: var(--rm-nav-orange-text, #e06b00);
		font-weight: 700;
		background-color: rgba(255, 129, 40, 0.07);
	}
	.c-gnav .sub-menu .current-menu-item > a::before,
	.c-gnav .sub-menu .current_page_item > a::before {
		opacity: 1;
	}
}

/* ---- SP ドロワー：子メニューのアコーディオン ---- */
.c-spnav .rm-spnav-parent {
	position: relative;
}
.c-spnav .rm-spnav-parent > a {
	padding-right: 56px;      /* トグルボタンの領域を確保 */
}
.c-spnav .rm-spnav-toggle {
	position: absolute;
	top: 0;
	right: 0;
	width: 52px;
	min-height: 48px;
	height: 52px;      /* 親項目行と同じ高さ。展開時にボタンが子リンクへ被らないようにする */
	padding: 0;
	border: 0;
	border-left: 1px solid var(--color_border, #eee);
	background: transparent;
	cursor: pointer;
	appearance: none;
}
.c-spnav .rm-spnav-toggle::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	margin: -7px 0 0 -5px;
	border-right: 2px solid #666;
	border-bottom: 2px solid #666;
	transform: rotate(45deg);
	transition: transform 0.2s, margin 0.2s;
}
.c-spnav .rm-spnav-parent.is-open > .rm-spnav-toggle::before {
	margin-top: -2px;
	transform: rotate(-135deg);
}
.c-spnav .rm-spnav-parent > .sub-menu {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.25s ease;
}
.c-spnav .rm-spnav-parent.is-open > .sub-menu {
	max-height: 1000px;
}
/* JS無効時のフォールバック：開いた状態で表示 */
.no-js .c-spnav .sub-menu,
.c-spnav:not([data-rm-accordion]) .sub-menu {
	max-height: none;
}
.c-spnav .sub-menu a {
	min-height: 44px;
	display: flex;
	align-items: center;
	padding-left: 1.8em !important;
	border-bottom: 1px solid var(--color_border, #f0f0f0);
	white-space: normal;
	word-break: break-word;
}
.c-spnav .sub-menu {
	background: #fafafa;
}

/* ---- フッター：本文の新デザインに合わせる ---- */
.l-footer {
	background: var(--color_pale02, #f3f8fd);
}
.l-footer__widgetArea {
	padding-top: 8px;
}
.l-footer .w-footer.-col3 {
	gap: 28px;
}
.l-footer .c-widget__title.-footer {
	display: flex;
	align-items: center;
	gap: 0.5em;
	font-size: 1em;
	font-weight: 700;
	color: var(--rm-ink-strong);
	margin-bottom: 0.7em;
	padding-bottom: 0.4em;
	border-bottom: 2px solid var(--color_main, #ff8128);
}
.rm-footer-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.rm-footer-list li + li {
	border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.rm-footer-list a {
	display: flex;
	align-items: center;
	gap: 0.5em;
	min-height: 40px;
	padding: 0.35em 0;
	color: var(--rm-ink-body);
	text-decoration: none;
	font-size: 0.95em;
	transition: color 0.15s;
}
.rm-footer-list a::before {
	content: "";
	flex: 0 0 auto;
	width: 0.6em;
	height: 0.6em;
	background-color: currentColor;
	-webkit-mask: var(--rm-ic-chevron) center / contain no-repeat;
	        mask: var(--rm-ic-chevron) center / contain no-repeat;
	opacity: 0.45;
}
.rm-footer-list a:hover {
	color: var(--rm-nav-orange-text, #e06b00);
}
.rm-footer-list a:hover::before { opacity: 0.9; }
.rm-footer-list__tel {
	font-weight: 700;
}
/* 規約リンク行：余白と折返しを整理 */
.l-footer__foot {
	margin-top: 8px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	padding-top: 14px;
}
.l-footer__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em 1.4em;
	justify-content: center;
	margin: 0 auto 0.8em;
	padding: 0;
	list-style: none;
}
.l-footer__nav a {
	font-size: 0.86em;
	color: var(--rm-ink-weak);
	text-decoration: none;
}
.l-footer__nav a:hover {
	color: var(--rm-nav-orange-text, #e06b00);
	text-decoration: underline;
}
.l-footer .copyright {
	text-align: center;
	font-size: 0.8em;
	color: #8a8f96;
	margin: 0;
}
@media (max-width: 767px) {
	.l-footer .w-footer.-col3 {
		gap: 4px;
	}
	.l-footer .w-footer__box {
		border-bottom: 1px solid rgba(0, 0, 0, 0.07);
		padding-bottom: 0.6em;
		margin-bottom: 0.6em;
	}
	.l-footer .c-widget__title.-footer {
		margin-bottom: 0.4em;
	}
	.rm-footer-list a { min-height: 44px; }
	.l-footer__nav {
		gap: 0.3em 1em;
	}
}


/* TOP本文：H1直下の補足文（変更前の「H1のみ」の構図を大きく崩さない小さな一文） */
.rm-top-lead {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 20px;
	text-align: center;
	font-size: 0.9em;
	font-weight: 400;
	line-height: 1.4;
	color: var(--rm-ink-body, #333);
}
@media (max-width: 599px) {
	.rm-top-lead {
		padding: 0 8px;
		font-size: 0.78em;
	}
}


/* =========================================================
   ICチップ本人確認の方法（/flow/ic-verification）専用
   モバイルファーストで再設計（2026-09-11）。
   ・基本ルールはスマホ幅を基準に定義し、min-width で広い画面へ拡張する
     （PC向けに作ってから縮小する書き方はしない）。
   ・過剰な枠囲み・影・グラデーションは使わず、余白・見出し・番号で階層を作る。
   ・共通ラインアイコンに lock / download を追加（サイト全体で再利用可）。
========================================================= */

/* 追加ラインアイコン（既存 --rm-ic-* と同一仕様：24px・2px stroke・currentColor） */
:root {
	--rm-ic-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
	--rm-ic-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}
.rm-ic--lock     { --_ic: var(--rm-ic-lock); }
.rm-ic--download { --_ic: var(--rm-ic-download); }

/* 本文の可読幅を制限（スマホはそのまま、PCも広げすぎない一本のカラム） */
.rm-icv { max-width: 720px; margin: 0 auto; }

/* ページ内リンク（/flow から本ページへの控えめな導線・本ページ内の補助導線） */
.rm-icv-morelink {
	margin: 0.7em 0 0;
	font-size: 0.95em;
	line-height: 1.6;
}
.rm-icv-morelink a {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	min-height: 44px;
	color: var(--rm-link, #5b8290);
	font-weight: 700;
	text-decoration: none;
}
.rm-icv-morelink a:hover { text-decoration: underline; }
.rm-icv-morelink a::after {
	content: "";
	width: 0.7em;
	height: 0.7em;
	background-color: currentColor;
	-webkit-mask: var(--rm-ic-chevron) center / contain no-repeat;
	        mask: var(--rm-ic-chevron) center / contain no-repeat;
}

/* ---- ページ冒頭：必要なもの（簡易表示。詳細は第1章） ---- */
.rm-icv-need {
	list-style: none;
	margin: 1.1em 0 0;
	padding: 0;
}
.rm-icv-need__item {
	display: flex;
	align-items: center;
	gap: 0.7em;
	min-height: 44px;
	padding: 0.5em 0;
	font-weight: 700;
	font-size: 0.98em;
	color: var(--rm-ink-strong, #2d2d2d);
}
.rm-icv-need__item + .rm-icv-need__item { border-top: 1px solid var(--color_border, #ececec); }
.rm-icv-need .rm-ic { flex: 0 0 auto; color: var(--color_main, #ff8128); font-size: 1.2em; }

/* ---- ページ冒頭：01〜05 の目次（タグの羅列ではなく縦の操作ガイド） ---- */
.rm-icv-toc {
	list-style: none;
	margin: 1.3em 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 10px;
	overflow: hidden;
}
.rm-icv-toc li + li { border-top: 1px solid var(--color_border, #ececec); }
.rm-icv-toc a {
	display: flex;
	align-items: center;
	gap: 0.9em;
	min-height: 44px;
	padding: 0.85em 1em;
	background: #fff;
	color: var(--rm-ink-body, #333);
	font-weight: 700;
	text-decoration: none;
}
.rm-icv-toc a:hover { background: var(--color_pale02, #f3f8fd); }
.rm-icv-toc__num {
	flex: 0 0 auto;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--color_main, #ff8128);
	color: #fff;
	font-size: 0.72em;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media (min-width: 768px) {
	.rm-icv-toc { flex-direction: row; flex-wrap: wrap; border: none; border-radius: 0; gap: 10px; }
	.rm-icv-toc li { flex: 1 1 auto; }
	.rm-icv-toc li + li { border-top: none; }
	.rm-icv-toc a { border: 1px solid var(--color_border, #e5e5e5); border-radius: 8px; justify-content: center; }
}

/* ---- 「うまくいかないとき」章内の小見出し（H3を増やさず太字リードで階層化） ---- */
.rm-icv-lead {
	font-weight: 700;
	font-size: 1.02em;
	margin: 1.8em 0 0.6em;
	color: var(--rm-ink-strong, #2d2d2d);
}

/* ---- 対応OS・ブラウザ（横スクロールを避けるため table ではなく dl で組む） ---- */
.rm-icv-env {
	margin: 1em 0;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 8px;
	overflow: hidden;
}
.rm-icv-env > div {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2em 1em;
	padding: 0.75em 1.1em;
}
.rm-icv-env > div + div { border-top: 1px solid var(--color_border, #e5e5e5); }
.rm-icv-env dt {
	flex: 0 0 auto;
	font-weight: 700;
	color: var(--rm-ink-strong, #2d2d2d);
}
.rm-icv-env dd { margin: 0; color: var(--rm-ink-body, #333); }

/* ---- 専用アプリ カード：スマホは縦積み中央寄せ、PCは横並び ---- */
.rm-icv-app {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.9em;
	background: var(--color_pale02, #f3f8fd);
	border-radius: 12px;
	padding: 1.6em 1.3em;
	margin: 1.2em 0;
}
.rm-icv-app__icon {
	width: 72px;
	height: 72px;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--color_border, #e5e5e5);
	background: #fff;
}
.rm-icv-app__icon img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rm-icv-app__body { display: flex; flex-direction: column; gap: 0.2em; }
.rm-icv-app__name { margin: 0; font-weight: 700; font-size: 1.05em; color: var(--rm-ink-strong, #2d2d2d); }
.rm-icv-app__desc { margin: 0; font-size: 0.9em; color: var(--rm-ink-weak, #667); }
.rm-icv-app__badges {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	max-width: 280px;
}
.rm-icv-app__badges a { display: block; min-height: 44px; }
.rm-icv-app__badges img { width: 100%; height: auto; display: block; border-radius: 8px; }
.rm-icv-app__note {
	margin: 0.4em 0 0;
	padding-top: 0.9em;
	border-top: 1px solid var(--color_border, #e5e5e5);
	font-size: 0.86em;
	color: var(--rm-ink-weak, #667);
	width: 100%;
}
@media (min-width: 768px) {
	.rm-icv-app { flex-direction: row; align-items: flex-start; text-align: left; flex-wrap: wrap; }
	.rm-icv-app__body { flex: 1 1 240px; }
	.rm-icv-app__badges { flex-direction: row; max-width: none; width: auto; }
	.rm-icv-app__badges img { width: auto; height: 46px; }
	.rm-icv-app__note { flex-basis: 100%; }
}

/* アプリDL用QRコード：PCのみ表示（モバイルファースト＝既定は非表示） */
.rm-icv-qr, .rm-icv-pconly { display: none; }
@media (min-width: 768px) {
	.rm-icv-pconly {
		display: inline-flex;
		align-items: center;
		gap: 0.4em;
		margin: 1.2em 0 0;
		padding: 0.3em 0.9em;
		background: var(--color_pale02, #f3f8fd);
		border: 1px solid var(--color_border, #e5e5e5);
		border-radius: 999px;
		font-size: 0.82em;
		font-weight: 700;
		color: var(--rm-ink-weak, #667);
	}
	.rm-icv-qr { display: flex; flex-wrap: wrap; gap: 20px 40px; margin: 1em 0 0; }
	.rm-icv-qr__card {
		text-align: center;
		background: #fff;
		border: 1px solid var(--color_border, #e5e5e5);
		border-radius: 8px;
		padding: 14px 16px;
		width: 170px;
	}
	.rm-icv-qr__card img { width: 128px; height: 128px; margin: 0 auto 8px; display: block; }
	.rm-icv-qr__card span { display: block; font-size: 0.85em; font-weight: 700; }
	.rm-icv-qr__card small { display: block; font-size: 0.78em; color: var(--rm-ink-weak, #667); }
}

/* ---- 本人確認方法を選ぶ：スマホは縦積み1列、PCのみ2列 ---- */
.rm-icv-methods {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 1.2em 0;
}
@media (min-width: 768px) {
	.rm-icv-methods { grid-template-columns: 1fr 1fr; }
}
.rm-icv-method {
	background: #fff;
	border: 1px solid var(--color_border, #e5e5e5);
	border-radius: 10px;
	padding: 1.1em 1.2em 1.3em;
}
.rm-icv-method__name {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin: 0 0 0.3em;
	font-weight: 700;
	font-size: 1.02em;
	color: var(--rm-ink-strong, #2d2d2d);
}
.rm-icv-method__name .rm-ic { color: var(--color_main, #ff8128); }
.rm-icv-method__sub { margin: 0 0 0.7em; font-size: 0.85em; color: var(--rm-ink-weak, #667); }
.rm-icv-method ul { margin: 0; padding-left: 1.15em; font-size: 0.92em; line-height: 1.85; }

/* ---- 本人確認の手順：方式ごとにアコーディオンで開閉（swell-block-accordion を流用） ---- */
.rm-icv-proc .swell-block-accordion__label { align-items: center; }
.rm-icv-proc-icon { flex: 0 0 auto; width: 1.35em; height: 1.35em; color: var(--color_main, #ff8128); }
.rm-icv-proc-title { display: flex; flex-direction: column; gap: 0.15em; }
.rm-icv-proc-title h3.rm-icv-proc-h3 {
	margin: 0;
	padding: 0;
	border-bottom: none;
	font-size: 1em;
	font-weight: 700;
	color: inherit;
}
.rm-icv-proc-title h3.rm-icv-proc-h3::before { content: none; }
.rm-icv-proc-sub { font-size: 0.8em; font-weight: 400; color: var(--rm-ink-weak, #667); }

/* 手順ステップ内の補足（swell-block-step__body 内の注記・画像） */
.rm-icv .swell-block-step__body .rm-note-box { margin: 0.8em 0 0; }
.rm-icv .swell-block-step__body figure { margin: 0.9em auto 0; }

/* マイナンバーカードの記載位置図：本文幅いっぱいにせず中央の読みやすい幅に収める */
.rm-icv-cardfig { max-width: 380px; margin: 0.9em auto 0; text-align: center; }
.rm-icv-cardfig img { width: 100%; height: auto; display: block; margin: 0 auto; }
.rm-icv-cardfig figcaption { margin-top: 0.5em; font-size: 0.8em; color: var(--rm-ink-weak, #667); text-align: center; }
