@charset "utf-8";
@layer reset, form;

:root {
  --header-height: clamp(60rem, calc(100 / var(--container) * 100vw), 100rem);
  --container-narrow: 1280;
  --container: 1400;
  --container-wide: 1700;
  --container-scale: 0.92;
  --container-edge-offset: calc((1 - var(--container-scale)) / 2 * 100vw);
  --primary: #e97e15;
  --secondary: #f6f7f9;
  --placeholder-bg: #444444;
  --white: #fff;
  --black: #222;
  --border-color: #ddd; /* components.css 공유 */
  --border-color-hover: #444; /* components.css 공유 */
  --font-pret:
    "Pretendard Variable", "Pretendard", "Malgun Gothic", "Dotum", "Gulim",
    sans-serif;
  --font-sans: var(--font-pret);
  --toggle-nav-button-size: 24rem;
  --site-menu-button-size: 44px;
  /* 
     * 사이트 공통 이미지 플레이스홀더 변수
     * 
     * - --placeholder-image-bg : 기본 배경색 (이미지 로딩 실패 또는 미설정 시 표시)
     * - --placeholder-image-url : 플레이스홀더 로고 이미지 경로
     * - --placeholder-image-size : 플레이스홀더 로고 크기 (최대 크기 제한 포함)
     *
     * layout.css 에 선언하여 전역에서 동일한 디자인 컨셉 유지 및 관리.
     * 접근성 향상을 위해 이미지가 없을 경우에도 시각적 빈 공간이 없도록 함.
     */
  --placeholder-image-bg: #e0e0e0;
  --placeholder-image-url: url("/assets/images/layouts/placeholder-image.png");
  --placeholder-image-size: min(60%, 200rem);
}
@supports (interpolate-size: allow-keywords) {
  :root {
    interpolate-size: allow-keywords;
  }
}

/* #region view transition, scroll behavior */
/* html{ scroll-padding-top: var(--header-height); } */
@media (prefers-reduced-motion: no-preference) {
  /* @view-transition  { navigation: auto; } */
  html {
    scroll-behavior: smooth;
  }
}
/* #endregion view transition, scroll behavior */

/* CTA global */
.cta-actions,
.intro-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18rem, calc(28 / var(--container-wide) * 100vw), 28rem);
  width: min(100%, 570rem);
}

.intro-action {
  --cta-height: 54rem;
  --cta-radius: 24rem;
  --cta-padding-left: 24rem;
  --cta-padding-right: 6rem;
  --cta-gap: 16rem;
  --cta-bg: rgba(255, 255, 255, 0.18);
  --cta-border: rgba(255, 255, 255, 0.24);
  --cta-color: #fff;
  --cta-icon-bg: var(--primary);
  --cta-icon-color: #fff;
  --cta-hover-bg: var(--primary);
  --cta-hover-border: var(--primary);
  --cta-hover-color: #fff;
  --cta-hover-icon-bg: #fff;
  --cta-hover-icon-color: var(--primary);
  --cta-outline-color: #fff;
  --cta-shadow: 0 18rem 36rem rgba(0, 0, 0, 0.18);
  --cta-icon-shadow: 0 8rem 20rem rgba(255, 255, 255, 0.18);
  --cta-label-size: clamp(
    20rem,
    calc(24 / var(--container-wide) * 100vw),
    24rem
  );
  --cta-icon-size: 44rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--cta-gap);
  min-width: 268px;
  min-height: var(--cta-height);
  padding: 0 var(--cta-padding-right) 0 var(--cta-padding-left);
  border-radius: var(--cta-radius);
  border: 1px solid var(--cta-border);
  background: var(--cta-bg);
  color: var(--cta-color);
  text-decoration: none;
  backdrop-filter: blur(4px);
  transition:
    transform 0.32s ease,
    background-color 0.32s ease,
    border-color 0.32s ease,
    color 0.32s ease,
    box-shadow 0.32s ease,
    opacity 0.25s ease;
}

.intro-action:focus-visible {
  outline: 2px solid var(--cta-outline-color);
  outline-offset: 4px;
}

