@charset "UTF-8";

/* ***********************************
 *  個別スタイル設定
 *
 *  〜799px：SP
 *  800px〜：PC
 *  800px～1099px：タブレット/小型PC(状況に応じて対応)
 * ***********************************
 *  2025.5.2 新規作成
 *
 * *********************************** */

/* ***********************************
 *  〜799px：SP
 * *********************************** */

/*  index.html
 * *********************************** */
/* hero */
.hero {
  position: relative;
  clip-path: inset(0);
  top: -15.3vw;
}

.hero-bg {
  object-fit: fill;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

.hero * {
  color: #fff;
}
.hero-top {
  height: 100vh;
  text-align: center;
  position: relative;
}
.hero-title {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.hero-title-back {
  position: absolute;
  font-size: 20vw;
  font-weight: bold;
  letter-spacing: -.1vw;
  line-height: 1.05;
  color: #3c3c3c;
  left: 50%;
  transform: translate(-50%, -72%);
  z-index: -1;
}

.hero-title-text {
  font-size: 10.5vw;
  letter-spacing: 2vw;
  padding-left: 4vw;
}

.hero-title-text span {
  font-weight: bold;
}

.hero-heading {
  text-align: center;
  font-size: 3.5vw;
  font-weight: bold;
  letter-spacing: .5vw;

  margin-bottom: 10vw;
}
.hero-bottom {
  padding: 20vw 10vw 26vw;
}
.hero-bottom-sub {
  font-size: 10.4vw;
  font-weight: bold;
  white-space: nowrap;
  line-height: 1.5;
}

.hero-bottom-text {
  padding-top: 12vw;
  font-size: 4vw;
  line-height: 2;
}

.hero-more-btn-wrapper {
  display: flex;
  justify-content: center;
  margin-top: 11vw;
}
.more-btn {
  font-weight: bold;
  font-size: 4vw;
  display: flex;
  transition: opacity 0.1s linear;
  align-items: center;
  position: relative;
}
.more-text {
  font-weight: bold;
  margin-right: calc(2.4vw + 1.8em);
}
.more-btn:hover {
  opacity: .6;
}
.more-btn::after {
  content: '';
  display: block;
  position: absolute;
  width: 1.8em;
  margin-left: .6em;
  margin-top: -.4em;
  height: .4em;
  border: none;
  border-right: 2px solid #1e1e1e;
  border-bottom: 1px solid #1e1e1e;
  transform: skew(45deg);
  transition: .3s;
  left: 3em;
}
.more-btn:hover::after {
  width: 2.8em;
}

.hero-more-btn-wrapper .more-btn::after {
  border-right: 2px solid #fff;
  border-bottom: 1px solid #fff;
}


/* ヒーロービュー飾り */
.hero-top-ornament{
  position: absolute;
  top: calc(var(--vh, 1vh) * 100 - 24vw);
  bottom: 18vw;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 50%;
  width: 6vw;
  height: 6vw;
  border: 1px solid #fff;
}
.scroll-line {
  position: absolute;
  top: 3vw;
  left: calc(50% - 1px);
  width: 1px;
  overflow: hidden;
  z-index: 10;
  opacity: 1;
  height: 21vw;
}
.scroll-line::after {
  position: absolute;
  content: '';
  bottom: 0;
  left: 0;
  width: 2px;
  height: 100%;
  background-color: #fff;
  animation: scrollAnimeY 2.6s cubic-bezier(0.8, 0, 0.1, 1) infinite;
}
@keyframes scrollAnimeY {
  0% {
      transform: translateY(-100%);
  }
  5% {
      transform: translateY(-100%);
  }
  50% {
      transform: translateY(0);
  }
  95% {
      transform: translateY(100%);
  }
  100% {
      transform: translateY(100%);
  }
}


/* 各セクション共通 */
.top-heading-wrapper {
  margin-left: 5.5vw;
}
.top-heading {
  font-size: 13.5vw;
  letter-spacing: .75vw;
  font-weight: bold;
  line-height: 1.2;
  margin-left: -.5vw;
  color: #000;
}
.top-heading-sub {
  font-weight: 800;
  font-size: 4.5vw;
  color: #000;
}

/* 各セクション */
.top-material {
  margin-top: 24vw;
}
.material-top-img-wrapper {
  margin-top: 11vw;
}
.material-top-img-wrapper {
  width: 100%;
}
.material-top-img-wrapper img {
  width: calc(100% - 6.6vw);
}
.top-item-detail {
  margin: 8vw 8vw 13vw;
}
.material-bottom {
  margin: 12vw 0 16vw;
}
.material .material-bottom {
  margin: 12vw 0 24vw;
}
.top-item-detail-heading {
  font-size: 13vw;
  letter-spacing: .4vw;
  font-weight: bold;
  line-height: 1.4;
  color: #1e1e1e;
}
.top-item-detail-sub {
  font-size: 7vw;
  color: #1e1e1e;
}
.material-top .top-item-detail-sub {
  margin: 5vw 0 7vw;
}
.top-item-detail-text {
  font-size: 4vw;
  line-height: 2;
  color: #505050;
  margin-bottom: 10vw;
  text-align: justify;
}
.material-list-wrapper {
  display: flex;
  justify-content: space-between;
  margin: 0 10vw;
}
.material-list {
  width: 46%;
}
.material-item-text {
  display: block;
  padding: 6vw 0 5vw;
  position: relative;
  border-bottom: 1px solid #1e1e1e;
}
.material-item-text:hover {
  border-bottom: 1px solid transparent;
}
.material-item-text:hover::after {
  content: "";
  width: 100%;
  height: 1px;
  border-bottom: 1px solid #1e1e1e;
  position: absolute;
  left: 0;
  bottom: -1px;
  animation: btn-line-anim 2.1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes btn-line-anim {
  0% {
            transform: scale(0, 1);
            transform-origin: 0 0;
  }
  50% {
            transform: scale(1, 1);
            transform-origin: 0 0;
  }
  50.1% {
            transform: scale(1, 1);
            transform-origin: 100% 0;
  }
  75% {
            transform: scale(0, 1);
    -webkit-transform-origin: 100% 0;
            transform-origin: 100% 0;
  }
  100% {
    -webkit-transform: scale(0, 1);
            transform: scale(0, 1);
    -webkit-transform-origin: 100% 0;
            transform-origin: 100% 0;
  }
}


.material-item-en {
  font-weight: bold;
  font-size: 6vw;
  letter-spacing: .5vw;
  margin-left: 1vw;
  line-height: 1;
}
.material-item-ja {
  font-weight: 800;
  font-size: 2.8vw;
  line-height: 1.2;
  margin-left: 1vw;
  margin-top: 1.6vw;
}
.material-item-ja.justification {
  letter-spacing: .4em;
}
.material-bottom-img-wrapper {
  margin: 13vw 5.5vw 0;
}

/* PROCESSING */
.processing-list {
  margin: 12vw 9vw 0;
}
.processing-item {
  border-bottom: 1px solid #1e1e1e;
  border-right: 1px solid #1e1e1e;
  margin-top: 8vw;
  padding: 2vw 4vw 6vw 2vw;
}
.processing-item-heading {
  font-weight: bold;
  font-size: 5vw;
  color: #1e1e1e;
  margin-bottom: 2.8vw;
}
.processing-item-text {
  color: #505050;
  font-size: 3.5vw;
  text-align: justify;
}

/* FACILITY */
.top-facility {
  margin-top: 20vw;
}
.top-facility-img-wrapper {
  width: calc(100% - 5.5vw);
  margin: 13vw 0 0 auto;
}
.top-facility-img {
  width: 100%;
}
.top-facility-inner {
  margin-top: 11vw;
}
.top-facility .top-item-detail {
  margin: 0 10vw;
}
.top-facility .top-item-detail-sub {
  margin-bottom: 10vw;
}

/* NEWS */
.top-news {
  margin: 20vw 0 23vw;
}
.top-news .top-heading-wrapper {
  margin: 0 10vw;
}
.top-news .top-heading-sub-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-top: -1.6vw;
}
.top-news .top-heading-sub {
  font-size: 3vw;
}
.top-news-list {
  margin: 8.8vw 10vw 0;
}
.top-news-link {
  padding: 6vw 2vw;
  display: block;
}
.top-news-list .top-news-item:first-of-type {
  border-top: 1px solid #1e1e1e;
}
.top-news-list .top-news-item {
  border-bottom: 1px solid #000;
}
.top-news-info {
  display: flex;
  align-items: center;
}
.top-news-date {
  font-size: 4vw;
}
.top-news-attribute {
  font-size: 3.33vw;
  font-weight: bold;
  background-color: #ebebeb;
  width: 16.5vw;
  text-align: center;
  margin-left: 3.2vw;
}
.top-news-title {
  font-size: 4vw;
  margin-top: 4vw;
}

/* RECRUIT */
.recruit-banner-wrapper {
  margin: 0 5.5vw 30vw;
}
.recruit-banner-inner {
  display: block;
  transition: all 0.3s ease;
}
.recruit-banner-inner:hover {
  opacity: .7;
  transform: scale(0.95,0.95);
}
.recruit-banner img {
  width: 100%;
}


/*  material.html
 * *********************************** */
/* material/detail */
.page-heading-wrapper {
  background-color: #000;
  position: relative;
  padding-bottom: 12vw;
}

.page-heading-wrapper * {
  color: #fff;
  position: relative;
}

.page-heading {
  font-size: 12.5vw;
  font-weight: bold;
  letter-spacing: .8vw;
  line-height: 1.2;
  margin-left: 9vw;
  margin-top: 7.5vw;
}

.page-heading-wrapper::before {
  position: absolute;
  content: "";
  width: 6.66vw;
  height: 1px;
  background-color: #fff;
  top: 15vw;
}

.page-heading-sub {
  font-weight: bold;
  letter-spacing: .1vw;
  font-size: 3.4vw;
  margin-left: 9vw;
}

/* material-summary */
.material-summary {
  background-color: #000;
  padding-top: 2.5vw;
}

.material-summary * {
  color: #fff;
}

.material-name-wrapper {
  text-align: center;
  margin-bottom: 12vw;
}

.material-name-en {
  font-size: 9.6vw;
  font-weight: bold;
  letter-spacing: .4vw;
  line-height: 1.5;
}

.material-name-ja {
  font-size: 3.4vw;
}

.material-name-ja.justification {
  letter-spacing: .5em;
}

.material-summary-img {
  padding-left: 6.66vw;
  display: flex;
  justify-content: flex-end;
} 
.material-summary-img img {
  width: 100vw;
}

.material-summary-bottom {
  display: flex;
  flex-direction: column-reverse;
}

.material-summary-text-wrapper {
  margin: 12vw 9vw 0 9vw;
}

.material-summary-sub {
  font-weight: bold;
  font-size: 6.1vw;
  letter-spacing: .4vw;
}

.material-summary-text {
  font-size: 4vw;
  text-align: justify;
  margin-top: 9vw;
  line-height: 2;
}

/* material-point */
.material-point-wrapper {
  background-color: #000;
  padding-top: 14vw;
  padding-bottom: 15vw;
  position: relative;
}

.material-point-wrapper::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #000;
  transform: skewY(-15deg) translateY(50vw);
  z-index: -1;
}

.material-point-wrapper * {
  color: #fff;
}

.material-point {
  width: 68vw;
  height: 68vw;
  border-radius: 50%;
  border: 2px solid #fff;
  margin: 0 auto;
  position: relative;
}

.material-point + .material-point {
  margin-top: 6vw;
}

.material-point-text {
  font-size: 4vw;
  font-weight: bold;
  text-align: center;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  letter-spacing: .2vw;
}

/* material-feature */
.material-feature-wrapper {
  margin-bottom: 15vw;
}

.material-section-heading {
  font-size: 6.1vw;
  text-align: center;
  position: relative;
  line-height: 2.2;
  letter-spacing: .4vw;
  margin-bottom: 9.6vw;
}

.material-section-heading::before {
  position: absolute;
  content: "";
  height: 1px;
  width: 8.4vw;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background-color: #1e1e1e;
}

.material-feature-wrapper .material-section-heading {
  color: #fff;
}

.material-feature-wrapper .material-section-heading::before {
  background-color: #fff;
}

.material-feature-list {
  margin: 0 6vw;
}

.material-feature {
  background-color: #fff;
  border: 2px solid #000;
  padding: 11vw 7.2vw;
}

.material-feature + .material-feature {
  margin-top: 7.2vw;
}

.material-feature-heading {
  font-size: 5.6vw;
  text-align: center;
  color: #e05600;
  font-weight: bold;
  letter-spacing: .2vw;
  margin-bottom: 7.5vw;
}

.material-feature-text {
  text-align: justify;
  font-size: 4vw;
  color: #505050;
  line-height: 2;
  letter-spacing: .2vw;
}

/* material-purpose */
.material-purpose-wrapper {
  margin-bottom: 11.5vw;
}

.material-purpose-list {
  margin: 12vw 6vw 0;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  color: #1e1e1e;
}

.material-purpose {
  width: calc(50% - 2vw);
  border: 2px solid #1e1e1e;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 15vw;
  font-size: 3.4vw;
  letter-spacing: .1vw;
  line-height: 1.4;
  margin-bottom: 3.6vw;
  font-weight: 600;
}

.smaller-font .material-purpose {
  font-size: 3.2vw;
}

/* material-results */
.material-results-wrapper {
  margin-bottom: 15vw;
}

.material-results-img {
  margin: 0 6vw;
  overflow: hidden;
  height: 58vw;
  display: flex;
}

.material-results-img img {
  width: 100vw;
  object-fit: cover;
}

.material-results-text {
  margin: 6vw 12vw 0;
  font-weight: bold;
  font-size: 4vw;
  letter-spacing: .1vw;
}

.material-results-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10vw;
  position: relative;
}

