@font-face { font-family: 'Kupe Cardo'; src: url('/fonts/cardo-italic.woff2') format('woff2'); font-style: italic; font-weight: 400; font-display: swap; }
.voucher-purchase__intro { min-width: 0; align-self: stretch; }
.voucher-preview { position: sticky; top: 112px; margin-top: 32px; }
.voucher-preview-disclosure > summary,.voucher-purchase__preview-link { display: none; }
.voucher-preview-disclosure { scroll-margin-top: 112px; }
.voucher-preview__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 12px; font-size: 14px; }
.voucher-preview__head strong { color: var(--ink); font-family: var(--font-head); font-weight: 500; }
.voucher-preview__head span,.voucher-preview__note { color: var(--muted); }
.voucher-preview__stage { width: 100%; aspect-ratio: 1210 / 832; perspective: 1200px; }
.voucher-preview__flipper { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; }
.voucher-preview.is-ready .voucher-preview__flipper { transition: transform .65s cubic-bezier(.22, .65, .2, 1); }
.voucher-preview__flipper.is-flipped { transform: rotateY(180deg); }
.voucher-preview__card { position: absolute; inset: 0; width: 100%; height: 100%; background: #fff; container-type: inline-size; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.voucher-preview__card--back { transform: rotateY(180deg); }
.voucher-preview__card img { display: block; width: 100%; height: 100%; border: 1px solid rgba(26, 26, 26, .1); object-fit: contain; }
.voucher-preview__card--back > span { position: absolute; overflow: hidden; white-space: nowrap; }
.voucher-preview__card--back > span[hidden] { display: none; }
.voucher-preview__kind { left: 24.1%; top: 43.4%; width: 39%; height: 3.6%; padding-left: .4%; background: #fafafa; color: var(--ink); font: 400 1.7cqw/1.45 var(--font-body); }
.voucher-preview__recipient { left: 29.4%; top: 52.4%; max-width: 52%; color: var(--blue); font: italic 400 2.5cqw/1.25 'Kupe Cardo', Georgia, serif; }
.voucher-preview__amount { left: 34%; top: 58.9%; color: var(--ink); font: 400 2.05cqw/1.25 var(--font-body); }
.voucher-preview__pending { left: 23.1%; width: 19%; color: var(--muted); font: 400 1.6cqw/1.25 var(--font-body); }
.voucher-preview__pending--expiry { top: 74.7%; }
.voucher-preview__pending--code { top: 78.6%; }
.voucher-preview__dedication { left: 31.85%; top: 87.4%; display: flex; align-items: center; justify-content: center; width: 37%; height: 8.6%; padding: 0 .4%; background: #fafafa; color: var(--blue); font: italic 400 1.9cqw/1.1 'Kupe Cardo', Georgia, serif; text-align: center; white-space: pre-wrap !important; overflow-wrap: anywhere; }
.voucher-preview__controls { display: flex; gap: 20px; margin-top: 12px; }
.voucher-preview__controls button { padding: 4px 0; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--muted); font: 500 14px var(--font-head); cursor: pointer; }
.voucher-preview__controls button:hover,.voucher-preview__controls button:focus-visible,.voucher-preview__controls button.is-active { border-bottom-color: var(--blue); color: var(--blue); }
.voucher-preview__controls button:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.voucher-preview__note { margin: 12px 0 0; font-size: 13px; line-height: 1.45; }
.voucher-purchase__personalization { grid-column: 1 / -1; margin: 0; padding-top: 3px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.voucher-purchase__hint { grid-column: 1 / -1; margin: -10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.voucher-purchase__line-count { grid-column: 1 / -1; justify-self: end; margin-top: -5px; color: var(--muted); font-size: 13px; }
.voucher-purchase { background: var(--secondary); }
.voucher-purchase__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 7vw, 112px); align-items: start; }
.voucher-purchase__intro h2 { max-width: 520px; margin: 22px 0; font: 500 clamp(27px, 3vw, 39px)/1.2 var(--font-head); }
.voucher-purchase__intro > p { max-width: 510px; margin: 0 0 20px; color: var(--muted); }
.voucher-purchase__price { display: block; margin: 26px 0 5px; color: var(--blue); font: 500 32px/1.2 var(--font-head); }
.voucher-purchase__small { font-size: 14px; line-height: 1.55; color: var(--muted); }
.voucher-purchase__form { padding: clamp(22px, 3vw, 40px); background: #fff; border: 1px solid var(--line); }
.voucher-purchase__form h3 { margin: 0 0 24px; font: 500 24px var(--font-head); }
.voucher-purchase__delivery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 0 24px; padding: 0; border: 0; }
.voucher-purchase__delivery legend { margin-bottom: 10px; font-size: 14px; font-weight: 600; }
.voucher-purchase__delivery label { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid var(--line); cursor: pointer; }
.voucher-purchase__delivery label:has(input:checked) { border-color: var(--blue); background: #f6f6fb; }
.voucher-purchase__delivery input { flex: none; margin: 3px 0 0; accent-color: var(--blue); }
.voucher-purchase__delivery strong,.voucher-purchase__delivery small { display: block; }
.voucher-purchase__delivery strong { font-size: 14px; }
.voucher-purchase__delivery small { margin-top: 4px; color: var(--muted); line-height: 1.35; }
.voucher-purchase__offers em { display: block; margin-top: 8px; color: var(--blue); font-size: 15px; font-style: normal; font-weight: 600; white-space: nowrap; }
.voucher-purchase__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.voucher-purchase__fields label { display: grid; gap: 7px; font-size: 14px; font-weight: 600; }
.voucher-purchase__fields input,.voucher-purchase__fields textarea { width: 100%; min-width: 0; padding: 11px 12px; border: 1px solid #b8b8b8; border-radius: 0; background: #fff; color: var(--ink); font: 400 16px var(--font-body); }
.voucher-purchase__fields input:focus-visible,.voucher-purchase__fields textarea:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.voucher-purchase__form > [data-voucher-photographer]:not([hidden]) { display:grid; gap:8px; margin:20px 0; font-size:14px; font-weight:600; }
[data-voucher-photographer] select { width:100%; min-height:46px; padding:11px 12px; border:1px solid #b8b8b8; border-radius:0; background:#fff; color:var(--ink); font:400 16px var(--font-body); }
[data-voucher-photographer] small { font-size:13px; font-weight:400; }
.voucher-purchase__wide { grid-column: 1 / -1; }
.voucher-purchase__fields textarea { resize: vertical; }
.voucher-purchase__consent { display: flex; align-items: flex-start; gap: 11px; margin: 24px 0; font-size: 14px; line-height: 1.5; }
.voucher-purchase__consent input { flex: none; width: 19px; height: 19px; margin: 2px 0 0; accent-color: var(--blue); }
.voucher-purchase__consent a,.voucher-order__foot a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.voucher-purchase__summary { display: flex; justify-content: space-between; gap: 16px; margin: 0 0 15px; padding-top: 17px; border-top: 1px solid var(--line); font-size: 16px; }
.voucher-purchase__summary strong { color: var(--blue); white-space: nowrap; }
.voucher-purchase__form .btn { display: block; width: 100%; max-width: 100%; text-align: center; white-space: normal; font-size: 15px; line-height: 1.35; }
.voucher-purchase__form > .voucher-purchase__small { margin: 16px 0 0; }
.voucher-purchase__error { padding: 12px 15px; background: #fff1ed; color: #8a2417; }
.voucher-purchase .booking-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.voucher-order { max-width: 930px; }
.voucher-order > p { max-width: 720px; }
.voucher-order__grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: start; }
.voucher-order__grid .booking-manage__qr { margin: 0; }
.voucher-order__code { color: var(--blue); font: 500 31px var(--font-head); overflow-wrap: anywhere; }
.voucher-order__foot { margin-top: 35px; }
.voucher-print-page { min-height: 100vh; background: #e8e8e8; padding: 35px 20px; }
.voucher-print { width: min(760px, 100%); min-height: 520px; display: flex; flex-direction: column; justify-content: space-between; gap: 25px; margin: 0 auto; padding: clamp(28px, 5vw, 60px); background: #fafafa; border-top: 12px solid var(--blue); }
.voucher-print__brand { margin: 0; font: 500 33px var(--font-head); }
.voucher-print__brand span { display: block; margin-top: 2px; font: 400 11px var(--font-body); }
.voucher-print__eyebrow { margin: 0 0 10px; color: var(--blue); font-weight: 600; }
.voucher-print h1 { margin: 0 0 12px; font: 500 clamp(31px, 4vw, 47px)/1.15 var(--font-head); }
.voucher-print__details { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 13px 0; }
.voucher-print__details p { margin: 7px 0; }
.voucher-print__dedication { white-space: pre-wrap; }
.voucher-print__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.voucher-print__actions a { color: var(--blue); text-decoration: underline; }
@media (max-width: 760px) { .voucher-purchase__grid,.voucher-order__grid { grid-template-columns: 1fr; }.voucher-preview { position: static; }.voucher-purchase__fields,.voucher-purchase__delivery { grid-template-columns: 1fr; }.voucher-purchase__form { padding: 22px; }.voucher-purchase__form .btn { width: 100%; }.voucher-order__grid .booking-manage__qr { justify-self: start; } }
@media (prefers-reduced-motion: reduce) { .voucher-preview.is-ready .voucher-preview__flipper { transition: none; } }
@media (max-width: 760px) {
    .voucher-preview-disclosure > summary { display: list-item; padding: 12px 0; color: var(--blue); font-weight: 600; cursor: pointer; }
    .voucher-purchase__preview-link { display: block; width: fit-content; border: 0; border-bottom: 1px solid currentColor; padding: 4px 0; background: transparent; color: var(--blue); font: inherit; cursor: pointer; }
    .voucher-purchase__intro h2 { font-size: 26px; }
    .voucher-preview { max-width: 300px; margin: 20px auto; }
    .voucher-preview-disclosure[open] .voucher-preview { max-width: none; }
    .voucher-purchase__form { padding: 18px 0; border: 0; }
    .voucher-purchase__delivery label { padding: 12px; }
}
@media print { .voucher-print-page { padding: 0; background: #fff; }.voucher-print { width: 100%; min-height: 180mm; border-top: 12px solid #1c24b3; box-shadow: none; }.voucher-print__actions { display: none; } }
