    @charset "utf-8";

/*
基本設定
*/
a,button{cursor: pointer; color:inherit; transition-property:opacity,transform; transition-duration: 0.5s}
a:hover,button:hover{ opacity: 0.5;}

/*画像幅100%*/
img{ max-width: 100%; height: auto;}
img.wide{ width: 100%; height: auto;}

/*フレックスボックス*/
.flex{ display: flex; }
.flex-wrap{  display: flex; flex-wrap: wrap;}
.revs{ display: flex; flex-direction:row-reverse;}
.flex.va-cent{ -webkit-align-items: center; align-items:center;}
.flex.jc-cent{ -webkit-justify-content: center; justify-content: center;}
.flex.jc-right{ -webkit-justify-content: flex-end; justify-content: flex-end;}
.grid{ display: -webkit-flex; display: flex;justify-content: space-between;}

/*画像切り替えなど*/
.sp{ display: none !important; }
.pc{ display:block !important; }

/*ローディング*/
#loader-bg { position: fixed; width: 100%; height: 100%; top: 0px; left: 0px; background: #fff; z-index: 10;}
#loader {display: block;position: absolute;top: 50%;width: 100%;height: 60px;left: 0;-webkit-transform: translate(0, -50%);transform: translate(0, -50%);text-align: center;z-index: 100;}
/*ローダー・サークル*/
.loader1{ width:45px; height:45px; border-radius:50%; border:2px solid rgba(0,0,0,0.2); border-top-color:rgba(0,0,0,0.4); box-sizing:border-box; display: inline-block; animation:loading 0.6s linear infinite; -webkit-animation:loading 0.6s linear infinite;}
    @keyframes loading{ 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)}}
    @-webkit-keyframes loading{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}

#all-wrap{ position: relative; opacity: 0; overflow: hidden;}
#all-wrap.active{ opacity: 1;}

/*リサイズ時アニメーション回避*/
body.noduration *,
body .fin{ transition-delay: 0s !important; transition-duration: 0s !important;}

/*背景画像デフォルト設定*/
.bgcover{background-size:cover; background-repeat: no-repeat; background-position: center;}

/*リストマーク*/
.ul>li{ display: table; width: 100%;}
.ul>li>span{ display: table-cell;}
.ul>li>i{ display: table-cell; white-space: nowrap;width: 1px;}

h1,h2,h3,h4,h5,h6{
    font-size: 1.3;
    font-weight: 700;
}

.ff1{ font-family: 'Arial', sans-serif;}
.gf1{ font-family: 'Montserrat', sans-serif; letter-spacing: 0.1em;}
.gf2{ font-family: 'Noto Sans JP', sans-serif !important; }

.clr1{color:#FF1E79;}
.clr2{color:#FF18A9;}
.clr3{color:#FF0EDF;}


.bg1{background:#FF1E79;}
.bg2{background:#FF18A9;}
.bg3{background:#FF0EDF;}

a.link{
    color:#FF1E79;
    text-decoration: underline;
}

body{
    font-size: 1.6rem;
    background: #F5F5F5;
    line-height: 1.6;
}

@media screen and (max-width:   1100px){


    body{
        font-size: 1.4rem;
    }

}


.top-ttl{
    color: #FF1E79;
    font-size:6rem;
    font-weight:bold;
    letter-spacing: 0.1em;
}


@media screen and (max-width:1100px){

    .top-ttl {
        font-size: 2.8rem;
    }

}



/*
基本設定　sp
*/

    @media screen and (max-width: 1100px){
        /*画像切り替えなど*/
        .pc{ display: none !important; }
        .sp{ display:block !important; }

    }


.btn1{
    width: 370px;
    height: 60px;
    text-align: center;
    line-height: 60px;
    font-size: 2.1rem;
    font-weight: bold;
    border-radius: 40px;
    color: #fff !important;
}

@media screen and (max-width:1100px){
    .btn1 {
        width: 280px;
        height: 60px;
        line-height: 60px;
        font-size: 1.8rem;
    }

}


.headline-l{
    font-size: 3.4rem;
    margin-bottom:40px;
    font-weight: 900;
}


.headline-m{
    font-size: 2.8rem;
    margin-bottom: 0.6em;
}


.headline-s{
    font-size: 1.8rem;
    margin-bottom: 0em;
}

.section-small{
    font-size: 1.4rem;
    margin-top: 0.5em;
    margin-bottom: 1.5em;
}

@media screen and (max-width:1100px){


    .headline-l{
        font-size: 2.4rem;
        margin-bottom: 0.5em;
    }

    .headline-m{
        font-size: 1.8rem;
        margin-bottom: 0.5em;
    }

    .headline-s{
        font-size: 1.4rem;
        margin-bottom: 0.5em;
    }

    .section-small{
        font-size: 1.2rem;
        margin-bottom: 1.5em;
    }

}


.footer-menu{
    margin:100px 0 50px;
    display: flex;
    justify-content: center;
    font-size: 1.8rem;
}


.footer-menu>li>a{
    padding: 0 2em ;
    font-weight: bold;
    letter-spacing:0.2em;
}


.footer-block{
    display: flex;
    align-items: center;
}

.footer-logo{
    width: 230px;
    padding: 40px 30px 40px  70px;
}

.footer-copyright{
    width: calc(100% - 230px);
    color: #BBBBBB;
    font-size: 1.4rem;
}
@media screen and (max-width:1100px){

    .footer-menu {
        display: none;
    }

    .footer-logo {
        width: 138px;
        padding: 35px 20px 35px 20px;
    }

    .footer-copyright {
        width: calc(100% - 153px);
        font-size: 1rem;
    }

    .top-about-body {
        padding-right: 0;
    }
}




/*
ヘッダー
*/
header{
    position: fixed;
    width: 100%;
    height: 85px;
    z-index: 100;
    justify-content:flex-end;
    padding-right: 100px;
    z-index:    10000;

}

header.fixed{
    background: linear-gradient(100deg, #FF1F76, #FF0FE0, #FF1F76, #FF0FE0);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
}

body header #menu-button {
    position: absolute;
    display: block;
    right: 19px;
    top: 7px;
    width: 65px;
    height: 68px;
    cursor: pointer;
    z-index: 16;
    margin-top: 0px;
    transition: all .2s ease;
    z-index: 120;
}

body header #menu-button>div {
    width: 40px;
    height: 3px;
    background: #fff;
    position: absolute;
    -webkit-transition: all .3s;
    transition: all .3s;
}

body header.on #menu-button>div{
    background: #59493f;
}

body header.block #menu-button>div {
}

body header #menu-button>div:nth-child(1){
    top: 40%;
    left: 12px;
    -webkit-transform: translate(0%,0%);
    transform: translate(0%,0%);
}
body header #menu-button>div:nth-child(2){
    display: none;
}



body header #menu-button.active>div{

}

body header #menu-button.active>div:nth-child(1) {
    top: 50%;
    -webkit-transform: translate(-5%,-50%) rotate(45deg);
    transform: translate(0,-50%) rotate(45deg);
}
body header #menu-button>div:nth-child(2){
    top: 50%;
    left: 12px;
}
body header #menu-button.active>div:nth-child(2) {
    opacity: 0;
}
body header #menu-button>div:nth-child(3){
    top: 60%;
    left: 12px;
    -webkit-transform: translate(0%,0%);
    transform: translate(0%,0%);
}

body header #menu-button.active>div:nth-child(3) {
    top: 50%;
    -webkit-transform: translate(-5%,-50%) rotate(-45deg);
    transform: translate(0,-50%) rotate(-45deg);
}

/*メニュー*/
body header nav {
    position: fixed;
    display: none;
    opacity: 0;
    height: auto;
    top: 0px;
    padding: 0;
    width: 400px;
    right: -400px;
    text-align: left;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    -webkit-transition: all .2s ease;
    transition: all .2s ease;
    text-align: left;
    z-index: 110;
    text-align: center;
     background: linear-gradient(100deg, #FF1F76, #FF0FE0, #FF1F76, #FF0FE0);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
    height: 100vh;
}

body header nav.block {
    display: block;
}

body header nav.block.active {
    opacity: 1;
    right:0;
    -webkit-transition: all 0.2s ease;
    transition: all 0.2s ease;
}

    @media screen and (max-width: 1100px){

        body header nav {
            width: 300px;
        }

        header {
            width: 100%;
            height: 70px;
        }

        body header #menu-button {
            right: 10px;
            top: 0px;
        }

    }


.header-contact{
    display: block;
    width: 214px;
    height: 44px;
    line-height: 44px;
    color:#fff;
    border-radius: 30px;
    font-size: 1.6rem;
    border:1px solid #fff;
    text-align: center;
    letter-spacing: 0.2em;
    font-weight: bold;
    margin:25px 0;
}


.header-logo{
    position: absolute;
    left:25px;
    top:25px;
}
.logo-img{
  width: 120px;
}
.header-menu-en{
    display: flex;
    color:#fff;
    padding-right: 30px;
}
.header-menu-en>li{
  position: relative;
}

.header-menu-en>li>a{
  position: relative;
  display: block;
  font-weight: bold;
  padding: 1.2em 2em 1em;
  letter-spacing:  0.2em;
  z-index: 2;
}

.header-menu{
    /*padding-top: 100px;*/
    padding: 100px 20px 20px;
    text-align: left;
    display: block;
    color:#fff;
}
.header-menu>li{
  position: relative;
}

.header-menu>li>a {
    padding: 1em;
    color: #fff;
    display: block;
    font-weight: bold;
}

.header-menu>li>a strong{
    display: none;
}

.header-menu>li>a span{
    display: block;
    font-size:  2rem;
}

.header-menu>li>ul>li .gf1{
  font-weight: bold;
}

.header-menu>li>ul{
  padding-left:15px;
}

.header-menu>li>ul>li>a{
  padding-left: 2.3em;
  display: block;
  margin-bottom: 15px;
  font-size: 1.5rem;
  background: #fff;
  border-radius: 30px;
  color: #DF0059;
  padding: 3px 20px;
  width: 250px;
  font-weight: bold;
}

.header-menu>li>ul>li>ul {
  margin-bottom: 35px;
}

.header-menu>li>ul>li>ul>li>a{
  padding-left: 20px;
  display: block;
  font-size: 1.4rem;
  margin-bottom: 10px;
  font-weight: bold;
  overflow:hidden;
}


@media screen and (max-width:1500px){
  .header-menu-en>li>a{
    padding: 1.2em 1.4vw 1em;
  }

  .header-contact {
    display: block;
    width: 150px;
  }
}

@media screen and (max-width:1280px){

    .header-menu-en{
      display: flex;
      color:#fff;
      padding-right: 10px;
    }

    .header-menu-en>li>a{
       padding: 1.2em 1.2vw 1em;
    }

}

@media screen and (max-width:1180px){

    .header-contact{
        margin: 20px auto;
        width: 200px;
        font-size: 1.5rem;
        display: none !important;
    }

    .header-menu>li>a strong {
        font-size: 1.0rem;
    }
    .header-menu>li>a span {
        font-size: 1.6rem;
    }

    .header-menu>li>ul>li>a{
        width: 190px;
      }

}

