/* Nova Builder Core component layer. Theme-independent styles migrated from the Nova Builder theme. */

/* Smart custom presets. A preset only emits a rule for values explicitly
 * configured in Nova settings, so empty fields keep the component default. */
.nova-preset-has-body-size { font-size: var(--nova-preset-font-size); }
.nova-preset-has-body-line-height { line-height: var(--nova-preset-line-height); }
.nova-preset-has-padding-y { padding-block: var(--nova-preset-padding-y); }
.nova-preset-has-padding-x { padding-inline: var(--nova-preset-padding-x); }
.nova-preset-has-gap { gap: var(--nova-preset-gap); }
.nova-preset-has-body-size:not(.nova-block--text):not(.nova-block--image):not(.nova-block--button) :where(p:not(.nova-eyebrow), li, figcaption, time, summary, label, .nova-block__body, .nova-carousel__body, .nova-post-card__content p, .nova-loop-card__excerpt, .nova-loop-field__text, .nova-contact-form__intro, blockquote, .nova-testimonial__person) { font-size: var(--nova-preset-font-size) !important; }
.nova-preset-has-body-line-height:not(.nova-block--text):not(.nova-block--image):not(.nova-block--button) :where(p:not(.nova-eyebrow), li, figcaption, time, summary, label, .nova-block__body, .nova-carousel__body, .nova-post-card__content p, .nova-loop-card__excerpt, .nova-loop-field__text, .nova-contact-form__intro, blockquote, .nova-testimonial__person) { line-height: var(--nova-preset-line-height) !important; }
.nova-preset-has-heading-size:not(.nova-block--text):not(.nova-block--image):not(.nova-block--button) :where(h1, h2, h3, h4, h5, h6, .nova-pricing__price strong, .nova-counter__value, .nova-stat > strong) { font-size: var(--nova-preset-heading-size) !important; }
.nova-preset-has-heading-line-height:not(.nova-block--text):not(.nova-block--image):not(.nova-block--button) :where(h1, h2, h3, h4, h5, h6, .nova-pricing__price strong, .nova-counter__value, .nova-stat > strong) { line-height: var(--nova-preset-heading-line-height) !important; }


/* Additional text roles used by metrics and testimonial cards. */
.nova-responsive-type-has-desktop-font-size :where(blockquote, .nova-testimonial__person) { font-size: var(--nova-component-desktop-font-size) !important; }
.nova-responsive-type-has-desktop-line-height :where(blockquote, .nova-testimonial__person) { line-height: var(--nova-component-desktop-line-height) !important; }
.nova-responsive-type-has-desktop-heading-size :where(.nova-stat > strong, .nova-counter__prefix, .nova-counter__suffix, .nova-icon-list__icon) { font-size: var(--nova-component-desktop-heading-size) !important; }
.nova-responsive-type-has-desktop-heading-line-height :where(.nova-stat > strong, .nova-counter__prefix, .nova-counter__suffix, .nova-icon-list__icon) { line-height: var(--nova-component-desktop-heading-line-height) !important; }
/* ---- wp-content/themes/nova-builder/assets/components.css ---- */
/* Shared media controls exposed by the Nova inspector. */
.nova-layout-customizable {
  box-sizing: border-box;
}

/* Generic responsive typography for every text-bearing component. Specific
 * text/image/button controls use their own variables above; these hooks fill
 * the gap for cards, stats, CTA, FAQ, Loop, testimonials and similar blocks. */
.nova-responsive-type-has-desktop-font-size :where(p:not(.nova-eyebrow), li, figcaption, time, summary, label, .nova-block__body, .nova-carousel__body, .nova-post-card__content p, .nova-loop-card__excerpt, .nova-loop-field__text, .nova-contact-form__intro) {
	font-size: var(--nova-component-desktop-font-size) !important;
}
.nova-responsive-type-has-desktop-line-height :where(p:not(.nova-eyebrow), li, figcaption, time, summary, label, .nova-block__body, .nova-carousel__body, .nova-post-card__content p, .nova-loop-card__excerpt, .nova-loop-field__text, .nova-contact-form__intro) {
	line-height: var(--nova-component-desktop-line-height) !important;
}
.nova-responsive-type-has-desktop-heading-size :where(h1, h2, h3, h4, h5, h6, .nova-pricing__price strong, .nova-counter__value) {
	font-size: var(--nova-component-desktop-heading-size) !important;
}
.nova-responsive-type-has-desktop-heading-line-height :where(h1, h2, h3, h4, h5, h6, .nova-pricing__price strong, .nova-counter__value) {
	line-height: var(--nova-component-desktop-heading-line-height) !important;
}

.wp-block-nova-image img {
  display: block;
  width: 100%;
  height: var(--nova-image-height, auto);
  aspect-ratio: var(--nova-image-aspect-ratio, auto);
  object-fit: var(--nova-image-fit, cover);
  object-position: var(--nova-image-position, center);
  border-radius: var(--nova-image-radius, var(--nova-radius));
}

/* Image treatments are opt-in; the default preserves the original photograph. */
.wp-block-nova-image.nova-image--frame-hairline img {
  outline: 1px solid #d9d8d2;
  outline-offset: -1px;
}
.wp-block-nova-image.nova-image--frame-mat img {
  box-sizing: border-box;
  border: clamp(6px, .75vw, 12px) solid #f7f6f2;
}
.wp-block-nova-image.nova-image--tone-muted img {
  filter: saturate(.72) contrast(1.02);
}
.wp-block-nova-image.nova-image--tone-mono img {
  filter: grayscale(1) contrast(1.05);
}
.wp-block-nova-image.nova-image--hover-zoom,
.wp-block-nova-image.nova-image--hover-pan {
  overflow: hidden;
}
.wp-block-nova-image .nova-image__media-link:focus-visible,
.wp-block-nova-image .nova-image__lightbox-link:focus-visible {
  outline: 2px solid var(--nova-accent, #c83b32);
  outline-offset: 3px;
}
.wp-block-nova-image.nova-image--hover-zoom :is(.nova-image__media-link,.nova-image__lightbox-link):focus-visible,
.wp-block-nova-image.nova-image--hover-pan :is(.nova-image__media-link,.nova-image__lightbox-link):focus-visible {
  outline-offset: -3px;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .wp-block-nova-image:is(.nova-image--hover-zoom,.nova-image--hover-pan,.nova-image--hover-colorize,.nova-image--hover-brighten) img {
    transition: transform .55s cubic-bezier(.2,.75,.25,1), filter .5s ease;
  }
  .wp-block-nova-image.nova-image--hover-zoom:hover img,
  .wp-block-nova-image.nova-image--hover-zoom:focus-within img {
    transform: scale(1.09);
  }
  .wp-block-nova-image.nova-image--hover-pan:hover img,
  .wp-block-nova-image.nova-image--hover-pan:focus-within img {
    transform: scale(1.14) translateX(-3%);
  }
  .wp-block-nova-image.nova-image--hover-colorize img {
    filter: grayscale(1);
  }
  .wp-block-nova-image.nova-image--hover-colorize:hover img,
  .wp-block-nova-image.nova-image--hover-colorize:focus-within img {
    filter: none;
  }
  .wp-block-nova-image.nova-image--hover-brighten:hover img,
  .wp-block-nova-image.nova-image--hover-brighten:focus-within img {
    filter: brightness(1.17) contrast(1.04);
  }
  .wp-block-nova-image.nova-image--tone-muted.nova-image--hover-brighten:hover img,
  .wp-block-nova-image.nova-image--tone-muted.nova-image--hover-brighten:focus-within img {
    filter: saturate(.8) contrast(1.04) brightness(1.17);
  }
  .wp-block-nova-image.nova-image--tone-mono.nova-image--hover-brighten:hover img,
  .wp-block-nova-image.nova-image--tone-mono.nova-image--hover-brighten:focus-within img {
    filter: grayscale(1) contrast(1.05) brightness(1.17);
  }
  .wp-block-nova-image.nova-image--hover-lift {
    transition: transform .42s cubic-bezier(.2,.75,.25,1);
  }
  .wp-block-nova-image.nova-image--hover-lift:hover,
  .wp-block-nova-image.nova-image--hover-lift:focus-within {
    transform: translateY(-9px);
  }
}

/* Compact, image-led effect previews in the front visual inspector. */
.nova-image-effect-picker {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}
.nova-image-effect-choice {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 5px;
  border: 1px solid #d9d8d2;
  border-radius: 4px;
  background: #fff;
  color: #191b1d;
  font: inherit;
  font-size: 11px;
  text-align: left;
  cursor: pointer;
}
.nova-image-effect-choice.is-selected {
  border-color: #c83b32;
  box-shadow: inset 0 0 0 1px #c83b32;
}
.nova-image-effect-choice:focus-visible {
  outline: 2px solid #c83b32;
  outline-offset: 2px;
}
.nova-image-effect-choice__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: #efefeb;
}
.nova-image-effect-choice__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nova-image-effect-choice__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .nova-image-effect-choice img { transition: transform .32s ease, filter .32s ease; }
  .nova-image-effect-choice--zoom:hover img { transform: scale(1.09); }
  .nova-image-effect-choice--lift:hover .nova-image-effect-choice__media { transform: translateY(-7px); }
  .nova-image-effect-choice--pan:hover img { transform: scale(1.14) translateX(-3%); }
  .nova-image-effect-choice--colorize img { filter: grayscale(1); }
  .nova-image-effect-choice--colorize:hover img { filter: none; }
  .nova-image-effect-choice--brighten:hover img { filter: brightness(1.17); }
}

.wp-block-nova-gallery .nova-gallery__item {
  border-radius: var(--nova-gallery-radius, var(--nova-radius));
}

.wp-block-nova-gallery .nova-gallery__item img {
  display: block;
  width: 100%;
  height: var(--nova-gallery-height, 100%);
  aspect-ratio: var(--nova-gallery-aspect-ratio, 1);
  object-fit: var(--nova-gallery-fit, cover);
  object-position: var(--nova-gallery-position, center);
}

.wp-block-nova-video video {
  height: var(--nova-video-height, auto);
  aspect-ratio: var(--nova-video-aspect-ratio, 16/9);
  object-fit: var(--nova-video-fit, cover);
  border-radius: var(--nova-video-radius, var(--nova-radius));
}

/* Nested Group container: compose Nova modules without hard-coded page markup. */
.wp-block-nova-group {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  min-width: 0;
}

.wp-block-nova-group > * { min-width: 0; }
.wp-block-nova-group--block { display: block; }
.wp-block-nova-group--block > * + * { margin-top: var(--nova-group-row-gap, var(--nova-group-gap, 24px)); }
.wp-block-nova-group--flex { display: flex; flex-direction: row; flex-wrap: var(--nova-group-wrap, wrap); align-items: var(--nova-group-align, stretch); justify-content: var(--nova-group-justify, flex-start); gap: var(--nova-group-row-gap, var(--nova-group-gap, 24px)) var(--nova-group-column-gap, var(--nova-group-gap, 24px)); }
.wp-block-nova-group--flex.nova-block-group--direction-row-reverse { flex-direction: row-reverse; }
.wp-block-nova-group--flex.nova-block-group--direction-column { flex-direction: column; }
.wp-block-nova-group--flex.nova-block-group--direction-column-reverse { flex-direction: column-reverse; }
.wp-block-nova-group--grid { display: grid; grid-template-columns: repeat(var(--nova-group-columns, 2), minmax(0, 1fr)); align-items: var(--nova-group-align, stretch); justify-content: var(--nova-group-justify, start); gap: var(--nova-group-row-gap, var(--nova-group-gap, 24px)) var(--nova-group-column-gap, var(--nova-group-gap, 24px)); }
.wp-block-nova-group--linked { cursor: pointer; }

