@charset "utf-8";
/* CSS Document */

/* =============================================================================
 Reset
============================================================================= */

/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/
abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#ff9;color:#000}mark{font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}
*,:after,:before{box-sizing:border-box}button,input[type=button]{margin:0;padding:0;border:0;border-radius:0;background-color:transparent;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}





/* =============================================================================
 variable
============================================================================= */
:root {
  --color-base: #00B0DF;
  --color-sub: #877D7C;
  --color-white: #fff;
  --color-gray: #555;

  --content-width-wide: 1266px;
  --content-width: 1086px;

  --transition-op: opacity ease .3s,visibility ease .3s;
  --transition-trf: transform ease .3s;
  --transition-all: all ease .3s;
}





/* =============================================================================
 Fonts
============================================================================= */

html {
  font-size: 62.5%;
}
body {
  font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic", sans-serif;
  font-size: 1.6rem;
}
.roboto {
  font-family: 'Roboto', sans-serif;
}
p,li,dt,dd,h1,h2,h3,h4,h5,h6 {
  line-height: 1.625;
}

@media screen and (max-width: 767px) {
}





/* =============================================================================
 Elements
============================================================================= */

/* color setting */
body {
  color: var(--color-base);
}



/* link setting */
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
}



/* image setting */
img {
  max-width: 100%;
  vertical-align: top;
}

@media screen and (max-width: 767px) {
  img {
    width: 100%;
  }
}



/* box */
*,*:before,*:after {
  box-sizing: border-box;
}



/* cursor */
button {
  cursor: pointer;
}





/* =============================================================================
 Responsive Class
============================================================================= */

@media screen and (min-width: 768px) {
  .only-sp {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .only-pc {
    display: none;
  }
}





/* =============================================================================
 common header
============================================================================= */

#header {
  padding: 0 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 77px;
}
#header .brandLogo {
  width: 176px;
}
@media screen and (max-width: 767px) {
  #header {
    padding: 0 calc(20/375*100%);
    height: 68px;
  }
  #header .brandLogo {
    width: 135px;
  }
  #header .companyLogo {
    width: 77px;
  }
}





/* =============================================================================
 common footer
============================================================================= */

#footer {
  padding: 30px 50px 20px;
  background-color: var(--color-base);
}
#footer .footerInner {
  margin: 0 auto;
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: var(--content-width);
}
#footer .footerLogo {
  width: 100px;
}
#footer .footerNavi {
  max-width: calc(100% - 120px);
}
#footer .footerNavi ul {
}
#footer .footerNavi ul li {
  display: inline-block;
  line-height: 1.25;
  color: var(--color-white);
  font-size: 1.4rem;
}
#footer .footerNavi ul li:after {
  margin: 0 .2em;
  content: '|';
}
#footer .footerNavi ul li:last-child:after {
  display: none;
}
#footer .footerNavi ul li a {
}
#footer .copyright {
  padding-top: 80px;
  width: 100%;
  color: var(--color-white);
  font-size: 1.2rem;
}
@media screen and (max-width: 767px) {
  #footer {
    padding: 30px calc(20/375*100%) 20px;
    text-align: center;
  }
  #footer .footerInner {
    display: block;
  }
  #footer .footerLogo {
    margin: 0 auto 40px;
    width: 67px;
  }
  #footer .footerNavi {
    max-width: inherit;
  }
  #footer .footerNavi ul {
  }
  #footer .footerNavi ul li {
    display: block;
    line-height: 2.666;
    font-size: 1.2rem;
  }
  #footer .footerNavi ul li:after {
    display: none;
  }
  #footer .copyright {
    padding-top: 40px;
    font-size: 1rem;
  }
}





/* =============================================================================
 pagetop
============================================================================= */

.pagetop {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: 48px;
  z-index: 10;
  opacity: 0;
  visibility: hidden;
  transition: opacity ease .6s,visibility ease .6s;
}
.pagetop.show {
  opacity: 1;
  visibility: visible;
}
.pagetop.bottom {
  position: absolute;
}




