/* Voucher-only components; shared cards, buttons, type and forms come from the site stylesheet. */
body.voucher-unavailable-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
.voucher-unavailable-page > header,
.voucher-unavailable-page > footer {
  flex-shrink: 0;
}
.voucher-unavailable-page > #gift-vouchers {
  display: flex;
  flex: 1 0 auto;
  align-items: center;
  overflow: visible;
}
.voucher-unavailable-page > #gift-vouchers > section {
  width: 100%;
  padding-bottom: 0;
}
.voucher-unavailable-page > footer {
  margin-top: auto;
}
#gift-vouchers {
  overflow-x: hidden;
}
#gift-vouchers [hidden] {
  display: none !important;
}
#gift-collection {
  scroll-margin-top: 110px;
}
.gift-eyebrow {
  font-size: var(--font-size-10px);
  font-weight: var(--font-weight-500);
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
.gift-intro-copy {
  padding-right: 32px;
}
.gift-intro-copy h1 {
  letter-spacing: -1.2px;
  line-height: 1.2;
}
.gift-intro-copy > p.font-16 {
  max-width: 600px;
  color: var(--text-light);
  line-height: 1.85;
}
.gift-intro-notes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 24px;
  color: var(--text-light);
  font-size: var(--font-size-12px);
}
.gift-intro-notes span + span {
  padding-left: 16px;
  border-left: 1px solid var(--border-default);
}
.gift-hero {
  position: relative;
  padding-bottom: 32px;
}
.gift-hero > img {
  width: 100%;
  height: 340px;
  object-fit: cover;
  border-radius: var(--radius-24px);
}
.gift-hero-ticket {
  position: absolute;
  right: 24px;
  bottom: -28px;
  left: 24px;
  padding: 24px 24px;
  background: #ffffffe5;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-16px);
  box-shadow: var(--shadow-xl);
}
.gift-hero-ticket strong {
  display: block;
  margin: 8px 0 16px;
  color: var(--text-dark);
  font-size: var(--font-size-24px);
  line-height: 1.3;
}
.gift-hero-ticket > span:last-child {
  color: var(--text-light);
  font-size: var(--font-size-12px);
}
.gift-filter-row {
  gap: 8px;
  padding: 16px 0 24px;
  border-bottom: 1px solid var(--border-default);
}
.gift-filters {
  gap: 8px;
}
.gift-filters .btn-outline-secondary {
  border-color: var(--border-default);
}
.gift-result-count {
  flex: 0 0 auto;
  font-size: var(--font-size-12px);
}
.gift-card {
  overflow: hidden;
}
.gift-card-external[data-external-voucher-url] {
  cursor: pointer;
}
.gift-card-external[data-external-voucher-url]:hover .gift-card-title-link {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.gift-card-layout {
  display: block !important;
  height: 100%;
  color: var(--text-default);
}
.gift-card-title-link {
  color: var(--text-dark);
}
.gift-card-title-link:hover,
.gift-card-title-link:focus {
  color: var(--primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.gift-card-media {
  position: relative;
  width: 100%;
  padding: 0;
}
.gift-card-media .package-img {
  height: 210px;
  margin-bottom: 0;
  border-radius: var(--radius-16px);
}
.gift-category-badge {
  position: absolute;
  top: 12px;
  left: 12px;
}
.gift-offer-badge {
  position: static;
  align-self: flex-start;
  margin-bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 10px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid var(--success-light);
  border-radius: var(--radius-30px);
  color: var(--success-dark);
  font-size: var(--font-size-10px);
  font-weight: var(--font-weight-500);
  line-height: 1;
  box-shadow: 0 6px 18px rgba(20, 103, 41, 0.16);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.gift-offer-badge strong {
  color: var(--success-dark);
  font-size: var(--font-size-11px);
  font-weight: var(--font-weight-700);
  letter-spacing: 0.15px;
  text-transform: uppercase;
  white-space: nowrap;
}
.gift-offer-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  background: var(--success);
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(52, 168, 83, 0.14);
}
.gift-card-content {
  display: flex;
  width: 100%;
  flex-direction: column;
  padding: 16px 8px 8px;
}
.gift-card-content .card-title {
  margin-bottom: 8px;
  font-size: var(--font-size-16px);
  line-height: 24px;
}
.gift-card-description {
  display: -webkit-box;
  color: var(--text-light);
  line-height: 1.65;
}
.gift-how .card {
  border: 1px solid var(--border-default);
  border-radius: var(--radius-16px);
}
.gift-how .card p:not(.gift-eyebrow) {
  color: var(--text-light);
  font-size: var(--font-size-14px);
  line-height: 1.8;
}
/* Product-style details page. */
.voucher-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  color: var(--text-light);
  font-size: var(--font-size-12px);
}
.voucher-breadcrumb li + li::before {
  content: "/";
  margin-right: 8px;
  color: var(--text-muted);
}
.voucher-breadcrumb a {
  color: var(--text-light);
}
.voucher-gallery {
  position: sticky;
  top: 110px;
}
.voucher-main-image {
  display: block;
  width: 100%;
  height: 500px;
  object-fit: cover;
  border-radius: var(--radius-16px);
}
.voucher-preview {
  position: relative;
  margin: 0 16px;
  padding: 0 24px 24px;
  background: #fff;
  border-radius: 0 0 var(--radius-16px) var(--radius-16px);
  box-shadow: var(--shadow-xl);
}
.voucher-preview-header {
  position: absolute;
  right: 0;
  bottom: 100%;
  left: 0;
  padding: 24px 24px;
  background: #ffffffe5;
  border-radius: var(--radius-16px) var(--radius-16px) 0 0;
  box-shadow: 0 -10px 24px rgba(34, 34, 34, 0.08);
}
.voucher-preview-header > strong {
  display: block;
  margin: 8px 0 0;
  color: var(--text-dark);
  font-size: var(--font-size-22px);
  font-weight: var(--font-weight-700);
  line-height: 1.35;
}
.voucher-preview-about {
  padding-top: 24px;
}
.voucher-preview > .voucher-preview-about:first-of-type {
  border-top: 1px solid var(--border-default);
}
.voucher-preview-about .gift-eyebrow,
.voucher-preview-about h2 {
  margin-bottom: 8px;
}
.voucher-preview .voucher-info-card {
  height: auto;
  margin-top: 20px;
  padding: 16px;
  background: var(--bg-light);
}
.voucher-buy-box {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
  background: white;
  min-width: 0;
  padding: 0;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-16px);
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.06);
}
.voucher-buy-content {
  min-height: 0;
  padding: 24px;
}
.voucher-buy-footer {
  position: relative;
  z-index: 1;
  flex: 0 0 auto;
  padding: 16px;
  background: #fff;
  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08);
}
.voucher-buy-footer #voucher-enquiry {
  margin: 0;
}
.voucher-detail-title {
  font-size: var(--font-size-22px);
  line-height: 1.25;
}
@media (min-width: 992px) {
  #gift-vouchers {
    overflow: visible;
    overflow-x: clip;
  }
  .voucher-buy-column {
    align-self: stretch;
  }
  .voucher-buy-box {
    position: sticky;
    top: var(--voucher-sticky-top, 116px);
    max-height: calc(100vh - var(--voucher-sticky-top, 116px) - 16px);
  }
  .voucher-buy-content {
    overflow-y: auto;
  }
}
.voucher-rating-line {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border-default);
  font-size: var(--font-size-12px);
}
.voucher-rating-line strong {
  color: var(--text-dark);
}
.voucher-price-range {
  margin: 12px 0 8px;
  color: var(--text-dark);
  font-size: var(--font-size-26px);
  font-weight: var(--font-weight-700);
}
.voucher-discount {
  margin-left: 8px;
  color: var(--success-dark);
  font-size: var(--font-size-13px);
  font-weight: var(--font-weight-700);
}
.voucher-field-label {
  display: block;
  margin: 24px 0 8px;
  font-size: var(--font-size-13px);
  font-weight: var(--font-weight-600);
}
.voucher-amount-wrap {
  display: flex;
  width: 240px;
  max-width: 100%;
  flex: 0 1 240px;
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--text-dark);
  border-radius: var(--radius-6px);
  background: var(--bg-default);
}
.voucher-amount-wrap:focus-within {
  box-shadow: 0 0 0 1px var(--text-dark);
}
.voucher-currency {
  display: flex;
  align-self: stretch;
  align-items: center;
  padding-right: 8px;
  padding-left: 16px;
  font-size: var(--font-size-14px);
  font-weight: var(--font-weight-600);
  color: var(--text-default);
}
.voucher-amount {
  width: 100%;
  min-width: 0;
  height: 40px;
  flex: 1;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 8px;
  border: 0;
  font-size: var(--font-size-16px);
  font-weight: var(--font-weight-600);
  line-height: 40px;
  outline: 0;
}
.voucher-amount::placeholder {
  font-size: var(--font-size-12px);
  font-weight: var(--font-weight-500);
}
#gift-vouchers .voucher-amount,
#gift-vouchers .voucher-amount:hover,
#gift-vouchers .voucher-amount:active,
#gift-vouchers .voucher-amount:focus {
  border: 0 !important;
  border-left: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
