/* Market Development Division - Shared Styles */
/* Used by: /marketdev/ (top page), sub-pages inherit shared sections */
/* v2.1 — Layout corrections: centered headings, blue buttons, single-column */

/* ============================================
   Override: common.css sets .page-container .page-wrap>.inner
   to display:flex (horizontal row for sidebar layout).
   Market dev pages use single-column layout — override to block.
   ============================================ */
@media screen and (min-width: 768px) {
	.marketdev-common .page-container .page-wrap > .inner {
		display: block;
		max-width: 1020px;
		margin-left: auto;
		margin-right: auto;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-common .page-container .page-wrap > .inner {
		padding-left: calc(40 / 750 * 100%);
		padding-right: calc(40 / 750 * 100%);
	}
}

/* Reduce breadcrumb bottom padding (common.css default is 80px PC / 20px+20mb SP) */
@media screen and (min-width: 768px) {
	.marketdev-common .l-breadCrumb {
		padding-bottom: 20px;
	}
}

/* ============================================
   Hero / Main Visual
   Uses common.css defaults: height 260px(PC)/130px(SP),
   vertically centered heading, background-size: cover.
   Only page-specific BG image + SP variant needed here.
   ============================================ */
.marketdev-common .page-mainVisual {
	position: relative;
}

/* Dark overlay for text readability */
.marketdev-common .page-mainVisual::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to right, rgba(0, 0, 0, 0.45) 0%, rgba(0, 0, 0, 0.1) 100%);
	z-index: 1;
}

/* Ensure heading sits above the overlay */
.marketdev-common .page-mainVisual .inner {
	position: relative;
	z-index: 2;
}

