@charset "UTF-8";
/* ------------------------------------------------------------
初期設定
------------------------------------------------------------ */
*,
*:before,
*:after {
  /* 幅と高さの制御設定 */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 英数字の改行設定 */
  overflow-wrap: break-word;
  word-wrap: break-word;
}

html,
body {
  height: 100%;
}

body {
  font-size: 15px;
  color: #333333;
  line-height: 1.6;
}

@media only screen and (max-width: 767px) {
  body {
    font-size: 14px;
  }
}

/* 画像のレスポンシブ対応 */
img {
  max-width: 100%;
  height: auto;
  width: auto;
}
.photo-ofi {
  height: 0;
  display: block;
  padding-bottom: 60%;
  background-color: #EFEFEF;
  overflow: hidden;
  position: relative;
  margin-bottom: 10px;
}
.photo-ofi img {
  max-width: inherit;
  max-height: inherit;
  width: 100%;
  height: 100%;
  -o-object-fit: scale-down;
  object-fit: scale-down;
  font-family: 'object-fit: scale-down;';
  position: absolute;
  left: 0;
  top: 0;
}
.photo-ofi.cover img {
  -o-object-fit: cover;
  object-fit: cover;
  font-family: 'object-fit: cover;';
}

/* clearfix */
.clearfix:after {
  content: "";
  display: block;
  clear: both;
}

/* ------------------------------------------------------------
印刷設定
------------------------------------------------------------ */
/* 印刷ページ切り替え */
.pbb {
  page-break-before: always;
}


#pagetop a {
  position: fixed;
  bottom: 50px;
  right: 20px;
  z-index: 999999;
}

/* プリント用CSS */
@media print {
  body {
    zoom: 100%;
    overflow-y: visible;
    overflow-x: visible;
  }
  #pagetop {
    display: none;
  }
}

@page {
  margin: 30px;
}

/* ------------------------------------------------------------
レイアウト
------------------------------------------------------------ */
/* 余白 */

/* 配置 */
.tar {text-align: right;}
.tal {text-align: left;}
.tac {text-align: center;}

@charset "UTF-8";
.mb-none {margin-bottom: 0;}
.mt20 {margin-top: 10px !important;}
  @media only screen and (min-width: 768px) {
    .mt20 {margin-top: 20px !important;}
  }
  @media print {
    .mt20 {margin-top: 20px !important;}
  }

.mb5 {margin-bottom: 5px !important;}
.mb10 {margin-bottom: 5px !important;}
  @media only screen and (min-width: 768px) {
    .mb10 {
        margin-bottom: 10px !important;
      }
    }
  @media print {
    .mb10 {
      margin-bottom: 10px !important;
    }
  }
.mb20 {margin-bottom: 10px !important;}
  @media only screen and (min-width: 768px) {
    .mb20 {
      margin-bottom: 20px !important;
    }
  }
  @media print {
    .mb20 {
      margin-bottom: 20px !important;
    }
  }
.mb30 {margin-bottom: 20px !important;}
  @media only screen and (min-width: 768px) {
    .mb30 {margin-bottom: 30px !important;}
  }
  @media print {
    .mb30 {margin-bottom: 30px !important;}
  }
.mb10-xs {
  margin-bottom: 10px !important; }
  @media only screen and (min-width: 768px) {
    .mb10-xs {
      margin-bottom: 0 !important; } }
  @media print {
    .mb10-xs {
      margin-bottom: 0 !important; } }
.mb20-xs {
  margin-bottom: 20px !important; }
  @media only screen and (min-width: 768px) {
    .mb20-xs {
      margin-bottom: 0 !important; } }
  @media print {
    .mb20-xs {
      margin-bottom: 0 !important; } }
.section-xs {
  padding-top: 5px !important;
  padding-bottom: 5px !important; }
  @media only screen and (min-width: 768px) {
    .section-xs {
      padding-top: 10px !important;
      padding-bottom: 10px !important; } }
  @media print {
    .section-xs {
      padding-top: 10px !important;
      padding-bottom: 10px !important; } }
.section-sm {
  padding-top: 20px !important;
  padding-bottom: 20px !important; }
  @media only screen and (min-width: 768px) {
    .section-sm {
      padding-top: 30px !important;
      padding-bottom: 30px !important; } }
  @media print {
    .section-sm {
      padding-top: 30px !important;
      padding-bottom: 30px !important; } }
.section-md {
  padding-top: 20px !important;
  padding-bottom: 20px !important; }
  @media only screen and (min-width: 768px) {
    .section-md {
      padding-top: 50px !important;
      padding-bottom: 50px !important; } }
  @media print {
    .section-md {
      padding-top: 50px !important;
      padding-bottom: 50px !important; } }
.section-lg {
  padding-top: 40px !important;
  padding-bottom: 40px !important; }
  @media only screen and (min-width: 768px) {
    .section-lg {
      padding-top: 60px !important;
      padding-bottom: 60px !important; } }
  @media print {
    .section-lg {
      padding-top: 60px !important;
      padding-bottom: 60px !important; } }
.section-xl {
  padding-top: 40px !important;
  padding-bottom: 40px !important; }
  @media only screen and (min-width: 768px) {
    .section-xl {
      padding-top: 80px !important;
      padding-bottom: 80px !important; } }
  @media print {
    .section-xl {
      padding-top: 80px !important;
      padding-bottom: 80px !important; } }


/* ------------------------------------------------------------
font
------------------------------------------------------------ */
/* family */
body {
  font-family: 'Lato',
 'Noto Sans CJK JP',
 "Helvetica Neue",
 Arial,
 "Hiragino Kaku Gothic ProN",
 "Hiragino Sans",
 メイリオ,
 Meiryo,
 sans-serif;
}

