/* ---------------------------------------------------------------
   Bridge between the original design and Elementor's wrappers.
   --------------------------------------------------------------- */

/* The page container must behave like the original <main>: no padding, no gaps. */
.pz-flow.e-con,
.pz-hf.e-con,
.pz-flow,
.pz-hf {
  --display: block;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --overflow: visible;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  gap: 0 !important;
  overflow: visible !important;
}
.pz-flow > .elementor-widget,
.pz-hf > .elementor-widget {
  margin: 0 !important;
  width: 100%;
  max-width: none;
}

/* On the live site the widget wrappers disappear, so every section is a direct child of the
   container again. This keeps the sticky hero + stacked "page" panels exactly as designed.
   (Not applied in the editor, where Elementor needs the wrappers for its handles.) */
body:not(.elementor-editor-active) .pz-flow > .elementor-widget,
body:not(.elementor-editor-active) .pz-flow > .elementor-widget > .elementor-widget-container,
body:not(.elementor-editor-active) .pz-hf > .elementor-widget,
body:not(.elementor-editor-active) .pz-hf > .elementor-widget > .elementor-widget-container {
  display: contents;
}

/* Elementor editor: show content immediately (no scroll-reveal) and keep things editable. */
.elementor-editor-active .reveal { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .hero { position: relative; }
.elementor-editor-active .site-header { position: relative; }
.elementor-editor-active .progress { display: none; }

/* WordPress admin bar. */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* Plain (non-Elementor) pages, posts, 404. */
.pz-main { display: block; }
.pz-content {
  max-width: 860px;
  margin: 0 auto;
  padding: 150px var(--pad) 90px;
  color: var(--light);
  line-height: 1.65;
  font-size: 18px;
}
.pz-content h1, .pz-content h2 { font-weight: 500; letter-spacing: -.04em; line-height: 1.05; }
.pz-content h1 { font-size: clamp(40px, 6vw, 80px); margin: 0 0 .5em; }
.pz-content a { text-decoration: underline; text-underline-offset: 3px; }
.pz-content img { max-width: 100%; height: auto; }

/* Header/footer template preview canvas. */
.pz-template-preview { min-height: 100vh; }