.intro-action-label {
  display: inline-block;
  font-size: var(--cta-label-size);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  color: currentColor;
}

.intro-action-icon {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  width: var(--cta-icon-size);
  height: var(--cta-icon-size);
  border-radius: 50%;
  background: var(--cta-icon-bg);
  color: var(--cta-icon-color);
  transition:
    background-color 0.32s ease,
    color 0.32s ease,
    transform 0.32s ease,
    box-shadow 0.32s ease;
}

.intro-action-icon svg {
  display: block;
  transition: transform 0.32s ease;
  transform-origin: center;
}

@media (hover: hover) and (pointer: fine) {
  .intro-action:hover {
    transform: translateY(-2rem);
    background: var(--cta-hover-bg);
    border-color: var(--cta-hover-border);
    color: var(--cta-hover-color);
  }

  .intro-action:hover .intro-action-icon {
    background: var(--cta-hover-icon-bg);
    color: var(--cta-hover-icon-color);
    transform: scale(1.02);
  }

  .intro-action:hover .intro-action-icon svg {
    transform: rotate(45deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .intro-action,
  .intro-action-icon,
  .intro-action-icon svg {
    transition: none;
  }
}

@media (width < 767px) {
  .cta-actions,
  .intro-actions {
    grid-template-columns: 1fr;
    width: 100%;
    gap: 14rem;
  }

  .intro-action {
    --cta-height: 58rem;
    --cta-padding-left: 20rem;
    --cta-icon-size: 42rem;
    max-width: none;
  }

  .intro-action-label {
    font-size: 18rem;
  }
}
#header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 99;
  background-color: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
  transition:
    background-color 0.28s ease,
    border-color 0.28s ease,
    box-shadow 0.28s ease,
    backdrop-filter 0.28s ease,
    transform 0.28s ease;
  will-change: background-color, border-color, box-shadow;

  .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--header-height);
  }
  .logo {
    position: relative;
    display: inline-flex;
    align-items: center;
  }
  .logo-image {
    transition:
      opacity 0.24s ease,
      visibility 0.24s ease;
  }
  .logo-image--light {
    opacity: 1;
    visibility: visible;
    max-width: 184px;
    height: auto;
  }
  .logo-image--dark {
    position: absolute;
    inset: 0 auto auto 0;
    opacity: 0;
    visibility: hidden;
    max-width: 184px;
    height: auto;
  }

  img.icon-menu {
    width: auto;
    height: 20px;
    margin: 0;
  }

  .header-actions {
    display: inline-flex;
    align-items: center;
    gap: clamp(44rem, calc(24 / var(--container) * 100vw), 44rem);
  }
  .site-language {
    display: inline-flex;
    align-items: center;
    gap: clamp(20rem, calc(16 / var(--container) * 100vw), 20rem);
  }
  .site-language-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28rem;
    padding-bottom: 2rem;
    font-size: clamp(16rem, calc(16 / var(--container) * 100vw), 20rem);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: rgba(255, 255, 255, 0.62);
    text-transform: uppercase;
    transition:
      color 0.24s ease,
      opacity 0.24s ease;
  }
  .site-language-link::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: currentcolor;
    opacity: 0;
    transform: scaleX(0.4);
    transform-origin: center;
    transition:
      opacity 0.24s ease,
      transform 0.24s ease;
  }
  .site-language-link:hover,
  .site-language-link.is-active,
  .site-language-link[aria-current="page"] {
    color: #fff;
  }
  .site-language-link.is-active::after,
  .site-language-link[aria-current="page"]::after,
  .site-language-link:hover::after {
    opacity: 1;
    transform: scaleX(1);
  }
  .site-language-divider {
    display: block;
    width: 1px;
    height: 18rem;
    background: rgba(255, 255, 255, 0.45);
  }
  .main-nav {
    .nav-menu-level-1 {
      display: flex;
      gap: 4px;
    }
    .nav-item-level-1 {
      position: relative;
    }
    .nav-link-level-1 {
      display: flex;
      align-items: center;
      height: var(--header-height);
      padding-inline: clamp(10rem, calc(50.5 / 1920 * 100vw), 42.5rem);
      font: 20rem var(--font-sans);
      color: #fff;
      text-transform: uppercase;
      font-weight: 500;
      transition: color ease-in 0.3ms;
      padding: 20px;
    }
    .nav-link-level-1:hover {
      font-weight: 700;
    }
    .nav-menu-level-2 {
      visibility: hidden;
      position: absolute;
      top: 75%;
      left: 50%;
      transform: translateX(-50%);
      min-width: 120rem;
      width: max-content;
      background: #fff;
      border-radius: 8px;
      opacity: 0;
      border: 1px solid #ddd;
    }
    li:hover .nav-menu-level-2 {
      visibility: visible;
      top: 80%;
      opacity: 1;
    }
    .nav-link-level-2 {
      display: block;
      padding: 14rem;
      color: #333;
      font-size: 14rem;
      text-align: center;
    }
    .nav-link-level-2:hover {
      background: var(--primary);
      color: #fff;
      border-radius: 6px;
    }

    @media (prefers-reduced-motion: no-preference) {
      .nav-menu-level-2 {
        transition: 0.3s;
      }
    }
    @media (width < 1280px) {
      & {
        display: none;
      }
    }
  }
  .site-menu-toggle {
    display: inline-grid;
    place-items: center;
    width: var(--site-menu-button-size);
    height: var(--site-menu-button-size);
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    cursor: pointer;

    .icon-menu {
      display: inline-grid;
      justify-items: center;
      gap: 7px;
      width: 36px;
    }

    .icon-menu span {
      display: block;
      height: 2px;
      border-radius: 999px;
      background: currentColor;
    }

    .icon-menu span:nth-child(1) {
      width: 100%;
    }

    .icon-menu span:nth-child(2) {
      width: 70%;
    }

    .icon-menu span:nth-child(3) {
      width: 100%;
    }
  }
  .site-menu {
    inset: 0;
    margin: 0;
    z-index: 12;
    max-width: none;
    width: 100vw;
    height: 100dvh;
    padding: 0;
    overflow: hidden;
    background:
      linear-gradient(rgba(7, 16, 13, 0.42), rgba(7, 16, 13, 0.42)),
      radial-gradient(
        circle at 20% 20%,
        rgba(93, 127, 78, 0.12),
        transparent 40%
      ),
      rgba(7, 16, 13, 0.46);
    border: 0;
    color: #fff;
    backdrop-filter: blur(12px);
    &::backdrop {
      background: rgba(4, 10, 8, 0.18);
      backdrop-filter: blur(8px);
    }
    .site-menu-shell {
      min-height: 100%;
      display: grid;
      grid-template-rows: auto 1fr;
      padding: clamp(20px, calc(40 / var(--container) * 100vw), 40px)
        clamp(20px, calc(48 / var(--container) * 100vw), 48px)
        clamp(40px, calc(72 / var(--container) * 100vw), 72px);
    }
    .site-menu-header {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
    }
    .site-menu-brand {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      max-width: min(320px, 60vw);
    }
    .site-menu-brand-text {
      display: inline-block;
      font-size: clamp(20px, calc(28 / var(--container) * 100vw), 28px);
      font-weight: 800;
      line-height: 1;
      letter-spacing: -0.04em;
      color: #fff;
      text-transform: uppercase;
    }
    .site-menu-close {
      position: absolute;
      top: 0;
      right: 80px;
      display: inline-block;
      width: var(--site-menu-button-size);
      height: var(--site-menu-button-size);
      background: 0;
      border: 0;
      cursor: pointer;
      color: #fff;

      &::before,
      &::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        display: block;
        width: 24px;
        height: 2px;
        background: currentcolor;
        transform: translate(-50%, -50%) rotate(45deg);
      }
      &::after {
        transform: translate(-50%, -50%) rotate(-45deg);
      }
    }
    .site-menu-grid {
      width: 78%;
      margin: clamp(48px, calc(92 / var(--container) * 100vw), 92px) auto 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
      gap: 40px clamp(28px, calc(100 / var(--container) * 100vw), 60px);
      align-content: start;
      align-items: start;
    }
    .site-menu-column {
      display: block;
      width: 100%;
    }
    .site-menu-heading {
      display: inline-block;
      margin-bottom: 26px;
      font-size: clamp(24px, calc(34 / var(--container) * 100vw), 34px);
      font-weight: 700;
      line-height: 1.15;
      color: #fff;
      letter-spacing: -0.03em;
      text-transform: uppercase;
    }
    .site-menu-links {
      display: grid;
      gap: 14px;
    }
    .site-menu-link {
      display: inline-block;
      color: rgba(255, 255, 255, 0.78);
      font-size: clamp(16px, calc(19 / var(--container) * 100vw), 19px);
      font-weight: 500;
      line-height: 1.4;
    }
    .site-menu-column.is-current > .site-menu-heading,
    .site-menu-heading[aria-current="page"],
    .site-menu-link[aria-current="page"] {
      color: #fff;
    }
    .site-menu-heading:hover,
    .site-menu-link:hover {
      color: #fff;
    }
    @media (prefers-reduced-motion: no-preference) {
      & {
        transition: 0.3s allow-discrete;
        opacity: 0;
        transform: scale(1.02);
      }
      &::backdrop {
        opacity: 0;
        transition: 0.3s allow-discrete;
      }
      &:popover-open {
        opacity: 1;

        &::backdrop {
          opacity: 1;
        }
        @starting-style {
          opacity: 0;
          transform: scale(1.02);
          &::backdrop {
            opacity: 0;
          }
        }
      }
      .site-menu-heading,
      .site-menu-link {
        transition: color 0.25s ease;
      }
    }
    @media (width < 900px) {
      .site-menu-shell {
        padding: 20px 20px 40px;
      }
      .site-menu-header {
        justify-content: flex-start;
        padding-right: 56px;
      }
      .site-menu-brand {
        max-width: 190px;
      }
      .site-menu-grid {
        margin-top: 40px;
        grid-template-columns: 1fr;
        gap: 28px;
      }
      .site-menu-heading {
        margin-bottom: 12px;
      }
      .site-menu-links {
        gap: 10px;
      }
      .site-menu-close {
        right: 0;
      }
    }
  }
  @media (width < 1280px) {
    .logo {
      margin-left: 0;
    }
    .header-actions {
      gap: 18rem;
    }
    .site-language-link {
      font-size: 15rem;
    }
    .site-menu-toggle .icon-menu {
      width: 26px;
      gap: 5px;
    }
  }
  @media (width < 767px) {
    .header-actions {
      gap: 14rem;
    }
    .site-language {
      gap: 10rem;
    }
    .site-language-link {
      min-width: 24rem;
      font-size: 14rem;
      padding-bottom: 3rem;
    }
    .site-language-divider {
      height: 16rem;
    }
    .site-menu-toggle {
      width: 40px;
      height: 40px;
    }
    .site-menu-toggle .icon-menu {
      width: 24px;
      gap: 5px;
    }
    .logo-image--light,
    .logo-image--dark {
      width: 150px;
      max-width: 150px;
      height: auto;
    }
  }
}