/* ------------------------------------------------------------
リンク設定
------------------------------------------------------------ */
a {
  color: #333333;
  text-decoration: none;
}

a:hover {
  color: #000000;
  text-decoration: none;
}

a:hover img {
  opacity: 0.6;
}

.txt-mincho {
  font-family: 游明朝, "Yu Mincho", YuMincho, "Hiragino Mincho ProN", HGS明朝E, serif;
}


/* ------------------------------------------------------------
header
------------------------------------------------------------ */


header .header-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: space-between;
      -ms-flex-pack: space-between;
          justify-content: space-between;
  height: 100px;
  /*max-width: 1170px;*/
  margin: 0 auto;
  z-index: 9999;
}
header .header-wrap .logo {
  padding: 0 0 0 50px;
}
header .header-wrap .logo a:hover {
  opacity: 1;
}
header .header-wrap .logo img {
  width: 300px;
}
header .header-wrap .headerNavArea {
  display: flex;
  justify-content: center;
  align-items: center;
}
header .header-wrap #menuList #g-nav-list ul {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
}
header .header-wrap #menuList #g-nav-list ul li {
  font-size: 16px;
  padding: 0 22px;
  position: relative;
}

header .header-wrap #menuList #g-nav-list ul li.active a:after,
header .header-wrap #menuList #g-nav-list ul li a:hover:after {
  transform: scaleX(1);
  visibility: visible;
}
header .header-wrap nav ul li a:after {
  content: '';
  position: absolute;
  bottom: -37px;
  left: 0;
  width: 100%;
  height: 3px;
  transform: scaleX(0);
  background-color: #0076d9;
  -moz-transition: all 0.3s ease;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  visibility: hidden;
}

header .header-wrap #menuList #g-nav-list ul li.noneBorder a:hover:after {
  visibility: hidden;
}

header .header-wrap #menuList #g-nav-list ul li.naviInLogo {
  display: none;
}
header .header-wrap #menuList #g-nav-list ul li:last-child {
  padding: 0px
}
header .header-wrap .headerContactBtn {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: wrap;
  padding: 24px 30px 25px 30px;
  color: #fff;
  background: #0076d9;
  font-size: 16px;
  font-weight: bold;
  z-index: 2;
}

header .header-wrap .headerContactBtn:hover {
  background: #4fafff;
}

header .header-wrap .headerContactBtn .iconMail {
  display: block;
  width: auto;
  margin: 0 auto;
}
header .header-wrap .headerContactBtn:hover  .iconMail{
  opacity: 1;
}

header .header-wrap .headerContactBtn span {
  display: block;
  line-height: 1;
  margin-top: 17px;
}


@media only screen and (max-width: 1200px) {
  header .header-wrap .logo {
    padding: 0 0 0 15px;
  }
  header .header-wrap .logo img {
    width: 250px;
  }
  header .header-wrap #menuList #g-nav-list ul li {
    font-size: 14px;
    padding: 0 10px;
    text-align: left;
  }
  header .header-wrap .headerContactBtn {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    padding: 26px 15px 25px 15px;
    color: #fff;
    background: #0076d9;
    font-size: 14px;
    font-weight: bold;
    z-index: 2;
  }
  header .header-wrap nav ul li a:after {
    bottom: -39px;
  }

}

@media only screen and (max-width: 991px) {
  header .header-wrap .logo {
    padding: 0 0 0 15px;
  }
  #menuList {
    position: fixed;
    z-index: 999;
    top: 0;
    right: -70%;
    width: 70%;
    height: 100vh;
    background: #fff;
    transition: all 0.6s;
    text-align: center;
  }
  #menuList.panelactive {
    top: 0px;
    right: 0px;
  }
  #menuList.panelactive #g-nav-list {
    position: fixed;
    z-index: 999;
    width: 75%;
    height: 100vh;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
  #menuList ul {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    position: absolute;
    z-index: 999;
    top:0;
    left:0;
  }
  #menuList ul li {
    display: block;
    width: 100%;
    border-bottom: 1px solid #A6AAAF;
    font-size: 14px;
    font-size: .875rem;
    background-color: #F7F7F7;
    line-height: 1.8;
  }
  #menuList ul li.active {
    background: #fff;
  }
  header .header-wrap #menuList #g-nav-list ul li {
    padding: 0;
  }

  header .header-wrap .active .headerContactBtn {
    background-color: #fff;
  }

  header .header-wrap .headerContactBtn {
    background-color: #F7F7F7;
  }





  header .header-wrap .headerContactBtn span {
    margin-top: 0px;
    line-height: 1.8;
  }
  header .header-wrap .headerContactBtn .iconMail {
    display: none;
  }
  header .header-wrap #menuList #g-nav-list ul li.naviInLogo {
    display: block;
    padding: 25px;
    background: #fff;
    border-bottom: 1px solid #A6AAAF;
  }
  header .header-wrap #menuList #g-nav-list ul li a:hover {
    background: #fff;
  }
  header .header-wrap #menuList #g-nav-list ul li.naviInLogo img {
    width: 200px;
  }
  #menuList ul li a{
    color: #333;
    text-decoration: none;
    padding: 20px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }
  #menuList ul li.active a{
    color: #333;
  }
  #menuList ul li a.active {
    color:#fff;
  }
  .headerContactBtn {
    display: none;
  }
  .openbtn{
    position:fixed;
    z-index: 9999;
    top:20px;
    right: 20px;
    cursor: pointer;
    width: 40px;
    height:40px;
  }
  .openbtn span{
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 11px;
    height: 3px;
    border-radius: 2px;
    background-color: #fff;
    width: 45%;
  }
  .openbtn span:nth-of-type(1) {
    top:10px;
    background-color:#0076d9;
  }
  .openbtn span:nth-of-type(2) {
    top:18px;
    background-color:#0076d9;
  }
  .openbtn span:nth-of-type(3) {
    top:26px;
    background-color:#0076d9;
  }
  .openbtn.active span:nth-of-type(1) {
    top: 13px;
    left: 11px;
    transform: translateY(6px) rotate(-45deg);
    width: 45%;
    background-color:#0076d9;
  }
  .openbtn.active span:nth-of-type(2) {
    opacity: 0;
  }
  .openbtn.active span:nth-of-type(3){
      top: 25px;
      left: 11px;
      transform: translateY(-6px) rotate(45deg);
      width: 45%;
      background-color:#0076d9;
  }
}