/* =============================================================================
 Page Styles
============================================================================= */

#mainArea {
  padding-left: 50px;
  padding-right: 50px;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  #mainArea {
    padding-left: 0;
    padding-right: 0;
  }
}



.hero {
  margin: 0 -50px 118px;
  position: relative;
}
.heroImg {
}
.heroImg img {
  width: 100%;
}
.hero .scroller {
  position: absolute;
  bottom: -22px;
  left: 50%;
  height: 70px;
  line-height: 1.3;
  color: var(--color-white);
  font-size: 1rem;
  transform: translateX(-50%);
}
.hero .scroller:after {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  width: 1px;
  height: 42px;
  background-color: var(--color-sub);
	animation: pathmove 1.4s ease-in-out infinite;
	opacity:0;
}
.hero p {
  padding-right: 15px;
  position: absolute;
  right: 0;
  bottom: -2.5em;
  color: var(--color-gray);
  line-height: 1.667;
  font-size: 1.2rem;
  text-align: right;
}
@keyframes pathmove{
  0%{height:0;top:16px;opacity: 0;}
  30%{height:42px;opacity: 1;}
  100%{height:0;top:100%;opacity: 0;}
}
@keyframes pathmove2{
  0%{height:0;top: 13px;opacity: 0;}
  30%{height:42px;opacity: 1;}
  100%{height:0;top:100%;opacity: 0;}
}
@media screen and (max-width: 767px) {
  .hero {
    margin: 0 0 24px;
  }
  .heroImg {
    margin-bottom: 13px;
  }
  .hero .scroller {
    display: none;
  }
  .hero p {
    padding: 0 calc(30/375*100%);
    position: static;
    text-align: left;
  }
}





.section {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--content-width);
}
.sectionTitle {
  line-height: 1.325;
  font-size: 5.8rem;
  font-family: 'Roboto', sans-serif;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.12em;
}
.sectionLabel {
  margin-top: -0.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #231815;
  font-weight: bold;
}
.sectionLabel:before,
.sectionLabel:after {
  content: '';
  display: block;
  margin: 0 16px;
  width: 32px;
  height: 2px;
  background-color: #231815;
}
.sup {
  font-size: 1rem;
  vertical-align: super;
  vertical-align: text-top;
}
@media screen and (max-width: 767px) {
  .section {
    padding-left: calc(30/375*100%);
    padding-right: calc(30/375*100%);
  }
  .sectionTitle {
    line-height: 1.625;
    font-size: 3.2rem;
  }
}





