@charset "UTF-8";
abbr,address,article,aside,audio,b,blockquote,body,button,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,input,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,textarea,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;font-weight:inherit;font-style:normal;vertical-align:baseline}
body{-webkit-text-size-adjust:100%;line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#ff9;color:#000}mark{font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}input,select{vertical-align:middle}a{color:inherit;text-decoration:none;outline:0}img{-ms-interpolation-mode:bicubic}::selection{background:#000;color:#fff}::-moz-selection{background:#000;color:#fff}*{-webkit-box-sizing:border-box;box-sizing:border-box}html{position:relative;overflow-x:hidden}
body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  font-size: 16px;
  font-family: "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "Open Sans", YuGothic, "Hiragino Kaku Gothic Pro", "Meiryo", sans-serif;
  line-height: 1.5;
  letter-spacing: .02rem;
  color: #008CD2;
  background-color: #fff;
  position: relative;
  overflow-x: hidden;
}
@media all and (-ms-high-contrast:none) {
	body {
		font-family: "メイリオ",Meiryo,"游ゴシック",YuGothic,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	}
}
img,
svg {
  width: 100%;
  height: auto;
}
img,
svg {
  margin: 0;
  padding: 0;
  vertical-align: bottom;
}
ul {
  letter-spacing: -.4em;
}
ul li {
  letter-spacing: normal;
}
ul li .li-in {
  letter-spacing: .1em;
}
h1 {
  display: none !important;
}
.kozuka{
  font-family: '小塚ゴシック Pro','Kozuka Gothic Pro',sans-serif;
  font-weight: 400;
}
.en_aktiv{
  font-family: aktiv-grotesk-extended, sans-serif;
  font-weight: 700;
  font-style: normal;
}

.secinner {
  position: relative;
  z-index: 0;
  max-width: 1230px;
  width: 100%;
  margin: auto;
  padding: 0 15px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.secinner.w1100 {
  max-width: 1140px;
}
.secinner.w700 {
  max-width: 720px;
}
.anker_link{
  padding-top: 64px;
  margin-top: -64px;
}
@media screen and (max-width:768px){
  .secinner{
    padding: 0 23px;
  }
  .anker_link{
    padding-top: 50px;
    margin-top: -50px;
  }
}

/********************
  header
********************/
.header{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 64px;
  z-index: 200;
}
.header_box{
  height: 64px;
  border-bottom: 2px solid #fff;
  box-sizing: border-box;
}
.head_logo_area{
  width: 150px;
  margin: 0 0 0 20px;
  box-sizing: border-box;
}
.head_logo_area path{
  fill: #fff;
}
.header nav ul li{
  padding-right: 50px;
}
.contact_btn{
  background: #fff;
  padding: 20px 30px;
}
/* sp_btn */
#menu-btn {
  cursor: pointer;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 9;
  width: 64px;
  height: 64px;
  background-color: #fff;
  -webkit-transition: background-color .6s;
          transition: background-color .6s;
  z-index: 310;
}
#menu-btn > div {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 30px;
  height: 24px;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
#menu-btn span {
  display: inline-block;
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #008cd2;
  -webkit-transition: all .4s;
  transition: all .4s;
}
#menu-btn span:nth-of-type(1) {
  top: 0;
}
#menu-btn span:nth-of-type(2) {
  top: 11px;
}
#menu-btn span:nth-of-type(3) {
  bottom: 0;
}
#menu-btn.on span:nth-of-type(1) {
  -webkit-transform: translateY(11px) rotate(-315deg);
          transform: translateY(11px) rotate(-315deg);
}
#menu-btn.on span:nth-of-type(2) {
  opacity: 0;
}
#menu-btn.on span:nth-of-type(3) {
  -webkit-transform: translateY(-11px) rotate(315deg);
          transform: translateY(-11px) rotate(315deg);
}
nav#global {
  position: fixed;
  top: 0;
  right: 100%;
  z-index: 8;
  width: 100%;
  height: 100%;
  padding: 60px 0 0;
  background: rgba(0, 90, 170, 0.8);
  z-index: 300;
}

