@charset "UTF-8";

*,
*:before,
*:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

:root {
  --font-family-zenkakugothic: 'Zen Kaku Gothic New', sans-serif;
  --font-family-prompt: 'Prompt', sans-serif;
  --color-black: #2f2222;
  --color-white: #f9f8f5;
  --color-yellow-orange: #b5a181;
  --color-line-color: #06c755;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-bold: 700;
  --font-weight-black: 900;
}

svg {
  overflow: visible;
}

html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  font-size: 100%;
  line-height: 1;
  color: var(--color-black);
  font-family: var(--font-family-zenkakugothic);
}

input,
button,
textarea,
select {
  -webkit-appearance: none;
  appearance: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

ol,
ul {
  list-style: none;
  list-style-type: none;
}

.pc-only {
  display: block;
}
.sp-only {
  display: none;
}
@media screen and (max-width: 768px) {
  .pc-only {
    display: none;
  }
  .sp-only {
    display: block;
  }
}
.p-company__area-list-item::before {
  flex-shrink: 0;
}
/* セクションタイトル */
.p-company__item-heading {
  margin-bottom: 64px;
}
.p-company__item-subheading {
  margin-bottom: 40px;
}

.p-company__item-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}
.p-company__item-title--en {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  font-size: 2.813rem;
  line-height: 1;
  letter-spacing: 0.2em;
  font-weight: 600;
  text-transform: uppercase;
  font-family: 'Prompt', sans-serif;
}
.p-company__item-title--en::after {
  content: '';
  width: 60px;
  height: 10px;
  border-radius: 10px;
  background-color: #b5a181;
}
.p-company__item-title--ja {
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.1rem;
  font-weight: 700;
}
.p-company__item-subtitle {
  font-weight: 700;
  font-size: 1.625rem;
  letter-spacing: 0.02em;
  line-height: 2.26;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-company__item-title {
    gap: 16px;
  }
  .p-company__item-title--en {
    gap: 16px;
    font-size: 2rem;
  }
  .p-company__item-title--en::after {
    content: '';
    width: 48px;
    height: 6px;
  }
  .p-company__item-subtitle {
    font-size: 1.3125rem;
    letter-spacing: 0.1em;
  }
}
.content {
  position: relative;
  background-color: #f6f2eb;
}

.content {
  width: 100%;
}

.p-company__fv {
  position: relative;
}
.p-company__fv-inner::after {
  position: absolute;
  content: '';
  top: 0;
  left: -83px;
  background-image: url('../images/deco-top-company-01.svg');
  background-size: cover;
  width: 637px;
  height: 660px;
}
@media screen and (max-width: 768px) {
  .p-company__fv {
    overflow: hidden;
  }
  .p-company__fv-inner::after {
    background-image: url('../images/deco-top-company-sp.svg');
    top: -40px;
    left: clamp(-14vw, -10vw, 0vw);
    width: 240px;
    height: 272px;
  }
}

.p-company__fv-inner {
  position: relative;
  max-width: 1200px;
  width: 100%;
  margin-inline: auto;
  padding-block: 100px;
  padding-inline: 85px;
}
@media screen and (max-width: 768px) {
  .p-company__fv-inner {
    max-width: 100%;
    margin-bottom: 40px;
    padding-inline: 20px;
    padding-bottom: 0;
  }
}

.p-company__intro {
  position: relative;
  margin-top: 64px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  width: 100%;
  z-index: 5;
}
@media screen and (max-width: 768px) {
  .p-company__intro {
    flex-direction: column;
    align-items: center;
    gap: 40px;
  }
}

.p-company__intro-catchcopy {
  font-size: 35px;
  font-weight: var(--font-weight-bold);
  line-height: calc(59 / 35);
  letter-spacing: 0.024em;
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .p-company__intro-catchcopy {
    font-size: 1.313rem;
    line-height: 1.714;
  }
}

.page-company__bg--left-top {
  position: absolute;
  top: 0;
  left: 0;
  width: min(46.6325vw, 637px);
  height: auto;
  z-index: 1;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .page-company__bg--left-top {
    left: -20px;
  }
}

/*-------------------------
  ページ内ナビゲーション
-------------------------*/
.p-company__nav {
  max-width: 1200px;
  width: 100%;
  margin-inline: auto;
  padding-block: 100px;
}
@media screen and (max-width: 768px) {
  .p-company__nav {
    max-width: 100%;
    height: auto;
    margin-bottom: 80px;
    padding-inline: 20px;
    padding-block: 0 80px;
  }
}

