@charset "UTF-8";

/* define */

:root {
	--color-purple: #905AB6;
	--color-green: #82D457;
	--color-blue: #4385D6;
	--color-yellow: #FDB42D;
}

header h2 img {
	height: 2em;
	min-height: auto;
	max-height: none;
}

main .description {
	margin: 0.25em auto 1em auto;
	color: var(--color-secondary);
	font-size: 80%;
	text-align: center;
}

/* home */
main.home {
	padding: 0 0 1px 0;
}

main.home h1 {
	position: relative;
	width: 100%;
	max-width: 100%;
}

main.home h1 img {
	width: 100%;
}

main.home h1 .btns {
	position: absolute;
	bottom: 10%;
	left: 0;
	right: 0;
	width: 100%;
	height: auto;
	margin: auto;
}

/* entry */
main.entry .progress {
	display: grid;
	margin: 1em 0;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
	gap: 0.25em;
}
main.entry .progress > span {
	display: block;
	width: 100%;
	height: 0.5em;
	background: var(--color-line);
	border-radius: 0.25em;
}
main.entry .progress > span.cur {
	background: var(--color-key);
}

main.entry .mbtibox .cur {
	display: block !important;
}

main .mbtibox {
	padding: 1em 0;
}

main .mbtibox .q {
	color: var(--color-secondary);
	font-size: 85%;
	font-weight: bold;
}

main .mbtibox .a {
	margin-bottom: 1.5em;
	padding-bottom: 1.5em;
	border-bottom: 1px solid var(--color-line);
}
main .mbtibox .a:visible:last-of-type {
	padding-bottom: 0;
	border-bottom: 0;
}

main .mbtibox .a .chk {
	display: flex;
	gap: 0.5em;
	justify-content: space-between;
	align-items: center;
	box-sizing: border-box;
}

main .mbtibox .a .chk label {
	display: block;
	width: 100%;
	max-width: 60px;
	aspect-ratio: 1 / 1;
}

main .mbtibox .a .chk input[type=radio] {
	display: none;
}

main .mbtibox .a .chk span {
	display: block;
	width: 100%;
	height: 100%;
	border: 2px solid var(--color-gray);
	border-radius: 50%;
	cursor: pointer;
}
main .mbtibox .a .chk input[type=radio]:checked + span {
	background: var(--color-gray);
}

main .mbtibox .a .chk label:nth-child(2),
main .mbtibox .a .chk label:nth-child(6) {
	width: 90%;
	max-width: 54px;
}
main .mbtibox .a .chk label:nth-child(3),
main .mbtibox .a .chk label:nth-child(5) {
	width: 80%;
	max-width: 48px;
}
main .mbtibox .a .chk label:nth-child(4) {
	width: 66%;
	max-width: 40px;
}

main .mbtibox .a .chk label:nth-child(1) span,
main .mbtibox .a .chk label:nth-child(2) span,
main .mbtibox .a .chk label:nth-child(3) span {
	border-color: var(--color-key);
}
main .mbtibox .a .chk label:nth-child(1) input[type=radio]:checked + span,
main .mbtibox .a .chk label:nth-child(2) input[type=radio]:checked + span,
main .mbtibox .a .chk label:nth-child(3) input[type=radio]:checked + span {
	background: var(--color-key);
}
main .mbtibox .a .chk label:nth-child(5) span,
main .mbtibox .a .chk label:nth-child(6) span,
main .mbtibox .a .chk label:nth-child(7) span {
	border-color: var(--color-key2);
}
main .mbtibox .a .chk label:nth-child(5) input[type=radio]:checked + span,
main .mbtibox .a .chk label:nth-child(6) input[type=radio]:checked + span,
main .mbtibox .a .chk label:nth-child(7) input[type=radio]:checked + span {
	background: var(--color-key2);
}

main .mbtibox .a .lbl {
	display: flex;
	justify-content: space-between;
	align-items: center;
	box-sizing: border-box;
}

main .mbtibox .a .lbl span {
	width: calc(100% / 2);
	font-size: 85%;
	font-weight: bold;
}

main .mbtibox .a .lbl span:nth-child(1) {
	color: var(--color-key);
}
main .mbtibox .a .lbl span:nth-child(2) {
	color: var(--color-key2);
}

main .mbtibox .a .lbl span:nth-child(1) {
	text-align: left;
}
main .mbtibox .a .lbl span:nth-child(2) {
	text-align: right;
}

main .mbtibox .gender.q {
	margin: 3em 0 2em 0;
	text-align: center;
}

main .mbtibox .gender input[type=radio] {
	display: none;
}

main .mbtibox .gender.a {
	text-align: center;
}

