@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700&display=swap');

body {
    font-family: 'Noto Sans KR', sans-serif;
    background-color: #f4f7f6;
    color: #333;
    margin: 0;
    padding: 20px;
    display: flex;
    flex-direction: column; /* 아이템을 세로로 쌓도록 변경 */
    justify-content: center;
    align-items: center;
    min-height: 100vh;
}

.container {
    width: 100%;
    max-width: 1000px;
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

header {
    background-color: #4a90e2;
    color: white;
    padding: 20px 30px;
    text-align: center;
}

header h1 {
    margin: 0;
    font-size: 2em;
}

header p {
    margin: 5px 0 0;
    opacity: 0.9;
}

main {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    padding: 30px;
}

#services-section, #result-section {
    padding: 20px;
    border-radius: 8px;
    background-color: #fdfdfd;
    border: 1px solid #eee;
}

h2 {
    font-size: 1.5em;
    color: #4a90e2;
    margin-top: 0;
    border-bottom: 2px solid #eee;
    padding-bottom: 10px;
    margin-bottom: 20px;
}

#telecom-selection {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
    padding: 10px;
    background-color: #f9f9f9;
    border-radius: 8px;
}

.telecom-option {
    display: flex;
    align-items: center;
}

.telecom-option input {
    margin-right: 8px;
    width: 16px;
    height: 16px;
}

.telecom-option label {
    font-size: 1em;
    cursor: pointer;
}

#service-search-container {
    margin-bottom: 20px;
}

#service-search-input {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 1em;
    box-sizing: border-box; /* Ensures padding doesn't affect width */
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22%23aaa%22%3E%3Cpath%20d%3D%22M23.7%2022.3l-6-6a9.5%209.5%200%201%200-1.4%201.4l6%206a1%201%200%200%200%201.4-1.4zM4%209.5A5.5%205.5%200%201%201%209.5%2015%205.5%205.5%200%200%201%204%209.5z%22/%3E%3C/svg%3E');
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 20px;
    padding-right: 45px;
}

#services-list {
    max-height: 400px; /* 최대 높이 지정 */
    overflow-y: auto;   /* 내용이 넘칠 경우 세로 스크롤바 표시 */
    padding-right: 10px; /* 스크롤바와 내용이 겹치지 않도록 패딩 추가 */
}

#services-list .service {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
    background-color: #f9f9f9;
    padding: 10px;
    border-radius: 6px;
    border: 2px solid transparent; /* 선택 상태를 위한 테두리 공간 확보 */
    transition: background-color 0.3s, border-color 0.3s;
    cursor: pointer;
}

#services-list .service:hover {
    background-color: #f0f4f8;
}

#services-list .service.selected {
    background-color: #eaf2fa;
    border-color: #4a90e2;
}


#services-list .service input {
    margin-right: 12px;
    width: 18px;
    height: 18px;
}

#services-list .service label {
    font-size: 1em;
    flex-grow: 1;
}

#services-list .service .price {
    font-weight: bold;
    color: #555;
}

#calculate-btn {
    width: 100%;
    padding: 15px;
    font-size: 1.1em;
    font-weight: bold;
    color: white;
    background-color: #5cb85c;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.3s;
    margin-top: 20px;
}

#calculate-btn:hover {
    background-color: #4a934a;
}

#result-details {
    font-size: 1.1em;
}

#result-details .total-price {

    font-size: 2em;

    font-weight: bold;

    color: #d9534f;

    text-align: center;

    margin-bottom: 10px;

}



#result-details .saved-amount {

    font-size: 1.2em;

    font-weight: bold;

    text-align: center;

    margin-top: 0;

    margin-bottom: 20px;

}



#result-details .saved-amount strong {

    color: #28a745;

}



.result-summary {

    text-align: center;

    font-size: 1em;

    color: #555;

    margin-bottom: 20px;

}



.result-divider {

    border: none;

    border-top: 1px solid #eee;

    margin: 0 0 20px 0;

}



.platform-group {

    margin-bottom: 25px;

}



.platform-group h3 {

    font-size: 1.3em;

    color: #333;

    margin-bottom: 15px;

    border-bottom: 2px solid #4a90e2;

    padding-bottom: 8px;

}



#result-details .plan-item {

    background-color: #f9f9f9;

    padding: 15px;

    border-radius: 6px;

    margin-bottom: 10px;

    border-left: 4px solid #5bc0de;

}



#result-details .plan-item h4 {

    margin: 0 0 5px 0;

    color: #333;

    font-size: 1.1em;

}



#result-details .plan-item h4 a {



    color: inherit; /* 부모 h4의 색상을 상속 */



    text-decoration: none; /* 밑줄 제거 */



    transition: color 0.3s;



}







#result-details .plan-item h4 a:hover {



    color: #4a90e2; /* 호버 시 색상 변경 */



    text-decoration: underline; /* 호버 시 밑줄 표시 */



}







#result-details .bundle-services {



    font-size: 0.9em;



    color: #666;



    margin-top: 5px;



    margin-bottom: 10px;



}



#result-details .item-price {

    font-size: 1em;

    font-weight: bold;

    color: #333;

    text-align: right;

    margin: 0;

}



#result-details .item-price del {



    font-weight: normal;



    color: #aaa;



    margin-right: 5px;



}







footer {



    width: 100%;



    max-width: 1000px;



    margin: 20px auto 0 auto;



    padding: 0 20px 20px 20px;



    box-sizing: border-box;



}







.disclaimer {



    font-size: 0.8em;



    color: #999;



    text-align: center;



}










