PluginProbe
Yatra – Travel Booking & Tour Operator Software / trunk
Yatra – Travel Booking & Tour Operator Software vtrunk
3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 2.0.10 2.0.11 All 82 releases
yatra / assets / css / shortcodes / destination-shortcode.css

destination-shortcode.css in Yatra – Travel Booking & Tour Operator Software trunk, at assets/css/shortcodes/destination-shortcode.css

1,078 lines 22.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* Destination Shortcode Styles */
2 .yatra-destination-shortcode {
3 margin: 30px 0;
4 position: relative;
5 }
6
7 /* Category-Style Destination Cards */
8 .yatra-category-card {
9 position: relative;
10 border-radius: 12px;
11 overflow: hidden;
12 background: #ffffff;
13 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
14 transition: transform 0.3s ease, box-shadow 0.3s ease;
15 }
16
17 .yatra-category-card:hover {
18 transform: translateY(-4px);
19 box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
20 }
21
22 .yatra-category-card-image-wrapper {
23 position: relative;
24 width: 100%;
25 padding-top: 75%; /* 4:3 Aspect Ratio */
26 overflow: hidden;
27 }
28
29 .yatra-category-card-image {
30 position: absolute;
31 top: 0;
32 left: 0;
33 width: 100%;
34 height: 100%;
35 object-fit: cover;
36 transition: transform 0.3s ease;
37 }
38
39 .yatra-category-card:hover .yatra-category-card-image {
40 transform: scale(1.05);
41 }
42
43 .yatra-category-card-overlay {
44 position: absolute;
45 top: 0;
46 left: 0;
47 right: 0;
48 bottom: 0;
49 background: linear-gradient(to bottom,
50 rgba(0, 0, 0, 0.1) 0%,
51 rgba(0, 0, 0, 0.3) 30%,
52 rgba(0, 0, 0, 0.7) 70%,
53 rgba(0, 0, 0, 0.9) 100%
54 );
55 display: flex;
56 align-items: flex-end;
57 padding: 20px;
58 }
59
60 .yatra-category-card-content {
61 color: #ffffff;
62 width: 100%;
63 /* No `position: relative` here: it would become the nearest positioned
64 ancestor for the title link's stretched `::after`, trapping the click
65 overlay to the bottom-strip content area instead of the whole card.
66 The overlay above (`.yatra-category-card-overlay`) is `position:
67 absolute; inset: 0` so the link's `::after` correctly fills the full
68 card via that wrapper. */
69 }
70
71 .yatra-category-card-title {
72 margin: 0 0 16px 0;
73 font-size: 1.5rem;
74 font-weight: 700;
75 line-height: 1.2;
76 }
77
78 .yatra-category-card-title-link {
79 color: #ffffff;
80 text-decoration: none;
81 transition: color 0.2s ease;
82 }
83
84 .yatra-category-card-title-link:hover {
85 color: var(--yatra-primary-light, #60a5fa);
86 }
87
88 /*
89 * Whole-card click target.
90 *
91 * Promote the title link to a "stretched link" so the entire card is
92 * navigable, while keeping the visible <a> on the title for screen readers
93 * and SEO. The pseudo-element fills the overlay (which is `inset: 0` on the
94 * image wrapper), giving us a single canonical link target without nesting
95 * <a> elements. The featured badge is made non-interactive so clicks on it
96 * pass through to the stretched link.
97 */
98 .yatra-category-card {
99 cursor: pointer;
100 }
101
102 .yatra-category-card-title-link::after {
103 content: "";
104 position: absolute;
105 inset: 0;
106 z-index: 1;
107 border-radius: inherit;
108 }
109
110 .yatra-category-card-title-link:focus-visible::after {
111 outline: 2px solid var(--yatra-primary, #2563eb);
112 outline-offset: -2px;
113 }
114
115 .yatra-category-featured-badge {
116 pointer-events: none;
117 }
118
119 .yatra-category-card-stats {
120 display: flex;
121 gap: 20px;
122 margin-bottom: 16px;
123 flex-wrap: wrap;
124 }
125
126 .category-stat {
127 display: flex;
128 align-items: center;
129 gap: 8px;
130 font-size: 1rem;
131 font-weight: 500;
132 }
133
134 .category-stat-icon {
135 width: 20px;
136 height: 20px;
137 display: flex;
138 align-items: center;
139 justify-content: center;
140 }
141
142 .category-stat.rating .category-stat-icon {
143 color: #fbbf24;
144 }
145
146 .category-stat.trips .category-stat-icon {
147 color: var(--yatra-primary-light, #60a5fa);
148 }
149
150 .category-stat.price .category-stat-icon {
151 color: #10b981;
152 }
153
154 .category-stat-value {
155 color: #ffffff;
156 font-size: 1rem;
157 font-weight: 500;
158 }
159
160 .yatra-category-card-price {
161 font-size: 1.125rem;
162 font-weight: 600;
163 color: #ffffff;
164 margin-bottom: 8px;
165 }
166
167 .yatra-category-featured-badge {
168 position: absolute;
169 top: 12px;
170 right: 12px;
171 background: #ef4444;
172 color: #ffffff;
173 padding: 4px 12px;
174 border-radius: 20px;
175 font-size: 0.75rem;
176 font-weight: 600;
177 text-transform: uppercase;
178 letter-spacing: 0.5px;
179 z-index: 3;
180 }
181
182 /* Responsive Design */
183 @media (max-width: 768px) {
184 .yatra-category-card-overlay {
185 padding: 16px;
186 }
187
188 .yatra-category-card-title {
189 font-size: 1.125rem;
190 margin-bottom: 10px;
191 }
192
193 .yatra-category-card-stats {
194 gap: 12px;
195 margin-bottom: 10px;
196 }
197
198 .category-stat {
199 font-size: 0.8rem;
200 }
201
202 .yatra-category-card-price {
203 font-size: 0.9rem;
204 }
205 }
206
207 @media (max-width: 480px) {
208 .yatra-category-card-overlay {
209 padding: 12px;
210 }
211
212 .yatra-category-card-title {
213 font-size: 1rem;
214 margin-bottom: 8px;
215 }
216
217 .yatra-category-card-stats {
218 gap: 8px;
219 margin-bottom: 8px;
220 }
221
222 .category-stat {
223 font-size: 0.75rem;
224 gap: 4px;
225 }
226
227 .category-stat-icon {
228 font-size: 0.875rem;
229 }
230
231 .yatra-category-card-price {
232 font-size: 0.8rem;
233 }
234 }
235
236 .yatra-destination-shortcode.yatra-loading::before {
237 content: '';
238 position: absolute;
239 top: 0;
240 left: 0;
241 right: 0;
242 bottom: 0;
243 background: rgba(255, 255, 255, 0.8);
244 z-index: 10;
245 }
246
247 .yatra-destination-shortcode.yatra-loading::after {
248 content: '';
249 position: absolute;
250 top: 50%;
251 left: 50%;
252 width: 30px;
253 height: 30px;
254 margin: -15px 0 0 -15px;
255 border: 3px solid #f3f3f3;
256 border-top: 3px solid #0073aa;
257 border-radius: 50%;
258 animation: yatra-spin 1s linear infinite;
259 z-index: 11;
260 }
261
262 .yatra-destination-header {
263 display: flex;
264 justify-content: space-between;
265 align-items: center;
266 margin-bottom: 30px;
267 padding-bottom: 15px;
268 border-bottom: 1px solid #e5e7eb;
269 }
270
271 .yatra-destination-title {
272 margin: 0;
273 color: #1f2937;
274 font-size: 1.875rem;
275 font-weight: 600;
276 }
277
278 .yatra-destination-count {
279 color: #6b7280;
280 font-size: 0.875rem;
281 }
282
283 .yatra-destination-shortcode .yatra-destination-grid {
284 display: grid;
285 gap: 30px;
286 }
287
288 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-1 {
289 grid-template-columns: 1fr;
290 }
291
292 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-2 {
293 grid-template-columns: repeat(2, 1fr);
294 }
295
296 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-3 {
297 grid-template-columns: repeat(3, 1fr);
298 }
299
300 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-4 {
301 grid-template-columns: repeat(4, 1fr);
302 }
303
304 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-5 {
305 grid-template-columns: repeat(5, 1fr);
306 }
307
308 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-6 {
309 grid-template-columns: repeat(6, 1fr);
310 }
311
312 /* Destination Card Design - Modern UI/UX */
313 .yatra-destination-card {
314 background: #ffffff;
315 border-radius: 24px;
316 overflow: hidden;
317 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
318 transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
319 position: relative;
320 display: flex;
321 flex-direction: column;
322 height: 100%;
323 border: 1px solid rgba(255, 255, 255, 0.8);
324 }
325
326 .yatra-destination-card:hover {
327 transform: translateY(-4px);
328 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
329 }
330
331 .yatra-destination-card:hover .yatra-destination-image img {
332 transform: scale(1.05);
333 }
334
335 .yatra-destination-media {
336 position: relative;
337 height: 300px;
338 overflow: hidden;
339 }
340
341 .yatra-destination-image {
342 position: relative;
343 width: 100%;
344 height: 100%;
345 }
346
347 .yatra-destination-image img {
348 width: 100%;
349 height: 100%;
350 object-fit: cover;
351 transition: transform 0.3s ease;
352 filter: brightness(0.9);
353 }
354
355 .yatra-destination-card:hover .yatra-destination-image img {
356 transform: scale(1.05);
357 }
358
359 .yatra-destination-overlay {
360 position: absolute;
361 inset: 0;
362 background: linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.1) 100%);
363 display: flex;
364 align-items: flex-start;
365 justify-content: flex-end;
366 padding: 20px;
367 opacity: 0;
368 transition: opacity 0.4s ease;
369 }
370
371 .yatra-destination-card:hover .yatra-destination-overlay {
372 opacity: 1;
373 }
374
375 .yatra-destination-overlay-content {
376 display: flex;
377 flex-direction: column;
378 gap: 8px;
379 align-items: flex-end;
380 }
381
382 .yatra-destination-badge {
383 background: linear-gradient(135deg, var(--yatra-success) 0%, #059669 100%);
384 color: #ffffff;
385 padding: 8px 16px;
386 border-radius: 20px;
387 font-size: 0.75rem;
388 font-weight: 600;
389 text-transform: uppercase;
390 letter-spacing: 1px;
391 box-shadow: 0 8px 16px rgba(16, 185, 129, 0.3);
392 }
393
394 .yatra-destination-badge.featured {
395 background: linear-gradient(135deg, var(--yatra-warning) 0%, #d97706 100%);
396 box-shadow: 0 8px 16px rgba(245, 158, 11, 0.3);
397 }
398
399 .yatra-destination-quick-info {
400 display: flex;
401 gap: 8px;
402 }
403
404 .yatra-destination-quick-info-item {
405 display: flex;
406 align-items: center;
407 gap: 4px;
408 background: rgba(255, 255, 255, 0.95);
409 color: var(--yatra-text-primary);
410 padding: 4px 8px;
411 border-radius: 12px;
412 font-size: 0.75rem;
413 font-weight: 500;
414 backdrop-filter: blur(10px);
415 }
416
417 .yatra-destination-quick-info-icon {
418 font-size: 12px;
419 }
420
421 .yatra-destination-content {
422 padding: 24px;
423 flex: 1;
424 display: flex;
425 flex-direction: column;
426 gap: 16px;
427 }
428
429 .yatra-destination-header-info {
430 display: flex;
431 flex-direction: column;
432 gap: 12px;
433 }
434
435 .yatra-destination-name {
436 margin: 0;
437 font-size: 1.5rem;
438 font-weight: 700;
439 line-height: 1.3;
440 color: var(--yatra-text-primary);
441 }
442
443 .yatra-destination-location-info {
444 display: flex;
445 flex-direction: column;
446 gap: 8px;
447 }
448
449 .yatra-destination-country-info,
450 .yatra-destination-region-info {
451 display: flex;
452 align-items: center;
453 gap: 8px;
454 padding: 8px 12px;
455 background: var(--yatra-bg-gray-100);
456 border-radius: 12px;
457 border: 1px solid var(--yatra-border-light);
458 }
459
460 .yatra-destination-country-icon,
461 .yatra-destination-region-icon {
462 width: 20px;
463 height: 20px;
464 display: flex;
465 align-items: center;
466 justify-content: center;
467 color: var(--yatra-success);
468 }
469
470 .yatra-destination-country-icon svg,
471 .yatra-destination-region-icon svg {
472 width: 16px;
473 height: 16px;
474 fill: currentColor;
475 }
476
477 .yatra-destination-country-name,
478 .yatra-destination-region-name {
479 font-size: 0.875rem;
480 color: var(--yatra-text-primary);
481 font-weight: 500;
482 }
483
484 .yatra-destination-name a {
485 color: inherit;
486 text-decoration: none;
487 transition: color 0.3s ease;
488 position: relative;
489 }
490
491 .yatra-destination-name a::after {
492 content: '';
493 position: absolute;
494 bottom: -2px;
495 left: 0;
496 width: 0;
497 height: 2px;
498 background: linear-gradient(90deg, var(--yatra-success), #059669);
499 transition: width 0.3s ease;
500 }
501
502 .yatra-destination-name a:hover::after {
503 width: 100%;
504 }
505
506 .yatra-destination-name a:hover {
507 color: var(--yatra-success);
508 }
509
510 .yatra-destination-meta {
511 display: flex;
512 align-items: center;
513 justify-content: space-between;
514 flex-wrap: wrap;
515 gap: 16px;
516 }
517
518 .yatra-destination-rating {
519 display: flex;
520 align-items: center;
521 gap: 8px;
522 }
523
524 .yatra-destination-stars {
525 display: flex;
526 gap: 2px;
527 }
528
529 .yatra-destination-star {
530 font-size: 16px;
531 color: #dfe6e9;
532 transition: color 0.2s ease;
533 }
534
535 .yatra-destination-star.filled {
536 color: var(--yatra-star);
537 text-shadow: 0 2px 4px rgba(251, 191, 36, 0.3);
538 }
539
540 .yatra-destination-rating-text {
541 font-size: 0.875rem;
542 color: var(--yatra-text-muted);
543 font-weight: 500;
544 }
545
546 .yatra-destination-tours {
547 display: flex;
548 align-items: baseline;
549 gap: 4px;
550 color: var(--yatra-text-muted);
551 }
552
553 .yatra-destination-tours-count {
554 font-size: 1.125rem;
555 font-weight: 700;
556 color: var(--yatra-text-primary);
557 }
558
559 .yatra-destination-tours-label {
560 font-size: 0.875rem;
561 font-weight: 500;
562 }
563
564 .yatra-destination-region-tag {
565 display: inline-flex;
566 align-items: center;
567 gap: 8px;
568 background: linear-gradient(135deg, var(--yatra-bg-gray-100) 0%, #d1fae5 100%);
569 color: var(--yatra-success);
570 padding: 8px 16px;
571 border-radius: 20px;
572 font-size: 0.875rem;
573 font-weight: 600;
574 border: 1px solid rgba(16, 185, 129, 0.1);
575 }
576
577 .yatra-destination-region-icon {
578 font-size: 16px;
579 }
580
581 .yatra-destination-description {
582 color: var(--yatra-text-muted);
583 font-size: 0.9375rem;
584 line-height: 1.7;
585 display: -webkit-box;
586 -webkit-line-clamp: 3;
587 line-clamp: 3;
588 -webkit-box-orient: vertical;
589 overflow: hidden;
590 }
591
592 .yatra-destination-highlights {
593 display: flex;
594 flex-direction: column;
595 gap: 8px;
596 }
597
598 .yatra-destination-highlight {
599 display: flex;
600 align-items: center;
601 gap: 10px;
602 padding: 10px;
603 background: var(--yatra-bg-gray-100);
604 border-radius: 8px;
605 border: 1px solid var(--yatra-border-light);
606 }
607
608 .yatra-destination-highlight-icon {
609 width: 32px;
610 height: 32px;
611 display: flex;
612 align-items: center;
613 justify-content: center;
614 background: linear-gradient(135deg, var(--yatra-success) 0%, #059669 100%);
615 border-radius: 50%;
616 box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
617 color: #ffffff;
618 }
619
620 .yatra-destination-highlight-icon svg {
621 width: 16px;
622 height: 16px;
623 fill: currentColor;
624 }
625
626 .yatra-destination-highlight-content {
627 flex: 1;
628 }
629
630 .yatra-destination-highlight-label {
631 font-size: 0.75rem;
632 color: var(--yatra-text-muted);
633 font-weight: 500;
634 text-transform: uppercase;
635 letter-spacing: 0.5px;
636 }
637
638 .yatra-destination-highlight-value {
639 font-size: 0.875rem;
640 color: var(--yatra-text-primary);
641 font-weight: 600;
642 }
643
644 .yatra-destination-amenities {
645 display: grid;
646 grid-template-columns: 1fr 1fr;
647 gap: 8px;
648 }
649
650 .yatra-destination-amenity {
651 display: flex;
652 align-items: center;
653 gap: 8px;
654 font-size: 0.875rem;
655 color: var(--yatra-text-primary);
656 font-weight: 500;
657 }
658
659 .yatra-destination-amenity-icon {
660 display: flex;
661 align-items: center;
662 justify-content: center;
663 width: 20px;
664 height: 20px;
665 background: var(--yatra-success);
666 color: #ffffff;
667 border-radius: 50%;
668 font-size: 12px;
669 font-weight: 700;
670 }
671
672 .yatra-destination-footer {
673 display: flex;
674 align-items: center;
675 justify-content: space-between;
676 padding-top: 20px;
677 border-top: 1px solid var(--yatra-border-light);
678 margin-top: auto;
679 gap: 16px;
680 }
681
682 .yatra-destination-price-info {
683 display: flex;
684 flex-direction: column;
685 gap: 4px;
686 flex: 1;
687 min-width: 0; /* Prevents flex item from overflowing */
688 }
689
690 .yatra-destination-btn-wrapper {
691 flex-shrink: 0;
692 }
693
694 .yatra-destination-price-label {
695 font-size: 0.75rem;
696 color: var(--yatra-text-muted);
697 font-weight: 500;
698 text-transform: uppercase;
699 letter-spacing: 0.5px;
700 }
701
702 .yatra-destination-price-row {
703 display: flex;
704 align-items: baseline;
705 gap: 2px;
706 }
707
708 .yatra-destination-price-currency {
709 font-size: 1rem;
710 font-weight: 600;
711 color: var(--yatra-text-secondary);
712 }
713
714 .yatra-destination-price-amount {
715 font-size: 1.75rem;
716 font-weight: 800;
717 color: var(--yatra-text-primary);
718 background: linear-gradient(135deg, var(--yatra-success), #059669);
719 -webkit-background-clip: text;
720 -webkit-text-fill-color: transparent;
721 background-clip: text;
722 }
723
724 .yatra-destination-price-person {
725 font-size: 0.875rem;
726 color: var(--yatra-text-muted);
727 font-weight: 500;
728 }
729
730 .yatra-destination-price-note {
731 font-size: 0.75rem;
732 color: var(--yatra-success);
733 font-weight: 500;
734 }
735
736 .yatra-destination-btn {
737 display: inline-flex;
738 align-items: center;
739 justify-content: center;
740 gap: 4px;
741 padding: 8px 12px;
742 background: var(--yatra-success);
743 color: #ffffff !important;
744 border: none;
745 border-radius: 4px;
746 font-size: 12px;
747 font-weight: 600;
748 cursor: pointer;
749 transition: all 0.2s;
750 text-decoration: none !important;
751 white-space: nowrap;
752 }
753
754 .yatra-destination-btn::before {
755 content: '';
756 position: absolute;
757 top: 0;
758 left: -100%;
759 width: 100%;
760 height: 100%;
761 background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
762 transition: left 0.5s ease;
763 }
764
765 .yatra-destination-btn:hover::before {
766 left: 100%;
767 }
768
769 .yatra-destination-btn:hover {
770 background: #059669;
771 transform: translateY(-1px);
772 box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
773 }
774
775 .yatra-destination-btn-arrow {
776 font-size: 1rem;
777 transition: transform 0.3s ease;
778 }
779
780 .yatra-destination-btn:hover .yatra-destination-btn-arrow {
781 transform: translateX(4px);
782 }
783
784 .yatra-destination-trips {
785 padding: 20px;
786 background: #f8fafc;
787 border-top: 1px solid #e2e8f0;
788 }
789
790 .yatra-destination-trips-title {
791 margin: 0 0 16px 0;
792 color: #374151;
793 font-size: 1rem;
794 font-weight: 600;
795 display: flex;
796 align-items: center;
797 gap: 8px;
798 }
799
800 .yatra-destination-trips-grid {
801 display: grid;
802 gap: 12px;
803 }
804
805 /* Destination Badge */
806 .yatra-destination-badge {
807 position: absolute;
808 top: 16px;
809 right: 16px;
810 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
811 color: #ffffff;
812 padding: 6px 12px;
813 border-radius: 20px;
814 font-size: 0.75rem;
815 font-weight: 600;
816 text-transform: uppercase;
817 letter-spacing: 0.5px;
818 box-shadow: 0 4px 6px -1px rgba(239, 68, 68, 0.3);
819 z-index: 2;
820 }
821
822 /* Featured Destination */
823 .yatra-destination-card.featured {
824 border: 2px solid #fbbf24;
825 box-shadow: 0 0 0 4px rgba(251, 191, 36, 0.1);
826 }
827
828 .yatra-destination-card.featured::before {
829 content: '';
830 position: absolute;
831 top: -2px;
832 left: -2px;
833 right: -2px;
834 bottom: -2px;
835 background: linear-gradient(45deg, #fbbf24, #f59e0b, #fbbf24);
836 border-radius: 16px;
837 z-index: -1;
838 opacity: 0;
839 transition: opacity 0.3s ease;
840 }
841
842 .yatra-destination-card.featured:hover::before {
843 opacity: 1;
844 }
845
846 /* Popular Destination */
847 .yatra-destination-card.popular {
848 position: relative;
849 }
850
851 .yatra-destination-card.popular::after {
852 content: '';
853 position: absolute;
854 top: 12px;
855 left: 12px;
856 width: 32px;
857 height: 32px;
858 background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
859 border-radius: 50%;
860 display: flex;
861 align-items: center;
862 justify-content: center;
863 box-shadow: 0 4px 6px -1px rgba(251, 191, 36, 0.3);
864 z-index: 2;
865 }
866
867 .yatra-destination-card.popular::before {
868 content: '';
869 position: absolute;
870 top: 12px;
871 left: 12px;
872 width: 32px;
873 height: 32px;
874 display: flex;
875 align-items: center;
876 justify-content: center;
877 font-size: 16px;
878 z-index: 3;
879 }
880
881 /* Loading State */
882 .yatra-destination-card.loading {
883 position: relative;
884 overflow: hidden;
885 }
886
887 .yatra-destination-card.loading::after {
888 content: '';
889 position: absolute;
890 top: 0;
891 left: -100%;
892 width: 100%;
893 height: 100%;
894 background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
895 animation: yatra-shimmer 1.5s infinite;
896 }
897
898 /* Destination Rating */
899 .yatra-destination-rating {
900 display: flex;
901 align-items: center;
902 gap: 8px;
903 margin-bottom: 12px;
904 }
905
906 .yatra-destination-stars {
907 display: flex;
908 gap: 2px;
909 }
910
911 .yatra-destination-star {
912 width: 16px;
913 height: 16px;
914 fill: #fbbf24;
915 }
916
917 .yatra-destination-rating-text {
918 font-size: 0.875rem;
919 color: #6b7280;
920 font-weight: 500;
921 }
922
923 /* Destination Price */
924 .yatra-destination-price {
925 display: flex;
926 align-items: baseline;
927 gap: 4px;
928 margin-bottom: 16px;
929 }
930
931 .yatra-destination-price-amount {
932 font-size: 1.5rem;
933 font-weight: 700;
934 color: #1f2937;
935 }
936
937 .yatra-destination-price-label {
938 font-size: 0.875rem;
939 color: #6b7280;
940 }
941
942 /* Destination Tags */
943 .yatra-destination-tags {
944 display: flex;
945 flex-wrap: wrap;
946 gap: 8px;
947 margin-bottom: 16px;
948 }
949
950 .yatra-destination-tag {
951 display: inline-flex;
952 align-items: center;
953 padding: 4px 8px;
954 background: #f3f4f6;
955 color: #374151;
956 border-radius: 12px;
957 font-size: 0.75rem;
958 font-weight: 500;
959 text-transform: uppercase;
960 letter-spacing: 0.5px;
961 }
962
963 .yatra-destination-tag.highlight {
964 background: #fef3c7;
965 color: #92400e;
966 }
967
968 .yatra-destination-empty {
969 text-align: center;
970 padding: 60px 20px;
971 color: #6b7280;
972 }
973
974 .yatra-destination-empty-page {
975 text-align: center;
976 padding: 40px 20px;
977 color: #6b7280;
978 }
979
980 .yatra-destination-pagination {
981 display: flex;
982 justify-content: center;
983 align-items: center;
984 gap: 10px;
985 margin-top: 30px;
986 flex-wrap: wrap;
987 }
988
989 .yatra-pagination-link {
990 display: inline-flex;
991 align-items: center;
992 justify-content: center;
993 min-width: 40px;
994 height: 40px;
995 padding: 0 12px;
996 border: 1px solid #d1d5db;
997 border-radius: 6px;
998 background: #ffffff;
999 color: #374151;
1000 text-decoration: none;
1001 font-size: 0.875rem;
1002 font-weight: 500;
1003 transition: all 0.2s ease;
1004 }
1005
1006 .yatra-pagination-link:hover {
1007 background: #f9fafb;
1008 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 35%, #d1d5db);
1009 color: var(--yatra-primary, #3b82f6);
1010 }
1011
1012 .yatra-pagination-current {
1013 background: var(--yatra-primary, #3b82f6);
1014 border-color: var(--yatra-primary, #3b82f6);
1015 color: #ffffff;
1016 font-weight: 600;
1017 transform: scale(1.05);
1018 box-shadow: 0 2px 8px color-mix(in srgb, var(--yatra-primary, #3b82f6) 35%, transparent);
1019 }
1020
1021 .yatra-pagination-current:hover {
1022 background: var(--yatra-primary-dark, #2563eb);
1023 border-color: var(--yatra-primary-dark, #2563eb);
1024 transform: scale(1.05);
1025 box-shadow: 0 2px 8px color-mix(in srgb, var(--yatra-primary-dark, #2563eb) 40%, transparent);
1026 }
1027
1028 .yatra-pagination-ellipsis {
1029 color: #9ca3af;
1030 padding: 0 8px;
1031 font-size: 0.875rem;
1032 }
1033
1034 /* Responsive Design */
1035 @media (max-width: 768px) {
1036 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-3,
1037 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-4,
1038 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-5,
1039 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-6 {
1040 grid-template-columns: repeat(2, 1fr);
1041 }
1042
1043 .yatra-destination-header {
1044 flex-direction: column;
1045 gap: 15px;
1046 text-align: center;
1047 }
1048
1049 .yatra-destination-trips-grid {
1050 grid-template-columns: 1fr;
1051 }
1052 }
1053
1054 @media (max-width: 480px) {
1055 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-2,
1056 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-3,
1057 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-4,
1058 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-5,
1059 .yatra-destination-shortcode .yatra-destination-grid.yatra-destination-grid-6 {
1060 grid-template-columns: 1fr;
1061 }
1062
1063 .yatra-destination-content {
1064 padding: 15px;
1065 }
1066
1067 .yatra-destination-pagination {
1068 gap: 5px;
1069 }
1070
1071 .yatra-pagination-link {
1072 min-width: 36px;
1073 height: 36px;
1074 font-size: 0.8rem;
1075 padding: 0 8px;
1076 }
1077 }
1078