html.is-site-menu-open,
body.is-site-menu-open {
  overflow: hidden;
  overscroll-behavior: none;
}

body.is-site-menu-open {
  position: fixed;
  inset: 0;
  width: 100%;
}

html.is-header-sticky #header,
body.is-header-sticky #header {
  background: rgba(244, 244, 244, 0.92);
  border-bottom: 1px solid rgba(17, 17, 17, 0.08);
  box-shadow: 0 10rem 30rem rgba(0, 0, 0, 0.06);
  backdrop-filter: blur(18px);
}

html.is-header-sticky #header .logo-image--light,
body.is-header-sticky #header .logo-image--light {
  opacity: 0;
  visibility: hidden;
}

html.is-header-sticky #header .logo-image--dark,
body.is-header-sticky #header .logo-image--dark {
  opacity: 1;
  visibility: visible;
}

html.is-header-sticky #header .nav-link-level-1,
body.is-header-sticky #header .nav-link-level-1 {
  color: #111;
}

html.is-header-sticky #header .site-language-link,
body.is-header-sticky #header .site-language-link {
  color: rgba(17, 17, 17, 0.32);
}

html.is-header-sticky #header .site-language-link:hover,
html.is-header-sticky #header .site-language-link.is-active,
html.is-header-sticky #header .site-language-link[aria-current="page"],
body.is-header-sticky #header .site-language-link:hover,
body.is-header-sticky #header .site-language-link.is-active,
body.is-header-sticky #header .site-language-link[aria-current="page"] {
  color: var(--primary);
}

