@charset "UTF-8";

/* ==========================================================================
ベース設定
=========================================================================== */
@font-face {
  font-family: "NotoSansJP";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "NotoSansJP_vert";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/NotoSansJP-Regular_vert.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "NotoSansJP";
  font-style: normal;
  font-weight: 700;
  src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "NotoSerifJP";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/NotoSerifJP-Regular.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "NotoSerifJP";
  font-style: normal;
  font-weight: 600;
  src: url("../fonts/NotoSerifJP-SemiBold.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "ShipporiMincho";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/ShipporiMincho-Regular.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "ShipporiMincho";
  font-style: normal;
  font-weight: 500;
  src: url("../fonts/ShipporiMincho-Medium.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "ShipporiMincho_vert";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/ShipporiMincho-Regular_vert.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "AlbertSans";
  font-style: normal;
  font-weight: 300;
  src: url("../fonts/AlbertSans-Light.woff2") format("woff2");
  font-display: swap;
}


:root {
  /* カラー */
  --black: #141414;
  --grey: #DEDEDE;
  --text: #333;
  --back: #C9C9C9;

  /* フォント */
  --font_NotoSansJP: "NotoSansJP", sans-serif;
  --font_NotoSansJP_vert: "NotoSansJP_vert", sans-serif;
  --font_NotoSerifJP: "NotoSerifJP", serif;
  --font_ShipporiMincho: "ShipporiMincho", serif;
  --font_ShipporiMincho_vert: "ShipporiMincho_vert", serif;
  --font_AlbertSans: "AlbertSans", sans-serif;
}

.html {
  font-size: 16px;
  scrollbar-gutter: stable;
  overflow-x: hidden;
}

#wpadminbar {
  z-index: 10000000!important;
}

.body {
  font-family: var(--font_NotoSansJP);
  font-size: 1rem;
  font-weight: 400;
  line-height: 2;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  font-optical-sizing: auto;
  font-feature-settings: "palt";
  line-break: strict;
  overflow-wrap: break-word;
  word-wrap: break-word;
  background: #fff;
  width: 100%;
  counter-reset: number 0;
  position: relative;
  overflow-x: hidden;
}

small {
  font-size: max(70%, 10px);
}

.body a {
  transition: all 0.3s;
}

.body a:hover {
  /* filter: brightness(0.8); */
  opacity: 0.6;
}

.forSP {
  display: none;
}

.forSP-inline {
  display: none;
}

a.btn {
  font-family: var(--font_ShipporiMincho);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-position: right 1.875rem center;
  background-size: 1.875rem auto;
  width: 15.625rem;
  height: 5rem;
  padding: 0 1.875rem;
}

a.btn--black {
  color: #fff;
  background-image: url(../img/arrow_half_white.svg);
  background-color: var(--black);
}

a.link {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: var(--text);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 0.0625rem solid #C9C9C9;
  width: 14.25rem;
  padding-bottom: 1.25rem;
}

a.link::after {
  content: "";
  display: inline-block;
  background: url(../img/arrow_circle_right_white.png) no-repeat center / 100% auto;
  width: 2.5rem;
  aspect-ratio: 1;
}

.inner {
  width: 90rem;
  margin: 0 auto;
}

.ttl {
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 2.125rem;
  letter-spacing: 0.12em;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.625rem;
}

.ttl::after{
  content: attr(data-en);
  font-family: var(--font_AlbertSans);
  font-weight: 300;
  font-size: 1.125rem;
  line-height: 1.375rem;
  letter-spacing: 0.1em;
  display: inline-block;
}

.bold {
  font-weight: 700;
}


/* ==========================================================================
ヘッダー
=========================================================================== */
.header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  padding: 2.5rem 3rem 0;
  mix-blend-mode: difference;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 101;
}

.header__logo {
  width: 15.625rem;
  position: absolute;
  top: 2.5rem;
  left: 3rem;
  z-index: 102;
}

/* ハンバーガーメニュー */
.html:has(.hamburgerContent.is-active) {
  overflow: hidden;
}

.hamburgerBtn {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  width: 3.75rem;
  aspect-ratio: 1;
  position: relative;
  z-index: 1;
  cursor: pointer;
}

.hamburgerBtn__wrap {
  width: 100%;
  height: 1.625rem;
  position: relative;
}

.hamburgerBtn span {
  width: 100%;
  height: 0.0625rem;
  background-color: #fff;
  /* background: var(--black); */
  position: absolute;
  left: 0;
  transition: all 0.5s;
}

.hamburgerBtn span:nth-of-type(1) {
  top: 0;
}

.hamburgerBtn span:nth-of-type(2) {
  top: 50%;
  transform: translateY(-50%);
}

.hamburgerBtn span:nth-of-type(3) {
  bottom: 0;
}

.hamburgerBtn.is-active {
  width: 4.0625rem;
}

.hamburgerBtn.is-active span {
  background: #fff;
}

.hamburgerBtn.is-active span:nth-of-type(1) {
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(24deg);
}

.hamburgerBtn.is-active span:nth-of-type(2) {
  opacity: 0;
  transform: translateX(1.25rem);
}

.hamburgerBtn.is-active span:nth-of-type(3) {
  top: 50%;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%) translateY(-50%) rotate(-24deg);
}

.hamburgerContent {
  background-image: url(../img/mark_img_white.png);
  background-repeat: no-repeat;
  background-position: right -8.3125rem bottom -10rem;
  background-size: 36.4375rem auto;
  background-color: var(--black);
  width: 100vw;
  height: 100vh;
  padding-top: 8.75rem;
  position: fixed;
  top: 0;
  left: 0;
  transform: translateY(-100%);
  transition: .5s;
  z-index: 100;
  overflow: hidden;
}

.hamburgerContent.is-active {
  overflow-y: auto;
  transform: translate(0);
}

.hamburgerContent__wrap {
  display: flex;
  gap: 11.25rem;
  padding-left: 5rem;
}

.hamburgerContent__side {
  width: 17.5rem;
}

.hamburgerContent__side-sns {
  margin-top: 2.1875rem;
}

