@charset "UTF-8";

.idealCondition {
	display: grid;
	grid-template-rows: max-content max-content 1fr;
	grid-template-columns: 8% 42% 50%;
	height: 46.5rem;
	margin-bottom: 10rem;
}
.item--purpose {
	grid-row: 1 / 2;
	grid-column: 3 / 4;
	margin-bottom: 2.1rem;
	padding-right: 16%;
}
.item--domain {
	grid-row: 2 / 3;
	grid-column: 2 / 3;
	margin-top: -5.4rem;
}
.item--philosophy {
	grid-row: 2 / 3;
	grid-column: 3 / 4;
	margin-bottom: 7.3rem;
	padding-right: 16%;
}
.item--guideline {
	grid-row: 3 / 4;
	grid-column: 2 / 3;
	margin-top: -9.1rem;
}
.item--model {
	grid-row: 3 / 4;
	grid-column: 3 / 4;
	padding-right: 16%;
}
.idealCondition__explanation {
	grid-row: 1 / 4;
	grid-column: 1 / 2;
}
.idealCondition__image {
	grid-row: 1 / 4;
	grid-column: 1 / 4;
	text-align: center;
}
.idealCondition__item dt {
	position: relative;
	margin-bottom: 1rem;
}
.idealCondition__item .btn--anchor {
	width: min(100%, 21rem);
}
.item--purpose.idealCondition__item .btn--anchor,
.item--philosophy.idealCondition__item .btn--anchor,
.item--model.idealCondition__item .btn--anchor {
	margin-left: auto;
}
.item--purpose .btn--anchor {
	background-color: var(--color-skyBlue);
}
.item--domain .btn--anchor {
	background-color: var(--color-blue);
}
.item--philosophy .btn--anchor {
	background-color: var(--color-green);
}
.item--guideline .btn--anchor {
	background-color: var(--color-pink);
}
.item--model .btn--anchor {
	background-color: var(--color-orange);
}
.idealCondition__item .btn__text {
	font-size: 2.2rem;
	color: #FFF;
}
.idealCondition__item .icon--arrow {
	background-color: #FFF;
}
.idealCondition__item dt::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: -1;
	width: 50%;
	height: 1.2rem;
	mask: url("../../images/policy/line.svg") no-repeat left center / cover;
}
.item--purpose dt::after {
	left: .8rem;
	background-color: var(--color-skyBlue);
}
.item--domain dt::after {
	right: 3.6rem;
	background-color: var(--color-blue);
	transform: translateY(-50%) rotate(180deg);
}
.item--philosophy dt::after {
	left: 6.4rem;
	background-color: var(--color-green);
}
.item--guideline dt::after {
	right: 9.6rem;
	background-color: var(--color-pink);
	transform: translateY(-50%) rotate(180deg);
}
.item--model dt::after {
	left: 11rem;
	background-color: var(--color-orange);
}
.idealCondition__item dd p {
	width: min(100%, 21rem);
	font-size: 2rem;
	font-weight: 600;
	line-height: var(--lineHeight-titleText);
}
.item--purpose.idealCondition__item dd p,
.item--philosophy.idealCondition__item dd p,
.item--model.idealCondition__item dd p {
	margin-left: auto;
}
.item--purpose dd p {
	color: var(--color-skyBlue);
}
.item--domain dd p {
	color: var(--color-blue);
}
.item--philosophy dd p {
	color: var(--color-green);
}
.item--guideline dd p {
	color: var(--color-pink);
}
.item--model dd p {
	color: var(--color-orange);
}
.idealCondition__explanation div {
	display: flex;
	flex-direction: column;
	width: 4rem;
	height: 100%;
}
.idealCondition__explanation div::before {
	content: "";
	width: 4rem;
	height: calc(4rem / 2.2);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	background-color: #f7e5c6;
}
.idealCondition__explanation div p {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1;
	width: 100%;
	color: var(--color-basicRed);
	font-weight: 600;
	line-height: var(--lineHeight-titleText);
	writing-mode: vertical-rl;
	background-color: #f7e5c6;
	border-radius: 0 0 .5rem .5rem;
}
.idealCondition__image img {
	width: auto;
	height: 100%;
	object-fit: cover;
}
@media (max-width: 1023px) {
	.idealCondition__item .btn--anchor {
		width: min(100%, 17rem);
	}
	.idealCondition__item dd p {
		width: min(100%, 17rem);
	}
	.item--purpose dd p .byWindowSize {
		display: none;
	}
}
@media (max-width: 767px) {
	.idealCondition {
		grid-template-rows: max-content max-content max-content max-content 1fr;
		grid-template-columns: 50% 50%;
		width: 100%;
		height: unset;
		margin-bottom: min(100 / 750 * 100vw, 5rem);
		overflow: hidden;
	}
	.item--purpose {
		grid-row: 1 / 2;
		grid-column: 2 / 3;
		margin-bottom: 3.4rem;
		padding-right: min(30 / 750 * 100vw, 1.5rem);
	}
	.item--domain {
		grid-row: 2 / 3;
		grid-column: 1 / 2;
		margin-top: -7rem;
		padding-left: min(30 / 750 * 100vw, 1.5rem);
	}
	.item--philosophy {
		grid-row: 2 / 3;
		grid-column: 2 / 3;
		margin-bottom: 0;
		padding-right: min(30 / 750 * 100vw, 1.5rem);
	}
	.item--guideline {
		grid-row: 4 / 5;
		grid-column: 1 / 2;
		margin-top: 3.6rem;
		padding-left: min(30 / 750 * 100vw, 1.5rem);
	}
	.item--model {
		grid-row: 4 / 5;
		grid-column: 2 / 3;
		margin-top: 3.6rem;
		padding-right: min(30 / 750 * 100vw, 1.5rem);
	}
	.idealCondition__explanation {
		grid-row: 3 / 4;
		grid-column: 1 / 2;
		padding-left: min(30 / 750 * 100vw, 1.5rem);
	}
	.idealCondition__image {
		grid-row: 3 / 4;
		grid-column: 1 / 3;
	}
	.idealCondition__item dt {
		margin-bottom: min(20 / 750 * 100vw, 1rem);
	}
	.idealCondition__item .btn--anchor {
		width: min(315 / 750 * 100vw, 15.75rem);
		height: 5rem;
	}
	.idealCondition__item .btn__text {
		font-size: 2rem;
	}
	.idealCondition__item dt::after {
		top: 2.35rem;
		transform: unset;
		width: min(30 / 750 * 100vw, 1.5rem);
		mask: url("../../images/policy/line_sp.svg") no-repeat center bottom / 100%;
	}
	.idealCondition__item dt::before {
		content: "";
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		z-index: -1;
		height: min(6 / 750 * 100vw, .3rem);
	}
	.item--purpose dt::after {
		left: -0.7rem;
		height: 23.7rem;
	}
	.item--purpose dt::before {
		left: 0;
		width: 100%;
		background-color: var(--color-skyBlue);
	}
	.item--domain dt::after {
		right: 1.9rem;
		height: 20.2rem;
	}
	.item--domain dt::before {
		--verticalLineWidth: min(30 / 750 * 100vw, 1.5rem);
		right: calc(1.9rem + ((var(--verticalLineWidth)) / 2));
		width: calc(100% - ((1.9rem + ((var(--verticalLineWidth)) / 2))));
		background-color: var(--color-blue);
	}
	.item--philosophy dt::after {
		left: 1.9rem;
		height: 16.6rem;
	}
	.item--philosophy dt::before {
		--verticalLineWidth: min(30 / 750 * 100vw, 1.5rem);
		left: calc(1.9rem + ((var(--verticalLineWidth)) / 2));
		width: calc(100% - ((1.9rem + ((var(--verticalLineWidth)) / 2))));
		background-color: var(--color-green);
	}
	.item--guideline dt::after {
		top: -19rem;
		right: 5.9rem;
		height: 21.65rem;
		transform: rotate(180deg);
	}
	.item--guideline dt::before {
		--verticalLineWidth: min(30 / 750 * 100vw, 1.5rem);
		right: calc(5.9rem + ((var(--verticalLineWidth)) / 2));
		width: calc(100% - ((5.9rem + ((var(--verticalLineWidth)) / 2))));
		background-color: var(--color-pink);
	}
	.item--model dt::after {
		top: -14rem;
		left: 6.9rem;
		height: 16.65rem;
		transform: rotate(180deg);
	}
	.item--model dt::before {
		--verticalLineWidth: min(30 / 750 * 100vw, 1.5rem);
		left: calc(6.9rem + ((var(--verticalLineWidth)) / 2));
		width: calc(100% - ((6.9rem + ((var(--verticalLineWidth)) / 2))));
		background-color: var(--color-orange);
	}
	.idealCondition__item dd p {
		width: min(315 / 750 * 100vw, 15.75rem);
		font-size: 1.6rem;
		text-align: center;
	}
	.idealCondition__explanation div {
		width: min(88 / 750 * 100vw, 4.4rem);
	}
	.idealCondition__explanation div::before {
		width: min(88 / 750 * 100vw, 4.4rem);
	}
	.idealCondition__explanation div p {
		border-radius: 0 0 calc(5 / 750 * 100vw) calc(5 / 750 * 100vw);
	}
	.idealCondition__image img {
		height: 27.35rem;
	}
}

