.voucher-order-page::before { display: none; }
.voucher-order-page [hidden] { display: none !important; }
.voucher-order-header { max-width: 1080px; margin: auto; padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid #e8d9d1; }
.voucher-order-header .brand { min-width: 0; width: auto; font: 26px var(--font-serif); }
.voucher-order-header > a:last-child { font-size: 13px; color: #82625d; text-decoration: none; }
.voucher-order-main { max-width: 1080px; margin: 0 auto; padding: 18px 24px 28px; }
.voucher-preview-notice { margin: 0 0 14px; padding: 10px 12px; border-radius: 6px; background: #f3e1e7; color: #6c4145; font-size: 12px; line-height: 1.5; }
.voucher-order-intro { margin-bottom: 18px; }
.voucher-order-intro .eyebrow { margin-bottom: 6px; font-size: 10px; }
.voucher-order-intro h1 { margin: 0 0 8px; font: 400 clamp(28px, 3.3vw, 36px)/1.15 var(--font-serif); letter-spacing: -0.03em; }
.voucher-order-intro em, .voucher-order-aside em { color: #946065; }
.voucher-order-intro > p:last-child { max-width: 760px; color: #806b63; font-size: 13px; line-height: 1.6; margin: 0; }
.voucher-order-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.voucher-order-panel { border: 1px solid #e9dcd3; background: #fffaf6; padding: 20px; border-radius: 16px; box-shadow: 0 12px 40px #75504708; min-width: 0; }
.voucher-order-panel h2 { font: 400 24px/1.2 var(--font-serif); margin: 0 0 12px; }
.voucher-order-panel fieldset { border: 0; min-width: 0; padding: 0; margin: 0; }
.voucher-field { display: grid; align-content: start; gap: 6px; min-width: 0; font-size: 13px; font-weight: 600; color: #5e4443; margin-bottom: 12px; }
.voucher-field input, .voucher-field select { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #ddcdc5; border-radius: 6px; padding: 10px; background: #fff; color: #493536; font: inherit; font-size: 16px; }
.voucher-field select { text-overflow: ellipsis; padding-right: 28px; }
.voucher-field small { font-size: 11px; font-weight: 400; color: #89716b; }
.voucher-field input[aria-invalid="true"] { border-color: #8b3437; }
.voucher-field .voucher-field-error { color: #8b3437; line-height: 1.5; }
.voucher-contact-fields { display: grid; grid-template-columns: minmax(0, 1fr) 112px; gap: 16px; }
.voucher-item { padding: 12px; margin-bottom: 12px; border: 1px solid #eadad3; border-radius: 10px; background: #fbf1ec; }
.voucher-item h3 { margin: 0 0 8px; font-size: 11px; color: #97666b; text-transform: uppercase; letter-spacing: 0.14em; }
.voucher-item .voucher-field:last-child { margin-bottom: 0; }
.voucher-item-fields { display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1fr); gap: 12px; }
.voucher-item-fields .voucher-field { margin-bottom: 0; }
.voucher-item-fields.voucher-recipient-only { grid-template-columns: minmax(0, 1fr); }
.voucher-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.voucher-order-panel .voucher-kind { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.voucher-kind label { display: flex; align-items: center; gap: 9px; min-height: 64px; padding: 10px 11px; border: 1px solid #ddcdc5; border-radius: 8px; background: #fffaf6; cursor: pointer; }
.voucher-kind label:has(input:checked) { border-color: #a67680; background: #f3e1e7; }
.voucher-kind label:has(input:disabled) { opacity: 0.5; cursor: default; }
.voucher-kind input { flex-shrink: 0; width: 17px; height: 17px; margin: 0; accent-color: #815356; }
.voucher-kind strong { display: block; font-size: 13px; font-weight: 600; color: #493536; }
.voucher-kind small { display: block; margin-top: 2px; font-size: 11px; font-weight: 400; line-height: 1.4; color: #806b63; }
.voucher-service-help { margin: -4px 0 12px; color: #806b63; font-size: 12px; line-height: 1.6; }
.voucher-service-trigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 50px; padding: 12px 14px; margin: 0 0 12px; border: 1px solid #caa9ab; border-radius: 8px; color: #6c4145; background: #fffaf6; font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; }
.voucher-service-trigger:hover { background: #f3e1e7; border-color: #a67680; }
.voucher-service-trigger:disabled { opacity: 0.5; cursor: default; }
.voucher-service-trigger > span:last-child { font-size: 22px; font-weight: 400; }
.voucher-selected-services { list-style: none; padding: 0; margin: 0 0 12px; }
.voucher-selected-services li { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid #eadad3; font-size: 13px; line-height: 1.5; color: #5e4443; }
.voucher-selected-services li:first-child { padding-top: 0; }
.voucher-selected-services strong, .voucher-selected-services small { display: block; }
.voucher-selected-services strong { font-weight: 600; }
.voucher-selected-services small { margin-top: 3px; color: #806b63; font-size: 12px; }
.voucher-selected-services li > span:last-child { flex-shrink: 0; white-space: nowrap; }
.voucher-service-summary { margin-bottom: 14px; padding: 12px; border-radius: 8px; background: #fffaf6; }
.voucher-service-name { margin: 0 0 8px; color: #5e4443; font-size: 14px; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.voucher-service-price { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.voucher-service-duration { color: #806b63; font-size: 12px; }
.voucher-service-price strong { color: #815356; font: 400 23px/1.2 var(--font-serif); white-space: nowrap; }
.voucher-service-summary details { margin-top: 8px; color: #806b63; font-size: 12px; line-height: 1.6; }
.voucher-service-summary summary { min-height: 28px; padding: 4px 0; color: #6c4145; cursor: pointer; }
.voucher-service-includes ul { padding-left: 18px; margin: 8px 0 0; }
.voucher-service-includes p { margin: 8px 0 0; }
.voucher-procedure-note { margin: 0 0 18px; padding: 15px 17px; background: #f4e8e7; border: 1px solid #e6d2d0; border-radius: 10px; color: #624749; font-size: 13px; line-height: 1.6; }
.voucher-procedure-note p { margin: 4px 0 8px; }
.voucher-contact-links { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.voucher-contact-links a { color: #75484e; text-underline-offset: 4px; padding: 6px 0; font-weight: 600; }
.voucher-order-panel .voucher-delivery { margin: 14px 0 0; }
.voucher-delivery legend { padding: 0; margin-bottom: 8px; color: #5e4443; font-size: 13px; font-weight: 600; }
.voucher-delivery-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.voucher-delivery label { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #ddcdc5; border-radius: 8px; background: #fff; cursor: pointer; }
.voucher-delivery label:has(input:checked) { border-color: #a67680; background: #f3e1e7; }
.voucher-delivery label:hover { border-color: #a67680; }
.voucher-delivery input { width: 18px; height: 18px; margin: 0; accent-color: #815356; flex-shrink: 0; }
.voucher-delivery strong { display: block; color: #493536; font-size: 13px; font-weight: 600; }
.voucher-delivery p, .voucher-payment-note { color: #806b63; font-size: 12px; line-height: 1.6; margin: 8px 0; }
.voucher-delivery small { display: block; color: #806b63; font-size: 11px; line-height: 1.6; }
.voucher-terms { margin: 16px 0 14px; color: #5e4443; font-size: 13px; line-height: 1.6; }
.voucher-terms label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.voucher-terms input { width: 20px; height: 20px; margin-top: 1px; flex-shrink: 0; accent-color: #815356; }
.voucher-terms a { color: #6c4145; text-underline-offset: 3px; }
.voucher-terms .voucher-field-error { display: block; margin-top: 6px; color: #8b3437; font-size: 12px; }
.voucher-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 16px; padding-top: 12px; border-top: 1px solid #e4d3c9; }
.voucher-total { display: grid; font-size: 12px; }
.voucher-total strong { color: #815356; font-size: 24px; font-family: var(--font-serif); }
.voucher-submit { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; width: 100%; margin-top: 14px; padding: 12px 16px; border: 0; border-radius: 6px; background: #e7c7d1; color: var(--ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.voucher-checkout .voucher-submit { justify-content: center; margin: 0; }
.voucher-submit:hover, .voucher-submit:focus-visible { background: #ddb8c5; }
.voucher-submit:disabled { opacity: 0.55; cursor: wait; }
.voucher-privacy { margin: 10px 0 0; color: #89716b; font-size: 10px; line-height: 1.6; }
.voucher-error { margin: 18px 0 0; padding: 14px; background: #fbe9e5; color: #8b3437; border-radius: 8px; font-size: 14px; }
.voucher-retry { margin-top: 12px; min-height: 44px; border: 1px solid rgba(231, 199, 209, 0.72); border-radius: 6px; color: var(--ink); background: #e7c7d1; padding: 10px 16px; }
.voucher-retry:hover, .voucher-retry:focus-visible { background: #ddb8c5; }
.voucher-order-art { position: relative; height: 220px; padding: 20px 16px; margin-bottom: 18px; background: radial-gradient(ellipse at top, #f9e7e1, #e7c6c0); border-radius: 110px 110px 10px 10px; overflow: hidden; }
.voucher-order-art > span { display: block; text-align: center; letter-spacing: 0.3em; font: 16px var(--font-serif); color: #795557; }
.voucher-order-art img { position: absolute; width: 78%; height: auto; border-radius: 2px; box-shadow: 0 12px 24px #75464430; }
.voucher-order-art img:first-of-type { top: 56px; left: 5%; transform: rotate(-9deg); }
.voucher-order-art img:last-child { top: 112px; right: 5%; transform: rotate(7deg); }
.voucher-order-aside h2 { font: 400 26px/1.15 var(--font-serif); margin: 0 0 16px; }
.voucher-order-aside ol { list-style: none; padding: 0; margin: 0; counter-reset: voucher-steps; }
.voucher-order-aside li { counter-increment: voucher-steps; position: relative; padding: 0 0 14px 34px; }
.voucher-order-aside li::before { content: "0" counter(voucher-steps); position: absolute; left: 0; top: 0; font: italic 20px var(--font-serif); color: #a47c76; }
.voucher-order-aside li strong { display: block; font-size: 13px; font-weight: 600; margin-bottom: 3px; }
.voucher-order-aside li span { display: block; font-size: 12px; line-height: 1.6; color: #806b63; }
.voucher-help { color: #806b63; font-size: 13px; line-height: 1.6; border-top: 1px solid #e4d3c9; margin: 0; padding-top: 12px; }
.voucher-help a { color: #6c4145; }
.voucher-payment-details { background: #fbf1ec; padding: 20px; border-radius: 10px; margin: 24px 0; }
.voucher-payment-details dl { margin: 0 0 18px; }
.voucher-payment-details dl div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin: 10px 0; }
.voucher-payment-details dt { font-size: 13px; color: #806b63; }
.voucher-payment-details dd { margin: 0; font-size: 15px; font-weight: 600; overflow-wrap: anywhere; }
.voucher-payment-details img { margin: auto; height: auto; }
#voucher-order-success > p, #voucher-order-success li { font-size: 14px; color: #806b63; line-height: 1.8; overflow-wrap: anywhere; }
.voucher-order-page :focus-visible { outline: 2px solid #815356; outline-offset: 3px; }
.voucher-picker-open { overflow: hidden; }
.voucher-picker { width: min(900px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 1px solid #e6d2d0; border-radius: 20px; background: #fffaf6; color: #493536; box-shadow: 0 24px 100px #49353640; }
.voucher-picker::backdrop { background: #392c2b70; backdrop-filter: blur(4px); }
.voucher-picker-shell { display: flex; flex-direction: column; max-height: calc(100dvh - 42px); }
.voucher-picker-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 28px 16px; }
.voucher-picker-header .eyebrow { margin: 0 0 6px; font-size: 10px; color: #97666b; }
.voucher-picker-header h2 { margin: 0 0 8px; font: 400 30px/1.15 var(--font-serif); }
.voucher-picker-header p:last-child { margin: 0; max-width: 570px; color: #806b63; font-size: 13px; line-height: 1.6; }
.voucher-picker-close { flex: 0 0 40px; width: 40px; height: 40px; border: 1px solid #eadad3; border-radius: 50%; background: #fff; color: #795557; font-size: 26px; cursor: pointer; }
.voucher-picker-close:hover { background: #f3e1e7; }
.voucher-picker-toolbar { padding: 0 28px 16px; border-bottom: 1px solid #eadad3; }
.voucher-picker-toolbar .voucher-field { margin-bottom: 12px; }
.voucher-picker-categories { display: flex; gap: 8px; flex-wrap: wrap; }
.voucher-picker-categories button { padding: 9px 13px; border: 1px solid #ddcdc5; border-radius: 30px; background: transparent; color: #795557; font-size: 12px; cursor: pointer; }
.voucher-picker-categories button[aria-pressed="true"] { border-color: #815356; color: #fffaf6; background: #815356; }
.voucher-picker-list { flex: 1 1 auto; min-height: 100px; overflow-y: auto; overscroll-behavior: contain; padding: 4px 28px 24px; }
.voucher-picker-list h3 { margin: 20px 0 10px; font-size: 12px; letter-spacing: 0.06em; color: #97666b; text-transform: uppercase; }
.voucher-picker-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; align-items: start; }
.voucher-picker-service { min-width: 0; border: 1px solid #e5d6ce; border-radius: 12px; background: #fff; }
.voucher-picker-service:has(input:checked) { background: #f5e7eb; border-color: #a67680; box-shadow: inset 0 0 0 1px #a67680; }
.voucher-picker-service > label { display: flex; gap: 13px; align-items: flex-start; cursor: pointer; padding: 17px 16px 14px; }
.voucher-picker-service input { width: 20px; height: 20px; flex-shrink: 0; margin: 2px 0 0; accent-color: #815356; }
.voucher-picker-service-copy { flex: 1; min-width: 0; }
.voucher-picker-service-copy strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.4; }
.voucher-picker-service-copy small { display: block; margin-top: 5px; color: #89716b; font-size: 12px; }
.voucher-picker-service-price { display: block; margin-top: 10px; color: #815356; font: 400 23px/1.2 var(--font-serif); }
.voucher-picker-service details { padding: 0 16px 12px 49px; color: #806b63; font-size: 12px; line-height: 1.6; }
.voucher-picker-service summary { cursor: pointer; color: #75484e; min-height: 28px; padding: 5px 0; }
.voucher-picker-footer { flex-shrink: 0; padding: 15px 28px 20px; background: #fbf1ec; border-top: 1px solid #e5d6ce; }
.voucher-picker-selection { display: flex; flex-wrap: wrap; gap: 6px; max-height: 78px; overflow-y: auto; overscroll-behavior: contain; margin-bottom: 12px; }
.voucher-picker-selection:empty { display: none; }
.voucher-picker-selection button { max-width: 100%; padding: 6px 10px; border: 1px solid #ddc5c8; border-radius: 6px; background: #fffaf6; color: #75484e; font-size: 11px; line-height: 1.4; text-align: left; cursor: pointer; }
.voucher-picker-checkout { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.voucher-picker-total { display: grid; gap: 3px; font-size: 12px; color: #806b63; }
.voucher-picker-total strong { color: #815356; font: 400 28px/1.1 var(--font-serif); white-space: nowrap; }
.voucher-picker-total small { font-size: 11px; }
.voucher-picker-checkout .voucher-submit { width: auto; min-width: 190px; margin: 0; justify-content: center; }
.voucher-picker .voucher-submit:disabled { cursor: default; }
.voucher-picker-empty { padding: 40px 0; text-align: center; color: #806b63; font-size: 14px; line-height: 1.6; }
.voucher-picker .voucher-field-error { margin: 0 0 10px; color: #8b3437; font-size: 12px; line-height: 1.5; }
@media (max-width: 680px) {
  .voucher-picker { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 16px; }
  .voucher-picker-shell { max-height: calc(100dvh - 22px); }
  .voucher-picker-header { padding: 18px 16px 12px; gap: 10px; }
  .voucher-picker-header h2 { font-size: 25px; }
  .voucher-picker-header p:last-child { font-size: 12px; }
  .voucher-picker-toolbar { padding: 0 16px 12px; }
  .voucher-picker-categories { flex-wrap: nowrap; overflow-x: auto; padding: 3px 2px; scrollbar-width: none; }
  .voucher-picker-categories::-webkit-scrollbar { display: none; }
  .voucher-picker-categories button { flex-shrink: 0; padding: 9px 11px; }
  .voucher-picker-list { padding: 0 16px 16px; }
  .voucher-picker-grid { grid-template-columns: minmax(0, 1fr); }
  .voucher-picker-service > label { padding: 13px 14px 10px; }
  .voucher-picker-service details { padding-left: 47px; }
  .voucher-picker-footer { padding: 12px 16px 16px; }
  .voucher-picker-checkout { gap: 12px; }
  .voucher-picker-checkout .voucher-submit { min-width: 0; font-size: 13px; padding: 12px 14px; }
  .voucher-picker-total strong { font-size: 24px; }
  .voucher-selected-services li { flex-wrap: wrap; gap: 6px; }
}
@media (max-width: 760px) {
  .voucher-order-main { padding: 20px 18px 28px; }
  .voucher-order-intro { margin-bottom: 18px; }
  .voucher-order-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .voucher-order-panel { padding: 20px; }
  .voucher-order-aside { max-width: 430px; width: 100%; margin: auto; }
  .voucher-order-art { max-width: 320px; margin: 0 auto 18px; }
}
@media (max-width: 420px) {
  .voucher-kind label { padding: 9px 8px; gap: 7px; }
  .voucher-kind small { font-size: 11px; }
  .voucher-contact-fields { grid-template-columns: minmax(0, 1fr) 96px; gap: 10px; }
  .voucher-item-fields { grid-template-columns: minmax(0, 1fr); }
  .voucher-order-header { padding: 14px 18px; gap: 12px; }
  .voucher-order-header > a:last-child { font-size: 12px; white-space: nowrap; }
  .voucher-order-panel { padding: 18px 14px; }
  .voucher-item { padding: 12px; }
  .voucher-delivery label { padding: 10px 8px; gap: 8px; }
  .voucher-checkout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 10px; }
  .voucher-checkout .voucher-submit { padding: 12px 10px; font-size: 13px; }
}