.snsLinks {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.snsLinks a {
  display: block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% auto;
  width: 3.25rem;
  aspect-ratio: 1;
}

.snsLinks a[data-type="ig"] {
  background-image: url(../img/sns_icon_ig.png);
}

.snsLinks a[data-type="x"] {
  background-image: url(../img/sns_icon_x.png);
}

.snsLinks a[data-type="fb"] {
  background-image: url(../img/sns_icon_fb.png);
}

.snsLinks a[data-type="line"] {
  background-image: url(../img/sns_icon_line.png);
}

.snsLinks a[data-type="yt"] {
  background-image: url(../img/sns_icon_yt.png);
}

.hamburgerContent__nav .menu {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5rem 8.125rem;
}

.hamburgerOverlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  visibility: hidden;
  transition: opacity 0.3s ease;
  z-index: 0;
}

.hamburgerOverlay.is-active {
  opacity: 1;
  visibility: visible;
}

.nav .menu li:nth-of-type(4),
.nav .menu li:nth-of-type(5) {
  grid-column: span 3;
}

.nav li {
  font-family: var(--font_NotoSerifJP);
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.5rem;
  letter-spacing: 0.02em;
  color: var(--grey);
}

.nav .sub-menu {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 1.25rem;
  margin-top: 1.875rem;
}

.nav .sub-menu li {
  font-size: 1rem;
  letter-spacing: 0;
  display: flex;
  align-items: center;
  gap: 0.4375rem;
}

.nav .sub-menu li::before {
  content: "";
  display: inline-block;
  background: url(../img/arrow_right_grey.png) no-repeat center / 0.25rem auto;
  width: 0.25rem;
  height: 0.5rem;
}

.nav .menu a {
  color: var(--grey);
}

/* トップへ戻る */
.scrollTopBtn {
  display: block;
  background-image: url(../img/jump_top_icon.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 3rem auto;
  background-color: rgba(0, 0, 0, 0.6);
  width: 3.75rem;
  aspect-ratio: 1;
  position: fixed;
  right: 0;
  bottom: 3.75rem;
  opacity: 0;
  transition: all 0.3s;
  z-index: 98;
}

.scrollTopBtn.is-visible {
  opacity: 1;
}


/* ==========================================================================
トップページ
=========================================================================== */
.home__grid {
  display: grid;
  grid-template-columns: 42.5rem 1fr;
  gap: 5rem;
}

.home__grid-right {
  align-self: center;
  position: relative;
}

.home__block {
  width: 31.75rem;
}

.home__block-txt {
  margin-top: 2.5rem;
}

.home__block-txt p {
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.06em;
}

.home__block-txt p + p {
  margin-top: calc(1em * 2);
}

.home__block-links {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem 3.125rem;
  margin-top: 3rem;
}

/* FV */
.home__fv-img {
  height: 100vh;
  position: relative;
}

.home__fv-img::before {
  content: "";
  display: block;
  background: linear-gradient(270deg, rgba(18, 18, 18, 0.5) 39.9%, rgba(0, 0, 0, 0) 100%);
  width: 37.92vw;
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0.8;
}

.home__fv-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: all 3s;
  z-index: -1;
}

.home__fv-img img.is-active {
  opacity: 1;
}

.home__fv-img-catch {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 2.375rem;
  position: absolute;
  top: 25.56vh;
  right: 9.72vw;
}

.home__fv-img-catch span {
  writing-mode: vertical-rl;
  font-family: var(--font_ShipporiMincho_vert);
  font-weight: 400;
  font-size: 3.25rem;
  line-height: 1;
  letter-spacing: 0.12em;
  color: #fff;
}

.fv__scroll {
  position: absolute;
  bottom: 0;
  left: 4.17vw;
}

.fv__scroll-txt {
  writing-mode: vertical-lr;
  font-family: var(--font_AlbertSans);
  font-size: 0.875rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #fff;
  display: inline-block;
  padding: 0 0 13.5rem;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.fv__scroll-txt span {
  display: inline-block;
}

.fv__scroll-bar {
  position: absolute;
  left: calc(50% - 0.0625rem);
  bottom: 0.0625rem;
  transform: translateX(-50%);
}

.fv__scroll-bar::after {
  content: "";
  background: #fff;
  width: 0.0625rem;
  height: 13rem;
  position: absolute;
  bottom: 0;
  left: 0;
  opacity: 0.5;
}

.fv__scroll-bar::before {
  content: "";
  width: 0.0625rem;
  height: 3.25rem;
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
  animation: barmove 3s ease-in-out infinite,
            barmovehide 3s ease-out infinite;
}

@keyframes barmove {
  0% {
    bottom: 9.75rem;
  }
  100% {
    bottom: 0px;
  }
}

@keyframes barmovehide {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  80% {
    opacity: 0.9;
  }
  100% {
    opacity: 0;
  }
}

.home__fv-img a.btn {
  position: absolute;
  right: 0;
  bottom: 0;
}

.home__fv-slider {
  margin-top: 3.75rem;
}

.home__fv-slider .splide__slide[data-num="1"],
.home__fv-slider .splide__slide[data-num="3"],
.home__fv-slider .splide__slide[data-num="5"] {
  padding-top: 3.3125rem;
}

/* 導入 */
.home__intro {
  height: 100vh;
  margin-top: 11.25rem;
  position: relative;
  z-index: 0;
}

.home__intro::before {
  content: "";
  display: inline-block;
  background: url(../img/mark_img_grey.png) no-repeat center / contain;
  width: 37.6875rem;
  height: 37.5625rem;
  position: absolute;
  top: -13.375rem;
  right: -9rem;
  z-index: 0;
}

.home__intro-img {
  width: 100%;
  height: 100vh;
  position: relative;
}

.home__intro-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}

.home__intro-message {
  padding: 11.25rem 0 8.75rem;
}

.home__intro-about {
  padding: 8.75rem 0 15.25rem;
}

.home__intro-catch {
  display: flex;
  flex-direction: row-reverse;
  gap: 2rem;
  position: absolute;
  top: 0;
  right: 4.5rem;
}

