/* Voucher presentation. Shared useful widths are defined in layout.css. */
.axp-public-voucher { --ticket-line:#dae4e8; --ticket-muted:#526672; --ticket-perforation:#aebfbb; --axp-control-bg:#f4f9f6; --axp-control-color:#15583e; --axp-control-border:#b6c9c0; --axp-control-hover-bg:#e5f2e9; --axp-control-hover-color:#15583e; margin:24px auto 16px; padding:0; container:axp-voucher / inline-size; font-family:var(--axp-public-font-body, system-ui, sans-serif); font-size:14px; font-weight:400; line-height:1.6; color:#18313e; }
.axp-public-voucher, .axp-public-voucher *, .axp-public-voucher *::before, .axp-public-voucher *::after { box-sizing:border-box; }
.axp-public-voucher .axp-voucher-sheet { background:#fff; border:1px solid var(--ticket-line); border-radius:5px; overflow:hidden; }
.axp-public-voucher h1, .axp-public-voucher h2, .axp-public-voucher p { margin:0; }
.axp-public-voucher h1 { font-size:24px; font-weight:500; line-height:1.35; margin:6px 0 12px; overflow-wrap:anywhere; }
.axp-public-voucher h2 { font-size:15px; font-weight:500; margin-bottom:8px; }
.axp-public-voucher a { color:#12644e; text-decoration:underline; text-underline-offset:3px; }
.axp-public-voucher button, .axp-public-voucher input { font:inherit; border:1px solid #b6c9c0; border-radius:5px; padding:10px 14px; min-height:44px; max-width:100%; }
.axp-public-voucher button { cursor:pointer; font-weight:500; white-space:normal; }
.axp-public-voucher :focus-visible { outline:2px solid #156c55; outline-offset:3px; }
.axp-public-voucher small { color:var(--ticket-muted); font-size:12px; display:block; line-height:1.5; }
.axp-voucher-header { padding:22px 28px; display:flex; gap:16px; justify-content:space-between; align-items:center; border-bottom:1px solid var(--ticket-line); }
.axp-voucher-brand { display:flex; gap:12px; align-items:center; min-width:0; overflow-wrap:anywhere; }
.axp-voucher-brand img { display:block; max-width:96px; max-height:38px; width:auto; object-fit:contain; border-radius:5px; }
.axp-voucher-status { padding:4px 10px; border-radius:5px; background:#eef1f4; color:#415561; font-size:12px; flex-shrink:0; }
.axp-voucher-status--available, .axp-voucher-status--partial { color:#165b44; background:#e9f5ed; }
.axp-voucher-status--blocked, .axp-voucher-status--expired { color:#873b2b; background:#fcf0ea; }
.axp-voucher-status--consumed { color:#245b83; background:#edf5fb; }
.axp-voucher-content { padding:28px; display:grid; grid-template-columns:minmax(0, 1fr) 220px; gap:32px; }
.axp-voucher-details { min-width:0; }
.axp-voucher-kicker { font-size:12px; color:var(--ticket-muted); }
.axp-voucher-guidance { color:var(--ticket-muted); }
.axp-voucher-facts { margin:24px 0 0; }
.axp-voucher-facts > div { display:grid; grid-template-columns:140px minmax(0, 1fr); gap:12px; margin:12px 0; }
.axp-voucher-facts dt { color:var(--ticket-muted); font-weight:400; }
.axp-voucher-facts dd { margin:0; overflow-wrap:anywhere; }
.axp-voucher-ticket { position:relative; min-width:0; border-left:1px dashed var(--ticket-perforation); padding-left:24px; text-align:center; font-size:12px; }
/* Small perforation ends suggest a detachable stub without covering the QR. */
.axp-voucher-ticket::before, .axp-voucher-ticket::after { content:""; position:absolute; left:-6px; width:11px; height:11px; border:1px solid var(--ticket-line); border-radius:50%; background:#fff; pointer-events:none; }
.axp-voucher-ticket::before { top:-6px; }
.axp-voucher-ticket::after { bottom:-6px; }
.axp-public-voucher .axp-voucher-code { display:block; margin:8px 0 14px; font-size:18px; font-weight:500; overflow-wrap:anywhere; letter-spacing:.02em; }
.axp-voucher-qr { margin:0 auto 16px; width:180px; max-width:100%; background:#fff; color:#000; }
.axp-voucher-qr svg { display:block; width:100%; height:auto; border-radius:0; }
.axp-voucher-ticket button { width:100%; }
.axp-voucher-ticket-note, .axp-voucher-security-note { max-width:280px; margin:0 auto; overflow-wrap:anywhere; }
.axp-voucher-security-note { margin-top:8px; }
.axp-public-voucher .axp-voucher-copy-status { min-height:0; font-size:12px; margin-top:6px; }
.axp-public-voucher .axp-voucher-copy-status:empty { margin:0; }
.axp-voucher-balance { margin-top:24px; padding-top:18px; border-top:1px solid var(--ticket-line); }
.axp-voucher-type { display:grid; grid-template-columns:140px minmax(0, 1fr); gap:12px; margin-top:8px; color:var(--ticket-muted); font-size:13px; overflow-wrap:anywhere; }
.axp-voucher-balance small { margin-top:10px; }
.axp-public-voucher .axp-voucher-progress { display:block; appearance:none; width:100%; height:8px; margin:12px 0 14px; border:0; border-radius:5px; overflow:hidden; background:#e9f0ed; color:#196747; }
.axp-voucher-progress::-webkit-progress-bar { background:#e9f0ed; border-radius:5px; }
.axp-voucher-progress::-webkit-progress-value { background:#196747; border-radius:5px; }
.axp-voucher-progress::-moz-progress-bar { background:#196747; border-radius:5px; }
.axp-public-voucher .axp-pdf-download { display:block; margin:12px 0 16px; }
.axp-public-voucher .axp-pdf-message { display:block; font-size:12px; margin-top:6px; overflow-wrap:anywhere; }
.axp-public-voucher [hidden] { display:none!important; }
.axp-public-voucher .axp-pdf-button:disabled { opacity:.65; cursor:wait; }
.axp-voucher-rules { margin:0 28px; padding:24px 0; border-top:1px solid var(--ticket-line); overflow-wrap:anywhere; }
.axp-public-voucher .axp-voucher-rules p { margin-bottom:10px; }
.axp-voucher-rules ul, .axp-voucher-rules ol { padding-left:20px; }
.axp-voucher-footer { padding:18px 28px; display:flex; flex-wrap:wrap; gap:12px 24px; border-top:1px solid var(--ticket-line); font-size:12px; }
.axp-public-voucher .axp-voucher-lookup { padding:28px; max-width:640px; margin:0 auto; }
.axp-voucher-welcome { display:flex; align-items:flex-start; gap:16px; }
.axp-voucher-welcome > div { min-width:0; }
.axp-voucher-welcome-icon { display:flex; align-items:center; justify-content:center; flex:0 0 40px; height:40px; border-radius:5px; background:#edf6f0; color:#196747; }
.axp-voucher-welcome-icon svg { display:block; width:24px; height:24px; }
.axp-public-voucher .axp-voucher-welcome h1 { font-size:23px; margin:0 0 8px; }
.axp-voucher-welcome p { color:var(--ticket-muted); font-size:14px; }
.axp-voucher-lookup form { margin:22px 0 0; padding-top:22px; border-top:1px dashed var(--ticket-perforation); }
.axp-voucher-lookup label { display:block; margin-bottom:4px; font-weight:500; }
.axp-public-voucher .axp-voucher-code-hint { margin-bottom:12px; color:var(--ticket-muted); font-size:12px; }
.axp-public-voucher .axp-voucher-lookup-error { padding:10px 12px; margin:0 0 12px; border-left:3px solid #9c5826; border-radius:5px; background:#fff7ed; color:#703d20; font-size:13px; }
.axp-voucher-account-access { display:flex; align-items:center; gap:16px; margin-top:20px; padding-top:18px; border-top:1px dashed var(--ticket-perforation); }
.axp-voucher-account-access > div { flex:1; min-width:0; }
.axp-public-voucher .axp-voucher-account-access h2 { margin:0 0 4px; font-size:14px; font-weight:500; }
.axp-public-voucher .axp-voucher-account-access p { color:var(--ticket-muted); font-size:12px; }
/* A navigation link styled as a control must not inherit theme link motion or
 * hover typography. Keep geometry identical; only the shared colors may change.
 */
.axp-public-voucher a.axp-voucher-account-link,
.axp-public-voucher a.axp-voucher-account-link:is(:hover,:focus,:focus-visible,:active,:visited) {
    display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
    max-width:100%; min-height:44px; border-radius:5px; text-align:center; overflow-wrap:anywhere;
    font-family:var(--axp-public-font-body, system-ui, sans-serif) !important;
    font-size:13px !important; font-weight:500 !important; font-style:normal !important;
    line-height:1.5 !important; letter-spacing:normal !important; text-transform:none !important;
    padding:10px 14px !important; margin:0 !important; border-width:1px !important; border-style:solid !important;
    position:static !important; inset:auto !important;
    transform:none !important; translate:none !important; scale:none !important; rotate:none !important;
    text-shadow:none !important; animation:none !important;
    transition-property:background-color,border-color,color !important; transition-duration:.15s !important;
}
.axp-public-voucher .axp-voucher-lookup-submit { --axp-control-bg:#196747; --axp-control-color:#fff; --axp-control-border:#196747; --axp-control-hover-bg:#145438; --axp-control-hover-color:#fff; --axp-control-hover-border:#145438; --axp-control-active-bg:#103f2b; padding-inline:20px; flex-shrink:0; }
.axp-voucher-actions { display:flex; gap:8px; }
.axp-voucher-actions input { min-width:0; flex:1; background:#fff; color:#18313e; }
@media (max-width:640px) {
    .axp-public-voucher { margin:12px auto 8px; }
    .axp-voucher-header { padding:16px; flex-wrap:wrap; }
    .axp-public-voucher h1 { font-size:21px; }
    .axp-voucher-content { grid-template-columns:minmax(0, 1fr); padding:20px 16px; gap:24px; }
    .axp-voucher-ticket { border-left:0; border-top:1px dashed var(--ticket-perforation); padding:24px 0 0; }
    .axp-voucher-ticket::before { left:-6px; top:-6px; }
    .axp-voucher-ticket::after { left:auto; right:-6px; top:-6px; bottom:auto; }
    .axp-voucher-ticket button { max-width:220px; }
    .axp-voucher-facts > div { grid-template-columns:minmax(0, 1fr); gap:2px; }
    .axp-voucher-rules { margin:0 16px; padding:18px 0; }
    .axp-voucher-footer { padding:14px 16px; gap:10px 18px; }
    .axp-voucher-type { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:12px; }
    .axp-public-voucher .axp-voucher-lookup { padding:20px 16px; }
    .axp-voucher-welcome { gap:12px; }
    .axp-voucher-welcome-icon { flex-basis:34px; height:34px; }
    .axp-public-voucher .axp-voucher-welcome h1 { font-size:21px; }
    .axp-voucher-actions { flex-direction:column; }
    .axp-voucher-account-access { flex-direction:column; align-items:stretch; gap:12px; }
}
/* A narrow Elementor column needs the same layout even on a wide desktop. */
@container axp-voucher (max-width:640px) {
    .axp-voucher-header { padding:16px; flex-wrap:wrap; }
    .axp-public-voucher h1 { font-size:21px; }
    .axp-voucher-content { grid-template-columns:minmax(0, 1fr); padding:20px 16px; gap:24px; }
    .axp-voucher-ticket { border-left:0; border-top:1px dashed var(--ticket-perforation); padding:24px 0 0; }
    .axp-voucher-ticket::before { left:-6px; top:-6px; }
    .axp-voucher-ticket::after { left:auto; right:-6px; top:-6px; bottom:auto; }
    .axp-voucher-ticket button { max-width:220px; }
    .axp-voucher-facts > div { grid-template-columns:minmax(0, 1fr); gap:2px; }
    .axp-voucher-rules { margin:0 16px; padding:18px 0; }
    .axp-voucher-footer { padding:14px 16px; gap:10px 18px; }
    .axp-voucher-type { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:12px; }
    .axp-public-voucher .axp-voucher-lookup { padding:20px 16px; }
    .axp-voucher-welcome { gap:12px; }
    .axp-voucher-welcome-icon { flex-basis:34px; height:34px; }
    .axp-public-voucher .axp-voucher-welcome h1 { font-size:21px; }
    .axp-voucher-actions { flex-direction:column; }
    .axp-voucher-account-access { flex-direction:column; align-items:stretch; gap:12px; }
}
@media print { .axp-voucher-footer, .axp-voucher-ticket button, .axp-voucher-copy-status, .axp-pdf-download { display:none; } .axp-public-voucher { max-width:none; padding:0; } }

/* Voucher dentro de janela fixa que ainda nao comecou. */
.axp-voucher-status--pending { color:#8a5a10; background:#fdf4e3; }
