/* Keep jQuery :visible true for applicable fields; Addify owns display/required. */
.ov-js .ov-product-overview[data-assembly-state="pending"] form.cart {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  visibility: hidden;
  pointer-events: none;
}
.ov-js
  .ov-product-overview[data-assembly-state="pending"]
  .ov-product-purchase-title {
  display: none;
}
.ov-js
  .ov-product-overview[data-assembly-state="pending"]
  #ov-product-assembly-open {
  pointer-events: none;
}
.ov-js .ov-product-overview[data-assembly-state="pending"] form.cart * {
  transition: none !important;
}
:is(
  .ov-assembly-navigation,
  .ov-assembly-summary,
  .ov-assembly-heading,
  .ov-assembly-actions,
  .ov-assembly-pupilometer
)[hidden] {
  display: none !important;
}
.ov-assembly-pupilometer {
  min-width: 0;
  width: 100%;
}
.ov-assembly-pupilometer iframe {
  display: block;
  width: 100%;
  height: 320px;
  border: 0;
}
.ov-assembly-pupilometer [hidden],
.ov-assembly-actions button[hidden] {
  display: none !important;
}
.ov-product-overview
  .ov-assembly-form
  .ov-assembly-pupilometer
  .ov-assembly-choice {
  width: 100%;
  align-items: flex-start;
  text-align: left;
  font-family: var(--font-ui);
  font-weight: var(--font-weight-regular);
}
.ov-product-overview
  .ov-assembly-form
  .ov-assembly-pupilometer
  .ov-assembly-choice:is(:hover, :focus-visible) {
  border-color: var(--color-border-focus);
  outline-color: var(--color-border-focus);
}
.ov-assembly-pupilometer .ov-text-body {
  font-family: var(--font-ui);
}
.ov-assembly-pupilometer [data-pupil-view="manual"] {
  display: grid;
  gap: var(--spacing-24);
}
.ov-assembly-pupilometer__pair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-16);
}
@media (max-width: 767px) {
  .ov-assembly-pupilometer__pair {
    grid-template-columns: 1fr;
  }
}
.ov-assembly-form .ov-assembly-parked {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%);
  pointer-events: none;
}
.ov-product-overview:has(.ov-assembly-form) .ov-product-purchase-title {
  display: none;
}
.ov-assembly-form br.ov-assembly-parked {
  display: none;
}
.ov-assembly-error {
  margin-block: 0 var(--spacing-24);
  color: var(--color-feedback-error-ink);
}
.ov-assembly-active
  :is(
    .storefront-breadcrumb,
    .woocommerce-breadcrumb:not([data-assembly-navigation])
  ) {
  display: none;
}
.ov-assembly-active
  div.product
  > :not(
    .ov-product-overview,
    .ov-assembly-navigation,
    .woocommerce-notices-wrapper
  ) {
  display: none;
}
.ov-assembly-active .ov-product-overview > .ov-product-media,
.ov-assembly-active .ov-product-overview .summary > :not(form.cart),
.ov-assembly-active .ov-assembly-form > .variations,
.ov-assembly-active .ov-assembly-form .woocommerce-variation {
  display: none !important;
}
.ov-assembly-active .ov-product-overview {
  grid-template-columns: minmax(240px, 350px) minmax(0, 1fr);
  gap: var(--spacing-32);
  margin-block: var(--spacing-24) var(--spacing-64);
}
.ov-assembly-active .woocommerce-breadcrumb.ov-assembly-navigation {
  justify-content: flex-start;
}
.woocommerce-breadcrumb.ov-assembly-navigation .ov-link {
  color: var(--color-text-link);
  font-size: inherit;
  line-height: inherit;
  text-decoration: none;
}
.ov-assembly-navigation__mobile,
.ov-assembly-navigation__product > .ov-icon,
.ov-assembly-summary__mobile {
  display: none;
}
.ov-assembly-summary {
  padding: var(--spacing-24);
  border-radius: var(--radius-24);
  background: var(--color-bg-page);
  font-family: var(--font-ui);
}
.ov-assembly-summary__image {
  position: relative;
  aspect-ratio: 4 / 3;
  margin-bottom: var(--spacing-24);
}
.ov-assembly-summary__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.ov-assembly-summary h2 {
  margin: 0 0 var(--spacing-16);
  font-weight: var(--font-weight-regular);
}
.ov-assembly-summary__attributes {
  margin-bottom: var(--spacing-16);
  color: var(--color-text-muted);
}
.ov-assembly-summary__attributes:empty {
  display: none;
}
.ov-assembly-summary dl {
  margin: 0;
  font-size: var(--font-size-body-md);
  line-height: var(--line-height-body-md);
}
.ov-assembly-summary dl > div {
  display: flex;
  justify-content: space-between;
  gap: var(--spacing-16);
  margin-top: var(--spacing-12);
}
.ov-assembly-summary dt {
  font-weight: var(--font-weight-regular);
}
.ov-assembly-summary dd {
  margin: 0;
  text-align: end;
}
.ov-assembly-combo {
  container-type: inline-size;
  margin-bottom: var(--spacing-24);
}
.ov-assembly-combo > p {
  margin: 0 0 var(--spacing-8);
}
.ov-assembly-combo__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-8);
  list-style: none;
  margin: 0;
  padding: 0;
}
.ov-assembly-combo__items > li {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  min-width: 0;
  padding: var(--spacing-12);
  border: 1px dashed var(--color-border-control);
  border-radius: var(--radius-16);
  color: var(--color-text-muted);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
}
.ov-assembly-combo__items > [aria-current="true"] {
  border: var(--focus-width) solid var(--color-border-focus);
  color: var(--color-text-primary);
}
.ov-assembly-pair-review {
  font-family: var(--font-ui);
}
.ov-assembly-pair-review :is(.ov-text-body, .ov-text-h4) {
  font-family: var(--font-ui);
}
@container (max-width: 240px) {
  .ov-assembly-combo__items {
    grid-template-columns: minmax(0, 1fr);
  }
}
.ov-assembly-pair-review > p:first-child {
  margin: 0 0 var(--spacing-24);
  color: var(--color-text-muted);
}
.ov-assembly-pair-review__items {
  display: grid;
  gap: var(--spacing-12);
  margin: 0;
}
.ov-assembly-pair-review__item dt {
  padding: var(--spacing-16) var(--spacing-16) var(--spacing-8);
  border-radius: var(--radius-16) var(--radius-16) 0 0;
  background: var(--color-bg-page);
  font-weight: var(--font-weight-regular);
}
.ov-assembly-pair-review__item dd {
  margin: 0;
}
.ov-assembly-pair-review__item [data-assembly-review] {
  padding: 0 var(--spacing-16) var(--spacing-16);
  border-radius: 0 0 var(--radius-16) var(--radius-16);
  background: var(--color-bg-page);
  color: var(--color-text-muted);
  overflow-wrap: anywhere;
}
.ov-assembly-pair-review__edit .ov-link {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-12);
  margin: var(--spacing-12) 0 var(--spacing-24);
}
.ov-assembly-pair-review__total {
  margin: var(--spacing-32) 0;
  padding-top: var(--spacing-16);
  border-top: 1px solid var(--color-border-control);
  text-align: end;
}
.ov-assembly-summary__total {
  font-size: var(--font-size-h4);
  line-height: var(--line-height-h4);
}
.ov-assembly-heading .ov-steps {
  margin-bottom: var(--spacing-24);
  position: relative;
  isolation: isolate;
}
.ov-assembly-marker {
  position: absolute;
  inset: 0 auto auto 0;
  z-index: 0;
  border-radius: var(--radius-16);
  background: var(--color-bg-action-primary);
  pointer-events: none;
  transform: translate(var(--marker-x, 0px), var(--marker-y, 0px));
  transition: transform 0.3s ease-out;
}
.ov-assembly-heading .ov-steps.has-marker .ov-steps__item[aria-current="step"] {
  background: transparent;
}
.ov-assembly-heading .ov-steps__item {
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-8);
  min-height: calc(2 * var(--spacing-48));
  padding: var(--spacing-16);
  color: var(--color-text-primary);
}
.ov-assembly-heading .ov-steps__number {
  position: relative;
  z-index: 1;
  width: auto;
  font-size: var(--font-size-h4);
  line-height: var(--line-height-h4);
}
.ov-assembly-heading .ov-steps__label {
  position: relative;
  z-index: 1;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}