nav#global a {
  position: relative;
  top: 50px;
  text-align: center;
  margin: 10px auto 0;
  padding: 10px 20px;
  display: block;
  font-size: 16px;
  font-weight: 400;
  opacity: 0;
  -webkit-transition: all .6s;
  transition: all .6s;
  font-weight: bold;
}

nav#global a.on {
  top: 0;
  opacity: 1;
}

nav#global.on {
  -webkit-animation-name: menuOnStart,menuOnEnd;
          animation-name: menuOnStart,menuOnEnd;
  -webkit-animation-duration: .6s,.6s;
          animation-duration: .6s,.6s;
  -webkit-animation-timing-function: cubic-bezier(0.86, 0, 0.07, 1), cubic-bezier(0.86, 0, 0.07, 1);
          animation-timing-function: cubic-bezier(0.86, 0, 0.07, 1), cubic-bezier(0.86, 0, 0.07, 1);
  -webkit-animation-delay: 0s,.6s;
          animation-delay: 0s,.6s;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}

nav#global.off {
  -webkit-animation-name: menuOffStart, menuOffEnd;
          animation-name: menuOffStart, menuOffEnd;
  -webkit-animation-duration: .6s,.6s;
          animation-duration: .6s,.6s;
  -webkit-animation-timing-function: cubic-bezier(0.86, 0, 0.07, 1), cubic-bezier(0.86, 0, 0.07, 1);
          animation-timing-function: cubic-bezier(0.86, 0, 0.07, 1), cubic-bezier(0.86, 0, 0.07, 1);
  -webkit-animation-delay: 0s,.6s;
          animation-delay: 0s,.6s;
  -webkit-animation-direction: alternate;
          animation-direction: alternate;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}
