/* LIFA form experience v2
   Shared presentation for inquiry workflows and sourcing calculators. */

:root {
  --form-ink: #0f1e36;
  --form-ink-deep: #07111f;
  --form-gold: #eed47d;
  --form-gold-light: #eed47d;
  --form-paper: #ffffff;
  --form-canvas: #f3f5f8;
  --form-soft: #f8fafc;
  --form-line: #d9dfe8;
  --form-copy: #526174;
  --form-success: #176b55;
  --form-error: #a33b32;
  --form-panel-pad: clamp(24px, 3.2vw, 40px);
}

body :is(form[data-inquiry-form], form[data-tool-form]) {
  min-width: 0;
  color: var(--form-ink);
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(input, select, textarea) {
  width: 100%;
  min-height: 54px;
  padding: 13px 15px;
  border: 1px solid #cbd3df;
  border-radius: 6px;
  outline: 0;
  color: var(--form-ink);
  background-color: var(--form-paper);
  background-image: none;
  box-shadow: 0 1px 0 rgba(15, 30, 54, .04);
  font-family: var(--font-reading, "Open Sans", Arial, sans-serif);
  font-size: .96rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

body :is(form[data-inquiry-form], form[data-tool-form]) select {
  padding-right: 42px;
  cursor: pointer;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--form-gold) 50%),
    linear-gradient(135deg, var(--form-gold) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 13px) calc(50% - 2px);
  background-repeat: no-repeat;
  background-size: 5px 5px, 5px 5px;
  appearance: none;
}

