@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; scrollbar-gutter: stable;}
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;
}
body.noscroll { overflow: 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;}
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 ;}

.noscroll { height: 100vh !important; overflow: hidden !important;}
.eventnone {pointer-events: none !important;}
.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:#000; 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){
    html{ scroll-padding-top: 60px;}
    body {}
    .pc {display:none;}
    .pctb {display:none;}
    .tb {display:none;}
    .tbsp {display:inherit;}
    .sp {display:inherit;}
}





/* =========================================================================================
Layout
=========================================================================================*/
#wrapper {

}
#container {
    position:relative;
    padding-top:73px;
    overflow-x: hidden;
}
article {
}
section {
}
.inner {
    position:relative;
    margin: 0 auto;
    width: 87%;
    max-width:1000px;
    box-sizing:border-box;
}
@media only screen and (max-width:1200px){
    #container { padding-top: 0;}
}
@media only screen and (max-width:768px){
    #container { padding-top: 0;}
}
@media only screen and (max-width:468px){
}



/*====================================================================================================
  HEADER
====================================================================================================*/
#header {
    position:fixed; top: 0; left: 0; z-index:9999;
    display: flex; justify-content:space-between;
    width: 100%;
    padding: 0 30px;
    background: #fff;
}
#header .inner { margin: 0; width: auto; max-width: 1230px;}

/* LOGO */
#header .logo a {
    display: block;
    width: 100%; height: auto; max-width: 110px;
}