#about {
  margin-bottom: 216px;
}
.gallery {
  margin-bottom: 80px;
}
.gallery ul {
  margin: 0 auto;
  position: relative;
  max-width: 900px;
}
.gallery ul .galleryImg {
  box-shadow: 0 24px 6px rgba(0,0,0,.16);
}
.gallery ul li.-img01 {
  width: calc(550/900*100%);
}
.gallery ul li.-img02 {
  margin: calc(60/900*100%) 0 0;
  position: absolute;
  top: 0;
  right: 0;
  width: calc(300/900*100%);
}
.gallery ul li.-img03 {
  margin: calc(48/900*100%) 0 0 calc(100/900*100%);
  width: calc(350/900*100%);
}
#about .lead {
  text-align: center;
}
#about .leadTitle {
  margin-bottom: 64px;
}
#about .leadTitle img {
  width: 306px;
}
#about .leadText {
}
#about p {
  line-height: 2;
  font-size: 2.4rem;
  font-weight: bold;
}
#about p + p {
  margin-top: 0.5em;
}
#about p .em {
  background-image: linear-gradient(to bottom, transparent 60%, #FADBCD 60%);
}
#about .aboutWords {
  margin: 40px 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#about .aboutWords dl {
  padding: 15px;
  border-radius: 13px;
  width: calc(532/1086*100%);
  color: var(--color-white);
  background-color: var(--color-base);
  text-align: center;
}
#about .aboutWords dl dt {
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 1px dotted var(--color-white);
}
#about .aboutWords dl + dl {
  background-color: #E84D37;
}
#about .aboutWords p {
  margin: 10px 0 40px calc(554/1086*100%);
  width: calc(532/1086*100%);
  line-height: 1.5625;
  color: #E84D37;
  font-size: 1.6rem;
  font-weight: 500;
  text-align: center;
}
#about .aboutWords p.notice {
  margin: 0 0 0 calc(554/1086*100%);
  color: var(--color-gray);
  font-size: 1.2rem;
  text-align: right;
}
@media screen and (max-width: 767px) {
  #about {
    margin-bottom: 80px;
  }
  .gallery ul .galleryImg {
    box-shadow: 0 12px 12px rgba(0,0,0,.16);
  }
  .gallery ul li.-img01 {
    position: relative;
    left: calc(-30/315*100%);
    width: calc(230/315*100%);
  }
  .gallery ul li.-img02 {
    margin-top: calc(24/315*100%);
    right: calc(-30/315*100%);
    width: calc(125/315*100%);
  }
  .gallery ul li.-img03 {
    margin: calc(20/315*100%) 0 0 calc(12/315*100%);
    width: calc(146/315*100%);
  }
  #about .lead {
  }
  #about .leadTitle {
    margin-bottom: 60px;
  }
  #about .leadTitle img {
    width: 306px;
    max-width: 100%;
  }
  #about .leadText {
    text-align: left;
  }
  #about p {
    line-height: 2.117;
    font-size: 1.7rem;
    letter-spacing: -0.05em;
  }
  #about p .sup {
    vertical-align: super;
  }
  #about p + p {
    margin-top: 1em;
  }
  #about .aboutWords {
    display: block;
  }
  #about .aboutWords dl {
    margin-top: 26px;
    padding: 15px calc(25/315*100%) 20px;
    width: 100%;
  }
  #about .aboutWords dl:nth-child(1) dt img {
    width: 178px;
  }
  #about .aboutWords dl:nth-child(2) dt img {
    width: 210px;
  }
  #about .aboutWords dl dd {
    line-height: 1.555;
    font-size: 1.8rem;
  }
  #about .aboutWords p {
    margin: 18px 0 11px;
    width: auto;
    line-height: 1.785;
    font-size: 1.4rem;
  }
  #about .aboutWords p.notice {
    margin: 0;
    text-align: left;
  }
}





#features {
  padding-bottom: 70px;
}
#features .sectionTitle {
}
#features .sectionLabel {
  margin-bottom: 80px;
}
#features .featuresPoint + .featuresPoint {
  margin-top: 60px;
}
#features .pointLabel {
  margin-bottom: 32px;
  text-align: center;
}
#features .pointLabel .label {
}
#features .pointBody {
  padding: 70px 0;
  position: relative;
  z-index: 1;
}
#features .pointBody:before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  z-index: -1;
  width: 100vw;
  height: 100%;
  background-color: #EFF8FC;
  transform: translateX(-50%);
}
#features .pointTitle {
  margin-bottom: 10px;
  line-height: 1.555;
  font-size: 3.6rem;
  font-weight: bold;
  text-align: center;
}
#features .pointGraph {
  text-align: center;
}
#features .notice {
  margin-top: 10px;
  width: 100%;
  line-height: 1.545;
  color: var(--color-gray);
  font-size: 1.1rem;
  text-align: right;
}
@media screen and (min-width: 768px) {
  #features {
    padding-left: max(50px,calc(50% - 543px));
    padding-right: max(50px,calc(50% - 543px));
    max-width: inherit;
  }
}
@media screen and (max-width: 767px) {
  #features {
    padding-bottom: 80px;
  }
  #features .sectionLabel {
    margin-bottom: -10px;
  }
  #features .featuresPoint {
    margin-top: 60px;
    display: block;
  }
  #features .pointLabel {
    margin: 0 auto 20px;
    width: 90px;
  }
  #features .pointLabel:before,
  #features .pointLabel:after {
    display: none;
  }
  #features .pointBody {
    padding: 40px 0 30px;
    width: 100%;
  }
  #features .pointTitle {
    line-height: 1.5;
    font-size: 2.4rem;
  }
  #features .pointGraph {
    text-align: center;
  }
  #features .notice {
    margin-top: 20px;
    font-size: 1.2rem;
    text-align: left;
  }
  #features .featuresPoint.-point02 .pointGraph {
    margin-left: calc(-17/315*100%);
  }
}





