/* Gift voucher page: live voucher preview, buy form, thank-you voucher and print */
.gv-hero{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(32px,6vw,96px);align-items:center}
.gv-chip{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--on-dark);border-radius:999px;padding:8px 16px 8px 12px;font-size:.875rem;font-weight:700;margin:0 0 22px}
.gv-chip i{width:9px;height:9px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 0 rgba(143,165,195,.6);animation:gv-pulse 2s infinite}
@keyframes gv-pulse{70%{box-shadow:0 0 0 10px rgba(143,165,195,0)}100%{box-shadow:0 0 0 0 rgba(143,165,195,0)}}
.gv-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin:26px 0 0}
.gv-price b{font-family:var(--display);font-weight:500;font-size:clamp(3rem,6vw,4.75rem);line-height:.9;letter-spacing:-.04em}
.gv-price s{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2rem);color:var(--muted);text-decoration-thickness:2px}
.gv-price span{font-weight:700;font-size:.9375rem;color:var(--brand-deep);background:var(--blush-pale);border-radius:999px;padding:5px 12px}

/* The voucher itself: scales with its box (container units) */
.gv-stage{position:relative}
.voucher{container-type:inline-size;position:relative;aspect-ratio:297/210;width:100%;border-radius:3.6cqw;background:var(--ink);color:var(--on-dark);overflow:hidden;display:grid;grid-template-columns:1.25fr 1fr;box-shadow:0 2px 4px rgba(46,41,53,.08),0 34px 70px -24px rgba(46,41,53,.45)}
.gv-stage .voucher{transform:rotate(1.6deg);transition:transform .5s var(--ease)}
.gv-stage:hover .voucher{transform:rotate(.4deg) translateY(-4px)}
.voucher .v-l{padding:6.2cqw 0 5.4cqw 6.6cqw;display:flex;flex-direction:column;min-width:0}
.voucher .v-r{position:relative;padding:6.2cqw 6.6cqw 5.4cqw 4.6cqw;display:flex;flex-direction:column;justify-content:space-between;min-width:0}
.voucher .v-ring{position:absolute;border-radius:50%;border:.5cqw solid var(--brand);pointer-events:none}
.voucher .v-ring.a{width:62cqw;height:62cqw;right:-26cqw;top:-24cqw}
.voucher .v-ring.b{width:40cqw;height:40cqw;right:-14cqw;top:-12.5cqw;border-width:.25cqw;opacity:.55}
.voucher [data-logo]{display:block;width:13cqw}
.voucher [data-logo] svg{display:block;width:100%;height:auto}
.voucher .v-eye{margin:5cqw 0 0;font-weight:800;font-size:1.35cqw;letter-spacing:.22em;text-transform:uppercase;color:var(--blush)}
.voucher .v-t{font-family:var(--display);font-weight:450;font-size:6.4cqw;line-height:.94;letter-spacing:-.035em;margin:2cqw 0 0;font-variation-settings:"opsz" 144}
.voucher .v-t em{color:var(--blush);font-weight:400}
.voucher .v-s{font-size:1.75cqw;line-height:1.5;color:var(--on-dark-2);margin:2.6cqw 0 0;max-width:46cqw}
.voucher .v-worth{margin-top:auto;align-self:flex-start;display:flex;align-items:baseline;gap:1.6cqw;background:var(--brand);border-radius:99px;padding:1.2cqw 3.2cqw 1.35cqw}
.voucher .v-worth b{font-family:var(--display);font-weight:500;font-size:3.4cqw;letter-spacing:-.01em;color:var(--ink)}
.voucher .v-worth span{font-size:1.25cqw;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(46,41,53,.8)}
.voucher .v-card{position:relative;z-index:1;background:var(--ground);color:var(--ink);border-radius:2.4cqw;padding:3.6cqw 3.6cqw 3.2cqw;margin-top:9cqw}
.voucher .v-f{margin-bottom:2.4cqw}
.voucher .v-f small{display:block;font-size:1.2cqw;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-deep);margin-bottom:.5cqw}
.voucher .v-line{border-bottom:.15cqw solid var(--ink);min-height:3.8cqw;font-family:var(--display);font-size:2.6cqw;line-height:3.6cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voucher .v-msg{font-family:var(--display);font-style:italic;font-size:1.75cqw;line-height:2.9cqw;min-height:8.7cqw;background-image:linear-gradient(transparent calc(2.9cqw - .15cqw),var(--ink) calc(2.9cqw - .15cqw));background-size:100% 2.9cqw;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;word-break:break-word}
.voucher .v-ref{font-size:1.15cqw;color:var(--muted);margin:0}
.voucher .v-go{position:relative;z-index:1;font-size:1.3cqw;line-height:1.5;color:var(--on-dark-2);margin:2.4cqw 0 0}
.voucher .v-go b{color:var(--on-dark)}
.voucher .ph{color:#B9B1A8}

/* Buy form */
.gv-form{margin-top:30px;display:grid;gap:16px;max-width:32em}
.gv-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gv-field{display:grid;gap:6px}
.gv-field label{font-weight:700;font-size:.9375rem;display:flex;justify-content:space-between;gap:10px}
.gv-field label span{font-weight:500;color:var(--muted)}
.gv-field input,.gv-field textarea{font:inherit;font-size:1.0625rem;min-height:56px;padding:14px 18px;border-radius:14px;border:2px solid #D9CEC2;background:#fff;color:var(--ink);transition:border-color .2s ease,box-shadow .2s ease;width:100%}
.gv-field textarea{min-height:104px;resize:vertical;line-height:1.45}
.gv-field input:focus,.gv-field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 4px rgba(143,165,195,.18)}
.gv-field [aria-invalid="true"]{border-color:var(--brand-deep)}
.gv-form .btn{width:100%;margin-top:4px}
.gv-error{margin:0;padding:12px 16px;border-radius:12px;background:#F7EAE3;color:var(--brand-deep);font-size:.9375rem;font-weight:600}
.gv-error[hidden]{display:none}
.gv-trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin:2px 0 0;padding:0;list-style:none;font-size:.875rem;color:var(--ink-2)}
.gv-trust li{display:flex;align-items:center;gap:7px}
.gv-trust svg{width:16px;height:16px;flex:none;color:var(--brand)}
.gv-ended{margin-top:30px;padding:24px 28px;border-radius:var(--r);background:var(--stone);max-width:32em}
.gv-ended h3{margin-bottom:.3em}

/* Steps + included */
.gv-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);margin:48px 0 0;padding:0;list-style:none;counter-reset:g}
.gv-steps li{counter-increment:g;border-top:2px solid rgba(248,245,240,.25);padding-top:24px}
.gv-steps li::before{content:"0" counter(g);display:block;font-family:var(--display);font-size:1.25rem;color:var(--blush);margin-bottom:14px}
.gv-steps p{color:var(--on-dark-2);margin:0}
.gv-incl{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
.gv-who{display:grid;gap:12px;margin:28px 0 0;padding:0;list-style:none}
.gv-who li{background:var(--stone);border-radius:16px;padding:18px 22px;font-size:1.0625rem}
.gv-who b{font-family:var(--display);font-weight:500;font-size:1.25rem;display:block;letter-spacing:-.01em}

/* Redeem band */
.gv-redeem{background:var(--stone);border-radius:var(--r);padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}
.gv-redeem h2{margin-bottom:.25em}
.gv-redeem .btn-row{margin-top:0;justify-content:flex-end}

/* Thank-you page */
.gt{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,96px);align-items:center}
.gt-tick{width:64px;height:64px;border-radius:50%;background:var(--brand);display:grid;place-items:center;margin-bottom:26px}
.gt-tick svg{width:30px;height:30px;color:#fff}
.gt-edit{margin-top:28px;display:grid;gap:14px;max-width:32em}
.gt-edit summary{cursor:pointer;font-weight:700;list-style:none}
.gt-edit summary::-webkit-details-marker{display:none}
.gt-edit summary::before{content:"+ "}
.gt-edit[open] summary::before{content:"– "}
.gt-edit .gv-row{margin-top:14px}
.gt-next{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:40px 0 0;padding:0;list-style:none}
.gt-next li{background:var(--stone);border-radius:18px;padding:22px}
.gt-next b{display:block;font-family:var(--display);font-weight:500;font-size:1.25rem;margin-bottom:4px}
.gt-next span{font-size:.9375rem;color:var(--ink-2)}

@media (max-width:960px){
  .gv-hero,.gt{grid-template-columns:1fr;gap:44px}
  .gv-hero .gv-stage{order:-1;max-width:560px}
  .gt .gv-stage{max-width:560px}
  .gv-steps,.gt-next{grid-template-columns:1fr}
  .gv-incl,.gv-redeem{grid-template-columns:1fr}
  .gv-redeem .btn-row{justify-content:flex-start}
}
@media (max-width:520px){.gv-row{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.gv-chip i{animation:none}.gv-stage .voucher,.gv-stage:hover .voucher{transition:none;transform:none}}

/* Print: just the voucher, one landscape page (gift.js copies it into #gv-print) */
#gv-print{display:none}
@media print{
  @page{size:A4 landscape;margin:10mm}
  html,body{background:#fff!important}
  body>*:not(#gv-print){display:none!important}
  #gv-print{display:block}
  #gv-print .voucher{width:262mm;margin:0 auto;transform:none;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid}
}
/* Logo v2 is wider and shorter: keep it the same height on the voucher */
.voucher [data-logo]{width:30cqw}

/* Voucher accents: cornflower instead of peach (peach read as the old terracotta on charcoal) */
.voucher .v-eye{color:#F1C4B3;border-top-color:#F1C4B3}
.voucher .v-t em{color:#F1C4B3}
.gv-steps li::before{color:var(--brand-deep)}

/* contrast fixes */
.voucher .v-worth span{color:var(--ink)}
.voucher .v-line.ph{color:#6B6573}