@media only screen and (max-width: 768px) {
  header .header-wrap {
    height: 80px;
  }
  header .header-wrap .logo {
    width: 200px;
  }
}





/* ------------------------------------------------------------
  MAIN 画像
------------------------------------------------------------ */

.mainVisual {
  width: 100%;
  margin: 0 auto;
  background-image: url(../images/main.jpg);
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
  height: 100%;
  padding: 0 0 315px 0;
  display: flex;
  z-index: 3;
  position: relative;
  -webkit-box-pack: justify;
  justify-content: space-between;
}
.mainTextArea {
  width: auto;
  margin: 0 auto;
  text-align: center;
}
.mainText01 {
  font-size: 100px;
  font-weight: bold;
  font-family: "Roboto";
  padding: 315px 0 0 0;
  color: #fff;
  line-height: 1;
  text-shadow: 0px 0px 15px rgba(0,0,0,0.8);
  z-index: 2;
}
.mainText02 {
  font-size: 26px;
  font-weight: bold;
  font-family: "Noto Sans CJK";
  padding: 60px 0 0 0;
  color: #fff;
  text-shadow: 0px 0px 15px rgba(0,0,0,0.8);
  z-index: 2;
}
#introArea {
  font-family: "Noto Sans CJK";
  background-image: url(../images/introBk.jpg);
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
  text-align: center;
  padding: 100px 0;
}
.introAreaH2 {
  font-size: 40px;
  font-weight: bold;
}
.introAreaText {
  font-size: 20px;
  margin: 80px 0 0 0;
}
.introAreaBtn {
  display: inline-block;
  width: 300px;
  margin: 60px auto 0;
  font-size: 20px;
  font-weight: bold;
  color: #fff;
  padding: 20px 0;
  background: #0076d9;
  border-radius: 30px;
  line-height: 1;
}
.introAreaBtn:hover {
  color: #fff;
  opacity: 0.7;
}


#businessArea {
  padding: 80px 0 0 0;
}
#materialArea {
  padding: 80px 0 0 0;
}
#plasticArea {
  padding: 80px 0;
}
.row-quality {
  position: relative;
  min-height: 150px;
}
.flexBox {
  display: flex;
  align-content: center;
  align-items: center;
  flex-wrap: wrap;
  background: rgba(0,0,0,0.0);
  flex: none;
  flex-direction: row;
  flex-wrap: nowrap;
  height: 500px;
  justify-content: center;
  width: 100%;
  max-width: 100%;
}
.row-reverse {
  flex-direction: row-reverse;
}
.flexBoxImgArea {
  align-content: flex-start;
  align-items: flex-start;
  background: rgba(0,0,0,0.0);
  flex: none;
  flex-direction: column;
  flex-wrap: nowrap;
  height: 100%;
  justify-content: center;
  margin: 0px 0px 0px 0px;
  padding: 0px 40px 0px 0px;
  width: 100%;
  max-width: 100%;
}
.flexBoxTextArea {
  align-content: flex-start;
  align-items: flex-start;
  background: rgba(0,0,0,0.0);
  flex: 1;
  flex-direction: column;
  flex-wrap: nowrap;
  height: 100%;
  justify-content: center;
  padding: 0px 200px 0px 100px;
  width: auto;
  max-width: 100%;
}
.flexBoxTextArea02 {
  align-content: flex-start;
  align-items: flex-start;
  background: rgba(0,0,0,0.0);
  flex: 1;
  flex-direction: column;
  flex-wrap: nowrap;
  height: 100%;
  justify-content: center;
  padding: 0px 100px 0px 200px;
  width: auto;
  max-width: 100%;
}
.row-quality .bg {
  padding: 0;
  height: 500px;
  width: 45%;
  z-index: 1;
}
.topTitleH2 {
  position: relative;
  margin: 150px 0 0 0;
  font-size: 30px;
  font-weight: bold;
  font-family: 'Noto Sans JP', sans-serif;
}
.topTitleH2 .en {
  position: absolute;
  top: -65px;
  left: 0px;
  font-size: 100px;
  color: #ddeefc;
  z-index: -1;
  font-family: 'Roboto', sans-serif;
}
.topText {
  font-size: 18px;
  margin: 60px 0 0 0;
}
.moreBtnarrow {
  position: relative;
  display: inline-block;
  font-weight: bold;
  margin: 30px 20px 30px 0;
  padding: 0 58px 0 18px;
  color: #0076d9;
  text-decoration: none;
  outline: none;
}
.moreBtnarrow:hover {
  color: #0076d9;
}
.moreBtnarrow::before{
  content: '';
  position: absolute;
  bottom:-8px;
  left:15%;
  width: 85%;
  height: 1px;
  background:#0076d9;
  transition: all .3s;
}
.moreBtnarrow::after{
  content: '';
  position: absolute;
  bottom:-3px;
  right:0;
  width: 15px;
  height:1px;
  background:#0076d9;
  transform: rotate(35deg);
  transition: all .3s;
}
.moreBtnarrow:hover::before{
  left:25%;
}
.moreBtnarrow:hover::after{
  right:-10%;
}