/*サブメニュー*/
header .pc-hover-menu>ul.hover-menu1{
  position: absolute;
  left:20px;
  top:0;
  padding-top: 60px;
  text-align: center;
  transform: rotateX(90deg);
  opacity: 0;
  z-index: 1;
  padding-right: 30px;
}

header .pc-hover-menu>ul.hover-menu1.open{
  transform: rotateX(0deg);
  opacity: 1;
  transition: transform 0s linear ,opacity 0.3s ease-out 0.15s;
}

header .pc-hover-menu>ul.hover-menu1>li{
  position: relative;
  margin-bottom: 6px;
}
header .pc-hover-menu2>ul.hover-menu2>li>a,
header .pc-hover-menu>ul.hover-menu1>li>a{
  position: relative;
  display: flex;
  width: 182px;
  padding:0.1em 1em 0.1em;
  min-height: 32px;
  color: #fff;
  border-radius: 30px;
  background:#DF0059;
  font-weight:bold;
  align-items: center;
  box-shadow:0 0 8px -3px rgba(0,0,0,0.2);
  transition: background 0 linear, color 0.3s linear;
}

header .pc-hover-menu>ul.hover-menu1>li>a::after{
  content:"";
  position: absolute;
  top:50%;
  right:20px;
  width: 6px;
  height: 6px;
  border-right:3px solid #fff;
  border-bottom:3px solid #fff;
  transform: translate(0,-50%) rotate(-45deg);
}

header .pc-hover-menu>ul.hover-menu1>li>a i{
  font-size: 1.6rem;
  font-weight: 800;
}

header .pc-hover-menu>ul.hover-menu1>li>a span{
  font-size: 1.3rem;
  padding-top: 0.15em;
  font-weight: bold;
}

header .pc-hover-menu>ul.hover-menu1>li>a:hover{
  background: #fff;
  color:#DF0059;
  opacity: 1;
}

header .pc-hover-menu>ul.hover-menu1>li>a:hover::after{
  border-right:3px solid #DF0059;
  border-bottom:3px solid #DF0059;
}


header .pc-hover-menu>ul.hover-menu1{
  position: absolute;
  display: none;
  width: 230px;
  left:20px;
  top:0;
  padding-top: 60px;
  text-align: center;
  transition: transform 0s linear 0.3s ,opacity 0.2s ease-out 0s;
  z-index: 1;
  padding-right: 0px;
}

header .pc-hover-menu2>ul.hover-menu2>li,
header .pc-hover-menu>ul.hover-menu1>li{
  margin-bottom: 6px;
}

header .pc-hover-menu2>ul.hover-menu2>li>a,
header .pc-hover-menu>ul.hover-menu1>li>a{
  position: relative;
  display: flex;
  width: 220px;
  padding:0.2em 1em 0.15em;
  color: #fff;
  border-radius: 30px;
  background:#DF0059;
  font-weight:bold;
  box-shadow:0 0 10px -3px rgba(0,0,0,0.2);
  transition: background 0 linear, color 0.3s linear;
}
header .pc-hover-menu2>ul.hover-menu2>li>a::after,
header .pc-hover-menu>ul.hover-menu1>li>a::after{
  content:"";
  position: absolute;
  top:50%;
  right:20px;
  width: 6px;
  height: 6px;
  border-right:3px solid #fff;
  border-bottom:3px solid #fff;
  transform: translate(0,-50%) rotate(-45deg);
}

header .pc-hover-menu>ul.hover-menu1>li>a i,
header .pc-hover-menu2>ul.hover-menu2>li>a i{
  font-size: 1.6rem;
  font-weight: 800;
}

header .pc-hover-menu>ul.hover-menu1>li>a span,
header .pc-hover-menu2>ul.hover-menu2>li>a span{
  font-size: 1.3rem;
  padding-top: 0.15em;
  font-weight: bold;
}
header .pc-hover-menu>ul.hover-menu1>li>a.active,
header .pc-hover-menu>ul.hover-menu1>li>a:hover,
header .pc-hover-menu2>ul.hover-menu2>li>a:hover{
  background: #fff;
  color:#DF0059;
  opacity: 1;
}

header .pc-hover-menu>ul.hover-menu1>li>a:hover::after,
header .pc-hover-menu2>ul.hover-menu2>li>a:hover::after{
  border-right:3px solid #DF0059;
  border-bottom:3px solid #DF0059;
}

/**/
header .pc-hover-menu2>ul.hover-menu2{
  position: absolute;
  display: none;
  width: 100%;
  right:-225px;
  top:0;
  padding-top: 0px;
  text-align: center;
  transition: transform 0s linear 0.3s ,opacity 0.3s ease-out 0s;
  z-index: 1;
}


header .pc-hover-menu2>ul.hover-menu2>li>a span{
  padding-top: 0;
}

/*
トップへ戻る
*/
#pagetop{
    z-index: 11;
    position: fixed;
    width: 85px;
    height: 85px;
    bottom:-85px;
    right:50px;
    opacity: 0;
    -webkit-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
    cursor: pointer;
    z-index: 100;
}

#pagetop.open{
    bottom:30px;
    opacity: 1;
    -webkit-transition:all 0.3s ease-out;
    transition:all 0.3s ease-out;
}


#pagetop span{
    position: relative;
    display: block;
    width: 100%;
    height: 85px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 10px -3px rgba(0,0,0,0.3);
}

#pagetop span::after {
    content: "";
    position: absolute;
    top: 58%;
    right: 35px;
    width: 12px;
    height: 12px;
    border-right: 4px solid #FF1E79;
    border-top: 4px solid #FF1E79;
    transform: translate(0,-50%) rotate(-45deg) scale(1,1);
}

@media screen and (max-width:1100px){

        /*
    トップへ戻る
    */
    #pagetop{
        z-index: 11;
        position: fixed;
        width: 40px;
        height: 40px;
        bottom:-40px;
        right:10px;
        opacity: 0;
        -webkit-transition: all 0.3s ease-out;
        transition: all 0.3s ease-out;
        cursor: pointer;
        z-index: 100;
    }

    #pagetop.open{
        bottom:20px;
        opacity: 1;
        -webkit-transition:all 0.3s ease-out;
        transition:all 0.3s ease-out;
    }


    #pagetop span{
        height: 40px;
        box-shadow: 0 0 10px -5px rgba(0,0,0,0.3);
    }

    #pagetop span::after {
        content: "";
        position: absolute;
        top: 58%;
        right: 15px;
        width: 7px;
        height: 7px;
        border-right: 2px solid #FF1E79;
        border-top: 2px solid #FF1E79;
        transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    }


}


