:root {
  --hsj-bg: #ffffff;
  --hsj-line: #e5e7eb;
  --hsj-soft: #f8fafc;
  --hsj-text: #1f2328;
  --hsj-muted: #6b7280;
  --hsj-primary: #2563eb;
  --hsj-danger: #dc2626;
  --hsj-radius: 10px;
}

.hsj-card {
  overflow: hidden;
}

.hsj-head {
  padding: 22px 26px;
  border-bottom: 1px solid var(--hsj-line);
  background: linear-gradient(#fff, #fafbff)
}

.hsj-head h3 {
  margin: 0;
  font-size: 20px
}

.hsj-body {
  padding: 26px
}



.hsj-input {
  border: 1px solid #CCD0D7;
  border-radius: 0px !important;
  background-color: white !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 24px !important;
  padding: 12px 16px !important;
  margin-bottom: 20px !important;
  color: #1F2328 !important;
  width: 80%;
}

.hsj-grid-box {
  display: flex;
  margin-bottom: 15px;
  align-items: center;
  border-bottom: 1px solid #E8EAED;
}

.hsj-input::placeholder {
  color: #768293;
}



.hsj-label {
  font-size: 16px;
  line-height: 24px;
  font-weight: 600;
  display: block;
  margin-bottom: 5px;
  width: 220px;
  color: #1f2328;
}

.hsj-required::after {
  content: " *";
  color: var(--hsj-danger)
}

.hsj-textarea {
  width: 80%;
  padding: 12px 14px;
  border: 1px solid var(--hsj-line);
  border-radius: 0px;
  background: #fff !important;
  font-size: 16px !important;
  line-height: 24px !important;
  font-weight: 500;
  color: var(--hsj-text);
}

.hsj-input:focus,
.hsj-textarea:focus {
  outline: none;
  border-color: #b3c7ff;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.hsj-textarea {
  min-height: 160px;
  resize: vertical
}

.hsj-privacy-box {
  width: 80%;
  margin-bottom: 16px;
}

.hsj-phone {
  display: flex;
  gap: 10px;
  align-items: center
}

.hsj-dash {
  font-size: 16px !important;
  color: var(--hsj-muted);
  position: relative;
  top: -10px;
}

/* 파일 입력 */
input[type="file"].hsj-file {
  padding: 0px 10px 10px 0px;
  font-size: 16px !important;
  line-height: 24px;
  color: #1f2328;
}

input[type="file"].hsj-file::file-selector-button {
  margin-right: 12px;
  padding: 8px 14px;
  border: 0;
  border-radius: 0px;
  background: var(--hsj-text);
  color: #fff;
  cursor: pointer;
  font-weight: 700;
}

.hsj-help {
  color: var(--hsj-muted);
  font-size: 12px;
  margin-top: 6px
}

/* 개인정보 */
.hsj-privacy {
  border: 1px solid var(--hsj-line);
  background: var(--hsj-soft);
  padding: 14px;
  max-height: 160px;
  overflow: auto;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  color: #1f2328;
}

.hsj-agree {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 10px;
  flex-direction: row;
}

.hsj-agree span {
  font-size: 16px;
  line-height: 24px;
  color: var(--hsj-text);
  font-weight: 500;
}

.hsj-errors {
  padding: 0 26px
}

.hsj-alert {
  margin: 18px 26px 0;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid;
}

.hsj-alert.error {
  border-color: #fecaca;
  background: #fff1f2;
  color: #991b1b;
  font-size: 16px;
}

.hsj-alert.success {
  border-color: #bbf7d0;
  background: #ecfdf5;
  color: #065f46;
  font-size: 16px;
}

#hsj-file-warnings {
  margin-top: 12px;
  padding: 0 26px
}

.hsj-actions {
  margin-top: 50px;
  display: flex;
  justify-content: center;
}

.hsj-btn {
  display: inline-block;
  padding: 12px 65px !important;
  background: #1771F8;
  color: #fff !important;
  text-decoration: none;
  border: solid 1px #1771F8;
  border-radius: 0 !important;
  cursor: pointer;
  transition: background 0.3s;
  font-size: 16px !important;
  line-height: 24px;
  font-weight: 500;
  width: 200px;
}

.hsj-btn:hover {
  transform: translateY(-1px)
}

.hsj-btn:active {
  transform: translateY(0)
}

.hsj-loading {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, .6);
  backdrop-filter: blur(2px);
  z-index: 9999;
}

.hsj-loading.show {
  display: flex;
}

.hsj-spinner {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 4px solid rgba(37, 99, 235, .25);
  border-top-color: var(--hsj-primary);
  animation: hsj-spin .8s linear infinite;
}

@keyframes hsj-spin {
  to {
    transform: rotate(360deg);
  }
}

.hsj-btn.is-loading {
  pointer-events: none;
  opacity: .85;
}

.hsj-btn.is-loading::after {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: .6em;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .6);
  border-top-color: #fff;
  animation: hsj-spin .8s linear infinite;
  vertical-align: -2px;
}

.hsj-textarea {
  font-weight: 400;
}
.hsj-phone {
  width: 80%;
}

@media (max-width:768px) {
  .hsj-grid-box {
    flex-direction: column;
    align-items: flex-start;
  }

  .hsj-privacy-box,
  .hsj-input,
  .hsj-textarea, .hsj-phone {
    width: 100%;
  }
}