/* =========================
   기본 설정
========================= */

* {
    box-sizing: border-box;
}


body {

    margin: 0;

    font-family:
        "Malgun Gothic",
        "Noto Sans KR",
        Arial,
        sans-serif;

    background-color: #f7f7f7;

    color: #222;

}



/* =========================
   상단 헤더
========================= */

.header {

    height: 105px;

    background-color: #ffffff;

    border-bottom: 1px solid #eeeeee;

}


.header-inner {

    width: 92%;
    max-width: 1180px;

    height: 100%;

    margin: 0 auto;

    display: flex;

    align-items: center;

    justify-content: space-between;

}


.kncap-logo {

    height: 72px;

    width: auto;

    display: block;

}


.header-service-name {

    font-size: 15px;

    font-weight: 600;

    color: #555;

}



/* =========================
   KNCAP 등급색 라인
========================= */

.kncap-line {

    height: 5px;

    display: flex;

    width: 100%;

}


.grade {

    flex: 1;

}


.grade5 {
    background-color: #df3434;
}


.grade4 {
    background-color: #e98632;
}


.grade3 {
    background-color: #f1ba25;
}


.grade2 {
    background-color: #c5cf35;
}


.grade1 {
    background-color: #2a9b57;
}



/* =========================
   전체
========================= */

.container {

    width: 92%;

    max-width: 920px;

    margin: 0 auto;

    padding-top: 75px;

    padding-bottom: 90px;

}



/* =========================
   Hero
========================= */

.hero {

    text-align: center;

    margin-bottom: 45px;

}


.hero-label {

    margin-bottom: 14px;

    color: #777;

    font-size: 13px;

    font-weight: bold;

    letter-spacing: 1.8px;

}


.hero h1 {

    margin: 0;

    color: #111;

    font-size: 42px;

    line-height: 1.3;

    letter-spacing: -1.5px;

}


.hero h1::after {

    content: "";

    display: block;

    width: 42px;

    height: 5px;

    margin: 22px auto;

    background-color: #f4c400;

}


.hero-description {

    max-width: 620px;

    margin: 0 auto;

    color: #666;

    line-height: 1.8;

    font-size: 16px;

}



/* =========================
   검색 영역
========================= */

.search-card {

    padding: 38px;

    background-color: #ffffff;

    border: 1px solid #e8e8e8;

    border-radius: 4px;

    box-shadow:
        0 8px 25px
        rgba(0, 0, 0, 0.05);

}


.search-title {

    margin-bottom: 16px;

    font-size: 19px;

    font-weight: bold;

    color: #222;

}


.search-box {

    display: flex;

    height: 62px;

    border: 2px solid #222;

    background-color: white;

}


.search-box input {

    flex: 1;

    min-width: 0;

    border: none;

    outline: none;

    padding: 0 21px;

    font-size: 16px;

    color: #222;

}


.search-box input::placeholder {

    color: #aaa;

}


.search-box:focus-within {

    border-color: #f2bd00;

}


.search-box button {

    width: 125px;

    border: none;

    background-color: #f4c400;

    color: #111;

    font-size: 16px;

    font-weight: 700;

    cursor: pointer;

}


.search-box button:hover {

    background-color: #e3b500;

}


.search-box button:disabled {

    opacity: 0.65;

    cursor: not-allowed;

}


.search-icon {

    margin-right: 4px;

}



/* =========================
   추천 질문
========================= */

.example-area {

    margin-top: 28px;

}


.example-title {

    margin-bottom: 12px;

    font-size: 14px;

    font-weight: bold;

    color: #666;

}


.example-buttons {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

}


.example-button {

    padding: 10px 15px;

    background-color: #ffffff;

    border: 1px solid #dcdcdc;

    border-radius: 3px;

    color: #555;

    cursor: pointer;

    font-size: 14px;

}


.example-button::before {

    content: "Q.";

    margin-right: 6px;

    color: #e2ae00;

    font-weight: bold;

}


.example-button:hover {

    border-color: #e7b700;

    background-color: #fffbee;

    color: #222;

}



/* =========================
   대화
========================= */

.conversation-section {

    margin-top: 45px;

}


.conversation-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 15px;

}


.conversation-header h2 {

    margin: 0;

    font-size: 21px;

    color: #222;

}


