/* ==========================================================================

LAYOUT WIDTH

========================================================================== */
/* ==========================================================================

COLOR

========================================================================== */
/* ==========================================================================

FONT

========================================================================== */
@import url("https://fonts.googleapis.com/css?family=Montserrat:100,200,300,400,500,600,700,800,900");
@import url("https://fonts.googleapis.com/css?family=Roboto+Mono:100,300,400,500,700");
/* ==========================================================================

SCREEN

========================================================================== */
/* ==========================================================================

MODULE

========================================================================== */
/* ==========================================================================
	
STYLE
	
========================================================================== */
.sectionCont .caption {
  margin-bottom: 80px; }
  @media only screen and (max-width: 640px) {
    .sectionCont .caption {
      margin-bottom: 20px; } }

#pageMV {
  width: 100%;
  height: 590px;
  position: relative;
  background-size: cover;
  background-position: center center;
  background-attachment: scroll; }
  @media only screen and (max-width: 640px) {
    #pageMV {
      height: 470px; } }
  #pageMV .sectiontitle {
    font-size: 4rem; }
    @media only screen and (max-width: 640px) {
      #pageMV .sectiontitle {
        font-size: 3.5rem;
        padding: 0 20px; } }
    #pageMV .sectiontitle .sText {
      font-size: 0.4em;
      margin-bottom: 10px; }
  #pageMV.black:after {
    background-color: rgba(17, 17, 17, 0.3); }
  #pageMV .halfSection {
    width: 100%;
    height: 100%;
    flex-flow: row nowrap; }
    @media only screen and (max-width: 640px) {
      #pageMV .halfSection {
        flex-flow: column wrap; } }
    #pageMV .halfSection .eachArea {
      background-size: cover;
      background-position: center center;
      background-attachment: scroll;
      flex: 0 0 50%;
      width: 50%;
      height: 100%;
      position: relative; }
      @media only screen and (max-width: 640px) {
        #pageMV .halfSection .eachArea {
          flex: 0 0 50%;
          width: 100%;
          height: 50%; } }
      #pageMV .halfSection .eachArea a {
        position: absolute;
        display: block;
        left: 50%;
        bottom: 100px;
        transform: translateX(-50%);
        z-index: 10;
        width: 50%;
        padding: 1.3em 0.3em; }
        @media only screen and (max-width: 640px) {
          #pageMV .halfSection .eachArea a {
            display: none; } }
  #pageMV.textShadow .sectiontitle {
    text-shadow: 1px 1px 10px black; }

#about p {
  font-size: 1.2em;
  line-height: 2.6em; }

#point .point-area {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; }
  #point .point-area li {
    width: 25%; }
    @media only screen and (max-width: 640px) {
      #point .point-area li {
        width: 50%;
        margin-bottom: 20px; } }
    #point .point-area li img {
      height: 80px;
      display: inline-block;
      width: auto;
      margin-bottom: 30px; }
      @media only screen and (max-width: 768px) {
        #point .point-area li img {
          height: 60px; } }
    #point .point-area li p {
      font-weight: bold; }

#point .pointList {
  flex-flow: row wrap;
  justify-content: center; }
  #point .pointList li {
    flex: 0 0 30.3333333%;
    margin: 0 1.5% 20px;
    flex-flow: row nowrap;
    padding: 30px 20px;
    align-items: center; }
    @media only screen and (max-width: 1080px) {
      #point .pointList li {
        flex: 0 0 48%;
        margin: 0 4% 20px 0;
        border: 1px solid #111; }
        #point .pointList li:nth-child(2n) {
          margin-right: 0; } }
    @media only screen and (max-width: 640px) {
      #point .pointList li {
        flex: 0 0 100%;
        margin: 0 0 20px 0;
        border: 1px solid #111; } }
    #point .pointList li .thum {
      flex: 0 0 150px;
      padding: 0 20px; }
      #point .pointList li .thum img {
        display: inline-block;
        height: 80px;
        width: auto; }
    #point .pointList li .cont {
      flex: 1 1 100%; }
      #point .pointList li .cont .point {
        font-size: 7px;
        letter-spacing: 0; }
        #point .pointList li .cont .point .number {
          font-size: 23px;
          display: block;
          letter-spacing: 0.1em;
          font-weight: 600; }
      #point .pointList li .cont .pointTitle {
        margin: 10px 0 15px 0;
        padding: 10px 0;
        line-height: 1.5em;
        font-size: 1.15rem; }
      #point .pointList li .cont p {
        opacity: .8;
        margin-bottom: 20px; }
      #point .pointList li .cont a {
        text-align: center;
        font-size: 0.8rem;
        color: #FF9E3C; }