.grad{
    background: linear-gradient(100deg, #FF1F76, #FF0FE0, #FF1F76, #FF0FE0);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
}


.grad.back{
    background: linear-gradient(100deg, #555, #aaa, #555, #aaa);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
}



@keyframes gradient {
    0% {
        background-position: 100% 50%;
    }
    50% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 100% 50%;
    }
}


.main-visual{
    position: relative;
    height:100vh;
}

.main-visual-inr{
    position: absolute;
    width:100%;
    top: 50%;
    left: 0;
    -webkit-transform: translate(0, -50%);
    transform: translate(0, -50%);
    text-align: left;
    color:#fff;
    padding-left:117px;
}

.main-visual-msg{
    font-size: 3.9rem;
    font-weight: bold;
    padding-left: 50px;
}


.main-visual-catch{
    font-size: 8.3rem;
    font-weight: bold;
    padding-left: 50px;
}

.main-visual-msg p{
    font-weight: bold;
}

.main-visual-catch p{
    font-weight: bold;
}


/*アニメーション*/
.mask{
    overflow: hidden;
    position: relative;
    display: inline-block;
}

.mask::after{
    content:"";
    position: absolute;
    width: 100%;
    height: 100%;
    left:0;
    top:0;
    background:  #fff;
    transform: scaleX(0) translateX(0);
    transform-origin: left;
}

.lower  .mask::after{
    height: 2px;
    top:auto;
    bottom:0;
}

.lower .mask.animated::after {
    height: 100%;
    top: auto;
    bottom: 0;
}

.mask.animated::after{
    content:"";
    position: absolute;
    width: 100%;
    height: 100%;
    left:0;
    top:0;
    animation:
    first-mask .5s cubic-bezier(.900,.029,.699,.233) 0s alternate forwards,
    second-mask .5s cubic-bezier(.164,.844,.45,1.00) .7s alternate forwards;
    transform: scaleX(0) translateX(0);
    transform-origin: left;
}

.mask>div{
    display: block;
    opacity: 0;
    transition: opacity 0.5s ease-out 0.7s, transform 0.5s ease-out 0.7s;
    transform: translateX(-50px);
}


.mask.animated>div{
    opacity: 1;
    transform: translateX(0px);
}




@-webkit-keyframes first-mask{
    0%{transform:scaleX(0) translateX(0)}
    100%{transform:scaleX(1) translateX(0)}
}
@-webkit-keyframes second-mask{
    0%{transform:scaleX(1) translateX(0)}
    100%{transform:scaleX(1) translateX(101%)}
}

.main-visual-15th{
    position: absolute;
    right:30px;
    bottom:30px;
    width: 130px;
    width: 130px;
    z-index: 10;
}

.lower .main-visual-15th{
    position: absolute;
    right:30px;
    bottom:30px;
    width: 104px;
    width: 104px;
    z-index: 10;
}

@media screen and (max-width:1100px){

    .main-visual-15th{
        position: absolute;
        right:20px;
        bottom:60px;
        width:110px;
        width:110px;
        z-index: 10;
    }
    
  .main-visual-inr {
    top: 40%;
  }
    .lower .main-visual-15th{
        position: absolute;
        right:20px;
        bottom:20px;
        width: 70px;
        z-index: 10;
    }

}



.letter {
  display: inline-block;
  line-height: 1em;
  opacity: 0;
  font-weight: bold !important;
  transform-origin: 0% 0%;
}


@keyframes image_blur {
    0% { filter: blur(5px)  brightness(140%) saturate(200%);}
    100% { filter: blur(0px)  brightness(100%) saturate(100%);}
}
/* 
.fade .image {
    position: relative;
    z-index: 1;
    animation: image_blur 0.8s cubic-bezier(.53,.08,.39,.88) 2.8s;
    filter:blur(0px) brightness(100%)  saturate(100%);
} */
/* 
 .image::after{
    content:"";
    position: absolute;
    width: 100%;
    height: 100%;
    left:0;
    top:0;
    background: linear-gradient(100deg, #FF1F76, #FF0FE0, #FF1F76, #FF0FE0);
    background-size: 400% 400%;
    animation: gradient2 1s ease ;
    opacity: 0;
}
 */

@keyframes gradient2 {
    0% {
        background-position: 0% 50%;  opacity:0.5;
    }
    50% {
        background-position: 50% 50%;  opacity:0.25; 
    }
    100% {
        background-position: 100% 50%; opacity:0; 
    }
} 



@media screen and (max-width:1280px){

    .main-visual-msg {
        font-size: 3.2vw;
    }

    .main-visual-catch {
        font-size: 7vw;
    }

    .main-visual-inr {
        padding-left: 5%;
    }

}
@media screen and (max-width:1100px){

    .header-menu-en {
      display: flex;
      color: #fff;
      padding-right: 10px;
    }

    .header-menu>li>a strong {
        display:block;
    }
}

@media screen and (max-width:1100px){


    .main-visual-inr {
        padding-left: 0;
    }


    .main-visual-msg {
        font-size: 4vw;
        padding-left: 30px;
    }

    .main-visual-catch {
        font-size: 7vw;
        padding-left: 30px;
    }

}

@media screen and (max-width:920px){
    .header-menu-en {
        display: none;
    }
}

.home .lower-logo{
    display: none;
}

.lower .home-logo{
    display: none;
}

.top-news{
    background: #FFF;
    display: flex;
}

.top-news-block{
    position: relative;
    width: 100%;
    /*height: 66px !important;*/
    overflow:hidden;
}
.top-news-block .swiper-container {
    height: 66px !important;
}

/* .top-news-block article{
    height: 66px  !important;
} */

.top-news-block article p{
    padding-top: 20px;
    width: calc(100% - 180px);
    padding-right: 50px;
}
.top-news-block article time{
    width: 180px;
    font-weight: bold;
    padding:20px 20px 20px 40px;
}
.top-news-block article a{
    position: relative;
    display: flex;
}

.top-news-block article a[href="#"] {
    pointer-events: none;
}
.top-news-block article a[href="#"]:hover {
    opacity: 1;
}

.top-news-btn{
    position: relative;
    display: block;
    width: 100px;
}
.top-news-block::after{
    content:"";
    position: absolute;
    top:50%;
    right:40px;
    width: 8px;
    height: 8px;
    border-right:2px solid #000;
    border-bottom:2px solid #000;
    -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    transform: translate(0,-50%) rotate(-45deg) scale(1,1);
}

@media screen and (max-width:1100px){

    .top-news-block .swiper-container {
        height: 43px !important;
    }

    .top-news-block article a {
        display: block;
    }

    .top-news-block article time {
        width: 100%;
        padding: 0px 20px 20px 40px;
    }

    .top-news-btn {
        width: 50px;
    }

    .top-news-block {
        width: 100%;
        padding: 20px 0;
    }

    .top-news-btn::after {
        right: 25px;
    }

    .top-news-block article time {
        width: 100%;
        display: block;
        padding: 0px 0px 0px 20px;
    }

    .top-news-block article p {
      padding-top: 0;
      width: 100%;
      padding-left: 20px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }


}


.top-slider .swiper-slide {
    width: 600px ;
    max-width: 600px;
    height: 100%;
}

.top-slider .top-slider-box {
    position: relative;
    overflow: hidden;
}

.top-slider .top-slider-pre {
    position: absolute;
    width: 100%;
    height: 100%;
    left:0;
    top:0;
    overflow: hidden;
    background:#DDD;
    z-index: 11;
    transition: opacity 0.5s ease-out 1s;
}
.top-slider{
    position: relative;
    z-index:    1;
}


.top-slider .top-slider-box.fade .top-slider-pre{
    opacity: 0;
}


.top-slider .top-slider-box.fade .canvas{
    opacity: 1;
    transform:scale(1.4,1.4);
}


.top-slider .canvas{
    position: absolute;
    left:0;
    top:0;
    width: 100% !important;
    height: 100% !important;
    z-index: 10;
}

.top-slider .canvas{
    transition: all 0.6s ease 2.8s;
}

.top-slider .top-slider-load {
    position: absolute;
    top: 80px;
    left: 60px;
    font-size: 2rem;
    font-weight: bold;
    color: #FFFFFF;
    letter-spacing: 0.2em;
    z-index:11 ;
}

.top-slider .top-slider-load>span{
    position: relative;
    display: inline-block;
    animation-duration: 2s;
    animation-iteration-count: infinite;
    animation-delay:0;
    transform: translateY(0px);
}

.top-slider .top-slider-load>span:nth-child(1){
    animation-name: laod;
}
.top-slider .top-slider-load>span:nth-child(2){
    animation-name: laod;
    animation-delay: 0.2s;
}
.top-slider .top-slider-load>span:nth-child(3){
    animation-name: laod;
    animation-delay: 0.4s;
}
.top-slider .top-slider-load>span:nth-child(4){
    animation-name: laod;
    animation-delay: 0.6s;
}
.top-slider .top-slider-load>span:nth-child(5){
    animation-name: laod;
    animation-delay: 0.8s;
}
.top-slider .top-slider-load>span:nth-child(6){
    animation-name: laod;
    animation-delay: 1s;
}
.top-slider .top-slider-load>span:nth-child(7){
    animation-name: laod;
    animation-delay: 1.2s;
}

.top-slider .top-slider-load>span:nth-child(8){
    animation-name: opa;
    animation-delay: 1.4s;

}
.top-slider .top-slider-load>span:nth-child(9){
    animation-name: opa;
    animation-delay: 1.7s;

}
.top-slider .top-slider-load>span:nth-child(10){
    animation-name: opa;
    animation-delay: 1.8s;
}








@keyframes laod {
    0% { opacity:0; transform: translateY(0px);}
    20% {opacity:0.5; transform: translateY(5px);}
    40% {opacity:1; transform: translateY(0px);}
}

@keyframes opa {
    0% { opacity:0;}
    50% {opacity:0.5;}
    100% {opacity:1;}
}



.top-slider-caption{
    padding: 10px 15px;
}

.top-slider-date {
    font-weight: bold;
    font-size: 1.6rem;
    color: #BBBBBB;
    line-height: 1.2em;
    letter-spacing: 0.2em;
}


.top-slider-name {
    font-size: 2.0rem;
    font-weight: bold;
    line-height: 1.2em;
}



.top-works-slider{
    position: relative;
}

.top-works-slider .swiper-button-prev {
    left: -28px;
    top: 0;
    right: auto;
    margin-top: 0;
    transform: none;
    padding-top: 400px;
    width: 53px;
    background-image: transparent !important;
}

.top-works-slider .swiper-button-prev {
    left: 15px;
    right: auto;
}

.top-works-slider .swiper-button-prev::after{
    content:"";
    position: absolute;
    top:50%;
    right:20px;
    width: 9px;
    height: 9px;
    border-left:2px solid #FF1E79;
    border-bottom:2px solid #FF1E79;
    -webkit-transform: translate(0,-50%) rotate(45deg) scale(1,1);
    transform: translate(0,-50%) rotate(45deg) scale(1,1);
    margin-bottom: -10px;
}

.top-works-slider .swiper-button-prev::before{
    content:"";
    position: absolute;
    top:50%;
    width: 53px;
    height: 53px;
    border-radius: 50%;
    background: #fff;
    margin-top: -26px;
    box-shadow: 0px 0px 10px 5px rgba(0,0,0,0.2);
}



.top-works-slider .swiper-button-next {
    right: 40px;
    top: 0;
    left: auto;
    margin-top: 0;
    transform: none;
    padding-top: 400px;
    width: 53px;
    background-image: transparent !important;
}


.top-works-slider .swiper-button-next::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 23px;
    width: 9px;
    height: 9px;
    border-right: 2px solid #FF1E79;
    border-bottom: 2px solid #FF1E79;
    -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    margin-bottom: -10px;
}

.top-works-slider .swiper-button-next::before{
    content:"";
    position: absolute;
    top:50%;
    width: 53px;
    height: 53px;
    border-radius: 50%;
    background: #fff;
    margin-top: -26px;
    box-shadow: 0px 0px 10px 5px rgba(0,0,0,0.2);
}

.top-works{
    display: flex;
    padding-top: 120px;
    margin-bottom: 110px;
}
.ie11 .top-works{
    display: table;
}

.top-works-head{
    position: relative;
    width: 540px;
    padding-left: 56px;
    padding-right: 56px;
    z-index: 1000;
    /*background: #fff;*/
}

.top-works-slider{
    position: relative;
    width: calc(100% - 540px);
    z-index: 1;
    overflow: hidden;
    padding-left: 38px;
}

.ie11 .top-works .top-head,
.ie11 .top-works .top-works-slider{
    display: table-cell;
    vertical-align: top;
}

.top-works-msg {
    padding-top: 0px;
    line-height: 2em;
    margin-bottom: 50px;
}

.btn-more{
    display:flex;
    align-items: center;
    font-weight: bold;
}

.btn-more-icon{
    position: relative;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    margin-right: 15px;
    box-shadow: 0px 0px 15px 2px rgba(0,0,0,0.2);
}

.btn-more-icon::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    width: 8px;
    height: 8px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    transform: translate(0,-50%) rotate(-45deg) scale(1,1);
}

.btn-more-txt{
    color: #888;
}

@media screen and (max-width:1280px){

    .top-works-slider .swiper-button-next {
        right: 20px;
    }
}


@media screen and (max-width:1100px){


    .top-slider-date {
        font-size: 1.4rem;
    }
    .top-slider-name {
        font-size: 1.6rem;
    }

    .top-slider .swiper-slide img {
        width: 100%;
    }

    .top-works-slider .swiper-button-next,
    .top-works-slider .swiper-button-prev{
        background: transparent !important;
        width: 35px;
    }

    .top-works-slider .swiper-button-prev {
        left: 17px;
        right: auto;
    }


    .top-works-slider .swiper-button-next {
        right: 13px;
        margin-top: -18px;
    }

    .top-works-slider .swiper-button-next {
        right: 40px;
        top: 0;
        left: auto;
        margin-top: 0;
        transform: none;
        padding-top: 400px;
        width: 53px;
        background-image: transparent !important;
    }

    .top-works-slider .swiper-button-prev::before {
        width: 35px;
        height: 35px;
    }

    .top-works-slider .swiper-button-next::before{
        width: 35px;
        height: 35px;
    }

    .top-works-slider .swiper-button-prev::after {
        content: "";
        position: absolute;
        top: 47%;
        right:10px;
        width: 6px;
        height: 6px;
    }

    .top-works-slider .swiper-button-next::after {
        content: "";
        position: absolute;
        top: 47%;
        right: 12px;
        width: 6px;
        height: 6px;
    }

    .top-works-slider .swiper-button-next {
        right: 20px;
    }

    .top-works-slider .swiper-button-next,
    .top-works-slider .swiper-button-prev {
        padding-top: 400px;
    }


    .top-works{
        display:block;
        padding-top: 30px;
        margin-bottom: 30px;
    }
    .ie11 .top-works{
        display:block;
    }


    .top-works-head {
        width: 100%;
        padding-left: 20px;
        padding-right: 20px;
        padding-bottom: 30px;
        z-index: 1000;
    }

    .top-works-slider{
        position: relative;
        width: 100%;
        padding-left: 0px;
    }

    .ie11 .top-works .top-head,
    .ie11 .top-works .top-works-slider{
        display: block;
        vertical-align: top;
    }

    .top-works-msg {
        margin-bottom: 20px;
    }

    .top-works-slider .swiper-button-next,
    .top-works-slider .swiper-button-prev {
        padding-top: 400px;
    }


    .btn-more{
        display:flex;
        align-items: center;
        font-weight: bold;
    }

    .btn-more-icon{
        position: relative;
        width: 35px;
        height: 35px;
        border-radius: 50%;
        margin-right: 15px;
        box-shadow: 0px 0px 15px 2px rgba(0,0,0,0.2);
    }

    .btn-more-icon::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 14px;
        width: 6px;
        height: 6px;
        border-right: 2px solid #fff;
        border-bottom: 2px solid #fff;
        -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
        transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    }

    .btn-more-txt{
        font-size: 1.4rem;
    }


}