/* Subtle text shadow for extra contrast */
.marketdev-common .page-mainVisual .mainVisual-heading {
	text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

@media screen and (min-width: 768px) {
	.marketdev-common .page-mainVisual {
		background-image: url(/images/marketdev/03_Shikai-Top-Img01.png);
	}
}

@media screen and (max-width: 767px) {
	.marketdev-common .page-mainVisual {
		background-image: url(/images/marketdev/03_Shikai-Top-Img01.png);
	}
}

/* ============================================
   Section Headings (shared)
   ============================================ */
.marketdev-common .section-heading {
	text-align: left;
	line-height: 1.5;
	letter-spacing: 0.06em;
}

@media screen and (min-width: 768px) {
	.marketdev-common .section-heading {
		font-size: 24px;
		margin-bottom: 35px;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-common .section-heading {
		font-size: 18px;
		margin-bottom: 20px;
	}
}

/* ============================================
   Blue button wrapper (shared across all sections)
   Uses the site-wide .l-border-button.bg-blue
   ============================================ */
.marketdev-btn-wrapper {
	display: flex;
	justify-content: center;
	margin-top: 30px;
}

@media screen and (max-width: 767px) {
	.marketdev-btn-wrapper {
		margin-top: 20px;
	}
}

.marketdev-btn-wrapper .l-border-button {
	height: 45px;
	font-size: 15px;
}

/* ============================================
   S1: Pain Points — こんなお悩みはありませんか？
   2×2 grid with large photos
   ============================================ */
.marketdev-painpoints {
	background-color: #fff;
}

@media screen and (min-width: 768px) {
	.marketdev-painpoints .page-wrap {
		padding-top: 50px;
		padding-bottom: 40px;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-painpoints .page-wrap {
		padding-top: 30px;
		padding-bottom: 25px;
	}
}

.painpoints-heading {
	text-align: left;
	color: #0095d9;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

@media screen and (min-width: 768px) {
	.painpoints-heading {
		font-size: 22px;
		margin-bottom: 30px;
	}
}

@media screen and (max-width: 767px) {
	.painpoints-heading {
		font-size: 18px;
		margin-bottom: 20px;
	}
}

/* 2×2 grid layout */
.painpoints-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

@media screen and (min-width: 768px) {
	.painpoints-grid {
		gap: 25px;
		max-width: 900px;
		margin: 0 auto;
	}
}

@media screen and (max-width: 767px) {
	.painpoints-grid {
		grid-template-columns: 1fr;
		gap: 25px;
	}
}

.painpoint-card {
	overflow: hidden;
}

.painpoint-image {
	overflow: hidden;
	line-height: 0;
}

.painpoint-image img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.3s ease;
}

.painpoint-card:hover .painpoint-image img {
	transform: scale(1.03);
}

.painpoint-title {
	font-size: 18px;
	font-weight: bold;
	color: #333;
	text-align: center;
	margin-top: 15px;
	margin-bottom: 8px;
	line-height: 1.4;
}

@media screen and (max-width: 767px) {
	.painpoint-title {
		font-size: 16px;
		margin-top: 12px;
	}
}

.painpoint-desc {
	font-size: 14px;
	line-height: 1.7;
	color: #555;
	text-align: center;
}

@media screen and (max-width: 767px) {
	.painpoint-desc {
		font-size: 13px;
		text-align: left;
	}
}

/* ============================================
   S2: News — 新着情報 (thumbnail card grid)
   ============================================ */
.marketdev-news {
	background-color: #f5f7fa;
}

@media screen and (min-width: 768px) {
	.marketdev-news .page-wrap {
		padding-top: 50px;
		padding-bottom: 50px;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-news .page-wrap {
		padding-top: 30px;
		padding-bottom: 30px;
	}
}

/* News cards — 4 in a row (PC), 2×2 (SP) */
.news-cards {
	display: grid;
}

@media screen and (min-width: 768px) {
	.news-cards {
		grid-template-columns: repeat(4, 1fr);
		gap: 20px;
	}
}

@media screen and (max-width: 767px) {
	.news-cards {
		grid-template-columns: repeat(2, 1fr);
		gap: 15px;
	}
}

.news-card {
	display: block;
	text-decoration: none;
	background: #fff;
	border-radius: 4px;
	overflow: hidden;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.news-card:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	transform: translateY(-2px);
}

.news-card-image {
	overflow: hidden;
	line-height: 0;
}

.news-card-image img {
	width: 100%;
	height: auto;
	display: block;
}

.news-card-date {
	font-size: 12px;
	color: #888;
	padding: 10px 12px 0;
	margin: 0;
}

@media screen and (max-width: 767px) {
	.news-card-date {
		font-size: 11px;
		padding: 8px 10px 0;
	}
}

.news-card-title {
	font-size: 13px;
	line-height: 1.5;
	color: #333;
	padding: 4px 12px 10px;
	margin: 0;
}

@media screen and (max-width: 767px) {
	.news-card-title {
		font-size: 12px;
		padding: 4px 10px 8px;
	}
}

.news-no-articles {
	grid-column: 1 / -1;
	text-align: center;
	color: #888;
	font-size: 14px;
	padding: 40px 0;
}

/* ============================================
   S3 & S4: Solution Sections (shared styles)
   Single-column layout: heading → text → image → button
   ============================================ */
.solution-section-heading {
	text-align: left;
	line-height: 1.4;
	color: #333;
	letter-spacing: 0.04em;
}

@media screen and (min-width: 768px) {
	.solution-section-heading {
		font-size: 26px;
		margin-bottom: 20px;
	}
}

@media screen and (max-width: 767px) {
	.solution-section-heading {
		font-size: 20px;
		margin-bottom: 15px;
	}
}

/* ============================================
   S3: FA Solutions — 省人化・自動化ソリューション
   ============================================ */
.marketdev-fa-section {
	background-color: #f5f7fa;
}

@media screen and (min-width: 768px) {
	.marketdev-fa-section .page-wrap {
		padding-top: 50px;
		padding-bottom: 50px;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-fa-section .page-wrap {
		padding-top: 30px;
		padding-bottom: 30px;
	}
}

.fa-description {
	line-height: 1.8;
	color: #333;
}

@media screen and (min-width: 768px) {
	.fa-description {
		font-size: 15px;
	}
}

@media screen and (max-width: 767px) {
	.fa-description {
		font-size: 14px;
	}
}

.fa-description p {
	margin-bottom: 5px;
}

.fa-lead {
	font-weight: bold;
	font-size: 17px;
	color: #1a3a5c;
	margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
	.fa-lead {
		font-size: 15px;
	}
}

/* QCDD definition list */
.qcdd-list {
	margin-top: 15px;
	margin-bottom: 0;
}

.qcdd-list dt {
	font-weight: bold;
	color: #0095d9;
	display: inline;
}

.qcdd-list dt::after {
	content: '：';
}

.qcdd-list dd {
	display: inline;
	margin-left: 0;
	color: #333;
}

.qcdd-list dd::after {
	content: '';
	display: block;
	margin-bottom: 6px;
}

/* QCDD diagram image — full width below text */
.qcdd-diagram {
	text-align: center;
}

@media screen and (min-width: 768px) {
	.qcdd-diagram {
		margin-top: 30px;
	}
}

@media screen and (max-width: 767px) {
	.qcdd-diagram {
		margin-top: 20px;
	}
}

.qcdd-diagram img {
	width: 100%;
	height: auto;
	display: block;
}

/* ============================================
   S4: Energy Solutions — エネルギーソリューション
   ============================================ */
.marketdev-energy-section {
	background-color: #fff;
}

@media screen and (min-width: 768px) {
	.marketdev-energy-section .page-wrap {
		padding-top: 50px;
		padding-bottom: 50px;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-energy-section .page-wrap {
		padding-top: 30px;
		padding-bottom: 30px;
	}
}

.energy-description {
	line-height: 1.8;
	color: #333;
}

@media screen and (min-width: 768px) {
	.energy-description {
		font-size: 15px;
	}
}

@media screen and (max-width: 767px) {
	.energy-description {
		font-size: 14px;
	}
}

.energy-description p {
	margin-bottom: 5px;
}

/* Energy building diagram — full width below text */
.energy-diagram {
	text-align: center;
}

@media screen and (min-width: 768px) {
	.energy-diagram {
		margin-top: 25px;
	}
}

@media screen and (max-width: 767px) {
	.energy-diagram {
		margin-top: 20px;
	}
}

.energy-diagram img {
	width: 100%;
	height: auto;
	display: block;
}

/* ============================================
   Gateway Page — /marketdev/ v3.0
   Scoped under .marketdev-gateway to avoid
   conflicts with existing classes used by
   /technology/ (which references this CSS).
   ============================================ */

/* Gateway section container */
.marketdev-gateway .gateway-section {
	background-color: #fff;
}

@media screen and (min-width: 768px) {
	.marketdev-gateway .gateway-section .page-wrap {
		padding-top: 40px;
		padding-bottom: 60px;
	}
}

@media screen and (max-width: 767px) {
	.marketdev-gateway .gateway-section .page-wrap {
		padding-top: 25px;
		padding-bottom: 40px;
	}
}

/* Gateway content — flex row (PC), stacked (SP) */
@media screen and (min-width: 768px) {
	.gateway-content {
		display: flex;
		gap: 30px;
		align-items: flex-start;
	}
}

/* Text block with border */
.gateway-text-block {
	border: 1px solid #ccc;
	padding: 30px;
}

@media screen and (min-width: 768px) {
	.gateway-text-block {
		flex: 1 1 0%;
		min-width: 0;
	}
}

@media screen and (max-width: 767px) {
	.gateway-text-block {
		padding: 20px 15px;
		margin-bottom: 25px;
	}
}

.gateway-heading {
	font-size: 22px;
	font-weight: bold;
	color: #333;
	margin-bottom: 10px;
	line-height: 1.4;
}

@media screen and (max-width: 767px) {
	.gateway-heading {
		font-size: 20px;
	}
}

.gateway-sub-heading {
	font-size: 18px;
	font-weight: bold;
	color: #0095d9;
	margin-bottom: 15px;
	line-height: 1.4;
}

@media screen and (max-width: 767px) {
	.gateway-sub-heading {
		font-size: 16px;
		margin-bottom: 12px;
	}
}

.gateway-description {
	font-size: 15px;
	line-height: 1.8;
	color: #333;
	margin-bottom: 25px;
}

@media screen and (max-width: 767px) {
	.gateway-description {
		font-size: 14px;
		margin-bottom: 20px;
	}
}

/* Gateway nav buttons — 2×2 grid */
.gateway-nav {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}

@media screen and (max-width: 767px) {
	.gateway-nav {
		gap: 10px;
	}
}

.gateway-nav .l-border-button {
	height: 45px;
	font-size: 14px;
}

@media screen and (max-width: 767px) {
	.gateway-nav .l-border-button {
		height: 40px;
		font-size: 13px;
	}
}

/* Gateway images — side by side (PC), stacked (SP) */
.gateway-images {
	display: flex;
	gap: 15px;
	flex-shrink: 0;
}

@media screen and (min-width: 768px) {
	.gateway-images {
		width: 340px;
		align-items: flex-start;
	}

	.gateway-images .gateway-image {
		flex: 1 1 0%;
	}
}

@media screen and (max-width: 767px) {
	.gateway-images {
		flex-direction: column;
		gap: 15px;
	}
}

.gateway-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Centered lead image placed above a section heading */
.section-lead-image {
	text-align: center;
	margin: 0 auto 50px;
	max-width: 1020px;
}
.section-lead-image img {
	max-width: 100%;
	height: auto;
	display: inline-block;
}
@media screen and (max-width: 767px) {
	.section-lead-image {
		margin-bottom: 35px;
	}
}
