/* ============================
   Philosophy Page - 企業理念
============================ */

/* Page Container */
#page-philosophy {
  /* position: relative; コメントアウト: 背景ロゴがbodyを基準にするため */
}

/* Philosophy Page Specific Spacing */
#page-philosophy.page-top-under {
  padding-bottom: 0;
}

/* Background Logo */
.philosophy-bg-logo {
  position: absolute;
  top: clamp(-3.375rem, -0.787rem + -2.16vw, -1.313rem); /* -21px at 390px, -54px at 1920px */
  left: clamp(-4.5rem, -8.356rem + 15.82vw, 10.625rem); /* -72px at 390px, 170px at 1920px */
  width: clamp(18rem, 14.431rem + 14.641vw, 32rem); /* 322.2px at 390px, 537px at 1920px */
  height: clamp(28.238rem, 19.262rem + 36.81vw, 47.063rem); /* 451.8px at 390px, 753px at 1920px */
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.philosophy-bg-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0.1; /* Figmaの塗り10%に合わせる */
}

/* Content Layer - above background logo */
#page-philosophy .section-title-h3,
#page-philosophy .section-title-p,
#page-philosophy .philosophy-main-message-container {
  position: relative;
  z-index: 2;
}

/* Main Message Container */
.philosophy-main-message-container {
  margin-top: clamp(3.75rem, 3.593rem + 0.65vw, 4.375rem); /* 60px at 1920px, 60px at 390px */
  display: flex;
  justify-content: center;
  align-items: center;
}

/* Main Message Text */
.philosophy-main-message {
  width: clamp(19.375rem, 4.083rem + 62.75vw, 60.0rem); /* 310px at 390px, 936px at 1920px */
  color: #BA2A20;
  text-align: center;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(1.25rem, 0.618rem + 2.59vw, 2.813rem); /* 20px at 390px, 45px at 1920px */
  font-style: normal;
  font-weight: 700;
  line-height: 160%;
  letter-spacing: clamp(0.125rem, 0.059rem + 0.27vw, 0.281rem); /* 2px at 390px, 4.5px at 1920px */
  margin: 0;
}

/* Show large screen version (2 lines) above 1400px */
.philosophy-message-large {
  display: inline;
}

.philosophy-message-small {
  display: none;
}

/* Show small screen version (3 lines) at 1400px and below */
@media screen and (max-width: 1400px) {
  .philosophy-message-large {
    display: none;
  }

  .philosophy-message-small {
    display: inline;
  }
}

/* ============================
   3つの柱セクション
============================ */

/* Section Container */
.philosophy-pillars-section {
  margin-top: clamp(5rem, 3.529rem + 6.03vw, 15.188rem); /* 80px at 390px, 243px at 1920px */
  position: relative;
  z-index: 2;
}

.philosophy-pillars-container {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 3.125rem; /* 17px at 390px, 150px at 1920px */
  max-width: 100%;
  width: 100%;
  padding: 0 1.25rem; /* デフォルト: 20px */
  box-sizing: border-box;
}

/* 左側: テキストエリア */
.philosophy-pillars-text {
  width: clamp(19.375rem, 15.216rem + 16.86vw, 35.5rem); /* 310px at 390px, 568px at 1920px */
  flex-shrink: 0;
  min-width: 0;
}

.philosophy-pillars-title {
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(1.25rem, 0.882rem + 1.51vw, 2rem); /* 20px at 390px, 32px at 1920px */
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  letter-spacing: clamp(0.125rem, 0.088rem + 0.15vw, 0.2rem); /* 2px at 390px, 3.2px at 1920px */
  margin: 0;
  text-align: left;
}

.philosophy-pillars-description {
  margin-top: clamp(1rem, 0.816rem + 0.75vw, 1.563rem); /* 16px at 390px, 25px at 1920px */
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.822rem + 0.22vw, 1rem); /* 14px at 390px, 16px at 1920px */
  font-style: normal;
  font-weight: 400;
  line-height: clamp(1.5rem, 1.421rem + 0.33vw, 1.6rem); /* 24px at 390px, 25.6px at 1920px (160%) */
  letter-spacing: 0; /* 1920px: 0px */
  margin-bottom: 0;
}

/* 390px時のletter-spacing */
@media screen and (max-width: 768px) {
  .philosophy-pillars-description {
    letter-spacing: 0.07rem; /* 390px: 1.12px */
  }
}

