PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.7
Yatra – Travel Booking & Tour Operator Software v3.0.7
3.0.15 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 All 83 releases
yatra / assets / css / listing.css

listing.css in Yatra – Travel Booking & Tour Operator Software 3.0.7, at assets/css/listing.css

3,496 lines 75.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Listing Pages CSS
3 * Styles for trip, destination, activity, and trip-category listing pages
4 * Uses common.css variables for consistency
5 *
6 * @package Yatra
7 */
8
9 /* List view: left image column — wide enough on desktop, still responsive */
10 :root {
11 --yatra-listing-list-media-width: max(380px, min(560px, 52%));
12 /* Vertical rhythm between stacked list cards (grid gap requires display:grid) */
13 --yatra-listing-list-row-gap: 24px;
14 }
15
16 /* ============================================
17 LISTING PAGE BASE STYLES
18 Uses consistent container widths from common.css
19 ============================================ */
20
21 /* All listing pages use the same wrapper */
22 .yatra-listing-page {
23 width: 100%;
24 min-height: 100vh;
25 padding: 50px 0;
26 }
27
28 .yatra-listing-wrapper {
29 padding-top: 0;
30 }
31
32 /* Consistent container width across all listing pages (align with single-trip 1300) */
33 .yatra-listing-container {
34 width: 100%;
35 max-width: var(--yatra-container-max-width, 1300px);
36 margin-left: auto;
37 margin-right: auto;
38 padding: var(--yatra-space-lg, 24px) var(--yatra-container-padding, 20px);
39 }
40
41 /* ============================================
42 FILTER SIDEBAR STYLES
43 ============================================ */
44
45 /* This old sidebar definition is removed - using the updated one below */
46
47 /* Star Rating Filter Styles */
48 .yatra-rating-filter {
49 display: flex;
50 flex-direction: column;
51 gap: 8px;
52 }
53
54 .yatra-rating-option {
55 display: flex;
56 align-items: center;
57 gap: 8px;
58 padding: 4px 0;
59 cursor: pointer;
60 transition: all 0.2s ease;
61 }
62
63 .yatra-rating-option:hover {
64 background: rgba(59, 130, 246, 0.05);
65 border-radius: 4px;
66 padding-left: 4px;
67 padding-right: 4px;
68 }
69
70 .yatra-rating-option input[type="checkbox"] {
71 margin: 0;
72 width: 16px;
73 height: 16px;
74 accent-color: var(--yatra-primary, #3b82f6);
75 }
76
77 .yatra-stars-display {
78 display: flex;
79 align-items: center;
80 gap: 2px;
81 }
82
83 .yatra-star.filled {
84 fill: #fbbf24;
85 }
86
87 .yatra-star.empty {
88 fill: #e5e7eb;
89 }
90
91 .yatra-rating-label {
92 font-size: 13px;
93 color: #374151;
94 margin-left: 4px;
95 font-weight: 400;
96 }
97
98 .yatra-rating-option:hover .yatra-rating-label {
99 color: #1f2937;
100 }
101
102 /* Responsive adjustments for rating filter */
103 @media (max-width: 768px) {
104 .yatra-star {
105 width: 12px;
106 height: 12px;
107 }
108
109 .yatra-rating-label {
110 font-size: 12px;
111 }
112 }
113
114
115 /* Results Header */
116 .yatra-results-header {
117 display: flex;
118 justify-content: space-between;
119 align-items: flex-start;
120 gap: 20px;
121 margin-bottom: 28px;
122 padding-bottom: 20px;
123 border-bottom: 1px solid #e2e8f0;
124 }
125
126 .yatra-results-info h1 {
127 font-size: clamp(1.375rem, 2.5vw, 1.75rem);
128 font-weight: 700;
129 color: #0f172a;
130 letter-spacing: -0.02em;
131 margin-bottom: 8px;
132 line-height: 1.25;
133 }
134
135 .yatra-listing-archive-lede {
136 font-size: 0.9375rem;
137 line-height: 1.55;
138 color: #64748b;
139 margin: 0 0 10px 0;
140 max-width: 42rem;
141 }
142
143 .yatra-archive-listing-lede {
144 font-size: 0.9375rem;
145 line-height: 1.55;
146 color: #64748b;
147 margin: 0 0 8px 0;
148 max-width: 42rem;
149 }
150
151 .yatra-archive-listing-results {
152 font-size: 0.8125rem;
153 color: #475569;
154 margin: 0 0 2px 0;
155 }
156
157 .yatra-archive-card-excerpt {
158 display: -webkit-box;
159 -webkit-line-clamp: 3;
160 -webkit-box-orient: vertical;
161 overflow: hidden;
162 line-clamp: 3;
163 margin: 0 0 8px 0;
164 font-size: 0.875rem;
165 line-height: 1.45;
166 color: #4b5563;
167 }
168
169 .yatra-results-count {
170 font-size: 14px;
171 line-height: 1.5;
172 color: #475569;
173 margin-top: 4px;
174 }
175
176 .yatra-results-count strong {
177 color: #0f172a;
178 font-weight: 600;
179 }
180
181 .yatra-results-controls {
182 display: flex;
183 align-items: center;
184 gap: 12px;
185 flex-wrap: wrap;
186 background: #f8fafc;
187 border: 1px solid #e5e7eb;
188 border-radius: 12px;
189 padding: 10px 12px;
190 justify-content: end;
191 }
192
193 .yatra-sort-control {
194 display: flex;
195 align-items: center;
196 gap: 8px;
197 }
198
199 .yatra-sort-control label {
200 font-size: 14px;
201 font-weight: 500;
202 color: #374151;
203 white-space: nowrap;
204 }
205
206 .yatra-sort-control select {
207 padding: 9px 14px;
208 border: 1px solid #d1d5db;
209 border-radius: 10px;
210 background: #ffffff;
211 font-size: 14px;
212 color: #374151;
213 cursor: pointer;
214 transition: all 0.2s ease;
215 min-width: 180px;
216 }
217
218 .yatra-sort-control select:hover {
219 border-color: #9ca3af;
220 }
221
222 .yatra-sort-control select:focus {
223 outline: none;
224 border-color: var(--yatra-primary, #3b82f6);
225 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
226 }
227
228 /* Grid / list toggle: gray “track”, inactive = muted icon, active = white inset + blue ring (clear at a glance) */
229 .yatra-view-toggle {
230 display: inline-flex;
231 align-items: stretch;
232 background: #e2e8f0;
233 border-radius: 10px;
234 padding: 3px;
235 gap: 0;
236 border: 1px solid #cbd5e1;
237 }
238
239 .yatra-view-btn {
240 display: flex;
241 align-items: center;
242 justify-content: center;
243 min-width: 40px;
244 min-height: 36px;
245 padding: 8px 12px;
246 border: none;
247 background: transparent;
248 border-radius: 8px;
249 cursor: pointer;
250 transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
251 color: #64748b;
252 font-weight: 500;
253 }
254
255 .yatra-view-btn:hover:not(.active) {
256 background: rgba(255, 255, 255, 0.45);
257 color: #334155;
258 }
259
260 .yatra-view-btn:focus-visible {
261 outline: none;
262 box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px var(--yatra-primary, #3b82f6);
263 }
264
265 .yatra-view-btn.active {
266 background: #ffffff;
267 color: var(--yatra-primary-darker, #1d4ed8);
268 box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12), 0 0 0 1px #93c5fd;
269 }
270
271 .yatra-view-btn svg {
272 width: 18px;
273 height: 18px;
274 flex-shrink: 0;
275 }
276
277 /* Grid View Styles (Default) — same columns on trip, destination, activity, category listings */
278 .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
279 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
280 .yatra-listing-page .yatra-destination-grid:not(.list-view),
281 .yatra-listing-page .yatra-activity-grid:not(.list-view),
282 .yatra-listing-page .yatra-category-grid:not(.list-view) {
283 display: grid;
284 gap: 24px;
285 grid-template-columns: 1fr;
286 transition: all 0.3s ease;
287 }
288
289 .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
290 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view) {
291 margin-bottom: 32px;
292 }
293
294 @media (min-width: 768px) {
295 .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
296 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
297 .yatra-listing-page .yatra-destination-grid:not(.list-view),
298 .yatra-listing-page .yatra-activity-grid:not(.list-view),
299 .yatra-listing-page .yatra-category-grid:not(.list-view) {
300 grid-template-columns: repeat(2, minmax(0, 1fr));
301 }
302 }
303
304 @media (min-width: 1024px) {
305 /*
306 * Trip archive with left filter sidebar: main column is narrow — use 2 cards per row.
307 * Full-width listings (e.g. taxonomy trip list) keep 3 per row.
308 */
309 .yatra-listing-content:not(.yatra-listing-content-full) .yatra-trip-grid:not(.list-view):not(.yatra-list-view) {
310 grid-template-columns: repeat(2, minmax(0, 1fr));
311 }
312
313 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view) {
314 grid-template-columns: repeat(3, minmax(0, 1fr));
315 }
316
317 .yatra-listing-page .yatra-destination-grid:not(.list-view),
318 .yatra-listing-page .yatra-activity-grid:not(.list-view),
319 .yatra-listing-page .yatra-category-grid:not(.list-view) {
320 grid-template-columns: repeat(3, minmax(0, 1fr));
321 }
322 }
323
324 .yatra-trip-card {
325 background: #ffffff;
326 border-radius: 12px;
327 overflow: hidden;
328 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
329 transition: all 0.3s ease;
330 display: flex;
331 flex-direction: column;
332 height: 100%;
333 }
334
335 .yatra-trip-card:hover {
336 transform: translateY(-4px);
337 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
338 }
339
340 .yatra-trip-card-image {
341 position: relative;
342 width: 100%;
343 height: 240px;
344 overflow: hidden;
345 }
346
347 .yatra-trip-card-image img {
348 width: 100%;
349 height: 100%;
350 object-fit: cover;
351 }
352
353 .yatra-trip-content {
354 padding: 20px;
355 display: flex;
356 flex-direction: column;
357 gap: 12px;
358 flex: 1;
359 }
360
361 .yatra-trip-title {
362 font-size: 1.25rem;
363 font-weight: 600;
364 color: #1f2937;
365 margin: 0;
366 line-height: 1.4;
367 -webkit-line-clamp: 2;
368 line-clamp: 2;
369 display: -webkit-box;
370 -webkit-box-orient: vertical;
371 overflow: hidden;
372 }
373
374 /* List View Styles — must be CSS grid so gap separates cards (non-list uses display:grid above) */
375 .yatra-trip-grid.list-view,
376 .yatra-trip-grid.yatra-list-view {
377 display: grid;
378 grid-template-columns: 1fr;
379 gap: var(--yatra-listing-list-row-gap);
380 align-content: start;
381 }
382
383 .yatra-trip-grid.list-view .yatra-trip-card {
384 display: flex;
385 flex-direction: row;
386 height: auto;
387 min-height: 240px;
388 max-height: none;
389 }
390
391 .yatra-trip-grid.list-view .yatra-trip-card-image {
392 width: var(--yatra-listing-list-media-width);
393 min-width: var(--yatra-listing-list-media-width);
394 height: auto;
395 min-height: 240px;
396 flex-shrink: 0;
397 align-self: stretch;
398 }
399
400 .yatra-trip-grid.list-view .yatra-trip-content {
401 flex: 1;
402 padding: 20px;
403 display: flex;
404 flex-direction: column;
405 justify-content: space-between;
406 gap: 12px;
407 }
408
409 .yatra-trip-grid.list-view .yatra-trip-title {
410 font-size: 1.1rem;
411 margin-bottom: 8px;
412 -webkit-line-clamp: 1;
413 line-clamp: 1;
414 }
415
416 .yatra-trip-grid.list-view .yatra-trip-destinations {
417 margin: -8px -20px 12px -20px;
418 padding: 12px 20px;
419 background: #f8fafc;
420 width: calc(100% + 40px);
421 border-radius: 0;
422 }
423
424 /* Trip Info and Metadata Styling */
425 .yatra-trip-info-row {
426 display: flex;
427 align-items: center;
428 gap: 12px;
429 flex-wrap: wrap;
430 margin-bottom: 10px;
431 }
432
433 .yatra-info-badge {
434 display: flex;
435 align-items: center;
436 gap: 4px;
437 font-size: 0.75rem;
438 color: #6b7280;
439 background: #f3f4f6;
440 padding: 4px 8px;
441 border-radius: 6px;
442 font-weight: 500;
443 }
444
445 .yatra-info-badge svg {
446 width: 12px;
447 height: 12px;
448 color: #9ca3af;
449 }
450
451 .yatra-trip-duration,
452 .yatra-trip-difficulty {
453 display: flex;
454 align-items: center;
455 gap: 6px;
456 font-size: 0.875rem;
457 color: #6b7280;
458 }
459
460 .yatra-trip-activities {
461 display: flex;
462 flex-wrap: wrap;
463 gap: 6px;
464 margin-bottom: 10px;
465 }
466
467 .yatra-tag {
468 background: #e0e7ff;
469 color: #3730a3;
470 padding: 3px 8px;
471 border-radius: 12px;
472 font-size: 0.7rem;
473 font-weight: 500;
474 text-decoration: none;
475 transition: background-color 0.2s ease, color 0.2s ease;
476 }
477
478 .yatra-tag:hover {
479 background: #c7d2fe;
480 color: #312e81;
481 text-decoration: none;
482 }
483
484 .yatra-activity-tag {
485 background: #f3f4f6;
486 color: #374151;
487 padding: 4px 8px;
488 border-radius: 6px;
489 font-size: 0.75rem;
490 font-weight: 500;
491 }
492
493 .yatra-trip-rating {
494 display: flex;
495 align-items: center;
496 gap: 8px;
497 margin-bottom: 3px;
498 }
499
500 .yatra-rating-stars {
501 display: flex;
502 align-items: center;
503 gap: 4px;
504 }
505
506 .yatra-rating-value {
507 font-size: 0.875rem;
508 font-weight: 600;
509 color: #1f2937;
510 }
511
512 .yatra-reviews-count {
513 font-size: 0.75rem;
514 color: #9ca3af;
515 }
516
517 .yatra-rating-text {
518 font-size: 0.875rem;
519 color: #6b7280;
520 }
521
522 .yatra-trip-footer {
523 margin-top: auto;
524 display: flex;
525 justify-content: space-between;
526 align-items: center;
527 padding-top: 16px;
528 }
529
530 .yatra-trip-card-price {
531 display: flex;
532 flex-direction: column;
533 align-items: flex-start;
534 }
535
536 .yatra-trip-price {
537 font-size: 1.25rem;
538 font-weight: 700;
539 color: #059669;
540 }
541
542 .yatra-original-price {
543 font-size: 0.875rem;
544 color: #9ca3af;
545 text-decoration: line-through;
546 margin-left: 8px;
547 }
548
549 .yatra-view-details-btn {
550 background: var(--yatra-primary-dark, #2563eb);
551 color: #ffffff;
552 padding: 10px 20px;
553 border-radius: 8px;
554 text-decoration: none;
555 font-weight: 500;
556 transition: all 0.2s ease;
557 }
558
559 .yatra-view-details-btn:hover {
560 background: var(--yatra-primary-darker, #1d4ed8);
561 transform: translateY(-1px);
562 }
563
564 /* Grid view specific styling */
565 .yatra-trip-grid:not(.list-view) .yatra-trip-destinations {
566 margin: -14px -20px 12px -20px;
567 padding: 12px 20px;
568 background: #f8fafc;
569 width: calc(100% + 40px);
570 }
571
572 /* Responsive Design */
573 @media (max-width: 767px) {
574 .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
575 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
576 .yatra-listing-page .yatra-destination-grid:not(.list-view),
577 .yatra-listing-page .yatra-activity-grid:not(.list-view),
578 .yatra-listing-page .yatra-category-grid:not(.list-view) {
579 gap: 16px;
580 }
581
582 .yatra-trip-grid.list-view .yatra-trip-card {
583 flex-direction: column;
584 min-height: auto;
585 }
586
587 .yatra-trip-grid.list-view .yatra-trip-card-image {
588 width: 100%;
589 min-width: 100%;
590 height: 200px;
591 min-height: 200px;
592 }
593
594 .yatra-trip-grid.list-view .yatra-trip-destinations {
595 margin: -14px -20px 12px -20px;
596 width: calc(100% + 40px);
597 }
598
599 .yatra-trip-footer {
600 flex-direction: column;
601 align-items: stretch;
602 gap: 12px;
603 }
604
605 .yatra-view-details-btn {
606 width: 100%;
607 text-align: center;
608 }
609 }
610
611 /* Categories Styling */
612 .yatra-trip-categories-compact {
613 display: flex;
614 align-items: center;
615 gap: 6px;
616 margin-bottom: 12px;
617 font-size: 0.75rem;
618 color: #6b7280;
619 }
620
621 .yatra-category-icon {
622 display: flex;
623 align-items: center;
624 color: #9ca3af;
625 }
626
627 .yatra-category-link {
628 color: #6b7280;
629 text-decoration: none;
630 transition: color 0.2s ease;
631 }
632
633 .yatra-category-link:hover {
634 color: #374151;
635 text-decoration: none;
636 }
637
638 /* Overlays and Badges */
639 .yatra-discount-badge {
640 position: absolute;
641 top: 12px;
642 left: 12px;
643 background: #dc2626;
644 color: #ffffff;
645 padding: 4px 8px;
646 border-radius: 6px;
647 font-size: 0.75rem;
648 font-weight: 600;
649 z-index: 2;
650 }
651
652 .yatra-favorite-btn {
653 position: absolute;
654 top: 12px;
655 right: 12px;
656 background: rgba(255, 255, 255, 0.9);
657 border: none;
658 border-radius: 50%;
659 width: 36px;
660 height: 36px;
661 display: flex;
662 align-items: center;
663 justify-content: center;
664 cursor: pointer;
665 transition: all 0.2s ease;
666 z-index: 2;
667 }
668
669 .yatra-favorite-btn:hover {
670 background: #ffffff;
671 transform: scale(1.1);
672 }
673
674 .yatra-difficulty-overlay {
675 position: absolute;
676 bottom: 12px;
677 right: 12px;
678 background: rgba(0, 0, 0, 0.8);
679 color: #ffffff;
680 padding: 6px 10px;
681 border-radius: 6px;
682 font-size: 0.75rem;
683 font-weight: 500;
684 display: flex;
685 align-items: center;
686 gap: 4px;
687 z-index: 2;
688 }
689
690 /* List view specific adjustments */
691 .yatra-trip-grid.list-view .yatra-trip-info-row {
692 margin-bottom: 8px;
693 }
694
695 .yatra-trip-grid.list-view .yatra-trip-activities {
696 margin-bottom: 8px;
697 }
698
699 .yatra-trip-grid.list-view .yatra-trip-rating {
700 margin-bottom: 10px;
701 }
702
703 .yatra-trip-grid.list-view .yatra-trip-categories-compact {
704 margin-bottom: 10px;
705 }
706
707 .yatra-trip-grid.list-view .yatra-trip-footer {
708 margin-top: auto;
709 padding-top: 12px;
710 }
711
712 .yatra-trip-grid.list-view .yatra-trip-price {
713 font-size: 1.1rem;
714 }
715
716
717 @media (max-width: 768px) {
718 .yatra-trip-grid.list-view .yatra-trip-card {
719 grid-template-columns: 1fr;
720 grid-auto-rows: auto;
721 }
722
723 .yatra-trip-grid.list-view .yatra-trip-card-image {
724 width: 100%;
725 height: 200px;
726 }
727 }
728
729 /* Additional responsive styles */
730 @media (max-width: 768px) {
731 .yatra-results-controls {
732 flex-direction: row;
733 flex-wrap: wrap;
734 align-items: center;
735 justify-content: flex-end;
736 gap: 10px 12px;
737 }
738
739 .yatra-sort-control {
740 flex: 1 1 min(100%, 320px);
741 min-width: 0;
742 display: grid;
743 grid-template-columns: auto minmax(0, 1fr);
744 align-items: center;
745 gap: 8px 12px;
746 }
747
748 .yatra-sort-control label {
749 white-space: normal;
750 line-height: 1.25;
751 font-size: 13px;
752 color: #475569;
753 }
754
755 .yatra-sort-control select {
756 width: 100%;
757 min-width: 0;
758 flex: none;
759 max-width: 100%;
760 }
761
762 .yatra-view-toggle {
763 flex: 0 0 auto;
764 margin-left: 0;
765 align-self: center;
766 }
767
768 .yatra-destination-listing .yatra-results-controls .yatra-view-toggle,
769 .yatra-taxonomy-page .yatra-results-controls .yatra-view-toggle {
770 margin-left: 0;
771 }
772 }
773
774 @media (max-width: 480px) {
775 .yatra-results-controls {
776 flex-direction: column;
777 align-items: stretch;
778 }
779
780 .yatra-sort-control {
781 grid-template-columns: 1fr;
782 gap: 6px;
783 }
784
785 .yatra-sort-control label {
786 font-size: 12px;
787 }
788
789 .yatra-view-toggle {
790 align-self: flex-end;
791 }
792 }
793
794 .yatra-sort-control select:focus {
795 outline: none;
796 border-color: var(--yatra-primary, #3b82f6);
797 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
798 }
799
800 /* Listing Layout */
801 .yatra-listing-wrapper--overlay-host {
802 position: relative;
803 }
804
805 /* Loading overlay: hidden by default (markup lives in template for filter/sort navigation) */
806 .yatra-listing-loading-overlay {
807 position: absolute;
808 inset: 0;
809 z-index: 40;
810 display: flex;
811 align-items: center;
812 justify-content: center;
813 background: rgba(255, 255, 255, 0.82);
814 backdrop-filter: blur(2px);
815 opacity: 0;
816 visibility: hidden;
817 pointer-events: none;
818 transition: opacity 0.2s ease, visibility 0.2s ease;
819 }
820
821 .yatra-listing-loading-overlay.yatra-listing-loading-overlay--visible {
822 opacity: 1;
823 visibility: visible;
824 pointer-events: auto;
825 }
826
827 .yatra-listing-loading-card {
828 text-align: center;
829 padding: 24px 32px;
830 background: #fff;
831 border-radius: 12px;
832 box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
833 border: 1px solid #e5e7eb;
834 }
835
836 .yatra-listing-loading-spinner {
837 display: inline-block;
838 width: 36px;
839 height: 36px;
840 border: 3px solid #e5e7eb;
841 border-top-color: var(--yatra-primary, #3b82f6);
842 border-radius: 50%;
843 animation: yatra-listing-spin 0.75s linear infinite;
844 margin-bottom: 12px;
845 }
846
847 @keyframes yatra-listing-spin {
848 to {
849 transform: rotate(360deg);
850 }
851 }
852
853 .yatra-listing-loading-text {
854 margin: 0;
855 font-size: 14px;
856 color: #374151;
857 font-weight: 500;
858 }
859
860 .yatra-listing-layout {
861 display: flex;
862 gap: 28px;
863 align-items: flex-start;
864 }
865
866 .yatra-filter-sidebar {
867 flex-shrink: 0;
868 }
869
870 .yatra-listing-content {
871 flex: 1;
872 min-width: 0;
873 }
874
875 /* Full Width Content (no sidebar) */
876 .yatra-listing-content-full {
877 width: 100%;
878 }
879
880 .yatra-listing-content-full .yatra-trip-grid {
881 margin-bottom: 32px;
882 }
883
884 .yatra-listing-content-full .yatra-trip-grid.list-view {
885 display: grid;
886 grid-template-columns: 1fr;
887 gap: var(--yatra-listing-list-row-gap);
888 }
889
890 .yatra-listing-content-full .yatra-trip-grid.list-view .yatra-trip-card,
891 .yatra-trip-grid.yatra-list-view .yatra-trip-card {
892 flex-direction: row;
893 max-height: none;
894 }
895
896 .yatra-listing-content-full .yatra-trip-grid.list-view .yatra-trip-image {
897 width: var(--yatra-listing-list-media-width);
898 min-width: var(--yatra-listing-list-media-width);
899 height: auto;
900 min-height: 240px;
901 flex-shrink: 0;
902 align-self: stretch;
903 }
904
905 /* Filter Sidebar */
906 .yatra-filter-sidebar {
907 width: 100%;
908 max-width: 320px;
909 background: #fff;
910 border-radius: 12px;
911 padding: 24px;
912 height: auto;
913 border: 1px solid #e5e7eb;
914 box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
915 overflow: visible;
916 box-sizing: border-box;
917 }
918
919 .yatra-filter-header {
920 display: flex;
921 justify-content: space-between;
922 align-items: center;
923 margin-bottom: 24px;
924 padding-bottom: 16px;
925 border-bottom: 1px solid #e2e8f0;
926 }
927
928 .yatra-filter-header h2 {
929 font-size: 15px;
930 font-weight: 700;
931 color: #0f172a;
932 letter-spacing: -0.01em;
933 margin: 0;
934 }
935
936 .yatra-clear-filters {
937 font-size: 13px;
938 color: var(--yatra-primary-darker, #1d4ed8);
939 background: #eff6ff;
940 border: 1px solid #bfdbfe;
941 border-radius: 8px;
942 cursor: pointer;
943 padding: 6px 12px;
944 font-weight: 600;
945 font-family: inherit;
946 line-height: 1.2;
947 transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
948 appearance: none;
949 -webkit-appearance: none;
950 }
951
952 .yatra-clear-filters:hover {
953 color: var(--yatra-primary-darker, #1e40af);
954 background: #dbeafe;
955 border-color: #93c5fd;
956 text-decoration: none;
957 }
958
959 .yatra-filter-section {
960 margin-bottom: 14px;
961 border-bottom: 1px solid #f3f4f6;
962 padding-bottom: 14px;
963 /* visible: range slider thumbs must not clip at section edges */
964 overflow: visible;
965 width: 100%;
966 box-sizing: border-box;
967 }
968
969 .yatra-filter-section:last-child {
970 border-bottom: none;
971 margin-bottom: 0;
972 padding-bottom: 0;
973 }
974
975 .yatra-filter-title {
976 display: flex;
977 justify-content: space-between;
978 align-items: center;
979 cursor: pointer;
980 font-size: 15px;
981 font-weight: 600;
982 color: #111827;
983 margin-bottom: 10px;
984 user-select: none;
985 padding: 2px 0;
986 transition: color 0.2s;
987 }
988
989 .yatra-filter-actions {
990 display: flex;
991 align-items: center;
992 gap: 8px;
993 }
994
995 .yatra-clear-section {
996 display: inline-flex;
997 align-items: center;
998 justify-content: center;
999 color: #94a3b8;
1000 cursor: pointer;
1001 padding: 4px;
1002 border-radius: 6px;
1003 transition: color 0.2s ease, background-color 0.2s ease;
1004 text-decoration: none;
1005 width: 28px;
1006 height: 28px;
1007 }
1008
1009 .yatra-clear-section:hover {
1010 color: #dc2626;
1011 background-color: #fef2f2;
1012 }
1013
1014 .yatra-clear-section:active {
1015 transform: scale(0.95);
1016 }
1017
1018 .yatra-clear-section svg {
1019 width: 14px;
1020 height: 14px;
1021 stroke-width: 2;
1022 }
1023
1024 .yatra-filter-title-content {
1025 display: flex;
1026 align-items: center;
1027 gap: 10px;
1028 }
1029
1030 .yatra-filter-icon {
1031 width: 18px;
1032 height: 18px;
1033 flex-shrink: 0;
1034 color: #6b7280;
1035 transition: color 0.2s;
1036 }
1037
1038 .yatra-filter-title:hover .yatra-filter-icon {
1039 color: var(--yatra-primary, #3b82f6);
1040 }
1041
1042 .yatra-filter-title:hover {
1043 color: var(--yatra-primary, #3b82f6);
1044 }
1045
1046 .yatra-filter-arrow {
1047 transition: transform 0.2s;
1048 color: #6b7280;
1049 flex-shrink: 0;
1050 }
1051
1052 .yatra-filter-section.open .yatra-filter-arrow {
1053 transform: rotate(180deg);
1054 color: var(--yatra-primary, #3b82f6);
1055 }
1056
1057 .yatra-filter-content {
1058 display: block;
1059 overflow: visible;
1060 width: 100%;
1061 box-sizing: border-box;
1062 padding: 16px 0;
1063 }
1064
1065 /* Attribute items within Trip Attributes filter (stacked layout; trip.css grid uses same class names horizontally) */
1066 .yatra-filter-content .yatra-attribute-item {
1067 display: flex;
1068 flex-direction: column;
1069 align-items: stretch;
1070 width: 100%;
1071 min-width: 0;
1072 box-sizing: border-box;
1073 margin-bottom: 16px;
1074 padding: 14px 16px;
1075 background: #fff;
1076 border: 1px solid #e5e7eb;
1077 border-radius: 8px;
1078 }
1079
1080 .yatra-filter-content .yatra-attribute-item:last-child {
1081 margin-bottom: 0;
1082 }
1083
1084 .yatra-filter-content .yatra-attribute-label {
1085 display: flex;
1086 align-items: center;
1087 gap: 10px;
1088 margin-bottom: 12px;
1089 flex-shrink: 0;
1090 max-width: 100%;
1091 }
1092
1093 .yatra-filter-content .yatra-attribute-icon {
1094 width: 18px;
1095 height: 18px;
1096 flex-shrink: 0;
1097 display: inline-flex;
1098 align-items: center;
1099 justify-content: center;
1100 }
1101
1102 .yatra-filter-content .yatra-attribute-icon img {
1103 width: 18px !important;
1104 height: 18px !important;
1105 object-fit: contain !important;
1106 display: block;
1107 }
1108
1109 .yatra-filter-content .yatra-attribute-icon svg {
1110 width: 18px !important;
1111 height: 18px !important;
1112 color: #6b7280;
1113 }
1114
1115 .yatra-filter-content .yatra-attribute-name {
1116 font-size: 14px;
1117 font-weight: 600;
1118 color: #374151;
1119 line-height: 1.5;
1120 overflow-wrap: break-word;
1121 word-break: break-word;
1122 }
1123
1124 .yatra-filter-content .yatra-attribute-content {
1125 width: 100%;
1126 max-width: 100%;
1127 min-width: 0;
1128 display: block;
1129 flex: 1 1 auto;
1130 }
1131
1132 .yatra-filter-content .yatra-attribute-content input.yatra-filter-input {
1133 width: 100% !important;
1134 max-width: 100% !important;
1135 min-width: 0 !important;
1136 box-sizing: border-box !important;
1137 }
1138
1139 .yatra-filter-content .yatra-input-group {
1140 width: 100%;
1141 display: flex;
1142 flex-direction: column;
1143 gap: 12px;
1144 }
1145
1146 .yatra-filter-content .yatra-input-group input {
1147 width: 100% !important;
1148 max-width: 100% !important;
1149 min-width: 0 !important;
1150 box-sizing: border-box !important;
1151 }
1152
1153 /* Dark mode */
1154 .dark .yatra-filter-content .yatra-attribute-item {
1155 background: #1f2937;
1156 border-color: #374151;
1157 }
1158
1159 .dark .yatra-filter-content .yatra-attribute-icon svg {
1160 color: #9ca3af;
1161 }
1162
1163 .dark .yatra-filter-content .yatra-attribute-name {
1164 color: #e5e7eb;
1165 }
1166
1167 .yatra-filter-section:not(.open) .yatra-filter-content {
1168 display: none;
1169 }
1170
1171 /* Filter Toggle Animation */
1172 .yatra-filter-content {
1173 transition: all 0.3s ease;
1174 }
1175
1176 .yatra-filter-section.open .yatra-filter-content {
1177 animation: yatra-listing-filter-expand 0.3s ease;
1178 }
1179
1180 @keyframes yatra-listing-filter-expand {
1181 from {
1182 opacity: 0;
1183 max-height: 0;
1184 }
1185 to {
1186 opacity: 1;
1187 max-height: 500px;
1188 }
1189 }
1190
1191 /* Loading State */
1192 .yatra-filters-loading {
1193 position: relative;
1194 pointer-events: none;
1195 opacity: 0.6;
1196 }
1197
1198 .yatra-filters-loading::after {
1199 content: '';
1200 position: absolute;
1201 top: 0;
1202 left: 0;
1203 right: 0;
1204 bottom: 0;
1205 background: rgba(255, 255, 255, 0.8);
1206 display: flex;
1207 align-items: center;
1208 justify-content: center;
1209 z-index: 10;
1210 }
1211
1212 /* Price Range - dual slider (see .yatra-clear-filters in filter header block above) */
1213 .yatra-price-range {
1214 display: flex;
1215 flex-direction: column;
1216 gap: 24px;
1217 overflow: visible;
1218 }
1219
1220 .yatra-price-inputs {
1221 display: flex;
1222 align-items: center;
1223 gap: 16px;
1224 padding: 0;
1225 }
1226
1227 .yatra-price-input-group {
1228 flex: 1;
1229 display: flex;
1230 flex-direction: column;
1231 gap: 8px;
1232 }
1233
1234 .yatra-price-input-label {
1235 font-size: 12px;
1236 font-weight: 500;
1237 color: #6b7280;
1238 margin-bottom: 4px;
1239 }
1240
1241 .yatra-price-inputs input {
1242 width: 100%;
1243 padding: 10px 12px;
1244 border: 1px solid #cbd5e1;
1245 border-radius: 8px;
1246 font-size: 14px;
1247 font-weight: 500;
1248 color: #1e293b;
1249 background: #fff;
1250 transition: border-color 0.2s ease, box-shadow 0.2s ease;
1251 text-align: left;
1252 }
1253
1254 .yatra-price-inputs input:hover {
1255 border-color: #94a3b8;
1256 }
1257
1258 .yatra-price-inputs input:focus {
1259 outline: none;
1260 border-color: var(--yatra-primary, #3b82f6);
1261 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
1262 }
1263
1264 .yatra-price-inputs input::placeholder {
1265 color: #9ca3af;
1266 font-weight: 400;
1267 }
1268
1269 .yatra-price-separator {
1270 color: #64748b;
1271 font-weight: 600;
1272 font-size: 14px;
1273 margin-top: 28px;
1274 flex-shrink: 0;
1275 align-self: flex-end;
1276 padding-bottom: 10px;
1277 }
1278
1279 /* Price dual-range: match trip-search layout; high specificity resists theme input/range rules */
1280 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider {
1281 position: relative !important;
1282 height: 36px !important;
1283 margin: 12px 0 10px !important;
1284 padding: 0 6px !important;
1285 box-sizing: border-box !important;
1286 background: transparent !important;
1287 border: none !important;
1288 border-radius: 0 !important;
1289 overflow: visible !important;
1290 }
1291
1292 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider-track {
1293 position: absolute !important;
1294 z-index: 0 !important;
1295 width: calc(100% - 16px) !important;
1296 height: 6px !important;
1297 left: 8px !important;
1298 top: 50% !important;
1299 transform: translateY(-50%) !important;
1300 background: #e5e7eb !important;
1301 border-radius: 3px !important;
1302 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08) !important;
1303 pointer-events: none !important;
1304 }
1305
1306 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider-range {
1307 position: absolute !important;
1308 z-index: 1 !important;
1309 height: 6px !important;
1310 top: 50% !important;
1311 transform: translateY(-50%) !important;
1312 background: linear-gradient(90deg, var(--yatra-primary, #3b82f6) 0%, var(--yatra-primary-dark, #2563eb) 100%) !important;
1313 border-radius: 3px !important;
1314 box-shadow: 0 2px 6px rgba(59, 130, 246, 0.28) !important;
1315 pointer-events: none !important;
1316 }
1317
1318 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"] {
1319 position: absolute !important;
1320 left: 0 !important;
1321 width: 100% !important;
1322 max-width: none !important;
1323 min-width: 0 !important;
1324 height: 6px !important;
1325 margin: 0 !important;
1326 padding: 0 !important;
1327 border: 0 !important;
1328 background: transparent !important;
1329 -webkit-appearance: none !important;
1330 appearance: none !important;
1331 pointer-events: none !important;
1332 top: 50% !important;
1333 transform: translateY(-50%) !important;
1334 cursor: pointer !important;
1335 box-sizing: border-box !important;
1336 }
1337
1338 /* z-index intentionally not !important so listing-filters.js can raise the active thumb */
1339 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider .yatra-range-min {
1340 z-index: 3;
1341 }
1342
1343 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider .yatra-range-max {
1344 z-index: 4;
1345 }
1346
1347 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-webkit-slider-runnable-track {
1348 height: 6px !important;
1349 background: transparent !important;
1350 border-radius: 3px !important;
1351 }
1352
1353 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-webkit-slider-thumb {
1354 -webkit-appearance: none !important;
1355 appearance: none !important;
1356 width: 20px !important;
1357 height: 20px !important;
1358 border-radius: 50% !important;
1359 background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
1360 border: 3px solid var(--yatra-primary, #3b82f6) !important;
1361 cursor: grab !important;
1362 pointer-events: all !important;
1363 box-shadow: 0 3px 8px rgba(59, 130, 246, 0.3), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
1364 margin-top: -7px !important;
1365 }
1366
1367 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-webkit-slider-thumb:hover {
1368 transform: scale(1.06) !important;
1369 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.35) !important;
1370 }
1371
1372 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-webkit-slider-thumb:active {
1373 cursor: grabbing !important;
1374 }
1375
1376 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-moz-range-track {
1377 height: 6px !important;
1378 background: transparent !important;
1379 border-radius: 3px !important;
1380 }
1381
1382 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-moz-range-thumb {
1383 width: 20px !important;
1384 height: 20px !important;
1385 border-radius: 50% !important;
1386 background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%) !important;
1387 border: 3px solid var(--yatra-primary, #3b82f6) !important;
1388 cursor: grab !important;
1389 pointer-events: all !important;
1390 box-shadow: 0 3px 8px rgba(59, 130, 246, 0.3), 0 1px 3px rgba(0, 0, 0, 0.1) !important;
1391 }
1392
1393 body .yatra-filter-sidebar .yatra-price-range .yatra-price-slider input[type="range"]::-moz-range-thumb:hover {
1394 transform: scale(1.06) !important;
1395 }
1396
1397 .yatra-price-display {
1398 font-size: 14px;
1399 font-weight: 600;
1400 color: #334155;
1401 text-align: center;
1402 padding: 10px 0 4px;
1403 margin-top: 4px;
1404 letter-spacing: 0.01em;
1405 }
1406
1407 /* Checkbox Group */
1408 .yatra-checkbox-group {
1409 display: flex;
1410 flex-direction: column;
1411 gap: 12px;
1412 width: 100%;
1413 box-sizing: border-box;
1414 }
1415
1416 /* Long sidebar checkbox lists: show first N, then "Show more" */
1417 .yatra-filter-collapsible.has-more:not(.is-expanded) .yatra-filter-option-more {
1418 display: none;
1419 }
1420
1421 .yatra-filter-show-more-toggle {
1422 margin-top: 2px;
1423 padding: 6px 12px;
1424 align-self: flex-start;
1425 background: transparent;
1426 border: none;
1427 color: var(--yatra-primary, #3b82f6);
1428 font-size: 13px;
1429 font-weight: 500;
1430 cursor: pointer;
1431 border-radius: 6px;
1432 font-family: inherit;
1433 line-height: 1.3;
1434 text-align: left;
1435 }
1436
1437 .yatra-filter-show-more-toggle:hover {
1438 background: rgba(59, 130, 246, 0.08);
1439 color: var(--yatra-primary-dark, #2563eb);
1440 }
1441
1442 .yatra-filter-collapsible.is-expanded .yatra-filter-show-more-label {
1443 display: none;
1444 }
1445
1446 .yatra-filter-collapsible:not(.is-expanded) .yatra-filter-show-less-label {
1447 display: none;
1448 }
1449
1450
1451 .yatra-checkbox-label:hover {
1452 background: rgba(59, 130, 246, 0.05);
1453 color: #1e293b;
1454 }
1455
1456 .yatra-checkbox-label input[type="checkbox"] {
1457 width: 16px;
1458 height: 16px;
1459 cursor: pointer;
1460 accent-color: var(--yatra-primary, #3b82f6);
1461 margin: 0;
1462 flex-shrink: 0;
1463 }
1464
1465 .yatra-checkbox-label span:not(.yatra-filter-count) {
1466 flex: 1;
1467 }
1468
1469 .yatra-filter-count {
1470 margin-left: auto;
1471 font-size: 12px;
1472 color: #9ca3af;
1473 font-weight: 500;
1474 }
1475
1476 .yatra-rating-display {
1477 display: flex;
1478 align-items: center;
1479 gap: 6px;
1480 flex: 1;
1481 }
1482
1483 .yatra-rating-display svg {
1484 flex-shrink: 0;
1485 }
1486
1487 /* Main Content Area */
1488 .yatra-listing-content {
1489 min-width: 0;
1490 }
1491
1492 .yatra-trip-card {
1493 background: white;
1494 border-radius: 12px;
1495 overflow: hidden;
1496 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1497 transition: transform 0.2s, box-shadow 0.2s;
1498 display: flex;
1499 flex-direction: column;
1500 height: 100%;
1501 }
1502
1503 .yatra-trip-card:hover {
1504 transform: translateY(-2px);
1505 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1506 }
1507
1508 .yatra-trip-grid.list-view .yatra-trip-card {
1509 flex-direction: row;
1510 max-height: none;
1511 }
1512
1513 .yatra-destination-card {
1514 background: #fff;
1515 border-radius: 12px;
1516 overflow: hidden;
1517 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
1518 transition: transform 0.2s, box-shadow 0.2s;
1519 cursor: pointer;
1520 display: flex;
1521 flex-direction: column;
1522 }
1523
1524 .yatra-destination-grid.list-view .yatra-destination-card {
1525 flex-direction: row;
1526 align-items: stretch;
1527 max-height: none;
1528 min-height: 240px;
1529 width: 100%;
1530 }
1531
1532 .yatra-activity-grid.list-view .yatra-activity-card {
1533 flex-direction: row;
1534 align-items: stretch;
1535 max-height: none;
1536 min-height: 240px;
1537 width: 100%;
1538 }
1539
1540 .yatra-destination-grid.list-view .yatra-destination-image,
1541 .yatra-activity-grid.list-view .yatra-activity-image {
1542 width: var(--yatra-listing-list-media-width);
1543 min-width: var(--yatra-listing-list-media-width);
1544 height: auto;
1545 min-height: 240px;
1546 flex-shrink: 0;
1547 align-self: stretch;
1548 }
1549
1550 .yatra-destination-grid.list-view .yatra-destination-content {
1551 padding: 20px;
1552 flex: 1;
1553 display: flex;
1554 flex-direction: column;
1555 justify-content: space-between;
1556 }
1557
1558 .yatra-trip-card:hover {
1559 transform: translateY(-2px);
1560 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1561 }
1562
1563 .yatra-trip-image {
1564 position: relative;
1565 width: 100%;
1566 height: 220px;
1567 overflow: hidden;
1568 background: #e5e7eb;
1569 flex-shrink: 0;
1570 }
1571
1572 .yatra-trip-grid.list-view .yatra-trip-image,
1573 .yatra-trip-grid.yatra-list-view .yatra-trip-image {
1574 width: var(--yatra-listing-list-media-width);
1575 min-width: var(--yatra-listing-list-media-width);
1576 height: auto;
1577 min-height: 240px;
1578 flex-shrink: 0;
1579 align-self: stretch;
1580 }
1581
1582 .yatra-trip-image img {
1583 width: 100%;
1584 height: 100%;
1585 object-fit: cover;
1586 }
1587
1588
1589 .yatra-discount-badge {
1590 position: absolute;
1591 top: 12px;
1592 left: 12px;
1593 background: #ef4444;
1594 color: #fff;
1595 padding: 4px 10px;
1596 border-radius: 4px;
1597 font-size: 12px;
1598 font-weight: 600;
1599 z-index: 2;
1600 }
1601
1602 .yatra-favorite-btn {
1603 position: absolute !important;
1604 top: 12px !important;
1605 right: 12px !important;
1606 width: 40px !important;
1607 height: 40px !important;
1608 background: #ffffff !important;
1609 border: 1px solid rgba(0, 0, 0, 0.1) !important;
1610 border-radius: 50% !important;
1611 cursor: pointer !important;
1612 display: flex !important;
1613 align-items: center !important;
1614 justify-content: center !important;
1615 color: #6b7280 !important;
1616 transition: all 0.2s !important;
1617 z-index: 100 !important;
1618 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
1619 padding: 0 !important;
1620 margin: 0 !important;
1621 opacity: 1 !important;
1622 visibility: visible !important;
1623 }
1624
1625 .yatra-favorite-btn:hover {
1626 background: #ffffff !important;
1627 color: #ef4444 !important;
1628 transform: scale(1.1) !important;
1629 border-color: rgba(0, 0, 0, 0.1) !important;
1630 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
1631 }
1632
1633 .yatra-favorite-btn svg {
1634 width: 20px !important;
1635 height: 20px !important;
1636 stroke-width: 2 !important;
1637 display: block !important;
1638 }
1639
1640 /* Saved state: keep the button neutral (no red ring on the button itself);
1641 * only the heart icon glyph turns red and gets filled.
1642 *
1643 * stroke is set to NONE (and stroke-width to 0) when filled — otherwise the
1644 * 2px outward stroke makes the filled heart look ~2px chunkier than the
1645 * outlined heart on neighboring cards, which reads as "different icon". */
1646 .yatra-favorite-btn.saved,
1647 .yatra-favorite-btn.is-saved {
1648 background: #ffffff !important;
1649 color: #ef4444 !important;
1650 border-color: rgba(0, 0, 0, 0.1) !important;
1651 }
1652
1653 .yatra-favorite-btn.saved svg,
1654 .yatra-favorite-btn.is-saved svg {
1655 fill: #ef4444 !important;
1656 stroke: none !important;
1657 stroke-width: 0 !important;
1658 }
1659
1660 .yatra-favorite-btn.saved svg path,
1661 .yatra-favorite-btn.is-saved svg path {
1662 fill: #ef4444 !important;
1663 stroke: none !important;
1664 stroke-width: 0 !important;
1665 }
1666
1667 .yatra-favorite-btn.saved:hover,
1668 .yatra-favorite-btn.is-saved:hover {
1669 background: #ffffff !important;
1670 color: #dc2626 !important;
1671 border-color: rgba(0, 0, 0, 0.1) !important;
1672 }
1673
1674 .yatra-favorite-btn.saved:hover svg,
1675 .yatra-favorite-btn.is-saved:hover svg,
1676 .yatra-favorite-btn.saved:hover svg path,
1677 .yatra-favorite-btn.is-saved:hover svg path {
1678 fill: #dc2626 !important;
1679 stroke: none !important;
1680 stroke-width: 0 !important;
1681 }
1682
1683 .yatra-trip-content {
1684 padding: 20px;
1685 display: flex;
1686 flex-direction: column;
1687 flex: 1;
1688 }
1689
1690 .yatra-trip-grid.list-view .yatra-trip-content,
1691 .yatra-trip-grid.yatra-list-view .yatra-trip-content {
1692 padding: 24px;
1693 }
1694
1695 .yatra-trip-meta {
1696 display: flex;
1697 align-items: center;
1698 gap: 8px;
1699 margin-bottom: 12px;
1700 font-size: 13px;
1701 color: #6b7280;
1702 flex-wrap: wrap;
1703 }
1704
1705 .yatra-trip-separator {
1706 color: #d1d5db;
1707 }
1708
1709 .yatra-trip-title {
1710 font-size: 18px;
1711 font-weight: 600;
1712 color: #1f2937;
1713 margin-bottom: 12px;
1714 line-height: 1.4;
1715 }
1716
1717 .yatra-trip-highlights {
1718 display: flex;
1719 flex-wrap: wrap;
1720 gap: 6px;
1721 margin-bottom: 12px;
1722 }
1723
1724 .yatra-highlight-badge {
1725 padding: 4px 10px;
1726 background: #eff6ff;
1727 color: var(--yatra-primary-darker, #1e40af);
1728 border-radius: 4px;
1729 font-size: 12px;
1730 font-weight: 500;
1731 text-decoration: none;
1732 transition: all 0.2s ease;
1733 }
1734
1735 a.yatra-highlight-link {
1736 cursor: pointer;
1737 }
1738
1739 a.yatra-highlight-link:hover {
1740 background: #dbeafe;
1741 color: var(--yatra-primary-darker, #1d4ed8);
1742 text-decoration: none;
1743 }
1744
1745
1746 .yatra-rating-stars {
1747 display: flex;
1748 align-items: center;
1749 gap: 4px;
1750 }
1751
1752 .yatra-rating-value {
1753 font-size: 14px;
1754 font-weight: 600;
1755 color: #1f2937;
1756 }
1757
1758 .yatra-reviews-count {
1759 font-size: 13px;
1760 }
1761
1762 .yatra-trip-footer {
1763 display: flex;
1764 align-items: center;
1765 justify-content: space-between;
1766 margin-top: auto;
1767 padding-top: 16px;
1768 border-top: 1px solid #f3f4f6;
1769 }
1770
1771 .yatra-trip-price {
1772 display: flex;
1773 flex-direction: row;
1774 }
1775
1776 .yatra-original-price {
1777 text-decoration: line-through;
1778 text-decoration-thickness: 2px;
1779 text-decoration-color: #ef4444;
1780 color: #6b7280;
1781 font-size: 0.95rem;
1782 font-weight: 500;
1783 background: rgba(239, 68, 68, 0.08);
1784 padding: 1px 4px;
1785 border-radius: 3px;
1786 border: 1px solid rgba(239, 68, 68, 0.15);
1787 line-height: 1;
1788 }
1789
1790 .yatra-current-price {
1791 font-size: 22px;
1792 font-weight: 700;
1793 color: var(--yatra-primary, #3b82f6);
1794 line-height: 1;
1795 }
1796
1797 .yatra-price-note {
1798 font-size: 11px;
1799 color: #9ca3af;
1800 margin-top: 4px;
1801 }
1802
1803 /* Complete Trip Card Styling */
1804 .yatra-trip-card {
1805 background: #ffffff;
1806 border-radius: 12px;
1807 overflow: hidden;
1808 transition: all 0.3s ease;
1809 height: 100%;
1810 display: flex;
1811 flex-direction: column;
1812 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
1813 }
1814
1815 .yatra-trip-card:hover {
1816 box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
1817 transform: translateY(-2px);
1818 }
1819
1820 /* Image Section */
1821 .yatra-trip-card-image {
1822 position: relative;
1823 width: 100%;
1824 height: 280px;
1825 overflow: hidden;
1826 background: #f8fafc;
1827 }
1828
1829 .yatra-trip-card-image img {
1830 width: 100%;
1831 height: 100%;
1832 object-fit: cover;
1833 }
1834
1835 /* Discount Badge */
1836 .yatra-discount-badge {
1837 position: absolute;
1838 top: 12px;
1839 left: 12px;
1840 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
1841 color: white;
1842 padding: 4px 8px;
1843 border-radius: 12px;
1844 font-size: 0.75rem;
1845 font-weight: 600;
1846 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1847 z-index: 2;
1848 }
1849
1850 /* Destination Section */
1851 .yatra-trip-destinations {
1852 background: #f8fafc;
1853 padding: 10px 16px;
1854 display: flex;
1855 align-items: center;
1856 gap: 6px;
1857 }
1858
1859 /* List view override for destination row spacing */
1860 .yatra-trip-grid.list-view .yatra-trip-destinations {
1861 margin: 8px -16px 8px -16px;
1862 padding: 10px 20px;
1863 background: #f8fafc;
1864 width: calc(100% + 32px);
1865 border-radius: 0;
1866 }
1867
1868 .yatra-trip-destinations .location-icon {
1869 color: #6366f1;
1870 flex-shrink: 0;
1871 }
1872
1873 .yatra-trip-destinations .destination-link {
1874 color: #374151;
1875 text-decoration: none;
1876 font-size: 0.875rem;
1877 font-weight: 500;
1878 transition: color 0.2s ease;
1879 }
1880
1881 .yatra-trip-destinations .destination-link:hover {
1882 color: #6366f1;
1883 text-decoration: none;
1884 }
1885
1886 .yatra-trip-destinations .yatra-trip-card-location-text {
1887 color: #374151;
1888 font-size: 0.875rem;
1889 font-weight: 500;
1890 }
1891
1892 .yatra-trip-traveler-types {
1893 display: flex;
1894 align-items: flex-start;
1895 gap: 8px;
1896 margin: 0 0 12px 0;
1897 padding-top: 10px;
1898 border-top: 1px solid #f1f5f9;
1899 }
1900
1901 .yatra-trip-traveler-types-icon {
1902 color: #6366f1;
1903 flex-shrink: 0;
1904 margin-top: 2px;
1905 }
1906
1907 .yatra-trip-traveler-types-inner {
1908 display: flex;
1909 flex-direction: column;
1910 gap: 6px;
1911 min-width: 0;
1912 }
1913
1914 .yatra-trip-traveler-types-label {
1915 font-size: 0.65rem;
1916 font-weight: 600;
1917 text-transform: uppercase;
1918 letter-spacing: 0.05em;
1919 color: #64748b;
1920 }
1921
1922 .yatra-trip-traveler-types-pills {
1923 display: flex;
1924 flex-wrap: wrap;
1925 gap: 6px;
1926 }
1927
1928 .yatra-traveler-tier-pill {
1929 display: inline-block;
1930 padding: 3px 10px;
1931 border-radius: 999px;
1932 font-size: 0.75rem;
1933 font-weight: 500;
1934 background: #eef2ff;
1935 color: #4338ca;
1936 border: 1px solid #c7d2fe;
1937 }
1938
1939 /* Content Section */
1940 .yatra-trip-content {
1941 padding: 16px;
1942 }
1943
1944 .yatra-trip-title {
1945 font-size: 1.25rem;
1946 font-weight: 600;
1947 color: #1f2937;
1948 margin-bottom: 12px;
1949 line-height: 1.4;
1950 display: -webkit-box;
1951 -webkit-line-clamp: 2;
1952 line-clamp: 2;
1953 -webkit-box-orient: vertical;
1954 overflow: hidden;
1955 }
1956
1957 .yatra-trip-title-link {
1958 color: inherit;
1959 text-decoration: none;
1960 transition: color 0.2s ease;
1961 }
1962
1963 .yatra-trip-title-link:hover {
1964 color: var(--yatra-primary-dark, #2563eb);
1965 text-decoration: none;
1966 }
1967
1968 .yatra-trip-card-meta {
1969 display: flex;
1970 flex-wrap: wrap;
1971 align-items: center;
1972 gap: 8px;
1973 margin: -4px 0 12px 0;
1974 }
1975
1976 .yatra-trip-type-chip {
1977 display: inline-block;
1978 padding: 2px 10px;
1979 border-radius: 6px;
1980 font-size: 0.7rem;
1981 font-weight: 600;
1982 text-transform: uppercase;
1983 letter-spacing: 0.04em;
1984 background: #f1f5f9;
1985 color: #475569;
1986 }
1987
1988 .yatra-trip-primary-category-chip {
1989 display: inline-block;
1990 padding: 2px 10px;
1991 border-radius: 6px;
1992 font-size: 0.75rem;
1993 font-weight: 500;
1994 background: #eff6ff;
1995 color: var(--yatra-primary-darker, #1d4ed8);
1996 text-decoration: none;
1997 border: 1px solid #bfdbfe;
1998 transition: background-color 0.2s ease, color 0.2s ease;
1999 }
2000
2001 .yatra-trip-primary-category-chip:hover {
2002 background: #dbeafe;
2003 color: var(--yatra-primary-darker, #1e40af);
2004 }
2005
2006 .yatra-trip-primary-category-chip--text {
2007 border-style: dashed;
2008 cursor: default;
2009 }
2010
2011 /* Trip Info Row */
2012 .yatra-trip-info-row {
2013 display: flex;
2014 align-items: center;
2015 gap: 8px;
2016 margin-bottom: 16px;
2017 flex-wrap: wrap;
2018 }
2019
2020 .yatra-info-badge {
2021 display: inline-flex;
2022 align-items: center;
2023 gap: 4px;
2024 padding: 4px 8px;
2025 background: #f3f4f6;
2026 color: #374151;
2027 border-radius: 12px;
2028 font-size: 0.75rem;
2029 font-weight: 500;
2030 }
2031
2032 .yatra-info-badge.duration {
2033 background: #dbeafe;
2034 color: var(--yatra-primary-darker, #1d4ed8);
2035 }
2036
2037 .yatra-info-badge svg {
2038 width: 12px;
2039 height: 12px;
2040 }
2041
2042 /* Activities Section */
2043 .yatra-trip-activities {
2044 display: flex;
2045 flex-wrap: wrap;
2046 gap: 6px;
2047 margin-bottom: 16px;
2048 align-items: center;
2049 }
2050
2051 /* Categories Compact Section */
2052 .yatra-trip-categories-compact {
2053 display: flex;
2054 align-items: center;
2055 gap: 6px;
2056 margin-bottom: 16px;
2057 }
2058
2059 .yatra-category-icon {
2060 width: 16px;
2061 height: 16px;
2062 display: flex;
2063 align-items: center;
2064 justify-content: center;
2065 color: #6366f1;
2066 flex-shrink: 0;
2067 }
2068
2069 .yatra-category-icon svg {
2070 width: 14px;
2071 height: 14px;
2072 }
2073
2074 .yatra-categories-text {
2075 font-size: 0.8rem;
2076 color: #6b7280;
2077 line-height: 1.2;
2078 }
2079
2080 .yatra-category-link {
2081 color: #6b7280;
2082 text-decoration: none;
2083 transition: color 0.2s ease;
2084 }
2085
2086 .yatra-category-link:hover {
2087 color: #6366f1;
2088 text-decoration: none;
2089 }
2090
2091 .yatra-tag {
2092 display: inline-block;
2093 padding: 5px 12px;
2094 border-radius: 16px;
2095 font-size: 0.8rem;
2096 font-weight: 500;
2097 text-decoration: none;
2098 /* Avoid transition: all — only animate stable properties (no transform on hover; moving the link breaks hit-testing and causes flicker). */
2099 transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
2100 border: 1px solid transparent;
2101 box-shadow: 0 0 0 rgba(29, 78, 216, 0);
2102 }
2103
2104 .yatra-tag.activity-tag {
2105 background: #eff6ff;
2106 color: var(--yatra-primary-darker, #1d4ed8);
2107 border-color: #bfdbfe;
2108 }
2109
2110 .yatra-tag.activity-tag:hover {
2111 background: #dbeafe;
2112 color: var(--yatra-primary-darker, #1e40af);
2113 text-decoration: none;
2114 box-shadow: 0 2px 8px rgba(29, 78, 216, 0.14);
2115 }
2116
2117 /* Difficulty Overlay */
2118 .yatra-difficulty-overlay {
2119 position: absolute;
2120 bottom: 12px;
2121 right: 12px;
2122 background: rgba(34, 197, 94, 0.9);
2123 color: white;
2124 padding: 6px 10px;
2125 border-radius: 16px;
2126 font-size: 0.75rem;
2127 font-weight: 600;
2128 display: flex;
2129 align-items: center;
2130 gap: 4px;
2131 backdrop-filter: blur(4px);
2132 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
2133 }
2134
2135 .yatra-difficulty-overlay svg {
2136 width: 14px;
2137 height: 14px;
2138 opacity: 0.9;
2139 }
2140
2141 .yatra-difficulty-overlay .difficulty-icon {
2142 width: 14px;
2143 height: 14px;
2144 }
2145
2146 .yatra-difficulty-overlay i.difficulty-icon.fa-solid,
2147 .yatra-difficulty-overlay i.difficulty-icon.fa-regular {
2148 width: auto;
2149 height: auto;
2150 font-size: 14px;
2151 line-height: 1;
2152 display: inline-flex;
2153 align-items: center;
2154 justify-content: center;
2155 }
2156
2157 /* Rating Section - consolidated with main rule above */
2158
2159 .yatra-rating-stars {
2160 display: flex;
2161 align-items: center;
2162 gap: 4px;
2163 }
2164
2165 .yatra-rating-value {
2166 font-weight: 600;
2167 color: #1f2937;
2168 font-size: 0.875rem;
2169 }
2170
2171 .yatra-reviews-count {
2172 color: #6b7280;
2173 font-size: 0.8rem;
2174 }
2175
2176 /* Footer */
2177 .yatra-trip-footer {
2178 display: flex;
2179 align-items: center;
2180 justify-content: space-between;
2181 padding-top: 12px;
2182 }
2183
2184 .yatra-trip-price {
2185 font-size: 1.125rem;
2186 font-weight: 700;
2187 color: var(--yatra-primary-dark, #2563eb);
2188 display: flex;
2189 align-items: baseline;
2190 gap: 8px;
2191 flex-wrap: wrap;
2192 }
2193
2194 /* Wishlist/Favorite Button Styles */
2195 .yatra-favorite-btn {
2196 position: absolute;
2197 top: 12px;
2198 right: 12px;
2199 background: rgba(255, 255, 255, 0.9);
2200 border: none;
2201 border-radius: 50%;
2202 width: 36px;
2203 height: 36px;
2204 display: flex;
2205 align-items: center;
2206 justify-content: center;
2207 cursor: pointer;
2208 transition: all 0.2s ease;
2209 color: #6b7280;
2210 z-index: 2;
2211 }
2212
2213 .yatra-favorite-btn:hover {
2214 background: rgba(255, 255, 255, 1);
2215 transform: scale(1.1);
2216 color: #ef4444;
2217 }
2218
2219 .yatra-favorite-btn.saved {
2220 color: #ef4444;
2221 background: rgba(255, 255, 255, 1);
2222 }
2223
2224 .yatra-favorite-btn.loading {
2225 opacity: 0.6;
2226 cursor: not-allowed;
2227 }
2228
2229 .yatra-favorite-btn:disabled {
2230 opacity: 0.6;
2231 cursor: not-allowed;
2232 }
2233
2234 /* Pagination */
2235 .yatra-listing-pagination {
2236 display: flex;
2237 justify-content: center;
2238 align-items: center;
2239 gap: 8px;
2240 margin-top: 40px;
2241 }
2242
2243 /* Trip listing: pagination lives in the main column (not below the full sidebar+content row). */
2244 .yatra-trip-listing .yatra-listing-content > .yatra-listing-pagination--trip-content {
2245 width: 100%;
2246 margin-top: 24px;
2247 flex-wrap: wrap;
2248 }
2249
2250 .yatra-pagination-btn {
2251 padding: 8px 16px;
2252 border: 1px solid #e5e7eb;
2253 background: #fff;
2254 border-radius: 6px;
2255 cursor: pointer;
2256 font-size: 14px;
2257 transition: all 0.2s;
2258 color: #374151;
2259 }
2260
2261 .yatra-pagination-btn:hover:not(:disabled) {
2262 border-color: var(--yatra-primary, #3b82f6);
2263 color: var(--yatra-primary, #3b82f6);
2264 }
2265
2266 .yatra-pagination-btn.active {
2267 border-color: var(--yatra-primary, #3b82f6);
2268 background: var(--yatra-primary, #3b82f6);
2269 color: #fff;
2270 font-weight: 600;
2271 box-shadow: 0 2px 8px color-mix(in srgb, var(--yatra-primary, #3b82f6) 32%, transparent);
2272 }
2273
2274 .yatra-pagination-btn.active:hover:not(:disabled) {
2275 background: var(--yatra-primary-dark, #2563eb);
2276 border-color: var(--yatra-primary-dark, #2563eb);
2277 }
2278
2279 .yatra-pagination-btn:disabled {
2280 opacity: 0.5;
2281 cursor: not-allowed;
2282 }
2283
2284 .yatra-pagination-btn.disabled {
2285 opacity: 0.5;
2286 cursor: default;
2287 pointer-events: none;
2288 }
2289
2290 a.yatra-pagination-btn,
2291 span.yatra-pagination-btn.disabled {
2292 display: inline-flex;
2293 align-items: center;
2294 justify-content: center;
2295 gap: 6px;
2296 }
2297
2298 .yatra-pagination-btn .yatra-btn-icon {
2299 width: 0.875rem;
2300 height: 0.875rem;
2301 flex-shrink: 0;
2302 }
2303
2304 /* -------------------------------------------------------------------------
2305 Unified primary CTAs (PHP: yatra-btn + yatra-btn-primary + yatra-archive-card-cta + yatra_svg_icon)
2306 trip.css defines base .yatra-btn; icons use .yatra-btn-icon
2307 ------------------------------------------------------------------------- */
2308 .yatra-btn .yatra-btn-icon {
2309 width: 1.125rem;
2310 height: 1.125rem;
2311 flex-shrink: 0;
2312 }
2313
2314 .yatra-archive-card-cta.yatra-btn {
2315 display: inline-flex;
2316 align-items: center;
2317 justify-content: center;
2318 gap: 0.5rem;
2319 text-decoration: none !important;
2320 }
2321
2322 .yatra-destination-content .yatra-archive-card-cta.yatra-btn,
2323 .yatra-activity-content .yatra-archive-card-cta.yatra-btn,
2324 .yatra-category-content .yatra-archive-card-cta.yatra-btn {
2325 width: 100%;
2326 margin-top: 4px;
2327 box-sizing: border-box;
2328 }
2329
2330 .yatra-category-content .yatra-archive-card-cta.yatra-btn:disabled {
2331 opacity: 0.55;
2332 cursor: not-allowed;
2333 }
2334
2335 .yatra-trip-footer .yatra-archive-card-cta.yatra-btn {
2336 padding: 10px 18px;
2337 font-size: 14px;
2338 white-space: nowrap;
2339 flex-shrink: 0;
2340 }
2341
2342 /* Destination / taxonomy archives: align toggle with trip listing (gray track + white active segment) */
2343 .yatra-destination-listing .yatra-results-controls .yatra-view-toggle,
2344 .yatra-taxonomy-page .yatra-results-controls .yatra-view-toggle {
2345 margin-left: 8px;
2346 }
2347
2348 .yatra-destination-listing .yatra-results-controls .yatra-view-btn.active,
2349 .yatra-taxonomy-page .yatra-results-controls .yatra-view-btn.active {
2350 background: #ffffff !important;
2351 color: var(--yatra-primary-darker, #1d4ed8) !important;
2352 box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12), 0 0 0 1px #93c5fd !important;
2353 }
2354
2355 .yatra-destination-listing .yatra-results-controls .yatra-view-btn:not(.active),
2356 .yatra-taxonomy-page .yatra-results-controls .yatra-view-btn:not(.active) {
2357 color: #64748b !important;
2358 background: transparent !important;
2359 opacity: 1;
2360 }
2361
2362 /* Responsive Styles */
2363 @media (max-width: 1024px) {
2364 .yatra-listing-layout {
2365 display: grid;
2366 grid-template-columns: minmax(220px, 280px) 1fr;
2367 gap: 20px;
2368 }
2369 }
2370
2371 @media (max-width: 768px) {
2372 .yatra-listing-container {
2373 padding: 16px;
2374 }
2375
2376 .yatra-search-form {
2377 flex-wrap: wrap;
2378 }
2379
2380 .yatra-search-field {
2381 min-width: calc(50% - 6px);
2382 }
2383
2384 .yatra-search-btn {
2385 width: 100%;
2386 justify-content: center;
2387 }
2388
2389 .yatra-results-header {
2390 flex-direction: column;
2391 align-items: flex-start;
2392 gap: 16px;
2393 }
2394
2395 .yatra-results-controls {
2396 width: 100%;
2397 }
2398
2399 .yatra-listing-layout {
2400 display: grid;
2401 grid-template-columns: 1fr;
2402 }
2403
2404 .yatra-filter-sidebar {
2405 position: static;
2406 margin-bottom: 24px;
2407 max-width: none;
2408 }
2409
2410 .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
2411 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
2412 .yatra-listing-page .yatra-destination-grid:not(.list-view),
2413 .yatra-listing-page .yatra-activity-grid:not(.list-view),
2414 .yatra-listing-page .yatra-category-grid:not(.list-view) {
2415 grid-template-columns: 1fr;
2416 }
2417
2418 .yatra-trip-grid.list-view .yatra-trip-card,
2419 .yatra-listing-content-full .yatra-trip-grid.list-view .yatra-trip-card {
2420 flex-direction: column;
2421 max-height: none;
2422 }
2423
2424 .yatra-trip-grid.list-view .yatra-trip-image,
2425 .yatra-listing-content-full .yatra-trip-grid.list-view .yatra-trip-image {
2426 width: 100%;
2427 height: 220px;
2428 }
2429
2430 .yatra-destination-grid.list-view .yatra-destination-card,
2431 .yatra-activity-grid.list-view .yatra-activity-card,
2432 .yatra-category-grid.list-view .yatra-category-card {
2433 flex-direction: column;
2434 max-height: none;
2435 min-height: auto;
2436 }
2437
2438 .yatra-destination-grid.list-view .yatra-destination-image,
2439 .yatra-activity-grid.list-view .yatra-activity-image,
2440 .yatra-category-grid.list-view .yatra-category-image {
2441 width: 100%;
2442 min-width: 100%;
2443 height: 220px;
2444 min-height: 220px;
2445 }
2446
2447 .yatra-destination-grid.list-view .yatra-destination-stats,
2448 .yatra-activity-grid.list-view .yatra-activity-stats {
2449 flex-direction: column;
2450 gap: 12px;
2451 }
2452
2453 .yatra-destination-grid.list-view .yatra-destination-stat,
2454 .yatra-activity-grid.list-view .yatra-activity-stat {
2455 border-right: none;
2456 border-bottom: 1px solid #e5e7eb;
2457 padding-bottom: 12px;
2458 justify-content: flex-start;
2459 }
2460
2461 .yatra-destination-grid.list-view .yatra-destination-stat:last-child,
2462 .yatra-activity-grid.list-view .yatra-activity-stat:last-child {
2463 border-bottom: none;
2464 padding-bottom: 0;
2465 }
2466
2467 .yatra-destination-grid.list-view .yatra-archive-card-cta.yatra-btn,
2468 .yatra-activity-grid.list-view .yatra-archive-card-cta.yatra-btn {
2469 width: 100%;
2470 }
2471
2472 .yatra-destination-stats,
2473 .yatra-activity-stats {
2474 flex-direction: row;
2475 justify-content: space-around;
2476 }
2477
2478 .yatra-trip-footer {
2479 flex-direction: column;
2480 align-items: flex-start;
2481 gap: 12px;
2482 }
2483
2484 }
2485
2486 /* Category Header */
2487 .yatra-category-header {
2488 display: flex;
2489 justify-content: space-between;
2490 align-items: flex-start;
2491 margin-bottom: 32px;
2492 padding-bottom: 20px;
2493 border-bottom: 1px solid #e5e7eb;
2494 }
2495
2496 .yatra-category-header-content h1 {
2497 font-size: 32px;
2498 font-weight: 700;
2499 color: #1f2937;
2500 margin-bottom: 8px;
2501 }
2502
2503 .yatra-category-header-content p {
2504 font-size: 16px;
2505 color: #6b7280;
2506 }
2507
2508 /* Destination Header */
2509 .yatra-destination-header {
2510 display: flex;
2511 justify-content: space-between;
2512 align-items: flex-start;
2513 margin-bottom: 32px;
2514 padding-bottom: 20px;
2515 border-bottom: 1px solid #e5e7eb;
2516 }
2517
2518 .yatra-destination-header-content h1 {
2519 font-size: 32px;
2520 font-weight: 700;
2521 color: #1f2937;
2522 margin-bottom: 8px;
2523 }
2524
2525 .yatra-destination-header-content p {
2526 font-size: 16px;
2527 color: #6b7280;
2528 }
2529
2530 /* Activity Header */
2531 .yatra-activity-header {
2532 display: flex;
2533 justify-content: space-between;
2534 align-items: flex-start;
2535 margin-bottom: 32px;
2536 padding-bottom: 20px;
2537 border-bottom: 1px solid #e5e7eb;
2538 }
2539
2540 .yatra-activity-header-content h1 {
2541 font-size: 32px;
2542 font-weight: 700;
2543 color: #1f2937;
2544 margin-bottom: 8px;
2545 }
2546
2547 .yatra-activity-header-content p {
2548 font-size: 16px;
2549 color: #6b7280;
2550 }
2551
2552 /* Destination, Activity, Category Listing Styles (grid columns: unified block near top of file) */
2553
2554 .yatra-destination-grid.list-view,
2555 .yatra-activity-grid.list-view,
2556 .yatra-category-grid.list-view {
2557 display: grid;
2558 grid-template-columns: 1fr;
2559 gap: var(--yatra-listing-list-row-gap);
2560 align-content: start;
2561 }
2562
2563 .yatra-destination-card,
2564 .yatra-activity-card,
2565 .yatra-category-card {
2566 background: #fff;
2567 border-radius: 12px;
2568 overflow: hidden;
2569 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
2570 transition: all 0.3s ease;
2571 cursor: pointer;
2572 }
2573
2574 .yatra-destination-card:hover,
2575 .yatra-activity-card:hover,
2576 .yatra-category-card:hover {
2577 transform: translateY(-4px);
2578 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
2579 }
2580
2581
2582 .yatra-destination-image img,
2583 .yatra-activity-image img {
2584 transition: transform 0.4s ease;
2585 }
2586
2587 .yatra-destination-image,
2588 .yatra-activity-image,
2589 .yatra-category-image {
2590 position: relative;
2591 width: 100%;
2592 height: 300px;
2593 overflow: hidden;
2594 }
2595
2596 .yatra-destination-grid.list-view .yatra-destination-overlay h3 {
2597 font-size: 24px;
2598 text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
2599 }
2600
2601 .yatra-destination-grid.list-view .yatra-destination-content p {
2602 font-size: 15px;
2603 margin-bottom: 20px;
2604 line-height: 1.7;
2605 color: #4b5563;
2606 }
2607
2608 .yatra-destination-grid.list-view .yatra-destination-stats,
2609 .yatra-activity-grid.list-view .yatra-activity-stats {
2610 flex-direction: row;
2611 gap: 24px;
2612 padding: 16px 20px;
2613 background: #f9fafb;
2614 border-radius: 10px;
2615 margin-bottom: 20px;
2616 }
2617
2618 .yatra-destination-grid.list-view .yatra-destination-stat,
2619 .yatra-activity-grid.list-view .yatra-activity-stat {
2620 flex: 1;
2621 justify-content: center;
2622 padding: 0;
2623 border-right: 1px solid #e5e7eb;
2624 }
2625
2626 .yatra-destination-grid.list-view .yatra-destination-stat:last-child,
2627 .yatra-activity-grid.list-view .yatra-activity-stat:last-child {
2628 border-right: none;
2629 }
2630
2631 .yatra-destination-grid.list-view .yatra-archive-card-cta.yatra-btn,
2632 .yatra-activity-grid.list-view .yatra-archive-card-cta.yatra-btn {
2633 align-self: flex-start;
2634 padding: 12px 28px;
2635 }
2636
2637 /* List view - Activity specific */
2638 .yatra-activity-grid.list-view .yatra-activity-content h3 {
2639 font-size: 22px;
2640 margin-bottom: 10px;
2641 color: #111827;
2642 }
2643
2644 .yatra-activity-grid.list-view .yatra-activity-content p {
2645 font-size: 15px;
2646 margin-bottom: 20px;
2647 line-height: 1.7;
2648 color: #4b5563;
2649 flex: none;
2650 }
2651
2652 .yatra-category-grid.list-view .yatra-category-card {
2653 display: flex;
2654 flex-direction: row;
2655 align-items: stretch;
2656 max-height: none;
2657 min-height: 240px;
2658 }
2659
2660 .yatra-category-grid.list-view .yatra-category-image {
2661 width: var(--yatra-listing-list-media-width);
2662 min-width: var(--yatra-listing-list-media-width);
2663 height: auto;
2664 min-height: 240px;
2665 flex-shrink: 0;
2666 align-self: stretch;
2667 }
2668
2669 .yatra-category-grid.list-view .yatra-category-content {
2670 flex: 1;
2671 display: flex;
2672 flex-direction: column;
2673 justify-content: space-between;
2674 }
2675
2676 .yatra-category-grid.list-view .yatra-category-stats {
2677 flex-direction: row;
2678 justify-content: space-around;
2679 margin-bottom: 16px;
2680 }
2681
2682 .yatra-destination-card,
2683 .yatra-activity-card,
2684 .yatra-category-card {
2685 background: #fff;
2686 border-radius: 12px;
2687 overflow: hidden;
2688 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
2689 transition: all 0.3s ease;
2690 cursor: pointer;
2691 }
2692
2693 .yatra-destination-card:hover,
2694 .yatra-activity-card:hover,
2695 .yatra-category-card:hover {
2696 transform: translateY(-4px);
2697 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
2698 }
2699
2700
2701 .yatra-destination-image img,
2702 .yatra-activity-image img {
2703 transition: transform 0.4s ease;
2704 }
2705
2706 .yatra-destination-image,
2707 .yatra-activity-image,
2708 .yatra-category-image {
2709 position: relative;
2710 width: 100%;
2711 height: 300px;
2712 overflow: hidden;
2713 }
2714
2715 .yatra-destination-image img,
2716 .yatra-activity-image img,
2717 .yatra-category-image img {
2718 width: 100%;
2719 height: 100%;
2720 object-fit: cover;
2721 }
2722
2723 /* Overrides base grid height:300px / width:100% — list view needs a wide left column */
2724 .yatra-destination-grid.list-view .yatra-destination-image,
2725 .yatra-activity-grid.list-view .yatra-activity-image,
2726 .yatra-category-grid.list-view .yatra-category-image {
2727 width: var(--yatra-listing-list-media-width);
2728 min-width: var(--yatra-listing-list-media-width);
2729 height: auto;
2730 min-height: 240px;
2731 flex-shrink: 0;
2732 align-self: stretch;
2733 }
2734
2735 .yatra-destination-overlay,
2736 .yatra-category-overlay {
2737 position: absolute;
2738 top: 0;
2739 left: 0;
2740 right: 0;
2741 bottom: 0;
2742 background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 100%);
2743 display: flex;
2744 align-items: flex-end;
2745 padding: 24px;
2746 }
2747
2748 .yatra-destination-overlay h3 {
2749 font-size: 28px;
2750 font-weight: 700;
2751 color: #fff;
2752 margin: 0;
2753 }
2754
2755 .yatra-destination-content {
2756 padding: 24px;
2757 background: #fff;
2758 }
2759
2760 .yatra-destination-content p {
2761 font-size: 14px;
2762 color: #6b7280;
2763 margin-bottom: 16px;
2764 line-height: 1.6;
2765 }
2766
2767 .yatra-destination-stats {
2768 display: flex;
2769 flex-direction: column;
2770 gap: 12px;
2771 margin-bottom: 20px;
2772 padding: 16px;
2773 background: #f9fafb;
2774 border-radius: 10px;
2775 }
2776
2777 .yatra-destination-stat {
2778 display: flex;
2779 align-items: center;
2780 gap: 10px;
2781 font-size: 14px;
2782 color: #374151;
2783 }
2784
2785 .yatra-destination-stat svg {
2786 flex-shrink: 0;
2787 color: #6b7280;
2788 }
2789
2790 .yatra-destination-stat span {
2791 font-weight: 600;
2792 color: #1f2937;
2793 }
2794
2795 .yatra-activity-content {
2796 padding: 24px;
2797 background: #fff;
2798 display: flex;
2799 flex-direction: column;
2800 flex: 1;
2801 }
2802
2803 .yatra-activity-content h3 {
2804 font-size: 22px;
2805 font-weight: 600;
2806 color: #1f2937;
2807 margin-bottom: 12px;
2808 }
2809
2810 .yatra-activity-content p {
2811 font-size: 14px;
2812 color: #6b7280;
2813 margin-bottom: 16px;
2814 line-height: 1.6;
2815 flex: 1;
2816 }
2817
2818 .yatra-activity-stats {
2819 display: flex;
2820 flex-direction: column;
2821 gap: 12px;
2822 margin-bottom: 20px;
2823 padding: 16px;
2824 background: #f9fafb;
2825 border-radius: 8px;
2826 }
2827
2828 .yatra-activity-stat {
2829 display: flex;
2830 align-items: center;
2831 gap: 8px;
2832 font-size: 14px;
2833 color: #374151;
2834 }
2835
2836 .yatra-activity-stat svg {
2837 flex-shrink: 0;
2838 }
2839
2840 .yatra-activity-stat span {
2841 font-weight: 500;
2842 }
2843
2844 .yatra-category-content {
2845 padding: 24px;
2846 }
2847
2848 .yatra-category-content p {
2849 font-size: 14px;
2850 color: #6b7280;
2851 margin-bottom: 16px;
2852 line-height: 1.6;
2853 }
2854
2855 .yatra-category-stats {
2856 display: flex;
2857 flex-direction: column;
2858 gap: 12px;
2859 margin-bottom: 20px;
2860 padding: 16px;
2861 background: #f9fafb;
2862 border-radius: 8px;
2863 }
2864
2865 .yatra-category-stat {
2866 display: flex;
2867 align-items: center;
2868 gap: 8px;
2869 font-size: 14px;
2870 color: #374151;
2871 }
2872
2873 .yatra-category-stat svg {
2874 flex-shrink: 0;
2875 }
2876
2877 .yatra-category-stat span {
2878 font-weight: 500;
2879 }
2880
2881
2882 .yatra-category-overlay {
2883 position: absolute;
2884 top: 0;
2885 left: 0;
2886 right: 0;
2887 bottom: 0;
2888 background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 100%);
2889 display: flex;
2890 flex-direction: column;
2891 align-items: center;
2892 justify-content: flex-end;
2893 padding: 24px;
2894 text-align: center;
2895 }
2896
2897 .yatra-category-overlay h3 {
2898 font-size: 28px;
2899 font-weight: 700;
2900 color: #fff;
2901 margin: 0;
2902 }
2903
2904 /* Trip Category Grid — list layout rules live with .yatra-category-grid.list-view above */
2905
2906 /* ============================================
2907 SINGLE TAXONOMY PAGE STYLES
2908 (Destination, Activity, Category single pages)
2909 ============================================ */
2910
2911 /* Taxonomy Hero Section */
2912 .yatra-taxonomy-hero {
2913 position: relative;
2914 height: 350px;
2915 background-size: cover;
2916 /* Ensure background scrolls with page and is nicely centered */
2917 background-attachment: scroll;
2918 background-position: center center;
2919 border-radius: 0;
2920 display: flex;
2921 align-items: center;
2922 justify-content: center;
2923 margin-bottom: 0;
2924 }
2925
2926 .yatra-taxonomy-hero-overlay {
2927 position: absolute;
2928 inset: 0;
2929 background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.8));
2930 }
2931
2932 .yatra-taxonomy-hero-content {
2933 position: relative;
2934 z-index: 10;
2935 text-align: center;
2936 max-width: 800px;
2937 padding: 0 20px;
2938 }
2939
2940 .yatra-taxonomy-hero-content,
2941 .yatra-taxonomy-hero-content * {
2942 color: #ffffff !important;
2943 }
2944
2945 .yatra-taxonomy-page .yatra-breadcrumb {
2946 margin-bottom: 16px;
2947 font-size: 14px;
2948 }
2949
2950 .yatra-taxonomy-page .yatra-breadcrumb a {
2951 color: rgba(255,255,255,0.9) !important;
2952 text-decoration: none;
2953 transition: color 0.2s ease;
2954 }
2955
2956 .yatra-taxonomy-page .yatra-breadcrumb a:hover {
2957 color: #ffffff !important;
2958 text-decoration: underline;
2959 }
2960
2961 .yatra-taxonomy-page .yatra-breadcrumb-sep {
2962 margin: 0 8px;
2963 color: rgba(255,255,255,0.7) !important;
2964 }
2965
2966 .yatra-taxonomy-page .yatra-breadcrumb-current {
2967 color: rgba(255,255,255,0.9) !important;
2968 }
2969
2970 .yatra-taxonomy-title {
2971 font-size: 48px;
2972 font-weight: 700;
2973 margin: 0 0 16px;
2974 color: #ffffff !important;
2975 text-shadow: 0 3px 10px rgba(0,0,0,0.6);
2976 line-height: 1.2;
2977 }
2978
2979 .yatra-taxonomy-description {
2980 font-size: 18px;
2981 line-height: 1.6;
2982 color: rgba(255,255,255,0.95) !important;
2983 margin: 0 0 20px;
2984 }
2985
2986 .yatra-taxonomy-stats {
2987 display: flex;
2988 gap: 24px;
2989 justify-content: center;
2990 }
2991
2992 .yatra-taxonomy-trip-count {
2993 display: flex;
2994 align-items: center;
2995 gap: 8px;
2996 background: rgba(255,255,255,0.2);
2997 backdrop-filter: blur(8px);
2998 padding: 10px 20px;
2999 border-radius: 50px;
3000 font-weight: 500;
3001 color: #ffffff !important;
3002 }
3003
3004 .yatra-taxonomy-trip-count svg {
3005 color: #ffffff !important;
3006 stroke: #ffffff !important;
3007 }
3008
3009 /* No Trips Found - Taxonomy Page */
3010 .yatra-taxonomy-page .yatra-no-trips-found {
3011 text-align: center;
3012 padding: 80px 20px;
3013 background: #f9fafb;
3014 border-radius: 16px;
3015 margin-top: 20px;
3016 }
3017
3018 .yatra-taxonomy-page .yatra-no-trips-icon {
3019 color: #9ca3af;
3020 margin-bottom: 20px;
3021 }
3022
3023 .yatra-taxonomy-page .yatra-no-trips-found h3 {
3024 font-size: 24px;
3025 font-weight: 600;
3026 color: #111827;
3027 margin: 0 0 12px;
3028 }
3029
3030 .yatra-taxonomy-page .yatra-no-trips-found p {
3031 color: #6b7280;
3032 font-size: 16px;
3033 margin: 0 0 24px;
3034 max-width: 400px;
3035 margin-left: auto;
3036 margin-right: auto;
3037 }
3038
3039 .yatra-btn-primary {
3040 display: inline-block;
3041 background: #059669;
3042 color: #fff !important;
3043 padding: 12px 28px;
3044 border-radius: 8px;
3045 font-weight: 600;
3046 text-decoration: none;
3047 transition: background 0.2s ease;
3048 }
3049
3050 .yatra-btn-primary:hover {
3051 background: #047857;
3052 color: #fff !important;
3053 }
3054
3055 /* Responsive - Taxonomy Page */
3056 @media (max-width: 768px) {
3057 .yatra-taxonomy-hero {
3058 height: 280px;
3059 }
3060
3061 .yatra-taxonomy-title {
3062 font-size: 32px;
3063 }
3064
3065 .yatra-taxonomy-description {
3066 font-size: 16px;
3067 }
3068 }
3069
3070 /* Trip Stats Row - Clean Modern Design */
3071 .yatra-trip-stats-row {
3072 display: flex;
3073 gap: 20px;
3074 margin: 20px 0;
3075 padding: 0;
3076 }
3077
3078 .yatra-trip-stat {
3079 display: flex;
3080 align-items: center;
3081 gap: 12px;
3082 flex: 1;
3083 min-width: 0;
3084 }
3085
3086 .yatra-stat-icon {
3087 width: 16px;
3088 height: 16px;
3089 border-radius: 4px;
3090 display: flex;
3091 align-items: center;
3092 justify-content: center;
3093 flex-shrink: 0;
3094 }
3095
3096 .yatra-stat-icon svg {
3097 width: 16px;
3098 height: 16px;
3099 }
3100
3101 .yatra-stat-icon.duration {
3102 background: linear-gradient(135deg, var(--yatra-primary, #3b82f6), var(--yatra-primary-dark, #2563eb));
3103 color: white;
3104 }
3105
3106 .yatra-stat-icon.difficulty {
3107 background: linear-gradient(135deg, #f59e0b, #d97316);
3108 color: white;
3109 }
3110
3111 .yatra-stat-icon.group {
3112 background: linear-gradient(135deg, #10b981, #059669);
3113 color: white;
3114 }
3115
3116 .yatra-stat-icon.rating {
3117 background: linear-gradient(135deg, #fbbf24, #f59e0b);
3118 color: white;
3119 }
3120
3121 .yatra-stat-content {
3122 display: flex;
3123 flex-direction: column;
3124 }
3125
3126 .yatra-stat-value {
3127 font-size: 16px;
3128 font-weight: 700;
3129 color: #1f2937;
3130 line-height: 1;
3131 }
3132
3133 .yatra-stat-label {
3134 font-size: 12px;
3135 color: #6b7280;
3136 font-weight: 500;
3137 line-height: 1;
3138 }
3139
3140
3141 /* Responsive design */
3142 @media (max-width: 768px) {
3143 .yatra-trip-stats-row {
3144 gap: 12px;
3145 margin: 16px 0;
3146 }
3147
3148 .yatra-stat-icon {
3149 width: 16px;
3150 height: 16px;
3151 }
3152
3153 .yatra-stat-value {
3154 font-size: 14px;
3155 }
3156
3157 .yatra-stat-label {
3158 font-size: 11px;
3159 }
3160 }
3161
3162 @media (max-width: 480px) {
3163 .yatra-trip-stats-row {
3164 flex-direction: column;
3165 gap: 8px;
3166 padding: 8px 0;
3167 }
3168
3169 .yatra-trip-stat {
3170 justify-content: flex-start;
3171 }
3172
3173 .yatra-stat-content {
3174 flex-direction: row;
3175 align-items: center;
3176 gap: 4px;
3177 }
3178
3179 .yatra-stat-label {
3180 margin-top: 0;
3181 }
3182 }
3183
3184 /* Trip Card Content Area - Enhanced Design */
3185 .yatra-trip-content {
3186 padding: 20px 24px;
3187 background: #ffffff;
3188 }
3189
3190 /* Trip card image overlay */
3191 .yatra-trip-card-image {
3192 position: relative;
3193 overflow: hidden;
3194 display: block;
3195 height: 240px;
3196 }
3197
3198 .yatra-trip-card-image::before {
3199 content: '';
3200 position: absolute;
3201 top: 0;
3202 left: 0;
3203 right: 0;
3204 bottom: 0;
3205 background: linear-gradient(to bottom,
3206 rgba(0, 0, 0, 0.2) 0%,
3207 rgba(0, 0, 0, 0.5) 100%);
3208 z-index: 1;
3209 pointer-events: none;
3210 }
3211
3212 .yatra-trip-card-image img {
3213 display: block;
3214 width: 100%;
3215 height: 100%;
3216 object-fit: cover;
3217 position: relative;
3218 z-index: 0;
3219 transition: opacity 0.3s ease;
3220 }
3221
3222 .yatra-trip-card-image:hover img {
3223 opacity: 0.9;
3224 }
3225
3226 .yatra-trip-card-image .yatra-discount-badge,
3227 .yatra-trip-card-image .yatra-group-discount-badge,
3228 .yatra-trip-card-image .yatra-favorite-btn,
3229 .yatra-trip-card-image .yatra-difficulty-overlay {
3230 position: absolute;
3231 z-index: 3;
3232 }
3233
3234 .yatra-trip-title {
3235 font-weight: 700;
3236 font-size: 20px;
3237 line-height: 1.3;
3238 margin-bottom: 12px;
3239 letter-spacing: -0.02em;
3240 }
3241
3242 .yatra-trip-title-link {
3243 text-decoration: none;
3244 transition: all 0.2s ease;
3245 display: block;
3246 }
3247
3248 .yatra-trip-title-link:hover {
3249 transform: translateY(-1px);
3250 }
3251
3252 .yatra-trip-short-description {
3253 color: #000000;
3254 line-height: 1.6;
3255 font-size: 14px;
3256 margin-bottom: 16px;
3257
3258 }
3259
3260 /* Enhanced taxonomy sections */
3261 .yatra-trip-destinations,
3262 .yatra-trip-activities,
3263 .yatra-trip-categories {
3264 color: #000000 !important;
3265 margin-bottom: 14px;
3266 padding: 8px 0;
3267 border-bottom: 1px solid #f1f5f9;
3268 font-size: 13px;
3269 }
3270
3271 .yatra-trip-destinations:last-child,
3272 .yatra-trip-activities:last-child,
3273 .yatra-trip-categories:last-child {
3274 border-bottom: none;
3275 margin-bottom: 0;
3276 }
3277
3278 .destination-link,
3279 .activity-link,
3280 .category-link {
3281 color: #000000 !important;
3282 text-decoration: none;
3283 font-weight: 500;
3284 transition: all 0.2s ease;
3285 }
3286
3287 .destination-link:hover,
3288 .activity-link:hover,
3289 .category-link:hover {
3290 color: #000000 !important;
3291 text-decoration: underline;
3292 background: rgba(0, 0, 0, 0.02);
3293 padding: 2px 4px;
3294 border-radius: 3px;
3295 }
3296
3297 /* Enhanced rating section */
3298 .yatra-trip-rating-row {
3299 color: #000000 !important;
3300 display: flex;
3301 align-items: center;
3302 gap: 8px;
3303 margin-bottom: 16px;
3304 padding: 8px 0;
3305 }
3306
3307 .yatra-rating-value {
3308 color: #000000 !important;
3309 font-weight: 600;
3310 font-size: 16px;
3311 }
3312
3313 .yatra-rating-count {
3314 color: #000000 !important;
3315 font-size: 12px;
3316 opacity: 0.7;
3317 }
3318
3319 /* Enhanced pricing section */
3320 .yatra-trip-price {
3321 color: #000000 !important;
3322 margin-bottom: 16px;
3323 padding: 12px 0;
3324
3325 }
3326
3327 .yatra-price-current {
3328 color: #000000 !important;
3329 font-weight: 800;
3330 font-size: 24px;
3331 line-height: 1;
3332 }
3333
3334 .yatra-price-original {
3335 color: #000000 !important;
3336 text-decoration: line-through;
3337 font-size: 16px;
3338 opacity: 0.6;
3339 margin-left: 8px;
3340 }
3341
3342 .yatra-price-prefix {
3343 color: #000000 !important;
3344 font-size: 14px;
3345 opacity: 0.7;
3346 margin-right: 4px;
3347 }
3348
3349 /* Clean and minimal stats row */
3350 .yatra-trip-stats-row {
3351 display: flex;
3352 flex-wrap: wrap;
3353 gap: 20px;
3354 padding: 16px 0;
3355 margin: 16px 0;
3356 }
3357
3358 .yatra-trip-stat {
3359 display: flex;
3360 align-items: center;
3361 gap: 8px;
3362 min-width: 0;
3363 }
3364
3365
3366 .yatra-stat-content {
3367 display: flex;
3368 flex-direction: column;
3369 min-width: 0;
3370 }
3371
3372 .yatra-stat-value {
3373 color: #000000 !important;
3374 font-weight: 600;
3375 font-size: 14px;
3376 line-height: 1.2;
3377 }
3378
3379 .yatra-stat-label {
3380 color: #000000 !important;
3381 font-size: 12px;
3382 line-height: 1.2;
3383 margin-top: 1px;
3384 opacity: 0.6;
3385 }
3386
3387 /* Footer elements - Keep original colors */
3388 .yatra-trip-footer {
3389 color: #475569 !important;
3390 }
3391
3392 /* Badge colors */
3393 .yatra-discount-badge {
3394 background: linear-gradient(135deg, #dc2626, #b91c1c);
3395 color: #ffffff !important;
3396 font-weight: 600;
3397 font-size: 12px;
3398 padding: 4px 8px;
3399 border-radius: 4px;
3400 }
3401
3402 .yatra-group-discount-badge {
3403 background: linear-gradient(135deg, #10b981, #059669);
3404 color: #ffffff !important;
3405 font-weight: 500;
3406 font-size: 11px;
3407 padding: 4px 8px;
3408 border-radius: 4px;
3409 }
3410
3411 /* Favorite button */
3412 .yatra-favorite-btn {
3413 color: #64748b !important;
3414 background: rgba(255, 255, 255, 0.9);
3415 border: 1px solid #e2e8f0;
3416 border-radius: 6px;
3417 padding: 6px;
3418 transition: all 0.2s ease;
3419 }
3420
3421 .yatra-favorite-btn:hover {
3422 color: #dc2626 !important;
3423 border-color: #dc2626;
3424 background: rgba(255, 255, 255, 1);
3425 }
3426
3427 .yatra-favorite-btn.active {
3428 color: #dc2626 !important;
3429 background: #fef2f2;
3430 border-color: #dc2626;
3431 }
3432
3433 /* Difficulty overlay */
3434 .yatra-difficulty-overlay {
3435 background: rgba(59, 130, 246, 0.9);
3436 backdrop-filter: blur(4px);
3437 color: #ffffff !important;
3438 font-weight: 600;
3439 font-size: 12px;
3440 padding: 6px 10px;
3441 border-radius: 6px;
3442 border: 1px solid rgba(255, 255, 255, 0.2);
3443 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
3444 }
3445
3446 /* Gutenberg: live listing preview (ServerSideRender) */
3447 .yatra-block-editor-preview {
3448 min-height: 48px;
3449 }
3450
3451 .yatra-block-editor-preview .components-placeholder {
3452 min-height: 120px;
3453 }
3454
3455 /**
3456 * Listing block section titles — same look in the editor (theme/iframe) as on the page.
3457 * Trip uses .yatra-tour-header like activity/destination; these rules beat theme h2 resets.
3458 */
3459 .wp-block-yatra-tour .yatra-tour-header .yatra-tour-title,
3460 .wp-block-yatra-activity .yatra-activity-header .yatra-activity-title,
3461 .wp-block-yatra-destination .yatra-destination-header .yatra-destination-title,
3462 .editor-styles-wrapper .yatra-tour-header .yatra-tour-title,
3463 .editor-styles-wrapper .yatra-activity-header .yatra-activity-title,
3464 .editor-styles-wrapper .yatra-destination-header .yatra-destination-title,
3465 .block-editor-block-list__layout .yatra-tour-header .yatra-tour-title,
3466 .block-editor-block-list__layout .yatra-activity-header .yatra-activity-title,
3467 .block-editor-block-list__layout .yatra-destination-header .yatra-destination-title {
3468 margin: 0;
3469 padding: 0;
3470 color: #1f2937;
3471 font-size: 1.875rem;
3472 font-weight: 600;
3473 line-height: 1.25;
3474 letter-spacing: normal;
3475 text-transform: none;
3476 font-style: normal;
3477 font-family: inherit;
3478 }
3479
3480 .wp-block-yatra-tour .yatra-tour-header .yatra-tour-count,
3481 .wp-block-yatra-activity .yatra-activity-header .yatra-activity-count,
3482 .wp-block-yatra-destination .yatra-destination-header .yatra-destination-count,
3483 .editor-styles-wrapper .yatra-tour-header .yatra-tour-count,
3484 .editor-styles-wrapper .yatra-activity-header .yatra-activity-count,
3485 .editor-styles-wrapper .yatra-destination-header .yatra-destination-count,
3486 .block-editor-block-list__layout .yatra-tour-header .yatra-tour-count,
3487 .block-editor-block-list__layout .yatra-activity-header .yatra-activity-count,
3488 .block-editor-block-list__layout .yatra-destination-header .yatra-destination-count {
3489 margin: 0;
3490 color: #6b7280;
3491 font-size: 0.875rem;
3492 font-weight: 400;
3493 line-height: 1.5;
3494 }
3495
3496