section {
	padding: 40px;
}

.visual {
	position: absolute;
	z-index: 1;
	& img {
		position: absolute;
		width: 550px;
		object-fit: cover;
		z-index: 1;
		top: 30px;
		left: 220px;
	}
	& h1 {
		position: absolute;
		width: 180px;
		height: 60px;
		font-size: 40px;
		padding: 8px;
		background: var(--white);
		box-shadow: var(--drop2);
		z-index: 2;
		left: 250px;
		top: 40px;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	& p {
		position: absolute;
		width: 400px;
		top: 120px;
		z-index: 2;
		left: 250px;
		background: var(--white);
		box-shadow: var(--drop2);
		padding: 0 8px;
	}
}

@media screen and (max-width: 1100px) {
	section {
		padding: 0;
	}
	section.visual {
		position: relative;
		margin-top: 0;
		margin-bottom: 0;
		height: fit-content;
		width: inherit;
		& img {
			position: inherit;
			width: 100%;
			height: 152px;
			object-fit: cover;
			top: 0;
			left: 0;
		}
		& h1 {
			top: 50%;
			left: 50%;
			transform: translateX(-50%) translateY(-50%);
			font-size: 24px;
			padding: 0px;
			width: fit-content;
			height: fit-content;
		}
	}
}




/******* 地図成形 *******/
#japan-map div div.area div {
	border: 1px solid var(--gray2);
	text-align: center;
	font-size: 14px;
	display: flex;
 	align-items: center; /* 縦方向中央揃え */
 	justify-content: center; /* 横方向中央揃え */
	border-radius: 6px;
	position: absolute;
	box-sizing: border-box;
	transition: 0.2s;
	z-index: 3;
}
#japan-map div div.area div:hover {
	opacity: 0.8;
	transition: 0.1s;
}

.jpmap-wrapper {
	position: relative;
	min-width: 1100px;
	background-color: var(--white);
	margin-top: 0;
	height: 540px;
	filter: drop-shadow(--drop2);
	&::after {
		position: absolute;
		content: "";
		width: 100%;
		height: 100px;
		bottom: -1px;
		left: 0;
		background: linear-gradient(0deg, var(--background), transparent);
	}
}

#japan-map {
	display: block;
	width: 777px;
	height: 482px;
	background-color: none;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}
#japan-map p.area-title {
	display: none;
}

/* 北海道・東北 */

#hokkaido-touhoku {
	width: 136px;
	display: block;
	height: 265px;
	position: absolute;
	left: 638px;
}
#hokkaido-touhoku div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}

#hokkaido {	
	width: 133px;
	height: 70px;
	left: 3px;
	top: 16px;
}
#aomori {
	width: 134px;
	height: 43px;
	left: 3px;
	top: 96px;
}
#akita {
	width: 67px;
	height: 42px;
	left: 3px;
	top: 139px;

}
#iwate {
	width: 67px;
	height: 42px;
	left: 70px;
	top: 139px;
}
#yamagata {
	width: 67px;
	height: 42px;
	top: 181px;
	left: 3px;
}
#miyagi {
	width: 67px;
	height: 42px;
	top: 181px;
	left: 70px;
}
#fukushima {
	width: 67px;
	height: 42px;
	top: 223px;
	left: 70px;
}

/* 関東 */

#kantou {
	width: 158px;
	display: block;
	height: 174px;
	position: absolute;
	top: 265px;
	left: 623px;
	z-index: 2;
}
#kantou div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}
#ibaraki {
	width: 52px;
	height: 85px;
	top: 0px;
	left: 100px;
}
#tochigi {
	width: 50px;
	height: 42px;
	top: 0px;
	left: 50px;
}
#gunma {
	width: 50px;
	height: 42px;
	top: 0px;
	left: 0px;
}
#saitama {
	width: 100px;
	height: 43px;
	top: 42px;
	left: 0px;
}
#chiba {
	width: 52px;
	height: 84px;
	top: 85px;
	left: 100px;
}
#tokyo {
	width: 100px;
	height: 42px;
	top: 85px;
	left: 0px;
}
#kanagawa {
	width: 100px;
	height: 42px;
	top: 127px;
	left: 0px;
}