html.is-header-sticky #header .site-language-divider,
body.is-header-sticky #header .site-language-divider {
  background: rgba(17, 17, 17, 0.12);
}

html.is-header-sticky #header .site-menu-toggle,
body.is-header-sticky #header .site-menu-toggle {
  color: var(--primary);
}

.site-footer {
  padding: clamp(44rem, calc(48 / var(--container-wide) * 100vw), 44rem) 0
    clamp(44rem, calc(52 / var(--container-wide) * 100vw), 44rem);
  background: #000;
  color: #fff;

  .container {
    position: relative;
  }

  .site-footer-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24rem;
    padding-bottom: clamp(
      19rem,
      calc(22 / var(--container-wide) * 100vw),
      19rem
    );
    border-bottom: 1px solid rgba(255, 255, 255, 0.38);
  }

  .site-footer-logo {
    display: inline-block;
  }

  .site-footer-logo-image {
    display: block;
    width: auto;
    height: clamp(44rem, calc(56 / var(--container-wide) * 100vw), 44rem);
  }

  .site-footer-top {
    display: inline-grid;
    place-items: center;
    flex-shrink: 0;
    width: clamp(52rem, calc(58 / var(--container-wide) * 100vw), 58rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    text-decoration: none;
    transition:
      transform 0.25s ease,
      background-color 0.25s ease,
      opacity 0.25s ease;

    &:hover {
      transform: translateY(-2rem);
      opacity: 0.92;
    }

    &:focus-visible {
      outline: 2px solid #fff;
      outline-offset: 4px;
    }

    svg {
      display: block;
    }
  }

  .site-footer-body {
    padding-top: clamp(30rem, calc(34 / var(--container-wide) * 100vw), 30rem);
  }

  .site-footer-address {
    font-style: normal;
  }

  .site-footer-info {
    display: flex;
    flex-wrap: wrap;
    gap: 16rem clamp(37rem, calc(42 / var(--container-wide) * 100vw), 37rem);
  }

  .site-footer-info-item {
    display: inline-flex;
    align-items: center;
    gap: 14rem;
    font-size: clamp(16rem, calc(17 / var(--container-wide) * 100vw), 17rem);
    line-height: 1.5;
    color: rgba(255, 255, 255, 0.9);

    dt,
    dd {
      margin: 0;
    }

    dt {
      font-weight: 700;
      color: #fff;
      letter-spacing: -0.02em;
    }

    dd {
      font-weight: 400;
      color: rgba(255, 255, 255, 0.88);
      letter-spacing: -0.02em;
    }
  }

  .site-footer-copy {
    margin-top: clamp(37rem, calc(42 / var(--container-wide) * 100vw), 37rem);
    font-size: clamp(16rem, calc(17 / var(--container-wide) * 100vw), 17rem);
    line-height: 1.5;
    letter-spacing: -0.02em;
    color: rgba(255, 255, 255, 0.92);
  }

  @media (prefers-reduced-motion: reduce) {
    .site-footer-top {
      transition: none;
    }
  }

  @media (width < 767px) {
    .site-footer-head {
      align-items: center;
      padding-bottom: 18rem;
    }

    .site-footer-logo-image {
      height: 42rem;
    }

    .site-footer-top {
      width: 50rem;
    }

    .site-footer-body {
      padding-top: 22rem;
    }

    .site-footer-info {
      flex-direction: column;
      gap: 12rem;
    }

    .site-footer-info-item {
      gap: 10rem;
      font-size: 15rem;
      flex-wrap: wrap;
    }

    .site-footer-copy {
      margin-top: 28rem;
      font-size: 15rem;
    }
  }
}

