.show-on-pc,
.show-on-tablet,
.show-on-sp {
	display: none;
}

.breadcrumbs {
	display: none;
}

.fixed-bnr {
	display: none !important;
}

@media screen and (min-width: 900px) {
	.show-on-pc {
		display: block;
	}
}

@media screen and (min-width: 601px) and (max-width: 899px) {
	.show-on-tablet {
		display: block;
	}
}

@media screen and (max-width: 600px) {
	.show-on-sp {
		display: block;
	}
}

.solution-header {
	margin-top: 65px;
}

/* ========================================
	太陽光発電トラブル解決ページ
======================================== */
/* セクション全体 */
.solution-section {
	padding: 0;
}

.solution-section .container {
	background-image: url("./images/repowering/solution-hero.png");
	background-position: right 0 top 50px;
	background-repeat: no-repeat;
	background-size: 70%;
}

.solution-section .container .container-middle {
	padding-left: 10px;
	padding-right: 10px;
}

@media screen and (max-width: 899px) {
	.solution-section .container {
		background-image: none;
	}
}

/* ========================================
	ヒーロー部分
======================================== */
.solution-hero-section {
	position: relative;
	margin: 0 auto;
}

.solution-hero-illustration {
	flex: 0 0 auto;
	max-width: 450px;
	width: 100%;
}

.solution-hero-illustration img {
	width: 100%;
	height: auto;
	display: block;
}

.solution-title {
	display: flex;
	flex-direction: column;
	margin: 0;
	row-gap: 10px;
}

.solution-title img:nth-of-type(1) {
	height: 86px;
	width: fit-content;
}

.solution-title img:nth-of-type(2) {
	height: 86px;
	width: fit-content;
}

.solution-subtitle {
	color: #000;
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.4;
	margin-top: 90px;
	text-align: left;
	text-shadow: 1px 1px 2px #fff;
}

.solution-link-box {
	background: linear-gradient(180deg,rgba(40, 234, 134, 1) 0%, rgba(36, 198, 22, 1) 100%);
	border-radius: 8px;
	max-width: 440px;
	padding: 4px;
	transition: all .2s;
}

.solution-link-box a {
	border: 1px solid #fff;
	border-radius: 8px;
	display: block;
	padding: 28px 25px;
	text-decoration: none;
}

.solution-link-box:hover {
	opacity: .75;
}

.solution-link-box a span {
	color: #fff;
	column-gap: 10px;
	font-size: 2.4rem;
	font-weight: 700;
	display: flex;
	justify-content: space-between;
	letter-spacing: .04em;
	line-height: 1.3;
	position: relative;
}

.solution-link-box a span::after {
	background-image: url("./images/repowering/arrow_down.svg");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: block;
	height: 28px;
	width: 28px;
}

.solution-hero-badge-container {
	margin-top: 0;
}

.solution-hero-badge {
	align-items: stretch;
	display: flex;
	line-height: 1.6;
	margin-top: 35px;
	max-width: 400px;
	position: relative;
	width: 100%;
}

.solution-hero-badge .brackets {
	background-color: rgba(255 255 255 / .8);
	border: 2px solid #204FA3;
	display: block;
	margin-top: 0;
	width: 15px;
}

.solution-hero-badge .brackets.left {
	border-right: none;
}

.solution-hero-badge .brackets.right {
	border-left: none;
}

.solution-hero-badge p {
	background-color: rgba(255 255 255 / .8);
	color: #204FA3;
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.3;
	padding: 8px 5px;
}

.solution-caption {
	margin-left: auto;
	margin-top: 60px;
	width: fit-content;
}

.solution-caption img {
	height: auto;
	max-width: 334px;
	width: 100%;
}

/* ========================================
	イントロダクション
======================================== */
.solution-intro {
	margin-bottom: 40px;
}

.solution-intro-title {
	color: #000;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.6;
	margin: 30px 0 0;
}

.solution-intro-title em {
	font-style: normal;
	position: relative;
}

.solution-intro-title em::before {
	background-image: url("./images/repowering/under_line.svg");
	bottom: 0;
	content: "";
	display: block;
	left: 0;
	height: 5px;
	position: absolute;
	width: 100%;
}

