@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');

/* CSS Document */
*{ margin:0; padding:0; box-sizing:border-box; /*word-break:break-all;*/}
div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:baseline; background:transparent;}
ul,ol{ list-style:none;}
html,body {
margin:0 auto;
padding:0;
font-family: 'Noto Sans JP',"ヒラギノ角ゴ Pro","Hiragino Kaku Gothic Pro","メイリオ","ＭＳ Ｐゴシック",sans-serif;
font-size:20px;
font-size-adjust: none;
-webkit-text-size-adjust: 100%;
text-align:left;
color:#333;
background: #F8F8F8;
min-width:1100px;
}
@media screen and (max-width:767px){
html,body{ font-size:3.75vw; min-width:240px; max-width:767px; overflow-x: hidden;}
}

body.bg-on{ background: url("../images/body_bg.png") center 240px no-repeat #f8f8f8; background-size: 100%;}
@media screen and (max-width:767px){
body.bg-on{ background: url("../images/body_bg.png") center 25vw no-repeat #f8f8f8; background-size: 100%;}
}

/*img*/
img{ border-style:none; vertical-align:bottom; padding:0; line-height:0em; max-width:100%; height:auto;}
figure{margin:0 auto; text-align:center;}

/*youtube*/
.youtube{ position:relative; width:100%; padding-top:56.25% !important;}
.youtube iframe{ position: absolute; top:0; right:0; width:100% !important; height:100% !important;}

/*txt*/
p{ line-height:2em; margin:0 0 1em; padding:0;}
p:last-child{ margin:0;}
strong{ font-weight:bold;}
.bold { font-weight:bold;}
.normal{ font-weight:normal;}
.under_line{ text-decoration:underline;}
.line_through{ text-decoration:line-through;}
.bg_bl{ background: linear-gradient(to bottom, rgba(233,240,244,0) 0%, rgba(233,240,244,0) 50%, rgba(233,240,244,1) 51%, rgba(233,240,244,1) 100%);}
.sofia{ font-family: "sofia-pro-variable", sans-serif;}
.gothic{ font-family: 'Noto Sans JP',"ヒラギノ角ゴ Pro","Hiragino Kaku Gothic Pro","メイリオ","ＭＳ Ｐゴシック",sans-serif;}
.white{ color:#fff;}
.black{ color:#333;}
.red{ color: #D50A22;}
.blue{ color: #004798;}


.left{ text-align:left;}
.right{ text-align:right;}
.center{ text-align:center;}

/*link*/
a{ color:inherit; text-decoration:none;}
a:hover{}
a.txt_link{ color: #004798; text-decoration: underline;}
a.txt_link:hover{ text-decoration: none;}
a.tel_link{ pointer-events: none;}
.opa{ transition: opacity 0.3s;}
.opa:hover{ opacity: 0.7;}
@media screen and (max-width:767px){
a.tel_link{ pointer-events: all;}
}

/*formparts*/
::placeholder{ color: #B1B1B1; line-height: 1.25em;}
::-ms-input-placeholder{ color: #B1B1B1; line-height: 1.25em;}
input[type=submit], button, select{ -webkit-appearance: none;}
input,textarea,select,button{ width:100%; padding:0.5em 1em; font-family:'Noto Sans JP', sans-serif, Lucida Grande,"ヒラギノ角ゴ Pro","Hiragino Kaku Gothic Pro","メイリオ","ＭＳ Ｐゴシック",sans-serif; font-size:1rem; line-height: 1.25em; background: #fff; border:1px solid #dedede; box-sizing: border-box;}
textarea{ text-align: left; height: 12em; font-weight: normal;}
@media screen and (max-width:767px){
input,textarea,select,button{ font-size: 1rem;}
textarea{ height: 10em;}
}



/*ヘッダー*/
body{ padding-top: 110px;}
header{ position: fixed; left: 0; right: 0; top: 0; z-index: 999; min-width: 1100px; width: 100%; background: #F8F8F8; /*background: #fff;*/}
header #header{ border-bottom: 1px solid #EAEAEA; padding: 10px 0;}
header #header dl{ display: flex; align-items: center; justify-content: space-between; width: 1100px; margin: auto;}
header #header dl dt figure.logo{ display: flex; align-items: center;}
header #header dl dt figure.logo span img{ height: 34px;}
header #header dl dt figure.logo strong{ font-size: 0.8rem; color: #004798; margin-left: 20px;}

header #header dl dd{ display: flex; align-items: center;}
header #header dl dd ul{ display: flex; align-items: center;}
header #header dl dd ul.nav li{ font-size: 0.65rem; line-height: 1em; font-weight: bold; margin-left: 10px;}
header #header dl dd ul.nav li a{ transition: 0.3s;}
header #header dl dd ul.nav li a:hover{ color: #004798;}

header #header dl dd ul.lang{ margin-left: 30px; background: #EAEAEA; border-radius: 30px; height: 24px;}
header #header dl dd ul.lang li{ font-size: 0.6rem; line-height: 1em; font-weight: bold; display: flex; align-items: center; justify-content: center; position: relative;}
header #header dl dd ul.lang li:last-child{ margin-left: -8px;}
header #header dl dd ul.lang li a{ display: flex; align-items: center; justify-content: center; padding: 0 16px; height: 24px;  border-radius: 30px; transition: 0.3s;}
header #header dl dd ul.lang li a.active{ background: #004798; color: #fff;}

header #header dl dd ul.size{ margin-left: 10px; background: #EAEAEA; border-radius: 30px; height: 24px; padding: 0 4px 0 12px;}
header #header dl dd ul.size strong{ font-size: 0.6rem; line-height: 1em; font-weight: 500; margin-right: 4px;}
header #header dl dd ul.size li{ display: flex; align-items: center; justify-content: center; font-size: 0.6rem; font-weight: 500; line-height: 1em; width: 20px; height: 20px; background: #EAEAEA; border-radius: 50%; transition: 0.3s; cursor: pointer;}
header #header dl dd ul.size li.active{ background: #004798; color: #fff;}
@media screen and (max-width:767px){
body{ padding-top: 15vw;}
header{ min-width: 100%;}
header #header{ display: flex; align-items: center; height: 15vw; border-bottom: none; padding: 2.5vw 3.75vw; background: #fff;}
header #header dl{ width: 100%;}
header #header dl dt figure.logo{ text-align: left;}
header #header dl dt figure.logo span img{ height: 7.5vw;}
header #header dl dt figure.logo strong{ font-size: 0.7rem; line-height: 1.25em; margin-left: 3.75vw;}
header #header dl dd{ display: none;}
}


/*ヘッダーナビ*/
header nav.pc_nav{ display: flex; align-items: center; justify-content: space-between; width: 1100px; margin: auto; padding: 0; position: relative;}
header nav.pc_nav ul{ display: flex;}
header nav.pc_nav ul li{ padding: 20px 0; font-size: 0.75rem; font-weight: bold; line-height: 1.5em; margin-right: 4em;}
header nav.pc_nav ul li:last-child{ margin-right: 0;}
header nav.pc_nav ul li a{ display: flex; flex-direction: column; justify-content: center; min-height: 3em; position: relative; transition: 0.3s;}
header nav.pc_nav ul li a:after{ content: ""; width: 0; height: 2px; background: #004798; position: absolute; left: 0; right: 0; bottom: -8px; margin: auto; transition: 0.3s;}
header nav.pc_nav ul li a.active,
header nav.pc_nav ul li:hover a{ color: #004798;}
header nav.pc_nav ul li a.active:after,
header nav.pc_nav ul li:hover a:after{ width: 100%;}

header nav.pc_nav ul li .child{ opacity: 0; pointer-events: none; transition: 0.3s;}
header nav.pc_nav ul li:hover .child{ opacity: 1.0; pointer-events: all;}
header nav.pc_nav ul li .child{ padding: 30px 0; position: absolute; left: 0; right: 0; top: 85px; z-index: 99;}
header nav.pc_nav ul li .child:before{ pointer-events: none; content: ""; width: 200vw; height: 100vh; position: absolute; left: -50vw; top: 0; background: rgba(0,71,152,0.96); z-index: -1;}
header nav.pc_nav ul li .child dl{ display: flex; background: #fff; border-radius: 30px; overflow: hidden;}
header nav.pc_nav ul li .child dl dt{ display: flex; flex-direction: column; justify-content: center; padding: 60px; width: 550px; height: 460px; background: #EAF2FA; border-radius: 0 200px 0 0;}
header nav.pc_nav ul li .child dl dt h3{ display: flex; flex-direction: column; margin-bottom: 25px; color: #004798;}
header nav.pc_nav ul li .child dl dt h3 span{ font-size: 1rem; line-height: 1em;}
header nav.pc_nav ul li .child dl dt h3 strong{ font-size: 2.8rem; line-height: 1.25em;}
header nav.pc_nav ul li .child dl dt p{ font-size: 0.8rem; line-height: 2em;}

header nav.pc_nav ul li .child dl dd{ width: calc(100% - 550px); padding: 60px 0 60px 80px;}
header nav.pc_nav ul li .child dl dd ul{ display: block;}
header nav.pc_nav ul li .child dl dd ul li{ display: block; padding: 0; margin: 0 0 20px; font-size: 1rem; font-weight: 500;}
header nav.pc_nav ul li .child dl dd ul li:last-child{ margin-bottom: 0;}
header nav.pc_nav ul li .child dl dd ul li a{ display:flex; align-items: flex-start; justify-content: flex-start; color: #333;}
header nav.pc_nav ul li .child dl dd ul li a.active,
header nav.pc_nav ul li .child dl dd ul li a:hover{ color: #004798;}
header nav.pc_nav ul li .child dl dd ul li a:after{ display: none;}
header nav.pc_nav ul li .child dl dd ul li a i{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #fff; color: #004798; font-size: 0.8rem; border-radius: 50%; transition: 0.3s;}
header nav.pc_nav ul li .child dl dd ul li a.active i,
header nav.pc_nav ul li .child dl dd ul li a:hover i{ background: #004798; color: #fff; transform: rotate(-45deg); margin-left: 0.5em;}

header nav.pc_nav #h_search{ width: 240px; display: flex; justify-content: flex-end;}
header nav.pc_nav #h_search dl{ display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 0 0 0 15px; height: 40px; border-radius: 40px; overflow: hidden; transition: 0.3s;}
header nav.pc_nav #h_search dl dt{ width: calc(100% - 50px); font-size: 0.5rem; line-height: 1em;}
header nav.pc_nav #h_search dl dt input{ font-size: 0.5rem; line-height: 1em; font-weight: 400; border: none; padding: 0;}
header nav.pc_nav #h_search dl dd{ font-size: 0.8rem; line-height: 1em;}
header nav.pc_nav #h_search dl dd button{display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #004798; color: #fff; font-size: 0.8rem; font-weight: 900; line-height: 1em; padding: 0; border: none; cursor: pointer; border-radius: 50%; transition: 0.3s;}

header nav.pc_nav #h_search dl{ padding: 0; width: 40px;}
header nav.pc_nav #h_search:hover dl{ padding: 0 0 0 15px; width: 240px;}
header nav.pc_nav #h_search:hover dl dd button{ background: #fff; color: #004798;}
@media print, screen and (min-width:768px){
#smp_nav_btn{ display: none !important;}
header nav.smp_nav{ display: none !important;}
}
@media screen and (max-width:767px){
#smp_nav_btn{ display: flex; align-items: flex-end; justify-content: center; background: #004798; padding: 0; width: 12.5vw; height: 12.5vw; position: fixed; right:1.25vw; top:1.25vw; z-index:9999; border-radius: 2.5vw; transition:0.3s; cursor:pointer;}
#smp_nav_btn span{ display:block; height:1px; width:7.5vw; background:none; position:absolute; left:0; right:0; top: 50%; transform: translateY(-50%); margin:auto; transition:0.3s;}
#smp_nav_btn span:before{ content: ""; display:block; height:2px; width:100%; background:#fff; position:absolute; bottom:1vw; transition:0.3s;}
#smp_nav_btn span:after{ content: ""; display:block; height:2px; width:100%; background:#fff; position:absolute; top:1vw; transition:0.3s;}
#smp_nav_btn.active span:before{ bottom:0; transform: rotate(22.5deg);}
#smp_nav_btn.active span:after{ top:0; transform: rotate(-22.5deg);}

header nav.pc_nav{ display: none !important;}
header nav.smp_nav{ display: none; min-height: calc(100dvh - 15vw);}
header nav.smp_nav{ background: #004798; color: #fff; padding: 5% 6%; overflow-x: hidden; overflow-y: auto;}

header nav.smp_nav #h_search_smp{ width: 100%; display: flex; justify-content: flex-end;}
header nav.smp_nav #h_search_smp form{ width: 100%;}
header nav.smp_nav #h_search_smp dl{ display: flex; align-items: center; justify-content: space-between; background: #fff; padding: 0 2.5vw 0 5vw; height: 10vw; border-radius: 5vw; overflow: hidden;}
header nav.smp_nav #h_search_smp dl dt{ font-size: 1rem; line-height: 1em; padding-right: 0.5em;}
header nav.smp_nav #h_search_smp dl dt input{ font-size: 1rem; line-height: 1em; font-weight: 400; border: none; padding: 0;}
header nav.smp_nav #h_search_smp dl dd{ font-size: 1rem; line-height: 1em;}
header nav.smp_nav #h_search_smp dl dd button{ display: flex; align-items: center; justify-content: center; width: 7.5vw; height: 7.5vw; background: #fff; color: #004798; font-size: 1rem; font-weight: 900; line-height: 1em; padding: 0; border: none; cursor: pointer; border-radius: 50%; transition: 0.3s;}

header nav.smp_nav #smp_nav_in dl{ margin-top: 0; padding: 5vw 0; border-bottom: 1px solid #fff;}
header nav.smp_nav #smp_nav_in dl:first-child{ margin-top: 0;}
header nav.smp_nav #smp_nav_in dl dt{ font-size: 1.2rem; line-height: 1.25em; padding: 0 5vw 0 0; position: relative;}
header nav.smp_nav #smp_nav_in dl dt:before{ display: none;}
header nav.smp_nav #smp_nav_in dl dt span{ position: absolute; right: 1.25vw; top: 50%; transform: translateY(-50%); width: 3.75vw; height: 3.75vw; cursor: pointer;}
header nav.smp_nav #smp_nav_in dl dt span:before{ content: ""; width: 100%; height: 2px; background: #fff; position: absolute; left: 0; top: 50%; transform:  translateY(-50%);}
header nav.smp_nav #smp_nav_in dl dt span:after{ content: ""; width: 100%; height: 2px; background: #fff; position: absolute; left: 0; top: 50%; transform:  translateY(-50%) rotate(90deg); transition: 0.3s;}
header nav.smp_nav #smp_nav_in dl dt.active span:after{transform: translateX(-50%) rotate(0deg); opacity: 0;}
header nav.smp_nav #smp_nav_in dl dd{ display: none; font-size: 1rem; line-height: 1em; margin-top: 0;}
header nav.smp_nav #smp_nav_in dl dd ul li{ line-height: 1.5em; margin: 3.75vw 0 0 2.5vw; padding: 0 0 0 2.5vw; position: relative;}
header nav.smp_nav #smp_nav_in dl dd ul li:before{ content: ""; width: 1.25vw; height: 1px; background: #fff; position: absolute; left: 0; top: 50%; transform: translateY(-50%);}
header nav.smp_nav #smp_nav_in dl dd ul li:after{ font-family: "Font Awesome 5 Free"; font-size: 0.9rem; line-height: 1em; font-weight: 900; content: "\f061"; color: #fff; position: absolute; right: 0; top: 33.33%; transform: translateX(-50%);}

header nav.smp_nav #smp_nav_in .others{ margin-top: 10%;}
header nav.smp_nav #smp_nav_in .others dl dt:after{ font-family: "Font Awesome 5 Free"; font-size: 0.9rem; line-height: 1em; font-weight: 900; content: "\f061"; color: #fff; position: absolute; right: 0; top: 33.33%; transform: translateX(-50%);}

header nav.smp_nav #smp_nav_in2{ margin-top: 7.5%; padding-bottom: 10%; display: flex; flex-wrap: wrap;}
header nav.smp_nav #smp_nav_in2 ul.lang{ display: flex; padding-right: 5vw; border-right: 1px solid #35669D; font-size: 1.2rem; font-weight: bold;}
header nav.smp_nav #smp_nav_in2 ul.lang .active{ color: #A2BCD6; transition: 0.3s;}
header nav.smp_nav #smp_nav_in2 ul.size{ display: flex; padding-left: 5vw; font-size: 1.2rem; font-weight: bold;}
header nav.smp_nav #smp_nav_in2 ul.size strong{ margin-right: 0.5em;}
header nav.smp_nav #smp_nav_in2 ul.size li{ cursor: pointer;}
header nav.smp_nav #smp_nav_in2 ul.size .active{ color: #A2BCD6; transition: 0.3s;}
header nav.smp_nav #smp_nav_in2 ul.sns{ width: 100%; margin-top: 5%; font-size: 1.2rem; font-weight: bold;}
}



/*フッター*/
footer{ margin-top: 260px; background: #004798; border-radius: 200px 0 0 0; padding: 60px 0; position: relative;}
@media screen and (max-width:767px){
footer{ margin-top: 60vw; padding: 3.75% 6%; border-radius: 0;}
}

footer #f_cv{ margin: -220px auto 120px; display: flex; align-items: center; justify-content: center; background: #fff; width: 1100px; padding: 80px; border-radius: 60px; box-shadow:rgba(0, 0, 0, 0.16) 10px 10px 20px;}
footer #f_cv h2{ display: flex; flex-direction: column; align-items: center; justify-content: center; margin-right: 160px;}
footer #f_cv h2 strong{ font-size: 2.5rem; font-weight: bold; line-height: 1em; color: #004798;}
footer #f_cv h2 span{ font-size: 1.5rem; line-height: 1em; letter-spacing: 0.04em; margin-top: 40px; position: relative;}
footer #f_cv h2 span:before{ content: ""; background: url("../images/cv_tit_ico.png") center center; background-size: 100%; width: 20px; height: 10px; position: absolute; left: 0; right: 0; top: -25px; margin: auto;}
footer #f_cv .cont h3{ font-size: 1rem; margin-bottom: 10px;}
footer #f_cv .cont p{ font-size: 1rem; line-height: 1.5em; font-weight: bold;}
footer #f_cv .cont p a{ color: #004798; display: inline-block; margin-left: 0.5em;}
footer #f_cv .cont figure.cv_btn{ margin-top: 20px;}
footer #f_cv .cont figure.cv_btn a{ display: flex; align-items: center; justify-content: center; position: relative; width: 320px; height: 60px; font-size: 0.8rem; font-weight: bold; line-height: 1em; background: #004798; color: #fff; border-radius: 30px; padding-right: 25px;}
footer #f_cv .cont figure.cv_btn a i{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #004798; color: #fff; border: 1px solid #fff; border-radius: 50%; font-size: 0.6rem; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); transition: 0.3s;}
footer #f_cv .cont figure.cv_btn a:hover i{ background: #fff; color: #004798; transform: translateY(-50%) rotate(-45deg);}
@media screen and (max-width:767px){
footer #f_cv{ margin: -50vw auto 15%; display: block; width: 100%; padding: 10% 7.5%; border-radius: 5vw;}
footer #f_cv h2{ margin: 0 0 15%;}
footer #f_cv h2 strong{ font-size: 2.5rem;}
footer #f_cv h2 span{ margin-top: 7.5vw}
footer #f_cv h2 span:before{ width: 5vw; height: 2.5vw; top: -5vw;}
footer #f_cv .cont h3{ font-size: 1.4rem; margin: 0 5% 1.25%;}
footer #f_cv .cont p{ font-size: 1.3rem; margin: 0 5%;}
footer #f_cv .cont figure.cv_btn{ margin-top: 7.5%;}
footer #f_cv .cont figure.cv_btn a{ width: 100%; height: 12.5vw; border-radius: 15vw; padding-right: 5vw;}
footer #f_cv .cont figure.cv_btn a i{ width: 7.5vw; height: 7.5vw; right: 2.5vw;}
}

footer #f_cv2{ margin: -220px auto 120px; background: #fff; width: 1100px; padding: 80px; border-radius: 60px; box-shadow:rgba(0, 0, 0, 0.16) 10px 10px 20px;}
footer #f_cv2 h2{ display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 50px;}
footer #f_cv2 h2 strong{ font-size: 2.5rem; font-weight: bold; line-height: 1em; color: #004798;}
footer #f_cv2 h2 span{ font-size: 1.5rem; line-height: 1em; letter-spacing: 0.04em; margin-top: 40px; position: relative;}
footer #f_cv2 h2 span:before{ content: ""; background: url("../images/cv_tit_ico.png") center center; background-size: 100%; width: 20px; height: 10px; position: absolute; left: 0; right: 0; top: -25px; margin: auto;}
footer #f_cv2 .cont h3{ text-align: center; font-size: 1.2rem; margin-bottom: 25px;}
footer #f_cv2 .cont p{ text-align: center; font-size: 0.8rem; line-height: 1.5em; margin-top: 30px;}
footer #f_cv2 .cont .table_wrap{ background: #EAF2FA; padding: 20px; border-radius: 20px;}
footer #f_cv2 .cont .table_wrap table{ margin: auto; border-spacing: 1.5em 0.75em; font-size: 1rem; line-height: 1.66em;}
footer #f_cv2 .cont .table_wrap table th{ text-align: right;}
footer #f_cv2 .cont .table_wrap table td{ color: #004798; font-weight: bold;}
footer #f_cv2 .cont .table_wrap table td p{ margin: 0; line-height: 1.66em; font-size: 0.8rem;}
footer #f_cv2 .cont figure.cv_btn{ margin-top: 30px;}
footer #f_cv2 .cont figure.cv_btn a{ display: flex; align-items: center; justify-content: center; margin: auto; position: relative; width: 320px; height: 60px; font-size: 0.8rem; font-weight: bold; line-height: 1em; background: #004798; color: #fff; border-radius: 30px; padding-right: 25px;}
footer #f_cv2 .cont figure.cv_btn a i{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #004798; color: #fff; border: 1px solid #fff; border-radius: 50%; font-size: 0.6rem; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); transition: 0.3s;}
footer #f_cv2 .cont figure.cv_btn a:hover i{ background: #fff; color: #004798; transform: translateY(-50%) rotate(-45deg);}
@media screen and (max-width:767px){
footer #f_cv2{ margin: -50vw auto 15%; display: block; width: 100%; padding: 10% 7.5%; border-radius: 5vw;}
footer #f_cv2 h2{ margin: 0 0 15%;}
footer #f_cv2 h2 strong{ font-size: 2.5rem;}
footer #f_cv2 h2 span{ margin-top: 7.5vw}
footer #f_cv2 h2 span:before{ width: 5vw; height: 2.5vw; top: -5vw;}
footer #f_cv2 .cont h3{ font-size: 1.4rem; margin: 0 auto 5%;}
footer #f_cv2 .cont p{ font-size: 0.9rem; margin: 5% auto;}
footer #f_cv2 .cont .table_wrap{ padding: 2.5% 0; border-radius: 2.5vw;}
footer #f_cv2 .cont .table_wrap table{ border-spacing: 1.5em 0.75em; font-size: 1rem;}
footer #f_cv2 .cont .table_wrap table td p{ font-size: 0.8rem; text-align: left;}
footer #f_cv2 .cont figure.cv_btn{ margin-top: 7.5%;}
footer #f_cv2 .cont figure.cv_btn a{ width: 100%; height: 12.5vw; border-radius: 15vw; padding-right: 5vw;}
footer #f_cv2 .cont figure.cv_btn a i{ width: 7.5vw; height: 7.5vw; right: 2.5vw;}
}

footer #footer{ max-width: 1100px; display: flex; justify-content: center; margin: auto; color: #fff; position: relative;}
footer #footer p.copyright{ position: absolute; left: 0; bottom: 0; font-size: 0.65rem; line-height: 1.5em;}
footer #footer_info{ width: 340px;}
footer #footer_info figure.logo{ width: 135px; text-align: left; margin: 0 0 30px;}
footer #footer_info h4{ font-size: 0.75rem; margin-bottom: 15px;}
footer #footer_info p{ font-size: 0.65rem; line-height: 1.5em; margin-bottom: 10px;}
footer #footer_info .sns{ margin-top: 20px;}
footer #footer_info .sns ul{ display: flex;}
footer #footer_info .sns ul li{ margin-right: 18px;}
footer #footer_info .sns ul li img{ height: 18px;}
@media screen and (max-width:767px){
footer #footer{ flex-direction: column-reverse;}
footer #footer p.copyright{ position: static; font-size: 0.7rem; line-height: 1.5em; margin-top: 5%;}
footer #footer_info{ width: 100%; margin-top: 15%;}
footer #footer_info figure.logo{ width: 40%; margin-bottom: 7.5%;}
footer #footer_info h4{ font-size: 1rem; margin-bottom: 5%;}
footer #footer_info p{ font-size: 0.9rem; margin-bottom: 2.5%;}
footer #footer_info .sns{ margin-top: 5%;}
footer #footer_info .sns ul li{ margin-right: 3.75vw;}
footer #footer_info .sns ul li img{ height: 5vw;}
}

footer #footer_nav{ width: calc(100% - 340px); display: flex;}
footer #footer_nav a:hover{ text-decoration: underline;}
footer #footer_nav .footer_nav_in{ padding: 0 35px; border-left: 1px solid #437CBE;}
footer #footer_nav .footer_nav_in:nth-child(3){ padding-right: 0;}
footer #footer_nav dl{ margin-top: 60px;}
footer #footer_nav dl:first-child{ margin-top: 0;}
footer #footer_nav dl dt{ font-size: 0.8rem; font-weight: bold; position: relative; padding-left: 1em;}
footer #footer_nav dl dt:before{ content: ""; width: 8px; height: 8px; background: #fff; position: absolute; left: 0; top: 50%; transform: translateY(-50%); border-radius: 50%;}
footer #footer_nav dl dd{ font-size: 0.65rem; margin-top: 1.5em;}
footer #footer_nav dl dd ul li{ line-height: 1.5em; margin-top: 1em;}
@media print, screen and (min-width:768px){
footer #footer_nav dl dt span{ display: none !important;}
footer #footer_nav dl dd{ display: block !important; opacity: 1.0 !important;}
}
@media screen and (max-width:767px){
footer #footer_nav{ display: block; width: 100%;}
footer #footer_nav .footer_nav_in{ padding: 0; border: none;}
footer #footer_nav dl{ margin-top: 0; padding: 5vw 0; border-bottom: 1px solid #fff;}
footer #footer_nav dl:first-child{ margin-top: 0;}
footer #footer_nav dl dt{ font-size: 1.2rem; line-height: 1.25em; padding: 0 5vw 0 0;}
footer #footer_nav dl dt:before{ display: none;}
footer #footer_nav dl dt span{ position: absolute; right: 1.25vw; top: 50%; transform: translateY(-50%); width: 3.75vw; height: 3.75vw; cursor: pointer;}
footer #footer_nav dl dt span:before{ content: ""; width: 100%; height: 2px; background: #fff; position: absolute; left: 0; top: 50%; transform:  translateY(-50%);}
footer #footer_nav dl dt span:after{ content: ""; width: 100%; height: 2px; background: #fff; position: absolute; left: 0; top: 50%; transform:  translateY(-50%) rotate(90deg); transition: 0.3s;}
footer #footer_nav dl dt.active span:after{transform: translateX(-50%) rotate(0deg); opacity: 0;}
footer #footer_nav dl dd{ display: none; font-size: 1rem; line-height: 1em; margin-top: 0;}
footer #footer_nav dl dd ul li{ line-height: 1.5em; margin: 3.75vw 0 0 2.5vw; padding: 0 0 0 2.5vw; position: relative;}
footer #footer_nav dl dd ul li:before{ content: ""; width: 1.25vw; height: 1px; background: #fff; position: absolute; left: 0; top: 50%; transform: translateY(-50%);}
footer #footer_nav dl dd ul li:after{ font-family: "Font Awesome 5 Free"; font-size: 0.9rem; line-height: 1em; font-weight: 900; content: "\f061"; color: #fff; position: absolute; right: 0; top: 33.33%; transform: translateX(-50%);}

footer #footer_nav .others{ margin-top: 10%;}
footer #footer_nav .others dl dt:after{ font-family: "Font Awesome 5 Free"; font-size: 0.9rem; line-height: 1em; font-weight: 900; content: "\f061"; color: #fff; position: absolute; right: 0; top: 33.33%; transform: translateX(-50%);}
}



/*固定ボタン*/
#fixed_btn{ position: fixed; right: 0; bottom: 0; z-index: 99; transition: 0.3s;}
#fixed_btn.hide{ opacity: 0; pointer-events: none;}
#fixed_btn ul li{ margin: 5px 0;}
#fixed_btn ul li a{ display: flex; align-items: center; justify-content: flex-start; width: 190px; height: 50px; background: #000; color: #fff; padding: 10px; border-radius: 10px 0 0 10px;}
#fixed_btn ul li a span{ width: 20px; line-height: 0; margin-right: 10px;}
#fixed_btn ul li a p{ font-size: 0.65rem; font-weight: bold; line-height: 1.25em; height: 2.5em; display: flex; align-items: center;}
#fixed_btn ul li:nth-child(1) a{ background: #004798;}
#fixed_btn ul li:nth-child(2) a{ background: #D50A22;}
@media screen and (max-width:767px){
#fixed_btn{ display: flex; align-items: center; justify-content: center; width: 100%;}
#fixed_btn ul{ display: flex; flex-direction: row-reverse; width: 100%; padding: 1.25vw;}
#fixed_btn ul li{ width: calc(50% - 2.5vw); margin: 0 1.25vw;}
#fixed_btn ul li a{ width: 100%; height: 12.5vw; padding: 1.25vw; border-radius: 1.25vw; border: 1px solid #fff;}
#fixed_btn ul li a span{ width: 5vw; margin-right: 1.875vw;}
#fixed_btn ul li a p{ font-size: 0.85rem; line-height: 1.25em; height: 1em;}
}



/*メイン*/
#content{ overflow:hidden;}
section{ width:100%; margin:0 auto;}
.maincontent{ padding:0; margin:0 auto; width:1100px;}
@media screen and (max-width:767px){
.maincontent{ padding:0; margin:0 auto; width:88%;}
}
/*アニメーション*/
section{ opacity: 0; position: relative;}
section.active{ animation: section ease-in-out 0.6s forwards; animation-delay: 0s;}
@keyframes section{
0%{ opacity: 0; top: 5vw;}
100%{ opacity: 1.0; top: 0;}
}

/*btn_more*/
figure.btn_more{ display: flex; align-items: center; justify-content: center;}
figure.btn_more a{ display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: bold; color: #004798;}
figure.btn_more a i{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: none; color: #fff; font-size: 0.8rem; border-radius: 50%; margin-left: 20px; transition: 0.3s; position: relative; z-index: 1;}
figure.btn_more a i:after{ content: ""; width: 40px; height: 40px; background: #004798; border-radius: 50%; position: absolute; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); z-index: -1; transition: 0.3s;}
figure.btn_more a:hover i{ transform: rotate(-45deg);}
figure.btn_more a:hover i:after{ width: 50px; height: 50px; opacity: 0.8;}
@media screen and (max-width:767px){
figure.btn_more a{ font-size: 1rem;}
figure.btn_more a i{ width: 7.5vw; height: 7.5vw; font-size: 0.7rem; margin-left: 3.75vw;}
figure.btn_more a i:after{ content: ""; width: 7.5vw; height: 7.5vw;}
figure.btn_more a:hover i:after{ width: 8.75vw; height: 8.75vw; opacity: 0.8;}
}

/*btn_style*/
figure.btn_style01{ margin-top: 50px;}
figure.btn_style01 a{ margin: 0 auto; display: flex; align-items: center; justify-content: center; position: relative; width: 320px; height: 60px; font-size: 0.8rem; font-weight: bold; line-height: 1em; background: #004798; color: #fff; border: 2px solid #004798; border-radius: 30px; padding-right: 25px;}
figure.btn_style01 a i{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #004798; color: #fff; border: 1px solid #fff; border-radius: 50%; font-size: 0.6rem; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); transition: 0.3s;}
figure.btn_style01 a:hover i{ background: #fff; color: #004798; transform: translateY(-50%) rotate(-45deg);}
@media screen and (max-width:767px){
figure.btn_style01{ margin-top: 7.5%;}
figure.btn_style01 a{ width: 88%; height: 12.5vw; border-radius: 15vw; padding-right: 5vw;}
figure.btn_style01 a i{ width: 7.5vw; height: 7.5vw; right: 2.5vw;}
}

figure.btn_style02{ margin-top: 50px;}
figure.btn_style02 a{ margin: 0 auto; display: flex; align-items: center; justify-content: center; position: relative; width: 320px; height: 60px; font-size: 0.8rem; font-weight: bold; line-height: 1em; background: #fff; color: #004798; border: 2px solid #004798; border-radius: 30px; padding-right: 25px; transition: 0.3s;}
figure.btn_style02 a i{ display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: #004798; color: #fff; border: none; border-radius: 50%; font-size: 0.6rem; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); transition: 0.3s;}
figure.btn_style02 a:hover{ background: #004798; color: #fff; border-color: #fff;}
figure.btn_style02 a:hover i{ background: #fff; color: #004798; transform: translateY(-50%) rotate(-45deg);}
@media screen and (max-width:767px){
figure.btn_style02{ margin-top: 7.5%;}
figure.btn_style02 a{ width: 88%; height: 12.5vw; border-radius: 15vw; padding-right: 5vw;}
figure.btn_style02 a i{ width: 7.5vw; height: 7.5vw; right: 2.5vw;}
}

/*tit*/
h1,h2,h3,h4,h5,h6{ line-height: 1.25em; letter-spacing: 0;}
h2.tit_h2{ text-align: center; font-size: 2rem; line-height: 1.5em; padding-bottom: 20px; margin-bottom: 50px; position: relative;}
h2.tit_h2:after{ content: ""; width: 17px; height: 10px; background: url("../images/tit_ico.png") center center no-repeat; background-size: 100%; position: absolute; left: 0; right: 0; bottom: 0; margin: auto;}
@media screen and (max-width:767px){
h2.tit_h2{ font-size: 1.8rem; padding-bottom: 3.75vw; margin-bottom: 10%;}
h2.tit_h2:after{ width: 3.4vw; height: 2vw;}
}


/*txt*/
p.txt{ }
body.size01 p.txt{ font-size: 0.6rem;}
body.size02 p.txt{ font-size: 0.8rem;}
body.size03 p.txt{ font-size: 1.2rem;}
p.txt a{ color: #004798; text-decoration: underline;}
p.txt a i{ margin-right: 0.5em;}
p.txt a:hover{ text-decoration: none;}
a.txtLink{ color: #004798; text-decoration: underline;}
a.txtLink:hover{ text-decoration: none;}

/*page_nav*/
#page_nav{ display: flex; align-items: center; justify-content: center; margin-top: 80px; padding-bottom: 20px;}
#page_nav a{ display: flex; align-items: center; justify-content: center; background: #004798; color: #fff; font-size: 0.8rem; width: 40px; height: 40px; border-radius: 50%; transition: 0.3s;}
#page_nav a.negative{ pointer-events: none; background: #D3D3D3;}
#page_nav a.prev:hover{ transform: rotate(45deg);}
#page_nav a.next:hover{ transform: rotate(-45deg);}

#page_nav ul{ display: flex; align-items: center; justify-content: center; background: #fff; border-radius: 60px; padding: 8px 12px; margin: 0 12px; box-shadow:rgba(0, 0, 0, 0.06) 6px 6px 20px;}
#page_nav ul li{ margin: 0 2px;}
#page_nav ul li a{ width: 46px; height: 46px; font-size: 1.2rem; font-weight: bold; background: #fff; color: #333;}
#page_nav ul li a:hover,
#page_nav ul li.active a{ background: #004798; color: #fff;}
@media screen and (max-width:767px){
#page_nav{ margin-top: 15%; padding-bottom: 20px;}
#page_nav a{ font-size: 0.8rem; width: 7.5vw; height: 7.5vw;}
#page_nav ul{ border-radius: 10vw; padding: 1.25vw 2.5vw; margin: 0 2.5vw;}
#page_nav ul li{ margin: 0 2px;}
#page_nav ul li a{ width: 8.75vw; height: 8.75vw; font-size: 1rem;}
}



@media print, screen and (min-width:768px){
.smp{ display:none !important;}
}
@media screen and (max-width:767px){
.pc{ display:none !important;}
}
