@charset "UTF-8";

@import url(../font/SUIT.css);


/* /temper/assets/css/app.css */

/* ------------------------------
   기본 설정 & 리셋 (모바일 우선)
------------------------------ */

@font-face {
  font-family: 'AGKimjooseong';
  src: url('../font/AGKimjooseong-Regular.woff2') format('woff2'),
       url('../font/AGKimjooseong-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
    --bg: #B7BCAB;
    --card: #ffffff;
    --text: #37251F;
    --muted: #5F514B;
    --primary: #5B97C0;
    --primary-alt: #EAEB80;
    --primary-ink: #37251F;
    --border: #9FA59A;
    --ring: #5B97C0;
    --shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    --radius: 16px;
}

* {
    box-sizing: border-box
}

html,
body {
    overflow: auto;
    overflow-x: hidden;
}

html {
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0;
    font-family: "Pretendard", "Noto Sans KR", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    color: var(--text);
    line-height: 1.6;
    letter-spacing: -0.2px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 15px;
    box-sizing: border-box;
    font-size: 16px;
}

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

.wrap {
    width: 100%;
}

/* 접근성: 키보드 포커스 */
:focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 3px;
    border-radius: 8px;
}

/* ------------------------------
   공통 레이아웃 (결과/인덱스 공용)
------------------------------ */
main.result {
    width: 100%;
    max-width: 652px;
    padding: 0;
    margin: 0 auto;
}

main.app {
    width: 100%;
    max-width: 652px;
    padding: 0;
    margin: 0 auto;
    padding: 64px 0;
}



/* 결과 카드 */
main.result {
    background: var(--card);
    border: none;
    box-shadow: var(--shadow);
    border-radius: var(--radius);
    overflow: hidden;
    margin-top: 0;
    font-size: 18px;
    letter-spacing: -0.4px;
    word-break: keep-all;
}


.result>img {
    width: 100%;
    max-width: 652px;
}

.result-inner {
    padding: 20px;
    max-width: 652px;
    padding-top: 0;
    box-sizing: border-box;
}

.result p {
    margin: 10px 0 24px;
    color: var(--muted);
    font-size: 15px;
}

.result span.color {
    color: #C2E881;
}

.result span.color.font-32 {
    font-size: 32px;
    font-weight: 600;
    line-height: normal;
}

.result .btn-wrap {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

dd {
    margin: 0;
}

ul {
    padding: 0 0 0 25px;
}

.result .main-title {
    text-align: center;
    font-size: 24px;
    color: #666666;
    margin-bottom: 40px;
    letter-spacing: -0.5px;
    white-space: nowrap;
}

h2.bottom-title {
    text-align: center;
    margin: 35px 0 70px;
    font-size: 20px;
}

/* 버튼 그룹 */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    padding: 0 16px;
    border-radius: 99px;
    border: 1px solid #77A2C4;
    background: #ffffff;
    color: #77A2C4;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: transform .04s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    user-select: none;
}

.btn:hover {
    box-shadow: 0 8px 22px rgba(0, 0, 0, .08)
}

.btn:active {
    transform: translateY(1px)
}



/* 버튼 사이 간격 */
.actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* 배지/태그 (원하면 결과 특징에 사용) */
.badge {
    display: inline-block;
    padding: 0 8px 15px;
    font-size: 15px;
    font-weight: 700;
    color: #374151;
}


/* 푸터/보조 텍스트 */
.muted {
    color: var(--muted);
    font-size: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 500;
}
.muted .sm{
    font-size: 12px;
    font-weight: 600;
}




/* ==============================
   문항 화면 (test.html)
============================== */

/* 헤더 */
.test-head h1 {
    font-size: 42px;
    letter-spacing: -0.4px;
    color: #5D98C4;
    font-family: 'AGKimjooseong';
    text-align: center;
    font-weight: 400;
    margin-bottom: 70px;
    position: relative;
    z-index: 1;
}


/* 진행률 */
.progress {
    position: relative;
    /* margin: 14px 0 22px; */
    margin: 20px 0 30px;
    height: 16px;
    background: #E7E8DE;
    border-radius: 999px;
    overflow: hidden;
}


.progress .bar {
    height: 100%;
    width: 0%;
    background: #B2B799;
    transition: width .25s ease;
}


.progress .counter {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: #888;
    line-height: 16px;
}


.q-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 50px;
    border-bottom: 1px solid #38251C;
}

.q-meta .trait {
    font-weight: 600;
}

.q-text {
    text-align: center;
    margin: 6px 0 50px;
    font-size: 18px;
    line-height: 1.5;
    font-weight: 500;
    font-family: 'SUIT';
}

@media (min-width:768px) {
    .q-text {
        font-size: 20px
    }
}