/* 中部 */

#tyubu {
	width: 270px;
	height: 211px;
	position: absolute;
	left: 438px;
	top: 223px;
}
#tyubu div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}

#nigata {
	width: 85px;
	height: 42px;
	left: 185px;
}
#toyama {
	width: 67px;
	height: 42px;
	left: 118px;
}
#ishikawa {
	width: 50px;
	height: 57px;
	align-items: start;
	left: 68px;
}
#fukui {
	width: 68px;
	height: 42px;
	left: 0px;
	z-index: 2;
}
#nagano {
	width: 67px;
	height: 85px;
	left: 118px;
	top: 42px
}
#yamanashi {
	width: 67px;
	height: 42px;
	left: 118px;
	top: 127px;
}
#gifu {
	width: 50px;
	height: 55px;
	left: 68px;
	top: 57px
}
#shizuoka {
	width: 67px;
	height: 42px;
	left: 118px;
	top: 169px;
}
#aichi {
	width: 50px;
	height: 57px;
	top: 112px;
	left: 68px;
}

/* 近畿 */

#kinki {
	width: 186px;
	height: 211px;
	position: absolute;
	left: 320px;
	top: 223px;
}
#kinki div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}

#kyoto {
	width: 67px;
	height: 84px;
	left: 51px;
}
#shiga {
	width: 68px;
	height: 42px;
	top: 42px;
	left: 118px;
}
#osaka {
	width: 67px;
	height: 85px;
	top: 84px;
	left: 51px;
}
#nara {
	width: 34px;
	height: 85px;
	top: 84px;
	left: 118px;
}
#mie {
	width: 34px;
	height: 85px;
	top: 84px;
	left: 152px;
}
#wakayama {
	width: 113px;
	height: 42px;
	top: 169px;
	left: 61px;
}
#hyougo {
	width: 51px;
	height: 98px;
	left: 0px;
}

/* 中国 */

#tyugoku {
	width: 151px;
	height: 98px;
	position: absolute;
	left: 169px;
	top: 223px;
}
#tyugoku div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}
#tottori {
	width: 50px;
	height: 49px;
	left: 101px;
}
#okayama {
	width: 50px;
	height: 49px;
	top: 49px;
	left: 101px;
}
#shimane {
	width: 51px;
	height: 49px;
	left: 50px;
}
#hiroshima {
	width: 51px;
	height: 49px;
	top: 49px;
	left: 50px;
}
#yamaguchi {
	width: 50px;
	height: 98px;
	left: 0px;
}

/* 四国 */

#shikoku {
	width: 184px;
	height: 84px;
	position: absolute;
	left: 169px;
	top: 350px;
}
#shikoku div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}
#kagawa {
	width: 92px;
	height: 42px;
	right: 0px;
}
#ehime {
	width: 92px;
	height: 42px;
	left: 0px;
}
#tokushima {
	width: 92px;
	height: 42px;
	right: 0px;
	top: 42px;
}
#kouchi {
	width: 92px;
	height: 42px;
	left: 0px;
	top: 42px;
}

/* 九州・沖縄 */

#kyusyu {
	width: 152px;
	height: 247px;
	position: absolute;
	left: 0px;
	top: 235px;
}
#kyusyu div.area div {
	background-color: var(--gray4);
	color: #ffffff;
}
#fukuoka {
	width: 50px;
	height: 50px;
	left: 101px;
	top: 0px;
}
#saga {
	width: 50px;
	height: 50px;
	left: 51px;
	top: 0px;
}
#nagasaki {
	width: 50px;
	height: 50px;
	left: 1px;
	top: 0px;
}
#oita {
	width: 50px;
	height: 50px;
	left: 101px;
	top: 50px;
}
#kumamoto {
	width: 50px;
	height: 100px;
	left: 51px;
	top: 50px;
}
#miyazaki {
	width: 50px;
	height: 50px;
	left: 101px;
	top: 100px;
}
#kagoshima {
	width: 68px;
	height: 49px;
	left: 83px;
	top: 150px;
}
#okinawa {
	width: 50px;
	height: 50px;
	left: 1px;
	top: 197px;
}

