/* =========================================================
   AirConUnit.co.uk - Master Form CSS (100% Theme-Proof)
   ========================================================= */

:root {
  --ac-sky: #29BEF2;
  --ac-sky-hover: #1faad9;
  --ac-sky-light: #EBF9FE;
  --ac-navy: #0F172A;
  --ac-slate: #64748B;
  --ac-border: #E2E8F0;
  --ac-bg: #F9F9FB;
}

/* Master Wrapper & Font isolation */
.ac-lead-wrapper {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
  background-color: var(--ac-bg) !important;
  min-height: 100vh !important;
  padding: 60px 20px 100px !important;
  color: var(--ac-navy) !important;
  box-sizing: border-box !important;
}

.ac-lead-wrapper *, 
.ac-lead-wrapper *::before, 
.ac-lead-wrapper *::after {
  box-sizing: border-box !important;
}

/* Header */
.ac-lead-header {
  text-align: center !important;
  max-width: 720px !important;
  margin: 0 auto 40px !important;
}

.ac-lead-eyebrow {
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.15em !important;
  color: var(--ac-slate) !important;
  margin-bottom: 12px !important;
  text-transform: uppercase !important;
}

.ac-lead-title {
  font-family: "Plus Jakarta Sans", Sans-serif
  font-size: 42px !important;
  font-weight: 600 !important;
  color: var(--ac-navy) !important;
  margin: 0 0 16px !important;
  line-height: 1.2 !important;
}

.ac-lead-subtitle {
  font-size: 15px !important;
  color: var(--ac-slate) !important;
  line-height: 1.6 !important;
  margin: 0 !important;
	font-weight:400 ;
}

/* Card */
.ac-card {
  max-width: 640px !important;
  margin: 0 auto !important;
  background: #FFFFFF !important;
  border-radius: 16px !important;
  padding: 40px 45px !important;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04) !important;
  border: 1px solid var(--ac-border) !important;
}

/* Stepper Bar */
.ac-stepper {
  display: flex !important;
  justify-content: space-between !important;
  border-bottom: 1px solid var(--ac-border) !important;
  padding-bottom: 24px !important;
  margin-bottom: 35px !important;
}

.ac-step-item {
  flex: 1 !important;
  text-align: left !important;
  opacity: 0.35 !important;
  transition: opacity 0.2s !important;
}

.ac-step-item.active {
  opacity: 1 !important;
}

.ac-step-num {
  font-size: 18px !important;
  font-weight: 800 !important;
  color: var(--ac-navy) !important;
  display: block !important;
}

.ac-step-label {
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  color: var(--ac-slate) !important;
  text-transform: uppercase !important;
  margin-top: 4px !important;
  display: block !important;
}

/* Form Steps */
.ac-form-step {
  display: none !important;
}

.ac-form-step.active {
  display: block !important;
  animation: acFadeIn 0.3s ease !important;
}

@keyframes acFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* =========================================================
   FIELD GROUPS & LABELS (FIXES ALL OVERLAPS)
   ========================================================= */
.ac-field-group {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  margin-bottom: 26px !important;
  clear: both !important;
  float: none !important;
  position: relative !important;
}

.ac-label {
  display: block !important;
  width: 100% !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  color: var(--ac-navy) !important;
  margin: 0 0 10px 0 !important;
  padding: 0 !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
  float: none !important;
  position: static !important;
}

/* =========================================================
   DROPDOWN / SELECT (FIXES TEXT CLIPPING & SQUASHING)
   ========================================================= */
.ac-select-wrapper {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 50px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: both !important;
}

.ac-select-wrapper select,
select.ac-select,
.ac-lead-wrapper select {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
  line-height: 48px !important; /* Perfect vertical text centering */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 16px !important;
  padding-right: 44px !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
  border: 1px solid var(--ac-border) !important;
  border-radius: 8px !important;
  font-size: 14px !important;
  font-family: inherit !important;
  font-weight: 500 !important;
  color: var(--ac-navy) !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
  outline: none !important;
  box-shadow: none !important;
  float: none !important;
  margin: 0 !important;
  vertical-align: middle !important;
}