.productKV {
  margin: 0 0 80px;
  padding: 0 100px;
}
.productKV img {
  width: 100%;
}
@media screen and (max-width: 767px) {
  .productKV {
    margin: 0 0 80px;
    padding: 0;
  }
}





#products {
  margin-bottom: 196px;
}
#products .sectionTitle {
}
#products .sectionLabel {
  margin-bottom: 60px;
}
#products .productTagline {
  margin-bottom: 56px;
  line-height: 1.35;
  font-size: 3rem;
  font-weight: bold;
  text-align: center;
}
#products .productTagline .em {
  font-size: 3.6rem;
}
#products .productsIntro {
  margin: 0 auto;
  max-width: var(--content-width);
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  background: url(../images/product_bg.png) bottom 120px right 15px no-repeat;
}
#products .itemPhoto {
  margin-left: calc(75/1086*100%);
  width: calc(440/1086*100%);
}
#products .itemPhoto .slick-dots {
  margin-top: 25px;
  height: 12px;
  text-align: center;
}
#products .introItem.-item02 .itemPhoto .slick-dots {
  padding-left: 16%;
}
#products .itemPhoto .slick-dots li {
  margin: 0 6px;
  display: inline-block;
}
#products .itemPhoto .slick-dots button {
  margin: 0;
  padding: 0;
  border-right: none;
  border-radius: 100px;
  display: inline-block;
  width: 12px;
  height: 12px;
  background-color: #E2E3E1;
  cursor: pointer;
  transition: background-color ease .3s;
  appearance: none;
  font-size: 0;
  text-indent: -9999px;
  vertical-align: top;
}
#products .itemPhoto .slick-dots .slick-active button {
  background-color: var(--color-sub);
}
#products .itemBody {
  width: 50%;
}
#products .itemMemo {
  color: #231815;
}
#products .itemMemo dd {
  font-weight: 500;
}
#products .itemMemo dd.gram {
  margin: 1em 0 0;
  font-size: 1.8rem;
}
#products .btnShop {
  margin-top: 40px;
}
#products .btnShop a {
  display: inline-block;
  border: 3px solid #231815;
  border-radius: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 256px;
  max-width: 100%;
  height: 72px;
  color: #231815;
  background-color: var(--color-white);
  font-size: 1.8rem;
  font-weight: 500;
  text-decoration: none;
  transition: color ease .3s, background-color ease .3s;
}
#products .notice {
  margin-top: 30px;
  width: 100%;
  color: var(--color-gray);
  font-size: 1.2rem;
  font-weight: 500;
  text-align: right;
}
#products .sectionSubTitle {
  margin: 70px 0 0;
  font-size: 5rem;
  text-align: center;
}
#products .howtoImage {
  text-align: center;
}
#products .howtoPoint {
  margin-top: 16px;
  text-align: center;
}
@media screen and (min-width: 768px) {
  #products {
    max-width: inherit;
  }
  #products .productsHowto {
    padding-left: max(50px,calc(50% - 543px));
    padding-right: max(50px,calc(50% - 543px));
  }
  #products .btnShop a:hover {
    color: var(--color-white);
    background-color: #231815;
  }
  #products .itemPhoto .slick-dots li button:hover {
    background-color: var(--color-sub);
  }
}
@media screen and (max-width: 767px) {
  #products {
    margin-bottom: 80px;
    padding: 0;
  }
  #products .sectionLabel {
    margin-bottom: 35px;
  }
  #products .productTagline {
    margin-bottom: 33px;
    line-height: 1.8;
    font-size: 2rem;
  }
  #products .productTagline .em {
    font-size: 2.4rem;
  }
  #products .productTagline .sup {
    vertical-align: super;
  }
  #products .productTagline .em .sup {
    display: inline-block;
    transform: translateY(-.2em);
  }
  #products .productsIntro {
    margin: 0 auto;
    max-width: var(--content-width);
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    background: url(../images/product_bg.png) bottom 120px right 15px no-repeat;
    background: none;
  }
  #products .itemPhoto {
    margin: 0 auto;
    width: calc(315/375*100%);
  }
  #products .itemBody {
    margin-top: 40px;
    width: 100%;
  }
  #products .itemMemo {
    margin: 0 0 0 calc(30/375*100%);
    padding-top: 60px;
    min-height: 176px;
    background: url(../images/product_bg.png) center right no-repeat;
    background-size: 235px auto;
    color: #231815;
  }
  #products .itemMemo dd {
    font-weight: 500;
  }
  #products .itemMemo dd.gram {
    margin: 1em 0 0;
    font-size: 1.8rem;
  }
  #products .btnShop {
    margin: 0 calc(30/375*100%);
    text-align: center;
  }
  #products .btnShop a {
    display: inline-flex;
    width: 180px;
    height: 50px;
    font-size: 1.2rem;
    font-weight: 700;
  }
  #products .notice {
    margin: 15px auto 0;
    width: calc(315/375*100%);
    font-size: 1.2rem;
    text-align: left;
  }
  #products .howtoImage {
    margin: 0 auto;
    width: calc(257/375*100%);
  }
  #products .howtoPoint {
    margin: 50px auto 0;
    width: calc(317/375*100%);
  }
}





