.ticket-access-page { min-height:100svh; background:#f7f5ef; color:#223d2f; display:flex; flex-direction:column; }
.ticket-access-nav,.ticket-access-footer,.ticket-access-main { width:min(1160px,100% - 48px); margin-inline:auto; }
.ticket-access-nav { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid #dfe3d7; }
.ticket-access-nav > a:last-child { color:#425b46; font-size:13px; min-height:44px; display:inline-flex; align-items:center; }
.ticket-access-main { flex:1; padding-block:60px; }
.ticket-access-login { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:clamp(40px,8vw,110px); align-items:center; }
.ticket-access-eyebrow { display:block; font-size:11px; text-transform:uppercase; font-weight:600; letter-spacing:.1em; color:#567052; }
.ticket-access-story h1 { font:600 clamp(38px,4.5vw,62px)/1.04 var(--font-display); letter-spacing:-.05em; max-width:12ch; margin:25px 0; text-wrap:balance; }
.ticket-access-story > p { font-size:16px; line-height:1.7; color:#5c6b5c; max-width:42ch; }
.ticket-access-pass { display:flex; align-items:center; gap:20px; max-width:430px; padding:28px; margin:38px 0 26px; border-radius:16px; background:#214e3d; color:white; transform:rotate(-2deg); box-shadow:0 14px 35px #214e3d1a; }
.ticket-access-pass > span { display:grid; place-items:center; width:52px; height:52px; border:1px solid #91ad99; border-radius:50%; font-size:25px; flex-shrink:0; }
.ticket-access-pass strong,.ticket-access-pass small { display:block; }
.ticket-access-pass strong { font:500 23px/1.3 var(--font-display); }
.ticket-access-pass small { color:#d3dfcb; margin-top:5px; font-size:12px; line-height:1.5; }
.ticket-access-story .ticket-access-reassurance { display:flex; align-items:center; gap:8px; font-size:12px; }
.ticket-access-card { background:#fffefa; border:1px solid #e0e5d9; border-radius:22px; padding:36px; box-shadow:0 12px 40px #213d2608; min-width:0; }
.ticket-access-card h2 { font:600 28px/1.15 var(--font-display); letter-spacing:-.03em; margin:23px 0 14px; }
.ticket-access-card > p { font-size:14px; color:#657060; line-height:1.7; overflow-wrap:anywhere; }
.ticket-access-step { display:flex; gap:9px; align-items:center; color:#3f6746; font-size:12px; }
.ticket-access-step .icon { font-size:22px; }
.ticket-access-form { margin-top:26px; }
.ticket-access-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.ticket-access-form label { display:block; font-size:13px; font-weight:600; }
.ticket-access-form input { display:block; width:100%; min-height:50px; margin-top:10px; font-size:16px; background:#fff; }
.ticket-access-form button[type=submit] { width:100%; margin-top:20px; min-height:48px; }
.ticket-access-form .ticket-access-code { font-size:27px; letter-spacing:.26em; font-variant-numeric:tabular-nums; }
.ticket-access-hint { font-size:12px; line-height:1.6; color:#607057; }
.ticket-access-error { padding:12px; background:#fff0e9; color:#8a3526; border-radius:9px; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.ticket-access-error[hidden] { display:none; }
.ticket-access-secondary { margin-top:16px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 16px; }
.ticket-access-text-button { color:#214e3d; background:none; border:0; min-height:44px; padding:6px 0; font:600 12px/1.5 var(--font-body); cursor:pointer; text-align:left; }
.ticket-access-text-button:disabled { color:#75816e; cursor:default; }
.ticket-access-card .ticket-access-help { border-top:1px solid #e4e8de; margin:22px 0 0; padding-top:20px; font-size:12px; }
.ticket-access-footer { border-top:1px solid #dfe3d7; padding-block:25px; display:flex; align-items:center; gap:8px; font-size:12px; color:#63705d; line-height:1.6; }
.ticket-access-library-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:35px; }
.ticket-access-library-head h1 { font:600 42px/1.2 var(--font-display); letter-spacing:-.04em; margin:12px 0; }
.ticket-access-library-head p { color:#5c6b5c; font-size:14px; overflow-wrap:anywhere; }
.ticket-access-orders { display:grid; gap:20px; }
.ticket-access-order { display:grid; grid-template-columns:180px minmax(0,1fr) auto; gap:25px; align-items:center; padding:20px; border-radius:18px; border:1px solid #e0e5d9; background:#fffefa; }
.ticket-access-order > img,.ticket-access-order-placeholder { width:180px; height:140px; object-fit:cover; border-radius:12px; }
.ticket-access-order-placeholder { display:grid; place-items:center; font-size:38px; background:#e9eee2; color:#4b6850; }
.ticket-access-order h2 { font:600 23px/1.3 var(--font-display); letter-spacing:-.025em; margin:10px 0; overflow-wrap:anywhere; }
.ticket-access-order p { color:#5c6b5c; font-size:13px; }
.ticket-access-count { font-size:12px; font-weight:600; color:#426246; }
.ticket-access-empty { padding:40px; text-align:center; background:#fffefa; border:1px solid #e0e5d9; border-radius:18px; }
.ticket-access-empty > .icon { font-size:40px; color:#667e5d; }
.ticket-access-empty h2 { font:600 25px/1.3 var(--font-display); }
.ticket-access-empty p { line-height:1.7; color:#5c6b5c; }
.ticket-access-pagination { display:flex; justify-content:center; align-items:center; gap:20px; margin-top:30px; }
.ticket-access-page :is(a,button,input):focus-visible { outline:3px solid #52734e; outline-offset:3px; }
.ticket-access-assigned { margin-top:40px; }
.ticket-access-assigned > p { color:#5c6b5c; line-height:1.7; }
.group-booking-banner { padding:22px; border:1px solid #d3dfca; background:#edf2e6; border-radius:16px; display:flex; flex-wrap:wrap; align-items:center; gap:16px; margin-bottom:28px; color:#243e2d; }
.group-booking-banner > div { flex:1; min-width:180px; }
.group-booking-banner h2 { font:600 21px/1.3 var(--font-display); margin:0 0 8px; }
.group-booking-banner p { margin:0; font-size:13px; line-height:1.65; }
.group-booking-icon { font-size:30px; }
.group-participants-sheet { width:min(760px,100% - 24px); }
.group-participants-intro,.group-participants-warning { color:#52664e; font-size:13px; line-height:1.7; }
.group-participants-group h3 { font-size:16px; margin:25px 0 16px; }
.group-participant { border:1px solid #dce3d4; border-radius:12px; padding:18px; margin-bottom:14px; background:#fffefa; }
.group-participant-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:15px; font-size:13px; font-weight:600; }
.group-participant-heading > span:first-child { display:flex; gap:7px; align-items:center; }
.group-participant-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.group-participant-fields label { font-size:12px; min-width:0; }
.group-participant-fields input { margin-top:8px; min-height:46px; font-size:16px; width:100%; }
.group-participants-warning { padding:14px; background:#f2eee4; border-radius:10px; }
.group-participants-warning .icon { margin-right:7px; }
.individual-ticket-main { width:min(560px,100% - 36px); margin:40px auto 60px; }
.individual-ticket { background:#fffefa; border:1px solid #dde4d6; border-radius:22px; overflow:hidden; box-shadow:0 12px 40px #213d2608; }
.individual-ticket-cover { display:block; width:100%; height:200px; object-fit:cover; }
.individual-ticket-content { padding:32px; text-align:center; }
.individual-ticket h1 { font:600 30px/1.15 var(--font-display); letter-spacing:-.04em; margin:16px 0; overflow-wrap:anywhere; }
.individual-ticket-content > p { font-size:14px; line-height:1.6; color:#5c6b5c; }
.individual-ticket-holder { padding:22px 0; display:grid; gap:8px; border-bottom:1px dashed #bdcbb3; margin-top:20px; }
.individual-ticket-holder span { font-size:12px; color:#62735b; }
.individual-ticket-holder strong { overflow-wrap:anywhere; }
.individual-ticket-holder small { color:#52674c; font-size:12px; line-height:1.6; }
.individual-ticket-qr { padding:24px 0 4px; display:grid; justify-items:center; gap:12px; }
.individual-ticket-qr img { width:min(220px,100%); height:auto; background:white; border-radius:12px; }
.individual-ticket-qr strong { letter-spacing:.12em; font-size:14px; }
.individual-ticket .btn { width:100%; margin-top:10px; }
@media(max-width:520px) { .group-participant-fields { grid-template-columns:1fr; gap:12px; }.group-participant { padding:14px; }.group-booking-banner .btn { width:100%; }.individual-ticket-content { padding:25px 20px; }.individual-ticket-main { margin-top:24px; }.individual-ticket h1 { font-size:27px; }.individual-ticket-cover { height:140px; }.individual-ticket-holder { margin-top:12px; padding:16px 0; } }
@media(max-width:800px) { .ticket-access-login { grid-template-columns:1fr; gap:30px; max-width:520px; margin:auto; }.ticket-access-main { padding-block:35px; }.ticket-access-story h1 { max-width:16ch; font-size:38px; margin:16px 0; }.ticket-access-pass { display:none; }.ticket-access-story .ticket-access-reassurance { margin-bottom:0; }.ticket-access-order { grid-template-columns:120px minmax(0,1fr); gap:16px; }.ticket-access-order > img,.ticket-access-order-placeholder { width:120px; height:120px; }.ticket-access-order .btn { grid-column:1/-1; } }
@media(max-width:480px) { .ticket-access-nav,.ticket-access-footer,.ticket-access-main { width:calc(100% - 36px); }.ticket-access-nav { min-height:74px; }.ticket-access-card { padding:25px 22px; border-radius:16px; }.ticket-access-story h1 { font-size:34px; }.ticket-access-story > p { font-size:14px; }.ticket-access-library-head { align-items:flex-start; flex-wrap:wrap; }.ticket-access-library-head h1 { font-size:34px; }.ticket-access-order { padding:15px; grid-template-columns:85px minmax(0,1fr); }.ticket-access-order > img,.ticket-access-order-placeholder { width:85px; height:110px; }.ticket-access-order h2 { font-size:18px; }.ticket-access-order .ticket-access-eyebrow { font-size:10px; }.ticket-access-empty { padding:28px 18px; } }