.highlight-orange {
	color: #FF9900;
	font-weight: bold;
}

/* ========================================
	トラブルカード（画像全面＋オーバーレイ）
======================================== */
.solution-cards {
	display: flex;
	flex-direction: column;
	gap: 120px;
	margin-bottom: 120px;
	margin-top: 70px;
}

.solution-card {
	width: 100%;
}

.solution-card-image-container {
	position: relative;
	width: 100%;
	max-width: 100%;
}

.solution-card-image-container img {
	width: 100%;
	height: auto;
	display: block;
}

.solution-card-box {
	background-color: #fff;
	border-radius: 8px 0 0 0;
	margin-left: auto;
	margin-top: -230px;
	position: relative;
	padding: 40px 80px 0;
	width: 58%;
}

.solution-card-box.small {
	padding: 40px 63px 0 80px;
}

.solution-card:nth-of-type(2n) .solution-card-box {
	border-radius: 0 8px 0 0;
	margin-left: unset;
	margin-right: auto;
}

.solution-card-header h3 {
	font-size: 3.2rem;
	letter-spacing: .04em;
	line-height: 1.4;
	color: #FF9D39;
	background-color: transparent;
	padding: 0;
	margin: 0;
}

.solution-card-header h3 em {
	background-color: #FF9D39;
	border-radius: 4px;
	color: #fff;
	padding: 0 5px;
	font-style: normal;
}

.badge-line {
	margin-bottom: 8px;
	line-height: 1.8;
}

.solution-card-text {
	margin-top: 30px;
}

.solution-card-text p {
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2;
}

/* ========================================
	 お問い合わせセクション
	 ======================================== */
.solution-team {
	margin-top: 80px;
	padding-bottom: 80px;
	position: relative;
}

.solution-team-image {
	width: 100%;
}

.solution-team-image img {
	width: 100%;
	height: auto;
	display: block;
}

.solution-team-overlay {
	margin-top: -130px;
	position: relative;
	width: 100%;
	z-index: 2;
}

.solution-team-content {
	background-color: #fff;
	border: 1px solid #eee;
	border-radius: 0;
	opacity: .95;
	padding: 45px 40px 55px;
	max-width: 1080px;
	margin: 0 auto;
}

.solution-team-title {
	font-size: 3.2rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.5;
	margin: 0;
	text-align: center;
}

.solution-team-text {
	font-size: 1.4rem;
	font-weight: 400;
	letter-spacing: .04em;
	line-height: 2;
	margin-top: 20px;
	text-align: center;
}

.solution-team-buttons {
	display: flex;
	justify-content: center;
	gap: 30px;
	flex-wrap: wrap;
	margin-inline: auto;
	margin-top: 30px;
	max-width: 380px;
	width: 100%;
}

.solution-team-buttons a {
	align-items: center;
	background-color: #204FA3;
	border-radius: 8px;
	color: #fff;
	display: flex;
	font-size: 1.8rem;
	padding: 18px 15px;
	position: relative;
	font-weight: bold;
	text-decoration: none;
	transition: all 0.3s ease;
	text-align: center;
	width: 100%;
}

.solution-team-buttons a:hover {
	background-color: #003d7f;
	transform: translateY(-2px);
}

.solution-team-buttons a:hover .text {
	color: #fff;
}

.solution-team-buttons a .title {
	background-color: #fff;
	border-radius: 4px;
	color: #003d7f;
	display: flex;
	justify-content: flex-start;
	font-size: 1.4rem;
	font-weight: 700;
	margin-right: 20px;
	padding: 2px 10px;
}

.solution-team-buttons a::after {
	background-image: url("./images/repowering/arrow_right.svg");
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: block;
	height: 12px;
	margin-left: 35px;
	position: absolute;
	right: 15px;
	top: 50%;
	translate: 0 -50%;
	width: 17px;
}

/* ========================================
	 メールフォーム
======================================== */
.solution-section .container #mail_form {
	background-color: #fcead6;
	padding: 70px 100px 30px;
}
	 
.solution-section .container .contact_table {
	margin-top: 50px;
	max-width: unset;
}

.solution-section .container #mail_form .solution-title {
	font-size: 3.2rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.5;
	margin: 0;
	text-align: center;
}

