/* Visual layer for the public home and quote pages. No workflow or content changes. */
body.front-harmony {
  --fh-ink: #123044;
  --fh-copy: #29445d;
  --fh-muted: #667c94;
  --fh-blue: #4355ff;
  --fh-blue-hover: #3042e6;
  --fh-paper: #fcfcfd;
  --fh-tint: #eef2fb;
  --fh-line: #e2e7ef;
  background: var(--fh-paper) !important;
  color: var(--fh-ink) !important;
  font-family: Inter, Arial, sans-serif !important;
  letter-spacing: 0 !important;
}

body.front-harmony main > section:not(.front-hero):not(.front-reassurance) {
  border-color: var(--fh-line) !important;
}

body.front-harmony .lab-gallery,
body.front-harmony .brands-section,
body.front-harmony .diagnostic-section,
body.front-harmony .process,
body.front-harmony .partnership-statement,
body.front-harmony .confidentiality-band,
body.front-harmony .devis-hero {
  background: var(--fh-paper) !important;
  background-image: none !important;
  color: var(--fh-ink) !important;
}

body.front-harmony .lab-gallery,
body.front-harmony .brands-section,
body.front-harmony .process,
body.front-harmony .partnership-statement,
body.front-harmony .confidentiality-band {
  border-top: 1px solid var(--fh-line) !important;
  padding-block: clamp(34px, 5vw, 70px) !important;
}

body.front-harmony .container,
body.front-harmony .partnership-statement__inner {
  width: min(100% - 40px, 1216px);
  max-width: 1216px;
  margin-inline: auto;
}

body.front-harmony .section-title,
body.front-harmony .devis-hero h1,
body.front-harmony .confidentiality-band h2 {
  color: var(--fh-ink) !important;
  font-family: Inter, Arial, sans-serif !important;
  font-weight: 750 !important;
  line-height: 1.16 !important;
  letter-spacing: 0 !important;
}

body.front-harmony .section-title {
  font-size: clamp(25px, 2.5vw, 34px) !important;
  margin: 0 0 16px !important;
}

body.front-harmony .section-subtitle,
body.front-harmony .partnership-statement p,
body.front-harmony .confidentiality-band p,
body.front-harmony .devis-hero p {
  color: var(--fh-copy) !important;
  line-height: 1.6 !important;
  letter-spacing: 0 !important;
}

