.fh-lens-block {
    --fh-ink: #101012;
    --fh-muted: #6a6a72;
    --fh-line: #e7e7ea;
    --fh-panel: #f7f7f8;
    --fh-white: #ffffff;
    display: block;
    width: 100%;
    margin-top: var(--fh-block-margin-top, 0px);
    margin-bottom: var(--fh-block-margin-bottom, 0px);
    color: var(--fh-ink);
    font-family: var(--body-font-family, "Space Grotesk", Arial, sans-serif);
  }

  body.fh-configurator-open {
    overflow: hidden;
  }

  .fh-lens-block *,
  .fh-lens-block *::before,
  .fh-lens-block *::after {
    box-sizing: border-box;
  }

  .fh-lens-block button,
  .fh-lens-block input,
  .fh-lens-block select {
    font: inherit;
  }

  .fh-lens-block button:focus-visible,
  .fh-lens-block input:focus-visible,
  .fh-lens-block select:focus-visible {
    outline: 2px solid var(--fh-accent);
    outline-offset: 2px;
  }

  .fh-lens-block .fh-lens-entry {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: 100%;
  }

  .fh-lens-block .fh-lens-entry__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    border: 1px solid var(--fh-ink);
    border-radius: 999px;
    padding: 14px 24px;
    cursor: pointer;
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .16em;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    transition: transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
  }

  .fh-lens-block .fh-lens-entry__button:active {
    transform: scale(.985);
  }

  .fh-lens-block .fh-lens-entry__button:focus-visible {
    outline: 2px solid var(--fh-accent);
    outline-offset: 2px;
  }

  .fh-lens-block .fh-lens-entry__button--primary {
    border-color: var(--fh-accent);
    background: var(--fh-accent);
    color: #fff;
  }

  .fh-lens-block .fh-lens-entry__button--primary:hover {
    border-color: var(--fh-ink);
    background: var(--fh-ink);
  }

  .fh-lens-block .fh-lens-entry__button--secondary {
    background: #fff;
    color: var(--fh-ink);
  }

  .fh-lens-block .fh-lens-entry__button--secondary:hover {
    border-color: var(--fh-accent);
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-lens-entry__button[disabled] {
    cursor: wait;
    opacity: .55;
  }

  .fh-lens-block .fh-lens-entry__error,
  .fh-lens-block .fh-lens-error {
    margin: 10px 0 0;
    color: #b42318;
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-lens-overlay[hidden] {
    display: none;
  }

  .fh-lens-block .fh-lens-overlay {
    position: fixed;
    top: var(--fh-configurator-top, 0px);
    right: 0;
    bottom: 0;
    left: 0;
    height: calc(100vh - var(--fh-configurator-top, 0px));
    height: calc(100dvh - var(--fh-configurator-top, 0px));
    min-height: 0;
    z-index: var(--z-index-modal, 1030);
  }

  .fh-lens-block .fh-lens-overlay__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 16, 18, .5);
  }

  .fh-lens-block .fh-lens-configurator {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: 42.5% 57.5%;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    background: var(--fh-white);
  }

  .fh-lens-block .fh-lens-summary {
    display: grid;
    grid-template-rows: minmax(260px, 1fr) auto auto;
    min-width: 0;
    min-height: 0;
    border-right: 1px solid var(--fh-line);
    background: #fff;
  }

  .fh-lens-block .fh-lens-summary__media {
    display: flex;
    min-height: 0;
    align-items: center;
    justify-content: center;
    padding: 56px;
    overflow: hidden;
  }

  .fh-lens-block .fh-lens-summary__media img {
    display: block;
    width: min(70%, 520px);
    max-height: 62vh;
    object-fit: contain;
  }

  .fh-lens-block .fh-lens-summary__items {
    display: grid;
    gap: 14px;
    padding: 24px 56px;
  }

  .fh-lens-block .fh-summary-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: start;
  }

  .fh-lens-block .fh-summary-line__label {
    display: block;
    margin-bottom: 4px;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 14px;
    font-weight: 700;
  }

  .fh-lens-block .fh-summary-line__value {
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-summary-line__price,
  .fh-lens-block .fh-lens-summary__total strong:last-child {
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
  }

  .fh-lens-block .fh-lens-summary__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid var(--fh-line);
    padding: 24px 56px;
  }

  .fh-lens-block .fh-lens-summary__total strong:first-child {
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 16px;
  }

  .fh-lens-block .fh-lens-summary__total strong:last-child {
    font-size: 23px;
  }

  .fh-lens-block .fh-lens-workspace {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow-y: auto;
    background: var(--fh-panel);
  }

  .fh-lens-block .fh-lens-progress {
    position: sticky;
    top: 0;
    z-index: 2;
    height: 4px;
    background: #ededf0;
  }

  .fh-lens-block .fh-lens-progress span {
    display: block;
    width: 20%;
    height: 100%;
    background: var(--fh-accent);
    transition: width .28s ease;
  }

  .fh-lens-block .fh-lens-close {
    position: absolute;
    top: 16px;
    right: 20px;
    z-index: 3;
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--fh-ink);
    cursor: pointer;
    font-size: 30px;
    font-weight: 300;
    line-height: 1;
  }

  .fh-lens-block .fh-lens-close:hover {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-lens-step {
    width: min(100%, 1160px);
    padding: 70px 56px 48px;
  }

  .fh-lens-block .fh-step-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
    padding-right: 40px;
  }

  .fh-lens-block .fh-step-head--center {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    padding-right: 0;
  }

  .fh-lens-block .fh-step-title {
    margin: 0;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: clamp(24px, 2.1vw, 30px);
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.1;
  }

  .fh-lens-block .fh-step-head--center .fh-step-title {
    text-align: center;
  }

  .fh-lens-block .fh-step-help {
    display: inline-flex;
    align-items: center;
    color: var(--fh-ink);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
  }

  .fh-lens-block .fh-step-help:hover,
  .fh-lens-block .fh-step-help:focus-visible {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-step-help-row {
    display: flex;
    justify-content: flex-end;
    margin: -12px 0 20px;
  }

  .fh-lens-block .fh-step-help::before {
    content: "?";
    display: inline-grid;
    width: 19px;
    height: 19px;
    margin-right: 8px;
    place-items: center;
    border-radius: 50%;
    background: var(--fh-accent);
    color: #fff;
    font-size: 11px;
    text-decoration: none;
  }

  .fh-lens-block .fh-back {
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 1px solid var(--fh-line);
    border-radius: 50%;
    background: #fff;
    color: var(--fh-ink);
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    transition: border-color .18s ease, color .18s ease, background-color .18s ease;
  }

  .fh-lens-block .fh-back:hover,
  .fh-lens-block .fh-back:focus-visible {
    border-color: var(--fh-accent);
    background: var(--fh-inline-soft, #fff1f6);
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-choice-list,
  .fh-lens-block .fh-card-list {
    display: grid;
    width: 100%;
    gap: 12px;
  }

  .fh-lens-block .fh-choice-card,
  .fh-lens-block .fh-lens-card,
  .fh-lens-block .fh-index-card {
    position: relative;
    width: 100%;
    border: 1px solid #ededf0;
    border-radius: 7px;
    background: #fff;
    color: var(--fh-ink);
    text-align: left;
    overflow: hidden;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
  }

  .fh-lens-block button.fh-choice-card,
  .fh-lens-block button.fh-lens-card,
  .fh-lens-block button.fh-index-card {
    cursor: pointer;
  }

  .fh-lens-block .fh-choice-card:hover,
  .fh-lens-block .fh-lens-card:hover,
  .fh-lens-block .fh-index-card:hover,
  .fh-lens-block .is-selected {
    border-color: var(--fh-accent);
  }

  .fh-lens-block button.fh-choice-card:active,
  .fh-lens-block button.fh-lens-card:active,
  .fh-lens-block button.fh-index-card:active {
    transform: scale(.992);
  }

  .fh-lens-block .fh-choice-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 14px;
    min-height: 82px;
    padding: 16px 18px;
  }

  .fh-lens-block .fh-choice-icon {
    display: grid;
    place-items: center;
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-choice-icon svg {
    display: block;
    width: 40px;
    height: 32px;
  }

  .fh-lens-block .fh-choice-icon--boxed {
    width: 42px;
    height: 42px;
    border: 1px solid #e3e2e6;
    border-radius: 10px;
    background: #fbfbfc;
  }

  .fh-lens-block .fh-choice-icon--boxed svg {
    width: 23px;
    height: 23px;
  }

  .fh-lens-block .fh-choice-card.is-selected .fh-choice-icon--boxed {
    border-color: #f5a4c6;
    background: #fff4f8;
  }

  .fh-lens-block .fh-linear-icon {
    display: block;
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .fh-lens-block .fh-choice-card strong,
  .fh-lens-block .fh-lens-card strong,
  .fh-lens-block .fh-index-card strong {
    display: block;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
  }

  .fh-lens-block .fh-choice-card small,
  .fh-lens-block .fh-lens-card small {
    display: block;
    margin-top: 5px;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.4;
  }

  .fh-lens-block .fh-rx-method-note {
    margin: -5px 0 18px;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.5;
  }

  .fh-lens-block .fh-rx-method-list {
    display: grid;
    gap: 10px;
  }

  .fh-lens-block .fh-rx-method-content {
    margin-top: 18px;
  }

  .fh-lens-block .fh-rx-method-content > .fh-rx-panel,
  .fh-lens-block .fh-rx-method-content > .fh-later-panel {
    border: 1px solid var(--fh-line);
  }

  .fh-lens-block .fh-rx-method-content--scan {
    display: grid;
    gap: 5px;
    border: 1px solid var(--fh-line);
    border-radius: 10px;
    padding: 20px 22px;
    background: #fff;
  }

  .fh-lens-block .fh-scan-status {
    display: grid;
    gap: 5px;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-scan-status strong {
    color: var(--fh-ink);
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 15px;
  }

  .fh-lens-block .fh-scan-reopen {
    width: fit-content;
    margin-top: 11px;
    border: 1px solid var(--fh-accent);
    border-radius: 999px;
    padding: 11px 17px;
    background: #fff;
    color: var(--fh-ink);
    cursor: pointer;
    font-weight: 700;
  }

  .fh-lens-block .fh-scan-reopen:hover,
  .fh-lens-block .fh-scan-reopen:focus-visible {
    background: #fff4f8;
  }

  .fh-lens-block .fh-reading-options {
    display: grid;
    gap: 10px;
    margin-top: -2px;
  }

  .fh-lens-block .fh-reading-options button {
    display: flex;
    min-height: 56px;
    align-items: center;
    justify-content: space-between;
    border: 0;
    border-radius: 7px;
    padding: 15px 20px;
    background: #f1f1f2;
    color: var(--fh-ink);
    cursor: pointer;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-weight: 700;
    text-align: left;
  }

  .fh-lens-block .fh-reading-options button:hover {
    background: #ffe9f2;
  }

  .fh-lens-block .fh-rx-quick__icon {
    display: grid;
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--fh-accent);
    border-radius: 7px;
    color: var(--fh-accent);
    font-size: 11px;
    font-weight: 700;
  }

  .fh-lens-block .fh-rx-panel {
    border-radius: 10px;
    padding: 24px 26px 28px;
    background: #fff;
  }

  .fh-lens-block .fh-rx-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 16px;
  }

  .fh-lens-block .fh-rx-panel__head strong {
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 16px;
  }

  .fh-lens-block .fh-rx-panel__head span,
  .fh-lens-block .fh-rx-panel__head .fh-rx-help {
    color: var(--fh-ink);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .fh-lens-block .fh-rx-panel__head .fh-rx-help:hover {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-rx-panel__head button.fh-rx-help {
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--fh-ink);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    text-align: right;
  }

  .fh-lens-block .fh-rx-panel__head button.fh-rx-help:hover,
  .fh-lens-block .fh-rx-panel__head button.fh-rx-help:focus-visible {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-rx-table-wrap {
    max-width: 100%;
    overflow-x: auto;
  }

  .fh-lens-block .fh-rx-table {
    display: grid;
    grid-template-columns: minmax(122px, 1.1fr) repeat(3, minmax(112px, 1fr));
    min-width: 510px;
    border-top: 1px solid var(--fh-line);
    border-left: 1px solid var(--fh-line);
  }

  .fh-lens-block .fh-rx-table--add {
    grid-template-columns: minmax(122px, 1.1fr) repeat(4, minmax(104px, 1fr));
    min-width: 610px;
  }

  .fh-lens-block .fh-rx-cell {
    display: flex;
    min-height: 52px;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--fh-line);
    border-bottom: 1px solid var(--fh-line);
    padding: 9px;
    background: #fff;
  }

  .fh-lens-block .fh-rx-cell--head,
  .fh-lens-block .fh-rx-cell--eye {
    background: #fafafa;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-weight: 700;
  }

  .fh-lens-block .fh-rx-cell--eye {
    justify-content: flex-start;
    padding-left: 15px;
  }

  .fh-lens-block .fh-rx-cell select {
    width: 100%;
    min-height: 34px;
    border: 0;
    background: transparent;
    color: var(--fh-ink);
    cursor: pointer;
    text-align: center;
  }

  .fh-lens-block .fh-rx-cell select:disabled {
    cursor: not-allowed;
    color: #a2a2aa;
  }

  .fh-lens-block .fh-rx-cell--empty {
    visibility: hidden;
  }

  .fh-lens-block .fh-rx-required {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-rx-note {
    margin: 0 0 16px;
    color: #6d6d75;
    font-size: 13px;
    line-height: 1.5;
  }

  .fh-lens-block .fh-rx-validation {
    margin-top: 16px;
    border: 1px solid #f2b7ce;
    border-radius: 7px;
    padding: 11px 13px;
    background: #fff5f9;
    color: #8f214e;
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-prism-panel {
    margin-top: 18px;
    border: 1px solid var(--fh-line);
    border-radius: 8px;
    padding: 16px;
    background: #fafafa;
  }

  .fh-lens-block .fh-prism-panel h4 {
    margin: 0 0 5px;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 15px;
  }

  .fh-lens-block .fh-prism-panel p {
    margin: 0 0 13px;
    color: #6d6d75;
    font-size: 12px;
  }

  .fh-lens-block .fh-prism-grid {
    display: grid;
    grid-template-columns: minmax(90px, .8fr) repeat(4, minmax(95px, 1fr));
    min-width: 520px;
    border-top: 1px solid var(--fh-line);
    border-left: 1px solid var(--fh-line);
  }

  .fh-lens-block .fh-upload-panel,
  .fh-lens-block .fh-later-panel,
  .fh-lens-block .fh-review-panel {
    border-radius: 10px;
    padding: 24px 26px;
    background: #fff;
  }

  .fh-lens-block .fh-upload-box {
    display: grid;
    min-height: 210px;
    place-items: center;
    border: 2px dashed #d8d7dc;
    border-radius: 10px;
    padding: 24px;
    background: #fafafa;
    color: #696971;
    cursor: pointer;
    text-align: center;
  }

  .fh-lens-block .fh-upload-box:hover,
  .fh-lens-block .fh-upload-box.is-uploaded {
    border-color: var(--fh-accent);
    background: #fff6fa;
  }

  .fh-lens-block .fh-upload-box strong,
  .fh-lens-block .fh-upload-box small {
    display: block;
  }

  .fh-lens-block .fh-upload-box strong {
    margin-bottom: 8px;
    color: var(--fh-ink);
  }

  .fh-lens-block .fh-upload-box small {
    line-height: 1.5;
  }

  .fh-lens-block .fh-upload-mark {
    display: grid;
    width: 46px;
    height: 46px;
    margin: 0 auto 13px;
    place-items: center;
    border: 1px solid var(--fh-accent);
    border-radius: 12px;
    color: var(--fh-accent);
    font-weight: 800;
  }

  .fh-lens-block .fh-upload-mark .fh-linear-icon {
    width: 23px;
    height: 23px;
  }

  .fh-lens-block .fh-scan-modal[hidden] {
    display: none;
  }

  .fh-lens-block .fh-scan-modal {
    position: fixed;
    inset: 0;
    z-index: 8;
    display: grid;
    place-items: center;
    padding: 24px;
  }

  .fh-lens-block .fh-scan-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 16, 18, .56);
    backdrop-filter: blur(4px);
  }

  .fh-lens-block .fh-scan-modal__dialog {
    position: relative;
    width: min(100%, 760px);
    max-height: calc(100vh - 48px);
    overflow: auto;
    border-radius: 12px;
    padding: 28px 34px 24px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .26);
  }

  .fh-lens-block .fh-scan-modal__close {
    position: absolute;
    top: 10px;
    right: 14px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--fh-ink);
    cursor: pointer;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
  }

  .fh-lens-block .fh-scan-modal__close:hover,
  .fh-lens-block .fh-scan-modal__close:focus-visible {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-scan-modal__dialog h3 {
    margin: 0 44px 10px;
    text-align: center;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: clamp(21px, 2vw, 27px);
    font-weight: 800;
    line-height: 1.15;
  }

  .fh-lens-block .fh-scan-modal__intro {
    max-width: 620px;
    margin: 0 auto 18px;
    color: var(--fh-muted);
    text-align: center;
    font-size: 13px;
    line-height: 1.5;
  }

  .fh-lens-block .fh-scan-dropzone {
    display: grid;
    width: 100%;
    min-height: 150px;
    place-items: center;
    border: 1px dashed #d8d7dc;
    border-radius: 10px;
    padding: 22px;
    background: #fff;
    color: var(--fh-muted);
    cursor: pointer;
    text-align: center;
  }

  .fh-lens-block .fh-scan-dropzone:hover,
  .fh-lens-block .fh-scan-dropzone:focus-visible,
  .fh-lens-block .fh-scan-dropzone.is-uploaded {
    border-color: var(--fh-accent);
    background: #fff6fa;
  }

  .fh-lens-block .fh-scan-dropzone[disabled] {
    cursor: wait;
    opacity: .65;
  }

  .fh-lens-block .fh-scan-dropzone strong,
  .fh-lens-block .fh-scan-dropzone small {
    display: block;
  }

  .fh-lens-block .fh-scan-dropzone strong {
    margin-bottom: 7px;
    color: var(--fh-ink);
    font-size: 14px;
  }

  .fh-lens-block .fh-scan-dropzone small {
    line-height: 1.5;
  }

  .fh-lens-block .fh-scan-modal__requirements {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding: 14px 16px;
    background: #fafafa;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-scan-modal__requirements p,
  .fh-lens-block .fh-scan-modal__notice p {
    margin: 0;
  }

  .fh-lens-block .fh-scan-modal__requirements strong,
  .fh-lens-block .fh-scan-modal__notice strong {
    color: var(--fh-ink);
  }

  .fh-lens-block .fh-scan-modal__notice {
    margin-top: 14px;
    border-radius: 9px;
    padding: 14px 16px;
    background: #f7f7f8;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-scan-modal__actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px;
  }

  .fh-lens-block .fh-scan-modal__actions .fh-next {
    min-width: 190px;
    min-height: 48px;
  }

  .fh-lens-block .fh-help-modal {
    position: fixed;
    inset: 0;
    z-index: 9;
    display: grid;
    place-items: center;
    padding: 24px;
  }

  .fh-lens-block .fh-help-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(16, 16, 18, .56);
    backdrop-filter: blur(4px);
  }

  .fh-lens-block .fh-help-modal__dialog {
    position: relative;
    width: min(100%, 620px);
    max-height: calc(100vh - 48px);
    overflow: auto;
    border-radius: 12px;
    padding: 30px 34px 26px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .26);
  }

  .fh-lens-block .fh-help-modal__close {
    position: absolute;
    top: 10px;
    right: 14px;
    display: grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--fh-ink);
    cursor: pointer;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
  }

  .fh-lens-block .fh-help-modal__close:hover,
  .fh-lens-block .fh-help-modal__close:focus-visible {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-help-modal__dialog h3 {
    margin: 0 44px 16px 0;
    color: var(--fh-ink);
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: clamp(21px, 2vw, 27px);
    font-weight: 800;
    line-height: 1.15;
  }

  .fh-lens-block .fh-help-modal__content {
    color: var(--fh-muted);
    font-size: 14px;
    line-height: 1.65;
  }

  .fh-lens-block .fh-help-modal__content > :first-child {
    margin-top: 0;
  }

  .fh-lens-block .fh-help-modal__content > :last-child {
    margin-bottom: 0;
  }

  .fh-lens-block .fh-help-modal__content a {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-help-modal__footer {
    margin-top: 20px;
    border-top: 1px solid var(--fh-line);
    padding-top: 16px;
  }

  .fh-lens-block .fh-help-modal__link {
    color: var(--fh-ink);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .fh-lens-block .fh-help-modal__link:hover,
  .fh-lens-block .fh-help-modal__link:focus-visible {
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-scan-pd {
    margin-top: 20px;
  }

  .fh-lens-block .fh-scan-inline__intro {
    margin: -8px 0 18px;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.5;
  }

  .fh-lens-block .fh-scan-pd .fh-pd-row {
    display: grid;
    grid-template-columns: minmax(130px, 1fr) minmax(130px, 1fr);
    width: min(100%, 440px);
    border-top: 1px solid var(--fh-line);
    border-left: 1px solid var(--fh-line);
  }

  .fh-lens-block .fh-scan-pd .fh-pd-row + .fh-pd-row {
    border-top: 0;
  }

  .fh-lens-block .fh-email-input {
    width: min(100%, 560px);
    min-height: 54px;
    border: 1px solid #d9d7d0;
    border-radius: 7px;
    padding: 13px 15px;
    background: #fff;
    color: var(--fh-ink);
    font: inherit;
  }

  .fh-lens-block .fh-email-input[aria-invalid="true"] {
    border-color: #c33157;
  }

  .fh-lens-block .fh-review-list {
    display: grid;
    gap: 0;
    border-top: 1px solid var(--fh-line);
  }

  .fh-lens-block .fh-review-row {
    display: grid;
    grid-template-columns: minmax(150px, .55fr) minmax(0, 1fr);
    gap: 20px;
    border-bottom: 1px solid var(--fh-line);
    padding: 14px 0;
    font-size: 14px;
  }

  .fh-lens-block .fh-review-row span {
    color: #75747c;
  }

  .fh-lens-block .fh-review-row strong {
    overflow-wrap: anywhere;
  }

  .fh-lens-block .fh-rx-options {
    display: grid;
    gap: 13px;
    margin-top: 20px;
    font-size: 14px;
  }

  .fh-lens-block .fh-check-row {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .fh-lens-block .fh-check-row input {
    width: 17px;
    height: 17px;
    accent-color: var(--fh-accent);
  }

  .fh-lens-block .fh-step-footer {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    width: 100%;
    margin-top: 28px;
    border-top: 1px solid var(--fh-line);
    padding-top: 20px;
  }

  .fh-lens-block .fh-edit {
    min-width: min(300px, 100%);
    min-height: 58px;
    border: 1px solid var(--fh-accent);
    padding: 15px 26px;
    background: #fff;
    color: var(--fh-accent);
    cursor: pointer;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 16px;
    font-weight: 800;
  }

  .fh-lens-block .fh-edit[disabled] {
    cursor: not-allowed;
    border-color: #f5bfd5;
    color: #f5bfd5;
  }

  .fh-lens-block .fh-next {
    min-width: min(300px, 100%);
    min-height: 58px;
    border: 0;
    padding: 15px 26px;
    background: var(--fh-accent);
    color: #fff;
    cursor: pointer;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 16px;
    font-weight: 800;
  }

  .fh-lens-block .fh-next[disabled] {
    cursor: not-allowed;
    background: #f5bfd5;
  }

  .fh-lens-block .fh-magnification {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(126px, 1fr));
    width: 100%;
    gap: 12px;
  }

  .fh-lens-block .fh-mag-button {
    min-width: 0;
    width: 100%;
    border: 1px solid #dcd9d2;
    border-radius: 999px;
    padding: 14px 20px;
    background: #f7f7f8;
    color: var(--fh-ink);
    cursor: pointer;
  }

  .fh-lens-block .fh-mag-button.is-selected {
    border-color: var(--fh-accent);
    background: var(--fh-accent);
    color: #fff;
  }

  .fh-lens-block .fh-lens-card__main {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto 18px;
    align-items: center;
    gap: 14px;
    width: 100%;
    border: 0;
    padding: 17px 18px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    text-align: left;
  }

  .fh-lens-block .fh-lens-card__icon,
  .fh-lens-block .fh-sub-option__icon,
  .fh-lens-block .fh-index-card__icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid #e3e2e6;
    border-radius: 10px;
    background: #fbfbfc;
    color: var(--fh-accent);
    transition: border-color .18s ease, background-color .18s ease;
  }

  .fh-lens-block .fh-lens-card.is-selected .fh-lens-card__icon,
  .fh-lens-block .fh-sub-option.is-selected .fh-sub-option__icon,
  .fh-lens-block .fh-index-card.is-selected .fh-index-card__icon {
    border-color: #f5a4c6;
    background: #fff4f8;
  }

  .fh-lens-block .fh-card-chevron {
    display: grid;
    width: 18px;
    height: 18px;
    place-items: center;
    color: #5f5d65;
  }

  .fh-lens-block .fh-card-chevron .fh-linear-icon {
    width: 17px;
    height: 17px;
  }

  .fh-lens-block .fh-price {
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
  }

  .fh-lens-block .fh-unavailable {
    opacity: .48;
  }

  .fh-lens-block .fh-unavailable button {
    cursor: not-allowed;
  }

  .fh-lens-block .fh-sub-options,
  .fh-lens-block .fh-color-groups {
    border-top: 1px solid #ededf0;
  }

  .fh-lens-block .fh-sub-option {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    width: 100%;
    border: 0;
    border-bottom: 1px solid #ededf0;
    padding: 16px 20px;
    background: #fff;
    color: var(--fh-ink);
    cursor: pointer;
    text-align: left;
  }

  .fh-lens-block .fh-sub-option__copy {
    display: grid;
    gap: 4px;
    min-width: 0;
  }

  .fh-lens-block .fh-sub-option__copy small {
    color: #6f7078;
  }

  .fh-lens-block .fh-sub-option:last-child {
    border-bottom: 0;
  }

  .fh-lens-block .fh-sub-option.is-selected {
    background: #fff4f8;
  }

  .fh-lens-block .fh-color-group {
    padding: 16px 20px;
    border-bottom: 1px solid #ededf0;
  }

  .fh-lens-block .fh-color-group:last-child {
    border-bottom: 0;
  }

  .fh-lens-block .fh-color-group strong {
    display: block;
    margin-bottom: 10px;
    font-size: 14px;
  }

  .fh-lens-block .fh-swatches {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(116px, 146px));
    gap: 9px;
    width: 100%;
  }

  .fh-lens-block .fh-swatch {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 50px;
    border: 1px solid #dedde2;
    border-radius: 7px;
    padding: 8px 10px;
    background: #fff;
    color: var(--fh-ink);
    cursor: pointer;
    text-align: left;
    transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
  }

  .fh-lens-block .fh-swatch:hover {
    border-color: #aaa8b0;
  }

  .fh-lens-block .fh-swatch:active {
    transform: scale(.985);
  }

  .fh-lens-block .fh-swatch.is-selected {
    border-color: var(--fh-accent);
    background: #fff7fa;
  }

  .fh-lens-block .fh-swatch__preview {
    width: 32px;
    height: 32px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--fh-swatch);
    box-shadow: 0 0 0 1px rgba(16, 16, 18, .2), inset 0 0 0 1px rgba(255, 255, 255, .12);
  }

  .fh-lens-block .fh-swatch__label {
    min-width: 0;
    overflow: hidden;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .fh-lens-block .fh-swatch__state {
    width: 13px;
    height: 13px;
    border: 1px solid #c6c4ca;
    border-radius: 50%;
    background: #fff;
  }

  .fh-lens-block .fh-swatch.is-selected .fh-swatch__state {
    border-color: var(--fh-accent);
    background: var(--fh-accent);
    box-shadow: inset 0 0 0 3px #fff;
  }

  .fh-lens-block .fh-notice {
    width: min(100%, 680px);
    margin-bottom: 16px;
    border-radius: 4px;
    padding: 13px 15px;
    background: #fff9e0;
    color: #3d3a2a;
    font-size: 13px;
    line-height: 1.45;
  }

  .fh-lens-block .fh-notice--upgrade {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    border: 1px solid #f0c6d8;
    border-left: 3px solid var(--fh-accent);
    border-radius: 10px;
    padding: 11px 15px 11px 13px;
    background: #fff4f8;
    color: var(--fh-ink);
    font-weight: 600;
  }

  .fh-lens-block .fh-notice--upgrade__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 22px;
    border-radius: 999px;
    padding: 5px 9px 4px;
    background: var(--fh-accent);
    color: #fff;
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .08em;
    line-height: 1;
    white-space: nowrap;
  }

  .fh-lens-block .fh-notice--upgrade__tags {
    display: flex;
    flex: 1 1 260px;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
  }

  .fh-lens-block .fh-notice--upgrade__tag {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border: 1px solid #f0c6d8;
    border-radius: 999px;
    padding: 5px 9px 4px;
    background: #fff;
    color: var(--fh-ink);
    font-size: 11px;
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
  }

  .fh-lens-block .fh-notice--upgrade__tag::before {
    content: "✓";
    margin-right: 5px;
    color: var(--fh-accent);
    font-size: 11px;
    font-weight: 800;
  }

  .fh-lens-block .fh-notice--upgrade__caption {
    flex: 0 1 auto;
    color: var(--fh-muted);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
  }

  .fh-lens-block .fh-index-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 20px;
  }

  .fh-lens-block .fh-index-card.is-selected {
    background: #fff4f8;
  }

  .fh-lens-block .fh-index-card ul {
    display: grid;
    gap: 4px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
  }

  .fh-lens-block .fh-index-card li {
    color: var(--fh-muted);
    font-size: 12px;
    line-height: 1.4;
  }

  .fh-lens-block .fh-index-card li::before {
    content: "• ";
  }

  .fh-lens-block .fh-performance-intro {
    margin: -5px 0 18px;
    color: var(--fh-muted);
    font-size: 14px;
    line-height: 1.5;
  }

  .fh-lens-block .fh-performance-list {
    display: grid;
    gap: 12px;
  }

  .fh-lens-block .fh-performance-card {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 84px;
    border: 1px solid var(--fh-line);
    border-radius: 14px;
    padding: 16px 18px;
    background: #fff;
    color: var(--fh-ink);
    cursor: pointer;
    text-align: left;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
  }

  .fh-lens-block .fh-performance-card:hover,
  .fh-lens-block .fh-performance-card.is-selected {
    border-color: var(--fh-accent);
  }

  .fh-lens-block .fh-performance-card.is-selected {
    background: #fff7fa;
    box-shadow: inset 0 0 0 1px var(--fh-accent);
  }

  .fh-lens-block .fh-performance-card:active {
    transform: scale(.992);
  }

  .fh-lens-block .fh-performance-card__icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid #e3e2e6;
    border-radius: 50%;
    background: #f7f7f8;
    color: var(--fh-accent);
  }

  .fh-lens-block .fh-performance-card__icon .fh-linear-icon {
    width: 23px;
    height: 23px;
  }

  .fh-lens-block .fh-performance-card__copy {
    display: grid;
    gap: 6px;
    min-width: 0;
  }

  .fh-lens-block .fh-performance-card__heading {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }

  .fh-lens-block .fh-performance-card__heading strong {
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 16px;
    font-weight: 750;
    line-height: 1.2;
  }

  .fh-lens-block .fh-performance-card__copy small {
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.4;
  }

  .fh-lens-block .fh-performance-badge {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 10px;
    font-weight: 750;
    line-height: 1;
    white-space: nowrap;
  }

  .fh-lens-block .fh-performance-badge--included {
    background: #ededf0;
    color: #66666e;
  }

  .fh-lens-block .fh-performance-badge--popular {
    background: var(--fh-accent);
    color: #fff;
  }

  .fh-lens-block .fh-performance-badge--driving {
    background: #e8eee1;
    color: #46533d;
  }

  .fh-lens-block .fh-performance-card__price {
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
  }

  .fh-lens-block .fh-badge {
    position: absolute;
    top: 0;
    left: 0;
    border-radius: 6px 0 6px 0;
    padding: 4px 9px;
    background: var(--fh-accent);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
  }

  @media (max-width: 900px) {
    .fh-lens-block .fh-lens-configurator {
      display: block;
      overflow-y: auto;
      background: var(--fh-panel);
    }

    .fh-lens-block .fh-lens-summary {
      position: relative;
      display: grid;
      grid-template-columns: 118px minmax(0, 1fr);
      grid-template-rows: auto auto;
      min-height: 150px;
      border-right: 0;
      border-bottom: 1px solid var(--fh-line);
    }

    .fh-lens-block .fh-lens-summary__media {
      grid-row: 1 / 3;
      padding: 20px 12px;
    }

    .fh-lens-block .fh-lens-summary__media img {
      width: 100%;
      max-height: 130px;
    }

    .fh-lens-block .fh-lens-summary__items {
      gap: 8px;
      padding: 18px 52px 10px 8px;
    }

    .fh-lens-block .fh-lens-summary__items .fh-summary-line:not(:first-child) {
      display: none;
    }

    .fh-lens-block .fh-lens-summary__total {
      padding: 8px 52px 18px 8px;
      border-top: 0;
    }

    .fh-lens-block .fh-lens-summary__total strong:last-child {
      font-size: 18px;
    }

    .fh-lens-block .fh-lens-workspace {
      overflow: visible;
    }

    .fh-lens-block .fh-lens-close {
      position: fixed;
      top: calc(var(--fh-configurator-top, 0px) + 10px);
      right: 10px;
    }

    .fh-lens-block .fh-lens-step {
      padding: 36px 20px 44px;
    }
  }

  @media (max-width: 640px) {
    .fh-lens-block .fh-lens-entry {
      grid-template-columns: 1fr;
    }

    .fh-lens-block .fh-step-head {
      align-items: flex-start;
      flex-direction: column;
      padding-right: 34px;
    }

    .fh-lens-block .fh-step-head--center {
      display: grid;
      grid-template-columns: 36px minmax(0, 1fr) 36px;
      align-items: center;
      padding-right: 0;
    }

    .fh-lens-block .fh-step-title {
      font-size: 22px;
    }

    .fh-lens-block .fh-rx-panel {
      padding: 18px 14px 22px;
    }

    .fh-lens-block .fh-scan-modal {
      padding: 12px;
    }

    .fh-lens-block .fh-scan-modal__dialog {
      max-height: calc(100vh - 24px);
      padding: 24px 16px 18px;
    }

    .fh-lens-block .fh-scan-modal__dialog h3 {
      margin-right: 30px;
      margin-left: 30px;
    }

    .fh-lens-block .fh-scan-modal__actions .fh-next {
      width: 100%;
    }

    .fh-lens-block .fh-help-modal {
      padding: 12px;
    }

    .fh-lens-block .fh-help-modal__dialog {
      max-height: calc(100vh - 24px);
      padding: 24px 16px 20px;
    }

    .fh-lens-block .fh-help-modal__dialog h3 {
      margin-right: 30px;
    }

    .fh-lens-block .fh-lens-card__main {
      grid-template-columns: 42px minmax(0, 1fr) auto;
    }

    .fh-lens-block .fh-lens-card__main > span:last-child {
      display: none;
    }

    .fh-lens-block .fh-index-card {
      grid-template-columns: 48px minmax(0, 1fr);
    }

    .fh-lens-block .fh-index-card > .fh-price {
      grid-column: 2;
    }

    .fh-lens-block .fh-performance-card {
      grid-template-columns: 44px minmax(0, 1fr);
      align-items: start;
      gap: 12px;
      min-height: 0;
      padding: 15px 14px;
    }

    .fh-lens-block .fh-performance-card__icon {
      width: 40px;
      height: 40px;
    }

    .fh-lens-block .fh-performance-card__heading {
      gap: 6px;
    }

    .fh-lens-block .fh-performance-card__heading strong {
      font-size: 15px;
    }

    .fh-lens-block .fh-performance-card__copy small {
      font-size: 12px;
    }

    .fh-lens-block .fh-performance-card__price {
      grid-column: 2;
      margin-top: -4px;
    }

    .fh-lens-block .fh-swatches {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fh-lens-block .fh-swatch {
      grid-template-columns: 30px minmax(0, 1fr) 12px;
      gap: 8px;
      padding: 8px;
    }

    .fh-lens-block .fh-swatch__preview {
      width: 30px;
      height: 30px;
    }

    .fh-lens-block .fh-next {
      width: 100%;
      min-width: 0;
    }

    .fh-lens-block .fh-step-footer {
      flex-direction: column;
      align-items: stretch;
    }

    .fh-lens-block .fh-edit {
      width: 100%;
      min-width: 0;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .fh-lens-block *,
    .fh-lens-block *::before,
    .fh-lens-block *::after {
      scroll-behavior: auto !important;
      transition-duration: .01ms !important;
    }
  }

  /* Inline multi-level presentation. The fullscreen configurator above remains the default flow. */
  .fh-lens-block .fh-inline-header {
    display: none;
  }

  .fh-lens-block--inline {
    --fh-inline-canvas: #f7f6f7;
    --fh-inline-line: #ded9df;
    --fh-inline-soft: #fff1f6;
    background: var(--fh-inline-canvas);
  }

  .fh-lens-block--inline .fh-lens-entry,
  .fh-lens-block--inline .fh-lens-entry__error {
    display: none;
  }

  .fh-lens-block--inline .fh-lens-entry {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 12px;
  }

  .fh-lens-block--inline .fh-lens-entry__button--primary {
    display: none;
  }

  .fh-lens-block--inline .fh-lens-entry__button--secondary {
    min-height: 42px;
    padding: 10px 18px;
    font-size: 11px;
  }

  .fh-lens-block--inline .fh-lens-entry__error {
    display: block;
  }

  .fh-lens-block--inline .fh-lens-overlay,
  .fh-lens-block--inline .fh-lens-overlay[hidden] {
    display: block !important;
    position: relative;
    inset: auto;
    z-index: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    background: transparent;
  }

  .fh-lens-block--inline .fh-lens-overlay__backdrop,
  .fh-lens-block--inline .fh-lens-close {
    display: none;
  }

  .fh-lens-block--inline .fh-lens-configurator {
    position: relative;
    display: grid;
    grid-template-columns: minmax(245px, .34fr) minmax(0, .66fr);
    width: 100%;
    height: auto;
    min-height: 620px;
    max-height: none;
    overflow: visible;
    border: 1px solid var(--fh-inline-line);
    background: #fff;
  }

  .fh-lens-block--inline .fh-lens-summary {
    position: sticky;
    top: 24px;
    align-self: start;
    display: grid;
    grid-template-rows: auto auto auto;
    min-height: 0;
    border-right: 1px solid var(--fh-inline-line);
    background: #fff;
  }

  .fh-lens-block--inline .fh-lens-summary__media {
    min-height: 190px;
    padding: 28px;
    background: #f1eff0;
  }

  .fh-lens-block--inline .fh-lens-summary__media img {
    width: min(82%, 280px);
    max-height: 240px;
  }

  .fh-lens-block--inline .fh-lens-summary__items {
    gap: 10px;
    padding: 22px 24px;
  }

  .fh-lens-block--inline .fh-lens-summary__total {
    padding: 18px 24px;
  }

  .fh-lens-block--inline .fh-lens-summary__total strong:last-child {
    font-size: 20px;
  }

  .fh-lens-block--inline .fh-lens-workspace {
    min-height: 620px;
    overflow: visible;
    background: var(--fh-inline-canvas);
  }

  .fh-lens-block--inline .fh-lens-progress {
    position: relative;
    top: auto;
    height: 5px;
  }

  .fh-lens-block--inline .fh-inline-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 34px 0;
  }

  .fh-lens-block--inline .fh-inline-header__eyebrow {
    margin: 0 0 9px;
    color: var(--fh-accent);
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 10px;
    letter-spacing: .16em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .fh-lens-block--inline .fh-inline-header h2 {
    margin: 0;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: clamp(24px, 3vw, 38px);
    font-weight: 800;
    letter-spacing: -.05em;
    line-height: .98;
  }

  .fh-lens-block--inline .fh-inline-header p:last-child {
    max-width: 560px;
    margin: 11px 0 0;
    color: var(--fh-muted);
    font-size: 13px;
    line-height: 1.5;
  }

  .fh-lens-block--inline .fh-inline-header__mark {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    flex: 0 0 auto;
    border: 1px solid var(--fh-accent);
    color: var(--fh-accent);
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -.08em;
  }

  .fh-lens-block--inline .fh-lens-step {
    width: 100%;
    padding: 30px 34px 34px;
  }

  .fh-lens-block--inline .fh-step-head--center {
    grid-template-columns: 32px minmax(0, 1fr) 32px;
    margin-bottom: 20px;
  }

  .fh-lens-block--inline .fh-step-title {
    font-size: clamp(23px, 2.5vw, 30px);
  }

  .fh-lens-block--inline .fh-choice-card,
  .fh-lens-block--inline .fh-lens-card,
  .fh-lens-block--inline .fh-index-card {
    border-color: var(--fh-inline-line);
    border-radius: 14px;
  }

  .fh-lens-block--inline .fh-choice-card:hover,
  .fh-lens-block--inline .fh-lens-card:hover,
  .fh-lens-block--inline .fh-index-card:hover,
  .fh-lens-block--inline .is-selected {
    border-color: var(--fh-accent);
  }

  .fh-lens-block--inline .fh-choice-card.is-selected,
  .fh-lens-block--inline .fh-lens-card.is-selected,
  .fh-lens-block--inline .fh-index-card.is-selected {
    background: var(--fh-inline-soft);
    box-shadow: inset 0 0 0 1px var(--fh-accent);
  }

  .fh-lens-block--inline .fh-choice-icon--boxed,
  .fh-lens-block--inline .fh-lens-card__icon,
  .fh-lens-block--inline .fh-index-card__icon {
    border-radius: 12px;
  }

  .fh-lens-block--inline .fh-rx-panel,
  .fh-lens-block--inline .fh-upload-panel,
  .fh-lens-block--inline .fh-later-panel,
  .fh-lens-block--inline .fh-review-panel {
    border-color: var(--fh-inline-line);
    background: #fff;
  }

  .fh-lens-block--inline .fh-step-footer {
    margin-top: 28px;
  }

  .fh-lens-block--inline .fh-next {
    min-width: 190px;
    border-radius: 999px;
  }

  .fh-lens-block--inline .fh-back-placeholder {
    display: block;
    width: 32px;
    height: 32px;
  }

  @media (max-width: 900px) {
    .fh-lens-block--inline .fh-lens-configurator {
      grid-template-columns: 1fr;
    }

    .fh-lens-block--inline .fh-lens-summary {
      position: relative;
      top: auto;
      grid-template-rows: auto auto;
      border-right: 0;
      border-bottom: 1px solid var(--fh-inline-line);
    }

    .fh-lens-block--inline .fh-lens-summary__media {
      display: none;
    }

    .fh-lens-block--inline .fh-lens-summary__items {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      padding: 18px 22px;
    }

    .fh-lens-block--inline .fh-lens-summary__items .fh-summary-line:first-child {
      grid-column: 1 / -1;
    }

    .fh-lens-block--inline .fh-lens-summary__total {
      border-top: 0;
      padding: 0 22px 18px;
    }

    .fh-lens-block--inline .fh-lens-workspace {
      min-height: 0;
    }
  }

  @media (max-width: 640px) {
    .fh-lens-block--inline .fh-inline-header {
      padding: 24px 20px 0;
    }

    .fh-lens-block--inline .fh-inline-header__mark {
      width: 40px;
      height: 40px;
      font-size: 16px;
    }

    .fh-lens-block--inline .fh-lens-step {
      padding: 24px 20px 26px;
    }

    .fh-lens-block--inline .fh-lens-summary__items {
      grid-template-columns: 1fr;
    }

    .fh-lens-block--inline .fh-lens-summary__items .fh-summary-line:first-child {
      grid-column: auto;
    }

    .fh-lens-block--inline .fh-lens-summary__total {
      padding-right: 20px;
      padding-left: 20px;
    }
  }

  /* Inline mode uses the product page as its visual context. Keep the
     multi-step workspace only; the fullscreen mode retains its summary panel. */
  .fh-lens-block--inline .fh-lens-configurator {
    grid-template-columns: minmax(0, 1fr);
  }

  .fh-lens-block--inline .fh-lens-summary {
    display: none;
  }

  /* Fullscreen keeps its original entry buttons. Inline mode renders Frame
     Only as a first-level choice and reuses these purchase-control styles. */
  .fh-lens-block--inline .fh-lens-entry {
    display: none;
  }

  .fh-inline-frame-only {
    display: none;
  }

  .fh-lens-block--inline .fh-inline-frame-only {
    display: block;
    margin-top: 18px;
  }

  /* Frame Only is a first-level lens choice in inline mode. Keep its
     quantity controls inside the same card language as the four
     prescription-type options above. */
  .fh-lens-block--inline .fh-choice-card--frame-only {
    display: block;
    padding: 0;
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 82px;
    padding: 16px 18px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--fh-ink);
    cursor: pointer;
    font: inherit;
    text-align: left;
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main:hover {
    background: transparent;
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main .fh-choice-icon svg {
    width: 40px;
    height: 32px;
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main .fh-card-chevron .fh-linear-icon {
    transition: transform .18s ease;
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main.is-open .fh-card-chevron .fh-linear-icon {
    transform: rotate(180deg);
  }

  .fh-lens-block--inline .fh-choice-card--frame-only.is-selected {
    background: var(--fh-inline-soft);
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-inline-frame-only__purchase {
    align-items: end;
    margin-top: 0;
    border: 0;
    border-top: 1px solid var(--fh-inline-line);
    border-radius: 0;
    background: #fff;
  }

  .fh-lens-block--inline .fh-choice-card--frame-only .fh-inline-frame-only__purchase[hidden] {
    display: none;
  }

  .fh-lens-block--inline .fh-inline-frame-only__option {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 16px 18px;
    border: 1px solid var(--fh-inline-line);
    border-radius: 14px;
    background: #fff;
    color: var(--fh-ink);
    cursor: pointer;
    text-align: left;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
  }

  .fh-lens-block--inline .fh-inline-frame-only__option:hover,
  .fh-lens-block--inline .fh-inline-frame-only__option.is-open {
    border-color: var(--fh-accent);
    background: var(--fh-inline-soft);
    box-shadow: inset 0 0 0 1px var(--fh-accent);
  }

  .fh-lens-block--inline .fh-inline-frame-only__icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid var(--fh-inline-line);
    border-radius: 12px;
    color: var(--fh-accent);
  }

  .fh-lens-block--inline .fh-inline-frame-only__icon svg {
    width: 27px;
    height: 21px;
  }

  .fh-lens-block--inline .fh-inline-frame-only__copy {
    display: grid;
    gap: 4px;
    min-width: 0;
  }

  .fh-lens-block--inline .fh-inline-frame-only__copy strong {
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -.01em;
    line-height: 1.2;
  }

  .fh-lens-block--inline .fh-inline-frame-only__copy small {
    color: var(--fh-muted);
    font-size: 12px;
    line-height: 1.4;
  }

  .fh-lens-block--inline .fh-inline-frame-only__chevron {
    width: 9px;
    height: 9px;
    justify-self: end;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .18s ease;
  }

  .fh-lens-block--inline .fh-inline-frame-only__option.is-open .fh-inline-frame-only__chevron {
    transform: rotate(225deg) translate(-1px, -1px);
  }

  .fh-lens-block--inline .fh-inline-frame-only__purchase {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-top: -1px;
    padding: 16px 18px 18px;
    border: 1px solid var(--fh-accent);
    border-top: 0;
    border-radius: 0 0 14px 14px;
    background: #fff;
  }

  .fh-lens-block--inline .fh-inline-frame-only__purchase[hidden] {
    display: none;
  }

  .fh-lens-block--inline .fh-frame-performance-purchase {
    margin-top: 18px;
    border-top: 1px solid var(--fh-accent);
    border-radius: 14px;
  }

  .fh-lens-block--inline .fh-inline-frame-only__quantity {
    display: grid;
    gap: 7px;
  }

  .fh-lens-block--inline .fh-inline-frame-only__quantity label {
    color: var(--fh-muted);
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 10px;
    letter-spacing: .14em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .fh-lens-block--inline .fh-inline-frame-only__stepper {
    display: grid;
    grid-template-columns: 34px 54px 34px;
    min-height: 42px;
    border: 1px solid var(--fh-inline-line);
    border-radius: 999px;
    overflow: hidden;
  }

  .fh-lens-block--inline .fh-inline-frame-only__stepper button,
  .fh-lens-block--inline .fh-inline-frame-only__stepper input {
    min-width: 0;
    border: 0;
    background: #fff;
    color: var(--fh-ink);
    text-align: center;
  }

  .fh-lens-block--inline .fh-inline-frame-only__stepper button {
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
  }

  .fh-lens-block--inline .fh-inline-frame-only__stepper button:hover {
    background: var(--fh-inline-soft);
    color: var(--fh-accent);
  }

  .fh-lens-block--inline .fh-inline-frame-only__stepper input {
    border-right: 1px solid var(--fh-inline-line);
    border-left: 1px solid var(--fh-inline-line);
    -moz-appearance: textfield;
  }

  .fh-lens-block--inline .fh-inline-frame-only__stepper input::-webkit-outer-spin-button,
  .fh-lens-block--inline .fh-inline-frame-only__stepper input::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
  }

  .fh-lens-block--inline .fh-inline-frame-only__add {
    min-height: 44px;
    min-width: 170px;
    padding: 11px 22px;
    border: 1px solid var(--fh-accent);
    border-radius: 999px;
    background: var(--fh-accent);
    color: #fff;
    cursor: pointer;
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
  }

  .fh-lens-block--inline .fh-inline-frame-only__add:hover {
    border-color: var(--fh-ink);
    background: var(--fh-ink);
  }

  .fh-lens-block--inline .fh-inline-frame-only__add[disabled],
  .fh-lens-block--inline .fh-inline-frame-only__stepper button[disabled] {
    cursor: wait;
    opacity: .55;
  }

  .fh-lens-block--inline .fh-step-head--inline-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
    padding-right: 0;
  }

  .fh-lens-block--inline .fh-step-title-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: 100%;
  }

  .fh-lens-block--inline .fh-step-head--inline-title .fh-step-title {
    text-align: left;
  }

  .fh-lens-block--inline .fh-step-help--title {
    flex: 0 0 auto;
    gap: 8px;
    font-size: 12px;
    white-space: nowrap;
  }

  .fh-lens-block--inline .fh-step-help--title::before {
    display: none;
  }

  .fh-lens-block--inline .fh-step-help__icon {
    display: inline-grid;
    width: 19px;
    height: 19px;
    place-items: center;
    border-radius: 50%;
    background: var(--fh-accent);
    color: #fff;
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }

  .fh-lens-block--inline .fh-inline-selection {
    display: grid;
    gap: 9px;
    margin: 20px 34px 0;
    padding: 14px 16px 15px;
    border: 1px solid var(--fh-inline-line);
    border-radius: 14px;
    background: #fff;
  }

  .fh-lens-block--inline .fh-inline-selection[hidden] {
    display: none;
  }

  .fh-lens-block--inline .fh-inline-selection__heading {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--fh-ink);
    font-family: var(--title-font-family, "Space Grotesk", sans-serif);
    font-size: 14px;
    font-weight: 750;
    line-height: 1.25;
  }

  .fh-lens-block--inline .fh-inline-selection__dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fh-accent);
  }

  .fh-lens-block--inline .fh-inline-selection p {
    margin: 0;
    padding: 10px 13px;
    border: 1px solid #eadfe5;
    border-radius: 10px;
    background: var(--fh-inline-soft);
    color: var(--fh-ink);
    font-size: 13px;
    line-height: 1.4;
  }

  @media (max-width: 640px) {
    .fh-lens-block--inline .fh-step-title-group {
      align-items: flex-start;
      flex-direction: column;
      gap: 10px;
    }

    .fh-lens-block--inline .fh-step-help--title {
      white-space: normal;
    }

    .fh-lens-block--inline .fh-inline-selection {
      margin-right: 20px;
      margin-left: 20px;
    }

    .fh-lens-block--inline .fh-inline-frame-only__purchase {
      align-items: stretch;
      flex-direction: column;
    }

    .fh-lens-block--inline .fh-inline-frame-only__add {
      width: 100%;
    }

    .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main {
      grid-template-columns: 42px minmax(0, 1fr) 20px;
      gap: 10px;
      min-height: 76px;
      padding: 14px 16px;
    }

    .fh-lens-block--inline .fh-choice-card--frame-only .fh-choice-card__main .fh-choice-icon svg {
      width: 34px;
      height: 28px;
    }
  }

  /* Keep the prescription matrix readable on narrow cards. The desktop
     table keeps its comfortable minimums; mobile columns may shrink instead
     of forcing the shopper to drag a wide horizontal strip. */
  @media (max-width: 640px) {
    .fh-lens-block .fh-rx-table,
    .fh-lens-block .fh-rx-table--add {
      width: 100%;
      min-width: 0;
    }

    .fh-lens-block .fh-rx-table {
      grid-template-columns: minmax(78px, .9fr) repeat(3, minmax(0, 1fr));
    }

    .fh-lens-block .fh-rx-table--add {
      grid-template-columns: minmax(74px, .85fr) repeat(4, minmax(0, 1fr));
    }

    .fh-lens-block .fh-prism-grid {
      width: 100%;
      min-width: 0;
      grid-template-columns: minmax(74px, .8fr) repeat(4, minmax(0, 1fr));
    }

    .fh-lens-block .fh-rx-cell {
      min-width: 0;
      min-height: 48px;
      padding: 7px 4px;
      font-size: 12px;
    }

    .fh-lens-block .fh-rx-cell--head {
      font-size: 11px;
      letter-spacing: .02em;
    }

    .fh-lens-block .fh-rx-cell--eye {
      min-width: 0;
      padding-right: 3px;
      padding-left: 8px;
      font-size: 11px;
      white-space: nowrap;
    }

    .fh-lens-block .fh-rx-cell select {
      min-width: 0;
      padding: 0 1px;
      font-size: 12px;
    }
  }

  /* Inline mobile polish: keep the product-page flow spacious and let the
     step title follow the same left edge as the cards below it. */
  .fh-lens-block--inline .fh-lens-configurator,
  .fh-lens-block--inline .fh-lens-workspace,
  .fh-lens-block--inline .fh-lens-step {
    width: 100%;
    max-width: 100%;
    margin-top: 24px;
    border-top: 1px solid var(--fh-inline-line);
  }

  /* The inline configurator already sits directly in the product-info flow.
     Remove the duplicate outer offsets so the progress bar starts at the
     panel edge instead of leaving a blank band above it. Step-level spacing
     remains unchanged below. */
  .fh-lens-block--inline .fh-lens-configurator {
    margin-top: 0;
  }

  .fh-lens-block--inline .fh-lens-workspace {
    margin-top: 0;
    border-top: 0;
  }

  .fh-lens-block--inline .fh-step-head--center {
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    justify-items: start;
    gap: 16px;
  }

  .fh-lens-block--inline .fh-step-head--center > span:last-child {
    display: none;
  }

  .fh-lens-block--inline .fh-step-head--center .fh-step-title {
    width: 100%;
    text-align: left;
  }

  .fh-lens-block--inline .fh-notice {
    margin-top: 16px;
    margin-bottom: 0;
  }

  /* Current selection is a quiet status strip rather than a second card. */
  .fh-lens-block--inline .fh-inline-selection {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    min-width: 0;
    margin: 24px 34px 0;
    padding: 13px 18px 13px 21px;
    border: 1px solid #e3dce2;
    border-radius: 12px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 7px 18px rgba(42, 27, 37, .045);
  }

  .fh-lens-block--inline .fh-inline-selection::before {
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--fh-accent);
    content: "";
  }

  .fh-lens-block--inline .fh-inline-selection__heading {
    gap: 7px;
    color: var(--fh-muted);
    font-family: var(--title-font-family, "Space Mono", monospace);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .1em;
    line-height: 1.25;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .fh-lens-block--inline .fh-inline-selection__dot {
    width: 5px;
    height: 5px;
  }

  .fh-lens-block--inline .fh-inline-selection p {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--fh-ink);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.4;
    overflow-wrap: anywhere;
    text-align: right;
  }

  @media (max-width: 640px) {
    .fh-lens-block--inline .fh-inline-header {
      padding-right: 16px;
      padding-left: 16px;
    }

    .fh-lens-block--inline .fh-inline-header h2 {
      font-size: clamp(25px, 7vw, 31px);
    }

    .fh-lens-block--inline .fh-inline-header p:last-child {
      max-width: 34em;
      font-size: 13px;
    }

    .fh-lens-block--inline .fh-lens-step {
      padding-right: 16px;
      padding-left: 16px;
      margin-top: 20px;
    }

    .fh-lens-block--inline .fh-step-head--center {
      grid-template-columns: 32px minmax(0, 1fr);
      gap: 12px;
      margin-bottom: 18px;
    }

    .fh-lens-block--inline .fh-step-title {
      font-size: clamp(22px, 6vw, 27px);
    }

    .fh-lens-block--inline .fh-inline-selection {
      grid-template-columns: 1fr;
      align-items: start;
      gap: 6px;
      margin: 18px 16px 0;
      padding: 12px 14px 13px 17px;
    }

    .fh-lens-block--inline .fh-inline-selection p {
      font-size: 13px;
      text-align: left;
    }

    .fh-lens-block--inline .fh-notice {
      margin-top: 14px;
    }

    .fh-lens-block--inline .fh-notice--upgrade {
      align-items: start;
      gap: 7px;
      padding: 11px 13px 12px;
    }

    .fh-lens-block--inline .fh-notice--upgrade__tags {
      flex-basis: 100%;
      flex-wrap: wrap;
      justify-content: flex-start;
      gap: 6px;
    }

    .fh-lens-block--inline .fh-notice--upgrade__tag {
      flex: 0 0 auto;
      min-width: 0;
      padding-right: 7px;
      padding-left: 7px;
      font-size: 10px;
    }

    .fh-lens-block--inline .fh-notice--upgrade__tag::before {
      margin-right: 4px;
      font-size: 10px;
    }

    .fh-lens-block--inline .fh-notice--upgrade__badge {
      width: max-content;
    }
  }
