/* company-philosophy */
/* ============================================ */

/* ヒーロー */
.company-philosophy-hero {
  padding: 200px 0 64px;
  @media (width <= 896px) {
    padding: 120px 0 32px;
  }
}
.company-philosophy-hero__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
  @media (width <= 1025px) {
    flex-direction: column;
  }
}
.company-philosophy-hero__body {
  flex: 1;
  min-width: 0;
  max-width: 816px;
}


/* PMVV */
/* ============================================ */
.company-philosophy-pmvv {
  padding-top: 64px;
  @media (width <= 896px) {
    padding-top: 40px;
  }
}
.company-philosophy-pmvv__inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding: 0 48px 96px;
  border-bottom: 1px dashed var(--main_c);
  @media (width <= 896px) {
    gap: 32px;
    padding: 0 0 32px;
  }
}
.company-philosophy-purpose__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-left: 48px;
  @media (width <= 896px) {
    padding-left: 0;
  }
}
.company-philosophy-purpose__item {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 64px calc((64 / 1664) * 100cqw);
  background: var(--main_c);
  border-radius: 16px;
  @media (width <= 896px) {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding: 32px;
  }
}
.company-philosophy-purpose__head {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  gap: 16px;
  @media (width <= 896px) {
    width: 100%;
  }
}
.company-philosophy-purpose__head-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 24px;
  @media (width <= 896px) {
    flex-direction: column;
    align-items: flex-start;
  }
}
.company-philosophy-purpose__en {
  flex-shrink: 0;
  font-family: var(--font_en);
  font-weight: 800;
  font-size: clamp(2rem, 1.2708rem + 1.3021vw, 2.625rem); /* 42~32(1664~896) */
  line-height: 1;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #fff;
}
.company-philosophy-purpose__divider {
  display: block;
  flex-shrink: 0;
  width: 38px;
  height: 1px;
  background: var(--line_c);
}
.company-philosophy-purpose__label {
  font-weight: 600;
  font-size: calc((16 / 16) * 1rem); /* 16px */
  letter-spacing: .05em;
  line-height: 1.8;
  color: #fff;
}
.company-philosophy-purpose__catch {
  word-break: keep-all;
  font-family: var(--font_display);
  font-weight: 900;
  font-size: calc((24 / 16) * 1rem); /* 24px */
  line-height: 1.6;
  color: #fff;
  margin-top: 16px;
}
.company-philosophy-purpose__txt {
  flex: 1;
  min-width: 0;
  font-size: var(--fs_ms); /* 18~16 */
  line-height: 1.8;
  color: #fff;
}


/* 代表メッセージ */
/* ============================================ */
.company-philosophy-message {
  padding-top: 128px;
  @media (width <= 896px) {
    padding-top: 64px;
  }
}
.company-philosophy-message__inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding: 0 48px 96px;
  border-bottom: 1px dashed var(--main_c);
  @media (width <= 896px) {
    gap: 32px;
    padding: 0 0 32px;
  }
}
.company-philosophy-message__row {
  display: flex;
  align-items: flex-start;
  gap: 32px 64px;
  @media (width <= 896px) {
    flex-direction: column;
    align-items: center;
  }
}
.company-philosophy-message__profile {
  flex-shrink: 0;
  width: calc((450 / 1664) * 100cqw);
  order: 2; /* PC: 本文の右側に配置 */
  @media (width <= 896px) {
    width: 100%;
    max-width: 600px;
    order: 0; /* SP: 本文より先に表示 */
  }
}
.company-philosophy-message__photo {
  border-radius: 16px;
  overflow: clip;
  img {
    width: 100%;
    height: auto;
    aspect-ratio: 450 / 590;
    object-fit: cover;
    object-position: bottom;
    @media (width <= 896px) {
      aspect-ratio: 335 / 380;
    }
  }
}
.company-philosophy-message__name {
  padding-top: 24px;
}
.company-philosophy-message__company {
  font-size: calc((16 / 16) * 1rem); /* 16px */
  letter-spacing: .05em;
  line-height: 1.8;
  color: var(--font_c);
}
.company-philosophy-message__position {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0 .5em;
  margin-top: 8px;
  font-weight: 600;
  font-size: calc((24 / 16) * 1rem); /* 24px */
  color: var(--font_c);
}
.company-philosophy-message__body {
  flex: 1;
  min-width: 0;
  order: 1;
  padding-left: 48px;
  @media (width <= 896px) {
    order: 0;
    padding-left: 0;
  }
}
.company-philosophy-message__catch {
  word-break: keep-all;
  font-family: var(--font_display);
  font-weight: 900;
  font-size: clamp(1.5rem, 0.3333rem + 2.0833vw, 2.5rem); /* 40~24(1664~896) */
  line-height: 1.6;
  letter-spacing: .1em;
  color: var(--font_c);
  @media (width <= 896px) {
    inline-size: fit-content;
    margin-inline: auto;
  }
}
.company-philosophy-message__accent {
  color: var(--main_c);
}
.company-philosophy-message__txt {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 32px;
}
.company-philosophy-message__paragraph {
  font-size: var(--fs_ms); /* 18~16 */
  line-height: 2.6;
  color: var(--font_c);
  &.company-philosophy-message__paragraph--emphasis {
    font-weight: 600;
    font-size: calc((18 / 16) * 1rem); /* 18px */
  }
}


