@charset "utf-8";

@page {
	size: A4;
}

body {
  -webkit-print-color-adjust: exact; /* Print background. */
	zoom: 70%;
}

/* 初期化
------------------------------------------------------------------------------------*/
* {
    margin : 0;
    padding : 0;
}
*, *:before, *:after{
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
.preload * {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -ms-transition: none !important;
    -o-transition: none !important;
    transition: none !important;
}
html {
    font-size : 62.5%;
    width: 100%;
}
body {
	font-family: "Noto Sans JP","メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif; 
    margin: 0;
    padding: 0;
    text-align: left;
    line-height: 1.8;
    letter-spacing: 0.05em;
    color: #333333;
    background: #FFF;
    width: 100%;
    font-size: 1.4rem;
}
div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, th, td {
    margin: 0;
    padding: 0;
    color: #333333;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}
fieldset, img {
    border: 0;
}
img {
    vertical-align: top;
    -webkit-backface-visibility: hidden;
}
address, caption, cite, code, dfn, th, var {
    font-style: normal;
    font-weight: normal;
}
em, i {
    font-style: normal;
}
ol, ul {
    list-style: none;
}
caption, th {
    text-align: left;
}
h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
    font-size: 1rem;
}
hr {
    display: none;
}
abbr, acronym {
    border: 0;
}

/*------------------------------------
clearfix 
------------------------------------*/
.clearfix:after {
    content: "";
    display: table;
    clear: both;
}
.clearfix {
    display: block;
}
/* End IE-mac */
.clear {
    clear: both;
}


/*------------------------------------
リンク 
------------------------------------*/
a {
    color: #333333;
}
a:hover {
    text-decoration: none;
    color: #333333;
}
area {
    outline: none;
}
a:focus {
    text-decoration: none;
}
a:link {
    text-decoration: none;
}
a:active {
	text-decoration: none;
}
/* ホバーアクション */
.hover{
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
}
.hover:hover{
    opacity: .6;
}
/* 下線付きリンク */
a.link_bd{
	color: #0088CA;
	text-decoration: underline;
}
a.link_bd:hover{
	text-decoration: none;
}

/*------------------------------------
スマホ　非表示
------------------------------------*/
	.disp_sp {
		display: none !important;
	}

/*------------------------------------
ボタン 
------------------------------------*/
.btn_cmn{
	position: relative;
	display: flex;
	font-size: 1.6rem;
	font-weight: bold;
	text-align: center;
	justify-content: center;
	align-items: center;
	color: #fff;
	max-width: 300px;
	width: 100%;
	margin: auto;
	padding: 10px 15px;
	text-decoration: none;
	background: #00A0E9;
	border: 2px solid #00A0E9;
	cursor: pointer;
	z-index: 3;
	-webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
}

.btn_cmn::before{
	position: absolute;
	content: '';
	width: 12px;
	height: 12px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	-ms-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	right: 20px;
}
.btn_cmn:hover{
	background: #fff;
	color: #00A0E9;
}
.btn_cmn:hover::before{
	border-color: #00A0E9;
}

/*===================================
  
  共通CSS

===================================*/
body {
  position: static;
  height: 100%; }

body.is_hidden {
  overflow: hidden; }

.wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh; }

/* アコーディオン */
.js_ac_box {
  display: none; }

/*===================================
  
  ヘッダー

===================================*/
/*------------------------------------
ヘッダー （PC） 
------------------------------------*/
  .header {
    width: 100%;
    top: 0;
    height: 85px;
    z-index: 100; }
    .header_wrap {
      display: flex;
      width: 100%;
      height: 100%;
      position: relative;
      background: #fff; }
    .header_inner {
      max-width: 1110px;
      min-width: 960px;
      width: 100%;
      margin: 0 auto;
      padding: 0 30px;
      justify-content: space-between;
      align-items: flex-end; }
    .header_logo {
      height: 45px;
      align-self: center; }
      .header_logo > img {
        height: 100%; } }

  .header {
    background: #fff;
    position: fixed;
    height: 50px;
    width: 100%;
    z-index: 9999; }
    .header_inner {
      width: 100%;
      height: 50px;
      position: relative;
      display: flex;
      align-items: center; }

  .header #sp_menu_btn {
    width: 50px;
    height: 50px;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    z-index: 101;
    cursor: pointer; }

  .header #sp_menu_btn span {
    width: 20px;
    height: 2px;
    display: block;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    background: #00A0E9;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease; }

  .header #sp_menu_btn span:nth-of-type(1) {
    top: 16px; }

  .header #sp_menu_btn span:nth-of-type(2) {
    top: 0;
    bottom: 0;
    background: #1D2088;
    z-index: -1; }

  .header #sp_menu_btn span:nth-of-type(3) {
    bottom: 16px; }

  .header #sp_menu_btn.active span:nth-of-type(1) {
    transform: translateY(9px) rotate(-45deg); }

  .header #sp_menu_btn.active span:nth-of-type(2) {
    opacity: 0; }

  .header #sp_menu_btn.active span:nth-of-type(3) {
    transform: translateY(-7px) rotate(45deg); }

  .header_logo {
    height: 30px; }
    .header_logo > img {
      height: 30px; }

  .header_contact {
    width: 50px;
    height: 50px;
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer; }
    .header_contact > img {
      height: 18px;
      margin-right: 5px; } 