body :is(form[data-inquiry-form], form[data-tool-form]) textarea {
  min-height: 142px;
  resize: vertical;
  line-height: 1.65;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(input, textarea)::placeholder {
  color: #8c98a8;
  opacity: 1;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(input, select, textarea):hover {
  border-color: #9eabbc;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(input, select, textarea):focus {
  border-color: var(--form-gold);
  background-color: #fff;
  box-shadow: 0 0 0 3px rgba(238, 212, 125, .17), inset 3px 0 0 var(--form-gold);
  transform: none;
}

body :is(form[data-inquiry-form], form[data-tool-form]) input:is([type="checkbox"], [type="radio"]) {
  width: 17px !important;
  height: 17px !important;
  min-height: 0 !important;
  padding: 0 !important;
  flex: 0 0 17px;
  border: 1px solid #aeb9c8;
  border-radius: 3px;
  background: #fff;
  box-shadow: none !important;
  accent-color: var(--form-gold);
  transform: none !important;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(.field, .tool-field) {
  position: relative;
  min-width: 0;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(.field, .tool-field) > label {
  display: flex;
  min-height: 18px;
  margin: 0 0 8px;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  color: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .055em;
  text-transform: uppercase;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(.field, .tool-field).has-value > label {
  color: #eed47d;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(.field, .tool-field).has-value :is(input, select, textarea) {
  border-color: rgba(15, 30, 54, .42);
  background-color: #fbfcfe;
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(.field, .tool-field).is-invalid > label {
  color: var(--form-error);
}

body :is(form[data-inquiry-form], form[data-tool-form]) :is(.field, .tool-field).is-invalid :is(input, select, textarea) {
  border-color: var(--form-error);
  background-color: #ffffff;
  box-shadow: 0 0 0 3px rgba(163, 59, 50, .11);
}

.lifa-char-count {
  display: block;
  margin-top: 6px;
  color: #738095;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .66rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: right;
  letter-spacing: .035em;
}

/* Inquiry panel shell */
body .form-panel:has(form[data-inquiry-form]):not(.quote-wizard),
body .home-request-form-wrap:has(form[data-inquiry-form]) {
  --form-panel-pad: clamp(24px, 3.2vw, 40px);
  padding: var(--form-panel-pad) !important;
  overflow: hidden;
  border: 1px solid rgba(238, 212, 125, .5) !important;
  border-top: 4px solid var(--form-gold) !important;
  border-radius: 8px !important;
  background: var(--form-paper) !important;
  box-shadow: 0 26px 64px rgba(2, 8, 16, .24) !important;
}

body .form-panel:has(form[data-inquiry-form]):not(.quote-wizard) > h2 {
  max-width: 18ch;
  margin-bottom: 0;
  color: var(--form-ink) !important;
  font-size: clamp(2rem, 3.3vw, 3.15rem);
  line-height: 1.03;
}

.lifa-form-command {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(190px, .58fr);
  gap: 24px;
  margin: 28px calc(var(--form-panel-pad) * -1) 4px;
  padding: 20px var(--form-panel-pad);
  align-items: center;
  color: #fff;
  background: var(--form-ink);
  border-top: 1px solid rgba(238, 212, 125, .36);
  border-bottom: 1px solid rgba(238, 212, 125, .2);
}

.lifa-form-command-copy span,
.lifa-form-progress-copy span {
  display: block;
  color: var(--form-gold-light);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .66rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.lifa-form-command-copy strong {
  display: block;
  margin-top: 3px;
  color: #fff !important;
  font-family: "Times New Roman", Times, serif;
  font-size: 1.22rem;
  font-weight: 700;
  line-height: 1.25;
}

.lifa-form-progress-copy {
  display: flex;
  margin-bottom: 8px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.lifa-form-progress-copy strong {
  color: #fff !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.4;
}

.lifa-form-progress-track {
  height: 5px;
  overflow: hidden;
  background: rgba(255, 255, 255, .16);
  border-radius: 3px;
}

.lifa-form-progress-track > span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--form-gold-light);
  border-radius: inherit;
  transition: width .24s ease;
}

.lifa-form-sections {
  display: grid;
}

.lifa-form-stage {
  padding: 30px 0 28px;
  border-bottom: 1px solid var(--form-line);
}

.lifa-form-stage:last-child {
  border-bottom: 0;
}

.lifa-form-stage-heading {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 13px;
  margin-bottom: 20px;
  align-items: center;
}

.lifa-form-stage-number {
  display: inline-grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(238, 212, 125, .7);
  border-radius: 6px;
  color: var(--form-gold-light);
  background: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  font-weight: 700;
}

.lifa-form-stage-heading h3 {
  margin: 0;
  color: var(--form-ink);
  font-family: "Times New Roman", Times, serif;
  font-size: 1.42rem;
  font-weight: 700;
  line-height: 1.15;
}

.lifa-form-stage-status {
  color: #69768a;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .66rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.lifa-form-stage .form-grid {
  gap: 20px 18px;
}

/* Upload and submission surfaces */
body form[data-inquiry-form] .document-upload {
  padding: 20px !important;
  border: 1px dashed rgba(238, 212, 125, .72) !important;
  border-radius: 6px !important;
  background: var(--form-soft) !important;
}

body form[data-inquiry-form] .document-upload .upload-zone {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
  padding: 18px !important;
  align-items: start;
  border: 1px solid var(--form-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
}

body form[data-inquiry-form] .upload-icon {
  display: inline-flex;
  width: 46px;
  height: 46px;
  margin: 0;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: 6px;
  color: var(--form-ink);
  background: var(--form-gold-light);
  box-shadow: none;
}

body form[data-inquiry-form] input[type="file"] {
  min-height: 44px;
  padding: 4px;
  border: 1px solid var(--form-line);
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}

body form[data-inquiry-form] input[type="file"]::file-selector-button {
  min-height: 34px;
  margin-right: 12px;
  padding: 7px 14px;
  border: 1px solid var(--form-ink);
  border-radius: 5px;
  color: #fff;
  background: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  font-weight: 700;
  cursor: pointer;
}

body form[data-inquiry-form] .upload-help {
  margin-top: 9px;
  color: var(--form-copy);
  font-size: .78rem;
}

body form[data-inquiry-form] :is(.form-actions, .home-form-actions) {
  display: grid;
  grid-template-columns: minmax(200px, 1fr) minmax(180px, auto);
  gap: 10px;
  margin-top: 8px;
  padding: 18px;
  border: 1px solid rgba(238, 212, 125, .2);
  border-radius: 6px;
  background: var(--form-ink);
}

html body:not(#lifa-legacy-form-actions) form[data-inquiry-form] :is(.form-actions, .home-form-actions) {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(200px, 1fr) minmax(180px, auto) !important;
}

html body:not(#lifa-legacy-form-actions) form[data-inquiry-form] :is(.form-actions, .home-form-actions) > :only-child {
  grid-column: 1 / -1;
}

body form[data-inquiry-form] :is(.form-actions, .home-form-actions) :is(.btn, button, a) {
  min-height: 50px;
  border-radius: 5px !important;
  box-shadow: none !important;
}

body form[data-inquiry-form] :is(.form-actions, .home-form-actions) .btn-primary {
  color: var(--form-ink-deep) !important;
  background: var(--form-gold-light) !important;
  border-color: var(--form-gold-light) !important;
}

body form[data-inquiry-form] :is(.form-actions, .home-form-actions) .btn-outline {
  color: #fff !important;
  background: transparent !important;
  border-color: rgba(255, 255, 255, .4) !important;
}

body form[data-inquiry-form] :is(.form-note, .static-form-message) {
  font-size: .8rem;
  line-height: 1.65;
}

/* Homepage request panel */
.home-page .home-request-form-wrap[data-form-experience="v2"] {
  align-self: start;
}

.home-page .home-request-form-wrap[data-form-experience="v2"] .home-request-form-heading {
  margin: calc(var(--form-panel-pad) * -1) calc(var(--form-panel-pad) * -1) 0;
  padding: 18px var(--form-panel-pad);
  color: #fff;
  background: var(--form-ink-deep);
  border-bottom: 1px solid rgba(238, 212, 125, .24);
}

.home-page .home-request-form .lifa-form-command {
  margin-top: 0;
}

.home-page .home-request-form .home-form-grid {
  gap: 20px 18px;
  margin-top: 28px;
}

.home-page .home-request-form .home-form-optional {
  grid-column: 1 / -1;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--form-line);
  border-radius: 6px;
  background: var(--form-soft);
}

.home-page .home-request-form .home-form-optional > summary {
  padding: 16px 18px;
  color: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
}

.home-page .home-request-form .home-form-optional[open] > summary {
  border-bottom: 1px solid var(--form-line);
  background: #fff;
}

.home-page .home-request-form .home-form-optional > .home-form-grid {
  margin: 0;
  padding: 20px 18px;
}

/* Dedicated quote wizard */
body .form-panel.quote-wizard[data-form-experience="v2"] {
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(238, 212, 125, .52) !important;
  border-top: 4px solid var(--form-gold) !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 30px 70px rgba(2, 8, 16, .3) !important;
}

body .quote-wizard[data-form-experience="v2"] .quote-progress-panel {
  padding: clamp(28px, 4vw, 44px) !important;
  border-radius: 0 !important;
  background: var(--form-ink-deep) !important;
}

body .quote-wizard[data-form-experience="v2"] .quote-progress-panel::before {
  background: rgba(255, 255, 255, .14);
}

body .quote-wizard[data-form-experience="v2"] .progress-line {
  background: var(--form-gold-light) !important;
}

body .quote-wizard[data-form-experience="v2"] .quote-progress-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 24px;
  padding-top: 20px;
}

body .quote-wizard[data-form-experience="v2"] .quote-stat {
  min-width: 0;
  padding: 0 20px;
  border-right: 1px solid rgba(255, 255, 255, .16);
}

body .quote-wizard[data-form-experience="v2"] .quote-stat:first-child {
  padding-left: 0;
}

body .quote-wizard[data-form-experience="v2"] .quote-stat:last-child {
  padding-right: 0;
  border-right: 0;
}

body .quote-wizard[data-form-experience="v2"] .quote-wizard-body {
  padding: clamp(26px, 4vw, 46px) !important;
}

body .quote-wizard[data-form-experience="v2"] .quote-section-label {
  display: grid;
  grid-template-columns: 42px minmax(0, auto) minmax(24px, 1fr);
  gap: 13px;
  margin: 38px 0 20px;
  align-items: center;
  color: var(--form-ink);
  font-family: "Times New Roman", Times, serif;
  font-size: 1.5rem;
  font-weight: 700;
}

body .quote-wizard[data-form-experience="v2"] .quote-section-label::after {
  background: var(--form-line);
}

body .quote-wizard[data-form-experience="v2"] .quote-section-label .lifa-number-badge {
  width: 42px;
  height: 42px;
  border-radius: 6px;
  color: var(--form-gold-light);
  background: var(--form-ink);
}

body .quote-wizard[data-form-experience="v2"] .field-check {
  margin-top: 6px;
  color: var(--form-success);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .68rem;
  font-weight: 700;
}

/* Optional appointment planning for every inquiry form */
.lifa-appointment {
  margin: 30px 0 22px;
  padding: 24px 0 0;
  border-top: 1px solid var(--form-line);
  color: var(--form-ink);
}

.lifa-appointment-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, auto);
  gap: 24px;
  align-items: center;
}

.lifa-appointment-heading {
  min-width: 0;
}

.lifa-appointment-eyebrow {
  display: block;
  margin-bottom: 5px;
  color: #eed47d;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.lifa-appointment-heading h3 {
  margin: 0;
  color: var(--form-ink);
  font-family: "Times New Roman", Times, serif;
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0;
}

.lifa-appointment-heading p {
  max-width: 68ch;
  margin: 7px 0 0;
  color: var(--form-copy);
  font-size: .83rem;
  line-height: 1.6;
}

body form[data-inquiry-form] .lifa-appointment-toggle {
  display: grid;
  min-height: 62px;
  padding: 11px 14px;
  grid-template-columns: 40px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
  border: 1px solid #bac4d1;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

body form[data-inquiry-form] .lifa-appointment-toggle:hover,
body form[data-inquiry-form] .lifa-appointment-toggle:focus-within {
  border-color: var(--form-gold);
  box-shadow: 0 0 0 3px rgba(238, 212, 125, .14);
}

body form[data-inquiry-form] .lifa-appointment-toggle > input {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.lifa-appointment-toggle-track {
  position: relative;
  display: block;
  width: 40px;
  height: 23px;
  grid-row: 1;
  border: 1px solid #9ba8b9;
  border-radius: 12px;
  background: #e8ecf1;
  transition: border-color .18s ease, background-color .18s ease;
}

.lifa-appointment-toggle-track > span {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 30, 54, .3);
  transition: transform .18s ease;
}

.lifa-appointment-toggle > input:checked + .lifa-appointment-toggle-track {
  border-color: var(--form-ink);
  background: var(--form-ink);
}

.lifa-appointment-toggle > input:checked + .lifa-appointment-toggle-track > span {
  transform: translateX(17px);
}

.lifa-appointment-toggle-copy {
  display: block;
  min-width: 0;
}

.lifa-appointment-toggle-copy strong,
.lifa-appointment-toggle-copy small {
  display: block;
  letter-spacing: 0;
  text-transform: none;
}

.lifa-appointment-toggle-copy strong {
  color: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .76rem;
  line-height: 1.4;
}

.lifa-appointment-toggle-copy small {
  margin-top: 2px;
  color: var(--form-copy);
  font-size: .7rem;
  font-weight: 500;
  line-height: 1.4;
}

.lifa-appointment-details[hidden] {
  display: none !important;
}

.lifa-appointment-details {
  margin-top: 22px;
  padding: 24px;
  border: 1px solid #d9dfe8;
  border-left: 3px solid var(--form-gold);
  border-radius: 6px;
  background: var(--form-soft);
}

.lifa-appointment-notice {
  display: grid;
  grid-template-columns: minmax(150px, .32fr) minmax(0, 1fr);
  gap: 16px;
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--form-line);
}

.lifa-appointment-notice strong {
  color: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  line-height: 1.5;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.lifa-appointment-notice span {
  color: var(--form-copy);
  font-size: .78rem;
  line-height: 1.6;
}

.lifa-appointment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.lifa-field-help {
  display: block;
  margin-top: 6px;
  color: #6f7d90;
  font-size: .7rem;
  line-height: 1.5;
}

.lifa-appointment-channel {
  min-width: 0;
  margin: 22px 0 0;
  padding: 0;
  border: 0;
}

.lifa-appointment-channel legend {
  margin-bottom: 9px;
  color: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.lifa-appointment-options {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

body form[data-inquiry-form] .lifa-appointment-options label {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 50px;
  padding: 9px 10px;
  place-items: center;
  border: 1px solid #c7d0dc;
  border-radius: 5px;
  color: var(--form-ink);
  background: #fff;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  cursor: pointer;
}

body form[data-inquiry-form] .lifa-appointment-options input {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}

body form[data-inquiry-form] .lifa-appointment-options label:hover,
body form[data-inquiry-form] .lifa-appointment-options label:focus-within {
  border-color: var(--form-gold);
}

body form[data-inquiry-form] .lifa-appointment-options label:has(input:checked) {
  border-color: var(--form-ink);
  color: #fff;
  background: var(--form-ink);
  box-shadow: inset 0 -3px 0 var(--form-gold);
}

.lifa-appointment-context {
  margin-top: 22px;
}

body form[data-inquiry-form] .lifa-appointment-context textarea {
  min-height: 112px;
}

.lifa-appointment-summary {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid var(--form-line);
}

.lifa-appointment-summary-head {
  display: flex;
  margin-bottom: 13px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.lifa-appointment-summary-head > div {
  color: var(--form-ink);
  font-family: "Times New Roman", Times, serif;
  font-size: 1.18rem;
  font-weight: 700;
}

.lifa-appointment-status {
  color: #6d7889;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.4;
  text-align: right;
  text-transform: uppercase;
}

.lifa-appointment-summary.is-ready .lifa-appointment-status {
  color: var(--form-success);
}

.lifa-appointment-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--form-line);
  border-left: 1px solid var(--form-line);
}

.lifa-appointment-summary-grid > div {
  min-width: 0;
  padding: 13px 14px;
  border-right: 1px solid var(--form-line);
  border-bottom: 1px solid var(--form-line);
  background: #fff;
}

.lifa-appointment-summary-grid dt {
  margin-bottom: 4px;
  color: #6b788b;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .62rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.lifa-appointment-summary-grid dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--form-ink);
  font-size: .79rem;
  font-weight: 600;
  line-height: 1.5;
}

body form[data-inquiry-form] .lifa-calendar-button {
  min-height: 42px;
  margin-top: 13px;
  padding: 9px 14px;
  border: 1px solid var(--form-ink);
  border-radius: 5px;
  color: #fff;
  background: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .02em;
  cursor: pointer;
}

body form[data-inquiry-form] .lifa-calendar-button:disabled {
  border-color: #cbd2dc;
  color: #7f8b9a;
  background: #e7ebf0;
  cursor: not-allowed;
}

.lifa-appointment-confirmation {
  display: block;
  max-width: 78ch;
  margin-top: 10px;
  color: #647286;
  font-size: .7rem;
  line-height: 1.55;
}

/* Confirmed Google Calendar booking follows the sourcing request. */
.lifa-google-booking {
  display: grid;
  margin: 32px calc(var(--form-panel-pad) * -1) calc(var(--form-panel-pad) * -1);
  padding: 28px var(--form-panel-pad) 0;
  grid-template-columns: minmax(84px, .22fr) minmax(0, 1fr);
  grid-template-areas:
    "step copy"
    "facts facts"
    "action action";
  gap: 22px 26px;
  align-items: start;
  border-top: 4px solid var(--form-gold);
  color: #fff;
  background: var(--form-ink-deep);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
}

.lifa-google-booking-step {
  display: grid;
  grid-area: step;
  gap: 9px;
  align-content: start;
  padding-right: 20px;
  border-right: 1px solid rgba(238, 212, 125, .26);
}

.lifa-google-booking-number {
  display: inline-grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid rgba(238, 212, 125, .72);
  border-radius: 6px;
  color: var(--form-ink-deep);
  background: var(--form-gold-light);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
}

.lifa-google-booking-step small {
  max-width: 12ch;
  color: rgba(255, 255, 255, .64);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .61rem;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0;
  text-transform: uppercase;
}

.lifa-google-booking-copy {
  grid-area: copy;
}

html body:not(#lifa-light-calendar) .lifa-google-booking-copy .lifa-appointment-eyebrow {
  color: var(--form-gold-light);
  letter-spacing: 0;
}

html body:not(#lifa-light-calendar) .lifa-google-booking-copy h3 {
  margin: 0;
  color: #fff !important;
  font-family: "Times New Roman", Times, serif;
  font-size: 1.72rem;
  line-height: 1.14;
  letter-spacing: 0;
}

html body:not(#lifa-light-calendar) .lifa-google-booking-copy p {
  max-width: 68ch;
  margin: 10px 0 0;
  color: rgba(255, 255, 255, .72) !important;
  font-size: .83rem;
  line-height: 1.62;
}

.lifa-google-booking-facts {
  display: grid;
  grid-area: facts;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid rgba(255, 255, 255, .14);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.lifa-google-booking-facts > div {
  min-width: 0;
  padding: 14px 18px;
  border-right: 1px solid rgba(255, 255, 255, .14);
}

.lifa-google-booking-facts > div:first-child {
  padding-left: 0;
}

.lifa-google-booking-facts > div:last-child {
  padding-right: 0;
  border-right: 0;
}

.lifa-google-booking-facts dt,
.lifa-google-booking-facts dd {
  margin: 0;
  letter-spacing: 0;
}

.lifa-google-booking-facts dt {
  color: var(--form-gold-light);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .61rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: uppercase;
}

html body:not(#lifa-light-calendar) .lifa-google-booking-facts dd {
  margin-top: 4px;
  color: #fff !important;
  font-size: .76rem;
  font-weight: 600;
  line-height: 1.5;
}

.lifa-google-booking-action {
  display: grid;
  grid-area: action;
  grid-template-columns: minmax(230px, 280px) minmax(0, 1fr);
  gap: 18px;
  padding-bottom: 30px;
  align-items: center;
}

.lifa-google-booking .lifa-google-booking-link,
.static-form-message .success-next-step {
  display: inline-flex;
  width: fit-content;
  min-height: 46px;
  padding: 11px 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--form-gold-light);
  border-radius: 5px;
  color: var(--form-ink-deep);
  background: var(--form-gold-light);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-decoration: none;
}

.lifa-google-booking .lifa-google-booking-link:hover,
.lifa-google-booking .lifa-google-booking-link:focus-visible,
.static-form-message .success-next-step:hover,
.static-form-message .success-next-step:focus-visible {
  border-color: #fff;
  color: var(--form-ink);
  background: #fff;
}

html body:not(#lifa-light-calendar) .lifa-google-booking-action small {
  max-width: 66ch;
  color: rgba(255, 255, 255, .62) !important;
  font-size: .69rem;
  line-height: 1.55;
  letter-spacing: 0;
}

.lifa-google-booking--inline {
  margin-top: 30px;
}

/* Calculator workspace */
body[data-page-family="tool"] .tool-workspace-section {
  background: var(--form-canvas);
}

body[data-page-family="tool"] .tool-workspace[data-form-experience="v2"] {
  grid-template-columns: minmax(0, 1.14fr) minmax(360px, .86fr);
  overflow: visible;
  border: 1px solid rgba(15, 30, 54, .18);
  border-top: 4px solid var(--form-gold);
  border-radius: 8px !important;
  background: #fff;
  box-shadow: 0 28px 68px rgba(15, 30, 54, .13);
}

body[data-page-family="tool"] .tool-workspace[data-form-experience="v2"] .tool-inputs {
  padding: clamp(24px, 3.5vw, 42px);
}

body[data-page-family="tool"] .tools-pro-bar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  margin-bottom: 18px;
  padding: 12px 14px;
  align-items: center;
  border: 1px solid var(--form-line);
  border-left: 3px solid var(--form-gold);
  border-radius: 6px;
  background: var(--form-soft);
}

body[data-page-family="tool"] .tools-pro-label {
  color: #eed47d;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .07em;
}

body[data-page-family="tool"] .tools-pro-actions {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
}

html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] .tools-pro-actions .pro-btn {
  width: auto !important;
  min-width: 0 !important;
  min-height: 38px;
  padding: 8px 12px;
  border: 1px solid #b8c2d0;
  border-radius: 5px !important;
  color: var(--form-ink) !important;
  background: #fff !important;
  box-shadow: none !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .02em;
}

html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] .tools-pro-actions .pro-btn:hover,
html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] .tools-pro-actions .pro-btn:focus-visible {
  border-color: var(--form-gold);
  color: #eed47d !important;
}

body[data-page-family="tool"] .tools-pro-live {
  display: inline-flex;
  min-height: 38px;
  padding: 8px 10px;
  align-items: center;
  gap: 7px;
  border: 1px solid transparent;
  color: var(--form-ink);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .67rem;
  font-weight: 700;
  white-space: nowrap;
}

.lifa-tool-stage-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: 6px;
  margin-bottom: 32px;
  padding: 6px;
  border: 1px solid var(--form-line);
  border-radius: 7px;
  background: #eef1f5;
}

