input, button, select, textarea { padding: 10px 15px; width: calc(100% - 30px); border: 1px #dce5eb solid; background: none; box-shadow: none; outline: none; font-size: 16px; -webkit-appearance: none; -moz-appearance: none; appearance: none; }
select { padding: 11px 15px; width: 100%; background: url("data:image/svg+xml,%3Csvg viewBox='0 0 15 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 5l-6.5 7L1 5' stroke='%23000' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat calc(100% - .5em) 50% / auto .5em; line-height: 1.7; }
button { background: none; border: 0; box-shadow: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer; }
input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
input[type="radio"], input[type="checkbox"] { display: none; }
input[type="radio"] + label:before { width: 1.1em; aspect-ratio: 1/1; border: .125em solid var(--primary); border-radius: 50%; display: block; content: ""; }
input[type="radio"]:checked + label:before { box-shadow: .125em .125em 0 #fff inset, -.125em -.125em 0 #fff inset, -.125em .125em 0 #fff inset, .125em -.125em 0 #fff inset,.3rem  .3rem 0 var(--primary) inset,-.5rem -.5rem 0 var(--primary) inset; }
input[type="checkbox"] + label { position: relative; }
input[type="checkbox"] + label:before { position: relative; width: 1.1em; aspect-ratio: 1/1; border: .125em solid var(--primary); display: inline-block; border-radius: .25em; content: ""; }
input[type="checkbox"]:checked + label:after { position: absolute; font-size: 1.5em; font-weight: bold; line-height: 1; color: var(--info); left: 0; top: 0; content: "✔"; }

/* form_box */
.form_box { padding: 2em 1em; display: grid; grid-template-columns: repeat(1, 1fr); grid-gap: 1em 2em; }
.form_box:not(.contact_box) { border-bottom: 4px var(--primary) dotted; }
.form_box.large_item { padding: 0; }
.form_box .form_title { position: relative; font-weight: 600; font-size: 1.5em; text-transform: uppercase; color: var(--primary); }
.form_box .form_title:before { margin-left: -10px; width: 10px; aspect-ratio: 1/1; border: 1px solid var(--secondary); border-radius: 50px; display: block; content: ""; }
.form_box .form_title:after { margin: 11px 0 10px; width: 23px; height: 1px; background: var(--primary); display: block; content: ""; }
.form_box .form_item label { margin-bottom: .2em; display: flex; align-items: center; gap: .3em; color: #54463b; }
.form_box .form_item label.required:before { font-size: 1.2em; color: #c00; content: "*"; }
.form_box .form_item .input { min-height: 34px; display: flex; align-items: center; }
.form_box .radio_box { padding: .3em 0; width: 100%; display: flex; flex-wrap: wrap; flex-direction: column; gap: .5em 1em; }
.form_box .radio_box >div { display: flex; align-items: center; gap: .2em; }
.form_box .radio_box >div label { margin-bottom: 0; cursor: pointer; }
.form_box .radio_box >div input { margin-right: .2em; }
.form_box .radio_box >div .open_slide { width: 1em; height: 1em; fill: var(--primary); cursor: pointer; }
.form_box .radio_box >div .slide { padding: 0 1.5em; width: 100%; display: none; -webkit-transition: none; transition: none; }
.form_box .radio_box >div .slide ul , .form_box .form_tip ul { margin-inline-start: 1.5em; list-style: disc; }
.form_box .check_box font { display: flex; align-items: center; }
.form_box .check_box font input { width: 1%; flex: 1 1 auto; }
.form_box .check_box font img { margin-left: .5em; cursor: pointer; }
.form_box .send_box { display: flex; justify-content: end; }
.form_box .large_item.send_box { justify-content: center; }
.form_box .send_btn { padding: 10px 60px; width: auto; background: var(--primary); color: #fff; }
.form_box .send_btn.large_btn { width: 100%; }

/* company_typ */
#company_typ .radio_box >div { flex-wrap: wrap; }

/* form_tip */
.form_box .form_tip { margin-bottom: 1em; }
.form_box .form_tip label { margin-bottom: .5em; padding: .2em .5em; border: 2px var(--primary) solid; border-radius: .3em; display: inline-block; line-height: 1; font-weight: 600; color: var(--primary); }

@media screen and (min-width: 981px){
	.form_box { grid-template-columns: repeat(2, 1fr); }
	.form_box .large_item { grid-column: 1/3; }
}
@media screen and (max-width: 640px){
	.form_box { padding: 2em 3%; }
}