#voice {
  padding-bottom: 80px;
  background-color: #EFF8FC;
}
#voice .sectionTitle {
  margin-bottom: -64px;
  position: relative;
  top: -54px;
}
#voice .sectionLabel {
  margin-bottom: 80px;
}
#voice .voiceList {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#voice .voiceList li {
  margin: 0 0 40px;
  padding: calc(32/1086*100%);
  width: calc(504/1086*100%);
  background-color: var(--color-white);
  box-shadow: 6px 24px 6px rgba(0,0,0,.16);
}
#voice .voiceList li p {
  line-height: 1.5;
  color: #000;
  font-size: 2rem;
  letter-spacing: -0.05em;
}
#voice .voiceList li p .em {
  font-weight: 700;
}
#voice .voiceList li .userData {
  margin: .5em 0 0;
  font-weight: 500;
  text-align: right;
}
#voice .voiceList li .userData .small {
  font-size: 80%;
}
@media screen and (min-width: 768px) {
  #voice {
    margin-left: -50px;
    margin-right: -50px;
    padding-left: max(50px,calc(50% - 493px));
    padding-right: max(50px,calc(50% - 493px));
    max-width: inherit;
  }
}
@media screen and (max-width: 767px) {
  #voice {
    margin-bottom: 0;
    padding-bottom: 40px;
  }
  #voice .sectionTitle {
    margin-bottom: -39px;
    top: -29px;
    font-size: 3rem;
  }
  #voice .sectionLabel {
    margin-bottom: 40px;
  }
  #voice .voiceList {
    display: block;
  }
  #voice .voiceList li {
    padding: 32px calc(20/315*100%);
    width: 100%;
  }
  #voice .voiceList li p {
    font-size: 1.6rem;
  }
  #voice .voiceList li .userData {
    font-size: 1.4rem;
  }
  #voice .voiceList li .userData .small {
    font-size: 100%;
  }
}



