/*
 * emtech Request Callback popup — restored approved design.
 * The selectors support the theme Bootstrap modal as well as common popup shells.
 */
:root{
  --ecf-red:#ad1e22;
  --ecf-red-dark:#8e1519;
  --ecf-ink:#303434;
  --ecf-grey:#545656;
  --ecf-soft:#e4eaea;
  --ecf-bg:#f7f9f9;
  --ecf-font:"Outfit",Arial,sans-serif;
}

html body #requestCallbackModal,
html body #callbackModal,
html body #em-callback-modal,
html body #emtechCallbackModal,
html body .cstm_request_callback,
html body .modal.cstm_request_callback,
html body .pum-overlay:has(.emtech-callback-form),
html body .elementor-popup-modal:has(.emtech-callback-form),
html body .mfp-wrap:has(.emtech-callback-form),
html body .popup-overlay:has(.emtech-callback-form){
  position:fixed!important;
  inset:0!important;
  z-index:2147483646!important;
  padding:18px 12px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}

html body .cstm_request_callback .modal-dialog,
html body #requestCallbackModal .modal-dialog,
html body #callbackModal .modal-dialog,
html body #em-callback-modal .modal-dialog,
html body #emtechCallbackModal .modal-dialog,
html body .pum-container:has(.emtech-callback-form),
html body .elementor-popup-modal:has(.emtech-callback-form) .dialog-widget-content,
html body .mfp-content:has(.emtech-callback-form),
html body .popup-content:has(.emtech-callback-form){
  position:relative!important;
  display:block!important;
  width:min(500px,calc(100vw - 24px))!important;
  max-width:500px!important;
  min-height:0!important;
  max-height:calc(100vh - 36px)!important;
  max-height:calc(100dvh - 36px)!important;
  margin:clamp(14px,5vh,42px) auto!important;
  padding:0!important;
  border:0!important;
  border-radius:18px!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  transform:none!important;
  pointer-events:none!important;
}

html body .cstm_request_callback .modal-content,
html body #requestCallbackModal .modal-content,
html body #callbackModal .modal-content,
html body #em-callback-modal .modal-content,
html body #emtechCallbackModal .modal-content{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 24px 70px rgba(30,34,34,.25)!important;
  overflow:hidden!important;
  pointer-events:auto!important;
}

html body .cstm_request_callback .modal-dialog::before,
html body .cstm_request_callback .modal-dialog::after,
html body .cstm_request_callback .modal-content::before,
html body .cstm_request_callback .modal-content::after,
html body .cstm_request_callback .modal-body::before,
html body .cstm_request_callback .modal-body::after,
html body .cstm_request_callback .modal_input::before,
html body .cstm_request_callback .modal_input::after,
html body .emtech-callback-form::before,
html body .emtech-callback-form::after{
  content:none!important;
  display:none!important;
}

html body .cstm_request_callback .modal-header,
html body #requestCallbackModal .modal-header,
html body #callbackModal .modal-header,
html body #em-callback-modal .modal-header,
html body #emtechCallbackModal .modal-header{
  position:absolute!important;
  inset:0 0 auto auto!important;
  z-index:100!important;
  display:block!important;
  width:48px!important;
  height:48px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  pointer-events:none!important;
}

html body .cstm_request_callback .modal-title,
html body .cstm_request_callback .modal-header h5,
html body #requestCallbackModal .modal-title,
html body #callbackModal .modal-title,
html body #em-callback-modal .modal-title,
html body #emtechCallbackModal .modal-title,
html body .pum-container:has(.emtech-callback-form) .pum-title,
html body .mfp-content:has(.emtech-callback-form) .popup-title,
html body .emtech-callback-form .ecf-kicker{
  display:none!important;
}