/* 社名・ロゴの由来 */
/* ============================================ */
.company-philosophy-brand {
  padding-top: 128px;
  @media (width <= 896px) {
    padding-top: 64px;
  }
}
.company-philosophy-brand__inner {
  display: flex;
  flex-direction: column;
  gap: 48px;
  padding: 0 48px 96px;
  @media (width <= 896px) {
    gap: 32px;
    padding: 0 0 32px;
  }
}
.company-philosophy-brand__row {
  display: flex;
  align-items: stretch;
  gap: 32px 64px;
  @media (width <= 896px) {
    flex-direction: column;
    align-items: center;
  }
}
.company-philosophy-brand__logo {
  flex-shrink: 0;
  width: calc((440 / 1664) * 100cqw);
  order: 2; /* PC: 本文の右側に配置 */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px;
  background: #fff;
  border-radius: 16px;
  @media (width <= 896px) {
    width: 100%;
    order: -1; /* SP: 本文より先に表示 */
  }
}
.company-philosophy-brand__logo-img {
  img {
    display: block;
    width: clamp(11.875rem, 8.9583rem + 5.2083vw, 15.4375rem); /* 247~190(1664~896) */
    height: auto;
  }
}
.company-philosophy-brand__logo-txt {
  font-weight: 600;
  font-size: clamp(0.875rem, 0.5833rem + 0.5208vw, 1.125rem); /* 18~14(1664~896) */
  line-height: 1.8;
  color: var(--font_c);
  text-align: center;
}
.company-philosophy-brand__body {
  flex: 1;
  min-width: 0;
  padding-left: 48px;
  @media (width <= 896px) {
    padding-left: 0;
  }
}
.company-philosophy-brand__catch {
  word-break: keep-all;
  font-family: var(--font_display);
  font-weight: 900;
  font-size: clamp(1.75rem, 0.875rem + 1.5625vw, 2.5rem); /* 40~28(1664~896) */
  line-height: 1.6;
  letter-spacing: .1em;
  color: var(--font_c);
}
.company-philosophy-brand__accent {
  color: var(--main_c);
}
.company-philosophy-brand__desc {
  margin-top: 32px;
  font-size: calc((18 / 16) * 1rem); /* 18px */
  line-height: 1.8;
  color: var(--font_c);
}
.company-philosophy-brand__defs {
  display: flex;
  gap: 0;
  margin-top: 48px;
  @media (width <= 896px) {
    flex-direction: column;
    gap: 16px;
    margin-top: 32px;
  }
}
.company-philosophy-brand__def {
  flex: 1;
  min-width: 0;
  padding: 32px 24px;
  border-left: 1px dashed var(--main_c);
  border-right: 1px dashed var(--main_c);
  & + & {
    margin-left: -1px;
  }
  @media (width <= 896px) {
    margin-left: 0 !important;
  }
}
.company-philosophy-brand__def-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.company-philosophy-brand__def-label {
  font-weight: 600;
  font-size: clamp(1.125rem, 0.6875rem + 0.7813vw, 1.5rem); /* 24~18(1664~896) */
  line-height: 1;
  color: var(--main_c);
}
.company-philosophy-brand__def-term {
  font-size: clamp(1.75rem, 0.875rem + 1.5625vw, 2.5rem); /* 40~28(1664~896) */
  line-height: 1.8;
  color: var(--main_c);
}
.company-philosophy-brand__def-txt {
  margin-top: 16px;
  font-size: var(--fs_m); /* 16~14 */
  line-height: 1.8;
  color: var(--font_c);
}