.home__intro-catch span {
  writing-mode: vertical-rl;
  font-family: var(--font_ShipporiMincho_vert);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.home__intro-catch span:nth-of-type(1) {
  font-size: 3rem;
}

.home__intro-catch span:nth-of-type(2) {
  font-size: 3.5rem;
  margin-top: 3.5rem;
}

/* 仕事を知る */
.home__job {
  padding-top: 10rem;
}

.home__job .ttl {
  margin-left: 3rem;
}

.home__job-list {
  display: grid;
  grid-auto-rows: 36.625rem;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.0625rem;
  margin-top: 2.5rem;
}

.home__job-list-item {
  position: relative;
}

.home__job-list-item a {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-color: rgba(93, 98, 119, 0.5);
  background-blend-mode: multiply;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.home__job-list-item:nth-of-type(1) a {
  background-image: url(../img/home_job_img_01.jpg);
}

.home__job-list-item:nth-of-type(2) a {
  background-image: url(../img/home_job_img_02.jpg);
}

.home__job-list-item:nth-of-type(3) a {
  background-image: url(../img/home_job_img_03.jpg);
}

.home__job-list-item:nth-of-type(4) a {
  background-image: url(../img/home_job_img_04.jpg);
}

.home__job-list-item-ttl {
  writing-mode: vertical-rl;
  font-family: var(--font_NotoSansJP_vert);
  font-weight: 400;
  font-size: 1.625rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  position: absolute;
  top: 1.625rem;
  right: 2.1875rem;
}

.home__job-list-item-ttl::after {
  content: attr(data-en);
  font-family: var(--font_AlbertSans);
  font-weight: 300;
  font-size: 0.9375rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #D9D9D9;
  margin-top: 0.5rem;
}

/* 働くスタッフの声 */
.home__voice {
  padding-top: 5rem;
  padding-bottom: 8.75rem;
}

.voiceSlider {
  margin-left: calc((100% - 90rem) / 2);
  position: relative;
}

.voiceSlider__splide {
  padding-top: 4rem;
}

.voiceSlider__side {
  background: #fff;
  width: 31.125rem;
  height: 100%;
  padding: 10.25rem 0 0 3rem;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.voiceSlider__side a.link {
  position: absolute;
  bottom: 0;
  left: 3rem;
}

.voiceList__item-img {
  position: relative;
}

.voice__list .voiceList__item-img img {
  width: 21.25rem;
  aspect-ratio: 340 / 454;
  object-fit: cover;
}

.voiceList__item-prof {
  font-family: var(--font_NotoSerifJP);
  font-weight: 600;
  line-height: 1.5rem;
  letter-spacing: 0.04em;
  color: #fff;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.375rem;
  background: var(--black);
  padding: 0.875rem 1.125rem;
  position: absolute;
  bottom: 0;
  left: 0;
}

.voiceList__item-prof-name {
  font-size: 0.9375rem;
  display: inline-block;
}

.voiceList__item-prof-dept {
  font-size: 0.75rem;
  display: inline-block;
  border: 1px solid rgba(255, 255, 255, 0.5);
  padding: 0 0.375rem;
}

.voiceList__item-txt {
  font-size: 1.125rem;
  line-height: 1.8;
  letter-spacing: 0.12em;
  color: var(--text);
  margin-top: 1.25rem;
  white-space: nowrap;
}

.splide__arrows {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.375rem;
  position: absolute;
  top: 0;
  right: calc(100% - 90rem + 3.125rem);
}

.splide__arrow {
  width: 2.5rem !important;
  height: 2.5rem !important;
  position: static !important;
  transform: translate(0) !important;
  opacity: 1 !important;
}

.splide__arrow:disabled {
  opacity: 0.3 !important;
}

.splide__arrow--prev {
  background: url(../img/arrow_circle_left_black.png) no-repeat center / 100% auto !important;
}

.splide__arrow--next {
  background: url(../img/arrow_circle_right_black.png) no-repeat center / 100% auto !important;
}

.splide__arrow svg {
  display: none;
}

/* 成長と環境 */
/* .home__environment {
  padding-bottom: 3.75rem;
} */

/* 野口観光の3つのブランド */
.home__brands {
  height: 100vh;
  transition: color 0.3s, background 0.3s;
  overflow: hidden;
}

.home__brands.is-active {
  color: var(--grey);
  background: var(--black);
}

.home__brands-img {
  width: 100%;
  height: 100vh;
  position: relative;
}

.home__brands-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}

.home__brands-block {
  padding-top: 11.25rem;
  padding-bottom: 15.25rem;
}

.home__brands-list {
  margin-top: 6.25rem;
}

.home__brands-list-item:nth-of-type(n+2) {
  margin-top: 3.125rem;
}

.home__brands-list-item-img {
  position: relative;
}

.home__brands-list-item-img img {
  width: 22.5rem;
}

.home__brands-list-item-img-ttl {
  writing-mode: vertical-rl;
  font-family: var(--font_ShipporiMincho_vert);
  font-weight: 400;
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0.06em;
  position: absolute;
  top: 50%;
  right: 3.125rem;
  transform: translateY(-50%);
  white-space: nowrap;
}

.home__brands-list-item-txt {
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.06em;
  grid-column: span 2;
  margin-top: 3rem;
}

.home__brands-block a.link {
  margin-top: 6.25rem;
  transition: all 0.3s;
}

.home__brands.is-active a.link {
  color: var(--grey);
}


/* ==========================================================================
固定ページ
=========================================================================== */
.page__top {
  margin-top: 11.875rem;
  position: relative;
}

.page__top img {
  width: 87.5vw;
  height: 25rem;
  object-fit: cover;
}

.page__top-ttl {
  writing-mode: vertical-rl;
  font-family: var(--font_NotoSansJP_vert);
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: 0.12em;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
  position: absolute;
  top: 0;
  right: 3.375rem;
}

.page__top-ttl::after {
  content: attr(data-en);
  font-family: var(--font_AlbertSans);
  font-weight: 300;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: 0.12em;
  color: #fff;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: var(--black);
  width: 1.625rem;
  padding: 0.5rem 0;
}

.page__content {
  /* padding: 6.25rem 0 0; */
  background: #fff;
  position: relative;
  z-index: 0;
}

.page__content .inner {
  padding-left: 11.25rem;
}

.page__sideMenu {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  mix-blend-mode: difference;
  padding: 6.25rem 0;
  position: absolute;
  top: 0;
  left: calc((100% - 90rem) / 2 + 3rem);
  z-index: 1;
}

.page__sideMenu-item {
  writing-mode: vertical-rl;
  font-family: var(--font_NotoSansJP_vert);
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #fff;
  padding-top: 0.625rem;
  opacity: 0.2;
  transition: all 0.3s;
  position: relative;
}

.page__sideMenu-item.is-active {
  opacity: 1;
}

.page__sideMenu-item.is-active::before {
  content: "";
  display: inline-block;
  background: #fff;
  border-radius: 50%;
  width: 0.25rem;
  aspect-ratio: 1;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.page__content .inner {
  padding-right: 11.25rem;
}

.page__voice {
  padding-top: 8.75rem;
  padding-bottom: 8.75rem;
}


/* ==========================================================================
野口観光を知る
=========================================================================== */
.about .page__content {
  padding-bottom: 8.75rem;
}

/* 野口観光の歩み */
.about__history {
  padding-top: 6.25rem;
  padding-bottom: 6.875rem;
}

.about__history-timeline {
  margin-top: 4.875rem;
  position: relative;
  z-index: 0;
}

.about__history-timeline-item {
  height: 31.875rem;
  opacity: 0;
  position: relative;
}

.about__history-timeline-item::before {
  content: "";
  display: inline-block;
  background: #565656;
  width: 0.0625rem;
  height: 20rem;
  position: absolute;
  top: 9.375rem;
  left: 50%;
  transform: translateX(-50%);
}

.about__history-timeline-item:last-of-type::before {
  height: 12.8125rem;
}

.about__history-timeline-item-time {
  font-family: var(--font_ShipporiMincho);
  font-size: 6.25rem;
  line-height: 1.1;
  letter-spacing: 0.06em;
  text-align: center;
}

.about__history-timeline-item img {
  width: 15.625rem;
  position: absolute;
  top: 9.375rem;
}

.about__history-timeline-item:nth-of-type(2n+1) img {
  right: 1.5rem;
}

.about__history-timeline-item:nth-of-type(2n) img {
  left: 0;
}

.about__history-timeline-item-wrap {
  display: inline-block;
  margin-top: 2.5rem;
}

.about__history-timeline-item:nth-of-type(2n) .about__history-timeline-item-wrap {
  position: absolute;
  right: 0;
}

.about__history-timeline-catch {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.about__history-timeline-catch span {
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--black);
  padding: 0.3125rem 1.25rem;
  position: relative;
}

.about__history-timeline-catch span::after {
  content: "";
  display: inline-block;
  background: var(--black);
  height: 0.125rem;
  width: 100%;
  position: absolute;
  bottom: -0.0625rem;
  left: 0;
}

.about__history-timeline-item-txt {
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  width: 25rem;
  margin-top: 2.5rem;
}

.about__history-timeline-shape {
  background: #F8F8F8;
  width: 48.4375rem;
  height: 36.875rem;
  position: absolute;
  z-index: -1;
}

.about__history-timeline-shape01 {
  top: 13.375rem;
  left: calc((100% - 90rem) / 2);
}

.about__history-timeline-shape02 {
  top: 55.3125rem;
  right: calc((100% - 90rem) / 2);
}

.about__history-timeline-shape03 {
  top: 97.25rem;
  left: calc((100% - 90rem) / 2);
}

/* 数字で見る野口観光 */
.about__number {
  background: var(--black);
  padding: 8.75rem 0;
}

.about__number .ttl {
  color: #fff;
}

.about__number-grid {
  display: grid;
  grid-auto-rows: 16.125rem;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.5rem;
  margin-top: 5rem;
}

.about__number-grid-item {
  background: #fff;
  box-shadow: 0 0 0.25rem -0.25rem rgba(69, 69, 87, 0.05),
              0 1rem 1rem -0.5rem rgba(73, 73, 98, 0.15);
  padding: 2.5rem;
}

.about__number-grid-item--employees {
  grid-row: 1;
  grid-column: 1;
}

.about__number-grid-item--founding {
  grid-row: 2;
  grid-column: 1;
}

.about__number-grid-item--mf {
  grid-row: span 2;
  grid-column: 2;
}

.about__number-grid-item-ttl {
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  gap: 0.625rem;
}

.about__number-grid-item-ttl::before {
  content: "";
  display: inline-block;
  background: var(--black);
  border-radius: 50%;
  width: 0.6875rem;
  aspect-ratio: 1;
}

.about__number-grid-item-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 0 0.5rem;
}

.about__number-grid-item-txt {
  display: flex;
  align-items: baseline;
  padding-bottom: 1rem;
}

.about__number-grid-item-txt-num {
  font-family: var(--font_ShipporiMincho);
  font-weight: 400;
  font-size: 4rem;
  line-height: 4.375rem;
  letter-spacing: 0.06em;
}

.about__number-grid-item-txt-unit {
  font-family: var(--font_ShipporiMincho);
  font-weight: 400;
  font-size: 1.875rem;
  line-height: 1;
  letter-spacing: 0.06em;
  transform: translateY(-6px);
}

.about__number-grid-item img {
  width: 10rem;
}

.about__number-grid-item-txt-ttl {
  font-family: var(--font_ShipporiMincho);
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 1.1;
  letter-spacing: 0.06em;
}

.about__number-grid-item-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.625rem;
}

.about__number-grid-item--mf .about__number-grid-item-flex {
  padding: 0 0.625rem;
  margin-top: 4.75rem;
}

.about__number-grid-item--mf .about__number-grid-item-wrap {
  width: 10.125rem;
}

.about__number-grid-item--mf .about__number-grid-item-txt {
  padding-bottom: 0;
}

.about__number-grid-item--mf img {
  width: 26.25rem;
  margin: 1.25rem auto 0;
}

/* 想いから生まれた制度 */
.about__background {
  padding-top: 8.75rem;
}

.about__background-block {
  display: grid;
  grid-template-rows: repeat(2, auto);
  grid-template-columns: 1fr 32.5rem;
  gap: 3rem 3.25rem;
}

.about__background-block + .about__background-block {
  margin-top: 3.125rem;
}

.about__background-block-wrap {
  grid-column: 1;
}

.about__background-block:nth-of-type(1) .about__background-block-wrap {
  grid-row: 2;
}

.about__background-block:nth-of-type(2) .about__background-block-wrap {
  grid-row: span 2;
}

.about__background-block img {
  grid-row: span 2;
}

.about__background-ttl {
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  color: #fff;
  display: inline-block;
  background: var(--black);
  padding: 0.3125rem 1.25rem;
}

.about__background-txt {
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.06em;
  margin-top: 1.875rem;
}

/* 企業概要 */
.about__company {
  padding-top: 8.75rem;
}

.about__company-content {
  margin-top: 3rem;
}

.table {
  table-layout: fixed;
  border-collapse: collapse;
  width: 100%;
}

.about__company-table tr {
  border-bottom: 0.0625rem solid #565656;
}

.about__company-table th {
  font-weight: 400;
  font-size: 1rem;
  line-height: 1;
  color: #fff;
  letter-spacing: 0.12em;
  background: var(--black);
  width: 8.75rem;
  height: 5rem;
}

.about__company-table td {
  font-size: 0.9375rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  text-align: center;
}

.about__company-table td:nth-of-type(2n) {
  background: #F8F8F8;
}

.about__company-table td[colspan="4"] {
  text-align: left;
  padding-left: 3.375rem;
  padding-right: 3.375rem;
}

.about__company-table td[colspan="4"]:has(br) {
  padding-top: 1.875rem;
  padding-bottom: 1.875rem;
}

.about__company-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5rem;
  margin-top: 8.75rem;
}