@media only screen and (max-width: 1200px) {
  .flexBoxTextArea {
    padding: 0px 100px 0px 50px;
  }
  .flexBoxTextArea02 {
    padding: 0px 50px 0px 100px;
  }
}
@media only screen and (max-width: 991px) {
  .mainText01 {
    font-size: 80px;
  }
  .mainText02 {
    font-size: 24px;
  }
  #businessArea {
    padding:0px;
  }
  .flexBox {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .flexBoxTextArea {
    display: block;
    padding: 0;
    z-index: 2;
    background: #fff;
    width: auto;
    padding: 0 30px;
    height: 100%;
  }
  .flexBoxTextArea02 {
    padding: 0 30px;
    z-index: 2;
    width: 100%;
    height: 100%;
  }
  .row-quality .bg {
    width: 100%;
  }
  .flexBox {
    height: auto;
  }
  .topTitleH2 {
    margin: 130px 0 0 0;
  }
  .topTitleH2 .en {
    position: absolute;
    top: -75px;
    left: 0px;
    right: 0px;
    font-size: 100px;
    color: #ddeefc;
    z-index: -1;
    font-family: 'Roboto', sans-serif;
  }
  .moreBtnarrow {
    padding: 0 60px 0 18px;
  }
}
@media only screen and (max-width: 768px) {
  .mainVisual {
    padding: 0 0 40vw;
  }
  .mainText01 {
    font-size: 50px;
    padding: 40vw 15px 0;
  }
  .mainText02 {
    font-size: 16px;
    padding: 10vw 15px 0;
  }
  .introAreaH2 {
    font-size: 30px;
  }
  .introAreaText {
    font-size: 16px;
    margin: 8vw 0 0 0;
  }
  .introAreaBtn {
    width: 80%;
    font-size: 16px;
    margin: 8vw auto 0;
  }
  #businessArea {
    padding:0px;
  }
  .flexBox {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
  .flexBoxTextArea {
    display: block;
    padding: 0;
    z-index: 2;
    width: auto;
    padding: 80px 30px 0;
    height: 100%;
  }
  .flexBoxTextArea02 {
    display: block;
    padding: 0;
    z-index: 2;
    width: auto;
    padding: 80px 30px 0;
    height: 100%;
  }
  .row-quality .bg {
    width: 100%;
    height: 250px;
  }
  .topTitleH2 {
    font-size: 22px;
    margin: 0 auto;
  }
  .topTitleH2 .en {
    position: absolute;
    top: -60px;
    left: 0px;
    right: 0px;
    font-size: 60px;
    color: #ddeefc;
    z-index: -1;
    font-family: 'Roboto', sans-serif;
  }
  .topText {
    margin: 30px 0 0 0;
  }
  .moreBtnarrow {
    padding: 0 60px 0 18px;
  }
}



#contactArea {
  width: 100%;
  margin: 0 auto;
  padding: 90px 0;
  background-image: url(../images/contactBk.jpg);
  background-repeat: no-repeat;
  background-size: cover;
}
.contactConts {
  text-align: center;
}
.contactTitleH3 {
  position: relative;
  font-size: 30px;
  font-weight: bold;
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
  z-index: 2;
}
.contactTitleH3 .en {
  position: absolute;
  top: -65px;
  left: 0px;
  right: 0px;
  font-size: 100px;
  color: rgba(242,242,242,0.2);
  font-family: 'Roboto', sans-serif;
  z-index: 1;
}
.topTitleText {
  padding: 60px 0 0 0;
  font-size: 18px;
  line-height: 1.8;
  color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
}
.contactMoreBtnarrow {
  position: relative;
  display: inline-block;
  margin: 64px 0 0 0;
  padding: 20px 118px;
  font-size: 20px;
  font-weight: bold;
  background: #fff;
  border-radius: 50px;
  line-height: 1;
}
.contactMoreBtnarrow::before{
  content: '';
  position: absolute;
  bottom: 46%;
  right: 30px;
  width: 7%;
  height: 2px;
  background: #333;
  transition: all .3s;
}
.contactMoreBtnarrow::after{
  content: '';
  position: absolute;
  bottom: 54%;
  right: 28px;
  width: 15px;
  height: 2px;
  background: #333;
  transform: rotate(35deg);
  transition: all .3s;
}
.contactMoreBtnarrow:hover::before{
  right: 24px;
}
.contactMoreBtnarrow:hover::after{
  right: 22px;
}
.footerTopArea {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 80px 0px;
  max-width: 1110px;
  margin: 0 auto;
}
.footerTopArea .footerLogo {
  margin-bottom: 38px;
}
.footerNavArea {
  display: flex;
}
.footerNavList {
  margin-right: 80px;
}
.footerNavList02 {
  margin-right: 0px;
}
.footerNavArea li {
  position: relative;
  margin-bottom: 8px;
}
.footerNavArea li:before {
  content: "\f0da";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  display: inline;
  position: absolute;
  top: 0px;
  left: -10px;
  bottom: 0px;
}
.footerAddress {
  font-size: 16px;
}
.iconMap {
  width: 14px;
  margin: 0 0 0 16px;
}
.footerNaviList {

}

