@charset "UTF-8";
html {
    overflow-x: hidden;
}
.outfit {
    font-family: "Outfit", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
}
.noto {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
}
body p,
body a,
body span,
h1, h2, h3, h4, h5, h6 {
    font-family: 'Noto Sans JP', sans-serif;
}
.zen {
    font-family: 'Zen Maru Gothic', sans-serif;
    font-weight: 700;
}
.mon {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600; /* SemiBold */
}
.popp {
    font-family: 'Poppins', sans-serif;
    font-weight: 500; /* Mediumの太さ */
}
.row,
.relative {
    position: relative;
}
a {
    text-decoration: none;
}
#header-wrap,
#header-wrap.fixed-header {
    padding: 0;
    position: fixed;
    width: 100%;
}
#header-wrap .container-fluid {
    max-width: 100%;
}
.header-2 #header-wrap {
    padding: 0 88px;
}
#header-wrap .container-fluid .nav_border {
    border-bottom: 1px solid #284B7D;
    padding: 25px 0;
    transition: .3s;
}
#header-wrap.fixed-header .container-fluid .nav_border {
    border-bottom: none;
    padding: 15px 0;
}
#header-wrap.fixed-header .container-fluid,
#header-wrap.fixed-header .container-fluid .navbar {
    transition: .3s;
}
.navbar-nav .nav-link:hover, .navbar-nav .nav-item .nav-link.active {
    color: #f1aa00;
}
.sp_form {
    display: none;
}
.header-2 #header-wrap.fixed-header {
    background: #ffffff;
    border-bottom: 1px solid #12275B;
}
.header-2 #header-wrap.fixed-header .navbar-nav .nav-link {
    color: #003180;
}
.header-2 #header-wrap.fixed-header .navbar-nav .nav-link:hover {
    color: #688396;
}
.header-2 #header-wrap.fixed-header .navbar-nav .nav-link {

}
#header-wrap.fixed-header .container-fluid {
    border-bottom: none;
}
.header-2 #header-wrap {
    background: transparent;
    border-bottom: none;
}
.navbar-nav .nav-item a.nav-link {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600; /* SemiBold */
    position: relative;
    font-size: 16px;
    letter-spacing: 1.12px;
    line-height: 30px;
    padding: 10px;
}
.header-2 .navbar-nav .nav-link:hover,
.header-2 .navbar-nav .nav-item .nav-link.active,
.pulldownmenu ul li a:hover {
    color: #688396;
}
.dropdown-toggle::after {
    content: none;
}
li.nav-item.nav_contact {
    margin-right: 0;
}
.navbar-nav .nav-item.nav_contact a {
    border-radius: 30px;
    min-width: 180px;
    line-height: 1.25;
    text-align: center;
    padding: 15px;
}
.navbar-nav .nav-item.nav_contact a:before {
    background: #edf4fa;
    transition: .3s;
}
.header-2 #header-wrap.fixed-header .nav-item.nav_contact a:before {
    background: #ffffff;
}
.navbar-nav .nav-item.nav_contact a:hover {
    color: #ffffff;
}
.header-2 #header-wrap.fixed-header .navbar-nav .nav-item.nav_contact .nav-link:hover {
    color: #ffffff;
}
.pulldownmenu ul {
    width: 180px;
    display: none;
    margin-left: 0;
    position: absolute;
    background: #fff;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
}
.pulldownmenu ul li {
    list-style: none;
    padding: 15px;
}
.fixed-header .pulldownmenu ul {
    top: 100%;
}
.pulldownmenu ul li a {
    font-size: 15px;
    color: #000;
}
.pulldownmenu ul li a:hover {
    background-color: #ffffff;
}