@media screen and (max-width:625px){
    .top-works-slider .swiper-button-next,
    .top-works-slider .swiper-button-prev {
      padding-top: 55%;
      width: 35px;
    }
}

.top-service{
    margin-top: 100px;
    padding-bottom:50px;
    position: relative;
}
.top-service-head{
    position: relative;
    margin-bottom: 100px;
}

.top-service-head::after{
    content: "";
    position: absolute;
    width: 100%;
    height: 1px;
    top:50%;
    left:0;
    background: #ddd;
    z-index: -1;
}

.top-service-head .top-ttl{
    display: inline-block;
    background: #F5F5F5;
    padding-left: 55px;
    padding-right: 50px;
}


/* .grad{
    background: linear-gradient(100deg, #FF1F76, #FF0FE0, #FF1F76, #FF0FE0);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
}
 */


.top-service-catch {
    font-size: 10rem;
    font-weight: bold;
    text-align: center;
    background: linear-gradient(100deg, #FF1F76, #FF0FE0);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1.2;
    letter-spacing: 0.05em;
}

.ie11 .top-service-catch{
    color: #FF1F76 !important;
    background: transparent !important;
}


.top-service-lead{
    font-size: 3.6rem;
    text-align: center;
    margin-bottom: 15px;
    margin-bottom: 30px;
}
.top-service-msg{
    font-size: 1.6rem;
    text-align: center;
    margin-bottom: 100px;
}

.top-service-block{
    padding: 0 18px;
    display: flex;
    justify-content: space-between;
}

.top-service-box{
    display: block;
    position: relative;
    width: calc(33.33% - 25px);
    padding: 50px 40px;
    /*box-shad*/
    box-shadow: 0px 0px 15px -5px rgba(0,0,0,0.3);
    background: #FFF;
}

.top-service-box .ttl{
    text-align: center;
    margin-bottom: 30px;
}

.top-service-box .ttl strong{
    font-size: 4.6rem;
    display: block;
    white-space: nowrap;
    letter-spacing: 0.15em;
}
.top-service-box .ttl span{
    font-size:2.1rem;
}

.top-service-box .msg{
    font-weight: bold;
}

.top-service-box .btn-more-icon{
    position: absolute;
    right:10px;
    bottom:-25px;
    display: inline-block;
}
@media screen and (max-width:1250px){

    .top-service-box .ttl strong {
        font-size: 3.4rem;
    }
}

@media screen and (max-width:1100px){



    .top-service {
        margin-top: 30px;
        padding-bottom: 0px;
    }

    .top-service-head .top-ttl {
        padding-left: 25px;
        padding-right: 30px;
    }

    .top-service-head {
        margin-bottom: 30px;
    }

    .top-service-catch{
        font-size: 4.0rem;
    }

    .top-service-lead {
        font-size: 2.4rem;
    }

    .top-service-msg{
        padding:  0 20px;
    }

    .top-service-msg {
        margin-bottom: 40px;
        font-size: 1.4rem;
    }

    .top-service-block {
        display: block;
        padding: 0 20px;
    }

    .lower .top-service-block {
        display: block;
        padding: 0;
    }

    .top-service-box {
        display: block;
        width: 100%;
        padding: 20px;
        margin-bottom: 30px;
    }

    .top-service-box .ttl {
        margin-bottom: 0.7em;
    }

    .top-service-box .ttl strong {
        font-size: 2.8rem;
        line-height: 1.2;
    }

    .top-service-box .ttl span {
        font-size: 1.6rem;
    }

    .top-service-box .btn-more-icon {
        right: 10px;
        bottom: -16px;
    }
  .top-service-box .msg{
      font-size: 1.2rem;
  }

}

@media screen and (max-width:425px){
    .top-service-msg{
        text-align: left;
        padding:  0 20px;
    }
}


.top-results{
    margin-bottom: 150px;
}

.top-results-block{
    display:flex;
    margin-top: 110px;
    margin-bottom: 110px;
}

.top-results-img{
    width: 50%;
    padding-left: 25px;
}

.revs .top-results-img{
    padding-left: 0px;
    padding-right: 25px;
}


.top-results-img img{
    width: 100%;
}

.top-results-box{
    width: 50%;
    padding:70px 88px;
}
.top-results-box ul li{
  display: inline-block;
  margin: 5px;
}

.top-results-ttl{
    color: #FF1E79;
    font-size: 6rem;
    line-height: 1;
}

.top-results-sub{
    font-size: 2.4rem;
    font-weight: bold;
    color: #CCCCCC;
    margin-bottom: 30px;
}

.top-results-catch{
    font-size: 1.8rem;
    font-weight: bold;
    margin-bottom: 10px;
}

.top-results-msg{
    margin-bottom: 20px;
}


@media screen and (max-width:1100px){

    .top-results{
        margin-bottom: 40px;
    }


    .top-results-block {
        flex-direction: column-reverse;
        margin-top: 30px;
        margin-bottom: 0px;
    }

    .top-results-img{
        width: 100%;
        padding-left: 0px;
        padding: 0 20px;
        transition-delay: 1.4s;
    }

    .revs .top-results-img{
        padding-left: 0px;
        padding-right:0px;
        padding: 0 20px;
        font-size: 1.3rem;
    }


    .top-results-img img{
        width: 100%;
    }


    .top-results-box {
        width: 100%;
        padding: 0px 20px 20px;
    }

    .top-results-msg {
        margin-bottom: 20px;
    }

    .top-results-ttl {
        font-size: 2.8rem;
    }

    .top-results-sub {
        font-size: 1.6rem;
    }
  .top-results-box ul{
    text-align: center;
  }
  .top-results-box ul li{
    display: inline-block;
    margin: 5px;
    width: 40%;
  }    

}

.top-connect-wrap{
    margin-bottom: 100px;
}


.top-connect-msg{
    text-align: center;
    font-size: 2.6rem;
    font-weight: 900;
    margin-bottom: 40px;

}

.top-connect-btn{
    display: flex;
    justify-content: center;
}

.top-about {
    display: flex;
    margin: 40px 0 0;
    padding: 135px 50px;
    /*border-top: 1px solid #DDDDDD;*/
    background: #FFF;
}



.top-about-head{
    width: 516px;
}

.top-about-body{
    position: relative;
    width: calc(100% - 516px);
    padding-top: 20px;
}

.top-about-ttl{
    font-size: 2.4rem;
    font-weight: bold;
}

.top-about-msg{
    font-size: 1.8rem;
}

.top-about-btn{
    position: absolute;
    right:0px;
    top:50%;
    margin-top: -25px;
}

@media screen and (max-width:1250px){
    .top-about-head{
        width: 420px;
    }
    .top-about-body{
        width: calc(100% - 420px);
        padding-right: 150px;
    }
}

@media screen and (max-width:1100px){

    .top-about {
      display: block;
      margin: 0 0 0;
      padding: 20px;
    }

    .top-about-head{
      width: 100%;
    }

    .top-about-body{
        width:100%;
        padding-right: 0;

    }

    .top-about-btn{
        position: static;
    }

    .top-about-ttl {
        font-size: 1.6rem;
        font-weight: bold;
    }

    .top-about-msg {
        font-size: 1.2rem;
    }

    .top-about-btn {
        position: static;
        right: 0px;
        top: 50%;
        margin-top: 10px;
    }

    .top-about-body {
        padding-top: 0;
    }

}


.top-contact{
    display: block;
    padding: 130px 0;
    color:#fff !important;
    text-align: center;
    background-attachment: fixed;
}

.top-contact-ttl{
    font-size: 6rem;
    color:#fff;
    font-weight: 900;
}

.top-contact-ttl strong{
    letter-spacing: 0.15em;
    display: block;
}
.top-contact-ttl span{
    display: block;
    letter-spacing: 0.1em;
    font-size: 2.4rem;
}


@media screen and (max-width:1100px){

    .top-contact {
        padding: 40px 0;
    }

    .top-contact-ttl {
        font-size: 2.8rem;
    }

    .top-contact-ttl span {
        font-size: 1.4rem;
    }

    .top-contact-msg {
        font-size: 1.6rem;
    }

    .top-contact-ttl strong {
        line-height: 1.2;
    }

}


.top-category {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto 60px;
}


.top-category>li{
    margin:15px 15px 10px;
}
.top-category>li>a{
    display: block;
    padding: 5px 0.5em;
    background: #FF1E79;
    font-weight: bold;
    color:#fff;
    font-size: 2rem;
}

@media screen and (max-width:1100px){

    .top-category>li{
        margin:5px 10px 5px;
    }
    .top-category>li>a{
        font-size: 1.3rem;
        padding: 5px 0.5em;
    }

    .top-category {
        margin: 20px auto 20px;
    }

    .top-connect-msg {
        font-size: 1.8rem;
        margin-bottom: 20px;
    }

    .top-connect-wrap {
        margin-bottom: 40px;
    }
}

@media screen and (max-width:425px){
    .top-connect-msg {
        font-size: 4vw;
        margin-bottom: 20px;
        padding-left: 1em;
        padding-right: 1em;
    }
}

/*
下層ページ
*/

.lower .main-visual {
    position: relative;
    height: 300px;
    text-align: center;
}


.lower .main-container{
    padding: 100px 45px 45px;
}


.section-nav-wrap{
    position: relative;
    border-radius: 100px;
    overflow: hidden;
    z-index:    1;
    max-width: 810px;
    margin: 80px auto 100px;
}

.section-nav {
    position: relative;
    display: flex;
    height: 111px;
    justify-content: center;
    align-items: center;
    padding:  0 30px;
}

.section-nav-wrap .after{
    position: absolute;
    width: 100%;
    height: 100%;
    left:0;
    top:0;
    border-radius: 100px;
    background: linear-gradient(100deg, #FF1F76, #FF0FE0);
    overflow: hidden;
    z-index:  -1;
}



.section-nav>li{
    position: relative;
    width: 33.33%;
    padding-left: 10px;
}

.section-nav>li::after{
    content:"";
    position: absolute;
    top:50%;
    right:-10px;
    width: 7px;
    height: 7px;
    border-right:3px solid #ffffff;
    border-bottom:3px solid #ffffff;
    -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    pointer-events: none;
}

.section-nav>li:nth-child(3)::after{
    display: none;
}

.section-nav>li>a{
    display:block;
    padding: 50px 0;
    font-size: 2.7rem;
    letter-spacing: 0.15em;
    color:#fff;
    font-weight: bold;
    text-align: center;
}


.section-head{
    position: relative;
    overflow: hidden;
    margin-top: 10px;
}

.section-head .line{
    position: absolute;
    top:50%;
    left:0;
    width: calc( 100% - 180px );
    height: 1px;
    background: #CCCCCC;
    transform-origin: 0 100%;
}

.section-head-btn{
    position: absolute;
    right:0;
    top:10px;
    display: inline-block;
    background: #F5F5F5;
    padding:0  50px 0 20px;
    z-index:    10;
    font-weight:    bold;
}

.section-head-btn a{
    display: block;
}

.section-head-btn span{
    font-size: 1.4rem;
    color: #888888;
}


.section-head-btn i{
    position: absolute;
    right:0;
    top:0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
}

.section-head-btn i::after{
    content:"";
    position: absolute;
    top:50%;
    right:13px;
    width: 5px;
    height: 5px;
    border-right:2px solid #fff;
    border-bottom:2px solid #fff;
    -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
    transform: translate(0,-50%) rotate(-45deg) scale(1,1);
}

.section-head-ttl{
    position: relative;
    z-index:    2;
}

.section-head-ttl span{
    position: relative;
    display: inline-block;
    font-size:  2.8rem;
    background: #F5F5F5;
    padding-right: 1em;
    z-index:    2;
    font-weight:    800;
}


.section-ttl-wrap{
    margin-bottom: 30px;
}

.section-ttl {
    font-size: 2.1rem;
    font-weight: 800;
    margin-bottom: 0.4em;
}

.section-msg{
    margin-bottom: 2em;
    line-height: 2;
}

.section-msg2{
    line-height: 2;
    margin-top: 1em;
    margin-bottom: 2em;
}

.section-msg1{
    margin-bottom: 1em;
    line-height: 2;
}

.section-block.mgn{
    margin-top: -20px;
}

.section-body {
    position: relative;
    padding: 30px 30px 10px;
}

.section-box{
    margin-top: 15px;
}


/*strategy*/

.section-ttl-m{
    font-size: 1.8rem;
    font-weight: 800;
}

.section-img {
    margin: 50px 0 80px;
}

.section-list{
    margin-top: 1em;
    margin-bottom: 2em;
}

.section-list>li{
    position: relative;
    padding-left: 30px;
    margin-bottom: 0.5em;
}

.section-list>li::after{
    content:"";
    position: absolute;
    top:2px;
    left:0px;
    width: 22px;
    height: 22px;
    background-image: url(../img/check.png);
    background-repeat: no-repeat;
    background-position:  0
}


.section-child{
    padding: 10px 0 40px;
}

.section-child-msg {
   margin-top: 5px;
   margin-bottom: 10px;
}

.section-figure{
    margin-bottom: 50px;
}

.section-figure img{
    max-width: 1043px;
}


.section-dl{
    display: flex;
    margin-bottom: 20px;
}

.section-dl>dt{
    width: 206px;
    font-weight: bold;
    line-height: 2em;
}
.section-dl>dd{
    width: calc(100% - 206px);
    line-height: 2em;
}

.section-group {
    margin-bottom: 40px;
}

.section-tbl {
    margin-bottom: 40px;
}

.section-tbl tr th{
    text-align: left;
    width: 206px;
    font-weight: bold;
    line-height: 2em;
    font-size: 1.6rem;
    padding: 0.5em 0;
}

.section-tbl tr td{
    width: calc(100% - 206px);
    line-height: 2em;
    font-size: 1.6rem;
    padding: 0.5em 0;
}


@media screen and (max-width:   1100px){


    .section-ttl-m {
        font-size: 1.5rem;
    }


    .section-img {
        margin: 20px 0 8px;
    }

    .section-nav {
        height: 60px;
        padding: 0px 0px;
    }

    .section-nav>li>a {
        padding: 10px 0;
        font-size: 1rem;
    }

    .section-nav>li::after {
        content: "";
        position: absolute;
        top: 50%;
        right: -10px;
        width: 5px;
        height: 5px;
        border-right: 2px solid #ffffff;
        border-bottom: 2px solid #ffffff;
        -webkit-transform: translate(0,-50%) rotate(-45deg) scale(1,1);
        transform: translate(0,-50%) rotate(-45deg) scale(1,1);
        pointer-events: none;
    }

    .section-nav-wrap {
        margin: 25px auto 40px;
    }


    .section-head-ttl span {
        font-size: 2rem;
        padding-right: 0.3em;
    }

    .section-head {
        margin-top: 0px;
    }

    .section-head-btn span {
        font-size: 1rem;
    }

    .section-head-btn {
        top: 3px;
        padding: 0 30px 0 10px;
    }

    .section-head-btn i {
        width: 24px;
        height: 24px;
    }

    .section-head-btn i::after {
        right: 10px;
    }

    .section-nav>li>a {
        padding: 10px 0;
        font-size: 1.3rem;
    }

    .section-head .line {
        width: calc( 100% - 117px );
    }

    .section-ttl {
        font-size: 1.6rem;
    }

    .section-ttl-wrap{
        margin-bottom: 20px;
    }


    .section-body {
        position: relative;
        padding: 15px 0px 15px 0px;
    }

    .section-msg {
         margin-bottom: 1em;
    }

    .section-child{
        padding: 10px 0 10px;
    }

    .section-figure{
        margin-bottom: 20px;
    }


    .section-dl{
        display: block;
    }

    .section-dl>dt{
        width: 100%;
        font-size: 1.5rem;
        font-weight: bold;
        line-height: 2em;
    }
    .section-dl>dd{
        width:100%;
        line-height: 2em;
    }

    .section-group {
        margin-bottom: 30px;
    }


    .section-tbl {
        margin-bottom: 40px;
    }

    .section-tbl,
    .section-tbl tbody,
    .section-tbl tr,
    .section-tbl tr th,
    .section-tbl tr td{
        display: block;
        width: 100%;
    }

}








.main-head {
    position: relative;
    font-size: 5rem;
    color: #fff;
    display: inline-block;
    text-align: center;
    justify-content: center;
    margin: 0;
    padding: 0 1em 0;
}


.main-ttl{
    font-size: 4.6rem;
    font-weight: 800;
    margin-bottom: 25px;
}
.main-msg{
    margin-bottom: 40px;
}

.lower .main-visual {
    padding-top: 135px;

}




@media screen and (max-width:1100px){

    .main-ttl {
        font-size: 2.0rem;
        margin-bottom: 10px;
    }

    .lower .main-visual {
        padding-top: 90px;
    }

    .main-head {
        font-size: 2.8rem;
        margin-top: 0px;
        padding: 0px 0.5em 0;
    }

    .main-msg{
        font-size:  1.4rem;
    }

    .lower .main-container {
        padding: 20px;
    }

    .lower .main-visual {
        position: relative;
        height: 200px;
        text-align: center;
        margin: 0;
    }

    .main-msg{
        margin-bottom: 30px;
    }

}


.main-catch{
    font-size: 1.6rem;
}


.aside-ttl {
    margin-top: 9px;
    margin-bottom: 50px;
}

.aside-ttl strong{
    display: block;
    font-size: 5.4rem;
    line-height: 1.2;
}
.aside-ttl span{
    display: block;
    font-weight: 800;
    font-size: 2.1rem;
}

.aside-list{
    padding-left: 0.5em;
}

.aside-list>li{
    display: block;
    margin-bottom: 0.5em;
}

.aside-list>li.active{
    margin-left: -0.5em;
}

.aside-list>li>a {
    position: relative;
    display: inline-block;
    font-size: 1.4rem;
    font-weight: 800;
    padding-bottom: 0.2em;
}

.aside-list>li.active>a{
    background: #FF1E79;
    color:#fff;
    padding: 0.1em 0.6em;
}

.aside-list.clr2>li.active>a{
    background: #FF18A9;
}
.aside-list.clr3>li.active>a{
    background: #FF0EDF;
}

.aside-list>li.active>a::after{
    display: none;
}

.aside-list>li>a::after{
    position: absolute;
    content: "";
    left:0;
    bottom:0;
    width: 100%;
    height: 1px;
    background: #FF1E79;
}

.aside-list.clr2 >li>a::after {
    background: #FF18A9;
}

.aside-list.clr3 >li>a::after {
    background: #FF0EDF;
}


.aside-list.archive{
    margin-top: 50px;
}

@media screen and (max-width:   1280px){
    .aside-ttl strong {
        font-size: 4rem;
    }
}


@media screen and (max-width:   1100px){

    .aside-ttl strong {
        font-size: 2.8rem;
    }

    .aside-ttl span {
        font-size: 1.4rem;
    }

    .aside-ttl {
        margin-bottom: 10px;
    }

    .aside-list {
        margin-top: 20px;
        padding-left: 0.5em;
    }

    .aside-list.archive{
        margin-top: 0px;
    }

}


.row-container{
    display: flex;
    max-width: 1700px;
    margin: 0 auto;
}

.row-main{
    width: calc(100% - 412px);
}

.row-aside{
    width: 412px;
}
@media screen and (max-width:   1280px){

    .row-aside {
        width: 280px;
    }

    .row-main{
        width: calc(100% - 280px);
        padding-left: 30px;
    }


}

@media screen and (max-width:1100px){
    .row-container{
        display: block;
    }
    
    .row-main{
        width: 100%;
        padding-left: 0px;
    }

    .row-aside{
        width: 100%;
        margin-bottom: 40px;
    }

    #news .row-aside {
        width: 100%;
        margin-bottom: 20px;
    }


}



.border-block{
    display: flex;
    margin-top: 40px;
    justify-content: space-between;
}
.border-block-item{
    border:6px solid #DDDDDD;
    padding: 20px;
    width: 32%;
    background: #FFF;
}
.border-block-ttl{
    position: relative;
    display: flex;
    justify-content: center;
}

.border-block-ttl.clr3{
    color:#FF0EDF;
}

.border-block-ttl a{
    display: inline-block;
    position: relative;
    font-size: 2.1rem;
    margin-bottom: 0.5em;
    padding-bottom: 5px;
    font-weight: 800;
}


.border-block-ttl a::after{
    position: absolute;
    content: "";
    background: #FF1E79;
    left:0;
    bottom:0;
    width:100%;
    height: 1px;
}

.border-block-ttl a.clr2::after{
    background: #FF18A9;
}

.border-block-ttl a.clr3::after{
    background: #FF0EDF;
}

.border-block-msg {
    font-size: 1.3rem;
    margin-bottom: 20px;
    line-height: 2;
}

.border-block-lsit {
    padding-left: 7px;
}

.border-block-lsit>li{
    position: relative;
    padding-left: 1em;
    font-size: 1.3rem;
    font-weight: bold;
    margin-bottom: 0.5em;
}

.border-block-lsit>li::after{
    content:"";
    position: absolute;
    top:7px;
    left:0px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #FF1E79;
}


@media screen and (max-width:1280px){

    .border-block-ttl span {
        font-size: 1.8rem;
    }

}

@media screen and (max-width:1100px){


    .border-block-msg {
        font-size: 1.2rem;
        margin-bottom: 10px;
    }


    .border-block {
        display: block;
        margin-bottom: 10px;
    }

    .border-block-item{
        width: 100%;
        margin-bottom: 15px;
    }


    .border-block {
        margin-top: 20px;
    }

}




/*

ストラテジー

*/

.operation-block1{
    margin-bottom: 50px;
}


.section-icon{
    margin-top: 50px;
}

.section-icon-tr{
    display: flex;
    margin-bottom: 20px;
}

.section-icon-th{
    width: 77px;
}

.section-icon-td{
    width: calc(100% - 77px);
}

.section-icon-ttl{
    font-size: 1.8rem;
    line-height: 1em;
    margin-bottom: 1em;
    font-weight: 900;
}


.section-icon-msg{
    line-height: 2;
}

@media screen and (max-width:1024px){

    .section-icon-ttl{
        font-size: 1.6rem;
    }

    .section-icon-tr {
        margin-bottom: 25px;
    }

}



.planning-dl{
    margin-bottom: 40px;
}

.planning-dl-caption{
    margin-bottom: 10px;
}

.planning-dl dl{
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}
.planning-dl dl>dt{
    width: 182px;
    padding: 7px 20px;
    border-radius: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    background: #FF1E79;
}
.planning-dl dl>dt strong{
    font-size: 2rem;
}
.planning-dl dl>dt span{
    font-size: 1.6rem;
}
.planning-dl dl>dd{
    width: calc(100% - 182px);
    font-size: 1.6rem;
    padding-left: 20px;
}

@media screen and (max-width:1100px){

    .planning-dl dl{
        display:block;
    }
     .planning-dl dl>dt{
        margin-bottom: 10px;
     }

    .planning-dl dl>dt strong {
        font-size: 1.8rem;
    }

    .planning-dl dl>dt span {
        font-size: 1.4rem;
    }

    .planning-dl dl>dd{
        width: 100%;
        padding-left: 0;
    }
}


/*
.faq
*/
.faq{}
.faq-block{}
.faq-list>li{
    margin-bottom: 20px;
}
.faq-list-q{
    position: relative;
    font-size: 2.1rem;
    padding:20px 5px 20px 35px;
    border-bottom: 1px solid #DDDDDD;
    font-weight: 900;
}

.faq-list-q em{
    position: absolute;
    color:#FF1E79;
    left:5px;
    top:18px;
}

.faq-list-a{
    padding:15px 20px;
}

@media screen and (max-width:1100px){
    .faq-list{
        margin-top: -20px;
    }
    .faq-list>li{
        margin-bottom: 0px;
    }

    .faq-list-q {
        font-size: 1.6rem;
        padding: 15px 5px 15px 30px;
    }

    .faq-list-q em {
        left: 0px;
        top: 13px;
    }

    .faq-list-a {
        padding: 15px 0px;
    }

}

/*
news
*/
.news-list>article{
    position: relative;
    border-bottom: 1px solid #DDDDDD;
}


.news-list>article a[href="#"] {
    pointer-events: none;
}
.news-list>article a[href="#"]:hover {
    opacity: 1;
}

.news-list-link{
    display: flex;
    font-size: 1.6rem;
    padding:25px 100px 25px 0;
}

.news-list-link>time{
    width: 134px;
    font-weight: bold;
}

.news-list-link>p{
    width: calc(100% - 134px);
}


.news-list-cat {
    position: absolute;
    display: block;
    top: 22px;
    right: 0;
    width: 101px;
    height: 27px;
    line-height: 25px;
    text-align: center;
    color: #FF1E79;
    border: 1px solid #FF1E79;
    border-radius: 20px;
    font-size: 1.1rem;
    font-weight: bold;
}


.article-detail-teikei{
    display: flex;
    margin-bottom: 10px;
}
.article-detail-teikei time{
    font-size:1.6rem;
    color:#FF1E79;
    font-weight: bold;
    font-family: 'Montserrat', sans-serif; letter-spacing: 0.1em;
    margin-right: 10px;
}


.article-detail-teikei .news-list-cat {
    position: static;
    margin-top: -3px;
}

.article-detail-ttl{
    font-size: 2.4rem;
    font-weight: 800;
}


@media screen and (max-width:1100px){

    .article-detail-teikei time{
        font-size:1.3rem;
    }

    .news-list-cat {
        top: 16px;
        left: 130px;
        right: auto;
    }

    .news-list-link {
        display: block;
    }
    .news-list-link>time {
        width: 100%;
        font-size: 1.3rem;
    }

    .news-list-link {
        font-size: 1.6rem;
        padding: 15px 15px 15px 15px;
    }

    .news-list-link>p {
        width: 100%;
        margin-top: 10px;
        font-size: 1.3rem;
    }

    #news .aside-list {
        display: flex;
        flex-wrap: wrap;
        line-height: 1.3;
    }

    #news .aside-list>li{
        margin-right: 1em;
    }
    #news .aside-list>li>a{
        font-size: 1.1rem;
    }

    .news-list-cat {
        top: 17px;
        left: 110px;
        width: 100px;
        right: auto;
        height: 22px;
        line-height: 20px;
    }
}


