

/* =========================================================
   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;
}

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

.site-pre-footer .span-2,
.site-pre-footer .form-span-2,
.site-pre-footer .full-span,
.pre-footer .span-2,
.pre-footer .form-span-2,
.pre-footer .full-span,
.pre-footer-section .span-2,
.pre-footer-section .form-span-2,
.pre-footer-section .full-span,
.estimate-pre-footer .span-2,
.estimate-pre-footer .form-span-2,
.estimate-pre-footer .full-span {
  grid-column: 1 / -1;
}

.site-pre-footer .form-group,
.site-pre-footer .field-group,
.site-pre-footer .input-group,
.pre-footer .form-group,
.pre-footer .field-group,
.pre-footer .input-group,
.pre-footer-section .form-group,
.pre-footer-section .field-group,
.pre-footer-section .input-group,
.estimate-pre-footer .form-group,
.estimate-pre-footer .field-group,
.estimate-pre-footer .input-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

 .site-pre-footer .form-group label,
 .site-pre-footer .field-group label,
 .site-pre-footer .input-group label,
 .pre-footer .form-group label,
 .pre-footer .field-group label,
 .pre-footer .input-group label,
 .pre-footer-section .form-group label,
 .pre-footer-section .field-group label,
 .pre-footer-section .input-group label,
 .estimate-pre-footer .form-group label,
 .estimate-pre-footer .field-group label,
 .estimate-pre-footer .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;
}

 .site-pre-footer .form-group input,
 .site-pre-footer .form-group select,
 .site-pre-footer .form-group textarea,
 .site-pre-footer .field-group input,
 .site-pre-footer .field-group select,
 .site-pre-footer .field-group textarea,
 .site-pre-footer .input-group input,
 .site-pre-footer .input-group select,
 .site-pre-footer .input-group textarea,
 .pre-footer .form-group input,
 .pre-footer .form-group select,
 .pre-footer .form-group textarea,
 .pre-footer .field-group input,
 .pre-footer .field-group select,
 .pre-footer .field-group textarea,
 .pre-footer .input-group input,
 .pre-footer .input-group select,
 .pre-footer .input-group textarea,
 .pre-footer-section .form-group input,
 .pre-footer-section .form-group select,
 .pre-footer-section .form-group textarea,
 .pre-footer-section .field-group input,
 .pre-footer-section .field-group select,
 .pre-footer-section .field-group textarea,
 .pre-footer-section .input-group input,
 .pre-footer-section .input-group select,
 .pre-footer-section .input-group textarea,
 .estimate-pre-footer .form-group input,
 .estimate-pre-footer .form-group select,
 .estimate-pre-footer .form-group textarea,
 .estimate-pre-footer .field-group input,
 .estimate-pre-footer .field-group select,
 .estimate-pre-footer .field-group textarea,
 .estimate-pre-footer .input-group input,
 .estimate-pre-footer .input-group select,
 .estimate-pre-footer .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;
}

 .site-pre-footer .form-group textarea,
 .site-pre-footer .field-group textarea,
 .site-pre-footer .input-group textarea,
 .pre-footer .form-group textarea,
 .pre-footer .field-group textarea,
 .pre-footer .input-group textarea,
 .pre-footer-section .form-group textarea,
 .pre-footer-section .field-group textarea,
 .pre-footer-section .input-group textarea,
 .estimate-pre-footer .form-group textarea,
 .estimate-pre-footer .field-group textarea,
 .estimate-pre-footer .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
   ------------------------------ */
 .site-pre-footer .radio-row,
 .site-pre-footer .checkbox-row,
 .site-pre-footer .option-row,
 .site-pre-footer .service-options,
 .pre-footer .radio-row,
 .pre-footer .checkbox-row,
 .pre-footer .option-row,
 .pre-footer .service-options,
 .pre-footer-section .radio-row,
 .pre-footer-section .checkbox-row,
 .pre-footer-section .option-row,
 .pre-footer-section .service-options,
 .estimate-pre-footer .radio-row,
 .estimate-pre-footer .checkbox-row,
 .estimate-pre-footer .option-row,
 .estimate-pre-footer .service-options {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

 .site-pre-footer .radio-option,
 .site-pre-footer .checkbox-option,
 .site-pre-footer .option-pill,
 .pre-footer .radio-option,
 .pre-footer .checkbox-option,
 .pre-footer .option-pill,
 .pre-footer-section .radio-option,
 .pre-footer-section .checkbox-option,
 .pre-footer-section .option-pill,
 .estimate-pre-footer .radio-option,
 .estimate-pre-footer .checkbox-option,
 .estimate-pre-footer .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;
}

 .site-pre-footer .radio-option:hover,
 .site-pre-footer .checkbox-option:hover,
 .site-pre-footer .option-pill:hover,
 .pre-footer .radio-option:hover,
 .pre-footer .checkbox-option:hover,
 .pre-footer .option-pill:hover,
 .pre-footer-section .radio-option:hover,
 .pre-footer-section .checkbox-option:hover,
 .pre-footer-section .option-pill:hover,
 .estimate-pre-footer .radio-option:hover,
 .estimate-pre-footer .checkbox-option:hover,
 .estimate-pre-footer .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);
}

 .site-pre-footer .radio-option input,
 .site-pre-footer .checkbox-option input,
 .site-pre-footer .option-pill input,
 .pre-footer .radio-option input,
 .pre-footer .checkbox-option input,
 .pre-footer .option-pill input,
 .pre-footer-section .radio-option input,
 .pre-footer-section .checkbox-option input,
 .pre-footer-section .option-pill input,
 .estimate-pre-footer .radio-option input,
 .estimate-pre-footer .checkbox-option input,
 .estimate-pre-footer .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;
  }

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

  .site-pre-footer .span-2,
  .site-pre-footer .form-span-2,
  .site-pre-footer .full-span,
  .pre-footer .span-2,
  .pre-footer .form-span-2,
  .pre-footer .full-span,
  .pre-footer-section .span-2,
  .pre-footer-section .form-span-2,
  .pre-footer-section .full-span,
  .estimate-pre-footer .span-2,
  .estimate-pre-footer .form-span-2,
  .estimate-pre-footer .full-span {
    grid-column: auto;
  }

  .site-pre-footer .radio-option,
  .site-pre-footer .checkbox-option,
  .site-pre-footer .option-pill,
  .pre-footer .radio-option,
  .pre-footer .checkbox-option,
  .pre-footer .option-pill,
  .pre-footer-section .radio-option,
  .pre-footer-section .checkbox-option,
  .pre-footer-section .option-pill,
  .estimate-pre-footer .radio-option,
  .estimate-pre-footer .checkbox-option,
  .estimate-pre-footer .option-pill {
    width: 100%;
    justify-content: flex-start;
  }
}