.navbar-nav .nav-item a.nav-link:hover::before {
    right: -5px;
    transition: .3s;
}
.hidden {
    display: none;
}
.bg_gry {
  background-color: #969696;
}
.bg_wh {
  background-color: #fff;
}
.bg_aka {
  background-color: #003180;
}
.bg_kuro {
  background-color: #0D0414;
}
.row.main_flex {
    align-items: center;
    height: 100%;
}
.aka {
  color: #003180 !important;
}
.kuro {
  color: #000;
}
.ao {
  color: #003180
}
.wh {
  color: #fff;
}
.gry {
  color: #688396;
}
.l-footer {
    position: relative;
    background-image: url(../../img/contact.jpg);
    background-color: #ffffff;
    background-repeat: repeat;
    background-position: top center;
    background-size: cover;
    background-attachment: fixed;
    border-radius: 60px 60px 0 0;
}
.copyright_wrapper {
    padding: 30px 0;
    position: relative;
    border-top: 1px solid #ffffff;
    max-width: 1720px;
    margin: 0 auto;
}
.copyright {
    position: relative;
}
.copyright p {
    letter-spacing: .1em;
}
.l-footer a {
    border: 1px solid;
    border-radius: 25px;
    width: 180px;
    text-align: center;
    height: 50px;
    line-height: 49px;
    transition: .3s ease;
    background-color: transparent;
}
.l-footer a:hover {
    background: #ffffff;
    color: #003180;
}
.footerlink_wrapper .flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.footerlink_wrapper .flex p.font16 {
    letter-spacing: .07em;
    line-height: 2;
}
.lift-off {
    position: fixed;
    right: 16%;
    bottom: 30px;
    width: 68%;
    -webkit-transition: all .3s;
    transition: all .3s;
    text-align: center;
    color: #fff;
    background: rgba(0, 0, 0, .6);
}
.lift-off_hide {
    visibility: hidden;
    -webkit-transform: translateY(40px);
    -ms-transform: translateY(40px);
    transform: translateY(40px);
    opacity: 0;
}
.lift-off_show {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
    opacity: 1;
}
div.float img {
    width: 100%;
    max-width: 850px;
    padding:  0 15px;
}
div.float {
    background-color: rgba(243, 243, 220, 0.8);
    width: 100%;
    right: 0;
    bottom: 0;
    height: auto;
    padding: 15px 0;
    z-index: 10000;
    font-size: 0;
}
img.f-sp {
    display: none;
}
div.float a {
    display: inline-block;
}
.firstview.w-100 {
    margin-bottom: -100px;
}
figure.sp {
    display: none;
}
.w-100 {
    -ms-flex: 0 0 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
}
.block_tb,
.block_sp {
    display: none;
}
img {
	max-width: 100%;
}
.f-minsp {
	display: none;
}
a {
    word-break: break-all;
}
.block_1400,
.block_991,
.block_767,
.block_575,
.block_499,
.block_414,
.sp_footer{
    display: none;
}
.navbar a.none_991 {
    max-width: 234px;
}
#header-wrap.fixed-header .container-fluid a.none_991 {
    max-width: 234px;
}
.scroll-top img.rotate_arrow {
    position: absolute;
    top: 0;
    left: 0;
}

