/* Compact ticket booking, order lifecycle and place reviews. */
.spot-booking-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
.spot-rating-link{display:flex;align-items:center;gap:8px;text-align:left;min-height:44px}
.spot-rating-link>strong{font-size:28px;color:#c27638;line-height:1}
.spot-rating-link>span{font-size:11px;color:#b17c4b}
.spot-rating-link small{display:block;font-size:10px;color:var(--muted);margin-top:4px}
.spot-booking-action{display:flex;align-items:center;gap:10px}
.spot-booking-action>span{display:flex;flex-direction:column;gap:2px}
.spot-booking-action b{font-size:20px;color:#cd783b}
.spot-booking-action small{font-size:10px;color:var(--muted)}
.spot-booking-action .button{min-height:42px;padding:10px 16px;font-size:13px}
#spot-reviews{scroll-margin-top:84px}
.spot-review-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.spot-review-heading h2{margin:0}.spot-review-heading h2 small{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px}
.spot-review-heading>span{font-size:11px;color:var(--muted)}
.rating-overview{display:flex;align-items:center;gap:18px;margin:8px 0;padding:10px 12px;border-radius:10px;background:#f6f8f4}
.rating-overview>div:first-child{display:flex;flex-direction:column;gap:4px;align-items:center}
.rating-overview strong{font-size:32px;line-height:1;color:#bb793f;font-weight:600}
.rating-overview>div>span:not(.review-stars){font-size:10px;color:var(--muted)}
.rating-overview .rating-overview-detail p{font-size:11px;margin:4px 0 0;color:#758478}
.review-stars{color:#d28b4b;font-size:14px;letter-spacing:2px;white-space:nowrap}.review-stars>span{color:#d9dfd8}
.spot-review-filters{display:flex;gap:6px;margin:8px 0 0}
.spot-review-filters button{font-size:12px;padding:7px 13px;border-radius:6px;background:#f2f5f2;color:#748678;min-height:34px}
.spot-review-filters button.selected{background:#e4f0e7;color:var(--green);font-weight:600}
.spot-review{display:flex;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}
.spot-review:last-child{border-bottom:0;padding-bottom:6px}
.spot-review-avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:#e6ede2;color:#708767;display:grid;place-items:center;font-size:13px;overflow:hidden}
.spot-review-avatar img{width:100%;height:100%;object-fit:cover}
.spot-review-body{min-width:0;flex:1}
.spot-review-byline{display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:20px}
.spot-review-byline>strong{font-size:12px;font-weight:600;color:#486557}
.verified-ticket,.own-review-label{font-size:9px;line-height:16px;color:#618a73;background:#edf4ed;padding:0 4px;border-radius:3px}
.spot-review-rating{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap}
.spot-review-rating small{font-size:10px;color:#93a095}
.spot-review-body>p,.order-review-published>p{font-size:13px;line-height:1.65;margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#40574a}
.spot-review-meta{display:flex;align-items:center;gap:12px;font-size:10px;color:#8c9a90;margin-top:2px;line-height:22px}
.spot-review-meta button{color:#728b7b;font-size:11px;min-height:28px}
.spot-review-replies{padding:6px 8px;background:#f4f7f3;border-radius:6px;margin-top:2px;font-size:12px;color:#687e6d;line-height:1.65}
.spot-review-replies>div+div{margin-top:4px}.spot-review-replies strong{font-weight:500;color:#4b705b}.spot-review-replies time{font-size:9px;color:#929e94;display:block}
.spot-reviews-section .spot-review-empty{padding:12px 0;margin:0;font-size:12px;color:var(--muted)}
.spot-review-form{margin-top:6px;padding:10px;background:#f5f8f4;border:1px solid #e4ebe2;border-radius:10px;display:grid;gap:6px}
.review-form-title{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.review-form-title strong{font-size:13px;font-weight:600}.review-form-title span{font-size:10px;color:#899a8b}
.spot-review-form textarea{display:block;width:100%;min-height:78px;border:1px solid #e1e8de;border-radius:7px;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.65;resize:vertical;background:#fff;color:var(--ink)}
.spot-review-form textarea:focus{outline:2px solid #68a389;outline-offset:1px}
.review-form-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px}.review-form-bottom>span{font-size:10px;color:var(--muted)}
.review-form-bottom .button{min-height:38px;padding:8px 16px;font-size:12px}
.spot-form-error{font-size:12px!important;color:#bd614b!important;margin:0!important;line-height:1.5!important}.spot-form-error:empty{display:none}
.review-purchase-gate{display:flex;align-items:center;gap:8px;background:#f1f6f1;border-radius:9px;padding:10px;margin-top:6px}
.review-gate-icon{display:grid;place-items:center;color:var(--green)}.review-gate-icon .icon{width:22px;height:22px}
.review-purchase-gate>div{flex:1;min-width:0}.review-purchase-gate strong{font-size:12px;font-weight:600}.review-purchase-gate p{font-size:10px;margin-top:3px;color:#859588}
.review-purchase-gate .button{min-height:38px;padding:8px 10px;white-space:nowrap;font-size:11px}
.review-order-context{display:grid;gap:4px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}.review-order-context strong{font-size:14px}.review-order-context span,.review-order-context small{color:var(--muted)}
.review-rating-picker{display:flex;align-items:center;gap:0;flex-wrap:wrap;padding:4px 0}.review-rating-picker>span{font-size:12px;margin-right:8px}
.review-rating-picker button{font-size:29px;width:38px;height:42px;padding:0;color:#d3dcd0}.review-rating-picker button.selected{color:#d38a45}.review-rating-picker small{font-size:11px;color:#b27b42;margin-left:6px}
.reply-quote{padding:8px 10px;background:#f4f7f2;border-left:3px solid #a5bda1;font-size:12px;line-height:1.7;margin-bottom:8px;overflow-wrap:anywhere}
.main-content:has(#page-tickets.active),.main-content:has(#page-orders.active),.main-content:has(#page-ticket.active){padding-top:12px}
.tickets-page{max-width:760px;margin:0 auto}
.experience-page-header{display:flex;align-items:center;gap:8px;padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.experience-page-header>button:first-child{width:36px;height:40px;display:grid;place-items:center;border-radius:8px;background:#fff;border:1px solid var(--line);flex-shrink:0;color:var(--green)}
.experience-page-header>div{flex:1;min-width:0}.experience-page-header h1{font-size:20px;font-weight:600;line-height:1.4}
.experience-page-header p{font-size:12px;color:var(--muted);margin-top:3px}.experience-page-header .text-link{font-size:12px;min-height:40px;white-space:nowrap}
.ticket-date-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:8px 0}
.ticket-date-tabs button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border:1px solid #e2e8df;background:#fff;border-radius:8px;color:#82917f}
.ticket-date-tabs strong{font-size:12px;font-weight:500}.ticket-date-tabs span{font-size:11px}.ticket-date-tabs .selected{background:#e8f3ea;border-color:#81a58a;color:#397253}
.tickets-list-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0 8px}.tickets-list-heading h2{font-size:15px;font-weight:600}.tickets-list-heading h2 small{font-size:10px;font-weight:400;color:#93a08e;margin-left:5px}.tickets-list-heading button{font-size:11px;min-height:32px}
.ticket-options{display:grid;gap:10px}
.ticket-card{position:relative;width:100%;display:block;border:1px solid #dfe6db;border-radius:12px;background:#fff;text-align:left;overflow:hidden;color:var(--ink)}
.ticket-card.selected{border-color:#5e9277;box-shadow:inset 0 0 0 1px #5e9277;background:#fbfdf9}
.ticket-card:disabled{opacity:.55;cursor:default}.ticket-card-content{display:grid;gap:6px;padding:12px}
.ticket-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.ticket-card-heading>strong{font-size:18px;font-weight:600}
.ticket-price{font-size:28px;line-height:1.1;color:#d57b43;font-weight:600;white-space:nowrap}.ticket-price>small{font-size:15px;margin-right:2px}.ticket-price>em{font-style:normal;font-size:10px;font-weight:400;color:#9e9b8c;margin-left:3px}
.ticket-tags{display:flex;gap:5px;flex-wrap:wrap}.ticket-tags>span{font-size:10px;padding:2px 6px;line-height:1.3;background:#eef3e8;border-radius:3px;color:#6b8568}.ticket-tags>span:first-child{background:#fff0e1;color:#b57944}.ticket-tags>span:nth-child(2){background:#e7f2ed;color:#54856d}
.ticket-time{font-size:12px;color:#6b7f6e}.ticket-time small{font-size:11px;color:#91a08d}
.ticket-card-bottom,.ticket-card-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:#9b8b71}.ticket-card-bottom b{font-weight:500;color:#bf7e43}
.ticket-card-foot{border-top:1px solid #edf0e8;padding-top:6px;color:#7d8e78;font-size:10px}.ticket-card-foot>span:last-child{padding-right:22px}
.ticket-selection-check{display:none;position:absolute;right:0;bottom:0;width:30px;height:24px;background:#5e9277;border-radius:10px 0 0 0;color:white;font-size:18px;text-align:center;line-height:24px}.selected .ticket-selection-check{display:block}
.custom-ticket-banner{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#628b79;color:#fff;padding:8px 12px}.custom-ticket-banner strong{font-size:14px;font-weight:600}.custom-ticket-banner>span{font-size:11px}
.ticket-group-copy{font-size:12px;color:#80917c}.ticket-group-copy b{color:#c77744;margin:0 2px}.ticket-group-copy>strong{font-size:11px;font-weight:500;margin-left:8px;color:#b57944}
.ticket-group-progress{display:block;height:5px;border-radius:5px;background:#f6e9da;overflow:hidden;width:75%;margin-bottom:2px}.ticket-group-progress i{display:block;height:100%;background:#db9b68;border-radius:5px}
.ticket-purchase-note{font-size:10px;color:#929f8d;line-height:1.65;margin:8px 0}
.ticket-purchase-bar{position:sticky;bottom:0;z-index:15;background:#fffffff5;backdrop-filter:blur(12px);padding:10px 12px;border:1px solid #dfe7db;border-radius:12px;box-shadow:0 -3px 16px #42543908;margin-top:8px}
.ticket-quantity-row,.ticket-total-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.ticket-quantity-row{padding-bottom:8px;border-bottom:1px solid #edf0e8;margin-bottom:8px}
.ticket-quantity-row>div:first-child{display:flex;flex-direction:column;gap:3px}.ticket-quantity-row strong{font-size:13px;font-weight:500}.ticket-quantity-row small{font-size:10px;color:#8f9c88}
.ticket-quantity{display:flex;align-items:center;background:#f3f6ef;border-radius:7px;overflow:hidden}.ticket-quantity button{width:36px;height:36px;font-size:20px;color:#5b725a}.ticket-quantity button:disabled{color:#c0c9bb}.ticket-quantity>span{min-width:30px;text-align:center;font-size:14px}
.ticket-total-row>div{display:flex;flex-direction:column;gap:3px}.ticket-total-row>div>span{font-size:12px}.ticket-total-row strong{color:#ca773f;font-size:25px}.ticket-total-row small{font-size:10px;color:#8b997f}.ticket-total-row>.button{padding:11px 20px;min-height:44px;font-size:13px;white-space:nowrap}
.ticket-total-row>.button:disabled{opacity:.45;cursor:default}
.spot-experience-dialog .modal-header{padding:12px 18px;border-bottom:1px solid var(--line)}.spot-experience-dialog .modal-header h2{font-size:18px;letter-spacing:0}.spot-experience-dialog .modal-close{width:36px;height:36px;line-height:1;display:grid;place-items:center}
.spot-experience-dialog .modal-content{padding:12px 18px 18px}.spot-experience-dialog .spot-review-form{margin-top:0;border:0;background:transparent;padding:0}
.spot-experience-dialog .button{font-size:13px;min-height:40px;padding:9px 16px}
.ticket-rules{display:grid;gap:6px}.ticket-rules h3{font-size:14px;margin-top:4px}.ticket-rules p{font-size:12px;color:#7b8972;line-height:1.7}
.checkout-title{display:flex;align-items:center;gap:8px;padding:4px 0 8px;border-bottom:1px solid var(--line)}.checkout-title>span:first-child{font-size:25px;color:var(--green)}.checkout-title>div{flex:1}.checkout-title strong{display:block;font-size:16px}.checkout-title small{display:block;font-size:11px;color:#8a997d;margin-top:3px}.checkout-status{font-size:12px;color:#c88d4b}
.ticket-order-facts{display:grid;gap:8px;margin:10px 0;font-size:12px;line-height:1.6}.ticket-order-facts>div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:8px}.ticket-order-facts dt{color:#8d9b83}.ticket-order-facts dd{margin:0;text-align:right;color:#58704f;overflow-wrap:anywhere}.ticket-order-facts small{font-size:10px;color:#9da891}.ticket-order-facts .order-total{border-top:1px solid var(--line);padding-top:8px;align-items:center}.order-total dd{font-size:23px;color:#cc7d42;font-weight:600}
.checkout-refund,.checkout-inline-rules,.ticket-group-status{background:#f6f7ee;border-radius:8px;padding:8px 10px;margin:8px 0}.checkout-refund strong,.ticket-group-status strong{font-size:12px;color:#91774a}.checkout-refund p,.checkout-inline-rules p,.ticket-group-status p{font-size:11px;line-height:1.65;color:#8f967c;margin-top:4px}
.ticket-terms{display:flex;align-items:flex-start;gap:6px;margin:10px 0 8px;font-size:11px;line-height:1.7;color:#829074}.ticket-terms input{width:17px;height:17px;margin-top:2px;accent-color:var(--green);flex-shrink:0}.ticket-terms button{font-size:inherit;color:var(--green);text-decoration:underline;text-underline-offset:3px;line-height:1.7}
.ticket-pay-button{width:100%;margin-top:8px}.ticket-pay-later{display:block;font-size:12px;color:#89967e;margin:4px auto 0;padding:8px 14px;min-height:36px}.ticket-demo-note{font-size:10px;color:#a0a991;line-height:1.65;text-align:center;margin:8px 0 0}
.ticket-success{text-align:center;display:grid;justify-items:center;gap:8px;padding:4px 0}.ticket-success-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e5f0e2;color:#709566;font-size:24px}.ticket-success h3{font-size:20px;font-weight:600}.ticket-success p{font-size:12px;color:#7f8b72}.ticket-success>strong{font-size:14px}.ticket-success>small{font-size:11px;color:#919b82}.purchase-review-note{display:flex;align-items:center;gap:5px;font-size:12px;color:#6a8663;background:#f1f6ec;border-radius:7px;padding:8px 12px}.purchase-review-note .icon{width:16px;height:16px}.ticket-success>.button{width:100%;max-width:330px}
.order-filter-tabs{display:flex;gap:4px;margin:8px 0 10px;border-bottom:1px solid var(--line)}.order-filter-tabs button{flex:1;font-size:13px;color:#8b9780;min-height:40px;padding:6px;white-space:nowrap;border-bottom:2px solid transparent}.order-filter-tabs button.selected{border-color:var(--green);color:var(--green);font-weight:600}
.ticket-order-list{display:grid;gap:10px}.ticket-order-card{border:1px solid #e0e6d8;background:#fff;border-radius:12px;padding:12px}.ticket-order-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid #edf0e7}.ticket-order-heading button{font-size:13px;font-weight:500;text-align:left}.ticket-order-heading>span{font-size:11px;color:#b09468;white-space:nowrap}.ticket-order-heading .paid{color:#5d916c}
.ticket-order-main{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:10px 0}.order-ticket-icon{color:#82a074;background:#edf3e7;border-radius:8px;display:grid;place-items:center;width:42px;height:48px;font-size:24px;flex-shrink:0}.ticket-order-main>span:nth-child(2){flex:1;min-width:0}.ticket-order-main strong{display:block;font-size:14px;font-weight:500}.ticket-order-main small{display:block;font-size:10px;font-weight:400;color:#93a085;line-height:1.6;margin-top:3px}.ticket-order-main>b{font-size:20px;font-weight:500;color:#b7824b;text-align:right}.ticket-order-main>b small{font-size:9px}
.ticket-order-actions{display:flex;justify-content:flex-end;gap:8px}.ticket-order-actions button{font-size:11px;min-height:34px;padding:7px 12px;border:1px solid #dee6d6;border-radius:6px;color:#829076}.ticket-order-actions .primary{border-color:#80a477;color:#5d8458;background:#f1f6ed}
.tickets-empty{text-align:center;padding:24px 8px;display:grid;justify-items:center;gap:8px}.tickets-empty>span{font-size:32px;color:#a9b99c}.tickets-empty h2{font-size:16px;font-weight:500}.tickets-empty p{font-size:12px;color:#8b997e;line-height:1.6}.tickets-empty .button{margin-top:4px;font-size:12px}
.ticket-detail-status{display:flex;flex-direction:column;gap:4px}.ticket-detail-status>strong{font-size:21px;color:var(--green)}.ticket-detail-status>span{font-size:12px;color:#89997e}
.ticket-order-steps{display:flex;list-style:none;gap:4px;margin:10px 0;padding:0}.ticket-order-steps li{flex:1;text-align:center;font-size:10px;color:#a9b29d;border-top:3px solid #e7ede1;padding-top:5px}.ticket-order-steps .done{color:#698962;border-color:#8aa77d}
.ticket-voucher{display:grid;justify-items:center;gap:5px;border:1px dashed #b9c9aa;border-radius:9px;padding:12px 8px;margin:10px 0;background:#f7faf1}.ticket-voucher>span{font-size:11px;color:#849677}.ticket-voucher>strong{font-size:28px;letter-spacing:4px;color:#49653b}.ticket-voucher>small{font-size:11px;color:#81906e}.ticket-voucher>p{font-size:10px;color:#9fa98e}
.ticket-order-number{font-size:10px;color:#9aa68a;overflow-wrap:anywhere;margin:8px 0}.ticket-detail-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ticket-detail-actions>.button-primary{flex:1}
.order-demo-controls{margin-top:10px;border-top:1px solid #e9eee0;padding-top:8px;font-size:11px;color:#9ba58b}.order-demo-controls summary{cursor:pointer;line-height:28px}.order-demo-controls p{font-size:11px;line-height:1.6;margin:4px 0 6px}.order-demo-controls .button{font-size:11px}
.refund-confirm{display:grid;gap:8px;margin-bottom:10px}.refund-confirm h3{font-size:18px}.refund-confirm p{font-size:12px;color:#899779;line-height:1.7}.order-review-published{margin:8px 0 12px}.order-review-published small{display:block;font-size:10px;color:var(--muted);margin-top:4px}
@media(max-width:680px){
 .main-content:has(#page-tickets.active),.main-content:has(#page-orders.active),.main-content:has(#page-ticket.active){padding:10px 14px 80px}
 .experience-page-header h1{font-size:18px}.experience-page-header p{font-size:11px}
 .ticket-purchase-bar{bottom:calc(65px + env(safe-area-inset-bottom));padding:8px 10px}
 .ticket-card-content{padding:10px}.ticket-card-heading>strong{font-size:17px}.ticket-price{font-size:27px}
 .ticket-card-bottom{font-size:10px}.ticket-total-row>.button{padding:10px 14px}.ticket-total-row strong{font-size:23px}
 .spot-rating-link>strong{font-size:25px}.spot-booking-action{gap:8px}.spot-booking-action .button{padding:9px 12px}
 .spot-review-heading>span{font-size:10px}.review-form-title>span{font-size:9px}
 .review-purchase-gate{padding:8px;gap:6px}.review-gate-icon{display:none}.review-purchase-gate strong{font-size:11px}.review-purchase-gate p{font-size:10px}
 .spot-experience-dialog .modal-content{padding:10px 16px 14px}.spot-experience-dialog .modal-header{padding:8px 16px}
 .review-rating-picker small{flex-basis:100%;margin:0 0 0 62px}.review-rating-picker button{width:38px}
 .ticket-order-card{padding:10px}.ticket-order-main strong{font-size:13px}.ticket-order-main>b{font-size:18px}
 .ticket-order-heading>span{font-size:10px}.order-filter-tabs button{font-size:12px}
}
@media(max-width:360px){.ticket-time small{display:block;margin-top:3px}.ticket-card-bottom{flex-wrap:wrap}.spot-booking-action b{font-size:18px}.spot-rating-link{gap:5px}.spot-rating-link small{font-size:9px}.ticket-order-main{gap:6px}.order-ticket-icon{width:32px}.ticket-total-row small{font-size:9px}.ticket-total-row>.button{padding:10px}}

/* Photo controls stay over the cover, without adding page height. */
.detail-heading{flex-wrap:wrap;gap:8px}
.detail-heading>div:first-child{flex:1 1 100%}
.detail-location-contact{display:flex;align-items:baseline;gap:8px;margin-top:4px}
.detail-heading .detail-location-line{flex:1;min-width:0;margin:0}
.detail-heading .detail-contact-line{flex:0 1 auto;max-width:50%;margin:0;color:#4f6759;font-size:13px;text-align:right;user-select:text}
.detail-action-group{flex-wrap:wrap;gap:6px}
.detail-action-group button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:40px;min-height:40px}
.detail-action-group .detail-navigation{color:var(--green);font-size:12px}
.navigation-parking{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.navigation-parking h3{font-size:13px;font-weight:600;margin:0 0 4px}
.navigation-parking p{font-size:12px;line-height:1.6;color:#687d6c;white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:680px){.detail-heading .detail-contact-line{font-size:12px}.detail-action-group{width:100%}}
.detail-gallery-photo{display:block;width:100%;height:100%;padding:0;border:0;background:transparent}
.detail-gallery-photo img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.spot-gallery-surface{touch-action:pan-y pinch-zoom}
.detail-gallery-weather{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;gap:5px;min-height:40px;padding:8px 10px;border-radius:9px;background:#fffffff2;color:#426b5a;font-size:12px;box-shadow:0 2px 8px #203b241a;transform:scale(.72);transform-origin:top right}
.detail-gallery-weather .icon{width:18.4px;height:18.4px;color:#c58b43}
.detail-weather-dot{font-size:16px;line-height:1;color:#7d9185}
.detail-gallery-weather>strong{font-size:21px;font-weight:600;line-height:1;color:#35594b;font-variant-numeric:tabular-nums}
.detail-gallery-weather>strong>span{font-size:17px;font-weight:500}
.spot-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:44px;display:grid;place-items:center;border-radius:8px;background:#203c3766;color:#fff;padding:0}
.spot-photo-arrow.previous{left:8px}.spot-photo-arrow.next{right:8px}.spot-photo-arrow.next .icon{transform:rotate(180deg)}
.spot-photo-arrow:hover{background:#203c3799}.spot-photo-arrow .icon{width:21px;height:21px}
.spot-photo-counter{position:absolute;right:10px;bottom:10px;display:block;padding:4px 8px;background:#203c3777;border-radius:5px;font-size:11px;line-height:18px;color:white;font-variant-numeric:tabular-nums;pointer-events:none}
.spot-photo-dots{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:0;max-width:calc(100% - 110px)}
.spot-photo-dots button{display:grid;place-items:center;width:24px;height:28px;padding:0}.spot-photo-dots button>span{width:5px;height:5px;border-radius:5px;background:#ffffff88;box-shadow:0 1px 3px #1e393a55}.spot-photo-dots button.selected>span{width:14px;background:#fff}
.detail-gallery button:focus-visible,.spot-photo-preview button:focus-visible,.spot-photo-preview .spot-gallery-surface:focus-visible{outline:2px solid #fff;outline-offset:-3px;box-shadow:0 0 0 2px var(--green)}
.spot-photo-dialog .modal-header{padding:10px 16px}.spot-photo-dialog .modal-header h2{font-size:17px;letter-spacing:0}.spot-photo-dialog .modal-content{padding:0 12px 12px}
.spot-photo-preview{position:relative;border-radius:8px;overflow:hidden;background:#18302c}
.spot-photo-preview .spot-gallery-surface{display:flex;align-items:center;justify-content:center}
.spot-photo-preview img{display:block;width:100%;max-height:70dvh;object-fit:contain;user-select:none;-webkit-user-drag:none}
.detail-section .detail-note:empty{display:none}
@media(max-width:680px){.detail-gallery-weather{font-size:11px;padding:8px;gap:4px}.spot-photo-arrow{width:36px;height:44px}.spot-photo-arrow.previous{left:6px}.spot-photo-arrow.next{right:6px}.spot-photo-counter{font-size:10px;bottom:8px}.spot-photo-dialog .modal-content{padding:0 8px 8px}.spot-photo-dots button{width:22px}}

/* Ticket detail is a regular page, with the scan credential as its main element. */
.ticket-detail-page{max-width:600px}
.ticket-detail-page .experience-page-header{margin-bottom:10px}
.ticket-detail-page .ticket-voucher{border:1px solid #dfe7db;background:#fff;padding:10px;gap:6px;margin:10px 0}
.ticket-voucher h2{font-size:14px;font-weight:600;color:#56744f;margin:0}
.ticket-voucher-qr{display:block;width:210px;max-width:100%;height:auto;aspect-ratio:1;background:#fff}
.ticket-voucher-code{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;line-height:1.5}
.ticket-voucher-code>span{font-size:11px;color:#8c9a81}.ticket-voucher-code>strong{font-size:21px;font-weight:600;letter-spacing:2px;font-variant-numeric:tabular-nums;color:#48633e}
.ticket-detail-page .ticket-order-steps{margin:8px 0}
.ticket-detail-order{padding:10px 0 2px;border-top:1px solid var(--line)}
.ticket-detail-order h2{font-size:15px;font-weight:600;margin:0 0 6px}
.ticket-detail-order .ticket-order-facts{margin:8px 0;gap:6px}
.ticket-detail-page .ticket-detail-actions{margin-top:6px}.ticket-detail-page .ticket-detail-actions:empty{display:none}
.ticket-detail-page .ticket-detail-actions .button{min-height:42px;font-size:13px}
.ticket-detail-page .ticket-detail-actions .button-primary{flex:1}
@media(max-width:680px){.ticket-voucher-qr{width:196px}.ticket-detail-page .ticket-detail-status>strong{font-size:20px}.ticket-detail-page .ticket-detail-status>span{font-size:11px}.ticket-detail-page .ticket-order-facts>div{grid-template-columns:76px minmax(0,1fr)}}

/* Navigation leaves the prototype through the selected map provider. */
.external-map-dialog{max-width:420px}
.external-map-dialog .modal-header{padding:10px 16px;border-bottom:1px solid var(--line)}
.external-map-dialog .modal-header h2{font-size:17px;letter-spacing:0}
.external-map-dialog .modal-close{display:grid;place-items:center;width:36px;height:36px;line-height:1}
.external-map-dialog .modal-content{padding:10px 16px 16px}
.external-map-destination{display:grid;gap:4px;margin-bottom:8px}
.external-map-destination strong{font-size:14px;font-weight:600}
.external-map-destination p{font-size:11px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}
.external-map-destination small{font-size:10px;color:#8d957c}
.external-map-options{display:grid;gap:8px}
.external-map-option{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;background:#fff;padding-right:12px}
.external-map-launch{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 12px;min-width:0;flex:1;text-decoration:none;color:var(--ink)}
.external-map-launch strong{font-size:14px;font-weight:500;flex:1}
.external-map-logo{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:9px;font-size:22px}
.external-map-logo.amap{background:#edf4ff;color:#387bea}.external-map-logo.baidu{background:#f0f3ff;color:#5266cf}
.external-map-arrow{color:#92a092;font-size:16px}.external-map-web{font-size:11px;color:#7c907e;min-height:40px;display:flex;align-items:center;text-decoration:none;white-space:nowrap}
.external-map-launch:hover{color:var(--green)}.external-map-launch:focus-visible,.external-map-web:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:6px}
