/* K Forms Events — isolated public form */
.kfe-public{
  all:initial !important;
  --kfe-bg:#ececec;
  --kfe-surface:#ececec;
  --kfe-text:#777;
  --kfe-muted:#a7a7a7;
  --kfe-error:#9f6c6c;
  --kfe-success:#738a76;
  --kfe-inset:inset 3px 3px 7px rgba(0,0,0,.12),inset -3px -3px 7px rgba(255,255,255,.90);
  --kfe-raised:5px 5px 10px rgba(0,0,0,.12),-5px -5px 10px rgba(255,255,255,.95);
  --kfe-ease:180ms cubic-bezier(.2,.8,.2,1);
  --kfe-input-radius:29px;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  color:var(--kfe-text) !important;
  font-family:Inter,"Segoe UI",Arial,sans-serif !important;
  font-size:16px !important;
  line-height:1.4 !important;
  text-align:left !important;
  isolation:isolate !important;
}
.kfe-public *,
.kfe-public *::before,
.kfe-public *::after{box-sizing:border-box !important}

/* Hard reset against WordPress/theme/Elementor styles. */
.kfe-public form,
.kfe-public input,
.kfe-public button,
.kfe-public span,
.kfe-public div{
  font-family:Inter,"Segoe UI",Arial,sans-serif !important;
  letter-spacing:normal !important;
  text-transform:none !important;
}
.kfe-public input[type="hidden"]{display:none !important}

.kfe-public .kfe-form{
  all:unset !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) minmax(190px,auto) !important;
  gap:12px !important;
  align-items:start !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:18px !important;
  border:0 !important;
  border-radius:28px !important;
  background:transparent !important;
  box-shadow:none !important;
}
.kfe-public .kfe-field{
  all:unset !important;
  box-sizing:border-box !important;
  display:block !important;
  min-width:0 !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}
.kfe-public .kfe-field input{
  all:unset !important;
  box-sizing:border-box !important;
  display:block !important;
  width:100% !important;
  height:58px !important;
  min-height:58px !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 18px !important;
  border:0 !important;
  outline:0 !important;
  border-radius:var(--kfe-input-radius) !important;
  background:var(--kfe-input-bg,var(--kfe-surface)) !important;
  box-shadow:var(--kfe-input-shadow,var(--kfe-inset)) !important;
  color:var(--kfe-text) !important;
  font:400 16px/1 Inter,"Segoe UI",Arial,sans-serif !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  transition:box-shadow var(--kfe-ease),color var(--kfe-ease) !important;
  cursor:text !important;
}
.kfe-public .kfe-field input::placeholder{
  color:var(--kfe-muted) !important;
  opacity:1 !important;
}
.kfe-public .kfe-field input:focus{
  color:#666 !important;
  outline:0 !important;
  box-shadow:inset 4px 4px 8px rgba(0,0,0,.13),inset -4px -4px 8px rgba(255,255,255,.94) !important;
}
.kfe-public .kfe-field.has-error input{
  box-shadow:inset 3px 3px 7px rgba(164,95,95,.18),inset -3px -3px 7px rgba(255,255,255,.90) !important;
}
.kfe-public .kfe-field-error{
  all:unset !important;
  box-sizing:border-box !important;
  display:block !important;
  margin:6px 12px 0 !important;
  padding:0 !important;
  color:var(--kfe-error) !important;
  font:400 11px/1.25 Inter,"Segoe UI",Arial,sans-serif !important;
}
.kfe-public .kfe-field-error:empty{display:none !important}

.kfe-public .kfe-submit{
  all:unset !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-width:190px !important;
  min-height:58px !important;
  height:58px !important;
  margin:0 !important;
  padding:0 22px !important;
  border:0 !important;
  border-radius:999px !important;
  background:var(--kfe-surface) !important;
  color:#727272 !important;
  box-shadow:var(--kfe-raised) !important;
  font:600 14px/1 Inter,"Segoe UI",Arial,sans-serif !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  -webkit-appearance:none !important;
  appearance:none !important;
  transition:box-shadow var(--kfe-ease),transform var(--kfe-ease),color var(--kfe-ease) !important;
}
.kfe-public .kfe-submit:hover,
.kfe-public .kfe-submit:focus-visible{
  color:#5f5f5f !important;
  outline:none !important;
  box-shadow:7px 7px 14px rgba(0,0,0,.13),-7px -7px 14px rgba(255,255,255,.97) !important;
}
.kfe-public .kfe-submit:active{
  box-shadow:var(--kfe-inset) !important;
  transform:translateY(1px) !important;
}
.kfe-public .kfe-submit:disabled{opacity:.58 !important;cursor:wait !important}