/* mainvisual */
.mainvisual{
  width: 100%;
  height: 570px;
  margin-top: 64px;
  background: url(../img/top/mv_bg01.svg) no-repeat;
  background-size: 87%;
  background-position: center;
  overflow: hidden;
}
.mainvisual_box{
  max-width: 1150px;
  width: 100%;
  margin: 0 auto;
  top: 50%;
  transform: translateY(-50%);
}
.mv_box{
  max-width: 1150px;
  width: 100%;
  height: 570px;
  margin: 0 auto;
}
.mv_copy{
  position: absolute;
  top: 33%;
  left: 0;
  right: 0;
  margin: 0 auto;
  text-align: center;
  font-size: 114px;
  line-height: 1;
  letter-spacing: 0px;
}
.mv_txt01{
  position: absolute;
  left: 240px;
  bottom: 188px;
}
.mv_img01{
  position: absolute;
  width: 332px;
  right: 31px;
  bottom: 0;
}
.sp_navi_bottom .logo_area{
  width: 148px;
  margin: auto;
}
.sp_navi_bottom {
  bottom: 20px;
  left: 0;
  right: 0;
}
.mv_txt_area .hidden {
    line-height: 1;
    overflow: hidden;
    display: inline-block;
}
.mv_txt_slide{
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transition: all 1s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  transition: all 1s cubic-bezier(0.215, 0.61, 0.355, 1) 0s;
  -webkit-transition-property: opacity, -webkit-transform, -webkit-filter;
  transition-property: opacity, -webkit-transform, -webkit-filter;
  transition-property: transform, opacity, filter;
  transition-property: transform, opacity, filter, -webkit-transform, -webkit-filter;
  -webkit-transform: translateY(8rem);
  transform: translateY(8rem);
  display: inline-block;
  opacity: 0;
  line-height: 0;
}
.mv_txt_slide.delay1{
  transition-delay: 0.1s;
}
.mv_txt_slide.delay2{
  transition-delay: 0.2s;
}
.mv_txt_slide.delay3{
  transition-delay: 0.3s;
}
.mv_txt_slide.delay4{
  transition-delay: 0.4s;
}
.mv_txt_slide.delay5{
  transition-delay: 0.5s;
}
.active.mv_txt_area .mv_txt_slide{
  -webkit-transform: translateY(0);
  transform: translateY(0);
  opacity: 1;
}
.mv_txt_slide.delay01{
  transition-delay: 0.1s;
}
.mv_bubble_frame_box{
  position: absolute;
  top: 20px;
  right: 0px;
}
.mv_bubble_frame{
  background: #ffffff;
  color: #008cd2;
  padding: 25px 30px;
  font-weight: bold;
  box-sizing: border-box;
  border-radius: 50px;
  display: inline-block;
  letter-spacing: -0.2px;
  line-height: 1;
}
.mv_bubble_frame:before{
  position: absolute;
  content: "";
  right: auto;
  left: 30px;
  bottom: -30px;
  width: 0;
  height: 0;
  margin: 0 auto;
  border-style: solid;
  border-width: 30px 50px 30px 0px;
  border-color: transparent transparent #ffffff transparent;
  transform: rotate(100deg);
  z-index: -1;
}
@media screen and (max-width:1100px){
  .mv_bubble_frame_box {
    right: -30px;
    top: 0;
  }
  .mv_copy {
    font-size: 9.5vw;
    transform: translateY(-30%);
  }
  .mv_img01 {
    right: 5.8vw;
    width: 24vw;
  }
  .mv_box{
    height: 390px;
  }
  .mv_txt01 {
    left: 23vw;
    bottom: auto;
    top: 21vw;
  }
  .mv_txt01 .font28 {
    font-size: 2vw;
  }
}
@media screen and (max-width:1024px){
  .header nav ul li{
    padding-right: 30px;
  }
  .mv_bubble_frame_box{
    top: 1px;
    right: -20px;
  }
  .mv_bubble_frame{
    padding: 20px 24px;
  }
}
@media screen and (max-width:940px){
  .mv_img01 {
    right: 4vw;
    width: 26vw;
  }
  .mv_txt01{
    top: 23vw;
  }
}
@media screen and (max-width:829px){
  .mv_img01 {
    right: 2vw;
    width: 30vw;
  }
}
@media screen and (max-width:768px){
  .header,.header_box{
    height: 50px;
    border-bottom: 0px solid #fff;
  }
  #menu-btn{
    height: 50px;
    width: 50px;
  }
  .mainvisual{
    background: url(../img/top/mv_bg01_sp.svg) center no-repeat;
    background-size: 115%;
    background-position-y: 20px;
  }
  .mainvisual {
    height: 75vw;
  }
  .mv_img01 {
    left: -6px;
    right: 0;
    margin: 0 auto;
  }
  .mv_copy {
    top: auto;
    bottom: 1%;
    font-size: 13.5vw;
  }
  .mv_txt_area {
    line-height: 0;
  }
  .mv_box {
    height: 75vw;
  }
  .mainvisual {
    margin-top: 50px;
  }
  .mt_quotation01 {
    margin-top: 15vw;
  }
  .mv_bubble_frame:before{
    bottom: -18px;
    left: 10px;
    border-width: 20px 40px 20px 0px;
  }
  .mv_bubble_frame_box {
    top: 6vw;
    right: -7vw;
  }
  .mv_bubble_frame{
    padding: 3vw;
  }
}
@media screen and (max-width:501px){
  .mv_copy{
    bottom: 8%;
  }
  .mt_quotation01 {
    margin-top: 21vw;
    margin-left: 3px;
  }
  .mv_bubble_frame_box {
    top: 2vw;
    right: -10vw;
  }
  .mv_bubble_frame{
    padding: 13px;
    font-size: 3.5vw !important;
  }
  .mv_box {
    height: 95vw;
  }
  .mainvisual {
    height: 95vw;
  }
  .mv_img01 {
    width: 37vw;
  }
}
/********************
  footer
********************/
#page_top{
  width: 50px;
  height: 50px;
  position: fixed;
  right: 20px;
  bottom: -50px;
  border-radius: 50%;
  transition: 300ms;
}
#page_top a{
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
  background: url(../img/common/to_top.png) no-repeat;
  background-size: 50px;
  z-index: 100;
}
.footer_box {
  padding: 110px 20px 50px 20px;
}
.footer_logo_area svg{
  fill: #008CD2;
}
.footer_logo_area{
  width: 300px;
}
@media screen and (max-width:768px){
  .footer_box{
    padding: 60px 20px 20px 20px;
  }
  .copy_area{
      margin-top: 40px;
  }
  .footer_logo_area{
    max-width: 280px;
    width: 100%;
    margin: auto;
  }
}
/********************
  info_sec
********************/
.info_sec .secinner{
  max-width: 590px;
  width: 100%;
}
/********************
  works_sec
********************/
.vertical_line {
  position: relative;
  width: 100%;
}
.vertical_line:before {
  position: absolute;
  content: "";
  width: 2px;
  height: 80px;
  background: #fff;
  left: 0;
  right: 0;
  margin: 0 auto;
  top: -70px;
  opacity: 0;
  transition: 500ms;
}
.vertical_line.blue:before {
  background: #008cd2;
}
.vertical_line.on:before {
  opacity: 1;
  top: -40px;
  transition-delay: 1s;
}
.works_sec .bg_01{
  background: url(../img/top/works_bg01.jpg) center / cover no-repeat;
}
.works_sec .box{
  padding: 0 25px;
  box-sizing: border-box;
}
.works_sec .secinner{
  max-width: 1000px;
}
.bg_02:before {
  position: absolute;
  content: "";
  top: -60px;
  left: -35px;
  right: 0;
  margin: 0 auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 60px 60px;
  border-color: transparent transparent #ffe60a transparent;
}
@media screen and (max-width:1200px){
  .bg_02:before {
    top: -40px;
  }
}
@media screen and (max-width:768px){
  .vertical_line:before{
    height: 50px;
    top: -50px;
  }
  .vertical_line.on:before{
    top: -25px;
  }
  .bg_02:before {
    border-width: 0 0 40px 40px;
  }
}
/********************
  about_sec
********************/
.about_sec .secinner{
  max-width: 1000px;
  width: 100%;
}
.about_sec .img_box{
  width: 340px;
  position: relative;
  z-index: 1;
  left: 50px;
}
.gray_box{
  width: 740px;
  margin: 0 0 0 -100px;
}
.gray_box .box{
  padding: 60px 0 60px 120px;
  box-sizing: border-box;
  background: #F5F5F5;
}
.clearfix::after {
   content: "";
   display: block;
   clear: both;
}
.style1{
  margin: 0 auto;
  max-width: 1200px;
  width: 100%;
  border-top: 2px solid #008cd2;
}
.gmap{
  padding: 0 40px;
  box-sizing: border-box;
}
.about_sec table tr th {
  white-space: nowrap;
  padding: 0 10px 0 0;
}
.about_sec table tr td {
  padding: 5px 0;
}
@media screen and (max-width:768px){
  .gmap{
    padding: 0 23px;
  }
  .gray_box{
    width: 90%;
    margin: 0 auto;
  }
  .gray_box .box{
    padding: 40px 10px 60px 25vw;
    margin: 0 0 30px 0;
    box-sizing: border-box;
    background: #F5F5F5;
  }
  .about_sec .img_box{
    position: absolute;
    bottom: 0px;
    left: 15px;
    width: 28vw;
  }
  .about_sec table tr,
  .about_sec table tr th{
    display: block;
  }
}
/********************
  problem_sec
********************/
.bubble_area{
  max-width: 690px;
  width: 100%;
}
.bubble_frame{
  position: absolute;
  background: #008cd2;
  color: #fff;
  padding: 30px 30px;
  box-sizing: border-box;
  border-radius: 50px;
  display: inline-block;
  letter-spacing: -0.2px;
  line-height: 1;
}
.bubble_frame.bubble01 {
  padding: 40px 30px;
}
.bubble_frame:before{
  position: absolute;
  content: "";
  bottom: -14px;
  right: -14px;
  margin: 0 auto;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 30px 50px 30px 0px;
  border-color: transparent transparent #008cd2 transparent;
  transform: rotate(50deg);
  z-index: -1;
}
.bubble_frame.bubble02:before{
  right: auto;
  left: 30px;
  bottom: -30px;
  transform: rotate(100deg);
}
.bubble_frame.bubble03:before{
  right: auto;
  left: 10px;
  bottom: -30px;
  transform: rotate(120deg);
}
.problem_sec .img_box{
  width: 265px;
  margin: 0 auto;
  padding: 50px 0 0 0;
}
.bubble01 {
  left: 40px;
}
.bubble02 {
  top: -25px;
  left: 390px;
}
.bubble03 {
  left: 450px;
  top: 100px;
}
@media screen and (max-width:768px){
  .bubble_frame.bubble01,
  .bubble_frame{
    padding: 20px;
  }
  .problem_sec .img_box {
    width: 200px;
    padding: 90px 0 0 0;
  }
  .bubble01 {
    top: 20px;
    left: 7vw;
  }
  .bubble02 {
    top: 10px;
    left: 52vw;
  }
  .bubble03 {
    left: 59vw;
  }
}
@media screen and (max-width:499px){
  .bubble_frame:before {
    bottom: -7px;
}
  .problem_sec .img_box {
    width: 115px;
    padding: 90px 0 0 0;
  }
  .bubble01 {
    top: 7vw;
    left: 0vw;
    font-size: 14px !important;
  }
  .bubble_frame,
  .bubble_frame.bubble01 {
    padding: 20px 10px;
  }
  .bubble02 {
    left: 52vw;
    top: 2px;
    font-size: 14px;
  }
  .bubble03 {
    left: 57vw;
  }
  .bubble_frame.bubble02:before {
    left: 20px;
    bottom: -20px;
  }
}
/********************
  contact_sec
********************/
.contact_sec{
  background: url(../img/top/img_contact.jpg) center / cover no-repeat;
}
.contact_box{
  padding: 50px 20px;
}
.contact_sec .box{
  display: table;
  margin: auto;
}
@media screen and (max-width:768px){
  .contact_box{
    padding: 50px 10px;
  }
}

