/* ==========================================================================
   ES Management Page
   좌우 분할 레이아웃 + 정책 카드 (skenpulse 레퍼런스 기반)
   ========================================================================== */

/* --- Section Wrapper Override --- */
.wd-esm {
  padding-bottom: 0;
}

/* --- Header (센터 타이틀) --- */
.wd-esm__header {
  max-width: 1240px;
  margin: 0 auto 160px;
  text-align: center;
}

.wd-esm__headline {
  font-size: 42px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.04em;
  color: var(--wd-text-primary);
  word-break: keep-all;
}

.wd-esm__headline strong {
  color: var(--wd-primary);
  font-weight: 700;
}

/* --- 좌우 분할 섹션 (반복 구조) --- */
.wd-esm__row {
  display: flex;
  max-width: 1240px;
  margin: 0 auto;
  padding: 80px 0;
  border-top: 1px solid var(--wd-border-light);
}

.wd-esm__row:last-child {
  padding-bottom: 120px;
}

.wd-esm__label {
  width: 30%;
  flex-shrink: 0;
}

.wd-esm__row-title {
  font-size: 34px;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.4;
  color: var(--wd-text-primary);
}

.wd-esm__body {
  width: 70%;
}

/* 일반 텍스트 */
.wd-esm__text {
  font-size: 17px;
  letter-spacing: -0.03em;
  line-height: 1.9;
  color: var(--wd-text-secondary);
  word-break: keep-all;
}

/* --- 정책 카드 리스트 --- */
.wd-esm__policy-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.wd-esm__policy-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--wd-border-default);
  padding: 28px 48px 28px 40px;
  margin-top: 14px;
  transition: border-color var(--wd-duration-default), box-shadow var(--wd-duration-default);
}

.wd-esm__policy-item:first-child {
  margin-top: 0;
}

.wd-esm__policy-item:hover {
  border-color: var(--wd-primary);
  box-shadow: 0 4px 20px rgba(1, 129, 198, 0.08);
}

.wd-esm__policy-body {
  width: calc(100% - 100px);
}

.wd-esm__policy-title {
  display: flex;
  align-items: center;
  color: var(--wd-text-primary);
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -0.03em;
  margin-bottom: 8px;
}

.wd-esm__policy-num {
  display: inline-block;
  color: var(--wd-primary);
  font-size: 14px;
  font-weight: 800;
  font-family: var(--wd-font-secondary);
  margin-right: 14px;
  letter-spacing: 0;
}

.wd-esm__policy-desc {
  color: var(--wd-text-secondary);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: -0.03em;
  line-height: 1.8;
  word-break: keep-all;
}

/* 아이콘 (SVG) */
.wd-esm__policy-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: rgba(1, 129, 198, 0.06);
  border: 10px solid rgba(1, 129, 198, 0.1);
  flex-shrink: 0;
  color: var(--wd-primary);
  transition: background var(--wd-duration-default), border-color var(--wd-duration-default);
}

.wd-esm__policy-item:hover .wd-esm__policy-icon {
  background: rgba(1, 129, 198, 0.1);
  border-color: rgba(1, 129, 198, 0.15);
}

.wd-esm__policy-icon svg {
  width: 24px;
  height: 24px;
}


/* ==========================================================================
   반응형 — Tablet (≤ 1080px)
   ========================================================================== */
@media (max-width: 1080px) {
  .wd-esm__header {
    margin-bottom: 80px;
  }

  .wd-esm__headline {
    font-size: 30px;
  }

  .wd-esm__row {
    display: block;
    padding: 60px 0;
  }

  .wd-esm__label,
  .wd-esm__body {
    width: auto;
  }

  .wd-esm__label {
    margin-bottom: 28px;
  }

  .wd-esm__row-title {
    font-size: 26px;
  }

  .wd-esm__policy-item {
    padding: 24px 32px;
  }
}


/* ==========================================================================
   반응형 — Mobile (≤ 640px)
   ========================================================================== */
