/* Direct-RC3 Gift Card configurator. The existing shell and commerce stay native. */
.aba-v1 .gc-app { --gc-ink: #2e2e2e; --gc-muted: #595959; --gc-line: #93877b; width: calc(100% - 64px); max-width: 1320px; padding-bottom: 48px; color: var(--gc-ink); }
.gc-app *, .gc-app *::before, .gc-app *::after { box-sizing: border-box; }
.gc-app .gc-intro { position: relative; isolation: isolate; overflow: hidden; min-height: 228px; display: flex; align-items: center; margin: 18px 0 32px; padding: 26px 42px; background: #f7e0be; }
.gc-app .gc-hero-image { position: absolute; z-index: -2; right: 0; top: 0; width: 65%; height: 100%; object-fit: cover; object-position: 75% 35%; }
.gc-app .gc-intro::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #f7e0be 36%, #f7e0be00 67%); pointer-events: none; }
.gc-app .gc-hero-copy { max-width: 45%; }
.gc-app .gc-hero-copy > p:last-child { max-width: 32ch; text-wrap: balance; }
.gc-app h1 { font-size: clamp(40px, 4.5vw, 64px); font-weight: 300; letter-spacing: -.03em; line-height: 1.05; margin: 0 0 12px; }
.gc-app .gc-intro p { margin: 0; font-size: 16px; line-height: 1.5; }
.gc-app .gc-intro .gc-intro-title { font-size: 26px; font-weight: 400; margin-bottom: 8px; }
.gc-app .gc-configurator { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(300px, 1.3fr) minmax(300px, 1.15fr); gap: 0 36px; align-items: start; background: #fff; padding: 0; }
.gc-app fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
.gc-app legend, .gc-app .gc-preview h2 { float: none; width: 100%; padding: 0; margin: 0 0 24px; font-size: 22px; line-height: 1.3; font-weight: 400; }
.gc-app .gc-step { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: 6px; border-radius: 50%; background: #f7e0be; font-size: 14px; font-weight: 500; vertical-align: 2px; }
.gc-app .gc-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.gc-app .gc-option { position: relative; display: block; cursor: pointer; margin: 0; }
.gc-app .gc-option input { position: absolute; inset: 0; opacity: 0; margin: 0; width: 100%; height: 100%; cursor: pointer; }
.gc-app .gc-option span { display: grid; place-items: center; min-height: 48px; padding: 10px 4px; border: 1px solid var(--gc-line); border-radius: 6px; background: #fff; font-size: 16px; font-weight: 500; font-variant-numeric: tabular-nums; }
.gc-app .gc-option input:checked + span { background: #fb756a; border: 2px solid var(--gc-ink); padding: 9px 3px; }
.gc-app .gc-option:hover span { border-color: var(--gc-ink); }
.gc-app .gc-option input:focus-visible + span, .gc-app :focus-visible { outline: 3px solid var(--gc-ink); outline-offset: 3px; }
.gc-app .gc-preview { min-width: 0; margin: 0; }
.gc-app .gc-card-stage { display: grid; place-items: center; aspect-ratio: auto; overflow: hidden; background: transparent; border-radius: 12px; }
.gc-app .gc-card-stage img { display: block; width: 100%; height: auto; object-fit: contain; }
.gc-app .gc-preview-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0 20px; font-size: 16px; }
.gc-app .gc-preview-caption strong { font-size: 26px; font-weight: 500; font-variant-numeric: tabular-nums; }
.gc-app .gc-design-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.gc-app .gc-design-option { position: relative; min-width: 0; margin: 0; cursor: pointer; }
.gc-app .gc-design-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.gc-app .gc-design-option > span { display: block; border: 2px solid #dfd5c8; border-radius: 8px; overflow: hidden; }
.gc-app .gc-design-option img { display: block; width: 100%; height: auto; object-fit: contain; background: transparent; }
.gc-app .gc-design-option strong { display: block; padding: 10px 8px; font-size: 14px; font-weight: 500; line-height: 1.35; text-align: center; }
.gc-app .gc-design-option input:checked + span { border-color: #007e9b; }
.gc-app .gc-design-option input:checked + span strong { background: #00d6fa; color: #2e2e2e; }
.gc-app .gc-design-option:hover > span { border-color: #2e2e2e; }
.gc-app .gc-design-option input:focus-visible + span { outline: 3px solid #2e2e2e; outline-offset: 3px; }
.gc-app .gc-design-option input:disabled + span { opacity: .65; cursor: wait; }
.gc-app .gc-personalization { padding-left: 28px; border-left: 1px solid #e5dcd2; }
.gc-app .gc-required { font-size: 12px; color: var(--gc-muted); margin: -12px 0 18px; }
.gc-app .gc-personalization > label { display: block; margin: 0 0 7px; font-size: 14px; line-height: 1.4; }
.gc-app label small { font-size: 12px; color: var(--gc-muted); }
.gc-app .gc-personalization input, .gc-app textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--gc-line); border-radius: 6px; color: var(--gc-ink); background: #fff; font: 400 16px/1.4 ElevanceSans, sans-serif; caret-color: var(--gc-ink); }
.gc-app .gc-personalization > input { margin: 0 0 16px; }
.gc-app textarea { display: block; resize: vertical; min-height: 80px; max-height: 200px; }
.gc-app input::placeholder, .gc-app textarea::placeholder { color: var(--gc-muted); opacity: 1; }
.gc-app .gc-message-help { display: flex; justify-content: space-between; gap: 8px; margin: 6px 0 18px; font-size: 12px; color: var(--gc-muted); }
.gc-app .gc-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid #dfd5c8; padding-top: 16px; margin-bottom: 18px; }
.gc-app .gc-summary label { font-size: 13px; margin: 0; }
.gc-app .gc-summary input { display: block; width: 76px; margin-top: 6px; }
.gc-app .gc-summary p { margin: 0; font-size: 12px; text-align: right; }
.gc-app .gc-summary strong { display: block; font-size: 26px; font-weight: 500; margin-top: 6px; font-variant-numeric: tabular-nums; }
.gc-app .gc-add, .gc-app .gc-continue { display: flex; justify-content: center; align-items: center; gap: 14px; width: 100%; min-height: 48px; padding: 12px 18px; border: 0; border-radius: 6px; background: #2e2e2e; color: #fff; font: 500 16px/1.3 ElevanceSans, sans-serif; cursor: pointer; }
.gc-app .gc-add:hover { background: #48403b; }
.gc-app :disabled { cursor: wait; }
.gc-app .gc-add:disabled, .gc-app fieldset:disabled { opacity: .65; }
.gc-app .gc-continue { display: none; }
.gc-app .gc-status { grid-column: 3; margin: 12px 0 0; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.gc-app .gc-status:empty { margin: 0; }
.gc-app .gc-empty { padding: 40px 0; }
.gc-app ::selection { background: #f7e0be; color: #2e2e2e; }
@media (max-width: 1100px) {
  .gc-app .gc-configurator { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 28px; padding: 0; }
  .gc-app .gc-preview { grid-column: 1; grid-row: 2; margin: 0; }
  .gc-app .gc-personalization { grid-column: 2; grid-row: 1 / 3; }
  .gc-app .gc-options { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .gc-app .gc-status { grid-column: 2; }
}
@media (max-width: 700px) {
  .aba-v1 .gc-app { width: calc(100% - 32px); padding-bottom: 32px; }
  .gc-app .gc-intro { display: flex; min-height: 190px; margin: 12px -16px 24px; padding: 22px 20px; }
  .gc-app .gc-hero-image { width: 72%; object-position: 79% center; }
  .gc-app .gc-intro::after { background: linear-gradient(90deg, #f7e0be 29%, #f7e0be00 78%); }
  .gc-app .gc-hero-copy { max-width: 55%; }
  .gc-app .gc-hero-copy > p:last-child { max-width: 20ch; }
  .gc-app h1 { font-size: 36px; margin-bottom: 12px; }
  .gc-app .gc-intro .gc-intro-title { font-size: 23px; margin-bottom: 2px; }
  .gc-app .gc-intro p { font-size: 14px; }
  .gc-app .gc-configurator { display: flex; flex-direction: column; gap: 24px; padding: 0; }
  .gc-app fieldset, .gc-app .gc-preview { width: 100%; }
  .gc-app legend, .gc-app .gc-preview h2 { font-size: 21px; margin-bottom: 18px; }
  .gc-app .gc-options { gap: 7px; }
  .gc-app .gc-option span { font-size: 13px; min-height: 46px; }
  .gc-app .gc-preview { margin: 0; }
  .gc-app .gc-continue:not([hidden]) { display: flex; margin-top: 18px; background: transparent; border: 1px solid var(--gc-ink); color: var(--gc-ink); }
  .gc-app .gc-personalization { border: 0; border-top: 1px solid #dfd5c8; padding: 0; scroll-margin-top: 120px; }
  .gc-app .gc-personalization legend { padding-top: 24px; }
  .gc-app .gc-required { margin-top: -8px; }
  .gc-app .gc-status { margin: -12px 0 0; }
}

/* Keep the guided destination visible without placing headings in the Tab order. */
.gc-app legend[tabindex="-1"]:focus{outline:3px solid var(--gc-ink);outline-offset:4px}
