#ehs_visual_scene {
   position: relative;
   height: 320vh;
}

.ehs_visual_sticky {
   position: sticky;
   top: 0;
   width: 100%;
   height: 100vh;
   overflow: hidden;
}

.ehs_visual_intro {
   position: absolute;
   left: 50%;
   top: 32%;
   z-index: 4;
   width: max-content;
   transform: translateX(-50%);
   text-align: center;
}

.ehs_visual_title,
.tab_mo_ehs_visual_title {
   margin: 0;
   font-family: "Bahnschrift", "Pretendard", sans-serif;
   font-weight: 600;
   font-stretch: semi-condensed;
   line-height: 1;
   letter-spacing: 0.04em;
}

.ehs_visual_title {
   font-size: 140px;
}

.tab_mo_ehs_visual_title {
   display: none;
}

.ehs_visual_img {
   position: absolute;
   left: 50%;
   top: 85%;
   z-index: 5;
   width: clamp(560px, 37vw, 700px);
   aspect-ratio: 1.7 / 1;
   overflow: hidden;
   will-change: left, top, width, height, transform;
   --visualOverlay: 0.03;
}

.ehs_visual_media {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center;
   pointer-events: none;
   transform-origin: center center;
   will-change: filter, transform;
}

.ehs_visual_img::after {
   content: "";
   position: absolute;
   inset: 0;
   z-index: 2;
   background: rgba(25, 25, 25, var(--visualOverlay));
   pointer-events: none;
}

.ehs_visual_text {
   position: absolute;
   left: 50%;
   top: 50%;
   z-index: 7;
   width: max-content;
   opacity: 0;
   visibility: hidden;
   text-align: center;
   pointer-events: none;
}

.ehs_visual_text p {
   font-size: 56px;
   font-weight: 700;
   line-height: 1.45;
   color: var(--color-text-light);
   text-shadow: 0 4px 18px rgba(0, 0, 0, 0.25), 0 1px 4px rgba(0, 0, 0, 0.18);
}

.mo_br {
   display: none;
}



/*------------------------------------
   EHS Environment Section
------------------------------------*/
.ehs_env {
   position: relative;
   height: 560vh;
   background: var(--color-bg-base);
   --ehs-content-gap: clamp(80px, 8.333vw, 160px);
   --ehs-track-gap: clamp(24px, 2.083vw, 40px);
   --ehs-card-width: clamp(720px, 50vw, 960px);
   --ehs-card-height: clamp(360px, 22.917vw, 440px);
   --ehs-end-gap: clamp(80px, 8.333vw, 160px);
   --ehs-last-card-gap: clamp(48px, 4.167vw, 80px);
}

.ehs_env_sticky {
   position: sticky;
   top: 0;
   height: 100dvh;
   overflow: hidden;
}

.ehs_env_head {
   position: absolute;
   top: 20%;
   left: 50%;
   width: min(1600px, calc(100% - var(--ehs-content-gap)));
   transform: translateX(-50%);
   z-index: 5;
}

.ehs_env_head h2 {
   display: flex;
   align-items: baseline;
   gap: clamp(24px, 2.083vw, 40px);
   margin: 0;
}

.ehs_env_head h2 span {
   margin: 0;
   font-family: "Bahnschrift", "Pretendard", sans-serif;
   font-weight: 600;
   font-stretch: semi-condensed;
   font-size: clamp(72px, 5vw, 96px);
   color: var(--color-text-primary);
}

.ehs_env_head h2 em {
   font-size: clamp(36px, 2.5vw, 48px);
   font-style: normal;
   font-weight: 500;
   color: var(--color-text-secondary);
}

.ehs_env_head p {
   margin-top: 10px;
   font-size: 18px;
   color: var(--color-text-secondary);
}

/* 카드 영역 */
.ehs_env_cards {
   position: absolute;
   top: 41%;
   left: 0;
   width: 100%;
   z-index: 3;
   cursor: grab;
   touch-action: pan-y;
   user-select: none;
   -webkit-user-select: none;
}