#gift-vouchers .voucher-amount[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
#gift-vouchers .voucher-amount::-webkit-inner-spin-button,
#gift-vouchers .voucher-amount::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
}
.voucher-amount-options {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.voucher-preset-options {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: 8px;
}
.voucher-amount-options > .btn,
.voucher-preset-options > .btn {
  min-width: 0;
  height: 32px;
  flex: 0 0 auto;
  padding: 0 16px;
  background: var(--white);
  border-color: var(--border-dark);
  border-radius: 8px;
  color: var(--text-dark);
  font-size: var(--font-size-12px);
  font-weight: var(--font-weight-500);
}
.voucher-amount-options > .btn:hover,
.voucher-amount-options > .btn:focus,
.voucher-preset-options > .btn:hover,
.voucher-preset-options > .btn:focus {
  background: #333;
  border-color: #333;
  color: var(--white);
}
.voucher-amount-options > .btn.active,
.voucher-amount-options > .btn.active:hover,
.voucher-amount-options > .btn.active:focus,
.voucher-preset-options > .btn.active,
.voucher-preset-options > .btn.active:hover,
.voucher-preset-options > .btn.active:focus {
  background: #333;
  border-color: #333;
  color: var(--white);
  box-shadow: none;
  font-weight: var(--font-weight-700);
}
.voucher-amount-options > .btn:disabled,
.voucher-preset-options > .btn:disabled {
  background: var(--bg-default);
  opacity: 0.45;
}
.voucher-amount-help {
  min-height: 16px;
  margin-top: 8px;
  font-size: var(--font-size-11px);
}
.voucher-amount-help.is-error {
  color: var(--primary);
}
.voucher-benefits {
  padding: 1px 0 0;
}
.voucher-benefits div {
  display: flex;
  gap: 8px;
  margin: 8px 0;
  font-size: var(--font-size-13px);
  align-items: center;
}
.voucher-benefits .bi {
  flex: 0 0 1em;
  color: var(--success-dark);
  font-weight: var(--font-weight-700);
}
.voucher-buy-box .btn-block {
  width: 100%;
}
.voucher-terms-link {
  display: block;
  margin-top: 8px;
  font-size: var(--font-size-11px);
  text-align: center;
}

.voucher-terms-link, .voucher-terms-link:hover, .voucher-terms-link:focus {
  color:var(--anchor-link);
  text-decoration:underline;
  font-weight:500
}
.voucher-info-card {
  padding: 24px;
  border: 1px solid var(--border-default);
  border-radius: var(--radius-16px);
  height: 100%;
}
.voucher-info-card ul {
  margin-bottom: 0;
  padding-left: 24px;
}
#gift-vouchers :focus-visible {
  outline: 2px solid var(--text-default);
  outline-offset: 3px;
}
@media (max-width: 991px) {
  #gift-vouchers .container {
    width: 100vw;
    max-width: 100vw;
    overflow: hidden;
  }
  #gift-vouchers .row {
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
  }
  #gift-vouchers [class*="col-"] {
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 0;
  }
  .gift-intro-copy {
    padding-right: 16px;
  }
  .gift-intro-copy h1 {
    letter-spacing: -0.7px;
  }
  .gift-intro-notes {
    gap: 8px;
    font-size: var(--font-size-10px);
  }
  .gift-intro-notes span + span {
    padding-left: 8px;
  }
  .gift-hero > img {
    height: 300px;
  }
  .gift-hero-ticket {
    right: 16px;
    left: 16px;
    padding: 16px 16px;
  }
  .gift-filter-row {
    align-items: flex-start !important;
  }
  .gift-filters {
    width: 100%;
    flex-wrap: nowrap !important;
    padding-bottom: 8px;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .gift-filters::-webkit-scrollbar {
    display: none;
  }
  .gift-filters .btn {
    flex: 0 0 auto;
    padding: 8px 16px;
    font-size: var(--font-size-12px);
  }
  .gift-card-layout {
    display: flex !important;
    align-items: stretch;
    height: auto;
  }
  .gift-card-media {
    width: 35%;
    flex: 0 0 35%;
    padding-right: 8px;
  }
  .gift-card-media .package-img {
    position: absolute;
    top: 0;
    left: 0;
    width: calc(100% - 8px);
    height: 100%;
    object-fit: cover;
  }
  .gift-offer-badge {
    padding: 6px 8px;
  }
  .gift-offer-badge strong{
    font-size: var(--font-size-10px);
  }
  .card-text:last-child {
  margin-bottom: 6px;
}
  .gift-category-badge{
    font-size: var(--font-size-8px);
    top: 6px;
    left: 6px;
  }
  .gift-card-content {
    width: 65%;
    min-width: 0;
    padding: 0 8px;
  }
  .gift-card-content .card-title {
    min-height: 0;
  }
  .gift-card-content .discountBadge {
    margin-left: 16px;
  }
  .voucher-gallery {
    position: static;
  }
  .voucher-main-image {
    height: 340px;
  }
  .voucher-preview {
    margin: 0 12px;
    padding: 0 16px 16px;
  }
  .voucher-preview-header {
    padding: 16px 16px;
  }
  .voucher-buy-box {
    width: 100%;
    max-width: 100%;
    padding: 0;
    overflow: hidden;
  }
  .voucher-buy-content {
    padding: 16px;
  }
  .voucher-detail-title {
    font-size: var(--font-size-16px);
  }
  .voucher-price-range{
    font-size: var(--font-size-18px);
  }
  body, p, .paragraph, ul, li {
    font-size: var(--font-size-13px);
  }
  .voucher-price-summary .voucher-payable-row{
    font-size: var(--font-size-16px) !important;
  }
  .voucher-content-title {
    font-size: var(--font-size-18px) !important;
  }
  .voucher-preview-header > strong{
    font-size: var(--font-size-20px) !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gift-card {
    transition: none;
  }
}
.voucher-price-summary {
  margin: 16px 0;
  padding: 16px;
  background: var(--bg-default);
  border-radius: var(--radius-12px);
}
.voucher-price-summary > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
  font-size: var(--font-size-13px);
  font-weight: var(--font-weight-500);
}
.voucher-price-summary strong {
  color: var(--text-dark);
}
.voucher-price-summary .voucher-saving {
  color: var(--success-dark);
  white-space: nowrap;
}
.voucher-price-summary .voucher-discount-row {
  align-items: center;
  flex-wrap: wrap;
}
.voucher-coupon-applied {
  display: flex;
  min-width: 0;
  flex: 1 1 240px;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.voucher-coupon-label {
  padding: 6px 12px 6px 6px;
  background: #ff9900;
  clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%);
  color: var(--text-dark);
  font-weight: var(--font-weight-700);
  line-height: 1;
  font-size: 12px;
  border-radius: 4px;
}
.voucher-coupon-check {
  display: inline-flex;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  align-items: center;
  justify-content: center;
  background: var(--success-dark);
  border-radius: 50%;
  color: var(--white);
  font-weight: var(--font-weight-700);
}
.voucher-coupon-copy {
  color: var(--success-dark);
  font-weight: var(--font-weight-600);
}
.voucher-price-summary .voucher-payable-row {
  margin-top: 8px;
  padding: 8px 0 0;
  border-top: 1px solid var(--border-default);
  font-size: var(--font-size-20px);
  font-weight: var(--font-weight-700);
}
.voucher-payable-row strong {
  font-weight: var(--font-weight-700);
}
.voucher-validity-highlight {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 16px 0;
  padding: 12px;
  background: #f0faf3;
  border: 1px solid var(--success-light);
  border-radius: var(--radius-12px);
}
.voucher-validity-highlight > div {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}
.voucher-validity-highlight > .bi {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--success-dark);
}
.voucher-validity-highlight strong,
.voucher-validity-highlight span {
  color: var(--success-dark-hover);
  font-size: var(--font-size-12px);
  line-height: 1.5;
}
.voucher-validity-highlight strong {
  font-weight: var(--font-weight-700);
}
.voucher-validity-highlight span {
  font-weight: var(--font-weight-400);
}
.voucher-rich-text {
  font-size: var(--font-size-14px);
  line-height: 1.8;
}
.voucher-system-message {
  display: flex;
  max-width: 760px;
  align-items: flex-start;
  gap: 16px;
  margin: 16px auto;
  padding: 32px;
  background: linear-gradient(135deg, var(--white), var(--bg-default));
  border: 1px solid var(--border-default);
  border-radius: var(--radius-16px);
  box-shadow: 0 12px 34px rgba(20, 24, 31, 0.06);
}
.voucher-system-message-page {
  margin-top: 32px;
  margin-bottom: 32px;
  padding: 32px;
}
.voucher-system-message h1,
.voucher-system-message h3 {
  margin-bottom: 8px;
  font-size: var(--font-size-24px);
  line-height: 1.35;
}
.voucher-system-message p:not(.gift-eyebrow) {
  max-width: 590px;
  margin-bottom: 16px;
  color: var(--text-light);
  font-size: var(--font-size-14px);
  line-height: 1.75;
}
.voucher-system-icon {
  display: flex;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  align-items: center;
  justify-content: center;
  background: var(--white);
  border: 1px solid var(--border-default);
  border-radius: 50%;
  color: var(--primary);
  font-size: var(--font-size-20px);
  box-shadow: 0 6px 18px rgba(20, 24, 31, 0.06);
}
.voucher-system-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.voucher-purchase-modal {
  padding: 32px 0 !important;
}
.voucher-purchase-modal .modal-dialog {
  width: calc(100% - 32px);
  height: calc(100vh - 64px);
  min-height: 0;
  max-width: 780px;
  margin: 0 auto;
}
.voucher-purchase-modal .modal-dialog-centered::before {
  display: none;
}
.voucher-purchase-modal .modal-content {
  display: flex;
  max-height: 100%;
  overflow: hidden;
  border: 0;
  border-radius: var(--radius-16px);
  box-shadow: var(--shadow-xl);
}
.voucher-purchase-modal form {
  display: flex;
  width: 100%;
  min-height: 0;
  flex-direction: column;
}
.voucher-purchase-modal .modal-header {
  align-items: center;
  border-bottom: 1px solid var(--border-default);
}
.voucher-purchase-modal .modal-title {
  margin: 0;
  color: var(--text-dark);
  font-size: var(--font-size-18px);
  font-weight: var(--font-weight-700);
}
.voucher-purchase-modal .close {
  display: flex;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  margin: 0 0 0 16px;
  padding: 8px;
  border-radius: 8px;
  opacity: 1;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}
