/* contact 모듈 — 중립(기본) 색상. 어느 테마에 넣어도 자연스럽도록 회색조 위주.
   모든 셀렉터는 .plc 로 스코프 → 테마 CSS 와 충돌 최소화. */

.plc {
  --plc-line: #e3e6e4;
  --plc-line-strong: #cfd4d1;
  --plc-text: #20262a;
  --plc-soft: #5b6168;
  --plc-faded: #8a9097;
  --plc-bg: #ffffff;
  --plc-bg-soft: #f6f8f7;
  --plc-btn: #1f2937;
  --plc-btn-hover: #374151;
  --plc-ok: #15803d;
  --plc-err: #c0392b;

  box-sizing: border-box;
  max-width: 640px;
  margin: 22px auto;
  padding: 26px 26px 24px;
  background: var(--plc-bg);
  border: 1px solid var(--plc-line);
  border-radius: 14px;
  font-family: inherit;
  color: var(--plc-text);
}
.plc *, .plc *::before, .plc *::after { box-sizing: border-box; }

.plc-head { margin-bottom: 18px; }
.plc-title { margin: 0 0 8px; font-size: 1.3rem; font-weight: 700; letter-spacing: -.01em; color: var(--plc-text); }
.plc-desc { margin: 0; font-size: .92rem; line-height: 1.65; color: var(--plc-soft); }

.plc-form { display: flex; flex-direction: column; gap: 14px; }
.plc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.plc-field { display: flex; flex-direction: column; gap: 6px; }
.plc-label { font-size: .85rem; font-weight: 600; color: var(--plc-soft); }
.plc-label i { color: var(--plc-err); font-style: normal; }

.plc-input, .plc-textarea {
  width: 100%;
  padding: 11px 13px;
  font-size: .95rem;
  font-family: inherit;
  color: var(--plc-text);
  background: var(--plc-bg);
  border: 1px solid var(--plc-line-strong);
  border-radius: 9px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.plc-textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
.plc-input:focus, .plc-textarea:focus {
  border-color: #9aa3a0;
  box-shadow: 0 0 0 3px rgba(31, 41, 55, .07);
}
.plc-input::placeholder, .plc-textarea::placeholder { color: var(--plc-faded); }

/* 허니팟 — 화면 밖으로 완전히 숨김 (스크린리더/봇만 접근) */
.plc-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.plc-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.plc-btn {
  appearance: none;
  padding: 12px 28px;
  font-size: .95rem;
  font-weight: 700;
  font-family: inherit;
  color: #fff;
  background: var(--plc-btn);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  transition: background .15s, opacity .15s;
}
.plc-btn:hover { background: var(--plc-btn-hover); }
.plc-btn:disabled { background: #aab0b4; cursor: not-allowed; }

.plc-msg { font-size: .9rem; font-weight: 600; }
.plc-msg-ok  { color: var(--plc-ok); }
.plc-msg-err { color: var(--plc-err); }
.plc-msg-info { color: var(--plc-soft); }

@media (max-width: 540px) {
  .plc { padding: 22px 18px; border-radius: 12px; }
  .plc-grid { grid-template-columns: 1fr; }
  .plc-btn { width: 100%; }
  .plc-actions { gap: 10px; }
}
