

/* =========================================================
   Pre-Footer Estimate Form
   Global conversion block used before the footer.
   Keep form-section layout here, not in components.css.
   ========================================================= */

/* ------------------------------
   Section shell
   ------------------------------ */
.site-pre-footer,
.pre-footer,
.pre-footer-section,
.estimate-pre-footer {
  position: relative;
  overflow: hidden;
  padding: 96px 0 104px;
  background:
    radial-gradient(circle at 12% 12%, rgba(212, 175, 55, 0.10) 0, rgba(212, 175, 55, 0) 32%),
    linear-gradient(180deg, #f7f9fc 0%, #ffffff 100%);
}

.site-pre-footer::before,
.pre-footer::before,
.pre-footer-section::before,
.estimate-pre-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(11, 30, 58, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11, 30, 58, 0.035) 1px, transparent 1px);
  background-size: 42px 42px;
  opacity: 0.45;
  pointer-events: none;
}

.site-pre-footer .lux-container,
.pre-footer .lux-container,
.pre-footer-section .lux-container,
.estimate-pre-footer .lux-container {
  position: relative;
  z-index: 1;
}

/* ------------------------------
   Premium form card
   ------------------------------ */
.pre-footer-form-card,
.pre-footer-card,
.estimate-form-card,
.estimate-form-wrapper,
.pre-footer-form-wrapper {
  position: relative;
  overflow: hidden;
  max-width: 1180px;
  margin: 0 auto;
  padding: 46px;
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(11, 30, 58, 0.08);
  box-shadow: 0 30px 90px rgba(11, 30, 58, 0.13);
}

.pre-footer-form-card::before,
.pre-footer-card::before,
.estimate-form-card::before,
.estimate-form-wrapper::before,
.pre-footer-form-wrapper::before {
  content: "";
  position: absolute;
  inset: -1px;
  background:
    radial-gradient(circle at 88% 0%, rgba(212, 175, 55, 0.14), rgba(212, 175, 55, 0) 34%),
    radial-gradient(circle at 0% 100%, rgba(11, 30, 58, 0.045), rgba(11, 30, 58, 0) 34%);
  pointer-events: none;
}

.pre-footer-form-card > *,
.pre-footer-card > *,
.estimate-form-card > *,
.estimate-form-wrapper > *,
.pre-footer-form-wrapper > * {
  position: relative;
  z-index: 1;
}

/* ------------------------------
   Header inside form block
   ------------------------------ */
.pre-footer-header,
.estimate-form-header,
.form-intro {
  max-width: 820px;
  margin: 0 auto 36px;
  text-align: center;
}

.pre-footer-header .lux-eyebrow,
.estimate-form-header .lux-eyebrow,
.form-intro .lux-eyebrow {
  margin-bottom: 14px;
}

.pre-footer-header .lux-h2,
.pre-footer-header .lux-h2-dark,
.pre-footer-header .lux-h2-navy,
.estimate-form-header .lux-h2,
.estimate-form-header .lux-h2-dark,
.estimate-form-header .lux-h2-navy,
.form-intro .lux-h2,
.form-intro .lux-h2-dark,
.form-intro .lux-h2-navy {
  margin-bottom: 16px;
}

.pre-footer-header .lux-p,
.pre-footer-header .lux-p-center,
.pre-footer-header .lux-p-center-dark,
.estimate-form-header .lux-p,
.estimate-form-header .lux-p-center,
.estimate-form-header .lux-p-center-dark,
.form-intro .lux-p,
.form-intro .lux-p-center,
.form-intro .lux-p-center-dark {
  margin-bottom: 0;
}

/* ------------------------------
   Form layout
   ------------------------------ */
.pre-footer-form,
.estimate-form,
.lgc-estimate-form {
  max-width: 980px;
  margin: 0 auto;
}

.fields-grid,
.form-grid,
.estimate-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.span-2,
.form-span-2,
.full-span {
  grid-column: 1 / -1;
}

