@charset "utf-8";
.philosophy {
  padding-top: clamp(2.5rem, 0.833rem + 3.47vw, 5rem);
}
.philosophy__inner {
      padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
    position: relative;
}
.philosophy__container {
      display: flex;
    column-gap: clamp(1.25rem, -2.917rem + 8.68vw, 7.5rem);
}
.philosophy__sub {
      font-size: clamp(1.125rem, 0.875rem + 0.52vw, 1.5rem);
    font-weight: 500;
    line-height: 1;
}
.philosophy__main {
      margin-top: clamp(1.25rem, 0.583rem + 1.39vw, 2.25rem);
    font-size: clamp(1.5rem, 1.167rem + 0.69vw, 2rem);
    font-weight: 700;
    white-space: nowrap;
}
.philosophy__logo--sp {
    display: none;
}
.philosophy__right {
      display: flex;
    flex-direction: column;
    row-gap: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
}
.philosophy__text {
      line-height: 1.7;
    font-weight: 500;
}
.philosophy__text--strong {
      font-weight: 700;
    line-height: 1.7;
}
.philosophy__logo {
      position: absolute;
    opacity: 0.24;
    width: clamp(20rem, 9.333rem + 22.22vw, 36rem);
    left: 0;
    bottom: 0;
}

.machine {
  padding-top: clamp(5rem, 1.667rem + 6.94vw, 10rem);
}
.machine__inner {
  padding: 0 clamp(0.75rem, -10.75rem + 23.96vw, 18rem);
}
.machine__text {
      margin-top: 40px;
    font-weight: 500;
}
.machine__items {
      margin-top: 32px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: clamp(1.25rem, -0.417rem + 3.47vw, 3.75rem);
}
.machine__item {
      display: flex;
    flex-direction: column;
}
.machine-item__img {
      aspect-ratio: 407/407;
    height: auto;
    object-fit: cover;
}
.machine-item__sub {
      margin-top: clamp(0.5rem, 0.167rem + 0.69vw, 1rem);
    font-size: clamp(0.625rem, 0.542rem + 0.17vw, 0.75rem);
    font-weight: 700;
    line-height: 1;
}
.machine-item__main {
      margin-top: 8px;
    font-size: clamp(1.125rem, 1.042rem + 0.17vw, 1.25rem);
    font-weight: 700;
}
.machine-item__text {
      margin-top: clamp(0.5rem, 0.167rem + 0.69vw, 1rem);
    padding-top: clamp(0.5rem, 0.167rem + 0.69vw, 1rem);
    border-top: 1px solid #000;
    line-height: 1.7;
  font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
    font-weight: 700;
      padding-bottom: clamp(0.625rem, 0.208rem + 0.87vw, 1.25rem);
  margin-bottom: auto;
}



.greeting {
  padding-top: 120px;
}
.greeting__inner {
  padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
}
.greeting__content {
      margin-top: 40px;
    display: flex;
    column-gap: clamp(2rem, 0.667rem + 2.78vw, 4rem);
}
.greeting__name {
      margin-top: 20px;
    font-size: clamp(1.125rem, 0.875rem + 0.52vw, 1.5rem);
    font-weight: 700;
}
.greeting__right {
      width: 100%;
    display: flex;
    flex-direction: column;
    row-gap: clamp(1.25rem, 0.417rem + 1.74vw, 2.5rem);
}
.greeting__title {
      font-size: clamp(1rem, 0.667rem + 0.69vw, 1.5rem);
    line-height: 1.7;
    font-weight: 700;
}
.greeting__text {
      font-weight: 500;
    line-height: 1.7;
    font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
}
.career {
      padding: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    background-color: #F2F2F2;
}
.career__title {
      font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 700;
}
.career__text {
      margin-top: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    line-height: 1.7;
    font-weight: 500;
    font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
}

