@charset "UTF-8";

/* define */

:root {
	--color-primary: #383838;
	--color-secondary: #646464;
	--color-tertiary: #8d8d8d;
	--color-gray: #bfbfbf;
	--color-grayLight: #f8f8f8;
	--color-line: #e9e9e9;
	--color-key: #F87F70;
	--color-keyLight: #FFF1EF;
	--color-key2: #6C8FDA;
	--color-white: #fff;

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

/* soon */
main li.soon {
	position: relative;
}
main li.soon:before {
	content: "Coming soon...";
	position: absolute;
	bottom: 0;
	right: 1em;
	color: var(--color-white);
	z-index: 2;
}
main li.soon:after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	border-radius: 0.5em;
	z-index: 1;
}
main li.soon a {
	pointer-events: none;
}
/* soon end */

/* tags */
html {
	margin-top: env(safe-area-inset-top);
	font-size: 16px;
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	color: var(--color-primary);
	-webkit-font-smoothing: antialiased;
}

body {
	position: relative;
}

body:before {
	content: "";
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: env(safe-area-inset-top);
	background: var(--color-primary);
	z-index: 999;
}

a {
	color: var(--color-key);
	text-decoration: none;
}
a.link {
	text-decoration: underline;
}

li {
	list-style: none;
}

img {
	max-width: 100%;
	max-height: 100%;
	vertical-align: bottom;
}

small {
	font-size: 80%;
}

input[type=text],
input[type=password],
textarea,
select {
	width: 100%;
	padding: 0.5em;
	color: var(--color-key);
	border: 1px solid var(--color-line);
	border-radius: 0.5em;
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
}

input[type=checkbox] {
	width: 20px;
	height: 20px;
	vertical-align: text-top;
}

::placeholder {
	color: var(--color-gray);
	font-weight: 500;
	opacity: 1;
}

/* styles */
.text-bold {
	font-weight: bold !important;
}

.text-black {
	color: var(--color-primary) !important;
}

.text-red {
	color: var(--color-key) !important;
}

.text-blue {
	color: var(--color-key2) !important;
}

.text-center {
	text-align: center !important;
}

.text-left {
	text-align: left !important;
}

.text-right {
	text-align: right !important;
}

.text-underline {
	text-decoration: underline !important;
}

.mt-0 { margin-top:0 !important }
.mt-1 { margin-top:.25rem !important }
.mt-2 { margin-top:.5rem !important }
.mt-3 { margin-top:1rem !important }
.mt-4 { margin-top:1.5rem !important }
.mt-5 { margin-top:3rem !important }
.mb-0 { margin-bottom:0 !important }
.mb-1 { margin-bottom:.25rem !important }
.mb-2 { margin-bottom:.5rem !important }
.mb-3 { margin-bottom:1rem !important }
.mb-4 { margin-bottom:1.5rem !important }
.mb-5 { margin-bottom:3rem !important }
.ml-0 { margin-left:0 !important }
.ml-1 { margin-left:.25rem !important }
.ml-2 { margin-left:.5rem !important }
.ml-3 { margin-left:1rem !important }
.ml-4 { margin-left:1.5rem !important }
.ml-5 { margin-left:3rem !important }
.mr-0 { margin-right:0 !important }
.mr-1 { margin-right:.25rem !important }
.mr-2 { margin-right:.5rem !important }
.mr-3 { margin-right:1rem !important }
.mr-4 { margin-right:1.5rem !important }
.mr-5 { margin-right:3rem !important }
.pt-0 { padding-top:0 !important }
.pt-1 { padding-top:.25rem !important }
.pt-2 { padding-top:.5rem !important }
.pt-3 { padding-top:1rem !important }
.pt-4 { padding-top:1.5rem !important }
.pt-5 { padding-top:3rem !important }
.pb-0 { padding-bottom:0 !important }
.pb-1 { padding-bottom:.25rem !important }
.pb-2 { padding-bottom:.5rem !important }
.pb-3 { padding-bottom:1rem !important }
.pb-4 { padding-bottom:1.5rem !important }
.pb-5 { padding-bottom:3rem !important }
.pl-0 { padding-left:0 !important }
.pl-1 { padding-left:.25rem !important }
.pl-2 { padding-left:.5rem !important }
.pl-3 { padding-left:1rem !important }
.pl-4 { padding-left:1.5rem !important }
.pl-5 { padding-left:3rem !important }
.pr-0 { padding-right:0 !important }
.pr-1 { padding-right:.25rem !important }
.pr-2 { padding-right:.5rem !important }
.pr-3 { padding-right:1rem !important }
.pr-4 { padding-right:1.5rem !important }
.pr-5 { padding-right:3rem !important }

span.nobr {
	word-break: keep-all;
	white-space: nowrap;
}

.rank7 {
	color: #519CA7 !important;
}
.rank7bg {
	background-color: #519CA7 !important;
}
.rank6 {
	color: #B38F6F !important;
}
.rank6bg {
	background-color: #B38F6F !important;
}
.rank5 {
	color: #A06070 !important;
}
.rank5bg {
	background-color: #A06070 !important;
}
.rank4 {
	color: #B7A248 !important;
}
.rank4bg {
	background-color: #B7A248 !important;
}
.rank3 {
	color: #BE6363 !important;
}
.rank3bg {
	background-color: #BE6363 !important;
}
.rank2 {
	color: #4779A0 !important;
}
.rank2bg {
	background-color: #4779A0 !important;
}

.rankbox {
	font-weight: bold;
	text-align: center;
}

.rankbox .rank {
	width: 8em;
	margin: auto;
}

.rankbox h3 {
	width: 100%;
	margin: 0;
	font-size: 135%;
}

.rankbox .description {
	margin-bottom: 0.5em;
	font-size: 85%;
	color: var(--color-white);
}

.rankbox .lbl {
	display: grid;
	font-size: 60%;
	font-weight: bold;
	color: var(--color-white);
	text-align: center;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.rankbox .lbl span {
	position: relative;
}

.rankbox .lbl span:before {
	content: "";
	display: block;
	position: absolute;
	top: calc(100% + 0.75em - 1px);
	left: 0;
	right: 0;
	width: 12px;
	height: 12px;
	margin: auto;
	background: var(--color-white);
	border-radius: 50%;
}
.rankbox .lbl-2 span:nth-of-type(1):after,
.rankbox .lbl-3 span:nth-of-type(2):after,
.rankbox .lbl-4 span:nth-of-type(3):after,
.rankbox .lbl-5 span:nth-of-type(4):after,
.rankbox .lbl-6 span:nth-of-type(5):after,
.rankbox .lbl-7 span:nth-of-type(6):after {
	content: "";
	display: block;
	position: absolute;
	top: calc(100% + 0.75em);
	left: 0;
	right: 0;
	width: 10px;
	height: 10px;
	margin: auto;
	background: var(--color-key);
	border-radius: 50%;
}

.rankbox .bar {
	display: grid;
	margin: 0.75em 0;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}
.rankbox .bar span {
	height: 2px;
	background: var(--color-white);
}
.rankbox .bar span:first-of-type {
	width: 50%;
	margin-left: 50%;
}
.rankbox .bar span:last-of-type {
	width: 50%;
	margin-right: 50%;
}

/* header */
header {
	display: flex;
	position: fixed;
	top: calc(0 + env(safe-area-inset-top));
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px;
	height: 12vw;
	min-height: 45px;
	max-height: 96px;
	margin: auto;
	padding: 0 2.5em;
	align-items: center;
	justify-content: center;
	background: var(--color-white);
	box-shadow: -2px -2px 10px 0px var(--color-line);
	z-index: 90;
}

header:before,
header:after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	width: 4px;
	height: 100%;
	background: var(--color-white);
	z-index: 91;
}
header:before {
	left: -5px;
}
header:after {
	right: -5px;
}

