/* Nexseo Gift Cards – minimal styles; inherits the theme (Flatsome) look. */
.ngc-form fieldset { border: 0; padding: 0; margin: 0 0 1.2em; width: 100%; min-width: 0; }
/* Themes like Flatsome make form.cart a flex row; the gift card form needs to stack. */
form.cart.ngc-form { display: block; }
.ngc-form legend { font-weight: 600; margin-bottom: .5em; padding: 0; }
.ngc-choices { display: flex; flex-wrap: wrap; gap: .5em; }
.ngc-choice { position: relative; margin: 0; }
.ngc-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ngc-choice > span { display: inline-block; min-width: 4.5em; padding: .55em 1em; border: 1px solid currentColor; border-radius: 4px; text-align: center; cursor: pointer; opacity: .75; }
.ngc-choice > input:checked + span { opacity: 1; font-weight: 700; box-shadow: inset 0 0 0 2px currentColor; }
.ngc-choice > input:focus-visible + span { outline: 2px solid; outline-offset: 2px; }
.ngc-custom { margin-top: .8em; }
.ngc-design-choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: .6em; }
.ngc-design { position: relative; margin: 0; cursor: pointer; text-align: center; font-size: .85em; }
.ngc-design input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ngc-design img { display: block; width: 100%; height: auto; aspect-ratio: 1.6; object-fit: cover; border-radius: 6px; border: 2px solid transparent; opacity: .8; }
.ngc-design input:checked + img { border-color: currentColor; opacity: 1; box-shadow: 0 0 0 2px rgba(0,0,0,.08); }
.ngc-design input:focus-visible + img { outline: 2px solid; outline-offset: 2px; }
.ngc-design span { display: block; margin-top: .3em; }
.ngc-form [hidden] { display: none !important; }
.ngc-count { display: block; opacity: .7; text-align: right; }
.ngc-paper-note { font-size: .9em; opacity: .85; }
.ngc-submit { display: flex; gap: .5em; align-items: center; flex-wrap: wrap; }
.ngc-redeem { margin: 1em 0; }
.ngc-redeem__label { display: block; font-weight: 600; margin-bottom: .3em; }
.ngc-redeem__row { display: flex; gap: .5em; }
.ngc-redeem .ngc-redeem__row .ngc-redeem__input { flex: 1 1 8em; min-width: 0; width: auto; margin: 0; text-transform: uppercase; }
.ngc-redeem .ngc-redeem__row .button { flex: 0 0 auto; width: auto; min-width: 0; margin: 0; white-space: nowrap; }
.ngc-redeem__msg:empty { display: none; }
.ngc-redeem__msg { margin: .5em 0 0; font-size: .9em; }
.ngc-redeem__msg.is-error { color: #b20000; }
.ngc-redeem.is-loading { opacity: .6; }
.ngc-balance-form .ngc-redeem__row { max-width: 32em; }
.ngc-balance-result { margin-top: 1em; padding: 1em; border: 1px solid rgba(0,0,0,.1); border-radius: 4px; }

/* Delivery choice cards. */
.ngc-delivery { display: grid; gap: .6em; }
.ngc-delivery__opt { position: relative; display: block; margin: 0; cursor: pointer; }
.ngc-delivery__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ngc-delivery__box { display: grid; grid-template-columns: auto 1fr; column-gap: .9em; align-items: center; padding: .85em 1em; border: 1px solid rgba(0,0,0,.15); border-radius: 10px; transition: border-color .15s, box-shadow .15s, background-color .15s; }
.ngc-delivery__icon { grid-row: span 2; display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; background: rgba(0,0,0,.04); }
.ngc-delivery__title { font-weight: 600; line-height: 1.3; }
.ngc-delivery__title small { font-weight: 400; opacity: .7; margin-left: .3em; }
.ngc-delivery__help { font-size: .88em; line-height: 1.4; opacity: .75; }
.ngc-delivery__opt:hover .ngc-delivery__box { border-color: currentColor; }
.ngc-delivery__opt input:checked + .ngc-delivery__box { border-color: currentColor; box-shadow: inset 0 0 0 1px currentColor; background: rgba(0,0,0,.02); }
.ngc-delivery__opt input:focus-visible + .ngc-delivery__box { outline: 2px solid; outline-offset: 2px; }
.ngc-note { margin: .8em 0 0; font-size: .9em; opacity: .85; }
.ngc-form [data-ngc-show]:not([hidden]) { animation: ngc-in .25s ease-out; }
@keyframes ngc-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .ngc-form [data-ngc-show]:not([hidden]) { animation: none; } }
