/* ================================================================
   OMMO v3 — Hero
   Flatsome / UX Builder compatible
   Source visual: OMMO static mockup hero.
   ================================================================ */

.ommo-hero {
  position: relative;
  overflow: hidden;
  background: var(--ommo-cream);
  color: var(--ommo-ink);
  padding: 48px 0 80px !important;
}

.ommo-hero .section-bg {
  background: var(--ommo-cream) !important;
}

.ommo-hero .section-content {
  position: relative;
  z-index: 2;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ommo-hero .row {
  width: 100% !important;
  max-width: var(--ommo-container-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--ommo-container-pad) !important;
  padding-right: var(--ommo-container-pad) !important;
}

.ommo-hero .row::before,
.ommo-hero .row::after {
  display: none !important;
}

.ommo-hero .col,
.ommo-hero .col-inner {
  padding-bottom: 0 !important;
}

.ommo-hero .col-inner {
  margin: 0 !important;
}

/* Meta row above the wordmark */
.ommo-row--hero-meta {
  display: grid !important;
  grid-template-columns: 1fr auto;
  align-items: end !important;
  gap: 24px;
  padding-bottom: 20px !important;
  border-bottom: 1px solid var(--ommo-border-ink-18);
  margin-bottom: 40px !important;
}

.ommo-row--hero-meta > .col {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  flex-basis: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ommo-row--hero-meta > .col:first-child {
  justify-self: start;
}

.ommo-row--hero-meta > .col:last-child,
.ommo-col--hero-meta-right {
  justify-self: end;
  text-align: right;
}

.ommo-hero__eyebrow,
.ommo-hero__eyebrow p,
.ommo-hero__coordinates,
.ommo-hero__coordinates p {
  margin: 0 !important;
  padding: 0 !important;
}

.ommo-hero__coordinates,
.ommo-hero__coordinates p {
  color: color-mix(in srgb, var(--ommo-ink) 60%, transparent);
}

/* Wordmark row: ommo. */
.ommo-row--hero {
  display: block !important;
  min-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.ommo-row--hero > .col {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  flex-basis: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ommo-hero__wordmark {
  position: relative;
  z-index: 2;
  color: var(--ommo-taupe-deep);
  text-align: left;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.ommo-hero__wordmark,
.ommo-hero__wordmark p {
  margin: 0 !important;
  padding: 0 !important;
  line-height: .82 !important;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.ommo-hero__wordmark em {
  display: inline-block;
  font-style: italic;
  font-weight: 800;
  line-height: inherit;
}

/* Bottom hero row: slogan + buttons / intro copy */
.ommo-row--hero-bottom {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: end !important;
  margin-top: 24px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-top: 0 !important;
}

.ommo-row--hero-bottom > .col {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  flex-basis: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ommo-row--hero-bottom > .col:first-child,
.ommo-col--hero-title {
  justify-self: start;
}

.ommo-row--hero-bottom > .col:last-child,
.ommo-col--hero-copy {
  justify-self: start;
}

.ommo-hero__tagline,
.ommo-hero__tagline p {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  white-space: nowrap;
}

.ommo-hero__tagline em {
  font-style: italic;
  font-weight: 800;
}

.ommo-hero__cta,
.ommo-hero__cta .ux-html {
  margin: 0 !important;
  padding: 0 !important;
}

.ommo-hero__cta-row {
  margin-top: 20px;
}

.ommo-hero__intro,
.ommo-hero__intro p {
  max-width: 420px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* OMMO product star anchored directly to the wordmark. */
.ommo-hero__wordmark-lockup {
  position: relative;
  display: inline-block;
}

.ommo-star--hero {
  position: absolute;
  top: 50%;
  left: calc(100% + 24px);
  width: 160px;
  height: 160px;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  transform: translateY(-50%);
}

.ommo-star--hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  animation: ommo-spin 28s linear infinite;
}

@keyframes ommo-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 820px) {
  .ommo-hero {
    padding: 24px 0 56px !important;
  }

  .ommo-row--hero-meta {
    grid-template-columns: 1fr;
    gap: 12px;
    margin-bottom: 32px !important;
  }

  .ommo-row--hero-meta > .col:last-child,
  .ommo-col--hero-meta-right {
    justify-self: start;
    text-align: left;
  }

  .ommo-hero__wordmark,
  .ommo-hero__wordmark p {
    font-size: clamp(110px, 24vw, 360px) !important;
    line-height: .82 !important;
    letter-spacing: -.04em;
  }

  .ommo-row--hero-bottom {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .ommo-hero__tagline,
  .ommo-hero__tagline p {
    white-space: normal;
  }

  .ommo-hero__cta-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    width: 100%;
    max-width: 100%;
    margin-top: 20px;
  }

  .ommo-hero__cta-row .ommo-btn,
  .ommo-hero__cta-row a.ommo-btn,
  .ommo-hero__cta-row button.ommo-btn {
    flex: 0 1 auto;
    width: auto !important;
    min-width: 0 !important;
    max-width: none;
    white-space: nowrap;
  }

  .ommo-hero__cta-row .ommo-btn__arrow {
    flex: 0 0 auto;
  }

  .ommo-star--hero {
    top: 50%;
    left: calc(100% + 16px);
    width: 88px;
    height: 88px;
    opacity: 1;
  }
}

@media (max-width: 480px) {
  .ommo-hero__wordmark,
  .ommo-hero__wordmark p {
    font-size: clamp(80px, calc(20.5vw + 16px), 98px) !important;
  }

  .ommo-star--hero {
    left: calc(100% + 2px);
    width: 64px;
    height: 64px;
  }
}

@media (max-width: 350px) {
  .ommo-hero__wordmark,
  .ommo-hero__wordmark p {
    font-size: 18vw !important;
  }
}

@media (max-width: 640px) {
  .ommo-hero__cta-row {
    gap: 12px;
  }

  .ommo-hero__cta-row .ommo-btn,
  .ommo-hero__cta-row a.ommo-btn,
  .ommo-hero__cta-row button.ommo-btn {
    min-height: 34px;
    padding: 0 16px;
    gap: 8px;
    font-size: 10px;
    letter-spacing: .14em;
  }
}

@media (max-width: 360px) {
  .ommo-hero__cta-row {
    gap: 8px;
  }

  .ommo-hero__cta-row .ommo-btn,
  .ommo-hero__cta-row a.ommo-btn,
  .ommo-hero__cta-row button.ommo-btn {
    min-height: 32px;
    padding: 0 12px;
    gap: 6px;
    font-size: 9px;
    letter-spacing: .12em;
  }
}