header .arrow_back,
header .arrow_menu {
	position: absolute;
	display: block;
	top: 0;
	bottom: 0;
	left: 0.75em;
	width: 1.5em;
	height: 1.5em;
	margin: auto;
	text-align: center;
}
header .arrow_menu {
	right: 0.75em;
	left: auto;
}

header .arrow_back:before,
header .arrow_menu:before {
	content: "\f053";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	width: 1em;
	height: 1em;
	font-size: 150%;
	color: var(--color-secondary);
	font-family: "Font Awesome 7 Free";
	font-weight: 900;
	line-height: 1em;
	pointer-events: none;
}
header .arrow_menu:before {
	content: "\f142";
	color: var(--color-tertiary);
}
header .arrow_menu.open:before {
	content: "\f00d";
}

header .arrow_back a,
header .arrow_menu a {
	display: block;
	width: 100%;
	height: 100%;
}

header.hasLogo img {
	position: absolute;
	display: block;
	top: 0;
	bottom: 0;
	left: 2.5em;
	max-height: 2.5em;
	margin: auto;
	text-align: center;
}

header h2 {
	font-size: 100%;
}

header h2 img {
	height: calc(12vw - 2px);
	min-height: 43px;
	max-height: 94px;
}

/* main */
main {
	position: relative;
	width: 100%;
	max-width: 800px;
	height: 100%;
	margin: auto;
	padding: 48px 0 70px 0;
	word-break: break-all;
	box-shadow: 0 -5px 5px var(--color-gray);
	inset: 0;
	box-sizing: border-box;
}
main:before,
main:after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	width: 4px;
	height: 100%;
	background: var(--color-white);
	z-index: 91;
}
main:before {
	left: -5px;
}
main:after {
	right: -5px;
}

.nologin main {
	padding-bottom: 1px;
}

main h3,
main > * {
	width: 88%;
	max-width: 480px;
	margin: 0 auto 1rem auto;
}

main h3 {
	margin-top: 1rem;
	text-align: center;
	font-size: 135%;
}

.nologin main h3 {
	font-size: 120%;
}

main form {
	display: block;
}

main p.errMsg {
	color: var(--color-key) !important;
}

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

main ul.payments {
	display: grid;
	margin-top: 1em;
	grid-template-columns: 1fr;
	gap: 1em;
}

main ul.payments li {
	margin-left: 0;
	text-align: left;
	list-style: none;
}

main ul.payments li input[type=radio] {
	display: none;
}

main ul.payments li label {
	display: flex;
	min-height: 99px;
	padding: 0.5em 0.75em;
	border: 2px solid transparent;
	border-radius: 0.5em;
	font-size: 90%;
	text-decoration: none;
	box-shadow: 1px 1px 2px 2px var(--color-line);
	flex-direction: column;
	justify-content: center;
	cursor: pointer;
}

main ul.payments li input[type=radio]:checked + label {
	border-color: var(--color-key);
}

main ul.payments li img {
	max-width: 90%;
	vertical-align: middle;
}

/* common objects */

/* proclivity edit */
main .proclivityeditbox .proclivity_menu {
	display: grid;
	margin: 2em auto 0.5em auto;
	padding: 0.5em;
	gap: 0.5em;
	background: var(--color-grayLight);
	border: 1px solid var(--color-line);
	border-radius: 1.5em;
	font-size: 75%;
	font-weight: bold;
	grid-template-columns: 1fr 1fr 1fr;
	box-sizing: border-box;
}

main .proclivityeditbox .proclivity_menu li {
	line-height: 2.5;
}

main .proclivityeditbox .proclivity_menu li a {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 1.25em;
	color: var(--color-secondary);
	text-decoration: none;
	text-align: center;
}
main .proclivityeditbox .proclivity_menu li.cur a {
	background: var(--color-key);
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
	color: var(--color-white);
	pointer-events: none;
}

main .proclivityeditbox .proclivity_category {
	max-width: 100%;
	overflow-x: scroll;
}

main .proclivityeditbox .proclivity_category ul {
	display: flex;
	min-width: 27.5em;
	margin: 0.5rem 0;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--color-line);
	font-size: 75%;
	font-weight: bold;
	justify-content: space-between;
}

main .proclivityeditbox .proclivity_category li {
	position: relative;
	padding-right: 1.5em;
}

main .proclivityeditbox .proclivity_category li a {
	color: var(--color-tertiary);
}
main .proclivityeditbox .proclivity_category li.cur2 a {
	color: var(--color-key);
}

main .proclivityeditbox .proclivity_category .num {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	display: block;
	width: 1.5em;
	height: 1.5em;
	margin: auto;
	line-height: calc(1.5em - 2px);
	background: var(--color-key);
	border-radius: 50%;
	font-size: 85%;
	color: var(--color-white);
	text-align: center;
}

main .proclivityeditbox .proclivity_list,
main.profile .proclivity ul,
main.step3 .area_wrap ul,
main .mini_profile .tags {
	display: none;
	gap: 0.35em 0.5em;
	justify-content: flex-start;
	align-items: center;
	flex-wrap: wrap;
}

main .proclivityeditbox .proclivity_list.cur,
main.profile .proclivity ul,
main.step3 .area_wrap ul,
main .mini_profile .tags {
	display: flex;
}

main .proclivityeditbox .proclivity_list input[type=checkbox],
main.step3 .area_wrap .areas input[type=checkbox] {
	display: none;
}

main .proclivityeditbox .proclivity_list label,
main.profile .proclivity ul li,
main.step3 .area_wrap ul label,
main .mini_profile .tags li {
	display: inline-block;
	padding: 0.5em 1em calc(0.5em + 2px) 1em;
	background: var(--color-white);
	border: 1px solid var(--color-key);
	border-radius: 1.5em;
	font-size: 65%;
	color: var(--color-key);
	line-height: 1;
	box-sizing: border-box;
}

main .proclivityeditbox .proclivity_list input[type=checkbox]:checked + label,
main.profile .proclivity ul li,
main.step3 .area_wrap ul input[type=checkbox]:checked + label,
main .mini_profile .tags li {
	background: var(--color-key);
	color: var(--color-white);
}

main .proclivityeditbox .proclivity_list label,
main.step3 .area_wrap ul label {
	cursor: pointer;
}
/* proclivity edit end */

/* fetish, association */
main .fetishbox dt,
main .associationbox dt {
	margin-top: 1em;
}

main .fetishbox .select_wrap,
main .associationbox .select_wrap {
	margin: 0;
	border: 0;
}