.ac-select-wrapper select:focus,
select.ac-select:focus {
  border-color: var(--ac-sky) !important;
  box-shadow: 0 0 0 3px rgba(41, 190, 242, 0.15) !important;
}

/* Custom Dropdown Arrow */
.ac-select-arrow {
  position: absolute !important;
  top: 50% !important;
  right: 16px !important;
  transform: translateY(-50%) !important;
  pointer-events: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 10 !important;
  width: 14px !important;
  height: 14px !important;
}

/* Standard Inputs & Textarea */
.ac-input, .ac-textarea {
  width: 100% !important;
  height: 50px !important;
  padding: 0 16px !important;
  border-radius: 8px !important;
  border: 1px solid var(--ac-border) !important;
  background: #FFFFFF !important;
  color: var(--ac-navy) !important;
  font-size: 14px !important;
  font-family: inherit !important;
  outline: none !important;
  box-shadow: none !important;
  float: none !important;
  margin: 0 !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

.ac-textarea {
  height: auto !important;
  min-height: 90px !important;
  padding: 12px 16px !important;
  line-height: 1.5 !important;
}

.ac-input:focus, .ac-textarea:focus {
  border-color: var(--ac-sky) !important;
  box-shadow: 0 0 0 3px rgba(41, 190, 242, 0.15) !important;
}

/* Pills (Residential / Commercial) */
.ac-pill-group {
  display: flex !important;
  gap: 12px !important;
  width: 100% !important;
  float: none !important;
}

.ac-pill {
  flex: 1 !important;
  cursor: pointer !important;
  margin: 0 !important;
}

.ac-pill input {
  display: none !important;
}

.ac-pill span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 48px !important;
  border-radius: 30px !important;
  border: 1px solid var(--ac-border) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  color: var(--ac-slate) !important;
  background: #FFFFFF !important;
  transition: all 0.2s !important;
}

.ac-pill.active span, .ac-pill input:checked + span {
  background: var(--ac-navy) !important;
  color: #FFFFFF !important;
  border-color: var(--ac-navy) !important;
}

/* Radio Cards (Ownership) */
.ac-ownership-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
  float: none !important;
  clear: both !important;
}

.ac-radio-card {
  cursor: pointer !important;
  margin: 0 !important;
}

.ac-radio-card input {
  display: none !important;
}

.ac-radio-card span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 48px !important;
  border-radius: 8px !important;
  border: 1px solid var(--ac-border) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--ac-slate) !important;
  background: #FFFFFF !important;
  transition: all 0.2s !important;
}

.ac-radio-card input:checked + span,
.ac-radio-card.active span {
  border-color: var(--ac-sky) !important;
  background: var(--ac-sky-light) !important;
  color: var(--ac-navy) !important;
}

/* Checkbox Grid (Rooms) */
.ac-checkbox-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
}

.ac-check-pill {
  cursor: pointer !important;
  margin: 0 !important;
}

.ac-check-pill input {
  display: none !important;
}

.ac-check-pill span {
  display: flex !important;
  align-items: center !important;
  padding: 12px 14px !important;
  min-height: 48px !important;
  border-radius: 8px !important;
  border: 1px solid var(--ac-border) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--ac-slate) !important;
  background: #FFFFFF !important;
  transition: all 0.2s !important;
}

.ac-check-pill input:checked + span {
  border-color: var(--ac-sky) !important;
  background: var(--ac-sky-light) !important;
  color: var(--ac-navy) !important;
}

/* File Dropzone */
.ac-file-dropzone {
  border: 2px dashed var(--ac-border) !important;
  border-radius: 10px !important;
  padding: 24px !important;
  text-align: center !important;
  cursor: pointer !important;
  background: #FAFAFC !important;
  transition: all 0.2s !important;
}

.ac-file-dropzone:hover {
  border-color: var(--ac-sky) !important;
  background: var(--ac-sky-light) !important;
}

.ac-upload-icon {
  width: 32px !important;
  height: 32px !important;
  color: var(--ac-sky) !important;
  margin: 0 auto 8px !important;
}

.ac-file-text {
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--ac-navy) !important;
}

.ac-file-subtext {
  font-size: 11px !important;
  color: var(--ac-slate) !important;
  margin-top: 4px !important;
  display: block !important;
}