.ov-assembly-heading h1 {
  margin-bottom: var(--spacing-24);
}
.ov-assembly-active .ov-product-overview .ov-assembly-current {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}
.ov-assembly-active
  .ov-assembly-card-group
  :is([class^="af_addon_front_field_title_div_"], br) {
  display: none;
}
/* Prepare parked cards before opening; only selection colors should animate. */
.ov-product-overview .ov-assembly-form .ov-assembly-choice {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-8);
  margin-bottom: var(--spacing-16);
  padding: var(--spacing-16);
  border: 1px solid var(--color-bg-subtle);
  outline: var(--focus-width) solid transparent;
  outline-offset: calc(-1 * var(--focus-width));
  border-radius: var(--radius-16);
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  font-size: var(--font-size-field);
  line-height: var(--line-height-field);
  transition:
    border-color 0.3s ease,
    outline-color 0.3s ease;
}
.ov-product-overview
  .ov-assembly-form
  .ov-assembly-choice
  :is(input[type="radio"], input[type="checkbox"]) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.ov-assembly-form .ov-assembly-choice:has(:checked) {
  border-color: var(--color-border-focus);
  outline-color: var(--color-border-focus);
}
.ov-assembly-form .ov-assembly-choice:has(:focus-visible) {
  outline: var(--focus-width) solid var(--color-border-focus);
  outline-offset: var(--focus-offset);
}
.ov-assembly-form .ov-assembly-choice:has(:disabled) {
  opacity: 0.5;
  cursor: not-allowed;
}
.ov-assembly-choice__help {
  display: none;
}
.ov-assembly-choice__icons {
  display: flex;
  align-items: center;
  gap: var(--spacing-12);
  min-height: var(--spacing-24);
}
.ov-assembly-choice__icons img {
  width: 21px;
  height: 6px;
  flex: none;
  border-radius: 0;
}
.ov-assembly-form .ov-assembly-choice__help {
  display: block;
  color: var(--color-text-muted);
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}
.ov-assembly-options-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-16);
}
.ov-product-overview
  .ov-assembly-form
  .ov-assembly-options-grid
  .ov-assembly-choice {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  font-family: var(--font-ui);
}
.ov-assembly-options-grid > br {
  display: none;
}
@media (max-width: 767px) {
  .ov-assembly-options-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ov-assembly-form:is([data-assembly-step="3"], [data-assembly-step="4"])
    .ov-assembly-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}
