/* Farben: Weiß #fff, Blau #105aa7, Gelb #f8eb13 */

.efp-modal{
  display:none;
  position:fixed;
  inset:0;
  z-index:99999;
  font-family:inherit;
}
.efp-modal[aria-hidden="false"]{
  display:block;
}
.efp-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.5);
}
.efp-box{
  position:relative;
  max-width:520px;
  width:min(520px, calc(100vw - 32px));
  margin:10vh auto 0;
  background:#fff;
  border-radius:12px;
  padding:20px 20px 16px;
  box-shadow:0 15px 40px rgba(0,0,0,.25);
  box-sizing:border-box;
}
.efp-close{
  position:absolute;
  top:8px;
  right:10px;
  border:0;
  background:transparent;
  font-size:26px;
  cursor:pointer;
  line-height:1;
}
.efp-title{
  margin:0 28px 8px 0;
  overflow-wrap:anywhere;
}
.efp-divider{
  height:3px;
  width:70px;
  background:#f8eb13;
  margin:10px 0 14px;
}
.efp-sub{
  margin:0 0 14px 0;
}
.efp-buttons{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.efp-btn{
  background:#105aa7;
  color:#fff;
  border:0;
  border-radius:8px;
  padding:10px 14px;
  cursor:pointer;
  font-weight:600;
}
.efp-step{
  margin-top:6px;
}
.efp-label{
  display:block;
  text-align:left;
  margin:10px 0 6px;
  font-weight:600;
}
.efp-select,
.efp-input,
.efp-textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cfcfcf;
  border-radius:8px;
  padding:10px;
  font:inherit;
}
.efp-textarea{ resize:vertical; }
.efp-actions{
  margin-top:12px;
}
.efp-note{
  display:block;
  opacity:.75;
  margin-top:8px;
}
.efp-thanks{
  font-weight:700;
  margin:6px 0;
}
.efp-error{
  font-weight:700;
  margin:6px 0;
}
.efp-hp{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
}
body.efp-modal-open{
  overflow:hidden;
  touch-action:none;
}

@media (max-width: 600px){
  .efp-box{
    width:calc(100vw - 24px);
    max-width:none;
    margin:auto 12px 12px;
    padding:16px 16px 14px;
    border-radius:16px 16px 12px 12px;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    top:auto;
    animation:efp-sheet-up .22s ease-out;
  }
  .efp-title{
    font-size:18px;
    line-height:1.3;
    margin-right:30px;
  }
  .efp-sub{
    font-size:14px;
    line-height:1.45;
  }
  .efp-buttons{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .efp-btn{
    width:100%;
    min-height:44px;
  }
  .efp-label,
  .efp-note,
  .efp-input,
  .efp-select,
  .efp-textarea{
    font-size:14px;
  }
}

@keyframes efp-sheet-up{
  from{
    transform:translateY(18px);
    opacity:0;
  }
  to{
    transform:translateY(0);
    opacity:1;
  }
}

.efp-required-hint{
  margin:10px 0 0;
  font-size:13px;
  opacity:.8;
}

.efp-form-error{
  margin:10px 0 0;
  color:#b42318;
  font-weight:600;
}

.efp-select:invalid,
.efp-textarea:invalid{
  border-color:#b42318;
}