/* Shared loading surfaces. The approved header and navigation are untouched. */
.tour-loading { min-width:0; }
.tour-loading-status { display:flex; align-items:center; gap:8px; margin:0 0 14px; color:#607087; font-size:12px; line-height:1.5; }
.loading-spinner { flex:none; width:14px; height:14px; border:2px solid #d4dfef; border-top-color:#2156b8; border-radius:50%; animation:tour-loading-spin 1s linear infinite; }
.loading-block { display:block; background:#e6edf6; animation:tour-loading-pulse 1.6s ease-in-out infinite; }
.loading-line { height:12px; width:60%; border-radius:5px; }
.loading-line.loading-wide { width:84%; }
.loading-line.loading-short { width:38%; }
.country-offer.card.tour-skeleton-card { display:flex; flex-direction:column; padding:0; margin:0; min-width:0; pointer-events:none; }
.tour-skeleton-card .loading-photo { position:relative; display:flex; align-items:flex-end; min-height:196px; padding:16px 12px; background:#dae5f3; }
.loading-photo > div { width:100%; display:grid; gap:10px; }
.loading-photo .loading-line { background:#c3d3e8; }
.loading-photo-mark { position:absolute; top:40%; left:50%; transform:translate(-50%,-50%); color:#9db3ce; }
.loading-photo-mark svg { width:30px; height:30px; }
.loading-card-facts { display:grid; gap:12px; padding:14px 12px 12px; width:100%; min-width:0; }
.loading-fact-pair { display:flex; gap:14px; padding:8px 0; border-block:1px solid #eef2f7; }
.loading-fact-pair .loading-line { width:40%; }
.loading-flight { height:54px; width:100%; border-radius:10px; }
.loading-price-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:4px; }
.loading-line.loading-price { width:36%; height:27px; }
.loading-button { width:38%; height:34px; border-radius:9px; }
.loading-cards { display:grid; gap:16px; }
.loading-destinations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.loading-destination { display:grid; gap:16px; min-width:0; padding:22px 16px; border:1px solid #e0e7f1; background:#fff; border-radius:18px; }
.loading-destination .loading-price-row .loading-line { height:18px; }
.loading-city-heading { width:145px; height:27px; }
.loading-city-section { margin-bottom:30px; }
.loading-city-section .tour-loading-status { margin-top:2px; }
.loading-detail { padding-top:12px; padding-bottom:40px; }
.loading-detail .loading-photo { min-height:260px; border-radius:20px; }
.loading-detail-panel { display:grid; gap:18px; margin-top:16px; padding:20px; background:#fff; border:1px solid #e0e7f1; border-radius:18px; }
.loading-hotel-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0 22px; }
.loading-hotel-gallery .loading-block { height:150px; border-radius:14px; }
@keyframes tour-loading-pulse { 0%,100% { opacity:1; } 50% { opacity:.5; } }
@keyframes tour-loading-spin { to { transform:rotate(360deg); } }
@media(max-width:480px) { .loading-destinations { grid-template-columns:1fr; } }
@media(min-width:721px) { .loading-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { .loading-block,.loading-spinner { animation:none; } }

.room-options-carousel > .loading-room-card { display:flex; min-height:230px; pointer-events:none; border:1px solid #e0e7f1; border-radius:18px; overflow:hidden; background:#fff; }
.loading-room-copy { flex:1; display:grid; align-content:start; gap:18px; padding:20px 16px; min-width:0; }
.loading-room-copy .loading-button { width:90px; }
.loading-room-photo { width:32%; min-height:230px; }
.loading-itinerary .loading-detail-panel { margin:0 0 12px; }
.tour-image-loading { background-color:#dae5f3; color:transparent; animation:tour-image-pulse 1.6s ease-in-out infinite; }
@keyframes tour-image-pulse { 0%,100% { background-color:#dae5f3; } 50% { background-color:#edf2f8; } }
@media(prefers-reduced-motion:reduce) { .tour-image-loading { animation:none; } }
