@font-face {
    font-family: 'NanumSquareNeo';
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.eot);
    src: url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.eot?#iefix) format("embedded-opentype"), url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.woff) format("woff"), url(https://hangeul.pstatic.net/hangeul_static/webfont/NanumSquareNeo/NanumSquareNeoTTF-bRg.ttf) format("truetype");
}


a, a:visited, a:active, a:hover {
  color: #333;
  text-decoration: none;
}
		
        /* 1. 전체 래퍼 (wrapper4) - 가로 100%, 배경 #fff */
        .wrapper4 {
            width: 100%;
            background-color: #fff;
            padding: 20px 0; /* 상하 패딩 */
        }

        /* 2. PC 전용 컨테이너 (container4) - 가로 1200px, 중앙 정렬 */
        .container4 {
            max-width: 1200px;
            width: 100%; /* 모바일에서 100%를 위해 */
            margin: 0 auto;
            background-color: #fff;
            padding: 0 20px; /* PC에서도 내부 여백 확보 */
        }

        /* 박스 레이아웃 설정 (PC: Flex, 가로 정렬) */
        .box-section {
            display: flex;
            gap: 20px; /* 박스 간격 20px */
            justify-content: center;
            align-items: stretch;
            flex-wrap: wrap; /* 반응성을 위해 */
            margin-bottom: 20px; /* 하단 박스와의 간격 */
        }

        /* 개별 박스 스타일링 - 둥근 테두리 2px, #f8f8f8 */
        .content-box {
            flex-grow: 1;
            min-width: 300px; /* 작은 화면에서 최소 너비 */
            background-color: #fff;
            border: 2px solid #f8f8f8;
            border-radius: 12px;
            padding: 35px 30px;
            /* 그림자 강도 약하게 수정: 4px 오프셋, 5px 블러 */
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.03); 
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .content-box:hover {
            transform: translateY(-2px);
            /* 호버 그림자 강도 약하게 수정: 4px 오프셋, 10px 블러 */
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
        }

        /* 박스 내용 스타일 */
        .main-title {
            font-size: 20px;
            font-weight: 900; /* 크고 두껍게 */
            color: #333;
            margin-bottom: 10px;			
			font-family:'NanumSquareNeo', sans-serif;
        }

        .sub-text {
            font-size: 14px;
            color: #666;
            margin-bottom: 30px;
            line-height: 1.6;
			font-family:'NanumSquareNeo', sans-serif;
        }

        /* 버튼 스타일 (버튼과 a태그 공통 스타일) */
        .action-button {
            display: block;
            width: 100%;
            padding: 15px 20px;
            font-size: 16px;
            font-weight: 700;
            text-align: center;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.3s ease, transform 0.1s ease, box-shadow 0.3s ease;
            margin-top: 15px;
			font-family:'NanumSquareNeo', sans-serif;
        }

        /* a태그가 버튼의 역할을 할 때 스타일 */
        .action-button.as-link {
            text-decoration: none; /* 밑줄 제거 */
            display: flex; 
            justify-content: center;
            align-items: center;
            height: 48px; /* input-text와 높이 맞추기 */
            box-sizing: border-box;
        }

        /* 왼쪽 박스 버튼 스타일: #494949로 변경 */
        .btn-primary {
            background-color: #494949 !important; 
            color: #fff;
            /* 그림자 강도 약하게 수정: 2px 오프셋, 5px 블러 */
            box-shadow: 0 2px 5px rgba(73, 73, 73, 0.3);
        }
        /* a태그가 btn-primary 역할일 때 글자 색상 유지 */
        .btn-primary.as-link {
            color: #fff;
        }

        .btn-primary:hover {
            background-color: #333333; 
            transform: translateY(-1px);
            /* 호버 그림자 강도 약하게 수정: 3px 오프셋, 8px 블러 */
            box-shadow: 0 3px 8px rgba(73, 73, 73, 0.5);
        }

        .btn-secondary {
            background-color: #f0f0f0;
            color: #333;
        }
        /* a태그가 btn-secondary 역할일 때 글자 색상 유지 */
        .btn-secondary.as-link {
            color: #333;
        }

        .btn-secondary:hover {
            background-color: #e0e0e0;
            transform: translateY(-1px);
        }

        /* 우측 박스 검색 영역 스타일 */
        .search-area {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-top: 20px;
        }
        
        /* [중요 수정] form 태그가 레이아웃을 깨뜨리는 문제 해결 */
        .search-area form {
            display: flex;
            flex-grow: 1; /* 부모 search-area의 남은 공간을 채우도록 함 */
            gap: 10px;
            width: 100%; /* 모바일에서 100%를 위해 */
        }

        /* 텍스트 입력 박스 (테두리 색깔 부여) */
        .input-text {
            flex-grow: 1;
            padding: 12px;
            font-size: 16px;
            border: 2px solid #ddd; /* 기본 테두리 */
            border-radius: 8px;
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
            outline: none;
            height: 48px; /* 검색 버튼과 높이 맞추기 */
			font-family:'NanumSquareNeo', sans-serif;
        }

        .input-text:focus {
            border-color: #494949; /* 포커스 시 색깔 변화 */
            /* 포커스 링은 3px 유지 */
            box-shadow: 0 0 0 3px rgba(73, 73, 73, 0.2);
        }

        /* 검색 버튼 스타일: #494949로 변경 (input[type="submit"]에 적용) */
        .btn-search {
            width: 100px;
            /* input[type="submit"]은 type="button"과 달리 value 텍스트를 보여주므로, 이미지 관련 스타일 제거 */
            padding: 0; 
            height: 48px; 
            line-height: 48px; 
            font-size: 16px;
            font-weight: 700;
            background-color: #494949;
            color: #fff;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.3s ease, transform 0.1s ease, box-shadow 0.3s ease;
            appearance: none;
            -webkit-appearance: none;
            /* 그림자 강도 약하게 수정: 2px 오프셋, 5px 블러 */
            box-shadow: 0 2px 5px rgba(73, 73, 73, 0.3); 
			font-family:'NanumSquareNeo', sans-serif;
        }

        .btn-search:hover {
            background-color: #333333; 
            transform: translateY(-1px);
            /* 호버 그림자 강도 약하게 수정: 3px 오프셋, 8px 블러 */
            box-shadow: 0 3px 8px rgba(73, 73, 73, 0.5);
        }

        /* 하단 정보 섹션 스타일 (PC 기본 설정 - 한 줄) */
        .info-bar {
            display: flex;
            justify-content: space-between; 
            align-items: center;
            width: 100%;
            font-size: 15px; 
            color: #666;
            gap: 10px; 
			font-family:'NanumSquareNeo', sans-serif;
        }
        
        /* PC에서는 한 줄에 보이도록 줄바꿈 방지 */
        .info-bar-item {
            white-space: nowrap; 
        }