html body .cstm_request_callback .modal-body,
html body .cstm_request_callback .modal_input,
html body #requestCallbackModal .modal-body,
html body #requestCallbackModal .modal_input,
html body #callbackModal .modal-body,
html body #em-callback-modal .modal-body,
html body #emtechCallbackModal .modal-body{
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html body .cstm_request_callback .modal-header .close,
html body .cstm_request_callback .close,
html body .cstm_request_callback .btn-close,
html body #requestCallbackModal .close,
html body #callbackModal .close,
html body #em-callback-modal .close,
html body #emtechCallbackModal .close,
html body .pum-container:has(.emtech-callback-form) .pum-close,
html body .elementor-popup-modal:has(.emtech-callback-form) .dialog-close-button,
html body .mfp-wrap:has(.emtech-callback-form) .mfp-close{
  position:absolute!important;
  top:11px!important;
  right:11px!important;
  z-index:999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  margin:0!important;
  padding:0 0 2px!important;
  border:1px solid #dfe5e5!important;
  border-radius:50%!important;
  background:#fff!important;
  color:var(--ecf-ink)!important;
  box-shadow:0 7px 18px rgba(48,52,52,.12)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  font:300 22px/1 var(--ecf-font)!important;
  text-shadow:none!important;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease!important;
}

html body .cstm_request_callback .close span,
html body #requestCallbackModal .close span{
  display:block!important;
  width:auto!important;
  height:auto!important;
  color:inherit!important;
  font:inherit!important;
  line-height:1!important;
}

html body .cstm_request_callback .close:hover,
html body .cstm_request_callback .btn-close:hover,
html body #requestCallbackModal .close:hover,
html body #callbackModal .close:hover,
html body #em-callback-modal .close:hover,
html body #emtechCallbackModal .close:hover,
html body .pum-container:has(.emtech-callback-form) .pum-close:hover,
html body .elementor-popup-modal:has(.emtech-callback-form) .dialog-close-button:hover,
html body .mfp-wrap:has(.emtech-callback-form) .mfp-close:hover{
  border-color:var(--ecf-ink)!important;
  background:var(--ecf-ink)!important;
  color:#fff!important;
  transform:rotate(90deg)!important;
}

.emtech-callback-form,
.emtech-callback-form *,
.emtech-callback-form input,
.emtech-callback-form textarea,
.emtech-callback-form button,
.emtech-callback-form select,
.emtech-callback-form ::placeholder{
  box-sizing:border-box;
  font-family:var(--ecf-font)!important;
}

.emtech-callback-form{
  position:relative;
  width:100%;
  margin:0!important;
  padding:26px 26px 22px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--ecf-ink);
}