.ov-assembly-form[data-assembly-step="1"] .af_addon_field_show {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-16);
}
.ov-assembly-form[data-assembly-step="1"] .ov-assembly-current:not(.ov-field) {
  grid-column: 1 / -1;
}
.ov-assembly-form .ov-assembly-prescriptions,
.ov-assembly-form .ov-assembly-recipe-loading,
.ov-assembly-form .ov-assembly-recipe-account {
  grid-column: 1 / -1;
  min-width: 0;
}
.ov-assembly-prescriptions {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-ui);
}
.ov-assembly-form
  :is(
    .ov-assembly-prescriptions,
    .ov-assembly-recipe-account,
    .ov-assembly-recipe-loading
  )[hidden],
.ov-assembly-prescriptions [hidden],
.ov-assembly-recipe-account [hidden] {
  display: none !important;
}
.ov-assembly-form .ov-assembly-purpose div:has(> .ov-assembly-choice) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--spacing-16);
}
.ov-assembly-form .ov-assembly-purpose .ov-assembly-choice {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.ov-assembly-prescriptions .ov-assembly-choice {
  font-family: var(--font-ui);
}
.ov-assembly-prescriptions legend {
  background: transparent;
}
.ov-assembly-recipe-loading,
.ov-assembly-pupil-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-12);
  min-height: calc(3 * var(--spacing-64));
  padding: var(--spacing-32);
}
.ov-assembly-recipe-loading .ov-icon,
.ov-assembly-pupil-loading .ov-icon {
  animation: ov-button-spin 0.8s linear infinite;
}
.ov-assembly-prescription-id {
  color: var(--color-text-link);
}
.ov-assembly-recipe-account p {
  margin: 0;
}
.ov-assembly-form .ov-assembly-eye {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-16);
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-ui);
}
.ov-assembly-eye legend {
  float: none;
  margin: 0 0 var(--spacing-16);
  padding: 0;
  font-family: var(--font-ui);
  font-weight: var(--font-weight-regular);
  background: none;
}
.ov-assembly-eye [data-assembly-measure="esferico"] {
  order: 0;
}
.ov-assembly-eye [data-assembly-measure="cilindrico"] {
  order: 1;
}
.ov-assembly-eye [data-assembly-measure="eixo"] {
  order: 2;
}
.ov-assembly-eye [data-assembly-measure="adicao"] {
  order: 3;
}
.ov-assembly-heading .ov-assembly-title--hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  margin: 0;
  padding: 0;
}
.ov-assembly-read-result p {
  margin: 0;
}
.ov-assembly-form .ov-assembly-current .ov-field__label {
  margin: 0;
}
.ov-assembly-form .ov-assembly-recipe .ov-options__title,
.ov-assembly-form .ov-assembly-prescriptions .ov-options__title {
  font-size: var(--font-size-h4);
  line-height: var(--line-height-h4);
  font-family: var(--font-body);
  margin-bottom: var(--spacing-16) !important;
  font-weight: 500;
  color: var(--ov-ink) !important;
}
.ov-assembly-form .ov-assembly-prescriptions .ov-options__title {
  margin-top: var(--spacing-12);
}
.ov-assembly-form .ov-assembly-current[role="radiogroup"] .ov-options__title {
  font-family: var(--font-ui);
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-label);
}
.ov-assembly-form .ov-assembly-current .ov-choice {
  font-family: var(--font-ui);
  font-size: var(--font-size-body);
  font-weight: var(--font-weight-regular);
  line-height: var(--line-height-body);
}
.ov-assembly-form .ov-assembly-current .ov-field__frame {
  width: 100%;
}
.ov-assembly-form .ov-assembly-current .ov-field__feedback {
  margin-top: var(--spacing-8);
}
.ov-assembly-form .ov-assembly-recipe .data-prescription-privacy {
  margin-bottom: var(--spacing-24);
}
.ov-assembly-active .ov-assembly-current br,
.ov-assembly-active
  .ov-assembly-recipe
  > :not(.ov-assembly-upload-title):not(:has(.ov-upload)):not(
    [data-prescription-privacy]
  ),