.ehs_env_cards.is_swiping {
   cursor: grabbing;
}

.ehs_drag_cursor {
   position: fixed;
   left: 0;
   top: 0;
   z-index: 9999;
   width: 58px;
   height: 58px;
   border: 2px solid #6FAF45;
   border-radius: 50%;
   opacity: 0;
   visibility: hidden;
   pointer-events: none;
   box-shadow: 0 6px 16px rgba(25, 25, 25, 0.1);
   transform: translate(-50%, -50%) scale(0.72);
   transition: opacity 0.18s ease, visibility 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
}

.ehs_drag_cursor.is-visible {
   opacity: 1;
   visibility: visible;
   transform: translate(-50%, -50%) scale(1);
}

.ehs_drag_cursor.is-dragging {
   border-color: #6FAF45;
   transform: translate(-50%, -50%) scale(0.86);
}

.ehs_env_track {
   position: relative;
   left: 42vw;
   display: flex;
   gap: var(--ehs-track-gap);
   width: max-content;
   transform: none;
   will-change: left;
}

.ehs_env_card {
   position: relative;
   width: var(--ehs-card-width);
   height: var(--ehs-card-height);
   overflow: hidden;
   --detailOverlay: 0;
   isolation: isolate;
   will-change: transform, width, height;
}

.ehs_env_card img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.ehs_env_card::before {
   content: "";
   position: absolute;
   inset: 0;
   z-index: 2;
   opacity: var(--detailOverlay);
   background:
      linear-gradient(90deg,
         rgba(0, 0, 0, 0.76) 0%,
         rgba(0, 0, 0, 0.56) 30%,
         rgba(0, 0, 0, 0.22) 62%,
         rgba(0, 0, 0, 0.08) 80%),
      rgba(0, 0, 0, 0.02);
   pointer-events: none;
}

.ehs_env_card::after {
   content: "";
   position: absolute;
   inset: 0;
   z-index: 1;
   opacity: 0;
   background: linear-gradient(to top,
         rgba(0, 0, 0, 0.60) 0%,
         rgba(0, 0, 0, 0.30) 28%,
         rgba(0, 0, 0, 0) 58%);
   transition: opacity 0.35s ease;
}

.ehs_env_card.is_active::after {
   opacity: 1;
}

.ehs_env_card_text {
   position: absolute;
   padding-left: clamp(30px, 2.083vw, 40px);
   bottom: clamp(34px, 2.5vw, 48px);
   z-index: 5;
   color: var(--color-text-light);
   opacity: 0;
   transform: translateY(16px);
   transition: opacity 0.35s ease, transform 0.35s ease;
   text-shadow:
      0 2px 8px rgba(0, 0, 0, 0.32),
      0 10px 26px rgba(0, 0, 0, 0.22);
}

.ehs_env_card.is_active .ehs_env_card_text {
   opacity: 1;
   transform: translateY(0);
}

.ehs_env.is_detail_mode .ehs_env_card_text {
   opacity: 0 !important;
   visibility: hidden !important;
   transform: translateY(16px) !important;
}

.ehs_env_card_text h3 {
   margin: 0 0 clamp(14px, 1.042vw, 20px);
   font-size: clamp(24px, 1.458vw, 28px);
   font-weight: 600;
   color: var(--color-text-light);
}

.ehs_env_card_text p {
   margin: 0;
   font-size: clamp(16px, 0.938vw, 18px);
   color: var(--color-text-light);
}

.ehs_env_card_points {
   display: none;
}

/* 상세 확대 화면 */
/* 상세 영역은 이미지가 아니라 텍스트/탭만 담당 */
.ehs_env_detail {
   position: absolute;
   inset: 0;
   z-index: 30;
   opacity: 0;
   visibility: hidden;
   pointer-events: none;
   overflow: hidden;
}

