/* Twenty20 Building Inspections: book-inspection form (Happy Forms 159) light restyle. Same parts, same order, same flow; only the look changes. (2026-10-08) */
form#happyforms-form-159 {
  --t20: #6e1c3b;
  --t20-dark: #561530;
  --t20-tint: #f8eef2;
  --t20-line: #d9d9d9;
  --t20-muted: #5f5f5f;
  font-family: Poppins, Arial, sans-serif;
}

/* progress */
.happyforms-form-progress .happyforms-step_information_wrapper { display: block; }
.happyforms-form-progress .happyforms-step-wrapper-notice { display: block; padding: 0; background: none; border: 0; text-align: left; }
.happyforms-form-progress__step-index { display: block; font-size: 13px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: #5f5f5f; margin-bottom: 8px; }
.crsp-progress { height: 6px; background: #ececec; border-radius: 99px; overflow: hidden; margin-bottom: 28px; }
.crsp-progress > span { display: block; height: 100%; width: 20%; background: #6e1c3b; border-radius: 99px; transition: width .35s ease; }

/* steps */
form#happyforms-form-159 .happyforms-step { animation: crspStepIn .25s ease; }
@keyframes crspStepIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
form#happyforms-form-159 h2.happyforms-layout-title { font-size: 28px; line-height: 1.25; margin: 0 0 8px; }
form#happyforms-form-159 .happyforms-part { margin-bottom: 22px; }
form#happyforms-form-159 .happyforms-part__label { font-weight: 500; margin-bottom: 10px; display: block; height: auto; line-height: 1.4; }

/* text inputs, phone, email, textarea, select */
form#happyforms-form-159 input[type="text"],
form#happyforms-form-159 input[type="email"],
form#happyforms-form-159 input[type="tel"],
form#happyforms-form-159 textarea,
form#happyforms-form-159 select {
  font-family: inherit;
  font-size: 16px;
  color: #1e1e1e;
  background-color: #fff;
  border: 1.5px solid var(--t20-line);
  border-radius: 8px;
  padding: 12px 14px;
  width: 100%;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
form#happyforms-form-159 select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%236e1c3b' stroke-width='2.5' d='M5 9l7 7 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  cursor: pointer;
}
form#happyforms-form-159 select:invalid { color: #8a8a8a; }
form#happyforms-form-159 select option { color: #1e1e1e; }
form#happyforms-form-159 .happyforms-part__select-wrap::after,
form#happyforms-form-159 .happyforms-custom-select::after { display: none; }
form#happyforms-form-159 input:focus,
form#happyforms-form-159 textarea:focus,
form#happyforms-form-159 select:focus {
  outline: none;
  border-color: var(--t20);
  box-shadow: 0 0 0 3px rgba(110, 28, 59, .15);
}
form#happyforms-form-159 [aria-invalid="true"] { border-color: #c0392b; }

/* radio choices as cards */
form#happyforms-form-159 .happyforms-part--radio .happyforms-part__el { display: flex; flex-wrap: wrap; gap: 10px; }
form#happyforms-form-159 .happyforms-part--radio .happyforms-part__option { margin: 0; }
form#happyforms-form-159 .option-label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 150px;
  height: auto;
  padding: 12px 18px;
  border: 1.5px solid var(--t20-line);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
form#happyforms-form-159 .option-label:hover { border-color: #b9a1ab; }
form#happyforms-form-159 .option-label:has(input:checked) { border-color: var(--t20); background: var(--t20-tint); }
form#happyforms-form-159 .option-label:has(input:focus-visible) { outline: 2px solid var(--t20); outline-offset: 2px; }
form#happyforms-form-159 .option-label .label-wrap,
form#happyforms-form-159 .option-label .label { font-size: 16px; line-height: 1.3; }

/* our own radio dot and tick, so they match the cards */
form#happyforms-form-159 .option-label .checkmark {
  position: relative;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin: 0;
  top: auto;
  left: auto;
  border: 2px solid #b5b5b5;
  border-radius: 50%;
  background: #fff;
  transition: border-color .15s ease, background-color .15s ease;
}
form#happyforms-form-159 .option-label .checkmark .happyforms-radio-circle { display: none; }
form#happyforms-form-159 .option-label input[type="radio"]:checked + .checkmark { border-color: var(--t20); box-shadow: inset 0 0 0 4px #fff; background: var(--t20); }
form#happyforms-form-159 .option-label input[type="checkbox"] + .checkmark { border-radius: 5px; color: transparent; }
form#happyforms-form-159 .option-label input[type="checkbox"] + .checkmark svg { width: 12px; height: 12px; }
form#happyforms-form-159 .option-label input[type="checkbox"]:checked + .checkmark { border-color: var(--t20); background: var(--t20); color: #fff; }