.material-results-list + .material-results-list {
  margin-top: 10vw;
}


/* material-others */
.material-others-list{
  margin: 0 9vw;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.material-others {
  width: calc(50% - 2.8vw);
}

.material-others-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6vw 0 5vw;
  position: relative;
  border-bottom: 1px solid #1e1e1e;
  height: 100%;
}

.material-others-text:hover {
  border-bottom: 1px solid transparent;
}

.material-others-text::after {
  content: "";
  width: 100%;
  height: 1px;
  border-bottom: 1px solid #1e1e1e;
  position: absolute;
  left: 0;
  bottom: -1px;
  animation: btn-line-anim 2.1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.material-others-en {
  font-size: 5.5vw;
  font-weight: bold;
  letter-spacing: .4vw;
  margin-left: 1vw;
  line-height: 1;
}

.material-others-ja {
  font-weight: bold;
  font-size: 2.8vw;
  letter-spacing: .1vw;
  margin-left: 1vw;
  margin-top: 1.2vw;
}

.material-others-wrapper {
  padding-bottom: 30vw;
}


/*  company(会社案内)
 * *********************************** */
.contents.company-contents {
  padding-bottom: 30vw;
}

.company-nav {
  margin: 6.6vw 10vw 20vw;
}

.company-nav-list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.company-nav-item {
  width: 46%;
  border-bottom: 1px solid #1e1e1e;
}

.company-nav-item a {
  display: flex;
  justify-content: space-between;
  height: 12vw;
  line-height: 12vw;
}

.company-nav-text {
  font-size: 4vw;
  margin-left: .3em;
}

.company-arrow {
  width: 4.8vw;
}

/* PHILOSOPHY */
.company-section + .company-section {
  margin-top: 22.5vw;
}

.company-heading-wrapper {
  text-align: center;

}

.company-heading {
  font-size: 8.2vw;
  font-weight: bold;
  font-weight: 800;
  letter-spacing: .3vw;
  line-height: 1;
}

.company-heading-sub {
  font-weight: bold;
  font-size: 4vw;
  line-height: 1;
  margin: 4.8vw 0 9.6vw;
}

.philosophy-wrapper {
  margin: 0 6vw;
  border: 2px solid #c8c8c8;
  padding: 13vw 0;
  text-align: center;
}

.philosophy-text {
  font-size: 4.8vw;
  line-height: 2;
  font-family: "Noto Serif JP", serif;
}


/* OUTLINE */
.common-table {
  font-size: 4.3vw;
  margin: 0 6vw 5vw;
}
.common-table * {
  letter-spacing: 0;
}

.common-table tr {
  border-bottom: 1px solid #1e1e1e;
}

.common-table th, .common-table td {
  display: list-item;
  list-style: none;
}

.common-table tr:nth-of-type(1) {
  border-top: 1px solid #1e1e1e;
}

.common-table th {
  font-size: 4vw;
  padding: 7.2vw 0 6vw 0;
  width: 100%;
}

.common-table td {
  padding: 0 0 9.6vw 0;
}

.table-list-item {
  line-height: 1.8;
}

.table-list-item::before {
  content: '';
  width: .6em;
  height: .6em;
  background-color: #a7a7a7;
  border-radius: 50%;
  display: inline-block;
  position: relative;
  top: -.05em;
}

.outline-link {
  text-decoration: underline;
}


/* ACCESS */
.map-container {
  position: relative;
  width: 100%;
  padding-top: calc(10/13 * 100%);/*アスペクト比13:10*/
}

.map-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 0 6vw;
}

