/* for body */

#contents {
	width: 100%;
	max-width: 800px;
	margin: auto;
}

#head-in {
	padding: 8px 2em;
}
h1 {
	font-size: 135%;
	margin: 0;
}
#body {
	margin-left: 1.5em;
}

/* for table */
#form-tbl {
	margin-left: 1.5em;
}
#form {
	border-collapse: collapse;
	margin: 1em 0;
}
#form th, #form td {
	border: 1px solid #666;
	padding: 8px;
}
#form th {
	white-space: nowrap;
	background: #e8e8e8;
}
#form td {
	background: #fff;
}
p.btn input {
	width: 110px;
	height: 32px;
}


/* for message */
p.msg {
	color: #dd0000;
	margin: 2em;
}
span.msg {
	color: #dd0000;
}

/* for back-button */
form.back {
	margin-top: 2em;
}

/* �X�}�z�p */
@media only screen and (max-width: 480px) {
	#body { margin-left: 0; }
	
	/* ���e�t�H�[�� */
	#form-tbl { margin: 0 auto; text-align: center; }
	#form { width: 96%; margin: 10px auto; }
    #form th, #form td {
    	text-align: left;
		width: 100%;
        display: block;
        padding: 6px 3px;
        border-top: none;
    }
    #form tr:first-child th	{ border-top: 1px solid #666; }
    p.btn input { width: 10em; }
    
	/* �����o�� */
	h2 { margin: 1em 3px; width: 90%; }
	
	/* �T���N�X */
	p.msg { margin: 1em auto; }
}

#privacy-policy {
    padding: 10px;
    font-weight: 500;
}

    /* モーダルウィンドウのスタイル */
    .modal {
        display: none; /* 最初は非表示 */
        position: fixed;
        z-index: 1;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgb(0,0,0);
        background-color: rgba(0,0,0,0.4);
        opacity: 0; /* 最初は完全に透明 */
        transition: opacity 0.5s ease; /* 透明度の変化を滑らかに */
    }

    /* モーダルが表示されるときのスタイル */
    .modal.show {
        display: block; /* 表示 */
        opacity: 1; /* 完全に不透明に */
    }

    /* その他のスタイルは前述の例と同じ */
    .modal-content {
        background-color: #fefefe;
        margin: 15% auto;
        padding: 20px;
        border: 1px solid #888;
        width: 80%;
    }
    .close {
        color: #aaa;
        float: right;
        font-size: 28px;
        font-weight: bold;
    }
    .close:hover,
    .close:focus {
        color: black;
        text-decoration: none;
        cursor: pointer;
    }

    .anvcheckbox {
        display: flex;
        align-items:baseline;
    }

    .anvcheckbox input {
        width: 20px;
    }

    .notice{
        font-size: 12px;
        font-weight: bold;
    }

	.chui {
		font-size: 11px;
	}
	
	.field-name::before {
		content: "";
		display: inline-block;
		width: 24px;
		height: 24px;
		background-image: url(../../images/tooth_06.png);
		background-size: contain;
		vertical-align: middle;
		margin-right: 5px;
	}
	
	.field-name {
		font-size: 14px;
		font-weight: 400;
		display: block;
	}
	
	textarea {
		padding: 0.5rem;
		width: 98%;
		height: 100px;
		font-size: 13px;
	}
	
	.submit-button,
	.confirm-submit {
		display: flex;
		justify-content: space-around;
		max-width: 320px;
		margin: auto;
		margin-top: 15px;
	}
	
	.confirm-submit {
		display: flex;
		flex-direction: row-reverse;
	}
	
	button {
		background: #fae2e9;
		border-radius: 100vh;
		padding: 10px 30px;
		font-size: 16px;
		background: linear-gradient(180deg, rgba(0, 23, 46, 1) 0%, rgba(0, 166, 198, 1) 100%);
		color: #fff;
		font-weight: 400;
		border: solid 1px #ccc;
		cursor: pointer;
		margin: auto;
	}
	
	button:hover {
		background: linear-gradient(180deg, rgba(103, 39, 39, 1) 35%, rgba(255, 0, 0, 1) 100%);
	}
	
	.submit {
		text-align: center;
	}
	
	@media screen and (min-width: 501px) {
		.form-group {
			display: flex;
			justify-content: flex-start;
			width: 100%;
			margin-bottom: 15px;
			flex-grow: 1;
		}
	
		.field-name {
			width: 230px;
			padding: 13px 0;
		}
	
		.field-value {
			padding: 5px 0;
			width: calc(100% - 240px);
		}
	}
	
	.field-value input,
	.field-value textarea {
		border: solid 1px #aaa;
		border-radius: 5px;
		padding: 10px 5px;
		width: 98%;
	}
	
	.field-value input:focus,
	textarea:focus {
		background: #fae2e9;
		outline: solid 1px #ccc;
	}
	
	.radio-field .field-value label,
	.checkbox-field .field-value label {
		margin-top: 11px;
	}
	
	textarea {
		height: 6em;
	}
	
	@media screen and (max-width: 500px) {
	
		.form-group,
		.submit {
			margin-top: 20px;
		}
	
	
		.field-value,
		.field-name {
			width: 100%;
			display: block;
		}
	}
	
	.custom-file-upload {
		position: relative;
		display: inline-block;
	}
	
	input[type="file"] {
		display: none;
	}
	
	.custom-file-upload label {
		display: inline-block;
		background: linear-gradient(180deg, rgba(0, 157, 255, 1) 35%, rgba(0, 109, 218, 1) 100%);
		color: white;
		padding: 0.5rem 1rem;
		font-size: 1rem;
		cursor: pointer;
		border-radius: 5px;
	}
	
	.custom-file-upload label:hover {
		background: linear-gradient(180deg, rgba(193, 0, 0, 1) 35%, rgba(218, 0, 0, 1) 100%);
	}
	
	.file-name {
		display: inline-block;
		margin-left: 1rem;
		font-size: 1rem;
		vertical-align: middle;
	}
	
	.required-mark {
		color: crimson;
		font-size: 11px;
	}

	
    .anvcheckbox {
        display: flex;
        align-items:baseline;
    }

    .anvcheckbox input {
        width: 20px;
    }

    .notice{
        font-size: 12px;
        font-weight: bold;
    }

