main form h3 {
	display:flex;
	align-items: center;
	justify-content: center;
	gap:calc(var(--gap) / 2);
	flex-wrap: nowrap;
}
main form h3::before ,
main form h3::after {
	content:'';
	height:1px;
	flex:1;
	background:var(--color-text);
}
main form dt span {
	display:inline-block;
	margin-left:10px;
	background:var(--color-red);
	color:var(--color-white);
	line-height:1em;
	padding:2px;
	font-size:0.9em;
}

main form .message {
	position:absolute;
	background:var(--color-red);
	color:var(--color-white);
	min-width:300px;
	padding:5px 10px;
	border-radius:var(--radius-inner);
	top:60%;
	left:20px;
	z-index:10;
}
main form .message::before {
	content:'';
	width:10px;
	height:10px;
	background:var(--color-red);
	position:absolute;
	top:-9px;
	left:20px;
	clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
}
main form .message.pass ,
main form .message.pass::before {
    background:var(--color-blue);
}
main form .link-url .message {
	top:calc(100% + 5px);
	left:calc(10em + 10px);
}

input[name="postalcode"] {
    width:8em;
}
input[name="link_name_dummy"] {
    width:10em;
}

input[type="number"] {
	text-align:right;
}

main form .link-url button {
	padding:5px;
	width:30px;
	height:30px;
	border-radius:100%;
	border:solid 1px var(--color-gray);
	display:flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
main form .link-url button:hover {
	background:var(--color-blue);
	color:var(--color-super-white);
	border-color:var(--color-blue);
}
main form .link-url + .link-url {
	margin-top:10px;
}

label:is(.checkbox,.radio) {
	margin-right:var(--margin);
}


/* ファイル */
main form .icon {
	width:200px;
}
main form input[name="icon[]"] {
	aspect-ratio:1;
}

main form input[name="achievement_image[]"] {
	aspect-ratio:4 / 3;
}

main form input[name="plan_image[]"] {
	aspect-ratio:16 / 9;
}

main form .upload-area::before {
	content:'ファイルを選択してください';
	position:absolute;
	top:50%;
	left:50%;
	translate: -50% -50%;
	width:100%;
	text-align:center;
	font-size:0.8em;
	background:url(../_img/upload.svg) center top / 50px no-repeat;
	padding-top:60px;
	opacity:0.5;
}
main form .upload-area.file-selected {
	background:var(--color-dark-glass);
}
main form .upload-area.file-selected::before {
	content:'アップロードしています';
	color:var(--color-white);
	background:url(../_img/oval.svg) center top / 60px no-repeat;
	padding-top:70px;
	opacity:1;
}
main form .upload-area.file-uploaded::before {
	display:none;
}
main form .upload-area input {
	height:100%;
	opacity:0;
}

main form .upload-area.file-selected input {
	pointer-events : none;
}
main form .upload-area .delete-file {
	position:absolute;
	font-size:32px;
	top:10px;
	right:10px;
	z-index:2;
	background:var(--color-white);
	border-radius:100%;
}
main form .upload-area.file-selected .delete-file {
	display:none;
}
main form .upload-area .file-set {
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:100%;
	text-align:center;
}
main form .upload-area.file-selected .file-set {
	z-index:-1;
}
main form .upload-area .file-set .file-icon {
	width:100%;
	height:100%;
	text-align:center;
	padding:0;
}
main form .upload-area .file-set img {
	object-fit: contain;
	width:100%;
	height:100%;
	max-width:100%;
	max-height:100%;
}
main form .icon .upload-area .file-set img {
	object-fit: cover;
}

main form .icon .upload-area .file-set .file-icon {
	outline:solid 1px var(--color-black);
	border-radius:100%;
	background:url(../_img/image_trans.webp);
}

main .card-box {
	border:solid 1px var(--color-gray);
	padding:var(--padding);
	border-radius:var(--radius-inner);
}
main .card-number {
	border-bottom:solid 1px var(--color-gray);
	padding:10px 0;
}
main .card-number p:not(:first-of-type) {
	text-align:right;
}


/* カード情報ダイアログ */
#card-form iframe {
	min-height:auto;
}
#card-form div {
	margin-top:0;
}
#card-form .input {
	margin-top:5px;
	margin-bottom:10px;
	padding:calc(var(--padding) / 2);
	border:solid 1px var(--color-gray);
	border-radius:var(--radius-inner);
	font-size:1.2em;
}

#card-form #card-errors p {
	background:var(--color-red);
	color:var(--color-white);
	padding:5px 10px;
	border-radius:var(--radius-inner);
	margin:5px 0;
}
#card-form #card-errors p::before {
	content:'';
	width:10px;
	height:10px;
	background:var(--color-red);
	position:absolute;
	top:-9px;
	left:20px;
	clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
}


/* 銀行口座部分 */
main form select[name=bank_name_dummy] ,
main form select[name=bank_name_dummy] optgroup ,
main form select[name=bank_name_dummy] option {
	min-width:3em;
}
main form dd.deposit {
	width:10em;
}

.privacy-policy {
    border:solid 1px var(--color-gray);
    border-radius:var(--radius-inner);
    max-height:200px;
    overflow-y: scroll;
    padding:10px;
    margin-bottom:20px;
}

.form-back ,
.form-back + .form-send {
	width:49%;
	display:inline-block;
}
.form-back button {
	padding:5px;
	background:var(--color-lightgray);
}

/* Media Query */
@media (max-width:720px ) {

}
@media (max-width:520px ){

}