/*
article-detail
*/
.article-detail-tag{
    position: relative;
    display: inline-block;
    font-size: 1.2rem;
    width: 90px;
    height: 20px;
    line-height: 20px;
    /*margin-left: 19px;*/
    white-space: nowrap;
    text-align: center;
    background: #0085B2;
    color: #fff;
    margin-top: -1px;
}

.article-detail-info{
    display: flex;
    /*margin-bottom: 15px;*/
}
.article-detail-teikei{
    text-align: right;
    margin-bottom: 0.5em;
    margin-right: 1em;
}
.article-detail-teikei h2{
    font-weight: 300;
}
.article-detail-time{
    font-size: 1.4rem;
}

.article-detail-ttl {
    font-size: 2.6rem;
    margin-bottom: 30px;
}

.article-detail{
        line-height: 2em;
}
.article-detail img{
    max-width: unset;
    width:100%;
}

.article-detail .block{
    margin: 2em 0;
}
.article-detail-txt{
    font-size: 1.6rem;
}
.sup,
.article-detail-ttl>sup,
.article-detail sup{
    font-size: 1.2rem;
    vertical-align :super;
}


.article-detail h1,
.article-detail h2,
.article-detail h3,
.article-detail h4,
.article-detail h5{
    line-height: 1.3;
    font-weight: 800;
    margin-bottom: 0.8em;
}


