@charset "utf-8";

*{
    margin: 0;
    padding: 0;
    list-style:none;
    text-decoration: none;
    vertical-align: baseline;
    box-sizing: border-box;
}

body {
    font-family: "Noto Sans JP","ヒラギノ角ゴ ProN W3","Hiragino Kaku Gothic ProN","游ゴシック",YuGothic,"メイリオ",Meiryo,sans-serif;
    max-width: 2200px;
    color: #000;
    font-size:1rem;
    font-weight: bold;
    letter-spacing: 0.1rem;
    line-height: 1.6;
}

img {
    border: 0px;
    max-width: 100%;
    vertical-align: bottom;
}

/* for modern brouser */
.cf:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}
/* IE7,MacIE5 */
.cf {
  display: inline-block;
}
/* WinIE6 below, Exclude MacIE5 \*/
* html .cf {
  height: 1%;
}
.cf {
  display: block;
}
/**/

/*margin*/
.mgt5{margin-top: 5px!important;}
.mgt10{margin-top: 10px!important;}
.mgt20{margin-top: 20px!important;}
.mgt25{margin-top: 25px!important;}
.mgt30{margin-top: 30px!important;}
.mgt35{margin-top: 35px!important;}
.mgt40{margin-top: 40px!important;}
.mgt45{margin-top: 45px!important;}
.mgt50{margin-top: 50px!important;}
.mgt55{margin-top: 55px!important;}
.mgt60{margin-top: 60px!important;}
.mgt65{margin-top: 65px!important;}

.mgb10{margin-bottom: 10px!important;}
.mgb20{margin-bottom: 20px!important;}
.mgb30{margin-bottom: 30px!important;}
.mgb40{margin-bottom: 40px!important;}
.mgb50{margin-bottom: 50px!important;}

.mgl0{margin-left: 0px!important;}
.mgl10{margin-left: 10px!important;}
.mgl15{margin-left: 15px!important;}
.mgl20{margin-left: 20px!important;}
.mgl30{margin-left: 30px!important;}
.mgl40{margin-left: 40px!important;}
.mgl50{margin-left: 50px!important;}

.mgr0{margin-right: 0px!important;}
.mgr10{margin-right: 10px!important;}
.mgr15{margin-right: 15px!important;}
.mgr20{margin-right: 20px!important;}
.mgr30{margin-right: 30px!important;}
.mgr40{margin-right: 40px!important;}
.mgr50{margin-right: 50px!important;}

/* For padding */
.pdt0 { padding-top:0px !important;}
.pdt5 { padding-top:5px !important;}
.pdt10 { padding-top:10px !important;}
.pdt15 { padding-top:15px !important;}
.pdt20 { padding-top:20px !important;}
.pdt25 { padding-top:25px !important;}
.pdt30 { padding-top:30px !important;}
.pdt35 { padding-top:35px !important;}

.pdb5 { padding-bottom:5px !important;}
.pdb10 { padding-bottom:10px !important;}
.pdb15 { padding-bottom:15px !important;}
.pdb20 { padding-bottom:20px !important;}
.pdb25 { padding-bottom:25px !important;}
.pdb30 { padding-bottom:30px !important;}

.pdl5 { padding-left:5px !important;}
.pdl10 { padding-left:10px !important;}


.fixed {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100;
}

.center{
    text-align: center;
}
.sp{
    display: none;
}
.sup {
    text-indent: -1rem;
    padding-left: 1rem;
    font-size: 0.8rem;
    font-weight: normal;
}

@media (max-width: 850px) {
    body {
        font-size: 0.9rem;
    }
}
@media (max-width: 480px) {
    body {
        font-size: 0.9rem!important;
    }
    .pc{
        display: none;
    }
    .sp{
        display: block;
    }
}