/* 기존 전체 오버레이 제거 */
.ehs_env_detail::after {
   display: none;
}

.ehs_env_detail_text {
   position: absolute;
   left: calc((100% - min(1600px, calc(100% - var(--ehs-content-gap)))) / 2);
   top: 15%;
   z-index: 31;
   color: var(--color-text-light);
   opacity: 0;
   visibility: hidden;
   pointer-events: auto;
   touch-action: pan-y;
   user-select: none;
   -webkit-user-select: none;
   text-shadow:
      0 2px 6px rgba(0, 0, 0, 0.25),
      0 8px 24px rgba(0, 0, 0, 0.15);
}

.ehs_env_num {
   font-family: "Bahnschrift", "Pretendard", sans-serif;
   font-size: 110px;
   font-stretch: condensed;
   font-weight: 300;
   line-height: 1;
   letter-spacing: 0.03em;
}

.ehs_env_detail_text h3 {
   font-size: 44px;
   font-weight: 500;
   margin-top: 12px;
}

.ehs_env_detail_text p {
   font-size: 18px;
   margin-top: 40px;
   line-height: 1.3;
}

.ehs_env_detail_text p::after {
   content: "";
   display: block;
   width: 60px;
   height: 2px;
   margin: 40px 0 0;
   background: var(--color-line);
}

.ehs_env_detail_text ul {
   margin-top: 60px;
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.ehs_env_detail_text li {
   display: flex;
   align-items: center;
   gap: 15px;

   font-size: 18px;
   font-weight: 500;
}

.ehs_env_detail_text .icon {
   flex-shrink: 0;
}

.icon {
   width: 40px;
   height: 40px;
}

.icon img {
   display: block;
   width: 100%;
   height: 100%;
}

.ehs_env_tabs {
   position: absolute;
   left: 0;
   bottom: 0;
   z-index: 31;
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   width: 100%;
   height: 90px;
   border-top: 1px solid rgb(219, 219, 219, 45%);
   opacity: 0;
   visibility: hidden;
   pointer-events: auto;
   touch-action: pan-y;
   user-select: none;
   -webkit-user-select: none;
   --ehs-tab-progress: 0;
}

.ehs_env_tabs::after {
   content: "";
   position: absolute;
   left: 0;
   bottom: 0;
   width: 100%;
   height: 5px;
   background: var(--color-brand);
   transform: scaleX(var(--ehs-tab-progress));
   transform-origin: left center;
   will-change: transform;
   pointer-events: none;
}

.ehs_env_tabs button {
   position: relative;
   border: 0;
   background: rgba(0, 0, 0, 0);
   color: rgba(255, 255, 255, 0.65);
   font-size: 18px;
   cursor: pointer;
   text-shadow:
      0 2px 6px rgba(0, 0, 0, 0.25),
      0 8px 24px rgba(0, 0, 0, 0.15);
}

.ehs_env_tabs button.is_active {
   color: var(--color-text-light);
   font-weight: 500;
}

.ehs_env_tabs button.is_active::after {
   display: none;
}

.mo_ehs_section {
   display: none;
}










/*------------------------------------
   Responsive
------------------------------------*/
/*------------------------------------
   탭 버전
------------------------------------*/
@media screen and (min-width: 600px) and (max-width: 1024px) {
   .ehs_drag_cursor {
      display: none;
   }

   .mo_br {
      display: inline;
   }

   #ehs_visual_scene {
      height: 260svh;
   }

   .ehs_visual_sticky {
      height: 100svh;
   }

   .ehs_visual_intro {
      top: 27%;
      width: calc(100% - 48px);
   }

   .ehs_visual_title {
      display: none;
   }

   .tab_mo_ehs_visual_title {
      display: block;
      font-size: clamp(98px, 12.5vw, 160px);
   }

   .ehs_visual_img {
      top: 65%;
      width: min(calc(100vw - 40px), clamp(560px, 75vw, 700px));
   }

   .ehs_visual_text {
      width: max-content;
      max-width: calc(100% - 80px);
   }

   .ehs_visual_text p {
      font-size: clamp(30px, 5vw, 56px);
   }

   .ehs_env_head {
      top: 22%;
      width: calc(100% - 48px);
   }

   .ehs_env_head h2 {
      gap: 28px;
   }

   .ehs_env_head h2 span {
      font-size: clamp(80px, 10vw, 96px);
   }

   .ehs_env_head h2 em {
      font-size: clamp(30px, 4.5vw, 38px);
   }

   .ehs_env_head p {
      font-size: 18px;
      line-height: 1.55;
   }

   .ehs_env_cards {
      top: 38%;
   }

   .ehs_env_track {
      left: 24px;
      gap: 24px;
      will-change: left;
   }

   .ehs_env_card {
      width: calc(100vw - 80px);
      height: clamp(280px, 46svh, 480px);
      height: clamp(280px, 46dvh, 480px);
   }

   .ehs_env_card_text {
      padding-left: 32px;
      bottom: 34px;
   }

   .ehs_env_card_text h3 {
      margin-bottom: 14px;
      font-size: 25px;
   }

   .ehs_env_card_text p {
      font-size: 16px;
      line-height: 1.55;
   }

   .ehs_env_detail_text {
      left: 48px;
      top: 18%;
   }

   .ehs_env_num {
      font-size: 90px;
   }

   .ehs_env_detail_text h3 {
      font-size: 40px;
   }

   /* 
   .ehs_env_detail_text p {
      font-size: 16px;
      margin-top: 30px;
      line-height: 1.45;
   }

   .ehs_env_detail_text p::after {
      margin-top: 30px;
   }

   .ehs_env_detail_text ul {
      margin-top: 42px;
      gap: 16px;
   }

   .ehs_env_detail_text li {
      gap: 14px;
      font-size: 16px;
   } */

   .ehs_env_tabs {
      height: 76px;
   }

   .ehs_env_tabs button {
      font-size: 15px;
   }
}