/* 예/아니오 선택 버튼 */
.choices {
    display: flex;
    justify-content: center;
    gap: 50px;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

.btn-choice {
    padding-top: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'AGKimjooseong';
    width: 100px;
    height: 48px;
    border-radius: 99px;
    background: #fff;
    font-size: 32px;
    font-weight: 500;
    cursor: pointer;
    border: none;
    transition: all 0.3s ease;
}

.btn-choice:hover {
    box-shadow: 0 8px 22px rgba(0, 0, 0, .08);
}


.btn-choice.yes {
    background: #5D98C4;
    color: #EFEC80;
}

.btn-choice.no {
    background: #37261E;
    color: #C6C5B3;
}

.btn-choice.yes.is-active {
    transform: translateY(-7px);
}

.btn-choice.no.is-active {
    transform: translateY(-5px);
}

/* 네비게이션 버튼 */
.nav {
    display: flex;
    justify-content: space-between;
    gap: 10px;
}

.nav .prev {
    min-width: 110px;
    border: none;
    font-family: 'AGKimjooseong';
    color: #BDBFB3;
    font-size: 20px;
}

.nav .next {
    min-width: 110px;
    border: none;
    font-family: 'AGKimjooseong';
    color: #BDBFB3;
    font-size: 20px;
}

.next.disabled,
.next[aria-disabled="true"] {
    pointer-events: none;
    opacity: .5;
}

/* 작은 화면에서 버튼 간격 */
@media (max-width:360px) {
    .btn-choice {
        width: 100%;
        height: 44px;
    }

    .nav .prev,
    .nav .next {
        min-width: auto;
    }
}





/* 메인 */
.main {
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    padding: 24px 9px;
    height: 100%;
}

.main .txt {
    white-space: nowrap;
}
.main .txt h1{
    font-size: 1.8em;
    line-height: normal;
}

body.vh-100 {
    height: 100vh;
    position: relative;
}
body.vh{
    height: 100vh;
}


body.vh-100 .main .logo {
    position: absolute;
    top: 64px;
    left: 50%;
    transform: translateX(-50%);
}
.main .logo img {
    width: 100%;
    max-width: 100px;
}

.main .txt h1 span {
    color: #EAEB80;
}
.main .main-wrap{
    position: relative;
    top: -40px;
}
.main .main-img img {
    width: 100%;
    max-width: 430px;
}

.main .btn-wrap {
    width: 100%;
}

.main .btn-wrap .main-btn {
    font-family: 'AGKimjooseong';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 70%;
    max-width: 300px;
    background: #362F29;
    color: #EEE570;
    padding: 10px 0;
    border-radius: 99px;
    font-size: 24px;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
}

.main .btn-wrap .main-btn:hover {
    transform: translateY(-4px);
}

.bottom {
    text-align: center;
}

.bottom.position {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
}

/* 문항 카드 + 애니메이션 최종 버전 */

/* 기본 카드 */
.q-card {
    display: none;
    background: var(--card);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 20px;
    margin: 18px 0;
    position: relative;
}

/* 공통 활성화 */
.q-card.is-active {
    display: block;
}

/* 다음 버튼 눌렀을 때: 오른쪽 → 가운데(왼쪽으로 슬라이드 되는 느낌) */
.q-card.is-active.dir-next {
    animation: slideInFromRight 0.6s ease-out;
}

/* 이전 버튼 눌렀을 때: 왼쪽 → 가운데(오른쪽으로 슬라이드 되는 느낌) */
.q-card.is-active.dir-prev {
    animation: slideInFromLeft 0.6s ease-out;
}

/* 오른쪽에서 들어오기 */
@keyframes slideInFromRight {
    from {
        transform: translateX(50px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* 왼쪽에서 들어오기 */
@keyframes slideInFromLeft {
    from {
        transform: translateX(-50px);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}


.app .test-head .img-box {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 60px;

}

.app .test-head .img-box.position {
    width: auto;
    position: absolute;
    top: 64px;
    left: 50%;
    transform: translateX(-50%);
}

.app .test-head .img-box img {
    width: 100%;
    max-width: 100px;
}
.app .test-head .bg-img-box{
    width: 100%;
    max-width: 596px;
    position: absolute;
    top: 64px;
    left: 50%;
    transform: translateX(-50%);
}
.app .test-head .bg-img-box img{
    width: 100%;
    max-width: 596px;
}

.wrap .bottom {
        padding-bottom: 30px;
    }


@media (max-width:768px) {
    .q-card {
        padding: 15px;
    }

    main.result {
        font-size: 16px;
    }

    .result .main-title {
        font-size: 18px;
    }

    .result span.color.font-32 {
        font-size: 24px;
    }

    h2.bottom-title {
        font-size: 18px;
    }

    body.vh-100 {
        height: auto;
        position: inherit;
    }

    body.vh-100 .main .logo {
        position: inherit;
        transform: translateX(0%);
    }

    .bottom.position {
        position: inherit;
        transform: translateX(0%);
    }

    .app .test-head .img-box.position {
        position: inherit;
        transform: translateX(0%);
    }

    main.app {
        padding: 24px 0;
    }

    .main {
        margin-top: 0;
    }

    .wrap .bottom {
        padding-bottom: 24px;
    }
    .test-head h1{
        margin: 80px 0 0;
    }
    .app .test-head .bg-img-box{
        top: 20px;
    }
}

@media (max-width:440px) {
    .result .main-title {
        white-space: inherit;
        overflow-wrap: break-word;
    }

    .main .txt {
        white-space: inherit;
        overflow-wrap: break-word;
    }
    .test-head h1{
        margin: 50px 0 0;
        font-size: 36px;
    }
    .btn{
        font-size: 13px;
        text-align: center;
    }
    .choices {
        gap: 15px;
    }
    .main .main-wrap{
    top: -10px;
}
}

@media (max-width:360px) {
    .test-head h1{
        font-size: 32px;
    }
}