﻿/************************************************
* 共通定義
************************************************/
.wrapper {
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 24px;
}

.fp-series-entry h1 {
    font-size: clamp(34px, 5vw, 48px);
    font-weight: 700;
    line-height: 1.3;
	color: #20538F;
}

.fp-series-entry h2 {
    font-size: clamp(24px, 2vw, 28px);
    font-weight: 700;
    line-height: 1.4;
	color: #20538F;
	margin: 0;
	padding: 0;
	border-bottom: none;
}

.fp-series-entry h3 {
    font-size: clamp(18px, 2vw, 20px);
    font-weight: 700;
    line-height: 1.4;
	color: #1A1A1A;
}

.fp-series-entry h4 {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
	color: #1A1A1A;
}

.fp-series-entry {
    font-size: clamp(16px, 1vw + 12px, 18px);
    line-height: 1.8;
	color: #333333;
}

.ctex-color {
	color: #20538F;
}

.fp40-color {
	color: #78206E !important;
}

.fp40-bcolor {
	background-color: #78206E;
}

.fp40-bcolor2 {
	background-color: #F2CFEE;
}

.fp30-color {
	color: #00B050 !important;
}

.fp30-bcolor {
	background-color: #00B050;
}

.fp30-bcolor2 {
	background-color: #C1FFDD;
}

/************************************************
* TOP
************************************************/
.fp-series-top {
	background-position: bottom right;
	background-image: url('./picture/fp_series_entry/fpseries_top.webp');
	background-size: cover;
	background-repeat: no-repeat;
	margin-top: 0;
	margin-bottom: 3rem;
	padding-top: 5rem;
	padding-bottom: 5rem;
}

.fp-series-top h1 {
    font-size: clamp(24px, 4vw, 48px);
    font-weight: 700;
    line-height: 1.3;
	color: #20538F;
	text-shadow: 1px 1px 5px white, -1px 1px 5px white, 1px -1px 5px white, -1px -1px 5px white;
}

.sub-header p {
	font-size: clamp(14px, 2vw, 24px);
	font-weight: 700;
	text-shadow: 1px 1px 5px white, -1px 1px 5px white, 1px -1px 5px white, -1px -1px 5px white;
}

.top-icons {
	margin-top: 4rem;
	display: flex;
	gap: 20px;
	font-size: 14px;
	width: 40%;
	text-align: center;
}

.top-icons img {
	width: 60px;
}

.top-icons p {
	margin-top: 1rem;
}

.top-icon {
	flex: 1;
	background-color: #FFF;
	border-radius: 15px;
	padding-top: 20px;
}

/* スマホ対応 */
@media (max-width: 767px) {
	.fp-series-top {
		background-position: top right;
		background-size: auto 50%;
		background-color: #DCEAF7;
		padding-top: 1rem;
		padding-bottom: 3rem;
	}

	.sub-header {
		margin-top: 15rem;
	}

	.top-icons {
		margin-top: 0;
		padding-top: 0;
		width: 100%;
		font-size: 12px;
	}

	.top-icons img {
		width: 40px;
	}

	.top-icon {
		padding-top: 10px;
	}
}

/* タブレット */
@media (min-width: 768px) and (max-width: 991px) {
	.fp-series-top {
		background-position: top right;
		background-size: auto 80%;
		background-color: #DCEAF7;
		padding-top: 1rem;
		padding-bottom: 3rem;
	}

	.top-icons {
		margin-top: 0;
		padding-top: 0;
		width: 45%;
		font-size: 12px;
	}

	.top-icons img {
		width: 40px;
	}

	.top-icon {
		padding-top: 10px;
	}
}

/************************************************
* フラッシュ書き込み、こんなお悩みありませんか？
************************************************/
.fp-series-problem {
	margin-bottom: 3rem;
}

.fp-series-problem h2 {
	text-align: center;
	margin-bottom: 3rem;
}

.problem-card {
	text-align: center;
	margin-top: 1rem;
	padding: 2rem;
	padding-right: 0.8rem;
	border: 2px #20538F solid;
	border-radius: 15px;
	width: 100%;
}