/* ==========================================================================
仕事を知る
=========================================================================== */
.job .container {
  overflow: hidden;
}

.job .page__content {
  padding-bottom: 8.75rem;
}

.job__content {
  padding-top: 6.25rem;
  position: relative;
  z-index: 0;
}

.body .fixed {
  height: 100vh;
}

.job__content .inner {
  padding-right: 0;
}

.job__grid {
  display: grid;
  grid-template-columns: 1fr 40.1875rem;
  gap: 6.75rem;
}

.job__grid-right {
  position: relative;
}

.job__block {
  min-height: 100vh;
  padding-bottom: 18.75rem;
}

.job__block-txt {
  margin-top: 3rem;
}

.job__block-txt p {
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.06em;
}

.job__block-txt p + p {
  margin-top: calc(1em * 2);
}

.job__block .link {
  margin-top: 3rem;
}

.job__img {
  width: 100%;
  height: 100vh;
  position: relative;
}

.job__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}

.fixed__img img {
  opacity: 0;
}

.job__block-box {
  background: #F8F8F8;
  padding: 3.75rem 1.875rem;
  margin-top: 3.75rem;
}

.job__block-box-ttl {
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 1.5rem;
  letter-spacing: 0.12em;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.job__block-box-ttl::before {
  content: "";
  display: inline-block;
  background: var(--black);
  border-radius: 50%;
  width: 0.5rem;
  aspect-ratio: 1;
  transform: translateY(0.1em);
}

.job__block-box-heading {
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.625rem;
  letter-spacing: 0.06em;
  border-bottom: 0.0625rem solid #C9C9C9;
  padding-bottom: 0.875rem;
  margin-top: 3rem;
}

.job__block-box-heading:nth-of-type(n+2) {
  margin-top: 3.75rem;
}

.job__block-box-txt {
  font-size: 0.9375rem;
  line-height: 2;
  letter-spacing: 0.06em;
  margin-top: 1rem;
}

.job__pageLinks-list {
  display: grid;
  grid-auto-rows: 36.625rem;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.0625rem;
}

.job__pageLinks-list-item {
  position: relative;
}

.job__pageLinks-list-item a {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-color: rgba(93, 98, 119, 0.5);
  background-blend-mode: multiply;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.job__pageLinks-list-item[data-type="restaurant-cooking"] a {
  background-image: url(../img/home_job_img_01.jpg);
}

.job__pageLinks-list-item[data-type="front-shop"] a {
  background-image: url(../img/home_job_img_02.jpg);
}

.job__pageLinks-list-item[data-type="reservation"] a {
  background-image: url(../img/home_job_img_03.jpg);
}

.job__pageLinks-list-item[data-type="facilities-admin-accounting"] a {
  background-image: url(../img/home_job_img_04.jpg);
}

.job__pageLinks-list-item-ttl {
  writing-mode: vertical-rl;
  font-family: var(--font_NotoSansJP_vert);
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 2.3125rem;
  letter-spacing: 0.06em;
  color: #fff;
  display: flex;
  flex-direction: column;
  gap: 1.625rem;
  position: absolute;
  top: 1.625rem;
  right: 2.8125rem;
}

.job__pageLinks-list-item-ttl::after {
  content: attr(data-en);
  font-family: var(--font_AlbertSans);
  font-weight: 300;
  font-size: 0.875rem;
  line-height: 1.1;
  letter-spacing: 0.06em;
  color: #D9D9D9;
  margin-top: 0.375rem;
}

.restaurant-cooking .page__content,
.front-shop .page__content,
.reservation .page__content,
.facilities-admin-accounting .page__content {
  padding-bottom: 6.25rem;
}

.restaurant-cooking .job__block:last-of-type,
.front-shop .job__block:last-of-type,
.reservation .job__block:last-of-type,
.facilities-admin-accounting .job__block:last-of-type {
  padding-bottom: 0;
}

.restaurant-cooking .page__voice,
.front-shop .page__voice,
.facilities-admin-accounting .page__voice {
  padding-top: 6.25rem;
}

.reservation .page__voice {
  padding-top: 0;
}


/* ==========================================================================
成長と環境
=========================================================================== */
.environment__ttl {
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.375rem;
  letter-spacing: 0.06em;
  border-left: 0.1875rem solid var(--text);
  padding-left: 0.875rem;
  margin-top: 3rem;
}

.environment__ttl:nth-of-type(n+2) {
  margin-top: 5rem;
}

.environment__grid {
  display: grid;
  gap: 1.625rem 1.875rem;
  margin-top: 2.5rem;
}

.environment__grid--2col {
  grid-template-columns: repeat(2, 1fr);
}

.environment__grid--3col {
  grid-template-columns: repeat(3, 1fr);
}

.environment__grid-item {
  background: #F8F8F8;
  padding: 2.5rem;
}

.environment__grid-item-ttl {
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.25rem;
  letter-spacing: 0.06em;
  text-align: center;
}

.environment__grid-item-txt {
  font-size: 0.9375rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  margin-top: 1.5rem;
}

.environment__grid-item-txt--center {
  font-size: 0.9375rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  text-align: center;
  margin-top: 1.25rem;
}

small.environment__grid-item-note {
  font-size: 0.8125rem;
  line-height: 1.25rem;
  display: block;
  margin-top: 1.25rem;
}

.environment__grid-item-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
  margin-top: 1.5rem;
}

.environment__grid-item-flex > .environment__grid-item-txt {
  margin-top: 0;
}

.environment__grid-item-flex > img {
  width: 10.125rem;
}

.environment__grid-item-flex + small.environment__grid-item-note {
  text-align: center;
  margin-top: 0.875rem;
}

/* 教育制度 */
.environment__education {
  padding-top: 6.25rem;
}

.environment__table {
  border-bottom: 0.0625rem solid #848484;
  margin-top: 2.5rem;
}

.environment__table thead th {
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--black);
  padding: 1.125rem 0;
}

