:root{--ink:#271d27;--muted:#766a75;--paper:#f6efe7;--card:#fffdf9;--accent:#963554;--accent-hover:#792640;--border:#dfd4d8;--soft:#f5e7ed}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}a{color:inherit}.container{width:min(100%,1090px);padding:0 24px;margin:auto}
.site-header{background:#fffaf5;border-bottom:1px solid var(--border)}.header-row{min-height:81px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand-logo{width:155px;height:65px;object-fit:contain}.brand-section{font-size:13px;letter-spacing:.045em;font-weight:750;color:var(--accent);padding-left:13px;border-left:1px solid var(--border)}.home-link{font-size:12px;font-weight:650;text-decoration:none;color:var(--muted)}.home-link:hover,.back-to-work:hover{text-decoration:underline}
.breadcrumb{display:flex;gap:8px;font-size:12px;color:var(--muted);margin:24px 0 18px;flex-wrap:wrap}.breadcrumb a{text-decoration:none}.breadcrumb strong{color:var(--ink);font-weight:600}
.ticket-shell{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(245px,.88fr);gap:21px;align-items:stretch;margin-bottom:64px}.ticket-main,.ticket-aside{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.ticket-main{padding:0 22px 24px}.bar-heading{margin:19px 0 0;background:var(--accent);color:#fff;font-weight:750;font-size:20px;line-height:1.25;min-height:44px;padding:10px 16px;display:flex;align-items:center;gap:9px;border-radius:6px}.ticket-icon{font-weight:400;font-size:25px;line-height:1}
.work-summary{display:flex;gap:16px;padding:18px 0 21px;border-bottom:1px solid var(--border);align-items:flex-start}.work-poster,.poster-placeholder{width:122px;min-width:122px;aspect-ratio:2/3;object-fit:cover;border-radius:6px;background:#e9dbe0}.poster-placeholder{display:grid;place-items:center;text-align:center;font-weight:800;color:var(--accent);padding:10px}.work-details h2{font-size:clamp(20px,2.2vw,27px);line-height:1.15;margin:5px 0 14px;letter-spacing:-.02em}.work-genre{text-transform:uppercase;font-weight:700;font-size:11px;color:var(--accent);letter-spacing:.08em;display:block}.back-to-work{font-size:12px;color:var(--muted);display:block;margin-top:10px;text-decoration:none}
.purchase-form{padding-top:20px}.form-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;align-items:start;margin:0 0 16px}.form-row>label{font-weight:700;font-size:13px;padding:12px 0}.field-group{min-width:0}.field-group select,.field-group input{display:block;width:100%;height:45px;border:1px solid #d2c7ce;border-radius:7px;background:#fff;color:var(--ink);padding:0 12px;font:inherit;font-size:14px;outline:none}.field-group select{padding-right:32px;cursor:pointer}.field-group select:focus,.field-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(150,53,84,.12)}.field-group select:disabled{background:#f2edf0;cursor:not-allowed}.field-help{font-size:11px;display:block;color:var(--muted);margin-top:5px;line-height:1.4}.form-divider{margin:22px 0 20px;border-top:1px solid var(--border)}
.total-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding:20px 2px 10px;font-size:15px;font-weight:650}.total-strip strong{font-size:28px;letter-spacing:-.03em;color:var(--accent);font-variant-numeric:tabular-nums}.action-row{display:flex;justify-content:flex-end;margin:5px 0}.buy-button,.button{border:0;background:var(--accent);color:#fff;cursor:pointer;text-decoration:none;padding:14px 21px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font:inherit;font-size:14px;font-weight:750;box-shadow:0 5px 16px rgba(150,53,84,.14)}.buy-button:hover:not(:disabled),.button:hover{background:var(--accent-hover)}.buy-button:disabled{opacity:.57;cursor:not-allowed;box-shadow:none}.buy-button span{font-size:21px;line-height:.8}.payment-note{font-size:11px;line-height:1.55;color:var(--muted);margin-top:16px}.soldout-note{padding:13px;background:var(--soft);border-radius:9px;font-size:12px}
.ticket-aside{padding:22px 16px;display:flex;flex-direction:column;gap:18px;background:#fffaf6}.aside-box{border:1px solid var(--border);border-radius:9px;padding:16px;background:#fff}.aside-box h2{font-size:15px;font-weight:750;line-height:1.25;margin:0 0 18px;background:#f5ecef;padding:11px;border-radius:5px}.aside-box>strong{font-size:15px;color:var(--accent)}.aside-box>p{font-size:12px;color:var(--muted);line-height:1.65}.summary-line{padding:8px 0;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #ece6e9;font-size:12px;align-items:start}.summary-line span{color:var(--muted);flex:0 0 63px}.summary-line b{text-align:right;max-width:175px;font-weight:650}.summary-line.total{align-items:center;padding-top:16px;border-bottom:0}.summary-line.total b{font-size:23px;color:var(--accent)}
.site-footer{background:#fffaf5;border-top:1px solid var(--border)}.footer-row{min-height:95px;display:flex;align-items:center;justify-content:space-between;gap:18px}.footer-row img{height:54px;width:120px;object-fit:contain}.footer-row span{font-size:12px;color:var(--muted)}
.empty-small,.empty,.checkout-message,.result-card{background:#fffaf5;border-radius:12px;padding:28px;margin:30px auto 70px}.empty-small{margin:22px 0}.empty{max-width:720px}.checkout-message,.result-card{max-width:700px;border:1px solid var(--border);padding:38px}.result-eyebrow{font-size:11px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-weight:800}.result-card h1,.checkout-message h1{font-size:clamp(25px,4vw,40px);line-height:1.2;margin:10px 0 15px}.result-card>p,.checkout-message>p{font-size:14px;color:var(--muted)}.receipt-details{margin:24px 0;border-top:1px solid var(--border)}.receipt-details>div{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.receipt-details span{color:var(--muted);font-size:12px}.receipt-details b,.receipt-details code{overflow-wrap:anywhere;font-size:13px}.result-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.text-action{font-size:13px;color:var(--accent)}
@media(max-width:790px){.ticket-shell{grid-template-columns:1fr}.ticket-aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.summary-line b{max-width:none}}
@media(max-width:590px){.container{padding:0 13px}.header-row{min-height:66px}.brand-logo{width:123px;height:56px}.brand-section{font-size:11px;padding-left:9px}.home-link{font-size:11px}.ticket-main{padding:0 13px 18px}.ticket-aside{grid-template-columns:1fr}.work-poster,.poster-placeholder{width:88px;min-width:88px}.work-summary{gap:13px}.form-row{display:block;margin-bottom:16px}.form-row>label{display:block;padding:0 0 7px}.total-strip strong{font-size:23px}.buy-button{width:100%}.result-card,.checkout-message{padding:23px;margin-top:18px}.footer-row{min-height:72px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Presentación de la sinopsis entre la bajada de la obra y su ficha. */
.work-tagline{margin:9px 0 0;font-size:13px;line-height:1.45;font-weight:650;color:var(--accent)}
.work-synopsis{margin:11px 0 0;font-size:13px;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.work-details .back-to-work{margin-top:13px}
.ticket-aside{align-self:start}
.summary-line span{flex:0 0 73px}
.summary-line b{max-width:none;min-width:0;overflow-wrap:anywhere}
@media(max-width:790px){.ticket-aside{display:block}}

/* Confirmación en la misma URL del slug y QR de la compra. */
.ticket-result{margin:24px auto 65px;max-width:750px}
.ticket-result-ok{border-top:5px solid #387354}
.ticket-result-alert{border-top:5px solid var(--accent)}
.ticket-qr-panel{margin:20px 0 24px;padding:20px 16px;border:1px solid var(--border);background:#fff;border-radius:10px;text-align:center}
.ticket-qr-panel h2{font-size:17px;margin:0 0 13px}
.ticket-qr{width:min(100%,270px);height:auto;aspect-ratio:1;margin:0 auto;background:#fff;padding:10px;display:grid;place-items:center;border:1px solid #eee;border-radius:7px}
.ticket-qr svg{width:100%;height:100%;display:block}
.ticket-qr-panel p{color:var(--muted);font-size:12px;margin:13px auto 8px;max-width:330px}
.ticket-private-link{display:inline-block;font-size:12px;color:var(--accent);padding:4px 8px}
.ticket-checkin-note{font-size:12px!important;color:var(--muted)}
@media print{.site-header,.site-footer,.breadcrumb,.result-actions,.ticket-private-link{display:none!important}.ticket-result{border:0!important;box-shadow:none!important;margin:0!important}.ticket-qr{width:260px}}


/* Modal de retorno de Mercado Pago. La ticketera queda visible debajo. */
body.tc-modal-open{overflow:hidden}
.tc-payment-overlay{position:fixed;inset:0;z-index:9990;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(31,20,27,.42);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);overflow-y:auto}
.tc-payment-overlay[hidden]{display:none!important}
.tc-payment-modal{position:relative;width:min(100%,445px);max-height:calc(100dvh - 36px);overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 22px 70px rgba(30,15,26,.23);padding:34px 28px 29px;text-align:center}
.tc-payment-close{position:absolute;top:8px;right:9px;width:38px;height:38px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);font:inherit;font-size:29px;line-height:1;cursor:pointer;border-radius:50%}
.tc-payment-close:hover,.tc-payment-close:focus-visible{color:var(--ink);background:var(--soft)}
.tc-payment-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tc-payment-icon{width:51px;height:51px;display:grid;place-items:center;margin:0 auto 15px;border-radius:50%;font-size:28px;font-weight:700}
.tc-payment-icon-ok{color:#2d7351;background:#e4f2e9}
.tc-payment-icon-fail{color:var(--accent);background:var(--soft)}
.tc-payment-modal h2{font-size:clamp(19px,5vw,25px);font-weight:800;line-height:1.22;letter-spacing:-.02em;color:var(--ink);margin:2px 18px 14px}
.tc-payment-operation{font-size:12px;color:var(--muted);margin:12px 0 3px}
.tc-payment-operation-id{display:block;font-weight:800;font-size:17px;letter-spacing:.015em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0 0 18px}
.tc-payment-qr{margin:0 auto 18px;width:min(230px,100%);max-width:230px;aspect-ratio:1;padding:9px;background:#fff;border:1px solid #e8e5e7;border-radius:9px}
.tc-payment-qr svg{width:100%;height:100%;display:block}
.tc-payment-instruction{font-size:14px;line-height:1.55;margin:0 0 8px}
.tc-payment-enjoy{font-size:17px;font-weight:750;color:var(--accent);margin:0}
.tc-payment-pending{font-size:13px;color:var(--muted);line-height:1.5;margin:0}
.tc-payment-hidden-note{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:590px){.tc-payment-modal{padding:32px 19px 24px}.tc-payment-qr{width:min(215px,100%)}.tc-payment-modal h2{font-size:20px}}
@media print{.tc-payment-overlay{position:static;backdrop-filter:none;background:#fff}.ticket-shell,.site-header,.site-footer,.breadcrumb,.tc-payment-close{display:none!important}.tc-payment-modal{max-height:none;box-shadow:none;border:0}}