.problem-card img {
	width: 80px;
}

.problem-card p {
	margin-top: 2rem;
	font-weight: 700;
	color: #20538F;
}

.problem-card ul {
	margin-top: 2rem;
	padding: 0 0 0 1rem;
	text-align: left;
	font-size: 14px;
}

.problem-card ul li {
	margin-bottom: 0.2rem;
}

/* その課題、FPシリーズで解決できます */
.problem-result {
	margin-top: 3rem;
	text-align: center;
	color: #20538F;
}

.problem-result i {
	font-size: 100px;	
}

.problem-result p {
    font-size: clamp(24px, 2vw, 28px);
    font-weight: 700;
    line-height: 1.4;
}

/************************************************
* 用途から選ぶ
************************************************/
.fp-series-choose {
	background-color: #DCEAF7;
	margin-bottom: 0;
}

.choose-header {
	padding-top: 2rem;
	text-align: center;
}

.choose-header h2 {
	margin-bottom: 2rem;
}

.choose-header p {
	margin-bottom: 2rem;
}

.choose-card {
	background-color: #FFF;
	margin-top: 1rem;
	padding: 2rem;
	border-radius: 15px;
	width: 100%;
	color: inherit;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.choose-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.4);
	color: inherit;
	text-decoration: none;
}

.choose-card h3 {	/* Cortex-M内蔵フラッシュに書き込むなら */
	text-align: center;
	padding: 0.5rem 1rem;
	border-radius: 30px;
	color: #FFF;
}

.choose-fp {
	display: flex;
	align-items: center;
}

.choose-fp-item1 {
	flex: 1;
}

.choose-fp-item1 h4 {
	padding: 1rem 0;
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 700;
}

.choose-fp-item1 ul {
	padding-left: 1.2em;
}

.choose-fp-item1 ul li {
	font-size: 14px;
	margin-bottom: 0.2rem;
}

.choose-fp img {
	width: 50%;
}
	
/* アイコンの並び */
.choose-icons {
	margin-top: 1rem;
	text-align: center;
	display: flex;
	align-items: flex-start;
}

.choose-icons img {
	width: 50%;
}

.choose-icons p {
	margin-top: 0.5rem;
	font-size: clamp(12px, 1vw, 14px);
}

.choose-link {
	margin-top: 2rem;
	text-align: right;
	font-size: 16px;
	font-weight: 700;
}

.choose-card:hover .choose-link {
	text-decoration: underline;
}

.between-or {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translate(50%, -50%);
	width: 60px;
	z-index: 10;
}

@media (max-width: 767px) {
	.between-or {
		top: auto;
		right: 50%;
		bottom: 0;
		transform: translate(50%, 40%);
	}
}

/************************************************
* やりたいことから選ぶ
************************************************/
.fp-series-compare {
	margin-top: 0;
	background-color: #DCEAF7;
	margin-bottom: 3rem;
	padding-bottom: 5rem;
}

.compare-header {
	padding-top: 5rem;
	text-align: center;
}

.compare-header h2, p {
	margin-bottom: 2rem;
}

/* 比較表 */
.product-compare {
	width: 80%;
	margin: 0 auto;
	border-collapse: collapse;
	table-layout: fixed;
}

/* 列幅 */
.product-compare .feature-head,
.product-compare tbody th {
	width: 30%;
}

.product-compare .product-head,
.product-compare td {
	width: 30%;
}

/* 全体の罫線 */
.product-compare th,
.product-compare td {
	border: 1px solid #ccc;
}

.product-compare .feature-head {
	border: none;
}

/* 左側 */
.product-compare tbody th {
	border: none;
	background: #e8f3fb;
	padding: 7px 10px;
}

/* 項目の青い枠 */
.feature {
	display: flex;
	align-items: center;
	min-height: 40px;

	border: 2px solid #00aeef;
	border-radius: 8px;
	background: #fff;

	padding: 5px 10px;
	text-align: left;
	font-weight: normal;
}

.feature img {
	width: clamp(20px, 2vw, 40px);
	margin-right: 8px;
}

.feature span {
	font-size: clamp(12px, 1vw, 14px);
	line-height: 1.25;
}