body.front-harmony .gallery-grid { gap: 18px !important; }
body.front-harmony .gallery-item {
  background: #fff !important;
  border: 1px solid var(--fh-line) !important;
  border-radius: 8px !important;
  overflow: hidden;
  box-shadow: none !important;
}
body.front-harmony .gallery-item img { border-radius: 0 !important; }
body.front-harmony .gallery-caption {
  padding: 12px 14px !important;
  color: var(--fh-copy) !important;
  font-family: Inter, Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 550 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body.front-harmony .brands-title,
body.front-harmony .brands-more,
body.front-harmony .brands-limit {
  color: var(--fh-muted) !important;
  font-family: Inter, Arial, sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.front-harmony .brand-logo-item { border-color: var(--fh-line) !important; }

body.front-harmony .diagnostic-section {
  border-top: 1px solid var(--fh-line) !important;
  padding-block: 48px 68px !important;
}
body.front-harmony .diagnostic-section .section-title { margin-bottom: 10px !important; }
body.front-harmony .wizard-progress { max-width: 700px; margin-bottom: 28px; }
body.front-harmony .progress-text { color: var(--fh-copy) !important; font-weight: 650; }
body.front-harmony .progress-encourage { color: var(--fh-blue) !important; animation: none; }
body.front-harmony .progress-bar { background: var(--fh-line) !important; border-radius: 6px !important; }
body.front-harmony .progress-fill { background: var(--fh-blue) !important; border-radius: 6px !important; }
body.front-harmony .progress-steps .step {
  border: 1px solid var(--fh-line) !important;
  background: #fff !important;
  color: var(--fh-muted) !important;
  box-shadow: none !important;
  transform: none !important;
}
body.front-harmony .progress-steps .step.active,
body.front-harmony .progress-steps .step.completed {
  background: var(--fh-blue) !important;
  border-color: var(--fh-blue) !important;
  color: #fff !important;
}
body.front-harmony .wizard-question { color: var(--fh-ink) !important; font-weight: 700 !important; letter-spacing: 0 !important; }
body.front-harmony .wizard-option,
body.front-harmony .wizard-container .checkbox-item,
body.front-harmony .wizard-container .radio-option,
body.front-harmony .wizard-container .data-priority-item,
body.front-harmony .wizard-container .priority-option {
  background: #fff !important;
  border: 1px solid var(--fh-line) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  color: var(--fh-ink) !important;
}
body.front-harmony .wizard-option:hover,
body.front-harmony .wizard-container .checkbox-item:hover,
body.front-harmony .wizard-container .radio-option:hover,
body.front-harmony .wizard-container .priority-option:hover {
  background: var(--fh-tint) !important;
  border-color: var(--fh-blue) !important;
  transform: none !important;
}
body.front-harmony .wizard-option.selected,
body.front-harmony .wizard-container .checkbox-item:has(input:checked),
body.front-harmony .wizard-container .radio-option:has(input:checked),
body.front-harmony .wizard-container .priority-option:has(input:checked) {
  background: var(--fh-tint) !important;
  border-color: var(--fh-blue) !important;
  box-shadow: inset 0 0 0 1px var(--fh-blue) !important;
}
body.front-harmony .wizard-option i,
body.front-harmony .wizard-container label i { color: var(--fh-blue) !important; }
body.front-harmony .wizard-container input[type="checkbox"],
body.front-harmony .wizard-container input[type="radio"] { accent-color: var(--fh-blue) !important; }
body.front-harmony .wizard-container input:not([type="checkbox"]):not([type="radio"]),
body.front-harmony .wizard-container select,
body.front-harmony .wizard-container textarea {
  border-color: var(--fh-line) !important;
  border-radius: 6px !important;
  color: var(--fh-ink) !important;
  font-family: Inter, Arial, sans-serif !important;
}
body.front-harmony .wizard-container input:focus,
body.front-harmony .wizard-container select:focus,
body.front-harmony .wizard-container textarea:focus {
  border-color: var(--fh-blue) !important;
  box-shadow: 0 0 0 3px #4355ff20 !important;
}
body.front-harmony .diagnostic-section .btn-primary,
body.front-harmony .devis-hero .btn-primary {
  background: var(--fh-blue) !important;
  border: 1px solid var(--fh-blue) !important;
  border-radius: 6px !important;
  color: #fff !important;
  box-shadow: none !important;
  font-family: Inter, Arial, sans-serif !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
body.front-harmony .diagnostic-section .btn-primary:hover,
body.front-harmony .devis-hero .btn-primary:hover { background: var(--fh-blue-hover) !important; }
body.front-harmony .diagnostic-section .btn-secondary {
  border: 1px solid var(--fh-line) !important;
  border-radius: 6px !important;
  background: #fff !important;
  color: var(--fh-ink) !important;
}

body.front-harmony .process-step,
body.front-harmony .confidentiality-band__grid > div {
  background: #fff !important;
  border: 1px solid var(--fh-line) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}
body.front-harmony .process-step h3,
body.front-harmony .confidentiality-band h3 { color: var(--fh-ink) !important; }
body.front-harmony .process-step p { color: var(--fh-copy) !important; }
body.front-harmony .partnership-statement__label { color: var(--fh-blue) !important; }
body.front-harmony .confidentiality-band__standards { color: var(--fh-muted) !important; }

body.front-harmony .devis-hero { padding-top: 132px !important; }
body.front-harmony .devis-hero h1 { font-size: clamp(34px, 4vw, 52px) !important; }
body.front-harmony .devis-hero .highlight { color: var(--fh-blue) !important; }
body.front-harmony .devis-promise i { color: var(--fh-blue) !important; }
body.front-harmony .devis-promise { color: var(--fh-copy) !important; }
body.front-harmony .devis-reassurance {
  background: var(--fh-tint) !important;
  border-color: var(--fh-line) !important;
}
body.front-harmony .recovery-process__number { color: var(--fh-blue) !important; }
body.front-harmony .recovery-process__time {
  color: var(--fh-blue) !important;
  background: var(--fh-tint) !important;
  border-color: var(--fh-line) !important;
}
body.front-harmony .recovery-process__rail::after { background: var(--fh-line) !important; }

body.front-harmony :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--fh-blue) !important;
  outline-offset: 3px;
}

@media (max-width: 700px) {
  body.front-harmony .container,
  body.front-harmony .partnership-statement__inner { width: min(100% - 32px, 1216px); }
  body.front-harmony .lab-gallery,
  body.front-harmony .brands-section,
  body.front-harmony .process,
  body.front-harmony .partnership-statement,
  body.front-harmony .confidentiality-band { padding-block: 36px !important; }
  body.front-harmony .wizard-options { gap: 10px !important; }
  body.front-harmony .wizard-option { padding: 18px 12px !important; }
  body.front-harmony .devis-hero { padding-top: 140px !important; }
}

@media (prefers-reduced-motion: reduce) {
  body.front-harmony .wizard-step,
  body.front-harmony .progress-fill { animation: none !important; transition: none !important; }
}
