/*
Theme component: Front page Solution
Scope: .mast-solution
*/

.mast-solution,
.mast-solution * {
	box-sizing: border-box;
}

.mast-solution {
	width: 100%;
	margin: 0;
	padding: 0;
	background-color: #fff;
	color: #3f4650;
}

.mast-solution__inner {
	width: min(calc(100% - 48px), 1110px);
	margin: 0 auto;
	padding: 112px 0 120px;
}

.mast-solution__header {
	margin: 0;
}

.mast-solution__pairs {
	display: grid;
	gap: 40px;
	margin: 64px 0 0;
}

.mast-solution__pair {
	display: grid;
	grid-template-areas: "service voice";
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 36px;
	align-items: center;
	min-width: 0;
}

.mast-solution__pair:nth-child(even) {
	grid-template-areas: "voice service";
}

.mast-solution__voice {
	position: relative;
	grid-area: voice;
	width: 80%;
	min-width: 0;
	margin: 0;
	padding: 30px 32px;
	border: 2px solid #1f5680;
	border-radius: 8px;
	background-color: #2f6fa3;
	box-shadow: none;
}

.mast-solution__pair:nth-child(odd) .mast-solution__voice {
	justify-self: start;
}

.mast-solution__pair:nth-child(even) .mast-solution__voice {
	justify-self: end;
}

.mast-solution__voice::before,
.mast-solution__voice::after {
	position: absolute;
	top: 50%;
	width: 0;
	height: 0;
	border-style: solid;
	content: "";
	transform: translateY(-50%);
}

.mast-solution__pair:nth-child(odd) .mast-solution__voice::before {
	left: -16px;
	border-width: 11px 16px 11px 0;
	border-color: transparent #1f5680 transparent transparent;
}

.mast-solution__pair:nth-child(odd) .mast-solution__voice::after {
	left: -13px;
	border-width: 9px 14px 9px 0;
	border-color: transparent #2f6fa3 transparent transparent;
}

.mast-solution__pair:nth-child(even) .mast-solution__voice::before {
	right: -16px;
	border-width: 11px 0 11px 16px;
	border-color: transparent transparent transparent #1f5680;
}

.mast-solution__pair:nth-child(even) .mast-solution__voice::after {
	right: -13px;
	border-width: 9px 0 9px 14px;
	border-color: transparent transparent transparent #2f6fa3;
}

.mast-solution__voice p {
	margin: 0;
	padding: 0;
	color: #fff;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.85;
	letter-spacing: 0.02em;
}

.mast-solution__service {
	grid-area: service;
	min-width: 0;
	height: 100%;
}

.mast-solution__service .mast-service__card {
	height: 100%;
	padding: 36px 40px 32px;
}

.mast-solution__service .mast-service__heading,
.mast-solution__service .mast-service__summary {
	padding-right: 104px;
}

.mast-solution__service .mast-service__card-title {
	font-size: 2rem;
}

.mast-solution__service .mast-service__icon {
	top: 30px;
	right: 34px;
	width: 92px;
	height: 92px;
}

.mast-solution__service .mast-service__label,
.mast-solution__service .mast-service__description {
	font-size: 1rem;
}

.mast-solution__service .mast-service__list {
	width: min(100%, 28rem);
	margin-top: 26px;
	column-gap: 16px;
}

.mast-solution__service .mast-service__list-item {
	font-size: 0.95rem;
}

.mast-solution__service .mast-service__more {
	padding-top: 20px;
	font-size: 0.9rem;
}

/* Tablet: keep the Problem -> Service reading order. */
@media screen and (max-width: 1099px) {
	.mast-solution__inner {
		width: min(calc(100% - 40px), 1110px);
		padding: 96px 0 104px;
	}

	.mast-solution__pairs {
		gap: 48px;
		margin-top: 56px;
	}

	.mast-solution__pair,
	.mast-solution__pair:nth-child(even) {
		grid-template-areas:
			"voice"
			"service";
		grid-template-columns: minmax(0, 1fr);
		gap: 22px;
		width: min(100%, 42rem);
		margin-inline: auto;
	}

	.mast-solution__voice {
		width: 94%;
		padding: 26px 28px;
	}

	.mast-solution__service .mast-service__card {
		padding: 32px 36px 30px;
	}

	.mast-solution__service .mast-service__heading,
	.mast-solution__service .mast-service__summary {
		padding-right: 100px;
	}

	.mast-solution__service .mast-service__card-title {
		font-size: 1.875rem;
	}

	.mast-solution__service .mast-service__icon {
		top: 28px;
		right: 32px;
		width: 88px;
		height: 88px;
	}

	.mast-solution__pair:nth-child(odd) .mast-solution__voice,
	.mast-solution__pair:nth-child(even) .mast-solution__voice {
		justify-self: center;
	}

	.mast-solution__pair:nth-child(odd) .mast-solution__voice::before,
	.mast-solution__pair:nth-child(even) .mast-solution__voice::before {
		top: auto;
		right: auto;
		bottom: -16px;
		left: 50%;
		border-width: 16px 11px 0;
		border-color: #1f5680 transparent transparent;
		transform: translateX(-50%);
	}

	.mast-solution__pair:nth-child(odd) .mast-solution__voice::after,
	.mast-solution__pair:nth-child(even) .mast-solution__voice::after {
		top: auto;
		right: auto;
		bottom: -13px;
		left: 50%;
		border-width: 14px 9px 0;
		border-color: #2f6fa3 transparent transparent;
		transform: translateX(-50%);
	}
}

/* Mobile: 767px and below */
@media screen and (max-width: 767px) {
	.mast-solution__inner {
		width: 100%;
		padding: 72px 20px 80px;
	}

	.mast-solution__pairs {
		gap: 40px;
		margin-top: 44px;
	}

	.mast-solution__pair,
	.mast-solution__pair:nth-child(even) {
		gap: 20px;
		width: 100%;
	}

	.mast-solution__voice {
		width: 100%;
		padding: 22px 20px;
	}

	.mast-solution__voice p {
		font-size: 0.9375rem;
		line-height: 1.75;
	}

	.mast-solution__service .mast-service__card {
		padding: 28px 24px 26px;
	}

	.mast-solution__service .mast-service__heading,
	.mast-solution__service .mast-service__summary {
		padding-right: 86px;
	}

	.mast-solution__service .mast-service__card-title {
		font-size: 1.75rem;
	}

	.mast-solution__service .mast-service__icon {
		top: 22px;
		right: 22px;
		width: 76px;
		height: 76px;
	}

	.mast-solution__service .mast-service__label,
	.mast-solution__service .mast-service__description {
		font-size: 1rem;
	}

	.mast-solution__service .mast-service__list-item,
	.mast-solution__service .mast-service__more {
		font-size: 0.95rem;
	}
}