#japan-map div div.area #hokkaido, 
#japan-map div div.area #miyagi,
#japan-map div div.area #saitama,
#japan-map div div.area #chiba,
#japan-map div div.area #nagano,
#japan-map div div.area #tokyo,
#japan-map div div.area #kanagawa,
#japan-map div div.area #shizuoka,
#japan-map div div.area #hyougo,
#japan-map div div.area #tottori,
#japan-map div div.area #hiroshima,
#japan-map div div.area #kouchi,
#japan-map div div.area #kumamoto {
	background-color: var(--blue1);
	color: var(--white);
	& p {
		color: var(--white);
	}
}


/* ==================================== */
/* map-list */
/* ==================================== */


.map-list {
	width: 100%;
	padding: 40px 0;
	margin-bottom: 0;
}

.map-list ul {
	width: 80%;
	flex-wrap: wrap;
	margin: 0 auto;
	justify-content: space-between;
	gap: 12px 0;
}

.map-list ul li {
	width: 47%;
	height: 40px;
	border-radius: 4px;
	position: relative;
}

.map-list ul li a {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
	border-radius: 4px;
	background: var(--blue1);
	color: var(--white);
	font-family: var(--zenkaku);
	font-size: 20px;
	font-weight: 700;
	transition: all .15s;
}

.map-list ul li a:hover {
	transform: translateY(4px);
}

.map-list ul li::before {
	position: absolute;
	content: "";
	width: 100%;
	height: 40px;
	top: 4px;
	border-radius: 4px;
	background: #38319B;
}

.map-list .text {
	width: 80%;
	margin: 0 auto;
	margin-top: 16px;
}

.tsc-wrapper {
	width: 100%;
	margin-bottom: 60px;
}

.tsc-wrapper:last-child {
	margin-bottom: 0;
}

.tsc-wrapper div.toggle-btn {
	position: sticky;
	z-index: 10;
	top: 105px;
	align-items: center;
	justify-content: space-between;
	padding: 0 68px;
	box-shadow: var(--drop1);
	border-radius: 20px 20px 0 0 ;
	background: var(--blue1);
	cursor: pointer;
	& h2 {
		height: 80px;
		color: var(--white);
		justify-content: center;
		align-items: center;
	}
	& span {
		font-size: 40px;
		color: var(--white);
	}
}

/* ================================= */
/* 設問別回答一覧 */
/* .list-link */
/* ================================= */
.list-link {
	width: 100%;
	padding: 0;
	background: var(--gray4);
}
.list-link ul {
	width: 70%;
	justify-content: space-between;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 32px 0;
	margin: 0 auto;
	padding: 52px 0;
}

.list-link ul li {
	justify-content: start;
	width: 49%;
	background: var(--white);
	& a {
		padding: 24px;
	}
	& span {
		margin-right: 20px;
		margin-bottom: 4px;
		font-family: var(--zenkaku);
		color: var(--blue1);
		font-size: 36px;
		font-weight: 700;
	}
	& p {
		font-family: var(--zenkaku);
		font-size: 24px;
		font-weight: 500;
		word-break: keep-all;
		overflow-wrap: break-word;
	}
}

.list-link .answer-list {
	width: 100%;
	background-color: var(--blue1);
	color: var(--white);
	transition: background .5s;
	position: relative;
	&::before {
		position: absolute;
		content: "";
		width: 100%;
		height: 36px;
		top: 0;
		clip-path: polygon(0 0, 100% 0, 50% 100%);
		background: var(--gray4);
	}
	&:hover {
		background: #2f6fc8;
	}
	& a {
		padding: 52px 0;
		padding-top: 104px;
		font-family: var(--zenkaku);
		font-size: 24px;
		font-weight: 500;
	}
	& span {
		content: "";
		height: 11px;
		width: 30px;
		background: url(../img/common/button-line.svg) no-repeat;
		background-size: cover;
		letter-spacing: 0.05rem;
		margin-left: 12px;
		margin-bottom: -6px;
	}
	

}