/*------------------------------------
   모바일 버전
------------------------------------*/
@media screen and (min-width: 300px) and (max-width: 599px) {
   .ehs_drag_cursor {
      display: none;
   }

   #ehs_visual_scene {
      height: 260svh;
   }

   .ehs_visual_sticky {
      height: 100svh;
      background: #fff;
      --mo-img-w: calc(100vw - 60px);
      --mo-img-center-y: 70svh;
      --mo-img-half-h: calc(var(--mo-img-w) / 3.7016);
      --mo-title-gap: 25px;
   }

   .ehs_visual_intro {
      left: 50%;
      top: auto;
      bottom: calc(100svh - var(--mo-img-center-y) + var(--mo-img-half-h) + var(--mo-title-gap));
      width: calc(100% - 60px);
      transform: translateX(-50%);
   }

   .ehs_visual_title {
      display: none;
   }

   .tab_mo_ehs_visual_title {
      display: block;
      font-size: clamp(54px, 13vw, 100px);
   }

   .ehs_visual_img {
      left: 50%;
      top: var(--mo-img-center-y);
      width: var(--mo-img-w);
      aspect-ratio: 335 / 181;
   }

   .ehs_visual_text {
      width: max-content;
      max-width: calc(100% - 60px);
   }

   .ehs_visual_text p {
      font-size: clamp(28px, 7.5vw, 48px);
   }

   .mo_br {
      display: inline;
   }

   /* PC / Tablet EHS 섹션 숨김 */
   #ehs_environment,
   #ehs_health,
   #ehs_safety {
      display: none;
   }

   .mo_ehs_section {
      display: block;
   }


   .mo_ehs_contents {
      display: block;
      background: var(--color-bg-base);
   }

   .mo_ehs_section {
      padding: 100px 0 50px;
   }

   .mo_ehs_inner {
      width: calc(100% - 40px);
      margin: 0 auto;
   }

   .mo_ehs_head {
      margin-bottom: 40px;
      display: flex;
      flex-direction: column;
   }

   .mo_ehs_head h2 {
      display: flex;
      align-items: baseline;
      gap: 15px;
      margin: 0;
   }

   .mo_ehs_head h2 span {
      font-family: "Bahnschrift", "Pretendard", sans-serif;
      font-size: 48px;
      font-weight: 600;
      font-stretch: semi-condensed;
      line-height: 1;
      letter-spacing: -0.025em;
      color: var(--color-text-primary);
   }

   .mo_ehs_head h2 em {
      font-size: 20px;
      font-style: normal;
      font-weight: 500;
      color: var(--color-text-secondary);
      white-space: nowrap;
   }

   .mo_ehs_head p {
      position: relative;
      margin-top: 5px;
      padding-top: 25px;
      font-size: 14px;
      font-weight: 400;
      line-height: 1.35;
      color: var(--color-text-muted);
      word-break: keep-all;
      text-align: right;
   }

   .mo_ehs_head p::before {
      content: "";
      position: absolute;
      right: 0;
      top: 0;
      width: 60px;
      height: 2px;
      background: var(--color-brand);
   }

   .mo_ehs_card_list {
      display: flex;
      flex-direction: column;
      gap: 24px;
   }

   .mo_ehs_card {
      overflow: hidden;
      border-radius: 12px;
      background: #fff;
      box-shadow:
         0 8px 24px rgba(94, 135, 82, 0.08),
         0 2px 8px rgba(120, 96, 72, 0.06);
   }

   .mo_ehs_card_img {
      position: relative;
      width: 100%;
      aspect-ratio: 335 / 140;
      overflow: hidden;
      background: var(--color-line);
   }

   .mo_ehs_card_img img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
   }

   .mo_ehs_card_img::after {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(0, 0, 0, 0.15);
      pointer-events: none;
   }

   .mo_ehs_card_num {
      font-family: "Bahnschrift", "Pretendard", sans-serif;
      font-size: 28px;
      font-stretch: condensed;
      font-weight: 300;
      line-height: 1;
      color: var(--color-text-light);

      position: absolute;
      left: 18px;
      top: 18px;
      z-index: 2;

      display: flex;
      align-items: center;
      justify-content: center;

      width: 40px;
      height: 40px;
      min-width: 0;
      padding: 3.5px 0 0;

      border-radius: 6px;
      background: rgb(102, 155, 69, 80%);

      text-align: center;
      text-indent: 1px;
   }

   .mo_ehs_card_body {
      padding: 18px 18px 20px;
   }

   .mo_ehs_card_body h3 {
      margin: 0;
      font-size: 20px;
      font-weight: 600;
      color: var(--color-text-primary);
   }

   .mo_ehs_card_body p {
      margin-top: 20px;
      font-size: 14px;
      line-height: 1.4;
      color: var(--color-text-secondary);
      word-break: keep-all;
   }

   .mo_ehs_card_body ul {
      margin-top: 25px;
      display: flex;
      flex-direction: column;
      gap: 5px;
   }

   .mo_ehs_card_body li {
      position: relative;
      padding-left: 10px;
      font-size: 14px;
      line-height: 1.3;
      color: var(--color-text-secondary);
      word-break: keep-all;
   }

   .mo_ehs_card_body li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.58em;
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: var(--color-brand);
   }

   .mo_ehs_safety {
      padding-bottom: 90px;
   }
}