.lifa-tool-stage-nav button {
  display: grid;
  min-width: 0;
  min-height: 58px;
  padding: 9px 11px;
  grid-template-columns: 26px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 8px;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 5px;
  color: var(--form-ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.lifa-tool-stage-nav button:hover,
.lifa-tool-stage-nav button:focus-visible {
  border-color: rgba(238, 212, 125, .65);
  background: #fff;
  outline: 0;
}

.lifa-tool-stage-nav button.is-active {
  color: #fff;
  background: var(--form-ink);
  border-color: var(--form-ink);
}

.lifa-tool-nav-number {
  display: inline-grid;
  width: 26px;
  height: 26px;
  grid-row: 1 / 3;
  place-items: center;
  border: 1px solid rgba(238, 212, 125, .7);
  border-radius: 4px;
  color: #eed47d;
  background: #fff;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .62rem;
  font-weight: 700;
}

.lifa-tool-stage-nav button.is-active .lifa-tool-nav-number {
  color: var(--form-gold-light);
  background: transparent;
}

.lifa-tool-nav-label,
.lifa-tool-nav-status {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lifa-tool-nav-label {
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .02em;
}

.lifa-tool-nav-status {
  color: #718095;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .6rem;
  font-weight: 600;
}

.lifa-tool-stage-nav button.is-active .lifa-tool-nav-status {
  color: rgba(255, 255, 255, .68);
}

body[data-page-family="tool"] form[data-tool-form] .tool-form-section {
  position: relative;
  margin: 0;
  padding: 32px 0;
  border-top: 1px solid var(--form-line);
  border-radius: 0 !important;
}

body[data-page-family="tool"] form[data-tool-form] .tool-form-section:first-of-type {
  padding-top: 4px;
  border-top: 0;
}

body[data-page-family="tool"] form[data-tool-form] .tool-form-section::before {
  display: block;
  margin-bottom: 5px;
  color: #eed47d;
  content: "INPUT GROUP " attr(data-stage-number);
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
}

body[data-page-family="tool"] form[data-tool-form] .tool-form-section h3 {
  margin-bottom: 6px;
  color: var(--form-ink);
  font-family: "Times New Roman", Times, serif;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.15;
}

body[data-page-family="tool"] form[data-tool-form] .tool-form-section > p {
  max-width: 68ch;
  margin-bottom: 20px;
  color: var(--form-copy);
  font-size: .86rem;
  line-height: 1.65;
}

body[data-page-family="tool"] form[data-tool-form] .tool-form-grid {
  gap: 14px;
}

body[data-page-family="tool"] form[data-tool-form] .tool-field {
  padding: 13px;
  border: 1px solid #e0e5ec;
  border-radius: 6px;
  background: var(--form-soft);
  transition: border-color .18s ease, background-color .18s ease;
}

body[data-page-family="tool"] form[data-tool-form] .tool-field:focus-within {
  border-color: rgba(238, 212, 125, .72);
  background: #fff;
}

body[data-page-family="tool"] form[data-tool-form] .tool-actions {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto;
  gap: 10px;
  margin-top: 4px;
  padding: 18px;
  border: 1px solid var(--form-line);
  border-radius: 6px;
  background: #eef1f5;
}

html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] form[data-tool-form] .tool-actions {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(190px, 1fr) auto !important;
}

body[data-page-family="tool"] form[data-tool-form] .tool-action {
  min-height: 50px;
  border-radius: 5px !important;
  box-shadow: none !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .75rem;
  font-weight: 700;
}

body[data-page-family="tool"] form[data-tool-form] .tool-action-primary {
  color: var(--form-ink-deep) !important;
  background: var(--form-gold-light) !important;
  border-color: var(--form-gold) !important;
}

body[data-page-family="tool"] form[data-tool-form] .tool-action-secondary {
  color: var(--form-ink) !important;
  background: #fff !important;
  border-color: #bfc8d5 !important;
}

body[data-page-family="tool"] .tool-workspace[data-form-experience="v2"] .tool-output {
  min-width: 0;
  align-self: start;
  padding: clamp(26px, 3.5vw, 42px);
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, .1);
  border-radius: 0 7px 7px 0 !important;
  color: #fff;
  background: var(--form-ink);
}

body[data-page-family="tool"] .tool-output-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
}

