.hc-cf-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

.hc-cf-grid {
  display: grid;
  gap: 14px;
}

.hc-cf-cols-1 .hc-cf-grid { grid-template-columns: 1fr; }
.hc-cf-cols-2 .hc-cf-grid { grid-template-columns: 1fr 1fr; }

.hc-cf-span-2 { grid-column: span 2; }

.hc-cf-field { position: relative; }
.hc-cf-input {
  width: 100%;
  box-sizing: border-box;
}

.hc-cf-help {
  margin-top: 6px;
  font-size: 0.9em;
  opacity: 0.75;
}

.hc-cf-error {
  margin-top: 6px;
  font-size: 0.9em;
  color: #b00020;
  min-height: 1em;
}

.hc-cf-field.is-error .hc-cf-input,
.hc-cf-field.is-error select,
.hc-cf-field.is-error textarea {
  border-color: #b00020 !important;
  outline-color: #b00020 !important;
}

.hc-cf-actions { margin-top: 14px; display: flex; flex-direction: column; gap: 10px; }

.hc-cf-form-message {
  font-size: 0.95em;
  min-height: 1.2em;
}

.hc-cf-form-message.is-error { color: #b00020; }
.hc-cf-form-message.is-success { color: #0a7a2f; }

/* Default labels */
.hc-cf-label-style-default .hc-cf-label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

/* Floating + Border labels use label after input */
.hc-cf-label-style-floating .hc-cf-label,
.hc-cf-label-style-border .hc-cf-label {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  transition: all 160ms ease;
  padding: 0 6px;
  background: transparent;
  line-height: 1.1;
}
/* Textarea: label iets hoger zetten (enkel voor floating labels) */
.hc-cf-label-style-floating textarea.hc-cf-input + .hc-cf-label{
  top: 20%;
}

.hc-cf-label-style-floating .hc-cf-input::placeholder,
.hc-cf-label-style-border .hc-cf-input::placeholder {
  color: transparent;
}

/* Floating: moves on focus or when not empty */
.hc-cf-label-style-floating .hc-cf-input:focus + .hc-cf-label,
.hc-cf-label-style-floating .hc-cf-input:not(:placeholder-shown) + .hc-cf-label,
.hc-cf-label-style-floating select:focus + .hc-cf-label,
.hc-cf-label-style-floating select:valid + .hc-cf-label,
.hc-cf-label-style-floating textarea:focus + .hc-cf-label,
.hc-cf-label-style-floating textarea:not(:placeholder-shown) + .hc-cf-label {
  top: -10px;
  transform: translateY(0);
  font-size: 0.82em;
  background: var(--hc-cf-label-bg, #fff);
}

/* Border: label always on the border/top */
.hc-cf-label-style-border .hc-cf-label {
  top: -10px;
  transform: translateY(0);
  font-size: 0.82em;
  background: var(--hc-cf-label-bg, #fff);
}

/* Radios */
.hc-cf-radio-legend { font-weight: 600; margin-bottom: 8px; }
.hc-cf-radio { display: flex; gap: 8px; align-items: center; margin: 6px 0; }

/* Icon inside the input/control area */
.hc-cf-control{
  position: relative;
}

.hc-cf-field-icon{
  display: none;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #b00020; /* zelfde rood als border + error tekst */
  line-height: 1;
  pointer-events: none;
}

.hc-cf-field.is-error .hc-cf-field-icon{
  display: block;
}

/* ruimte maken zodat tekst niet onder het icoon komt */
.hc-cf-field.is-error input.hc-cf-input,
.hc-cf-field.is-error textarea.hc-cf-input,
.hc-cf-field.is-error select.hc-cf-input:not(.hc-cf-phone-country){
  padding-right: 2.2em;
}
/* Phone field: country dropdown + input */
.hc-cf-phone-group{
  display: flex;
  gap: 10px;
  align-items: stretch;
}

.hc-cf-phone-country{
  width: 120px;
  flex: 0 0 auto;
}

.hc-cf-phone-input-wrap{
  position: relative; /* label positioning for floating/border */
  flex: 1 1 auto;
  min-width: 0;
}

.hc-cf-phone-input{
  width: 100%;
}

/* Mobile: laat het netjes wrappen */
@media (max-width: 480px){
  .hc-cf-phone-group{ flex-wrap: wrap; }
  .hc-cf-phone-country{ width: 100%; }
}

/* Date field: calendar icon inside input */
.hc-cf-control { position: relative; }

.hc-cf-control--date .hc-cf-date-icon {
  position: absolute;
  right: 40px; /* links van error icon */
  top: 50%;
  transform: translateY(-50%);
  opacity: .65;
  line-height: 1;
  cursor: pointer;
}

.hc-cf-control--date .hc-cf-date-icon i {
  pointer-events: none;
}

.hc-cf-control--date .hc-cf-input {
  padding-right: 3.6em; /* ruimte voor calendar + error icon */
}

/* jQuery UI datepicker moet boven theme UI blijven */
.ui-datepicker { z-index: 999999 !important; }
/* Multi-step */
.hc-cf-steps{
  display:flex;
  gap:10px;
  list-style:none;
  padding:0;
  margin:0 0 14px 0;
}

.hc-cf-step{ display:flex; align-items:center; }

.hc-cf-step-num{
  width:30px; height:30px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:600;
  border:2px solid rgba(0,0,0,.25);
  opacity:.6;
}

.hc-cf-step.is-done .hc-cf-step-num{ opacity:.9; }
.hc-cf-step.is-active .hc-cf-step-num{ opacity:1; border-color:rgba(0,0,0,.55); }

.hc-cf-nav{
  display:flex;
  gap:10px;
  align-items:center;
}

.hc-cf-nav-right{
  margin-left:auto;
  display:flex;
  gap:10px;
  align-items:center;
}
