@charset "utf-8";
*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    backface-visibility: hidden;
}
html{ margin: 0; padding: 0; /*scroll-padding-top: 100px;*/}
body {
	margin: 0;
	padding: 0;
	font-family: 'Noto Sans JP', "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif;
    font-size: 16px;
	font-weight:500;
    color:#222;
    line-height:180%;
    overflow-x: hidden;
}
img {
	border: none;
	vertical-align:bottom;
}
div, p, ul, ul li, h1, h2, h3, h4, h5, dl, dt, dd {
	margin: 0;
	padding: 0;
	font-size: 100%;
	list-style:none;
	box-sizing:border-box;
}
img, video, object {
    max-width: 100%;
    height: auto;
    border: none;
}
img {
	display: block;
    width: 100%; height: auto;
	image-rendering: smoothe !important;
}
iframe { border: none;}

a:link {color:#1f3b8f; outline:none; text-decoration: none;}
a:visited {color:#1f3b8f;}
a:hover {color: #222; text-decoration: underline;}
a:hover img { opacity: 0.7; filter: alpha(opacity=70);}
a[href^="tel:"] { text-decoration:none; pointer-events:none ; text-emphasis: none !important;}
a[href^="fax:"] { text-decoration:none; pointer-events:none ;}

.en { font-family: "Tilt Warp", sans-serif;}

.pc {display: inherit;}
.pctb {display: inherit;}
.tb {display: none;}
.tbsp {display: none;}
.sp {display: none;}

@media only screen and (min-width:768px){
    a:hover {color:red; text-decoration: underline; transition:0.3s; }
    a:hover img { opacity: 0.7; filter: alpha(opacity=70); -moz-opacity: 0.7;}
}
@media only screen and (max-width:768px){
    .pc {display:none;}
    .pctb {display:inherit;}
    .tb {display:inherit;}
    .tbsp {display:inherit;}
    .sp {display:none;}
}
@media only screen and (max-width:468px){
    body { min-width: 320px;}
    .pc {display:none;}
    .pctb {display:none;}
    .tb {display:none;}
    .tbsp {display:inherit;}
    .sp {display:inherit;}
}

/* =========================================================================================
Layout
=========================================================================================*/
#wrapper{
    position:relative;
}
#container{
}
article {
}
section {
}
.inner {
    position:relative;
    margin: 0 auto;
    width: 96%;
    max-width: 1180px;
    box-sizing:border-box;
}
@media only screen and (max-width:768px){
}
@media only screen and (max-width:395px){
}



/*====================================================================================================
  HEADER
====================================================================================================*/
#header {
    position: absolute; top:0; left: 0; right: 0; z-index: 999999;

}


/* LOGO */
#header h1 { display: none; position: fixed; top: 33px; right: 150px;}
#header h1 a { display: block; position: relative;}
#header h1 img { width:314px; height: auto; aspect-ratio: 314 / 41;}
#header h1 span {
    position: absolute; top: -25px; left:0; right: 0;
    margin: auto;
    font-size:62.5%;
    color: #1f3b8f;
    text-align: center;
}
@media only screen and (max-width:1180px){
    #header h1 a { display: flex; flex-direction: row-reverse; align-items: center; gap:10px;}
    #header h1 span { position: static;}
}