html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] .tool-output-actions {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(0, 1fr) !important;
}

body[data-page-family="tool"] .tool-output-actions button {
  min-width: 0;
  min-height: 42px;
  padding: 8px 9px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .26) !important;
  border-radius: 5px !important;
  color: #fff !important;
  background: rgba(255, 255, 255, .06) !important;
  box-shadow: none !important;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body[data-page-family="tool"] .tool-empty-state {
  min-height: 300px;
  border-color: rgba(238, 212, 125, .32);
  border-radius: 6px;
  background: rgba(255, 255, 255, .025);
}

@media (min-width: 1051px) {
  body[data-page-family="tool"] .tool-workspace[data-form-experience="v2"] .tool-output {
    position: sticky;
    top: 92px;
    max-height: calc(100vh - 116px);
    overflow: auto;
  }

  body[data-page-family="tool"] .lifa-tool-stage-nav {
    position: sticky;
    top: 76px;
    z-index: 4;
    box-shadow: 0 8px 22px rgba(15, 30, 54, .08);
  }
}

@media (max-width: 1050px) {
  body[data-page-family="tool"] .tool-workspace[data-form-experience="v2"] {
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
  }

  body[data-page-family="tool"] .tool-workspace[data-form-experience="v2"] .tool-output {
    position: static;
    max-height: none;
    border-top: 1px solid rgba(255, 255, 255, .12);
    border-left: 0;
    border-radius: 0 0 7px 7px !important;
  }
}