.environment__table thead th:nth-of-type(1) {
  width: 12.625rem;
}

.environment__table thead th:nth-of-type(n+2) {
  border-left: 0.0625rem solid #fff;
}

.environment__table tbody th {
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: 0.06em;
  background: #F8F8F8;
  padding: 1.125rem 0;
}

.environment__table tbody td {
  font-size: 0.9375rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding: 1.25rem 1.625rem;
}

.environment__table tbody tr:nth-of-type(n+2) th,
.environment__table tbody tr:nth-of-type(n+2) td {
  border-top: 0.0625rem solid #C9C9C9;
}

/* 画像 */
.environment__img {
  margin-top: 7.5rem;
}

.environment__img img {
  height: 25rem;
  object-fit: cover;
}

/* 福利厚生 */
.environment__benefits {
  padding-top: 7.5rem;
}

.environment__benefits .environment__grid-item img {
  width: 5.625rem;
  aspect-ratio: 1;
  margin: 0 auto;
}

.environment__benefits .environment__grid-item-ttl {
  margin-top: 2rem;
}

.environment__benefits .link {
  justify-self: center;
  align-self: end;
}

.environment .page__voice {
  padding-top: 6.25rem;
  padding-bottom: 8.75rem;
}


/* ==========================================================================
ブランド一覧
=========================================================================== */
.brands .page__content {
  padding: 6.25rem 0 8.75rem;
}