.ov-assembly-active .ov-assembly-recipe .ov-upload ~ p {
  display: none;
}
.ov-assembly-form .ov-assembly-recipe .ov-upload {
  width: 100%;
}
.ov-assembly-form [data-prescription-privacy] {
  margin-bottom: var(--spacing-24);
}
.ov-assembly-form
  .ov-assembly-recipe
  :is(.leitor-receitas-ia-loading, .leitor-receitas-ia-error) {
  position: relative;
  z-index: 1;
  margin: var(--spacing-12) 0 0 !important;
  font-family: var(--font-ui) !important;
  font-size: var(--font-size-small) !important;
  line-height: var(--line-height-small);
}
.ov-assembly-form .ov-assembly-recipe .leitor-receitas-ia-loading {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  margin: 0 !important;
}
.ov-assembly-form .ov-assembly-recipe .leitor-receitas-ia-error {
  display: none !important;
}
.ov-assembly-actions {
  container-type: inline-size;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: var(--spacing-16);
  margin-top: var(--spacing-16);
}
@container (max-width: 600px) {
  .ov-assembly-actions :is(.ov-button, .ov-assembly-back) {
    font-size: var(--font-size-body-md);
    line-height: var(--line-height-body-md);
  }
  .ov-assembly-actions .ov-button {
    padding-inline: var(--spacing-12);
  }
}
@container (max-width: 360px) {
  .ov-assembly-actions .ov-button {
    font-size: var(--font-size-body);
  }
}
.ov-assembly-actions .ov-assembly-back {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-12);
  justify-self: start;
  margin: 0;
}
.ov-assembly-active .ov-product-overview .ov-link:focus-visible {
  outline: none;
}
.ov-assembly-back > .ov-icon,
.ov-assembly-navigation__product > .ov-icon {
  transform: rotate(180deg);
}
@media (max-width: 1023px) and (min-width: 768px) {
  .ov-assembly-active .ov-product-overview {
    grid-template-columns: minmax(200px, 1fr) minmax(0, 2fr);
    gap: var(--spacing-24);
  }
  .ov-assembly-heading .ov-steps__item {
    padding-inline: var(--spacing-8);
  }
  .ov-assembly-heading .ov-steps ol {
    gap: var(--spacing-4);
  }
}
@media (max-width: 767px) {
  .ov-assembly-marker {
    border-radius: var(--radius-full);
  }
  .ov-assembly-actions {
    grid-template-columns: 1fr;
  }
  .ov-assembly-form[data-assembly-step="1"] .af_addon_field_show {
    grid-template-columns: minmax(0, 1fr);
  }
  .ov-assembly-form .ov-assembly-purpose .ov-assembly-choice,
  .ov-assembly-form .ov-assembly-pupilometer .ov-assembly-choice {
    padding: var(--spacing-16);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    overflow-wrap: normal;
  }
  .ov-assembly-heading .ov-steps__item.is-complete {
    background: var(--color-bg-action-primary);
  }
  .ov-assembly-navigation > :not(.ov-assembly-navigation__product),
  .woocommerce-breadcrumb.ov-assembly-navigation
    > .ov-assembly-navigation__start,
  .ov-assembly-navigation__desktop,
  .ov-assembly-summary__desktop {
    display: none;
  }
  .ov-assembly-navigation__mobile,
  .ov-assembly-summary__mobile {
    display: block;
  }
  .ov-assembly-navigation__product > .ov-icon {
    display: block;
  }
  .ov-assembly-active .ov-product-overview {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--spacing-24);
  }
  .ov-assembly-summary {
    padding: var(--spacing-16);
    border-radius: var(--radius-16);
  }
  .ov-assembly-summary__mobile {
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
  }
  .ov-assembly-summary__mobile .amount {
    font-weight: var(--font-weight-regular);
  }
  .ov-assembly-heading .ov-steps {
    margin-bottom: var(--spacing-24);
  }
  .ov-assembly-heading .ov-steps__item {
    gap: 0;
    min-height: var(--spacing-8);
    padding: 0;
  }
  .ov-assembly-heading h1 {
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ov-assembly-recipe-loading .ov-icon,
  .ov-assembly-pupil-loading .ov-icon {
    animation: none;
  }
  .ov-assembly-marker,
  .ov-product-overview .ov-assembly-form .ov-assembly-choice {
    transition: none;
  }
}
@media (forced-colors: active) {
  .ov-assembly-form .ov-assembly-choice:has(:checked) {
    outline: var(--focus-width) solid Highlight;
  }
}