.font225 {
    font-size: 225px;
    letter-spacing: 22px;
    line-height: 1;
}
.font129 {
    font-size: 129px;
    letter-spacing: 15.5px;
    line-height: 1.1;
}
.font106 {
    font-size: 106.22px;
    letter-spacing: 8.5px;
    line-height: 1.2;
}
.font90 {
    font-size: 90px;
    letter-spacing: 12.6px;
    line-height: 1.5;
}
.font75 {
    font-size: 75px;
    letter-spacing: 12px;
    line-height: 1.1;
}
.font70 {
    font-size: 70px;
    line-height: 1.1;
    letter-spacing: .11em;
    text-indent: .11em;
}
.font52 {
    font-size: 52px;
    letter-spacing: 10px;
    line-height: 1.5;
}
.font48 {
    font-size: 48px;
    letter-spacing: 10px;
    text-indent: 10px;
    line-height: 1.54;
}
.font45 {
    font-size: 45px;
}
.font40 {
    font-size: 40px;
}
.font38 {
    font-size: 38px;
    letter-spacing: 7px;
    line-height: 1.7;
}
.font34 {
    font-size: 34px;
    letter-spacing: 6.1px;
    line-height: 1.7;
}
.ls_4 {
    letter-spacing: 4px !important;
}
.font32 {
    font-size: 32px;
    letter-spacing: 5.76px;
    line-height: 1.6;
}
.font31 {
    font-size: 31px;
    letter-spacing: 5.58px;
    line-height: 1.7;
}
.font30 {
    font-size: 30px;
    letter-spacing: 3.6px;
    line-height: 1.9;
}
.font28 {
    font-size: 28px;
    letter-spacing: 6px;
    line-height: 1.8;
}
.font27_add {
    font-size: 27px;
    letter-spacing: 9px;
    text-indent: 9px;
    line-height: 1.7;
}
.font27 {
    font-size: 27px;
    letter-spacing: 4.86px;
    line-height: 1.6;
}
.font26 {
    font-size: 26px;
    letter-spacing: 5.72px;
    line-height: 1.8;
}
.font24 {
    font-size: 24px;
    letter-spacing: 1.68px;
}
.fullscreen-banner .font26 {
    letter-spacing: 7.5px;
}
.font20 {
    font-size: 20px;
    letter-spacing: 3.6px;
    line-height: 2.25;
}
.font18 {
    font-size: 18px;
    letter-spacing: 2.52px;
    line-height: 2.1;
}
.font17_add {
    font-size: 17px;
    letter-spacing: 3.6px;
    line-height: 2.3;
}
.font17 {
    font-size: 17px;
    letter-spacing: 2.72px;
    line-height: 2;
}
.font16 {
    font-size: 16px;
    letter-spacing: 0.2em;
    line-height: 2.5;
}
.font14 {
    font-size: 14px;
    letter-spacing: 1.12px;
    line-height: 1.7;
}
.font13 {
    font-size: 13px;
    letter-spacing: 1.82px;
    line-height: 1.3;
}
.lh_1 {
    line-height: 1;
}
.lh_19 {
    line-height: 1.95;
}
hr {
    margin-top: 50px;
    margin-bottom: 50px;
    border: 1px;
    border-top: 1px solid #AEBDC5;
    width: 100%;
}
.pr-50 {
    padding-right: 50px;
}
.pl-50 {
    padding-left: 50px;
}

section#mv {
    background-image: url(../../img/top_main.jpg);
    background-color: #ffffff;
    background-size: cover;
    background-repeat: repeat;
    background-position: top center;
    padding-bottom: 150px;
    padding-top: 110px;
}
section#top02,section#news,section#top05 {
    background-color: #ffffff;
}
section#top03 {
    background-color: #EFF2F4;
}
.tate {
    position: absolute;
    top: 80px;
    left: 0;
    width: 180px;
}
section#top04 {
    background-color: #ffffff;
    position: relative;
    overflow: hidden;
}
section#top04:after {
    content: "";
    background-color: #EFF2F4;
    position: absolute;
    top: 0;
    right: 0;
    width: calc(100% - 60px);
    width: 95%;
    height: 100%;
    display: block;
    border-radius: 30px 0 0 30px;
}
section#top04 .container-fluid {
    position: relative;
    z-index: 1;
}
section#top02:before {
    content: "";
    width: 100%;
    height: 40px;
    position: absolute;
    top: -40px;
    left: 0;
    background: #ffffff;
    border-radius: 60px 60px 0 0;
}
section#top03:before {
    content: "";
    width: 100%;
    height: 40px;
    position: absolute;
    top: -40px;
    left: 0;
    background: #EFF2F4;
    border-radius: 60px 60px 0 0;
}
section {
    position: relative;
}
section.padding90 {
    padding: 90px 0;
}
section.pb150 {
    padding-bottom: 150px;
}
section.pb120 {
    padding-bottom: 120px;
}
section.pb90 {
    padding-bottom: 90px;
}
section#top02,section#top03 {
    padding-top: 80px;
}
section#top02 {
    padding-bottom: 160px;
}

