@font-face {
    font-family: 'Poppins-Light';
    font-style: normal;
    font-display: swap;
    src: url('fonts/poppins/Poppins-Light.ttf') format('truetype');
}

@font-face {
    font-family: 'Poppins-Regular';
    font-style: normal;
    font-display: swap;
    src: url('fonts/poppins/Poppins-Regular.ttf') format('truetype');
}

@font-face {
    font-family: 'Poppins-Medium';
    font-style: normal;
    font-display: swap;
    src: url('fonts/poppins/Poppins-Medium.ttf') format('truetype');
}

@font-face {
    font-family: 'Poppins-SemiBold';
    font-style: normal;
    font-display: swap;
    src: url('fonts/poppins/Poppins-SemiBold.ttf') format('truetype');
}

@font-face {
    font-family: 'Poltawski Nowy';
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    src: url('fonts/PoltawskiNowy-VariableFont_wght.ttf') format('truetype-variations');
}

:root {
    /* 글자색 */
    --text-white: #FFF;
    --text-dark: #26263A;
    --text-gray: #6E6E7A;
    --text-light-gray: #C3C3C3;
    --text-navy: #304868;
    --text-purple: #6957C9;
    --text-white-50: rgba(255, 255, 255, 0.50);

    /* 그라데이션 */
    --Linear: linear-gradient(120deg, #6FA0F0 7.74%, #9878E8 92.26%);

    /* 배경색 */
    --bg-lavender: #F4F1FC;
    --bg-white: #FFF;
    --bg-gradient: linear-gradient(191deg, #F8F5FF 7.67%, #FBFAFF 91.45%);
    --bg-gray: #F9F9FD;
    --bg-dark: #232244;

    /* border-radius */
    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-full: 9999px;

    /* 폰트 크기 (16px 기준) */
    --fs-12: 0.75rem;
    --fs-15: 0.9375rem;
    --fs-16: 1rem;
    --fs-18: 1.125rem;
    --fs-22: 1.375rem;
    --fs-36: 2.25rem;
    --fs-66: 4.125rem;
}

/* reset-css는 box-sizing을 안 잡아줌 — padding 포함 계산으로 통일 */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* rem 기준값 — 미디어쿼리로 전체 폰트 크기 축소 */
html {
    font-size: 16px;
    scroll-behavior: smooth;
    /* AOS fade-left/right가 화면 밖(±100px)에서 시작 — body만으론 모바일에서 페이지가 넓어짐 */
    overflow-x: hidden;
}

/* 앵커 이동 시 fixed 헤더에 안 가리게 */
section[id] {
    scroll-margin-top: 5rem;
}

@media (max-width: 1024px) {
    html {
        font-size: 14px;
    }
}

@media (max-width: 768px) {
    html {
        font-size: 12px;
    }
}

@media (max-width: 480px) {
    html {
        font-size: 10px;
    }
}

body {
    font-family: 'Poppins-Regular', sans-serif;
    font-size: var(--fs-16);
    color: var(--text-dark);
    overflow-x: hidden; /* 섹션 스크롤 필요 — 가로 넘침만 차단 */
    /* 피그마와 비슷한 그레이스케일 안티앨리어싱 (macOS/일부 환경) */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    text-decoration: none;
    color: inherit;
}

/* flex 유틸리티 — 조합해서 사용: class="flex items-center justify-between" */
.flex {
    display: flex;
}

.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.items-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.flex-1 {
    flex: 1;
}

/* gap — 숫자는 px 기준, rem이라 미디어쿼리 따라 축소됨 */
.gap-4 {
    gap: 0.25rem;
}

.gap-8 {
    gap: 0.5rem;
}

.gap-12 {
    gap: 0.75rem;
}

.gap-16 {
    gap: 1rem;
}

.gap-24 {
    gap: 1.5rem;
}

.gap-32 {
    gap: 2rem;
}

.gap-48 {
    gap: 3rem;
}

/* 레이아웃 */
.inner {
    width: 100%;
    max-width: calc(1440px + 40px); /* 콘텐츠 1440px + 좌우 패딩 */
    margin: 0 auto;
    padding: 0 20px;
}

/* header */
.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1.5rem 0;
    z-index: 9;
    transition: background 0.3s;
}

.header.scrolled {
    background: var(--bg-dark); /* 푸터와 동일 (#232244) */
}

.logo img {
    height: 1.75rem;
    vertical-align: middle;
}

/* 스크롤 배경 생기면 컬러 로고(푸터와 동일)로 교체 */
.logo .logo-c,
.header.scrolled .logo-w {
    display: none;
}

.header.scrolled .logo-c {
    display: inline;
}

.gnb {
    gap: 2.75rem;
}

.gnb a {
    color: var(--text-white);
    font-size: var(--fs-15);
    font-family: 'Poppins-Medium', sans-serif;
    line-height: normal;
    letter-spacing: 0.75px;
}

.btn-contact {
    color: var(--text-white);
    font-size: var(--fs-15);
    font-family: 'Poppins-Medium', sans-serif;
    letter-spacing: 0.75px;
    border: 1px solid var(--text-white);
    border-radius: var(--radius-sm);
    padding: 9px 20px;
}

/* 메인 비주얼 */
.main-visual {
    position: relative;
    height: 100vh;
    max-height: 54.375rem; /* 870px */
}

.main-note {
    position: absolute;
    left: 1.5rem;
    bottom: 1.5rem;
    color: var(--text-white);
    font-size: var(--fs-15);
    font-style: italic;
    font-family: 'Poppins-Light', sans-serif;
    line-height: normal;
}

.main-visual video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.main-copy {
    position: absolute;
    inset: 0;
    padding: 0 20px;
    text-align: center;
    color: var(--text-white);
}

.main-title {
    font-size: var(--fs-66);
    line-height: 1.2; /* 80px */
}

.main-title em {
    font-family: 'Poltawski Nowy', serif;
    font-style: italic;
    font-weight: 700;
}

.main-desc {
    font-size: var(--fs-18);
    font-family: 'Poppins-Medium', sans-serif;
    line-height: 1.7; /* 32px */
}

/* Landing YouTube video */
.landing-video-section {
    padding: 8.75rem 1.25rem;
    background: #fff;
}

.landing-video {
    width: 100%;
    max-width: 59.5rem; /* 952px */
    aspect-ratio: 952 / 536;
    margin: 0 auto;
}

.landing-video iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* 인트로 등장 효과
   순서: AI/Care만 블러로 맺힘 → Mindful/Meaningful이 왼쪽으로 열리며 등장(AI/Care는 밀려나며 자리 잡음) → 설명 */
@keyframes accent-in {
    from {
        opacity: 0;
        filter: blur(12px);
    }
    to {
        opacity: 1;
        filter: none;
    }
}

@keyframes word-open {
    from {
        max-width: 0;
        opacity: 0;
    }
    to {
        max-width: var(--w);
        opacity: 1;
    }
}

@keyframes rise-in {
    from {
        opacity: 0;
        transform: translateY(2.5rem);
        filter: blur(10px);
    }
    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

.main-title .line {
    display: block;
}

.main-title em {
    animation: accent-in 0.8s ease-out both;
}

.main-title .word {
    --w: 8ch; /* Mindful 실제 폭보다 약간 크게 — 열림 애니메이션 종점 */
    display: inline-block;
    overflow: hidden;
    white-space: nowrap;
    vertical-align: bottom;
    /* overflow hidden이 g 디센더를 자르지 않게 클립 영역만 아래로 확장 */
    padding-bottom: 0.15em;
    margin-bottom: -0.15em;
    animation: word-open 1.2s cubic-bezier(0.77, 0, 0.175, 1) 1s both;
}

.main-title .line:nth-child(2) .word {
    --w: 12ch; /* Meaningful */
}

.main-desc {
    animation: rise-in 1s cubic-bezier(0.22, 1, 0.36, 1) 2.1s both;
}

@media (prefers-reduced-motion: reduce) {
    .main-title em,
    .main-title .word,
    .main-desc {
        animation: none;
    }
}



/* 섹션 공통 타이포 */
.sec-title {
    font-size: var(--fs-36);
    font-family: 'Poppins-SemiBold', sans-serif;
    line-height: 1.22; /* 44px */
    text-align: center;
}

.sec-desc {
    font-size: var(--fs-16);
    color: var(--text-gray);
    line-height: 1.75; /* 28px */
    text-align: center;
}

.flip-x {
    transform: scaleX(-1);
}

/* Section1 — 원형 사진 스트립 */
.section1 {
    padding: 8.75rem 0;
    overflow: hidden;
}

/* 무한 흐름 — 동일 세트 2개를 이어 붙이고 트랙을 -50% 이동 */
.sec1-marquee {
    width: 100%;
    overflow: hidden;
}

.sec1-track {
    width: max-content;
    animation: sec1-marquee 40s linear infinite;
}

.sec1-photos {
    padding-right: 3rem; /* 세트 사이 간격 = gap-48 */
}

.sec1-photos img {
    width: 17.5rem;
    height: 17.5rem;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}

@keyframes sec1-marquee {
    to {
        transform: translateX(-50%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .sec1-track {
        animation: none;
    }
}

/* Section2 — 인용 카드 */
.section2 {
    padding: 5rem 0;
}

/* 열린 카드 684px : 닫힌 카드 204px = flex-grow 3.35 : 1 */
.sec2-card {
    position: relative;
    height: 19.875rem; /* 318px */
    flex: 1;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #F1EEFA;
    transition: flex-grow 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    cursor: pointer;
}

.sec2-card.active {
    flex-grow: 3.35;
}

.sec2-card > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sec2-card::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 66%;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.8));
    mix-blend-mode: multiply;
    opacity: 0;
    transition: opacity 0.5s;
}

.sec2-card.active::after {
    opacity: 1;
}

.sec2-quote {
    position: absolute;
    left: 2.5rem;
    bottom: 2.5rem;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: var(--text-white);
    font-size: var(--fs-22);
    font-family: 'Poppins-Medium', sans-serif;
    line-height: 1.32; /* 29px */
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.4s;
}

.sec2-card.active .sec2-quote {
    opacity: 1;
    transition: opacity 0.5s 0.25s; /* 카드가 열린 뒤 글자 등장 */
}

.sec2-quote-icon {
    width: 1.875rem;
    height: 1.875rem;
    align-self: flex-start;
}

.sec-eyebrow {
    font-size: var(--fs-12);
    font-family: 'Poppins-SemiBold', sans-serif;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-align: center;
}

/* Section3 — 키오스크 쇼케이스 + 특징 카드 */
.section3 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec3-showcase {
    gap: 6.5rem;
}

/* 키오스크에 호버하면 원형 이미지가 좌우로 튀어나옴 */
.sec3-circle {
    position: relative;
    width: 22.5rem;
    height: 22.5rem;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    opacity: 0;
    pointer-events: none;
    transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.35s;
}

.sec3-showcase .sec3-circle:first-child {
    transform: translateX(70%);
}

.sec3-showcase .sec3-circle:last-child {
    transform: translateX(-70%);
}

.sec3-showcase:has(.sec3-kiosk:hover) .sec3-circle {
    transform: none;
    opacity: 1;
}

/* 왼쪽 먼저, 오른쪽이 뒤따라 */
.sec3-showcase:has(.sec3-kiosk:hover) .sec3-circle:last-child {
    transition-delay: 0.18s;
}

.sec3-circle img {
    position: absolute;
    max-width: none;
}

/* 피그마 크롭 좌표 그대로 (px→rem) */
.sec3-img-booth {
    width: 88.8125rem;
    height: 49.9375rem;
    left: calc(50% - 54.625rem);
    top: calc(50% - 17.9375rem);
}

.sec3-img-printout {
    width: 33.25rem;
    height: 26.5625rem;
    left: -3.375rem;
    bottom: 0;
}

.sec3-kiosk {
    width: 13.625rem;
}

.feature-card {
    flex: 1;
    min-height: 13.875rem; /* 222px */
    padding: 1.75rem 2rem;
    border-radius: var(--radius-md);
    background: var(--bg-gradient);
}

.feature-icon {
    width: 3rem;
    height: 3rem;
}

.feature-card h4 {
    font-size: var(--fs-22);
    font-family: 'Poppins-SemiBold', sans-serif;
    width: fit-content;
}

.feature-card p {
    font-size: var(--fs-16);
    color: var(--text-gray);
    line-height: 1.75;
}

/* Section4 — 아코디언 + 키오스크 패널 */
.section4 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec4-title {
    font-size: var(--fs-36);
    font-family: 'Poppins-SemiBold', sans-serif;
    line-height: 1.22;
}

/* 아코디언 전체 높이 고정 — 항목이 열리고 닫혀도 타이틀·패널이 안 움직임 */
.section4 .accordion {
    height: 23.0625rem; /* 369px = 5행 + 본문 2줄 (디자인값) */
}

.section7 .accordion {
    height: 19.5rem; /* 4행 + 본문 2줄 */
}

.accordion-item {
    border-top: 1px solid rgba(0, 0, 0, 0.2);
}

.accordion-head {
    width: 100%;
    height: 3.5rem;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.accordion-title {
    font-size: var(--fs-16);
    font-family: 'Poppins-Medium', sans-serif;
    color: var(--text-dark);
}

.accordion-item.open .accordion-title {
    font-size: var(--fs-22);
    font-family: 'Poppins-SemiBold', sans-serif;
    background: var(--Linear);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.accordion-num {
    font-size: 1.0625rem; /* 17px */
    font-family: 'Poppins-Medium', sans-serif;
    color: #000;
}

.accordion-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding-bottom: 0;
    font-size: var(--fs-16);
    color: var(--text-gray);
    line-height: 1.75;
    transition: max-height 0.45s cubic-bezier(0.22, 1, 0.36, 1),
                opacity 0.35s,
                padding-bottom 0.45s;
}

.accordion-item.open .accordion-body {
    max-height: 8rem; /* 본문 2줄 기준 여유값 — 내용 길어지면 늘릴 것 */
    opacity: 1;
    padding-bottom: 1.5rem;
}

.sec4-panel {
    position: relative; /* sec4-phone 절대배치 기준 */
    height: 32.5rem; /* 520px */
    border-radius: var(--radius-md);
    background: #F8F8F8;
    overflow: hidden;
}

.sec4-mock {
    position: relative;
    width: 30.0625rem; /* 481px */
    margin: -1rem auto 0;
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.sec4-mock > img:first-child {
    width: 100%;
}

.sec4-screen {
    display: none;
    position: absolute;
    left: 9.28rem;
    top: 5.375rem;
    width: 11.625rem;
    height: 20.75rem;
    object-fit: cover; /* 영상 비율이 화면 영역과 달라도 채움 */
}

/* 열린 스텝에 해당하는 화면만 표시 */
.sec4-panel[data-step="1"] .screen-1,
.sec4-panel[data-step="2"] .screen-2,
.sec4-panel[data-step="3"] .screen-3,
.sec4-panel[data-step="4"] .screen-4,
.sec4-panel[data-step="5"] .screen-5 {
    display: block;
}

/* 스텝5 — 키오스크 왼쪽으로 밀리고 QR + 모바일 목업 등장 */
.sec4-qr {
    display: none;
    position: absolute;
    left: 13.8125rem;
    top: 15.6875rem;
    width: 2.5625rem; /* 41px */
    height: 2.5625rem;
}

.sec4-phone {
    display: none;
    position: absolute;
    right: 8.125rem;
    top: 9.1875rem;
    width: 12.375rem; /* 198px */
}

.sec4-panel[data-step="5"] .sec4-mock {
    transform: translateX(-3.34375rem); /* -53.5px */
}

.sec4-panel[data-step="5"] .sec4-qr,
.sec4-panel[data-step="5"] .sec4-phone {
    display: block;
}

/* Section5 — AI 다이어그램 (보드는 이미지, 라벨/연결선만 코드) */
.section5 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec5-diagram {
    position: relative;
    width: 74.75rem; /* 1196px */
    max-width: 100%;
    padding: 5.25rem 0; /* 위아래 라벨 자리 — 자식 margin은 상쇄돼 빠져나가므로 padding 사용 */
}

.sec5-board {
    display: block;
    width: 100%;
}

.sec5-label {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sec5-label::after {
    content: '';
    position: absolute;
    left: 0.9375rem;
    width: 0;
    height: 3.5rem;
    border-left: 1px dashed #9878E8;
}

/* 연결선 끝의 동그란 점 */
.sec5-label::before {
    content: '';
    position: absolute;
    left: calc(0.9375rem - 3px); /* 1px 선 중심 정렬 */
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #9878E8;
}

.sec5-label-1::before,
.sec5-label-2::before {
    top: calc(6.0625rem - 3px); /* 선 아래쪽 끝 */
}

.sec5-label-3::before,
.sec5-label-4::before,
.sec5-label-5::before {
    top: calc(-3rem - 4px); /* 선 위쪽 끝 */
}

.sec5-num {
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    width: 1.875rem;
    height: 1.875rem;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--Linear);
    color: var(--text-white);
    font-size: 0.875rem;
    font-family: 'Poppins-Medium', sans-serif;
}

.sec5-label p {
    font-size: 1.25rem;
    font-family: 'Poppins-Medium', sans-serif;
    line-height: 1.3;
}

/* 좌표는 보드 폭 기준 % — 화면이 줄어 보드가 축소돼도 같은 지점에 붙음 */
.sec5-label-1 { left: 32.2%; top: 0; }
.sec5-label-2 { left: 72.2%; top: 0; }
.sec5-label-3 { left: 2.5%; bottom: 0; }
.sec5-label-4 { left: 32.2%; bottom: 0; }
.sec5-label-5 { left: 72.2%; bottom: 0; }

/* 라벨 등장 후 점선이 그려지고 끝점이 맺힘 (AOS aos-animate 훅) */
.sec5-label::after {
    transition: height 0.5s ease-out 0.25s;
}

.sec5-label::before {
    transition: opacity 0.3s ease 0.75s;
}

.sec5-label[data-aos]:not(.aos-animate)::after {
    height: 0;
}

.sec5-label[data-aos]:not(.aos-animate)::before {
    opacity: 0;
}

.sec5-label-1::after,
.sec5-label-2::after {
    top: 2.5625rem;
}

.sec5-label-3::after,
.sec5-label-4::after,
.sec5-label-5::after {
    top: -3rem;
    height: 4rem;
}

/* Section7 — 데스크 아코디언 (accordion 클래스 재사용) */
.section7 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec7-panel {
    position: relative;
    height: 32.5rem; /* 520px */
    border-radius: var(--radius-md);
    background: #F8F8F8;
    overflow: hidden;
}

/* 피그마 배치 그대로: 1553×1160을 top -144px에 중앙 고정 — cover로 하면 축소돼 화면 오버레이와 어긋남 */
.sec7-photo {
    position: absolute;
    left: 50%;
    top: -9rem;
    transform: translateX(-50%);
    width: 97.0625rem; /* 1553px */
    height: 72.5rem; /* 1160px */
    max-width: none;
}

.sec7-screen {
    display: none;
    position: absolute;
    left: 50%;
    top: 8.5625rem; /* 137px */
    transform: translateX(-50%);
    width: 21.25rem; /* 340px */
    border-radius: 4px;
}

.sec7-panel[data-step="1"] .screen-1,
.sec7-panel[data-step="2"] .screen-2,
.sec7-panel[data-step="3"] .screen-3,
.sec7-panel[data-step="4"] .screen-4 {
    display: block;
}

/* Section8 — 멀티모달 인포그래픽 (피그마 통이미지) */
.section8 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec8-infographic {
    width: 57.25rem; /* 916px */
    max-width: 100%;
}

/* Section9 — 비교 테이블 */
.section9 {
    padding: 5rem 0;
    background: var(--bg-gray);
}

.sec9-table {
    width: 80rem; /* 1280px */
    max-width: calc(100% - 40px);
    border-collapse: separate;
    border-spacing: 0;
    background: var(--bg-white);
    border: 1px solid #E7E3F4;
    border-radius: var(--radius-md);
    overflow: hidden;
    font-size: var(--fs-16);
    text-align: left;
}

.sec9-table th,
.sec9-table td {
    padding: 1.0625rem 1.5rem;
    border-bottom: 1px solid #E7E3F4;
}

.sec9-table tr:last-child th,
.sec9-table tr:last-child td {
    border-bottom: 0;
}

.sec9-table thead th {
    background: var(--bg-lavender);
    font-size: var(--fs-22);
    font-family: 'Poppins-SemiBold', sans-serif;
    padding: 1rem 1.5rem;
}

.sec9-table thead th:first-child {
    width: 10.75rem; /* 172px */
}

.sec9-table tbody th {
    font-family: 'Poppins-Medium', sans-serif;
    color: var(--text-dark);
    white-space: nowrap;
}

.sec9-table td {
    color: #5B6472;
}

/* Section10 — Why Mindenna 통계 + 연구 카드 */
.section10 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec10-date {
    align-self: flex-end;
    font-size: 0.90625rem; /* 14.5px */
    color: #5B6472;
}

.sec10-intro {
    width: 22.875rem; /* 366px */
    flex-shrink: 0;
}

.sec10-intro h4 {
    font-size: var(--fs-22);
    font-family: 'Poppins-SemiBold', sans-serif;
    width: fit-content;
    line-height: 1.5;
}

.sec10-intro p {
    font-size: var(--fs-16);
    color: var(--text-gray);
    line-height: 1.75;
    white-space: nowrap; /* 디자인상 366px 컨테이너를 넘어도 줄바꿈 없음 */
}

.stat-card {
    align-self: stretch;
    padding: 2.3125rem 1.5625rem;
    background: var(--bg-white);
    border: 1px solid #E7E3F4;
    border-radius: var(--radius-md);
    text-align: center;
}

.stat-num {
    font-size: 3.125rem; /* 50px */
    font-family: 'Poppins-SemiBold', sans-serif;
    width: fit-content; /* 그라데이션이 숫자 폭 기준으로 걸리게 */
}

.stat-label {
    font-size: var(--fs-16);
    font-family: 'Poppins-Medium', sans-serif;
    color: var(--text-dark);
}

.sec10-research {
    padding: 3rem 1.5rem 0; /* 디자인은 하단 패딩 없음 — 차트가 바닥에 붙음 */
    background: var(--bg-gray);
    border: 1px solid #E7E3F4;
    border-radius: var(--radius-md);
}

.sec10-research img {
    width: 19.5rem; /* 312px */
    max-width: 100%;
}

/* Section11 — 현장 사진 그리드 */
.section11 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec11-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 3rem;
}

.sec11-grid div {
    height: 11.25rem; /* 180px */
    border-radius: var(--radius-md);
    overflow: hidden;
    background: #F1EEFA;
}

.sec11-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.btn-company {
    padding: 0.875rem 1.75rem;
    background: var(--text-purple);
    border-radius: var(--radius-sm);
    color: var(--text-white);
    font-size: var(--fs-15);
    font-family: 'Poppins-Medium', sans-serif;
}

.btn-company img {
    width: 1rem;
    height: 1rem;
}

/* Section12 — 문의 폼 */
.section12 {
    padding: 5rem 0;
    background: var(--bg-lavender);
}

.sec12-title {
    font-size: var(--fs-36);
    font-family: 'Poppins-SemiBold', sans-serif;
    line-height: 1.22;
    width: fit-content;
}

.sec12-sub {
    font-size: var(--fs-22);
    font-family: 'Poppins-SemiBold', sans-serif;
    color: var(--text-dark);
}

.sec12-desc {
    font-size: var(--fs-16);
    color: var(--text-gray);
    line-height: 1.75;
}

.contact-form {
    width: 44.34rem; /* 709.5px = 627.5 + padding */
    padding: 2.5625rem;
    background: var(--bg-white);
    border: 1px solid #E7E3F4;
    border-radius: var(--radius-md);
}

.form-row {
    display: flex;
    gap: 1.125rem;
}

.form-row .form-field {
    flex: 1;
}

/* 필드 간 세로 간격 18px */
.contact-form > * + * {
    margin-top: 1.125rem;
}

.form-field label {
    display: block;
    padding-bottom: 0.5rem;
    font-size: 0.8125rem; /* 13px */
    font-family: 'Poppins-Medium', sans-serif;
    color: var(--text-navy);
}

.dial-select {
    height: 2.9375rem;
    padding: 0 0.75rem;
    background: #FDFCFE;
    border: 1px solid #E7E3F4;
    border-radius: var(--radius-sm);
    font: inherit;
    font-size: 0.875rem;
    color: var(--text-dark);
    cursor: pointer;
}

.form-field input,
.form-field textarea {
    width: 100%;
    padding: 0.8125rem 0.9375rem;
    background: #FDFCFE;
    border: 1px solid #E7E3F4;
    border-radius: var(--radius-sm);
    font: inherit;
    font-size: 0.875rem;
    color: var(--text-dark);
}

.form-field input {
    height: 2.9375rem; /* 47px */
}

.form-field textarea {
    height: 6rem; /* 96px */
    resize: none;
}

.form-field ::placeholder {
    color: var(--text-light-gray);
}

/* 포커스 — 기본 아웃라인 대신 브랜드 컬러 링 */
.form-field input:focus,
.form-field textarea:focus,
.dial-select:focus {
    outline: none;
    border-color: var(--text-purple);
    box-shadow: 0 0 0 3px rgba(105, 87, 201, 0.15);
}

.form-agree {
    padding-bottom: 0.375rem; /* 버튼 앞 총 24px */
    font-size: 0.78125rem; /* 12.5px */
    color: #9398AC;
    cursor: pointer;
}

.form-agree input {
    margin-top: 2px;
}

.form-agree a {
    color: var(--text-purple);
    font-family: 'Poppins-SemiBold', sans-serif;
    text-decoration: underline;
}

.btn-submit {
    height: 3.1875rem; /* 51px */
    border: 0;
    border-radius: var(--radius-sm);
    background: var(--text-purple);
    color: var(--text-white);
    font: inherit;
    font-size: var(--fs-15);
    font-family: 'Poppins-Medium', sans-serif;
    cursor: pointer;
}

/* Section6 — 데스크 쇼케이스 */
.section6 {
    padding: 5rem 0;
    background: var(--bg-white);
}

.sec6-stage {
    position: relative; /* 높이는 데스크 이미지가 결정 */
}

.sec6-desk {
    display: block;
    width: 53.1875rem; /* 851px */
    margin: 0 auto;
    transform: translateX(-1.09375rem);
}

/* 데스크에 호버하면 원형 이미지가 좌우로 튀어나옴 */
.sec6-circle {
    position: absolute;
    top: 9rem; /* 409-265 */
    width: 22.5rem;
    height: 22.5rem;
    border-radius: 50%;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.35s;
}

.sec6-circle-l {
    transform: translateX(70%);
}

.sec6-circle-r {
    transform: translateX(-70%);
}

.sec6-stage:has(.sec6-desk:hover) .sec6-circle {
    transform: none;
    opacity: 1;
}

/* 왼쪽 먼저, 오른쪽이 뒤따라 */
.sec6-stage:has(.sec6-desk:hover) .sec6-circle-r {
    transition-delay: 0.18s;
}

.sec6-circle-l {
    left: 5.5625rem;
}

.sec6-circle-l img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sec6-circle-r {
    left: 65.25rem;
}

/* 피그마 크롭 좌표 (px→rem) */
.sec6-img-angle {
    position: absolute;
    width: 36.625rem;
    height: 30.625rem;
    max-width: none;
    left: -7.625rem;
    top: -5.875rem;
}

/* Footer */
.footer {
    padding: 7.5rem 0;
    background: var(--bg-dark);
    color: var(--text-white);
}

.footer-logo {
    width: 13.0625rem; /* 209px */
}

.sns-link {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.1);
}

.sns-link img {
    width: 1.375rem;
    height: 1.375rem;
}

.footer-info address {
    font-style: normal;
    font-size: 0.875rem;
    line-height: 1.86; /* 26px */
    color: rgba(255, 255, 255, 0.7);
}

.footer-info strong {
    font-family: 'Poppins-SemiBold', sans-serif;
    color: var(--text-white);
}

.footer-badges {
    width: 25.375rem; /* 406px */
    height: 2.75rem;
    background: var(--bg-white);
    border-radius: var(--radius-sm);
}

.footer-badges img {
    width: 21.625rem; /* 346px */
}

.footer-bottom {
    height: 3.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.footer-bottom p {
    font-size: var(--fs-16);
    color: var(--text-white-50);
}

.footer-privacy {
    font-size: var(--fs-12);
    font-family: 'Poppins-Medium', sans-serif;
    letter-spacing: 0.96px;
    text-transform: uppercase;
}

/* 플로팅 Contact Us 버튼 */
.btn-floating {
    position: fixed;
    right: 0;
    bottom: 75px;
    z-index: 9;
    width: 6.25rem; /* 100px */
    height: 6.25rem;
    background: var(--Linear);
    box-shadow: 2px 2px 15px 0 rgba(0, 0, 0, 0.1);
    color: var(--text-white);
    font-size: var(--fs-18);
    font-family: 'Poppins-SemiBold', sans-serif;
    line-height: 1.11; /* 20px */
    text-align: center;
}

/* 개인정보 처리방침 팝업 — 네이티브 dialog */
.privacy-modal {
    width: 40rem;
    max-width: calc(100vw - 40px);
    max-height: 80vh;
    padding: 0;
    border: 0;
    border-radius: var(--radius-md);
    color: var(--text-dark);
    overflow: hidden; /* 스크롤은 body에서만 — 라운드 모서리가 스크롤바에 안 잘리게 */
}

.privacy-modal[open] {
    display: flex;
    flex-direction: column;
}

.privacy-modal::backdrop {
    background: rgba(0, 0, 0, 0.5);
}

.privacy-head {
    flex-shrink: 0;
    padding: 1.5rem 2rem;
    background: var(--bg-white);
    border-bottom: 1px solid #E7E3F4;
}

.privacy-head h2 {
    font-size: var(--fs-22);
    font-family: 'Poppins-SemiBold', sans-serif;
}

.privacy-close {
    border: 0;
    background: none;
    font-size: 1.75rem;
    line-height: 1;
    color: var(--text-gray);
    cursor: pointer;
}

.privacy-body {
    padding: 1.5rem 2rem 2rem;
    overflow-y: auto;
}

.privacy-updated {
    color: var(--text-gray);
    font-size: var(--fs-12);
    margin-bottom: 1rem;
}

.privacy-body h3 {
    font-size: var(--fs-16);
    font-family: 'Poppins-SemiBold', sans-serif;
    margin: 1.25rem 0 0.5rem;
}

.privacy-body p,
.privacy-body li {
    font-size: 0.875rem;
    color: var(--text-gray);
    line-height: 1.7;
}

.privacy-body strong {
    font-family: 'Poppins-SemiBold', sans-serif;
}

.privacy-body ul {
    padding-left: 1.25rem;
    list-style: disc;
}

.privacy-body a {
    color: var(--text-purple);
    text-decoration: underline;
}

.text-gradient {
    background: var(--Linear, linear-gradient(120deg, #6FA0F0 7.74%, #9878E8 92.26%));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* 반응형 — 폰트는 html font-size 축소로 자동 스케일, 여기선 레이아웃만 */
@media (max-width: 1024px) {
    /* S3 쇼케이스 간격 축소 — 원+키오스크+원이 화면에 들어가게 */
    .sec3-showcase {
        gap: 3rem;
    }
}

@media (max-width: 768px) {
    /* 모든 섹션 좌우 여백 20px 통일 — .inner 유무와 무관하게 일정
       (마퀴는 풀블리드 의도, 테이블은 자체 max-width로 여백 확보라 제외) */
    main section:not(.main-visual) > *:not(.sec1-marquee):not(.sec9-table) {
        padding-left: 20px;
        padding-right: 20px;
    }

    /* ponytail: 모바일 메뉴 없이 nav 숨김 — 햄버거 필요해지면 추가 */
    .gnb {
        display: none;
    }

    /* 설명 강제 줄바꿈 해제, 화면 폭대로 자연 줄바꿈 */
    .main-desc br,
    .feature-card p br,
    .sec-desc br {
        display: none;
    }

    /* 가로 배치 섹션 세로 스택 */
    .section4 .inner,
    .section7 .inner,
    .section12 .inner {
        flex-direction: column;
        align-items: stretch;
    }

    /* S10 통계 — 인트로만 위로 빼고 카드 3장은 가로 유지 */
    .sec10-stats-wrap > .flex.items-center {
        flex-wrap: wrap;
        gap: 1.5rem;
    }

    .sec10-intro {
        flex-basis: 100%;
    }

    .stat-card {
        padding: 1.5rem 0.75rem;
    }

    /* 세로 스택에선 flex-1(basis 0)이 높이 축이 되어 패널이 접힘 — 고정 높이 사용 */
    .sec4-panel,
    .sec7-panel {
        flex: none;
        margin-top: 2rem;
    }

    /* S2 — 카드 세로 스택, 문구 항상 표시 (터치에선 호버·확장 대신) */
    .sec2-cards {
        flex-direction: column;
    }

    .sec2-card {
        flex: none;
        height: 13rem;
    }

    .sec2-card::after {
        opacity: 1;
    }

    .sec2-quote {
        opacity: 1;
        white-space: normal;
        right: 2.5rem;
    }

    /* 3번째 카드 문구는 강제 줄바꿈 해제, 폭대로 자연 줄바꿈 */
    .sec2-card:nth-child(3) .sec2-quote br {
        display: none;
    }

    /* S1 — 원형 사진 축소 (간격과 세트 구분 패딩은 같이 줄여야 루프가 안 끊김) */
    .sec1-photos img {
        width: 13rem;
        height: 13rem;
    }

    .sec1-photos {
        gap: 1.5rem;
        padding-right: 1.5rem;
    }

    /* S3·S6 — 터치엔 호버가 없으니 원형 이미지를 좌상단·우하단에 상시 배치 (축소) */
    .sec3-showcase {
        position: relative;
    }

    .sec3-circle,
    .sec6-circle {
        position: absolute;
        width: 9rem;
        height: 9rem;
        opacity: 1;
        transform: none;
        pointer-events: none;
    }

    /* 키오스크(S3): 상하는 좁히고 좌우는 기기 바깥으로 벌림
       (데스크톱 숨김 규칙보다 특이도를 높여 transform 고정 — 탭 시 움직임 방지) */
    .sec3-showcase .sec3-circle:first-child {
        left: -6rem;
        top: 6rem;
        transform: none;
    }

    .sec3-showcase .sec3-circle:last-child {
        left: auto;
        right: -3rem;
        top: auto;
        bottom: 8rem;
        transform: none;
    }

    /* 데스크(S6): 좌우를 중앙 쪽으로 모음 */
    .sec6-circle-l {
        left: 2rem;
        top: 0;
    }

    .sec6-circle-r {
        left: auto;
        right: 2rem;
        top: auto;
        bottom: 0;
    }

    /* 축소된 원에선 피그마 고정 크롭 대신 cover로 채움 */
    .sec3-circle img,
    .sec6-circle img {
        position: static;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
    }

    .sec3-features,
    .sec6-features {
        flex-direction: column;
    }

    .sec6-desk {
        width: min(100%, 53.1875rem);
        transform: none;
    }

    /* S5 — PC와 동일한 부착형 라벨 유지, 크기만 축소 */
    .sec5-label {
        gap: 0.5rem;
    }

    .sec5-label p {
        font-size: 0.9375rem;
    }

    .sec5-num {
        width: 1.5rem;
        height: 1.5rem;
        font-size: 0.75rem;
    }

    /* 오른쪽 열 라벨은 우측 기준 고정 — 좁은 화면에서 잘림 방지 */
    .sec5-label-2,
    .sec5-label-5 {
        left: auto;
        right: 2.5%;
    }

    /* 축소된 배지(1.5rem) 중심에 선·점 재정렬 */
    .sec5-label::after {
        left: 0.71875rem;
    }

    .sec5-label::before {
        left: calc(0.71875rem - 3px);
    }

    /* S9 — 셀 줄바꿈 허용해 폭 확보 */
    .sec9-table tbody th {
        white-space: normal;
    }

    /* S10 — 인트로 줄바꿈 허용, 연구 차트 세로 스택 */
    .sec10-intro p {
        white-space: normal;
    }

    /* 연구 차트 3장 가로 유지, 폭에 맞게 축소 */
    .sec10-research .justify-center {
        gap: 1rem;
        width: 100%;
    }

    .sec10-research img {
        width: calc((100% - 2rem) / 3);
        min-width: 0;
    }

    .contact-form {
        width: 100%;
        margin-top: 2rem;
    }

    .sec10-intro {
        width: auto;
    }

    .sec11-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }

    .footer .flex.justify-between:not(.footer-bottom) {
        flex-direction: column;
        gap: 2rem;
    }

    .footer-badges {
        max-width: 100%;
    }

    .main-note {
        left: 1rem;
        bottom: 1rem;
    }
}

@media (max-width: 480px) {
    /* S5 라벨 텍스트 축소 */
    .sec5-label p {
        font-size: 0.8rem;
    }

    /* 폼 2열 → 1열 */
    .form-row {
        flex-direction: column;
        gap: 0;
    }

    .form-row .form-field + .form-field {
        margin-top: 1.125rem;
    }

    /* 비교 테이블 가로 스크롤 */
    .sec9-table {
        display: block;
        overflow-x: auto;
    }

    .sec11-grid {
        gap: 1rem;
    }
}