.nova-block-columns {
  display: grid;
  grid-template-columns: repeat(var(--nova-columns-count, 2), minmax(0, 1fr));
  gap: var(--nova-columns-gap, 24px);
  align-items: var(--nova-columns-align, start);
}

.nova-block-columns--2 { --nova-columns-count: 2; }
.nova-block-columns--3 { --nova-columns-count: 3; }
.nova-block-columns--4 { --nova-columns-count: 4; }
.nova-block-columns--no-stack { grid-template-columns: repeat(var(--nova-columns-count, 2), minmax(0, 1fr)); }

.nova-block-columns > * {
  align-self: var(--nova-columns-align, start);
}

.nova-overlap-desktop-only {
  position: relative;
}

/* Link box variants. The block keeps the shared Nova button contract while
 * allowing each link box to choose a visual treatment from the inspector. */
.wp-block-nova-button .nova-button--outline {
  background: transparent;
  color: var(--nova-accent);
}

.wp-block-nova-button .nova-button--outline:hover,
.wp-block-nova-button .nova-button--outline:focus-visible {
  background: var(--nova-accent);
  color: #fff;
}

.wp-block-nova-button .nova-button--text {
  padding-right: 0;
  padding-left: 0;
  border-color: transparent;
  background: transparent;
  color: var(--nova-accent);
}

.wp-block-nova-button .nova-button--text:hover,
.wp-block-nova-button .nova-button--text:focus-visible {
  background: transparent;
  color: #5145ce;
}

/* Link box controls. Defaults match the original Nova button so existing
 * saved blocks keep their original visual output. */
.wp-block-nova-button .nova-button {
  box-sizing: border-box;
  padding: var(--nova-link-padding-y, 14px) var(--nova-link-padding-x, 18px);
  border-radius: var(--nova-link-radius, 5px);
  border-width: var(--nova-link-border-width, 1px);
  font-size: var(--nova-link-font-size, inherit);
  line-height: var(--nova-link-line-height, 1.2);
}