section#mv .absolute {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}
section#mv h1 {
    margin: 0 auto;
    letter-spacing: .25em;
    text-indent: .25em;
    color: transparent;
}
section#mv h1.animation-is-inview {
    color: #003180;
}
section#mv h2 {
   line-height: 1.5;
   letter-spacing: .12em;
}
section#mv p {
    letter-spacing: .09em;
}

.scrollimg {
    width: 12px;
    position: absolute;
    left: 50px;
    bottom: 100px;
}
.container.container-col-wide .row {
    margin: 0 -25px;
}
.container.container-col-wide .row>div {
    padding-right: 25px;
    padding-left: 25px;
}
.container.container-col-wide2 .row {
    margin: 0 -40px;
}
.container.container-col-wide2 .row>div {
    padding-right: 40px;
    padding-left: 40px;
}
.border-r-x {
    position: relative;
    padding-right: 120px;
    display: inline-block;
}
.border-r-x:after {
    content: "";
    width: 100px;
    height: 1px;
    background-color: #fff;
    position: absolute;
    top: calc(50% - 1px);
    right: 0;
}
.mb-05 {
    margin-bottom: 5px;
}
.mb-10 {
    margin-bottom: 10px;
}
.mb-15 {
    margin-bottom: 15px;
}
.mb-30 {
    margin-bottom: 30px;
}
.mb-35 {
    margin-bottom: 35px;
}
.mb-40 {
    margin-bottom: 40px;
}
.mb-50 {
    margin-bottom: 50px;
}
.mb-60 {
    margin-bottom: 60px;
}
.mb-70 {
    margin-bottom: 70px;
}
.mb-80 {
    margin-bottom: 80px;
}
.mb-90 {
    margin-bottom: 90px;
}