/*------------------------------------
   EHS Fluid Detail Layout
   - 1920px PC proportions are retained.
   - Laptop and tablet layouts scale from the same composition.
------------------------------------*/
@media screen and (min-width: 600px) {
   .ehs_env_detail_text {
      left: clamp(48px, 8.333vw, 160px);
      top: clamp(110px, 15dvh, 180px);
   }

   .ehs_env_num {
      font-size: clamp(64px, 5.729vw, 110px);
   }

   .ehs_env_detail_text h3 {
      margin-top: clamp(8px, 0.625vw, 12px);
      font-size: clamp(30px, 2.292vw, 44px);
   }

   .ehs_env_detail_text p {
      margin-top: clamp(24px, 4.2dvh, 40px);
      font-size: clamp(14px, 2vw, 18px);
   }

   .ehs_env_detail_text p::after {
      width: clamp(40px, 3.125vw, 60px);
      margin-top: clamp(24px, 4.2dvh, 40px);
   }

   .ehs_env_detail_text ul {
      margin-top: clamp(36px, 6.35dvh, 60px);
      gap: clamp(14px, 2.1dvh, 20px);
   }

   .ehs_env_detail_text li {
      gap: clamp(20px, 2vw, 28px);
      font-size: clamp(14px, 2vw, 18px);
   }

   .ehs_env_detail_text .icon {
      width: clamp(36px, 6vw, 48px);
      height: clamp(36px, 6vw, 48px);
   }

   .ehs_env_tabs {
      height: clamp(64px, 4.688vw, 90px);
   }

   .ehs_env_tabs button {
      padding: 0 clamp(6px, 0.625vw, 12px);
      font-size: clamp(14px, 1.5vw, 18px);
      white-space: nowrap;
   }
}

