/* Guided voucher landing page, built from the approved service modules. */
.voucher-service .vp-h1 { font-size: clamp(36px,4.1vw,60px); line-height: 1.06; }
.voucher-service .ta-copy, .voucher-service .tb-copy, .voucher-service .tc-copy { gap: 22px; }
.vp-rating { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 13px; color: var(--rsa-mist); }
.vp-rating .stars { font-size: 17px; }
.vp-sections { display: flex; flex-direction: column; gap: 96px; padding-top: 72px; padding-bottom: 88px; }
.vp-end { padding-bottom: 88px; }
.vp-steps { gap: 30px; }
.vp-steps h3 { margin: 0; font: 700 17px/1.4 var(--font-body); }
.vp-steps p { color: var(--rsa-mist); }
.vp-transmission { display: flex; flex-wrap: wrap; gap: 8px; border: 0; margin: 0; padding: 0; }
.vp-occasion-section { display: flex; flex-direction: column; gap: 12px; }
.vp-occasion-section .vp-legend { margin: 0; }
.vp-occasions { display: flex; flex-wrap: wrap; gap: 8px; }
.vp-occasions button { cursor: pointer; background: var(--rsa-surface); color: var(--rsa-chalk); border: 1px solid #7A7A80; border-radius: 2px; padding: 11px 15px; font: 700 12px var(--font-display); }
.vp-occasions button[aria-pressed="true"] { background: var(--rsa-green); color: var(--rsa-road-black); border-color: var(--rsa-green); }
.vp-occasions button:focus-visible { outline: 3px solid var(--rsa-green); outline-offset: 4px; }
.vp-transmission legend { padding: 0; margin: 0 0 10px; font: 700 12px var(--font-body); text-transform: uppercase; letter-spacing: .14em; color: var(--rsa-mist); }
.vp-transmission label { display: inline-flex; cursor: pointer; }
.vp-transmission input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.vp-transmission span { padding: 13px 25px; border: 1px solid #7A7A80; color: var(--rsa-chalk); border-radius: 2px; font: 700 14px var(--font-display); }
.vp-transmission input:checked + span { background: var(--rsa-green); color: var(--rsa-road-black); border-color: var(--rsa-green); }
.vp-transmission input:focus-visible + span { outline: 3px solid var(--rsa-green); outline-offset: 4px; box-shadow: 0 0 0 4px #000; }
.vp-builder-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 32px; align-items: start; }
.vp-package-fieldset { padding: 0; margin: 0; border: 0; min-width: 0; }
.vp-legend { margin: 0 0 12px; padding: 0; color: var(--rsa-mist); font: 700 12px var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.vp-tickets { grid-template-columns: repeat(2,minmax(0,1fr)); }
.voucher-service .vp-package { cursor: pointer; position: relative; min-width: 0; }
.vp-package > input { position: absolute; top: 14px; right: 14px; width: 18px; height: 18px; accent-color: var(--rsa-green); z-index: 1; margin: 0; }
.voucher-service .vp-package:has(input:checked) { outline: 2px solid var(--rsa-green); outline-offset: 2px; }
.voucher-service .vp-package:has(input:focus-visible) { outline: 3px solid var(--rsa-green); outline-offset: 5px; }
.vp-package .ticket-kicker { padding-right: 22px; }
.vp-package .ticket-prices { margin-top: auto; }
.vp-package .ticket-sub { line-height: 1.7; }
.vp-select-text { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 11px 12px; margin-top: 2px; font: 700 11px var(--font-display); text-transform: uppercase; color: var(--rsa-chalk); border: 1px solid #7A7A80; border-radius: 2px; }
.vp-package:has(input:checked) .vp-select-text { background: var(--rsa-green); color: var(--rsa-road-black); border-color: var(--rsa-green); }
.vp-package.rail .vp-select-text { margin: 0 18px 14px auto; }
.vp-package.rail .rail-body { flex-basis: 190px; padding-right: 40px; }
.vp-package.rail .rail-body strong { font: 800 26px var(--font-display); }
.vp-preview-column { min-width: 0; display: flex; flex-direction: column; gap: 13px; padding-top: 26px; }
.vp-preview { border: 1px solid var(--line-16); border-top: 5px solid var(--rsa-red); padding: 25px; gap: 24px; }
.vp-preview-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.vp-preview-top img { width: 90px; height: auto; object-fit: contain; }
.vp-preview-top > span { text-transform: uppercase; text-align: right; color: var(--rsa-chalk); font: 800 13px/1.5 var(--font-display); }
.vp-preview-top small { font: 500 10px var(--font-body); letter-spacing: .1em; color: var(--rsa-mist); }
.vp-preview-recipient { display: flex; flex-direction: column; gap: 8px; border-top: 1px dashed var(--line-16); padding-top: 24px; }
.vp-preview-recipient strong { font: 800 clamp(22px,2.6vw,36px)/1.15 var(--font-display); overflow-wrap: anywhere; color: var(--rsa-chalk); }
.vp-preview-package { display: flex; flex-direction: column; gap: 9px; }
.vp-preview-package > span { color: var(--rsa-mist); font-size: 14px; }
.vp-preview-package > b { font: 800 34px/1.1 var(--font-display); color: var(--rsa-green); }
.vp-preview-note { margin: 0; color: var(--rsa-mist); font-size: 14px; line-height: 1.5; }
.vp-preview-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 18px; border-top: 1px dashed var(--line-16); font-size: 11px; color: var(--rsa-mist); }
.vp-name-label { font: 700 13px var(--font-body); color: var(--rsa-chalk); margin-top: 7px; }
.vp-name { width: 100%; background: var(--rsa-road-black); color: var(--rsa-chalk); border: 1px solid #7A7A80; border-radius: 2px; padding: 13px 14px; font: 400 16px var(--font-body); min-height: 48px; }
.vp-name::placeholder { color: #8A8A8F; }
.vp-create { justify-content: space-between; }
.vp-handoff { margin: 0; font-size: 12px; line-height: 1.5; color: var(--rsa-mist); }
.vp-selection-status { margin: 0; font-size: 13px; color: var(--rsa-mist); }
.vp-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.vp-detail-grid .panel-line { padding: 28px; gap: 18px; }
.vp-detail-grid .h3, .vp-policy .h3 { font-size: 24px; }
.vp-policy { padding: 28px; gap: 16px; border-left: 3px solid var(--rsa-green); }
.vp-review .rcard { max-width: 920px; min-height: 0; }
.vp-review .rcard-text { font-size: 19px; }
.vp-route-body { gap: 40px; }
.vp-route-body .t-main { flex-basis: 720px; }
.vp-route-body .t-side { flex-basis: 275px; }
.vp-route-body .vp-builder-grid { grid-template-columns: minmax(0,1fr); }
.vp-route-body .vp-preview-column { display: grid; grid-template-columns: minmax(0,1fr); padding-top: 0; }
.vp-route-body .vp-preview { display: grid; grid-template-columns: 1fr 1fr; column-gap: 22px; }
.vp-route-body .vp-preview-top, .vp-route-body .vp-preview-bottom { grid-column: 1/-1; }
.vp-route-body .vp-preview-recipient { border: 0; padding-top: 0; }
.vp-route-body .vp-preview-note { grid-column: 1/-1; }
.vp-route-body .vp-package.rail .vp-select-text { align-self: center; margin: 10px 18px; }
.vp-side .tb-guide { padding: 24px; border-width: 4px; }
.vp-side .h2 { font-size: 31px; }
.vp-checks { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; font-size: 14px; color: var(--rsa-mist); }
.vp-checks li { position: relative; padding-left: 22px; }
.vp-checks li::before { content: '\2713'; position: absolute; left: 0; color: var(--rsa-green); font-weight: 700; }
.vp-side-nav { display: flex; flex-direction: column; gap: 14px; padding: 28px 4px; }
.vp-side-nav a { color: var(--rsa-mist); text-decoration: none; font-size: 13px; }
.vp-side-nav a:hover { color: var(--rsa-green); }
.vp-callout { background: var(--rsa-red); padding: 64px 0; }
.vp-callout-in { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 60px; align-items: center; }
.vp-callout-in > div { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.vp-callout p { margin: 0; max-width: 32ch; color: white; font-size: 20px; line-height: 1.5; }
.vp-callout .btn-k { background: #000; color: white; border-radius: 2px; padding: 18px 24px; font: 800 13px var(--font-display); text-transform: uppercase; text-decoration: none; }
.vp-callout .give-call { color: white; }
.voucher-service a:focus-visible, .voucher-service input:focus-visible, .voucher-service summary:focus-visible { outline: 3px solid var(--rsa-green); outline-offset: 4px; }
.voucher-service [id] { scroll-margin-top: 100px; }
@media (max-width:1100px) {
  .rsa-site:has(.voucher-service) .hdr-icon[href^="tel:"] { display: inline-flex; }
  .vp-builder-grid { gap: 22px; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); }
  .vp-route-body .t-main { flex-basis: 600px; }
}
@media (max-width:900px) {
  .vp-builder-grid { grid-template-columns: 1fr; }
  .vp-preview-column { padding-top: 0; }
  .vp-route-body .t-side { display: none; }
  .vp-preview { max-width: none; }
}
@media (max-width:768px) {
  .vp-sections { gap: 64px; padding-top: 48px; padding-bottom: 60px; }
  .vp-end { padding-bottom: 60px; }
  .vp-detail-grid, .vp-callout-in { grid-template-columns: 1fr; gap: 24px; }
  .vp-steps { grid-template-columns: 1fr; }
  .vp-tickets { gap: 16px; }
  .vp-tickets .ticket { padding: 18px; }
  .vp-tickets .ticket-num b { font-size: 60px; }
  .vp-tickets .ticket-kicker { font-size: 10px; min-height: 30px; }
  .vp-tickets .ticket-sub { font-size: 10px; min-height: 34px; }
  .vp-callout { padding: 48px 0; }
  .vp-callout p { font-size: 18px; }
  .vp-review .rcard-text { font-size: 17px; }
  .vp-package.rail .rail-num { flex-basis: 80px; }
  .vp-package.rail .rail-body { flex-basis: 170px; padding: 18px 32px 18px 16px; }
  .vp-route-body .vp-package.rail .vp-select-text { margin: 0 16px 16px auto; }
  .vp-route-body .vp-preview { display: flex; }
}
@media (max-width:380px) {
  .vp-tickets { grid-template-columns: 1fr; }
  .vp-package.rail .rail-body { flex-basis: 145px; }
}
@media (prefers-reduced-motion:reduce) {
  .voucher-service *, .voucher-service *::before, .voucher-service *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .voucher-service .ticket:hover, .voucher-service .rail:hover { transform: none; }
}