/* 2 Column Row */
.ac-row-2 {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 15px !important;
  width: 100% !important;
}

/* Clean Custom Radio Buttons */
.ac-contact-radios {
  display: flex !important;
  gap: 22px !important;
  align-items: center !important;
  margin-top: 4px !important;
}

.ac-radio-clean {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
  margin: 0 !important;
}

.ac-radio-clean input[type="radio"] {
  display: none !important;
}

.ac-radio-clean .ac-dot {
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  border: 2px solid #CBD5E1 !important;
  background: #FFFFFF !important;
  display: inline-block !important;
  transition: all 0.2s !important;
}

.ac-radio-clean input[type="radio"]:checked + .ac-dot {
  border-color: var(--ac-sky) !important;
  background: var(--ac-sky) !important;
  box-shadow: inset 0 0 0 3px #FFFFFF !important;
}

.ac-radio-clean .ac-text {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--ac-navy) !important;
}

/* Consent Box */
.ac-consent-container {
  background: var(--ac-sky-light) !important;
  padding: 16px 20px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(41, 190, 242, 0.35) !important;
  margin-bottom: 25px !important;
}

.ac-custom-checkbox-wrapper {
  display: flex !important;
  align-items: flex-start !important;
  gap: 14px !important;
  cursor: pointer !important;
  margin: 0 !important;
}

.ac-lead-wrapper input[type="checkbox"].ac-hidden-checkbox {
  display: none !important;
}

.ac-checkbox-box {
  width: 20px !important;
  min-width: 20px !important;
  height: 20px !important;
  border-radius: 5px !important;
  border: 2px solid #94A3B8 !important;
  background: #FFFFFF !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 2px !important;
  transition: all 0.2s !important;
}

.ac-check-icon {
  width: 12px !important;
  height: 10px !important;
  display: none !important;
}

.ac-hidden-checkbox:checked + .ac-checkbox-box {
  background: var(--ac-sky) !important;
  border-color: var(--ac-sky) !important;
}

.ac-hidden-checkbox:checked + .ac-checkbox-box .ac-check-icon {
  display: block !important;
}

.ac-consent-text {
  font-size: 12.5px !important;
  line-height: 1.55 !important;
  color: var(--ac-navy) !important;
}

/* Buttons */
.ac-btn-row {
  margin-top: 30px !important;
}

.ac-btn-between {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.ac-btn {
  background: var(--ac-navy) !important;
  color: #FFFFFF !important;
  border: none !important;
  padding: 14px 30px !important;
  border-radius: 30px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  display: inline-block !important;
}

.ac-btn:hover {
  background: #1e293b !important;
  transform: translateY(-1px) !important;
}

.ac-btn-submit {
  background: var(--ac-sky) !important;
}

.ac-btn-submit:hover {
  background: var(--ac-sky-hover) !important;
}

.ac-btn-back {
  background: none !important;
  border: none !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  color: var(--ac-slate) !important;
  cursor: pointer !important;
}

.ac-btn-back:hover {
  color: var(--ac-navy) !important;
}

.ac-error-msg {
  color: #ef4444 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  margin-bottom: 15px !important;
}

/* =========================================================
   DISABLE THEME PLUGINS FROM MESSING WITH SELECTS
   ========================================================= */
.ac-lead-wrapper .chosen-container,
.ac-lead-wrapper .select2-container,
.ac-lead-wrapper .nice-select,
.ac-lead-wrapper .bootstrap-select {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
}

@media (max-width: 768px) {
  .ac-card { padding: 25px 20px !important; }
  .ac-lead-title { font-size: 28px !important; }
  .ac-row-2, .ac-checkbox-grid, .ac-ownership-grid { grid-template-columns: 1fr !important; }
  .ac-contact-radios { flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }
}
/* Contact Methods Multi-select Grid */
.ac-contact-methods-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
}

/* Terms & Conditions Link Style */
.ac-tc-link {
  color: var(--ac-sky) !important;
  text-decoration: underline !important;
  font-weight: 700 !important;
  transition: color 0.2s !important;
}

.ac-tc-link:hover {
  color: var(--ac-sky-hover) !important;
}

@media (max-width: 600px) {
  .ac-contact-methods-grid {
    grid-template-columns: 1fr !important;
  }
}