.origin {
  padding-top: clamp(2.5rem, 0.667rem + 3.82vw, 5.25rem);
}
.origin__inner {
  padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
}
.origin__container {
      padding: clamp(1.25rem, 0.25rem + 2.08vw, 2.75rem);
    border: 1px solid #707070;
    display: flex;
    align-items: center;
}
.origin__left {
  width: clamp(12.5rem, 4.071rem + 13.17vw, 19.875rem);
}
.origin__logo {
  object-fit: contain;
}
.origin__items {
    margin-left: clamp(1.25rem, -4.893rem + 9.6vw, 6.625rem);
    display: flex;
    flex-direction: column;
    row-gap: clamp(1.25rem, 0.167rem + 2.26vw, 2.875rem);
}
.origin__item {
      display: flex;
    align-items: baseline;
}
.origin-item__icon {
      height: clamp(1rem, 0.625rem + 0.78vw, 1.563rem);
    object-fit: contain;
    width: auto;
}
.origin-item__main {
      margin-left: clamp(1rem, 0.333rem + 1.39vw, 2rem);
    font-size: clamp(1.25rem, 0.75rem + 1.04vw, 2rem);
    font-weight: 700;
}
.origin-item__sub {
      margin-left: clamp(0.5rem, 0.167rem + 0.69vw, 1rem);
    font-weight: 500;
  font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
  white-space: nowrap;
}
.origin__right {
  margin-left: clamp(1.25rem, -2.821rem + 6.36vw, 4.813rem);
}
.origin__text {
      font-weight: 500;
    line-height: 1.7;
    font-size: clamp(0.875rem, 0.708rem + 0.35vw, 1.125rem);
}
.faq {
  padding: 120px 0;
}
.faq__inner {
  padding: 0 clamp(1.25rem, -9.917rem + 23.26vw, 18rem);
}
.faq__items {
      margin-top: 40px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: clamp(2rem, 4.17vw, 5rem);
    row-gap: 40px;
}
.faq__header {
      display: flex;
    align-items: center;
    column-gap: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    padding-bottom: clamp(0.75rem, 0.417rem + 0.69vw, 1.25rem);
    border-bottom: 1px solid #CCCCCC;
}
.faq-header__icon {
  font-family: "Noto Sans JP", sans-serif;
      font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: #C52B1E;
    height: 35px;
    width: 35px;
    min-width: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.faq-header__title {
  font-family: "Noto Sans JP", sans-serif;
      font-size: clamp(0.875rem, 0.708rem + 0.35vw, 1.125rem);
    font-weight: 700;
}
.faq__content {
      margin-top: clamp(0.75rem, 0.417rem + 0.69vw, 1.25rem);
    display: flex;
    column-gap: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
}
.faq-content__icon {
  font-family: "Noto Sans JP", sans-serif;
      font-size: clamp(1rem, 0.833rem + 0.35vw, 1.25rem);
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: #B2B2B2;
    height: 35px;
    width: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 35px;
}
.faq-content__text {
  font-family: "Noto Sans JP", sans-serif;
      font-size: clamp(0.75rem, 0.583rem + 0.35vw, 1rem);
    line-height: 1.7;
    word-break: break-all;
}

@media (max-width: 767px) {
  .philosophy {
    padding-top: 56px;
  }
  .philosophy__container {
        flex-direction: column;
    row-gap: 40px;
        max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .philosophy__left {
        display: flex;
    flex-direction: column;
    align-items: center;
  }
  .philosophy__logo {
    display: none;
  }
  .philosophy__logo--sp {
        display: block;
    width: 237px;
    object-fit: contain;
    margin-top: 20px;
  }
  
  .machine__container {
        max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }
  .machine__items {
        grid-template-columns: repeat(1, 1fr);
    row-gap: 64px;
  }
  .machine-item__main {
    font-size: 16px;
  }
  
  .greeting__container {
        max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .greeting__content {
        flex-direction: column;
    row-gap: 40px;
  }
  .greeting__left {
        width: 70%;
    margin-left: auto;
    margin-right: auto;
  }
  .greeting__right {
    width: 100%;
  }
  .origin__container {
        flex-direction: column;
    row-gap: 32px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
  .origin__left {
        width: 216px;
    margin-left: auto;
    margin-right: auto;
  }
  .origin__items {
    margin-left: 0;
  }
  .origin-item__icon {
    height: 22px;
  }
  .origin-item__main {
        font-size: 28px;
    margin-left: 30px;
  }
  .origin-item__sub {
        font-size: 14px;
    margin-left: 16px;
  }
  .origin__right {
    margin-left: 0;
  }
  
  .faq__items {
    grid-template-columns: repeat(1, 1fr);
  }
  .faq-header__icon,
  .faq-content__icon {
        height: 28px;
    width: 28px;
    min-width: 28px;
  }
  .faq-content__text {
    font-size: 14px;
  }
}

@media (max-width: 389px) {
  .philosophy__main {
    font-size: 18px;
  }
  .philosophy__logo--sp {
    width: 200px;
  }
  
  .machine__inner {
    padding: 0 20px;
  }
  .machine-item__text {
    font-size: 14px;
  }
  
  .origin-item__icon {
    height: 18px;
  }
  .origin-item__main {
        font-size: 24px;
    margin-left: 16px;
  }
  .origin-item__sub {
        margin-left: 8px;
    font-size: 12px;
  }
  
  .faq__header {
    column-gap: 8px;
  }
  .faq-content__text {
    font-size: 12px;
  }
}