/* ---------------------------------------------------------
 common 
----------------------------------------------------------*/
a{
    color: #000;
}
a:hover{
    filter:alpha(opacity=80);
    opacity:0.8;
}
h2 {
    font-size: 2.5rem;
    text-align: center;
    font-weight: bold;
    margin-bottom: 40px;
    letter-spacing: 0.1em;
}
h2 img{
    display: block;
    max-width: 80px;
    margin: auto;
}
h2 span{
    display: block;
    font-size: 1.2rem;
    margin-top: 10px;
    letter-spacing: 0.1rem;
}
h3 {
    font-size: 1.3rem;
    font-weight: bold;
    margin-bottom: 20px;
}
h4{
    font-size: 1rem;
    font-weight: bold;
    margin-bottom: 10px;
    padding-left: 10px;
    border-left: solid 5px #f9bc00;
}
.c_wrap {
    max-width: 1000px;
    margin: auto;
    padding: 50px 20px;
}
.c_wrap_middle{
    max-width: 800px;
    margin: auto;
}
.border_box {
    border: solid 4px #5aafe0;
    padding: 20px;
    background: #fff;
}
.btn {
    background: #ffffff url(../images/ico_arrow_blue.png)no-repeat right 15px top 50%;
    background-size: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #2979cf;
    font-weight: bold;
    border-radius: 100px;
    padding: 10px 30px 10px 10px;
    max-width: 240px;
}
.btn img {
    max-width: 25px;
    margin-right: 10px;
}
.bg_gray {
    background: #f0f0f0;
}
.bg_blue {
    background: #0c7acf;
}
.bg_blue h2{
    color: #fff;
}

#table {
    display: flex;
    flex-wrap: wrap;
}
#table dt {
    background: #2979cf;
    color: #fff;
    width: 200px;
    text-align: center;
    padding: 30px;
    border-bottom: solid 1px #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}
#table dd {
    width: calc(100% - 200px);
    padding: 30px;
    background: #f0f0f0;
    border-bottom: solid 1px #fff;
}

.img_list {
    display: flex;
    justify-content: space-between;
}

.img_list.img_3 li {
    width: 32%;
}

.txt_link.white {
    color: #fff;
}

.txt_link {
    border-bottom: solid 1px;
    padding-bottom: 2px;
}

@media (max-width: 850px) {
    h2 {
        font-size: 1.8rem;
    }
    h3{
        font-size: 1.3rem;
    }
}

@media (max-width: 480px) {
    .c_wrap {
        padding: 50px 15px;
    }
    h2 {
        margin-bottom: 40px;
    }
    h3{
        font-size: 1rem;
    }
    h4 {
        font-size: 0.9rem;
    }
    #table dt {
        width: 100px;
        padding: 20px 5px;
    }
    #table dd {
        width: calc(100% - 100px);
        padding: 20px;
    }
    #table dd:last-child br{
        display: none;
    }
    h2 img {
        max-width: 60px;
    }
    h2 span {
        font-size: 1rem;
        margin-top: 5px;
    }


}

/* ---------------------------------------------------------
 header 
----------------------------------------------------------*/
header {
    position: relative;
}

.fixed_header {
    position: absolute;
    top:0;
    left: 0;
    width: 100%;
    padding: 50px 50px 0;
    z-index: 100;
}
.fixed_header .inner {
    max-width: 1200px;
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.fixed_header h1 {
    max-width: 130px;
    line-height: 1;
}

.fixed_header #nav ul {
    display: flex;
}

.fixed_header #nav ul li {
    padding: 0 20px;
    border-right: solid 2px #c1c1c1;
    font-weight: bold;
}

.fixed_header #nav ul li:last-child {
    border-right: 0;
}

header #mainv {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 150px 50px;
    max-width: 1200px;
    margin: auto;
    z-index: 2;
    position: relative;
}

header #mainv figure {
    max-width: 500px;
/*    width: calc(100% - 450px);*/
}

header #mainv h2 {
    font-size: 2.8rem;
    text-align: left;
}

header #mainv h2 span {
    font-size: 4rem;
}

header #mainv .txt {
    padding-right: 50px;