main .fetishbox .select_wrap:after,
main .associationbox .select_wrap:after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1rem;
	width: calc(0.5rem + 1px);
	height: 1rem;
	margin: auto;
	background: url(../image/arrow_on.svg) center right no-repeat;
	background-size: contain;
	transform: rotate(-90deg);
}
main .fetishbox .valid .select_wrap:after,
main .associationbox .valid .select_wrap:after {
	transform: rotate(90deg);
}

main .fetishbox select,
main .associationbox select {
	padding: 0.75em 0.75em;
	color: var(--color-primary);
}
main .fetishbox .valid select,
main .associationbox .valid select {
	border-radius: 0.5em 0.5em 0 0;
	color: var(--color-key);
}
main .fetishbox .valid + dd textarea,
main .associationbox .valid + dd input[type=text] {
	border-top: 0;
	border-radius: 0 0 0.5em 0.5em;
	color: var(--color-key);
}

main .fetishbox textarea {
	width: 100%;
	height: 4.5em;
	padding: 0.5em 0.75em;
	box-sizing: border-box;
}

main .associationbox input[type=text] {
	width: 100%;
	padding: 0.5em 0.75em;
	box-sizing: border-box;
}
/* fetish end */

/* tag */
main .tagsbox input[type=checkbox] {
	display: none;
}

main .tagsbox {
	display: grid;
	max-width: 320px;
	margin: auto;
	grid-template-columns: 1fr 1fr;
	gap: 1em;
}

main .tagsbox label {
	display: flex;
	width: 100%;
	height: 100%;
	padding: 1em 0;
	background: var(--color-white);
	border: 1px solid var(--color-line);
	border-radius: 0.5em;
	justify-content: center;
	align-items: center;
	font-size: 85%;
	line-height: 1.1;
	box-sizing: border-box;
	cursor: pointer;
}

main .tagsbox input[type="checkbox"]:checked + label {
	background: var(--color-key);
	border-color: var(--color-key);
	color: var(--color-white);
	font-weight: bold;
}
/* tags */

/* aboutme edit */
main .aboutmeeditbox {
	padding: 0.5em 0;
	text-align: center;
}

main .aboutmebox {
	text-align: center;
}

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

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

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

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

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

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

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

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

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

main .aboutmeeditbox .a .lbl span,
main .aboutmebox .a .lbl span {
	width: calc(100% / 7);
	max-width: 60px;
	font-size: 85%;
	font-weight: bold;
}

main .aboutmeeditbox .a .lbl span:nth-child(1),
main .aboutmebox .a .lbl span:nth-child(1) {
	color: var(--color-key);
}
main .aboutmeeditbox .a .lbl span:nth-child(2),
main .aboutmebox .a .lbl span:nth-child(2) {
	color: var(--color-key2);
}
/* aboutme edit */

/* plans */  
main ul.plans {
	display: grid;
	margin: 1.5em 0;
	grid-template-columns: 1fr;
	gap: 1.5em;
}

main ul.plans li {
	margin-left: 0;
	list-style: none;
}

main ul.plans li.plan12 .period {
	background-color: #FF4553;
}
main ul.plans li.plan12 .merit {
	color: #FF4553;
}
main ul.plans li.plan12 .point2 {
	background-color: #FF4553;
}
main ul.plans li.plan6 .period {
	background-color: #FF6B26;
}
main ul.plans li.plan6 .merit {
	color: #FF6B26;
}
main ul.plans li.plan6 .point2 {
	background-color: #FF6B26;
}
main ul.plans li.plan3 .period {
	background-color: #FFAD16;
}
main ul.plans li.plan3 .merit {
	color: #FFAD16;
}
main ul.plans li.plan3 .point2 {
	background-color: #FFAD16;
}

main ul.plans li a {
	display: grid;
	min-height: 99px;
	border-radius: 0.5em;
	grid-template-columns: 1fr 2fr;
	text-decoration: none;
	box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.25);
}

main ul.plans li .period {
	display: flex;
	background: var(--color-gray);
	border-radius: 0.5em 0 0 0.5em;
	color: var(--color-white);
	font-weight: bold;
	line-height: 1.1;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
}