.box--basicPolicy {
	display: flex;
}
.box--basicPolicy + .box--basicPolicy {
	margin-top: 3rem;
}
.box--basicPolicy:last-of-type {
	margin-bottom: 10rem;
}
.box--basicPolicy .box__header {
	align-items: normal;
	width: 17%;
	border-radius: 1rem 0 0 1rem;
	padding-top: 4rem;
}
.box--basicPolicy .box__content {
	width: calc(100% - 17%);
	padding: 3.5rem 4rem;
	border-radius: 0 1rem 1rem 0;
}
.box--purpose .box__header {
	background-color: var(--color-skyBlue);
}
.box--domain .box__header {
	background-color: var(--color-blue);
}
.box--philosophy .box__header {
	background-color: var(--color-green);
}
.box--guideline .box__header {
	background-color: var(--color-pink);
}
.box--model .box__header {
	background-color: var(--color-orange);
}
.basicPolicy__title {
	color: #FFF;
	font-size: 2rem;
	font-weight: 600;
}
.box--purpose .basicPolicy__text {
	font-size: 2.6rem;
	font-weight: 600;
}
.box--domain .basicPolicy__text,
.box--philosophy .basicPolicy__text {
	font-size: 2rem;
	font-weight: 600;
}
.box--philosophy .basicPolicy__text {
	margin-bottom: 1rem;
}
.basicPolicy__list li:not(:last-child) {
	margin-bottom: 0.5rem;
}
.box--guideline .basicPolicy__list li {
	display: flex;
}
.box--guideline .basicPolicy__list li p:nth-child(1) {
	width: 6em;
	font-weight: 600;
}
.box--guideline .basicPolicy__list li p:nth-child(1):after {
	content: "：";
	float: right;
}
.box--guideline .basicPolicy__list li p:nth-child(2) {
	width: calc(100% - 6em);
}
.box--model .basicPolicy__list {
	counter-reset: number 0;
}
.box--model .basicPolicy__list li {
	display: flex;
	align-items: baseline;
}
.box--model .basicPolicy__list li::before {
	content: "(" counter(number) ") ";
	counter-increment: number 1;
	width: fit-content;
	margin-right: .5rem;
}
.box--model .basicPolicy__list li p {
	display: flex;
	flex: 1;
}
@media (max-width: 767px) {
	.box--basicPolicy {
		flex-direction: column;
	}
	.box--basicPolicy + .box--basicPolicy {
		margin-top: min(30 / 750 * 100vw, 1.5rem);
	}
	.box--basicPolicy:last-of-type {
		margin-bottom: min(100 / 750 * 100vw, 5rem);
	}
	.box--basicPolicy .box__header {
		justify-content: unset;
		width: 100%;
		border-radius: 0;
		padding: min(25 / 750 * 100vw, 1.25rem) min(50 / 750 * 100vw, 2.5rem);
	}
	.box--basicPolicy .box__content {
		width: 100%;
		border-radius: 0;
		padding: min(40 / 750 * 100vw, 2rem) min(50 / 750 * 100vw, 2.5rem) min(60 / 750 * 100vw, 3rem);
	}
	.basicPolicy__title {
		font-size: 1.8rem;
	}
	.box--purpose .basicPolicy__text {
		font-size: 2.1rem;
	}
	.box--domain .basicPolicy__text,
	.box--philosophy .basicPolicy__text {
		font-size: 1.8rem;
	}
	.box--philosophy .basicPolicy__text {
		margin-bottom: min(30 / 750 * 100vw, 1.5rem);
	}
	.basicPolicy__list li:not(:last-child) {
		margin-bottom: min(20 / 750 * 100vw, 1rem);
	}
	.box--model .basicPolicy__list li::before {
		margin-right: min(10 / 750 * 100vw, .5rem);
	}
}

/* 遷移ボタン */
.policy__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2rem 0;
}
.policy__link .btn--link {
	width: min(100%, 50rem);
}
@media (max-width: 767px) {
	.policy__link {
		gap: min(30 / 750 * 100vw, 1.5rem) 0;
	}
	.policy__link .btn--link {
		width: min(650 / 750 * 100vw, 32.5rem);
	}
}