/* NAV */
#header .nav_btn {
    position: fixed; top:20px; right:20px; z-index: 999999;
    cursor: pointer; 
    width:70px; height:70px;
    border-radius: 70px;
    background: #fff;
    box-shadow: 0px 0px 10px 0px rgba(31,59,143,0.30);
}
#header .nav_btn span {
    display: inline-block;
    position: absolute; left:0; right: 0; margin:auto;
    width:30px; height: 3px;
    background:#1f3b8f;
    border-radius: 3px;
    transition: all .3s;
}
#header .nav_btn span:nth-of-type(1) {top:25px;}
#header .nav_btn span:nth-of-type(2) {top:33px;}
#header .nav_btn span:nth-of-type(3) {top:41px;}
#header .nav_btn.active span:nth-of-type(1) { top:33px; transform:rotate(-45deg);}
#header .nav_btn.active span:nth-of-type(2) { opacity: 0;}
#header .nav_btn.active span:nth-of-type(3) { top:33px; transform:rotate(45deg);}
#header .nav_btn small { position: absolute; left:0; right: 0; bottom:5px; text-align: center; font-size: 10px; color: #1f3b8f;}
#header #nav {
    display: none;
    position: fixed; top: 0; right: 0; z-index: 9999;
    background: #fff;
    box-shadow: 0px 0px 8px 0px rgba(31,59,143,0.30);
}
#header #nav ul {
    padding:50px 50px 75px;
    width: 385px; overflow: auto;
    display: flex; flex-direction: column; gap:35px;
}
#header #nav ul li a {
    position: relative;
    padding-left: 51px;
    font-size: 131.3%;
    font-weight: 800;
    color: #0039a7;
}
#header #nav ul li a::before {
    display: block; clear: both; content:""; z-index: 9;
    position: absolute; top: 0; left: 0;
    width: 34px; height: 34px;
    border-radius: 34px;
    background: #0039a7 url("../images/common/arrow1_y.webp") no-repeat center center;
    background-size: 14px auto !important;
}
#header #nav ul li:nth-child(1) { position: relative; left: -20px; margin-bottom: 30px;}
#header #nav ul li:nth-child(1)  a { padding-left: 0 !important; text-align: left;}
#header #nav ul li:nth-child(1) img { width:200px;}
#header #nav ul li:nth-child(1) a::before { display: none;}
#header #nav ul li.b_dl { overflow: hidden; border-radius: 100px; }
#header #nav ul li.b_dl a {
    display: block;
    position: relative;
    padding: 15px 20px;
    text-align: center;
    background: #fef100 url("../images/common/arrow1_y.webp") no-repeat center center;
}
#header #nav ul li.b_dl span { position: relative; z-index: 9;}
#header #nav ul li.b_dl a::before,
#header #nav ul li.b_dl a::after { display: block; clear: both; content:""; transition: all 0.3s ease-out;}
#header #nav ul li.b_dl a::before {
    position: absolute; top: 0; bottom:0; left: inherit; right:15px;
    margin: auto;
    width: 34px; height: 34px;
    border-radius: 34px;
    background: #fff url("../images/common/arrow1_b.webp") no-repeat center center;
    background-size: 14px auto !important;
}
#header #nav ul li.b_dl a::after {
    position: absolute; top: 0; left:-100%;
    width: 100%; height: 100%;
    background: #0039a7;
    z-index:1;
}
@media only screen and (min-width:768px){
    #header #nav ul li a:hover::before {
        background: #faf138 url("../images/common/arrow1_b.webp") no-repeat center center;
    }
    #header #nav ul li.b_dl a:hover { text-decoration: none; color: #fff;}
    #header #nav ul li.b_dl a:hover::before {
        width: 34px; height: 34px;
        border-radius: 34px;
        background: #fff url("../images/common/arrow1_b.webp") no-repeat center center;
        background-size: 14px auto !important;
    }
    #header #nav ul li.b_dl a:hover::after { left:0; text-decoration: none;}    
}
@media only screen and (max-width:468px){
    #header .nav_btn {
        top:12px; right:12px;
        width:57px; height:57px;
        border-radius: 57px;
    }
    #header .nav_btn span {
        width:24px; height: 3px;
    }
    #header .nav_btn span:nth-of-type(1) {top:18px;}
    #header .nav_btn span:nth-of-type(2) {top:26px;}
    #header .nav_btn span:nth-of-type(3) {top:34px;}
    #header .nav_btn.active span:nth-of-type(1) { top:26px;}
    #header .nav_btn.active span:nth-of-type(2) { opacity: 0;}
    #header .nav_btn.active span:nth-of-type(3) { top:26px;}
    #header #nav {
        top: 40px; left: 0; right: 0;
        margin: auto; width: 310px;
    }
    #header #nav ul {
        padding: 50px 30px 40px;
        width:310px; overflow: auto;
        margin: auto; 
        gap:28px;
    }
    #header #nav ul li a { padding-left: 45px; font-size: 112.5%;}
    #header #nav ul li a::before {
        width: 30px; height: 30px; border-radius: 30px;
    }
}



/*====================================================================================================
  CONTENT
====================================================================================================*/
#content { clear:both; width:100%; }