main ul.plans li .price {
	position: relative;
	display: flex;
	padding: 0.75em 0;
	color: var(--color-primary);
	line-height: 2;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

main ul.plans .point {
	position: absolute;
	display: block;
	top: -0.5rem;
	right: 1em;
	width: 4.5rem;
	height: 1.75em;
	background: linear-gradient(90deg, #A2845E 0%, #C89B61 37.5%, #AD844F 95%);
	border-radius: 1em;
	font-size: 75%;
	color: var(--color-white);
	text-align: center;
	line-height: calc(1.75em - 2px);
	pointer-events: none;
}

main ul.plans .point2 {
	position: absolute;
	display: flex;
	top: -0.5rem;
	right: -0.5rem;
	width: 3.5rem;
	background: var(--color-gray);
	border-radius: 50%;
	font-size: 75%;
	font-weight: bold;
	color: var(--color-white);
	line-height: 1.1;
	text-align: center;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	aspect-ratio: 1 / 1;
	pointer-events: none;
}

main ul.plans .point2 strong {
	font-size: 120%;
}

main ul.plans .num {
	font-size: 180%;
	font-weight: bold;
	text-align: center;
	line-height: 1.1;
}

main .merit {
	margin-top: 0.5em;
	padding: 0.25em 0.5em;
	background: var(--color-white);
	border-radius: 1em;
	font-size: 80%;
	color: var(--color-gray);
	font-weight: bold;
}

main .total {
	font-size: 80%;
	text-align: right;
}
/* plans end */

/* bgcodes */
main .bgCodes label {
	display: block;
	margin-bottom: 0.5em;
	font-size: 115%;
	color: var(--color-white);
	text-shadow: -1px -1px 1px rgba(0, 0, 0, 0.5), -1px 1px 1px rgba(0, 0, 0, 0.5), 1px -1px 1px rgba(0, 0, 0, 0.5), 1px 1px 1px rgba(0, 0, 0, 0.5);
	cursor: pointer;
}

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

main .bgCodes label span {
	position: relative;
	display: block;
	min-height: 4.5em;
	padding: 0.5em 1em;
}

main .bgCodes label span:after {
	content: "";
	display: block;
	position: absolute;
	top: 5px;
	left: 5px;
	width: calc(100% - 10px);
	height: calc(100% - 10px);
	border: 2px solid transparent;
	box-shadow: -1px -1px 1px transparent, -1px 1px 1px transparent, 1px -1px 1px transparent, 1px 1px 1px transparent;
}

main .bgCodes label input:checked + span:after {
	border: 2px solid blue;
	box-shadow: -1px -1px 1px var(--color-white), -1px 1px 1px var(--color-white), 1px -1px 1px var(--color-white), 1px 1px 1px var(--color-white);
}
/* bgcodes end */

/* board */
main .boardbox {
	width: 95%;
	margin-top: 1em;
	margin-bottom: 4em;
}

main .boardbox .item {
	margin-bottom: 1em;
}

main .boardbox .item {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1.3fr;
}

main .boardbox .item .icon {
	position: absolute;
	top: -0.25em;
	left: 0.25em;
	width: 3em;
	z-index: 1;
}

main .boardbox .item > a {
	display: block;
}

main .boardbox .end a,
main .boardbox a.closed {
	cursor: default;
	pointer-events: none;
}

main .boardbox .item .photo {
	position: relative;
	border-radius: 1em;
}

main .boardbox .item .photo .img {
	width: 100%;
	aspect-ratio: 160 / 200;
}
main .boardbox .item .photo .img img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 1em;
	object-fit: cover;
	object-position: center center;
}

main .boardbox .item .photo .name {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	margin: 0;
	padding: 0.25em;
	font-size: 85%;
	color: var(--color-white);
	text-shadow: 0 0 3px var(--color-primary);
	box-sizing: border-box;
}

main .boardbox .item .txt {
	position: relative;
	aspect-ratio: 280 / 270;
	overflow-y: scroll;
}

main .boardbox .item .period {
	padding: 0 0.5rem;
	font-size: 70%;
	color: var(--color-secondary);
	line-height: 1.75;
}

main .boardbox .item .period label {
	display: inline-block;
	margin-right: 0.5em;
	padding: 0 0.5em;
	background: var(--color-gray);
	border-radius: 2px;
	color: var(--color-white);
}

main .boardbox .item .txt h3 {
	width: auto;
	margin: 0.35rem 0.5rem;
	font-size: 85%;
	color: var(--color-key);
	text-align: left;
}

main .boardbox .item .tags {
	display: flex;
	margin: 0 0.5rem;
	font-size: 65%;
	gap: 0.45em;
	justify-content: start;
	flex-wrap: wrap;
}
main .boardbox .item2 .tags {
	flex-wrap: wrap;
}

main .boardbox .item .tags li {
	height: 1.75em;
	padding: 0 0.35em;
	border-radius: 1em;
	border: 1px solid var(--color-key);
	color: var(--color-key);
	line-height: calc(1.75em - 4px);
}

main .boardbox .item .description {
	position: relative;
	margin: 0.35rem 0.5rem 0 0.5rem;
	height: 6em;
	color: var(--color-secondary);
	text-align: left;
	line-height: 1.5;
	overflow: hidden;
}

main .boardbox .open .description {
	height: auto;
	min-height: 6em;
}

main .boardbox .item .more {
	position: absolute;
	display: none;
	bottom: 0.125em;
	right: 0em;
	width: 2.5em;
	height: 2em;
	background: var(--color-white);
	font-size: 70%;
	font-weight: 300;
	color: var(--color-primary);
	text-align: right;
	z-index: 1;
}

main .boardbox .item .hasMore .more {
	display: flex;
	background: var(--color-white);
	color: transparent;
	align-items: center;
	justify-content: center;
}

main .boardbox .item .hasMore .more:after {
	content: "...";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 1em;
	height: 1em;
	margin: auto;
	font-weight: 900;
	color: var(--color-primary);
	line-height: 1;
}

/* board end */

/* mini profile */
main .mini_profile > li {
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
	border-radius: 0.5em;
}

main .mini_profile a {
    position: relative;
	display: block;
	width: 100%;
	height: 100%;
    padding-bottom: 3rem;
}

main .mini_profile .img {
	position: relative;
}

main .mini_profile .img img {
	width: 100%;
	border-radius: 0.5em 0.5em 0 0;
	aspect-ratio: 135 / 168;
	object-fit: cover;
}

main .mini_profile .txt {
	display: block;
	position: absolute;
	left: 0.5em;
	bottom: 1em;
	font-family: 'Inter', sans-serif;
	color: var(--color-white);
	text-shadow: 0 0 3px var(--color-primary);
}

main .mini_profile .txt .name {
	font-size: 75%;
	font-weight: bold;
}

main .mini_profile .txt .area {
	font-size: 65%;
}

main .mini_profile .txt span {
	display: block;
}

main .mini_profile .tags {
	max-height: 3.5em;
	margin: 0.5rem;
	gap: 0.5em;
	overflow: hidden;
}

main .mini_profile .tags li {
	padding: 0.5em;
}

main .mini_profile .description {
	display: -webkit-box;
    position: absolute;
    bottom: 0;
    left: 0;
    width: calc(100% - 1rem);
    height: 2rem;
	margin: 0 0.5rem 1em 0.5rem;
	font-family: 'Roboto', sans-serif;
	font-size: 65%;
	color: var(--color-primary);
	text-align: left;
	line-height: 1.5;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
/* mini profile end */

/* maintenance */
main.maintenance {
	position: fixed;
	display: flex;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 1px 0;
	height: 100vh;
	background: linear-gradient(349.37deg, #FFDEDE 2.69%, #FFE0C9 28.46%, #FFEBE2 56.89%, #FFFAFA 97.65%);
	text-align: center;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	font-size: 150%;
	color: var(--color-tertiary);
	text-decoration: none;
	box-sizing: border-box;
}

main.maintenance > * {
	margin : 0;
}
main.maintenance > h3 {
	margin-bottom: 1rem;
}

/* sent */
main.sent h3 {
	font-size: 125%;
}

main.sent form {
	width: 88%;
	max-width: 480px;
	margin: 0 auto 1rem auto;
	padding: 1.25em 10.5% 0 10.5%;
}

main.sent .description {
	font-size: 75%;
	line-height: 1.5;
	text-align: left;
}

main.sent .btns {
	margin-top: 5em;
}

/* ready */
main.ready > * {
	width: 88%;
	max-width: 480px;
}

main.ready h3 {
	color: var(--color-gray);
	margin-bottom: 1em;
}

main.ready h3 img {
	width: 8rem;
}

main.ready .help {
	width: 17.5rem;
	margin: -5.5rem auto 4rem auto;
}

main.ready .help .btnQuestion {
	margin: 0 0 0 auto;
	z-index: 1;
}

main.ready a.btnHint,
main.unready a.btnHint {
	position: relative;
	display: inline-block;
	width: 19.5rem;
	max-width: 100%;
	margin-top: 0.5em;
	padding-right: 1em;
	border: 1px solid var(--color-key);
	background: var(--color-keyLight);
	border-radius: 1em;
	line-height: 3;
	font-size: 95%;
	color: var(--color-key);
	text-align: center;
	box-sizing: border-box;
}
main.unready a.btnHint {
	margin-top: 1.5em;
	color: var(--color-primary);
	border-color: var(--color-primary);
	background: var(--color-white);
}

main.ready a.btnHint:after,
main.unready a.btnHint:after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0.5rem;
	width: calc(0.5rem + 1px);
	height: 1rem;
	margin: auto;
	background: url(../image/arrow_on.svg) center right no-repeat;
	background-size: contain;
}

main.profile .frame {
	width: calc(100% - 2em);
	margin: 1em auto;
	border-radius: 1em;
	box-shadow: 0px 0px 15.1px rgba(0, 0, 0, 0.25);
}

main.profile .frame > div {
	padding: 1px 1em;
}

main.profile h3 {
	margin: 1.5em 0 0.75em 0;
	padding: 0;
	font-size: 100%;
	font-weight: 500;
	text-align: left;
}

main.profile .profile_image,
main.recommend .profile_image {
	position: relative;
	padding: 0 !important;
	background: transparent;
}

main.profile .profile_image .img,
main.recommend .profile_image .img {
	border-radius: 1em 1em 0 0;
	overflow: hidden;
}

main.profile .profile_image .img img,
main.recommend .profile_image .img img {
	width: 100%;
	aspect-ratio: 343 / 494;
	object-fit: cover;
}
main.recommend .profile_image .img img {
	border-radius: 1rem;
}

main.profile .profile_image .name,
main.recommend .profile_image .name {
	position: absolute;
	left: 1rem;
	bottom: 3rem;
	width: calc(100% - 9rem);
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 115%;
	font-weight: bold;
	color: var(--color-white);
	text-shadow: 0 0 3px var(--color-primary);
	text-align: left;
	pointer-events: none;
	z-index: 1;
	overflow: hidden;
}

main.profile .profile_image .name .mbti {
	display: inline-block;
	margin-bottom: 0.5em;
	padding: 0.25em 0.75em;
	border-radius: 0.5em;
	font-size: 75%;
	text-shadow: none;
}
main.profile .profile_image .name .mbti.purple {
	background: var(--color-purple);
}
main.profile .profile_image .name .mbti.green {
	background: var(--color-green);
}
main.profile .profile_image .name .mbti.blue {
	background: var(--color-blue);
}
main.profile .profile_image .name .mbti.yellow {
	background: var(--color-yellow);
}

main.profile .profile_image .name span,
main.recommend .profile_image .name span {
	font-size: 1rem;
}

main.profile .profile_image .name .area,
main.recommend .profile_image .name .area {
	font-weight: 500;
}

main.profile .profile_image .icons,
main.recommend .profile_image .icons {
	position: absolute;
	display: grid;
	right: 1rem;
	bottom: 3rem;
	width: 6em;
	grid-template-columns: 1fr 1fr;
	gap: 0.5em;
	z-index: 1;
}

main.profile .profile_image .icons a {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 0.5em;
	overflow: hidden;
}

main .profile_image .kyun_text,
main .profile_image .pien_text {
	position: absolute;
	display: none;
	top: 0;
	left: 0;
	margin: auto;
	width: 100%;
	height: 100%;
	border-radius: 1rem;
	font-size: 4rem;
	color: var(--color-white);
	font-weight: 900;
	line-height: 1;
	text-align: center;
	justify-content: center;
	align-items: center;
}
main .profile_image .kyun_text {
	text-shadow:
		0 0 8px var(--color-key),
		4px 4px 4px var(--color-key),
		-4px -4px 4px var(--color-key),
		4px -4px 4px var(--color-key),
		-4px 4px 4px var(--color-key);
}
main .profile_image .pien_text {
	background: rgba(0, 0, 0, 0.8);
}

main.profile .frame .letter {
	position: relative;
	margin-top: -2rem;
	z-index: 1;
}

main.profile .letter .box {
	padding: 0.5em 1em;
	background: var(--color-white);
	border-radius: 1em;
	box-shadow: 0px 0px 9px 0px rgba(44, 44, 44, 0.25);
}

main.profile .letter h3 {
	margin: 0;
	color: var(--color-key);
	font-weight: bold;
}

main.profile .letter p {
	color: var(--color-tertiary);
	font-size: 85%;
	font-weight: 350;
}

main.profile .infos ul {
	display: block;
}

main.profile .infos li,
main.profile .profiles dt {
	display: inline-block;
	margin: 0 0.25rem 0.5rem 0;
	padding: 0.35em 0.5em;
	background: var(--color-grayLight);
	border-radius: 1em;
	color: var(--color-secondary);
	line-height: 1.1;
}

main.profile .profiles dd {
	margin-bottom: 0.5rem;
	font-size: 85%;
	color: var(--color-secondary);
}

main.profile .text > div {
	font-size: 85%;
	color: var(--color-secondary);
}

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

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

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

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

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

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

main.profile .proclivity {
	padding-top: 2em !important;
}

main.profile .proclivity h3 {
	margin: 1em 0;
}

main.profile .proclivity ul {
	padding-bottom: 1em;
	border-bottom: 1px solid var(--color-line);
}

main.profile .trend h3 .btnQuestion {
	display: inline-block;
	width: 1em;
	height: 1em;
}

main.profile .trend .box,
.trendHelpBox .box {
	display: grid;
	font-size: 60%;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	grid-template-columns: 1fr 1fr 1fr;
}

main.profile .trend .box img,
.trendHelpBox .box img {
	width: 80%;
}

main.profile .trend .box p span {
	font-size: 0.75rem;
}

main.profile .trend .s_talk,
.trendHelpBox .s_talk {
	color: #92C36C;
}
main.profile .trend .s_freq,
.trendHelpBox .s_freq {
	color: #F58A8C;
}
main.profile .trend .s_9_12,
.trendHelpBox .s_9_12 {
	color: #fbc10b;
}
main.profile .trend .s_13_16,
.trendHelpBox .s_13_16 {
	color: #ff914d;
}
main.profile .trend .s_17_20,
.trendHelpBox .s_17_20 {
	color: #994133;
}
main.profile .trend .s_21_24,
.trendHelpBox .s_21_24 {
	color: #013F92;
}

main.profile .trend .unopen {
	position: relative;
	display: block;
}

main.profile .trend .unopen:after {
	content: "ポイントを消費して閲覧する";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	height: 1.5em;
	line-height: 1.5em;
	margin: auto;
	color: var(--color-white);
	font-size: 85%;
	text-shadow: 0 0 3px rgba(0, 0, 0, 0.8), 0 0 4px rgba(0, 0, 0, 0.8), 0 0 5px rgba(0, 0, 0, 0.8);
	text-align: center;
}

main.profile .sub_images {
	padding: 1px 0 !important;
}

main.profile .sub_images .img {
	margin-bottom: 1.25rem;
	padding: 1em;
	border-radius: 1em;
	box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);
	overflow: hidden;
}
main.profile .sub_images .img:last-child {
	margin-bottom: 0;
}

main.profile .sub_images .img img {
	display: block;
	width: 100%;
	border-radius: 1em;
}

main.profile .sub_images .q,
main.profile .sub_images .a {
	display: block;
	width: 100%;
}

main.profile .sub_images .q {
	margin: 1.5rem 0 0.35rem 0;
	font-size: 1rem;
	font-weight: bold;
}

main.profile .sub_images .a {
	color: var(--color-secondary);
}

main.point h3.pt {
	position: relative;
	margin: 0 auto;
	padding: 1.15rem 0 0.5rem 0;
	background: none;
	border: 0;
	font-size: 150%;
	color: var(--color-key);
	text-align: center;
	line-height: 1.5;
}

main.point h3.pt .icon {
	position: relative;
	display: inline-block;
	width: 1.35em;
	height: 1.35em;
	line-height: 1;
	vertical-align: text-bottom;
}

main.point h3.pt .icon:before,
main.point h3.pt .icon:after {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 1em;
	height: 1em;
	margin: auto;
	font-family: "Font Awesome 7 Free";
	line-height: 1;
}
main.point h3.pt .icon:before {
	content: "\f111";
	font-weight: normal;
	font-size: 1.35rem;
}
main.point h3.pt .icon:after {
	content: "\0050";
	font-weight: 900;
	font-size: 1rem;
}

main.point .tips {
	width: 7.5em;
	margin: auto;
	background: var(--color-keyLight);
	border: 1px solid var(--color-key);
	border-radius: 1em;
	font-size: 80%;
	color: var(--color-key);
	text-align: center;
	line-height: 2;
}

/* report */
main.report form {
	margin: 1em auto 2em auto;
	font-size: 85%;
}

main.report .errMsg {
	margin-bottom: 0.5em;
}

main.report h3 {
	width: 100%;
	margin-bottom: 0.5rem;
	font-size: 1rem;
	font-weight: bold;
}

main.report .list li {
	margin-bottom: 1em;
}

main.report textarea {
	height: 10em;
}

main.report .textarea_wrap {
	margin-bottom: 0;
}

main.report .textarea_wrap label {
	top: -0.5em;
	font-size: 0.85rem;
}

main.report .description li {
	margin-bottom: 0.5em;
}

main.report .description li:before {
	content: "\2027";
}

.floatingBox {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 85px;
	width: 88%;
	max-width: calc(480px * 0.88);
	margin: auto;
	padding-top: 0.75rem;
	background: transparent;
	text-align: center;
	z-index: 2;
}

.submenuBox,
.confirmBox,
.alertBox,
.loadingBox {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px;
	height: 100%;
	margin: auto;
	background: rgba(0, 0, 0, 0.75);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 999;
}

.submenuBox > div,
.confirmBox > div,
.alertBox > div,
.loadingBox > div {
	width: 92%;
	max-width: 480px;
	height: fit-content;
	padding: 2rem 1rem;
	background: var(--color-white);
	border-radius: 2em;
}
.submenuBox > div {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	margin: auto;
	height: auto;
	border-radius: 2em 2em 0 0;
}
.loadingBox > div {
	background: transparent;
	text-align: center;
}
.loadingBox p {
	margin: 1em auto;
	color: var(--color-white);
}

#submenu li a {
	display: block;
	width: 100%;
	height: 3rem;
	margin-bottom: 0.25em;
	border: 1px solid var(--color-line);
	border-radius: 0.5rem;
	color: var(--color-secondary);
	font-size: 85%;
	font-weight: bold;
	line-height: 3rem;
	text-align: center;
	box-sizing: border-box;
}
#submenu li a:hover {
	background: var(--color-keyLight);
	border-color: var(--color-key);
	color: var(--color-key);
}

