/* styles.css */
/* main [S] */
main {
    width: 100%;
    margin: 0 auto;
}
/* first-container [S] */
.first-container {
    width: 100%;
    height: 100vh;
    /* 기존 배경 이미지는 폴백용으로 유지 */
    background: url("../../images/icons/first-container-cover.jpg") no-repeat center center;
    background-size: cover;
    display: grid;
    place-items: center;
    position: relative;
    overflow: hidden;
}

/* Video Background Styles - Enhanced with GPU Acceleration */
.video-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    object-position: center;
    background-color: var(--dark-bg);
    z-index: -1;

    /* 렌더링 최적화 */
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;

    /* 더 나은 스케일링 품질 */
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;

    /* 부드러운 전환 효과 */
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

/* 비디오 로딩 중 상태 */
.video-background.loading {
    opacity: 0;
}

/* 비디오 로드되면 기존 배경 이미지 숨김 */
.first-container.video-loaded {
    background: none;
}

/* 고해상도 디스플레이 최적화 */
@media (min-resolution: 2dppx) {
    .video-background {
        /* Retina 디스플레이를 위한 샤프닝 */
        image-rendering: -webkit-optimize-contrast;
        filter: contrast(1.02) saturate(1.05);
    }
}

/* 대형 스크린 최적화 (4K 이상) */
@media (min-width: 3840px) {
    .video-background {
        /* 4K 스크린에서 더 선명한 렌더링 */
        transform: translate3d(-50%, -50%, 0) scale(1.01);
    }
}

/* 모바일 최적화 */
@media (max-width: 768px) {
    .video-background {
        /* 모바일에서도 전체 화면 커버 유지 */
    width: 100%;
    height: 100%;

        /* 모바일 성능 최적화 - 필터 제거 */
        filter: none;
        image-rendering: auto;
    }
}

/* 저사양 모드 또는 reduced motion 선호 사용자 */
@media (prefers-reduced-motion: reduce) {
    .video-background {
        display: none;
    }

    .first-container {
        /* 기존 배경 이미지 사용 */
        background: url("../../images/icons/first-container-cover.svg") no-repeat center center;
        background-size: cover;
    }
}
.first-wrapper {
    display: flex;
    flex-direction: column;
    gap: clamp(2rem, 6vw, 4rem);
}
.first-wrapper .section-logo {
 text-align: center;
}

/* single-logo 회전 애니메이션 */
.section-logo img {
    display: inline-block;
    animation: rotateHorizontal 3s linear infinite;
    width: clamp(120px, 18vw, 220px);
    height: auto;
}

@keyframes rotateHorizontal {
    from {
        transform: rotateY(0deg);
    }
    to {
        transform: rotateY(360deg);
    }
}
.first-wrapper .section-button {
    text-align: center;
   }
.buttons-group,
.buttons-group * {
  box-sizing: border-box;
}
.buttons-group {
  display: flex;
  flex-direction: row;
  gap: var(--space-4);
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
.button {
  background: var(--primary-60);
  border-radius: 5px;
  border-style: solid;
  border-color: var(--primary-color);
  border-width: 2px;
  padding: var(--space-4) 32px var(--space-4) 32px;
  display: flex;
  flex-direction: row;
  gap: var(--space-2);
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  cursor: pointer;
  transition: var(--transition-base);
}
.text-container {
  display: flex;
  flex-direction: row;
  gap: var(--space-gap);
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
.button-text {
  color: var(--default-white, var(--white));
  text-align: left;
  font-family: var(--mbutton1-font-family, "Roboto-Medium", sans-serif);
  font-size: var(--mbutton1-font-size, var(--space-5));
  line-height: var(--mbutton1-line-height, 100%);
  letter-spacing: var(--mbutton1-letter-spacing, 0.5px);
  font-weight: var(--mbutton1-font-weight, 500);
  position: relative;
}
.button-text > a {
    text-decoration: none;
    color: inherit;
}


.section-text,
.section-text * {
  box-sizing: border-box;
}
.section-text {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 5vw, 3rem);
  align-items: center;
  justify-content: flex-start;
  align-self: stretch;
  flex-shrink: 0;
  position: relative;
  max-width: min(90vw, 1280px);
  margin: 0 auto;
  /* Responsive typography scale for hero texts */
  word-break: auto-phrase;
  --caption-font-size: clamp(0.85rem, 2vw, 1.4rem);
  --caption-line-height: clamp(1.15rem, 2.6vw, 2rem);
  --headline-font-size: clamp(1.1rem, 3.6vw, 2.6rem);
  --headline-line-height: clamp(1.5rem, 4.4vw, 3.2rem);
  --subheadline-font-size: clamp(0.75rem, 2vw, 1.2rem);
  --subheadline-line-height: clamp(1.05rem, 2.8vw, 1.8rem);
}
.section-text .top {
  width: max-content;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  align-items: center;
  justify-content: flex-start;
  align-self: stretch;
  flex-shrink: 0;
  position: relative;
}
.section-text .caption {
  color: var(--white);
  text-align: center;
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);
  font-size: clamp(1rem, 2.4vw, 32px);
  line-height: clamp(1.4rem, 3vw, 130%);
  letter-spacing: 0.04em;
  position: relative;
  align-self: stretch;
}
.section-text .secondary-headline {
  color: var(--white);
  text-align: center;
  font-family: var(--font-family-heading);
  font-weight: var(--font-weight-bold);
  font-size: clamp(1.1rem, 3.6vw, 44px);
  line-height: clamp(1.5rem, 4.4vw, 0);
  letter-spacing: 0.02em;
  word-break: keep-all;
  white-space: normal;
  position: relative;
  align-self: stretch;
}
.section-text .sub-headline {
  color: var(--white);
  text-align: center;
  font-family: var(--font-family-base);
  font-weight: var(--font-weight-medium);
  font-size: clamp(0.75rem, 2vw, 22px);
  line-height: var(--subheadline-line-height, clamp(1.05rem, 2.8vw, 28px));
  word-break: keep-all;
  white-space: normal;
  position: relative;
  align-self: stretch;
}