/* 背景あり見出し */
.mask-animation-bg {
    color: transparent;
    overflow-x: hidden;
    overflow-y: hidden;
    display: block;
    width:-moz-fit-content;
    width:fit-content;
    position: relative;
    transition: color 0ms 450ms;
}
  .mask-animation-bg::after {
    background: linear-gradient(135deg, #2F87BE 0%, #90CCDE 100%);
    bottom: 0;
    content: "";
    display: block;
    left: 0;
    position: absolute;
    right: -1px;
    top: 0;
    transform: translate(0, 100%);
  }
  .mask-animation-bg.is-animated {
    color: #ffffff;
  }
  .company-sec .mask-animation-bg.is-animated,.business-sec .mask-animation-bg.is-animated {
    color: #EFF2F4;
}
  .mask-animation-bg.is-animated.animation-is-inview {
    color: #003180;
  }
  .company-sec .mask-animation-bg.is-animated.animation-is-inview,.business-sec .mask-animation-bg.is-animated.animation-is-inview {
    color: #003180;
}
  .mask-animation-bg.is-animated.animation-is-inview::after {
    animation: mask-animation-bg 1.2s cubic-bezier(0.8, 0, 0.170, 1) forwards;
  }
   
  @keyframes mask-animation-bg {
    0% {
      transform: translate(-100%,0);
    }
    40%, 60% {
        transform: translate(0%,0);
      }
    100% {
      transform: translate(100%,0);
    }
  }

.container-fluid.content_wide {
    max-width: 1560px;
}
.container-fluid.content_wide2 {
    max-width: 1650px;
}
h3 {
    letter-spacing: .065em;
}
.col-lg-5 .about-child {
    margin-top: 15px;
}
.about-child p {
    letter-spacing: .07em;
    line-height: 2.5;
}
.about-child img {
    width: 100%;
    max-width: 340px;
}
.gif-wrapper {
    position: relative;
    width: 100%;
    height: auto;
    overflow: hidden;
}
.gif-placeholder {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: white;
}
.gif {
    visibility: hidden;
    width: 100%;
}


.about-child-btn {
    display: flex;
    justify-content: flex-start;
    gap: 0 30px;
}
a.bg-w, a.bg-grd {
    padding: 15px;
    border-radius: 30px;
    width: 180px;
    display: block;
    line-height: 1.2;
    text-align: center;
    transition: background-image 0.3s ease, color 0.1s ease;
}
a.bg-w {
    background-image: linear-gradient(90deg,rgb(255, 255, 255) 0%, rgb(255, 255, 255) 100%);
    border: 1px solid #003180;
    color: #003180;
}
a.bg-w2 {
    color: #003180;
    font-weight: 700;
    position: relative;
    transition: color 0.26s ease, border 0.26s ease;
    overflow: hidden;
    z-index: 1;
    width: 180px;
    display: block;
    line-height: 1.25;
    text-align: center;
    padding: 15px;
    border-radius: 30px;
    background: #003180;
    letter-spacing: 0.07em;
}
a.bg-w2:before {
    background: #fff;
    opacity: 1;
    transition: 0.26s ease;
    border-radius: 30px;
    content: "";
    width: calc(100% - 2px);
    height: calc(100% - 2px);
    position: absolute;
    top: 1px;
    left: 1px;
    z-index: -1;
}
a.bg-w2:after {
    position: absolute;
    content: "";
    top: -1px;
    left: -1px;
    background: linear-gradient(90deg, rgba(47, 135, 190, 1) 0%, rgba(144, 204, 222, 1) 100%);
    opacity: 0;
    transition: opacity 0.26s ease;
    width: calc(100% + 2px);
    height: calc(100% + 2px);
    z-index: -1;
}
a.bg-w2:hover:after {
    opacity: 1;
}
a.bg-w2:hover {
    color: #ffffff;
    border-color: transparent;
}
a.bg-grd {
    background-color: transparent;
    background-image: linear-gradient(90deg,rgba(47, 135, 190, 1) 0%, rgba(144, 204, 222, 1) 100%);
    color: #ffffff;
}
a.bg-w:hover {
    background-image: linear-gradient(90deg,rgba(47, 135, 190, 1) 0%, rgba(144, 204, 222, 1) 100%);
    color: #ffffff;
    border: none;
    padding: 16px;
}
a.bg-grd:hover {
    background-color: #003180;
    background-image: none;
    color: #ffffff;
}
.col-lg-6 .business-child {
    margin-right: 36px;
}
.business-sec .col-lg-10 {
    flex: 1;
    margin-right: calc(50% - 50vw);
    padding-right: 60px;
}
.business-child p.font16 {
    line-height: 2;
    letter-spacing: 0.07em;
    padding-left: 20px;
    position: relative;
}
.business-child p.font16:after {
    content: "";
    width: 3px;
    height: calc(100% - 13px);
    position: absolute;
    top: 8px;
    left: 0;
    background: #a7b6be;
    display: block;
}
.business-child h4 {
    letter-spacing: 0.07em;
}
.col-lg-10 .business-child img {
    border-radius: 10px;
    width: 100%;
}
#para {
    width: 100%;
    height: 500px;
    background-image: url('../../img/para_bg.jpg');
    background-size: cover;
    background-attachment: fixed;
}
.company-sec .row {
    flex-wrap: nowrap;
}
.company-sec table ,.profile-sec table {
    width: 100%;
}
.company-sec tr {
    border-top: 1px solid #A7B6BE;
    padding: 10px 10px 10px 30px;
    display: block;
}
.company-sec tbody {
    border-bottom: 1px solid #A7B6BE;
}
.company-sec td,.company-sec th {
    line-height: 1.7;
    letter-spacing: 0.07em;
}
.company-sec th {
    width: 110px;
}
.company-sec td {
    width: calc(100% - 110px);
}
.company-sec td a {
    display: inline-block;
    border-radius: 12.5px;
    line-height: 1.5;
    width: 70px;
    text-align: center;
    font-weight: 500;
    padding: 3px 2px 2px;
    margin-left: 30px;
    transition: .3s;
    font-size: 12px;
    position: relative;
    top: 4px;
}
.company-sec td a:before {
    background-color: #EFF2F4;
}
.company-sec td a:hover {
    background: #003180;
    color: #ffffff;
    border-color: #003180;
}
.sticky-img {
    position: sticky;
    top: 130px;
}
.sticky-img img {
    border-radius: 10px;
}
.profile-sec .col-lg-9 {
    padding-left: 48px;
}
.profile-sec p.font16 {
    line-height: 2;
    letter-spacing: 0.07em;
}
.profile-sec tr {
    display: flex;
}
.profile-sec tr th {
    width: 100px;
    line-height: 2;
    letter-spacing: 0.07em;
}
.profile-sec tr td {
    width: calc(100% - 100px);
    line-height: 2;
    letter-spacing: 0.07em;
}
.slick-dotted.slick-slider {
    margin-bottom: 0;
    transform: scale(1.2);
    transform-origin: top left;
}
.slider_item {
    padding-right: 30px;
}
.slider_item img {
    width: 100%;
    border-radius: 10px;
}
.outside-right {
    flex: 1;
    margin-right: calc(50% - 50vw);
    padding-right: 0;
    padding-left: 48px;
}
.dots-wrap {
    display: flex;
    justify-content: center;
    margin-top: 30px;
    width: calc(100% / 1.5 - 30px);
    margin-top: 30px;
    transform: scale(0.735);
    transform-origin: center left;
}
.dots-wrap li {
    width: 40px;
    height: 3px;
    margin: 0 5px;
    background: #A7B6BE;
    cursor: pointer;
    list-style: none;
}
.dots-wrap li:hover,
.dots-wrap li.slick-active {
    background: #003180;
}
.dots-wrap li button {
    display: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    padding: 0;
    border: none;
    background-color: transparent;
}
.news-sec-iframe {
    display: block;
    margin: 0;
    padding: 0;
    line-height: 0;
    font-size: 0;
}
.ank {
    position: absolute;
    margin-top: -40px;
}
.ank2 {
    position: absolute;
}
@media (min-width: 376px) {
    .fullscreen-banner {
        min-height: 530px;
        max-height: 530px;
        min-height: 100%;
        max-height: 100%;
    }
}
@media (min-width: 481px) {
    .fullscreen-banner {
        min-height: 550px;
        max-height: 550px;
    }
}
@media (min-width: 501px) {
    .fullscreen-banner {
        min-height: 580px;
        max-height: 580px;
    }
}
@media (min-width: 576px) {
    .fullscreen-banner {
        min-height: 620px;
        max-height: 620px;
    }
}
@media (min-width: 681px) {
    .fullscreen-banner {
        min-height: 650px;
        max-height: 650px;
    }
}
@media (min-width: 767px) {
    .fullscreen-banner {
        min-height: 730px;
        max-height: 730px;
    }
    body {
        overflow: visible !important;
    }
    .sticky-area {
        overflow: visible !important;
    }
}
@media (min-width: 991px) {
    .fullscreen-banner {
        min-height: 750px;
        max-height: 750px;
    }
}
@media (min-width: 1024px) {
    .fullscreen-banner {
        min-height: 800px;
        max-height: 800px;
    }
}
@media (min-width: 1280px) {
    .fullscreen-banner {
        min-height: 850px;
        max-height: 850px;
    }
}
@media (min-width: 1380px) {
    .fullscreen-banner {
        min-height: 900px;
        max-height: 900px;
    }
}
@media (min-width: 1600px) {
    .fullscreen-banner {
        min-height: 920px;
        max-height: 920px;
    }
}
@media (min-width: 1800px) {
    .fullscreen-banner {
        min-height: 1000px;
        max-height: 1000px;
    }
}
@media (min-width: 1920px) {
    .fullscreen-banner {
        min-height: 1080px;
        max-height: 1080px;
    }
}
@media (min-width: 992px) {
    .navbar-expand-lg .navbar-nav {
        justify-content: flex-end;
    }
}
@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1140px;
    }
}