.confirmBox h3,
.alertBox h3 {
	position: relative;
	margin-bottom: 1rem;
	text-align: center;
}

.alertBox h3 {
	color: #fab005;
	font-size: 150%;
	text-align: center;
}

.confirmBox p,
.alertBox p {
	font-size: 85%;
	line-height: 1.25;
	margin-bottom: 1em;
	text-align: center;
}

.confirmBox p small {
	font-size: 85%;
	color: var(--color-key);
}

.confirmBox .btns,
.alertBox .btns {
	display: flex;
}

.confirmBox .btns a.btn,
.confirmBox .btns a.btn3,
.alertBox .btns a.btn3 {
	width: 7.5rem;
	height: 3.75rem;
	line-height: 3.75rem;
}
.alertBox .btns a.btn {
	width: 15rem;
	height: 3.75rem;
	line-height: 3.75rem;
}

.confirmBox .closeBtn,
.alertBox .closeBtn {
	width: 1em;
	height: 1em;
	margin: 1rem 0 2rem 0;
	font-size: 250%;
	text-align: center;
}

.confirmBox .closeBtn a,
.alertBox .closeBtn a {
	color: var(--color-white);
}

.submenuBox .closeBtn {
	position: absolute;
	top: -1.5em;
	left: 0;
	right: 0;
	width: 1em;
	height: 1em;
	margin: auto;
	font-size: 200%;
	text-align: center;
	line-height: 1;
}