#menuLineup #lineupList {
  flex-flow: row nowrap;
  justify-content: space-between; }
  @media only screen and (max-width: 640px) {
    #menuLineup #lineupList {
      flex-flow: row wrap;
      justify-content: center; } }
  #menuLineup #lineupList li {
    flex: 0 0 18%; }
    @media only screen and (max-width: 640px) {
      #menuLineup #lineupList li {
        flex: 0 0 30.33333333%;
        margin: 0 1.5% 15px; } }
    #menuLineup #lineupList li h3 {
      padding: 0.6em;
      line-height: 1.7em; }
      @media only screen and (max-width: 640px) {
        #menuLineup #lineupList li h3 {
          font-size: 1rem; } }

#menuLineup .subText {
  text-align: right;
  margin-top: 40px; }
  @media only screen and (max-width: 640px) {
    #menuLineup .subText {
      text-align: center;
      margin-top: 10px; } }

#menuLineup .gohan-menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 20px; }
  #menuLineup .gohan-menu li {
    width: 23%; }
    @media only screen and (max-width: 640px) {
      #menuLineup .gohan-menu li {
        width: 48%; } }
    #menuLineup .gohan-menu li img {
      width: 100%; }
    #menuLineup .gohan-menu li p {
      margin-top: 10px;
      margin-bottom: 20px;
      text-align: center; }

#menuLineup .cap {
  text-align: right;
  margin-bottom: 30px; }

.aboutServiceCont {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0; }
  .aboutServiceCont .titleImg {
    width: 100%;
    padding: 200px 20px;
    text-align: center;
    color: #fff;
    font-size: 3.5rem;
    background-size: cover;
    background-position: center center;
    background-attachment: scroll; }
    @media only screen and (max-width: 640px) {
      .aboutServiceCont .titleImg {
        font-size: 2rem;
        padding: 80px 10px; } }
    .aboutServiceCont .titleImg .en {
      font-size: 0.5em;
      display: block;
      margin-bottom: 10px; }
    .aboutServiceCont .titleImg .jp {
      font-weight: 900; }
  .aboutServiceCont .sectiontitle {
    padding-top: 70px; }
  .aboutServiceCont .pointList {
    flex-flow: row wrap;
    justify-content: center; }
    .aboutServiceCont .pointList li {
      flex: 0 0 30.3333333%;
      margin: 0 1.5% 20px;
      flex-flow: row nowrap;
      padding: 30px 20px;
      align-items: center; }
      @media only screen and (max-width: 1080px) {
        .aboutServiceCont .pointList li {
          flex: 0 0 48%;
          margin: 0 1% 20px 1%;
          border: 1px solid #111; }
          .aboutServiceCont .pointList li:nth-child(2n) {
            margin-right: 0; } }
      @media only screen and (max-width: 640px) {
        .aboutServiceCont .pointList li {
          flex: 0 0 100%;
          margin: 0 0 20px 0;
          border: 1px solid #111; } }
      .aboutServiceCont .pointList li .thum {
        flex: 0 0 150px;
        padding: 0 20px; }
        .aboutServiceCont .pointList li .thum img {
          display: inline-block;
          height: 80px;
          width: auto; }
      .aboutServiceCont .pointList li .cont {
        flex: 1 1 100%; }
        .aboutServiceCont .pointList li .cont .point {
          font-size: 7px;
          letter-spacing: 0; }
          .aboutServiceCont .pointList li .cont .point .number {
            font-size: 23px;
            display: block;
            letter-spacing: 0.1em;
            font-weight: 600; }
        .aboutServiceCont .pointList li .cont .pointTitle {
          margin: 10px 0 15px 0;
          padding: 10px 0;
          line-height: 1.5em;
          font-size: 1.15rem; }
        .aboutServiceCont .pointList li .cont p {
          opacity: .8; }
        .aboutServiceCont .pointList li .cont a {
          text-align: right;
          float: right;
          font-size: 0.8rem;
          color: #FF9E3C; }

@media only screen and (max-width: 640px) {
  #serviceAreaCont {
    flex-flow: column wrap; } }

#serviceAreaCont .textCont {
  flex: 0 0 50%; }
  #serviceAreaCont .textCont p {
    margin: 50px 0; }
    @media only screen and (max-width: 640px) {
      #serviceAreaCont .textCont p {
        margin: 0 0 20px; } }
  #serviceAreaCont .textCont .areaList {
    padding-right: 100px; }
    @media only screen and (max-width: 640px) {
      #serviceAreaCont .textCont .areaList {
        padding-right: 0; } }
    #serviceAreaCont .textCont .areaList li {
      border-top: 1px solid rgba(17, 17, 17, 0.7);
      padding: 1em 0; }

