@charset "UTF-8";
/* CSS Document */
@font-face {
  src: url("../fonts/NotoSansJP-Black.woff2") format("woff2");
  font-family: "Noto Sans JP";
  font-weight: 900;
  font-display: swap;
}
/* 共通 */
@-webkit-keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
@keyframes infinity-scroll-left {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
}
main section {
  opacity: 0;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
  -webkit-transition: opacity 0.8s ease-out, -webkit-transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, -webkit-transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  transition: opacity 0.8s ease-out, transform 0.8s ease-out, -webkit-transform 0.8s ease-out;
}
main section.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.swiper-wrapper {
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important;
}

img {
  width: 100%;
}

.h2default.center {
  text-align: center;
}
.h2default.center::after {
  margin-inline: auto;
}
@media (max-width: 750px) {
  .h2default.spCenter {
    text-align: center;
  }
  .h2default.spCenter::after {
    margin-inline: auto;
  }
}

.linkbox::after {
  -webkit-transition: all ease 0.5s;
  transition: all ease 0.5s;
}
.linkbox:hover {
  color: white;
  background-color: #222222;
}
.linkbox:hover::after {
  border-color: white;
}

.imgbox.width100vw {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.vertical {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-orientation: upright;
}

@media (max-width: 750px) {
  .inner {
    width: 87.2%;
  }
}

/* タイトル */
/* スペース */
section {
  margin-bottom: 12.5em;
}
@media (max-width: 750px) {
  section {
    margin-bottom: 26.67vw;
  }
}
section {
  padding-bottom: 0;
}

/* 個別 */
/* catch-copy */
.copybox {
  margin-top: 13.4375rem;
}
@media (max-width: 750px) {
  .copybox {
    margin-top: 14.9vw;
  }
}
.copybox .catch-copy {
  font-size: 4.5em;
  display: -ms-flexbox;
  /* prefix -> -webkit-*/
  display: -webkit-flex;
  -webkit-align-items: flex-end;
  /* no prefix*/
  display: -webkit-box;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  line-height: 1.3;
}
@media (max-width: 750px) {
  .copybox .catch-copy {
    font-size: 1.5em;
  }
}
.copybox .catch-copy .icon {
  width: 3.43754rem;
  margin-bottom: 0.3em;
  margin-left: 0.1em;
}
@media (max-width: 750px) {
  .copybox .catch-copy .icon {
    width: 1em;
    margin-bottom: 0.1em;
    margin-left: 0.3em;
  }
}

/* mainvisual */
.mainvisualTop {
  margin-top: 3.125em;
}
@media (max-width: 750px) {
  .mainvisualTop {
    margin-top: 1.25em;
  }
}
.mainvisualTop img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.mainvisualTop .swiper-slide {
  width: 100%;
  aspect-ratio: 803/569;
}

/* section — トップページ各セクション（home.php の class ごと） */
section {
  /* news */
}
section.news {
  margin-top: 2.5em;
}
@media (max-width: 750px) {
  section.news {
    margin-top: 6.4vw;
  }
}
section.news .news-box {
  padding: 0.875em 1.0625em;
  background-color: #F2F3F1;
}
@media (min-width: 751px) {
  section.news .news-box {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    display: -webkit-flex;
    -webkit-align-items: center;
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media (max-width: 750px) {
  section.news .news-box {
    padding: 1em;
  }
}
@media (min-width: 751px) {
  section.news .news-box .news-article {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    margin-right: 1.375em;
  }
}
section.news .news-box .news-article > a {
  display: block;
  text-decoration: none;
}
@media (min-width: 751px) {
  section.news .news-box .news-article > a {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    display: -webkit-flex;
    -webkit-align-items: center;
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
section.news .news-box .news-article > a:hover .date, section.news .news-box .news-article > a:hover .text {
  text-decoration: underline;
}
@media (min-width: 751px) {
  section.news .news-box .news-article > a .date {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    white-space: nowrap;
  }
}
section.news .news-box .news-article > a .text {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (min-width: 751px) {
  section.news .news-box .news-article > a .text {
    margin-left: 0.75em;
  }
}
@media (min-width: 751px) {
  section.news .news-box .link {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    white-space: nowrap;
  }
}
section.news .news-box .link {
  font-size: 0.875em;
  text-decoration: none;
}
section.news .news-box .link::after {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  border-right: 1px solid #222222;
  border-top: 1px solid #222222;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  margin-left: 0.2em;
}
section.news .news-box .link:hover {
  text-decoration: underline;
}
@media (max-width: 750px) {
  section.news .news-box .link {
    display: block;
    text-align: right;
  }
}
section {
  /* aboutus */
}
@media (min-width: 751px) {
  section.aboutus .aboutus-box {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    margin-left: 4.0625em;
  }
}
@media (max-width: 750px) {
  section.aboutus .aboutus-box {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    display: -webkit-flex;
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
@media (max-width: 750px) {
  section.aboutus .left-box {
    margin-top: 1.875em;
    line-height: 1.8;
  }
}
section.aboutus .right-box {
  display: -ms-flexbox;
  /* prefix -> -webkit-*/
  /* no prefix*/
  display: -webkit-box;
  display: flex;
}
@media (max-width: 750px) {
  section.aboutus .right-box {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    display: -webkit-flex;
    -webkit-justify-content: space-between;
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
}
section.aboutus .img-box {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 28.125em;
          flex: 0 0 28.125em;
}
@media (min-width: 751px) {
  section.aboutus .img-box {
    margin-left: 3.4375em;
    margin-right: 3em;
  }
}
@media (max-width: 750px) {
  section.aboutus .img-box {
    -ms-flex-preferred-size: 13.125em;
        flex-basis: 13.125em;
  }
}
section.aboutus .title {
  font-size: 2.25em;
  line-height: 1.3;
}
@media (max-width: 750px) {
  section.aboutus .title {
    font-size: 1.25em;
  }
}
@media (max-width: 750px) {
  section.aboutus .text {
    margin-left: auto;
  }
}
section {
  /* point */
}
section.point .column_3 li {
  background-color: #F2F3F1;
  padding: 3.125em 2.8125em 2.8125em;
}
@media (max-width: 750px) {
  section.point .column_3 li {
    padding: 1.75em;
  }
}
section.point .column_3 .title {
  font-size: 1.5em;
  font-weight: bold;
}
@media (max-width: 750px) {
  section.point .column_3 .title {
    font-size: 1.25em;
  }
}
section {
  /* products */
}
section.products .h2default {
  margin-bottom: 0;
}
section.products .h2default::after {
  width: 100%;
}
section.products .products-item {
  padding: 5.9375em 0;
  border-bottom: 1px solid #CCC;
}
@media (max-width: 750px) {
  section.products .products-item {
    padding: 2.5em 0;
  }
}
@media (min-width: 751px) {
  section.products .products-item:first-of-type {
    padding-top: 5em;
  }
}
section.products .products-item:last-of-type {
  border-bottom: none;
}
@media (min-width: 751px) {
  section.products .products-item {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    display: -webkit-flex;
    -webkit-justify-content: space-between;
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-left: 6.25em;
  }
}
section.products .products-item .left-box {
  display: -ms-flexbox;
  /* prefix -> -webkit-*/
  /* no prefix*/
  display: -webkit-box;
  display: flex;
}
@media (min-width: 751px) {
  section.products .products-item .right-box {
    margin-left: 7.5em;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 50%;
            flex: 0 0 50%;
  }
}
@media (max-width: 750px) {
  section.products .products-item .right-box {
    margin-top: 2.5em;
  }
}
@media (max-width: 750px) and (max-width: 750px) {
  section.products .products-item .right-box .column_2_sp > ul > li > p.f_20 {
    font-size: 1rem;
  }
}
@media (max-width: 750px) {
  section.products .products-item .right-box .column_2_sp > ul > li > p.f_20:not(.is-wrap) {
    white-space: nowrap;
  }
}
section.products .products-item .right-box .charcoals {
  row-gap: 3rem;
}
section.products .products-item .right-box .charcoals li {
  margin-top: initial;
}
section.products .products-item .title {
  font-size: 1.5em;
}
@media (max-width: 750px) {
  section.products .products-item .title {
    font-size: 1.25em;
  }
}
section.products .products-item .text {
  margin-left: 4.6875em;
}
@media (max-width: 750px) {
  section.products .products-item .text {
    margin-left: 3.75em;
  }
}
@media (max-width: 750px) {
  section.products .contactbox .tel > a {
    text-decoration: none;
  }
}
section {
  /* top-banner */
}
@media (max-width: 750px) {
  section.top-banner {
    margin-bottom: 10vw;
  }
}
section.top-banner .imgbox {
  position: relative;
}
section.top-banner .text {
  color: white;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  right: 10vw;
}
@media (min-width: 751px) {
  section.top-banner .text {
    font-size: 1.1vw;
  }
}
@media (max-width: 750px) {
  section.top-banner .text {
    right: 4vw;
  }
}
section {
  /* craftsmanship */
}
section.craftsmanship .imgflex {
  display: -ms-flexbox;
  /* prefix -> -webkit-*/
  display: -webkit-flex;
  -webkit-align-items: center;
  /* no prefix*/
  display: -webkit-box;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 750px) {
  section.craftsmanship .imgflex {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    display: -webkit-flex;
    /* no prefix*/
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}
@media (max-width: 750px) {
  section.craftsmanship .textbox {
    padding-top: 0;
  }
}
@media (min-width: 751px) {
  section.craftsmanship .imgbox {
    margin-right: calc(50% - 50vw);
    width: auto;
    max-width: none;
  }
}
@media (max-width: 750px) {
  section.craftsmanship .imgbox {
    margin-top: 3em;
  }
}
section.craftsmanship .craftsmanship-items {
  list-style: none;
}
section.craftsmanship .craftsmanship-items .craftsmanship-item {
  position: relative;
  padding-left: 1.8em;
}
section.craftsmanship .craftsmanship-items .craftsmanship-item::before {
  content: "";
  position: absolute;
  left: 0.2em;
  top: 0.3em;
  width: 0.5em;
  height: 0.9em;
  border-right: 2px solid #222;
  border-bottom: 2px solid #222;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
@media (min-width: 751px) {
  section.craftsmanship .craftsmanship-inner .text {
    font-size: 1.1vw;
    margin-top: 11vw;
    margin-left: 36.46vw;
  }
}
@media (max-width: 750px) {
  section.craftsmanship .craftsmanship-inner .text {
    width: 10em;
    margin: 1.875em 2.25em 0 auto;
  }
}
@media (min-width: 751px) {
  section.craftsmanship .craftsmanship-inner .imgbox1 {
    width: 27vw;
    margin-top: -14.58vw;
  }
}
@media (max-width: 750px) {
  section.craftsmanship .craftsmanship-inner .imgbox1 {
    width: 16.625em;
    margin-top: 4.0625em;
  }
}
@media (min-width: 751px) {
  section.craftsmanship .craftsmanship-inner .imgbox2 {
    width: 27vw;
    margin-top: -6.94vw;
    margin-right: 8.33vw;
    margin-left: auto;
  }
}
@media (max-width: 750px) {
  section.craftsmanship .craftsmanship-inner .imgbox2 {
    width: 12.1875em;
    margin-top: 3em;
    margin-left: auto;
  }
}
@media (min-width: 751px) {
  section.craftsmanship .craftsmanship-inner .imgbox3 {
    width: 20vw;
    margin-top: -4.16vw;
    margin-left: 29.51vw;
  }
}
@media (max-width: 750px) {
  section.craftsmanship .craftsmanship-inner .imgbox3 {
    width: 7.5em;
    margin-top: -0.75em;
    margin-left: 1.5em;
  }
}
section {
  /* voice */
}
section.voice .column_3 picture {
  display: block;
}
section.voice .column_3 img {
  display: block;
  width: 100%;
  aspect-ratio: 389/278;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
section.voice .text {
  margin-top: 0.5em;
}
section {
  /* faq */
}
@media (min-width: 751px) {
  section.faq {
    margin-bottom: 15.625em;
  }
}
@media (min-width: 751px) {
  section.faq .inner-box {
    display: -ms-flexbox;
    /* prefix -> -webkit-*/
    /* no prefix*/
    display: -webkit-box;
    display: flex;
  }
}
section {
  /* recruit */
}
@media (max-width: 750px) {
  section.recruit .h2default {
    margin-top: 0.5em;
  }
}
@media (min-width: 751px) {
  section.recruit .h2default {
    margin-top: -1em;
  }
}
@media (max-width: 750px) {
  section.recruit .h3default {
    padding-left: 0;
  }
  section.recruit .h3default::before {
    content: none;
  }
}
section.recruit .bg-img-box {
  display: -ms-flexbox;
  /* prefix -> -webkit-*/
  /* no prefix*/
  display: -webkit-box;
  display: flex;
  overflow: hidden;
  position: relative;
  z-index: -1;
}
section.recruit .bg-img-box__inner {
  display: -ms-flexbox;
  /* prefix -> -webkit-*/
  /* no prefix*/
  display: -webkit-box;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-animation: infinity-scroll-left 80s infinite linear;
          animation: infinity-scroll-left 80s infinite linear;
}
@media (max-width: 750px) {
  section.recruit .bg-img-box__inner {
    -webkit-animation-duration: 40s;
            animation-duration: 40s;
  }
}
section.recruit .bg-img-box__inner > img {
  width: 140.625vw;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
@media (max-width: 750px) {
  section.recruit .bg-img-box__inner > img {
    width: 212vw;
  }
}
section {
  /* staff */
}
@media (max-width: 750px) {
  section.staff .content {
    text-align: center;
  }
}
section {
  /* blog */
}
section.blog .linkbox {
  width: 100%;
  font-size: 1.5em;
  padding: 3.75rem 0;
}
section.blog .linkbox::after {
  content: none;
}
@media (max-width: 750px) {
  section.blog .linkbox {
    font-size: 1.43em;
    padding: 2.5rem 0;
  }
}
section.blog .linkbox:hover {
  color: white;
  background-color: #222222;
}