.map-bottom {
  margin: 4.3vw 6vw 0 6vw
}

.map-btn-wrapper {
  display: flex;
  justify-content: space-between;
}

.map-btn {
  display: flex;
  width: 47%;
  border-right: 2px solid #1a1a1a;
  border-bottom: 2px solid #1a1a1a;
  font-weight: 500;
  height: 9.33vw;
  align-items: center;
  font-size: 3.4vw;
  letter-spacing: 0;
  justify-content: space-between;
  padding: 0 3.2vw 1vw 3.2vw;
}

.map-address {
  margin-top: 4.6vw;
}

.map-address-text {
  font-size: 4vw;
  letter-spacing: 0.05em;
}

/* privacy */
.policy-wrapper {
  padding-bottom: 25vw;
}

.policy-preamble {
  font-size: 4vw;
  line-height: 2;
  color: #505050;
  letter-spacing: 0;
  margin: 11.296vw  6.775vw 0;
}

.policy-heading {
  font-size: 5.6vw;
  line-height: 1.75;
  margin-left: 6.667vw;
  margin-bottom: 3.063vw;
}

.policy-item {
  margin-top: 9.332vw;
}

.policy-text {
  font-size: 4vw;
  line-height: 2;
  color: #505050;
  margin-left: 13.477vw;
  margin-right: 6.799vw;
}