.form-group,
.field-group,
.input-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form-group label,
.field-group label,
.input-group label {
  color: var(--navy-deep);
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.35;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.form-group input,
.form-group select,
.form-group textarea,
.field-group input,
.field-group select,
.field-group textarea,
.input-group input,
.input-group select,
.input-group textarea,
.pre-footer-form input,
.pre-footer-form select,
.pre-footer-form textarea,
.estimate-form input,
.estimate-form select,
.estimate-form textarea,
.lgc-estimate-form input,
.lgc-estimate-form select,
.lgc-estimate-form textarea {
  width: 100%;
  min-height: 52px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(11, 30, 58, 0.13);
  background: #ffffff;
  color: var(--navy-deep);
  font-family: var(--font-main);
  font-size: 15px;
  line-height: 1.35;
  outline: none;
  box-shadow: 0 8px 20px rgba(11, 30, 58, 0.035);
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.form-group textarea,
.field-group textarea,
.input-group textarea,
.pre-footer-form textarea,
.estimate-form textarea,
.lgc-estimate-form textarea {
  min-height: 124px;
  resize: vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.field-group input:focus,
.field-group select:focus,
.field-group textarea:focus,
.input-group input:focus,
.input-group select:focus,
.input-group textarea:focus,
.pre-footer-form input:focus,
.pre-footer-form select:focus,
.pre-footer-form textarea:focus,
.estimate-form input:focus,
.estimate-form select:focus,
.estimate-form textarea:focus,
.lgc-estimate-form input:focus,
.lgc-estimate-form select:focus,
.lgc-estimate-form textarea:focus {
  border-color: rgba(212, 175, 55, 0.62);
  box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.12), 0 10px 24px rgba(11, 30, 58, 0.06);
}

.form-group input::placeholder,
.form-group textarea::placeholder,
.field-group input::placeholder,
.field-group textarea::placeholder,
.input-group input::placeholder,
.input-group textarea::placeholder,
.pre-footer-form input::placeholder,
.pre-footer-form textarea::placeholder,
.estimate-form input::placeholder,
.estimate-form textarea::placeholder,
.lgc-estimate-form input::placeholder,
.lgc-estimate-form textarea::placeholder {
  color: #94a3b8;
}

/* ------------------------------
   Radio / checkbox options
   ------------------------------ */
.radio-row,
.checkbox-row,
.option-row,
.service-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.radio-option,
.checkbox-option,
.option-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #f8fafc;
  border: 1px solid rgba(11, 30, 58, 0.10);
  color: #40506a;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color 0.22s ease, background 0.22s ease, color 0.22s ease, box-shadow 0.22s ease;
}

.radio-option:hover,
.checkbox-option:hover,
.option-pill:hover {
  background: #ffffff;
  border-color: rgba(212, 175, 55, 0.42);
  color: var(--navy-deep);
  box-shadow: 0 10px 22px rgba(11, 30, 58, 0.055);
}

.radio-option input,
.checkbox-option input,
.option-pill input {
  width: auto;
  min-height: auto;
  box-shadow: none;
}

/* ------------------------------
   Submit button / footer note
   ------------------------------ */
.pre-footer-form .lux-btn,
.estimate-form .lux-btn,
.lgc-estimate-form .lux-btn,
.pre-footer-form button[type="submit"],
.estimate-form button[type="submit"],
.lgc-estimate-form button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 58px;
  padding: 17px 30px;
  border: 0;
  border-radius: 999px;
  font-family: var(--font-main);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #071a36;
  background: linear-gradient(135deg, #d4af37 0%, #f2d574 100%);
  box-shadow: 0 18px 44px rgba(212, 175, 55, 0.26);
  cursor: pointer;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.pre-footer-form .lux-btn:hover,
.estimate-form .lux-btn:hover,
.lgc-estimate-form .lux-btn:hover,
.pre-footer-form button[type="submit"]:hover,
.estimate-form button[type="submit"]:hover,
.lgc-estimate-form button[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 54px rgba(212, 175, 55, 0.34);
}

.form-footer,
.pre-footer-form-footer,
.estimate-form-footer {
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
  text-align: center;
}

/* ------------------------------
   Validation states
   ------------------------------ */
.form-error,
.field-error,
.form-error-message {
  margin-top: 7px;
  color: #b42318;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.has-error input,
.has-error select,
.has-error textarea,
input.is-invalid,
select.is-invalid,
textarea.is-invalid {
  border-color: rgba(180, 35, 24, 0.55) !important;
  box-shadow: 0 0 0 4px rgba(180, 35, 24, 0.08) !important;
}

/* ------------------------------
   Responsive
   ------------------------------ */
@media (max-width: 991px) {
  .site-pre-footer,
  .pre-footer,
  .pre-footer-section,
  .estimate-pre-footer {
    padding: 82px 0 88px;
  }

  .pre-footer-form-card,
  .pre-footer-card,
  .estimate-form-card,
  .estimate-form-wrapper,
  .pre-footer-form-wrapper {
    padding: 34px 28px;
    border-radius: 28px;
  }
}

@media (max-width: 767px) {
  .site-pre-footer,
  .pre-footer,
  .pre-footer-section,
  .estimate-pre-footer {
    padding: 68px 0 74px;
  }

  .pre-footer-form-card,
  .pre-footer-card,
  .estimate-form-card,
  .estimate-form-wrapper,
  .pre-footer-form-wrapper {
    padding: 24px 18px;
    border-radius: 22px;
  }

  .pre-footer-header,
  .estimate-form-header,
  .form-intro {
    margin-bottom: 28px;
  }

  .fields-grid,
  .form-grid,
  .estimate-fields-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .span-2,
  .form-span-2,
  .full-span {
    grid-column: auto;
  }

  .radio-option,
  .checkbox-option,
  .option-pill {
    width: 100%;
    justify-content: flex-start;
  }
}