/* 商品ヘッダー */
.product-head {
	height: 80px;
	padding: 0;
	background: #fff;
	vertical-align: top;
}

.product-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
	height: 100%;
	transition: transform 0.2s ease;
}

.product-inner:hover {
    transform: scale(1.05);
	text-decoration: none;
}

.product-title {
	font-size: clamp(20px, 2vw, 34px);
	font-weight: bold;
	line-height: 45px;
}

.product-head img {
	width: 110px;
	max-width: 80%;
	height: 55px;
	object-fit: contain;
}

/* ○ ● --- */
.product-compare td {
	height: 54px;
	text-align: center;
	background: #fff;
	vertical-align: middle;
}

.mark {
	font-size: clamp(16px, 2vw, 25px);
	background-color: transparent;
}

.mark.none {
	letter-spacing: 3px;
}

.product-compare small {
	font-size: 12px;
}

/* スマホ対応 */
@media (max-width: 767px) {
	.product-compare {
		width: 100%;
	}

	.product-compare .product-head,
	.product-compare td {
		width: 20%;
	}

	.product-inner {
	    display: block;
	    text-align: center;
	}
}

/************************************************
* 開発から量産まで、さまざまな書き込みに対応
************************************************/
.fp-series-case {
	margin-bottom: 3rem;
}

.case-header {
	padding-top: 5rem;
	text-align: center;
}

.case-header h2, p {
	margin-bottom: 2rem;
}

.case-card {
	margin-top: 1rem;
	padding: 0 1rem;
}

.case-card h3 {
	margin-top: 0;
	color: #20538F;
}

.case-card p {
	margin-top: 1rem;
}

.case-arrow {
	position: absolute;
	top: 35%;
	left: 95%;
	color: #20538F;
	font-size: 28px;
	z-index: 10;
}

/* スマホ対応 矢印を非表示にする */
@media (max-width: 991px) {
	.case-arrow {
		display: none;
	}
}

/************************************************
* FPシリーズ４つの特長
************************************************/
.fp-series-features{
	background-color: #DCEAF7;
	margin-bottom: 3rem;
	padding-bottom: 5rem;
}

.features-header {
	padding-top: 5rem;
	text-align: center;
}

.features-header h2, p {
	margin-bottom: 2rem;
}

.features-card {
	text-align: center;
	margin-top: 2rem;
	padding: 2rem 2rem 0 2rem;
	background-color: #FFF;
	border-radius: 15px;
	width: 100%;
}

.features-card img {
	height: 120px;
	object-fit: contain;
}

.features-card h3 {
	margin-top: 2rem;
	color: #20538F;
}

.features-card h4 {
	font-size: clamp(16px, 2vw, 18px);
	padding: 0.7rem 0;
	margin: 1rem 0;
	color: #20538F;
	border-radius: 20px;
	background-color: #DCEAF7;
}

.features-card p {
	text-align: left;
	margin-top: 2rem;
	padding: 0 1rem;
	font-size: clamp(14px, 1vw, 16px);
}

/************************************************
* サポートデバイス
************************************************/
.fp-series-device {
	margin-bottom: 3rem;
	padding-bottom: 5rem;
}

.device-header {
	padding-top: 5rem;
	text-align: center;
}

.device-header h2, p {
	margin-bottom: 2rem;
}

/* カード */
.device-card {
	text-align: center;
	margin-top: 2rem;
	padding-bottom: 2rem;
	border-radius: 15px;
	max-width: 40rem;
}

.fp40-border {
	border: 3px #78206E solid;
}

.fp30-border {
	border: 3px #00B050 solid;
}

.gray-border {
	border: 3px #BFBFBF solid;
}

.device-card h3 {
	margin-top: -1px;
	padding: 2rem;
	color: #FFF;
	border-radius: 15px 15px 0 0;
}

/* アイコンとヘッダー表示 */
.device-inner {
	display: flex;
	align-items: center;
	border-bottom: 1px #BFBFBF solid;
	margin: 0 1rem;
}

.device-inner h4 {
	font-size: clamp(18px, 2vw, 20px);
	margin-left: 1rem;
	text-align: left;
}