.policy-item-dl {
  font-size: 4vw;
  line-height: 2;
  margin: 4vw 6.799vw 0 13.441vw;
}

.policy-item-dl * {
  color: #505050;
}

.policy-item-dl dt {
  text-indent: -1em;
  padding-left: 1em;
}

.policy-item-dl dt::before {
  content: '・';
  width: 1em;
  height: 1em;
}

.policy-item-dl dd {
  padding-left: 1em;
}


/* 404 */
.page-heading.notfound {
  font-size: 8vw;
  line-height: 1.645;
  white-space: nowrap;
}

.notfound-wrapper {
  padding: 11.056vw 0 calc(25vw - 100px);
  font-size: 6.4vw;
  line-height: 1.5;
  letter-spacing: 0;
}

.notfound-heading-wrapper {
  text-align: center;
}

.notfound-text {
  margin: 6.944vw auto 8.426vw;
  font-size: 4vw;
  line-height: 2;
  color: #505050;
  width: 80%;
}

.back-top-btn {
  width: 66.667vw;
  height: 16vw;
  line-height: 16vw;
  border: 1px solid #000;
  margin: 0 auto;
  position: relative;
}

.back-top-btn .btn-text {
  font-size: 4vw;
  padding-left: 12.86vw;
  letter-spacing: 0;
}