/*    width: 450px;*/
    word-break: keep-all;
    color: #fff;
}
.mainv_leftbg {
    width: 100%;
    height: 100%;
    margin: 0 auto;
    background: #2979cf;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    overflow: hidden;
}
.mainv_leftbg::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 43%;
    background-color: #f0f0f0;
    transform-origin: top;
    transform: skewx(35deg);
    z-index: -1;
}
header #mainv .txt p{
    display: flex;
    align-items: center;
    width: 100%;
}
header #mainv .txt p:after {
    content: "";
    flex-grow: 1;
    height: 1px; /* 線の太さを変えたいときはここを変える */
    background: #fff; /* 線の色を変えたいときはここを変える */
    margin:0 10px; /* 文字と線の余白用 なくても良い */
}



header a.scroll{
    position: absolute;
    bottom: 20px;
    left: 50%;
    z-index: 2;
    display: inline-block;
    -webkit-transform: translate( -50%,0);
    transform: translate( -50%,0);
    text-decoration: none;
    padding-top: 32px;
    color: #fff;
    font-size: 0.7rem;
}

header a.scroll span {
  position: absolute;
  top: 0;
  left: 50%;
  width: 16px;
  height: 28px;
  margin-left: -8px;
  border: 2px solid #fff;
  border-radius: 50px;
  box-sizing: border-box;
}
header a.scroll span::before {
  position: absolute;
  top: 10px;
  left: 50%;
  content: '';
  width: 4px;
  height: 4px;
  margin-left: -2px;
  background-color: #ffff;
  border-radius: 100%;
  -webkit-animation: sdb 2s infinite;
  animation: sdb 2s infinite;
  box-sizing: border-box;
}
@-webkit-keyframes sdb {
  0% {
    -webkit-transform: translate(0, 0);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    -webkit-transform: translate(0, 10px);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}
@keyframes sdb {
  0% {
    transform: translate(0, 0);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  90% {
    transform: translate(0, 10px);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}


@media (max-width: 850px) {
    .fixed_header {
        padding: 50px 0 0 20px;
    }
    header #mainv {
        padding: 150px 20px;
    }
    header #mainv h2 {
        font-size: 2rem;
    }
    header #mainv h2 span {
        font-size: 3rem;
    }
}
@media (max-width: 650px) {
    .fixed_header #nav{
        display: none;
    }
    .fixed_header {
        padding: 30px 0 0 20px;
    }
    .fixed_header h1 {
        max-width: 140px;
    }
    header #mainv {
        padding: 100px 20px 100px;
        flex-wrap: wrap;
    }
    header #mainv .txt {
        padding-right: 0;
        word-break: keep-all;
        order: 2;
        margin-top: 20px;
        width: 100%;
    }
    header #mainv h2 {
        font-size: 1.6rem;
        margin-bottom: 10px;
    }
    header #mainv h2 span {
        font-size: 2.5rem;
        margin-top: 0;
    }
}

/* ---------------------------------------------------------
 news 
----------------------------------------------------------*/
#news .c_wrap {
    padding-bottom: 20px;
}
#news .news_wrap {
    display: flex;
    max-height: 100px;
}
#news .news_wrap h3 {
    background: #00b0f9;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    color: #fff;
    padding: 20px;
    border-radius: 10px 0 0 10px;
    width: 200px;
}
#news .news_wrap .news_list {
    width: calc(100% - 200px);
    background: #f0f0f0;
    border-radius: 0 10px 10px 0;
    padding: 10px;
    overflow-y: scroll;
}
#news .news_wrap ul li {
    display: flex;
    flex-wrap:wrap;
    border-bottom: solid 1px #d6d6d6;
    padding: 10px;
}
#news .news_wrap ul li:last-child {
    border-bottom: 0;
}
#news .news_wrap ul li span {
    color: #828282;
    width: 110px;
}
#news .news_wrap ul li p {
    width: calc(100% - 120px);
}
#news .news_wrap ul li p a[target=_blank]:after {
    content: '\f35d';
    font-family: "Font Awesome 5 Free";
    font-weight: 700;
    color: #0c7acf;
}
/*scroll-bar*/
#news .news_wrap .news_list::-webkit-scrollbar{
    width: 10px;
    background: #d6d6d6;
    border-radius:10px;
}
#news .news_wrap .news_list::-webkit-scrollbar:horizontal{
    height: 10px;
    background: #d6d6d6;
}
#news .news_wrap .news_list::-webkit-scrollbar-thumb{
    background: #a2a2a2;
    border-radius: 5px;
}
#news .news_wrap .news_list::-webkit-scrollbar-thumb:horizontal{
    background: #a2a2a2;
    border-radius: 5px;
}
/*scroll-bar*/

