/* Loaded on shuttle details and combination tours only. */
.route-photo-gallery{gap:12px}
.route-photo-gallery .gallery-photo{display:block;min-width:0;border-radius:8px;overflow:hidden;cursor:zoom-in}
.route-photo-gallery .gallery-photo[hidden]{display:none}
.route-photo-gallery .gallery-lead{grid-column:1/-1}
.route-photo-gallery .gallery-photo img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:0}
.route-photo-gallery .gallery-lead img{aspect-ratio:1672/941;object-fit:contain}
.gallery-all{grid-column:1/-1;justify-self:start;display:flex;align-items:center;gap:20px;border:0;border-bottom:1px solid currentColor;padding:6px 0;min-height:44px;background:none;font-weight:700;cursor:pointer}
.gallery-all[hidden]{display:none}
.gallery-all:hover{color:var(--red)}
.booking-head .shuttle-price-note{font-size:16px;margin-top:12px;line-height:1.4}
.booking-head .shuttle-price{font-size:26px;font-weight:700;color:var(--ink);margin-top:18px}
.shuttle-price span{display:block;font-size:16px;font-weight:400}
.combination-section{margin-top:44px;scroll-margin-top:28px}
body[data-page=tours] .combination-section{margin-top:0;padding-top:20px}
body[data-page=tours] .alternative{margin-top:24px}
body[data-page=tours] .alternative>div{max-width:720px}
body[data-page=tours] .alternative p{margin-top:16px}
body[data-page=tours] .alternative>.button{flex:none}
.combination-heading{max-width:900px}
.combination-heading h2{max-width:800px;margin-bottom:20px}
.combination-heading p{max-width:870px}
.combination-flow{list-style:none;padding:0;margin:30px 0 36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.combination-flow li{display:flex;align-items:center;gap:14px;min-width:0}
.combination-flow li>span{color:var(--red);font-size:30px;line-height:1;font-weight:700;flex:none}
.combination-flow p{font-weight:700;line-height:1.3}
.combination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
.combination-card{min-width:0;overflow:hidden;background:#f5eee4;border-radius:12px;scroll-margin-top:24px;display:flex;flex-direction:column}
.combination-card .tour-card-photo{display:block;overflow:hidden;cursor:pointer}
.combination-card .tour-card-photo img{width:100%;aspect-ratio:8/5;object-fit:cover}
.combination-copy{padding:28px;display:flex;flex-direction:column;gap:16px;flex:1;min-width:0}
.combination-copy h3{font-size:28px;text-wrap:pretty;max-width:620px}
.combination-copy>p{color:var(--muted);margin:0}
.combination-copy>.tour-date,.detail-intro>.tour-date{color:var(--red-dark);font-size:18px;font-weight:700;line-height:1.4}
.detail-intro>.tour-date{margin-block:20px 12px}
.combination-booking{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.tour-price{font-size:24px;font-weight:700;margin:0}
.tour-price span{font-size:18px;font-weight:400}
.tour-price-pending{font-size:18px;font-weight:400;color:var(--muted)}
.combination-booking .button{font-size:18px;padding-inline:18px}
.combination-return{margin-top:28px;max-width:900px}
.combination-price-note{margin-top:26px;max-width:900px;color:var(--muted)}
.tour-photo-gallery .gallery-lead img{aspect-ratio:3/2;object-fit:cover}
.tour-detail-layout .included-block h2{margin-bottom:24px}
.tour-itinerary{margin-bottom:44px;scroll-margin-top:24px}
.tour-itinerary>ol{list-style:none;padding:0;margin:26px 0 0;counter-reset:itinerary}
.tour-itinerary li{counter-increment:itinerary;position:relative;padding-left:44px;margin-bottom:30px}
.tour-itinerary li::before{content:counter(itinerary,decimal-leading-zero);position:absolute;left:0;top:2px;color:var(--red);font-weight:700;font-size:22px}
.tour-itinerary h3{font-size:25px;margin-bottom:12px}
.tour-upcoming .booking-foot{padding-top:0}
.tour-detail-layout:has(.tour-upcoming){grid-template-areas:'gallery booking' 'content booking'}
.photo-dialog{position:fixed;inset:0;margin:auto;padding:0;border:0;border-radius:14px;width:min(1240px,calc(100vw - 40px));height:min(900px,calc(100dvh - 40px));max-width:none;max-height:none;background:#202037;color:#fff;overflow:hidden;box-shadow:0 24px 80px #0005}
.photo-dialog::backdrop{background:#111125d9}
.photo-dialog-inner{display:flex;flex-direction:column;height:100%;padding:18px 24px 14px;gap:12px}
.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none}
.photo-toolbar h2{font-size:24px;color:#fff}
.photo-dialog button{border:1px solid #ffffff50;background:transparent;color:#fff;cursor:pointer;min-width:44px;min-height:44px;border-radius:7px;line-height:1}
.photo-dialog button:hover{background:#ffffff20}
.photo-dialog button:focus-visible{outline:3px solid #ffcc63;outline-offset:3px}
.photo-close{display:flex;align-items:center;gap:16px;padding:8px 14px;font-size:18px}
.photo-close span{font-size:28px}
.photo-stage{display:flex;align-items:center;gap:18px;flex:1;min-height:0}
.photo-stage figure{display:flex;flex-direction:column;flex:1;min-width:0;height:100%;margin:0;gap:12px}
.photo-current{width:100%;min-height:0;flex:1;object-fit:contain;user-select:none;touch-action:pan-y pinch-zoom}
.photo-stage figcaption{display:flex;justify-content:space-between;gap:20px;font-size:17px;line-height:1.35;flex:none}
.photo-position{white-space:nowrap;color:#d5d5df}
.photo-prev,.photo-next{font-size:26px;flex:none}
.photo-thumbnails{display:flex;gap:10px;overflow:auto;padding:5px;flex:none;scrollbar-width:thin;scrollbar-color:#ffffff80 transparent}
.photo-thumbnails button{padding:0;width:92px;height:60px;flex:none;overflow:hidden;border:2px solid transparent;opacity:.65}
.photo-thumbnails button[aria-current=true]{border-color:#fff;opacity:1}
.photo-thumbnails img{width:100%;height:100%;object-fit:cover}
.photo-help{font-size:15px;color:#d5d5df;margin:0;flex:none}
@media(max-width:850px){
 .tour-detail-layout:has(.tour-upcoming){grid-template-areas:'gallery' 'booking' 'content'}
 .combination-section{max-width:700px;margin-top:30px}
 .combination-flow{gap:18px}
 .combination-flow li{align-items:flex-start;gap:10px}
 .combination-flow p{font-size:18px}
 .combination-copy{padding:24px}
 .combination-copy h3{font-size:26px}
 .photo-dialog{width:calc(100vw - 24px);height:calc(100dvh - 24px)}
 .photo-dialog-inner{padding:16px;gap:14px}
 .photo-stage{gap:10px}
}
@media(max-width:600px){
 .route-photo-gallery{gap:10px}
 .combination-section{margin-top:14px}
 .combination-flow{grid-template-columns:1fr;gap:18px;margin-block:28px}
 .combination-flow li{align-items:center;gap:16px}
 .combination-flow li>span{font-size:26px}
 .combination-flow p{font-size:19px}
 .combination-grid{grid-template-columns:1fr;gap:24px}
 .combination-copy{padding:24px}
 .combination-copy h3{font-size:25px}
 .combination-booking{gap:16px}
 .combination-booking .button{width:100%}
 .photo-dialog{width:100%;height:100dvh;border-radius:0}
 .photo-dialog-inner{padding:16px 12px max(14px,env(safe-area-inset-bottom));gap:12px}
 .photo-stage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) 44px;gap:12px}
 .photo-stage figure{grid-column:1/-1;grid-row:1}
 .photo-prev{grid-column:1;grid-row:2;justify-self:end}
 .photo-next{grid-column:2;grid-row:2;justify-self:start}
 .photo-stage figcaption{font-size:16px;gap:12px}
 .photo-thumbnails button{width:78px;height:52px}
 .photo-toolbar h2{font-size:22px}
 .photo-help{font-size:14px;text-align:center}
}
