/* 디지털 무료견적 폼 CSS — pay 폼 레이아웃 이식 · 블루 팔레트 */
.ct-wrap { max-width: 780px; margin: 0 auto; }
.ct-channels-mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0 auto clamp(26px,4vw,38px); }
.ct-cm { display: flex; align-items: center; gap: 13px; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 15px 16px; box-shadow: 0 1px 2px rgba(24,28,50,.03), 0 12px 28px -22px rgba(24,28,50,.35); transition: .2s; }
.ct-cm:hover { transform: translateY(-3px); border-color: #cdd9f5; }
.ct-cm-ic { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 13px; background: var(--blue-l); color: var(--blue-d); display: flex; align-items: center; justify-content: center; font-size: 21px; }
.ct-cm-tx { min-width: 0; }
.ct-cm-lab { display: block; font-size: 11.5px; font-weight: 700; color: var(--gray2); }
.ct-cm-val { display: block; margin-top: 2px; font-size: 14px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.ct-cm-val.mail { font-size: 13px; }
.ct-cm-val em { font-style: normal; font-weight: 600; color: var(--gray2); }
@media (max-width:680px){ .ct-channels-mini { grid-template-columns: 1fr; } }

/* 게시물 기반 문의 출처 */
.ct-reference { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:18px; margin:0 auto clamp(22px,4vw,32px); padding:clamp(18px,3vw,24px); border:1px solid #cdddf7; border-radius:8px; background:var(--blue-l); }
.ct-reference-main { min-width:0; }
.ct-reference-label { display:block; margin-bottom:6px; color:var(--blue); font-size:clamp(.75rem,1.7vw,.82rem); font-weight:700; }
.ct-reference-title { margin:0; color:var(--navy); font-size:clamp(1rem,2.4vw,1.15rem); line-height:1.5; overflow-wrap:anywhere; }
.ct-reference p { margin:7px 0 0; color:var(--gray); font-size:clamp(.8rem,1.8vw,.9rem); line-height:1.65; }
.ct-reference .ct-reference-link { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:40px; padding:0 14px; border:1px solid var(--blue); border-radius:8px; color:var(--blue); background:#fff; font-size:clamp(.8rem,1.8vw,.88rem); font-weight:700; white-space:nowrap; }
.ct-reference .ct-reference-link:hover { color:#fff; background:var(--blue); }
@media (max-width:640px){ .ct-reference { grid-template-columns:1fr; gap:14px; } .ct-reference .ct-reference-link { width:100%; } }

/* ── 폼 (pay 레이아웃 · 블루 팔레트, 폼에만 스코프) ── */
.ct-form { --f-blue:#2563eb; --f-deep:#1d4ed8; --f-tint:#eef4ff; --f-light:#60a5fa; --f-line:#e5eaf2; --f-field:#f5f8fc; --f-req:#e0533d; --f-ink:#1b2733; --f-g6:#55606e; --f-g5:#79818f; --f-g4:#9aa3b3;
  background:#fff; border:1px solid var(--f-line); border-radius:26px; padding:24px clamp(28px,4vw,32px); box-shadow:0 2px 4px rgba(24,28,50,.03),0 40px 80px -50px rgba(24,28,50,.4); }
.ct-group { margin-bottom:34px; }
.ct-group:last-of-type { margin-bottom:26px; }
.ct-group + .ct-group { padding-top:18px; border-top:1px solid var(--f-line); }
.ct-ghead { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.ct-ghead h3 { font-size:18px; font-weight:800; letter-spacing:-.02em; color:var(--f-ink); }
.ct-ghead .hint { font-size:12.5px; font-weight:700; color:var(--f-g4); }
.ct-row { display:grid; grid-template-columns:1fr 1fr; gap:18px 20px; }
.ct-field.full { grid-column:1 / -1; }
.ct-field label { display:flex; align-items:center; gap:6px; font-size:13.5px; font-weight:700; color:var(--f-g6); margin-bottom:8px; }
.ct-field label .req { color:var(--f-req); font-weight:800; }
.ct-input, .ct-textarea, .ct-select { width:100%; height:50px; border:1.5px solid var(--f-line); background:#fff; border-radius:13px; padding:0 16px; font-family:inherit; font-size:15px; color:var(--f-ink); transition:border-color .16s, box-shadow .16s; }
.ct-input::placeholder, .ct-textarea::placeholder { color:var(--f-g4); }
.ct-input:hover, .ct-textarea:hover, .ct-select:hover { border-color:#cdd7e8; }
.ct-input:focus, .ct-textarea:focus, .ct-select:focus { outline:none; border-color:var(--f-blue); box-shadow:0 0 0 4px rgba(37,99,235,.13); }
.ct-textarea { height:auto; min-height:150px; padding:13px 16px; resize:vertical; line-height:1.6; }
.ct-select { appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%237c8a83' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center; padding-right:44px; }
.ct-select:required:invalid { color:var(--f-g4); }

/* 작업 선택 칩 */
.ct-chips { display:flex; flex-wrap:wrap; gap:8px; }
.ct-chip { font-size:13px; font-weight:600; color:var(--f-g6); background:var(--f-field); border:1.5px solid var(--f-line); padding:9px 15px; border-radius:999px; cursor:pointer; transition:.15s; }
.ct-chip:hover { border-color:var(--f-blue); color:var(--f-blue); }
.ct-chip.on { background:var(--f-blue); border-color:var(--f-blue); color:#fff; }
.ct-referral-etc { margin-top:10px; }

.ct-agree { display:flex; align-items:center; gap:11px; margin:6px 0 24px; font-size:14px; color:var(--f-g6); }
.ct-agree input[type=checkbox] { position:absolute; opacity:0; width:0; height:0; }
.ct-agree-box { width:22px; height:22px; border-radius:7px; border:1.5px solid var(--f-line); background:#fff; flex:none; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .15s, border-color .15s; }
.ct-agree-box svg { width:13px; height:13px; color:#fff; opacity:0; transition:opacity .15s; }
.ct-agree input[type=checkbox]:checked + .ct-agree-box { background:var(--f-blue); border-color:var(--f-blue); }
.ct-agree input[type=checkbox]:checked + .ct-agree-box svg { opacity:1; }
.ct-agree input[type=checkbox]:focus-visible + .ct-agree-box { box-shadow:0 0 0 4px rgba(37,99,235,.18); }
.ct-agree .must { color:var(--f-req); font-weight:700; }
.ct-agree a { color:var(--f-deep); font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.ct-agree label[for] { cursor:pointer; }
.ct-submit { width:100%; height:58px; border:none; border-radius:15px; background:var(--f-blue); color:#fff; font-family:inherit; font-size:17px; font-weight:800; letter-spacing:-.01em; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:9px; transition:background .16s, transform .16s; }
.ct-submit:hover { background:var(--f-deep); transform:translateY(-2px); }
.ct-submit:active { transform:translateY(0); }
.ct-submit:disabled { opacity:.6; cursor:default; }
.ct-submit i { font-size:20px; }
.ct-note { margin-top:16px; display:flex; align-items:center; justify-content:center; gap:7px; font-size:13px; color:var(--f-g4); }
.ct-note i { font-size:15px; color:var(--f-light); }
.ct-hp { position:absolute; left:-9999px; width:1px; height:1px; opacity:0; pointer-events:none; }
@media (max-width:640px) {
  .ct-form { padding:30px 22px 28px; border-radius:20px; }
  .ct-row { grid-template-columns:1fr; gap:16px; }
}
.ct-done { text-align: center; padding: 30px 10px; }
.ct-done-ic { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; background: var(--blue-l); color: var(--blue); align-items: center; justify-content: center; font-size: 32px; margin-bottom: 16px; }
.ct-done h3 { font-size: 20px; font-weight: 700; margin: 0 0 8px; }
.ct-done p { font-size: 14.5px; color: var(--gray); margin: 0; line-height: 1.7; }

/* ── 개인정보 처리방침 모달 ── */
.ct-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; }
.ct-modal[hidden] { display: none; }
.ct-modal-dim { position: absolute; inset: 0; background: rgba(15, 23, 42, .55); backdrop-filter: blur(2px); }
.ct-modal-card { position: relative; width: 100%; max-width: 480px; max-height: 85vh; display: flex; flex-direction: column; background: #fff; border-radius: 18px; box-shadow: 0 30px 80px rgba(0, 0, 0, .3); overflow: hidden; animation: ctModalIn .22s ease; }
@keyframes ctModalIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ct-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.ct-modal-head h3 { font-size: 17px; font-weight: 700; margin: 0; color: var(--ink); }
.ct-modal-x { width: 32px; height: 32px; border: 0; background: var(--bg2); border-radius: 50%; color: var(--gray); cursor: pointer; font-size: 18px; display: inline-flex; align-items: center; justify-content: center; }
.ct-modal-x:hover { background: var(--line); }
.ct-modal-body { padding: 20px 22px; overflow-y: auto; }
.ct-pp-table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 0 0 14px; }
.ct-pp-table th, .ct-pp-table td { border: 1px solid var(--line); padding: 9px 11px; text-align: left; vertical-align: top; line-height: 1.5; }
.ct-pp-table th { width: 34%; background: var(--bg2); color: var(--ink); font-weight: 700; }
.ct-pp-table td { color: var(--gray); }
.ct-pp-note { margin: 0 0 14px; padding: 0; list-style: none; }
.ct-pp-note li { position: relative; padding-left: 14px; font-size: 12.5px; color: var(--gray); line-height: 1.7; }
.ct-pp-note li::before { content: '·'; position: absolute; left: 3px; color: var(--blue); font-weight: 700; }
.ct-pp-org { font-size: 12px; color: var(--gray2); line-height: 1.7; margin: 0; padding-top: 13px; border-top: 1px dashed var(--line); }
.ct-pp-org strong { color: var(--ink); }
.ct-modal-foot { padding: 14px 22px 20px; border-top: 1px solid var(--line); }
.ct-modal-agree { width: 100%; background: var(--blue); color: #fff; font-weight: 700; font-size: 14.5px; padding: 13px; border: 0; border-radius: 11px; cursor: pointer; transition: .15s; font-family: inherit; }
.ct-modal-agree:hover { background: var(--blue-d); }
@media (max-width:680px){ .ct-row { grid-template-columns: 1fr; } }
