/* Event information and the purchase path share the ticket platform palette. */
.page .back, .faq-back .back {
  color: #37415a;
  font-weight: 600;
}
.page .back:hover, .faq-back .back:hover, .event-faq {
  color: #004bff;
}
.page .path {
  color: #5c6472;
}
.page .path b {
  color: #004bff;
  background: #edf2ff;
  padding: 5px 9px;
  border-radius: 100px;
}
.details .eventpic {
  border-radius: 18px;
  background: #eef2ff;
  object-position: center;
}
.event-caption {
  padding-block-start: 20px;
}
.details[data-status="archive"] .eventgrid {display:block}
.details[data-status="archive"] .detail-top {
  display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.75fr);
  gap:clamp(25px,5vw,75px);align-items:start;
}
.details[data-status="archive"] .event-caption {padding:0}
.past-event-status {display:inline-block;margin:0 0 14px;padding:5px 10px;border-radius:6px;background:#eef2f7;color:#36445b;font-size:13px;font-weight:700}
.details[data-status="archive"] .bn-event-description {margin:0 0 20px;line-height:1.6}
@media(max-width:760px){
  .details[data-status="archive"] .detail-top {grid-template-columns:minmax(0,1fr);gap:18px}
}
.event-caption .metarow {
  color: #35405b;
  gap: 10px;
}
.event-caption .metarow b {
  color: #004bff;
}
.event-caption .event-title {
  margin-block: 9px 21px;
  letter-spacing: -.065em;
}
.event-caption .factgrid {
  margin: 0;
  padding: 17px 0;
}
.event-caption .fact svg, .event-caption .place svg {
  color: #004bff;
}
.journey-organizer {
  margin-block: 14px;
  color: #535a6c;
  font-size: 13px;
  line-height: 1.5;
}
.faq-heading .journey-organizer {
  max-width: 28ch;
}
.faq-item[open] summary::after {
  background: linear-gradient(white, white) center / 9px 2px no-repeat, #004bff;
}
.details .panel, .payment form, .payment .summary {
  padding: clamp(20px, 3vw, 35px);
  border: 1px solid #dce2ef;
  border-radius: 20px;
  background: white;
}
.details .panel {
  border-top: 4px solid #004bff;
}
.details .panel h2, .payment h2 {
  font-size: clamp(23px, 2.5vw, 33px);
  line-height: 1.14;
  overflow-wrap: anywhere;
}
.details .panel .tariff {
  border-color: #e1e5ef;
}
.details .tariff .cost, .details .panel .total b {
  color: #004bff;
}
.qty button, .pager button {
  border-color: #cad3e7;
  background: #fff;
}
.qty button:not(:disabled):is(:hover,:focus-visible),
.pager button:not(:disabled):is(:hover,:focus-visible) {
  border-color: #004bff;
  color: #004bff;
  background: #eff3ff;
}
.mobile-cta {
  background: #fff;
  color: #101320;
  border-top: 1px solid #dce2ef;
}
.mobile-cta small {
  color: #505b72;
}
.details button.primary, .mobile-cta button.primary, .payment .darkbtn, .pass-tools .darkbtn,
.archive .darkbtn, .letter .darkbtn, .save-sheet .darkbtn {
  background: #004bff;
  color: white;
  border-radius: 100px;
  font-weight: 700;
}
.details button.primary:hover, .payment .darkbtn:hover, .pass-tools .darkbtn:hover,
.archive .darkbtn:hover, .letter .darkbtn:hover, .save-sheet .darkbtn:hover {
  background: #003ccf;
}
.payment .paygrid { align-items:start; }
.payment .previeworder img, .archive-row img { border-radius: 10px; }
.payment input[type=email] {
  border-color: #acb7cc;
  border-radius: 9px;
}
.payment .ap-intro { border-radius: 10px; }
.ap-page #autopay-form { margin-bottom:0; }
.ap-page .ap-gateway { border-radius: 19px; }
.ap-receipt { border-radius: 12px; }
.ap-receipt a { text-underline-offset: .2em; }
.pass, .letter, .save-sheet {
  border-radius: 16px;
  border-color: #d6ddeb;
  background: white;
}
.pass-head, .letter header {
  color: white;
  background: #004bff;
}
.ticket-identity {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  white-space: nowrap;
}
.ticket-identity img {
  width: auto;
  height: 23px;
  align-self: center;
}
.ticket-identity > span {
  font-size: 14px;
  letter-spacing: -.04em;
  font-weight: 500;
}
.pass-head small, .letter header small {
  font-size: 10px;
  color: white;
  text-align: right;
}
.pass-main {
  border-top: 4px solid;
  border-image: linear-gradient(90deg,#ffb507,#fc2652,#004bff) 1;
  padding-block: 20px;
}
.pass-main h2 { color: #172241; }
.stub { border-top-color:#c6cee1; }
.stub::before, .stub::after { border-color:#c6cee1; }
.pass-tools .ghost { border-color:#c8d3ec; border-radius:100px; }
.letter-body h1 { overflow-wrap:anywhere; }
.archive-row { border-color: #dce2ef; }
.archive-row:hover .arrowend { color: #004bff; }
.wallet-empty {
  border-radius: 20px;
  padding: clamp(22px, 4vw, 38px);
  background: #f0f4ff;
  color: #18223a;
}
.wallet-empty p { max-width: 42ch; line-height: 1.55; }
.wallet-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: white;
  color: #004bff;
  margin-bottom: 20px;
}
.wallet-icon svg { width: 30px; height: 30px; transform: rotate(-14deg); }
@media screen and (prefers-reduced-motion: no-preference) {
  #pass-box.issuing-ticket {
    position: relative;
    overflow: hidden;
  }
  .issuing-ticket::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 0;
    inset-inline: 0;
    height: 6px;
    border-radius: 99px;
    background: #172241;
    pointer-events: none;
    animation: bn-printer-slot .82s ease-out both;
  }
  .issuing-ticket .pass {
    animation: bn-feed-ticket .82s cubic-bezier(.18,.74,.22,1) both;
  }
  @keyframes bn-feed-ticket {
    from { transform: translateY(-86%); }
    78% { transform: translateY(-1.5%); }
    to { transform: translateY(0); }
  }
  @keyframes bn-printer-slot {
    0%, 72% { opacity: 1; }
    to { opacity: 0; }
  }
}
@media (max-width: 540px) {
  .event-caption { padding-block-start: 16px; }
  .details .eventpic, .details .panel, .payment form, .payment .summary { border-radius: 14px; }
  .event-caption .metarow { font-size: 13px; }
  .event-caption .event-title { margin-block: 8px 15px; }
  .faq-heading .journey-organizer { margin: 8px 0 0; }
}
@media (max-width: 375px) {
  .page .pagetop { flex-wrap: wrap; }
  .pass-head, .letter header { padding-inline: 15px; }
}
.buyer-nav:not([hidden]){display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;color:var(--blue,#004bff);font-weight:700}
.buyer-auth{max-width:460px;margin:12px auto 60px}
.buyer-auth .page-title{font-size:clamp(32px,4.5vw,52px);line-height:1.05;margin:24px 0 12px;overflow-wrap:anywhere}
.buyer-auth .sub{margin:0 0 24px}
.buyer-form{display:grid;gap:9px}
.buyer-form label{font-weight:700}
.buyer-form input{font:inherit;color:inherit;width:100%;padding:12px 15px;border:1px solid #a9b8d1;border-radius:12px;background:white;box-sizing:border-box}
.buyer-form input:focus-visible{outline:2px solid #004bff;outline-offset:2px}
.buyer-form small{color:#455269}
.buyer-form .error{margin:0}
.buyer-form .error:empty{display:none}
.buyer-form .darkbtn{margin-top:8px}
.buyer-switch,.buyer-checkout a{font-weight:700;color:#003cce;text-decoration:underline;text-underline-offset:3px}
.buyer-switch{display:inline-flex;align-items:center;min-height:44px;margin-top:6px}
.buyer-checkout,.buyer-wallet{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:14px 16px;background:#eef3ff;border-radius:14px;margin:14px 0 20px;overflow-wrap:anywhere}
.buyer-wallet small{display:block;color:#425377;margin-top:4px}
.buyer-wallet>div{flex:1;min-width:165px}
@media(max-width:1150px){.buyer-nav span{display:none}.buyer-nav:not([hidden]){width:36px}}
@media(max-width:480px){.nav:has(.buyer-nav:not([hidden])) .my span[data-copy]{display:none}.nav:has(.buyer-nav:not([hidden])) .my{min-width:36px;justify-content:center}.buyer-nav:not([hidden]){width:32px}.buyer-auth{margin-top:0}}
.agency-header {margin:clamp(24px,4vw,52px) 0 24px; overflow-wrap:anywhere}
.agency-page .page-title {margin:8px 0}
.agency-location {display:flex; align-items:center; gap:6px; margin:8px 0 0; color:var(--sub)}
.agency-info {display:flex; flex-wrap:wrap; gap:24px 5%; margin-bottom:clamp(30px,5vw,68px); padding:clamp(18px,3vw,32px); border:1px solid var(--line); border-radius:18px; background:#f7f9fe; overflow-wrap:anywhere}
.agency-info section {flex:2 1 330px; min-width:0}
.agency-info .agency-contact-panel {flex:1 1 230px}
.agency-info h2 {margin:0 0 10px; font-size:clamp(18px,2vw,24px); letter-spacing:-.035em}
.agency-bio {max-width:66ch; margin:0; white-space:pre-line; line-height:1.6}
.agency-reach {margin:18px 0 0; font-size:.9rem; line-height:1.6}
.agency-reach dt {font-weight:700}
.agency-reach dd {margin:0; color:var(--sub)}
.agency-contacts {display:flex; flex-wrap:wrap; column-gap:16px; align-items:center}
.agency-contacts a {display:inline-flex; align-items:center; gap:4px; min-height:44px; max-width:100%; font-size:.9rem; font-weight:600}
.agency-contacts .agency-email {display:block; width:100%; align-content:center}
.agency-contacts a,.journey-organizer a {color:var(--blue); text-decoration:underline; text-underline-offset:3px}
.agency-page .cards {margin-top:16px}
.view-agency footer :is(#socials,.foot-email) {display:none}
.agenda .citybtn{display:inline-flex;align-items:center;text-decoration:none;justify-content:center}
.agenda .citybtn[aria-current=page]{background:var(--blue,#004bff);color:white;border-color:transparent}
.agenda .section-top h1{font-size:clamp(30px,5vw,60px);line-height:1.08;letter-spacing:-.045em;margin:0;overflow-wrap:anywhere}
.agenda-promoter,.nav-promoter{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--blue,#004bff);font-weight:700}
.nav-promoter{font-size:14px;white-space:nowrap}
.agenda-promoter{margin-top:20px}.agenda-promoter .ico{width:18px;height:18px}
.promoter-form{max-width:540px;margin:10px auto 55px}.promoter-form .page-title{font-size:clamp(32px,5vw,52px);line-height:1.1;margin-block:24px 10px}
.promoter-form fieldset{border:none;padding:0;margin:24px 0 0;min-width:0;display:grid;gap:15px}
.promoter-form label{display:grid;gap:6px;font-size:14px;font-weight:700}.promoter-form input{box-sizing:border-box;width:100%;padding:12px 15px;font:inherit;font-size:16px;font-weight:500;border:1px solid #a9b8d1;border-radius:12px;background:white;color:inherit}
.promoter-form input:focus-visible{outline:2px solid #004bff;outline-offset:2px}.promoter-form .error{margin:0}.promoter-form .error:empty{display:none}
@media(max-width:1180px){.nav-promoter{display:none}}