.article-detail-single-img {
    padding: 0px 10px;
    margin: 40px 0;
    text-align: center;
}


.article-detail-single-img img{
    width: auto;
    max-width: 100%;
}

.article-detail-item {
    font-size: 1.6rem;
    margin-bottom: 25px;
}


.article-detail-ttl-l{
    font-size: 2.6rem;
    margin-bottom: 0.7em;
}

.article-detail-ttl-m{
    font-size: 2rem;
    margin-bottom: 0.7em;
    color:#FF1E79;
    font-weight: 800;
}

.article-detail-ttl-s{
    margin-bottom: 0.4em;
    font-size: 1.6rem;
}


.article-detail-tbl {
    width: 100%;
    margin: 10px 0 10px;
}


.article-detail-tbl>thead>tr>th{
    border:1px solid #BBBBBB;
    background: #EEEEEE;
    padding: 0.8em 1em;
    text-align: center;
}



.article-detail-tbl>thead>tr>td{
    border:1px solid #BBBBBB;
    background: #EEEEEE;
    padding: 0.8em 2em;
    text-align: center;
    vertical-align: middle;
}

.article-detail-tbl tr>th{
    padding: 0.8em 1em;
    text-align: left;
    border:1px solid #BBBBBB;
    vertical-align: middle;
    text-align: center;
    font-weight: bold;
    background: #EEEEEE;
}


.article-detail-tbl tr>td {
    padding: 0.8em 1em;
    text-align: left;
    border: 1px solid #BBBBBB;
    vertical-align: middle;
}

.article-detail-tbl.type2 tr>th{
    width:350px;
    background: #fff;
    text-align: left;
}

 .article-detail-note {
    margin-top: 0px;
    margin-bottom: 25px;
    font-size: 1.6rem;
}

 .article-detail-note>li{
    position: relative;
    padding-left: 1.5em;
}

 .article-detail-note>li::after{
    content:"※";
    position: absolute;
    display: block;
    width: 1em;
    height: 1em;
    top:0;
    left:0;
}

.article-detail-list{
    margin-bottom: 30px;
}

.article-detail-list>li{
    position: relative;
    padding-left: 1em;
}

.article-detail-list>li::after{
    content:"・";
    position: absolute;
    display: block;
    width: 1em;
    height: 1em;
    top:0;
    left:0;
}


.article-detail-ast>li{
    position: relative;
    padding-left: 2em;
    list-style-type: none;
    margin-left: 0;
    counter-increment: number;
    font-size: 1.3rem;
}

.article-detail-ast>li::after {
    position: absolute;
    display: block;
    width: auto;
    height: 1em;
    top: 0px;
    left: 0.5em;
    content: counter(number);
}


.article-detail-ast>li::before{
    content:"*";
    left:0;
    position: absolute;
    display: block;
    width: 1em;
    height: 1em;
    top:0;
    left:0;
}



.article-detail-ast>li>i>sup{
    text-align:top;
    font-size: 1.6rem;
}


.article-detail-link-box{
    margin: 20px 0;
    font-size: 1.3rem;
}


.article-detail-link{
    display: inline-block;
    text-decoration: underline;
    color: #00468C;
}


.article-detail  figcaption{
    display: block;
    padding: 5px 0;
    font-size: 1.3rem;
    text-align: center;
}


.article-detail-two-img,
.article-detail-three-img{
    display: flex;
    justify-content:center;
    margin-bottom: 40px;
    text-align: center;
}


.article-detail-two-img {
    max-width: 1083px;
    margin: 0 auto 40px;
    padding: 0 10px;
    justify-content: space-between;
}


.article-detail-two-img>figure{
    max-width:500px;
    width: 49%;
    text-align: center;
}

.article-detail-three-img{
    padding: 0 10px;
}

.article-detail-three-img>figure{
    margin-right: 3.6%;
    width: 30.93%;
}

.article-detail-three-img>figure:nth-child(3n){
    margin-right: 0
}


.article-detail-three-img>figure{
    width:32%;
    text-align: center;
}

.article-detail-two-img figcaption,
.article-detail-three-img figcaption{
    text-align: left;
    font-size: 1.6rem;
}

.article-detail-two-img figure img,
.article-detail-three-img figure img{
    width: auto;
    max-width: 100%;
}




.article-detail-four-img{
    display: flex;
    flex-wrap:wrap;
    margin-bottom: 30px;
}