/* 3つの柱の説明テキスト改行制御 */
.philosophy-pillars-text-large {
  display: inline;
}

.philosophy-pillars-text-small {
  display: none;
}

/* 768px以下で改行を変更 */
@media screen and (max-width: 768px) {
  .philosophy-pillars-text-large {
    display: none;
  }

  .philosophy-pillars-text-small {
    display: inline;
  }
}

/* 右側: フローチャート画像 */
.philosophy-pillars-flow {
  width: clamp(19.375rem, 13.145rem + 25.56vw, 43.813rem); /* 310px at 390px, 701px at 1920px */
  height: clamp(5.875rem, 4.106rem + 7.26vw, 12.813rem); /* 94px at 390px, 205px at 1920px */
  flex-shrink: 0;
  min-width: 0;
}

.philosophy-pillars-flow img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* PC/SP画像の表示制御 */
.philosophy-pillars-flow img.pc {
  display: block;
}

.philosophy-pillars-flow img.sp {
  display: none;
}

@media screen and (max-width: 768px) {
  .philosophy-pillars-flow img.pc {
    display: none;
  }

  .philosophy-pillars-flow img.sp {
    display: block;
  }
}

/* デスクトップ: 1025px以上のみ左右に220pxのpadding */
@media screen and (min-width: 1025px) {
  .philosophy-pillars-container {
    padding: 0 clamp(2rem, -11.451rem + 21vw, 13.75rem); /* 1025px: 32px → 1920px: 220px */
  }

  .philosophy-pillars-text {
    width: clamp(25rem, 6.103rem + 29.497vw, 41.5rem); /* 310px at 390px, 568px at 1920px */
  }

  .philosophy-pillars-flow {
    width: clamp(19.375rem, 13.145rem + 25.56vw, 43.813rem); /* 310px at 390px, 701px at 1920px */
  }
}

/* 1920px時に正確なサイズを保証 */
@media screen and (min-width: 1920px) {
  .philosophy-pillars-text {
    width: 41.5rem; /* 568px */
  }

  .philosophy-pillars-flow {
    width: 43.813rem; /* 701px */
    height: 12.813rem; /* 205px */
  }
}

/* タブレット以下: より早めに縦並びに切り替え */
@media screen and (max-width: 1024px) {
  .philosophy-pillars-container {
    flex-direction: column;
    align-items: center;
    gap: clamp(1.063rem, 0.5rem + 2vw, 2rem); /* 17px at 390px, 適度な間隔 */
    padding: 0 clamp(1.25rem, 0.593rem + 2.68vw, 2.938rem); /* 20px at 390px, 47px at 1024px */
  }

  .philosophy-pillars-text {
    width: clamp(19.375rem, 7.303rem + 49.527vw, 39rem); /* 310px at 390px, 550px at 1024px */
  }

  .philosophy-pillars-title {
    text-align: center;
    font-size: clamp(1.25rem, 0.961rem + 1.19vw, 1.875rem); /* 20px at 390px, 30px at 1024px */
  }

  .philosophy-pillars-description {
    font-size: clamp(0.875rem, 0.828rem + 0.19vw, 0.969rem); /* 14px at 390px, 15.5px at 1024px */
  }

  .philosophy-pillars-flow {
    width: clamp(19.375rem, 7.303rem + 49.527vw, 39rem); /* 310px at 390px, 550px at 1024px */
    height: clamp(5.875rem, 3.074rem + 11.49vw, 10.406rem); /* 94px at 390px, 166.5px at 1024px */
  }
}

/* 390px時に正確なサイズを保証 */
@media screen and (max-width: 390px) {
  .philosophy-pillars-text {
    width: 19.375rem; /* 310px */
  }

  .philosophy-pillars-flow {
    width: 19.375rem; /* 310px */
    height: 5.875rem; /* 94px */
  }
}

/* ============================
   MISSION/VISION/VALUE 詳細セクション
============================ */

/* Section Container */
.philosophy-details-section {
  margin-top: clamp(3rem, 2.412rem + 2.41vw, 6.25rem); /* 48px at 390px, 100px at 1920px */
  margin-bottom: 0;
  position: relative;
  z-index: 2;
}

/* Detail Item */
.philosophy-detail-item {
  width: 100%;
  margin-bottom: 0;
}