.solution-section .container .contact_table input,
.solution-section .container .contact_table textarea {
	background-color: #fff;
}

.solution-section .container #mail_form .contact_submit input {
	display: block;
	margin-inline: auto;
}

/* ========================================
	 レスポンシブ対応
======================================== */
@media (max-width: 1000px) {
	.solution-card-box,
	.solution-card-box.small {
		padding: 30px;
	}
	
	.solution-team-content {
		margin-left: 20px;
		margin-right: 20px;
	}
}

/* タブレット (900px以下) */
@media (max-width: 900px) {
	.solution-section .container {
		padding: 0;
	}
	
	.solution-hero-section {
		flex-direction: column;
		min-height: auto;
		gap: 30px;
		padding: 30px 15px;
	}
	
	.solution-hero-section .image-box {
		margin-top: 15px;
	}

	.solution-hero-badge {
		font-size: 2rem;
		justify-content: space-between;
		margin-inline: auto;
		margin-top: 15px;
		padding:  0;
		text-align: center;
	}
	
	.solution-subtitle {
		margin-top: 30px;
		text-align: center;
	}
	
	.solution-link-box {
		margin-inline: auto;
	}
	
	.solution-intro-title {
		font-size: 3rem;
	}
	
	.solution-cards {
		gap: 90px;
	}

	.solution-card-box {
		margin-top: 30px;
		padding: 0 20px;
		position: static;
		width: 100%;
	}

	.solution-team-overlay {
		margin-top: -80px;
		position: relative;
		translate: 0 0;
		width: 100%;
	}

	.solution-team-content {
		margin: -20px 20px 0;
		padding-top: 40px;
	}
}

@media (max-width: 600px) {
	.solution-section {
		padding: 40px 0;
	}
	
	.solution-header {
		margin-bottom: 40px;
		margin-top: 0;
	}

	.solution-hero-section {
		min-height: auto;
		padding: 0 20px;
		gap: 25px;
	}
	
	.solution-hero-illustration {
		max-width: 100%;
	}

	.solution-title img:nth-of-type(1) {
		height: 58px;
	}

	.solution-title img:nth-of-type(2) {
		height: 58px;
	}

	.solution-subtitle {
		margin-top: 15px;
		font-size: 1.4rem;
	}
	
	.solution-link-box a {
		border: 1px solid #fff;
		border-radius: 8px;
		display: block;
		padding: 25px 20px;
		text-decoration: none;
	}

	.solution-link-box a span {
		font-size: 2rem;
	}

	.solution-caption {
		margin-left: auto;
		margin-top: 40px;
		max-width: 210px;
	}

	.solution-intro {
		margin-bottom: 40px;
		padding: 0 15px;
	}

	.solution-intro-title {
		font-size: 2rem;
		margin-top: 20px;
	}
	
	.solution-intro-title em::before {
		bottom: -5px;
	}

	.solution-cards {
		gap: 35px;
		margin-bottom: 35px;
		margin-top: 35px;
	}
	
	.solution-card-box,
	.solution-card-box.small {
		padding: 0 20px;
	}
	
	.solution-card-header h3 {
		font-size: 2.4rem;
	}

	.solution-card-header h3 em {
	}

	.solution-card-text {
		font-size: 1.4rem;
		margin-top: 14px;
	}
	
	.solution-section .container #mail_form {
		padding: 40px 20px 0;
	}
	
	.solution-section .container #mail_form .solution-title {
		font-size: 2.4rem;
	}
	
	.solution-section .container .contact_table {
		margin-top: 30px;
	}
	
	.solution-team {
		margin-top: 40px;
	}

	.solution-team-title {
		font-size: 1.8rem;
		text-align: left;
	}

	.solution-team-text {
		margin-top: 10px;
		text-align: left;
	}

	.solution-team-overlay {
		margin-top: -20px;
	}
	
	.solution-team-buttons a {
		flex-direction: column;
		justify-content: center;
		padding: 10px 15px;
		row-gap: 8px;
	}
	
	.solution-team-buttons a .title {
		margin-right: 0;
	}
	
	.solution-team-buttons a .text .show-on-sp {
		display: inline;
	}
}