/* 導入 */
.brands__intro {
  padding-bottom: 26.875rem;
  position: relative;
}

.brands__intro::before {
  content: "";
  display: inline-block;
  background: #F4F4F4;
  width: 100%;
  height: 31.25rem;
  position: absolute;
  bottom: 2.8125rem;
  left: 0;
  z-index: -1;
}

.brands__intro .inner {
  padding-right: 0;
}

.brands__intro-txt {
  font-size: 1rem;
  line-height: 2;
  width: 29.5rem;
}

.brands__intro img:nth-of-type(1) {
  width: 45rem;
  position: absolute;
  top: 0;
  right: calc((100% - 90rem) / 2);
}

.brands__intro img:nth-of-type(2) {
  width: 30.875rem;
  position: absolute;
  bottom: 0;
  left: calc((100% - 90rem) / 2 + 11.25rem);
}

/* 一覧 */
.brands__content {
  padding-top: 10rem;
  position: relative;
  z-index: 0;
}

.brands__sort {
  margin-top: 3rem;
  position: relative;
}

.brands__sort-wrap {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1.875rem;
}

.brands__sort-wrap + .brands__sort-wrap {
  margin-top: 1.375rem;
}

.brands__sort-ttl {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0.06em;
  text-align: right;
  width: calc(4em * 1.06);
  flex-shrink: 0;
}

.brands__sort-btns {
  display: flex;
  align-items: center;
  gap: 1.125rem;
}

.brands__sort-btns > button {
  font-family: var(--font_NotoSansJP);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.06em;
  color: var(--text);
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  border: 0.0625rem solid #C6C6C6;
  border-radius: 0.25rem;
  min-width: 5.125rem;
  padding: 0.5rem 0.625rem;
  cursor: pointer;
  transition: all 0.3s;
}

.brands__sort-btns > button:hover {
  opacity: 0.6;
}

.brands__sort-btns > button.is-active {
  background: #EBEBEB;
}

.brands__count {
  font-size: 1rem;
  line-height: 1.1;
  letter-spacing: 0.06em;
  position: absolute;
  right: 0;
  bottom: 0.5rem;
  pointer-events: none;
}

.brands__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 1.875rem;
  margin-top: 3.125rem;
}

.brands__list-item {
  background: #fff;
  box-shadow: 0 0 1.25rem 0 rgba(122, 135, 144, 0.2);
  padding: 1.875rem;
}

.brands__list-item-ttl {
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 1.5rem;
  letter-spacing: 0.06em;
  margin-top: 1.25rem;
}

.brands__list-item-txt {
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  margin-top: 1rem;
}

.brands__list-item-tags {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-top: 1rem;
}

.brands__list-item-tags li {
  font-size: 0.875rem;
  line-height: 1;
  letter-spacing: 0.06em;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border: 0.0625rem solid #C6C6C6;
  border-radius: 0.25rem;
  padding: 0.5rem 1rem;
}

.brands__links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5rem;
  margin-top: 8.75rem;
}


/* ==========================================================================
募集要項
=========================================================================== */
.tab__content-box {
  display: none;
}

.tab__content-box.is-show {
  display: block;
}

.job-description__content {
  padding: 6.25rem 0 8.75rem;
}

.job-description .tab__menu {
  display: flex;
  justify-content: center;
  gap: 1.125rem;
}

.job-description .tab__menu-item {
  font-family: var(--font_NotoSerifJP);
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  background: #9D9D9D;
  border-radius: 0.25rem 0.25rem 0 0;
  width: 30.625rem;
  height: 4.375rem;
  cursor: pointer;
  position: relative;
}

.job-description .tab__menu-item.is-active {
  background: var(--text);
}

.job-description .tab__menu-item.is-active::after {
  content: "";
  border-top: 1.25rem solid var(--text);
  border-right: 0.9375rem solid transparent;
  border-left: 0.9375rem solid transparent;
  position: absolute;
  left: 50%;
  bottom: -0.9375rem;
  transform: translateX(-50%);
}

.job-description .tab__content {
  background: #F8F8F8;
  padding: 0.9375rem 2.5rem 1.25rem;
}

.job-description__list {
  display: grid;
  grid-template-columns: 17rem 1fr;
}

.job-description__list dt {
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: 0.06em;
  padding: 2.5rem 0 2.5rem 3.5rem;
}

.job-description__list dd {
  font-size: 0.9375rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  padding: 2.5rem 2.75rem 2.5rem 0;
}

.job-description__list dt:nth-of-type(n+2),
.job-description__list dd:nth-of-type(n+2) {
  border-top: 0.0625rem solid #ECECE4;
}

.job-description__list-ttl {
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.3125rem;
}

.job-description__list-ttl::before {
  content: "";
  display: inline-block;
  background: var(--text);
  border-radius: 0.0625rem;
  width: 0.625rem;
  aspect-ratio: 1;
}

* + .job-description__list-ttl {
  margin-top: calc(1em * 1.8);
}

.job-description__list-txt p + p {
  margin-top: calc(1em * 1.8);
}

