/* ========================================================================== 
   EnnovaBuzz v2.12 — identity-preserving hardening layer
   Purpose: make theme typography authoritative, support the progressive brief
   flow, and improve small interaction details without redesigning components.
   ========================================================================== */

/* --- Typography ownership -------------------------------------------------
   Elementor may be installed for legacy/admin purposes, but the approved
   EnnovaBuzz PHP templates own the visual system. The additional specificity
   below protects the theme's Playfair Display / DM Sans relationship without
   changing the approved font families, sizes, or weights. */
body.eb-theme:not(.elementor-editor-active) {
  font-family: var(--eb-font-body);
}

body.eb-theme:not(.elementor-editor-active) h1,
body.eb-theme:not(.elementor-editor-active) h2,
body.eb-theme:not(.elementor-editor-active) h3,
body.eb-theme:not(.elementor-editor-active) h4 {
  font-family: var(--eb-font-display);
  font-optical-sizing: auto;
}

body.eb-theme:not(.elementor-editor-active) button,
body.eb-theme:not(.elementor-editor-active) input,
body.eb-theme:not(.elementor-editor-active) select,
body.eb-theme:not(.elementor-editor-active) textarea {
  font-family: var(--eb-font-body);
}

/* --- Progressive discovery brief ---------------------------------------- */
.eb-contact-form .eb-form-step {
  border: 0;
  min-inline-size: 0;
  margin: 0;
  padding: 0;
}

.eb-form-journey {
  display: none;
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 1px solid var(--eb-line);
  border-radius: 18px;
  background: rgba(255, 255, 255, .72);
}

.eb-contact-form.is-multistep .eb-form-journey {
  display: block;
}

.eb-form-journey__steps {
  display: grid;
  grid-template-columns: max-content minmax(36px, 1fr) max-content;
  align-items: center;
  gap: 10px;
}

.eb-form-journey__step {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--eb-ink-55);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .04em;
}

.eb-form-journey__step::first-letter {
  color: var(--eb-purple);
}

.eb-form-journey__step em {
  font-style: normal;
}

.eb-form-journey__step.is-active {
  color: var(--eb-aubergine);
}

.eb-form-journey__step.is-complete {
  color: var(--eb-purple);
}

.eb-form-journey__line {
  height: 2px;
  border-radius: 999px;
  background: var(--eb-line);
  overflow: hidden;
}

.eb-contact-form.is-step-2 .eb-form-journey__line {
  background: linear-gradient(90deg, var(--eb-purple), var(--eb-coral));
}

.eb-form-journey__summary {
  margin: 9px 0 0;
  color: var(--eb-ink-70);
  font-size: .86rem;
  line-height: 1.5;
}

.eb-form-step-actions {
  display: none;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
}

.eb-contact-form.is-multistep .eb-form-step-actions {
  display: flex;
}

.eb-form-step-actions > span {
  color: var(--eb-ink-55);
  font-size: .82rem;
  line-height: 1.45;
}

.eb-contact-form:not(.is-multistep) [data-eb-form-back],
.eb-contact-form:not(.is-multistep) [data-eb-form-next] {
  display: none;
}

.eb-contact-form.is-multistep [data-eb-form-step][hidden] {
  display: none !important;
}

.eb-contact-form.is-multistep .eb-form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.eb-optional {
  color: var(--eb-ink-55);
  font-size: .78em;
  font-weight: 500;
}

/* Preserve clear touch targets on the new step controls. */
.eb-contact-form [data-eb-form-next],
.eb-contact-form [data-eb-form-back] {
  min-height: 44px;
}

@media (max-width: 640px) {
  .eb-form-journey__steps {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .eb-form-journey__line {
    display: none;
  }

  .eb-form-step-actions,
  .eb-contact-form.is-multistep .eb-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .eb-form-step-actions .eb-btn,
  .eb-contact-form.is-multistep .eb-form-actions .eb-btn {
    width: 100%;
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .eb-form-journey__line {
    transition: none;
  }
}

/* --- v2.12.1 final typography authority ---------------------------------
   The approved EnnovaBuzz display hierarchy uses Playfair Display at 900.
   Reassert both family and weight in the final theme-owned layer so later
   plugin/global styles cannot leave headings in a lighter Playfair instance. */
body.eb-theme:not(.elementor-editor-active) h1,
body.eb-theme:not(.elementor-editor-active) h2,
body.eb-theme:not(.elementor-editor-active) h3,
body.eb-theme:not(.elementor-editor-active) h4,
body.eb-theme:not(.elementor-editor-active) .eb-hero__title,
body.eb-theme:not(.elementor-editor-active) .eb-page-hero__title,
body.eb-theme:not(.elementor-editor-active) .eb-launch-hero__title {
  font-family: var(--eb-font-display) !important;
  font-weight: 900 !important;
  font-optical-sizing: auto;
}

/* When the verified local variable-font set is present, do not synthesize
   faux bold/italic faces. Real variable axes must provide the requested face. */
body.eb-theme.eb-fonts-local {
  font-synthesis: none;
}