@media (max-width: 700px) {
  :root {
    --form-panel-pad: 18px;
  }

  html body .floating-contact {
    right: max(0px, env(safe-area-inset-right)) !important;
  }

  body .form-panel:has(form[data-inquiry-form]):not(.quote-wizard),
  body .home-request-form-wrap:has(form[data-inquiry-form]) {
    --form-panel-pad: 18px;
    border-radius: 6px !important;
  }

  .lifa-form-command {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin-top: 22px;
    padding-block: 18px;
  }

  .lifa-form-stage {
    padding: 24px 0;
  }

  .lifa-form-stage-heading {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 11px;
  }

  .lifa-form-stage-number {
    width: 38px;
    height: 38px;
  }

  .lifa-form-stage-status {
    grid-column: 2;
  }

  .lifa-form-stage .form-grid,
  body .quote-wizard[data-form-experience="v2"] .form-grid,
  .home-page .home-request-form .home-form-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 17px;
  }

  body :is(form[data-inquiry-form], form[data-tool-form]) :is(input, select, textarea) {
    font-size: 1rem;
  }

  body form[data-inquiry-form] .document-upload,
  body form[data-inquiry-form] .document-upload .upload-zone {
    padding: 15px !important;
  }

  body form[data-inquiry-form] .document-upload .upload-zone {
    grid-template-columns: minmax(0, 1fr);
  }

  body form[data-inquiry-form] :is(.form-actions, .home-form-actions),
  body[data-page-family="tool"] form[data-tool-form] .tool-actions {
    grid-template-columns: minmax(0, 1fr);
    padding: 14px;
  }

  .lifa-appointment {
    margin-top: 25px;
    padding-top: 21px;
  }

  .lifa-appointment-head,
  .lifa-appointment-notice,
  .lifa-appointment-grid,
  .lifa-appointment-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .lifa-appointment-head {
    gap: 16px;
  }

  body form[data-inquiry-form] .lifa-appointment-toggle {
    width: 100%;
  }

  .lifa-appointment-details {
    margin-inline: -4px;
    padding: 18px 14px;
  }

  .lifa-appointment-notice {
    gap: 5px;
  }

  .lifa-appointment-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lifa-appointment-summary-head {
    display: grid;
    gap: 4px;
  }

  .lifa-appointment-status {
    text-align: left;
  }

  .lifa-google-booking {
    margin: 28px -18px -22px;
    padding: 24px 18px 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "step"
      "copy"
      "facts"
      "action";
    gap: 18px;
  }

  .lifa-google-booking-step {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    padding: 0 0 16px;
    align-items: center;
    border-right: 0;
    border-bottom: 1px solid rgba(238, 212, 125, .26);
  }

  .lifa-google-booking-number {
    width: 44px;
    height: 44px;
  }

  .lifa-google-booking-step small {
    max-width: none;
  }

  .lifa-google-booking-copy h3 {
    font-size: 1.48rem;
  }

  .lifa-google-booking-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .lifa-google-booking-facts > div,
  .lifa-google-booking-facts > div:first-child,
  .lifa-google-booking-facts > div:last-child {
    display: grid;
    padding: 11px 0;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
  }

  .lifa-google-booking-facts > div:last-child {
    border-bottom: 0;
  }

  .lifa-google-booking-facts dd {
    margin-top: 0;
  }

  .lifa-google-booking-action {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding-bottom: 25px;
  }

  .lifa-google-booking .lifa-google-booking-link {
    width: 100%;
  }

  .lifa-google-booking--inline {
    margin-top: 25px;
  }

  html body:not(#lifa-legacy-form-actions) form[data-inquiry-form] :is(.form-actions, .home-form-actions),
  html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] form[data-tool-form] .tool-actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body .quote-wizard[data-form-experience="v2"] .quote-progress-stats {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  body .quote-wizard[data-form-experience="v2"] .quote-stat,
  body .quote-wizard[data-form-experience="v2"] .quote-stat:first-child,
  body .quote-wizard[data-form-experience="v2"] .quote-stat:last-child {
    padding: 0 0 14px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
  }

  body .quote-wizard[data-form-experience="v2"] .quote-stat:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }

  body .quote-wizard[data-form-experience="v2"] .quote-section-label {
    grid-template-columns: 38px minmax(0, 1fr);
    font-size: 1.28rem;
  }

  body .quote-wizard[data-form-experience="v2"] .quote-section-label::after {
    display: none;
  }

  .lifa-tool-stage-nav {
    display: flex;
    margin-inline: -4px;
    padding: 5px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
  }

  body[data-page-family="tool"] .tools-pro-bar {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 12px;
  }

  body[data-page-family="tool"] .tools-pro-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
  }

  html body:not(#lifa-legacy-form-actions)[data-page-family="tool"] .tools-pro-actions .pro-btn {
    width: 100% !important;
  }

  body[data-page-family="tool"] .tools-pro-live {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-inline: 4px;
  }

  .lifa-tool-stage-nav button {
    min-width: 164px;
    flex: 0 0 164px;
    scroll-snap-align: start;
  }

  body[data-page-family="tool"] form[data-tool-form] .tool-form-grid,
  body[data-page-family="tool"] form[data-tool-form] .tool-form-grid.cols-3 {
    grid-template-columns: minmax(0, 1fr);
  }

  body[data-page-family="tool"] .tool-output-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lifa-form-progress-track > span,
  body :is(form[data-inquiry-form], form[data-tool-form]) :is(input, select, textarea),
  body[data-page-family="tool"] form[data-tool-form] .tool-field {
    transition: none;
  }
}