.emtech-callback-form .ecf-head{margin:0 0 18px!important;padding:0 38px 0 0!important;}
.emtech-callback-form .ecf-head h3{
  margin:0!important;
  padding:0!important;
  color:var(--ecf-ink)!important;
  font-size:27px!important;
  font-weight:500!important;
  letter-spacing:-.035em!important;
  line-height:1.12!important;
  text-transform:none!important;
}
.emtech-callback-form .ecf-head p{
  margin:6px 0 0!important;
  padding:0!important;
  color:var(--ecf-grey)!important;
  font-size:12.5px!important;
  font-weight:400!important;
  line-height:1.5!important;
}
.emtech-callback-form .ecf-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px 13px!important;
  margin:0!important;
  padding:0!important;
}
.emtech-callback-form .ecf-full{grid-column:1/-1!important;}
.emtech-callback-form .ecf-field{min-width:0!important;margin:0!important;padding:0!important;}
.emtech-callback-form .ecf-field label{
  display:block!important;
  margin:0 0 5px!important;
  padding:0!important;
  color:var(--ecf-ink)!important;
  font-size:10.5px!important;
  font-weight:600!important;
  line-height:1.35!important;
}
.emtech-callback-form .ecf-field label span{color:var(--ecf-red)!important;}
.emtech-callback-form .wpcf7-form-control-wrap{display:block!important;width:100%!important;margin:0!important;}
.emtech-callback-form .ecf-control{
  appearance:none!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:42px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid #d7dfdf!important;
  border-radius:10px!important;
  outline:0!important;
  background:#fff!important;
  color:var(--ecf-ink)!important;
  font-size:12.5px!important;
  font-weight:400!important;
  line-height:1.4!important;
  box-shadow:none!important;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease!important;
}
.emtech-callback-form textarea.ecf-control{
  height:76px!important;
  min-height:76px!important;
  max-height:110px!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
  resize:vertical!important;
}
.emtech-callback-form .ecf-control::placeholder{
  color:#8a9191!important;
  font-size:12.5px!important;
  font-weight:400!important;
  opacity:1!important;
}
.emtech-callback-form .ecf-control:hover{border-color:#bcc7c7!important;background:#fcfdfd!important;}
.emtech-callback-form .ecf-control:focus{border-color:var(--ecf-red)!important;background:#fff!important;box-shadow:0 0 0 3px rgba(173,30,34,.08)!important;}
.emtech-callback-form .wpcf7-not-valid{border-color:var(--ecf-red)!important;}
.emtech-callback-form .wpcf7-not-valid-tip{display:block!important;margin:4px 0 0!important;color:var(--ecf-red)!important;font-size:10px!important;font-weight:500!important;}

.emtech-callback-form .ecf-honeypot,
.emtech-callback-form input[name="website"],
.emtech-callback-form .wpcf7-form-control-wrap:has(input[name="website"]){
  position:absolute!important;
  left:-99999px!important;
  width:1px!important;
  height:1px!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
}

.emtech-callback-form .ecf-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin:15px 0 0!important;
  padding:0!important;
}
.emtech-callback-form .ecf-note{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  margin:0!important;
  padding:0!important;
  color:#777f7f!important;
  font-size:10px!important;
  line-height:1.4!important;
}
.emtech-callback-form .ecf-note-icon{
  display:inline-block!important;
  width:13px!important;
  height:13px!important;
  flex:0 0 13px!important;
  background:var(--ecf-red)!important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2l7 3v6c0 5.25-3.5 9.74-7 11-3.5-1.26-7-5.75-7-11V5l7-3zm0 2.18L7 6.32V11c0 4.12 2.55 7.67 5 8.82 2.45-1.15 5-4.7 5-8.82V6.32l-5-2.14z'/%3E%3C/svg%3E") center/contain no-repeat!important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2l7 3v6c0 5.25-3.5 9.74-7 11-3.5-1.26-7-5.75-7-11V5l7-3zm0 2.18L7 6.32V11c0 4.12 2.55 7.67 5 8.82 2.45-1.15 5-4.7 5-8.82V6.32l-5-2.14z'/%3E%3C/svg%3E") center/contain no-repeat!important;
}
.emtech-callback-form .ecf-submit{
  appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  width:auto!important;
  min-width:158px!important;
  min-height:43px!important;
  margin:0!important;
  padding:10px 18px!important;
  border:1px solid var(--ecf-red)!important;
  border-radius:10px!important;
  background:var(--ecf-red)!important;
  color:#fff!important;
  font-size:11.5px!important;
  font-weight:600!important;
  letter-spacing:0!important;
  line-height:1.2!important;
  text-transform:none!important;
  box-shadow:0 10px 24px rgba(173,30,34,.18)!important;
  cursor:pointer!important;
  transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease!important;
}
.emtech-callback-form .ecf-submit-icon{
  display:inline-block!important;
  width:14px!important;
  height:14px!important;
  flex:0 0 14px!important;
  background:currentColor!important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13.17 5.59L14.58 4.17 22.41 12l-7.83 7.83-1.41-1.42L18.59 13H2v-2h16.59l-5.42-5.41z'/%3E%3C/svg%3E") center/contain no-repeat!important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13.17 5.59L14.58 4.17 22.41 12l-7.83 7.83-1.41-1.42L18.59 13H2v-2h16.59l-5.42-5.41z'/%3E%3C/svg%3E") center/contain no-repeat!important;
  transition:transform .22s ease!important;
}
.emtech-callback-form .ecf-submit:hover,
.emtech-callback-form .ecf-submit:focus{
  border-color:var(--ecf-ink)!important;
  background:var(--ecf-ink)!important;
  color:#fff!important;
  transform:translateY(-2px)!important;
  box-shadow:0 14px 30px rgba(48,52,52,.18)!important;
}
.emtech-callback-form .ecf-submit:hover .ecf-submit-icon{transform:translateX(3px)!important;}
.emtech-callback-form .wpcf7-spinner{position:absolute!important;right:14px!important;bottom:14px!important;margin:0!important;}
.emtech-callback-form .wpcf7-response-output{
  margin:12px 0 0!important;
  padding:9px 11px!important;
  border:1px solid var(--ecf-soft)!important;
  border-radius:10px!important;
  background:var(--ecf-bg)!important;
  color:var(--ecf-ink)!important;
  font-size:10.5px!important;
  line-height:1.45!important;
  text-align:center!important;
}
.emtech-callback-form p:empty,
.emtech-callback-form br{display:none!important;}
.wpcf7-form[data-ecf-upgrade="done"]>[data-ecf-legacy-node="true"]{display:none!important;}

/* A malformed or outdated CF7 template receives a safe layout until JS upgrades it. */
.cstm_request_callback .emtech-callback-legacy{
  padding:26px!important;
  font-family:var(--ecf-font)!important;
}
.cstm_request_callback .emtech-callback-legacy input:not([type="hidden"]):not([type="submit"]),
.cstm_request_callback .emtech-callback-legacy textarea{
  display:block!important;
  width:100%!important;
  margin:5px 0 12px!important;
  padding:10px 12px!important;
  border:1px solid #d7dfdf!important;
  border-radius:10px!important;
  background:#fff!important;
  box-shadow:none!important;
}
.cstm_request_callback .emtech-callback-legacy input[name="website"],
.cstm_request_callback .emtech-callback-legacy input[aria-hidden="true"]{display:none!important;}

@media(max-width:767px){
  html body #requestCallbackModal,
  html body #callbackModal,
  html body #em-callback-modal,
  html body #emtechCallbackModal,
  html body .cstm_request_callback,
  html body .modal.cstm_request_callback,
  html body .pum-overlay:has(.emtech-callback-form),
  html body .elementor-popup-modal:has(.emtech-callback-form),
  html body .mfp-wrap:has(.emtech-callback-form),
  html body .popup-overlay:has(.emtech-callback-form){
    padding:max(8px,env(safe-area-inset-top)) 7px max(8px,env(safe-area-inset-bottom))!important;
  }
  html body .cstm_request_callback .modal-dialog,
  html body #requestCallbackModal .modal-dialog,
  html body #callbackModal .modal-dialog,
  html body #em-callback-modal .modal-dialog,
  html body #emtechCallbackModal .modal-dialog,
  html body .pum-container:has(.emtech-callback-form),
  html body .elementor-popup-modal:has(.emtech-callback-form) .dialog-widget-content,
  html body .mfp-content:has(.emtech-callback-form),
  html body .popup-content:has(.emtech-callback-form){
    width:calc(100vw - 14px)!important;
    max-width:420px!important;
    max-height:calc(100vh - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
    margin:8px auto!important;
    border-radius:16px!important;
  }
  html body .cstm_request_callback .modal-content,
  html body #requestCallbackModal .modal-content{border-radius:16px!important;overflow:hidden!important;}
  html body .cstm_request_callback .modal-header,
  html body #requestCallbackModal .modal-header{width:43px!important;height:43px!important;}
  html body .cstm_request_callback .close,
  html body .cstm_request_callback .btn-close,
  html body #requestCallbackModal .close{
    top:8px!important;
    right:8px!important;
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    font-size:20px!important;
  }
  .emtech-callback-form{padding:19px 15px 15px!important;}
  .emtech-callback-form .ecf-head{margin-bottom:14px!important;padding-right:32px!important;}
  .emtech-callback-form .ecf-head h3{font-size:22px!important;letter-spacing:-.03em!important;}
  .emtech-callback-form .ecf-head p{max-width:280px!important;margin-top:4px!important;font-size:11px!important;line-height:1.45!important;}
  .emtech-callback-form .ecf-grid{grid-template-columns:1fr!important;gap:9px!important;}
  .emtech-callback-form .ecf-full{grid-column:auto!important;}
  .emtech-callback-form .ecf-field label{margin-bottom:4px!important;font-size:10px!important;}
  .emtech-callback-form .ecf-control{height:39px!important;padding:0 11px!important;font-size:16px!important;border-radius:9px!important;}
  .emtech-callback-form .ecf-control::placeholder{font-size:12px!important;}
  .emtech-callback-form textarea.ecf-control{height:64px!important;min-height:64px!important;max-height:90px!important;padding-top:9px!important;}
  .emtech-callback-form .ecf-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;margin-top:11px!important;}
  .emtech-callback-form .ecf-note{display:none!important;}
  .emtech-callback-form .ecf-submit{width:100%!important;min-width:0!important;min-height:41px!important;padding:9px 15px!important;}
  .cstm_request_callback [class*="ribbon"],
  .cstm_request_callback [class*="strip"],
  .cstm_request_callback [class*="accent"],
  .cstm_request_callback .modal-content>i:empty,
  .cstm_request_callback .modal-content>span:empty{display:none!important;}
}

@media(prefers-reduced-motion:reduce){
  .emtech-callback-form *,
  .cstm_request_callback .close{transition:none!important;}
}