@media (max-width: 850px) {
    #news .news_wrap h3 {
        width: 80px;
    }
    #news .news_wrap .news_list {
        width: calc(100% - 80px);
        padding: 0 10px;
    }
    #news .news_wrap ul li span {
        width: 100%;
        margin-bottom: 2px;
        font-size: 0.7rem;
    }
    #news .news_wrap ul li p {
        width: 100%;
    }
}

@media (max-width: 480px) {
    #news .c_wrap {
        padding-bottom: 0;
    }
    #news .news_wrap {
        max-height: 200px;
    }
}

/* ---------------------------------------------------------
 message 
----------------------------------------------------------*/
#message {
    text-align: center;
}
#message h3 {
    display: flex;
    justify-content: center;
    align-items: center;
}
#message h3 img {
    width: 50px;
    margin-right: 15px;
}
#message p{
    line-height: 2.5;
}
#message .message_01 p {
    font-size: 1.2rem;
    margin-bottom: 40px;
}
#message .message_02 h3 img {
    width: 40px;
    margin-top: -8px;
}

.contribution_area {
    background-color: #e8f5ff;
    border-radius: 20px;
    border: solid 3px #1780d1;
    margin-top: 50px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    padding: 40px;
    background-image:
        url(../images/circle_blue.png),
        url(../images/circle_blue.png),
        url(../images/circle_blue.png),
        url(../images/circle_blue.png);
    background-size:7px;
    background-repeat: no-repeat;
    background-position:
        top 20px left 20px,
        top 20px right 20px,
        bottom 20px left 20px,
        bottom 20px right 20px;
}

.contribution_area .txt {
    width: 63%;
    text-align: left;
}

.contribution_area .txt h4 {
    font-size: 1.1rem;
    padding: 0;
    border: 0;
    color: #1780d1;
    margin-bottom: 20px;
}

.contribution_area figure {
    width: 35%;
}

.contribution_area .txt p {
    font-size: 0.9rem;
}

@media (max-width: 850px) {
    #message .message_01 p {
        font-size: 1rem;
    }
}
@media (max-width: 650px) {
    #message br {
        display: none;
    }
}
@media (max-width: 480px) {
    #message br.sp{
        display: block;
    }
    #message .message_01 p {
        font-size: 1rem;
    }
    #message h3{
        font-size: 1.15rem;
    }
    #message h3 img {
        width: 40px;
    }
    #message .message_02 h3 img {
        width: 30px;
        margin-top: -8px;
    }

    .contribution_area .txt {
        width: 100%;
    }
    .contribution_area figure {
        width: 100%;
        margin-top: 20px;
    }
    .contribution_area .txt p {
        line-height: 2!important;
    }

}