@media only screen and (max-width: 991px) {
  #contactArea {
    background-position: center;
  }
  .contactConts {
    padding: 0 30px;
  }
  .contactTitleH3 {
    font-size: 22px;
    margin: 0 auto;
  }
  .contactTitleH3 .en {
    font-size: 60px;
  }
  .contactMoreBtnarrow {
    width: 80%;
    font-size: 16px;
    margin: 8vw auto 0;
    padding: 20px 0;
  }
}


@media only screen and (max-width: 768px) {
  .footerTopArea {
    flex-wrap: wrap;
    padding: 15vw 0;
  }
  .footerTopArea .footerLogo {
    margin-bottom: 5vw;
  }
  .footerContainerLeft {
    width: 90%;
    margin: 0 auto;
    text-align: center;
  }
  .footerNavArea {
    justify-content: space-around;
    width: 90%;
    margin: 30px auto;
    text-align: center;
  }
  .footerNavList {
    margin-right: 0px;
  }
  .footerNavArea li {
    font-size: 14px;
    display: flex;
    flex-wrap: wrap;
    margin-top: 10px;
  }
  .footerAddress {
    font-size: 13px;
  }
  .iconMap {
    margin: 0 0 0 5px;
  }
}

@media print {

}


/* ------------------------------------------------------------
footer
------------------------------------------------------------ */
footer {
  border-top: 1px solid #ccc;
}

.copyrightArea {
   background: #f2f2f2;
}
.copyright {
  text-align: center;
  padding: 26px 0;
  border-top: 1px solid #ccc;
}



@media only screen and (min-width: 768px) {

}
@media print {

}




#business .pageTitleArea {
   background-image: url(../images/h2_title_business_bg.jpg);
}
#product .pageTitleArea {
   background-image: url(../images/h2_title_product_bg.jpg);
}
#goods .pageTitleArea {
   background-image: url(../images/h2_title_goods_bg.jpg);
}
#company .pageTitleArea {
   background-image: url(../images/h2_title_company_bg.jpg);
}
#contact .pageTitleArea {
   background-image: url(../images/h2_title_contact_bg.jpg);
}


.pageTitleArea {
  padding-top: 150px;
  padding-bottom: 150px;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: reverse;
  -ms-flex-direction: column-reverse;
  flex-direction: column-reverse;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: cover;
  background-position: center;
}

.pageTitleArea .title_text {
  font-size: 36px;
  font-weight: 600;
  letter-spacing: 1.12px;
  color: #fff;
}

.pageTitleArea .title_subtext {
  font-size: 18px;
  font-weight: bold;
  font-family: "Roboto", sans-serif;
  letter-spacing: 0.56px;
  color: #fff;
}


.productListConts {
  display: flex;
  justify-content: space-between;
  align-self: center;
  flex-wrap: wrap;
  margin: 30px 0 0 0;
  padding: 0;
}

.productListConts li {
  display: block;
  width: 32.65625%;
  margin: 0 0 20px 0;
  -webkit-box-shadow: 2px 4px 4px rgb(0 0 0 / 10%);
  box-shadow: 2px 4px 4px rgb(0 0 0 / 10%);
  background: #f9f9f9;
}

.productListContsBox{
  margin: 20px 0px;
}

.productListConts li .productListH3 {
  padding: 5px 0px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 14px;
  font-weight: bold;
  color: #0076d9;
  text-align: center;
  line-height: 1.4;
}

.productListConts li .productListText {
  font-size: 14px;
  margin: 20px 15px 0;
  color: #333;
  text-align: left;
}


#handlingBk {
   background-image: url(../images/handlingBk.jpg);
   background-size: cover;
   margin-top: 90px;
}
.handlingAreaConts {
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  flex-wrap: wrap;
  margin-top: 30px;
}
.handlingAreaConts ul {
  width: 33.33%;
}
.handlingAreaConts ul li {
  font-size: 14px;
  text-align: left;
  margin-bottom: 10px;
}
.handlingAreaConts ul li a {
  text-decoration: underline;
}
.handlingAreaConts ul li a:hover {
  text-decoration: none;
}


.flowStep-legalforce::before {
    background-color: #0076d9;
}
.flowStep::before {
  position: absolute;
  top: 0;
  left: 80px;
  transform: translateX(-50%);
  display: block;
  height: 100%;
  width: 5px;
  content: "";
  z-index: 0;
}
.flowStep {
  position: relative;
  margin: 20px 0;
  padding: 10px 0;
  list-style-type: none;
}
.flowStep li {
  margin: 20px 0;
}
.flowStep_item {
  position: relative;
  display: flex;
  align-items: center;
  z-index: 1;
}
.flowStep_num {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 160px;
  margin-right: 40px;
  padding: 8px 0;
  background-color: white;
  border: 1px solid #555864;
  box-shadow: 2px 4px 4px rgb(0 0 0 / 10%);
  -webkit-box-shadow: 2px 4px 4px rgb(0 0 0 / 10%);
}
.flowStep_num::before {
  position: absolute;
  right: 0;
  transform: translateX(100%);
  display: block;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 16px solid #555864;
  content: "";
}
.flowStep_num span:nth-child(1) {
  display: inline-block;
  margin-right: 12px;
  font-size: 20px;
  font-size: 1.25rem;
}
.flowStep_num span:nth-child(2) {
  margin-bottom: 4px;
  font-weight: normal;
  font-size: 50px;
  font-size: 3.125rem;
}
.flowStep_desc {
  display: flex;
  align-items: center;
  width: calc(100% - 200px);
  padding: 12px 32px;
  background: white;
  border: 1px solid #555864;
  box-shadow: 2px 4px 4px rgb(0 0 0 / 10%);
  -webkit-box-shadow: 2px 4px 4px rgb(0 0 0 / 10%);
}
.flowStep_img {
  display: flex;
  align-items: center;
}
.flowStep_ttl {
  width: calc(9rem + 40px);
  padding: 0 24px 0 16px;
  text-align: center;
  line-height: 1.4;
  font-weight: normal;
  color: #555864;
  font-size: 16px;
  font-size: 1rem;
}
.flowStep_text {
    width: calc(100% - 64px - 9rem - 40px);
    padding: 16px 0 16px 24px;
    border-left: 1px solid #555864;
    line-height: 1.8;
    font-size: 14px;
    font-size: .875rem;
    color: #555864;
}
.contactAreaIntro {
  text-align: center;
  padding: 80px 0;
}
.contactIntroText {
  line-height: 1.8;
}
.contactAreaH2 {
  font-size: 30px;
  font-weight: bold;
  margin-bottom: 10px;
}