.submenuBox .closeBtn a {
	color: var(--color-white);
}

.verifiedBox {
	position: fixed;
	top: env(safe-area-inset-top);
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px;
	height: 100vh;
	margin: auto;
	background: var(--color-white);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 999;
}

.verifiedBox header h2 {
	position: relative;
}

.verifiedBox header h2:before {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(50% - 4.25em);
	width: 0.5em;
	height: 1.25em;
	margin: auto;
	background: #05B8D9;
}

.verifiedBox > div {
	width: calc(100% - 2px);
	height: calc(100vh - 110px);
	margin: 0 auto;
	padding: 45px 0 45px 0;
	background: var(--color-white);
	word-break: break-all;
	overflow-y: scroll;
	box-sizing: border-box;
}

.verifiedBox .dates {
	display: grid;
	width: 13em;
	margin: 1em auto;
	font-weight: bold;
	grid-template-columns: 1fr 1fr;
}

.verifiedBox .dates dt {
	text-align: right;
}

.verifiedBox .list {
	margin: 0 1em;
	box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.25);
}

.verifiedBox .list li {
	padding: 0.75em;
	line-height: 2;
}

.verifiedBox .list li:nth-of-type(2n+2) {
	background: var(--color-grayLight);
}

.verifiedBox .list .ttl {
	font-weight: bold;
}

.verifiedBox .list .ok,
.verifiedBox .list .ng,
.verifiedBox .list .pass {
	float: right;
	display: block;
	width: 6.5em;
	text-align: center;
}
.verifiedBox .list .ok {
	background: #DAF9FE;
	color: #05B8D9;
}
.verifiedBox .list .ng {
	background: #FFDADA;
	color: #F13535;
}
.verifiedBox .list .pass {
	color: var(--color-primary);
	font-weight: bold;
	text-align: right;
}

.verifiedBox .description {
	margin: 1em 1.5em;
	font-size: 75%;
	font-weight: bold;
}

.trendHelpBox {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px;
	height: 100vh;
	margin: auto;
	background: rgba(0, 0, 0, 0.75);
	flex-direction: column;
	align-items: center;
	justify-content: center;
	z-index: 999;
}

.trendHelpBox .closeBtn {
	width: 1em;
	height: 1em;
	margin: 1rem 0 2rem 0;
	font-size: 250%;
	text-align: center;
}

.trendHelpBox .closeBtn a {
	color: var(--color-white);
}

.trendHelpBox > div {
	width: 92%;
	max-width: 480px;
	height: fit-content;
	padding: 2rem 1rem;
	background: var(--color-white);
	border-radius: 2em;
}

.trendHelpBox h3 {
	position: relative;
	margin-bottom: 1rem;
	text-align: center;
}

.trendHelpBox h3 a {
	position: absolute;
	top: -1em;
	right: 0;
	width: 1em;
	height: 1em;
	margin: auto;
	font-size: 1rem;
	line-height: 1;
	text-align: center;
	color: var(--color-tertiary);
	text-decoration: none;
}

.trendHelpBox .box {
	margin-bottom: 0.5em;
}

.trendHelpBox .box2 p {
	margin-bottom: 1em;
	padding: 0 0 0 1em;
	font-size: 70%;
}

