/* NPT Tradeshow Enrollment — merged from custom-enrollment.css / appform.css / page styles */

/* Distraction-free enrollment page: hide site menu/CTA/topbar, keep the logo.
   This stylesheet only loads on pages containing [npt_tradeshow_form], so these
   rules affect the enrollment page only. Covers both the live theme
   (.navigation/.get-quote/#common-pages/.topbar) and the new oconnor-npt theme
   (.nav/.header-cta/.topbar). The logo is intentionally left visible. */
.topbar,
.navigation,
.get-quote,
#common-pages,
.nav,
.header-cta { display: none !important; }

.npt-ts-wrap { max-width: 1140px; margin: 30px auto; padding: 0 15px; font-family: inherit; }

/* ---------- palette helpers ---------- */
.npt-ts-wrap .bg-green { background: #27B24D !important; }
.npt-ts-wrap .bg-light-green { background: #F0FFF4 !important; }
.npt-ts-wrap .text-green { color: #27B24D !important; }
.npt-ts-wrap .text-light-black { color: #444 !important; }
.npt-ts-wrap .text-gray { color: #606060 !important; }
.npt-ts-wrap .border-green { border: 1px solid #27B24D !important; }
.npt-ts-wrap .fw-bold { font-weight: 700 !important; }
.npt-ts-wrap .fs-14 { font-size: 14px !important; }
.npt-ts-wrap .fs-18 { font-size: 18px !important; }
.npt-ts-wrap .fs-20 { font-size: 20px !important; }
.npt-ts-wrap .fs-26 { font-size: 26px !important; }
.npt-ts-wrap .fs-30 { font-size: 30px !important; }
.npt-ts-wrap .fs-32 { font-size: 32px !important; }

/* ---------- step indicator ---------- */
.npt-ts-wrap .step-indicator {
  display: flex; flex-wrap: wrap; justify-content: space-between;
  gap: .5rem; margin-bottom: 30px; user-select: none;
}
.npt-ts-wrap .card-stepper { border-radius: 10px; }
.npt-ts-wrap .step { flex: 1 1 auto; text-align: center; position: relative; cursor: default; min-width: 60px; }
.npt-ts-wrap .step::before {
  content: ""; position: absolute; top: 32%; transform: translateY(-50%);
  left: -50%; width: 100%; height: 3px; background-color: #dee2e6; z-index: 0;
}
.npt-ts-wrap .step:first-child::before { display: none; }
.npt-ts-wrap .step.completed + .step::before { background-color: #198754; }
.npt-ts-wrap .step .circle {
  width: 40px; height: 40px; position: relative; display: flex; margin: 0 auto 5px;
  align-items: center; font-weight: bold; font-size: 18px; border-radius: 50%;
  background-color: #dee2e6; justify-content: center; z-index: 1;
}
.npt-ts-wrap .step .label { font-size: 15px; word-wrap: break-word; }
.npt-ts-wrap .step.active .circle { background-color: #27b24d; color: #fff; }
.npt-ts-wrap .step.completed .circle { background-color: #198754; color: #fff; }
.npt-ts-wrap .step.completed .circle > span { display: none; }
.npt-ts-wrap .step.completed .circle::after {
  content: "✔\FE0E"; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%); font-size: 16px; color: #fff;
}

/* ---------- steps ---------- */
.npt-ts-wrap .step-content { display: none; }
.npt-ts-wrap .step-content.active { display: block; }

/* ---------- inputs ---------- */
#stepper-form input[type="text"], #stepper-form input[type="email"], #stepper-form input[type="tel"],
#stepper-form input[type="search"], #stepper-form select, #stepper-form textarea {
  height: 40px; padding: 5px 8px; color: #444; font-weight: 400; font-size: 16px;
  background-color: #effff3; border: 1px solid #ccc; border-radius: 7px;
}
#stepper-form textarea { height: auto; min-height: 40px; }
#stepper-form .form-control:focus {
  background-color: #effff3; border: 1px solid #3333334f;
  box-shadow: 0 0 0 .2rem #27b24d4d !important;
}
#stepper-form .btn { max-width: -webkit-fill-available; padding: 7px 15px; font-size: 16px; border-radius: 7px; }
#stepper-form .btn-success { background-color: #27b24d; border-color: #27b24d; }
#stepper-form .btn-success:hover { background-color: #1f9440; border-color: #27b24d; }
#stepper-form .btn-secondary { color: #fff; background-color: #868e96; border-color: #868e96; }
#stepper-form .btn-secondary:hover { color: #fff; background-color: #727b84 !important; border-color: #6c757d !important; }
#stepper-form .is-invalid { border-color: red !important; }
#stepper-form .remove-btn { cursor: pointer; color: red; font-weight: bold; margin-left: 15px; }
#stepper-form .property-row { position: relative; margin-bottom: 10px; }
#stepper-form .btn-addproperty {
  width: max-content; margin: 0 auto; display: block;
  color: #FFF !important; text-decoration: none;
}
.npt-ts-wrap .validation-message { display: block; font-size: 13px; min-height: 18px; }
.npt-ts-wrap .display-ptype { width: 125px; font-size: 13px; color: #27b24d; font-weight: 700; margin-left: 8px; white-space: nowrap; }

/* ---------- property search dropdown ---------- */
.property-search-dropdown {
  width: 99% !important; max-height: 250px; position: absolute !important; display: block;
  top: 42px; background-color: #fff !important; border: 1px solid #ccc !important;
  border-radius: 5px !important; z-index: 1000 !important;
  box-shadow: rgba(0,0,0,.2) 0 2px 4px !important;
}
.property-search-dropdown ul { list-style: none; padding: 0; margin: 0; max-height: 320px; overflow-y: auto; }
.property-search-dropdown li.item { padding: 12px 14px; cursor: pointer; border-bottom: 1px solid #f0f0f0; }
.property-search-dropdown li.item:last-child { border-bottom: 0; }
.property-search-dropdown li.item:hover { background-color: #f0f7f2; }
/* Address + county on the same row without overlapping: flex, wrap on narrow. */
.property-search-dropdown li.item > .fs-14 {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 14px; line-height: 1.45;
}
.property-search-dropdown li.item > .fs-14 > .fw-bold { flex: 1 1 60%; min-width: 0; }
.property-search-dropdown .item-county {
  position: static !important; right: auto !important;
  margin-left: auto; white-space: nowrap; color: #5a6b60; font-size: 12.5px;
}
.property-search-dropdown .fw-bold { font-weight: 700 !important; }

/* ---------- terms table ---------- */
.npt-ts-wrap .table thead th {
  vertical-align: bottom; border-bottom: 0; background: #27b24d; color: #FFF;
}
.npt-ts-wrap .table-bordered td, .npt-ts-wrap .table-bordered th { border: 1px solid #ccc; }
.npt-ts-wrap .table tr > td { color: #444; font-weight: 500; }
.npt-ts-wrap #editableTable td { vertical-align: middle !important; }
.npt-ts-wrap .edit-all { cursor: pointer; }
.npt-ts-wrap .table .fa-save { color: #27b24d; font-weight: 500; }
.npt-ts-wrap .addRowInline { width: 36px; height: 36px; padding: 0; border-radius: 6px; }
.npt-ts-wrap textarea.form-control:disabled { background-color: #6c757d54 !important; border-color: #6c757d54 !important; }

/* ---------- signature ---------- */
#signature {
  width: 100%; max-width: 500px; height: 200px; margin: 0 auto;
  border: 2px solid #ccc; background: #fff; touch-action: none; position: relative;
  -webkit-touch-callout: none; -webkit-user-select: none; user-select: none;
}
#signature > div { width: 100% !important; height: 100% !important; padding: 0 !important; margin: 0 !important; }
#signature canvas { width: 100% !important; height: 200px !important; display: block; image-rendering: auto; margin: 0 !important; padding: 0 !important; }
#clear, #saveSignature { min-width: 120px; border-radius: 5px; }
.loader-overlay {
  position: absolute; inset: 0; background: rgba(255,255,255,.7);
  display: flex; align-items: center; justify-content: center; z-index: 10;
}

/* ---------- confirm modal ---------- */
.confirm-modal {
  display: none; position: fixed; z-index: 9999; left: 0; top: 0;
  width: 100%; height: 100%; background-color: rgba(0,0,0,.4);
  justify-content: center; align-items: center;
}
.confirm-modal-content {
  background: #fff; padding: 25px 30px; border-radius: 10px; max-width: 400px;
  width: 90%; box-shadow: 0 4px 12px rgba(0,0,0,.2); text-align: center;
}
.confirm-modal-content h3 { margin-top: 0; color: #333; }
.confirm-modal-content p { color: #555; font-size: 15px; }
.confirm-buttons { margin-top: 20px; display: flex; justify-content: center; gap: 10px; }
.btn-confirm, .btn-cancel { padding: 8px 16px; border: none; border-radius: 5px; font-size: 14px; cursor: pointer; }
.btn-confirm { background-color: #28a745; color: #fff; }
.btn-cancel { background-color: #dc3545; color: #fff; }
.btn-confirm:hover { background-color: #218838; }
.btn-cancel:hover { background-color: #c82333; }

/* ---------- thank you ---------- */
.npt-ts-wrap .success-container h2 { color: #222; }
.npt-ts-wrap .success-container .sub-heading { color: #333; }
.npt-ts-wrap .disclaimer-checkbox { margin-top: 1rem !important; margin-bottom: 1rem !important; }

/* ---------- responsive ---------- */
@media (max-width: 768px) {
  .npt-ts-wrap .step-indicator { overflow-x: auto; flex-wrap: nowrap; }
  #signature { height: 180px; }
}
@media (max-width: 576px) {
  .npt-ts-wrap .step-indicator { gap: 1rem; }
  .npt-ts-wrap .step { min-width: 100px; }
  .npt-ts-wrap .step::before { display: none; }
  #stepper-form .d-flex.justify-content-between { flex-direction: column; gap: 10px; }
  #stepper-form .btn { width: 100%; }
  .npt-ts-wrap h4.fs-26 { font-size: 20px !important; }
  .npt-ts-wrap .fs-18 { font-size: 16px !important; }
  #signature { height: 160px; }
}
.page-id-5690 .topbar,
.page-id-5690 .nav,
.page-id-5690 .header-cta,
.page-id-5690 .tab-page-hero,
.page-id-5690 .get-quote,
.page-id-5690 #common-pages { display: none !important; }