.philosophy-detail-item + .philosophy-detail-item {
  margin-top: clamp(2.5rem, 2.239rem + 1.07vw, 2.5rem); /* 40px */
}

.philosophy-detail-container {
  display: flex;
  align-items: center;
  padding: 0 clamp(2.5rem, 0.962rem + 6.309vw, 5rem); /* 40px at 390px, 左右のpadding */
  box-sizing: border-box;
}

/* VALUEセクション: 3行テキストなので上揃え */
.philosophy-detail-item-value .philosophy-detail-container {
  align-items: flex-start;
}

/* VALUEセクション: デスクトップで説明テキストを中央揃え */
@media screen and (min-width: 1025px) {
  .philosophy-detail-item-value .philosophy-detail-right {
    margin-top: -0.5em; /* 2行目が左側の中央に来るように微調整 */
  }
}

/* デスクトップ: 左右に220pxのpadding */
@media screen and (min-width: 1025px) {
  .philosophy-detail-container {
    padding: 0 clamp(2rem, -11.451rem + 21vw, 13.75rem); /* 32px at 1025px → 220px at 1920px */
  }
}

/* 左側: タイトルとサブタイトル */
.philosophy-detail-left {
  flex-shrink: 0;
}

/* デスクトップ: 左側の幅を固定 */
@media screen and (min-width: 1025px) {
  .philosophy-detail-left {
    width: 15.313rem; /* 245px固定 (465px - 220px padding) */
  }
}

.philosophy-detail-title {
  color: #BA2A20;
  font-family: Raleway, sans-serif;
  font-size: clamp(1.625rem, 1.233rem + 1.61vw, 2rem); /* 26px at 390px, 32px at 1920px */
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: clamp(0.163rem, 0.123rem + 0.16vw, 0.2rem); /* 2.6px at 390px, 3.2px at 1920px */
  margin: 0;
}

.philosophy-detail-subtitle {
  margin-top: clamp(0.125rem, 0.096rem + 0.12vw, 0.438rem); /* 2px at 390px, 7px at 1920px */
  color: #050505;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(0.875rem, 0.822rem + 0.22vw, 1rem); /* 14px at 390px, 16px at 1920px */
  font-style: normal;
  font-weight: 400;
  line-height: 160%;
  margin-bottom: 0;
}

/* 右側: 説明テキスト */
.philosophy-detail-right {
  flex: 1;
  margin-left: 0;
  display: flex;
  align-items: center;
}

.philosophy-detail-text {
  color: #050505;
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(1rem, 0.935rem + 0.27vw, 1.25rem); /* 16px at 390px, 20px at 1920px */
  font-style: normal;
  font-weight: 400;
  line-height: 180%;
  letter-spacing: clamp(0.015rem, 0.004rem + 0.05vw, 0.063rem); /* 0.24px at 390px, 1px at 1920px */
  margin: 0;
  text-align: left;
  word-break: break-word;
  overflow-wrap: break-word;
}

/* 390px時のletter-spacing微調整 */
@media screen and (max-width: 390px) {
  .philosophy-detail-text {
    letter-spacing: 0.019rem; /* 0.24px */
  }
}

/* モバイル: 縦並びレイアウト */
@media screen and (max-width: 1024px) {
  .philosophy-detail-container {
    flex-direction: column;
    align-items: flex-start;
  }

  .philosophy-detail-right {
    margin-left: 0;
    margin-top: clamp(1rem, 0.935rem + 0.27vw, 1.25rem); /* 16px */
    width: 100%;
  }

  .philosophy-detail-text {
    text-align: left;
  }
}

/* MISSION/VISIONの改行制御 */
.philosophy-text-large {
  display: inline;
}

.philosophy-text-small {
  display: none;
}

/* 768px以下で改行を変更 */
@media screen and (max-width: 768px) {
  .philosophy-text-large {
    display: none;
  }

  .philosophy-text-small {
    display: inline;
  }
}

/* 区切り線 */
.philosophy-detail-divider {
  margin-top: clamp(1.5rem, 1.239rem + 1.07vw, 2.563rem); /* 24px at 390px, 41px at 1920px */
  display: flex;
  justify-content: center;
  width: 100%;
}

/* 区切り線SVG */
.philosophy-divider-line {
  display: block;
  width: clamp(19.375rem, -3.088rem + 91.93vw, 100rem); /* 310px at 390px, 1600px at 1920px */
  height: 1px;
  flex-shrink: 0;
}