/********************
  svg bg
********************/
.blue_svg_bg01{
  padding: 20px 65px 20px 65px;
  background: url(../img/top/svg_blue01.svg) no-repeat;
  box-sizing: border-box;
  background-size: cover;
}
.beige_svg_bg01{
  padding: 50px 75px 50px 75px;
  background: url(../img/top/svg_beige01.svg) no-repeat;
  box-sizing: border-box;
  background-size: cover;
  margin: -60px 0 0 0;
}
.blue_svg_bg02{
  padding: 50px 15px 70px 15px;
  background: url(../img/top/svg_blue02.svg) no-repeat;
  box-sizing: border-box;
  background-size: cover;
}
@media all and (-ms-high-contrast: none) {
  .blue_svg_bg01,
  .blue_svg_bg02{
    background: rgba(0, 140, 210, 0.85) !important;
  }

}
@media screen and (max-width:768px){
  .ml20_sp{
    margin-left: 20px;
  }
  .blue_svg_bg01{
    padding: 20px 15px 20px 15px;
    background: url(../img/top/svg_blue01_sp.svg) no-repeat;
    box-sizing: border-box;
    background-size: cover;
  }
  .beige_svg_bg01{
    padding: 40px 15px 70px 18vw;
    background: url(../img/top/svg_beige01_sp.svg) no-repeat;
    box-sizing: border-box;
    background-size: cover;
    margin: 0px 0 20px 50px;
  }
  .blue_svg_bg02{
    padding: 40px 15px 40px 15px;
    background: url(../img/top/svg_blue02_sp.svg) no-repeat;
    box-sizing: border-box;
    background-size: cover;
  }
}