.voucher-purchase-modal .close:hover,
.voucher-purchase-modal .close:focus {
  background: var(--gray-400);
  border-color: var(--border-dark);
  opacity: 1;
}
.voucher-purchase-modal .close .bi {
  width: 20px;
  height: 20px;
  margin: 0;
}
.voucher-purchase-modal .modal-body {
  min-height: 0;
  flex: 1 1 auto;
  padding: 24px;
  overflow-y: auto;
}

.voucher-purchase-alert {
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid #f3c4c9;
    border-radius: 12px;
    background: #fff5f6;
    color: #8f1724;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.55;
}

.voucher-purchase-alert[hidden] {
    display: none !important;
}

#voucher-buy-now.is-loading {
    cursor: wait;
    opacity: .78;
}

/* Purchase confirmation: a compact receipt with a separate recipient panel. */
.voucher-summary-page>header,.voucher-summary-page>footer{flex-shrink:0}
.voucher-confirmation-page{flex:1 0 auto;background:var(--bg-default)}
.voucher-confirmation-page>.section{padding-bottom:48px}
.voucher-confirmation-card{margin:0 auto 0;padding:clamp(20px,4vw,40px);border:1px solid #e5e7eb;border-radius:24px;background:#fff;box-shadow:0 12px 40px rgba(28,28,32,.05)}
.voucher-confirmation-heading{display:flex;align-items:center;gap:20px;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid #eceef1}
.voucher-confirmation-heading-copy{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;flex:1;text-align:left}
.voucher-confirmation-heading h1,.voucher-confirmation-error h1{margin: 0;font-size: 24px;font-weight: 700;line-height: 1;letter-spacing:-.4px}
.voucher-confirmation-heading .gift-eyebrow{margin:0;color:var(--text-light)}
.voucher-confirmation-icon{display:inline-grid;flex:0 0 52px;width:52px;height:52px;place-items:center;border:1px solid #d7eade;border-radius:16px;background:#eef8f1;color:#237342;font-size:24px}
.voucher-confirmation-meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;color:var(--text-light);font-size:13px}
.voucher-confirmation-status{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;background:#eef8f1;color:#237342;font-size:12px;font-weight:600}
.voucher-confirmation-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.voucher-confirmation-card.is-pending .voucher-confirmation-status,.voucher-confirmation-card.is-pending .voucher-confirmation-icon,.voucher-confirmation-error .voucher-confirmation-icon{background:#fff5e7;color:#805316;border-color:#f0dfc5}
.voucher-confirmation-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:24px}
.voucher-confirmation-panel{min-width:0;padding:24px;border:1px solid #e7e9ed;border-radius:16px;background:#fff}
.voucher-confirmation-panel+.voucher-confirmation-panel{background:#fafbfc}
.voucher-confirmation-panel .voucher-panel-title{margin:0 0 20px;font-size:16px;line-height:1.4;font-weight:700}
.voucher-purchase-title{margin:0 0 16px;font-size:20px;line-height:1.4;overflow-wrap:anywhere}
.voucher-confirmation-summary{margin:0}
.voucher-confirmation-summary>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px;padding:13px 0;border-bottom:1px solid #eceef1}
.voucher-confirmation-summary>div:last-child{border-bottom:0;padding-bottom:0}
.voucher-confirmation-summary dt{color:var(--text-light);font-weight:400;font-size:13px}
.voucher-confirmation-summary dd{min-width:0;margin:0;color:var(--text-dark);font-size:14px;font-weight:600;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.voucher-confirmation-summary .voucher-confirmation-total{padding:16px 12px;margin:8px -12px;border:0;border-radius:10px;background:#f3f5f7;align-items:center}
.voucher-confirmation-summary .voucher-confirmation-total dt{color:var(--text-dark);font-weight:700}
.voucher-confirmation-summary .voucher-confirmation-total dd{font-size:20px;font-weight:700}
.voucher-confirmation-person{display:grid;gap:5px;padding:0 0 20px;overflow-wrap:anywhere}
.voucher-confirmation-person:last-child{padding-bottom:0}
.voucher-confirmation-person>span,.voucher-confirmation-message>span{color:var(--text-light);font-size:12px;font-weight:500}
.voucher-confirmation-person strong{font-size:16px;color:var(--text-dark)}
.voucher-confirmation-person a,.voucher-confirmation-person small{color:var(--text-light);font-size:13px}
.voucher-confirmation-person a:hover{text-decoration:underline;color:var(--primary)}
.voucher-confirmation-message{margin:0 0 20px;padding:16px;border-left:3px solid #d9dee5;border-radius:0 10px 10px 0;background:#f0f2f5;overflow-wrap:anywhere}
.voucher-confirmation-message p{margin:8px 0 0;color:var(--text-dark);line-height:1.7;white-space:pre-wrap}
.voucher-confirmation-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px;padding-top:24px;border-top:1px solid #eceef1}
.voucher-confirmation-actions .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.voucher-confirmation-error{max-width:760px;text-align:center}
.voucher-confirmation-error .voucher-confirmation-icon{margin-bottom:16px}
.voucher-confirmation-error h1{margin-bottom:16px}
.voucher-confirmation-error>p{color:var(--text-light);line-height:1.75;overflow-wrap:anywhere}
.voucher-confirmation-error .voucher-confirmation-actions{justify-content:center}
@media(max-width:767.98px){
 .voucher-confirmation-card{margin-top:8px;padding:20px 16px;border-radius:20px}
 .voucher-confirmation-heading{gap:12px;padding-bottom:20px;margin-bottom:20px}
 .voucher-confirmation-icon{width:40px;height:40px;flex-basis:40px;font-size:20px;border-radius:12px}
 .voucher-confirmation-heading h1{font-size:24px}
 .voucher-confirmation-grid{grid-template-columns:1fr;gap:16px}
 .voucher-confirmation-panel{padding:20px 16px}
 .voucher-confirmation-actions{align-items:center;flex-direction:column}
 .voucher-confirmation-actions .btn{width:100%;max-width:320px}
}
.voucher-purchase-modal .modal-footer {
  padding: 16px 24px;
  border-top: 1px solid var(--border-default);
}
.voucher-modal-summary {
  overflow: hidden;
  margin-bottom: 24px;
  background: var(--white);
  border: 1px solid var(--border-default);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(34, 34, 34, 0.06);
}
.voucher-modal-summary-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  padding: 20px;
  background: linear-gradient(135deg, var(--white), var(--primary-alpha));
}
.voucher-modal-summary-title {
  min-width: 0;
}
.voucher-modal-summary-title small,
.voucher-modal-summary-title h3,
.voucher-modal-price small,
.voucher-modal-price strong,
.voucher-modal-detail-copy small,
.voucher-modal-detail-copy strong {
  display: block;
}
.voucher-modal-summary-title small {
  margin-bottom: 4px;
  color: var(--primary);
  font-size: var(--font-size-10px);
  font-weight: var(--font-weight-700);
  letter-spacing: 0.8px;
  text-transform: uppercase;
}
.voucher-modal-summary-title h3 {
  overflow: hidden;
  margin: 0;
  color: var(--text-dark);
  font-size: var(--font-size-14px);
  font-weight: var(--font-weight-700);
  line-height: 1.45;
  text-overflow: ellipsis;
}
.voucher-modal-prices {
  display: grid;
  grid-template-columns: repeat(2, minmax(132px, 1fr));
  gap: 8px;
}
.voucher-modal-price {
  min-width: 132px;
  padding: 10px 12px;
  background: var(--white);
  border: 1px solid var(--border-default);
  border-radius: 8px;
}
.voucher-modal-price small {
  margin-bottom: 2px;
  color: var(--text-light);
  font-size: var(--font-size-10px);
  font-weight: var(--font-weight-500);
}
.voucher-modal-price strong {
  color: var(--text-dark);
  font-size: var(--font-size-16px);
  font-weight: var(--font-weight-700);
  white-space: nowrap;
}
.voucher-modal-price-payable {
  background: #e8f6ec;
  border-color: #bfe1c9;
}
.voucher-modal-price-payable small,
.voucher-modal-price-payable strong {
  color: var(--success-dark);
}
.voucher-modal-summary-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  background: var(--bg-default);
  border-top: 1px solid var(--border-default);
}
.voucher-modal-summary-detail {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
}
.voucher-modal-summary-detail + .voucher-modal-summary-detail {
  border-left: 1px solid var(--border-default);
}
.voucher-modal-detail-icon {
  display: inline-flex;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  background: #e8f6ec;
  border-radius: 50%;
  color: var(--success-dark);
}
.voucher-modal-detail-icon .bi {
  width: 15px;
  height: 15px;
}
.voucher-modal-detail-copy {
  min-width: 0;
}
.voucher-modal-detail-copy small {
  margin-bottom: 1px;
  color: var(--text-light);
  font-size: var(--font-size-10px);
}
.voucher-modal-detail-copy strong {
  color: var(--text-dark);
  font-size: var(--font-size-12px);
  font-weight: var(--font-weight-600);
  line-height: 1.4;
}
.voucher-modal-discount {
  margin-left: auto;
  color: var(--success-dark);
  font-size: var(--font-size-12px);
  font-weight: var(--font-weight-700);
  white-space: nowrap;
}
.voucher-details-wizard .wizard-step:last-child {
  margin-bottom: 0;
}
.voucher-purchase-modal .custom-select-options {
  max-height: 240px;
  z-index: 1060;
  overscroll-behavior: contain;
}
.voucher-country-code.opens-up .custom-select-options {
  top: auto !important;
  bottom: calc(100% + 8px);
}
.voucher-purchase-modal .custom-select-option[hidden],
.voucher-purchase-modal .custom-select-no-results[hidden] {
  display: none !important;
}
.voucher-purchase-modal .invalid-feedback {
  font-size: var(--font-size-10px);
}
@media (max-width: 575px) {
  .voucher-purchase-modal {
    padding: 8px 0 !important;
  }
  .voucher-purchase-modal .modal-dialog {
    width: calc(100% - 16px);
    height: calc(100vh - 16px);
    margin: 0 auto;
  }
  .voucher-purchase-modal .modal-header,
  .voucher-purchase-modal .modal-body,
  .voucher-purchase-modal .modal-footer {
    padding-right: 16px;
    padding-left: 16px;
  }
  .voucher-purchase-modal .modal-footer {
    flex-wrap: nowrap;
  }
  .voucher-purchase-modal .modal-footer .btn {
    flex: 1;
  }
  .voucher-modal-summary {
    border-radius: var(--radius-12px);
  }
  .voucher-modal-summary-top {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px;
  }
  .voucher-modal-prices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .voucher-modal-price {
    min-width: 0;
  }
  .voucher-modal-summary-meta {
    grid-template-columns: 1fr;
  }
  .voucher-modal-summary-detail {
    padding: 12px 16px;
  }
  .voucher-modal-summary-detail + .voucher-modal-summary-detail {
    border-top: 1px solid var(--border-default);
    border-left: 0;
  }
  .voucher-system-message,
  .voucher-system-message-page {
    gap: 16px;
    margin-top: 16px;
    margin-bottom: 32px;
    padding: 16px;
  }
  .voucher-system-icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }
  .voucher-system-message h1,
  .voucher-system-message h3 {
    font-size: var(--font-size-20px);
  }
}
.top-0 {
  top: 0 !important;
}
.left-auto {
  left: auto !important;
}
div:has(> button:disabled) {
  opacity: 1;
  cursor: not-allowed;
}
.voucher-content-title{
  font-size: var(--font-size-20px);
  font-weight: var(--font-weight-600);
}

/* Mobile voucher summary follows the site's fixed booking footer and bottom sheet. */
.voucher-mobile-purchase-bar[hidden]{display:none!important}
.voucher-mobile-purchase-bar{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
body.modal-open .voucher-mobile-purchase-bar{visibility:hidden}
.voucher-summary-modal{padding:0!important;overflow:hidden}
.voucher-summary-modal .modal-dialog{position:absolute;bottom:0;left:0;right:0;width:100%;max-width:none;margin:0}
.voucher-summary-modal.fade .modal-dialog{transform:translate3d(0,100%,0);transition:transform .3s ease}
.voucher-summary-modal.show .modal-dialog{transform:translate3d(0,0,0)}
.voucher-summary-modal .modal-content{display:flex;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:hidden;border:0;border-radius:20px 20px 0 0}
.voucher-summary-content{display:flex;min-height:0;flex:1 1 auto;overflow:hidden}
.voucher-summary-content .voucher-buy-box{flex:1 1 auto;min-height:0;max-height:none;position:relative;top:auto;border:0;border-radius:0;box-shadow:none}
.voucher-summary-content .voucher-buy-content{overflow-y:auto;overscroll-behavior:contain;padding:16px}
.voucher-summary-content .voucher-buy-footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
@media(max-width:991.98px){
  .voucher-mobile-summary-ready{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
  .voucher-buy-column-mobile{display:none}
  #gift-vouchers{margin-top: 12px!important}
}
@media(prefers-reduced-motion:reduce){.voucher-summary-modal.fade .modal-dialog{transition:none}}

#voucher-terms{scroll-margin-top:var(--voucher-sticky-top,116px)}

/* Collection feedback reuses the site's loader and system-message components. */
.gift-results{position:relative;min-height:240px;display:flow-root}
.gift-empty-state.voucher-system-message{width:100%;max-width:none;flex-direction:column;align-items:center;text-align:center;gap:20px;margin:32px 0 48px;padding:clamp(32px,6vw,64px) 24px;box-shadow:none}
.gift-empty-state .voucher-system-actions{justify-content:center}
.gift-empty-state .voucher-system-icon{display: none; width:56px;height:56px;flex-basis:56px}
.gift-empty-state p:not(.gift-eyebrow){margin-left:auto;margin-right:auto}