#clearButton {

    padding: 8px 13px;

    border: 1px solid #d5d5d5;

    background-color: white;

    color: #777;

    cursor: pointer;

}


#clearButton:hover {

    color: #222;

    border-color: #999;

}



/* =========================
   질문 / 답변 카드
========================= */

.conversation-item {

    margin-bottom: 18px;

    background-color: white;

    border: 1px solid #e5e5e5;

    box-shadow:
        0 4px 15px
        rgba(0, 0, 0, 0.035);

}


.conversation-question {

    padding: 24px 28px;

    background-color: #f5f5f5;

    border-bottom: 1px solid #e8e8e8;

}


.conversation-question::before {

    content: "Q";

    display: inline-flex;

    align-items: center;

    justify-content: center;

    width: 27px;

    height: 27px;

    margin-right: 10px;

    background-color: #222;

    color: #fff;

    font-weight: bold;

}


.conversation-question p {

    display: inline;

    margin: 0;

    font-size: 16px;

    line-height: 1.7;

}



/* =========================
   답변
========================= */

.conversation-answer {

    position: relative;

    padding: 30px 30px 28px 67px;

    line-height: 1.9;

    color: #333;

}


.conversation-answer::before {

    content: "A";

    position: absolute;

    top: 30px;

    left: 28px;

    display: flex;

    align-items: center;

    justify-content: center;

    width: 27px;

    height: 27px;

    background-color: #f4c400;

    color: #111;

    font-weight: 800;

}


.section-label {

    display: none;

}



/* =========================
   출처
========================= */

.sources {

    margin:

        0 30px
        30px 67px;

    padding-top: 20px;

    border-top: 1px solid #ededed;

}


.sources::before {

    content: "참고 자료";

    display: block;

    margin-bottom: 10px;

    color: #777;

    font-size: 13px;

    font-weight: bold;

}


.source-item {

    margin-top: 7px;

    padding: 10px 12px;

    border-left: 3px solid #f4c400;

    background-color: #fafafa;

    color: #666;

    font-size: 13px;

}



/* =========================
   로딩
========================= */

.loading {

    margin-top: 20px;

    padding: 24px;

    background-color: #fff;

    border: 1px solid #e6e6e6;

    text-align: center;

    color: #777;

}


.loading::before {

    content: "";

    display: inline-block;

    width: 10px;

    height: 10px;

    margin-right: 9px;

    border-radius: 50%;

    background-color: #f4c400;

}



/* =========================
   안내
========================= */

.notice {

    display: flex;

    gap: 14px;

    margin-top: 35px;

    padding: 20px 23px;

    border: 1px solid #e3e3e3;

    background-color: #f1f1f1;

    color: #666;

    font-size: 13px;

    line-height: 1.7;

}


.notice-icon {

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    width: 23px;

    height: 23px;

    border-radius: 50%;

    background-color: #777;

    color: white;

    font-family: serif;

    font-weight: bold;

}


.notice strong {

    color: #333;

}


.notice p {

    margin: 4px 0 0;

}



/* =========================
   Footer
========================= */

footer {

    border-top: 1px solid #ddd;

    background-color: #333;

    color: #aaa;

}


.footer-inner {

    width: 92%;

    max-width: 1180px;

    margin: 0 auto;

    padding: 28px 0;

    display: flex;

    gap: 14px;

    font-size: 13px;

}


.footer-inner strong {

    color: #f4c400;

}



/* =========================
   모바일
========================= */

@media (max-width: 650px) {

    .header {
        height: 70px;
    }


    .kncap-logo {
        max-width: 190px;
        height: auto;
    }


    .container {

        width: 93%;

        padding-top: 50px;

    }


    .hero h1 {

        font-size: 30px;

    }


    .search-card {

        padding: 23px;

    }


    .search-box {

        height: auto;

        display: block;

        border: none;

    }


    .search-box input {

        width: 100%;

        height: 55px;

        border: 2px solid #222;

    }


    .search-box button {

        width: 100%;

        height: 50px;

        margin-top: 8px;

    }


    .conversation-answer {

        padding-left: 55px;

    }


    .conversation-answer::before {

        left: 18px;

    }


    .sources {

        margin-left: 55px;

    }

}