#serviceAreaCont .mapCont {
  flex: 0 0 50%;
  text-align: center; }
  #serviceAreaCont .mapCont img {
    width: 90%; }

.planTable {
  width: 100%;
  border-top: 5px solid #111;
  border-bottom: 5px solid #111; }
  .planTable tr th, .planTable tr td {
    border-left: 1px solid #919090;
    border-bottom: 1px solid #919090;
    padding: 2em 1em;
    text-align: center;
    line-height: 1.5em; }
    @media only screen and (max-width: 640px) {
      .planTable tr th, .planTable tr td {
        font-size: 0.8rem;
        padding: 1em 0.5em; } }
    .planTable tr th:last-child, .planTable tr td:last-child {
      border-right: 1px solid #919090; }
    .planTable tr th.br0, .planTable tr td.br0 {
      border-right: 0; }
  .planTable tr th {
    background-color: #f7f6f6; }
  .planTable tr td .red {
    color: #EB875C; }
  .planTable tr td .biggerText {
    font-size: 1.4em; }
  .planTable tr td .bold {
    font-weight: bold; }
  .planTable tr td .tableImg {
    display: block;
    width: 70%;
    margin: 15px auto 0; }
    @media only screen and (max-width: 640px) {
      .planTable tr td .tableImg {
        width: 100%; } }
  .planTable tr .col1 {
    width: 12em; }
    @media only screen and (max-width: 640px) {
      .planTable tr .col1 {
        width: 5em; } }
  .planTable tr.spacer th, .planTable tr.spacer td {
    padding: 2px; }

#plan #planList {
  flex-flow: row nowrap;
  justify-content: space-between;
  margin-bottom: 60px; }
  @media only screen and (max-width: 640px) {
    #plan #planList {
      margin-bottom: 0;
      flex-flow: column wrap;
      justify-content: flex-start; } }
  #plan #planList .eachPlan {
    flex: 0 0 47%;
    background-color: #111;
    color: #fff; }
    @media only screen and (max-width: 640px) {
      #plan #planList .eachPlan {
        flex: 0 0 100%;
        margin-bottom: 40px; } }
    #plan #planList .eachPlan:hover img {
      transform: scale(1.2); }
    #plan #planList .eachPlan .thum {
      width: 100%;
      height: 175px;
      overflow: hidden; }
      @media only screen and (max-width: 768px) {
        #plan #planList .eachPlan .thum {
          height: 125px; } }
      @media only screen and (max-width: 640px) {
        #plan #planList .eachPlan .thum {
          height: 130px; } }
      #plan #planList .eachPlan .thum img {
        -webkit-transition: 0.3s ease-out;
        -moz-transition: 0.3s ease-out;
        -ms-transition: 0.3s ease-out;
        -o-transition: 0.3s ease-out;
        transition: 0.3s ease-out; }
    #plan #planList .eachPlan .cont {
      padding: 30px; }
      #plan #planList .eachPlan .cont .planName .number {
        display: inline-block;
        font-weight: bold;
        font-size: 1.6rem;
        margin-right: 0.5em; }
      #plan #planList .eachPlan .cont .planName .en {
        display: inline-block;
        font-weight: 300; }
      #plan #planList .eachPlan .cont .planName .jp {
        display: block;
        border-top: 5px solid #fff;
        border-bottom: 2px solid #fff;
        margin: 10px auto 0;
        padding: 10px 0;
        font-weight: bold;
        font-size: 1.5rem; }
      #plan #planList .eachPlan .cont ul {
        border-bottom: 5px solid #fff;
        padding: 20px 30px; }
        @media only screen and (max-width: 768px) {
          #plan #planList .eachPlan .cont ul {
            padding: 20px 20px; } }
        #plan #planList .eachPlan .cont ul li {
          text-align: left;
          margin-bottom: 10px;
          font-size: 1rem; }
          @media only screen and (max-width: 768px) {
            #plan #planList .eachPlan .cont ul li {
              font-size: 0.8rem; } }
          #plan #planList .eachPlan .cont ul li:last-child {
            margin-bottom: 0; }
          #plan #planList .eachPlan .cont ul li:before {
            content: "\f096";
            font-family: FontAwesome;
            margin-right: 0.7em; }

