PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.3
Yatra – Travel Booking & Tour Operator Software v3.0.3
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.3, at assets/css/listing.css

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