/* ---------------------------------------------------------
 service 
----------------------------------------------------------*/
#service h2{
    color: #fff;
}
#service .service_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
#service .service_list li {
    width: 48.5%;
    background: #fff;
    border-radius: 20px;
    margin-bottom: 25px;
}
#service .service_list li img {
    border-radius: 20px 20px 0 0;
}
#service .service_list li h3 {
    font-size: 1.1rem;
    color: #4b3900;
    display: inline-block;
    background: #f9bc00;
    padding: 5px 20px;
    margin-bottom: 0;
    position: relative;
    margin-left: -10px;
    margin-top: -20px;
    position: absolute;
}
#service .service_list li h3:before {
  position: absolute;
  content: '';
  bottom: 100%;
  left: 0;
  border: none;
  border-top: solid 10px transparent;
  border-right: solid 10px rgb(75, 57, 0);/*折り返し部分*/
}
#service .service_list li .inner {
    padding: 30px 15px 25px 15px;
}
#service .service_list li p {
    margin-bottom: 10px;
}
#service .service_list li a {
    color: #2979cf;
    border-bottom: solid 3px #2979cf;
}
#service .service_list li .box {
    font-size: 0.8rem;
    display: block;
    text-align: center;
    margin-bottom: 10px;
    border: solid 2px #2979cf;
    color: #2979cf;
    padding: 5px;
}

.info_area {
    background-color: rgba(232,245,255,0.2);
    background-image:
        url(../images/circle_white.png),
        url(../images/circle_white.png),
        url(../images/circle_white.png),
        url(../images/circle_white.png);
    background-size:7px;
    background-repeat: no-repeat;
    background-position:
        top 20px left 20px,
        top 20px right 20px,
        bottom 20px left 20px,
        bottom 20px right 20px;
    border-radius: 20px;
    border: solid 3px #ffffff;
    color: #fff;
    margin-top: 25px;
    padding: 40px;
    text-align: center;
}

.info_area h4 {
    font-size: 1.1rem;
    padding: 0;
    border: 0;
    margin-bottom: 20px;
}

.info_area p {
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 2;
    margin-bottom: 30px;
}

@media (max-width: 768px) {
    #service .service_list li {
        width: 80%;
        margin: auto auto 25px;
    }
}

@media (max-width: 480px) {
    #service .service_list li{
        width: 100%;
    }
    #service .service_list li h3 {
        font-size: 1rem;
    }
    #service .service_list li .box br{
        display: none;
    }

    .info_area .img_list li:nth-child(2), .info_area .img_list li:nth-child(3) {
        display: none;
    }
    .info_area .img_list li {
        width: 100%;
    }

}

@media (max-width: 450px) {
    #service .service_list li h3 {
        font-size: 0.9rem;
    }
}

@media (max-width: 400px) {
    #service .service_list li h3 {
        font-size: 0.8rem;
    }
}


/* ---------------------------------------------------------
 contact 
----------------------------------------------------------*/
#contact {
    padding: 20px;
}
#contact .c_wrap_middle {
    display: flex;
    align-items: center;
}
#contact .c_wrap_middle h2 {
    padding-right: 30px;
    font-size: 1.8rem;
    margin-bottom: 0;
    line-height: 1.2;
    text-align: left;
}
#contact .c_wrap_middle h2 span {
    font-size: 1rem;
}
#contact .c_wrap_middle .contact_txt {
    padding: 20px 0 20px 30px;
    border-left: solid 2px #fff;
}
#contact .c_wrap_middle .contact_txt p{
    margin-bottom: 15px;
    color: #fff;
}

@media (max-width: 480px) {
    #contact {
        padding: 50px 20px;
    }
    #contact .c_wrap_middle {
        flex-wrap: wrap;
    }
    #contact .c_wrap_middle h2 {
        padding-right: 0;
        font-size: 1.3rem;
        margin-bottom: 30px;
    }
    #contact .c_wrap_middle h2 span {
        font-size: 0.8rem;
        display: inline-block;
        margin-left: 10px;
    }
    #contact .c_wrap_middle .contact_txt {
        padding: 0;
        border-left: 0;
    }
}

/* ---------------------------------------------------------
 footer 
----------------------------------------------------------*/
footer p{
    background: #000;
    color: #fff;
    font-size: 0.6rem;
    padding: 10px 20px;
    text-align: center;
}


a.mask_banner {
    position: fixed;
    left: 10px;
    bottom: 10px;
    max-width: 300px;
    filter: drop-shadow(5px 5px 5px rgba(0,0,0,0.5));
    z-index: 10;
    margin-right: 10px;
}