/* NAV */
#header #nav ul.h_nav1 { display: flex; flex-wrap: wrap;}
#header .sp_login,
#header #nav ul.h_nav1 li.sp_nav,
#header #nav ul.h_nav1 li.sp_nav2,
#header #nav ul.h_nav1 li .child_nav { display: none;}
#header #nav .nav_cont { display: flex; align-items: center;}
#header #nav ul.h_nav1 li { position: relative; padding: 0 20px;}
#header #nav ul.h_nav1 li a,
#header #nav ul.h_nav1 li span {
    font-size: 87.5%;
    font-weight: 600;
}
#header #nav ul.h_nav1 li + li + li::before {
    display: block; clear: both; content:"";
    position: absolute; top: 0; left: 0; bottom: 0;
    margin: auto;
    width: 1px; height: 18px;
    background: #0039a7;
}
#header #nav ul.h_nav1 li ul li::before { display: none;}
#header #nav ul.h_nav1 li a,
#header #nav ul.h_nav1 li span { color: #000;}
#header #nav ul.h_nav2 { display: flex; gap:10px;}
#header #nav ul.h_nav2 li { width: 135px;}
#header a.btn {
    display: block;
    font-size: 81.2%;
    font-weight: 600;
    line-height: 40px;
    text-align: center;
    color: #fff;
    letter-spacing: 1px;
    background: #0039a7;
    border-radius: 100px;
    box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.18);
}
#header a.b_dl { background: #fbf038; color: #000;}
#header a.b_contact { background: #009ce1;}
#header a.b_login { background: #0039a7;}
@media only screen and (min-width:768px){
    #header #nav ul.h_nav1 li p a:hover {  color: #579bde; text-decoration: none;}
    #header #nav ul.h_nav1 li ul li a:hover { color: #579bde; text-decoration: none;}
    #header #nav ul.h_nav2 li a:hover { text-decoration: none;}
    #header a.btn:hover { opacity: 0.7; text-decoration: none;}
}
@media only screen and (min-width:1201px){
    #header {
        height: 73px; overflow: hidden;
        box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.15);
    }
    #header .logo { position: relative; top: 19px;}
    #header #nav ul.h_nav1 li p { display:flex; align-items:center;}
    #header #nav ul.h_nav1 li .child_nav {
        display: none;
        position: fixed; top: 73px; left: 0;
        width: 100%; 
        background:#fff;
        box-shadow: 0px 3px 3px 0px rgba(0, 0, 0, 0.18);
    }
    #header #nav ul.h_nav1 li .child_nav::before {
        display: block; clear: both; content:"";
        position: relative; top: 0; left: 0;
        width: 100%; height: 15px;
        background-image: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15));
    }
    #header #nav ul.h_nav1 li .parent_nav {
        margin: auto; padding:20px 0;
        width: 100%; max-width: 1000px;
        font-size: 125%;
        letter-spacing: 1px;
        border-bottom: 2px solid #0039a7;
    }
    #header #nav ul.h_nav1 li .parent_nav a {
        padding-right: 35px;
        background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/arrow2_b.webp") no-repeat;
        background-position: right center;
        background-size: 13px auto;
    }
    #header #nav ul.h_nav1 li ul {
        display: flex; flex-wrap: wrap; gap:15px 30px;
        margin: auto; padding:15px 0 30px;
        width: 100%; max-width: 1000px;
    }
    #header #nav ul.h_nav1 li ul li { padding: 0;}
    #header #nav ul.h_nav1 li ul.col2 li { width: calc(50% - 20px);}
    #header #nav ul.h_nav1 li ul.col3 li { width: calc(33.3% - 26.66px);}
    #header #nav ul.h_nav1 li ul li a {
        display: block;
        padding: 10px 0;
        min-height: 55px;
        font-size: 100%;
        background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/arrow2_b.webp") no-repeat;
        background-position:  right center;
        background-size: 10px auto;
        border-bottom: 1px solid #0039a7;
        box-sizing: border-box;
    }
    #header #nav ul.h_nav1 li ul li span { 
        display: block;
        padding-top: 15px;
        font-size: 87.5%;
        color: #777;
        line-height:150%;
    }
    #header #nav ul.h_nav2 li { display: flex; align-items: center; min-height: 75px;}
    #header #nav ul.h_nav2 li a { width: 100%;}
    #header #nav ul.h_nav1 .pull_dl,
    #header #nav ul.h_nav1 .pull_contact {
        display:block;
        position: fixed; top: 73px; left: 0;
        padding: 0;
        width: 100%; 
        background:#fff;
        box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.18);
    }
    #header #nav ul.h_nav1 .pull_dl::before,
    #header #nav ul.h_nav1 .pull_contact::before {
        display: block; clear: both; content:"";
        width: 100%; height: 15px;
        background-image: linear-gradient(0deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15));
    }
    #header #nav ul.h_nav1 .dl_cont li {
        display: block;
        background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/arrow_dl2.webp") no-repeat;
        background-position:  left 10px;
        background-size: 28px auto;
    }
    #header #nav ul.h_nav1 .dl_cont li a { padding-left: 40px;}
    #header #nav ul.h_nav1 .dl_cont li a img { margin: auto; max-width: 155px;}
    #header #nav ul.h_nav1 .dl_cont li a.imglink { padding: 25px 0 0; background:none !important; border: none!important;}
}
@media only screen and (max-width:1413px){
    #header .logo a { max-width: 110px;}
    #header #nav ul.h_nav1 li { padding: 0 10px;}
    #header #nav ul.h_nav2 li { width:120px;}
    #header #nav ul.h_nav2 li a.btn { font-size: 75%; letter-spacing: 0;}
}
@media only screen and (max-width:1200px){
    #header {
        position: fixed; top:0; left: 0; right: 0;
        margin: auto;
        padding:10px 0 0;
        background: none;
    }
    #header .inner {
        position: relative; z-index: 999;
        margin: auto;
        padding: 10px 30px;
        width: 98%;
        text-align: left;
        background: #fff;
        box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.18);
        border-radius: 100px;
    }
    #header .logo a { max-width:100px;}
    #header .sp_login {
        display: block;
        position: absolute; top:12px; right: 60px;
    }
    #header .sp_login a.btn { padding: 0 10px; line-height: 28px;}
    #header .nav_btn {
        position: absolute; top:0; right:10px; cursor: pointer;
        width:52px; height:52px;
    }
    #header .nav_btn span {
        display: inline-block;
        position: absolute; left:0; right: 0; margin:auto;
        width:25px; height: 2.3px;
        background:#0039a7;
        border-radius: 3px;
        transition: all .3s;
    }
    #header .nav_btn span:nth-of-type(1) {top:17px;}
    #header .nav_btn span:nth-of-type(2) {top:25px;}
    #header .nav_btn span:nth-of-type(3) {top:33px;}
    #header .nav_btn.active span:nth-of-type(1) { top:25px; transform:rotate(-45deg);}
    #header .nav_btn.active span:nth-of-type(2) { opacity: 0;}
    #header .nav_btn.active span:nth-of-type(3) { top:25px; transform:rotate(45deg);}
    #header #nav {
        display: none;
        position: absolute; top: 0; left: 0;
        width: 100%; height: 100vh;
        overflow: scroll;
        background:#f3f8fd;
    }
    #header #nav .nav_cont {
        flex-direction: column-reverse;
        padding:85px 0 70px;
    }
    #header #nav .nav_cont li:has(.b_login) { display: none;}
    #header #nav ul.h_nav1 { flex-direction: column; width: 100%;}
    #header #nav ul.h_nav1 li { position: relative; padding:0;}
    #header #nav ul.h_nav1 li + li + li::before { display:none;}
    #header #nav ul.h_nav1 li a {
        font-size: 106.5%;
        font-weight: 600;
    }
    #header #nav ul.h_nav1 li a { color: #000;}  
    #header #nav ul.h_nav1 li p { min-height: 70px; border-bottom: 1px solid #0039a7;}
    #header #nav ul.h_nav1 li:last-child p { border-bottom:none;}
    #header #nav ul.h_nav1 li p a,
    #header #nav ul.h_nav1 li p span { 
        display: block;
        padding: 20px;
        font-size: 118.8%;
    }
    #header #nav ul.h_nav1 li .child_nav { display: none; background: #fff;}
    #header #nav ul.h_nav1 li ul {
        display: block;
        margin: auto;
        padding: 10px;
        width: 100%; max-width: 320px;
    }
    #header #nav ul.h_nav1 li ul li a {
        display: block;
        padding: 10px 0 !important;
        background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/arrow2_b.webp") no-repeat;
        background-position:  right center;
        background-size: 10px auto;
    }
    #header #nav ul.h_nav1 li ul li span {
        display: block;
        padding: 10px 0 20px;
        font-size: 75%;
        line-height: 130%;
        border-top: 1px solid #0039a7;
    }
    #header #nav ul.h_nav1 .pull_off,
    #header #nav ul.h_nav1 .pull_on{
        display: block; clear: both; content:"";
        cursor: pointer;
        position: absolute; top: 0; right: 0;
        width: 69px; height: 69px;
        text-indent: -9999px;
        background-size:100% auto !important;
    }
    #header #nav ul.h_nav1 .pull_off { background:url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/pull_off.webp") no-repeat;}
    #header #nav ul.h_nav1 .pull_on { background:url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/pull_on.webp") no-repeat;}
    #header #nav ul.h_nav1 .pull_dl { display:none;}
    #header #nav ul.h_nav1 .dl_cont,
    #header #nav ul.h_nav1 .contact_cont{
        margin-top: 10px;
        padding: 6px ;
        background: #fff;
    }
    #header #nav ul.h_nav1 .dl_cont li {
        display: block;
        background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/arrow_dl2.webp") no-repeat;
        background-position:  left center;
        background-size: 23px auto;
    }
    #header #nav ul.h_nav1 .dl_cont li a { padding-left: 30px !important;}
    #header #nav ul.h_nav1 .dl_cont li a.imglink { display: none;}
    #header #nav ul.h_nav1 li.sp_nav2 { display:block;}
    #header #nav ul.h_nav1 li.sp_nav2 a { padding: 10px 20px; font-size: 75%;}
    #header #nav ul.h_nav1 li .parent_nav { display:none !important;}
    #header #nav ul.h_nav2 { justify-content: center; width: 100%;}
    #header #nav ul.h_nav2 li { max-width: 160px; width: 100%;}
    #header #nav ul.h_nav2 li a.btn { font-size: 100%; line-height: 40px;}
    #header #nav a.b_dl { color: #0039a7;}  
}
@media only screen and (max-width:320px){
    #header .inner { padding: 10px 30px 10px 20px;}
    #header #nav ul.h_nav2 li { width:130px;}
    #header .sp_login a.btn { font-size: 75%; letter-spacing: 0;}
}