@media screen and (max-width: 1100px) {
	.list-link ul {
		width: 95%;
		padding: 28px 0;
		gap: 8px 0;
	}
	.list-link ul li {
		justify-content: center;
		width: 100%;
		& a {
			width: 100%;
		}
		& span {
			width: 15%;
			font-size: 20px;
			text-align: end;
		}
		& p {
			width: 80%;
			font-size: 14px;
		}
	}
	.list-link .answer-list {
		&::before {
			height: 20px;
		}
		& a {
			padding: 28px 0;
			padding-top: 56px;
			font-size: 20px;
		}
	}
}

/* ================================= */
/* .tsc-wrapper */
/* ================================= */

.tsc-wrapper div.toggle-bottom {
	display: block;
	width: 100%;
	height: fit-content;
	background: var(--white);
	padding: 40px 0;
	box-shadow: var(--drop1);
}

.tsc-wrapper div.toggle-bottom div.wrapper {
	width: 80%;
	align-items: start;
	margin: 0 auto;
}

.qa-item {
	border-bottom: 2px solid var(--gray4);
	width: 100%;
	& div.q,
	& div.a {
		align-items: center;
	}
	& div.q {
		padding-top: 40px;
		margin-bottom: 28px;
	}
	& div.a {
		padding-bottom: 40px;
		margin-left: 44px;
	}
	& div.q span,
	& div.a span {
		display: flex;
		width: 60px;
		height: 60px;
		border-radius: 30px;
		box-shadow: var(--drop2);
		font-family: var(--zenkaku);
		font-size: 40px;
		font-weight: 500;
		justify-content: center;
		align-items: center;
		margin-right: 28px;
	}
	& div.q span {
		background: var(--blue1);
		color: var(--white);
		padding-bottom: 4px;
	}
	& div.a span {
		background: var(--white);
		color: var(--blue1);
	}
}

.qa-item .text-wrapper {
	width: 90%;
	& p {
		margin-bottom: 12px;
	}
}

.qa-item .text-wrapper,
.qa-item p.title {
	width: calc(100% - 100px);
}

& .face {
	position: sticky;
	top: 186px;
	margin-left: 60px;
	text-align: center;
	& img {
		width: 160px;
		height: 160px;
		border-radius: 50%;
		box-shadow: var(--drop2);
		margin-top: 40px;
		margin-bottom: 12px;
	}
}


@media screen and (max-width: 1100px) {
	section.visual.inner90 {
		margin-bottom: 0;
	}
	.tsc-wrapper {
		margin-bottom: 20px;
	}
	.tsc-wrapper div.toggle-btn {
		height: 48px;
		padding: 0 20px;
		top: 49px;
		border-radius: 16px 16px 0 0;
		& h2 {
			height: inherit;
			font-size: 20px;
		}
		& span {
			font-size: 30px;
		}
	}
	.tsc-wrapper div.toggle-bottom {
		& .face {
			position: inherit;
			margin-left: 0;
		}
		& .face span {
			display: inline-block;
		}
		& .face img {
			margin-top: 0;
			height: 100px;
			width: 100px;
		}
	}
	.tsc-wrapper div.toggle-bottom div.wrapper {
		align-items: center;
		flex-direction: column-reverse;
		width: 100%;
		padding: 0 12px;
	}
	.qa-item {
		& div.q,
		& div.a {
			align-items: inherit;
			& span {
				width: 42px;
				height: 42px;
				font-size: 24px;
				margin-right: 20px;
			}
		}
		& .text-wrapper,
		& p.title {
			width: calc(100% - 60px);
		}
		& div.a {
			margin-left: 0;
		}
	}
}