@charset "utf-8";
@import url(normalize.css);
@import url(../_plugin/fontawesome/css/all.min.css);
@import url(https://unpkg.com/aos@next/dist/aos.css);
@import url(common_parts.css);
@import url(common.css);


/* 共通 ----------*/
.cr_red { color: #ff366e; }
#main { position: relative; z-index: 2; }
#main a { display: block; }
section h2 { margin-bottom: 3rem; font-size: 3.25rem; }
section .c_ttl { position: relative; padding: 0 0 0 2em; font-size: 2.5rem; font-weight: normal; color: #0a3289; }
section .c_ttl::before { position: absolute; top: 50%; left: 0; content: ""; display: block; width: 1em; line-height: 1; border-top: 4.5px solid #0054b4; transform: translateY(calc(-50%)); }
section .c_sub { font-size: 2.7rem; font-weight: 500; line-height: 1.3; }
.sup { position: relative; padding-left: 1em; }
.sup span { position: absolute; top: 0%; left: 0; }
@media screen and ( min-width: 1920px ) {
	#mv img, main img { width: 100%; }
}

/* mv ----------*/
#mv { margin-top: 60px; }
#mv .img_box { position: relative; width: 100%; height: 350px; overflow: hidden; }
#mv h2 { position: absolute; top: 50%; left: 2rem; font-size: 3.4rem; transform: translateY(-50%); }
#mv img { position: fixed; z-index: 0; top: 60px; left: 35%; width: auto; height: 350px; max-width: inherit; transform: translate(-50%, 0); }
@media screen and ( min-width: 481px ) {
	#mv h2 { left: 3rem; }
}
@media screen and ( min-width: 651px ) {
	#mv { margin-top: 100px; }
}
@media screen and ( min-width: 769px ) {
	#mv .img_box { height: auto; }
	#mv img { position: static; width: 100%; height: auto; transform: none; }
}
@media screen and ( min-width: 981px ) {
	#mv { margin-top: 0; }
	#mv .img_box { position: relative; max-height: 450px; overflow: hidden; }
	#mv img { width: 100%; height: auto; }
}

/* contact ==============================*/
/* 共通 ----------*/
#contact .c_blue { color: #0a3289; }
#contact section:not(#mv) { margin: -3rem 0; }
#contact section:nth-last-of-type(1) { margin-bottom: 0; }
#contact #mv + section { margin-top: 0; }
#contact .sec_inner { position: relative; z-index: 2; padding: 3rem 2rem; background: #fff; }
#contact section:nth-last-of-type(1) .sec_inner { padding-bottom: 3rem; }
#contact h2.c_ttl { font-size: 3rem; line-height: 1.3; border-bottom: 1px solid #000; }
#contact h3 { font-size: 2.6rem; margin-left: -0.5em; }
#contact .c_sub { font-size: 2.7rem; font-weight: 500; line-height: 1.3; }
#contact table { width: 100%; }
#contact tr { border: 1px solid #8e99bb; }
#contact th { display: block; padding: 1.5rem; font-size: 2rem; text-align: left; background: #cfd4e3; border-bottom: 1px solid #8e99bb; }
#contact td { display: block; padding: 1.5rem; font-size: 1.8rem; vertical-align: middle; }
#contact table + p { margin: 0; }
#contact dl dt { font-size: 2rem; }
#contact .list_box ul,
#contact dl dd { font-size: 1.8rem; }
#contact input:not([type='checkbox']),
#contact textarea { width: 100%; padding: 1rem; }
#contact dd:nth-last-of-type(1) a { display: inline; }
@media screen and ( min-width: 481px ) {
	#contact section:not(#mv) { margin: -4rem 0; }
	#contact section:nth-last-of-type(1) .sec_inner { padding-bottom: 4rem; }
	#contact #mv + section { margin-top: 0; }
	#contact section .sec_inner { padding: 4rem 3rem; }
	#contact section li,
	#contact section dl dd { font-size: 2.5rem; }
}
@media screen and ( min-width: 769px ) {
	#contact section h2.c_ttl { font-size: 2.65rem; }
	#contact section li,
	#contact section dl dt,
	#contact section dl dd { font-size: 1.4rem; }
	#contact section .c_sub { font-size: 2.7rem; }
	#contact th,
	#contact td { display: table-cell; font-size: 1.4rem; }
	#contact th { border-bottom: none; border-right: 1px solid #8e99bb; }
	#contact .list_box { display: flex; }
	#contact .list_box ul { width: calc( (99.999% - 4rem) / 2 ); }
	#contact .list_box ul:not(:nth-last-of-type(1)) { margin-right: 4rem; }
}
@media screen and ( min-width: 981px ) {
	#contact section:not(#mv) { padding: 4rem 0; }
	#contact section .sec_inner { padding: 0 8rem; }
	#contact th { text-align: left; }
	#contact td { padding: 1.5rem; vertical-align: middle; }
	#contact .list_box ul { width: calc( (99.999% - 7rem) / 2.5 ); }
	#contact .list_box ul:not(:nth-last-of-type(1)) { margin-right: 7rem; }
}

/* contact_form */
#contact_form .w20 { width: 20%!important; }
#contact_form .form_wrap { margin: 3rem 0 0; }
#contact_form .form_box { position: relative; }
#contact_form h2 { padding: 1rem 0 0 1.5em; }
#contact_form .form_wrap dt,
#contact_form .form_wrap dd { border-bottom: 1px solid #fff; }
#contact_form dl li { margin-right: 2rem; }
#contact_form .form_wrap p { margin: 0; }
#contact_form .form_box > p { position: absolute; right: 0; line-height: 4; }
#contact_form .form_wrap dt,
#contact_form .form_wrap dd { padding: 1rem; color: #0a3289; word-break: break-word; }
#contact_form .form_wrap dt { background: #d5e4f3; }
#contact_form .form_wrap dd { background: #ebedf3; }
@media screen and ( min-width: 481px ) {
	#contact_form h2 { padding: 1rem 0 0 2em; }
}
@media screen and ( min-width: 651px ) {
	#contact_form .form_wrap { margin: 2rem 0 0; }
	#contact_form .form_wrap dt,
	#contact_form .form_wrap dd { padding: 1rem 2rem; }
}
@media screen and ( min-width: 768px ) {
	#contact_form .w30 { width: 30%!important; }
	#contact_form .w70 { width: 70%!important; }
	#contact_form .w80 { width: 80%!important; }
}
@media screen and ( min-width: 981px ) {
	#contact_form h2 + p { margin-right: 10rem; }
	#contact_form dl li { margin-right: 5rem; }
	#contact_form .form_wrap input { vertical-align: baseline; }
	#contact_form .form_wrap dl { flex-wrap: wrap; }
	#contact_form .form_wrap dt { width: 25%; }
	#contact_form .form_wrap dd { width: 75%; }
	#contact_form .form_wrap .submit_btn { margin: 5rem 0 1rem; }
	#contact_form .form_wrap .submit { width: 100%; max-width: 40rem; padding: 3rem 0; font-size: 2.4rem; color: #fff; background: #0054b4; border-radius: 3px; border: none; }
}

/* artificial_gene ----------*/
#artificial_gene #mv h2 { line-height: 1.2; }
#artificial_gene #mv h2 span { display: block; }
#artificial_gene #contact_form dl li:nth-of-type(1) { margin-right: 0; }
#artificial_gene input.contact_type { width: auto; vertical-align: middle; }
#artificial_gene .mwform-radio-field { margin-right: 1rem; }
@media screen and ( min-width: 481px ) {
	#artificial_gene #mv h2 span { display: inline; }
}

/* commissioned ----------*/
#commissioned input[type="radio"] { width: auto; margin-top: 0.5rem; }
#commissioned p { font-size: 1.5rem; }
#commissioned .form_wrap dt { border-bottom: 1px solid #fff; border-right: 1px solid #fff; }
#commissioned .form_wrap dd { border-bottom: 1px solid #fff; color: #000; }
#commissioned #mv h2 span { display: block; font-size: 1.6rem; color: #1c3968; }
#commissioned .cp_ipselect { overflow: hidden; width: 100%; margin: 0 0 1rem; text-align: center; }
#commissioned .cp_ipselect select { width: 100%; padding-right: 1em; cursor: pointer; text-indent: 0.01px; text-overflow: ellipsis; border: none; outline: none; background: transparent; background-image: none; box-shadow: none; -webkit-appearance: none; appearance: none; }
#commissioned .cp_ipselect select::-ms-expand { display: none; }
#commissioned .cp_ipselect.cp_sl02 { position: relative; border: 1px solid #bbbbbb; border-radius: 2px; background: #fff; }
#commissioned .cp_ipselect.cp_sl02::before { position: absolute; top: 50%; left: 0.9em; width: 0; height: 0; padding: 0; content: ''; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 6px solid #666666; pointer-events: none; transform: translateY(-50%)}
#commissioned .cp_ipselect.cp_sl02:after { position: absolute; top: 0; left: 2.5em; bottom: 0; width: 1px; content: ''; border-left: 1px solid #bbbbbb; }
#commissioned .cp_ipselect.cp_sl02 select { padding: 8px 38px 8px 50px; color: #666666; }
#commissioned .form_box div.flb { flex-wrap: wrap; }
#commissioned .chk_box:nth-of-type(1) { margin-bottom: 1rem; }
#commissioned .chk_box:nth-of-type(1) label:nth-of-type(1) { margin-right: 5rem; }
#commissioned .mw_wp_form .horizontal-item + .horizontal-item { margin-left: 0; vertical-align: middle; }
#commissioned .mw_wp_form .horizontal-item { display: block; }
#commissioned .mw_wp_form .horizontal-item:not(:nth-last-of-type(1)) { margin-right: 2rem; }
#commissioned .mw_wp_form .horizontal-item label input { margin: 0; vertical-align: middle; }
#commissioned .mw_wp_form .mwform-checkbox-field label,
#commissioned .mw_wp_form .mwform-checkbox-field input { vertical-align: middle; line-height: 2; }

@media screen and ( min-width: 768px ) {
	#commissioned .form_box { margin-bottom: 3rem; }
	#commissioned .mw_wp_form .mwform-checkbox-field label,
	#commissioned .mw_wp_form .mwform-checkbox-field input { vertical-align: middle; line-height: 1.8; }
	#commissioned .cp_ipselect { width: 60%; }
	#commissioned dd p { font-size: 1.3rem; }
	#commissioned .inspection label { margin-right: 2rem; }
}