/*===================================
  
  グローバルナビ

===================================*/
/*------------------------------------
グローバルナビ（PC）
------------------------------------*/
  .gnav {
    position: relative; }
    .gnav > ul {
      display: flex;
      padding-right: 60px; }
      .gnav > ul > li > a {
        display: inline-block;
        position: relative;
        color: #444444;
        font-size: 14px;
        font-weight: bold;
        padding: 0 20px 20px; }
        .gnav > ul > li > a::after {
          content: '';
          position: absolute;
          width: calc(100% - 30px);
          height: 3px;
          background: #01BFF2;
          bottom: 5px;
          left: 0;
          right: 0;
          margin: auto;
          opacity: 0;
          -webkit-transition: all 0.4s ease;
          transition: all 0.4s ease; }
      .gnav > ul > li:hover > a::after {
        opacity: 1; }
      .gnav > ul > li .gnav_submenu {
        visibility: hidden;
        opacity: 0;
        position: absolute;
        top: 60%;
        left: 0;
        width: 100%;
        background: #EEEEEE;
        -webkit-transition: all 0.4s ease;
        transition: all 0.4s ease;
        z-index: -1;
        box-shadow: 2px 2px 4px grey; }
      .gnav > ul > li:hover .gnav_submenu {
        top: 100%;
        visibility: visible;
        opacity: 1;
        z-index: -1; }
      .gnav > ul > li:last-child > a {
        padding-right: 0; }
        .gnav > ul > li:last-child > a::after {
          width: calc(100% - 20px);
          left: auto; }
    .gnav_facebook {
      position: absolute;
      right: 0;
      top: -3px; }
      .gnav_facebook > img {
        width: 30px; }
    .gnav_submenu_inner {
      width: 960px;
      margin: 0 auto;
      display: flex;
      justify-content: space-between; }
    .gnav_submenu_ttl {
      width: 20%;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      background: #00A0E9;
      font-weight: bold;
      padding: 0 25px; }
      .gnav_submenu_ttl span {
        color: #fff;
        width: 100%;
        display: block;
        text-align: center; }
      .gnav_submenu_ttl span:first-child {
        font-size: 2.2rem; }
    .gnav_submenu_nav {
      width: 80%;
      display: flex;
      flex-wrap: wrap;
      padding: 15px 0 40px 15px; }
      .gnav_submenu_nav > li {
        width: 25%; }
        .gnav_submenu_nav > li > a {
          font-size: 1.4rem;
          padding: 15px;
          display: block; }
          .gnav_submenu_nav > li > a:hover {
            text-decoration: underline; }
          .gnav_submenu_nav > li > a > img {
            width: 100%; }
          .gnav_submenu_nav > li > a > span {
            margin-top: 5px;
            display: block;
            text-align: center; }
    .gnav_contact a {
      position: relative; }
      .gnav_contact a::before {
        content: '';
        width: 20px;
        height: 20px;
        margin-right: 15px;
        display: inline-block;
        vertical-align: middle;
        background: url(../img/img-common/icon_mail_co.png) no-repeat left center;
        background-size: 20px auto; }

  /* 現在のページ */
  .service .gnav_service a::after,
  .products .gnav_products a::after,
  .vision .gnav_vision a::after,
  .company .gnav_company a::after,
  .pressrelease .gnav_pressrelease a::after,
  .contact .gnav_contact a::after {
    opacity: 1 !important; }

  /* サブメニューon */
  .nav_overlay {
    visibility: hidden;
    opacity: 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease;
    background: #000;
    z-index: 1;
    cursor: pointer; }

  .nav_overlay.is_active {
    visibility: visible;
    opacity: 0.2; }

  /* PCハンバーガーメニュー */
  .gnav_hamburger > ul {
    display: flex;
    align-items: center;
    justify-content: flex-end; }
    .gnav_hamburger > ul > li {
      display: block;
      width: 66px;
      height: 66px;
      line-height: 66px;
      border-radius: 50%;
      cursor: pointer; }
      .gnav_hamburger > ul > li:not(:first-child) {
        margin-left: 15px; }
      .gnav_hamburger > ul > li:nth-child(1) > a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        border-radius: 50%;
        background: #FF8000 url(../img/img-common/icon_mail.png) no-repeat center center;
        background-size: auto 20px; }
      .gnav_hamburger > ul > li:nth-child(2) {
        background: #00A0E9;
        position: relative; }
  .gnav_hamburger #pc_menu_btn {
    position: relative; }
  .gnav_hamburger #pc_menu_btn span {
    width: 20px;
    height: 2px;
    display: block;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    background: #fff;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease; }
  .gnav_hamburger #pc_menu_btn span:nth-of-type(1) {
    top: 25px; }
  .gnav_hamburger #pc_menu_btn span:nth-of-type(2) {
    top: 0;
    bottom: 0; }
  .gnav_hamburger #pc_menu_btn span:nth-of-type(3) {
    bottom: 25px; }
  .gnav_hamburger #pc_menu_btn.active {
    position: fixed;
    z-index: 101;
    background: #67d9f7;
    right: 45px; }
  .gnav_hamburger #pc_menu_btn.active span:nth-of-type(1) {
    transform: translateY(7.5px) rotate(-45deg); }
  .gnav_hamburger #pc_menu_btn.active span:nth-of-type(2) {
    opacity: 0; }
  .gnav_hamburger #pc_menu_btn.active span:nth-of-type(3) {
    transform: translateY(-7px) rotate(45deg); }
  .gnav_hamburger_main {
    position: fixed;
    top: -100%;
    visibility: hidden;
    overflow-y: scroll;
    opacity: 0;
    right: 0;
    left: 0;
    left: 0;
    bottom: 0;
    background: #fff;
    width: 100%;
    transition: all 0.4s ease;
    -webkit-transition: all 0.4s ease;
    -webkit-overflow-scrolling: touch;
    z-index: 100; }
    .gnav_hamburger_main::after {
      content: '';
      position: absolute;
      height: 100%;
      width: 50%;
      top: 0;
      right: 0;
      background: #01BFF2; }
    .gnav_hamburger_main.active {
      opacity: 1;
      visibility: visible;
      top: 0; }
  .gnav_hamburger_inner {
    display: flex; }
  .gnav_hamburger_left {
    width: 50%;
    position: relative; }
  .gnav_hamburger_logo {
    position: fixed;
    top: 300px;
    right: 65%;
    z-index: 101; }
    .gnav_hamburger_logo > img {
      height: 45px; }
  .gnav_hamburger_right {
    padding: 80px;
    width: 50%;
    background: #00A0E9;
    position: relative;
    z-index: 101; }
    .gnav_hamburger_right > ul > li:not(:last-child) {
      margin-bottom: 15px; }
    .gnav_hamburger_right > ul > li > a, .gnav_hamburger_right > ul > li > span {
      position: relative;
      font-size: 1.6rem;
      font-weight: bold;
      display: inline-block;
      color: #fff; }
    .gnav_hamburger_right > ul > li > a {
      overflow: hidden;
      padding-bottom: 3px; }
      .gnav_hamburger_right > ul > li > a::after {
        content: '';
        width: 100%;
        height: 1px;
        position: absolute;
        left: -100%;
        bottom: 0;
        background-color: #fff;
        -webkit-transition: all 0.4s ease;
        transition: all 0.4s ease; }
      .gnav_hamburger_right > ul > li > a:hover::after {
        width: 100%;
        left: 0; }
  .gnav_hamburger .gnav_hamburger_submenu {
    width: 100%;
    padding: 10px 0;
    display: flex;
    flex-wrap: wrap; }
  .gnav_hamburger .gnav_hamburger_submenu > li {
    width: 33.333333%; }
  .gnav_hamburger .gnav_hamburger_submenu > li > a {
    display: inline-block;
    position: relative;
    color: #fff;
    padding: 5px 0 5px 20px;
    margin-right: 25px;
    overflow: hidden; }
  .gnav_hamburger .gnav_hamburger_submenu > li > a::before {
    content: '';
    width: 8px;
    height: 8px;
    border: 0px;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto; }
  .gnav_hamburger .gnav_hamburger_submenu > li > a::after,
  .gnav_hamburger .gnav_hamburger_privacy::after {
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    left: -100%;
    bottom: 3px;
    background-color: #fff;
    -webkit-transition: all 0.4s ease;
    transition: all 0.4s ease; }
  .gnav_hamburger .gnav_hamburger_submenu > li > a:hover::after,
  .gnav_hamburger .gnav_hamburger_privacy:hover::after {
    width: 100%;
    left: 20px; }
  .gnav_hamburger .gnav_hamburger_contact {
    width: 250px;
    display: block;
    margin-top: 40px;
    color: #01BFF2 !important;
    font-size: 1.8rem;
    font-weight: bold;
    background: #fff url(../img/img-common/icon_mail_co.png) no-repeat 20% center;
    background-size: 22px auto;
    padding: 10px 0 10px 20px;
    text-align: center; }
  .gnav_hamburger .gnav_hamburger_privacy {
    position: relative;
    display: inline-block;
    margin-top: 15px;
    padding: 0 0 5px 20px;
    color: #fff !important;
    overflow: hidden; }
  .gnav_hamburger .gnav_hamburger_privacy::before {
    content: '';
    width: 8px;
    height: 8px;
    border: 0px;
    border-top: solid 1px #fff;
    border-right: solid 1px #fff;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    margin: auto; } 
/*===================================
  
  メイン

===================================*/
.main {
  margin-top: 0px;
  padding: 0 0 100px;
  overflow: hidden; }

.header_submenu_on + .main {
  margin-top: 120px; }

.header_hamburger + .main {
  margin-top: 100px; }

/*===================================
  
  フッター

===================================*/
.footer {
  margin-top: auto;
  background: #fff;
  padding: 0;
  border-top: 4px solid #00A0E9;
  z-index: 2; }
  .footer_inner {
    width: 960px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between; }
  .footer_info {
    padding: 50px 0; }
  .footer_logo {
    display: flex;
    align-items: flex-end; }
    .footer_logo > a > img {
      display: block;
      height: 40px;
      margin-right: 30px; }
    .footer_logo > span {
      font-size: 16px;
      font-weight: bold; }
  .footer_address {
    margin-top: 30px; }
  .footer_tel {
    margin-top: 30px;
    display: flex;
    align-items: center; }
    .footer_tel > img {
      display: block;
      height: 45px;
      margin-right: 15px; }
    .footer_tel span {
      font-size: 2rem;
      color: #333;
      display: block;
      font-weight: bold;
      line-height: 1; }
    .footer_tel span:nth-child(2) {
      font-size: 1.4rem;
      margin-top: 8px;
      font-weight: normal; }
  .footer_contact {
    margin-top: 20px; }
    .footer_contact a {
      width: 200px;
      display: inline-block;
      color: #FFF !important;
      font-size: 1.4rem;
      font-weight: bold;
      border: 2px solid #1D2088;
      background: #1D2088 url(../img/img-common/icon_mail.png) no-repeat 15% center;
      background-size: 22px auto;
      padding: 8px 0 8px 20px;
      text-align: center;
      -webkit-transition: all 0.4s ease;
      transition: all 0.4s ease;
      cursor: pointer; }
      .footer_contact a:hover {
        color: #1D2088 !important;
        background: #fff url(../img/img-common/icon_mail_co.png) no-repeat 15% center;
        background-size: 22px auto; }
  .footer_copyright {
    text-align: center;
    padding: 10px;
    color: #fff;
    background: #00A0E9; }
    .footer_copyright a {
      color: #fff !important; }
  .footer_gmap {
    width: 50%; }
    .footer_gmap > iframe {
      width: 100%;
      height: 100%;
      border: none; }

/*------------------------------------
フッター（PC）
------------------------------------*/
  .footer_logo > span {
    white-space: nowrap; }
  .footer_address {
    white-space: nowrap; }

  .footer_nav {
    display: flex;
    flex-wrap: wrap;
    padding: 50px 0; }
    .footer_nav > ul > li > a {
      position: relative;
      display: block;
      margin-bottom: 20px;
      padding-left: 25px; }
      .footer_nav > ul > li > a::before {
        content: '';
        width: 7px;
        height: 7px;
        border: 0px;
        border-top: solid 1px #009FE9;
        border-right: solid 1px #009FE9;
        -ms-transform: rotate(45deg);
        -webkit-transform: rotate(45deg);
        transform: rotate(45deg);
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto;
        left: 0; }
      .footer_nav > ul > li > a:hover {
        text-decoration: underline; }
    .footer_nav > ul:nth-child(1) {
      margin-right: 100px; }
    .footer_nav_copyright {
      margin-top: auto;
      font-size: 1.4rem;
      color: #777777; }
      .footer_nav_copyright a {
        color: #777777; }

  .footer_catnav {
    padding: 60px 0 100px;
    background: #eee; }
    .footer_catnav_inner {
      display: flex;
      width: 960px;
      margin: auto; }
    .footer_catnav_item {
      width: 25%; }
      .footer_catnav_item > dt {
        font-size: 1.8rem;
        font-weight: bold;
        color: #00A0E9;
        margin-bottom: 20px; }
      .footer_catnav_item > dd > ul > li:not(:last-child) {
        margin-bottom: 10px; }
      .footer_catnav_item > dd > ul > li > a {
        position: relative;
        display: block;
        padding-left: 15px; }
        .footer_catnav_item > dd > ul > li > a::before {
          content: '';
          position: absolute;
          background: #009fe9;
          width: 5px;
          height: 2px;
          left: 0;
          top: 0;
          bottom: 0;
          margin: auto; }
        .footer_catnav_item > dd > ul > li > a:hover {
          text-decoration: underline; }

  .footer_fb {
    width: 200px; }
    .footer_fb > a {
      display: block; }
      .footer_fb > a > img {
        width: 30px;
        display: block;
        margin: 20px 0 0 auto; } 
/*===================================
  
  パンくず

===================================*/
.bread_crumb {
  height: 30px;
  text-align: right;
  padding: 0;
  line-height: 30px;
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  position: relative;
  color: #403b3b; }

.bread_crumb a {
  text-decoration: underline !important;
  color: #403b3b; }

.bread_crumb a:hover {
  text-decoration: none !important;
  opacity: 1; }

/*===================================
  
  ページトップ

===================================*/
.pagetop {
  width: 46px;
  height: 46px;
  position: fixed;
  bottom: 50px;
  right: 20px;
  transition: opacity 1s;
  opacity: 0;
  cursor: pointer;
  z-index: 99; }

.pagetop.is_active {
  opacity: 1; }

@media screen and (max-width: 991px) {
  .pagetop {
    width: 35px;
    height: 35px;
    bottom: 30px;
    right: 10px; } }


/*===================================
  
  コンテンツ幅

===================================*/
.inner {
  width: 960px;
  margin: 0 auto; }

.inner_s {
  width: 880px;
  margin: 0 auto; }

/*===================================
  
  pタグ間の余白

===================================*/
section p + p {
  margin-top: 30px; }

/*===================================
  
  flex

===================================*/
.flex_2column, .flex_3column {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }

.flex_2column > .flex_item {
  width: 450px; }

.flex_3column > .flex_item {
  width: 260px; }

/* PC */
@media screen and (min-width: 992px) {
  .flex_2column > .flex_item:nth-child(n+3),
  .flex_3column > .flex_item:nth-child(n+4) {
    margin-top: 50px; }

  .flex_3column {
    position: relative; }

  .flex_3column::after {
    content: '';
    display: block;
    width: 260px;
    height: 0; } }
/*===================================
  
  list

===================================*/
.list_no > li, .list_dot > li, .list_caution > li {
  position: relative;
  padding-left: 1.3em; }
  .list_no > li::before, .list_dot > li::before, .list_caution > li::before {
    position: absolute;
    display: block;
    left: 0;
    font-size: inherit; }

.list_no > li:nth-child(1)::before {
  content: '1.'; }

.list_no > li:nth-child(2)::before {
  content: '2.'; }

.list_no > li:nth-child(3)::before {
  content: '3.'; }

.list_no > li:nth-child(4)::before {
  content: '4.'; }

.list_no > li:nth-child(5)::before {
  content: '5.'; }

.list_no > li:nth-child(6)::before {
  content: '6.'; }

.list_no > li:nth-child(7)::before {
  content: '7.'; }

.list_no > li:nth-child(8)::before {
  content: '8.'; }

.list_no > li:nth-child(9)::before {
  content: '9.'; }

.list_no > li:nth-child(10)::before {
  content: '10.'; }

.list_dot > li::before {
  content: '・'; }

.list_caution > li::before {
  content: '※'; }

.list_check > li {
  position: relative;
  padding-left: 40px; }
  .list_check > li::before {
    content: '';
    position: absolute;
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    margin-top: 3px;
    transform: translate(0, -50%);
    background: url(../img/img-common/icon_check.png);
    background-size: 25px auto;
    background-repeat: no-repeat;
    width: 25px;
    height: 25px; }
  .list_check > li:not(:last-child) {
    margin-bottom: 15px; }

/*===================================
  
  text

===================================*/
.lead01 {
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 40px;
  font-family: YuMincho,'Yu Mincho',serif;
  line-height: 1.7; }

.lead02 {
  font-size: 1.8rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px; }

.lead03 {
  font-size: 2.8rem;
  font-weight: bold;
  text-align: center;
  padding-bottom: 30px;
  font-family: YuMincho,'Yu Mincho',serif; }
  .lead03 > span {
    display: inline-block;
    position: relative;
    padding: 0 60px; }
    .lead03 > span::before {
      content: '「';
      font-size: 3.2rem;
      color: #009FE9;
      position: absolute;
      left: 0;
      top: -15px; }
    .lead03 > span::after {
      content: '」';
      font-size: 3.2rem;
      color: #009FE9;
      position: absolute;
      right: 0;
      bottom: -15px; }

/*===================================
  
  img

===================================*/
.img_block {
  margin-top: 20px; }

/*===================================
  
  table

===================================*/
.tbl_bd {
  margin: 0;
  padding: 0px;
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
  white-space: normal; }

.tbl_bd th, .tbl_bd td {
  font-size: 1.5rem;
  vertical-align: middle;
  border-bottom: 1px solid #bbbbbb;
  padding: 20px 15px;
  line-height: 1.6; }

.tbl_bd th {
  font-weight: bold;
  border-bottom-color: #37beff;
  width: 20%; }

.tbl_bd td {
  padding-left: 20px; }

/*===================================
  
  section（上部の余白）

===================================*/
.sect {
  margin-top: 90px; }

.sect_s {
  margin-top: 80px; }

/*===================================
  
  メインビジュアル

===================================*/
.main_mv {
  background-position: left top;
  background-repeat: no-repeat;
  background-size: 100% auto;
  padding-top: 196px; }

.service .main_mv {
  background-image: url(../img/img-service/mv_pc.jpg); }

.products .main_mv {
  background-image: url(../img/img-products/mv_pc.jpg); }

.vision .main_mv {
  background-image: url(../img/img-vision/mv_pc.jpg); }

.company .main_mv {
  background-image: url(../img/img-company/mv_pc.jpg); }

.pressrelease .main_mv {
  background-image: url(../img/img-pressrelease/mv_pc.jpg); }

.form .main_mv {
  background-image: url(../img/img-form/mv_pc.jpg); }
  
.privacy .main_mv {
  background-image: url(../img/img-privacy/mv_pc.jpg); }

@media screen and (min-width: 992px) {
  .main_mv {
    background-position: center top;
    background-size: auto 260px;
    min-height: 260px; } }

.top_mv {
  position: relative; }
  .top_mv > img {
    width: 100%; }
  .top_mv_inner {
    position: absolute;
    width: 1280px;
    padding: 0 30px;
    bottom: -40px;
    left: 0;
    right: 0;
    margin: auto; }
  .top_mv_scroll {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 30px;
    position: relative;
    z-index: 2; }
    .top_mv_scroll > img {
      width: 11px;
      margin-left: 3px; }
    .top_mv_scroll > span {
      margin-top: 10px;
      position: relative;
      height: 120px; }
      .top_mv_scroll > span::before {
        position: absolute;
        content: '';
        left: 0;
        width: 1px;
        height: 100%;
        background: #00A0E9;
        z-index: 2; }
      .top_mv_scroll > span::after {
        position: absolute;
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        transform: translate(-50%, 0);
        width: 9px;
        height: 9px;
        border: 1px solid #fff;
        background: #1CB5FF;
        border-radius: 50%;
        z-index: 2;
        animation: drop 2s ease-in-out 0.5s infinite; }

@keyframes drop {
  0% {
    opacity: 0;
    transform: translate(-50%, 0); }
  25% {
    opacity: 1; }
  75% {
    opacity: 1; }
  to {
    opacity: 0;
    transform: translate(-50%, 120px); } }
@media screen and (min-width: 992px) {
  .top_mv {
    height: 615px; }
    .top_mv > img {
      width: auto;
      height: auto;
      min-width: 100%;
      min-height: 100%;
      max-width: inherit;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      position: absolute; } }
@media (min-width: 992px) and (max-width: 1280px) {
  .top_mv_inner {
    width: 1100px; } }
/*===================================
  
  ttl_main

===================================*/
.ttl_main {
  padding-top: 40px;
  margin-bottom: 60px;
  color: #009FE9;
  background: rgba(255, 255, 255, 0.8); }

.ttl_main > span {
  font-family: 'Roboto', sans-serif;
  font-size: 2.2rem;
  font-weight: bold;
  display: block;
  font-weight: bold;
  text-align: center;
  letter-spacing: 0.2em; }

.ttl_main > h1 {
  font-size: 4rem;
  font-weight: bold;
  text-align: center;
  color: #009FE9;
  line-height: 1.6;
  letter-spacing: 0.2em;
  margin-bottom: 5px; }

.ttl_sect {
  margin-bottom: 50px; }

.ttl_sect > span {
  font-family: 'Roboto', sans-serif;
  font-size: 1.5rem;
  font-weight: bold;
  display: block;
  color: #009FE9;
  text-align: center;
  letter-spacing: 0.2em; }

.ttl_sect_main {
  font-size: 2.4rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0.2em; }

/*===================================
  
  block_bg

===================================*/
.block_bg {
  background: #EEF9FE;
  padding: 50px 0 100px;
  position: relative; }
  .block_bg::before {
    content: '';
    position: absolute;
    opacity: 0.6;
    left: 0;
    top: 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 350px 600px 0 0;
    border-color: #fff transparent transparent transparent;
    z-index: 1; }

.block_bg > div {
  z-index: 2;
  position: relative; }


.block_bg02 {
  position: relative; }
  .block_bg02::before {
    content: '';
    position: absolute;
    opacity: 0.6;
    right: 0;
    bottom: -140px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 350px 600px;
    border-color: transparent transparent #EEF9FE transparent;
    z-index: 1; }

.block_bg02 > div {
  z-index: 2;
  position: relative; }


.block_bg03 {
  background: #EEF9FE;
  padding: 70px 0 100px;
  position: relative; }


/*===================================
  
  block_img

===================================*/
.block_img {
  position: relative; }
  .block_img_mv {
    width: 100%;
    max-width: 960px;
    display: block;
    margin: 0 auto;
    z-index: 2;
    position: relative; }
  .block_img_bg {
    padding-top: 40px;
    position: relative;
    z-index: 2; }
    .block_img_bg::before {
      content: '';
      position: absolute;
      background: #00A1E9;
      width: 100%;
      top: 0;
      left: 0;
      right: 0;
      bottom: 120px;
      z-index: 1; }
    .block_img_bg .ttl_sect {
      position: relative;
      z-index: 2;
      margin-bottom: 40px; }
      .block_img_bg .ttl_sect > span, .block_img_bg .ttl_sect_main {
        color: #fff; }
  .block_img_ttl {
    font-size: 2.4rem;
    font-weight: bold;
    text-align: center;
    letter-spacing: 0.1em;
    line-height: 1.6;
    margin: 0 auto 30px;
    max-width: 770px; }
  .block_img .list_check {
    margin: 50px 70px 70px; }
    .block_img .list_check > li {
      font-size: 1.8rem;
      font-weight: bold; }
  .block_img .box_cmn {
    border: 1px solid #DDDDDD; }
    .block_img .box_cmn_ttl {
      margin-bottom: 15px;
      padding-bottom: 12px; }

/* PC */
@media screen and (min-width: 992px) {
  .block_img .box_cmn_ttl > span:nth-child(1) {
    margin-bottom: 0; }
  .block_img .box_cmn_ttl > span:nth-child(2) {
    font-size: 2.2rem; } }

/*===================================
  
  box_menu

===================================*/
.box_menu {
  display: block; }
  .box_menu_img {
    overflow: hidden; }
    .box_menu_img > img {
      width: auto; }
  .box_menu_main {
    width: 350px;
    height: 100%;
    margin: -85px 0 0 auto;
    padding: 30px;
    opacity: 0.9;
    background: #fff;
    border-top: 2px solid #00A0E9; }
  .box_menu_ttl {
    margin-bottom: 15px; }
    .box_menu_ttl > span {
      display: block; }
    .box_menu_ttl > span:nth-child(1) {
      color: #00A0E9;
      font-size: 1.5rem;
      font-weight: bold; }
    .box_menu_ttl > span:nth-child(2) {
      font-size: 1.8rem;
      font-weight: bold;
      letter-spacing: 0.1em; }
  .box_menu_more {
    text-align: right; }
    .box_menu_more > span {
      font-size: 1.3rem;
      color: #00A0E9;
      display: inline-block;
      position: relative;
      padding-left: 35px; }
      .box_menu_more > span::before {
        content: '';
        position: absolute;
        background: #00A0E9;
        height: 2px;
        width: 25px;
        top: 50%;
        left: 0;
        transform: translate(0, -50%); }

/* PC */
@media screen and (min-width: 992px) {
  .box_menu {
    height: 100%;
    overflow: hidden;
    position: relative; }
    .box_menu_img > img {
      width: 400px;
      -webkit-transition: all 0.4s ease;
      transition: all 0.4s ease; }
    .box_menu:hover .box_menu_img > img {
      transform: scale(1.1, 1.1); }
    .box_menu_description {
      padding-bottom: 50px; }
    .box_menu_more {
      position: absolute;
      right: 30px;
      bottom: 30px; } }

/*===================================
  
  box_article

===================================*/
.box_article > img {
  width: 100%; }
.box_article_main {
  font-size: 1.5rem;
  margin-top: 10px; }
.box_article_ttl {
  font-size: 1.8rem;
  text-align: center;
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 10px; }

a.box_article {
  text-decoration: underline; }
  a.box_article:hover {
    text-decoration: none; }

/*===================================
  
  box_cmn

===================================*/
.box_cmn {
  display: flex;
  background: #fff;
  padding: 30px 35px 35px 35px;
  position: relative; }
  .box_cmn:not(:last-child) {
    margin-bottom: 40px; }
  .box_cmn > a > img {
    width: 320px; }
  .box_cmn_ttl {
    font-weight: bold;
    margin-bottom: 15px;
    padding-bottom: 15px;
    position: relative; }
    .box_cmn_ttl::before {
      content: '';
      position: absolute;
      background: #37BEFF;
      bottom: 0;
      left: 0;
      width: 50%;
      height: 1px; }
    .box_cmn_ttl::after {
      content: '';
      position: absolute;
      background: #bbbbbb;
      bottom: 0;
      right: 0;
      width: 50%;
      height: 1px; }
    .box_cmn_ttl > span {
      display: block; }
    .box_cmn_ttl > span:nth-child(1) {
      margin-bottom: 2px; }
    .box_cmn_ttl > span:nth-child(2) {
      font-size: 1.8rem;
      color: #1D1F86;
      line-height: 1.5; }
  .box_cmn_link {
    text-align: right; }
    .box_cmn_link > a {
      font-size: 1.4rem;
      color: #009FE9;
      display: inline-block;
      position: relative;
      font-weight: bold;
      padding-left: 35px;
      padding-right: 30px; }
      .box_cmn_link > a::before {
        content: '';
        position: absolute;
        background: #009FE9;
        height: 2px;
        width: 25px;
        top: 50%;
        left: 0;
        transform: translate(0, -50%); }
      .box_cmn_link > a::after {
        content: '';
        position: absolute;
        background: url(../img/img-common/icon_external.png);
        width: 16px;
        background-position: right center;
        background-repeat: no-repeat;
        top: 50%;
        right: 0;
        transform: translate(0, -50%);
        height: 16px;
        background-size: 16px auto;
        -webkit-transition: all 0.4s ease;
        transition: all 0.4s ease; }
      .box_cmn_link > a:hover {
        text-decoration: underline; }
        .box_cmn_link > a:hover::after {
          opacity: 0.6; }
  .box_cmn_icon {
    margin-bottom: 13px;
    display: flex;
    align-items: center; }
    .box_cmn_icon > li {
      font-size: 1.3rem;
      font-weight: bold;

      color: #fff;
      line-height: 1;
      padding: 5px 10px;
      background: #FF5C26; }
      .box_cmn_icon > li:not(:last-child) {
        margin-right: 10px; }

.block_bg02 .box_cmn {
  background: #EEF9FE; }

/* PC */
@media screen and (min-width: 992px) {
  .box_cmn_link {
    position: absolute;
    right: 35px;
    bottom: 30px; }
  .box_cmn > dl {
    min-height: 240px; }
  .box_cmn_ttl {
    margin-left: 320px; }
  .box_cmn_main > a > img {
    height: 240px; }
  .box_cmn_main > p {
    margin-left: 320px; }
  .box_cmn_main > a {
    position: absolute;
    left: 35px;
    top: 35px; }
  .box_cmn_icon {
    margin-left: 320px; }
  .box_cmn > dl {
    width: 100%;
    margin-left: 35px; } }
/* SP */
@media screen and (max-width: 991px) {
  .box_cmn {
    flex-direction: column;
    padding: 25px; }
    .box_cmn_ttl > span:nth-child(2) {
      font-size: 1.4rem; }
    .box_cmn_link {
      margin-top: 20px; }
      .box_cmn_link > a {
        font-size: 1.1rem;
        padding-left: 30px;
        padding-right: 27px; }
        .box_cmn_link > a::before {
          height: 2px;
          width: 20px; }
    .box_cmn > dl > dt {
      margin-bottom: 20px; }
    .box_cmn > dl > dd > a > img {
      display: block;
      margin: 0 auto 20px;
      width: 85%; } }
/*===================================
  
  プレスリリース

===================================*/
.pressrelease_list_item {
  position: relative;
  padding-bottom: 30px;
  border-bottom: 2px dotted #1FACEC; }
  .pressrelease_list_item:not(:last-child) {
    margin-bottom: 30px; }
  .pressrelease_list_item > a {
    display: flex;
    align-items: flex-start; }
.pressrelease_list_main {
  margin-left: 30px; }
.pressrelease_list_date {
  position: absolute;
  top: 0;
  left: 226px;
  display: block;
  color: #1FACEC;
  margin-bottom: 10px;
  z-index: 99; }
.pressrelease_list_text {
  margin-top: 35px;
  display: flex;
  align-items: flex-start;
  text-decoration: underline; }
  .pressrelease_list_text > img {
    margin-left: 8px; }
.pressrelease_list_item > a:hover .pressrelease_list_text {
  text-decoration: none; }


/*===================================
  
  ビジョン

===================================*/
/*------------------------------------
経営理念
------------------------------------*/
.vision_management {
  z-index: 2; }
  .vision_management > dl {
    padding: 40px 150px 40px 70px;
    border: 1px solid #D7F0FD;
    box-shadow: 0 0 8px #D7F0FD;
    background: #fff;
    position: relative; }
    .vision_management > dl:not(:last-child) {
      margin-bottom: 70px; }
    .vision_management > dl > dt {
      font-size: 1.8rem;
      font-weight: bold;
      margin-bottom: 15px; }
    .vision_management > dl > dd > img {
      position: absolute;
      right: 10px;
      bottom: -34px; }

/*===================================
  
  会社概要

===================================*/
/*------------------------------------
代表メッセージ
------------------------------------*/
/* PC */
@media screen and (min-width: 992px) {
  .company_message {
    display: flex;
    align-items: flex-start; }
    .company_message_text {
      margin-left: 40px; }
      .company_message_text > img {
        display: block;
		  	line-height: 2.2;
        margin: 20px 20px 0 auto;
        width: 236px; } }
/*------------------------------------
沿革
------------------------------------*/
.company_history {
  position: relative; }
  .company_history::before {
    content: '';
    position: absolute;
    width: 2px;
    height: 100%;
    top: 10px;
    left: 9px;
    background: #ACE4FF; }
  .company_history > dl {
    position: relative;
    display: flex;
    align-items: flex-start;
    margin-bottom: 50px; }
    .company_history > dl:last-child::before {
      content: '';
      position: absolute;
      width: 2px;
      height: 8px;
      bottom: -42px;
      left: 9px;
      background: #ACE4FF; }
    .company_history > dl:last-child::after {
      content: '';
      position: absolute;
      width: 2px;
      height: 10px;
      bottom: -27px;
      left: 9px;
      background: #ACE4FF; }
    .company_history > dl > dd {
      margin-left: 30px; }
  .company_history_date {
    padding-left: 35px;
    position: relative;
    display: flex;
    justify-content: space-between;
    width: 180px;
    font-weight: bold; }
    .company_history_date::before {
      content: '';
      position: absolute;
      width: 20px;
      height: 20px;
      left: 0;
      top: 0;
      bottom: 0;
      margin: auto;
      background: #009FE9;
      border: 5px solid #ACE4FF;
      border-radius: 50%; }
  .company_history_img {
    display: block;
    margin-top: 30px; }


/*===================================
  
  topページ

===================================*/
.top_lead {
  padding-top: 50px; }
  .top_lead > dt {
    text-align: center;
    font-size: 2.6rem;
    font-weight: bold;
    margin-bottom: 20px;
    color: #1BB4FF; }

.top_service,
.top_products {
  background-position: center center;
  background-repeat: no-repeat;
  padding: 50px 0; }
  .top_service .ttl_sect > span,
  .top_products .ttl_sect > span {
    font-size: 2.2rem; }
  .top_service .ttl_sect_main,
  .top_products .ttl_sect_main {
    font-size: 4rem;
    line-height: 1.5;
    color: #fff; }
  .top_service p,
  .top_products p {
    font-weight: bold;
    text-align: center; }

.top_service {
  min-height: 468px;
  background-size: auto 468px; }
  .top_service p {
    color: #fff; }
  .top_service .btn_cmn {
    margin-top: 30px; }

.top_products {
  min-height: 617px;
  background-size: auto 617px;
  margin-bottom: 25px; }
  .top_products .btn_cmn {
    margin-top: 50px; }

.top_info_ttl {
  margin-bottom: 20px; }
  .top_info_ttl > span {
    display: block;
    font-weight: bold;
    letter-spacing: 0.2em; }
    .top_info_ttl > span:nth-child(1) {
      font-family: 'Roboto', sans-serif;
      color: #009FE9; }
    .top_info_ttl > span:nth-child(2) {
      font-size: 1.8rem; }
.top_info_date {
  color: #aaa;
  margin-bottom: 0px; }
.top_info dl:not(:last-child) {
  margin-bottom: 20px; }
.top_info dd > a {
  display: block;
  text-decoration: underline; }
  .top_info dd > a:hover {
    text-decoration: none; }
.top_info_pressrelease dl:not(:last-child) {
  border-bottom: 2px dotted #1FACEC;
  padding-bottom: 20px; }
.top_info_pressrelease dd > a {
  display: flex;
  align-items: flex-start;
  text-decoration: underline; }
.top_info_pressrelease dd > a > img {
  margin-left: 8px; }
.top_info_btn {
  position: relative;
  display: flex;
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
  justify-content: center;
  align-items: center;
  color: #00A0E9;
  width: 100%;
  max-width: 200px;
  margin: 40px auto 0;
  padding: 5px 10px;
  text-decoration: none;
  border: 1px solid #00A0E9;
  cursor: pointer;
  -webkit-transition: all 0.4s ease;
  transition: all 0.4s ease; }
  .top_info_btn::after {
    position: absolute;
    content: '';
    width: 10px;
    height: 10px;
    border-top: solid 2px #00A0E9;
    border-right: solid 2px #00A0E9;
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    right: 15px; }
  .top_info_btn:hover {
    background: #00A0E9;
    color: #fff;
    border-color: #fff; }
    .top_info_btn:hover::after {
      border-color: #fff; }
      
  .topic.ifwp2{
      width: 100%;
      height: auto;
      overflow: hidden;
  }
  .topic.ifwp2 iframe{
      width: 100%;
      height: 300px;
  }            
      
      
      

.top_service {
  background-image: url(../img/img-index/img_service_main_pc.jpg); }

.top_products {
  background-image: url(../img/img-index/img_products_main_pc.jpg); }

@media screen and (max-width: 991px) {
  .top_lead {
    padding-top: 30px; }
    .top_lead > dt {
      font-size: 1.8rem; }

  .top_service,
  .top_products {
    min-height: auto;
    padding: 35px 0;
    background-size: 100% auto; }
    .top_service p,
    .top_products p {
      text-align: left; }
    .top_service .ttl_sect > span,
    .top_products .ttl_sect > span {
      font-size: 1.3rem;
      margin-bottom: 3px; }
    .top_service .ttl_sect_main,
    .top_products .ttl_sect_main {
      font-size: 1.8rem; }

  .top_service {
    padding: 10% 0 11%; }

  .top_products {
    padding: 21% 0 54%; }
    .top_products .btn_cmn {
      margin-top: 30px; }

  .top_info_ttl > span:nth-child(2) {
    font-size: 1.6rem; }
  .top_info > dl:not(:last-child) {
    margin-bottom: 15px; }
  .top_info_news {
    padding-bottom: 25px; }
  .top_info_date {
    margin-bottom: 0px; }
  .top_info_pressrelease dd > a {
    display: block; }
  .top_info_pressrelease dd > a > img {
    width: 18px;
    display: inline-block;
    vertical-align: middle;
    margin-left: 5px; }
  .top_info_btn {
    width: 75%;
    max-width: 250px;
    font-size: 1.4rem;
    padding: 10px 15px; }

  .top_service {
    background-image: url(../img/img-index/img_service_main_sp.jpg); }

  .top_products {
    background-image: url(../img/img-index/img_products_main_sp.jpg); } }
    
    
/*===================================
  
  プライバシーポリシー

===================================*/
.l_cmn_ttl06 {
	font-size: 1.6rem;
    background: none;
    border-top: none;
    font-weight: bold;
    letter-spacing: .05em;
    line-height: 1.6;
    padding: 0 0 1% 0px;
	margin:40px 0 12px;
    text-align: left;
    background-image: linear-gradient(to right, #333, #333 1px, transparent 1px, transparent 4px);
    background-size: 5px 1px;
    background-position: bottom;
    background-repeat: repeat-x;
	vertical-align: middle;
}
.l_cmn_ttl06 span{
    padding: 0 0 0 2%;
    border-left: 5px solid #00A0E9;
    display: block;
}