.p-company__nav-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(auto, 300px));
  width: 100%;
  max-width: 1366px;
  height: 170px;
  margin-inline: auto;
}
@media screen and (max-width: 768px) {
  .p-company__nav-list {
    max-width: 100%;
    grid-template-columns: 1fr;
  }
}

.p-company__nav-item {
  position: relative;
  max-width: 300px;
  width: 100%;
  height: 100%;
  padding-block: 5px;
}
.p-company__nav-item:first-of-type::before,
.p-company__nav-item::after {
  position: absolute;
  content: '';
  top: 0;
  width: 3px;
  height: 100%;
  background-size: 3px 6px;
  background-image: linear-gradient(to bottom, #2f2222 3px, transparent 3px);
  background-repeat: repeat-y;
}
.p-company__nav-item:first-of-type::before {
  left: 0;
}
.p-company__nav-item::after {
  right: 0;
}
@media screen and (max-width: 768px) {
  .p-company__nav-item {
    max-width: 100%;
    padding-block: 10px;
    padding-inline: 6px 9px;
  }
  .p-company__nav-item:first-of-type::before,
  .p-company__nav-item::after {
    width: 100%;
    height: 3px;
    background-size: 6px 3px;
    background-image: linear-gradient(to right, #2f2222 3px, transparent 3px);
    background-repeat: repeat-x;
  }
  .p-company__nav-item::after {
    top: auto;
    bottom: 0;
  }
}

.p-company__nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-company__nav-link {
    position: relative;
    align-items: flex-start;
    gap: 1px;
    text-align: left;
    height: auto;
  }
}

.p-company__nav-link::after {
  content: '';
  margin-top: 5px;
  background-image: url(../images/arrow-to-bottom.svg);
  width: 20px;
  height: 23px;
  transition: all 0.25s;
}
@media screen and (max-width: 768px) {
  .p-company__nav-link::after {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translate(0, -50%);
    margin-top: 0;
  }
}

.p-company__nav-link:hover:after {
  transform: translateY(5px);
}

@media screen and (max-width:768px) {
    .p-company__nav-link:hover:after {
      transform: translate(0, -50%);
    }
}

.p-company__nav-item-title--en {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  height: 50px;
  font-size: 20px;
  font-family: var(--font-family-prompt);
  font-weight: var(--font-weight-bold);
  letter-spacing: 0.2em;
  position: relative;
}
@media screen and (max-width: 768px) {
  .p-company__nav-item-title--en {
    font-weight: 600;
    height: auto;
    margin-bottom: 0;
    font-size: 0.625rem;
    line-height: 1.5;
  }
}

.p-company__nav-item-title--en::after {
  content: '';
  background-image: url(../images/nav-en-ja-border.svg);
  width: 38px;
  height: 7px;
}
@media screen and (max-width: 768px) {
  .p-company__nav-item-title--en::after {
    display: none;
  }
}

.p-company__nav-item-title--ja {
  font-size: 1rem;
  font-weight: var(--font-weight-bold);
  line-height: calc(28 / 16);
  text-align: center;
}
@media screen and (max-width: 768px) {
  .p-company__nav-item-title--ja {
    margin-bottom: 0;
    font-size: 0.875rem;
    line-height: 1.429;
  }
}

.p-company__item-inner {
  padding-block: 100px;
  max-width: 1366px;
  margin-inline: auto;
}
@media screen and (max-width: 768px) {
  .p-company__item-inner {
    padding-block: 80px;
  }
}

/*-------------------------
  代表挨拶
-------------------------*/
.p-company__greeting-content {
  display: flex;
  flex-direction: column;
  gap: 64px;
  /* max-width: 1144px; */
  width: 100%;
}
/* 代表プロフィール */
.p-company__greeting-ceo {
  display: grid;
  grid-template-columns: 45.39vw max-content;
  column-gap: clamp(24px, 4.69vw, 64px);
  column-gap: 4.69vw;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-ceo {
    grid-template-columns: 1fr;
    row-gap: 40px;
  }
}
.p-company__greeting-ceo-img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 620 / 418;
}

.p-company__greeting-ceo-text {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-ceo-text {
    width: 100%;
    padding-inline: 20px;
  }

  .p-company__greeting-ceo-profile-position {
    white-space: nowrap;
  }
}

.p-company__greeting-ceo-catchcopy {
  font-size: clamp(1rem, 2.2vw, 1.875rem);
  line-height: 1.867;
  letter-spacing: 0.024em;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-ceo-catchcopy {
    font-size: 1.313rem;
    line-height: 1.714;
  }
}