.wp-block-nova-button .nova-button:not(.nova-button--outline):not(.nova-button--text) {
  border-color: var(--nova-link-border-color, var(--nova-accent));
  background: var(--nova-link-bg, var(--nova-accent));
  color: var(--nova-link-color, #fff);
}

.wp-block-nova-button .nova-button:not(.nova-button--outline):not(.nova-button--text):hover,
.wp-block-nova-button .nova-button:not(.nova-button--outline):not(.nova-button--text):focus-visible {
  border-color: var(--nova-link-hover-bg, #5145ce);
  background: var(--nova-link-hover-bg, #5145ce);
  color: var(--nova-link-hover-color, #fff);
}

.wp-block-nova-button .nova-button--outline {
  border-color: var(--nova-link-border-color, var(--nova-accent));
  background: var(--nova-link-bg, transparent);
  color: var(--nova-link-color, var(--nova-accent));
}

.wp-block-nova-button .nova-button--outline:hover,
.wp-block-nova-button .nova-button--outline:focus-visible {
  border-color: var(--nova-link-hover-bg, var(--nova-accent));
  background: var(--nova-link-hover-bg, var(--nova-accent));
  color: var(--nova-link-hover-color, #fff);
}

.wp-block-nova-button .nova-button--text {
  padding: var(--nova-link-padding-y, 0) var(--nova-link-padding-x, 0);
  border-color: var(--nova-link-border-color, transparent);
  background: var(--nova-link-bg, transparent);
  color: var(--nova-link-color, var(--nova-accent));
}

.wp-block-nova-button .nova-button--text:hover,
.wp-block-nova-button .nova-button--text:focus-visible {
  border-color: var(--nova-link-hover-bg, transparent);
  background: var(--nova-link-hover-bg, transparent);
  color: var(--nova-link-hover-color, #5145ce);
}

.wp-block-nova-button .nova-button--small {
  padding-top: var(--nova-link-padding-y, 10px);
  padding-bottom: var(--nova-link-padding-y, 10px);
  font-size: 12px;
}

.wp-block-nova-button .nova-button--large {
  padding-top: var(--nova-link-padding-y, 18px);
  padding-bottom: var(--nova-link-padding-y, 18px);
  font-size: 15px;
}

.wp-block-nova-button .nova-button--full {
  display: flex;
  width: 100%;
  justify-content: center;
}

.wp-block-nova-button .nova-button__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}


/* ---- wp-content/themes/nova-builder/assets/columns.css ---- */
/* Keep column children aligned to the top and prevent intrinsic image sizing
 * from changing the placement of the next grid item. */
.wp-block-nova-columns {
  align-items: start;
}

.wp-block-nova-columns > * {
  min-width: 0;
  align-self: start;
}

/* An accidental empty paragraph must not consume one of the grid cells.
 * Use Nova Spacer when intentional empty space is needed. */
.wp-block-nova-columns > p:empty {
  display: none;
}

.wp-block-nova-columns > .wp-block-nova-image {
  width: 100%;
  max-width: none;
  margin-top: 0;
  margin-bottom: 0;
}

.wp-block-nova-columns > .wp-block-nova-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: var(--nova-image-height, auto);
}

@media (max-width: 900px) {
  .nova-block-columns--3,
  .nova-block-columns--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .nova-block-columns:not(.nova-block-columns--no-stack) {
    grid-template-columns: minmax(0, 1fr);
  }

  .nova-block-columns--no-stack {
    grid-template-columns: repeat(var(--nova-columns-count, 2), minmax(0, 1fr));
    overflow-x: auto;
  }
}


/* ---- wp-content/themes/nova-builder/assets/carousel.css ---- */
/* Base carousel presentation is plugin-owned because the theme deliberately
 * skips its stylesheet when Nova Builder Core is active. */
.wp-block-nova-carousel {
  position: relative;
  min-height: var(--nova-carousel-height, 680px);
  overflow: hidden;
  background: #17151f;
  color: #fff;
}

.wp-block-nova-carousel .nova-carousel__viewport {
  position: relative;
  min-height: var(--nova-carousel-height, 680px);
}

.wp-block-nova-carousel .nova-carousel__slide {
  display: flex;
  align-items: stretch;
  visibility: hidden;
  opacity: 0;
  overflow: hidden;
  transition: opacity .55s ease, visibility .55s ease;
}

.wp-block-nova-carousel .nova-carousel__slide.is-active {
  z-index: 1;
  visibility: visible;
  opacity: 1;
}

.wp-block-nova-carousel .nova-carousel__slide::before {
  position: absolute;
  z-index: 0;
  inset: -18px;
  background-image: var(--nova-carousel-slide-background-image, none);
  background-position: var(--nova-carousel-slide-position, var(--nova-carousel-position, center));
  background-size: cover;
  content: "";
  filter: blur(16px);
  opacity: .48;
  transform: scale(1.04);
}

.wp-block-nova-carousel .nova-carousel__slide > img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: var(--nova-carousel-slide-fit, var(--nova-carousel-fit, cover));
  object-position: var(--nova-carousel-slide-position, var(--nova-carousel-position, center));
}

.wp-block-nova-carousel .nova-carousel__shade {
  position: absolute;
  inset: 0;
}

.wp-block-nova-carousel .nova-carousel__content {
  position: relative;
  z-index: 1;
  display: flex;
  width: min(calc(100% - 64px), var(--nova-max));
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  padding: 100px 0;
}

.wp-block-nova-carousel.nova-carousel--align-center .nova-carousel__content {
  align-items: center;
  text-align: center;
}

.wp-block-nova-carousel .nova-carousel__content h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(40px, 5.8vw, 104px);
  line-height: .88;
  letter-spacing: -.08em;
}

.wp-block-nova-carousel .nova-carousel__content .nova-eyebrow { color: #aaa1ff; }
.wp-block-nova-carousel .nova-carousel__body { max-width: 520px; margin: 24px 0 0; color: rgba(255,255,255,.72); font-size: 17px; }
.wp-block-nova-carousel .nova-carousel__content .nova-button { width: max-content; margin-top: 30px; }

.wp-block-nova-carousel .nova-carousel__arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 50%;
  background: rgba(23,21,31,.28);
  color: #fff;
  cursor: pointer;
  transform: translateY(-50%);
  transition: background .2s ease, transform .2s ease;
}

.wp-block-nova-carousel .nova-carousel__arrow:hover { background: rgba(23,21,31,.75); transform: translateY(-50%) scale(1.06); }
.wp-block-nova-carousel .nova-carousel__arrow--prev { left: 24px; }
.wp-block-nova-carousel .nova-carousel__arrow--next { right: 24px; }

.wp-block-nova-carousel .nova-carousel__dots {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 24px;
  left: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.wp-block-nova-carousel .nova-carousel__dot { width: 32px; height: 3px; padding: 0; border: 0; border-radius: 99px; background: rgba(255,255,255,.36); cursor: pointer; }
.wp-block-nova-carousel .nova-carousel__dot.is-active { background: #fff; }

/* Carousel width overrides. !important also corrects older saved blocks whose inline style used the previous 64px gutter. */
.wp-block-nova-carousel.nova-carousel--width-full {
  width: var(--nova-viewport-width, 100vw) !important;
  max-width: var(--nova-viewport-width, 100vw) !important;
  margin-right: calc(50% - 50vw + var(--nova-viewport-half-gutter, 0px)) !important;
  margin-left: calc(50% - 50vw + var(--nova-viewport-half-gutter, 0px)) !important;
}

.wp-block-nova-carousel.nova-carousel--width-wide {
  width: min(100%, var(--nova-max)) !important;
  max-width: var(--nova-max) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.wp-block-nova-carousel.nova-carousel--width-contained {
  width: min(100%, 980px) !important;
  max-width: 980px !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.wp-block-nova-carousel.nova-carousel--width-custom {
  width: min(100%, var(--nova-carousel-custom-width, 1280px)) !important;
  max-width: var(--nova-carousel-custom-width, 1280px) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

/* A carousel placed inside Nova Columns should occupy the full row instead of one narrow grid cell. */
.wp-block-nova-columns > .wp-block-nova-carousel,
.wp-block-columns > .wp-block-nova-carousel {
  grid-column: 1 / -1;
}

.wp-block-nova-carousel.nova-carousel--height-viewport,
.wp-block-nova-carousel.nova-carousel--height-viewport .nova-carousel__viewport {
  min-height: 100vh !important;
}

/* Keep the active slide stretched to the full carousel height. Without this,
 * position:relative lets the slide collapse to the height of its text. */
.wp-block-nova-carousel .nova-carousel__viewport {
  height: var(--nova-carousel-height, 680px) !important;
  min-height: var(--nova-carousel-height, 680px) !important;
}

.wp-block-nova-carousel .nova-carousel__slide,
.wp-block-nova-carousel .nova-carousel__slide.is-active {
  position: absolute !important;
  inset: 0 !important;
  height: 100% !important;
  min-height: 100% !important;
}

/* A fitted poster follows the active image's intrinsic aspect ratio. The
 * runtime sets --nova-carousel-height after the image is available. */
.wp-block-nova-carousel.nova-carousel--height-image,
.wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__viewport {
  height: var(--nova-carousel-height, 680px) !important;
  min-height: var(--nova-carousel-height, 680px) !important;
}

.wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__slide::before {
  display: none;
}

.wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__content {
  padding-block: clamp(20px, 4vw, 64px);
}

/* Slide motion is opt-in; old carousels keep their existing fade. */
.wp-block-nova-carousel.is-ready:is(.nova-carousel--transition-horizontal, .nova-carousel--transition-vertical, .nova-carousel--transition-zoom) .nova-carousel__slide {
  transition: transform .68s cubic-bezier(.22, 1, .36, 1), opacity .55s ease, visibility .68s;
}

.wp-block-nova-carousel.nova-carousel--transition-horizontal .nova-carousel__slide {
  transform: translate3d(100%, 0, 0);
}

.wp-block-nova-carousel.nova-carousel--transition-horizontal[data-transition-direction="prev"] .nova-carousel__slide {
  transform: translate3d(-100%, 0, 0);
}

.wp-block-nova-carousel.nova-carousel--transition-vertical .nova-carousel__slide {
  transform: translate3d(0, 100%, 0);
}

.wp-block-nova-carousel.nova-carousel--transition-vertical[data-transition-direction="prev"] .nova-carousel__slide {
  transform: translate3d(0, -100%, 0);
}

.wp-block-nova-carousel.nova-carousel--transition-zoom .nova-carousel__slide {
  transform: scale(1.045);
}

.wp-block-nova-carousel:is(.nova-carousel--transition-horizontal, .nova-carousel--transition-vertical, .nova-carousel--transition-zoom) .nova-carousel__slide.is-active {
  transform: none;
}

.wp-block-nova-carousel .nova-carousel__arrow:focus-visible,
.wp-block-nova-carousel .nova-carousel__dot:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

.wp-block-nova-carousel.nova-carousel--pagination-dots .nova-carousel__dots { gap: 12px; }
.wp-block-nova-carousel.nova-carousel--pagination-dots .nova-carousel__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.wp-block-nova-carousel.nova-carousel--pagination-numbers .nova-carousel__dots {
  counter-reset: nova-carousel-page;
  gap: 18px;
}
.wp-block-nova-carousel.nova-carousel--pagination-numbers .nova-carousel__dot {
  counter-increment: nova-carousel-page;
  width: auto;
  height: 32px;
  border-radius: 0;
  border-bottom: 1px solid rgba(255,255,255,.48);
  background: none;
  color: rgba(255,255,255,.68);
  font: 500 13px/1 Inter, system-ui, sans-serif;
}
.wp-block-nova-carousel.nova-carousel--pagination-numbers .nova-carousel__dot::before { content: counter(nova-carousel-page, decimal-leading-zero); }
.wp-block-nova-carousel.nova-carousel--pagination-numbers .nova-carousel__dot.is-active { border-bottom: 2px solid #C83B32; color: #fff; }

.wp-block-nova-carousel.nova-carousel--pagination-thumbnails .nova-carousel__dots { gap: 8px; }
.wp-block-nova-carousel.nova-carousel--pagination-thumbnails .nova-carousel__dot {
  width: clamp(56px, 7vw, 96px);
  height: clamp(38px, 4.5vw, 60px);
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.55);
  border-radius: 2px;
  background: #242729;
  opacity: .7;
}
.wp-block-nova-carousel.nova-carousel--pagination-thumbnails .nova-carousel__dot.is-active { border-color: #C83B32; opacity: 1; }
.wp-block-nova-carousel.nova-carousel--pagination-thumbnails .nova-carousel__dot img { display: block; width: 100%; height: 100%; object-fit: cover; }

@media (prefers-reduced-motion: reduce) {
  .wp-block-nova-carousel .nova-carousel__slide { transition-duration: 0s !important; transform: none !important; }
}

@media (max-width: 900px) {
  .wp-block-nova-carousel,
  .wp-block-nova-carousel .nova-carousel__viewport { min-height: 560px; }
  .wp-block-nova-carousel .nova-carousel__content { width: min(calc(100% - 40px), var(--nova-max)); padding: 84px 0; }
  .wp-block-nova-carousel .nova-carousel__arrow { width: 38px; height: 38px; }
  .wp-block-nova-carousel .nova-carousel__arrow--prev { left: 14px; }
  .wp-block-nova-carousel .nova-carousel__arrow--next { right: 14px; }
}

@media (max-width: 560px) {
  .wp-block-nova-carousel,
  .wp-block-nova-carousel .nova-carousel__viewport { min-height: 520px; }
  .wp-block-nova-carousel .nova-carousel__content { padding: 72px 0; }
  .wp-block-nova-carousel .nova-carousel__content h2 { font-size: clamp(30px, 8.5vw, 48px); }
  .wp-block-nova-carousel .nova-carousel__body { font-size: 15px; }
  .wp-block-nova-carousel .nova-carousel__arrow { display: none; }
  .wp-block-nova-carousel .nova-carousel__dots { bottom: 18px; }
}


/* ---- wp-content/themes/nova-builder/assets/carousel-content.css ---- */
/* Per-slide content controls. These mirror the image module's independent
 * text-box model while keeping older carousel markup valid. */
.wp-block-nova-carousel .nova-carousel__media-link {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
}

.wp-block-nova-carousel .nova-carousel__media-link img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: var(--nova-carousel-slide-fit, var(--nova-carousel-fit, cover));
  object-position: var(--nova-carousel-slide-position, var(--nova-carousel-position, center));
}

.wp-block-nova-carousel .nova-carousel__slide > img {
  z-index: 1;
  object-fit: var(--nova-carousel-slide-fit, var(--nova-carousel-fit, cover));
  object-position: var(--nova-carousel-slide-position, var(--nova-carousel-position, center));
}

.wp-block-nova-carousel .nova-carousel__shade {
  z-index: 2;
  pointer-events: none;
}

.wp-block-nova-carousel .nova-carousel__content {
  z-index: 3;
  align-items: flex-start;
  text-align: left;
}

.wp-block-nova-carousel .nova-carousel__content-box {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--nova-carousel-content-max-width, 100%);
  transform: translate(var(--nova-carousel-content-offset-x, 0px), var(--nova-carousel-content-offset-y, 0px));
  padding: var(--nova-carousel-content-padding-top, 0) var(--nova-carousel-content-padding-right, 0) var(--nova-carousel-content-padding-bottom, 0) var(--nova-carousel-content-padding-left, 0);
  color: var(--nova-carousel-content-color, inherit);
  text-align: var(--nova-carousel-content-text-align, inherit);
}

.wp-block-nova-carousel .nova-carousel__media-link img,
.wp-block-nova-carousel .nova-carousel__slide > img {
	object-fit: contain !important;
	object-position: var(--nova-carousel-slide-position, var(--nova-carousel-position, center)) !important;
}

/* Automatic small-screen composition: keep the full poster visible above its
 * copy instead of requiring per-device crop and text-position settings. */
@media (max-width: 767px) {
  .wp-block-nova-carousel.nova-carousel--height-fixed,
  .wp-block-nova-carousel.nova-carousel--height-fixed .nova-carousel__viewport {
    height: min(var(--nova-carousel-height, 680px), 88svh) !important;
    min-height: min(var(--nova-carousel-height, 680px), 88svh) !important;
  }

  .wp-block-nova-carousel .nova-carousel__slide,
  .wp-block-nova-carousel .nova-carousel__slide.is-active {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .wp-block-nova-carousel .nova-carousel__slide > img,
  .wp-block-nova-carousel .nova-carousel__media-link,
  .wp-block-nova-carousel .nova-carousel__media-link img {
    position: relative;
    inset: auto;
    display: block;
    flex: 0 0 auto;
    width: 100%;
    height: auto !important;
    max-height: clamp(150px, 34svh, 280px);
    object-fit: contain;
  }

  .wp-block-nova-carousel .nova-carousel__media-link {
    z-index: 1;
  }

  .wp-block-nova-carousel .nova-carousel__shade {
    background: linear-gradient(0deg, rgba(12, 12, 18, .88), rgba(12, 12, 18, .18) 72%);
  }

  .wp-block-nova-carousel .nova-carousel__content {
    box-sizing: border-box;
    flex: 1 1 auto;
    width: min(calc(100% - 36px), var(--nova-max));
    min-height: 0;
    padding: 14px 0 48px;
  }

  .wp-block-nova-carousel .nova-carousel__content-box {
    max-width: 100%;
  }

  .wp-block-nova-carousel .nova-carousel__content h2 {
    font-size: clamp(30px, 8.5vw, 48px);
    line-height: 1;
    overflow-wrap: anywhere;
  }

  .wp-block-nova-carousel .nova-carousel__body {
    margin-top: 12px;
    font-size: clamp(14px, 3.8vw, 17px);
  }

  .wp-block-nova-carousel.nova-carousel--height-image,
  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__viewport {
    height: auto !important;
    min-height: 0 !important;
  }

  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__slide {
    position: relative !important;
    inset: auto !important;
    height: auto !important;
    min-height: 0 !important;
    display: none;
    transform: none;
  }

  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__slide.is-active { display: flex; }
  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__slide > img,
  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__media-link img { max-height: none; }
  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__shade { display: none; }
  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__content { width: min(calc(100% - 40px), var(--nova-max)); padding: 24px 0 34px; }
  .wp-block-nova-carousel.nova-carousel--height-image .nova-carousel__dots { bottom: 10px; }
}

/* Fixed offsets are device-specific: a 4K composition must not push text off a laptop viewport. */
@media (min-width: 1025px) and (max-width: 1800px) {
  .wp-block-nova-carousel .nova-carousel__content-box {
    transform: translate(var(--nova-carousel-content-offset-x-laptop, 0px), var(--nova-carousel-content-offset-y-laptop, 0px));
  }
}

@media (max-width: 1024px) {
  .wp-block-nova-carousel .nova-carousel__content-box {
    transform: translate(var(--nova-carousel-content-offset-x-tablet, 0px), var(--nova-carousel-content-offset-y-tablet, 0px));
  }
}

@media (max-width: 767px) {
  .wp-block-nova-carousel .nova-carousel__content-box {
    transform: translate(var(--nova-carousel-content-offset-x-mobile, 0px), var(--nova-carousel-content-offset-y-mobile, 0px));
  }
}

.wp-block-nova-carousel .nova-carousel__content--pos-top-left,
.wp-block-nova-carousel .nova-carousel__content--pos-top-center,
.wp-block-nova-carousel .nova-carousel__content--pos-top-right {
  justify-content: flex-start;
}

.wp-block-nova-carousel .nova-carousel__content--pos-bottom-left,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-center,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-right {
  justify-content: flex-end;
}

.wp-block-nova-carousel .nova-carousel__content--pos-top-left,
.wp-block-nova-carousel .nova-carousel__content--pos-center-left,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-left {
  align-items: flex-start;
  text-align: left;
}

.wp-block-nova-carousel .nova-carousel__content--pos-top-center,
.wp-block-nova-carousel .nova-carousel__content--pos-center,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-center {
  align-items: center;
  text-align: center;
}

.wp-block-nova-carousel .nova-carousel__content--pos-top-right,
.wp-block-nova-carousel .nova-carousel__content--pos-center-right,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-right {
  align-items: flex-end;
  text-align: right;
}

.wp-block-nova-carousel .nova-carousel__content--pos-top-center .nova-carousel__content-box > *,
.wp-block-nova-carousel .nova-carousel__content--pos-center .nova-carousel__content-box > *,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-center .nova-carousel__content-box > * {
  margin-right: auto;
  margin-left: auto;
}

.wp-block-nova-carousel .nova-carousel__content--pos-top-right .nova-carousel__content-box > *,
.wp-block-nova-carousel .nova-carousel__content--pos-center-right .nova-carousel__content-box > *,
.wp-block-nova-carousel .nova-carousel__content--pos-bottom-right .nova-carousel__content-box > * {
  margin-left: auto;
}

.wp-block-nova-carousel .nova-carousel__content-box--box-none {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.wp-block-nova-carousel .nova-carousel__content-box--box-solid,
.wp-block-nova-carousel .nova-carousel__content-box--box-glass,
.wp-block-nova-carousel .nova-carousel__content-box--box-outline {
  border-radius: var(--nova-carousel-content-radius, 14px);
  box-shadow: var(--nova-carousel-content-shadow, none);
}

.wp-block-nova-carousel .nova-carousel__content-box--box-solid {
  background: rgba(23, 21, 31, .82);
  background: color-mix(in srgb, var(--nova-carousel-content-box-color, #17151f) var(--nova-carousel-content-box-opacity, 82%), transparent);
  border: var(--nova-carousel-content-border-width, 0px) solid var(--nova-carousel-content-border-color, transparent);
}

.wp-block-nova-carousel .nova-carousel__content-box--box-glass {
  background: rgba(23, 21, 31, .46);
  background: color-mix(in srgb, var(--nova-carousel-content-box-color, #17151f) var(--nova-carousel-content-box-opacity, 46%), transparent);
  border: var(--nova-carousel-content-border-width, 1px) solid var(--nova-carousel-content-border-color, rgba(255, 255, 255, .3));
  backdrop-filter: blur(14px);
}

.wp-block-nova-carousel .nova-carousel__content-box--box-outline {
  background: transparent;
  border: var(--nova-carousel-content-border-width, 1px) solid var(--nova-carousel-content-border-color, currentColor);
}

.wp-block-nova-carousel .nova-carousel__content-box > .nova-eyebrow,
.wp-block-nova-carousel .nova-carousel__content-box > h2,
.wp-block-nova-carousel .nova-carousel__content-box > .nova-carousel__body {
  max-width: 100%;
}

@media (max-width: 560px) {
  .wp-block-nova-carousel .nova-carousel__content-box {
    max-width: 100%;
  }
}


/* ---- wp-content/themes/nova-builder/assets/extended-components.css ---- */
/* Additional Nova components inspired by common visual-builder patterns. */
.nova-layout-customizable :where(h1, h2, h3, h4, h5, h6, p, li, summary, time) {
	color: var(--nova-component-text, inherit);
}

.nova-layout-customizable.nova-hover--lift,
.nova-layout-customizable.nova-hover--zoom,
.nova-layout-customizable.nova-hover--glow {
	transition: transform .3s ease, box-shadow .3s ease, filter .3s ease;
}

.nova-layout-customizable.nova-hover--lift:hover {
	transform: translateY(-6px);
}

.nova-layout-customizable.nova-hover--zoom:hover {
	transform: scale(1.015);
}

.nova-layout-customizable.nova-hover--glow:hover {
	box-shadow: 0 18px 50px rgba(109,93,252,.28);
	box-shadow: 0 18px 50px color-mix(in srgb, var(--nova-accent) 28%, transparent);
}

/* Per-component interaction state tokens. Hover and focus are configured in
 * the shared inspector so every Nova block can use the same state contract. */
.nova-state-has-hover-background:hover {
	background-color: var(--nova-state-hover-background) !important;
}
.nova-state-has-hover-text:hover,
.nova-state-has-hover-text:hover :where(a, h1, h2, h3, h4, h5, h6, p, li, span, strong, em) {
	color: var(--nova-state-hover-color) !important;
}
.nova-state-has-hover-border:hover {
	border-color: var(--nova-state-hover-border) !important;
}
.nova-state-has-focus-background:focus-within {
	background-color: var(--nova-state-focus-background) !important;
}
.nova-state-has-focus-text:focus-within,
.nova-state-has-focus-text:focus-within :where(a, h1, h2, h3, h4, h5, h6, p, li, span, strong, em) {
	color: var(--nova-state-focus-color) !important;
}
.nova-state-has-focus-border:focus-within {
	border-color: var(--nova-state-focus-border) !important;
}

/* Typography controls for the structured text box. */
.wp-block-nova-text > .nova-eyebrow {
	margin-bottom: var(--nova-text-eyebrow-gap, 20px);
	font-size: var(--nova-text-eyebrow-size, 11px);
}

.wp-block-nova-text > :where(h1, h2, h3, h4, h5, h6) {
	max-width: var(--nova-text-title-max-width, 620px);
	margin-bottom: var(--nova-text-title-gap, 12px);
	font-size: var(--nova-text-title-size, clamp(30px, 4vw, 54px));
	line-height: var(--nova-text-title-line-height, .98);
}

.wp-block-nova-text > .nova-block__body {
	max-width: var(--nova-text-body-max-width, 620px);
	font-size: var(--nova-text-body-size, 17px);
	line-height: var(--nova-text-body-line-height, 1.6);
}

/* Optional editorial treatments; default text blocks retain their saved look. */
.wp-block-nova-text.nova-text--editorial {
	--nova-text-title-weight: 500;
	--nova-text-title-tracking: -.045em;
	--nova-text-body-max-width: 52ch;
}
.wp-block-nova-text.nova-text--statement {
	--nova-text-title-weight: 600;
	--nova-text-title-tracking: -.045em;
	--nova-text-title-size: clamp(38px, 5vw, 72px);
	--nova-text-title-wrap: balance;
	--nova-text-body-max-width: 42ch;
}
.wp-block-nova-text.nova-text--compact {
	--nova-text-title-weight: 600;
	--nova-text-title-tracking: -.025em;
	--nova-text-eyebrow-gap: 10px;
	--nova-text-title-gap: 8px;
	--nova-text-body-max-width: 58ch;
}
.wp-block-nova-text > :where(h1, h2, h3, h4, h5, h6, p:not(.nova-eyebrow, .nova-block__body)) {
	font-weight: var(--nova-text-title-weight, inherit);
	letter-spacing: var(--nova-text-title-tracking, inherit);
	text-wrap: var(--nova-text-title-wrap, normal);
	overflow-wrap: anywhere;
}
.wp-block-nova-text > .nova-block__body {
	letter-spacing: var(--nova-text-body-tracking, inherit);
	overflow-wrap: anywhere;
}
.wp-block-nova-text[style*="text-align: center"] > :where(.nova-eyebrow, h1, h2, h3, h4, h5, h6, .nova-block__body) {
	margin-inline: auto;
}
.wp-block-nova-text[style*="text-align: right"] > :where(.nova-eyebrow, h1, h2, h3, h4, h5, h6, .nova-block__body) {
	margin-left: auto;
}

.nova-text__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 28px;
	color: var(--nova-accent);
	font-size: 13px;
	font-weight: 800;
}

.nova-text__link span {
	transition: transform .2s ease;
}

.nova-text__link:hover span,
.nova-text__link:focus-visible span {
	transform: translateX(4px);
}

.nova-text__link--primary,
.nova-text__link--outline {
	padding: 14px 18px;
	border: 1px solid var(--nova-accent);
	border-radius: 5px;
}

.nova-text__link--primary {
	background: var(--nova-accent);
	color: #fff;
}

.nova-text__link--outline {
	background: transparent;
	color: var(--nova-accent);
}

.wp-block-nova-image .nova-image__media-link,
.wp-block-nova-image .nova-image__lightbox-link {
	display: block;
}
.wp-block-nova-image .nova-image__lightbox-link { cursor: zoom-in; }

.wp-block-nova-image .nova-image__content {
	box-sizing: border-box;
	max-width: var(--nova-image-text-max-width, none);
	margin-top: var(--nova-image-text-gap, 18px);
	padding: var(--nova-image-text-padding-top, 0) var(--nova-image-text-padding-right, 0) var(--nova-image-text-padding-bottom, 0) var(--nova-image-text-padding-left, 0);
	color: var(--nova-image-text-color, inherit);
	text-align: var(--nova-image-text-align, inherit);
}

.wp-block-nova-image .nova-image__content h3 {
	margin: 0 0 8px;
	font-size: var(--nova-image-text-title-size, clamp(22px, 3vw, 34px));
	line-height: var(--nova-image-text-title-line-height, 1.05);
	font-weight: var(--nova-image-copy-weight, inherit);
	letter-spacing: var(--nova-image-copy-tracking, -.045em);
	text-wrap: var(--nova-image-copy-wrap, normal);
	overflow-wrap: anywhere;
}

.wp-block-nova-image .nova-image__content p {
	max-width: var(--nova-image-copy-body-measure, 620px);
	margin: 0;
	color: var(--nova-image-text-color, #6e7180);
	font-size: var(--nova-image-text-body-size, 15px);
	line-height: var(--nova-image-text-body-line-height, 1.6);
	overflow-wrap: anywhere;
}

/* Optional copy art direction. Manual size controls remain higher priority. */
.wp-block-nova-image.nova-image--copy-editorial { --nova-image-copy-weight: 500; --nova-image-copy-tracking: -.035em; --nova-image-copy-body-measure: 50ch; }
.wp-block-nova-image.nova-image--copy-statement { --nova-image-copy-weight: 600; --nova-image-copy-tracking: -.05em; --nova-image-copy-wrap: balance; --nova-image-text-title-size: clamp(30px, 4vw, 58px); --nova-image-copy-body-measure: 42ch; }
.wp-block-nova-image.nova-image--copy-compact { --nova-image-copy-weight: 600; --nova-image-copy-tracking: -.02em; --nova-image-text-title-size: clamp(18px, 2.2vw, 28px); --nova-image-text-body-size: 14px; --nova-image-copy-body-measure: 54ch; }
.wp-block-nova-image.nova-image--copy-weight-400 { --nova-image-copy-weight: 400; }
.wp-block-nova-image.nova-image--copy-weight-500 { --nova-image-copy-weight: 500; }
.wp-block-nova-image.nova-image--copy-weight-600 { --nova-image-copy-weight: 600; }
.wp-block-nova-image.nova-image--copy-weight-700 { --nova-image-copy-weight: 700; }
.wp-block-nova-image.nova-image--copy-tracking-tight { --nova-image-copy-tracking: -.045em; }
.wp-block-nova-image.nova-image--copy-tracking-close { --nova-image-copy-tracking: -.025em; }
.wp-block-nova-image.nova-image--copy-tracking-normal { --nova-image-copy-tracking: 0em; }
.wp-block-nova-image.nova-image--copy-tracking-open { --nova-image-copy-tracking: .025em; }
.wp-block-nova-image.nova-image--copy-wrap-balance { --nova-image-copy-wrap: balance; }
.wp-block-nova-image.nova-image--copy-wrap-pretty { --nova-image-copy-wrap: pretty; }

.wp-block-nova-image .nova-image__link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
	color: var(--nova-image-text-color, var(--nova-accent));
	font-size: var(--nova-image-text-link-size, 13px);
	line-height: var(--nova-image-text-link-line-height, 1.3);
	font-weight: 800;
}

.wp-block-nova-image .nova-image__link span {
	transition: transform .2s ease;
}

.wp-block-nova-image .nova-image__link:hover span,
.wp-block-nova-image .nova-image__link:focus-visible span {
	transform: translateX(4px);
}
.wp-block-nova-image.nova-image--link-underline .nova-image__link { border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.wp-block-nova-image.nova-image--link-outline .nova-image__link { min-height: 44px; box-sizing: border-box; padding: 10px 16px; border: 1px solid currentColor; border-radius: 4px; font-weight: 600; }
.wp-block-nova-image.nova-image--link-outline .nova-image__link:hover { background: color-mix(in srgb, currentColor 10%, transparent); }
.wp-block-nova-image .nova-image__link:focus-visible { outline: 2px solid var(--nova-accent, #c83b32); outline-offset: 3px; }

.wp-block-nova-image.nova-image--text-overlay,
.wp-block-nova-image.nova-image--text-hover {
	position: relative;
}

.wp-block-nova-image.nova-image--text-overlay .nova-image__content,
.wp-block-nova-image.nova-image--text-hover .nova-image__content {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	margin: 0;
	padding: var(--nova-image-text-padding-top, 34px) var(--nova-image-text-padding-right, 34px) var(--nova-image-text-padding-bottom, 34px) var(--nova-image-text-padding-left, 34px);
	background: linear-gradient(180deg, transparent, rgba(12, 12, 18, .86));
	--nova-image-text-box-padding: 34px;
	color: var(--nova-image-text-color, #fff);
}

.wp-block-nova-image:is(.nova-image--text-overlay,.nova-image--text-hover).nova-image--scrim-soft:not([class*="nova-image--text-box-"]) .nova-image__content { background: linear-gradient(180deg, transparent, rgba(12, 12, 18, .52)); }
.wp-block-nova-image:is(.nova-image--text-overlay,.nova-image--text-hover).nova-image--scrim-strong:not([class*="nova-image--text-box-"]) .nova-image__content { background: linear-gradient(180deg, transparent, rgba(12, 12, 18, .94)); }
.wp-block-nova-image:is(.nova-image--text-overlay,.nova-image--text-hover).nova-image--scrim-none:not([class*="nova-image--text-box-"]) .nova-image__content { background: transparent; }
.wp-block-nova-image:is(.nova-image--text-overlay,.nova-image--text-hover).nova-image--scrim-soft:is(.nova-image--text-pos-top-left,.nova-image--text-pos-top-center,.nova-image--text-pos-top-right):not([class*="nova-image--text-box-"]) .nova-image__content { background: linear-gradient(0deg, transparent, rgba(12, 12, 18, .52)); }
.wp-block-nova-image:is(.nova-image--text-overlay,.nova-image--text-hover).nova-image--scrim-strong:is(.nova-image--text-pos-top-left,.nova-image--text-pos-top-center,.nova-image--text-pos-top-right):not([class*="nova-image--text-box-"]) .nova-image__content { background: linear-gradient(0deg, transparent, rgba(12, 12, 18, .94)); }

.wp-block-nova-image.nova-image--text-pos-top-left .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-top-center .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-top-right .nova-image__content {
	top: 0;
	bottom: auto;
}

.wp-block-nova-image.nova-image--text-pos-center-left .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-center .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-center-right .nova-image__content {
	top: 50%;
	bottom: auto;
	transform: translateY(-50%);
}

.wp-block-nova-image.nova-image--text-pos-top-center .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-center .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-bottom-center .nova-image__content {
	text-align: center;
}

.wp-block-nova-image.nova-image--text-pos-top-right .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-center-right .nova-image__content,
.wp-block-nova-image.nova-image--text-pos-bottom-right .nova-image__content {
	text-align: right;
}

.wp-block-nova-image.nova-image--text-overlay .nova-image__content h3,
.wp-block-nova-image.nova-image--text-hover .nova-image__content h3,
.wp-block-nova-image.nova-image--text-overlay .nova-image__content p,
.wp-block-nova-image.nova-image--text-hover .nova-image__content p {
	color: inherit;
}

.wp-block-nova-image.nova-image--text-overlay .nova-image__content p,
.wp-block-nova-image.nova-image--text-hover .nova-image__content p {
	color: var(--nova-image-text-color, rgba(255, 255, 255, .76));
}

.wp-block-nova-image.nova-image--text-overlay .nova-image__link,
.wp-block-nova-image.nova-image--text-hover .nova-image__link {
	color: var(--nova-image-text-color, #fff);
}

.wp-block-nova-image.nova-image--text-box-none .nova-image__content {
	background: transparent;
	border: 0;
	box-shadow: none;
}

.wp-block-nova-image.nova-image--text-box-solid .nova-image__content,
.wp-block-nova-image.nova-image--text-box-glass .nova-image__content,
.wp-block-nova-image.nova-image--text-box-outline .nova-image__content {
	box-sizing: border-box;
	padding: var(--nova-image-text-padding-top, var(--nova-image-text-box-padding, 20px)) var(--nova-image-text-padding-right, var(--nova-image-text-box-padding, 20px)) var(--nova-image-text-padding-bottom, var(--nova-image-text-box-padding, 20px)) var(--nova-image-text-padding-left, var(--nova-image-text-box-padding, 20px));
	border-radius: var(--nova-image-text-radius, 14px);
	box-shadow: var(--nova-image-text-shadow, none);
}

.wp-block-nova-image.nova-image--text-box-solid .nova-image__content {
	background: rgba(23, 21, 31, .82);
	background: color-mix(in srgb, var(--nova-image-text-box-color, #17151f) var(--nova-image-text-box-opacity, 82%), transparent);
	border: var(--nova-image-text-border-width, 0px) solid var(--nova-image-text-border-color, transparent);
}

.wp-block-nova-image.nova-image--text-box-glass .nova-image__content {
	background: rgba(23, 21, 31, .46);
	background: color-mix(in srgb, var(--nova-image-text-box-color, #17151f) var(--nova-image-text-box-opacity, 46%), transparent);
	border: var(--nova-image-text-border-width, 1px) solid var(--nova-image-text-border-color, rgba(255, 255, 255, .3));
	backdrop-filter: blur(14px);
}

.wp-block-nova-image.nova-image--text-box-outline .nova-image__content {
	background: transparent;
	border: var(--nova-image-text-border-width, 1px) solid var(--nova-image-text-border-color, currentColor);
}

.wp-block-nova-image.nova-image--text-hover .nova-image__content {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .25s ease, transform .25s ease;
}

.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-top-left .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-top-center .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-top-right .nova-image__content {
	transform: translateY(-12px);
}

.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center-left .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center-right .nova-image__content {
	transform: translateY(calc(-50% + 12px));
}

.wp-block-nova-image.nova-image--text-hover:hover .nova-image__content,
.wp-block-nova-image.nova-image--text-hover:focus-within .nova-image__content {
	opacity: 1;
	transform: translateY(0);
}

.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center-left:hover .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center:hover .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center-right:hover .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center-left:focus-within .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center:focus-within .nova-image__content,
.wp-block-nova-image.nova-image--text-hover.nova-image--text-pos-center-right:focus-within .nova-image__content {
	transform: translateY(-50%);
}

.wp-block-nova-image.nova-image--text-hidden .nova-image__content {
	display: none;
}


/* Responsive typography controls for the Nova text, image and link blocks. */
.wp-block-nova-text > .nova-eyebrow {
	font-size: var(--nova-text-desktop-eyebrow-size, var(--nova-text-eyebrow-size, 11px));
}

.wp-block-nova-text > :where(h1, h2, h3, h4, h5, h6, p:not(.nova-block__body)) {
	font-size: var(--nova-text-desktop-title-size, var(--nova-text-title-size, clamp(30px, 4vw, 54px)));
	line-height: var(--nova-text-desktop-title-line-height, var(--nova-text-title-line-height, .98));
	margin-bottom: var(--nova-text-desktop-title-gap, var(--nova-text-title-gap, 12px));
}

.wp-block-nova-text > .nova-block__body {
	font-size: var(--nova-text-desktop-body-size, var(--nova-text-body-size, 17px));
	line-height: var(--nova-text-desktop-body-line-height, var(--nova-text-body-line-height, 1.6));
}

.wp-block-nova-image .nova-image__content h3 {
	font-size: var(--nova-image-text-desktop-title-size, var(--nova-image-text-title-size, clamp(22px, 3vw, 34px)));
	line-height: var(--nova-image-text-desktop-title-line-height, var(--nova-image-text-title-line-height, 1.05));
}

.wp-block-nova-image .nova-image__content p {
	font-size: var(--nova-image-text-desktop-body-size, var(--nova-image-text-body-size, 15px));
	line-height: var(--nova-image-text-desktop-body-line-height, var(--nova-image-text-body-line-height, 1.6));
}

.wp-block-nova-image .nova-image__link {
	font-size: var(--nova-image-text-desktop-link-size, var(--nova-image-text-link-size, 13px));
	line-height: var(--nova-image-text-desktop-link-line-height, var(--nova-image-text-link-line-height, 1.3));
}

.wp-block-nova-button .nova-button {
	font-size: var(--nova-link-desktop-font-size, var(--nova-link-font-size, inherit));
	line-height: var(--nova-link-desktop-line-height, var(--nova-link-line-height, 1.2));
}

/* Per-device dimensions shared by every Nova component. */
.nova-responsive-has-desktop-width { width: var(--nova-responsive-desktop-width) !important; }
.nova-responsive-has-desktop-maxWidth { max-width: var(--nova-responsive-desktop-maxWidth) !important; }
.nova-responsive-has-desktop-minHeight { min-height: var(--nova-responsive-desktop-minHeight) !important; }
.nova-responsive-has-desktop-marginTop { margin-top: var(--nova-responsive-desktop-marginTop) !important; }
.nova-responsive-has-desktop-marginRight { margin-right: var(--nova-responsive-desktop-marginRight) !important; }
.nova-responsive-has-desktop-marginBottom { margin-bottom: var(--nova-responsive-desktop-marginBottom) !important; }
.nova-responsive-has-desktop-marginLeft { margin-left: var(--nova-responsive-desktop-marginLeft) !important; }
.nova-responsive-has-desktop-paddingTop { padding-top: var(--nova-responsive-desktop-paddingTop) !important; }
.nova-responsive-has-desktop-paddingRight { padding-right: var(--nova-responsive-desktop-paddingRight) !important; }
.nova-responsive-has-desktop-paddingBottom { padding-bottom: var(--nova-responsive-desktop-paddingBottom) !important; }
.nova-responsive-has-desktop-paddingLeft { padding-left: var(--nova-responsive-desktop-paddingLeft) !important; }

.nova-responsive-has-desktop-mediaHeight.wp-block-nova-image img,
.nova-responsive-has-desktop-mediaHeight.wp-block-nova-gallery .nova-gallery__item img,
.nova-responsive-has-desktop-mediaHeight .nova-post-card__media,
.nova-responsive-has-desktop-mediaHeight.wp-block-nova-video video {
	height: var(--nova-responsive-desktop-mediaHeight) !important;
}

.nova-responsive-has-desktop-mediaHeight.wp-block-nova-carousel,
.nova-responsive-has-desktop-mediaHeight.wp-block-nova-carousel .nova-carousel__viewport,
.nova-responsive-has-desktop-mediaHeight.wp-block-nova-carousel .nova-carousel__slide {
	height: var(--nova-responsive-desktop-mediaHeight) !important;
	min-height: var(--nova-responsive-desktop-mediaHeight) !important;
}

.nova-block-blurb,
.nova-block-pricing,
.nova-block-person {
	box-sizing: border-box;
	padding: 28px;
	border-radius: var(--nova-radius);
	background: var(--nova-surface);
	color: var(--nova-ink);
}

.nova-block-blurb--paper,
.nova-block-pricing--paper,
.nova-block-person--paper {
	background: var(--nova-paper);
}

.nova-block-blurb--dark,
.nova-block-pricing--dark,
.nova-block-person--dark {
	background: var(--nova-dark);
	color: #fff;
}

.nova-block-blurb--accent,
.nova-block-pricing--accent,
.nova-block-person--accent {
	background: var(--nova-accent);
	color: #fff;
}

.nova-block-blurb {
	display: flex;
	gap: 28px;
	align-items: center;
}

.nova-block-blurb--stack {
	display: block;
}

.nova-block-blurb--media-right {
	flex-direction: row-reverse;
}

.nova-blurb__media {
	position: relative;
	flex: 0 0 34%;
	min-width: 0;
}

.nova-block-blurb--stack .nova-blurb__media {
	margin-bottom: 24px;
}

.nova-blurb__media img {
	display: block;
	width: 100%;
	height: 220px;
	border-radius: calc(var(--nova-radius) * .72);
	object-fit: cover;
}

.nova-block-blurb--stack .nova-blurb__media img {
	height: clamp(180px, 28vw, 320px);
}

.nova-blurb__content h3,
.nova-block-person h3,
.nova-block-pricing h3 {
	margin: 6px 0 12px;
	font-size: clamp(26px, 3vw, 42px);
	line-height: .98;
	letter-spacing: -.06em;
}

.nova-block-blurb .nova-block__body,
.nova-block-person .nova-block__body,
.nova-block-pricing .nova-block__body {
	color: #6e7180;
}

.nova-block-blurb--dark .nova-block__body,
.nova-block-blurb--accent .nova-block__body,
.nova-block-person--dark .nova-block__body,
.nova-block-person--accent .nova-block__body,
.nova-block-pricing--dark .nova-block__body,
.nova-block-pricing--accent .nova-block__body {
	color: rgba(255,255,255,.72);
}

.nova-block-pricing {
	position: relative;
	max-width: 460px;
}

.nova-block-pricing.is-featured {
	box-shadow: 0 0 0 2px var(--nova-accent), 0 18px 48px rgba(23,21,31,.12);
}

.nova-block-pricing.is-featured:before {
	position: absolute;
	top: 16px;
	right: 18px;
	padding: 5px 9px;
	border-radius: 99px;
	background: var(--nova-accent);
	color: #fff;
	content: '推荐';
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
}

.nova-pricing__price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 28px 0;
}

.nova-pricing__price strong {
	font-size: clamp(42px, 6vw, 72px);
	letter-spacing: -.08em;
	line-height: .9;
}

.nova-pricing__price span {
	color: #777b8b;
	font-size: 13px;
}

.nova-block-pricing--dark .nova-pricing__price span,
.nova-block-pricing--accent .nova-pricing__price span {
	color: rgba(255,255,255,.68);
}

.nova-block-pricing ul {
	display: grid;
	gap: 10px;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}

.nova-block-pricing li {
	color: #626678;
	font-size: 14px;
}

.nova-block-pricing--dark li,
.nova-block-pricing--accent li {
	color: rgba(255,255,255,.82);
}

.nova-block-person {
	text-align: left;
}

.nova-block-person--align-center {
	text-align: center;
}

.nova-person__avatar {
	width: 116px;
	height: 116px;
	margin-bottom: 22px;
	overflow: hidden;
	border-radius: 50%;
	background: var(--nova-paper);
}

.nova-block-person--align-center .nova-person__avatar {
	margin-right: auto;
	margin-left: auto;
}

.nova-person__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nova-person__role {
	margin: 0;
	color: var(--nova-accent);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.nova-block-social-links {
	color: var(--nova-ink);
}

.nova-block-social-links--align-center {
	text-align: center;
}

.nova-block-social-links--align-right {
	text-align: right;
}

.nova-social-links__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	justify-content: flex-start;
	margin-top: 12px;
}

.nova-block-social-links--align-center .nova-social-links__list {
	justify-content: center;
}

.nova-block-social-links--align-right .nova-social-links__list {
	justify-content: flex-end;
}

.nova-social-links__list a {
	color: var(--nova-ink);
	font-size: 13px;
	font-weight: 700;
}

.nova-block-social-links--pill .nova-social-links__list a {
	padding: 10px 14px;
	border: 1px solid rgba(23,21,31,.14);
	border-radius: 99px;
	text-decoration: none;
}

.nova-block-social-links--pill .nova-social-links__list a:hover {
	border-color: var(--nova-accent);
	color: var(--nova-accent);
}

.nova-block-divider {
	box-sizing: border-box;
	padding-top: var(--nova-divider-gap, 24px);
	padding-bottom: var(--nova-divider-gap, 24px);
}

.nova-divider__line {
	width: var(--nova-divider-width, 100%);
	border-top: var(--nova-divider-thickness, 1px) var(--nova-divider-style, solid) var(--nova-divider-color, #d9dce8);
}

.nova-block-divider--center .nova-divider__line {
	margin-right: auto;
	margin-left: auto;
}

.nova-block-divider--right .nova-divider__line {
	margin-left: auto;
}

/* Posts / dynamic article cards. */
.nova-block-posts {
	box-sizing: border-box;
	padding: 28px;
	border-radius: var(--nova-radius);
	background: var(--nova-surface);
	color: var(--nova-ink);
}

.nova-block-posts--paper,
.nova-block-icon-list--paper,
.nova-block-counter--paper {
	background: var(--nova-paper);
}

.nova-block-posts--dark,
.nova-block-icon-list--dark,
.nova-block-counter--dark {
	background: var(--nova-dark);
	color: #fff;
}

.nova-block-posts--accent,
.nova-block-icon-list--accent,
.nova-block-counter--accent {
	background: var(--nova-accent);
	color: #fff;
}

.nova-posts__grid,
.nova-posts-editor-grid {
	display: grid;
	grid-template-columns: repeat(var(--nova-posts-columns, 3), minmax(0, 1fr));
	gap: 24px;
}

.nova-post-card {
	min-width: 0;
	overflow: hidden;
	border: 1px solid rgba(23,21,31,.1);
	border-radius: calc(var(--nova-radius) * .78);
	background: var(--nova-surface);
}

.nova-post-card__media {
	display: block;
	height: var(--nova-posts-image-height, 220px);
	overflow: hidden;
	background: var(--nova-paper);
}

.nova-post-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .45s ease;
}

.nova-post-card:hover .nova-post-card__media img {
	transform: scale(1.04);
}

.nova-post-card__media--placeholder {
	display: grid;
	place-items: center;
	color: #8b8f9f;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.nova-post-card__content {
	padding: 22px;
}

.nova-post-card__content time {
	color: #8b8f9f;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.nova-post-card__content h3 {
	margin: 10px 0;
	font-size: 24px;
	line-height: 1.05;
	letter-spacing: -.045em;
}

.nova-post-card__content h3 a {
	color: inherit;
	text-decoration: none;
}

.nova-post-card__content p {
	margin: 0 0 18px;
	color: #6e7180;
	font-size: 14px;
	line-height: 1.6;
}

.nova-block-posts--dark .nova-post-card,
.nova-block-posts--accent .nova-post-card {
	border-color: rgba(255,255,255,.16);
	background: rgba(255,255,255,.08);
}

.nova-block-posts--dark .nova-post-card__content p,
.nova-block-posts--accent .nova-post-card__content p {
	color: rgba(255,255,255,.7);
}

.nova-block-posts--dark .nova-post-card__content time,
.nova-block-posts--accent .nova-post-card__content time {
	color: rgba(255,255,255,.55);
}

.nova-posts__empty {
	grid-column: 1 / -1;
	margin: 0;
	color: #777b8b;
}

/* Counter and icon-led feature list. */
.nova-block-counter,
.nova-block-icon-list {
	box-sizing: border-box;
	padding: 32px;
	border-radius: var(--nova-radius);
}

.nova-block-counter--align-center {
	text-align: center;
}

.nova-block-counter--align-right {
	text-align: right;
}

.nova-counter__number {
	display: flex;
	align-items: baseline;
	gap: 4px;
	font-weight: 800;
	letter-spacing: -.08em;
}

.nova-counter__value {
	font-size: clamp(56px, 9vw, 112px);
	line-height: .85;
}

.nova-counter__prefix,
.nova-counter__suffix {
	color: var(--nova-accent);
	font-size: clamp(24px, 4vw, 44px);
}

.nova-block-counter h3 {
	margin: 22px 0 8px;
	font-size: 18px;
}

.nova-block-counter p {
	max-width: 440px;
	margin: 0;
	color: #6e7180;
	font-size: 14px;
	line-height: 1.6;
}

.nova-block-counter--align-center p {
	margin-right: auto;
	margin-left: auto;
}

.nova-block-counter--align-right p {
	margin-left: auto;
}

.nova-block-counter--dark p,
.nova-block-counter--accent p {
	color: rgba(255,255,255,.7);
}

.nova-block-icon-list {
	background: var(--nova-surface);
}

.nova-block-icon-list h2 {
	max-width: 720px;
	margin: 8px 0 30px;
	font-size: clamp(34px, 5vw, 72px);
	line-height: .95;
	letter-spacing: -.07em;
}

.nova-icon-list__grid {
	display: grid;
	grid-template-columns: repeat(var(--nova-icon-list-columns, 3), minmax(0, 1fr));
	gap: 24px;
}

.nova-icon-list__item {
	min-width: 0;
	padding-top: 20px;
	border-top: 1px solid rgba(23,21,31,.16);
}

.nova-icon-list__icon {
	display: inline-grid;
	width: 42px;
	height: 42px;
	margin-bottom: 20px;
	place-items: center;
	border-radius: 50%;
	background: var(--nova-accent);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
}

.nova-icon-list__item h3 {
	margin: 0 0 8px;
	font-size: 22px;
	letter-spacing: -.04em;
}

.nova-icon-list__item p {
	margin: 0;
	color: #6e7180;
	font-size: 14px;
	line-height: 1.6;
}

.nova-block-icon-list--dark .nova-icon-list__item,
.nova-block-icon-list--accent .nova-icon-list__item {
	border-top-color: rgba(255,255,255,.25);
}

.nova-block-icon-list--dark .nova-icon-list__item p,
.nova-block-icon-list--accent .nova-icon-list__item p {
	color: rgba(255,255,255,.7);
}

/* Gallery interaction controls. */
.nova-block-gallery .nova-gallery__item { overflow: hidden; }

/* A Columns/Group setting drives all child images; explicit image effects win. */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
	:where(.nova-block-columns,.nova-block-group):is(.nova-image-set--hover-zoom,.nova-image-set--hover-pan) .wp-block-nova-image:not([class*="nova-image--hover-"]) { overflow: hidden; }
	:where(.nova-block-columns,.nova-block-group):is(.nova-image-set--hover-zoom,.nova-image-set--hover-pan,.nova-image-set--hover-colorize,.nova-image-set--hover-brighten) .wp-block-nova-image:not([class*="nova-image--hover-"]) img,
	.nova-block-gallery:is(.nova-block-gallery--hover-zoom,.nova-block-gallery--hover-pan,.nova-block-gallery--hover-colorize,.nova-block-gallery--hover-brighten) .nova-gallery__item img { transition: transform .55s cubic-bezier(.2,.75,.25,1), filter .5s ease; }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-zoom .wp-block-nova-image:not([class*="nova-image--hover-"]):is(:hover,:focus-within) img,
	.nova-block-gallery--hover-zoom .nova-gallery__item:is(:hover,:focus-within) img { transform: scale(1.09); }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-pan .wp-block-nova-image:not([class*="nova-image--hover-"]):is(:hover,:focus-within) img,
	.nova-block-gallery--hover-pan .nova-gallery__item:is(:hover,:focus-within) img { transform: scale(1.14) translateX(-3%); }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-colorize .wp-block-nova-image:not([class*="nova-image--hover-"]) img,
	.nova-block-gallery--hover-colorize .nova-gallery__item img { filter: grayscale(1); }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-colorize .wp-block-nova-image:not([class*="nova-image--hover-"]):is(:hover,:focus-within) img,
	.nova-block-gallery--hover-colorize .nova-gallery__item:is(:hover,:focus-within) img { filter: none; }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-brighten .wp-block-nova-image:not([class*="nova-image--hover-"]):is(:hover,:focus-within) img,
	.nova-block-gallery--hover-brighten .nova-gallery__item:is(:hover,:focus-within) img { filter: brightness(1.17) contrast(1.04); }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-lift .wp-block-nova-image:not([class*="nova-image--hover-"]),
	.nova-block-gallery--hover-lift .nova-gallery__item { transition: transform .42s cubic-bezier(.2,.75,.25,1); }
	:where(.nova-block-columns,.nova-block-group).nova-image-set--hover-lift .wp-block-nova-image:not([class*="nova-image--hover-"]):is(:hover,:focus-within),
	.nova-block-gallery--hover-lift .nova-gallery__item:is(:hover,:focus-within) { transform: translateY(-9px); }
}

.nova-block-gallery .nova-gallery__item > a {
	display: block;
	color: inherit;
}

.nova-block-gallery--lightbox .nova-gallery__item > a {
	cursor: zoom-in;
}

.nova-block-gallery .nova-gallery__item figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	padding: 10px 12px;
	background: linear-gradient(transparent, rgba(23,21,31,.78));
	color: #fff;
	font-size: 12px;
}

/* Accordion variants. */
.nova-block-accordion {
	--nova-accordion-accent: var(--nova-accent);
}

.nova-block-accordion details {
	margin-bottom: var(--nova-accordion-gap, 0);
}

.nova-block-accordion--card details {
	margin-bottom: var(--nova-accordion-gap, 12px);
	padding: 0 20px;
	border: 1px solid rgba(23,21,31,.12);
	border-radius: calc(var(--nova-radius) * .72);
	background: var(--nova-surface);
}

.nova-block-accordion--card details:last-child {
	border-bottom: 1px solid rgba(23,21,31,.12);
}

.nova-block-accordion--card summary {
	padding-right: 30px;
}

.nova-block-accordion--card .nova-accordion__answer {
	padding-right: 30px;
}

.nova-block-accordion--icon-chevron summary:after {
	content: '⌄';
	font-size: 18px;
}

.nova-block-accordion--icon-chevron details[open] summary:after {
	content: '⌃';
}

.nova-block-accordion summary:after {
	color: var(--nova-accordion-accent);
}

/* Carousel controls. This stylesheet loads after the base theme CSS. */
.wp-block-nova-carousel .nova-carousel__shade {
	background: linear-gradient(90deg, rgba(12,12,18,var(--nova-carousel-shade-opacity,.88)), rgba(12,12,18,.38) 58%, rgba(12,12,18,.12));
}

/* Native, dependency-free image lightbox. */
.nova-lightbox {
	position: fixed;
	z-index: 100000;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 40px;
	background: rgba(12,12,18,.92);
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease, visibility .2s ease;
}

.nova-lightbox.is-open {
	opacity: 1;
	visibility: visible;
}

.nova-lightbox__figure {
	max-width: min(92vw, calc(100vw - 32px), 1600px);
	margin: 0;
	text-align: center;
}

.nova-lightbox img {
	display: block;
	max-width: 100%;
	max-height: min(78vh, calc(100vh - 132px));
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 24px 80px rgba(0,0,0,.35);
}

.nova-lightbox figcaption {
	max-width: 68ch;
	margin: 16px auto 0;
	color: rgba(255,255,255,.82);
	font-size: 14px;
	line-height: 1.5;
}

.nova-lightbox figcaption[hidden] { display: none; }

.nova-lightbox__close {
	position: absolute;
	top: 18px;
	right: 24px;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255,255,255,.4);
	border-radius: 50%;
	background: transparent;
	color: #fff;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

.nova-lightbox__close:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.nova-lightbox { transition: none; }
}

/* Nova Loop Builder: query-driven content with shared card and responsive controls. */
.nova-block-loop {
	width: 100%;
	padding: 84px 0;
	background: var(--nova-surface);
}
.nova-block-loop--paper { background: var(--nova-paper); }
.nova-block-loop--dark { background: var(--nova-dark); color: #fff; }
.nova-block-loop--accent { background: var(--nova-accent); color: #fff; }
.nova-loop__grid {
	display: grid;
	grid-template-columns: repeat(var(--nova-loop-columns, 3), minmax(0, 1fr));
	gap: 16px;
	width: min(calc(100% - 64px), var(--nova-max));
	margin-right: auto;
	margin-left: auto;
}
.nova-loop-card {
	position: relative;
	min-width: 0;
	overflow: hidden;
	border: 1px solid #e3e5ee;
	border-radius: var(--nova-radius);
	background: var(--nova-surface);
	color: var(--nova-ink);
	transition: transform .25s ease, box-shadow .25s ease;
}
.nova-block-loop--dark .nova-loop-card,
.nova-block-loop--accent .nova-loop-card {
	border-color: rgba(255,255,255,.16);
	background: rgba(255,255,255,.08);
	color: #fff;
}
.nova-block-loop--style-minimal .nova-loop-card { border: 0; border-radius: 0; background: transparent; }
.nova-loop-card__media { position: relative; display: block; height: var(--nova-loop-image-height, 240px); overflow: hidden; background: var(--nova-paper); }
.nova-loop-card__media img,
.nova-loop-card__media > span { display: block; width: 100%; height: 100%; object-fit: cover; }
.nova-loop-card__media > span { background: linear-gradient(135deg, rgba(109,93,252,.2), rgba(23,21,31,.86)); }
.nova-loop-card__media-overlay { position: absolute !important; inset: 0; background: linear-gradient(180deg, transparent 34%, rgba(23,21,31,.78)); pointer-events: none; }
.nova-loop-card__content { padding: 22px; }
.nova-block-loop--style-minimal .nova-loop-card__content { padding: 22px 0 0; }
.nova-loop-card__terms,
.nova-loop-card__meta { margin: 0 0 10px; color: #85899a; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.nova-loop-card__terms { color: var(--nova-accent); }
.nova-loop-card h3 { margin: 0; font-size: clamp(22px, 3vw, 34px); line-height: 1.02; letter-spacing: -.055em; }
.nova-loop-card h3 a { color: inherit; }
.nova-loop-card__price { margin: 14px 0 0; color: inherit; font-size: 22px; font-weight: 800; line-height: 1.1; }
.nova-loop-card__price .price { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.nova-loop-card__price del { color: #85899a; font-size: 13px; font-weight: 600; }
.nova-loop-card__price ins { text-decoration: none; }
.nova-loop-card__stock { margin: 9px 0 0; color: #4b9b72; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nova-loop-card__add-to-cart { margin-top: 18px; }
.nova-loop-card__excerpt { margin: 16px 0 0; color: #6e7180; font-size: 14px; }
.nova-block-loop--dark .nova-loop-card__excerpt,
.nova-block-loop--accent .nova-loop-card__excerpt { color: rgba(255,255,255,.68); }
.nova-loop-card .nova-link { margin-top: 20px; }
.nova-loop__empty { grid-column: 1 / -1; margin: 0; color: #777b8b; }
.nova-loop-card--custom { padding: 22px; }
.nova-loop-card--custom > .nova-loop-field,
.nova-loop-card--custom > .nova-layout-customizable { margin-bottom: 16px; }
.nova-loop-card--custom > :last-child { margin-bottom: 0; }
.nova-loop-field__text { margin: 0; color: #6e7180; font-size: 14px; }
.nova-loop-field--terms .nova-loop-field__text,
.nova-loop-field--date .nova-loop-field__text,
.nova-loop-field--author .nova-loop-field__text,
.nova-loop-field--meta .nova-loop-field__text { color: #85899a; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.nova-loop-field--title .nova-loop-field__text { color: inherit; font-size: 24px; font-weight: 800; line-height: 1.08; letter-spacing: -.04em; }
.nova-loop-field--product_price .nova-loop-field__text,
.nova-loop-field--product_sale_price .nova-loop-field__text { color: inherit; font-size: 22px; font-weight: 800; line-height: 1.1; }
.nova-loop-field--product_price .price,
.nova-loop-field--product_sale_price .price { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: baseline; }
.nova-loop-field--product_price .price del { color: #85899a; font-size: 13px; font-weight: 600; }
.nova-loop-field--product_price .price ins { text-decoration: none; }
.nova-loop-field--product_regular_price .nova-loop-field__text { color: #85899a; font-size: 14px; text-decoration: line-through; }
.nova-loop-field--product_sku .nova-loop-field__text,
.nova-loop-field--product_stock .nova-loop-field__text { color: #85899a; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.nova-loop-field--product_rating .nova-loop-field__text { color: #f0a500; font-size: 16px; }
.nova-loop-field--product_rating .star-rating { margin: 0; }
.nova-loop-field--product_short_description .nova-loop-field__text { color: #6e7180; }
.nova-loop-field__image { position: relative; display: block; height: var(--nova-loop-field-image-height, 220px); overflow: hidden; background: var(--nova-paper); }
.nova-loop-field__image img,
.nova-loop-field__image > span { display: block; width: 100%; height: 100%; object-fit: var(--nova-loop-field-image-fit, cover); }
.nova-loop-field__image > span { background: linear-gradient(135deg, rgba(109,93,252,.2), rgba(23,21,31,.86)); }
.nova-loop-field h2,
.nova-loop-field h3,
.nova-loop-field h4 { margin: 0; color: inherit; font-size: 26px; line-height: 1.05; letter-spacing: -.045em; }
.nova-loop-field__link { margin-top: 0 !important; }
.nova-loop-field__button { display: inline-flex; box-sizing: border-box; align-items: center; gap: 10px; padding: var(--nova-link-padding-y, 14px) var(--nova-link-padding-x, 18px); border: 1px solid var(--nova-link-border-color, var(--nova-accent)); border-radius: var(--nova-link-radius, 5px); background: var(--nova-link-bg, var(--nova-accent)); color: var(--nova-link-color, #fff); font-size: var(--nova-link-font-size, inherit); line-height: var(--nova-link-line-height, 1.2); text-decoration: none; }
.nova-loop-field__button:hover,
.nova-loop-field__button:focus-visible { background: var(--nova-link-hover-bg, #5145ce); color: var(--nova-link-hover-color, #fff); }
.nova-loop-field__button.nova-button--outline { background: transparent; color: var(--nova-accent); }
.nova-loop-field__button.nova-button--text { padding-right: 0; padding-left: 0; border-color: transparent; background: transparent; color: var(--nova-accent); }
.nova-loop__pagination { display: flex; justify-content: center; width: min(calc(100% - 64px), var(--nova-max)); margin: 34px auto 0; }
.nova-loop__pagination ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nova-loop__pagination a,
.nova-loop__pagination span { display: inline-flex; min-width: 38px; min-height: 38px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid #dfe2ec; border-radius: 999px; color: var(--nova-ink); font-size: 12px; font-weight: 800; text-decoration: none; }
.nova-block-loop--dark .nova-loop__pagination a,
.nova-block-loop--dark .nova-loop__pagination span,
.nova-block-loop--accent .nova-loop__pagination a,
.nova-block-loop--accent .nova-loop__pagination span { border-color: rgba(255,255,255,.28); color: #fff; }
.nova-loop__pagination .current { background: var(--nova-accent); border-color: var(--nova-accent); color: #fff; }
.nova-loop__next { gap: 10px; background: var(--nova-accent); border-color: var(--nova-accent) !important; color: #fff !important; }
.nova-loop__load-more { display: inline-flex; min-height: 42px; align-items: center; gap: 10px; padding: 0 18px; border: 1px solid var(--nova-accent); border-radius: 999px; background: var(--nova-accent); color: #fff; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.nova-loop__load-more:disabled { opacity: .62; cursor: wait; }
.nova-block-loop.nova-hover--lift .nova-loop-card:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(23,21,31,.12); }
.nova-block-loop.nova-hover--zoom .nova-loop-card__media img { transition: transform .35s ease; }
.nova-block-loop.nova-hover--zoom .nova-loop-card:hover .nova-loop-card__media img { transform: scale(1.04); }

/* Responsive safety net shared by every Nova component. Keep intrinsic content
 * from forcing the page wider than its viewport or a nested grid cell. */
[class*="wp-block-nova-"],
[class*="nova-block-"] {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

[class*="wp-block-nova-"] > *,
[class*="nova-block-"] > * {
	min-width: 0;
}

:where([class*="wp-block-nova-"], [class*="nova-block-"]) :where(img, video, iframe, svg) {
	max-width: 100%;
}

:where([class*="wp-block-nova-"], [class*="nova-block-"]) :where(p, h1, h2, h3, h4, h5, h6, li, a, summary, label) {
	min-width: 0;
	overflow-wrap: anywhere;
}

.nova-block-blurb,
.nova-block-person,
.nova-block-pricing,
.nova-block-posts,
.nova-block-counter,
.nova-block-icon-list,
.nova-block-stats,
.nova-block-testimonials,
.nova-block-tabs,
.nova-block-loop,
.nova-contact-form-block {
	width: 100%;
	min-width: 0;
}

.nova-gallery__grid,
.nova-stats-grid,
.nova-testimonials-grid,
.nova-icon-list__grid,
.nova-posts__grid,
.nova-loop__grid,
.nova-posts-editor-grid,
.nova-loop-editor-grid {
	min-width: 0;
}

.nova-post-card__media,
.nova-loop-card__media,
.nova-loop-field__image {
	max-width: 100%;
}

.nova-tabs__nav {
	max-width: 100%;
	overscroll-behavior-inline: contain;
	scrollbar-width: thin;
}

.nova-tab__button {
	max-width: 100%;
	white-space: normal;
}

.nova-contact-form-block {
	padding: clamp(20px, 4vw, 42px);
}

.nova-contact-form,
.nova-contact-form label,
.nova-contact-form input,
.nova-contact-form textarea,
.nova-contact-form select {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.nova-block-accordion summary,
.nova-accordion__answer,
.nova-testimonial blockquote,
.nova-post-card__content,
.nova-loop-card__content {
	min-width: 0;
	overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
	.wp-block-nova-section {
		min-width: 0;
	}

	.wp-block-nova-group--grid:not(.nova-block-group--no-stack) {
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	}

	.nova-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nova-stats-grid,
	.nova-testimonials-grid,
	.nova-posts__grid,
	.nova-posts-editor-grid,
	.nova-icon-list__grid,
	.nova-loop__grid,
	.nova-loop-editor-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.nova-testimonial,
	.nova-stat,
	.nova-post-card__content,
	.nova-loop-card__content {
		padding: clamp(18px, 3vw, 30px);
	}
}

@media (max-width: 767px) {
	.wp-block-nova-section {
		padding-right: 0;
		padding-left: 0;
	}

	.wp-block-nova-section > *,
	.wp-block-nova-section--width-narrow > * {
		max-width: calc(100% - 32px);
	}

	.wp-block-nova-section--width-full > * {
		max-width: 100%;
	}

	.wp-block-nova-section > .wp-block-nova-carousel,
	.wp-block-nova-section--width-full > .wp-block-nova-carousel {
		max-width: 100%;
		margin-right: 0;
		margin-left: 0;
	}

	.wp-block-nova-text {
		padding-top: clamp(22px, 5vw, 38px);
		padding-bottom: clamp(22px, 5vw, 38px);
	}

	.wp-block-nova-cta {
		gap: 18px;
		padding: clamp(22px, 6vw, 34px);
	}

	.wp-block-nova-columns:not(.nova-block-columns--no-stack) {
		grid-template-columns: minmax(0, 1fr);
	}

	.wp-block-nova-columns--no-stack {
		grid-auto-flow: column;
		grid-auto-columns: minmax(82vw, 1fr);
		grid-template-columns: none;
		max-width: 100%;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
	}

	.wp-block-nova-group:not(.nova-block-group--no-stack).wp-block-nova-group--flex {
		flex-direction: column;
	}

	.wp-block-nova-group:not(.nova-block-group--no-stack).wp-block-nova-group--grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.wp-block-nova-group.nova-block-group--no-stack {
		max-width: 100%;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
	}

	.wp-block-nova-image .nova-image__content {
		max-width: 100%;
	}

	.nova-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: min(var(--nova-gallery-gap, 16px), 12px);
	}

	.nova-post-card__media,
	.nova-loop-card__media,
	.nova-loop-field__image {
		height: clamp(180px, 56vw, 300px);
	}

	.nova-stats-grid,
	.nova-testimonials-grid,
	.nova-posts__grid,
	.nova-posts-editor-grid,
	.nova-icon-list__grid,
	.nova-loop__grid,
	.nova-loop-editor-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.nova-block-stats,
	.nova-block-testimonials,
	.nova-block-tabs,
	.nova-block-loop {
		padding-top: clamp(48px, 14vw, 70px);
		padding-bottom: clamp(48px, 14vw, 70px);
	}

	.nova-block-stats__heading,
	.nova-stats-grid,
	.nova-block-testimonials__heading,
	.nova-testimonials-grid,
	.nova-tabs__nav,
	.nova-tabs__panels,
	.nova-loop__grid,
	.nova-loop__pagination {
		width: min(calc(100% - 32px), var(--nova-max, 1240px));
	}

	.nova-testimonial,
	.nova-stat,
	.nova-post-card__content,
	.nova-loop-card__content {
		padding: 18px;
	}

	.nova-testimonial__person {
		margin-top: 28px;
	}

	.nova-tabs__nav {
		width: calc(100% - 32px);
		margin-right: auto;
		margin-left: auto;
	}

	.nova-tab__button {
		flex: 0 0 auto;
		padding: 12px 14px;
	}

	.nova-tabs__panels {
		min-height: 0;
		padding: 30px 0;
	}

	.nova-block-blurb:not(.nova-block-blurb--stack),
	.nova-block-blurb--media-right {
		display: block;
	}

	.nova-block-blurb:not(.nova-block-blurb--stack) .nova-blurb__media,
	.nova-block-blurb--media-right .nova-blurb__media {
		width: 100%;
		margin-bottom: 20px;
	}

	.nova-blurb__media img {
		height: clamp(180px, 55vw, 320px);
	}

	.nova-block-accordion--card details {
		padding-right: 14px;
		padding-left: 14px;
	}

	.nova-block-accordion summary {
		padding-right: 24px;
		font-size: clamp(16px, 4.5vw, 20px);
	}

	.nova-accordion__answer,
	.nova-block-accordion--card .nova-accordion__answer {
		padding-right: 0;
	}

	.nova-contact-form-block {
		padding: clamp(20px, 6vw, 28px);
	}

	.nova-block-counter,
	.nova-block-icon-list,
	.nova-block-posts {
		padding: clamp(18px, 5vw, 24px);
	}

	.nova-block-icon-list h2,
	.nova-block-counter .nova-counter__value {
		font-size: clamp(30px, 12vw, 56px);
	}

	.nova-contact-form input,
	.nova-contact-form textarea,
	.nova-contact-form select {
		font-size: max(16px, 1em);
	}
}

@media (max-width: 420px) {
	.nova-gallery__grid {
		gap: 8px;
	}

	.nova-block-contact-form,
	.nova-contact-form-block {
		border-radius: clamp(10px, 4vw, var(--nova-radius, 18px));
	}

	.nova-lightbox {
		padding: 16px;
	}
}
