/*
 * Nova Builder Core component foundation.
 * These are intentionally scoped to Nova blocks and primitives. The active
 * theme may style its own shell without being required for component layout.
 */
.nova-eyebrow {
  margin: 0 0 20px;
  color: var(--nova-accent, #6d5dfc);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.nova-button,
.wp-block-nova-button .nova-button {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  box-sizing: border-box;
  padding: var(--nova-link-padding-y, 14px) var(--nova-link-padding-x, 18px);
  border: var(--nova-link-border-width, 1px) solid var(--nova-link-border-color, var(--nova-accent, #6d5dfc));
  border-radius: var(--nova-link-radius, 5px);
  background: var(--nova-link-bg, var(--nova-accent, #6d5dfc));
  color: var(--nova-link-color, #fff);
  font-size: var(--nova-link-font-size, 13px);
  font-weight: 800;
  line-height: var(--nova-link-line-height, 1.2);
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.nova-button:hover,
.nova-button:focus-visible,
.wp-block-nova-button .nova-button:hover,
.wp-block-nova-button .nova-button:focus-visible {
  border-color: var(--nova-link-hover-bg, #5145ce);
  background: var(--nova-link-hover-bg, #5145ce);
  color: var(--nova-link-hover-color, #fff);
  transform: translateY(-2px);
}

.nova-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--nova-accent, #6d5dfc);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.nova-link span { transition: transform .2s ease; }
.nova-link:hover span,
.nova-link:focus-visible span { transform: translateX(4px); }

.wp-block-nova-section {
  min-height: var(--nova-section-min-height, auto);
  padding: var(--nova-section-padding-top, 96px) 0 var(--nova-section-padding-bottom, 96px);
  border-radius: var(--nova-section-radius, 0);
  background-position: var(--nova-section-bg-position, center);
  background-repeat: no-repeat;
  background-size: cover;
}

.wp-block-nova-section--paper { background-color: var(--nova-paper, #f5f6fb); }
.wp-block-nova-section--dark { background-color: var(--nova-dark, #17151f); color: #fff; }
.wp-block-nova-section--accent { background-color: var(--nova-accent, #6d5dfc); color: #fff; }
.wp-block-nova-section--accent .nova-eyebrow { color: rgba(255, 255, 255, .65); }

.wp-block-nova-section > .nova-block-section__heading,
.wp-block-nova-section > .wp-block-nova-text,
.wp-block-nova-section > .wp-block-nova-image,
.wp-block-nova-section > .wp-block-nova-button,
.wp-block-nova-section > .wp-block-nova-cta,
.wp-block-nova-section > .wp-block-columns,
.wp-block-nova-section > .wp-block-group {
  width: min(calc(100% - 64px), var(--nova-max, 1240px));
  margin-right: auto;
  margin-left: auto;
}

.wp-block-nova-section--width-narrow > .nova-block-section__heading,
.wp-block-nova-section--width-narrow > .wp-block-nova-text,
.wp-block-nova-section--width-narrow > .wp-block-nova-image,
.wp-block-nova-section--width-narrow > .wp-block-nova-button,
.wp-block-nova-section--width-narrow > .wp-block-nova-cta,
.wp-block-nova-section--width-narrow > .wp-block-columns,
.wp-block-nova-section--width-narrow > .wp-block-group {
  width: min(calc(100% - 64px), 880px);
}

.wp-block-nova-section--width-full > .nova-block-section__heading,
.wp-block-nova-section--width-full > .wp-block-nova-text,
.wp-block-nova-section--width-full > .wp-block-nova-image,
.wp-block-nova-section--width-full > .wp-block-nova-button,
.wp-block-nova-section--width-full > .wp-block-nova-cta,
.wp-block-nova-section--width-full > .wp-block-columns,
.wp-block-nova-section--width-full > .wp-block-group {
  width: 100%;
  max-width: none;
}

.wp-block-nova-section__heading { margin-bottom: 38px; }
.wp-block-nova-section__heading h2,
.wp-block-nova-text > :where(h1, h2, h3, h4, h5, h6) {
  max-width: 760px;
  margin: 0;
  line-height: .94;
  letter-spacing: -.075em;
}

.wp-block-nova-text { padding: 38px 0; }
.wp-block-nova-text > :where(h1, h2, h3, h4, h5, h6) { margin-top: 22px; }
.wp-block-nova-text > .nova-block__body {
  max-width: 620px;
  margin: 0;
  color: #6e7180;
  font-size: 17px;
}

.wp-block-nova-image { margin-top: 30px; margin-bottom: 30px; }
.wp-block-nova-image img {
  display: block;
  width: 100%;
  height: var(--nova-image-height, auto);
  object-fit: var(--nova-image-fit, cover);
  object-position: var(--nova-image-position, center);
  border-radius: var(--nova-image-radius, var(--nova-radius, 18px));
}
.wp-block-nova-image figcaption { margin-top: 10px; color: #777b8b; font-size: 13px; }
.wp-block-nova-button { padding: 12px 0; }

.wp-block-nova-cta {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 36px;
  padding: 48px 42px;
  border-radius: var(--nova-radius, 18px);
  background: var(--nova-dark, #17151f);
  color: #fff;
}
.wp-block-nova-cta h2 {
  max-width: 680px;
  margin: 18px 0 0;
  line-height: .9;
  letter-spacing: -.075em;
}
.wp-block-nova-cta .nova-block__body { max-width: 320px; color: rgba(255, 255, 255, .68); }
.wp-block-nova-cta .nova-button { background: #fff; border-color: #fff; color: var(--nova-accent, #6d5dfc); }

@media (max-width: 900px) {
  .wp-block-nova-section { padding-top: var(--nova-section-mobile-padding-top, 70px); padding-bottom: var(--nova-section-mobile-padding-bottom, 70px); }
  .wp-block-nova-section > .nova-block-section__heading,
  .wp-block-nova-section > .wp-block-nova-text,
  .wp-block-nova-section > .wp-block-nova-image,
  .wp-block-nova-section > .wp-block-nova-button,
  .wp-block-nova-section > .wp-block-nova-cta,
  .wp-block-nova-section > .wp-block-columns,
  .wp-block-nova-section > .wp-block-group,
  .wp-block-nova-section--width-narrow > .nova-block-section__heading,
  .wp-block-nova-section--width-narrow > .wp-block-nova-text,
  .wp-block-nova-section--width-narrow > .wp-block-nova-image,
  .wp-block-nova-section--width-narrow > .wp-block-nova-button,
  .wp-block-nova-section--width-narrow > .wp-block-nova-cta,
  .wp-block-nova-section--width-narrow > .wp-block-columns,
  .wp-block-nova-section--width-narrow > .wp-block-group { width: min(calc(100% - 40px), var(--nova-max, 1240px)); }
  .wp-block-nova-section--width-full > .nova-block-section__heading,
  .wp-block-nova-section--width-full > .wp-block-nova-text,
  .wp-block-nova-section--width-full > .wp-block-nova-image,
  .wp-block-nova-section--width-full > .wp-block-nova-button,
  .wp-block-nova-section--width-full > .wp-block-nova-cta,
  .wp-block-nova-section--width-full > .wp-block-columns,
  .wp-block-nova-section--width-full > .wp-block-group { width: 100%; }
  .wp-block-nova-cta { align-items: flex-start; flex-direction: column; }
}
