/**
 * Snapsale typography / spacing polish.
 * Elementor page CSS stays source of truth for colors/sizes; these rules
 * only tighten text rhythm site-wide (paragraph gaps + sentence line-height)
 * and keep the homepage hero in one viewport above the image cards.
 */

/* -------------------------------------------------------------------------
 * Site-wide: sentence line-height + tighter gaps between text blocks
 * ------------------------------------------------------------------------- */
.elementor-widget-text-editor p,
.elementor-widget-theme-post-content p,
.elementor-icon-box-description {
  margin-top: 0 !important;
  margin-bottom: 0.55em !important;
  line-height: 1.55;
}

.elementor-widget-text-editor p:last-child,
.elementor-widget-theme-post-content p:last-child {
  margin-bottom: 0 !important;
}

/* Drop empty / spacer paragraphs Elementor left in mirrors */
.elementor-widget-text-editor p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  height: 0 !important;
  overflow: hidden;
}

.elementor-widget-text-editor h1,
.elementor-widget-text-editor h2,
.elementor-widget-text-editor h3,
.elementor-widget-text-editor h4,
.elementor-widget-text-editor h5,
.elementor-widget-text-editor h6,
.elementor-widget-heading .elementor-heading-title {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1.2;
}

/* Stacked text/button widgets: kit default is 20px — too loose for heroes */
.e-con.e-flex > .elementor-widget-text-editor:not(:last-child),
.e-con.e-flex > .elementor-widget-heading:not(:last-child) {
  margin-block-end: 0.35rem !important;
}

.e-con.e-flex > .elementor-widget-text-editor + .elementor-widget-button,
.e-con.e-flex > .elementor-widget-heading + .elementor-widget-button {
  margin-block-start: 0.35rem;
}

/* -------------------------------------------------------------------------
 * Homepage hero (Elementor container 5e61233 on page 94).
 * Background image has property-status cards along the bottom — keep copy
 * in the upper band, full hero in one viewport, headline on two lines.
 * ------------------------------------------------------------------------- */
@media (min-width: 768px) {
  .elementor-94 .elementor-element.elementor-element-5e61233 {
    --padding-top: 5rem !important;
    --padding-bottom: 22vh !important;
    --margin-top: -5rem !important;
    min-height: 100vh;
    min-height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    box-sizing: border-box;
    align-items: flex-start;
    overflow: hidden;
  }

  .elementor-94 .elementor-element.elementor-element-5e61233 > .e-con-inner {
    min-height: 0;
    align-items: flex-start;
    width: 100%;
    padding-top: 0.75rem;
  }

  .elementor-94 .elementor-element.elementor-element-80c8060 {
    justify-content: flex-start;
    gap: 0.2rem !important;
    --gap: 0.2rem !important;
    --row-gap: 0.2rem !important;
    align-self: center;
  }

  .elementor-94 .elementor-element.elementor-element-80c8060 > .elementor-element {
    margin-block: 0 !important;
  }

  .elementor-94 .elementor-element.elementor-element-80c8060 > .elementor-element.elementor-element-78322af {
    margin-block: 15px !important;
  }

  .elementor-94 .elementor-element.elementor-element-271fa7b {
    font-size: clamp(1.7rem, 2.9vw, 2.55rem) !important;
    line-height: 1.12 !important;
  }

  .elementor-94 .elementor-element.elementor-element-271fa7b h1 {
    white-space: nowrap;
    margin: 0 !important;
  }

  .elementor-94 .elementor-element.elementor-element-271fa7b .elementor-widget-container,
  .elementor-94 .elementor-element.elementor-element-f8c0539 .elementor-widget-container,
  .elementor-94 .elementor-element.elementor-element-78322af .elementor-widget-container,
  .elementor-94 .elementor-element.elementor-element-81ecd97 .elementor-widget-container {
    margin: 0 !important;
    padding-block: 0 !important;
  }

  .elementor-94 .elementor-element.elementor-element-f8c0539 {
    font-size: clamp(1.15rem, 1.9vw, 1.65rem) !important;
    line-height: 1.15 !important;
  }

  .elementor-94 .elementor-element.elementor-element-f8c0539 h2 {
    margin: 0 !important;
  }

  .elementor-94 .elementor-element.elementor-element-78322af {
    font-size: clamp(0.9rem, 1.05vw, 1rem) !important;
    line-height: 1.35 !important;
    max-width: 32rem;
    margin-block: 15px !important;
  }

  .elementor-94 .elementor-element.elementor-element-78322af p {
    margin: 0 !important;
  }

  .elementor-94 .elementor-element.elementor-element-81ecd97 {
    margin-top: 0.35rem !important;
  }

  .elementor-94 .elementor-element.elementor-element-81ecd97 .elementor-button {
    padding: 0.55rem 1.2rem;
  }
}

@media (min-width: 768px) and (max-height: 820px) {
  .elementor-94 .elementor-element.elementor-element-5e61233 {
    --padding-top: 4rem !important;
    --padding-bottom: 24vh !important;
  }

  .elementor-94 .elementor-element.elementor-element-271fa7b {
    font-size: clamp(1.5rem, 2.5vw, 2.15rem) !important;
  }

  .elementor-94 .elementor-element.elementor-element-f8c0539 {
    font-size: clamp(1.05rem, 1.7vw, 1.4rem) !important;
  }

  .elementor-94 .elementor-element.elementor-element-78322af {
    font-size: 0.9rem !important;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .elementor-94 .elementor-element.elementor-element-271fa7b {
    font-size: clamp(1.45rem, 2.6vw, 2.1rem) !important;
  }
}