#price .red {
  font-size: 28px;
  font-weight: bold;
  color: red;
  margin-bottom: 10px; }

#price .cap {
  margin-bottom: 30px; }

.faqList li dl dt, .faqList li dl dd {
  padding: 1.5em;
  padding-left: 3.3em;
  line-height: 1.6em;
  position: relative; }
  .faqList li dl dt:before, .faqList li dl dd:before {
    font-family: "Montserrat", sans-serif;
    font-size: 1.3em;
    position: absolute;
    top: 1.2em;
    left: 1em; }

.faqList li dl dt {
  border-top: 1px solid #111;
  background-color: #eeeeee;
  font-weight: bold; }
  .faqList li dl dt:before {
    content: "Q"; }

.faqList li dl dd:before {
  content: "A"; }

#optionPlan {
  background: url("../images/plan/bg-optionPlan.jpg") center center/cover no-repeat scroll; }
  #optionPlan #optionPlanCont {
    width: 60%;
    flex-flow: row nowrap;
    align-items: center; }
    @media only screen and (max-width: 640px) {
      #optionPlan #optionPlanCont {
        width: 100%;
        flex-flow: column wrap; } }
    #optionPlan #optionPlanCont .thum {
      flex: 0 0 50%;
      text-align: center; }
      #optionPlan #optionPlanCont .thum img {
        width: 60%; }
      @media only screen and (max-width: 640px) {
        #optionPlan #optionPlanCont .thum {
          margin-bottom: 20px; } }
    #optionPlan #optionPlanCont .textCont {
      flex: 0 0 50%; }
      #optionPlan #optionPlanCont .textCont p {
        color: #fff;
        font-weight: bold;
        font-size: 1.1em; }
        #optionPlan #optionPlanCont .textCont p.strong {
          font-size: 1.6em; }
          @media only screen and (max-width: 640px) {
            #optionPlan #optionPlanCont .textCont p.strong {
              font-size: 1.1em; } }
      @media only screen and (max-width: 640px) {
        #optionPlan #optionPlanCont .textCont {
          text-align: center; } }

#powerSalad-lineup {
  flex-flow: row nowrap;
  justify-content: space-between; }
  @media only screen and (max-width: 640px) {
    #powerSalad-lineup {
      flex-flow: row wrap; } }
  #powerSalad-lineup li {
    flex: 0 0 18%;
    flex-wrap: wrap;
    align-items: stretch; }
    @media only screen and (max-width: 640px) {
      #powerSalad-lineup li {
        flex: 0 0 45%;
        margin-bottom: 20px; } }
    #powerSalad-lineup li h3 {
      border-top: 2px solid #111;
      border-bottom: 1px solid #111;
      padding: 0.7em 0;
      margin-bottom: 0.7em;
      font-size: 14px; }
    #powerSalad-lineup li p {
      text-align: left;
      letter-spacing: 1px; }

