/*----------------------------------------------------------
 *      Initialize
 *----------------------------------------------------------*/
html {
  width: 100%;
  height: 100%;
  font-family: "Noto Sans Japanese", sans-serif;
  font-size: 16px; }
  @media only screen and (max-width: 768px) {
    html {
      min-width: 100%;
      font-size: 16px !important; } }

body {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  background: #fbfcfb;
  font-size: 16px;
  font-family: "Noto Sans Japanese", sans-serif !important;
  color: #000000; }
  @media only screen and (max-width: 768px) {
    body {
      min-width: 100%;
      font-size: 16px !important; } }

p {
  margin: 0; }

ul, li {
  margin: 0;
  padding: 0;
  list-style: none; }

h1, h2, h3, h4, h5 {
  margin: 0;
  padding: 0; }

strong {
  font-weight: bold; }

a {
  color: #b28378;
  text-decoration: none;
  transition: all 0.3s; }
  @media only screen and (max-width: 768px) {
    a {
      transition: none; } }
  a:hover {
    color: #333333;
    text-decoration: underline; }
  a:focus {
    color: #333333; }

/*----------------------------------------------------------
 *      Common
 *----------------------------------------------------------*/
.contents--wrap {
  width: 100%;
  min-width: 100%;
  margin: 0 auto; }
  @media only screen and (max-width: 768px) {
    .contents--wrap {
      width: 100%;
      min-width: 100%; } }

.tool__more {
  width: 200.95px;
  height: 55.95px;
  margin: 0 auto; }
  .tool__more a {
    overflow: hidden;
    text-indent: 101%;
    white-space: nowrap;
    display: block;
    width: 200.95px;
    height: 55.95px;
    background: url("images/tool__more.svg") no-repeat;
    background-size: 200.95px 55.95px; }
  .tool__more a:hover {
    opacity: 0.6; }
  @media only screen and (max-width: 768px) {
    .tool__more {
      width: 100.475px;
      height: 27.975px; }
      .tool__more a {
        overflow: hidden;
        text-indent: 101%;
        white-space: nowrap;
        display: block;
        width: 100.475px;
        height: 27.975px;
        background: url("images/tool__more.svg") no-repeat;
        background-size: 100.475px 27.975px; }
      .tool__more a:hover {
        opacity: 0.6; } }

.tool__more--2 {
  width: 201.32px;
  height: 57.29px;
  margin: 0 auto; }
  .tool__more--2 a {
    overflow: hidden;
    text-indent: 101%;
    white-space: nowrap;
    display: block;
    width: 201.32px;
    height: 57.29px;
    background: url("images/tool__more--2.svg") no-repeat;
    background-size: 201.32px 57.29px; }
  .tool__more--2 a:hover {
    opacity: 0.6; }
  @media only screen and (max-width: 768px) {
    .tool__more--2 {
      width: 100.66px;
      height: 28.645px; }
      .tool__more--2 a {
        overflow: hidden;
        text-indent: 101%;
        white-space: nowrap;
        display: block;
        width: 100.66px;
        height: 28.645px;
        background: url("images/tool__more--2.svg") no-repeat;
        background-size: 100.66px 28.645px; }
      .tool__more--2 a:hover {
        opacity: 0.6; } }

.tool__top {
  width: 128.5px;
  height: 36.92px;
  margin: 0 auto; }
  .tool__top a {
    overflow: hidden;
    text-indent: 101%;
    white-space: nowrap;
    display: block;
    width: 128.5px;
    height: 36.92px;
    background: url("images/tool__top.svg") no-repeat;
    background-size: 128.5px 36.92px; }
  .tool__top a:hover {
    opacity: 0.6; }
  @media only screen and (max-width: 768px) {
    .tool__top {
      width: 79.5335px;
      height: 23.019px; }
      .tool__top a {
        overflow: hidden;
        text-indent: 101%;
        white-space: nowrap;
        display: block;
        width: 79.5335px;
        height: 23.019px;
        background: url("images/tool__top.svg") no-repeat;
        background-size: 79.5335px 23.019px; }
      .tool__top a:hover {
        opacity: 0.6; } }

/*----------------------------------------------------------
 *      FadeIn-Out
 *----------------------------------------------------------*/
body:after,
.page__overlay:after {
  z-index: 9999;
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  pointer-events: none;
  opacity: 0;
  -webkit-transition: opacity .4s ease;
  transition: opacity .4s ease; }

body.page--fade::after,
.page__overlay.page--fade::after {
  opacity: 1; }

/*----------------------------------------------------------
 *      HEADER
 *----------------------------------------------------------*/
header {
  position: absolute;
  width: 100%; }

.head__nav {
  position: relative;
  top: 40px;
  right: 72px; }
  @media only screen and (max-width: 768px) {
    .head__nav {
      display: none; } }
  .head__nav li {
    margin: 0 0 12px 0;
    font-family: "Karla", sans-serif;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-align: right;
    text-decoration: line-through;
    color: #a5a3a2; }
  .head__nav a {
    color: #a5a3a2;
    position: relative;
    display: inline-block;
    text-decoration: none; }
  .head__nav a:hover {
    color: #000000; }
  .head__nav a.head__nav--active {
    color: #000000; }

.head__logo {
  width: 51.248px;
  height: 17px;
  z-index: 3;
  position: absolute;
  top: 46px;
  left: 72px; }
  .head__logo a {
    overflow: hidden;
    text-indent: 101%;
    white-space: nowrap;
    display: block;
    width: 51.248px;
    height: 17px;
    background: url("../images/index__logo.svg") no-repeat;
    background-size: 51.248px 17px; }
  .head__logo a:hover {
    opacity: 0.8; }
  @media only screen and (max-width: 768px) {
    .head__logo {
      top: 30px;
      left: 30px; } }

.head__menu {
  width: 15px;
  height: 15px;
  position: absolute;
  top: 30px;
  right: 26px; }
  .head__menu a {
    overflow: hidden;
    text-indent: 101%;
    white-space: nowrap;
    display: block;
    width: 15px;
    height: 15px;
    background: url("../images/head__menu--sp.svg") no-repeat;
    background-size: 15px 15px; }
  .head__menu a:hover {
    opacity: 0.6; }

/*----------------------------------------------------------
 *      MOBILE MENU
 *----------------------------------------------------------*/
.spMenu__area--sp {
  display: none;
  position: fixed;
  top: 0;
  width: 100%;
  height: calc(100vh + 1px);
  z-index: 10;
  transition: all .5s ease; }
  .spMenu__area--sp .contents--wrap {
    position: relative;
    width: 100%;
    min-width: 100%;
    height: 100vh;
    padding: 0;
    background: rgba(62, 58, 57, 0.95); }
  .spMenu__area--sp a {
    color: #ffffff; }

.head__close {
  width: 17.5px;
  height: 17.5px;
  position: absolute;
  top: 22px;
  right: 15px; }
  .head__close a {
    overflow: hidden;
    text-indent: 101%;
    white-space: nowrap;
    display: block;
    width: 17.5px;
    height: 17.5px;
    background: url("../images/head__close--sp.svg") no-repeat;
    background-size: 17.5px 17.5px; }
  .head__close a:hover {
    opacity: 0.6; }

.spMenu__list {
  position: absolute;
  top: calc(50vh - 160px);
  left: calc(50% - 75px); }
  .spMenu__list li {
    margin: 0 0 0 0;
    padding: 0 0 0 0;
    font-size: 1.875rem;
    font-weight: normal;
    text-align: center;
    line-height: 87px;
    letter-spacing: 0.1em; }
    .spMenu__list li a {
      display: block;
      width: 100%;
      height: 100%; }

/*----------------------------------------------------------
 *      FOOTER
 *----------------------------------------------------------*/
footer {
  padding: 0 60px 30px 60px; }

.foot__copyright {
  font-size: 0.625rem;
  color: #898989;
  text-align: right; }
  @media only screen and (max-width: 768px) {
    .foot__copyright {
      text-align: center; } }

/*----------------------------------------------------------
 *      MainVisual
 *----------------------------------------------------------*/
.main--area {
  height: 100vh;
  background: url("../images/top__mainVisual.jpg");
  background-size: cover;
  background-position: center center; }
  @media only screen and (max-width: 768px) {
    .main--area {
      padding: 0 0 0 0; } }
  .main--area .contents--wrap {
    position: relative;
    width: 100%;
    min-width: 100%;
    height: 100%; }

.main__logo {
  overflow: hidden;
  text-indent: 101%;
  white-space: nowrap;
  display: block;
  width: 50px;
  height: 16.59px;
  background: url("../images/index__logo.svg") no-repeat;
  background-size: 50px 16.59px;
  position: absolute;
  top: calc(50% - 8px);
  left: calc(50% - 25px); }

/*----------------------------------------------------------
 *      Work List
 *----------------------------------------------------------*/
.workList--area {
  padding: 190px 0 40px 0; }
  @media only screen and (max-width: 768px) {
    .workList--area {
      padding: 72px 0 20px 0; } }
  .workList--area .contents--wrap {
    width: 100%;
    min-width: 100%; }
  .workList--area ul {
    display: flex;
    flex-wrap: wrap;
    margin: 0 62px; }
    @media only screen and (max-width: 768px) {
      .workList--area ul {
        margin: 0 15px; } }
  .workList--area li {
    flex-basis: calc(100% / 3 - 20px);
    margin: 0 10px 0 10px; }
    @media only screen and (max-width: 768px) {
      .workList--area li {
        flex-basis: calc(100% / 2 - 10px);
        margin: 0 5px 0 5px; } }
    @media only screen and (min-width: 769px) and (max-width: 1100px) {
      .workList--area li {
        flex-basis: calc(100% / 3 - 20px);
        margin: 0 10px 0 10px; } }
    @media only screen and (min-width: 1280px) {
      .workList--area li {
        flex-basis: calc(100% / 4 - 20px);
        margin: 0 10px 0 10px; } }
  .workList--area img {
    width: 100%;
    transition: all 0.35s; }
  .workList--area figcaption {
    display: block;
    width: 100%;
    height: 80px;
    padding: 12px 0 0 0;
    text-align: center;
    line-height: 1;
    transition: all 0.35s; }
    @media only screen and (max-width: 768px) {
      .workList--area figcaption {
        height: 70px;
        padding: 10px 0 0 0;
        line-height: 0.9; } }
    .workList--area figcaption span {
      font-family: "Karla", "Noto Sans Japanese", sans-serif;
      font-size: 0.8125rem;
      letter-spacing: 0.03em;
      color: #231815; }
      @media only screen and (max-width: 768px) {
        .workList--area figcaption span {
          font-size: 0.6875rem; } }
    .workList--area figcaption ul {
      justify-content: center;
      margin: 6px 0 0 0; }
      @media only screen and (max-width: 768px) {
        .workList--area figcaption ul {
          margin: 8px 0 0 0; } }
    .workList--area figcaption li {
      flex-basis: auto;
      margin: 0 5px;
      font-family: "Karla", sans-serif;
      font-weight: lighter;
      font-size: 0.5rem;
      font-style: italic;
      color: #898989; }
  .workList--area a:hover {
    text-decoration: none; }
    .workList--area a:hover img {
      transform: scale(1.1); }
    .workList--area a:hover .thumb__box:before {
      opacity: 1; }

.thumb__box {
  position: relative;
  overflow: hidden;
  cursor: pointer; }
