@charset "utf-8";
/* CSS Document */
:root {
		--jbs-blue: #1B365D;
		--jbs-duck20: #cce5ed;
		--jbs-accent: #0078d4;
		--text-main: #333333;
		--text-light: #666666;
		--bg-gray: #f8f9fa;
		--gradient: linear-gradient(180deg, #0386EB 4%, #fff 10%);
	}
	body {
		font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
		margin: 0;
		padding: 0;
		color: var(--text-main);
		line-height: 1.8;
		background-color: #ffffff;
	}
	a { text-decoration: none; color: var(--jbs-blue); }
	img { max-width: 100%; height: auto; display: block; margin: 0 auto; }
	/* Header */
	header {
		background-color: #fff;
		border-bottom: 2px solid var(--jbs-blue);
		padding: 15px 5%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		position: sticky;
		top: 0;
		z-index: 100;
	}
	.logo { font-size: 24px; font-weight: 900; color: var(--jbs-blue); letter-spacing: 2px; }
	.btn-contact-header {
		background-color: var(--jbs-blue);
		color: #fff;
		padding: 10px 24px;
		border-radius: 4px;
		font-weight: bold;
		transition: 0.3s;
	}
	.btn-contact-header:hover { background-color: #003666; }
/* Hero Section */
.hero {
	background: linear-gradient(135deg, #004b87 0%, #002244 100%);
	color: #fff;
	padding: 80px 5%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}
.hero-text { flex: 1; }
.hero-text h1 { font-size: 40px; line-height: 1.4; margin-bottom: 20px; }
.hero-text p { font-size: 18px; margin-bottom: 30px; opacity: 0.9; }
.hero-image { flex: 1; text-align: center; }
.hero-image img { border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.3); }
/*  スマホ表示用  */
@media (max-width: 767px) {
  .hero, .poc-link-wrapper {
    flex-direction: column;
    padding: 50px 5%;
  }
  .hero-text,
  .hero-image {
    width: 100%;
    text-align: center;
  }
  .hero-text h1 {
    font-size: 28px;
  }
  .hero-text p, .device-banner-content p, #target p, #core-services .section-header p {
    font-size: 16px;
	  text-align: start !important;
	  margin: auto 30px;
  }
}
/* Common Section */
	section { padding: 80px 5%; }
	.bg-gray { background-color: var(--bg-gray); }
	.section-header { text-align: center; margin-bottom: 40px; }
	.section-header h2 {
		font-size: 32px;
		color: var(--jbs-blue);
		position: relative;
		display: inline-block;
		margin-bottom: 15px;
	}
	.section-header h2::after {
		margin-bottom: 2em;
		/*content: '';
		width: 150px;
		height: 4px;
		background-color: var(--jbs-blue);
		position: absolute;
		bottom: -18px;
		left: 50%;
		transform: translateX(-50%);*/
	}
	.section-header p { font-size: 16px; color: var(--text-light); }
	/* Apple Premium Technical Partnerとは？ セクション */
	.aptp-container {
		max-width: 900px;
		margin: 0 auto;
		background: #fff;
		border: 2px solid var(--jbs-duck20);
		border-radius: 12px;
		padding: 40px 60px;
		box-shadow: 0 4px 15px rgba(0,0,0,0.03);
		text-align: center;
	}
	.aptp-container p {
		font-size: 18px;
		margin-bottom: 20px;
		color: var(--text-main);
		text-align: left;
		display: inline-block;
	}
	.aptp-container p:last-child {
		margin-bottom: 0;
	}
	/* Mac / iPad Banner Section */
	.device-banner {
		background-color: var(--jbs-blue);
		color: #fff;
		padding: 60px 5%;
		text-align: center;
	}
	.device-banner-content {
		max-width: 1000px;
		margin: 0 auto;
	}
	.device-banner h2 {
		font-size: 32px;
		margin-bottom: 20px;
		line-height: 1.5;
	}
	.device-banner p {
		font-size: 16px;
		opacity: 0.9;
		margin-bottom: 40px;
	}
	.device-grid {
		display: flex;
		justify-content: center;
		gap: 30px;
		flex-wrap: wrap;
	}
	.device-item {
		background: #fff;
		color: var(--jbs-blue);
		border-radius: 8px;
		padding: 30px;
		flex: 1;
		min-width: 250px;
		max-width: 400px;
		box-shadow: 0 10px 20px rgba(0,0,0,0.1);
	}
	.device-item img {
		border-radius: 4px;
		margin-bottom: 15px;
		height: 160px;
		object-fit: cover;
	}
	.device-item h3 {
		font-size: 24px;
		margin-bottom: 10px;
	}
	.device-item p {
		color: var(--text-light);
		font-size: 14px;
		margin-bottom: 0;
	}
	/* こんなお客さまにおすすめ */
	.target-box {
		background: #fff;
		border: 2px solid var(--jbs-duck20);
		border-radius: 12px;
		padding: 40px;
		max-width: 980px;
		margin: 0 auto;
		box-shadow: 0 4px 15px rgba(0,0,0,0.03);
	}
	.target-list { list-style: none; padding: 0; margin: 0; }
	.target-list li {
		position: relative;
		padding-left: 40px;
		margin-bottom: 20px;
		font-size: 18px;
		font-weight: bold;
	}
	.target-list li::before {
		content: '✔';
		position: absolute;
		left: 0;
		top: 2px;
		color: #fff;
		background-color: var(--jbs-blue);
		width: 24px;
		height: 24px;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 14px;
	}
	/* 3つのサービス (Core Offer) */
	.service-cards {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
		gap: 30px;
		margin-top: 40px;
	}
	.card {
		background: #fff;
		border-top: 5px solid var(--jbs-blue);
		padding: 30px;
		border-radius: 8px;
		box-shadow: 0 4px 20px rgba(0,0,0,0.05);
	}
	.card-img {
		width: 100%;
		background-color: var(--bg-gray);
		margin-bottom: 20px;
		border-radius: 4px;
		display: flex;
		align-items: center;
		justify-content: center;
		color: #aaa;
		font-size: 14px;
	}
	.card h3 { font-size: 22px; margin-bottom: 15px; color: var(--jbs-blue); }
	.card p { font-size: 15px; color: var(--text-light); }
	/* JBS独自の付加価値ソリューション */
	.value-prop {
		display: flex;
		align-items: center;
		gap: 40px;
		margin-bottom: 60px;
		background: #fff;
		padding: 40px;
		border-radius: 8px;
		box-shadow: 0 4px 15px rgba(0,0,0,0.05);
	}
	.value-prop:nth-child(even) { flex-direction: row-reverse; }
	.value-text { flex: 1; }
	.value-text h4 { font-size: 24px; color: var(--jbs-blue); margin-bottom: 15px; }
	.value-image { flex: 1; }
	.value-image img { border-radius: 8px; width: 100%; }

.poc-link-wrapper {
	max-width: 1000px;
	margin: 80px auto 0;
	background: linear-gradient(135deg, var(--jbs-blue) 0%, var(--jbs-accent) 100%);
	color: #fff;
	border-radius: 12px;
	padding: 50px 60px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-shadow: 0 10px 30px rgba(0,120,212,0.3);
	gap: 30px;
}
.poc-link-text {
	flex: 1;
}
.poc-link-text h2 {
	font-size: 28px;
	margin-top: 0;
	margin-bottom: 15px;
	line-height: 1.4;
	color: #fff;
}
.poc-link-text h2::after {
	display: none; /* 下線を消す */
}
.poc-link-text p {
	font-size: 16px;
	margin: 0;
	opacity: 0.9;
}
.poc-link-action {
	text-align: right;
}
.btn-poc {
	display: inline-block;
	background-color: #fff;
	color: var(--jbs-blue);
	font-size: 18px;
	font-weight: bold;
	padding: 15px 40px;
	border-radius: 30px; /* 角丸ボタン */
	transition: 0.3s;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
	white-space: nowrap;
}
.btn-poc:hover {
	background-color: #f0f0f0;
	transform: translateY(-2px);
}
/* サービスメニュー表 */
.service-table-wrapper { max-width: 1000px; margin: 0 auto; }
table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}
th, td {
	border: 1px solid #ddd;
	padding: 15px;
	text-align: left;
}
th { background-color: var(--jbs-duck20); color: var(--jbs-blue); font-weight: bold; width: 25%; }
/* よくある質問 (FAQ) */
.faq-container { max-width: 800px; margin: 0 auto; }
.faq-item {
	border-bottom: 1px solid #eee;
	padding: 20px 0;
}
.faq-q {
	font-weight: bold;
	font-size: 18px;
	color: var(--jbs-blue);
	position: relative;
	padding-left: 35px;
	margin-bottom: 10px;
}
.faq-q::before {
	content: 'Q.';
	position: absolute;
	left: 0;
	color: var(--jbs-blue);
	font-size: 22px;
}
.faq-a {
	position: relative;
	padding-left: 35px;
	color: var(--text-light);
}
.faq-a::before {
	content: 'A.';
	position: absolute;
	left: 0;
	color: #e00000;
	font-size: 22px;
	font-weight: bold;
}
.blog-grid {
display: flex;
gap: 30px;
justify-content: center;
max-width: 1000px;
margin: 0 auto;
flex-wrap: wrap;
}
.blog-card {
/*background: #fff;*/
background-image: var(--gradient);
border: 2px solid #ddd;
border-radius: 8px;
padding: 40px 30px;
flex: 1;
min-width: 300px;
text-align: center;
transition: 0.3s;
text-decoration: none;
color: var(--text-main);
box-shadow: 0 4px 10px rgba(0,0,0,0.03);
position: relative;
overflow: hidden;
}
.blog-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background-color: var(--jbs-blue);
}
.blog-card:hover {
border-color: var(--jbs-blue);
box-shadow: 0 10px 25px rgba(0,0,0,0.08);
transform: translateY(-5px);
}
.blog-card h3 {
color: var(--jbs-blue);
font-size: 24px;
margin-bottom: 15px;
}
.blog-card p {
font-size: 16px;
color: var(--text-light);
margin: 0;
}
.gradient-text {
background: #1d1d1f;
background-clip: text;
-webkit-text-fill-color: rgba(0, 0, 0, 0);
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
background-image: var(--gradient);
}
	/* CTA */
.cta {
	background-color: var(--jbs-duck20);
	text-align: center;
	padding: 80px 5%;
}
.cta h2 { font-size: 32px; color: var(--jbs-blue); margin-bottom: 20px; }
.btn-large {
	display: inline-block;
	background-color: var(--jbs-blue);
	color: #fff;
	font-size: 20px;
	font-weight: bold;
	padding: 20px 60px;
	border-radius: 8px;
	margin-top: 20px;
	transition: 0.3s;
}
.btn-large:hover { background-color: #003666; transform: translateY(-2px); }
footer {
	background-color: #232c4d;
	color: #fff;
	text-align: center;
	padding: 30px 5%;
	font-size: 14px;
}