@media only screen and (max-width: 768px) {
  .flowStep-legalforce::before {
      background-color: #0076d9;
  }
  .flowStep::before {
    display: none;
  }
  .flowStep {
    position: relative;
    margin: 20px 0;
    padding: 10px 0;
    list-style-type: none;
  }
  .flowStep li {
    margin: 20px 0;
  }
  .flowStep_item {
    flex-direction: column;
    margin-left: 32px;
  }
  .flowStep_num {
    padding: 0;
    margin: 0 0 8px 0;
    width: 100%;
    background: transparent;
    border: none;
    box-shadow: none;
  }
  .flowStep_num::before {
    left: 0px;
    right: auto;
    border: none;
    width: 20px;
    height: 20px;
    border-radius: 999rem;
    background-color: #555864;
  }
  .flowStep_num span:nth-child(1) {
    display: inline-block;
    margin-right: 12px;
    font-size: 20px;
    font-size: 1.25rem;
  }
  .flowStep_num span:nth-child(2) {
    margin-bottom: 4px;
    font-weight: normal;
    font-size: 50px;
    font-size: 3.125rem;
  }
  .flowStep_num::after {
    position: absolute;
    left: 30px;
    display: block;
    width: calc(50% - 100px);
    height: 1px;
    content: "";
    background-color: #555864;
  }
  .flowStep_desc {
    width: 100%;
    flex-direction: column;
    padding: 15px;
    border: 1px solid #ccc;
  }
  .flowStep_img {
    flex-wrap: wrap;
    justify-content: flex-start;
    flex-direction: row;
    padding: 0;
    margin: 0 0 16px -8px;
  }
  .flowStep_img img {
    display: block;
    width: 32px;
    height: 32px;
    margin: 0 auto 10px;
  }
  .flowStep_ttl {
    width: 100%;
    font-size: 20px;
    font-size: 1.25rem;
  }
  .flowStep_text {
    width: 100%;
    padding: 0;
    border: none;
    text-align: center;
  }
  .contactAreaIntro {
    text-align: center;
    padding: 40px 0 30px;
  }

}


.contactTable {
  padding: 10px;
  text-align: center;
}
.contactTableTitle {
  margin-bottom: 30px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  text-align: left;
}
.contactTable table {
  width: 100%;
}
.contactTable tr {
  border-top: 1px solid #e2e2e2;
}
.contactTable tr:last-child {
  border-bottom: 1px solid #e2e2e2;
}
.contactTable tr p {
  margin: 0 0 5px 10px;
}
.contactTable th {
  display: table-cell;
  height: 110px;
  text-align: left;
  vertical-align: top;
  width: 240px;
  font-size: 17px;
  font-weight: 600;
  padding-top: 40px;
}
.contactTable td {
  padding-left: 30px;
  font-size: 14px;
  display: table-cell;
  height: 110px;
  vertical-align: middle;
  text-align: left;
}
.contactTable td input {
  margin-left: 10px;
}
.contactTable td select {
  margin-left: 10px;
}
.contactTable td.textarea {
  height: auto;
  padding-top: 30px;
  padding-bottom: 30px;
  vertical-align: top;
}
.requir {
  display: inline-block;
  margin-right: 5px;
  padding: 3px 24px;
  border: 1px solid #e60012;
  color: #e60012;
  font-size: 13px;
}
.required {
  display: inline-block;
  padding: 3px 24px;
  border: 1px solid #e60012;
  color: #e60012;
  font-size: 13px;
  float: right;
}
.infoArea {
  font-size: 16px;
  padding: 0 80px;
  line-height: 2;
}
input[type=text], select, textarea {
    width: 100%;
    padding: 12px 18px;
    background: #e7e9eb;
    border: 0;
}
.form30 {
  width: 30%
}
.contractArea {
  padding: 60px;
}
.btn-wrapArea {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: distribute;
  justify-content: space-around;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  margin-top: 20px;
}
.btn-wrap input {
  margin: 0 15px;
  padding: 15px 0;
  background: #fff;
  text-align: center;
  color: #dc0000;
  font-size: 16px;
  width: 370px;
  font-weight: 700;
  cursor: pointer;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
  border: 2px solid #dc0000;
}
.btn-wrapConfirm input {
  padding: 15px 0;
  background: #0076d9;
  text-align: center;
  color: #fff;
  font-size: 16px;
  width: 370px;
  font-weight: 700;
  cursor: pointer;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
  border: 2px solid #0076d9;
}
.btn-wrap input:hover,
.btn-wrapConfirm input:hover {
  opacity: .7;
}