.back-top-btn .btn-arrow {
  content: '';
  display: block;
  position: absolute;
  width: 1em;
  height: .25em;
  border: none;
  transform: skew(45deg);
  transition: .3s;
  border-right: 2px solid #1e1e1e;
  border-bottom: 1px solid #1e1e1e;
  top: 6.5vw;
  left: 51.14vw;
}

.back-top-btn:hover .btn-arrow {
  width: 1.8em;
}



/* ***********************************
 *  800px～：PC
 * *********************************** */
@media screen and (min-width: 800px) {
  /*  index.html
  * *********************************** */
  /* hero */
  .sp-contact-footer {
    display: none;
  }
  .logo-wrapper img {
    height: 60px;
  }
  .logo-text {
    font-size: 18px;
    margin-left: 16px;
  }
  .hero {
    top: -132px;
  }
  .hero-bg {
    object-fit: cover;
  }
  .hero-title-text {
    font-size: 90px;
  }
  .hero-title-text span {
    letter-spacing: 20px;
  }
  .hero-title-back {
    font-size: 160px;
    transform: translate(-50%, -40%);
    letter-spacing: 4px;
    width: 100%;
  }
  .hero-top-ornament {
    width: 24px;
    height: 24px;
    bottom: 88px;
    top: auto;
  }
  .scroll-line {
    top: 8px;
    height: 100px;
  }


  .hero-bottom {
      padding: 160px 48px 180px;
  }
  .hero-heading {
    font-size: 24px;
    letter-spacing: 4px;
    margin-bottom: 80px;
  }
  .hero-bottom .mask-wrapper {
    width: fit-content;
    margin: 0 auto;
  }
  .hero-bottom-sub {
    font-size: 64px;
    text-align: center;
    width: 100%;
  }
  .hero-bottom-text {
    padding-top: 100px;
    font-size: 20px;
    line-height: 2.5;
    text-align: center;
  }
  .hero-more-btn-wrapper {
    margin-top: 100px;
  }
  .more-btn {
    font-size: 24px;
  }


  /* MATERIAL */
  .top-material {
    margin: 200px 0 60px;
  }
  .material .top-material {
    margin: 150px 0 200px;
  }
  .top-heading {
    font-size: 120px;
    letter-spacing: 8px;
  }
  .top-heading-sub {
    font-size: 26px;
  }
  .top-heading-wrapper {
    margin-left: calc(100vw / 6);
  }
  .material-top {
    display: flex;
    margin-top: 100px;
  }
  .material-top-img-wrapper {
    margin-top: 0;
    width: auto;
    max-width: none;
  }
  .top-material .top-item-detail {
    margin: 0 7vw 0 6vw;
    width: auto;
  }
  .material-top-img-wrapper img {
    width: 47vw;
  }
  .top-item-detail-heading {
    font-size: 84px;
  }
  .top-item-detail-sub {
    font-size: 36px;
  }
  .material-top .top-item-detail-sub {
    margin: 24px 0 32px;
  }
  .top-item-detail-text {
    font-size: 20px;
    margin-bottom: 80px;
  }
  .top-material .top-item-detail-text {
    max-width: 480px;
  }

  .material-bottom {
    margin: 140px 0 0;
    display: flex;
    justify-content: center;
  }
  .material .material-bottom {
    margin: 140px 0 0;
  }

  .material-list-wrapper {
    margin: 0 0 0 4vw;
  }

  .material-list {
    width: auto;
  }
  .material-list-wrapper .material-list:nth-of-type(2) {
    margin-left: 20px;
  }

  .material-item-en {
    font-size: 36px;
    letter-spacing: 3px;
    white-space: nowrap;
    margin-left: 10px;
  }
  .material-item-ja {
    font-size: 12px;
    white-space: nowrap;
    margin-left: 10px;
    margin-top: 8px;
  }
  .material-item-text {
    padding: 30px 4vw 30px 0;
  }
  .material-arrow {
    position: absolute;
    width: 20px;
    right: 4px;
    top: 50%;
  }
  .material-bottom-img-wrapper {
    margin: 0 0 0 6vw;
  }


  /* PROCESSING */
  .processing-list-wrapper {
    margin: 100px 4vw 0;
  }
  .processing-list {
    display: flex;
    flex-wrap: wrap;
    max-width: 1100px;
    margin: 0 auto;
  }
  .processing-item {
    margin: 0;
    width: calc(50% - 20px);
    padding: 0 2vw 48px 0.5vw;
  }
  .processing-list .processing-item:nth-of-type(n+3) {
    margin-top: 40px;
  }
  .processing-list .processing-item:nth-of-type(2n-1) {
    margin-right: 20px;
  }
  .processing-list .processing-item:nth-of-type(2n) {
    margin-left: 20px;
  }

  .processing-item-heading {
    font-size: 36px;
    margin-bottom: 16px;
  }
  .processing-item-text {
    font-size: 18px;
  }


  /* FACILITY */
  .top-facility {
    margin-top: 200px;
  }
  .top-facility-content {
    display: flex;
    flex-direction: row-reverse;
  }
  .top-facility-inner {
    margin: 0 6vw 0 4vw;
  }
  .top-facility-img-wrapper {
    width: auto;
    margin: 0;
    max-width: none;
  }
  .top-facility-img {
    width: 47vw;
  }
  .top-facility .top-item-detail-sub {
    margin: 100px 0 60px;
  }
  .top-facility .top-item-detail {
    margin: 0;
    width: 100%;
    max-width: 480px;
    margin-left: auto;
  }

  /* NEWS */
  .top-news {
    display: flex;
    margin: 200px 4vw 160px;
    justify-content: center;
  }

  .top-news .top-heading-wrapper {
    margin: 0;
  }
  .top-news .top-heading-sub-wrapper {
    flex-direction: column;
    margin-top: 0;
  }
  .top-news .more-btn {
    margin-top: 60px;
    font-size: 20px;
  }


  .top-news .top-heading {
    font-size: 54px;
    letter-spacing: 6px;
    margin-left: 0;
  }
  .top-news .top-heading-sub {
    font-size: 18px;
  }

  .top-news-list {
    margin: 0 52px 0;
    width: 100%;
    max-width: 710px;
  }
  .top-news-link {
    padding: 24px 20px;
    display: flex;
    align-items: flex-start;
  }
  .top-news-date {
    font-size: 18px;
  }
  .top-news-attribute {
    font-size: 14px;
    width: 70px;
    margin: 0 20px 0 28px;
    padding-top: 2px;
  }
  .top-news-title {
    margin: 0;
    font-size: 18px;
  }

  .recruit-banner-wrapper {
    margin: 0 4vw 0;
    padding-bottom: 200px;
  }
  .recruit-banner-inner {
    margin: 0 auto;
    max-width: 1100px;
  }

  /*  material.html
  * *********************************** */
  /* material-summary */
  .page-heading {
    font-size: 56px;
    font-weight: bold;
    letter-spacing: 4px;
    margin-left: 11vw;
    margin-top: 0;
  }
  .page-heading-sub {
    letter-spacing: 0;
    font-size: 14px;
    margin-left: 11vw;
  }
  .page-heading-wrapper {
    padding-bottom: 80px;
  }
  .page-heading-wrapper::before {
    width: 8.1vw;
    top: 36px;
  }
  .material-summary {
    padding-top: 56px;
  }
  .material-name-wrapper {
    margin-bottom: 120px;
  }
  .material-name-en {
    font-size: 54px;
    letter-spacing: 2px;
    line-height: 1.6;
  }
  .material-name-ja {
    font-size: 16px;
  }

  .material-summary-bottom {
    flex-direction: row;
    margin: 0 10vw;
    justify-content: space-between;
  }

  .material-summary-text-wrapper {
    margin: 0;
    width: 47%;
  }

  .material-summary-sub {
    font-size: 36px;
    letter-spacing: 2px;
    line-height: 1.8;
  }
  .material-summary-text {
    font-size: 20px;
    margin-top: 60px;
  }

  .material-summary-img {
    padding-left: 0;
  }
  .material-summary-img {
    width: 46%;
  }

  /* material-point */
  .material-point-list {
    display: flex;
    justify-content: center;
  }

  .material-point-text {
    font-size: 20px;
    letter-spacing: 2px;
    font-size: 1.2vw;
  }

  .material-point {
    width: 21vw;
    height: 21vw;
    margin: 0;
  }

  .material-point + .material-point {
    margin-top: 0;
  }
  
  .material-point-list .material-point:nth-last-of-type(2n) {
    margin: 0 2.5vw;
  }

  .material-point-wrapper {
    padding-top: 100px;
    padding-bottom: 140px;
  }

  .material-point-wrapper::before {
    transform: skewY(-7deg) translateY(0);
    height: 155%;
  }

  .material-section-heading {
    font-size: 36px;
    letter-spacing: 2px;
    margin-bottom: 60px;
  }

  /* material-feature */
  .material-feature-wrapper {
    margin-bottom: 140px;
  }

  .material-feature-list {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: 0 10vw;
  }

  .material-feature {
    padding: 80px 3.7vw;
    width: 50%;
    border: 1px solid #000;
    width: 47%;
  }

  .material-feature + .material-feature {
    margin: 0;
  }

  .material-feature-list .material-feature:nth-of-type(n+3) {
    margin-top: 60px;
  }

  .material-feature-heading {
    font-size: 30px;
    letter-spacing: 2px;
    margin-bottom: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .material-feature-text {
    font-size: 20px;
    letter-spacing: normal;
  }

  /* material-purpose */
  .material-purpose-wrapper {
    margin-bottom: 116px;
  }

  .material-purpose-img {
    margin: 0 10vw;
  }

  .material-purpose-img img {
    width: 100vw;
  }

  .material-purpose-list {
    margin: 80px 15.5vw 0;
  }

  .material-purpose {
    width: calc(33% - 2vw);
    border: 1px solid #1e1e1e;
    height: 80px;
    font-size: 18px;
    letter-spacing: .1vw;
    margin-bottom: 24px;
  }

  .smaller-font .material-purpose {
    font-size: 18px;
  }

  /* material-others */
  .material-others-wrapper {
    padding-bottom: 200px;
  }

  .material-others {
    width: calc(25% - 1.2vw);
  }

  .material-others-en {
    font-size: 36px;
    letter-spacing: 3px;
    white-space: nowrap;
    margin-left: 10px;
  }

  .material-others-ja {
    font-size: 12px;
    white-space: nowrap;
    margin-left: 10px;
    margin-top: 8px;
  }

  .material-others-text {
    padding: 30px 4vw 30px 0;
  }

  .material-others-list::before,
  .material-others-list::after {
    content:"";
    display: block;
    width: calc(25% - 1.2vw);
  }
  .material-others-list::before {
    order: 1;
  }

  /* material-results */
  .material-results-wrapper {
    margin-bottom: 140px;
  }

  .material-results-list {
    margin: 0 10vw;
    justify-content: space-between;
    gap: 0;
  }

  .material-results-list + .material-results-list {
    margin-top: 60px;
  }

  .material-results-img {
    margin: 0;
    height: auto;
  }

  .material-results-text {
    margin: 24px 1vw 0 1vw;
    font-weight: bold;
    font-size: 20px;
    letter-spacing: 0;
  }

  /* 各アイテムの幅は3列分の1にする */
  .material-results-item {
    width: 24.5vw;
    box-sizing: border-box;
  }
  /* 疑似要素で不足分のアイテムを表示する */
  .material-results-list::after {
    content: "";
    display: block;
    width: 24.5vw;
    height: 0; /* 表示上は空（高さゼロ）だがスペースを確保 */
  }
  /* liが1つしかないとき、2つの空スロットを作る */
  .material-results-list:has(> li:nth-child(1)):not(:has(> li:nth-child(2)))::after {
    content: "";
    display: block;
    width: 49vw;
  }
  /* liが2つのとき、1スロットだけ補完する */
  .material-results-list:has(> li:nth-child(2)):not(:has(> li:nth-child(3)))::after {
    content: "";
    display: block;
    width: 24.5vw;
  }

  .material-results-list .material-results-item:nth-of-type(n+4) {
    margin-top: 120px;
  }

  /*  company(会社案内)
  * *********************************** */
    .contents.company-contents {
    padding-bottom: 200px;
  }

  .company-nav {
    width: 700px;
    margin: 70px auto 160px;
  }
  .company-nav-list {
    flex-wrap: nowrap;
  }
  .company-nav-item {
    width: 214px;
  }
  .company-nav-item a {
    height: auto;
    line-height: 1;
    padding: 30px 0;
  }
  .company-nav-text {
    font-size: 20px;
  }
  .company-arrow {
    width: 20px;
  }


  /* PHILOSOPHY */
  .company-heading {
    font-size: 42px;
  }

  .company-heading-sub {
    font-size: 20px;
    margin: 28px 0 60px;
  }

  .company-section.philosophy {
    margin: 0 20px;
  }
  .philosophy-wrapper {
    padding: 80px;
    margin: 0 auto;
    max-width: 1100px;
  }

  .philosophy-text {
    font-size: 24px;
  }

  /* OUTLINE */
  .company-section + .company-section {
    margin-top: 160px;
  }
  .common-table {
    margin: 0 auto 40px auto;
    font-size: 18px;
    width: 100%;
    max-width: 1100px;
  }

  .common-table th, .common-table td {
    display: table-cell;
    list-style: none;
  }

  .common-table tr {
    border-bottom: none;
  }

  .common-table tr:nth-of-type(1) {
    border-top: none;
  }

  .common-table th {
    padding: 20px;
    width: 240px;
    vertical-align: middle;
    font-size: 20px;
    border-bottom: 1px solid #1e1e1e;
  }
  .common-table th:nth-of-type(1) {
    border-top: 1px solid #1e1e1e;
  }
  .common-table td {
    border-bottom: 1px solid #c8c8c8;
    padding: 30px;
    line-height: 1.8;
  }
  .common-table td:nth-of-type(1) {
    border-top: 1px solid #c8c8c8;
  }

  /* ACCESS */
  .company-section.access {
    margin: 160px auto 0;
    max-width: 940px;
    width: calc(940/1100 * 100%);
  }
  .map-container {
    padding-top: calc(20/47 * 100%);/*アスペクト比47:20*/
  }

  .map-container iframe {
    padding: 0;
  }

  .map-bottom {
    margin: 35px 0 0 0;
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
  }

  .map-btn {
    font-size: 16px;
    height: 44px;
    width: 225px;
    padding: 10px 20px 20px 40px;
    border-right: 1px solid #1a1a1a;
    border-bottom: 1px solid #1a1a1a;
  }
  .map-btn + .map-btn {
    margin-left: 20px;
  }

  .map-address {
    margin-top: 0;
  }
  .map-address-text {
    font-size: 20px;
  }

  /* privacy */
  .contents.privacy {
    margin: 0 20px;
  }
  .policy-wrapper {
    max-width: 940px;
    margin: 0 auto;
    padding-bottom: 188px;
  }

  .policy-preamble {
    font-size: 20px;
    margin: 90px 0 60px 0;
    color: #323232;
  }

  .policy-item {
    margin-top: 0;
  }

  .policy-item + .policy-item {
    margin-top: 39px;
  }

  .policy-heading {
    font-size: 28px;
    margin: 0 0 10px 0;
  }

  .policy-text {
    font-size: 20px;
    margin-left: 42px;
    margin-right: 0;
    color: #323232;
  }

  .policy-item-dl {
    font-size: 20px;
    margin: 10px 0 0 42px;
  }

  .policy-item-dl * {
    color: #323232;
  }


  /* 404 */
    .contents.privacy {
    margin: 0 20px;
  }

  .page-heading.notfound {
    font-size: 56px;
    line-height: 1.2;
  }

  .notfound-wrapper {
    padding: 100px 0 100px;
  }

  .notfound-heading-wrapper {
    text-align: center;
  }

  .notfound-heading {
    font-size: 36px;
    line-height: 1.083;
  }

  .notfound-text {
    margin: 45px auto 66px;
    font-size: 20px;
    line-height: 2.25;
    text-align: center;
  }

  .back-top-btn {
    width: 360px;
    height: 90px;
    line-height: 90px;
  }

  .back-top-btn .btn-text {
    font-size: 20px;
    line-height: 90px;
    padding-left: 80px;
  }

  .back-top-btn .btn-arrow {
    content: '';
    display: block;
    position: absolute;
    width: 30px;
    height: 8px;
    border: none;
    transform: skew(45deg);
    transition: .3s;
    border-right: 2px solid #1e1e1e;
    border-bottom: 1px solid #1e1e1e;
    top: 37px;
    left: 265px;
  }

  .back-top-btn:hover .btn-arrow {
    width: 60px;
  }

}


/* ***********************************
 *  800px～1099px：タブレット/小型PC
 * *********************************** */
@media screen and (min-width: 800px) and (max-width: 1099px) {
  /*  index.html
  * *********************************** */
  .hero-bottom-sub {
    white-space: normal;
  }
  .top-heading-wrapper {
    margin-left: calc(100vw / 12);
  }
  .top-heading {
    font-size: 100px;
    letter-spacing: 6px;
  }
  .top-facility .top-item-detail {
    margin: 0 4vw 0 4vw;
    min-width: 30vw;
  }
  .top-facility-img-wrapper {
    width: 100%;
    padding-left: 4vw;
  }

  
  /*  material.html
  * *********************************** */
  .material-point {
    width: 29vw;
    height: 29vw;
  }

  .material-point-text {
    font-size: 1.7vw;
  }

  .material-others {
    width: calc(33% - 1.2vw);
  }
}