main .mbtibox .gender span {
	display: inline-flex;
	width: 6rem;
	margin: 0 0.75rem;
	border: 2px solid var(--color-gray);
	border-radius: 50%;
	font-size: 80%;
	font-weight: bold;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	aspect-ratio: 1 / 1;
}
main .mbtibox .gender-1 span {
	color: var(--color-key2);
	border-color: var(--color-key2);
}
main .mbtibox .gender-2 span {
	color: var(--color-key);
	border-color: var(--color-key);
}
main .mbtibox .gender-1 input[type=radio]:checked + span {
	background: var(--color-key2);
	color: var(--color-white);
}
main .mbtibox .gender-2 input[type=radio]:checked + span {
	background: var(--color-key);
	color: var(--color-white);
}

/* result */
main.result .container {
	width: 100%;
	max-width: 480px;
	margin: 0 auto;
}

main.result .description {
	text-align: left;
}

main.result .character {
	position: relative;
	color: var(--color-white);
}

main.result .character .btn {
	position: absolute;
	top: 0.5rem;
	right: 1rem;
	padding-right: 1.25rem;
	font-size: 75%;
}

main.result .character .btn a {
	position: relative;
	color: var(--color-white);
}

main.result .character .btn a:after {
	content: "\f059";
	position: absolute;
	top: 0;
	right: -1.5rem;
	width: 1.25em;
	height: 1.25em;
	font-family: "Font Awesome 5 Free";
	font-size: 1rem;
	font-weight: 900;
}

main.result .character h2 {
	width: 100%;
	padding: 1px 0;
	background: transparent no-repeat top center;
	background-size: contain;
	text-align: center;
	aspect-ratio: 750 / 720;
}
main.result .character.purple h2 {
	background-image: url(../image/mbti/bg_purple.png);
}
main.result .character.green h2 {
	background-image: url(../image/mbti/bg_green.png);
}
main.result .character.blue h2 {
	background-image: url(../image/mbti/bg_blue.png);
}
main.result .character.yellow h2 {
	background-image: url(../image/mbti/bg_yellow.png);
}

main.result .character h2 .title {
	max-width: 12em;
	margin: 1.5em auto 0.5em auto;
	border-bottom: 1px solid var(--color-white);
	line-height: 2;
}

main.result .character h2 .subtitle {
	font-size: 60%;
}

main.result .character .icons {
	display: grid;
	grid-template-columns: 1fr 2fr;
}

main.result .character .icons > *:first-child {
	width: 150%;
	z-index: 1;
}
main.result .character .icons > *:last-child {
	padding-top: 1em;
}

main.result .character .description {
	margin: 0 1em 1em 1em;
	padding: 1.85em;
	border-radius: 0.5em;
	color: var(--color-white);
}
main.result .character.purple .description {
	background-color: var(--color-purple);
}
main.result .character.green .description {
	background-color: var(--color-green);
}
main.result .character.blue .description {
	background-color: var(--color-blue);
}
main.result .character.yellow .description {
	background-color: var(--color-yellow);
}

main.result .score h3 {
	margin-top: 2.5em;
	font-size: 100%;
}

main.result .score dl {
	margin: 1em;
	padding: 1em;
	border: 1px solid var(--color-line);
	border-radius: 0.5em;
	color: var(--color-secondary);
}

main.result .score dt {
	font-size: 90%;
	line-height: 2;
}

main.result .score dt .num {
	margin-left: 0.75em;
	font-size: 1rem;
	font-weight: bold;
}
main.result .score dt:nth-of-type(1) .num {
	color: #FD8190;
}
main.result .score dt:nth-of-type(2) .num {
	color: #D88BEF;
}
main.result .score dt:nth-of-type(3) .num {
	color: #8CE147;
}
main.result .score dt:nth-of-type(4) .num {
	color: #FEB06A;
}
main.result .score dt:nth-of-type(5) .num {
	color: #70BBFD;
}

main.result .score dd .bar {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	gap: 2px;
}