@media only screen and (max-width: 767px) {
  .phoneContactText {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .phoneContactNum span {
    font-size: 22px;
  }
  .phoneContactNum img {
    width: 36px;
  }
  .phoneContactTime {
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    display: inline;
  }
  .contactTable {
    padding: 0px;
    text-align: center;
  }
  .contactTableTitle {
    margin-bottom: 10px;
    font-size: 12px;
    line-height: 1;
    text-align: left;
  }
  .contactTitle {
    font-size: 20px;
    margin-bottom: 20px;
  }
  .contactTable table {
    width: 100%;
  }
  .contactTable tr {
    border-top: 1px solid #e2e2e2;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
  .contactTable tr:last-child {
    border-bottom: 1px solid #e2e2e2;
  }
  .contactTable th {
    display: block;
    height: auto;
    text-align: center;
    vertical-align: top;
    width: 100%;
    font-size: 12px;
    font-weight: 600;
    padding: 10px 0;
  }
  .contactTable td {
    font-size: 12px;
    display: block;
    vertical-align: middle;
    text-align: left;
    width: 100%;
    padding: 10px 0;
    height: auto;
  }

  .contactTable td input {
    margin-left: 0px;
  }

  .contactTable td select {
    margin-left: 0px;
  }


  .contactTable td.textarea {
    height: auto;
    padding-top: 20px;
    padding-bottom: 30px;
    vertical-align: top;
  }
  .requir {
    display: inline-block;
    margin-right: 5px;
    padding: 3px 24px;
    border: 1px solid #e60012;
    color: #e60012;
    font-size: 13px;
    position: relative;
  }
  .required {
    display: inline-block;
    padding: 3px 14px;
    border: 1px solid #e60012;
    color: #e60012;
    font-size: 12px;
    position: absolute;
    right: 10px;
  }
  .infoArea {
    font-size: 16px;
    padding: 0 80px;
    line-height: 2;
  }
  input[type=text], select, textarea {
      width: 100%;
      padding: 12px 18px;
      background: #e7e9eb;
      border: 0;
  }
  .form30 {
    width: 100%
  }
  .contractArea {
    padding: 60px;
  }
  .btn-wrapArea {
    flex-wrap: wrap;
  }
  .btn-wrap {
    width: 90%;
    text-align: center;
  }
  .btn-wrapConfirm {
    margin: 15px auto 0;
    width: 90%;
    text-align: center;
  }
  .btn-wrapConfirm input {
    width: 90%;
    margin: 0 auto;
  }
  .btn-wrap input {
    width: 90%;
    margin: 0 auto;
  }
}

.section {
  padding: 96px 0 60px;
}
.otherConflictBox {
  margin: 30px auto;
}
.sectionTitleH2 {
  font-size: 40px;
  font-weight: bold;
  position: relative;
  margin: 0 0 50px 0;
  padding: 1rem;
  text-align: center;
}
.sectionTitleH2:before {
  position: absolute;
  bottom: -4px;
  left: calc(50% - 50px);
  width: 100px;
  height: 3px;
  content: '';
  border-radius: 3px;
  background: #0076d9;
}
.sectionTitleH3  {
  font-size: 22px;
  line-height: 1.6;
}
.titleH3 {
  font-size: 22px;
  font-weight: bold;
  display: flex;
  align-items: center;
  color: #333;
  margin-top: 50px;
}
.titleH3:before {
  content: '';
  width: 40px;
  height: 4px;
  background-color: #ffda36;
  margin-right: 1rem;
}
.sectionText {
  font-size: 16px;
  margin: 30px 0 30px;
  line-height: 1.8;
}
.sectionText02 {
  margin: 20px 0 0 0;
}
.conflictText {
  font-size: 14px;
  margin-top: 20px;
}
.otherConflictMakerBox {
  margin: 20px 0;
}
.otherConflictMakerTitle {
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.04em;
  background: #ffda36;
  display: inline-block;
  margin: 0 20px 10px 0;
  padding: 8px 15px;
}
.otherConflictMakerLink {
  font-size: 14px;
  margin-top: 20px;
}
.otherConflictMakerLink a {
  color: #0076d9;
  margin-right: 5px;
  text-decoration: underline;
}
.otherConflictList {

}
.otherConflictList li {
  list-style: disc;
  margin: 5px 0 0 15px;
  font-size: 14px;
}
.otherConflictMakerLink a:hover {
  text-decoration: none;
}
.tableStyle01 {
  width: 100%;
  margin: 20px 0 40px;
}
.tableStyle01 th {
  font-weight: bold;
  width: 20%;
  padding: 20px 0 20px 20px;
  border-bottom: 1px solid #0076d9;
}
.tableStyle01 td {
  padding: 20px 0 20px 50px;
  border-bottom: 1px solid #333;
}
.pointTitle {
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.04em;
  margin: 0 0 20px;
  background: #ffda36;
  display: inline-block;
  padding: 8px 20px;
}
.featureConts {
  padding: 30px 0;
}
.featureConts-reverse {
  padding: 30px 0;
}
.plasticConts {
  padding: 10px 0;
}
.plasticText {
  font-size: 16px;
  margin: 0 0 30px;
  line-height: 1.6;
}
.plasticText02 {
  font-size: 14px;
  margin-bottom: 20px;
}
.mapTextArea {
  margin-top: 10px;
}
.mapTitle {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
}
.mapText {
  font-size: 14px;
  margin-left: 20px;
}
.mapText i {
  color:#0076d9;
  margin-right: 5px;
}


@media only screen and (max-width: 768px) {
  .section {
    padding: 30px 0 20px;
  }
  .sectionText {
    margin: 10px 0;
  }
  .sectionTitleH2 {
    font-size: 30px;
    margin: 0 0 30px 0;
  }
  .sectionTitleH3 {
    margin: 0 0 20px 0;
  }
  .productListConts li {
    width: 100%;
  }
  .handlingAreaConts ul {
    width: 100%;
  }
  .otherConflictMakerTitle {
    display: block;
  }
  .otherConflictMakerLink a {
    display: block;
    text-align: center;
    margin-bottom: 5px;
  }
  .tableStyle01 tbody tr {
    display: flex;
    flex-wrap: wrap;
    text-align: center;
  }
  .tableStyle01 th {
    width: 100%;
    padding: 10px;
    color: #0076d9;
  }
  .tableStyle01 td {
    width: 100%;
    padding: 10px;
    border-bottom: 1px solid #333;
  }
  .otherConflictList {
    margin-bottom: 20px;
  }
  .featureConts-reverse {
    flex-direction: column-reverse;
  }
}

.featureTitleH3 {
  font-size: 22px;
  font-weight: bold;
}
.featureImg {
  width: 100%;
  box-shadow: 6px 6px 0 rgb(0 0 0 / 10%);
  -webkit-box-shadow: 6px 6px 0 rgb(0 0 0 / 10%);
  border-radius: 15px;
}
.featureImg img {
  border-radius: 15px;
}




  .contactInfoAreaBox {
      width: 100%;
      margin: 0 auto;
      padding: 0px;
      position: relative;
  }
  .guideline .cont {
      box-sizing: border-box;
  }
  .guideline .guidelineDetail {
    margin-bottom: 20px;
    border: 1px solid #333;
    background: #fff;
  }
  .guideline .guidelineDetail dl {
      height: 365px;
      overflow-y: scroll;
  }
  .guidelineH3 {
    font-size: 22px;
    font-weight: bold;
    text-align: center;
    position: relative;
    margin-bottom: 20px;
  }
  .guidelineDetail dl dd {
    padding: 40px;
  }
  .guidelineDetail dl dd h4 {
    margin: 15px 0 10px 0;
    padding: 0 0 10px 0;
    font-size: 18px;
    font-weight: 600;
    border-bottom: 2px solid #333;
  }
  .guidelineDetail dl dd p {
    font-size: 14px;
    word-break: break-all;
  }
  .googleAddressArea {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0 0;
  }
  .googleAddressText i {
    margin-right: 10px;
  }
  .googleBtn {
    display: inline-block;
    color: #fff;
    background-color: #dc0000;
    text-align: center;
    padding: 10px 0;
    width: 220px;
  }
  .googleBtn:hover {
    color: #fff;
    opacity: 0.8;
  }

@media only screen and (max-width: 767px) {
  .guidelineDetail dl dd {
    padding: 20px 15px;
  }
  .googleAddressArea {
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  .googleBtn {
    margin: 20px 0;
  }
}


/* ------------------------------------------------------------
common
------------------------------------------------------------ */
/* contents wrap box */


.pc {display: block;}
.sp {display: none;}
@media only screen and (max-width: 768px) {
  .pc {display: none;}
  .sp {display: block;}
}

.bkBlue {
  background: #f4f7ff;
}

@media only screen and (min-width: 768px) {

}
@media print {

}




/*---------------------------------------------
  js 動きようCSS　　---ここから---　
-----------------------------------------------*/
.bgextend{
  animation-name:bgextendAnimeBase;
  animation-duration:1s;
  animation-fill-mode:forwards;
  position: relative;
  overflow: hidden;/*　はみ出た色要素を隠す　*/
  opacity:0;
}

@keyframes bgextendAnimeBase{
  from {
    opacity:0;
  }

  to {
    opacity:1;
}
}

/*中の要素*/
.bgappear{
  animation-name:bgextendAnimeSecond;
  animation-duration:1s;
  animation-delay: 0.6s;
  animation-fill-mode:forwards;
  opacity: 0;
}

@keyframes bgextendAnimeSecond{
  0% {
  opacity: 0;
  }
  100% {
  opacity: 1;
}
}

/*左から右*/
.bgLRextend::before{
  animation-name:bgLRextendAnime;
  animation-duration:1s;
  animation-fill-mode:forwards;
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: #666;/*伸びる背景色の設定*/
  display: block;
}
@keyframes bgLRextendAnime{
  0% {
    transform-origin:left;
    transform:scaleX(0);
  }
  50% {
    transform-origin:left;
    transform:scaleX(1);
  }
  50.001% {
    transform-origin:right;
  }
  100% {
    transform-origin:right;
    transform:scaleX(0);
  }
}



span.smoothText {
  overflow: hidden;
  display: block;
}

/* アニメーションで傾斜がついている文字列を水平に戻す*/
span.smoothTextTrigger{
  transition: 0.8s ease-in-out;
  transform: translate3d(0,100%,0) skewY(12deg);
  transform-origin: left;
  display: block;
}
span.smoothTextTrigger.smoothTextAppear{
    transform: translate3d(0,0,0) skewY(0);
}


/*---------------------------------------------
  js 動きようCSS　　---ここまで---　
-----------------------------------------------*/


/*---------------------------------------------
20220224 追加
-----------------------------------------------*/

.flexBoxList {
  display: flex;
  justify-content: space-between;
  text-align: center;
}

.flexBox02 {
  margin-bottom: 50px;
  width: 49%;
  display: flex;
  flex-direction: column;
  padding: 0px;
  position: relative;
  text-align: left;
}

.flexBoxText {
  margin-bottom: 10px;
}

.flexBoxImg {
  margin-top: auto;
}

@media only screen and (max-width: 768px) {
  .flexBoxList {
    flex-wrap: wrap;
  }
  .flexBox02 {
    width: 100%;
  }
}