/* container */
.animation-container,
.banner-container {
	position: fixed;
	display: flex;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px;
	height: 100vh;
	margin: auto;
	padding-bottom: (3em + env(safe-area-inset-top));
	flex-direction: column;
	justify-content: center;
	align-items: center;
	z-index: 999;
}
.matching-container {
	background: url(../image/dashboard/matching_bg.jpg) center center no-repeat;
	background-size: cover;
}
.banner-container {
	background: rgba(0, 0, 0, 0.8);
	z-index: 998;
}

.matching-container h3 {
	font-size: 150%;
	color: var(--color-white);
	text-align: center;
}

.matching-container .img {
	position: relative;
	display: grid;
	width: calc(100% - 2em);
	max-width: 380px;
	margin: 2em auto 0 auto;
	background: url(../image/dashboard/text_match.png) bottom center no-repeat;
	background-size: 100% auto;
	grid-template-columns: 1fr 1fr;
	aspect-ratio: 343 / 280;
}
.matching-container .img:after {
	content: "";
	display: block;
	position: absolute;
	top: 10%;
	left: 0;
	right: 0;
	width: 25%;
	margin: auto;
	background: url(../image/dashboard/icon_matching.png) center center no-repeat;
	background-size: contain;
	aspect-ratio: 1 / 1;
}

.matching-container .img img {
	width: 75%;
	border: 2px solid var(--color-white);
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}
.matching-container .img img:first-child {
	margin-left: 25%;
}

.matching-container .floatingBox {
	bottom: 25px;
}

.matching-container .btns a.btn {
	width: 15rem;
	margin-bottom: 1rem;
	background: rgba(255, 255, 255, 0.8);
	border: 1px solid var(--color-key);
	font-size: 85%;
	font-weight: bold;
	color: var(--color-key);
}
.matching-container .btns a.btn:first-child:after {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 1em;
	width: 1em;
	height: 1em;
	margin: auto;
	content: "\f1d8";
	font-size: 150%;
	font-family: "Font Awesome 7 Free";
	font-weight: 900;
	line-height: 1;
}

.banner-container img {
	border-radius: 0.5em;
}

.banner-container .closeBtn {
	width: 1em;
	height: 1em;
	margin-top: 0.5rem;
	font-size: 250%;
	text-align: center;
	line-height: 1;
}

.banner-container .closeBtn a {
	color: var(--color-white);
}

.banner-container > div {
	width: calc(100% - 2rem);
	max-width: 480px;
	padding: 0 0.5rem;
	overflow-y: scroll;
}

.banner-container a > img {
	width: 100%;
	height: auto;
}

.point-container > div {
	position: relative;
	border-radius: 0.5em;
	overflow: hidden;
}
.point-container > div.men {
	background: url(../image/point_men_bg.jpg) top center no-repeat;
	background-size: cover;
}
.point-container > div.women {
	background: url(../image/point_women_bg.jpg) top center no-repeat;
	background-size: cover;
}

.point-container .txt {
	width: calc(100% - 3em);
	margin: 20% auto 1.5em auto;
}

.point-container h2 {
	font-family: 'Barlow', sans-serif;
	font-size: 300%;
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: 1px;
}
.point-container > div.men h2 {
	text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5);
	color: var(--color-white);
	font-style: italic;
}
.point-container > div.women h2 {
	font-size: calc(300% + 4px);
	color: #FC5886;
	-webkit-text-stroke: 2px var(--color-white);
}

.point-container .pt {
	width: 7.5em;
	margin: 1em auto 0 auto;
	border: 1px solid var(--color-white);
	border-radius: 1em;
	font-family: 'Roboto', sans-serif;
	text-align: center;
	line-height: 2;
}
.point-container > div.men .pt {
	background: var(--color-white);
	color: var(--color-key);
}
.point-container > div.women .pt {
	background: #FC5886;
	color: var(--color-white);
}

.point-container .btns a.btn {
	width: 15rem;
	max-width: 100%;
}
.point-container > div.women .btns a.btn {
	background: var(--color-white);
	color: #FC5886;
}

/* footer */
footer {
	display: flex;
	position: fixed;
	top: auto;
	bottom: 0;
	left: 0;
	right: 0;
	width: 100%;
	max-width: 800px;
	height: 70px;
	margin: auto;
	text-align: center;
	background: var(--color-white) linear-gradient(rgba(246, 247, 249, 0) 0%, rgb(246, 247, 249) 100%);
	box-shadow: -2px -2px 10px 0px var(--color-line);
	justify-content: center;
	align-items: center;
	z-index: 100;
}
footer:before,
footer:after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	width: 4px;
	height: 100%;
	background: var(--color-white);
	z-index: 91;
}
footer:before {
	left: -5px;
}
footer:after {
	right: -5px;
}

footer .container {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 100%;
	max-width: 800px;
	width: 100%;
}

footer .container ul {
	display: flex;
	justify-content: space-between;
	width: 72%;
	height: 100%;
	margin: 0 auto 32px auto;
	flex-direction: row;
	align-items: center;
	gap: 0.75em;
}

footer .container li {
	position: relative;
	width: 25%;
	height: 100%;
}

footer .container li a {
	display: flex;
	width: 100%;
	height: 100%;
	justify-content: center;
	align-items: center;
}

footer .container li.badge-1:after,
footer .container li.badge-2:after,
footer .container li.badge-3:after,
footer .container li.badge-4:after,
footer .container li.badge-5:after,
footer .container li.badge-6:after,
footer .container li.badge-7:after,
footer .container li.badge-8:after,
footer .container li.badge-9:after,
footer .container li.badge-more:after {
	position: absolute;
	top: 0.5em;
	right: 0.5em;
	width: calc(1.25em + 1px);
	height: calc(1.25em + 1px);
	background-color: var(--color-key);
	border-radius: 100px;
	color: var(--color-white);
	font-size: 0.65rem;
	line-height: 1.25em; 
	transform: translate(50%, -50%);
}

footer .container li.badge-1:after { content: "1"; }
footer .container li.badge-2:after { content: "2"; }
footer .container li.badge-3:after { content: "3"; }
footer .container li.badge-4:after { content: "4"; }
footer .container li.badge-5:after { content: "5"; }
footer .container li.badge-6:after { content: "6"; }
footer .container li.badge-7:after { content: "7"; }
footer .container li.badge-8:after { content: "8"; }
footer .container li.badge-9:after { content: "9"; }
footer .container li.badge-more:after {content: "9+"; }

@media (min-width: 810px) {
main {
	min-height: calc(100vh - 30px);
}
}

@media (max-width: 810px) {
main {
	overflow: hidden;
}
}

@media (min-width: 481px) {
.sp {
	display: none;
}
main {
	padding: 96px 0 90px 0;
}
footer .container ul {
	padding: 8px 0;
}
}

@media (max-width: 480px) {
.no-sp {
	display: none;
}

.trendHelpBox > div {
	max-width: 320px;
}

footer .container ul {
	width: 88%;
	padding: 0.5rem 0 1rem 0;
}

}

@media all and (display-mode: standalone) {
main {
	min-height: calc(100vh - env(safe-area-inset-top));
}
}

/* parts */

.input_wrap,
.textarea_wrap,
.select_wrap,
.radio_wrap,
.checkbox_wrap,
.date_wrap {
	position: relative;
	display: block;
	width: 100%;
	margin: 2em auto 2.5em auto;
}