/* ------------------------------
   Ownership note
   ------------------------------
   pre-footer-form.css owns the global pre-footer estimate form block only:
   section shell, form card, form intro, form grid, form controls inside the
   pre-footer context, radio/checkbox options, submit state, and validation
   presentation inside the estimate form.

   Generic button variants belong in core/components.css.
   Generic tokens, reset, utilities, and accessibility helpers belong in core/base.css.
   Shared section systems belong in core/sections.css.
*/

/* Presentation only: field names, validation and submission are unchanged. */
.site-pre-footer { background: var(--lgic-editorial-form); padding: 76px 0; }
.site-pre-footer::before, .site-pre-footer .pre-footer-form-card::before { display: none; }
.site-pre-footer .pre-footer-header { max-width: var(--lgic-editorial-width); text-align: left; margin: 0 auto 38px; }
.site-pre-footer .pre-footer-header h2 { font-weight: 600; letter-spacing: -.035em; }
.site-pre-footer .pre-footer-header .lux-eyebrow-gold { color: var(--lgic-editorial-accent); background: none; border: 0; padding: 0; border-radius: 0; box-shadow: none; }
.site-pre-footer .pre-footer-header p { max-width: var(--lgic-editorial-measure); margin-inline: 0; text-align: left; color: var(--lgic-editorial-muted); }
.site-pre-footer .pre-footer-form { max-width: none; }
.site-pre-footer .pre-footer-form-card { max-width: var(--lgic-editorial-width); padding: 32px 0 0; border: 0; border-top: 1px solid #c9c9bd; border-radius: 0; background: transparent; box-shadow: none; }
.site-pre-footer .form-group > label { font-weight: 600; letter-spacing: .015em; text-transform: none; font-size: 13px; }
.site-pre-footer .form-group input:not([type="radio"]), .site-pre-footer .form-group select, .site-pre-footer .form-group textarea { border-radius: var(--lgic-editorial-radius); border-color: #b6bdbb; background: #fff; box-shadow: none; font-size: 16px; }
.site-pre-footer .form-group input:focus, .site-pre-footer .form-group select:focus, .site-pre-footer .form-group textarea:focus { border-color: var(--lgic-editorial-accent); box-shadow: 0 0 0 2px #d9cba9; }
.site-pre-footer .radio-option { border-radius: var(--lgic-editorial-radius); background: transparent; font-weight: 500; min-height: var(--lgic-editorial-tap); }
.site-pre-footer .radio-option:has(input:checked) { background: #eee8d8; border-color: var(--lgic-editorial-accent); }
.site-pre-footer .radio-option span { font-weight: 500; text-transform: none; letter-spacing: 0; }
.site-pre-footer input[type="radio"] { accent-color: var(--lgic-editorial-accent); }
.site-pre-footer input::placeholder, .site-pre-footer textarea::placeholder { color: #697775; }
.site-pre-footer .form-actions input[type="submit"] { background: var(--lgic-editorial-ink); color: #fff; border-radius: var(--lgic-editorial-radius); box-shadow: none; font-weight: 600; text-transform: none; letter-spacing: .025em; min-height: 54px; cursor: pointer; }
.site-pre-footer .form-actions input[type="submit"]:hover { background: #233f54; transform: none; box-shadow: none; }
.site-pre-footer :focus-visible { outline: 2px solid var(--lgic-editorial-accent); outline-offset: 3px; }
@media (max-width: 767px) {
  .site-pre-footer { padding: 54px 0; }
  .site-pre-footer .pre-footer-form-card { padding: 26px 0 0; }
  .site-pre-footer .radio-option { width: auto; flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .site-pre-footer * { transition: none; } }
