/* Static Tallaght purchase/voucher presentation, using the supplied v2 pack.
   Original fields, prices and text remain unchanged. No state or action is
   enabled here. Visibility, disabled controls and preview labels belong to the
   builder. Price tickets use one existing featured choice, never a new claim. */

.pack-v2 .p2-transaction-fields-preserve .p2-prose {
  max-width: none;
  min-width: 0;
}
.pack-v2 .gv-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  align-items: center;
  gap: 56px;
}
.pack-v2 .gv-hero-preview { min-width: 0; }

/* Voucher tiers and existing product choices share the pack ticket anatomy. */
.pack-v2 .gv-tier-grid,
.pack-v2 .gv-products-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 36px;
}
.pack-v2 .gv-tier,
.pack-v2 .gv-product-card {
  min-width: 0;
  padding: 30px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background: var(--surface);
  border-top: 5px solid var(--chalk);
  border-radius: 2px;
}
.pack-v2 .gv-tier h3,
.pack-v2 .gv-product-name {
  width: 100%;
  margin: 16px 0 22px;
  padding-bottom: 22px;
  border-bottom: 2px dashed var(--line);
  font: 800 23px/1.18 Poppins, sans-serif;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.pack-v2 .gv-tier-price,
.pack-v2 .gv-product-price {
  margin: 0 0 22px;
  font: 800 clamp(34px, 4vw, 52px)/1.05 Poppins, sans-serif;
  letter-spacing: -.045em;
  white-space: nowrap;
}
.pack-v2 .gv-tier p { color: var(--mist); }
.pack-v2 .gv-tier > .btn,
.pack-v2 .gv-select-btn { margin-top: auto; }
.pack-v2 .gv-tier-popular {
  background: var(--green);
  color: var(--black);
  border-top-color: var(--black);
}
.pack-v2 .gv-tier-popular p,
.pack-v2 .gv-tier-popular a:not(.btn) { color: var(--black); }
.pack-v2 .gv-tier-popular h3 { border-bottom-color: #0004; }
.pack-v2 .gv-tier-label,
.pack-v2 .gv-product-badge {
  padding: 5px 9px;
  border: 1px solid currentColor;
  font: 700 11px/1.4 'DM Sans', sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.pack-v2 .gv-product-badge { margin-bottom: 18px; color: var(--green); }

/* Existing voucher instructions, occasions and facts get distinct rhythms. */
.pack-v2 .gv-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  margin-top: 40px;
}
.pack-v2 .gv-steps > .gv-step {
  min-width: 0;
  padding-top: 24px;
  border-top: 2px solid var(--line);
}
.pack-v2 .gv-step-num {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: 24px;
  color: var(--black);
  background: var(--green);
  font: 800 15px Poppins, sans-serif;
}
.pack-v2 .gv-occ-grid,
.pack-v2 .gv-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px;
  margin-top: 36px;
}
.pack-v2 .gv-occ { padding: 24px 0 0; border-top: 3px solid var(--red); }
.pack-v2 .gv-trust { padding: 0 24px 0 0; border-right: 1px solid var(--line); }
.pack-v2 .gv-trust:last-child { border: 0; }
.pack-v2 .gv-occ h3,
.pack-v2 .gv-trust h3 { font-size: 21px; }
.pack-v2 .gv-trust-ic { color: var(--green); margin-bottom: 20px; }
.pack-v2 .gv-trust-ic svg { width: 32px; height: 32px; }

/* Original voucher illustrations remain physical objects, not new receipts. */
.pack-v2 .gv-vcard,
.pack-v2 .gv-voucher-card {
  padding: 28px;
  background: var(--night);
  border: 1px solid var(--line);
  border-top: 8px solid var(--red);
  border-radius: 4px;
  box-shadow: 0 24px 48px #0006;
  overflow-wrap: anywhere;
}
.pack-v2 .gv-voucher-preview { max-width: 520px; margin-inline: auto; }
.pack-v2 .gv-vcard-topbar,
.pack-v2 .gv-voucher-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-bottom: 28px;
}
.pack-v2 .gv-vcard-brand,
.pack-v2 .gv-voucher-brand { color: var(--chalk); font: 800 22px/1.2 Poppins, sans-serif; }
.pack-v2 .gv-vcard-brand > span,
.pack-v2 .gv-voucher-brand > span { display: block; margin-top: 5px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.pack-v2 .gv-vcard-date,
.pack-v2 .gv-voucher-date { color: var(--dim); font-size: 11px; }
.pack-v2 .gv-vcard-title,
.pack-v2 .gv-voucher-title {
  color: var(--green);
  font: 800 clamp(26px, 4vw, 40px)/1.05 Poppins, sans-serif;
  text-transform: uppercase;
  letter-spacing: -.03em;
  margin-bottom: 28px;
}
.pack-v2 .gv-vcard-for,
.pack-v2 .gv-voucher-for,
.pack-v2 .gv-vcard-lab,
.pack-v2 .gv-voucher-pkg-label,
.pack-v2 .gv-voucher-val-label { display: block; color: var(--dim); font-size: 11px; }
.pack-v2 .gv-vcard-name,
.pack-v2 .gv-voucher-name { display: block; font: 700 25px/1.2 Poppins, sans-serif; margin-top: 6px; }
.pack-v2 .gv-vcard-message,
.pack-v2 .gv-voucher-message { color: var(--mist); margin-block: 20px; }
.pack-v2 .gv-vcard-sender,
.pack-v2 .gv-voucher-from { font-size: 13px; color: var(--mist); }
.pack-v2 .gv-vcard-details,
.pack-v2 .gv-voucher-details {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  margin-block: 28px;
  padding-top: 24px;
  border-top: 2px dashed var(--line);
}
.pack-v2 .gv-vcard-pkg,
.pack-v2 .gv-voucher-pkg-name { font-weight: 700; }
.pack-v2 .gv-vcard-val,
.pack-v2 .gv-voucher-val-amount { font: 800 29px/1.2 Poppins, sans-serif; color: var(--green); }
.pack-v2 .gv-vcard-footer,
.pack-v2 .gv-voucher-footer { padding-top: 18px; border-top: 1px solid var(--line); font-size: 11px; color: var(--dim); }
.pack-v2 .gv-vcard-ref,
.pack-v2 .gv-voucher-ref { color: var(--chalk); font-weight: 700; }
.pack-v2 .gv-vcard-validity,
.pack-v2 .gv-voucher-validity { margin-top: 12px; font-size: 11px; color: var(--dim); }

/* Static purchase screen groups; all financial controls stay disabled. */
.pack-v2 .gv-progress {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px;
  margin-bottom: 48px;
  background: var(--surface);
  border-bottom: 2px solid var(--line);
}
.pack-v2 .gv-progress-step { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; }
.pack-v2 .gv-progress-num,
.pack-v2 .gv-section-number,
.pack-v2 .pn-section-number { display: inline-grid; place-items: center; min-width: 32px; height: 32px; background: var(--raised); font: 800 12px Poppins, sans-serif; }
.pack-v2 .gv-progress-active .gv-progress-num { background: var(--green); color: var(--black); }
.pack-v2 .gv-progress-line { flex: 1; min-width: 12px; height: 1px; background: var(--line); }
.pack-v2 .gv-step-header { margin-bottom: 32px; }
.pack-v2 .gv-step-sub,
.pack-v2 .gv-builder-sub,
.pack-v2 .pn-sub { max-width: 760px; color: var(--mist); }
.pack-v2 .gv-personalise-layout,
.pack-v2 .gv-details-layout,
.pack-v2 .pn-checkout-container { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.pack-v2 .gv-personalise-form,
.pack-v2 .gv-details-form,
.pack-v2 .pn-checkout-main,
.pack-v2 .gv-sidebar,
.pack-v2 .pn-checkout-sidebar { min-width: 0; }
.pack-v2 .gv-form-section,
.pack-v2 .pn-form-section { background: var(--surface); padding: 30px; margin-bottom: 24px; border-top: 2px solid var(--line); }
.pack-v2 .gv-section-header,
.pack-v2 .pn-section-header { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; }
.pack-v2 .gv-section-title,
.pack-v2 .pn-section-title { margin: 0; font: 800 22px/1.2 Poppins, sans-serif; }
.pack-v2 .gv-form-row,
.pack-v2 .pn-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pack-v2 .pn-form-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pack-v2 .gv-label,
.pack-v2 .pn-label,
.pack-v2 .gv-trans-lab,
.pack-v2 .pn-trans-lab { display: block; margin-bottom: 8px; color: var(--chalk); font-size: 13px; font-weight: 700; }
.pack-v2 .gv-field,
.pack-v2 .pn-field { min-width: 0; margin-bottom: 18px; }
.pack-v2 .gv-field-hint,
.pack-v2 .gv-char-count,
.pack-v2 .gv-optional { font-size: 12px; color: var(--dim); }
.pack-v2 .gv-input,
.pack-v2 .gv-textarea,
.pack-v2 .pn-input { width: 100%; min-width: 0; border-radius: 2px; }
.pack-v2 .gv-textarea { min-height: 110px; resize: vertical; }
.pack-v2 .gv-trans-wrap,
.pack-v2 .pn-trans-wrap { margin-bottom: 28px; }
.pack-v2 .gv-trans-toggle,
.pack-v2 .pn-trans-toggle,
.pack-v2 .pn-toggle { display: flex; flex-wrap: wrap; gap: 8px; }
.pack-v2 .gv-trans-pill,
.pack-v2 .pn-trans-pill { display: inline-flex; align-items: center; gap: 10px; padding: 14px 18px; background: var(--raised); border: 1px solid var(--line); }
.pack-v2 .p2-transaction-fields-preserve input:is([type=checkbox],[type=radio]) { display: inline-block; width: 18px; height: 18px; margin: 0; padding: 0; flex: 0 0 auto; accent-color: var(--green); }
.pack-v2 .gv-terms-row,
.pack-v2 .pn-terms-row { display: flex; align-items: flex-start; gap: 12px; margin: 24px 0; font-size: 13px; }
.pack-v2 .gv-preview-panel { padding-top: 10px; }
.pack-v2 .gv-preview-label { margin-bottom: 16px; font: 700 11px/1.4 'DM Sans', sans-serif; color: var(--dim); letter-spacing: .12em; text-transform: uppercase; }
.pack-v2 .gv-order-card,
.pack-v2 .pn-order-card { padding: 28px; background: var(--night); border: 1px solid var(--line); border-top: 5px solid var(--red); }
.pack-v2 .gv-order-header,
.pack-v2 .pn-order-card-header { font: 800 20px Poppins, sans-serif; margin-bottom: 24px; }
.pack-v2 .gv-order-product-name,
.pack-v2 .pn-order-product-name { font-weight: 700; font-size: 18px; }
.pack-v2 .gv-order-product-meta,
.pack-v2 .pn-order-product-meta,
.pack-v2 .gv-order-recipient,
.pack-v2 .gv-order-message-preview { color: var(--dim); font-size: 13px; margin-top: 10px; }
.pack-v2 .gv-order-total,
.pack-v2 .pn-order-total { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 16px; border-top: 2px dashed var(--line); padding-top: 24px; margin-top: 24px; }
.pack-v2 .gv-order-total-price,
.pack-v2 .pn-order-total-price { color: var(--green); font: 800 34px/1.1 Poppins, sans-serif; white-space: nowrap; }
.pack-v2 .gv-order-trust,
.pack-v2 .pn-order-trust { margin-top: 24px; font-size: 12px; color: var(--dim); }
.pack-v2 .gv-trust-item,
.pack-v2 .pn-trust-item { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.pack-v2 .gv-trust-item svg,
.pack-v2 .pn-trust-item svg { width: 18px; height: 18px; flex: 0 0 auto; }
.pack-v2 .gv-card-brands,
.pack-v2 .pn-card-brands { display: flex; align-items: center; gap: 12px; margin: 18px 0; }
.pack-v2 .gv-card-brands svg,
.pack-v2 .pn-card-brands svg { max-width: 54px; height: 24px; }
.pack-v2 .gv-card-element,
.pack-v2 .pn-card-element { padding: 20px; border: 1px dashed var(--line); color: var(--dim); background: var(--raised); }
.pack-v2 .gv-card-placeholder { font-size: 14px; }
.pack-v2 .gv-select-btn,
.pack-v2 .gv-continue-btn,
.pack-v2 .gv-pay-button,
.pack-v2 .pn-pay-button,
.pack-v2 .pn-toggle-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 14px 20px; border: 1px solid var(--line); border-radius: 2px; background: var(--red); color: white; font: 700 13px/1.4 Poppins, sans-serif; }
.pack-v2 :is(.gv-select-btn,.gv-continue-btn,.gv-pay-button,.pn-pay-button,.pn-toggle-btn):disabled { background: var(--raised); border-style: dashed; color: var(--mist); opacity: 1; cursor: not-allowed; }
.pack-v2 .gv-back-btn,
.pack-v2 .pn-back-btn { background: transparent; color: var(--mist); border: 1px solid var(--line); padding: 10px 15px; margin-bottom: 24px; }
.pack-v2 .gv-stripe-badge,
.pack-v2 .pn-stripe-badge { margin-top: 18px; font-size: 12px; color: var(--dim); }
.pack-v2 .gv-fallback-cta,
.pack-v2 .pn-fallback-cta { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 14px; }
.pack-v2 .gv-success-check svg,
.pack-v2 .pn-success-check svg { width: 48px; height: 48px; color: var(--green); }
.pack-v2 .gv-success-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 28px; align-items: center; }

/* The existing voucher closing block has sibling actions, not a CTA wrapper. */
.pack-v2 .p2-BookBand .p2-prose:has(> .gv-cta-btn) {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(230px, .6fr);
  gap: 20px 56px;
  align-items: center;
}
.pack-v2 .p2-BookBand .p2-prose:has(> .gv-cta-btn) > h2 { grid-column: 1; grid-row: 1; margin: 0; }
.pack-v2 .p2-BookBand .p2-prose:has(> .gv-cta-btn) > p { grid-column: 1; grid-row: 2; margin: 0; }
.pack-v2 .p2-BookBand .gv-cta-btn {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  align-self: end;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 52px;
  padding: 16px 26px;
  background: var(--black);
  color: var(--chalk);
  border: 1px solid var(--black);
  border-radius: 2px;
  font: 700 14px/1.4 Poppins, sans-serif;
}
.pack-v2 .p2-BookBand .gv-cta-phone { grid-column: 2; grid-row: 2; align-self: start; color: var(--chalk); font-size: 14px; }
.pack-v2 .p2-BookBand .gv-cta-phone a { display: inline-block; padding: 0; background: transparent; color: var(--chalk); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1000px) {
  .pack-v2 .gv-tier,
  .pack-v2 .gv-product-card { padding: 24px; }
  .pack-v2 .gv-occ-grid,
  .pack-v2 .gv-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pack-v2 .gv-trust:nth-child(2) { border: 0; }
  .pack-v2 .gv-personalise-layout,
  .pack-v2 .gv-details-layout,
  .pack-v2 .pn-checkout-container { gap: 24px; }
  .pack-v2 .gv-progress { flex-wrap: wrap; gap: 14px; }
}
@media (max-width: 760px) {
  .pack-v2 .gv-hero-grid,
  .pack-v2 .gv-tier-grid,
  .pack-v2 .gv-products-grid,
  .pack-v2 .gv-steps,
  .pack-v2 .gv-personalise-layout,
  .pack-v2 .gv-details-layout,
  .pack-v2 .pn-checkout-container { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .pack-v2 .gv-tier-price,
  .pack-v2 .gv-product-price { font-size: clamp(36px, 10vw, 48px); }
  .pack-v2 .gv-progress { display: grid; grid-template-columns: 1fr 1fr; padding: 18px; }
  .pack-v2 .gv-progress-line { display: none; }
  .pack-v2 .gv-progress-label { font-size: 11px; }
  .pack-v2 .gv-form-section,
  .pack-v2 .pn-form-section,
  .pack-v2 .gv-order-card,
  .pack-v2 .pn-order-card { padding: 22px; }
  .pack-v2 .gv-form-row,
  .pack-v2 .pn-form-row,
  .pack-v2 .pn-form-row-3 { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .pack-v2 .gv-vcard,
  .pack-v2 .gv-voucher-card { padding: 22px; }
  .pack-v2 .gv-vcard-details,
  .pack-v2 .gv-voucher-details { grid-template-columns: minmax(0, 1fr); }
  .pack-v2 .p2-BookBand .p2-prose:has(> .gv-cta-btn) { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .pack-v2 .p2-BookBand .p2-prose:has(> .gv-cta-btn) > :is(h2,p,.gv-cta-btn,.gv-cta-phone) { grid-column: 1; grid-row: auto; }
  .pack-v2 .p2-BookBand .gv-cta-btn { justify-self: stretch; }
}
@media (max-width: 420px) {
  .pack-v2 .gv-occ-grid,
  .pack-v2 .gv-trust-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .pack-v2 .gv-trust { padding: 0; border: 0; }
}
