/* LabDev.co.kr 브랜드 컬러 적용
   네이비(#173A5E, 신뢰감·전문성) + 앰버(#E08E2B, 포인트/CTA) 조합입니다.
   로고(assets/logo.svg)와 동일한 색상 값을 사용합니다. 필요시 자유롭게 수정하세요. */

:root {
	--lvcvi-primary: #173a5e;
	--lvcvi-primary-dark: #0f273f;
	--lvcvi-accent: #e08e2b;
	--lvcvi-accent-dark: #c07620;
	--lvcvi-border: #e2e5e9;
	--lvcvi-bg-soft: #f7f9fb;
	--lvcvi-text-muted: #5a6472;
}

/* 목록 그리드 */
.lvcvi-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(3, 1fr);
	margin: 24px 0;
}

.lvcvi-columns-1 { grid-template-columns: 1fr; }
.lvcvi-columns-2 { grid-template-columns: repeat(2, 1fr); }
.lvcvi-columns-3 { grid-template-columns: repeat(3, 1fr); }
.lvcvi-columns-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
	.lvcvi-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 600px) {
	.lvcvi-grid {
		grid-template-columns: 1fr !important;
	}
}

.lvcvi-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--lvcvi-border);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.lvcvi-card:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.lvcvi-card-thumb img {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
}

.lvcvi-card-body {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.lvcvi-card-title {
	margin: 0 0 8px;
	font-size: 1.1rem;
	line-height: 1.4;
}

.lvcvi-card-title a {
	color: #1a1a1a;
	text-decoration: none;
}

.lvcvi-card-excerpt {
	color: var(--lvcvi-text-muted);
	font-size: 0.92rem;
	line-height: 1.6;
	flex: 1;
	margin-bottom: 12px;
}

.lvcvi-card-link {
	color: var(--lvcvi-primary);
	font-weight: 600;
	text-decoration: none;
	font-size: 0.92rem;
}

.lvcvi-card-link:hover {
	color: var(--lvcvi-primary-dark);
	text-decoration: underline;
}

.lvcvi-empty {
	color: var(--lvcvi-text-muted);
}

/* 문의 폼 */
.lvcvi-contact-form {
	max-width: 560px;
	margin: 24px 0;
}

.lvcvi-contact-form form {
	background: var(--lvcvi-bg-soft);
	border: 1px solid var(--lvcvi-border);
	border-radius: 8px;
	padding: 24px;
}

.lvcvi-contact-form label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
	font-size: 0.92rem;
}

.lvcvi-contact-form input[type="text"],
.lvcvi-contact-form input[type="email"],
.lvcvi-contact-form select,
.lvcvi-contact-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--lvcvi-border);
	border-radius: 6px;
	font-size: 0.95rem;
	font-family: inherit;
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.lvcvi-contact-form input[type="text"]:focus,
.lvcvi-contact-form input[type="email"]:focus,
.lvcvi-contact-form select:focus,
.lvcvi-contact-form textarea:focus {
	outline: none;
	border-color: var(--lvcvi-accent);
	box-shadow: 0 0 0 3px rgba(224, 142, 43, .18);
}

.lvcvi-contact-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173a5e' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 16px;
	padding-right: 36px;
}

.lvcvi-form-section-title {
	margin: 22px 0 10px;
	padding-top: 14px;
	border-top: 1px dashed var(--lvcvi-border);
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: var(--lvcvi-accent-dark);
}
.lvcvi-contact-form form > p.lvcvi-form-section-title:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.lvcvi-field-hint {
	display: block;
	margin-top: 6px;
	font-size: .8rem;
	font-weight: 400;
	color: var(--lvcvi-text-muted);
}

.lvcvi-contact-form button {
	background: var(--lvcvi-accent);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 12px 28px;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}

.lvcvi-contact-form button:hover {
	background: var(--lvcvi-accent-dark);
}

.lvcvi-success {
	color: #1a7a3d;
	background: #eafaf0;
	border: 1px solid #bfe8cf;
	padding: 14px 16px;
	border-radius: 6px;
}

.lvcvi-error {
	color: #a3231f;
	background: #fdeceb;
	border: 1px solid #f3c1bd;
	padding: 14px 16px;
	border-radius: 6px;
	margin-bottom: 12px;
}

/* 프로젝트 문의 게시판 ([lv_inquiry_board]) */
.lvcvi-board-back {
	display: inline-block;
	margin-bottom: 18px;
	font-size: .9rem;
	font-weight: 600;
	color: var(--lvcvi-text-muted);
	text-decoration: none;
}
.lvcvi-board-back:hover { color: var(--lvcvi-accent-dark); }