.article-detail-four-img>figure{
    width: 23.5%;
    margin-right: 2%;
}

.article-detail-four-img>figure:nth-child(4n){
    margin-right: 0;
}
.article-detail-four-img>figure>figcaption{
    text-align: left;
}



.article-detail-block{
    overflow:hidden;
    line-height: 1.6;
    margin: 20px 0px 40px;
}
.article-detail-block .article-detail-ttl-m{
    color: #000;
    font-size: 1.6rem;
}
.article-detail-block.left figure{
    width: 47%;
    margin-right: 30px;
    margin-bottom: 10px;
    float:left;
    text-align: center;
}

.article-detail-block.right figure{
    width: 47%;
    margin-left: 30px;
    margin-bottom: 10px;
    float:right;
    text-align: center;
}

.article-detail-block.left figure img,
.article-detail-block.right figure img{
    width: auto;
    max-width: 100%;
}



.article-detail-clear .article-detail-block{
    display: flex;
    width: 100%;
}

.article-detail-clear .article-detail-block.right{
    flex-direction: row-reverse;
}


.tips-detail-block-msg{
    line-height: 2;
}


.article-detail-clear .article-detail-block.right figure,
.article-detail-clear .article-detail-block.left figure{
    float: none;
}

.article-detail-clear .article-detail-block.right figure img,
.article-detail-clear .article-detail-block.left figure img{
    width: auto;
}

.article-detail-clear .article-detail-txt{
     width: 75%;
}



.article-detail-block figure{
    margin-bottom: 15px;
}

.article-detail-block figcaption{
    font-size: 1.3rem;
    text-align: left;
}



.article-detail-contact{
    border:4px solid #CCCCCC;
    padding: 20px;
    font-size: 1.6rem;
    margin: 50px 0;
}

.article-detail-contact-ttl{
    margin-bottom: 15px;
}

.article-detail-contact-msg{
    font-size: 1.6rem;
}

.article-detail-contact-link{
    color:#00468C;
    text-decoration: underline;
}


.article-detail-caution ul>li{
    display: flex;
    font-size: 1.3rem;
}
.article-detail-caution ul>li>i{
    white-space: nowrap;
    display: block;
    margin-right: 0.4em;
}

.article-detail-dl{
    text-align: center;
}
.article-detail-btn {
    display: inline-block;
    height: 55px;
    line-height: 55px;
    min-width: 280px;
    padding: 0 30px;
    margin: 0 auto;
    background: #000000;
    color:#fff;
    text-align: center;
    font-size: 1.6rem;
    margin: 0 auto;
    font-weight: bold;
}


.article-detail-link{
    position: relative;
    display: inline-block;
    text-align: center;
    font-weight: bold;
}

.article-detail-link-smaple {
    display: flex;
    margin-top: 15px;
    margin-bottom: 50px;
    justify-content: center;
    align-items: center;
}

.article-detail-link-smaple>div{
    font-weight: bold;
    padding-right: 15px;
}


.article-detail small{
    font-size: 1.3rem;
}

.article-detail .link{
    color:#FF1E79;
    font-weight: 800;
    text-decoration: underline;
}




    @media screen and (max-width:1100px){

        .article-detail-ttl {
            font-size: 1.8rem;
        }

        .article-detail-tag {
            width: 90px;
            height: 20px;
            line-height: 20px;
            margin-left: 0px;
            margin-top: 0px;
        }

        .article-detail-item {
            font-size: 1.3rem;
            margin-bottom: 20px;
        }

        .article-detail-single-img {
            padding: 0;
            margin: 20px 0;
            text-align: center;
        }

        .article-detail-two-img {
            padding: 0;
            margin: 20px 0;
            text-align: center;
        }

        .article-detail-three-img {
            padding: 0px;
        }


        .article-detail-two-img figcaption,
        .article-detail-three-img figcaption {
            text-align: left;
            font-size: 1.1rem;
        }



       .article-detail-ttl-l{
            font-size: 1.8rem;
            margin-bottom: 0.5em;
        }

       .article-detail-ttl-m{
            font-size: 1.6rem;
            margin-bottom: 0.5em;
        }

       .article-detail-ttl-s{
            margin-bottom: 0.4em;
            font-size: 1.4rem;
        }


        .article-detail-btn {
            min-width: 245px;
            padding: 20px 20px;
            font-size: 1.2rem;
            line-height: 1.6em;
            height:auto;
        }

            .article-detail-tbl-wrap{
                overflow-x:auto;
            margin-bottom: 30px;
        }


        .article-detail-tbl {
            width: 100%;
            margin: 10px 0 20px;
            font-size: 1.1rem;
        }

        .article-detail-tbl>thead>tr>th {
            white-space: nowrap;
        }

        .article-detail-tbl>tbody>tr>th {
            padding: 0.8em;
            text-align: left;
            white-space: nowrap;
        }
        .article-detail-tbl>tbody>tr>td {
            padding: 0.8em;
            text-align: left;
            white-space: nowrap;
        }

        .article-detail-contact {
            padding: 15px;
            font-size: 1.3rem;
            margin: 30px 0;
        }

        .article-detail-caution ul>li {
            display: flex;
            font-size: 1rem;
        }

        .article-detail-ast,
        .article-detail-note {
            margin-top: 20px;
            margin-bottom: 20px;
        }

        .article-detail-ast>li,
        .article-detail-note>li {
            position: relative;
            font-size: 1.3rem;
        }

        .article-detail-ast>li>i>sup{
            font-size: 1.3rem;
        }

        .article-detail-two-img,
        .article-detail-three-img {
            margin-bottom: 20px;
        }

        .article-detail-block {
            margin-top: 20px;
            margin-bottom: 20px;
        }

        .article-detail-block.left figure{
            margin-right: 15px;
        }

        .article-detail-block.right figure{
            margin-left: 15px;
        }


        .article-detail-clear .article-detail-block{
            display: block;
            width: 100%;
        }

        .article-detail-clear .article-detail-block.left,
        .article-detail-clear .article-detail-block.right{
            display: block;
            width: 100%;
            padding: 0;
            margin-right: 0;
            margin-left: 0;
            margin-bottom: 20px;
        }


        .article-detail-clear .article-detail-block.left figure,
        .article-detail-clear .article-detail-block.right figure {
            width:auto;
            margin-right: 0;
            margin-left: 0;
            text-align: center;
            margin-bottom: 20px;
        }

        .article-detail-clear .article-detail-img,
        .article-detail-clear .article-detail-txt {
            width: 100%;
        }

        .article-detail-tbl.type2{
            width: 100%;        
        }
        .article-detail-tbl.type2 tr>td,
        .article-detail-tbl.type2 tr>th{
            width:50%;
            white-space: normal;
            background: #fff;
        }


    }

#works .top-works-list .wrapper{
  display: flex;
  flex-wrap: wrap;
}
#works .top-works-list .wrapper .box{
  width: 32%;
  padding: 30px;
}

#works .top-works-list .wrapper .box:not(:nth-child(3n+3)) {
  margin-right: 2%;
}

#works .top-works-list .wrapper .box:nth-child(n+4) {
  margin-bottom: 30px;
}

@media screen and (max-width:1100px){
  #works .top-works-list .wrapper .box{
    padding: 15px;
  }

}

@media not all and (min-width: 768px) {
  #works .top-works-list .wrapper .box {
    width: 100%;
    padding: 0 30px 20px;
  }

   #works .top-works-list .wrapper .box .move_up{
    transition-delay: 0 !important;
   }

  #works .top-works-list .wrapper .box .image img {
    width: 100%;
  }
  #works .top-works-list .wrapper .box:not(:nth-child(3n+3)) {
    margin-right: 0;
  }

}

#about_us .section-body{
    padding-top: 15px;
}

#about_us .section-body.mgn0 {
    padding-top: 0;
}

.map{
    position: relative;
}

.map iframe{
    width: 100%;
    height: 460px;
}


@media screen and (max-width:1100px){
    .map{
        position: relative;
        padding-top:39%;
    }

    .map-block{
        position: absolute;
        left:0;
        top:0;
        width: 100%;
        height: 100%;
    }

    .map iframe{
        position: absolute;
        left:0;
        top:0;
        width: 100%;
        height: 100%;
    }

    #about_us .section-body {
        padding-top: 0px;
    }

}


#flow .section-block2{
    margin-bottom: 80px;

}



.flow-block-ttl{
    height: 102px;
    line-height: 102px;
    text-align: center;
    color:#fff;
    background: #FF1E79;
    font-size: 2.6rem;
    border-radius: 0.4em;
    margin-bottom: 0.6em;
}

.flow-block-ttl.white{
    background: #fff;
    color: #FF1E79;
    line-height: 96px;
    border:4px solid #FF1E79;
}


.flow-group{
    padding: 20px;
    margin-bottom: 20px;
}

.flow-group:last-of-type{
    margin-bottom: 0px;
}

.flow-box-ttl{
    font-size: 2.1rem;
    margin-bottom: 0.5em;
}

.flow-box-msg{
    line-height: 1.7;
}


.flow-box-small{
    font-size: 1.4rem;
    line-height: 1.7;
}

.flow-box-small.gray{
    color:#999999;
}

.flow-box{
    margin-bottom: 20px;
}

.flow-item{
    margin-bottom: 20px;
}

@media screen and (max-width:1100px){

    .flow-group{
        padding: 10px;
        margin-bottom: 20px;
    }

    .flow-box-ttl {
        font-size:1.6rem;
        margin-bottom: 0.5em;
    }

    .flow-box-small{
        font-size: 1.3rem;
    }


    #flow .section-block1 {
        margin-top: -30px;
    }

    #flow .section-block2 {
        margin-bottom: 40px;
        margin-top: -40px;
    }

    .flow-block-ttl{
        height: 60px;
        line-height: 60px;
        font-size: 1.8rem;
        border-radius: 0.4em;
        margin-bottom: 0.6em;
    }

    .flow-block-ttl.white{
        background: #fff;
        color: #FF1E79;
        line-height: 52px;
        border:3px solid #FF1E79;
    }

}



/*
問い合わせ
*/
/*リセット*/
#contact input,
#contact textarea,
#contact button,
#contact select{
    width: 100%;
    appearance: none;
    margin: 0;
    padding: 0;
    border-radius: none;
    border-radius: 0;
    border:none;
    border:0;
    outline: none;
    box-shadow: none;
    font-size: 1.6rem;
}



#contact input{
    width: 433px;
    height: 40px;
    background: #EEEEEE;
    padding-left: 1em;
}
#contact textarea{
    width:100%;
    height: 226px;
    background: #EEEEEE;
    padding-left: 1em;
}

#contact .select-label1{
    width: 389px;
    height: 40px;
    padding-left: 0em;
}

#contact select{
    width: 100%;
    height: 40px;
    padding-left: 1em;
    background: transparent;
}

#contact .select-label1,
#contact .select-label2{
    display: inline-block;
    position: relative;
    background: #EEEEEE;
    width: 100%;
    max-width: 306px;
    cursor: pointer;
}

