@charset "UTF-8";

/*--- body -------------------------------------------------------------------------------------------------------------*/
body {
  background: #fff;
  color: #595757;
  font-family: "游ゴシック体", YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN","メイリオ", sans-serif;
  font-size: 16px;
  height: 100%;
  line-height: 1;
  text-align: left;
  width: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a:link, a:visited, a:active {
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

img {
  vertical-align: bottom;
}

.sp-only {
  display: none;
}

/*--- /body ------------------------------------------------------------------------------------------------------------*/
.content {
  margin: 0 auto;
  width: 990px;
}

h2 {
  font-size: 16px;
  letter-spacing: .1em;
  line-height: 1.5;
  text-align: center;
}

h2 span {
  color: #1ac4c7;
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 40px;
  letter-spacing: .2em;
}

header {
  padding-top: 40px;
}

header .logo {
  margin: 0 auto;
  width: 197px;
}

header .logo img {
  width: 100%;
}

header nav {
  background: #e9f9f9;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 0;
  margin-top: 30px;
  position: relative;
  text-align: center;
  z-index: 1;
}

header nav li {
  display: inline-block;
  position: relative;
}

header nav li + li {
  margin-left: 50px;
}

header nav li a {
  color: #595757;
  display: block;
  font-size: 16px;
  padding: 20px 0;
  position: relative;
}

header nav li a:after {
  background: url(../images/nav-on-line.jpg) no-repeat center center;
  background-size: 100%;
  content: '';
  display: block;
  height: 3px;
  left: 50%;
  opacity: 0;
  position: absolute;
  top: 85%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  transition: all .25s ease-out;
  width: 83px;
}

header nav li a:hover {
  text-decoration: none;
}

header nav li a:hover:after {
  opacity: 1;
  top: 80%;
}

header nav li.on a:after {
  opacity: 1;
  top: 80%;
}

.menu-btn {
  display: none;
}

/*------------------------------
            liquid
------------------------------*/
@media screen and (max-width: 1120px) {
  header nav li + li {
    margin-left: 30px;
  }
}

/*------------------------------
          add-media-800
------------------------------*/
@media screen and (max-width: 800px) {
  header nav li + li {
    margin-left: 20px;
  }
  header nav li a {
    font-size: 13px;
  }
}

/*------------------------------
              sp
------------------------------*/
@media screen and (max-width: 900px) {
  header {
    padding: 20px 0;
  }
  header .logo {
    width: 150px;
  }
  header nav {
    height: 100%;
    margin-top: 0;
    padding-top: 86px;
    position: fixed;
    right: 0;
    top: 0;
    text-align: left;
    -webkit-transform: translateX(110%);
            transform: translateX(110%);
    transition: all .25s ease-out;
    width: 300px;
    z-index: 1;
  }
  header nav li {
    display: block;
  }
  header nav li:before, header nav li:after {
    background: url(../images/nav-on-line.jpg) no-repeat center center;
    background-size: cover;
    content: '';
    display: block;
    height: 3px;
    width: 100%;
  }
  header nav li + li {
    margin-left: 0;
  }
  header nav li + li:before {
    display: none;
  }
  header nav li a {
    font-size: 15px;
    padding: 15px;
  }
  header nav li a:after {
    display: none;
  }
  header nav.on {
    -webkit-transform: none;
            transform: none;
  }
  .menu-btn {
    background: #1ac4c7;
    border-radius: 5px;
    display: block;
    padding: 13px 10px;
    position: fixed;
    right: 5%;
    top: 18px;
    z-index: 2;
  }
  .menu-btn div {
    height: 20px;
    margin: 0 auto;
    position: relative;
    width: 28px;
  }
  .menu-btn div span {
    background: #fff;
    display: block;
    height: 3px;
    left: 0;
    position: absolute;
    width: 100%;
    -webkit-transform-origin: center center;
            transform-origin: center center;
    transition: all .2s ease-out;
  }
  .menu-btn div span:nth-of-type(1) {
    top: 0;
  }
  .menu-btn div span:nth-of-type(2) {
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
  .menu-btn div span:nth-of-type(3) {
    bottom: 0;
  }
  .menu-btn.on div span:nth-of-type(1) {
    top: 50%;
    -webkit-transform: translateY(-50%) rotate(45deg);
            transform: translateY(-50%) rotate(45deg);
  }
  .menu-btn.on div span:nth-of-type(2) {
    opacity: 0;
  }
  .menu-btn.on div span:nth-of-type(3) {
    bottom: 50%;
    -webkit-transform: translateY(50%) rotate(-45deg);
            transform: translateY(50%) rotate(-45deg);
  }
}

.mv {
  position: relative;
}

.mv img {
  vertical-align: bottom;
  width: 100%;
}

.mv p {
  left: 50%;
  position: absolute;
  top: 50%;
  -webkit-transform: translate(-100%, -50%);
          transform: translate(-100%, -50%);
}

.mv p img {
  width: auto;
}

.about {
  background: url(../images/about-bg.jpg) no-repeat center top;
  background-size: 100%;
  padding-top: 80px;
}

.about .content {
  width: 880px;
}

.about .logo {
  text-align: center;
}

.about .logo + p {
  font-size: 18px;
  margin-top: 10px;
  text-align: center;
}

.about .logo + p span {
  display: inline-block;
  left: 2%;
  position: relative;
}

.about .txt-wap {
  display: flex;
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 21px;
  line-height: 1.8;
  margin-top: 60px;
}

.about .txt-wap div {
  margin-left: auto;
}

.products {
  margin: 70px 0;
}

.products .item-list {
  display: flex;
  flex-wrap: wrap;
  margin-top: 40px;
}

.products .item-list li {
  margin: 20px 0;
  width: 300px;
}

.products .item-list li:nth-of-type(3n-1) {
  margin-right: 45px;
  margin-left: 45px;
}

.products .item-list li .pic {
  text-align: center;
}

.products .item-list li .item-name {
  color: #1ac4c7;
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 23px;
  margin: 30px 0 20px;
  text-align: center;
}

.products .item-list li .item-txt {
  line-height: 1.7;
}

.greeting {
  background: #e9f9f9;
  padding: 70px 0;
}

.greeting .txt-wap {
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 18px;
  line-height: 1.8;
  margin-top: 40px;
  position: relative;
}

.greeting .txt-wap .harf {
  display: flex;
}

.greeting .txt-wap .harf div:nth-of-type(2) {
  margin-left: auto;
}

.greeting .txt-wap p + p {
  margin-top: 1em;
}

.greeting .txt-wap .tit {
  font-size: 28px;
  margin-bottom: 30px;
}

.greeting .txt-wap .tit span {
  color: #1ac4c7;
}

.greeting .txt-wap .name {
  bottom: 0;
  position: absolute;
  right: 0;
}

.greeting .txt-wap .name .greeting-pic {
  display: none;
}

.company {
  background: #1ac4c7;
  padding: 70px 0 80px;
}

.company h2 {
  color: #eaffff;
  margin-bottom: 40px;
}

.company h2 span {
  color: #feffff;
}

.company dl {
  color: #fff;
  display: table;
  font-size: 20px;
  line-height: 1.5;
  width: 100%;
}

.company dl + dl {
  border-top: 1px solid #fff;
}

.company dl dt {
  display: table-cell;
  padding: 20px 0 20px 30px;
  width: 15%;
}

.company dl dd {
  display: table-cell;
  padding: 20px 30px;
  width: 85%;
}

.map iframe {
  height: 560px;
  width: 100%;
}

.office {
  padding-top: 100px;
}

.office .content {
  width: 1070px;
}

.office .office-list {
  display: flex;
  flex-wrap: wrap;
  margin-top: 60px;
}

.office .office-list li {
  display: flex;
  line-height: 1.5;
  width: 48%;
}

.office .office-list li:nth-of-type(even) {
  margin-left: auto;
}

.office .office-list li:nth-of-type(3), .office .office-list li:nth-of-type(4) {
  margin-top: 70px;
}

.office .office-list li div + div {
  margin-left: 20px;
}

.office .office-list li .name {
  color: #1ac4c7;
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 21px;
  line-height: 1;
  margin-bottom: 10px;
}

.page-top-btn {
  bottom: 30px;
  position: fixed;
  right: 40px;
  width: 90px;
  z-index: 2;
}

.page-top-btn a {
  display: block;
  transition: all .3s ease-out;
}

.page-top-btn a img {
  width: 100%;
}

.page-top-btn a:hover {
  opacity: .7;
}

footer {
  margin-top: 130px;
}

footer .footer-menu {
  background: #e9f9f9;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  text-align: center;
}

footer .footer-menu ul {
  font-size: 0;
}

footer .footer-menu ul li {
  display: inline-block;
}

footer .footer-menu ul li + li {
  margin-left: 60px;
}

footer .footer-menu ul li a {
  color: #595757;
  display: block;
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 16px;
  padding: 15px 0;
}

footer .copy {
  color: #595757;
  font-family: "游明朝", YuMincho, "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 13px;
  padding: 30px 0;
  text-align: center;
}

/*------------------------------
            liquid
------------------------------*/
@media screen and (max-width: 1120px) {
  footer .footer-menu ul li + li {
    margin-left: 30px;
  }
}

/*------------------------------
          add-media-800
------------------------------*/
@media screen and (max-width: 800px) {
  .page-top-btn {
    bottom: 20px;
    right: 20px;
    width: 50px;
  }
  footer .footer-menu ul li + li {
    margin-left: 20px;
  }
  footer .footer-menu ul li a {
    font-size: 13px;
  }
}

/*------------------------------
              sp
------------------------------*/
@media screen and (max-width: 600px) {
  .page-top-btn {
    bottom: 15px;
    right: 20px;
    width: 45px;
  }
  .page-top-btn a:hover {
    opacity: 1;
  }
  footer {
    margin-top: 60px;
  }
  footer .footer-menu ul li {
    width: calc(100% / 3);
  }
  footer .footer-menu ul li + li {
    margin-left: 0;
  }
  footer .footer-menu ul li a {
    font-size: 12px;
    padding: 10px 0;
  }
  footer .copy {
    font-size: 10px;
    padding: 20px 0;
  }
}

/*------------------------------
          add-media-1270
------------------------------*/
@media screen and (max-width: 1270px) {
  .mv p {
    width: 45%;
  }
  .mv p img {
    width: 100%;
  }
}

/*------------------------------
            liquid
------------------------------*/
@media screen and (max-width: 1120px) {
  .content {
    width: 90%;
  }
  .about .content {
    width: 90%;
  }
  .about .txt-wap {
    font-size: 18px;
  }
  .about .txt-wap div {
    width: 50%;
  }
  .about .txt-wap div img {
    width: 100%;
  }
  .products .item-list li {
    margin: 20px 0;
    width: calc(100% / 3 - 3%);
  }
  .products .item-list li:nth-of-type(3n-1) {
    margin-right: 4%;
    margin-left: 4%;
  }
  .products .item-list li .pic img {
    width: 80%;
  }
  .greeting .txt-wap .name {
    position: static;
    text-align: right;
  }
  .office .content {
    width: 90%;
  }
  .office .office-list li {
    width: 48%;
  }
  .office .office-list li div {
    width: 40%;
  }
  .office .office-list li div img {
    width: 100%;
  }
  .office .office-list li div + div {
    margin-left: 5%;
    width: 65%;
  }
  .office .office-list li .name {
    font-size: 21px;
    line-height: 1.5;
  }
}

/*------------------------------
          add-media-800
------------------------------*/
@media screen and (max-width: 800px) {
  .about .logo img {
    width: 50%;
  }
  .about .logo + p {
    font-size: 18px;
  }
  .about .txt-wap {
    display: block;
    font-size: 21px;
    text-align: center;
  }
  .about .txt-wap div {
    margin: 20px auto 0;
    width: 60%;
  }
  .products .item-list li {
    margin: 20px 0;
    width: calc(100% / 2 - 4%);
  }
  .products .item-list li:nth-of-type(3n-1) {
    margin-right: auto;
    margin-left: auto;
  }
  .products .item-list li:nth-of-type(even) {
    margin-left: auto;
  }
  .greeting .txt-wap .harf div:nth-of-type(2) {
    display: none;
  }
  .greeting .txt-wap .name {
    margin: 20px auto 0;
    width: 60%;
  }
  .greeting .txt-wap .name .greeting-pic {
    display: block;
    width: 100%;
  }
  .company dl dt {
    width: 25%;
  }
  .company dl dd {
    width: 75%;
  }
  .office .office-list {
    display: block;
    flex-wrap: wrap;
    margin-top: 60px;
  }
  .office .office-list li {
    width: 100%;
  }
  .office .office-list li + li {
    margin-top: 40px;
  }
  .office .office-list li:nth-of-type(3), .office .office-list li:nth-of-type(4) {
    margin-top: 40px;
  }
  .office .office-list li div + div {
    margin-left: 20px;
  }
}

/*------------------------------
              sp
------------------------------*/
@media screen and (max-width: 600px) {
  img {
    width: 100%;
  }
  .sp-none {
    display: none;
  }
  .sp-only {
    display: block;
  }
  h2 {
    font-size: 13px;
  }
  h2 span {
    font-size: 25px;
  }
  .about {
    padding-top: 40px;
  }
  .about .logo + p {
    font-size: 13px;
  }
  .about .logo + p span {
    position: static;
  }
  .about .txt-wap {
    font-size: 16px;
    margin-top: 30px;
  }
  .products {
    margin: 35px 0;
  }
  .products .item-list {
    margin-top: 20px;
  }
  .products .item-list li {
    margin: 20px 0;
  }
  .products .item-list li .item-name {
    font-size: 16px;
    margin: 15px 0 10px;
  }
  .products .item-list li .item-txt {
    font-size: 13px;
  }
  .greeting {
    padding: 35px 0;
  }
  .greeting .txt-wap {
    font-size: 14px;
    margin-top: 20px;
  }
  .greeting .txt-wap p + p {
    margin-top: 1em;
  }
  .greeting .txt-wap .tit {
    font-size: 20px;
    margin-bottom: 10px;
  }
  .greeting .txt-wap .name img {
    width: 40%;
  }
  .greeting .txt-wap .name .greeting-pic {
    margin-bottom: 10px;
  }
  .company {
    padding: 35px 0 40px;
  }
  .company h2 {
    margin-bottom: 20px;
  }
  .company dl {
    display: block;
    font-size: 15px;
  }
  .company dl + dl {
    border-top: 1px solid #fff;
  }
  .company dl dt {
    display: block;
    padding: 15px 5% 5px 5%;
    width: 90%;
  }
  .company dl dt.sp-none {
    display: none;
  }
  .company dl dt.sp-none + dd {
    padding-top: 15px;
  }
  .company dl dd {
    display: block;
    padding: 0 5% 15px 5%;
    width: 90%;
  }
  .map iframe {
    height: 300px;
  }
  .office {
    padding-top: 50px;
  }
  .office .office-list {
    margin-top: 30px;
  }
  .office .office-list li {
    font-size: 13px;
  }
  .office .office-list li + li {
    margin-top: 30px;
  }
  .office .office-list li:nth-of-type(3), .office .office-list li:nth-of-type(4) {
    margin-top: 30px;
  }
  .office .office-list li div + div {
    margin-left: 10px;
  }
  .office .office-list li .name {
    font-size: 16px;
    margin-bottom: 10px;
  }
}
