.kf-wrap {
  --gap: 8px;
  --pad: 10px;
  --radius: 6px;
  --bd: #d1d5db;
  --blue: #0a5fff;
  --red: #ff2d55;
  --text: #111;
  --h: 34px;
  --fs: 14px;

  background: rgba(255,255,255,0.96);
  border-radius: var(--radius);
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
  padding: var(--pad);
  max-width: 1000px;
  margin: 0 auto;
  font-size: var(--fs);
  position: relative;
  z-index: 1000;
}

.kf-wrap.is-overlay {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 60px;
}

.kf-spacer { width:100%; height:0; }

.kf-row { display:flex; flex-wrap:wrap; gap:var(--gap); justify-content:center; }
.kf-row-fields { flex:1; display:flex; flex-wrap:wrap; gap:var(--gap); justify-content:center; }
.kf-row-actions { margin-top:8px; display:flex; gap:var(--gap); flex-wrap:wrap; justify-content:center; }

/* 필드 */
.kf-field select,
.kf-field input[type="text"] {
  width: 100%;
  height: var(--h);
  padding: 0 8px;
  border: 1px solid var(--bd);
  border-radius: 5px;
  font-size: var(--fs);
  background: #fff;
  box-sizing: border-box;
}
.kf-field select:focus,
.kf-field input[type="text"]:focus {
  border-color: var(--blue);
  outline: none;
  box-shadow: 0 0 0 2px rgba(10,95,255,.1);
}

/* 왕복/편도 */
.kf-triptype { display:flex; gap:6px; align-items:center; }
.kf-triptype input { position:absolute; opacity:0; }
.kf-triptype label {
  cursor:pointer;
  padding: 0 12px;
  height: 28px;
  line-height: 26px;
  border:1px solid var(--bd);
  border-radius: 999px;
  font-size: 13px;
  background:#fff;
}
.kf-triptype input:checked + label {
  border-color: var(--blue);
  color: var(--blue);
  background:#f3f7ff;
}

/* 인원 */
.kf-counter { display:flex; align-items:center; gap:4px; border:1px solid var(--bd); border-radius:5px; padding:0 4px; height:var(--h); background:#fff; }
.kf-counter button { width:24px; height:24px; border:1px solid var(--bd); border-radius:4px; background:#fff; cursor:pointer; font-size:16px; line-height:22px; }
.kf-counter input { width:28px; text-align:center; border:none; background:transparent; }
.kf-number-label { font-size:13px; margin-left:2px; }

/* 버튼 */
.kf-btn {
  height: var(--h);
  padding: 0 12px;
  border-radius: 5px;
  border: 1px solid transparent;
  font-weight:600;
  font-size: 14px;
  cursor: pointer;
}
.kf-btn-primary { background: var(--blue); color: #fff; border-color: var(--blue); }
.kf-btn-outline { background:#fff; border-color: var(--bd); color:#111; }
.kf-btn-danger { background: var(--red); color: #fff; border-color: var(--red); }

.kf-schedule { font-size:13px; color:var(--blue); font-weight:600; text-decoration:none; }
.kf-schedule:hover { text-decoration:underline; }

/* 반응형 */
@media (max-width:1024px){
  .kf-wrap.is-overlay{ position:relative !important; left:auto !important; transform:none !important; top:auto !important; }
  .kf-spacer{ height:0 !important; }
  .kf-row-fields{ flex-direction:column; }
}
@media (max-width:640px){
  .kf-btn{ flex:1 1 100%; }
}