/* Product */
/* Products */
.home-ko-products {
  padding: 124rem 0 144rem;
  background: #fff;
  overflow: hidden;
}

.home-ko-products-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32rem;
  margin-bottom: 95rem;
}

.home-ko-products-copy {
  max-width: 720rem;
}

.home-ko-products-title {
  margin-bottom: 6px;
  font-size: clamp(48rem, calc(64 / var(--container-wide) * 100vw), 48rem);
  font-weight: 700;
  color: var(--primary);
}

.home-ko-products-description {
  font-size: clamp(20rem, calc(22 / var(--container-wide) * 100vw), 20rem);
  font-weight: 500;
  line-height: 1.5;
  color: #4b4b4b;
}

.home-ko-products-head > .intro-action {
  min-width: 225rem;
  width: auto;
  max-width: none;
  --cta-padding-left: 17rem;
  --cta-bg: transparent;
  --cta-border: var(--primary);
  --cta-color: var(--primary);
  --cta-icon-bg: var(--primary);
  --cta-icon-color: #fff;
  --cta-hover-bg: var(--primary);
  --cta-hover-border: var(--primary);
  --cta-hover-color: #fff;
  --cta-hover-icon-bg: #fff;
  --cta-hover-icon-color: var(--primary);
  --cta-outline-color: var(--primary);
  --cta-label-size: 18rem;
  --cta-icon-size: 40rem;
}

