@charset "utf-8";
/* 1. グローバル設定・リセット */ :root {
		--primary-color: #007bff; /* 鮮やかなブルー */
		--secondary-color: #333333; /* ダークグレー */
		--accent-color: #1a73e8; /* アクセントブルー */
		--background-color: #f5f5f5; /* 薄いグレー */
		--white: #ffffff;
		--text-color: #333333;
		--muted-color: #666666;
		--section-padding: 80px 0;
}
*, *::before, *::after {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
}
body {
		font-family: 'Noto Sans JP', sans-serif;
		color: var(--text-color);
		background-color: var(--background-color);
		line-height: 1.6;
		overflow-x: hidden;
}
/* メインコンテンツの幅を制御するコンテナ */
.container {
		max-width: 1200px;
		margin: 0 auto;
		padding: 0 20px;
}
/* セクションの幅を画面いっぱいに広げる */
.section {
		padding: var(--section-padding);
		width: 100%;
}
/* コンテナの外に出るセクションのために、コンテナのpaddingをリセット */
.hero-section, .section[style*="background:white"], footer {
		padding-left: 0;
		padding-right: 0;
}
.muted {
		color: var(--muted-color);
}
/* 2. ヘッダー */
header {
		background-color: var(--white);
		border-bottom: 1px solid #eee;
}
header .brand {
		display: flex;
		align-items: center;
		max-width: 1200px;
		margin: 0 auto;
}
header .brand img {
		height: 40px; /* ロゴのサイズ調整 */
		margin-right: 15px;
}
header .brand h1 {
		font-size: 24px;
		font-weight: 900;
}
header .brand .muted {
		font-size: 14px;
		color: var(--muted-color);
}
img, picture {
		height: auto;
}
/* 3. ヒーローセクション */
.hero-section {
		background: linear-gradient(135deg, rgba(0, 123, 255, 0.5) 0%, rgba(0, 191, 255, 0.5) 100%), url("../images/homerouter/img_hero.png");
		background-size: cover;
		background-position: center;
		color: var(--white);
		padding: 100px 20px;
		text-align: center;
		position: relative;
}
.kv-content {
		max-width: 900px;
		margin: 0 auto;
}
.price-badge {
		background-color: rgba(238, 108, 14, 0.97);
		color: #ffffff;
		display: inline-block;
		padding: 8px 20px;
		border-radius: 50px;
		font-weight: 700;
		font-size: 16px;
		margin-bottom: 20px;
}
.catch {
		font-size: 48px;
		font-weight: 900;
		line-height: 1.3;
		margin-bottom: 20px;
}
.catch strong {
		color: #ffffff; /* 純粋な白に変更してコントラストを最大化 */
}
.lead {
		font-size: 20px;
		margin-bottom: 40px;
		font-weight: 400;
		opacity: 0.9;
		max-width: 700px;
		margin-left: auto;
		margin-right: auto;
}
.device-img-group {
		display: flex;
		justify-content: center;
		gap: 30px;
		margin-bottom: 40px;
}
.device-img-group img {
		max-width: 300px;
		height: auto;
		filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.3));
}
/* 4. CTAボタン */
.hero-cta {
		display: flex;
		justify-content: center;
		gap: 20px;
		margin-top: 30px;
}
.btn {
		padding: 15px 30px;
		border-radius: 8px;
		text-decoration: none;
		font-weight: 700;
		font-size: 18px;
		transition: all 0.3s ease;
		text-align: center;
		min-width: 240px;
		border: 2px solid transparent;
		display: inline-block;
}
.btn-primary {
		background-color: rgba(238, 108, 14, 0.97);
		color: #fff;
		border-color: var(--white);
		box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
.btn-primary:hover {
		background-color: #eeeeee;
		color: var(--primary-color);
}
.btn-secondary {
		background-color: transparent;
		color: var(--white);
		border-color: var(--white);
}
.btn-secondary:hover {
		background-color: rgba(255, 255, 255, 0.1);
}
/* 4.5. 一般的なセクションとタイトル */
.section > .container {
		padding: 0 20px;
}
.section-title {
		font-size: 36px;
		font-weight: 900;
		text-align: center;
		margin-bottom: 50px;
		position: relative;
		padding-bottom: 10px;
		color: var(--text-color);
}
.section-title::after {
		content: '';
		display: block;
		width: 60px;
		height: 4px;
		background-color: var(--primary-color);
		margin: 10px auto 0;
		border-radius: 2px;
}
.card {
		background-color: var(--white);
		border-radius: 12px;
		padding: 30px;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
		height: 100%;
}
.detail-grid .card {
		height: auto;
}
/* 5. 特長と法人向けメリット */
.features-grid {
		display: grid;
		/* 3つの特典カードを完全に3等分 */
		grid-template-columns: repeat(3, 1fr);
		gap: 30px;
}
.feature-item {
		text-align: center;
}
.feature-item h4 {
		font-size: 18px;
		font-weight: 700;
		margin: 10px 0;
}
.feature-icon {
		font-size: 36px;
		display: block;
		margin-bottom: 10px;
		color: var(--primary-color);
}
.corporate-grid-container {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
		gap: 30px;
}
.corporate-benefit-card {
		background-color: var(--white);
		border: 1px solid #e0e0e0;
		border-radius: 12px;
		padding: 25px;
		text-align: center;
}
.icon-box {
		font-size: 40px;
		display: block;
		margin-bottom: 10px;
		color: var(--accent-color);
}
.icon-box img {
		width: 100%;
		height: auto;
}
.corporate-benefit-card h4 {
		font-size: 18px;
		margin-bottom: 10px;
		font-weight: 700;
}
/* 6. 料金プラン */
.plan-container {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
		gap: 30px;
		max-width: 1000px;
		margin: 0 auto;
}
.plan-card {
		text-align: center;
		border: 3px solid #e0e0e0;
		padding: 40px 30px;
}
.plan-card h4 {
		font-size: 24px;
		font-weight: 700;
		margin-bottom: 20px;
}
.plan-price {
		font-size: 48px;
		font-weight: 900;
		color: var(--primary-color);
		line-height: 1;
		margin-bottom: 20px;
}
.plan-price span {
		font-size: 18px;
		font-weight: 700;
}
.plan-card ul {
		list-style: none;
		padding: 0;
		margin: 20px 0 30px;
		text-align: left;
		border-top: 1px solid #eee;
		padding-top: 20px;
}
.plan-card ul li {
		margin-bottom: 8px;
		padding-left: 10px;
		position: relative;
		font-size: 15px;
		color: var(--text-color);
}
.plan-card ul li::before {
		content: "✔️";
		position: absolute;
		left: -15px;
		color: var(--accent-color);
}
/* 短期レンタルプラン（ハイライト） */
.plan-highlight {
		border-color: var(--primary-color);
		background-color: var(--primary-color);
		color: var(--white);
		transform: scale(1.05);
		position: relative;
		z-index: 10;
}
.plan-highlight .plan-price {
		color: var(--white);
}
.plan-highlight .muted {
		color: rgba(255, 255, 255, 0.8) !important;
}
.plan-highlight ul li {
		color: var(--white);
}
.plan-highlight .btn-primary {
		background-color: rgba(238, 108, 14, 0.97);
		color: #fff;
		border-color: var(--white);
		box-shadow: none;
}
.plan-highlight .btn-primary:hover {
		background-color: #ffffff;
		color: rgba(238, 108, 14, 0.97);
}
.plan-card .btn-secondary {
		background-color: var(--white);
		color: var(--primary-color);
		border-color: var(--primary-color);
}
.plan-card .btn-secondary:hover {
		background-color: var(--primary-color);
		color: var(--white);
}
.plan-card .btn {
		width: 100%;
}
/* 7. 導入フロー */
.flow-list {
		list-style: none;
		display: flex;
		justify-content: space-between;
		padding: 0;
		max-width: 1000px;
		margin: 0 auto;
		position: relative;
}
.flow-list::before {
		content: '';
		position: absolute;
		top: 25px;
		left: 10%;
		right: 10%;
		height: 4px;
		background-color: #ddd;
		z-index: 0;
}
.flow-list li {
		flex: 1;
		text-align: center;
		padding: 0 10px;
		position: relative;
		z-index: 1;
		background-color: var(--background-color);
}
.section[style*="background:white"] .flow-list li {
		background-color: var(--white);
}
.flow-step-number {
		display: inline-block;
		width: 50px;
		height: 50px;
		line-height: 40px;
		border-radius: 50%;
		background-color: var(--primary-color);
		color: var(--white);
		font-weight: 700;
		font-size: 24px;
		margin-bottom: 15px;
		border: 4px solid;
		border-color: inherit;
}
.section[style*="background:white"] .flow-step-number {
		border-color: var(--white);
}
.flow-list h4 {
		font-size: 18px;
		font-weight: 700;
		margin-bottom: 5px;
}
/* 8. FAQ・オプション・仕様詳細 */
.detail-grid {
		display: grid;
		grid-template-columns: 1fr 1.5fr;
		gap: 30px;
		max-width: 1200px;
		margin: 0 auto;
}
.faq-item {
		border-bottom: 1px solid #eee;
		padding: 15px 0;
}
.faq-item:last-of-type {
		border-bottom: none;
}
.faq-item h4 {
		font-size: 16px;
		font-weight: 700;
		color: var(--accent-color);
}
.faq-item p {
		margin-top: 5px;
		padding-left: 20px;
		font-size: 15px;
}
/* テーブルスタイル */
table {
		width: 100%;
		border-collapse: collapse;
		margin-top: 15px;
		font-size: 15px;
		border: 1px solid #ddd;
}
table th, table td {
		padding: 12px;
		border: 1px solid #ddd;
		text-align: left;
}
table th {
		background-color: #f8f8f8;
		font-weight: 700;
		color: var(--secondary-color);
		width: 30%;
}
table tbody tr:nth-child(even) {
		background-color: #fcfcfc;
}
/* 端末補償テーブルの最終行結合セル */
#faq table td[colspan="2"] {
		text-align: left;
}