.info-bar-item a {
    color: #333 !important;
    text-decoration: none !important;
}

        /* 바로가기 링크 스타일 */
        .info-bar-link {
            color: #494949;
            text-decoration: none;
            font-weight: 500;
            transition: color 0.2s ease;
        }

        .info-bar-link:hover {
            color: #333333;
        }

        /* 커스텀 메시지 박스 스타일 */
        .custom-message-box {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.5);
            display: none; /* 초기에는 숨김 */
            justify-content: center;
            align-items: center;
            z-index: 1000;
        }
        .message-content {
            background: #fff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
            max-width: 300px;
            text-align: center;
        }
        .message-content button {
            margin-top: 20px;
            padding: 10px 20px;
            background-color: #494949;
            color: #fff;
            border: none;
            border-radius: 5px;
            cursor: pointer;
        }


        /* ========================================================= */
        /* 3. 미디어 쿼리: 태블릿 및 모바일 최적화 (768px 이하) */
        /* ========================================================= */
        @media (max-width: 768px) {
            /* 태블릿 모바일에서는 container4의 좌우 여백을 10px로 조정 */
            .container4 {
                padding: 0 10px; 
                max-width: 100%;
            }

            /* 박스를 상하로 배치 (column) */
            .box-section {
                flex-direction: column;
                gap: 15px; 
                margin-bottom: 15px; 
            }

            /* 모바일에서 박스는 전체 너비 사용 */
            .content-box {
                flex-basis: auto;
                width: 100%;
                padding: 35px 30px;
            }

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

            .sub-text {
                font-size: 13px;
                margin-bottom: 20px;
            }

            .search-area {
                /* form이 flex를 상속받아 자동으로 조정됨 */
                flex-direction: column;
                gap: 10px;
            }
            
            /* [중요 수정] 모바일에서 form도 column으로 변경하여 input/button이 세로로 쌓이도록 함 */
            .search-area form {
                flex-direction: column;
            }

            .input-text {
                width: 100%; 
            }

            /* 모바일에서 하단 정보바 최적화: 세로로 쌓이도록 변경 */
            .info-bar {
                flex-direction: column; 
                align-items: flex-start; 
                font-size: 14px; 
                gap: 5px; 
            }
            
            /* 모바일에서는 줄바꿈 방지 해제 (stacking) */
            .info-bar-item {
                white-space: normal;
                text-align: left !important; 
                width: 100%; 
            }
        }
        
        /* PC에서 두 박스가 동일 너비가 되도록 flex-basis 재정의 */
        @media (min-width: 769px) {
            .content-box.two-column-item {
                width: calc(50% - 10px); 
                flex-basis: calc(50% - 10px);
            }
        }
        /* 모바일에서 검색 버튼 100% 너비 적용 */
        @media (max-width: 768px) {
            .search-area .btn-search {
                width: 100%; /* 모바일에서 검색 버튼도 100% 너비로 확장 */
            }
        }