.device-inner img {
	margin: 10px;
	width: 20%;
}

.device-card ul {
	margin-top: 1rem;
	columns: 2;
	text-align: left;
}

.device-card ul li {
	margin-bottom: 0.2rem;
	font-size: 14px;
}

/* 対応デバイス一覧を見る・カスタム対応について詳しく見る */
.bottom-link {
	margin-top: 3rem;
	margin-left: 2rem;
	margin-right: 2rem;
}

.bottom-link {
	text-decoration: none;
	transition: brightness 0.2s ease;
}

.bottom-link:hover {
	filter: brightness(0.9);
}

.bottom-link a {
	font-size: clamp(12px, 1vw, 14px);
	font-weight: bold;
	border-radius: 8px;
	display: block;
	width: 100%;
	padding: 8px 0;
}

/* class=custom以下は右端のカスタム例カード */
.custom {
	padding-top: 2rem;
}

.custom h4 {
	font-weight: bold;
}

/* アイコンを円で囲む */
.img-circle {
    border: 2px solid #20538F;
	border-radius: 50%;
    width: 60px;
    height: 60px;
    min-width: 60px;
    min-height: 60px;
}

.img-circle img {
	width: 60%;
	height: auto;
}

.custom ul {
	margin-top: 2rem;
	columns: 1;
	list-style: none;
	padding-bottom: 2rem;
}

.custom li::before {
	content: "✓";
	margin-right: 0.5em;
	font-weight: bold;
}

.custom p {
	text-align: left;
	border-top: 1px #BFBFBF solid;
	font-size: 14px;
	margin-left: 2rem;
	margin-right: 2rem;
	padding-top: 2rem;
}

.device-comment {
	text-align: center;
	margin-top: 1rem;
	font-size: 12px;
}

/************************************************
* 対応デバイスは随時拡大中！
************************************************/
.device-increase {
	background-color: #DCEAF7;
	padding: 1rem 0;
}

.increase-img {
	background-color: #FFF;
	border-radius: 50%;
	width: 100px;
	height: 100px;
	margin-right: 1rem;
}

.increase-inner1 h3 {
	margin-top: 1rem;
	color: #20538F;
}

.increase-inner1 p {
	font-size: clamp(14px, 1vw, 16px);
}

.increase-inner2 p {
	text-align: right;
	margin-top: 1rem;
	color: #20538F;
	font-weight: bold;
}

.increase-inner3 a {
	background-color: #FFF;
	border-radius: 9px;
	padding: 3px 10px;
	font-size: 14px;
	font-weight: bold;
	text-decoration: none;
	transition: brightness 0.2s ease;
}

.fp40-device-link:hover {
	filter: brightness(0.9);
}

.fp30-device-link:hover {
	filter: brightness(0.9);
}

/************************************************
* FPシリーズの強みをもっと詳しく
************************************************/
.fp-series-detail {
	margin-bottom: 3rem;
	padding-bottom: 5rem;
}

.detail-header {
	text-align: center;
}

.detail-header h2, p {
	margin-bottom: 2rem;
}

/* カード */
.detail-card {
	text-align: center;
	margin-top: 2rem;
	padding-bottom: 2rem;
	border-radius: 15px;
	padding-right: 1rem;
}

.detail-card-headr {
	margin: 2rem;
}

.detail-card-headr h3 {
	font-size: clamp(20px, 2vw, 24px);
}

.detail-card-headr.fp40 h3 {
	color: #78206E;
}

.fp40-custom {
	padding-left: 1rem;
	padding-right: 1rem;
}

.fp40-sideline {
	border-left: 1px #BFBFBF solid;
	border-right: 1px #BFBFBF solid;
}

.fp40-custom h4 {
	font-size: clamp(12px, 1vw, 14px);
	font-weight: bold;
	border-radius: 15px;
	color: #78206E;
	border: 1px #78206E solid;
	background-color: #F2CFEE;
	padding: 3px 0;
}

.fp40-custom p {
	font-size: clamp(12px, 1vw, 14px);
	text-align: left;
}