.home-ko-products-slider-wrap {
  position: relative;
}

.home-ko-products-swiper {
  overflow: hidden;
}

.home-ko-products-swiper .swiper-wrapper {
  align-items: stretch;
}

.home-ko-products-swiper .swiper-slide {
  box-sizing: border-box;
  height: auto;
}

.home-ko-products-slide {
  height: auto;
}

.home-ko-products-card {
  display: grid;
  grid-template-columns: minmax(0, 310rem) minmax(0, 1fr);
  align-items: center;
  gap: 40rem;
  min-height: 374rem;
  padding: 24rem;
  border: 1px solid #ddd;
  border-radius: 12rem;
  background: #fff;
  transition:
    border-color 0.28s ease,
    background-color 0.28s ease,
    transform 0.28s ease,
    box-shadow 0.28s ease;
}

.home-ko-products-media {
  display: grid;
  place-items: center;
  width: 100%;
  height: auto;
  border-radius: 16rem;
  transition:
    background-color 0.28s ease,
    transform 0.28s ease;
}

.home-ko-products-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  transition: transform 0.32s ease;
  transform-origin: center center;
}

.home-ko-products-card-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 46%;
}

.home-ko-products-card-title {
  margin-bottom: 25px;
  font-size: clamp(24rem, calc(34 / var(--container-wide) * 100vw), 24rem);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.02em;
  color: #111;
}

.home-ko-products-card-spec {
  font-size: clamp(20rem, calc(26 / var(--container-wide) * 100vw), 20rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--primary);
}

.home-ko-products-card-text {
  margin-top: 5rem;
  font-size: 16rem;
  font-weight: 400;
  color: #3b3b3b;
}

.home-ko-products-card-body .intro-action {
  width: auto;
  max-width: none;
  min-width: 158rem;
  margin-top: auto;
  --cta-height: 38rem;
  --cta-radius: 999px;
  --cta-padding-left: 14rem;
  --cta-padding-right: 4rem;
  --cta-bg: transparent;
  --cta-border: var(--primary);
  --cta-color: var(--primary);
  --cta-icon-bg: var(--primary);
  --cta-icon-color: #fff;
  --cta-hover-bg: var(--primary);
  --cta-hover-border: var(--primary);
  --cta-hover-color: #fff;
  --cta-hover-icon-bg: #fff;
  --cta-hover-icon-color: var(--primary);
  --cta-outline-color: var(--primary);
  --cta-shadow: none;
  --cta-icon-shadow: none;
  --cta-label-size: 14rem;
  --cta-icon-size: 30rem;
}