.p-company__greeting-ceo-profile-info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-company__greeting-ceo-profile-company,
.p-company__greeting-ceo-profile-title,
.p-company__greeting-ceo-profile-name--en {
  font-size: 0.875rem;
  line-height: 1.429;
  letter-spacing: 0.1rem;
  font-weight: 700;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-ceo-profile-company,
  .p-company__greeting-ceo-profile-title {
    font-size: 0.81rem;
    line-height: 1.462;
  }
}

.p-company__greeting-ceo-profile-name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

.p-company__greeting-ceo-profile-name--ja {
  font-size: 1.313rem;
  line-height: 1.429;
  letter-spacing: 0.1rem;
  font-weight: 700;
  white-space: nowrap;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-ceo-profile-name--ja {
    font-size: 1.125rem;
    line-height: 1.444;
  }
}

.p-company__greeting-ceo-profile-name--en {
  line-height: 1.5;
  color: #cbc5b9;
  font-family: 'Prompt', sans-serif;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-ceo-profile-name--en {
    font-size: 0.688rem;
    line-height: 1.545;
  }
}
/* 代表挨拶 本文 */
.p-company__greeting-descs {
  max-width: 1200px;
  width: 100%;
  margin-inline: auto;
  padding-inline: 85px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-descs {
    max-width: 100%;
    padding-inline: 20px;
    gap: 27px;
  }
}

.p-company__greeting-desc {
  font-size: 0.875rem;
  font-weight: var(--font-weight-medium);
  line-height: 2.143;
}
@media screen and (max-width: 768px) {
  .p-company__greeting-desc {
    line-height: 1.929;
  }
}

/*-------------------------
  ポリシー
-------------------------*/
.p-company__policy-content-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 610px;
  background-image: url('../images/bg-company-policy.png');
  background-size: cover;
}
@media screen and (max-width: 768px) {
  .p-company__policy-content-wrapper {
    background-position: center right -100px;
    height: 586px;
  }
}

.p-company__policy-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 850px;
  height: 410px;
  width: 100%;
  padding-inline: clamp(24px, 4.69vw, 64px);
  background-color: #fff;
  border-radius: 4px;
}
@media screen and (max-width: 768px) {
  .p-company__policy-content {
    flex-direction: column;
    justify-content: center;
    gap: 24px;
    max-width: 100%;
    margin-inline: 20px;
    padding-block: 43px;
    padding-inline: 34px;
    height: 530px;
  }
}

.p-company__policy-text {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 383px;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .p-company__policy-text {
    max-width: 100%;
    width: 100%;
    gap: 24px;
  }
}

.p-company__policy-catchcopy {
  font-size: 1.625rem;
  line-height: 1.846;
  letter-spacing: 0.024em;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-company__policy-catchcopy {
    font-size: 1.625rem;
    line-height: 1.615;
    text-align: center;
  }
}

.p-company__policy-descs {
  display: flex;
  flex-direction: column;
  gap: 30px;
  font-weight: var(--font-weight-medium);
}
@media screen and (max-width: 768px) {
  .p-company__policy-descs {
    max-width: 100%;
    width: 100%;
    gap: 29px;
    padding-inline: 5px;
  }
}

.p-company__policy-desc {
  font-size: 0.875rem;
  line-height: 2.143;
}
@media screen and (max-width: 768px) {
  .p-company__policy-desc {
    line-height: 2.071;
  }
}

.p-company__policy-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .p-company__policy-logo {
    gap: 5px;
    max-width: 142px;
    width: 100%;
  }
}

.p-company__policy-logo-image {
  width: 95px;
  height: auto;
}
.p-company__policy-logo-img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 95.03 / 143.05;
}
@media screen and (max-width: 768px) {
  .p-company__policy-logo-image {
    width: 56px;
  }
}

.p-company__policy-logo-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  color: #2d3e56;
}
@media screen and (max-width: 768px) {
  .p-company__policy-logo-text {
    gap: 5px;
  }
}

.p-company__policy-logo-name {
  font-size: clamp(1.25rem, 1.76vw, 1.5rem);
  line-height: 1.458;
  letter-spacing: 0.1em;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .p-company__policy-logo-name {
    font-size: 0.875rem;
    line-height: 1.429;
  }
}

.p-company__policy-logo-catchcopy {
  font-size: 0.625rem;
  line-height: 1.5;
  text-transform: uppercase;
}
@media screen and (max-width: 768px) {
  .p-company__policy-logo-catchcopy {
    font-size: 0.438rem;
    line-height: 1.571;
  }
}