@media (max-width: 640px) {
  .wd-esm__header {
    margin-bottom: 48px;
  }

  .wd-esm__headline {
    font-size: 22px;
  }

  .wd-esm__headline br {
    display: none;
  }

  .wd-esm__row {
    padding: 40px 0;
  }

  .wd-esm__row:last-child {
    padding-bottom: 60px;
  }

  .wd-esm__row-title {
    font-size: 22px;
  }

  .wd-esm__text {
    font-size: 15px;
  }

  /* 정책 카드 모바일 */
  .wd-esm__policy-item {
    flex-direction: column-reverse;
    padding: 24px 20px;
    text-align: center;
    gap: 16px;
  }

  .wd-esm__policy-body {
    width: auto;
  }

  .wd-esm__policy-title {
    justify-content: center;
    font-size: 18px;
  }

  .wd-esm__policy-icon {
    width: 60px;
    height: 60px;
    border-width: 8px;
  }

  .wd-esm__policy-icon svg {
    width: 20px;
    height: 20px;
  }
}


/* ==========================================================================
   환경 목표 — SVG Circle Values (대성그룹 레퍼런스)
   ========================================================================== */
.wd-esm__circles {
  position: relative;
  width: 100%;
  text-align: center;
}
.wd-esm__circles > ul {
  display: flex;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}
.wd-esm__circle-item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  aspect-ratio: 1 / 1;
}
.wd-esm__circle-item + .wd-esm__circle-item {
  margin-left: -20px;
}
.wd-esm__circle-svg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  stroke-linecap: round;
  stroke-width: 1;
  fill: none;
  transform: rotate(-180deg);
}
.wd-esm__circle-ring {
  stroke: var(--wd-primary);
  stroke-dasharray: 312;
  stroke-dashoffset: 312;
  transition: stroke-dashoffset 1s ease;
}
/* data-motion 트리거 */
.is_animated .wd-esm__circle-ring {
  stroke-dashoffset: 0;
}
.is_animated .wd-esm__circle-item:nth-child(1) .wd-esm__circle-ring { transition-delay: 0.1s; }
.is_animated .wd-esm__circle-item:nth-child(2) .wd-esm__circle-ring { transition-delay: 0.3s; }
.is_animated .wd-esm__circle-item:nth-child(3) .wd-esm__circle-ring { transition-delay: 0.5s; }
.is_animated .wd-esm__circle-item:nth-child(4) .wd-esm__circle-ring { transition-delay: 0.7s; }

.wd-esm__circle-content {
  position: relative;
  z-index: 1;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s, transform 0.6s;
}
.is_animated .wd-esm__circle-content {
  opacity: 1;
  transform: translateY(0);
}
.is_animated .wd-esm__circle-item:nth-child(1) .wd-esm__circle-content { transition-delay: 0.2s; }
.is_animated .wd-esm__circle-item:nth-child(2) .wd-esm__circle-content { transition-delay: 0.4s; }
.is_animated .wd-esm__circle-item:nth-child(3) .wd-esm__circle-content { transition-delay: 0.6s; }
.is_animated .wd-esm__circle-item:nth-child(4) .wd-esm__circle-content { transition-delay: 0.8s; }
.wd-esm__circle-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--wd-text-primary);
  line-height: 1.5;
  letter-spacing: -0.03em;
  margin: 0;
}

@media (max-width: 1080px) {
  .wd-esm__circle-item + .wd-esm__circle-item {
    margin-left: -16px;
  }
  .wd-esm__circle-title {
    font-size: 14px;
  }
}
@media (max-width: 640px) {
  .wd-esm__circles > ul {
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
  }
  .wd-esm__circle-item {
    flex: none;
    width: calc(50% - 5px);
  }
  .wd-esm__circle-item + .wd-esm__circle-item {
    margin-left: 0;
  }
  .wd-esm__circle-title {
    font-size: 13px;
  }
}


/* ==========================================================================
   환경경영 추진 조직 — SVG Tree Chart
   ========================================================================== */
.wd-org__chart-wrap {
  display: flex;
  justify-content: center;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.wd-org__chart {
  width: 100%;
  max-width: 1100px;
  height: auto;
}
.wd-org__ceo-text {
  font-family: var(--wd-font-primary);
  font-size: 22px;
  font-weight: 700;
}
.wd-org__ceo-sub {
  font-family: var(--wd-font-primary);
  font-size: 13px;
  font-weight: 400;
}
.wd-org__dept-text {
  font-family: var(--wd-font-primary);
  font-size: 20px;
  font-weight: 700;
}
.wd-org__card-text {
  font-family: var(--wd-font-primary);
  font-size: 15px;
  font-weight: 400;
}

@media (max-width: 1080px) {
  .wd-org__chart {
    min-width: 800px;
  }
}
@media (max-width: 480px) {
  .wd-org__chart {
    min-width: 650px;
  }
}