main.result .score dd .bar span {
	display: block;
	height: 0.5em;
	border-radius: 0.25em;
}
main.result .score dd.bar1 .bar span {
	background-color: #FBD9E1;
}
main.result .score dd.bar1 .bar-1 span:nth-of-type(1),
main.result .score dd.bar1 .bar-2 span:nth-of-type(2),
main.result .score dd.bar1 .bar-3 span:nth-of-type(3),
main.result .score dd.bar1 .bar-4 span:nth-of-type(4) {
	background-color: #FD8190;
}
main.result .score dd.bar2 .bar span {
	background-color: #EBD9FF;
}
main.result .score dd.bar2 .bar-1 span:nth-of-type(1),
main.result .score dd.bar2 .bar-2 span:nth-of-type(2),
main.result .score dd.bar2 .bar-3 span:nth-of-type(3),
main.result .score dd.bar2 .bar-4 span:nth-of-type(4) {
	background-color: #D88BEF;
}
main.result .score dd.bar3 .bar span {
	background-color: #D0FBB5;
}
main.result .score dd.bar3 .bar-1 span:nth-of-type(1),
main.result .score dd.bar3 .bar-2 span:nth-of-type(2),
main.result .score dd.bar3 .bar-3 span:nth-of-type(3),
main.result .score dd.bar3 .bar-4 span:nth-of-type(4) {
	background-color: #8CE147;
}
main.result .score dd.bar4 .bar span {
	background-color: #FCE1CB;
}
main.result .score dd.bar4 .bar-1 span:nth-of-type(1),
main.result .score dd.bar4 .bar-2 span:nth-of-type(2),
main.result .score dd.bar4 .bar-3 span:nth-of-type(3),
main.result .score dd.bar4 .bar-4 span:nth-of-type(4) {
	background-color: #FEB06A;
}
main.result .score dd.bar5 .bar span {
	background-color: #D4EFFF;
}
main.result .score dd.bar5 .bar-1 span:nth-of-type(1),
main.result .score dd.bar5 .bar-2 span:nth-of-type(2),
main.result .score dd.bar5 .bar-3 span:nth-of-type(3),
main.result .score dd.bar5 .bar-4 span:nth-of-type(4) {
	background-color: #70BBFD;
}

main.result .score dd .lbl {
	display: flex;
	margin-bottom: 2em;
	color: var(--color-tertiary);
	font-size: 75%;
	font-weight: bold;
	justify-content: space-between;
}
main.result .score dd:last-child .lbl {
	margin-bottom: 0;
}

main.result .good,
main.result .warning {
	max-width: 400px;
	margin: auto;
	padding: 1em;
}

main.result .good h3,
main.result .warning h3 {
	position: relative;
	margin-top: 1.5rem;
	font-size: 100%;
}

main.result .good h3:before,
main.result .warning h3:before {
	content: "";
	position: absolute;
	top: -1.5rem;
	left: 0;
	width: 100%;
	height: 1.25rem;
	margin: auto;
	background: transparent no-repeat center center;
	background-size: contain;
}
main.result .good h3:before {
	background-image: url(../image/mbti/icon_good.png);
}
main.result .warning h3:before {
	background-image: url(../image/mbti/icon_warning.png);
}

main.result .good ul,
main.result .warning ul {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.5em;
}

main.result .good li,
main.result .warning li {
	position: relative;
	display: grid;
	padding: 0.75em 0.5em;
	border: 4px solid transparent;
	border-top-width: 2em;
	border-radius: 0.5em;
	grid-template-columns: 25% 1fr;
	gap: 1em;
}
main.result .good.purple li,
main.result .warning.purple li {
	border-color: var(--color-purple);
}
main.result .good.green li,
main.result .warning.green li {
	border-color: var(--color-green);
}
main.result .good.blue li,
main.result .warning.blue li {
	border-color: var(--color-blue);
}
main.result .good.yellow li,
main.result .warning.yellow li {
	border-color: var(--color-yellow);
}

main.result .good .title,
main.result .warning .title {
	position: absolute;
	top: -2em;
	left: 0;
	width: 100%;
	height: 2em;
	line-height: 2em;
	color: var(--color-white);
	text-align: center;
}

main.result .good .text,
main.result .warning .text {
	font-size: 85%;
}

main.result .good .subtitle,
main.result .warning .subtitle {
	margin-bottom: 0.5em;
	padding-bottom: 0.5em;
	border-bottom: 1px dashed var(--color-primary);
}

main.result .good .description,
main.result .warning .description {
	margin: 0;
	font-size: 90%;
}

main.result .recommend {
	position: relative;
	display: grid;
	margin-top: 6em;
	padding: 1em;
	grid-template-columns: 1fr;
	gap: 0.5em;
}
main.result .recommend.purple {
	background-color: var(--color-purple);
}
main.result .recommend.green {
	background-color: var(--color-green);
}
main.result .recommend.blue {
	background-color: var(--color-blue);
}
main.result .recommend.yellow {
	background-color: var(--color-yellow);
}

main.result .recommend:after {
	content: "";
	position: absolute;
	top: -5em;
	left: 0;
	width: 100%;
	height: 5.5em;
	background: url(../image/mbti/recommend_img.png) no-repeat center center;
	background-size: contain;
}

main.result .recommend > div {
	padding: 1.5em 1em;
	background: var(--color-white);
	border-radius: 0.5em;
	text-align: center;
}

