input[type="text"],
input[type="tel"],
input[type="email"],
input[type="password"],
input[type="url"],
select,
textarea {
    width: 100%;
    padding: .5rem;
    box-sizing: border-box;
}

input[type="number"] {
    margin-top: .5rem;
    padding: .5rem;
    box-sizing: border-box;
    display: inline-block;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"] {
    height: 2.19rem;
    padding: 0 .5rem;
}

input[type="color"] {
    height: 2.19rem;
    padding: 0 .5rem;
}

input[type="checkbox"],
input[type="radio"] {
    margin: 0 .2rem 0 0;
}

label.checkbox,
label.radio {
    display: block;
    margin-bottom: .2rem;
}

.submitbtn {
    display: flex;
    justify-content: center;
    margin: 2rem 0;
    text-align: center;
}

.info {
    margin: 1rem 0;
    padding: .5rem;
    background: #77c2ff;
    color: #fff;
    border-radius: .4rem;
    display: block;
}

.info.error {
    background: #fc3f3f;
}

.error-message {
    margin: .2rem 0;
    color: #fc3f3f;
    display: block;
}

.error-message::before {
    content: '\26A0';
    color: #fc3f3f;
    margin-right: .5rem;
    font-weight: bold;
}

.field.invalid {
    position: relative;
}

.field input.invalid,
.field select.invalid {
    border: 1px solid #fc3f3f;
}

label.required:after {
    content: '必須';
    font-size: 13px;
    font-weight: bold;
    color: #fff;
    padding: 0 4px;
    background-color: #e50011;
    margin-left: .4rem;
}

.help {
    font-size: .8rem;
    color: #666;
    margin: 0;
}

.confirm .help {
    display: none;
}

.confirm .confirm_hide {
    display: none;
}

.confirm .confirm_val {
    display: block;
}

.confirm .others_box .confirm_val::before {
    content: '(その他：';
    font-weight: bold;
}

.confirm .others_box .confirm_val::after {
    content: ')';
    font-weight: bold;
}

/* フォーム */

.header {
    max-width: 1162px;
    margin: 0 auto;
    padding: 1em;
}

.content {
    max-width: 1162px;
    margin: 0 auto;
    padding: 10px 1em 80px;
    min-height: 350px;
    letter-spacing: 0.02em;
    line-height: 1.7;
}

p {
    margin-top: 0;
    margin-bottom: 0.2em;
}

h1 {
    font-size: 26px;
    margin: 1em 0 1em;
    line-height: 1.4;
    padding-left: 0.7em;
    position: relative;
}

h1::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10%;
    width: 5px;
    height: 80%;
    background-color: #f3c91e;
}

dl {
    margin: 0;
}

dt {
    font-weight: bold;
    padding: 1em;
    background-color: #DADADA;
}

dd {
    padding: 1em;
    background-color: #F3F3F3;
    margin-left: 0;
}

.affiliated_facility,.found_about,.course,.on_site_participation,.q1,.q2,.q3,.q4,.q5,.q6,.q7,.q8,.q9,.q10,.q11,.q12,.q13,.q14,.q15,.q16,.q17,.q18,.lecture {
    display: flex;
    gap: 4px 1em;
    flex-wrap: wrap;
}

.form-description-2 {
    margin-top: 1em;
    margin-bottom: 1em;
}

form input[type="submit"] {
	display: inline-block;
	vertical-align: middle;
	margin: 0 10px;
	padding: 10px 40px;
	color: #000;
	font-weight: bold;
	letter-spacing: 0.5pt;
	text-decoration: none;
	background-color: #F3F3F3;
	border: 1px solid #000;
	cursor: pointer;
	transition-duration:0.3s;
    -webkit-transition-duration:0.3s;
    -moz-transition-duration:0.3s;
    -o-transition-duration:0.3s;
    -ms-transition-duration:0.3s;
} 
form input[type="submit"]:hover{
    background-color: yellow;
}

/*CSV*/

.container {
    max-width: 1162px;
    margin: 0 auto;
    padding: 10px 1em 80px;
    min-height: 350px;
    letter-spacing: 0.02em;
    line-height: 1.7;
}

.csv-btn {
    text-align: center;
    display: block;
    width: 60px;
    padding: 0.2em;
    font-weight: bold;
    color: #000;
    border: #000 1px solid;
    background: yellow;
}


@media screen and (max-width:800px) {

html {
    font-size: 14px;
}

}