.job-description__list-txt * + ul {
  margin-top: calc(1em * 1.8);
}

.job-description__list-txt ul li::before {
  content: "・";
}


/* ==========================================================================
働くスタッフの声
=========================================================================== */
/* アーカイブページ */
.voice__content {
  padding: 7.375rem 0 8.75rem;
}

.voice__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 1.875rem;
  margin-top: 2.5rem;
}

/* 個別ページ */
.single-voice .page__content {
  padding-top: 11.875rem;
  padding-bottom: 8.75rem;
}

.single-voice__top .inner {
  padding: 0;
}

.single-voice__top-img {
  width: 75.625rem;
  height: 31.25rem;
  position: relative;
}

.single-voice__top-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.single-voice__top-img-prof {
  font-family: var(--font_NotoSerifJP);
  font-weight: 600;
  line-height: 1.5rem;
  letter-spacing: 0.04em;
  color: #fff;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  background: var(--black);
  padding: 1.25rem 1.875rem;
  position: absolute;
  right: 0;
  bottom: 0;
}

.single-voice__top-img-prof-name {
  font-size: 1.125rem;
  display: inline-block;
}

.single-voice__top-img-prof-dept {
  font-size: 0.8125rem;
  color: #B1B1B1;
  display: inline-block;
  border: 0.0625rem solid #B1B1B1;
  padding: 0 0.5rem;
}

.single-voice__top-catch {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  position: absolute;
  top: 23.25rem;
  left: calc((100% - 90rem) / 2 + 51.4375rem);
}

.single-voice__top-catch span {
  font-family: var(--font_NotoSerifJP);
  font-weight: 600;
  font-size: 2rem;
  line-height: 1;
  letter-spacing: 0.04em;
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
  background: #fff;
  height: 3.375rem;
  padding: 0 1.25rem;
}

.single-voice__content {
  padding: 3.75rem 0 0;
  position: relative;
}

.single-voice__content::before {
  content: "";
  display: inline-block;
  background: url(../img/mark_img_grey.png) no-repeat center / contain;
  width: 37.6875rem;
  height: 37.5625rem;
  position: fixed;
  bottom: 4.75rem;
  right: calc((100% - 90rem) / 2 - 9rem);
  z-index: -1;
}

.single-voice__content .inner {
  padding: 0 14.375rem;
}

* + .single-voice__block {
  margin-top: 3.75rem;
}

.single-voice__ttl {
  font-weight: 400;
  font-size: 1.375rem;
  line-height: 2.0625rem;
  letter-spacing: 0.06em;
  color: #fff;
  display: inline-block;
  background: var(--black);
  padding: 0.5rem 0.75rem;
}

.single-voice__ttl + * {
  margin-top: 1.5rem;
}

.single-voice__txt {
  font-size: 1rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
}

.single-voice__block--q2 {
  display: flex;
  align-items: center;
  gap: 3.125rem;
}

.single-voice__block--q2.is-start {
  align-items: flex-start;
}

.single-voice__block--q4 {
  display: flex;
  align-items: flex-start;
  gap: 3.125rem;
}

.single-voice__block--q2 img {
  width: 28.125rem;
  aspect-ratio: 450 / 338;
  object-fit: cover;
}

.single-voice__block--q4 img {
  width: 28.125rem;
  aspect-ratio: 450 / 338;
  object-fit: cover;
  margin-top: 1rem;
}

.single-voice__schedule {
  display: grid;
  grid-template-columns: 4.75rem 1fr;
  gap: 0 5rem;
  background: #F8F8F8;
  padding: 3.75rem;
  margin-top: 3.75rem;
}

.single-voice__schedule .ttl {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-family: var(--font_NotoSansJP_vert);
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: 0.12em;
  flex-direction: column;
  gap: 1.25rem;
}

.single-voice__schedule .ttl::after {
  text-orientation: mixed;
  line-height: 1.375rem;
  margin-top: 0.5rem;
}

.single-voice__schedule-timeline-item {
  display: grid;
  grid-template-columns: 10.625rem 1fr;
  padding-bottom: 1.25rem;
  position: relative;
}

.single-voice__schedule-timeline-item::before {
  content: "";
  display: inline-block;
  background: var(--black);
  width: 0.0625rem;
  height: 100%;
  aspect-ratio: 1;
  position: absolute;
  top: 0;
  left: 5px;
}

.single-voice__schedule-timeline-item::after {
  content: "";
  display: inline-block;
  background: var(--black);
  border-radius: 50%;
  width: 0.625rem;
  aspect-ratio: 1;
  position: absolute;
  top: 1.75rem;
  left: 0;
}

.single-voice__schedule-timeline-item:has(.single-voice__schedule-timeline-item-time:empty)::after {
  display: none;
}

.single-voice__schedule-timeline-item:last-of-type {
  padding-bottom: 0;
}

.single-voice__schedule-timeline-item:first-of-type::before {
  height: calc(100% - 1.75rem);
  top: 1.75rem;
}

.single-voice__schedule-timeline-item:last-of-type::before {
  height: calc(100% - 1.75rem);
}

.single-voice__schedule-timeline-item-time {
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.8;
  letter-spacing: 0.06em;
  padding-left: 1.875rem;
  margin-top: 1rem;
}

.single-voice__schedule-timeline-item-txt {
  font-size: 1.125rem;
  line-height: 1.8;
  background: #fff;
  padding: 1rem 1.25rem;
}

.single-voice__schedule-comment {
  grid-column: span 2;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 1.625rem;
  margin-top: 4rem;
}

.single-voice__schedule-comment.is-start {
  align-items: flex-start;
}

.single-voice__schedule-timeline:has(.single-voice__schedule-timeline-note) + .single-voice__schedule-comment {
  margin-top: 1.25rem;
}

.single-voice__schedule-comment img {
  width: 10rem;
  aspect-ratio: 1;
  border-radius: 50%;
}

.single-voice__schedule-comment-txt {
  font-size: 1rem;
  line-height: 1.8;
  background: #EAEAEA;
  border-radius: 0.75rem;
  padding: 1.5rem 1.875rem;
  flex-grow: 1;
  position: relative;
}

.single-voice__schedule-comment-txt::before {
  content: "";
  display: inline-block;
  border-right: 1.375rem solid #EAEAEA;
  border-top: 0.875rem solid transparent;
  border-bottom: 0.875rem solid transparent;
  position: absolute;
  top: 50%;
  left: -1rem;
  transform: translateY(-50%);
}

