/* ── 문의하기 폼 ── */
.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(13,28,22,.03), 0 12px 28px -22px rgba(13,28,22,.4); transition: .2s; }
.ct-cm:hover { transform: translateY(-3px); border-color: #cfe9de; }
.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: 14px; }
.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 #bde4d4; border-radius:8px; background:var(--blue-l); }
.ct-reference-main { min-width:0; }
.ct-reference-label { display:block; margin-bottom:6px; color:var(--blue-d); 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-d); 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%; } }

/* ── 심사 신청 폼 (재디자인 · 팔레트는 폼에만 스코프) ── */
.ct-form { --f-green:#17a866; --f-deep:#0d8a50; --f-tint:#e8f5ee; --f-light:#43c489; --f-line:#e3e9e6; --f-field:#f4f7f6; --f-req:#e0533d; --f-ink:#13211b; --f-g6:#55635c; --f-g5:#7c8a83; --f-g4:#9aa7a1;
  background:#fff; border:1px solid var(--f-line); border-radius:26px; padding:24px clamp(28px,4vw,32px); box-shadow:0 2px 4px rgba(13,28,22,.03),0 40px 80px -50px rgba(13,28,22,.5); }
.ct-group { margin-bottom:24px; }
.ct-group:last-of-type { margin-bottom:26px; }
.ct-group + .ct-group { padding-top:12px; border-top:1px solid var(--f-line); }
.ct-ghead { display:flex; align-items:center; gap:10px; margin-bottom:0; }
.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-field label .badge { font-size:11px; font-weight:800; color:var(--f-deep); background:var(--f-tint); padding:2px 8px; border-radius:999px; }
.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:#cdd7d2; }
.ct-input:focus, .ct-textarea:focus, .ct-select:focus { outline:none; border-color:var(--f-green); box-shadow:0 0 0 4px rgba(23,168,102,.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; color:var(--f-g4);
  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.filled { color:var(--f-ink); }
.ct-file { display:flex; align-items:center; gap:11px; width:100%; min-height:50px; padding:13px 16px; cursor:pointer; border:1.5px dashed #c8d5cf; border-radius:13px; background:var(--f-field); transition:border-color .16s, background .16s, color .16s; }
.ct-file:hover { border-color:var(--f-light); background:#eef7f1; }
.ct-file input[type=file] { display:none; }
.ct-file-ic { width:30px; height:30px; border-radius:9px; background:#fff; display:flex; align-items:center; justify-content:center; flex:0 0 auto; box-shadow:0 2px 6px -3px rgba(13,28,22,.3); transition:background .16s; }
.ct-file-ic svg { width:16px; height:16px; color:var(--f-deep); transition:color .16s; }
.ct-file:hover .ct-file-ic { background:var(--f-green); }
.ct-file:hover .ct-file-ic svg { color:#fff; }
.ct-file-tx { font-size:14px; font-weight:600; color:var(--f-g5); line-height:1.35; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ct-file-tx .ct-file-sub { display:block; font-size:11.5px; font-weight:500; color:var(--f-g4); }
.ct-file.has { border-style:solid; border-color:#cbe8d7; background:var(--f-tint); }
.ct-file.has .ct-file-tx { color:var(--f-ink); font-weight:700; }
.ct-file.has .ct-file-ic { background:var(--f-green); }
.ct-file.has .ct-file-ic svg { color:#fff; }
.ct-file.err { border-style:solid; border-color:var(--f-req); background:#fdecea; }
.ct-file.err .ct-file-tx { color:var(--f-req); }
.ct-file.err .ct-file-ic svg { color:var(--f-req); }
.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-green); border-color:var(--f-green); }
.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(23,168,102,.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(--grad); 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 { filter:brightness(.95); transform:translateY(-2px); }
.ct-submit:active { transform:translateY(0); }
.ct-submit:disabled { opacity:.6; cursor:default; }
.ct-submit svg { width:19px; height:19px; }
.ct-note { margin-top:16px; display:flex; align-items:center; justify-content:center; gap:7px; font-size:13px; color:var(--f-g4); }
.ct-note svg { width:15px; height:15px; color:var(--f-light); flex:0 0 auto; }
.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; } }

/* ═══════════════════════════════════════════════════════
   페이 스튜디오 홈 — 간편결제 플랫폼 전용(py-*)
   ═══════════════════════════════════════════════════════ */