/*-------------------------
  会社概要
-------------------------*/
.p-company__overview-content {
  display: flex;
  flex-direction: column;
  gap: 64px;
}
@media screen and (max-width: 768px) {
  .p-company__overview-content {
    gap: 32px;
  }
}

/* 画像スクロール */
.p-company__overview .image-swiper-wrapper.swiper-wrapper {
  gap: 0 !important;
  transition-timing-function: linear !important;
}
.p-company__overview .image-slide.swiper-slide {
  width: 30.97vw !important;
  margin-right: 0 !important;
}
@media screen and (max-width: 768px) {
  .p-company__overview .image-slide.swiper-slide {
    width: 74.93vw !important;
  }
}

.p-company__overview .image-slide.swiper-slide img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 423 / 280;
}

/* 会社概要 情報 */
.p-company__overview-info {
  display: flex;
  gap: min(2.9282vw, 40px);
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: 85px;
}
@media screen and (max-width: 768px) {
  .p-company__overview-info {
    flex-direction: column;
    gap: 0;
    max-width: 100%;
    padding-inline: 20px;
  }
}

.p-company__overview-info-list {
  flex: 1;
}

.p-company__overview-info-item {
  display: flex;
  gap: min(1.7569vw, 24px);
  border-bottom: 2px solid #cbc5b9;
  padding-block: 16px;
  padding-inline: 4px;
  font-size: 14px;
  line-height: calc(22 / 14);
  letter-spacing: 0.024em;
}
@media screen and (max-width: 768px) {
  .p-company__overview-info-item {
    display: grid;
    grid-template-columns: 6.2em auto;
    gap: 18px;
    padding-block: 12px;
    padding-inline: 0;
  }
}

.contact-item__label {
  display: inline-block;
}

.p-company__overview-info-label {
  width: 9.333em;
  font-weight: var(--font-weight-medium);
  flex-shrink: 0;
}
@media screen and (max-width: 768px) {
  .p-company__overview-info-label {
    width: 100%;
  }
}

.p-company__overview-info-value--address {
  margin-bottom: 16px;
}

.p-company__overview-info-value--map {
  width: 100%;
  max-width: 334px;
  max-height: 100%;
}
.p-company__overview-info-value--map iframe {
  border-radius: 11px;
  aspect-ratio: 334 / 226;
}
@media screen and (min-width: 768px) {
  .p-company__overview-info-value--map {
    max-width: 100%;
  }
  .p-company__overview-info-value--map iframe {
    border-radius: 11px;
    aspect-ratio: 334 / 226;
  }
}

/*-------------------------
  エリア
-------------------------*/
.p-company__area .p-company__item-heading {
  margin-bottom: 0;
}
@media screen and (max-width: 768px) {
  .p-company__area .p-company__item-heading {
    margin-bottom: 40px;
  }
}

.p-company__area-content {
  display: grid;
  grid-template-columns: auto auto;
  gap: clamp(24px, 4.69vw, 64px);
  max-width: 1366px;
  width: 100%;
  margin-inline: auto;
  padding-inline: calc(6.08vw + 85px) 6.08vw;
}
@media screen and (max-width: 768px) {
  .p-company__area-content {
    display: flex;
    flex-direction: column-reverse;
    gap: 40px;
    max-width: 100%;
    padding-inline: 20px;
  }
}

.p-company__area-text {
  display: flex;
  flex-direction: column;
  gap: 64px;
  margin-top: 64px;
}
@media screen and (max-width: 768px) {
  .p-company__area-text {
    gap: 40px;
    margin-top: 0;
  }
}

.p-company__area-descs {
  display: flex;
  flex-direction: column;
  gap: 22px;
  font-weight: 500;
}

.p-company__area-desc {
  font-size: 0.875rem;
  line-height: 1.571;
  letter-spacing: 0.024em;
}
@media screen and (max-width: 768px) {
  .p-company__area-desc {
    gap: 27px;
  }
}

.c-single-page-list.p-company__area-list {
  max-height: 210px;
  height: 100%;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 16px 40px;
}
@media screen and (max-width: 768px) {
  .c-single-page-list.p-company__area-list {
    max-width: 100%;
    /* justify-content: space-between; */
    gap: 16px 49px;
  }
}
.p-company__area-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.c-single-page-list__item.p-company__area-list-item {
  font-size: 0.875rem;
  line-height: 1.429;
}

.p-company__area-image {
  width: 42.24vw;
  width: clamp(300px, 42.24vw, 577px);
}
@media screen and (max-width: 768px) {
  .p-company__area-image {
    width: 100%;
  }
}

.p-company__area-img {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 577 / 596;
}