#aboutPowerSalad {
  background-color: #111;
  color: #fff; }
  #aboutPowerSalad #aboutPowerSaladCont {
    width: 60%;
    flex-flow: row nowrap;
    align-items: center; }
    @media only screen and (max-width: 640px) {
      #aboutPowerSalad #aboutPowerSaladCont {
        width: 100%;
        flex-flow: column wrap; } }
    #aboutPowerSalad #aboutPowerSaladCont .cont {
      order: 2;
      text-align: left;
      padding-left: 50px; }
      @media only screen and (max-width: 640px) {
        #aboutPowerSalad #aboutPowerSaladCont .cont {
          padding-left: 0; } }
      #aboutPowerSalad #aboutPowerSaladCont .cont h2 {
        font-size: 2rem;
        margin-bottom: 0.7em; }
        @media only screen and (max-width: 640px) {
          #aboutPowerSalad #aboutPowerSaladCont .cont h2 {
            text-align: center; } }
        #aboutPowerSalad #aboutPowerSaladCont .cont h2 .sText {
          font-size: 0.5em;
          margin-left: 1em; }
          @media only screen and (max-width: 640px) {
            #aboutPowerSalad #aboutPowerSaladCont .cont h2 .sText {
              display: block;
              margin-left: 0;
              margin-top: 0.5em; } }
      #aboutPowerSalad #aboutPowerSaladCont .cont p {
        font-size: 1.2em; }
    #aboutPowerSalad #aboutPowerSaladCont .logo {
      order: 1;
      flex: 0 0 150px; }

.flow .stepbox {
  padding: 20px;
  border: 1px solid #111;
  margin-top: 30px;
  margin-bottom: 30px;
  display: flex;
  justify-content: start; }
  @media only screen and (max-width: 640px) {
    .flow .stepbox {
      flex-wrap: wrap;
      justify-content: center; } }
  .flow .stepbox img {
    width: 80px;
    margin-left: 40px; }
    @media only screen and (max-width: 640px) {
      .flow .stepbox img {
        margin-left: 0;
        margin-bottom: 20px; } }
  .flow .stepbox h4 {
    font-size: 22px;
    margin-top: auto;
    margin-bottom: auto;
    margin-right: 20px;
    width: 260px; }
    @media only screen and (max-width: 640px) {
      .flow .stepbox h4 {
        width: auto;
        text-align: center;
        margin-right: 0;
        margin-bottom: 10px; } }
  .flow .stepbox p {
    text-align: left;
    margin-top: auto;
    margin-bottom: auto;
    margin-right: 0; }
    @media only screen and (max-width: 640px) {
      .flow .stepbox p {
        margin-bottom: 20px; } }

.flow .steptext {
  display: flex;
  justify-content: flex-start; }
  @media only screen and (max-width: 640px) {
    .flow .steptext {
      flex-wrap: wrap;
      justify-content: center; } }

.flow .down-icon {
  font-size: 20px; }

#kit .center img {
  margin-bottom: 50px;
  width: 100%; }

.gohan-plan table {
  width: 100%;
  padding: 10px;
  margin-bottom: 20px; }
  .gohan-plan table td {
    font-weight: bold; }
    .gohan-plan table td:first-child {
      text-align: center; }

.gohan-plan .basic {
  background: #f0f0f0;
  border-radius: 10px; }

.gohan-plan .premium {
  background: #FFCE00;
  border-radius: 10px; }

.gohan-plan .sp {
  display: none; }

@media only screen and (max-width: 640px) {
  .gohan-plan .sp {
    display: block;
    padding: 15px;
    margin-bottom: 20px; }
    .gohan-plan .sp h6 {
      text-align: center;
      font-size: 1.5em;
      margin-bottom: 20px; }
  .gohan-plan .pc {
    display: none; } }

.feetable {
  margin-bottom: 40px; }
  .feetable .sec {
    display: flex;
    align-items: center;
    padding: 20px 0;
    border-top: 1px solid #111;
    flex-wrap: wrap; }
    .feetable .sec .left {
      width: 20%;
      text-align: left;
      font-weight: bold; }
      @media only screen and (max-width: 640px) {
        .feetable .sec .left {
          width: 100%;
          margin-bottom: 20px; } }
    .feetable .sec .right {
      width: 80%;
      text-align: left; }
      @media only screen and (max-width: 640px) {
        .feetable .sec .right {
          width: 100%; } }
      .feetable .sec .right ul {
        margin-top: 30px;
        display: flex;
        justify-content: space-between; }
        .feetable .sec .right ul li {
          width: 20%; }
          .feetable .sec .right ul li img {
            width: 100%; }
  .feetable .sec:last-child {
    border-bottom: 1px solid #111; }