/* BUTTON */
.btn_box { display: flex; justify-content: center; gap:20px;}
.btn_box p { width: 50%;}
.btn1 a {
    position: relative;
    display: block;
    padding: 10px;
    width: 100%;
    font-weight: bold;
    text-align: center;
    letter-spacing: 1px;
    border-radius: 100px;
    box-shadow: 0px 5px 10px 0px rgba(31, 59, 143, 0.25);
    overflow: hidden;
}
.btn1 a::before,
.btn1 a::after { display: block; clear: both; content:""; transition: all 0.3s ease-out;}
.btn1 a span { position: relative; z-index: 2;}
.btn1 a::before {
    position: absolute; top: 0; bottom: 0; right:20px;
    margin: auto;
    border-radius: 100px;
    z-index: 2;
}
.btn1 a::after {
    position: absolute; top: 0; left:-100%;
    width: 100%; height: 100%;
    z-index:1;
}
.btn1.btn_b a { color: #fff; font-size: 106%; background: #1f3b8f;}
.btn1.btn_b a::before {
    width: 30px; height: 30px;
    background: #fef100 url("../images/common/arrow1_b.webp") no-repeat center center;
    background-size:12px auto;
}
.btn1.btn_b a::after { background: rgba(255,255,255,0.20);}
.btn1.btn_w a { padding: 15px; color: #1f3b8f; font-size: 125%; background: #fff; border: 5px solid #fef100;}
.btn1.btn_w a::before {
    width: 35px; height: 35px;
    background: #fef100 url("../images/common/arrow1_b.webp") no-repeat center center;
    background-size:14px auto;
}
.btn1.btn_w a::after { background:#fef100;}
.btn1.btn_w.btn_dl a::before { background: #fef100 url("../images/common/arrow_dl.webp") no-repeat center center; background-size:18px auto;}
@media only screen and (min-width:768px){
    .btn1.btn_b a:hover {text-decoration: none;}
    .btn1.btn_b a:hover::after { left:0; text-decoration: none;}
    .btn1.btn_w a:hover {text-decoration: none;}
    .btn1.btn_w a:hover::after { left:0; text-decoration: none;}
    .btn1.btn_w a:hover::before { background-color: #fff;}
}



/*====================================================================================================
  FOOTER
====================================================================================================*/
#footer { clear:both; padding: 30px 0 200px; width:100%; color:#999; text-align: center;}
#footer .inner {  display: flex; justify-content: space-between;}
#footer .inner a {color:#999; }
@media only screen and (min-width:768px){
}
@media only screen and (max-width:468px){
    #footer { padding:70px 0 150px;}
}


/*====================================================================================================
  PAGE
====================================================================================================*/
#page,
#page a { display:block; width:50px; height:50px;}
#page { position: fixed; bottom:20px; right:20px; z-index: 999999;}
#page a {
    text-indent: -9999px;
    background:#1f3b8f url( "../images/common/arrow1_w.webp") no-repeat center center;
    background-size: 20px auto;
    transform: rotate(-90deg);
    border-radius: 100px;
    box-shadow: 0px 0px 5px 0px rgba(31, 59, 143, 0.50);
}
@media only screen and (max-width:768px){
    #page { bottom:85px; right:20px;}
}


/*====================================================================================================
  FIXED CONT
====================================================================================================*/
#fixed_cont { position: fixed; left: 0; bottom: 0; z-index: 999; width: 100%;}

#consent { background:rgba(255, 255, 255, 0.9);}
#consent .inner { display: flex; flex-wrap: wrap; align-items: center; gap:40px; padding:30px 0;}
#consent .come { width: calc(100% - 100px - 40px);}
#consent .come b { display: block; font-size:87.5%; margin-bottom: 5px;}
#consent .come span { display: block; font-size: 75%; line-height:150%;}
#consent .btn { width: 100px;}
#consent .btn a { display: block; padding: 5px; color: #fff; text-align: center; background: #1d2c6f; transition: all 0.3s ease-out;}
@media only screen and (min-width:768px){
    #consent .btn a:hover { opacity: 0.7; text-decoration: none;}
}
@media only screen and (max-width:468px){
    #consent .inner { flex-direction: column; gap:20px; padding:20px;}
    #consent .come { width:100%;}
    #consent .btn { width: 80px; align-self: flex-start;}
    #consent .btn a { padding:2px 5px; font-size: 87.5%;}

}



#f_nav { background: #0039a7;}
#f_nav .inner {
    display: flex; flex-direction: column; gap:10px;
    padding: 9px 0 15px;
}
#f_nav p { font-size: 125%; text-align: center; color: #fff;}
#f_nav ul { display: flex; gap:15px; margin: auto; width: 100%; max-width: 1180px;}
#f_nav ul li { width: 33.3%;}
#f_nav ul li a { padding:7px 15px !important; box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.35);}
#f_nav ul li:nth-child(1) a  { letter-spacing: -1px;}
@media only screen and (max-width:1100px){
    #f_nav ul li:nth-child(1) a { text-indent: -20px;}
}
@media only screen and (max-width:768px){
    #f_nav .inner { padding:0; width: 100%;}
    #f_nav ul { gap:0;}
    #f_nav ul li a {
        padding: 45px 0 5px !important;
        height: 75px;
        font-size:87.5% !important;
        line-height: 110%;
        letter-spacing: 0;
        border:none;
        border-radius: 0;
        background-size: 60px auto !important;
        box-shadow:none;
    }
    #f_nav ul li a::before { display: none;}
    #f_nav ul li:nth-child(1) a {
        color: #1f3b8f;
        letter-spacing: 0;
        text-indent:0;
        background: #fef100 url("../images/common/footer_nav1.png") no-repeat top center;
    }
    #f_nav ul li:nth-child(2) a {
        color: #fff;
        background: #1f3b8f url("../images/common/footer_nav2.png") no-repeat top center;
    }
    #f_nav ul li:nth-child(3) a {
        color: #fff;
        background: #418ccd url("../images/common/footer_nav3.png") no-repeat top center;
    }
    #f_nav p { display: none;}
}
@media only screen and (max-width:375px){
    #f_nav ul li a { font-size:80% !important; }
}
@media only screen and (max-width:320px){
    #f_nav ul li a { font-size:75% !important; letter-spacing: -0.5px; }
}



