/* 웹접근성 개선 */
.skip-link {position: absolute;left: -9999px;z-index: 99999;}
.skip-link:focus {left: 50%;transform: translateX(-50%);top: 10px;padding: 10px 20px;background: #d23836;color: #fff;text-decoration: none;border-radius: 4px;}

/* 키보드 포커스 스타일 */
.policy-container .search-form .filter-btn:focus {outline: 3px solid #4a90e2;outline-offset: 2px;}
.policy-card:focus {outline: 3px solid #4a90e2;outline-offset: 2px;}
.pagination a:focus, .pagination strong:focus {outline: 3px solid #4a90e2;outline-offset: 2px;}
.modal-close:focus {outline: 3px solid #4a90e2;outline-offset: 2px;}
.policy-container .search-form input[type="text"]:focus {outline: 2px solid #4a90e2;outline-offset: 2px;border-color: #4a90e2;}

/* 스크린 리더용 숨김 텍스트 */
.sr-only {position: absolute;width: 1px;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border-width: 0;}

.policy-container {margin: 0 auto;padding: 0px;}
.policy-container .policy-header {margin-bottom: 30px;}
.policy-container .policy-header h1 {font-size: 34px;color: #333;margin-bottom: 10px;}
.policy-container .policy-header .subtitle {}
.policy-container .search-form {padding:20px 40px !important; border:1px #ddd solid; border-radius:10px; background-color:#f8f9fa;}
.policy-container .search-form-row {display: flex;flex-wrap: wrap;align-items: flex-start;margin-bottom: 20px;padding-bottom: 20px;border-bottom: 1px solid #e9ecef;}
.policy-container .search-form-row:last-child {margin-bottom: 0;padding-bottom: 0;border-bottom: none;}
.policy-container .search-form-label {flex: 0 0 100px;font-weight: 600;color: #333;padding: 8px 0;margin-right: 15px;}
.policy-container .search-form-content {flex: 1;min-width: 200px;}
.policy-container .search-form .checkbox-group {display: flex;flex-wrap: wrap;gap: 10px;align-items: center;}
.policy-container .search-form .filter-btn {display: inline-block;padding: 10px 20px;border: 1px solid #ddd;border-radius: 25px;background: #fff;color: #333;font-size: 16px;cursor: pointer;transition: all 0.2s;white-space: nowrap;user-select: none;}
.policy-container .search-form .filter-btn:hover {border-color: #d23836;color: #d23836;}
.policy-container .search-form .filter-btn.active {background: #4a5568;border-color: #4a5568;color: #fff;}
.policy-container .search-form .filter-btn.filter-all {background: #e9ecef;border-color: #ced4da;font-weight: 600;}
.policy-container .search-form .filter-btn.filter-all.active {background: #4a5568;border-color: #4a5568;color: #fff;}
.policy-container .search-form .filter-btn input[type="checkbox"] {position: absolute;opacity: 0;width: 0;height: 0;pointer-events: none;}
.policy-container .search-form .search-input-group {display: flex;flex-wrap: wrap;gap: 10px;align-items: center;}
.policy-container .search-form input[type="text"] {flex: 1;min-width: 200px;max-width:400px; padding: 10px 15px;border: 1px solid #ddd;border-radius: 4px;font-size:inherit;}

/* 반응형 디자인 */
@media screen and (max-width: 768px) {
.policy-container .search-form {padding: 20px 15px;}
.policy-container .search-form-row {flex-direction: column;margin-bottom: 25px;}
.policy-container .search-form-label {flex: none;width: 100%;margin-bottom: 10px;margin-right: 0;padding-bottom: 8px;border-bottom: 2px solid #d23836;}
.policy-container .search-form-content {flex: none;width: 100%;}
.policy-container .search-form .checkbox-group {gap: 10px 15px;}
.policy-container .search-form input[type="text"] {min-width: 100%;margin-bottom: 10px;}
.policy-container .search-form .search-input-group {width: 100%;}
.policy-container .search-form .btn {flex: 1;}
.policy-container .policy-grid {grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));gap: 15px;}
.policy-container .policy-header h1 {font-size: 26px;}
.policy-container .policy-header {padding: 20px 15px;}
}

@media screen and (max-width: 480px) {
.policy-container {padding: 0px;}
.policy-container .search-form {padding: 15px 10px !important;}
.policy-container .search-form .checkbox-group {gap: 8px;}
.policy-container .search-form .filter-btn {padding: 8px 15px;font-size: 13px;}
.policy-container .search-form .btn {font-size: 13px;padding: 8px 15px;}
.policy-container .policy-grid {grid-template-columns: 1fr;gap: 15px;}
.policy-container .policy-header {padding: 20px 15px;}
.policy-container .policy-header h1 {font-size: 26px;}
}

/* Results Header */
.results-header {margin-bottom:30px; padding:15px 0; border-bottom:2px solid #222;}
.results-header .count {font-size: 16px;font-weight: 600;color: #333;}
.results-header .count strong {color: #d23836;}

/* Card Grid */
.policy-grid {	display: grid;	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));	gap: 20px;	margin-bottom: 30px;}
.policy-card {background: #fff;border-radius: 10px;padding: 20px; cursor:pointer; transition:all 0.3s; position:relative;overflow: hidden;border:1px #e1e1e1 solid;}
.policy-card:hover {transform: translateY(-5px);box-shadow: 0 4px 12px rgba(0,0,0,0.15);}
.policy-card .badge-lifcycle {display: inline-block;padding: 4px 12px;border-radius: 20px;font-size: 16px;font-weight: 600;margin-bottom: 12px;background-color: var(--colorBlue);color: #fff;}
.policy-card .badge-lifcycle.life-001 { background: #4dabf7; }
.policy-card .badge-lifcycle.life-002 { background: #ae3ec9; }
.policy-card .badge-lifcycle.life-003 { background: #ae3ec9; }
.policy-card .badge-lifcycle.life-004 { background: #ae3ec9; }
.policy-card .policy-title {font-size: 18px;font-weight: 600;color: #333;margin-bottom: 10px;line-height: 1.4;}
.policy-card .policy-description {font-size:15px;color: #666;margin-bottom: 15px;line-height: 1.5;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;}
.policy-card .badge-topic {display: inline-block;padding: 4px 11px;border-radius: 15px;font-size: 14px;background: #e9ecef;color: #495057;margin-top: 10px;}
.policy-card .badge-topic:not(:last-child) {margin-right: 5px;}

/* Modal 접근성 개선 */
.modal[aria-hidden="true"] {display: none;}
.modal[aria-hidden="false"], .modal.show {display: flex;align-items: center;justify-content: center;padding-top: 30px;}

/* Modal */
.modal {display: none;position: fixed;z-index: 9999;left: 0;top: 0;width: 100%;height: 100%;overflow: hidden;background-color: rgba(0,0,0,0.5);animation: fadeIn 0.3s;}
.modal-content {background-color: #fff;margin: auto;padding: 0;border-radius: 8px;width: 96%;max-width: 1000px;max-height: 90vh;overflow: hidden;box-shadow: 0 4px 20px rgba(0,0,0,0.3);animation: slideIn 0.3s;display: flex;flex-direction: column;}

@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes slideIn {
	from {transform: translateY(-50px);opacity: 0;}
	to {transform: translateY(0);opacity: 1;}
}

.modal-header {padding:10px 30px;border-bottom: 1px solid #e9ecef;display: flex;justify-content: space-between;align-items: center;background: #f8f9fa;border-radius: 8px 8px 0 0;flex-shrink: 0;}
.modal-header h2 {font-size: 24px;color: #333;margin: 0;}
.modal-close {background: none;border: none;font-size:50px;color:#222;cursor: pointer;width:30px;height:30px;display: flex;align-items: center;justify-content: center;border-radius: 50%;transition: all 0.2s;}
.modal-close:hover {background: #e9ecef;color: #333;}
.modal-body {padding: 20px;overflow-y: auto;flex: 1;min-height: 0;}
.modal-section {margin-bottom: 25px;}
.modal-section:last-child {margin-bottom: 0;}

.modal-section-title {display: block;font-size: 18px;font-weight: 600;color: #333;padding: 2px 0;margin-bottom: 10px;}
.modal-section-title::before {content: '';display: inline-block;width: 10px;height: 10px;background: #d23836;border-radius: 50%;margin-right: 10px;}
.modal-section p,
.modal-section div {color: #555;line-height: 1.3;white-space: pre-wrap;padding: 20px;border: 1px solid #ccc;border-radius: 10px;}
.modal-section .badge-list {display: flex;flex-wrap: wrap;gap: 8px;margin-top: 10px;}
.modal-section .badge {display: inline-block;padding: 5px 12px;border-radius: 15px;background: #e9ecef;color: #495057;}
.modal-section .badge-lifcycle {background: #4dabf7;color: #fff;}
.modal-section .contact-list {list-style: none;padding: 0;}
.modal-section .contact-list li {padding: 10px;background: #f8f9fa;margin-bottom: 8px;border-radius: 4px;border-left: 3px solid #d23836;}
.modal-section .contact-list li strong {color: #333;margin-right: 10px;}
.modal-section .link-btn {display: inline-block;padding: 10px 20px;background: #d23836;color: #fff;text-decoration: none;border-radius: 4px;margin-top: 10px;transition: all 0.2s;}
.modal-section .link-btn:hover {background: #b82d2b;}

/* Pagination */
.pagination {display: flex;justify-content: center;align-items: center;gap: 5px;margin-top: 30px;padding: 20px 0;}
.pagination a,
.pagination strong {display: inline-block;padding: 8px 12px;border: 1px solid #ddd;border-radius: 4px;text-decoration: none;color: #333;transition: all 0.2s;}
.pagination a:hover {background: #d23836;color: #fff;border-color: #d23836;}
.pagination strong {background: #d23836;color: #fff;border-color: #d23836;}

/* Loading */
.loading {text-align: center;padding: 40px;color: #666;}
.no-results {text-align: center;padding: 60px 20px;color: #999;font-size: 16px;}
.no-results::before {content: '📋';display: block;font-size: 48px;margin-bottom: 15px;}