#pct-contact-root, #pct-contact-root * {
  box-sizing: border-box !important;
}

#pct-contact-root {
  --pct-purple:        #9575cd;
  --pct-purple-deep:   #7e57c2;
  --pct-purple-soft:   #f3eefb;
  --pct-purple-soft-2: #e9e0f7;
  --pct-line:          #d8c8f0;
  --pct-ink:           #241b33;
  --pct-muted:         #6b6178;
  --pct-error:         #c0392b;
  --pct-success:       #2e7d32;
  --pct-radius:        16px;
  font-family: "Sarabun", "Noto Sans Thai", Arial, sans-serif !important;
  width: 100% !important;
  display: block !important;
  padding: clamp(24px, 5vw, 56px) 16px !important;
  background: linear-gradient(160deg, #f9f6ff 0%, #f3ecff 55%, #eee5ff 100%) !important;
}

#pct-contact-root .pct-card {
  max-width: 720px !important;
  margin: 0 auto !important;
  background: #ffffff !important;
  border-radius: var(--pct-radius) !important;
  border: 1px solid var(--pct-line) !important;
  box-shadow: 0 20px 50px rgba(124, 58, 237, 0.12) !important;
  padding: clamp(24px, 4vw, 48px) !important;
}

#pct-contact-root .pct-head {
  text-align: center !important;
  margin-bottom: 28px !important;
}

#pct-contact-root .pct-eyebrow {
  display: inline-block !important;
  font-family: "Kanit", "Sarabun", sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  color: var(--pct-purple-deep) !important;
  background: var(--pct-purple-soft) !important;
  border: 1px solid var(--pct-line) !important;
  border-radius: 999px !important;
  padding: 5px 14px !important;
  margin-bottom: 14px !important;
}

#pct-contact-root .pct-title {
  font-family: "Kanit", "Sarabun", sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(22px, 3vw, 28px) !important;
  color: var(--pct-ink) !important;
  margin: 0 0 8px 0 !important;
  line-height: 1.3 !important;
}

#pct-contact-root .pct-sub {
  font-size: 15px !important;
  color: var(--pct-muted) !important;
  margin: 0 !important;
}

#pct-contact-root .pct-form {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
}

#pct-contact-root .pct-row-2 {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 18px !important;
}

@media (max-width: 560px) {
  #pct-contact-root .pct-row-2 {
    grid-template-columns: 1fr !important;
  }
}

#pct-contact-root .pct-field {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

#pct-contact-root .pct-field label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pct-ink) !important;
}

#pct-contact-root .pct-req {
  color: var(--pct-error) !important;
}

#pct-contact-root input[type="text"],
#pct-contact-root input[type="email"],
#pct-contact-root input[type="tel"],
#pct-contact-root select,
#pct-contact-root textarea {
  width: 100% !important;
  font-family: inherit !important;
  font-size: 15px !important;
  color: var(--pct-ink) !important;
  background: #faf8ff !important;
  border: 1.5px solid var(--pct-line) !important;
  border-radius: 10px !important;
  padding: 11px 14px !important;
  outline: none !important;
  transition: border-color .15s ease, box-shadow .15s ease !important;
}

#pct-contact-root textarea {
  resize: vertical !important;
  min-height: 110px !important;
}

#pct-contact-root input:focus,
#pct-contact-root select:focus,
#pct-contact-root textarea:focus {
  border-color: var(--pct-purple) !important;
  box-shadow: 0 0 0 4px rgba(149, 117, 205, .18) !important;
}

#pct-contact-root input.pct-invalid,
#pct-contact-root select.pct-invalid,
#pct-contact-root textarea.pct-invalid {
  border-color: var(--pct-error) !important;
  box-shadow: 0 0 0 4px rgba(192, 57, 43, .12) !important;
}

#pct-contact-root .pct-err {
  display: none !important;
  font-size: 12.5px !important;
  color: var(--pct-error) !important;
}

#pct-contact-root .pct-err.pct-show {
  display: block !important;
}

#pct-contact-root .pct-hp {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

#pct-contact-root .pct-captcha-field {
  background: var(--pct-purple-soft) !important;
  border: 1px dashed var(--pct-line) !important;
  border-radius: 12px !important;
  padding: 14px 16px !important;
}

#pct-contact-root .pct-captcha-q {
  color: var(--pct-purple-deep) !important;
  font-size: 16px !important;
}

#pct-contact-root .pct-submit {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  font-family: "Kanit", "Sarabun", sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, var(--pct-purple) 0%, var(--pct-purple-deep) 100%) !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 14px 20px !important;
  cursor: pointer !important;
  box-shadow: 0 12px 26px rgba(126, 87, 194, .32) !important;
  transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease !important;
}

#pct-contact-root .pct-submit:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 32px rgba(126, 87, 194, .4) !important;
}

#pct-contact-root .pct-submit:disabled {
  opacity: .7 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

#pct-contact-root .pct-submit-spinner {
  display: none !important;
  width: 16px !important;
  height: 16px !important;
  border: 2px solid rgba(255,255,255,.5) !important;
  border-top-color: #ffffff !important;
  border-radius: 50% !important;
  animation: pct-spin .7s linear infinite !important;
}

#pct-contact-root .pct-submit.pct-loading .pct-submit-spinner {
  display: inline-block !important;
}

@keyframes pct-spin {
  to { transform: rotate(360deg) !important; }
}

#pct-contact-root .pct-status {
  margin: 4px 0 0 0 !important;
  font-size: 14px !important;
  text-align: center !important;
  min-height: 20px !important;
}

#pct-contact-root .pct-status.pct-status-ok {
  color: var(--pct-success) !important;
  font-weight: 600 !important;
}

#pct-contact-root .pct-status.pct-status-error {
  color: var(--pct-error) !important;
  font-weight: 600 !important;
}
