/* ==========================================================================
   ZZACORE — Elementor widget defaults
   Stock widgets inherit the brand without per-widget styling. Anything set in
   the Elementor UI is more specific than these rules and still wins.
   ========================================================================== */

.elementor-section.elementor-section-boxed > .elementor-container,
.e-con { --container-max-width: var(--zz-container); }
.e-con > .e-con-inner { max-width: var(--zz-container); }

/* --- Headings & text ------------------------------------------------------ */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--zz-font-display);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.08;
}
.elementor-widget-text-editor { color: var(--zz-muted); line-height: 1.65; }

/* Safety net: headings stay ink and body copy stays sans whatever the kit's
   global slots hold. Elementor binds Heading->primary, Text->text,
   Button->accent, so a wrong slot mapping would otherwise recolour the site. */
.elementor-widget-heading .elementor-heading-title { color: var(--zz-ink); }
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  font-family: var(--zz-font-body);
  text-transform: none;
  letter-spacing: normal;
}

/* Dark bands override the net above — listed after, one class deeper. */
.zz-dark .elementor-widget-heading .elementor-heading-title,
.zz-ink-band .elementor-widget-heading .elementor-heading-title { color: var(--zz-cream); }
.zz-dark .elementor-widget-text-editor,
.zz-ink-band .elementor-widget-text-editor { color: rgba(246, 241, 237, .8); }

/* Eyebrow: add "zz-eyebrow" to a Heading or Text widget */
.elementor-widget-heading.zz-eyebrow .elementor-heading-title,
.elementor-widget.zz-eyebrow .elementor-heading-title,
.elementor-widget-text-editor.zz-eyebrow,
.elementor-widget-text-editor.zz-eyebrow p {
  font-family: var(--zz-font-display);
  font-size: var(--zz-label);
  font-weight: 600;
  letter-spacing: var(--zz-track);
  text-transform: uppercase;
  color: var(--zz-sage-deep);
  line-height: 1.5;
}
.zz-dark .elementor-widget.zz-eyebrow .elementor-heading-title,
.zz-dark .elementor-widget-text-editor.zz-eyebrow,
.zz-ink-band .elementor-widget.zz-eyebrow .elementor-heading-title,
.zz-ink-band .elementor-widget-text-editor.zz-eyebrow { color: rgba(246, 241, 237, .65); }

/* --- Buttons -------------------------------------------------------------- */
.elementor-button, .elementor-button-link {
  font-family: var(--zz-font-display);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: var(--zz-track-btn);
  text-transform: uppercase;
  border-radius: 0;
  padding: 15px 30px;
  transition: background var(--zz-t-fast), color var(--zz-t-fast), border-color var(--zz-t-fast);
}
.elementor-widget-button.zz-btn--fill .elementor-button { background: var(--zz-sage-deep); color: var(--zz-cream); }
.elementor-widget-button.zz-btn--fill .elementor-button:hover { background: var(--zz-ink); color: var(--zz-cream); }
.elementor-widget-button.zz-btn--line .elementor-button {
  background: transparent; color: var(--zz-ink); border: 1px solid var(--zz-ink);
}
.elementor-widget-button.zz-btn--line .elementor-button:hover { background: var(--zz-ink); color: var(--zz-cream); }
.elementor-widget-button.zz-btn--light .elementor-button { background: var(--zz-cream); color: var(--zz-ink); }
.elementor-widget-button.zz-btn--light .elementor-button:hover { background: var(--zz-sage-pale); }

/* --- Nav menu (Elementor Pro) or HFE -------------------------------------- */
.elementor-nav-menu .elementor-item,
.hfe-nav-menu .menu-item a {
  font-family: var(--zz-font-display);
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: var(--zz-track);
  text-transform: uppercase;
  color: var(--zz-muted);
}
.elementor-nav-menu .elementor-item:hover,
.elementor-nav-menu .elementor-item.elementor-item-active { color: var(--zz-ink); }
.elementor-nav-menu--main .elementor-item::after { border-color: var(--zz-sage) !important; }

/* --- Image / icon box ------------------------------------------------------ */
.elementor-widget-image-box .elementor-image-box-title,
.elementor-widget-icon-box .elementor-icon-box-title {
  font-family: var(--zz-font-display);
  font-weight: 600;
  font-size: var(--zz-h3);
  line-height: 1.25;
}
.elementor-widget-image-box .elementor-image-box-description,
.elementor-widget-icon-box .elementor-icon-box-description { color: var(--zz-muted); }

/* --- Social pills on dark -------------------------------------------------- */
.zz-ink-band .elementor-social-icon,
.zz-dark .elementor-social-icon {
  background: transparent;
  border: 1px solid rgba(246, 241, 237, .3);
  border-radius: var(--zz-pill);
  color: var(--zz-cream);
  transition: background var(--zz-t-fast), color var(--zz-t-fast);
}
.zz-ink-band .elementor-social-icon:hover,
.zz-dark .elementor-social-icon:hover { background: var(--zz-cream); color: var(--zz-ink); }

/* --- Forms ---------------------------------------------------------------- */
.zz-newsletter .elementor-field-group input:not([type=submit]) {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--zz-line);
  border-radius: 0;
  padding: 14px 2px;
}
.zz-newsletter .elementor-field-group input:focus { border-bottom-color: var(--zz-sage-deep); }
.zz-newsletter .elementor-button[type=submit] { background: var(--zz-ink); color: var(--zz-cream); }
.zz-newsletter .elementor-button[type=submit]:hover { background: var(--zz-sage-deep); }

.elementor-widget-divider { --divider-color: var(--zz-line); }