.lvcvi-board-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}
.lvcvi-board-count { color: var(--lvcvi-text-muted); font-size: .9rem; }
.lvcvi-board-write-btn {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	background: var(--lvcvi-accent);
	color: #fff;
	border-radius: 6px;
	font-weight: 600;
	font-size: .9rem;
	text-decoration: none;
}
.lvcvi-board-write-btn:hover { background: var(--lvcvi-accent-dark); color: #fff; }

.lvcvi-board-table { width: 100%; border-collapse: collapse; border-top: 2px solid var(--lvcvi-primary); }
.lvcvi-board-table th, .lvcvi-board-table td {
	padding: 12px 10px;
	border-bottom: 1px solid var(--lvcvi-border);
	font-size: .92rem;
	text-align: center;
}
.lvcvi-board-table th { color: var(--lvcvi-primary); font-weight: 700; background: var(--lvcvi-bg-soft); }
.lvcvi-board-col-title { text-align: left; }
.lvcvi-board-col-title a { color: inherit; font-weight: 600; text-decoration: none; }
.lvcvi-board-col-title a:hover { color: var(--lvcvi-accent-dark); }
.lvcvi-board-col-no, .lvcvi-board-col-name, .lvcvi-board-col-date { color: var(--lvcvi-text-muted); width: 100px; }

.lvcvi-board-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 24px; }
.lvcvi-board-page-link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 6px;
	color: var(--lvcvi-primary); font-size: .86rem; font-weight: 600;
	border: 1px solid var(--lvcvi-border);
}
.lvcvi-board-page-link:hover { border-color: var(--lvcvi-accent); }
.lvcvi-board-page-link.is-active { background: var(--lvcvi-primary); border-color: var(--lvcvi-primary); color: #fff; }

.lvcvi-privacy-box {
	border: 1px solid var(--lvcvi-border);
	border-radius: 8px;
	margin-bottom: 18px;
	background: var(--lvcvi-bg-soft);
}
.lvcvi-privacy-box summary { cursor: pointer; padding: 12px 14px; font-weight: 600; font-size: .88rem; color: var(--lvcvi-primary); }
.lvcvi-privacy-body {
	max-height: 240px;
	overflow-y: auto;
	padding: 0 16px 16px;
	font-size: .78rem;
	line-height: 1.7;
	color: var(--lvcvi-text-muted);
	white-space: pre-line;
}

.lvcvi-contact-form input[type="password"],
.lvcvi-contact-form input[type="file"] {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid var(--lvcvi-border);
	border-radius: 6px;
	font-size: .95rem;
	font-family: inherit;
	background: #fff;
}
.lvcvi-board-privacy-agree label { display: flex !important; align-items: center; gap: 8px; font-weight: 500 !important; }
.lvcvi-board-privacy-agree input { width: auto; margin: 0; }

.lvcvi-board-captcha-row { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
.lvcvi-board-captcha-img { border: 1px solid var(--lvcvi-border); border-radius: 6px; display: block; }
.lvcvi-board-captcha-refresh { font-size: .82rem; color: var(--lvcvi-text-muted); text-decoration: none; }
.lvcvi-board-captcha-refresh:hover { color: var(--lvcvi-accent-dark); }

.lvcvi-board-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lvcvi-board-lock-prompt {
	text-align: center;
	padding: 50px 20px;
	border: 1px solid var(--lvcvi-border);
	border-radius: 8px;
}
.lvcvi-board-lock-prompt h3 { margin: 0 0 8px; color: var(--lvcvi-primary); }
.lvcvi-board-lock-prompt p { color: var(--lvcvi-text-muted); margin: 0 0 18px; }
.lvcvi-board-lock-prompt form { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
.lvcvi-board-lock-prompt input[type="password"] {
	padding: 10px 14px; border: 1px solid var(--lvcvi-border); border-radius: 6px; font-size: .95rem; min-width: 200px;
}
.lvcvi-board-lock-prompt button {
	background: var(--lvcvi-accent); color: #fff; border: none; border-radius: 6px;
	padding: 10px 22px; font-weight: 600; cursor: pointer;
}
.lvcvi-board-lock-prompt button:hover { background: var(--lvcvi-accent-dark); }

.lvcvi-board-view h3 { margin: 0 0 8px; color: var(--lvcvi-primary); }
.lvcvi-board-view-meta {
	display: flex; gap: 14px; color: var(--lvcvi-text-muted); font-size: .88rem;
	padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--lvcvi-border);
}
.lvcvi-board-admin-badge { background: var(--lvcvi-accent); color: #fff; padding: 2px 8px; border-radius: 4px; font-size: .76rem; font-weight: 700; }
.lvcvi-board-view-body { line-height: 1.8; margin-bottom: 20px; min-height: 60px; }
.lvcvi-board-attachment {
	display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px;
	border: 1px solid var(--lvcvi-border); border-radius: 6px; font-size: .88rem; font-weight: 600; color: var(--lvcvi-primary);
	text-decoration: none;
}
.lvcvi-board-attachment:hover { border-color: var(--lvcvi-accent); color: var(--lvcvi-accent-dark); }

@media (max-width: 640px) {
	.lvcvi-board-col-name, .lvcvi-board-col-date { display: none; }
}