.section-text .sub-headline-line {
  display: inline-block;
  /* width: 100%; */
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
  font-size: inherit;
  line-height: inherit;
  word-break: inherit;
  white-space: inherit;
  text-align: inherit;
}
/* first-container [E] */

/* second section [S] */
.second-container {
    background: var(--neutral-30);
    position: relative;
}

.slider-container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
}

/* 슬라이드 진행 표시기 */
.slide-progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: var(--space-1);
    background: rgba(250, 140, 22, 0.2);
    z-index: 10;
}

.progress-bar {
    height: 100%;
    background: var(--primary-60);
    width: 25%;
    transition: transform 0.5s ease;
}

.slider {
    width: 100%;
    overflow: hidden;
    position: relative;
    touch-action: pan-y pinch-zoom;
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
}

.slide {
    display: flex;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

.slide-content-wrapper {
    min-width: 100%;
    flex-shrink: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease-in-out, visibility 0.5s ease-in-out;
    padding: 80px;
    display: flex;
    flex-direction: column;
    gap: 48px;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
}

.slide-content-wrapper.active {
    opacity: 1;
    visibility: visible;
}

/* 스와이프 가이드 (모바일에서만 표시) */
.swipe-guide {
    display: none;
    text-align: center;
    padding: var(--space-gap);
    font-size: 14px;
    color: var(--text-light);
    background: rgba(255, 255, 255, 0.9);
    border-radius: 5px;
    margin-top: var(--space-gap);
}

.carousel-misc-slick-dots {
    display: flex;
    flex-direction: row;
    gap: var(--space-2-5);
    align-items: center;
    justify-content: center;
    height: 9px;
    position: relative;
    padding-bottom: 28px;
    z-index: 10;
    width: 270px;
}

.carousel-misc-slick-dots .slick {
    cursor: pointer;
    transition: var(--transition-base);
    background: var(--neutral-50);
    border-radius: var(--space-5);
    padding: 1.5px var(--space-2);
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    width: 50px;
    position: relative;
    border: none;
    outline: none;
}

.center-placer {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.carousel-misc-slick-dots .slick:hover {
    background-color: rgba(250, 140, 22, 0.5);
}

.carousel-misc-slick-dots .slick:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

.carousel-misc-slick-dots .slick.active {
    background: var(--primary-60);
    padding: 1.5px var(--space-3);
    flex: 1;
}

.carousel-misc-slick-dots .ignore {
    background: var(--color-neutral-200);
    border-color: var(--text-strong);
    border-width: 5px;
    width: 0px;
    height: 0px;
    position: relative;
}

.carousel-misc-slick-dots .ignore2 {
    width: 0px;
    height: 0px;
    position: relative;
}

.frame-157 {
    display: flex;
    flex-direction: row;
    gap: 15px;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 610px;
}

.frame-159 {
    flex: 1;
    max-width: 545px;
    height: 65px;
    position: relative;
}

.rectangle-20 {
    background: var(--neutral-10);
    border-radius: var(--space-gap);
    border-style: solid;
    border-color: var(--color-success-500);
    border-width: 3px;
    width: 100%;
    height: 65px;
    position: absolute;
    left: 0px;
    top: 0px;
    box-shadow: var(
        --shadow-default-box-shadow,
        0px 0px var(--space-5) 0px rgba(0, 0, 0, 0.2)
    );
}

.second-container .div {
    color: var(--neutral-100);
    text-align: center;
    font-family: var(--mh3-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh3-font-size, 32px);
    line-height: var(--mh3-line-height, 130%);
    font-weight: var(--mh3-font-weight, 700);
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 65px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.frame-158 {
    flex-shrink: 0;
    width: 65px;
    height: 65px;
    position: relative;
}

.rectangle-21 {
    background: var(--color-success-400);
    border-radius: var(--space-gap);
    border-style: solid;
    border-color: var(--neutral-60);
    border-width: 3px;
    width: 65px;
    height: 65px;
    position: absolute;
    left: 0px;
    top: 0px;
    box-shadow: var(
        --shadow-default-box-shadow,
        0px 0px var(--space-5) 0px rgba(0, 0, 0, 0.2)
    );
}

.icon-tabler-icons-search {
    width: 48px;
    height: 48px;
    position: absolute;
    left: var(--space-2);
    top: 9px;
    overflow: visible;
}

.frame-155 {
    display: flex;
    flex-direction: column;
    gap: var(--space-gap);
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.paragraph {
    color: var(--coolgray-90);
    text-align: center;
    font-family: var(--mh3-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh3-font-size, 32px);
    line-height: var(--mh3-line-height, 130%);
    font-weight: var(--mh3-font-weight, 700);
    position: relative;
    flex: 1;
}

.top {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.frame-155 ~ .top .secondary-headline {
    color: var(--primary-color);
    text-align: center;
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    font-size: clamp(1.1rem, 3.6vw, 2.6rem);
    line-height: var(--headline-line-height, clamp(1.5rem, 4.4vw, 3.2rem));
    position: relative;
    align-self: stretch;
}

.frame-156 {
    display: flex;
    flex-direction: row;
    gap: 55px;
    align-items: center;
    justify-content: center;
    width: 100%;
    flex-wrap: wrap;
}

.frame-177 {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    align-items: flex-end;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 250px;
    position: relative;
}

.frame-165 {
    background: var(--primary-60);
    border-radius: var(--space-30);
    padding: var(--space-gap) var(--space-8) var(--space-gap) var(--space-8);
    display: flex;
    flex-direction: row;
    gap: var(--space-gap);
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    box-shadow: var(
        --shadow-default-box-shadow,
        0px 0px var(--space-5) 0px rgba(0, 0, 0, 0.2)
    );
}

.paragraph2 {
    color: var(--neutral-20);
    text-align: left;
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh4-font-size, var(--space-6));
    line-height: var(--mh4-line-height, 130%);
    font-weight: var(--mh4-font-weight, 700);
    position: relative;
}

.group-1680-2 {
    width: 100%;
    max-width: 250px;
    height: auto;
    object-fit: contain;
}

.paragraph3 {
    text-align: center;
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh4-font-size, var(--space-6));
    line-height: var(--mh4-line-height, 130%);
    font-weight: var(--mh4-font-weight, 700);
    position: relative;
    align-self: stretch;
    height: 42px;
}

.frame-172 {
    flex-shrink: 0;
    width: 125px;
    height: 125px;
    position: relative;
    box-shadow: var(
        --shadow-default-box-shadow,
        0px 0px var(--space-5) 0px rgba(0, 0, 0, 0.2)
    );
    border-radius: 50%;
}

.ellipse-5 {
    background: var(--white);
    border-radius: 50%;
    border-style: solid;
    border-color: var(--primary-60);
    border-width: var(--space-3);
    width: 125px;
    height: 125px;
    position: absolute;
    left: 0px;
    top: 0.5px;
}

.frame-172 .caption {
    color: var(--neutral-100);
    text-align: center;
    font-family: var(--mh2-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh2-font-size, 42px);
    line-height: var(--mh2-line-height, 130%);
    font-weight: var(--mh2-font-weight, 700);
    position: absolute;
    left: 36px;
    top: 35.5px;
}

.frame-1171275939 {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    align-items: flex-end;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
}

.frame-1652 {
    background: var(--primary-60);
    border-radius: var(--space-30);
    padding: var(--space-gap) var(--space-8) var(--space-gap) var(--space-8);
    display: flex;
    flex-direction: row;
    gap: var(--space-gap);
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    box-shadow: var(
        --shadow-default-box-shadow,
        0px 0px var(--space-5) 0px rgba(0, 0, 0, 0.2)
    );
}

.frame-1171275938 {
    display: flex;
    flex-direction: row;
    gap: var(--space-6);
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.frame-180 {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    width: 250px;
    position: relative;
}

.paragraph4 {
    color: var(--coolgray-90);
    text-align: center;
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh4-font-size, var(--space-6));
    line-height: var(--mh4-line-height, 130%);
    font-weight: var(--mh4-font-weight, 700);
    position: relative;
    align-self: stretch;
    height: 42px;
}

.frame-178 {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    align-items: flex-start;
    justify-content: center;
    flex-shrink: 0;
    width: 250px;
    position: relative;
}

.frame-179 {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
    align-items: flex-end;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 250px;
    position: relative;
}


/* Hero Section with Carousel */
.hero-section {
    height: 880px;
    position: relative;
    overflow: hidden;
    background: var(--bg-light);
}
.carousel-container {
    width: 100%;
    height: 100%;
    position: relative;
}
.carousel-slides {
    display: flex;
    transition: transform 0.5s ease;
    height: 100%;
}
.carousel-slide {
    min-width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Gradient backgrounds for slides */
.slide-1 {
    /* background: linear-gradient(135deg, #BAE637 0%, #A8D626 100%); */
}

.slide-2 {
    /* background: linear-gradient(135deg, #FFC53D 0%, #FF9500 100%); */
}

.slide-3 {
    /* background: linear-gradient(135deg, #36CFC9 0%, #1890FF 100%); */
}

.slide-4 {
    /* background: linear-gradient(135deg, #F759AB 0%, #F5222D 100%); */
}
.slide-content {
    text-align: center;
    color: white;
    padding: var(--space-5) var(--space-5) 80px var(--space-5); /* 하단 패딩 80px 추가 */
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeInUp 1s ease;
    box-sizing: border-box;
}

.slide-content img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(var(--space-30));
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.slide-content h1 {
    font-size: 48px;
    margin-bottom: var(--space-5);
    font-weight: 700;
    text-shadow: 2px 2px var(--space-1) rgba(0, 0, 0, 0.2);
}
.slide-content p {
    font-size: var(--space-5);
    margin-bottom: var(--space-8);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
}

/* Carousel Dots */
.carousel-dots {
    position: absolute;
    bottom: var(--space-30); /* bottom 값을 var(--space-8)에서 var(--space-30)로 조정 */
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: var(--space-3);
    z-index: 10; /* 도트가 콘텐츠 위에 표시되도록 */
}
.dot {
    width: var(--space-8);
    height: var(--space-2-5);
    background: var(--color-neutral-200);
    border-radius: var(--space-5);
    cursor: pointer;
    transition: var(--transition-base);
}
.dot.active {
    background: var(--primary-color);
    width: 60px;
}

/* second section [E] */

/* third container [S] */
.third-container {
    background: var(--default-white, var(--white));
    padding: 80px;
    display: flex;
    flex-direction: column;
    gap: 48px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.third-container .section-text {
    display: flex;
    flex-direction: column;
    gap: 48px;
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.third-container .top {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.third-container .secondary-headline {
    color: var(--primary-color);
    text-align: center;
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    --headline-font-size: clamp(1.4rem, 3.6vw, 2.4rem);
    --headline-line-height: clamp(2rem, 4.2vw, 3.1rem);
    font-size: var(--headline-font-size);
    line-height: var(--headline-line-height);
    position: relative;
    align-self: stretch;
}

.third-container .frame-155 {
    background: var(--white);
    display: flex;
    flex-direction: row;
    gap: var(--space-gap);
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.third-container .paragraph {
    text-align: center;
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.8rem, 2.4vw, var(--space-6));
    line-height: clamp(1.6rem, 3vw, 130%);
    font-weight: var(--mh4-font-weight, 700);
    position: relative;
    flex: 1;
}

.third-container > span {
    color: var(--coolgray-90);
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.5rem, 3.4vw, var(--space-6));
    line-height: clamp(1.6rem, 3vw, 130%);
    font-weight: var(--mh4-font-weight, 700);
}
.primary-color {
    color: var(--primary-color);
}

.third-container .paragraph-span3 {
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.8rem, 2.4vw, var(--space-6));
    line-height: clamp(1.6rem, 3vw, 130%);
    font-weight: var(--mh4-font-weight, 700);
}

.third-container .frame-144 {
    display: flex;
    flex-direction: row;
    gap: 70px;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

@media screen and (max-width: 768px) {
    .third-container .frame-144 {
        gap: 24px;
    }
}

@media screen and (max-width: 480px) {
    .third-container .frame-144 {
        gap: 1rem;
    }
}

.third-container .frame-144 img {
    width: clamp(30px, 20vw, 180px);
    height: auto;
    flex: 0 1 clamp(30px, 20vw, 180px);
    transition: transform var(--transition-base);
    object-fit: contain;
    animation: icon-bounce-in 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.45s both,
               icon-bounce-loop 2s ease-in-out 1.2s infinite;
}

.third-container .frame-144 img:nth-child(2) {
    animation-delay: 0.55s;
}

.third-container .frame-144 img:nth-child(3) {
    animation-delay: 0.65s;
}

.third-container .youtube-icon {
    flex-shrink: 0;
    position: relative;
}

.third-container .facebook-icon {
    flex-shrink: 0;
    position: relative;
}

.third-container .instagram-icon {
    flex-shrink: 0;
    position: relative;
}

.third-container .youtube-icon:hover,
.third-container .facebook-icon:hover,
.third-container .instagram-icon:hover {
    transform: scale(1.05);
}

@keyframes icon-bounce-in {
    0% {
        opacity: 0;
        transform: translateY(30px) scale(0.9);
    }
    60% {
        opacity: 1;
        transform: translateY(-6px) scale(1.06);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes icon-bounce-loop {
    0%, 100% {
        transform: translateY(0) scale(1);
    }
    25% {
        transform: translateY(-6px) scale(1.05);
    }
    50% {
        transform: translateY(0) scale(1);
    }
    75% {
        transform: translateY(-3px) scale(1.02);
    }
}

.third-container .button {
    background: var(--primary-color);
    border-radius: 5px;
    border-style: solid;
    border-color: var(--primary-60);
    border-width: 2px;
    padding: var(--space-4) 32px var(--space-4) 32px;
    display: flex;
    flex-direction: row;
    gap: var(--space-2);
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    transition: var(--transition-base);
}

.third-container .text-container {
    display: flex;
    flex-direction: row;
    gap: var(--space-gap);
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
}

.third-container .button-text {
    color: var(--default-white, var(--white));
    text-align: left;
    font-family: var(--mbutton1-font-family, "Roboto-Medium", sans-serif);
    font-size: var(--mbutton1-font-size, var(--space-5));
    line-height: var(--mbutton1-line-height, 100%);
    letter-spacing: var(--mbutton1-letter-spacing, 0.5px);
    font-weight: var(--mbutton1-font-weight, 500);
    position: relative;
}
/* third container [E]*/

/* fourth container [S] */
.fourth-container {
    background: var(--default-white, var(--white));
    padding: 80px;
    display: flex;
    flex-direction: column;
    gap: 64px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fourth-container .section-text {
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 6vw, 48px);
    align-items: flex-start;
    justify-content: flex-start;
    flex-shrink: 0;
    position: relative;
}

.fourth-container .top {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fourth-container .secondary-headline {
    color: var(--primary-60);
    text-align: center;
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    font-size: clamp(1.4rem, 3.6vw, 2.6rem);
    line-height: clamp(2rem, 4.2vw, 3.2rem);
    position: relative;
    align-self: stretch;
}

.fourth-container .paragraph {
    text-align: center;
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.8rem, 2.4vw, var(--space-6));
    line-height: clamp(1rem, 3.4vw, 2rem);
    font-weight: var(--mh4-font-weight, 700);
    position: relative;
    align-self: stretch;
}

.fourth-container .paragraph-span {
    color: var(--coolgray-90);
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.5rem, 3.4vw, var(--space-6));
    line-height: clamp(1.4rem, 3.4vw, 2rem);
    font-weight: var(--mh4-font-weight, 700);
}

.fourth-container .paragraph-span2 {
    color: var(--primary-60);
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.8rem, 3.5vw, var(--space-6));
    line-height: clamp(1.4rem, 3.4vw, 2rem);
    font-weight: var(--mh4-font-weight, 700);
}

.fourth-container .paragraph-span3 {
    color: var(--coolgray-90);
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.8rem, 2.4vw, var(--space-6));
    line-height: clamp(1.4rem, 3.4vw, 2rem);
    font-weight: var(--mh4-font-weight, 700);
}

.fourth-container .frame-1 {
    display: flex;
    flex-direction: row;
    gap: var(--frame-gap);
    align-items: center;
    justify-content: space-between;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
    max-width: 100%;
}

/* 개선된 네비게이션 버튼 */
.nav-button {
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-gap);
    border-radius: 50%;
    transition: var(--transition-base);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 68px;
    height: 68px;
    flex-shrink: 0;
}

.nav-button:hover {
    background: rgba(250, 140, 22, 0.1);
    transform: scale(1.1);
}

.nav-button:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    transform: none;
}

.nav-button:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* 슬라이더 컴테이너 - CSS calc()로 정확한 너비 계산 */
.fourth-container .slider-container {
    /* CSS 변수로 자동 너비 계산 */
    width: calc(var(--card-width) * var(--visible-cards) + var(--card-gap) * (var(--visible-cards) - 1));
    min-width: calc(var(--card-width) * 1 + var(--card-gap) * 0); /* 최소 1개 카드 */
    max-width: calc(var(--card-width) * var(--visible-cards) + var(--card-gap) * (var(--visible-cards) - 1));
    overflow: hidden;
    position: relative;
    /* 보이는 카드 수만 표시하도록 너비 제한 */
    display: block;
}

.fourth-container .content-box-wrapper {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: var(--card-gap);
    transition: transform 0.3s ease-in-out;
    overflow: visible; /* 내부 콘텐츠 보이게 */
    /* 전체 카드를 포함하는 너비 */
    width: max-content;
    align-items: stretch;
}

.fourth-container .content-box {
    background: var(--default-white, var(--white));
    border-radius: var(--space-5);
    border-style: solid;
    border-color: var(--coolgray-20);
    border-width: 1px;
    display: flex;
    flex-direction: column;
    gap: 0px;
    align-items: center;
    justify-content: flex-start;
    /* CSS 변수로 카드 크기 제어 */
    width: var(--card-width);
    min-width: var(--card-width);
    max-width: var(--card-width);
    flex-shrink: 0;
    position: relative;
    box-shadow: 0px 0px var(--space-5) 0px rgba(0, 0, 0, 0.1);
    transition: var(--transition-base);
}

.fourth-container .placeholder-picture {
    background: linear-gradient(to left, var(--coolgray-20), var(--coolgray-20));
    border-radius: var(--space-5) var(--space-5) 0px 0px;
    border-style: solid;
    border-color: var(--neutral-50);
    border-width: 1px;
    display: flex;
    flex-direction: row;
    gap: var(--space-gap);
    align-items: center;
    justify-content: center;
    align-self: stretch;
    flex-shrink: 0;
    height: 220px;
    position: relative;
    width: 100%;
    overflow: hidden; /* 이미지가 컸테이너를 벗어나지 않도록 */
}

.fourth-container .placeholder-picture img {
    width: 100%;
    height: 100%;
    object-fit: fill; /* 비율을 유지하면서 컸테이너에 맞춤 */
    object-position: center;
}

.fourth-container .content {
    padding: var(--space-6) var(--space-5) var(--space-6) var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fourth-container .title-category {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fourth-container .category {
    color: var(--coolgray-90);
    text-align: left;
    font-family: var(--mbody1-font-family, "Roboto-Regular", sans-serif);
    font-size: var(--mbody1-font-size, 18px);
    line-height: var(--mbody1-line-height, 140%);
    font-weight: var(--mbody1-font-weight, 400);
    position: relative;
    align-self: stretch;
}

.fourth-container .title {
    color: var(--primary-60);
    text-align: left;
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: var(--mh4-font-size, var(--space-6));
    line-height: var(--mh4-line-height, 130%);
    font-weight: var(--mh4-font-weight, 700);
    position: relative;
    align-self: stretch;
}

.fourth-container .paragraph2 {
    color: var(--coolgray-90);
    text-align: left;
    font-family: var(--mbody2-font-family, "Roboto-Regular", sans-serif);
    font-size: var(--mbody2-font-size, var(--space-4));
    line-height: var(--mbody2-line-height, 140%);
    font-weight: var(--mbody2-font-weight, 400);
    position: relative;
    align-self: stretch;
}

/* 슬라이더 인디케이터 */
.slider-indicators {
    display: flex;
    gap: var(--space-2);
    justify-content: center;
    margin-top: var(--space-5);
}

.indicator {
    width: var(--space-3);
    height: var(--space-3);
    border-radius: 50%;
    background: var(--color-neutral-200);
    cursor: pointer;
    transition: var(--transition-base);
}

.indicator.active {
    background: var(--primary-color);
    transform: scale(1.2);
}

.indicator:hover {
    background: rgba(250, 140, 22, 0.6);
}

.fourth-container .button {
    background: var(--primary-color);
    border-radius: 5px;
    border-style: solid;
    border-color: var(--primary-60);
    border-width: 2px;
    padding: var(--space-4) 32px var(--space-4) 32px;
    display: flex;
    flex-direction: row;
    gap: var(--space-2);
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    transition: var(--transition-base);
}

.fourth-container .text-container {
    display: flex;
    flex-direction: row;
    gap: var(--space-gap);
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
}

.fourth-container .button-text {
    color: var(--default-white, var(--white));
    text-align: left;
    font-family: var(--mbutton1-font-family, "Roboto-Medium", sans-serif);
    font-size: var(--mbutton1-font-size, var(--space-5));
    line-height: var(--mbutton1-line-height, 100%);
    letter-spacing: var(--mbutton1-letter-spacing, 0.5px);
    font-weight: var(--mbutton1-font-weight, 500);
    position: relative;
}
/* fourth container [E] */

/* fifth container [S] */
.fifth-container {
    background: var(--default-white, var(--white));
    padding-bottom: 80px;
    display: flex;
    flex-direction: column;
    gap: 80px;
    align-items: center;
    justify-content: center;
    align-self: stretch;
}

.fifth-container .frame-168 {
    display: flex;
    width: 100%;
    max-width: 1280px;
    flex-direction: column;
    gap: 80px;
    align-items: center;
    justify-content: center;
}

.fifth-container .top {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fifth-container .secondary-headline {
    color: var(--primary-color);
    font-family: var(--font-family-heading);
    font-weight: var(--font-weight-bold);
    --headline-font-size: clamp(1.5rem, 3.4vw, 2.4rem);
    --headline-line-height: clamp(2rem, 4vw, 3.1rem);
    font-size: var(--headline-font-size);
    line-height: var(--headline-line-height);
}

.fifth-container .paragraph {
    width: 100%;
    font-size: clamp(1rem, 2.4vw, var(--space-6));
    line-height: clamp(1.5rem, 3.2vw, 2.1rem);
    font-weight: 700;
}

.fifth-container .paragraph > span {
    display: inline-block;
    width: 100%;
    color: var(--neutral-100);
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.5rem, 3.4vw, var(--space-6));
    line-height: clamp(1.4rem, 3.4vw, 2rem);
    font-weight: var(--mh4-font-weight, 700);
}

.fifth-container .paragraph > span.primary-color {
    color: var(--primary-60);
}

.fifth-container .frame-137 {
    width: 100%;
    max-width: 1280px;
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 8vw, 80px);
    flex: 1;
}

.fifth-container .row {
    display: flex;
    flex-direction: row;
    gap: clamp(0, 5vw, var(--space-7));
    align-items: center;
    justify-content: center;
    width: 100%;
}

.step-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    gap: clamp(16px, 4vw, 24px);
    transition: transform var(--transition-base);
}

.step-card__icon {
    width: clamp(120px, 18vw, 235px);
    height: clamp(120px, 18vw, 235px);
    object-fit: contain;
}

.step-card__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(8px, 2vw, 16px);
    text-align: center;
}

.step-card__title {
    color: var(--primary-color);
    font-family: var(--mh3-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(1.2rem, 2.8vw, 2rem);
    line-height: clamp(1.5rem, 3vw, 2.6rem);
    font-weight: var(--mh3-font-weight, 700);
}

.step-card__description {
    color: var(--neutral-100);
    font-family: var(--mh4-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(.8rem, 1.8vw, var(--space-5));
    line-height: clamp(1.4rem, 3vw, 2rem);
    font-weight: var(--mh4-font-weight, 700);
}

.step-card:hover {
    transform: translateY(-6px);
}

.fifth-container .title2 {
    color: var(--primary-color);
    text-align: left;
    font-family: var(--mh3-font-family, "Roboto-Bold", sans-serif);
    font-size: clamp(1.2rem, 2.8vw, 2rem);
    line-height: clamp(1.5rem, 3vw, 2.6rem);
    font-weight: var(--mh3-font-weight, 700);
    position: relative;
    align-self: stretch;
}

.fifth-container .content3 {
    display: flex;
    flex-direction: column;
    gap: 0px;
    align-items: center;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fifth-container .frame-167 {
    padding: var(--space-6) var(--space-4) var(--space-4) var(--space-4);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    align-items: flex-start;
    justify-content: flex-start;
    align-self: stretch;
    flex-shrink: 0;
    position: relative;
}

.fifth-container .div3 {
    flex-shrink: 0;
    width: clamp(120px, 18vw, 235px);
    height: clamp(120px, 18vw, 235px);
    position: relative;
    object-fit: contain;
}

.fifth-container .div4 {
    flex-shrink: 0;
    width: clamp(120px, 18vw, 235px);
    height: clamp(120px, 18vw, 235px);
    position: relative;
    object-fit: contain;
}
/* fifth container [E] */

/* CSS 변수로 반응형 슬라이더 완전 제어 */
:root {
    /* 기본 데스크톱 설정 */
    --visible-cards: 4;
    --card-width: 271px;
    --card-gap: var(--space-5);
    --button-width: 68px;
    --frame-gap: var(--space-5);
    --frame-padding: var(--space-8); /* var(--space-5) * 2 */
}

/* 태블릿 */
@media screen and (max-width: 1024px) {
    :root {
        --visible-cards: 3;
        --card-width: 300px;
        --card-gap: 18px;
    }
}

/* 모바일 */
@media screen and (max-width: 768px) {
    :root {
        --visible-cards: 2;
        --card-width: 280px;
        --card-gap: 15px;
        --frame-gap: 15px;
        --frame-padding: var(--space-30); /* 15px * 2 */
    }
}

/* 소형 모바일 */
@media screen and (max-width: 480px) {
    :root {
        --visible-cards: 1;
        --card-width: 260px;
        --card-gap: 15px;
        --frame-gap: var(--space-gap);
        --frame-padding: var(--space-5); /* var(--space-gap) * 2 */
    }
}

/* 극소형 화면 */
@media screen and (max-width: 320px) {
    :root {
        --visible-cards: 1;
        --card-width: 200px;
        --card-gap: var(--space-gap);
        --frame-gap: var(--space-gap);
        --frame-padding: var(--space-5);
    }
}
@media (max-width: 1457px) {
}



@media screen and (max-width: 768px) {
    .slide-content {
        padding: var(--space-gap) var(--space-gap) 60px var(--space-gap); /* 모바일에서도 하단 패딩 추가 */
    }
    
    .hero-section {
        height: 60vh;
    }
    
    .swipe-guide {
        display: block;
    }
    
    .slide-content-wrapper {
        padding: var(--space-30) 15px;
    }
    
    .frame-157 {
        flex-direction: column;
        gap: 15px;
        max-width: 100%;
    }
    
    .frame-159 {
        max-width: 100%;
    }
    
    .frame-156 {
        flex-direction: column;
        gap: var(--space-8);
    }
    
    .frame-1171275938 {
        flex-direction: column;
        width: 100%;
    }
    
    .frame-1171275939 {
        align-items: center;
    }
    
    .frame-177,
    .frame-178,
    .frame-179,
    .frame-180 {
        width: 100%;
        align-items: center;
    }
    
    .paragraph {
        font-size: var(--space-6);
        text-align: center;
    }
    
    .frame-172 {
        margin: var(--space-5) 0;
    }
    
    .third-container {
        padding: var(--space-8) var(--space-5);
    }
    
    .fourth-container {
        padding: var(--space-8) var(--space-5);
    }
    
    /* 모바일에서도 네비게이션 버튼 활성화 */
    .nav-button {
        display: flex !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    
    .nav-button:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }
    
    .button {
        padding: var(--space-3) var(--space-6);
    }
    
    .button-text {
        font-size: 18px;
    }
}

@media screen and (max-width: 480px) {
    .slide-content-wrapper {
        padding: var(--space-5) var(--space-gap);
    }
    
    .frame-157 {
        gap: var(--space-gap);
    }
    
    .paragraph {
        font-size: 18px;
    }
    
    .paragraph2 {
        font-size: var(--space-5);
    }
    
    .paragraph4 {
        font-size: 18px;
    }
    
    .third-container {
        padding: var(--space-6) 15px;
    }
    
    .fourth-container {
        padding: var(--space-6) 15px;
    }
    
    .button {
        padding: var(--space-gap) var(--space-5);
    }
    
    .button-text {
        font-size: var(--space-4);
    }
    
    .carousel-misc-slick-dots {
        width: 100%;
        max-width: 270px;
    }
    
    .nav-button {
        width: 48px;
        height: 48px;
    }
}

/* 성능 최적화 */
@media (prefers-reduced-motion: reduce) {
    .slide,
    .slide-content-wrapper,
    .progress-bar,
    .carousel-misc-slick-dots .slick,
    .fourth-container .content-box-wrapper,
    .button,
    .nav-button,
    .indicator {
        transition: none;
    }
}

/* 포커스 가시성 향상 */
*:focus-visible {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* 터치 타겟 크기 최적화 */
@media (hover: none) and (pointer: coarse) {
    .carousel-misc-slick-dots .slick {
        min-height: 44px;
        min-width: 44px;
    }
    
    .nav-button {
        min-height: 44px;
        min-width: 44px;
    }
    
    .indicator {
        min-height: var(--space-5);
        min-width: var(--space-5);
    }
}
