/**
 * CBR IDX — Contact Page (v1.18.0)
 * shadcn "Contact2" 레이아웃을 CBR 브랜드(네이비/골드)로 구현.
 * 테마(Astra/Elementor)가 input/button 스타일을 덮어쓰므로 !important 가 필요합니다.
 */

.cbr-contact-page {
	--cbr-navy: #0A3D39;
	--cbr-gold: #2DD4BF;
	--cbr-ink: #1f2937;
	--cbr-muted: #6b7280;
	--cbr-line: #e5e7eb;
	--cbr-bg: #f4f6f9;

	padding: 64px 20px 80px;
	background: var(--cbr-bg);
}

.cbr-contact-inner {
	max-width: 1140px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 44px;
	align-items: stretch;
}

@media (min-width: 992px) {
	.cbr-contact-inner {
		flex-direction: row;
		gap: 72px;
	}
}

/* ---------------------------------------------------------------- 좌측 */

.cbr-contact-intro {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
	flex: 1 1 380px;
	max-width: 460px;
}

.cbr-contact-title {
	margin: 0 0 12px !important;
	font-size: clamp(2.4rem, 5vw, 3.4rem);
	line-height: 1.1;
	font-weight: 700;
	color: var(--cbr-navy);
	letter-spacing: -0.02em;
}

.cbr-contact-desc {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--cbr-muted);
}

.cbr-contact-details h3 {
	margin: 0 0 18px !important;
	font-size: 1.35rem;
	font-weight: 700;
	color: var(--cbr-navy);
}

.cbr-contact-details ul {
	margin: 0 0 20px !important;
	padding: 0 !important;
	list-style: none !important;
}

.cbr-contact-details li {
	display: flex;
	gap: 10px;
	padding: 11px 0;
	border-bottom: 1px solid var(--cbr-line);
	font-size: .98rem;
	color: var(--cbr-ink);
	line-height: 1.5;
}

.cbr-contact-details li:last-child {
	border-bottom: 0;
}

.cbr-cd-label {
	flex: 0 0 82px;
	font-weight: 700;
	color: var(--cbr-navy);
}

.cbr-contact-details a {
	color: var(--cbr-gold);
	text-decoration: none;
	font-weight: 600;
}

.cbr-contact-details a:hover {
	text-decoration: underline;
}

.cbr-contact-note {
	margin: 0;
	font-size: .95rem;
	color: var(--cbr-muted);
}

.cbr-contact-note a {
	color: var(--cbr-gold);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

/* ---------------------------------------------------------------- 우측 카드 */

.cbr-contact-card {
	flex: 1 1 520px;
	background: #fff;
	border: 1px solid var(--cbr-line);
	border-radius: 14px;
	padding: 36px;
	box-shadow: 0 2px 14px rgba(22, 35, 63, .05);
}

@media (max-width: 640px) {
	.cbr-contact-card {
		padding: 24px 20px;
	}
}

.cbr-contact-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0 !important;
}

.cbr-field-row {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.cbr-field-row .cbr-field {
	flex: 1 1 180px;
}

.cbr-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cbr-field label {
	font-size: .88rem;
	font-weight: 600;
	color: var(--cbr-navy);
	line-height: 1.2;
}

.cbr-contact-form input[type="text"],
.cbr-contact-form input[type="email"],
.cbr-contact-form input[type="tel"],
.cbr-contact-form select,
.cbr-contact-form textarea {
	width: 100% !important;
	height: auto !important;
	padding: 11px 13px !important;
	font-size: .97rem !important;
	color: var(--cbr-ink) !important;
	background: #fff !important;
	border: 1px solid var(--cbr-line) !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	transition: border-color .15s, box-shadow .15s;
	font-family: inherit;
	margin: 0 !important;
}

.cbr-contact-form textarea {
	min-height: 120px;
	resize: vertical;
	line-height: 1.55;
}

.cbr-contact-form input:focus,
.cbr-contact-form select:focus,
.cbr-contact-form textarea:focus {
	outline: none !important;
	border-color: var(--cbr-gold) !important;
	box-shadow: 0 0 0 3px rgba(201, 162, 39, .15) !important;
}

.cbr-contact-form ::placeholder {
	color: #9ca3af;
}

/* 허니팟 — 사람에겐 안 보임 */
.cbr-contact-form .cbr-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	opacity: 0 !important;
}