/*====================================================================================================
  POP BANA
====================================================================================================*/
.pop_bana {
    position: fixed; bottom:50px; right: 30px; z-index: 999;
    width: 250px;
}
.pop_bana img {image-rendering: -webkit-optimize-contrast;}
.pop_bana .close {
    cursor: pointer;
    display: block;
    position: absolute; top: 0; right: 0;
    width: 40px; height: auto;
    aspect-ratio: 1 / 1;
    text-indent: -9999px;
    background: url("../images/pop_bana_close.webp") no-repeat;
    background-size: 100% auto;
}
@media only screen and (min-width:768px){
    .pop_bana .close:hover { opacity: 0.7;}
}
@media only screen and (max-width:1850px){
    .pop_bana { right: 2%; bottom:100px;}
    .pop_bana.is-consent { bottom: 270px;}
}
@media only screen and (max-width:1000px){
    .pop_bana { bottom:95px;  width:200px;}
    .pop_bana .close { top:-10px; right:-5px; }
}
@media only screen and (max-width:468px){
    .pop_bana {bottom:85px; right:2%; width:120px;}
    .pop_bana .close { top:-15px; right:-10px; }
    .pop_bana.is-consent { bottom: 270px;}
    .pop_bana a:hover img { opacity:1;}
}


/*====================================================================================================
  COLOR eto..
====================================================================================================*/
.light-blue { color: #40A6DD;}
.blue { color: #0000FF;}
.dark-blue { color: #000099;}
.purple { color: #660099;}
.pink { color: #FF6699;}
.red { color: #FF0000;}
.orange { color: #FF6600;}
.yellow { color: #FFCC00;}
.white { color: #FFFFFF;}
.gray { color: #666666;}
.brown { color: #663300;}
.green { color: #339900;}
.italic { font-style: italic;}
.strong { font-weight: bold;}
.large { font-size: 115%; line-height: 140%;}
.small { font-size: 80%;}
.underline { text-decoration: underline;}
.line-through { text-decoration: line-through;}
.left { text-align: left;}
.center { text-align: center;}
.right { text-align: right;}