/*====================================================================================================
  CONTENT
====================================================================================================*/


/* MAIN TITLE */
h1.title {
    background-image: linear-gradient(90deg, #0039a7, #3361b9);
}
h1.title span {
    position: relative;
    display: block;
    margin: auto;
    padding: 70px 0;
    width: 80%; max-width: 1000px;
    font-size: 262.5%;
    font-weight: 700;
    color: #fff;
    overflow: hidden;
}
h1.title span.illust::before {
    display: block; clear: both; content:"";
    position: absolute; bottom: -10px; right: 0;
    width:143px; height: auto; aspect-ratio: 133 / 145;
    background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/denchan/dencyan1.webp") no-repeat;
    background-size:100% auto;
    transform: rotate(10deg);
}
@media only screen and (max-width:1200px){
    h1.title { padding-top: 135px;}
    h1.title { padding-top:60px;}
}
@media only screen and (max-width:768px){
    h1.title { padding-top:65px;}
    h1.title span { padding:25px 0; font-size: 137.5%;}
    h1.title span.illust::before { width: 75px;}
}


/* BREADCRUMB */
ul.breadcrumb {
    display:flex; flex-wrap: wrap;
    margin: auto; padding: 15px 0;
    width: 80%; max-width: 1000px;
    font-size: 75%; line-height: 180%;
    font-weight:500;
}
ul.breadcrumb li a { color:#222;}
ul.breadcrumb li:after { margin: 0 10px; content:"＞";}
ul.breadcrumb li:last-child:after {display: none;}
ul.breadcrumb li br { display: none;}
ul.breadcrumb.cw,
ul.breadcrumb.cw a { color: #fff;}
@media only screen and (max-width:768px){
    ul.breadcrumb { padding:5px 0; font-size:62.5%;}
    ul.breadcrumb li:after { margin: 0 5px;}
    ul.breadcrumb li br { display:block;}
}


/*COMMENT*/
.comment { font-size: 106.2%; line-height:185%;}
.comment p { margin-bottom:25px;}
.comment ul { padding-left: 15px; }
.comment ul li { list-style: disc; font-weight: 600; line-height: 165%;}
.comment ul li + li { margin-top: 5px;}
.comment ol { padding-left: 20px; }
.comment ol li { list-style:decimal; font-weight: 600; line-height: 165%;}
.comment ol li + li { margin-top: 5px;}
.comment ul + p { margin-top:25px;}
@media only screen and (max-width:768px){
    .comment { font-size: 100%; line-height:175%;}
    .comment ul {margin-bottom: 15px;}
    .comment ol {margin-bottom: 15px;}
    .comment ul li + li { margin-top: 10px;}
    .comment ol li + li { margin-top: 10px;}
    .sp_center { text-align: center;}
}


/* TABLE */
table {
	clear:both;
    margin: auto;
	width:100%; max-width: 645px;
	border-collapse:collapse;
	border-top:1px solid #bcbcbc;
	border-left:1px solid #bcbcbc;
}
table th,
table td {
	padding:10px 15px;
	border-right:1px solid #bcbcbc;
	border-bottom:1px solid #bcbcbc;
}
table th { min-width: 110px; font-size: 112.5%; font-weight: 700;}
table td { font-size: 87.5%; line-height: 157%;}
/* BUTTON
@media only screen and (max-width:768px){
    table { table-layout:auto; border-left:none;}
    table th,
    table td{
        table-layout:auto !important;
        display:block !important;
        width:100% !important;
        height:auto !important;
        border-right:none !important;
    }
    table th { padding: 5px 0 !important; font-size: 106.2% !important;}
    table td { padding: 10px 0 20px !important; font-size: 100% !important;}
}
*/


/* 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-image: linear-gradient(90deg, #003aa8, #009ce1);}
.btn1.btn_b a::before {
    width: 30px; height: 30px;
    background: #fef100 url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/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("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/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("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/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;}
}




/* Modal */
.modal_box {
	display: none;
	position: fixed; top: 0; left: 0;
	width: 100vw; height: 100vh;
	background:rgba(0,0,0,0.30);
    z-index:99999;
}
.modal_box .modal_contents {
	position:absolute; top: 0; left: 0; right: 0; bottom: 0;
	margin: auto; padding: 30px;
	width:90%; max-width:1000px; height:auto;
    aspect-ratio: 16 / 9;
	background: #fff;
    box-shadow: 0px 0px 7px 2px rgba(0,0,0,0.20);
	border-radius: 3px;
	z-index: 1000;
}
.modal_box .modal-close {
    cursor: pointer;
    display: block; border: none;
    position: absolute; top:-60px; right:0; z-index: 999;
    width: 50px !important; height: 50px !important;
    border-radius:50px !important;
    text-indent: -9999px;
}
.modal_box .modal-close::before,
.modal_box .modal-close::after {
    display: block; clear: both; content:"";
    position: absolute; top: 0; left:0; right: 0; bottom: 0; margin:auto;
    width: 50px; height: 3px;
    background: #fff;
    transition: all 0.3s ease-out;
}
.modal_box .modal-close::before { transform:rotate(-45deg);}
.modal_box .modal-close::after {transform:rotate(45deg);}
#contact .modal_box .modal_contents { padding: 30px 40px; max-width: 700px; height: 200px;}
#contact .modal_box .come { text-align: center; padding: 30px 0; font-size: 150%;}
#contact .modal_box .come .btn_box p a {padding: 30px 0; font-size: 150%;}
.modal_box .pull_open { display:none;}
.modal_box .pull_btn{ cursor:pointer;}
.modal_box .pull_btn span{
    display:inline-block;
    transition:.3s;
}
.modal_box .pull_btn.open span{
    transform:rotate(180deg);
}
body.modal-open {
    overflow: hidden;
}
@media only screen and (min-width:768px){
    .modal_box .modal-close:hover::before { transform:rotate(45deg);}
    .modal_box .modal-close:hover::after {transform:rotate(-45deg);}
}
@media only screen and (max-width:768px){
    #contact .modal_box .modal_contents { padding: 30px 20px; height: 300px;}
    #contact .modal_box .come { padding: 30px 0; font-size: 100%;}
    #contact .modal_box .btn_box { flex-direction: column; justify-content: center; gap:10px;}
    #contact .modal_box .btn_box p { width: 100%;}
    #contact .modal_box .btn_box p a { font-size: 100%;}
}
@media only screen and (max-width:320px){
    .modal_box .modal-close {right:-10px;}
    #contact .modal_box .btn_box p a { text-align: left; text-indent: 10px;}
}   



/*====================================================================================================
  FOOTER
====================================================================================================*/
#footer { clear:both;}
#footer .inner { max-width: 1240px;}
#footer .f_cont1 { background: #fff;}
#footer .f_cont1 .inner {
    display: flex; flex-wrap: wrap; justify-content: space-between;
    padding: 75px 0 60px;
}
#footer .f_cont2 { background-image: linear-gradient(90deg, #0039a7, #3361b9);}
#footer .f_cont2 .inner {
    display: flex; flex-wrap: wrap; justify-content: space-between;
    padding: 15px 0;
    color: #fff;
    font-size: 112.5%;
}
#footer .f_cont2 .inner a { color: #fff;}
#footer .logo {
    width: 100%; height: auto; max-width: 275px;
    aspect-ratio: 549 / 182;
    text-indent: -9999px;
    background: url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/img_logo_denup2.webp") no-repeat;
    background-size: 100%;
}
#footer .f_nav { display: flex; gap:50px; text-align: left;}
#footer .f_nav p a,
#footer .f_nav p span {
    font-size: 112.5%;
    font-weight: 800;
    letter-spacing: 1px;
    color: #0039a7;
}
#footer .f_nav ul { padding-left: 15px;}
#footer .f_nav ul li a { 
    position: relative;
    padding-left: 17px;
    font-weight: 600;
    letter-spacing: 1px;
    color: #000;
}
#footer .f_nav ul li a::before {
    display: block; clear: both; content:"";
    position: absolute; left:0; top: 0; bottom:0;
    margin: auto;
    width: 12px; height: 2px;
    background: #0039a7;
}
#footer .f_nav p + p { margin-top: 25px;}
#footer .f_nav p + ul { margin-top: 5px;}
#footer .f_nav li + li { margin-top: 3px;}
#footer .f_nav ul + p { margin-top: 20px;}
@media only screen and (min-width:768px){
    #footer .f_nav p a:hover,
    #footer .f_nav ul li a:hover { text-decoration: underline;}
}
@media only screen and (max-width:1030px){
    #footer .f_cont1 .inner { align-items: center; justify-content: center;}
    #footer .logo { margin-bottom: 30px;}
}
@media only screen and (max-width:768px){
    #footer .f_cont1 .inner {
        flex-direction: column;
        padding: 40px 0 140px;
    }
    #footer .f_cont2 .inner { padding: 7px 0;}
    #footer .logo { margin-bottom: 20px; max-width: 227px;}
    #footer .f_nav {
        flex-direction: column; gap:15px;
        width: 100%; max-width: 393px;
    }
    #footer .f_nav ul li {line-height:150%;}
    #footer .f_nav ul li a { font-size: 87.5%;}
    #footer .f_nav p + p { margin-top:3px;}
    #footer .f_nav li:nth-child(2) p + p { margin-top:10px;}
    #footer .f_nav li + li { margin-top:0;}
    #footer .f_cont2 .inner { font-size: 100%;}
}