main.result .recommend h4 {
	position: relative;
	display: inline-block;
	margin: 2.5rem auto 1em auto;
	padding: 0 1em;
	border: 1px solid var(--color-key);
	border-radius: 1em;
	text-align: center;
	line-height: 2;
}

main.result .recommend h4:after {
	content: "";
	position: absolute;
	top: -2.5rem;
	left: 0;
	width: 100%;
	height: 2rem;
	margin: auto;
	background: transparent no-repeat center center;
	background-size: contain;
}
main.result .recommend .style h4:after {
	background-image: url(../image/mbti/icon_style.png);
}
main.result .recommend .advice h4:after {
	background-image: url(../image/mbti/icon_advice.png);
}

main.result .recommend .description {
	text-align: left;
	margin: 0;
}

main.result .recommend ul.description {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.5em;
}

main.result .recommend .description li {
	position: relative;
	padding-left: 2em;
	line-height: 1.5em;
}

main.result .recommend .description li:after {
	content: "\f058";
	position: absolute;
	top: 0.125em;
	left: 0;
	width: 1.25em;
	height: 1.25em;
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	color: var(--color-key);
}

main.result .x {
	margin: 1em;
	padding: 1em;
	background: var(--color-primary);
	border-radius: 0.5em;
	color: var(--color-white);
}

main.result .x h3 {
	width: 100%;
	margin: 0 0 1em 0;
	padding: 0;
	font-size: 1rem;
	font-weight: bold;
	text-align: center;
}

main.result .x a {
	display: flex;
	width: 11em;
	margin: 0 auto;
	padding: 0.5em 1em;
	background: var(--color-white);
	border-radius: 0.5em;
	font-size: 1rem;
	font-weight: bold;
	text-align: center;
	color: var(--color-primary);
	gap: 0.25em;
	justify-content: center;
	align-items: center;
}

main.result .x a img {
	width: 2.5em;
	border-radius: 0.25em;
}

main.result .tomekyun {
	position: relative;
	margin: 2em 0 3em 0;
}

main.result .tomekyun h3 {
	width: 100%;
	margin: 0;
	padding: 0;
}

main.result .tomekyun .btns {
	position: absolute;
	top: 35.5vw;
	left: 0;
	right: 0;
	width: 18em;
	margin: auto;
}

@media screen and (min-width: 481px) {
	main.result .tomekyun .btns {
		top: 170px
	}
}

main.result .retry a {
	position: relative;
	display: block;
	width: 18em;
	margin: 0 auto;
	padding: 0 0 0.5em 0;
	border-bottom: 1px solid var(--color-primary);
	color: var(--color-primary);
}

main.result .retry a:after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 1.5em;
	height: 1.5em;
	background: url(../image/mbti/retry.png) no-repeat center center;
	background-size: contain;
}

/* list */
main.list h2, 
main.list h3, 
main.list h4 {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
	font-size: 1rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.25;
}

main.list ul {
	margin: 1em 0;
	padding: 1em;
	border-radius: 0.5em;
}
main.list ul.purple {
	background-color: rgba(144, 90, 182, 0.15);
}
main.list ul.green {
	background-color: rgba(130, 212, 87, 0.15);
}
main.list ul.blue {
	background-color: rgba(67, 133, 214, 0.15);
}
main.list ul.yellow {
	background-color: rgba(239, 175, 46, 0.15);
}

main.list ul .icon {
	max-width: 160px;
	margin: auto;
}

main.list ul .keys {
	margin-bottom: 0.25em;
	padding-bottom: 0.25em;
	border-bottom: 1px dashed transparent;
	font-size: 200%;
}
main.list ul.purple .keys {
	color: var(--color-purple);
	border-color: var(--color-purple)
}
main.list ul.green .keys {
	color: var(--color-green);
	border-color: var(--color-green);
}
main.list ul.blue .keys {
	color: var(--color-blue);
	border-color: var(--color-blue);
}
main.list ul.yellow .keys {
	color: var(--color-yellow);
	border-color: var(--color-yellow);
}

main.list ul .title {
	font-size: 125%;
}

main.list ul .subtitle {
	margin: 1em 0;
	padding: 0.5em 1em;
	border-radius: 2em;
	font-size: 80%;
	color: var(--color-white);
	text-align: center;
}
main.list ul.purple .subtitle {
	background-color: var(--color-purple);
}
main.list ul.green .subtitle {
	background-color: var(--color-green);
}
main.list ul.blue .subtitle {
	background-color: var(--color-blue);
}
main.list ul.yellow .subtitle {
	background-color: var(--color-yellow);
}