/* Fold / Tablet Environment Intro */
@media screen and (min-width: 600px) and (max-width: 1024px) {
   .ehs_env_sticky {
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: clamp(28px, 4dvh, 44px);
      padding-block: clamp(24px, 4dvh, 40px);
      box-sizing: border-box;
   }

   .ehs_env_head {
      position: relative;
      top: auto;
      left: auto;
      width: calc(100% - clamp(48px, 8vw, 80px));
      margin: 0 auto;
      transform: none;
      flex: 0 0 auto;
   }

   .ehs_env_head h2 {
      gap: clamp(18px, 3vw, 28px);
   }

   .ehs_env_head h2 span {
      font-size: clamp(56px, 8vw, 72px);
   }

   .ehs_env_head h2 em {
      font-size: clamp(24px, 3.6vw, 32px);
      white-space: nowrap;
   }

   .ehs_env_head p {
      max-width: 100%;
      margin-top: clamp(10px, 1.8vw, 16px);
      font-size: clamp(15px, 2vw, 18px);
      line-height: 1.5;
      word-break: keep-all;
   }

   .ehs_env_cards {
      position: relative;
      top: auto;
      left: auto;
      margin-top: 0;
      height: clamp(280px, 46svh, 480px);
      height: clamp(280px, 46dvh, 480px);
      flex: 0 0 clamp(280px, 46svh, 480px);
      flex: 0 0 clamp(280px, 46dvh, 480px);
   }

}

/* Galaxy Fold8 펼친 화면의 상세 콘텐츠와 하단 탭 겹침 방지 */
@media screen and (min-width: 800px) and (max-width: 900px) and (max-height: 700px) {
   .ehs_env_detail_text {
      top: clamp(72px, 12dvh, 88px);
   }

   .ehs_env_num {
      font-size: 56px;
   }

   .ehs_env_detail_text h3 {
      margin-top: 6px;
      font-size: 28px;
   }

   .ehs_env_detail_text p {
      margin-top: 18px;
      line-height: 1.35;
   }

   .ehs_env_detail_text p::after {
      margin-top: 18px;
   }

   .ehs_env_detail_text ul {
      margin-top: 24px;
      gap: 10px;
   }

   .ehs_env_detail_text li {
      gap: 16px;
      font-size: 14px;
   }

   .ehs_env_detail_text .icon {
      width: 38px;
      height: 38px;
   }

   .ehs_env_tabs button {
      font-size: 13px;
   }
}