.single-voice__schedule-comment.is-start .single-voice__schedule-comment-txt::before {
  top: 5rem;
}

.single-voice__schedule-timeline-note {
  font-size: 1.125rem;
  line-height: 1.8;
  margin-top: 1.5rem;
  margin-left: calc(10.625rem + 20px);
}

.single-voice__benefits {
  padding-top: 5.4375rem;
  margin-top: 3.75rem;
  position: relative;
}

.single-voice__benefits-ttl {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 1.0625rem;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.single-voice__benefits-ttl-catch {
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 2.0625rem;
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  gap: 1.5rem;
}

.single-voice__benefits-ttl-catch::before {
  content: "";
  display: inline-block;
  background: url(../img/single-voice_benefits_line.svg) no-repeat center / contain;
  width: 0.125rem;
  height: 2.625rem;
  transform: translateY(0.125rem) rotate(-30deg);
}

.single-voice__benefits-ttl-catch::after {
  content: "";
  display: inline-block;
  background: url(../img/single-voice_benefits_line.svg) no-repeat center / contain;
  width: 0.125rem;
  height: 2.625rem;
  transform: translateY(0.125rem) rotate(30deg);
}

.single-voice__benefits-ttl-balloon {
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 2.0625rem;
  color: #fff;
  display: inline-block;
  background: var(--black);
  padding: 1rem 1.5rem;
}

.single-voice__benefits-ttl-balloon::before {
  content: "";
  display: inline-block;
  border-top: 1.25rem solid var(--black);
  border-right: 0.875rem solid transparent;
  border-left: 0.875rem solid transparent;
  position: absolute;
  bottom: -0.75rem;
  left: 50%;
  transform: translateX(-50%);
}

.single-voice__benefits-box {
  font-weight: 700;
  font-size: 1.0625rem;
  line-height: 1.8;
  background: #fff;
  box-shadow: 0 0 0.25rem -0.25rem rgba(69, 69, 87, 0.05),
              0 1rem 1rem -0.5rem rgba(73, 73, 98, 0.1);
  border: 0.0625rem solid var(--black);
  padding: 5rem 3.75rem 3.75rem;
}

.single-voice__voice {
  padding-top: 6.25rem;
}


/* ==========================================================================
フッター
=========================================================================== */
.footerRecruit {
  display: flex;
  justify-content: center;
  align-items: center;
  background: url(../img/footer_recruit_bg.jpg) no-repeat center / cover;
  height: 31.25rem;
  position: relative;
}

.footerRecruit__wrap {
  display: flex;
  align-items: center;
  gap: 8.125rem;
}

.footerRecruit__txt {
  font-family: var(--font_ShipporiMincho);
  font-weight: 500;
  font-size: 2.375rem;
  line-height: 1.8;
  letter-spacing: 0.12em;
  color: #fff;
}

.footerRecruit-links {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.footerRecruit-links-entry {
  font-family: var(--font_ShipporiMincho);
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.5;
  letter-spacing: 0.12em;
  color: var(--text);
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(0.25rem);
  box-shadow: 0 1rem 2rem -0.5rem rgba(12, 12, 13, 0.4);
  width: 26.625rem;
  height: 6.25rem;
  position: relative;
}

.footerRecruit-links-entry::before {
  content: "";
  display: inline-block;
  background: rgba(255, 255, 255, 0.8);
  width: 25.375rem;
  height: 5rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

.footerRecruit-links-desc {
  font-family: var(--font_ShipporiMincho);
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.5;
  letter-spacing: 0.12em;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  background: var(--black);
  box-shadow: 0 1rem 2rem -0.5rem rgba(12, 12, 13, 0.4);
  width: 26.625rem;
  height: 5rem;
  position: relative;
}

a.footerRecruit-links-entry:hover,
a.footerRecruit-links-desc:hover {
  opacity: 1;
  filter: brightness(0.8);
}

.footer {
  background: var(--black);
  position: relative;
  z-index: 1;
}

.footer__wrap {
  display: flex;
  gap: 10.625rem;
  padding: 5rem 0 5rem 3rem;
}

.footer__side-logo {
  width: 17.5rem;
}

.footer__side-info {
  font-family: var(--font_NotoSerifJP);
  color: var(--grey);
  line-height: 1.5rem;
  letter-spacing: 0.04em;
  margin-top: 1.875rem;
}

.footer__side-info-name {
  font-size: 1.125rem;
}

.footer__side-info-address {
  font-size: 0.875rem;
  margin-top: 0.625rem;
}

.footer__side-sns {
  width: 17.5rem;
  margin-top: 1.875rem;
}

.footer__side-info-links {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.375rem;
  margin-top: 2.5rem;
}

.footer__side-info-links a {
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  color: var(--grey);
  gap: 0.5rem;
}

.footer__side-info-links a::after {
  content: "";
  display: inline-block;
  background: url(../img/jump_icon.svg) no-repeat center / 100% auto;
  width: 0.625rem;
  aspect-ratio: 1;
}

.footer__side-info-copy {
  font-size: 0.75rem;
  display: block;
  margin-top: 2.5rem;
}

.footer__nav .menu {
  display: grid;
  grid-template-rows: repeat(3, 1.5rem);
  grid-template-columns: repeat(4, auto);
  gap: 2.5rem 3.75rem;
}

.footer__nav .menu li:nth-of-type(-n+3) {
  grid-row: span 2;
}

.footer__nav .menu li:nth-of-type(4) {
  grid-row: 1;
  grid-column: 4;
}

.footer__nav .menu li:nth-of-type(5) {
  grid-row: 2;
  grid-column: 4;
}

.footer__nav li {
  font-size: 1.125rem;
}

.footer__nav .sub-menu {
  gap: 0.375rem;
  margin-top: 0.5rem;
  margin-left: 0.625rem;
}

.footer__nav .sub-menu li {
  font-size: 0.875rem;
}


/* ==========================================================================
404
=========================================================================== */
.error404__content {
  text-align: center;
  padding: 12.5rem 0;
}

.error404__ttl {
  font-family: var(--font_NotoSerifJP);
  font-size: 2.5rem;
}

.error404__message-ttl {
  font-size: 1rem;
}

.error404__message-txt {
  font-size: 0.75rem;
}

.error404__content .link {
  margin-top: 3.75rem;
  margin-left: auto;
  margin-right: auto;
}