
.quote-popup, .quote-popup * { box-sizing: border-box; }
.quote-popup {
  --ct-desc: #5a5f73;
  --ct-muted: #9499a8;
  --ct-label: #3a3953;
  --ct-field-bd: #e2e5ec;
  --ct-field-bg: #fbfcfd;
  --ct-err: #e0573c;
  position: fixed; inset: 0; z-index: 100000;
  display: flex; align-items: center; justify-content: center;
  padding: 12px;
  font-family: "Poppins", system-ui, -apple-system, sans-serif;
}
.quote-popup[hidden] { display: none; }
.quote-popup__overlay {
  position: absolute; inset: 0; background: rgba(21, 20, 48, 0.55);
  backdrop-filter: blur(3px); animation: qp-fade .18s ease;
}
.quote-popup__panel {
  position: relative; z-index: 1; width: 100%; max-width: 720px;
  max-height: calc(100vh - 24px); overflow: hidden;
  background: #fff; border-radius: 26px;
  box-shadow: 0 40px 90px -50px rgba(21, 20, 48, 0.7);
  animation: qp-pop .2s ease;
}

.quote-popup__scroll {
  max-height: calc(100vh - 24px); overflow-y: auto; padding: 28px 40px 30px;
  scrollbar-width: thin; scrollbar-color: var(--basic, #25225e) transparent;
}

.quote-popup__scroll::-webkit-scrollbar { width: 12px; }
.quote-popup__scroll::-webkit-scrollbar-track { background: transparent; margin: 16px 0; }
.quote-popup__scroll::-webkit-scrollbar-thumb {
  background: var(--basic, #25225e); border-radius: 9999px;
  border: 3px solid #fff; background-clip: padding-box;
}
.quote-popup__scroll::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--basic, #25225e) 82%, #000); background-clip: padding-box; }
@keyframes qp-fade { 0% { opacity: 0; } }
@keyframes qp-pop { 0% { opacity: 0; transform: translateY(12px); } }

.quote-popup__close {
  position: absolute; top: 18px; right: 18px; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border: 0; border-radius: 9999px;
  background: #f1f3f7; color: #56556e; cursor: pointer; transition: background .15s, color .15s;
}
.quote-popup__close:hover { background: #e6e9f0; color: var(--basic); }
.quote-popup__close svg { width: 18px; height: 18px; }

.quote-popup__head { margin-bottom: 14px; padding-right: 40px; }
.quote-popup__eyebrow {
  display: inline-block; margin-bottom: 8px; font-size: 13px; font-weight: 700;
  letter-spacing: 1.5px; text-transform: uppercase; color: var(--blue);
}
.quote-popup__title {
  margin: 0; font-size: 26px !important; line-height: 1.18; font-weight: 900;
  letter-spacing: -0.5px; color: var(--basic); text-wrap: balance;
}


.quote-popup__form .wpcf7-form br { display: none; }
.quote-popup__form .wpcf7-form p { margin: 0; }

.quote-popup__form .form-contact-row50 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.quote-popup__form .qp-col { min-width: 0; }
.quote-popup__form label,
.quote-popup__form .wpcf7-form-control-wrap { display: block; width: 100%; }
.quote-popup__form .wpcf7-form-control-wrap { margin-bottom: 11px; }

.ctf__label {
  display: block; margin-bottom: 8px; font-size: 13.5px; font-weight: 700; color: var(--ct-label);
}

.quote-popup__form.is-no-package .qp-col--package { display: none; }
.quote-popup__form.is-no-package .form-contact-row50--service { grid-template-columns: 1fr; }


.quote-popup__form .udi-promo {
  position: absolute !important; left: -9999px; width: 1px; height: 1px; margin: 0; overflow: hidden;
}

.quote-popup__form input[type="text"],
.quote-popup__form input[type="email"],
.quote-popup__form input[type="tel"],
.quote-popup__form input[type="url"],
.quote-popup__form input:not([type]),
.quote-popup__form select,
.quote-popup__form textarea {
  width: 100%; box-sizing: border-box; padding: 13px 16px; border-radius: 12px;
  border: 1.5px solid var(--ct-field-bd); background-color: var(--ct-field-bg);
  font-family: inherit; font-size: 15px; color: var(--basic); outline: none;
  transition: border-color .15s, background .15s;
}

.quote-popup__form select { cursor: pointer; padding-right: 40px; }
.quote-popup__form input:not([type="submit"]):focus,
.quote-popup__form select:focus,
.quote-popup__form textarea:focus { border-color: var(--blue); background-color: #fff; }

.quote-popup__form .wpcf7-submit:focus-visible { outline: 3px solid var(--basic); outline-offset: 2px; }
.quote-popup__form textarea { line-height: 1.5; resize: vertical; min-height: 72px; height: 88px; }
.quote-popup__form ::placeholder { color: #a6abb8; }

.quote-popup__form .wpcf7-submit {
  width: 100%; position: relative; margin-top: 8px; padding: 16px 24px; border: 0; border-radius: 9999px;
  background: var(--blue); color: #fff; font-family: inherit; font-size: 15.5px; font-weight: 700;
  cursor: pointer; transition: background .15s;
}
.quote-popup__form .wpcf7-submit:hover { background: color-mix(in srgb, var(--blue) 85%, #000); }

.quote-popup__form .wpcf7-spinner { display: none; }
.quote-popup__form .ctf__submit { position: relative; display: block; }
.quote-popup__form .ctf__submit br { display: none; }
.quote-popup__form .wpcf7-form.submitting .wpcf7-submit {
  color: transparent;
  opacity: 1 !important;
  background: color-mix(in srgb, var(--blue) 76%, #000);
  pointer-events: none;
}
.quote-popup__form .wpcf7-form.submitting .ctf__submit::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 26px;
  height: 26px;
  margin: -13px 0 0 -13px;
  border: 3px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: qp-spin 0.7s linear infinite;
}
@keyframes qp-spin { 100% { transform: rotate(360deg); } }


.quote-popup__form input[type="checkbox"], .quote-popup__form input[type="radio"] {
  width: auto; margin: 3px 0 0; flex: 0 0 auto; accent-color: var(--blue);
}
.quote-popup__form .wpcf7-acceptance .wpcf7-list-item { display: block; margin: 0; }
.quote-popup__form .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.quote-popup__form .wpcf7-list-item-label { font-size: 13px; font-weight: 400; line-height: 1.5; color: var(--ct-desc); }
.quote-popup__form .wpcf7-list-item-label a { color: var(--blue); }


.quote-popup__form .clause-static-wrapper { display: none; }


.quote-popup__form .mfile_copy { margin: 2px 0 12px; }
.quote-popup__form .mfile_copy p,
.quote-popup__form .mfile_copy { display: inline-flex; align-items: center; gap: 8px; margin: 2px 0 12px;
  font-size: 13.5px; font-weight: 700; color: var(--blue); cursor: pointer; }


.quote-popup__form .wpcf7-not-valid-tip { color: var(--ct-err); font-size: 12.5px; font-weight: 500; margin-top: 6px; }
.quote-popup__form .wpcf7-form-control.wpcf7-not-valid { border-color: var(--ct-err); }
.quote-popup__form .wpcf7-response-output {
  margin: 16px 0 0 !important; border-radius: 12px; padding: 12px 16px !important; font-size: 13.5px; line-height: 1.5;
}

.quote-popup__success {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 30px 10px;
}
.quote-popup__success-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 72px; height: 72px; border-radius: 9999px; background: #e9f6ee; margin-bottom: 24px;
}
.quote-popup__success-icon svg { width: 34px; height: 34px; }
.quote-popup__success-title { margin: 0; font-size: 24px; font-weight: 900; letter-spacing: -0.4px; color: var(--basic); }
.quote-popup__success-text { margin: 14px 0 0; max-width: 380px; font-size: 16px; line-height: 1.6; color: var(--ct-desc); }

@media (max-width: 640px) {
  .quote-popup { padding: 0; align-items: stretch; }
  .quote-popup__panel { max-width: none; max-height: 100vh; border-radius: 0; }
  .quote-popup__scroll { max-height: 100vh; padding: 30px 22px 34px; }
  .quote-popup__title { font-size: 22px !important; }
  .quote-popup__form .form-contact-row50 { grid-template-columns: 1fr; gap: 0; }
}