/* terms */
form#happyforms-form-159 #happyforms-159_placeholder_51-part { margin-bottom: 10px; }
form#happyforms-form-159 #happyforms-159_placeholder_51-part a { color: var(--t20); text-decoration: underline; }
form#happyforms-form-159 .happyforms-part--checkbox .option-label { min-width: 0; }

/* buttons */
form#happyforms-form-159 .happyforms-part--submit { margin-top: 8px; }
form#happyforms-form-159 .happyforms-submit {
  width: 100%;
  height: auto;
  padding: 15px 32px;
  border: 0;
  border-radius: 8px;
  background: var(--t20);
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background-color .15s ease, transform .05s ease;
}
form#happyforms-form-159 .happyforms-submit:hover { background: var(--t20-dark); }
form#happyforms-form-159 .happyforms-submit:active { transform: translateY(1px); }
form#happyforms-form-159 .happyforms-submit:focus-visible { outline: 2px solid var(--t20); outline-offset: 3px; }
form#happyforms-form-159 .happyforms-submit[disabled] { opacity: .7; cursor: progress; }
form#happyforms-form-159 .crsp-step-back { font-family: inherit; color: var(--t20-muted) !important; }
form#happyforms-form-159 .crsp-step-back:hover { color: var(--t20) !important; opacity: 1 !important; }

/* error box from forms.js */
form#happyforms-form-159 .crsp-form-error { border-radius: 8px; }

@media (max-width: 560px) {
  form#happyforms-form-159 .happyforms-part--radio .happyforms-part__option { flex: 1 1 100%; }
  form#happyforms-form-159 .option-label { min-width: 0; }
  form#happyforms-form-159 h2.happyforms-layout-title { font-size: 24px; }
}

/* the plugin stylesheet uses !important on these, so ours must too */
form#happyforms-form-159 .happyforms-form-progress .happyforms-step_information_wrapper,
form#happyforms-form-159 .happyforms-form-progress .happyforms-step-wrapper-notice { display: block !important; width: 100% !important; text-align: left !important; justify-content: flex-start !important; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; }
form#happyforms-form-159 .crsp-progress { display: block !important; width: 100% !important; }
form#happyforms-form-159 .happyforms-part--submit button.happyforms-submit.happyforms-button--submit {
  border: 0 !important;
  border-radius: 8px !important;
  background: #6e1c3b !important;
  color: #fff !important;
  font-weight: 600 !important;
  font-family: Poppins, Arial, sans-serif !important;
  min-height: 52px;
}
form#happyforms-form-159 .happyforms-part--submit button.happyforms-submit.happyforms-button--submit:hover { background: #561530 !important; }
form#happyforms-form-159 .happyforms-part input[type="text"],
form#happyforms-form-159 .happyforms-part input[type="email"],
form#happyforms-form-159 .happyforms-part input[type="tel"],
form#happyforms-form-159 .happyforms-part textarea,
form#happyforms-form-159 .happyforms-part select {
  border: 1.5px solid #d9d9d9 !important;
  border-radius: 8px !important;
  padding: 12px 14px !important;
  font-family: Poppins, Arial, sans-serif !important;
  background-color: #fff !important;
}
form#happyforms-form-159 .happyforms-part select { padding-right: 42px !important; }
form#happyforms-form-159 .happyforms-part input:focus,
form#happyforms-form-159 .happyforms-part textarea:focus,
form#happyforms-form-159 .happyforms-part select:focus { border-color: #6e1c3b !important; box-shadow: 0 0 0 3px rgba(110, 28, 59, .15) !important; outline: none !important; }
form#happyforms-form-159 .happyforms-part [aria-invalid="true"] { border-color: #c0392b !important; }
form#happyforms-form-159 .happyforms-part__select-bg { display: none !important; }
form#happyforms-form-159 .happyforms-part select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%236e1c3b' stroke-width='2.5' d='M5 9l7 7 7-7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
}