#contact .select-label2{
    width:160px ;
}


#contact .select-label1::before,
#contact .select-label2::before {
    position: absolute;
    top: 18px;
    right: 0.9em;
    width: 0;
    height: 0;
    padding: 0;
    content: '';
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000000;
    pointer-events: none;
}


#contact sup{
    padding: 0 0.5em;
    color:#FF1E79;
}

#contact small{
    display: block;
    padding: 0.2em 0;
    font-size: 1.2rem;
}
#contact small.mail-msg{
    padding-top: 15px;
}

#contact .contact-caption{
    margin-bottom: 20px;
}

#contact .contact-tbl {
    margin-bottom: 40px;
    border-collapse: collapse;
}

#contact .contact-tbl tr{
   border-bottom: 1px solid #DDDDDD;
}

#contact .contact-tbl tr th{
    text-align: left;
    width: 280px;
    white-space: nowrap;
    line-height: 2em;
    font-size: 1.6rem;
    padding: 25px 0;
    font-weight: normal;
    vertical-align: top;
}

#contact .contact-tbl tr td{
    line-height: 2em;
    font-size: 1.6rem;
    padding: 22px 50px 22px 0;
}
#contact .contact-btn-wrap{
    margin-bottom: 50px;
}

#contact button.contact-btn {
    display: block;
    width: 370px;
    height: 60px;
    text-align: center;
    line-height: 60px;
    font-size: 2.1rem;
    font-weight: bold;
    border-radius: 40px;
    color: #fff !important;
    margin: 0 auto;
}

#contact .contact-block-msg{
    margin-bottom: 30px;
}

#contact .contact-note{
    font-size: 1.4rem;
}

#contact .errMsg2 p {
    display: inline-block;
    position: relative;
    font-weight: bold;
    color: #DF1C13 !important;
    padding-left: 0px;
}

@media screen and (max-width:1100px){

    #contact button.contact-btn {
        max-width: 370px;
        width: 100%;
    }


    #contact .contact-tbl,
    #contact .contact-tbl tbody,
    #contact .contact-tbl tr,
    #contact .contact-tbl tr th,
    #contact .contact-tbl tr td{
        display: block;
        padding-bottom: 0;
    }
    #contact .contact-tbl tr th{
        padding-top: 10px;
    }
    #contact .contact-tbl tr td{
        padding: 5px 0 15px 0px;
    }

    #contact .contact-tbl tr{
        padding: 0 10px;
    }

    #contact input{
        width: 100%;
        height: 40px;
        background: #EEEEEE;
    }
    #contact .select-label1,
    #contact .select-label2{
        width: 100%;
    }

    #contact .contact-note{
        font-size: 1.2rem;
    }

}


/*チェックボックス*/
.check-group2 {
    display: -webkit-flex;
    display: flex;
    margin-bottom: 0;
    align-items: center;
    flex-wrap: wrap;
}

.check-group2 label{
    line-height: 17px;
    white-space: nowrap;
    vertical-align: middle;
    display: -webkit-flex;
    display: flex;
    align-items: center;
    padding-right: 20px;
    margin-bottom: 5px;
}

.check-group2 input{
    display: none;
}

.check-group2 span {
    position: relative;
    padding-left: 1.7em;
    line-height: 1.5em;
    display: block;
}

.check-group2 span::before{
    content: "";
    display: block;
    position: absolute;
    top: 2px;
    left: 0;
    width: 17px;
    height: 17px;
    position: absolute;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    border:1px solid #BBBBBB ;
    background: #fff;
}

.check-group2 input:checked + span::before{
    background: #DF1C13;
    border:1px solid #DF1C13 ;
}

.check-group2 input:checked + span::after {
    content: "";
    display: block;
    position: absolute;
    top: 5px;
    left: 2px;
    width: 11px;
    height: 6px;
    border-bottom: 3px solid #fff;
    border-left: 3px solid #fff;
    transform: rotate(-45deg);
}

@media screen and (max-width:1100px){
    .check-group2 label {
        margin-bottom: 10px;
    }

}

#contact .regist-btn{
    display: flex;
    justify-content: center;
    margin:30px 0;
}

#contact .regist-btn form{
    margin:0 20px;
}

#contact .regist-compelete{
    padding-bottom: 80px;
}

#contact .regist-compelete-msg {
    margin-bottom: 40px;
}

#contact .regist-compelete-msg strong{
    display: block;
}


#contact .regist-compelete-ttl{
    display:block;
    font-weight: bold;
    margin-top: -90px;
    margin-bottom: 30px;
    font-size: 2.4rem;
}
#contact .attention{
    margin-bottom: 40px;
}


@media screen and (max-width:1100px){
    #contact .regist-btn{
      display: block;
    }
    #contact .regist-btn form{
        margin:20px 0;
    }


    #contact .regist-compelete{
        padding-bottom: 30px;
    }

    #contact .regist-compelete-msg {
        margin-bottom: 30px;
    }

    #contact .regist-compelete-msg strong{
        display: block;
    }


    #contact .regist-compelete-ttl {
        display: block;
        font-weight: bold;
        margin-top: 0;
        margin-bottom: 0px;
        font-size: 2rem;
    }

    #contact .attention{
        margin-bottom: 30px;
    }


}








/*ページャー*/
.pager {
    letter-spacing: -0.5em;
    padding: 0;
    margin: 50px 0 80px;
    display: flex;
    justify-content: center;
}

.pager li{
    display: inline-block;
    margin: 0px;
    font-weight: normal;
    text-align: center;
    letter-spacing: normal;
    vertical-align: middle;
    font-weight: bold;
    margin: 0 5px;
    letter-spacing: 0.05em;
    font-family: 'Montserrat', sans-serif;
}

.pager li:first-child{border-right:none;}
.pager li:last-child{border-right:none;}
.pager li:nth-last-child(2){border-right: #152A87;}
.pager .first{}
.pager .prev{margin-right: 10px;}
.pager .next{margin-left: 10px;}
.pager .last{}

.pager span {
    display: block;
    width: 50px;
    height: 50px;
    line-height: 50px;
    font-weight: 300;
    border-radius: 50%;
    background: #FF1E79;
    color: #fff;
    font-weight: bold;
    box-shadow: 0 0 10px 2px rgba(0,0,0,0.3);
}
.pager a{
    position: relative;
    display: block;
    width: 100%;
    height: 50px;
    width: 50px;
    line-height: 50px;
    border-radius: 50%;
    background: #fff;
    color:#FF1E79;
    font-weight: bold;
    font-size: 2rem;
    box-shadow: 0 0 10px 2px rgba(0,0,0,0.3);
    transition: opacity 0.3s ease;
}
.pager a:hover{
    opacity: 0.6;
}


.pager .first a,.pager .first span,
.pager .prev span,
.pager .next span,
.pager .last a,.pager .last span{
    position: relative;
    background: transparent !important;
    text-indent: 200%;
    white-space: nowrap;
    overflow: hidden;
}

.pager .prev a::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 22px;
    margin-top: -4px;
    width: 7px;
    height: 7px;
    border-left: 2px solid #FF1E79;
    border-bottom: 2px solid #FF1E79;
    transform: rotate(45deg);
}
.pager .next a::after{
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    margin-top: -4px;
    width: 7px;
    height: 7px;
    border-right: 2px solid #FF1E79;
    border-bottom: 2px solid #FF1E79;
    transform: rotate(-45deg);
}

@media screen and (max-width:1100px){
    .pager{
        margin: 20px 0 40px;
    }

    .pager span {
        width: 30px;
        height: 30px;
        line-height: 30px;
        font-size: 1.4rem;
    }

    .pager a{
        width: 30px;
        height: 30px;
        line-height: 30px;
        font-size: 1.4rem;
    }

}


.privacy-block{
  margin-bottom: calc(25px + 2vw);
}

.privacy-wrap{
  max-width: 1100px;
  margin: 0 auto;
}



/*
アニメーション
*/

/*delay*/
.dt_2{ transition-delay: 0.2s !important; }
.dt_3{ transition-delay: 0.3s !important; }
.dt_4{ transition-delay: 0.4s !important; }
.dt_5{ transition-delay: 0.5s !important; }
.dt_6{ transition-delay: 0.6s !important; }
.dt_7{ transition-delay: 0.7s !important; }
.dt_8{ transition-delay: 0.8s !important; }
.dt_9{ transition-delay: 0.9s !important; }
.dt_10{ transition-delay: 1.0s !important; }
.dt_12{ transition-delay: 1.2s !important; }
.dt_15{ transition-delay: 1.5s !important; }
.dt_16{ transition-delay: 1.6s !important; }
.dt_18{ transition-delay: 1.8s !important; }


/*from*/
.init{
  opacity: 0;
  transition-duration: 1s;
  -webkit-transition-duration: 1s;
  transition-property: opacity transform;
  transition-timing-function: ease;
}


/*to*/
.main-container-top.animated .init,
.main-visual.animated .init,
.scl.animated .init{
  opacity: 1;
  transform: translate(0,0) scale(1,1) rotate(0);
  transition-property:opacity transform;
  transition-timing-function: ease;
}


/*from*/
.init.move_up,
a.init.move_up{
  opacity:0;
  transform: translate(0,10%);
  transition-property: opacity transform;
  transition-timing-function: cubic-bezier(0.24, 1.00, 0.33, 1.00);
}

/*to*/
.scl.animated .init.move_up,
.scl.animated a.init.move_up{
  opacity: 1;
  transition-duration:0.7s;
  transform: translate(0,0) scale(1,1);
}

.init.move_right{
  opacity:0;
  -webkit-transform: translate(-40px,);
  transform: translate(-40px,0);
  transition-duration: 1s;
  transition-timing-function: cubic-bezier(0.24, 1.00, 0.33, 1.00);
}


.init.rotate{
  opacity:0;
  transform: translate(0,0) scale(1,1) rotateY(90deg);
  transition-duration: 1.2s;
  transition-timing-function: cubic-bezier(0.24, 1.00, 0.33, 1.00);
}


.init.line-right{
  opacity: 1;
  transform: translate(0,0) scale(1,1) rotateY(90deg);
  transition-duration: 1.2s;
  transition-timing-function: linear;
}



.init.blur{
  opacity:0;
  filter:blur(8px);
  -webkit-transform: translate(0,30px);
  transform: translate(0,30px);
  transition-property: opacity transform filter;
  -webkit-transition-property: opacity transform filter;
  transition-timing-function: cubic-bezier(0.24, 1.00, 0.33, 1.00);
  -webkit-transition-timing-function:cubic-bezier(0.24, 1.00, 0.33, 1.00);
}

.scl.animated .init.blur{
  transition-duration:0.8s;
  filter:blur(0px);
}

.init.blur2{
  opacity:0;
  filter:blur(5px);
  transform: translate(0,0px);
  transition-property: opacity transform filter;
  transition-timing-function: cubic-bezier(0.24, 1.00, 0.33, 1.00);
}

.scl.animated .init.blur2{
  transition-duration:0.8s;
  filter:blur(0px);
}