@media print {
  .lifa-tool-stage-nav,
  .lifa-form-command,
  .lifa-char-count {
    display: none !important;
  }
}

.lifa-field-error {
  grid-column: 1 / -1;
  margin: 7px 0 0;
  color: var(--form-error) !important;
  font-family: var(--font-body, "Open Sans", Arial, sans-serif);
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.5;
}

.lifa-form-error-summary {
  margin: 18px 0 6px;
  padding: 18px 20px;
  color: #5d211d !important;
  background: #ffffff;
  border: 1px solid rgba(163, 59, 50, .42);
  border-left: 4px solid var(--form-error);
  border-radius: 5px;
}

.lifa-form-error-summary:focus-visible {
  outline: 3px solid var(--form-gold-light);
  outline-offset: 3px;
}

body form[data-inquiry-form] .lifa-form-error-summary h3 {
  margin: 0 0 5px;
  color: #5d211d !important;
  font-family: "Times New Roman", Times, serif;
  font-size: 1.18rem;
  line-height: 1.25;
}

body form[data-inquiry-form] .lifa-form-error-summary p {
  margin: 0 0 9px;
  color: #71302a !important;
  font-size: .84rem;
  line-height: 1.5;
}

.lifa-form-error-summary ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 20px;
}

body form[data-inquiry-form] .lifa-form-error-summary a {
  color: #6a211c !important;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.45;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body form[data-inquiry-form] .lifa-form-error-summary a:hover,
body form[data-inquiry-form] .lifa-form-error-summary a:focus-visible {
  color: #32100e !important;
}

/* Fast chooser and WhatsApp controls share the existing inquiry field rhythm. */
body form[data-inquiry-form] .lifa-whatsapp-input-group {
  display: grid;
  grid-template-columns: minmax(132px, .42fr) minmax(0, 1fr);
  gap: 8px;
}

body form[data-inquiry-form] .lifa-quick-needs {
  display: grid;
  gap: 10px;
  margin: 0 0 20px;
  padding: 16px;
  border: 1px solid rgba(238, 212, 125, .5);
  border-radius: 6px;
  background: #fbfcfe;
}

body form[data-inquiry-form] .lifa-quick-needs legend {
  padding: 0 6px;
  color: #0f1e36 !important;
  font-family: var(--font-ui, Montserrat, Arial, sans-serif);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
}

body form[data-inquiry-form] .lifa-quick-needs-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body form[data-inquiry-form] .lifa-quick-pick {
  display: inline-flex;
  min-height: 44px;
  padding: 8px 12px;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--form-line);
  border-radius: 5px;
  color: #0f1e36 !important;
  background: #fff;
  cursor: pointer;
  font-size: .82rem;
  line-height: 1.3;
}