/* ---------------------------------------------------- */
/* *** [最終調整] フル幅表示とアコーディオンのスタイル *** */
/* ---------------------------------------------------- */
.full-width-feature {
		/* グリッド全体に広げる設定 */
		grid-column: 1 / -1;
		text-align: center;
}
/* details/summaryの基本設定 */
.accordion-feature {
		padding: 0;
}
.accordion-feature summary {
		list-style: none; /* デフォルトの矢印を非表示 */
		cursor: pointer;
		padding-right: 30px;
		display: flex;
		align-items: center;
		position: relative;
		justify-content: center;
}
/* アイコンとタイトルの配置調整 */
.full-width-feature .feature-icon {
		margin-right: 15px;
		margin-bottom: 0;
		flex-shrink: 0;
}
.full-width-feature h4 {
		margin: 0;
		flex-grow: 0;
		max-width: none;
		text-align: center;
}
/* 矢印（summary::after で定義） */
.accordion-feature summary::after {
		content: '';
		position: absolute;
		right: 10px;
		top: 50%;
		width: 8px;
		height: 8px;
		border-right: 2px solid var(--text-color);
		border-bottom: 2px solid var(--text-color);
		transition: transform 0.2s ease;
		transform: translateY(-50%) rotate(-45deg);
}
/* 開いた状態（下向き矢印） */
.accordion-feature[open] summary::after {
		transform: translateY(-50%) rotate(45deg);
}
/* アコーディオン内容（説明文）のスタイル */
.accordion-content {
		margin-top: 15px;
		padding-left: 0;
		text-align: left;
}
.accordion-content p {
		margin-bottom: 10px;
}
/* ---------------------------------------------------- */
/* *** 【適用】シナリオカードのデザインを大幅に改善（フロー図対応） *** */
/* ---------------------------------------------------- */
.scenario-grid {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 20px; /* カード間のスペースを広げる */
		margin-top: 25px;
}
.scenario-card {
		background-color: var(--white);
		border: 1px solid #cce5ff; /* 明るいブルーのボーダー */
		border-radius: 12px;
		padding: 20px;
		text-align: center;
		box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
		transition: transform 0.2s;
}
.scenario-card:hover {
		transform: translateY(-3px);
}
.scenario-title {
		display: flex;
		align-items: center;
		justify-content: center;
		margin-bottom: 15px;
		border-bottom: 2px dashed #eee;
		padding-bottom: 10px;
}
.scenario-icon {
		font-size: 18px;
		font-weight: 700;
		color: var(--white);
		background-color: var(--primary-color);
		border-radius: 50%;
		width: 25px;
		height: 25px;
		line-height: 25px;
		margin-right: 10px;
		flex-shrink: 0;
}
.scenario-title strong {
		color: var(--primary-color);
		font-size: 16px;
		font-weight: 800;
}
/* --- ケース1: フロー図デザイン --- */
.flow-container {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		margin: 15px 0;
}
.flow-step {
		display: flex;
		flex-direction: column;
		align-items: center;
		background-color: #f8faff; /* 背景に薄い色を付けて強調 */
		border-radius: 8px;
		padding: 10px;
		flex: 1;
}
.location-icon {
		font-size: 30px;
		margin-bottom: 5px;
		color: #ff6600; /* オレンジ（目立つ色）*/
}
.service-name {
		font-size: 13px;
		font-weight: 700;
		color: var(--text-color);
		line-height: 1.2;
}
.flow-arrow {
		font-size: 24px;
		font-weight: 900;
		color: #ccc;
		flex-shrink: 0;
}
/* --- ケース2: 複数台デザイン --- */
.multi-device-box {
		margin: 25px 0 30px;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 5px;
}
.device-icon {
		font-size: 36px;
		color: #66bb6a; /* グリーン系で「増加」「メリット」を表現 */
		transform: rotate(45deg); /* Wi-Fiアイコンを傾けて動きを出す */
}
.device-count {
		font-size: 14px;
		font-weight: 600;
		color: var(--muted-color);
		margin-left: 10px;
}
/* --- 共通の割引テキスト --- */
.discount-text {
		font-size: 14px;
		line-height: 1.5;
		color: #444;
		padding-top: 10px;
		border-top: 1px solid #eee;
}
.discount-text strong {
		color: #cc3300; /* 赤系で「割引」を強調 */
		font-weight: 700;
}
/*  フッター  */
.copyright {
		text-align: center;
}
#footerArea {
		background-color: #155fad;
		color: #fff;
		padding: 0 0 20%;
}
#footerArea a {
		color: #fff;
		text-decoration: none;
}
#footerArea .inner {
		padding: 20px;
}
#footerArea .contactWrap {
		margin: 0 auto 40px;
}
#footerArea .contactWrap h2 {
		text-align: center;
		border-bottom: 1px solid #fff;
		margin: 0 auto 10px;
		display: none;
}
#footerArea .contactTitle {
		border-bottom: 1px dotted #eee;
		font-weight: bold;
}
#footerArea .contactBlock {
		margin: 0;
		padding: 0;
		text-align: center;
		flex-basis: 60%;
		max-width: 60%;
		font-size: 12px;
		align-self: center;
}
#footerArea .contactBlock h3 {
		display: none;
}
#footerArea ul {
		list-style: none;
		font-size: 4vw;
		padding: 0 0 0 1em;
		margin: revert;
}
#footerArea .contactBlock.phone span {
		font-size: 16px;
		font-weight: bold;
		margin-left: 10px;
		line-height: 1vh;
}
#footerArea .contactBlock.phone img {
		width: 20px;
}
#footerArea .contactBlock.contactForm {
		flex-basis: 40%;
		max-width: 40%;
}
#footerArea .contactBlock.contactForm a {
		display: block;
		text-align: center;
		padding: 5px;
		background-color: #ff9102;
		border-radius: 30px;
}
#footerArea .contactBlock.contactForm a:hover {
		opacity: 0.8;
}
#footerArea .termsArea {
		margin: 20px auto 40px;
}
#footerArea .termsArea h2 {
		text-align: center;
		border-bottom: 1px solid #fff;
		margin: 0 auto 20px;
}
#footerArea .footerList {}
#footerArea .footerList ul {}
#footerArea .footerList ul li {
		padding: 0 0 10px;
		font-size: 4vw;
}
#footerArea .sublist {
		display: flex;
		flex-flow: row nowrap;
		justify-content: space-around;
		font-size: 3vw;
		padding: 0;
}
#footerArea .back {
		position: fixed;
		bottom: 10%;
		right: 5px;
}
#footerArea .back a {
		display: block;
		background-color: #848484;
		color: #fff;
		text-align: center;
		padding: 5px 10px;
		border-radius: 5px;
		font-size: 12px;
}
#footerArea .fixed {
		position: fixed;
		bottom: 0;
		left: 0;
		background-color: #155fad;
		width: 100%;
		z-index: 100;
}
#footerArea .contactWrap {
		margin: 0 auto;
		display: flex;
		flex-flow: row wrap;
		justify-content: center;
		max-width: 1200px;
		padding: 10px;
}
/* 10. レスポンシブ対応 */
@media (max-width: 900px) {
		.catch {
				font-size: 32px;
		}
		.lead {
				font-size: 18px;
		}
		.device-img-group {
				flex-direction: column;
				align-items: center;
				gap: 15px;
		}
		.device-img-group img {
				max-width: 200px;
		}
		.hero-cta {
				flex-direction: column;
				gap: 10px;
		}
		.btn {
				min-width: unset;
				width: 100%;
				font-size: 16px;
		}
		.section-title {
				font-size: 28px;
		}
		.flow-list {
				flex-direction: column;
				gap: 30px;
		}
		.flow-list::before {
				display: none;
		}
		.detail-grid {
				grid-template-columns: 1fr;
		}
		.plan-highlight {
				transform: scale(1.0);
		}
		.section-padding {
				padding: 40px 0;
		}
		/* レスポンシブ対応の調整（フル幅・アコーディオン） */
		.full-width-feature {
				grid-column: auto;
		}
		.accordion-content {
				padding-left: 0;
		}
		.full-width-feature .feature-icon {
				/* display: block; (必要に応じてコメントアウトを解除) */
		}
		/* 900px以下では特典カードを1列に戻す */
		.features-grid {
				grid-template-columns: 1fr;
		}
		/* シナリオカードも1列に */
		.scenario-grid {
				grid-template-columns: 1fr;
		}
}
@media screen and (min-width: 768px) {
		#footerArea {
				padding: 0 0 10%;
		}
		#footerArea .inner {
				padding: 20px;
				width: 100%;
				max-width: 1200px;
				margin: 0 auto;
		}
		#footerArea .contactWrap {
				margin: 0 auto;
				display: flex;
				flex-flow: row wrap;
				justify-content: space-around;
				border-top: 1px dotted #eee;
				padding: 10px 20px;
		}
		#footerArea .contactWrap h2 {
				flex-basis: 100%;
				text-align: center;
		}
		#footerArea .contactBlock {
				flex-basis: 50%;
				max-width: 50%;
		}
		#footerArea .contactBlock.contactForm {
				flex-basis: 50%;
				max-width: 50%;
		}
		#footerArea .contactBlock.phone img {
				width: 40px;
		}
		#footerArea .contactBlock.phone span {
				font-size: 26px;
		}
		#footerArea ul {
				font-size: 2vw;
		}
		#footerArea .footerList ul li {
				padding: 0 0 10px;
				font-size: 2vw;
		}
		#footerArea .sublist {
				font-size: 16px;
		}
		#footerArea .termsArea {
				margin: 20px auto 40px;
				display: flex;
				flex-flow: row wrap;
				justify-content: space-around;
		}
		#footerArea .termsArea h2 {
				flex-basis: 100%;
				text-align: center;
		}
}
@media screen and (min-width: 1130px) {
		#footerArea {
				padding: 0 0 5%;
		}
		#footerArea .contactBlock.phone span {
				font-size: 30px;
		}
		#footerArea .contactBlock {
				font-size: 18px;
		}
		#footerArea ul {
				font-size: 14px;
		}
		#footerArea .footerList ul {
				font-size: 14px;
				text-align: center;
		}
		#footerArea .footerList ul li {
				font-size: 14px;
				display: inline-block;
				margin: 0 10px;
		}
		#footerArea .sublist {
				font-size: 14px;
		}
		#footerArea .contactBlock.contactForm a {
				width: 300px;
				margin: auto;
		}
		#footerArea .back {
				bottom: 12%;
		}
}