
/* ===== Elementor compatibility ===== */
.elementor-section,
.elementor-top-section { padding: 0 !important; margin: 0 !important; background: transparent !important; }
.elementor-section .elementor-container { max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 auto !important; }
.elementor-column, .elementor-column-wrap, .elementor-widget, .elementor-widget-container {
  padding: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important;
}
.elementor-widget-html > .elementor-widget-container { display: contents; }

/* Reveal items are always visible (editor + front end) */
.reveal, .reveal.show, .elementor-editor-active .reveal {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* Prevent Elementor default typography from overriding the site */
.elementor-widget-html { font: inherit; line-height: inherit; color: inherit; }

/* ===== Vertical rhythm: consistent spacing between sections ===== */
:root{
  /* Adjust this single token to tighten/loosen global section gaps */
  --section-gap: clamp(48px, 6vw, 88px);
}

/* Remove random outer margins/padding that cause double gaps */
main section{ margin:0; padding:0; }
main section > .wrap,
main section > .grid,
main section > .cards,
main section > .narrow { margin-block:0; }

/* Standardized gaps */
main section + section { margin-top: var(--section-gap); }

/* Avoid top/bottom collapse inside each section */
main section > *:first-child  { margin-top:0 !important; }
main section > *:last-child   { margin-bottom:0 !important; }

/* Ensure hero/cta sit on the same rhythm */
main section.cta,
main section.hero { margin-top: var(--section-gap) !important; }

/* Contact page: keep section at the site's wrap width */
.wrap.contact.elementor-section {
  /* match your site's max content width */
  max-width: var(--wrap, 1180px);
  margin-left: auto;
  margin-right: auto;
}

/* Constrain Elementor’s internal container for this section */
.wrap.contact.elementor-section > .elementor-container {
  max-width: inherit !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: auto !important;
  /* same side padding as the rest of the site */
  padding-left: clamp(16px, 3vw, 24px);
  padding-right: clamp(16px, 3vw, 24px);
}