.input_wrap label .must,
.textarea_wrap label .must,
.select_wrap label .must,
.radio_wrap label .must,
.checkbox_wrap label .must,
.date_wrap label .must {
	color: var(--color-key);
}

.textarea_wrap {
	padding-top: 1em;
	border-bottom: 0;
}

.radio_wrap {
	border-bottom: 0;
}

.checkbox_wrap {
	margin: 0 auto;
	border-bottom: 0;
}

.textarea_wrap textarea {
	width: 100%;
	height: 6em;
	border: 1px solid var(--color-line);
	border-radius: 0.75em;
}

.input_wrap label,
.textarea_wrap label {
	position: absolute;
	top: -1.5em;
	left: 0;
	bottom: auto;
	font-size: 90%;
	line-height: 1em;
	color: var(--color-primary);
	font-weight: bold;
}

.textarea_wrap label {
	top: -0.125em;
}

.select_wrap > label {
	position: absolute;
	height: 1em;
	line-height: 1em;
	margin: auto;
	font-size: 90%;
	font-weight: bold;
	pointer-events: none;
}

.select_wrap > label:nth-of-type(1) {
	top: -1.5em;
	left: 0;
	color: var(--color-primary);
}

.select_wrap > label:nth-of-type(2) {
	top: 0;
	bottom: 0;
	left: 0.5em;
	color: var(--color-gray);
}

.select_wrap select:valid ~ label:nth-of-type(2) {
	display: none;
}

.select_wrap::after {
	content: "\f0d7";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0.35em;
	width: 1em;
	height: 1em;
	line-height: 1em;
	margin: auto;
	font-family: "Font Awesome 7 Free";
	font-weight: 900;
	color: var(--color-key);
	text-align: center;
	pointer-events: none;
}

.radio_wrap input[type=radio] {
	display: none;
}

.radio_wrap label {
	position: relative;
	display: inline-flex;
	width: calc(50% - 0.5em - 2px);
	height: 3rem;
	border: 1px solid var(--color-line);
	border-radius: 0.5rem;
	color: var(--color-tertiary);
	font-size: 85%;
	font-weight: bold;
	line-height: 3rem;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	cursor: pointer;
}

.radio_wrap label:before,
.radio_wrap label:after {
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 1rem;
	width: 1rem;
	height: 1rem;
	margin: auto;
	font-family: "Font Awesome 7 Free";
	color: var(--color-key);
	line-height: 1rem;
	text-align: center;
}
.radio_wrap label:before {
	content: "\f111";
	font-weight: normal;
}
.radio_wrap label:after {
	font-size: 75%;
	color: var(--color-keyLight);
}

.radio_wrap input[type=radio]:first-of-type + label {
	margin-right: 1em;
}

.radio_wrap input[type=radio] + label {
	border: 1px solid var(--color-line);
}

.radio_wrap input[type=radio]:checked + label {
	background: var(--color-keyLight);
	color: var(--color-key);
	border-color: var(--color-key);
}

.radio_wrap input[type=radio]:checked + label:before {
	font-weight: 900;
}

.radio_wrap input[type=radio]:checked + label:after {
	content: "\f00c";
	font-weight: 900;
}

.checkbox_wrap input[type=checkbox] {
	display: none;
}

.checkbox_wrap input[type=checkbox] + label {
	display: block;
	position: relative;
	padding-left: 1.5rem;
	cursor: pointer;
}

.checkbox_wrap input[type=checkbox] + label:before {
	content: "\f0c8";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 1em;
	height: 1em;
	line-height: 1em;
	margin: auto;
	font-family: "Font Awesome 7 Free";
	font-size: 1.25rem;
	font-weight: normal;
	color: var(--color-key);
}
.checkbox_wrap input[type=checkbox]:checked + label:before {
	content: "\f14a";
	color: var(--color-key);
	font-weight: 900;
}

.input_wrap .errMsg,
.textarea_wrap .errMsg,
.select_wrap .errMsg,
.radio_wrap .errMsg,
.date_wrap .errMsg,
.area_wrap .errMsg {
	position: absolute;
	top: calc(100% - 1px);
	left: 3px;
	width: calc(100% - 6px);
	border-top: 1px solid var(--color-key);
	font-size: 75%;
}

.textarea_wrap .errMsg,
.radio_wrap .errMsg {
	border-top: 0;
	color: var(--color-key) !important;
}

.date_wrap > *:first-child {
	margin: 0;
	border-bottom: 0;
	width: 33%;
}
.date_wrap > *:nth-child(2) {
	position: absolute;
	top: 0;
	left: 33.5%;
	width: 33%;
	margin: 0;
}
.date_wrap > *:nth-child(3) {
	position: absolute;
	top: 0;
	left: 67%;
	width: 33%;
	margin: 0;
}

.upload_wrap {
	position: relative;
	display: block;
	max-width: 500px;
	width: 100%;
	margin: 1em auto;
	padding: 0.5em;
	background-color: var(--color-grayLight);
	border-radius: 0.5em;
	aspect-ratio: 16 / 9;
	z-index: 1;
	cursor: pointer;
}

.upload_wrap input[type=file] {
	display: none;
}

.upload_wrap label {
	position: absolute;
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
	cursor: pointer;
}

.upload_wrap label > span {
	position: relative;
	display: block;
	width: 100%;
	height: 100%;
}

.upload_wrap label > span:after {
	content: "\f055";
	position: absolute;
	display: block;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: 1em;
	height: 1em;
	margin: auto;
	border-radius: 50%;
	background-color: var(--color-white);
	font-family: "Font Awesome 7 Free";
	font-weight: 900;
	font-size: 1.75rem;
	text-align: center;
	line-height: 1em;
	color: var(--color-key);
	z-index: -1;
}

.btns {
	margin-top: 1em;
}

.btns a.btn,
.btns a.btn2,
.btns a.btn3 {
	position: relative;
	display: block;
	width: 100%;
	height: 3rem;
	margin: auto;
	line-height: 3rem;
	background: var(--color-key);
	border-radius: 1.8rem;
	color: var(--color-white);
	font-size: 1rem;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
}

.btns a.btn2 {
	background: var(--color-key2);
}

.btns a.btn3 {
	background: var(--color-line);
	color: var(--color-primary);
}

.recommendBtns a.item {
	display: inline-block;
	width: 4em;
	height: 4em;
	margin: 0 0.75em;
}

.approachBtns a.btn {
	width: 220px;
	background: #FE3561;
	box-shadow: 5px 8px 10px rgba(0, 0, 0, 0.1);
}

.approachBtns img {
	height: 1.5em;
	vertical-align: middle;
}

.btnQuestion {
	position: relative;
	display: block;
	width: 1.5rem;
	height: 1.5rem;
	line-height: 1;
}

.btns .morePt {
	position: absolute;
	top: -0.75em;
	right: 0;
	padding: 0.25em 0.5em;
	background: var(--color-white);
	border: 1px solid var(--color-line);
	border-radius: 1em;
	font-size: 85%;
	color: var(--color-key);
	font-weight: bold;
	line-height: 1.5;
}

.btnQuestion img { 
	vertical-align: bottom;
}

.btns input[type=submit] {
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
}