.cbr-contact-submit {
	width: 100% !important;
	margin-top: 4px !important;
	padding: 14px 20px !important;
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #fff !important;
	background: var(--cbr-navy) !important;
	border: 0 !important;
	border-radius: 8px !important;
	cursor: pointer;
	transition: background .15s, transform .08s;
	letter-spacing: .01em;
}

.cbr-contact-submit:hover {
	background: #115E59 !important;
}

.cbr-contact-submit:active {
	transform: translateY(1px);
}

.cbr-contact-submit:disabled {
	opacity: .6;
	cursor: not-allowed;
}

.cbr-contact-consent {
	margin: 0 !important;
	font-size: .8rem;
	color: var(--cbr-muted);
	text-align: center;
	line-height: 1.5;
}

/* ------------------------------------------- AJAX 완료/오류 메시지 (서버 렌더 폴백) */

.cbr-contact-card .cbr-ajax-msg,
.cbr-msg-ok,
.cbr-msg-err {
	padding: 14px 16px;
	border-radius: 8px;
	margin: 0 0 18px;
	font-size: .95rem;
	line-height: 1.45;
}

.cbr-msg-ok {
	background: #ecfdf5;
	border: 1px solid #6ee7b7;
	color: #065f46;
}

.cbr-msg-err {
	background: #fef2f2;
	border: 1px solid #fca5a5;
	color: #991b1b;
}

/* [hidden] 방어 — 테마 CSS 가 display 를 덮어쓰는 사례가 반복됨 */
.cbr-contact-page [hidden] {
	display: none !important;
}

/* ============================================================
   v1.21.0 — Contact 히어로
   높이/배경/정렬은 cbr-agents.css 의 .cbr-archive-hero 를 공유합니다.
   (min-height 300px + flex 세로중앙 → 서브텍스트가 1줄이든 2줄이든
    /agents/ 와 항상 같은 높이)

   여기서는 Contact 페이지에만 필요한 2가지만 처리:
     ① full-bleed  — 숏코드 페이지라 테마 컨테이너에 갇힘
     ② 타이포 리셋 — Astra 의 .entry-content h1/p 상속 제거
   높이 조정은 cbr-agents.css 의 --cbr-hero-h 한 곳만 수정하세요.
   ============================================================ */

/* ① 테마 컨테이너 밖으로 확장 → 화면 좌우 끝까지 */
.cbr-contact-hero,
.cbr-contact-page {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ② Astra 타이포그래피 상속 제거 (값은 cbr-agents.css 와 동일) */
.cbr-contact-hero .cbr-h1 {
	font-family: 'Playfair Display', serif !important;
	font-weight: 700 !important;
	font-size: 44px !important;
	line-height: 1.2 !important;
	color: #fff !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cbr-contact-hero .cbr-sub {
	font-size: 16px !important;
	line-height: 1.6 !important;
	color: #CFE0DD !important;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	max-width: 720px;
}

@media (max-width: 782px) {
	.cbr-contact-hero .cbr-h1 {
		font-size: 32px !important;
	}
}

/* 히어로 아래 본문 */
.cbr-contact-page {
	padding-top: 56px;
}

.cbr-contact-intro {
	justify-content: flex-start;
}

/* ============================================================
   v1.21.1 — Contact 히어로 내부 폭 정상화
   /agents/ 는 .cbr-agent-archive .ast-container{max-width:none;padding:0}
   로 테마 컨테이너 제한을 해제하지만, /contact/ 는 .entry-content 안이라
   Astra 의 최대폭/패딩이 살아있음 → .cbr-wrap 이 좁아져 서브텍스트가
   2줄로 접혔음. 아래로 /agents/ 와 동일한 1200px 를 확보.
   ============================================================ */

.cbr-contact-hero .cbr-wrap {
	width: 100% !important;
	max-width: 1200px !important;
	margin: 0 auto !important;
	padding: 0 24px !important;
	box-sizing: border-box;
}

/* 본문 영역도 동일 기준으로 정렬 */
.cbr-contact-page .cbr-contact-inner {
	max-width: 1200px;
	padding: 0 24px;
	box-sizing: border-box;
}
