.ticket-page{max-width:1180px;margin:0 auto;padding:40px 24px}.ticket-page h1{font-size:clamp(28px,4vw,44px)}.ticket-page h2{margin-top:24px}.ticket-box{background:#fff;border:1px solid #e1e5df;border-radius:14px;padding:24px;margin:20px 0}.ticket-hero{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin:28px 0}.ticket-hero img{width:100%;max-height:400px;object-fit:cover;border-radius:16px}.ticket-text{white-space:pre-line}.ticket-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.ticket-form label,.ticket-lot label{display:flex;flex-direction:column;gap:8px;margin:12px 0}.ticket-form input,.ticket-form select,.ticket-form textarea,.ticket-page input:not([type=checkbox]),.ticket-page textarea{padding:12px;border:1px solid #bac6ba;border-radius:8px;font:inherit;max-width:100%;width:100%}.ticket-lot{display:grid;grid-template-columns:2fr 100px 1fr;gap:20px;padding:20px 0;border-top:1px solid #e4e8e2}.ticket-code{font-family:monospace;font-size:20px;overflow-wrap:anywhere;padding:20px;background:#f2f5ee;user-select:all}.ticket-box summary{cursor:pointer;padding:12px 0;font-weight:600}.ticket-page .search-form{flex-wrap:wrap;gap:16px}.ticket-page .search-form label{flex:1}.ticket-box button{margin:12px 0}.ticket-voucher{max-width:760px;margin:24px auto}.ticket-page nav svg{width:20px;height:20px}@media(max-width:700px){.ticket-hero,.ticket-lot{grid-template-columns:1fr}.ticket-page{padding:24px 16px}.ticket-box{padding:18px}.ticket-fields{grid-template-columns:1fr}}@media print{.topbar,.footer,.ticket-no-print,.flash-wrap{display:none!important}.ticket-page{padding:0}.ticket-voucher{border:2px solid #333;break-inside:avoid}.ticket-code{background:white}}
.ticket-hero img{aspect-ratio:4/3;object-fit:cover}.ticket-page h1,.ticket-page h2{line-height:1.15}.ticket-page .trip-card h2{font-size:24px}

/* Ticket purchase: one decision at a time, with a persistent order summary. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ticket-back{display:inline-block;margin-bottom:12px;font-size:14px;font-weight:700}
.ticket-hero{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px;margin:16px 0 24px}
.ticket-hero img{aspect-ratio:16/10;max-height:270px}
.ticket-hero h1{margin:8px 0 20px}
.ticket-muted{color:#586574;line-height:1.55}
.ticket-tag{display:inline-block;border-radius:24px;padding:8px 12px;background:#fff9d8;color:#66561b;font-size:13px}
.ticket-about{margin:0 0 28px;padding:12px 20px}
.ticket-steps{display:flex;padding:0;margin:0 0 28px;list-style:none;gap:12px}
.ticket-steps li{flex:1;min-width:0}
.ticket-steps button{width:100%;display:flex;gap:12px;align-items:center;padding:14px 16px;min-height:52px;border:1px solid #d9dfd6;background:#fff9e8;color:#596154;border-radius:12px;font-weight:700;text-align:left;cursor:pointer}
.ticket-steps span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:white;flex-shrink:0}
.ticket-steps [aria-current=step]{background:#fff;border-color:var(--green);color:#17613e;box-shadow:0 0 0 1px var(--green)}
.ticket-steps [aria-current=step] span{background:var(--green);color:white}
.ticket-checkout-content{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}
.ticket-checkout-panels{min-width:0}
.ticket-step-panel>h2{margin:8px 0 12px;font-size:28px}
.ticket-step-panel>.eyebrow{margin-top:0}
.ticket-step-panel .ticket-box{margin:20px 0}
.ticket-choice{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;border-top:1px solid var(--line)}
.ticket-choice h3{margin:0 0 6px;font-size:18px}.ticket-choice p{margin:0 0 14px;color:var(--muted);font-size:14px}.ticket-choice small{display:block;color:#586574;font-size:12px;line-height:1.5;margin-top:6px}
.ticket-choice-price{font-size:23px;color:#17613e}
.ticket-counter{flex:0 0 140px;text-align:center}.ticket-counter label{font-size:13px;font-weight:600}.ticket-counter>div{display:flex;align-items:center;margin-top:8px;gap:4px}
.ticket-counter button{margin:0;border:1px solid var(--line);background:#f3f7f1;color:#17613e;width:44px;min-height:44px;border-radius:8px;font-size:24px;cursor:pointer;flex-shrink:0}
.ticket-counter button:disabled{opacity:.4;cursor:default}
.ticket-counter input.ticket-quantity{padding:8px 2px;text-align:center;min-width:0;width:48px;height:44px;border-color:transparent;background:white;font-weight:700;appearance:textfield;-moz-appearance:textfield}
.ticket-counter input::-webkit-inner-spin-button,.ticket-counter input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.ticket-person-fields{display:grid;gap:16px}.ticket-person-fields label{display:grid;gap:8px;font-size:14px;font-weight:600}
.ticket-step-actions{display:flex;justify-content:space-between;gap:12px;margin:24px 0;flex-wrap:wrap}
.ticket-step-actions .button{padding:14px 20px}
.ticket-order-summary{position:sticky;top:100px;border:1px solid var(--line);background:white;border-radius:16px;padding:24px;box-shadow:0 6px 24px #17202a0a;min-width:0}
.ticket-order-summary h3{font-size:20px;margin:12px 0 24px}.ticket-order-summary dl{margin:20px 0}.ticket-order-summary dl>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0}.ticket-order-summary dd{margin:0;font-weight:700;white-space:nowrap}.ticket-order-summary p,.ticket-order-summary small{font-size:13px;line-height:1.6}.ticket-order-summary small{color:var(--muted)}
.ticket-order-summary .ticket-order-total{border-top:1px solid var(--line);margin-top:10px;padding-top:20px;font-size:22px;color:#17613e;font-weight:700}
.ticket-notice{background:#fff9dc;border-left:3px solid #d9b824;padding:14px;font-size:14px;line-height:1.5}.ticket-consent{display:flex;gap:12px;align-items:flex-start;line-height:1.5;font-size:14px}.ticket-consent input{flex:0 0 20px;width:20px;height:20px;margin:0;accent-color:var(--green)}
[data-ticket-error]{background:#fff0ed;color:#9b2921;padding:12px;border-radius:8px}
@media(max-width:1000px){.ticket-checkout-content{grid-template-columns:minmax(0,1fr)}.ticket-order-summary{position:static;max-width:none}.ticket-order-summary h3{margin:8px 0 12px}.ticket-order-summary dl{margin:12px 0}.ticket-order-summary .ticket-order-total{padding-top:12px}}
@media(max-width:700px){.ticket-hero{grid-template-columns:minmax(0,1fr);gap:20px}.ticket-hero img{max-height:210px}.ticket-hero h1{font-size:30px}.ticket-steps{gap:6px;margin-bottom:24px}.ticket-steps button{padding:10px 4px;gap:6px;flex-direction:column;justify-content:center;font-size:12px}.ticket-steps span{width:24px;height:24px}.ticket-choice{gap:12px;align-items:start}.ticket-counter{flex-basis:130px}.ticket-counter>div{gap:2px}.ticket-choice-price{font-size:21px}.ticket-choice h3{font-size:17px}.ticket-step-actions .button{flex:1 1 160px}.ticket-order-summary{padding:20px}.ticket-step-panel>h2{font-size:25px}}
@media(max-width:380px){.ticket-choice{flex-direction:column}.ticket-counter{flex-basis:auto;text-align:left;align-self:flex-end}.ticket-counter>div{margin-top:6px}.ticket-order-summary .ticket-order-total{font-size:20px}}