/*====================================================================================================
  FIXED CONT
====================================================================================================*/
#fixed_cont { position:relative; z-index: 888; width: 100%;}

/* FIXED NAV */
.fixed_nav { background-image: linear-gradient(90deg, #0039a7, #3361b9);}
.fixed_nav .inner {
    display: flex; flex-direction: column; gap:18px;
    max-width:1180px; 
    padding: 30px 0;
}
.fixed_nav p { font-size:156.2%; text-align: center; color: #fff;}
.fixed_nav ul { display: flex; gap:15px; margin: auto; width: 100%; max-width: 1180px;}
.fixed_nav ul li { width: 33.3%;}
.fixed_nav ul li a {
    position: relative;
    display: block;
    padding: 15px;
    width: 100%;
    font-size: 125%;
    font-weight: bold;
    text-align: center;
    letter-spacing: 1px;
    color: #1f3b8f;
    background: #fff;
    border: 5px solid #fef100;
    border-radius: 100px;
    box-shadow: 0px 5px 10px 0px rgba(31, 59, 143, 0.25);
    overflow: hidden;
}
.fixed_nav ul li:nth-child(1) a  { letter-spacing: -1px;}
.fixed_nav ul li:nth-child(3) a  { text-align: left; }
.fixed_nav ul li a span { position: relative; z-index: 2;}
.fixed_nav ul li a::before,
.fixed_nav ul li a::after { display: block; clear: both; content:""; transition: all 0.3s ease-out;}
.fixed_nav ul li a::before {
    position: absolute; top: 0; bottom: 0; right:20px;
    margin: auto;
    width: 35px; height: 35px;
    background: #fef100 url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/common/arrow1_b.webp") no-repeat center center;
    background-size:14px auto;
    border-radius: 100px;
    z-index: 2;
}
.fixed_nav ul li a::after {
    position: absolute; top: 0; left:-100%;
    width: 100%; height: 100%;
    background:#fef100;
    z-index:1;
}
@media only screen and (min-width:768px){
    .fixed_nav ul li a:hover {text-decoration: none;}
    .fixed_nav ul li a:hover::after { left:0; text-decoration: none;}
    .fixed_nav ul li a:hover::before { background-color: #fff;}
}
@media only screen and (max-width:1300px){
    .fixed_nav ul li a { font-size: 112%;}
    .fixed_nav ul li:nth-child(3) a  {letter-spacing: -1px;}
}
@media only screen and (max-width:1120px){
    .fixed_nav ul li a { font-size: 100%;}
}
@media only screen and (max-width:1100px){
    .fixed_nav ul li a {
        display: flex; flex-direction: column; justify-content: center;
        text-align: left;
        padding-right:60px;
        min-height: 80px;
        line-height: 110%;
    }
}
@media only screen and (max-width:768px){
    .fixed_nav p { font-size:125%;}
    .fixed_nav ul { flex-direction: column; gap:15px;}
    .fixed_nav ul li { width: 100%;}
    .fixed_nav ul li a {
        padding: 13px !important;
        font-size: 106.2% !important;
        min-height: auto;
        text-align: center !important;
        border: 3px solid #fef100 !important;
    }
    .fixed_nav ul li a::before {
        right:10px;
        width: 28px; height: 28px;
    }
/*
    .fixed_style .fixed_nav .inner { padding:0; width: 100%;}
    .fixed_style .fixed_nav ul { flex-direction:row; gap:0;}
    .fixed_style .fixed_nav ul li a {
        padding: 45px 0 5px !important;
        height: 75px;
        font-size:87.5% !important;
        text-align: center;
        line-height: 110%;
        letter-spacing: 0;
        border:none;
        border-radius: 0;
        background-size: 60px auto !important;
        border: none !important;
        box-shadow:none;
    }
    .fixed_style .fixed_nav ul li a::before { display: none;}
    .fixed_style .fixed_nav a span span { display: none !important;}
    .fixed_style .fixed_nav ul li:nth-child(1) a {
        color: #1f3b8f;
        letter-spacing: 2px;
        text-indent:0;
        background: #fef100 url("../images/common/footer_nav1.png") no-repeat top center;
    }
    .fixed_style .fixed_nav ul li:nth-child(2) a {
        color: #fff;
        background: #1f3b8f url("../images/common/footer_nav2.png") no-repeat top center;
    }
    .fixed_style .fixed_nav ul li:nth-child(3) a {
        color: #fff;
        background: #418ccd url("../images/common/footer_nav3.png") no-repeat top center;
    }
    .fixed_style .fixed_nav p { display: none;}    
*/
}
@media only screen and (max-width:375px){
    .fixed_nav ul li a::before { right:10px;}
    .fixed_nav ul li a { font-size: 100%; letter-spacing: -1px; text-indent: 10px;}
    .fixed_style .fixed_nav ul li a { letter-spacing:0; text-indent:0;}
}
@media only screen and (max-width:320px){
    .fixed_nav p { font-size:112.5%;}
    .fixed_nav ul li a { letter-spacing: -1px; text-indent: 5px; font-size:95% !important;}
    .fixed_style .fixed_nav ul li a { font-size:75% !important; letter-spacing:0; text-indent:0;}
}



/*====================================================================================================
  CONSENT
====================================================================================================*/
#consent { position: fixed; bottom: 0; left: 0; z-index: 999; width: 100%; 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%;}

}


/*====================================================================================================
  PAGE
====================================================================================================*/
#page,
#page a { display:block; width:50px; height:50px;}
#page { position: fixed; bottom: 50px; right:20px; z-index: 999999;}
#page a {
    text-indent: -9999px;
    background:#1f3b8f url("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/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);
}
#page.is-consent { bottom:150px; }
@media only screen and (max-width:768px){
    #page { bottom: 60px; right:20px;}
    #page.is-consent { bottom:220px; }
}



/*====================================================================================================
  POP BANA
====================================================================================================*/
.pop_bana {
    position: fixed; bottom:20px; right: 20px; z-index: 999;
    width: 250px;
}
.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("/build/releases/607d0f76b3dc0dbf0e4407ffb70c685ff85c4b83f243b8ac98fc5ac6bf97355a-db1ed39aae3506949bf15f550ff557ba0fb0acba9f9bab0e41764a9bb8e36033/images/top/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 { bottom:20px;}
    .pop_bana.is-consent { bottom: 150px;}
}
@media only screen and (max-width:1000px){
    .pop_bana { bottom:20px;  width:200px;}
    .pop_bana .close { top:-10px; right:-5px; }
}
@media only screen and (max-width:468px){
    .pop_bana {bottom:20px; right:2%; width:120px;}
    .pop_bana .close { top:-15px; right:-10px; }
    .pop_bana.is-consent { bottom: 270px;}
    .pop_bana a:hover img { opacity:1;}
}


.chactbot {
    cursor: pointer;
    position: fixed; bottom: 30px; left:10px; z-index: 999;
    width: 394px; height: auto;
}
.chactbot img { width: 100%; height: auto;}
.chactbot.is-consent {  bottom: 140px;}
@media only screen and (max-width:768px){
    .chactbot {
        bottom:45px; left:10px;
        width: 77%; height: auto; max-width: 394px;
    }
    .chactbot.is-consent { bottom: 250px; }
}


/*====================================================================================================
  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;}