.home-ko-products-card .intro-action,
.home-ko-products-card .intro-action-icon,
.home-ko-products-card .intro-action-icon svg {
  transition:
    background-color 0.28s ease,
    border-color 0.28s ease,
    color 0.28s ease,
    transform 0.28s ease,
    box-shadow 0.28s ease;
}

.home-ko-products-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  display: inline-grid;
  place-items: center;
  width: 80rem;
  height: 80rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(233, 126, 21, 0.1);
  color: var(--primary);
  cursor: pointer;
  transform: translateY(-50%);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    background-color 0.25s ease,
    color 0.25s ease;
}

.home-ko-products-nav:hover {
  background: var(--primary);
  color: #fff;
}

.home-ko-products-nav:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 4px;
}

.home-ko-products-nav--prev {
  left: 0;
}

.home-ko-products-nav--next {
  right: 0;
}

.home-ko-products-nav.swiper-button-disabled {
  pointer-events: none;
  color: #ddd;
  background: rgba(221, 221, 221, 0.12);
}

.home-ko-products-nav svg {
  display: block;
}

@media (hover: hover) and (pointer: fine) {
  .home-ko-products-card:hover {
    border-color: var(--primary);
  }

  .home-ko-products-card:hover .intro-action {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
  }

  .home-ko-products-card:hover .intro-action .intro-action-icon {
    background: #fff;
    color: var(--primary);
    transform: scale(1.02);
  }

  .home-ko-products-card:hover .intro-action .intro-action-icon svg {
    transform: rotate(45deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-ko-products-nav,
  .home-ko-products-card,
  .home-ko-products-media,
  .home-ko-products-image,
  .home-ko-products-card .intro-action,
  .home-ko-products-card .intro-action-icon,
  .home-ko-products-card .intro-action-icon svg {
    transition: none;
  }

  .home-ko-products-card:hover {
    transform: none;
  }

  .home-ko-products-card:hover .home-ko-products-image {
    transform: none;
  }
}

@media (width < 1280px) {
  .home-ko-products {
    padding: 40rem 0 120rem;
  }

  .home-ko-products-head {
    margin-bottom: 40rem;
  }

  .home-ko-products-card {
    grid-template-columns: 1fr;
    gap: 22rem;
  }

  .home-ko-products-card-spec {
    margin-top: 20rem;
  }

  .home-ko-products-card-body .intro-action {
    margin-top: 24rem;
  }
}

@media (width < 640px) {
  .home-ko-products {
    padding: 32rem 0 88rem;
  }

  .home-ko-products-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 20rem;
    margin-bottom: 28rem;
  }

  .home-ko-products-title {
    font-size: 36rem;
  }

  .home-ko-products-description {
    margin-top: 12rem;
    font-size: 16rem;
  }

  .home-ko-products-head > .intro-action {
    min-width: 170rem;
  }

  .home-ko-products-slider-wrap {
    padding-bottom: 72rem;
  }

  .home-ko-products-card {
    min-height: auto;
    padding: 18rem;
    border-radius: 16rem;
  }

  .home-ko-products-card-title {
    font-size: 24rem;
  }

  .home-ko-products-card-spec {
    margin-top: 18rem;
    font-size: 20rem;
  }

  .home-ko-products-card-text {
    font-size: 15rem;
  }

  .home-ko-products-card-body .intro-action {
    margin-top: 20rem;
    min-width: 160rem;
  }

  .home-ko-products-nav {
    top: auto;
    bottom: 0;
    width: 48rem;
    height: 48rem;
    transform: none;
  }

  .home-ko-products-nav--prev {
    left: calc(50% - 58rem);
  }

  .home-ko-products-nav--next {
    right: calc(50% - 58rem);
  }
}