.detail-card-headr.fp30 h3 {
	color: #00B050;
}

.fp30-fast {
	padding-left: 1rem;
	padding-right: 1rem;
}

.fp30-fast h4 {
	font-size: clamp(12px, 1vw, 14px);
	font-weight: bold;
	border-radius: 15px;
	padding: 3px 0;
	margin-bottom: 2rem;
	color: #000;
	border: 1px #000 solid;
	background-color: #D9D9D9;
}

.fp30-fast.fp30 h4 {
	color: #00B050;
	border: 1px #00B050 solid;
	background-color: #C1FFDD;
}

.fp30-fast.fp30 {
	border-left: 1px #BFBFBF solid;
}

.fp30-fast p {
	font-size: clamp(12px, 1vw, 14px);
	text-align: left;
	margin-top: 1rem;
	padding: 1rem;
	background-color: #D9D9D9;
}

.fp30-fast.fp30 p {
	background-color: #C1FFDD;
}

.fp30-fast-reason {
	margin: 0 2rem;
	text-align: left;
	color: #00B050;
	padding: 0 2rem;
	font-weight: bold;
}

/************************************************
* 充実のサポート体制
************************************************/
.fp-series-suport {
	margin-bottom: 3rem;
	padding-bottom: 5rem;
}

.suport-header {
	padding-top: 5rem;
	text-align: center;
}

.suport-header h2, p {
	margin-bottom: 2rem;
}

.suport-card {
	text-align: center;
	margin-top: 2rem;
	padding: 2rem 2rem 0 2rem;
	background-color: #FFF;
	border: 2px #BFBFBF solid;
	border-radius: 15px;
	width: 100%;
}

.suport-card img {
	margin-top: 1rem;
	height: 120px;
	object-fit: contain;
}

.suport-card h3 {
	margin-top: 1rem;
	color: #20538F;
}

.suport-card p {
	text-align: left;
	margin-top: 1rem;
	padding: 0 1rem;
	font-size: clamp(14px, 1vw, 16px);
}

/************************************************
* 無償評価貸し出し実施中
************************************************/
.free-trial {
	background-color: #DCEAF7;
	margin-top: 5rem;
	padding: 2rem 0;
}

.free-trial img {
	background-color: #FFF;
	border-radius: 15%;
	max-width: 240px;
}

@media (max-width: 767px) {
	.free-trial {
		text-align: center;
	}
	.free-trial img {
		max-width: 180px;
	}	
	.trial-inner1 {
		text-align: left;
	}
}

.trial-inner1 {
	padding: 1rem 0;
}

.trial-inner1 h3 {
	margin-top: 1rem;
	color: #20538F;
	font-weight: bold;
}

.trial-inner1 p span {
	font-weight: bold;
}

.trial-inner2 {
	text-align: center;
	text-decoration: none;
	transition: brightness 0.2s ease;
}

.trial-inner2:hover {
	filter: brightness(0.9);
}

.trial-inner2 a {
	background-color: #FFF;
	border: 2px #20538F solid;
	border-radius: 9px;
	padding: 1.5rem 3rem;
	font-weight: bold;
	color: #20538F;
}

/************************************************
* デバイス対応・カスタム対応のご相談はこちら
************************************************/
.customize {
	margin-top: 5rem;
	padding: 2rem 0;
}

.customize .container {
	border: 2px #000 solid;
	border-radius: 15px;
}

@media (max-width: 767px) {
	.customize .container {
		padding-bottom: 2rem;
	}	
}

.customize img {
	margin: 10px;
}

.customize-inner1 {
	padding: 1rem 0;
}

.customize-inner1 h3 {
	margin-top: 1rem;
	color: #20538F;
	font-weight: bold;
}

.customize-inner2 {
	text-align: center;
	text-decoration: none;
	transition: brightness 0.2s ease;
}

.customize-inner2:hover {
	filter: brightness(0.9);
}

.customize-inner2 a {
	background-color: #FFF;
	border: 2px #20538F solid;
	border-radius: 9px;
	padding: 1.3rem 3rem;
	font-weight: bold;
	color: #20538F;
}