body form[data-inquiry-form] .lifa-quick-pick:hover {
  border-color: var(--form-gold);
}

body form[data-inquiry-form] .lifa-quick-pick:has(input:focus-visible) {
  outline: 3px solid rgba(238, 212, 125, .26);
  outline-offset: 2px;
}

/* Light form surfaces sit inside the homepage's inverse navy section. */
html body.home-page main #homeSourcingRequest :is(.lifa-quick-pick, .lifa-quick-needs legend) {
  color: #0f1e36 !important;
  -webkit-text-fill-color: #0f1e36 !important;
}

html body.home-page main #homeSourcingRequest .lifa-form-error-summary h3,
html body.home-page main #homeSourcingRequest .lifa-form-error-summary p,
html body.home-page main #homeSourcingRequest .lifa-field-error {
  color: #5d211d !important;
  -webkit-text-fill-color: #5d211d !important;
}

html body.home-page main #homeSourcingRequest .lifa-form-error-summary a {
  color: #6a211c !important;
  -webkit-text-fill-color: #6a211c !important;
}

@media (max-width: 560px) {
  body form[data-inquiry-form] .lifa-whatsapp-input-group {
    grid-template-columns: minmax(0, 1fr);
  }

  body form[data-inquiry-form] .lifa-quick-needs-options {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  body form[data-inquiry-form] .lifa-quick-pick {
    width: 100%;
  }
}

/* Balanced inquiry composition
   Long forms follow their supporting content instead of continuing alone in
   one half of a navy split. The wide form also shortens the workflow because
   its existing two-column field grid has enough room to remain useful. */
@media (min-width: 1041px) {
  html body form[data-inquiry-form] .lifa-quick-needs-options {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  html body form[data-inquiry-form] .lifa-quick-pick {
    width: 100%;
    min-width: 0;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split,
  html body.home-page main .home-request-layout:has(form[data-inquiry-form]) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: clamp(34px, 4vw, 52px) !important;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split > :first-child {
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
    grid-template-rows: auto auto auto;
    column-gap: clamp(40px, 6vw, 76px);
    row-gap: 16px;
    width: 100%;
    min-width: 0;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split > :first-child > .eyebrow {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split > :first-child > h2 {
    grid-column: 1;
    grid-row: 2 / span 2;
    max-width: 17ch;
    margin: 0;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split > :first-child > p {
    grid-column: 2;
    grid-row: 2;
    max-width: 68ch;
    margin: 0;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split > :first-child > .feature-list {
    grid-column: 2;
    grid-row: 3;
    margin: 0;
  }

  html body[data-page-family="contact"] main .section:has(form[data-inquiry-form]) > .container.split > :first-child > .contact-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-column: 1 / -1;
    grid-row: 4;
    gap: 16px;
    margin-top: 14px;
  }

  html body[data-page-family]:not(.home-page) main .section:has(form[data-inquiry-form]) > .container.split > .form-panel,
  html body.home-page main .home-request-layout:has(form[data-inquiry-form]) > .home-request-form-wrap {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
  }

  html body.home-page main .home-request-layout:has(form[data-inquiry-form]) > .home-request-intro {
    position: static !important;
    top: auto !important;
    display: grid;
    grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
    grid-template-rows: auto auto auto auto;
    column-gap: clamp(40px, 6vw, 76px);
    row-gap: 18px;
    width: 100%;
  }

  html body.home-page main .home-request-intro > .eyebrow {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  html body.home-page main .home-request-intro > h2 {
    grid-column: 1;
    grid-row: 2;
    max-width: 16ch;
    margin: 0;
  }

  html body.home-page main .home-request-intro > p {
    grid-column: 2;
    grid-row: 2;
    max-width: 68ch;
    margin: 0;
  }

  html body.home-page main .home-request-intro > ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-column: 1 / -1;
    grid-row: 3;
    gap: 0;
    margin: 8px 0 0;
  }

  html body.home-page main .home-request-intro > ol > li {
    min-width: 0;
    padding: 18px clamp(18px, 2.2vw, 28px);
    border-right: 1px solid rgba(255, 255, 255, .14);
  }

  html body.home-page main .home-request-intro > ol > li:first-child {
    padding-left: 0;
  }

  html body.home-page main .home-request-intro > ol > li:last-child {
    padding-right: 0;
    border-right: 0;
  }

  html body.home-page main .home-request-intro > .home-contact-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-column: 1 / -1;
    grid-row: 4;
    gap: 10px;
  }

  html body.home-page main .home-request-intro > .home-contact-options > a {
    min-width: 0;
    min-height: 66px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }

  html body.home-page main .home-request-intro > .home-contact-options strong {
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: left;
  }
}

@media (min-width: 561px) and (max-width: 1040px) {
  html body form[data-inquiry-form] .lifa-quick-needs-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  html body form[data-inquiry-form] .lifa-quick-pick {
    width: 100%;
    min-width: 0;
  }

  html body form[data-inquiry-form] .lifa-quick-needs-options > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}