.kfe-public .kfe-form-status{
  all:unset !important;
  box-sizing:border-box !important;
  display:block !important;
  grid-column:1/-1 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 8px !important;
  color:var(--kfe-text) !important;
  font:400 12px/1.4 Inter,"Segoe UI",Arial,sans-serif !important;
}
.kfe-public .kfe-form-status:empty{display:none !important}
.kfe-public .kfe-form-status.is-error{color:var(--kfe-error) !important}

.kfe-public .kfe-hp{
  position:absolute !important;
  left:-10000px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}

.kfe-public .kfe-success{
  all:unset !important;
  box-sizing:border-box !important;
  grid-column:1/-1 !important;
  min-height:112px !important;
  border-radius:22px !important;
  box-shadow:var(--kfe-inset) !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  padding:22px 18px !important;
  gap:6px !important;
}
.kfe-public .kfe-success strong{
  all:unset !important;
  color:var(--kfe-success) !important;
  font:600 18px/1.25 Inter,"Segoe UI",Arial,sans-serif !important;
}
.kfe-public .kfe-success span{
  all:unset !important;
  color:#858585 !important;
  font:400 14px/1.5 Inter,"Segoe UI",Arial,sans-serif !important;
}
.kfe-public.kfe-unavailable{
  all:initial !important;
  box-sizing:border-box !important;
  display:block !important;
  width:100% !important;
  padding:18px !important;
  border:0 !important;
  border-radius:22px !important;
  background:var(--kfe-bg,#ececec) !important;
  box-shadow:var(--kfe-inset,inset 3px 3px 7px rgba(0,0,0,.12),inset -3px -3px 7px rgba(255,255,255,.90)) !important;
  text-align:center !important;
  color:#8e8e8e !important;
  font:400 14px/1.4 Inter,"Segoe UI",Arial,sans-serif !important;
}

@media(max-width:900px){
  .kfe-public .kfe-form{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .kfe-public .kfe-submit{grid-column:1/-1 !important;width:100% !important}
}
@media(max-width:700px){
  .kfe-public .kfe-form{grid-template-columns:1fr !important;padding:14px !important;gap:12px !important}
  .kfe-public .kfe-submit{grid-column:auto !important;width:100% !important;min-width:0 !important}
  .kfe-public .kfe-success{min-height:120px !important}
}

/* 2.2.0 — layout determinístico por container; preserva ordem ao redimensionar */
.kfe-public{
  container-type:inline-size !important;
  container-name:kfe-form-container !important;
}
.kfe-public .kfe-form{
  grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) minmax(130px,1fr) minmax(145px,1fr) minmax(145px,1fr) minmax(170px,max-content) !important;
  grid-template-areas:
    "name email company whatsapp code submit"
    "status status status status status status" !important;
  grid-auto-flow:row !important;
}
.kfe-public .kfe-field[data-field="name"]{grid-area:name !important}
.kfe-public .kfe-field[data-field="email"]{grid-area:email !important}
.kfe-public .kfe-field[data-field="company"]{grid-area:company !important}
.kfe-public .kfe-field[data-field="whatsapp"]{grid-area:whatsapp !important}
.kfe-public .kfe-field[data-field="code"]{grid-area:code !important}
.kfe-public .kfe-submit{grid-area:submit !important}
.kfe-public .kfe-form-status{grid-area:status !important}
.kfe-public .kfe-form > *{min-width:0 !important;max-width:100% !important}

@container kfe-form-container (max-width: 1040px){
  .kfe-public .kfe-form{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "name email"
      "company whatsapp"
      "code submit"
      "status status" !important;
  }
  .kfe-public .kfe-submit{width:100% !important;min-width:0 !important}
}
@container kfe-form-container (max-width: 620px){
  .kfe-public .kfe-form{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "name"
      "email"
      "company"
      "whatsapp"
      "code"
      "submit"
      "status" !important;
    padding:14px !important;
    gap:12px !important;
  }
  .kfe-public .kfe-submit{width:100% !important;min-width:0 !important}
}

/* Fallback para navegadores sem container queries. */
@supports not (container-type:inline-size){
  @media(max-width:1040px){
    .kfe-public .kfe-form{
      grid-template-columns:repeat(2,minmax(0,1fr)) !important;
      grid-template-areas:"name email" "company whatsapp" "code submit" "status status" !important;
    }
  }
  @media(max-width:620px){
    .kfe-public .kfe-form{
      grid-template-columns:1fr !important;
      grid-template-areas:"name" "email" "company" "whatsapp" "code" "submit" "status" !important;
    }
  }
}


/* 2.2.5 — the public form and its success state are the same inset card.
   The event radius token controls inputs and the card consistently. */
.kfe-public .kfe-form{
  border-radius:var(--kfe-input-radius) !important;
  background:transparent !important;
  box-shadow:inset 3px 3px 7px rgba(0,0,0,.10),inset -3px -3px 7px rgba(255,255,255,.16) !important;
}
.kfe-public .kfe-success{
  border-radius:var(--kfe-input-radius) !important;
  box-shadow:none !important;
}

/* Immediate submit feedback: never leave the visitor wondering whether the
   tap was registered. The button is disabled and visibly busy at once. */
.kfe-public .kfe-submit.is-loading,
.kfe-public .kfe-submit.is-loading:hover,
.kfe-public .kfe-submit.is-loading:focus-visible{
  opacity:1 !important;
  cursor:wait !important;
  box-shadow:var(--kfe-inset) !important;
  transform:none !important;
  color:#6f6f6f !important;
  gap:9px !important;
}
.kfe-public .kfe-submit.is-loading::before{
  content:"" !important;
  flex:0 0 15px !important;
  width:15px !important;
  height:15px !important;
  border:2px solid rgba(112,112,112,.22) !important;
  border-top-color:#7d7d7d !important;
  border-radius:50% !important;
  animation:kfe-front-spin .65s linear infinite !important;
}
.kfe-public .kfe-submit.is-loading span{display:inline-block !important}
.kfe-public .kfe-submit:disabled:not(.is-loading){opacity:.58 !important;cursor:wait !important}
@keyframes kfe-front-spin{to{transform:rotate(360deg)}}

@media (prefers-reduced-motion: reduce){
  .kfe-public .kfe-submit.is-loading::before,
  .kfe-admin .kfe-toolbar-save.is-saving::after{animation-duration:1.4s !important}
}

/* 2.3.0 — event typography tokens. The plugin remains isolated from theme/Elementor typography. */
.kfe-public{
  --kfe-font-family:Inter,"Segoe UI",Arial,sans-serif;
  --kfe-input-font-size:16px;
  --kfe-button-font-size:14px;
  --kfe-message-font-size:18px;
  --kfe-description-font-size:14px;
  font-family:var(--kfe-font-family) !important;
}
.kfe-public form,
.kfe-public input,
.kfe-public button,
.kfe-public span,
.kfe-public div{
  font-family:var(--kfe-font-family) !important;
}
.kfe-public .kfe-field input{
  font-family:var(--kfe-font-family) !important;
  font-size:var(--kfe-input-font-size) !important;
}
.kfe-public .kfe-submit{
  font-family:var(--kfe-font-family) !important;
  font-size:var(--kfe-button-font-size) !important;
}
.kfe-public .kfe-success strong,
.kfe-public .kfe-preview-success-sample strong{
  font-family:var(--kfe-font-family) !important;
  font-size:var(--kfe-message-font-size) !important;
}
.kfe-public .kfe-success span,
.kfe-public .kfe-preview-success-sample span{
  font-family:var(--kfe-font-family) !important;
  font-size:var(--kfe-description-font-size) !important;
}

/* 2.5.1 — host-aware card background + full-width Elementor integration. */
.kfe-public{
  --kfe-host-bg:transparent;
  width:100% !important;
  max-width:none !important;
}
.kfe-public .kfe-form{
  width:100% !important;
  max-width:none !important;
  background:transparent !important;
}

/* Let the shortcode widget occupy the complete width offered by its Elementor container. */
.elementor-widget-shortcode:has(.kfe-public){
  width:100% !important;
  max-width:none !important;
  flex:1 1 100% !important;
  --container-widget-width:100% !important;
  --container-widget-flex-grow:1 !important;
}
.elementor-widget-shortcode:has(.kfe-public) > .elementor-widget-container,
.elementor-widget-shortcode:has(.kfe-public) .elementor-shortcode{
  width:100% !important;
  max-width:none !important;
}


/* 2.6.0 — button follows the event radius and supports a safe solid/gradient fill. */
.kfe-public .kfe-submit{
  border-radius:var(--kfe-input-radius) !important;
  background:var(--kfe-button-fill,var(--kfe-surface)) !important;
  color:var(--kfe-button-text,#727272) !important;
}
.kfe-public .kfe-submit:hover,
.kfe-public .kfe-submit:focus-visible{
  color:var(--kfe-button-text,#727272) !important;
}
.kfe-public .kfe-submit.is-loading,
.kfe-public .kfe-submit.is-loading:hover,
.kfe-public .kfe-submit.is-loading:focus-visible{
  color:var(--kfe-button-text,#727272) !important;
}
.kfe-public .kfe-submit.is-loading::before{
  border-color:currentColor !important;
  border-right-color:transparent !important;
  opacity:.68 !important;
}


/* 2.6.1 — exact shared radius + neumorphic depth preserved with custom button colors. */
.kfe-public .kfe-submit{
  border-radius:var(--kfe-input-radius) !important;
  overflow:hidden !important;
  box-shadow:
    5px 5px 10px rgba(0,0,0,.15),
    -5px -5px 10px rgba(255,255,255,.88),
    inset 1px 1px 0 rgba(255,255,255,.22),
    inset -1px -1px 0 rgba(0,0,0,.035) !important;
}
.kfe-public .kfe-submit:hover,
.kfe-public .kfe-submit:focus-visible{
  box-shadow:
    7px 7px 14px rgba(0,0,0,.16),
    -7px -7px 14px rgba(255,255,255,.92),
    inset 1px 1px 0 rgba(255,255,255,.25),
    inset -1px -1px 0 rgba(0,0,0,.04) !important;
}
.kfe-public .kfe-submit:active,
.kfe-public .kfe-submit.is-loading,
.kfe-public .kfe-submit.is-loading:hover,
.kfe-public .kfe-submit.is-loading:focus-visible{
  box-shadow:
    inset 4px 4px 8px rgba(0,0,0,.16),
    inset -4px -4px 8px rgba(255,255,255,.22) !important;
}


/* 2.6.2 — transparent surfaces must not create a white slab on client backgrounds.
   Colored buttons keep tactile depth through a neutral outer shadow + tonal bevel overlay. */
.kfe-public .kfe-form{
  background:transparent !important;
  box-shadow:inset 3px 3px 7px rgba(0,0,0,.10),inset -3px -3px 7px rgba(255,255,255,.14) !important;
}
.kfe-public .kfe-submit{
  position:relative !important;
  isolation:isolate !important;
  border-radius:var(--kfe-input-radius) !important;
  box-shadow:
    5px 5px 10px rgba(0,0,0,.16),
    -5px -5px 10px rgba(255,255,255,.38),
    inset 1px 1px 0 rgba(255,255,255,.16),
    inset -1px -1px 0 rgba(0,0,0,.05) !important;
}
.kfe-public .kfe-submit::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  border-radius:inherit !important;
  background:linear-gradient(145deg,rgba(255,255,255,.17),rgba(255,255,255,0) 44%,rgba(0,0,0,.07)) !important;
  pointer-events:none !important;
  z-index:0 !important;
}
.kfe-public .kfe-submit > span,
.kfe-public .kfe-submit::before{position:relative !important;z-index:1 !important}
.kfe-public .kfe-submit:hover,
.kfe-public .kfe-submit:focus-visible{
  box-shadow:
    7px 7px 14px rgba(0,0,0,.17),
    -7px -7px 14px rgba(255,255,255,.42),
    inset 1px 1px 0 rgba(255,255,255,.18),
    inset -1px -1px 0 rgba(0,0,0,.055) !important;
}
.kfe-public .kfe-submit:active,
.kfe-public .kfe-submit.is-loading,
.kfe-public .kfe-submit.is-loading:hover,
.kfe-public .kfe-submit.is-loading:focus-visible{
  box-shadow:inset 4px 4px 8px rgba(0,0,0,.17),inset -4px -4px 8px rgba(255,255,255,.16) !important;
}
.kfe-public .kfe-submit:active::after,
.kfe-public .kfe-submit.is-loading::after{
  background:linear-gradient(145deg,rgba(0,0,0,.06),rgba(255,255,255,.08)) !important;
}
