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

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

3,473 lines 74.8 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: 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: 24px;
961 border-bottom: 1px solid #f3f4f6;
962 padding-bottom: 20px;
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: 16px;
984 user-select: none;
985 padding: 4px 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: #ef4444 !important;
1630 box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3) !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 .yatra-favorite-btn.saved,
1641 .yatra-favorite-btn.is-saved {
1642 background: #ffffff !important;
1643 color: #ef4444 !important;
1644 border-color: #ef4444 !important;
1645 }
1646
1647 .yatra-favorite-btn.saved svg,
1648 .yatra-favorite-btn.is-saved svg {
1649 fill: #ef4444 !important;
1650 stroke: #ef4444 !important;
1651 }
1652
1653 .yatra-favorite-btn.saved:hover,
1654 .yatra-favorite-btn.is-saved:hover {
1655 background: #fee2e2 !important;
1656 color: #dc2626 !important;
1657 border-color: #dc2626 !important;
1658 }
1659
1660 .yatra-trip-content {
1661 padding: 20px;
1662 display: flex;
1663 flex-direction: column;
1664 flex: 1;
1665 }
1666
1667 .yatra-trip-grid.list-view .yatra-trip-content,
1668 .yatra-trip-grid.yatra-list-view .yatra-trip-content {
1669 padding: 24px;
1670 }
1671
1672 .yatra-trip-meta {
1673 display: flex;
1674 align-items: center;
1675 gap: 8px;
1676 margin-bottom: 12px;
1677 font-size: 13px;
1678 color: #6b7280;
1679 flex-wrap: wrap;
1680 }
1681
1682 .yatra-trip-separator {
1683 color: #d1d5db;
1684 }
1685
1686 .yatra-trip-title {
1687 font-size: 18px;
1688 font-weight: 600;
1689 color: #1f2937;
1690 margin-bottom: 12px;
1691 line-height: 1.4;
1692 }
1693
1694 .yatra-trip-highlights {
1695 display: flex;
1696 flex-wrap: wrap;
1697 gap: 6px;
1698 margin-bottom: 12px;
1699 }
1700
1701 .yatra-highlight-badge {
1702 padding: 4px 10px;
1703 background: #eff6ff;
1704 color: var(--yatra-primary-darker, #1e40af);
1705 border-radius: 4px;
1706 font-size: 12px;
1707 font-weight: 500;
1708 text-decoration: none;
1709 transition: all 0.2s ease;
1710 }
1711
1712 a.yatra-highlight-link {
1713 cursor: pointer;
1714 }
1715
1716 a.yatra-highlight-link:hover {
1717 background: #dbeafe;
1718 color: var(--yatra-primary-darker, #1d4ed8);
1719 text-decoration: none;
1720 }
1721
1722
1723 .yatra-rating-stars {
1724 display: flex;
1725 align-items: center;
1726 gap: 4px;
1727 }
1728
1729 .yatra-rating-value {
1730 font-size: 14px;
1731 font-weight: 600;
1732 color: #1f2937;
1733 }
1734
1735 .yatra-reviews-count {
1736 font-size: 13px;
1737 }
1738
1739 .yatra-trip-footer {
1740 display: flex;
1741 align-items: center;
1742 justify-content: space-between;
1743 margin-top: auto;
1744 padding-top: 16px;
1745 border-top: 1px solid #f3f4f6;
1746 }
1747
1748 .yatra-trip-price {
1749 display: flex;
1750 flex-direction: row;
1751 }
1752
1753 .yatra-original-price {
1754 text-decoration: line-through;
1755 text-decoration-thickness: 2px;
1756 text-decoration-color: #ef4444;
1757 color: #6b7280;
1758 font-size: 0.95rem;
1759 font-weight: 500;
1760 background: rgba(239, 68, 68, 0.08);
1761 padding: 1px 4px;
1762 border-radius: 3px;
1763 border: 1px solid rgba(239, 68, 68, 0.15);
1764 line-height: 1;
1765 }
1766
1767 .yatra-current-price {
1768 font-size: 22px;
1769 font-weight: 700;
1770 color: var(--yatra-primary, #3b82f6);
1771 line-height: 1;
1772 }
1773
1774 .yatra-price-note {
1775 font-size: 11px;
1776 color: #9ca3af;
1777 margin-top: 4px;
1778 }
1779
1780 /* Complete Trip Card Styling */
1781 .yatra-trip-card {
1782 background: #ffffff;
1783 border-radius: 12px;
1784 overflow: hidden;
1785 transition: all 0.3s ease;
1786 height: 100%;
1787 display: flex;
1788 flex-direction: column;
1789 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
1790 }
1791
1792 .yatra-trip-card:hover {
1793 box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
1794 transform: translateY(-2px);
1795 }
1796
1797 /* Image Section */
1798 .yatra-trip-card-image {
1799 position: relative;
1800 width: 100%;
1801 height: 280px;
1802 overflow: hidden;
1803 background: #f8fafc;
1804 }
1805
1806 .yatra-trip-card-image img {
1807 width: 100%;
1808 height: 100%;
1809 object-fit: cover;
1810 }
1811
1812 /* Discount Badge */
1813 .yatra-discount-badge {
1814 position: absolute;
1815 top: 12px;
1816 left: 12px;
1817 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
1818 color: white;
1819 padding: 4px 8px;
1820 border-radius: 12px;
1821 font-size: 0.75rem;
1822 font-weight: 600;
1823 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
1824 z-index: 2;
1825 }
1826
1827 /* Destination Section */
1828 .yatra-trip-destinations {
1829 background: #f8fafc;
1830 padding: 10px 16px;
1831 display: flex;
1832 align-items: center;
1833 gap: 6px;
1834 }
1835
1836 /* List view override for destination row spacing */
1837 .yatra-trip-grid.list-view .yatra-trip-destinations {
1838 margin: 8px -16px 8px -16px;
1839 padding: 10px 20px;
1840 background: #f8fafc;
1841 width: calc(100% + 32px);
1842 border-radius: 0;
1843 }
1844
1845 .yatra-trip-destinations .location-icon {
1846 color: #6366f1;
1847 flex-shrink: 0;
1848 }
1849
1850 .yatra-trip-destinations .destination-link {
1851 color: #374151;
1852 text-decoration: none;
1853 font-size: 0.875rem;
1854 font-weight: 500;
1855 transition: color 0.2s ease;
1856 }
1857
1858 .yatra-trip-destinations .destination-link:hover {
1859 color: #6366f1;
1860 text-decoration: none;
1861 }
1862
1863 .yatra-trip-destinations .yatra-trip-card-location-text {
1864 color: #374151;
1865 font-size: 0.875rem;
1866 font-weight: 500;
1867 }
1868
1869 .yatra-trip-traveler-types {
1870 display: flex;
1871 align-items: flex-start;
1872 gap: 8px;
1873 margin: 0 0 12px 0;
1874 padding-top: 10px;
1875 border-top: 1px solid #f1f5f9;
1876 }
1877
1878 .yatra-trip-traveler-types-icon {
1879 color: #6366f1;
1880 flex-shrink: 0;
1881 margin-top: 2px;
1882 }
1883
1884 .yatra-trip-traveler-types-inner {
1885 display: flex;
1886 flex-direction: column;
1887 gap: 6px;
1888 min-width: 0;
1889 }
1890
1891 .yatra-trip-traveler-types-label {
1892 font-size: 0.65rem;
1893 font-weight: 600;
1894 text-transform: uppercase;
1895 letter-spacing: 0.05em;
1896 color: #64748b;
1897 }
1898
1899 .yatra-trip-traveler-types-pills {
1900 display: flex;
1901 flex-wrap: wrap;
1902 gap: 6px;
1903 }
1904
1905 .yatra-traveler-tier-pill {
1906 display: inline-block;
1907 padding: 3px 10px;
1908 border-radius: 999px;
1909 font-size: 0.75rem;
1910 font-weight: 500;
1911 background: #eef2ff;
1912 color: #4338ca;
1913 border: 1px solid #c7d2fe;
1914 }
1915
1916 /* Content Section */
1917 .yatra-trip-content {
1918 padding: 16px;
1919 }
1920
1921 .yatra-trip-title {
1922 font-size: 1.25rem;
1923 font-weight: 600;
1924 color: #1f2937;
1925 margin-bottom: 12px;
1926 line-height: 1.4;
1927 display: -webkit-box;
1928 -webkit-line-clamp: 2;
1929 line-clamp: 2;
1930 -webkit-box-orient: vertical;
1931 overflow: hidden;
1932 }
1933
1934 .yatra-trip-title-link {
1935 color: inherit;
1936 text-decoration: none;
1937 transition: color 0.2s ease;
1938 }
1939
1940 .yatra-trip-title-link:hover {
1941 color: var(--yatra-primary-dark, #2563eb);
1942 text-decoration: none;
1943 }
1944
1945 .yatra-trip-card-meta {
1946 display: flex;
1947 flex-wrap: wrap;
1948 align-items: center;
1949 gap: 8px;
1950 margin: -4px 0 12px 0;
1951 }
1952
1953 .yatra-trip-type-chip {
1954 display: inline-block;
1955 padding: 2px 10px;
1956 border-radius: 6px;
1957 font-size: 0.7rem;
1958 font-weight: 600;
1959 text-transform: uppercase;
1960 letter-spacing: 0.04em;
1961 background: #f1f5f9;
1962 color: #475569;
1963 }
1964
1965 .yatra-trip-primary-category-chip {
1966 display: inline-block;
1967 padding: 2px 10px;
1968 border-radius: 6px;
1969 font-size: 0.75rem;
1970 font-weight: 500;
1971 background: #eff6ff;
1972 color: var(--yatra-primary-darker, #1d4ed8);
1973 text-decoration: none;
1974 border: 1px solid #bfdbfe;
1975 transition: background-color 0.2s ease, color 0.2s ease;
1976 }
1977
1978 .yatra-trip-primary-category-chip:hover {
1979 background: #dbeafe;
1980 color: var(--yatra-primary-darker, #1e40af);
1981 }
1982
1983 .yatra-trip-primary-category-chip--text {
1984 border-style: dashed;
1985 cursor: default;
1986 }
1987
1988 /* Trip Info Row */
1989 .yatra-trip-info-row {
1990 display: flex;
1991 align-items: center;
1992 gap: 8px;
1993 margin-bottom: 16px;
1994 flex-wrap: wrap;
1995 }
1996
1997 .yatra-info-badge {
1998 display: inline-flex;
1999 align-items: center;
2000 gap: 4px;
2001 padding: 4px 8px;
2002 background: #f3f4f6;
2003 color: #374151;
2004 border-radius: 12px;
2005 font-size: 0.75rem;
2006 font-weight: 500;
2007 }
2008
2009 .yatra-info-badge.duration {
2010 background: #dbeafe;
2011 color: var(--yatra-primary-darker, #1d4ed8);
2012 }
2013
2014 .yatra-info-badge svg {
2015 width: 12px;
2016 height: 12px;
2017 }
2018
2019 /* Activities Section */
2020 .yatra-trip-activities {
2021 display: flex;
2022 flex-wrap: wrap;
2023 gap: 6px;
2024 margin-bottom: 16px;
2025 align-items: center;
2026 }
2027
2028 /* Categories Compact Section */
2029 .yatra-trip-categories-compact {
2030 display: flex;
2031 align-items: center;
2032 gap: 6px;
2033 margin-bottom: 16px;
2034 }
2035
2036 .yatra-category-icon {
2037 width: 16px;
2038 height: 16px;
2039 display: flex;
2040 align-items: center;
2041 justify-content: center;
2042 color: #6366f1;
2043 flex-shrink: 0;
2044 }
2045
2046 .yatra-category-icon svg {
2047 width: 14px;
2048 height: 14px;
2049 }
2050
2051 .yatra-categories-text {
2052 font-size: 0.8rem;
2053 color: #6b7280;
2054 line-height: 1.2;
2055 }
2056
2057 .yatra-category-link {
2058 color: #6b7280;
2059 text-decoration: none;
2060 transition: color 0.2s ease;
2061 }
2062
2063 .yatra-category-link:hover {
2064 color: #6366f1;
2065 text-decoration: none;
2066 }
2067
2068 .yatra-tag {
2069 display: inline-block;
2070 padding: 5px 12px;
2071 border-radius: 16px;
2072 font-size: 0.8rem;
2073 font-weight: 500;
2074 text-decoration: none;
2075 /* Avoid transition: all — only animate stable properties (no transform on hover; moving the link breaks hit-testing and causes flicker). */
2076 transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
2077 border: 1px solid transparent;
2078 box-shadow: 0 0 0 rgba(29, 78, 216, 0);
2079 }
2080
2081 .yatra-tag.activity-tag {
2082 background: #eff6ff;
2083 color: var(--yatra-primary-darker, #1d4ed8);
2084 border-color: #bfdbfe;
2085 }
2086
2087 .yatra-tag.activity-tag:hover {
2088 background: #dbeafe;
2089 color: var(--yatra-primary-darker, #1e40af);
2090 text-decoration: none;
2091 box-shadow: 0 2px 8px rgba(29, 78, 216, 0.14);
2092 }
2093
2094 /* Difficulty Overlay */
2095 .yatra-difficulty-overlay {
2096 position: absolute;
2097 bottom: 12px;
2098 right: 12px;
2099 background: rgba(34, 197, 94, 0.9);
2100 color: white;
2101 padding: 6px 10px;
2102 border-radius: 16px;
2103 font-size: 0.75rem;
2104 font-weight: 600;
2105 display: flex;
2106 align-items: center;
2107 gap: 4px;
2108 backdrop-filter: blur(4px);
2109 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
2110 }
2111
2112 .yatra-difficulty-overlay svg {
2113 width: 14px;
2114 height: 14px;
2115 opacity: 0.9;
2116 }
2117
2118 .yatra-difficulty-overlay .difficulty-icon {
2119 width: 14px;
2120 height: 14px;
2121 }
2122
2123 .yatra-difficulty-overlay i.difficulty-icon.fa-solid,
2124 .yatra-difficulty-overlay i.difficulty-icon.fa-regular {
2125 width: auto;
2126 height: auto;
2127 font-size: 14px;
2128 line-height: 1;
2129 display: inline-flex;
2130 align-items: center;
2131 justify-content: center;
2132 }
2133
2134 /* Rating Section - consolidated with main rule above */
2135
2136 .yatra-rating-stars {
2137 display: flex;
2138 align-items: center;
2139 gap: 4px;
2140 }
2141
2142 .yatra-rating-value {
2143 font-weight: 600;
2144 color: #1f2937;
2145 font-size: 0.875rem;
2146 }
2147
2148 .yatra-reviews-count {
2149 color: #6b7280;
2150 font-size: 0.8rem;
2151 }
2152
2153 /* Footer */
2154 .yatra-trip-footer {
2155 display: flex;
2156 align-items: center;
2157 justify-content: space-between;
2158 padding-top: 12px;
2159 }
2160
2161 .yatra-trip-price {
2162 font-size: 1.125rem;
2163 font-weight: 700;
2164 color: var(--yatra-primary-dark, #2563eb);
2165 display: flex;
2166 align-items: baseline;
2167 gap: 8px;
2168 flex-wrap: wrap;
2169 }
2170
2171 /* Wishlist/Favorite Button Styles */
2172 .yatra-favorite-btn {
2173 position: absolute;
2174 top: 12px;
2175 right: 12px;
2176 background: rgba(255, 255, 255, 0.9);
2177 border: none;
2178 border-radius: 50%;
2179 width: 36px;
2180 height: 36px;
2181 display: flex;
2182 align-items: center;
2183 justify-content: center;
2184 cursor: pointer;
2185 transition: all 0.2s ease;
2186 color: #6b7280;
2187 z-index: 2;
2188 }
2189
2190 .yatra-favorite-btn:hover {
2191 background: rgba(255, 255, 255, 1);
2192 transform: scale(1.1);
2193 color: #ef4444;
2194 }
2195
2196 .yatra-favorite-btn.saved {
2197 color: #ef4444;
2198 background: rgba(255, 255, 255, 1);
2199 }
2200
2201 .yatra-favorite-btn.loading {
2202 opacity: 0.6;
2203 cursor: not-allowed;
2204 }
2205
2206 .yatra-favorite-btn:disabled {
2207 opacity: 0.6;
2208 cursor: not-allowed;
2209 }
2210
2211 /* Pagination */
2212 .yatra-listing-pagination {
2213 display: flex;
2214 justify-content: center;
2215 align-items: center;
2216 gap: 8px;
2217 margin-top: 40px;
2218 }
2219
2220 /* Trip listing: pagination lives in the main column (not below the full sidebar+content row). */
2221 .yatra-trip-listing .yatra-listing-content > .yatra-listing-pagination--trip-content {
2222 width: 100%;
2223 margin-top: 24px;
2224 flex-wrap: wrap;
2225 }
2226
2227 .yatra-pagination-btn {
2228 padding: 8px 16px;
2229 border: 1px solid #e5e7eb;
2230 background: #fff;
2231 border-radius: 6px;
2232 cursor: pointer;
2233 font-size: 14px;
2234 transition: all 0.2s;
2235 color: #374151;
2236 }
2237
2238 .yatra-pagination-btn:hover:not(:disabled) {
2239 border-color: var(--yatra-primary, #3b82f6);
2240 color: var(--yatra-primary, #3b82f6);
2241 }
2242
2243 .yatra-pagination-btn.active {
2244 border-color: var(--yatra-primary, #3b82f6);
2245 background: var(--yatra-primary, #3b82f6);
2246 color: #fff;
2247 font-weight: 600;
2248 box-shadow: 0 2px 8px color-mix(in srgb, var(--yatra-primary, #3b82f6) 32%, transparent);
2249 }
2250
2251 .yatra-pagination-btn.active:hover:not(:disabled) {
2252 background: var(--yatra-primary-dark, #2563eb);
2253 border-color: var(--yatra-primary-dark, #2563eb);
2254 }
2255
2256 .yatra-pagination-btn:disabled {
2257 opacity: 0.5;
2258 cursor: not-allowed;
2259 }
2260
2261 .yatra-pagination-btn.disabled {
2262 opacity: 0.5;
2263 cursor: default;
2264 pointer-events: none;
2265 }
2266
2267 a.yatra-pagination-btn,
2268 span.yatra-pagination-btn.disabled {
2269 display: inline-flex;
2270 align-items: center;
2271 justify-content: center;
2272 gap: 6px;
2273 }
2274
2275 .yatra-pagination-btn .yatra-btn-icon {
2276 width: 0.875rem;
2277 height: 0.875rem;
2278 flex-shrink: 0;
2279 }
2280
2281 /* -------------------------------------------------------------------------
2282 Unified primary CTAs (PHP: yatra-btn + yatra-btn-primary + yatra-archive-card-cta + yatra_svg_icon)
2283 trip.css defines base .yatra-btn; icons use .yatra-btn-icon
2284 ------------------------------------------------------------------------- */
2285 .yatra-btn .yatra-btn-icon {
2286 width: 1.125rem;
2287 height: 1.125rem;
2288 flex-shrink: 0;
2289 }
2290
2291 .yatra-archive-card-cta.yatra-btn {
2292 display: inline-flex;
2293 align-items: center;
2294 justify-content: center;
2295 gap: 0.5rem;
2296 text-decoration: none !important;
2297 }
2298
2299 .yatra-destination-content .yatra-archive-card-cta.yatra-btn,
2300 .yatra-activity-content .yatra-archive-card-cta.yatra-btn,
2301 .yatra-category-content .yatra-archive-card-cta.yatra-btn {
2302 width: 100%;
2303 margin-top: 4px;
2304 box-sizing: border-box;
2305 }
2306
2307 .yatra-category-content .yatra-archive-card-cta.yatra-btn:disabled {
2308 opacity: 0.55;
2309 cursor: not-allowed;
2310 }
2311
2312 .yatra-trip-footer .yatra-archive-card-cta.yatra-btn {
2313 padding: 10px 18px;
2314 font-size: 14px;
2315 white-space: nowrap;
2316 flex-shrink: 0;
2317 }
2318
2319 /* Destination / taxonomy archives: align toggle with trip listing (gray track + white active segment) */
2320 .yatra-destination-listing .yatra-results-controls .yatra-view-toggle,
2321 .yatra-taxonomy-page .yatra-results-controls .yatra-view-toggle {
2322 margin-left: 8px;
2323 }
2324
2325 .yatra-destination-listing .yatra-results-controls .yatra-view-btn.active,
2326 .yatra-taxonomy-page .yatra-results-controls .yatra-view-btn.active {
2327 background: #ffffff !important;
2328 color: var(--yatra-primary-darker, #1d4ed8) !important;
2329 box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12), 0 0 0 1px #93c5fd !important;
2330 }
2331
2332 .yatra-destination-listing .yatra-results-controls .yatra-view-btn:not(.active),
2333 .yatra-taxonomy-page .yatra-results-controls .yatra-view-btn:not(.active) {
2334 color: #64748b !important;
2335 background: transparent !important;
2336 opacity: 1;
2337 }
2338
2339 /* Responsive Styles */
2340 @media (max-width: 1024px) {
2341 .yatra-listing-layout {
2342 display: grid;
2343 grid-template-columns: minmax(220px, 280px) 1fr;
2344 gap: 20px;
2345 }
2346 }
2347
2348 @media (max-width: 768px) {
2349 .yatra-listing-container {
2350 padding: 16px;
2351 }
2352
2353 .yatra-search-form {
2354 flex-wrap: wrap;
2355 }
2356
2357 .yatra-search-field {
2358 min-width: calc(50% - 6px);
2359 }
2360
2361 .yatra-search-btn {
2362 width: 100%;
2363 justify-content: center;
2364 }
2365
2366 .yatra-results-header {
2367 flex-direction: column;
2368 align-items: flex-start;
2369 gap: 16px;
2370 }
2371
2372 .yatra-results-controls {
2373 width: 100%;
2374 }
2375
2376 .yatra-listing-layout {
2377 display: grid;
2378 grid-template-columns: 1fr;
2379 }
2380
2381 .yatra-filter-sidebar {
2382 position: static;
2383 margin-bottom: 24px;
2384 max-width: none;
2385 }
2386
2387 .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
2388 .yatra-listing-content-full .yatra-trip-grid:not(.list-view):not(.yatra-list-view),
2389 .yatra-listing-page .yatra-destination-grid:not(.list-view),
2390 .yatra-listing-page .yatra-activity-grid:not(.list-view),
2391 .yatra-listing-page .yatra-category-grid:not(.list-view) {
2392 grid-template-columns: 1fr;
2393 }
2394
2395 .yatra-trip-grid.list-view .yatra-trip-card,
2396 .yatra-listing-content-full .yatra-trip-grid.list-view .yatra-trip-card {
2397 flex-direction: column;
2398 max-height: none;
2399 }
2400
2401 .yatra-trip-grid.list-view .yatra-trip-image,
2402 .yatra-listing-content-full .yatra-trip-grid.list-view .yatra-trip-image {
2403 width: 100%;
2404 height: 220px;
2405 }
2406
2407 .yatra-destination-grid.list-view .yatra-destination-card,
2408 .yatra-activity-grid.list-view .yatra-activity-card,
2409 .yatra-category-grid.list-view .yatra-category-card {
2410 flex-direction: column;
2411 max-height: none;
2412 min-height: auto;
2413 }
2414
2415 .yatra-destination-grid.list-view .yatra-destination-image,
2416 .yatra-activity-grid.list-view .yatra-activity-image,
2417 .yatra-category-grid.list-view .yatra-category-image {
2418 width: 100%;
2419 min-width: 100%;
2420 height: 220px;
2421 min-height: 220px;
2422 }
2423
2424 .yatra-destination-grid.list-view .yatra-destination-stats,
2425 .yatra-activity-grid.list-view .yatra-activity-stats {
2426 flex-direction: column;
2427 gap: 12px;
2428 }
2429
2430 .yatra-destination-grid.list-view .yatra-destination-stat,
2431 .yatra-activity-grid.list-view .yatra-activity-stat {
2432 border-right: none;
2433 border-bottom: 1px solid #e5e7eb;
2434 padding-bottom: 12px;
2435 justify-content: flex-start;
2436 }
2437
2438 .yatra-destination-grid.list-view .yatra-destination-stat:last-child,
2439 .yatra-activity-grid.list-view .yatra-activity-stat:last-child {
2440 border-bottom: none;
2441 padding-bottom: 0;
2442 }
2443
2444 .yatra-destination-grid.list-view .yatra-archive-card-cta.yatra-btn,
2445 .yatra-activity-grid.list-view .yatra-archive-card-cta.yatra-btn {
2446 width: 100%;
2447 }
2448
2449 .yatra-destination-stats,
2450 .yatra-activity-stats {
2451 flex-direction: row;
2452 justify-content: space-around;
2453 }
2454
2455 .yatra-trip-footer {
2456 flex-direction: column;
2457 align-items: flex-start;
2458 gap: 12px;
2459 }
2460
2461 }
2462
2463 /* Category Header */
2464 .yatra-category-header {
2465 display: flex;
2466 justify-content: space-between;
2467 align-items: flex-start;
2468 margin-bottom: 32px;
2469 padding-bottom: 20px;
2470 border-bottom: 1px solid #e5e7eb;
2471 }
2472
2473 .yatra-category-header-content h1 {
2474 font-size: 32px;
2475 font-weight: 700;
2476 color: #1f2937;
2477 margin-bottom: 8px;
2478 }
2479
2480 .yatra-category-header-content p {
2481 font-size: 16px;
2482 color: #6b7280;
2483 }
2484
2485 /* Destination Header */
2486 .yatra-destination-header {
2487 display: flex;
2488 justify-content: space-between;
2489 align-items: flex-start;
2490 margin-bottom: 32px;
2491 padding-bottom: 20px;
2492 border-bottom: 1px solid #e5e7eb;
2493 }
2494
2495 .yatra-destination-header-content h1 {
2496 font-size: 32px;
2497 font-weight: 700;
2498 color: #1f2937;
2499 margin-bottom: 8px;
2500 }
2501
2502 .yatra-destination-header-content p {
2503 font-size: 16px;
2504 color: #6b7280;
2505 }
2506
2507 /* Activity Header */
2508 .yatra-activity-header {
2509 display: flex;
2510 justify-content: space-between;
2511 align-items: flex-start;
2512 margin-bottom: 32px;
2513 padding-bottom: 20px;
2514 border-bottom: 1px solid #e5e7eb;
2515 }
2516
2517 .yatra-activity-header-content h1 {
2518 font-size: 32px;
2519 font-weight: 700;
2520 color: #1f2937;
2521 margin-bottom: 8px;
2522 }
2523
2524 .yatra-activity-header-content p {
2525 font-size: 16px;
2526 color: #6b7280;
2527 }
2528
2529 /* Destination, Activity, Category Listing Styles (grid columns: unified block near top of file) */
2530
2531 .yatra-destination-grid.list-view,
2532 .yatra-activity-grid.list-view,
2533 .yatra-category-grid.list-view {
2534 display: grid;
2535 grid-template-columns: 1fr;
2536 gap: var(--yatra-listing-list-row-gap);
2537 align-content: start;
2538 }
2539
2540 .yatra-destination-card,
2541 .yatra-activity-card,
2542 .yatra-category-card {
2543 background: #fff;
2544 border-radius: 12px;
2545 overflow: hidden;
2546 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
2547 transition: all 0.3s ease;
2548 cursor: pointer;
2549 }
2550
2551 .yatra-destination-card:hover,
2552 .yatra-activity-card:hover,
2553 .yatra-category-card:hover {
2554 transform: translateY(-4px);
2555 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
2556 }
2557
2558
2559 .yatra-destination-image img,
2560 .yatra-activity-image img {
2561 transition: transform 0.4s ease;
2562 }
2563
2564 .yatra-destination-image,
2565 .yatra-activity-image,
2566 .yatra-category-image {
2567 position: relative;
2568 width: 100%;
2569 height: 300px;
2570 overflow: hidden;
2571 }
2572
2573 .yatra-destination-grid.list-view .yatra-destination-overlay h3 {
2574 font-size: 24px;
2575 text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
2576 }
2577
2578 .yatra-destination-grid.list-view .yatra-destination-content p {
2579 font-size: 15px;
2580 margin-bottom: 20px;
2581 line-height: 1.7;
2582 color: #4b5563;
2583 }
2584
2585 .yatra-destination-grid.list-view .yatra-destination-stats,
2586 .yatra-activity-grid.list-view .yatra-activity-stats {
2587 flex-direction: row;
2588 gap: 24px;
2589 padding: 16px 20px;
2590 background: #f9fafb;
2591 border-radius: 10px;
2592 margin-bottom: 20px;
2593 }
2594
2595 .yatra-destination-grid.list-view .yatra-destination-stat,
2596 .yatra-activity-grid.list-view .yatra-activity-stat {
2597 flex: 1;
2598 justify-content: center;
2599 padding: 0;
2600 border-right: 1px solid #e5e7eb;
2601 }
2602
2603 .yatra-destination-grid.list-view .yatra-destination-stat:last-child,
2604 .yatra-activity-grid.list-view .yatra-activity-stat:last-child {
2605 border-right: none;
2606 }
2607
2608 .yatra-destination-grid.list-view .yatra-archive-card-cta.yatra-btn,
2609 .yatra-activity-grid.list-view .yatra-archive-card-cta.yatra-btn {
2610 align-self: flex-start;
2611 padding: 12px 28px;
2612 }
2613
2614 /* List view - Activity specific */
2615 .yatra-activity-grid.list-view .yatra-activity-content h3 {
2616 font-size: 22px;
2617 margin-bottom: 10px;
2618 color: #111827;
2619 }
2620
2621 .yatra-activity-grid.list-view .yatra-activity-content p {
2622 font-size: 15px;
2623 margin-bottom: 20px;
2624 line-height: 1.7;
2625 color: #4b5563;
2626 flex: none;
2627 }
2628
2629 .yatra-category-grid.list-view .yatra-category-card {
2630 display: flex;
2631 flex-direction: row;
2632 align-items: stretch;
2633 max-height: none;
2634 min-height: 240px;
2635 }
2636
2637 .yatra-category-grid.list-view .yatra-category-image {
2638 width: var(--yatra-listing-list-media-width);
2639 min-width: var(--yatra-listing-list-media-width);
2640 height: auto;
2641 min-height: 240px;
2642 flex-shrink: 0;
2643 align-self: stretch;
2644 }
2645
2646 .yatra-category-grid.list-view .yatra-category-content {
2647 flex: 1;
2648 display: flex;
2649 flex-direction: column;
2650 justify-content: space-between;
2651 }
2652
2653 .yatra-category-grid.list-view .yatra-category-stats {
2654 flex-direction: row;
2655 justify-content: space-around;
2656 margin-bottom: 16px;
2657 }
2658
2659 .yatra-destination-card,
2660 .yatra-activity-card,
2661 .yatra-category-card {
2662 background: #fff;
2663 border-radius: 12px;
2664 overflow: hidden;
2665 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
2666 transition: all 0.3s ease;
2667 cursor: pointer;
2668 }
2669
2670 .yatra-destination-card:hover,
2671 .yatra-activity-card:hover,
2672 .yatra-category-card:hover {
2673 transform: translateY(-4px);
2674 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
2675 }
2676
2677
2678 .yatra-destination-image img,
2679 .yatra-activity-image img {
2680 transition: transform 0.4s ease;
2681 }
2682
2683 .yatra-destination-image,
2684 .yatra-activity-image,
2685 .yatra-category-image {
2686 position: relative;
2687 width: 100%;
2688 height: 300px;
2689 overflow: hidden;
2690 }
2691
2692 .yatra-destination-image img,
2693 .yatra-activity-image img,
2694 .yatra-category-image img {
2695 width: 100%;
2696 height: 100%;
2697 object-fit: cover;
2698 }
2699
2700 /* Overrides base grid height:300px / width:100% — list view needs a wide left column */
2701 .yatra-destination-grid.list-view .yatra-destination-image,
2702 .yatra-activity-grid.list-view .yatra-activity-image,
2703 .yatra-category-grid.list-view .yatra-category-image {
2704 width: var(--yatra-listing-list-media-width);
2705 min-width: var(--yatra-listing-list-media-width);
2706 height: auto;
2707 min-height: 240px;
2708 flex-shrink: 0;
2709 align-self: stretch;
2710 }
2711
2712 .yatra-destination-overlay,
2713 .yatra-category-overlay {
2714 position: absolute;
2715 top: 0;
2716 left: 0;
2717 right: 0;
2718 bottom: 0;
2719 background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 100%);
2720 display: flex;
2721 align-items: flex-end;
2722 padding: 24px;
2723 }
2724
2725 .yatra-destination-overlay h3 {
2726 font-size: 28px;
2727 font-weight: 700;
2728 color: #fff;
2729 margin: 0;
2730 }
2731
2732 .yatra-destination-content {
2733 padding: 24px;
2734 background: #fff;
2735 }
2736
2737 .yatra-destination-content p {
2738 font-size: 14px;
2739 color: #6b7280;
2740 margin-bottom: 16px;
2741 line-height: 1.6;
2742 }
2743
2744 .yatra-destination-stats {
2745 display: flex;
2746 flex-direction: column;
2747 gap: 12px;
2748 margin-bottom: 20px;
2749 padding: 16px;
2750 background: #f9fafb;
2751 border-radius: 10px;
2752 }
2753
2754 .yatra-destination-stat {
2755 display: flex;
2756 align-items: center;
2757 gap: 10px;
2758 font-size: 14px;
2759 color: #374151;
2760 }
2761
2762 .yatra-destination-stat svg {
2763 flex-shrink: 0;
2764 color: #6b7280;
2765 }
2766
2767 .yatra-destination-stat span {
2768 font-weight: 600;
2769 color: #1f2937;
2770 }
2771
2772 .yatra-activity-content {
2773 padding: 24px;
2774 background: #fff;
2775 display: flex;
2776 flex-direction: column;
2777 flex: 1;
2778 }
2779
2780 .yatra-activity-content h3 {
2781 font-size: 22px;
2782 font-weight: 600;
2783 color: #1f2937;
2784 margin-bottom: 12px;
2785 }
2786
2787 .yatra-activity-content p {
2788 font-size: 14px;
2789 color: #6b7280;
2790 margin-bottom: 16px;
2791 line-height: 1.6;
2792 flex: 1;
2793 }
2794
2795 .yatra-activity-stats {
2796 display: flex;
2797 flex-direction: column;
2798 gap: 12px;
2799 margin-bottom: 20px;
2800 padding: 16px;
2801 background: #f9fafb;
2802 border-radius: 8px;
2803 }
2804
2805 .yatra-activity-stat {
2806 display: flex;
2807 align-items: center;
2808 gap: 8px;
2809 font-size: 14px;
2810 color: #374151;
2811 }
2812
2813 .yatra-activity-stat svg {
2814 flex-shrink: 0;
2815 }
2816
2817 .yatra-activity-stat span {
2818 font-weight: 500;
2819 }
2820
2821 .yatra-category-content {
2822 padding: 24px;
2823 }
2824
2825 .yatra-category-content p {
2826 font-size: 14px;
2827 color: #6b7280;
2828 margin-bottom: 16px;
2829 line-height: 1.6;
2830 }
2831
2832 .yatra-category-stats {
2833 display: flex;
2834 flex-direction: column;
2835 gap: 12px;
2836 margin-bottom: 20px;
2837 padding: 16px;
2838 background: #f9fafb;
2839 border-radius: 8px;
2840 }
2841
2842 .yatra-category-stat {
2843 display: flex;
2844 align-items: center;
2845 gap: 8px;
2846 font-size: 14px;
2847 color: #374151;
2848 }
2849
2850 .yatra-category-stat svg {
2851 flex-shrink: 0;
2852 }
2853
2854 .yatra-category-stat span {
2855 font-weight: 500;
2856 }
2857
2858
2859 .yatra-category-overlay {
2860 position: absolute;
2861 top: 0;
2862 left: 0;
2863 right: 0;
2864 bottom: 0;
2865 background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 100%);
2866 display: flex;
2867 flex-direction: column;
2868 align-items: center;
2869 justify-content: flex-end;
2870 padding: 24px;
2871 text-align: center;
2872 }
2873
2874 .yatra-category-overlay h3 {
2875 font-size: 28px;
2876 font-weight: 700;
2877 color: #fff;
2878 margin: 0;
2879 }
2880
2881 /* Trip Category Grid — list layout rules live with .yatra-category-grid.list-view above */
2882
2883 /* ============================================
2884 SINGLE TAXONOMY PAGE STYLES
2885 (Destination, Activity, Category single pages)
2886 ============================================ */
2887
2888 /* Taxonomy Hero Section */
2889 .yatra-taxonomy-hero {
2890 position: relative;
2891 height: 350px;
2892 background-size: cover;
2893 /* Ensure background scrolls with page and is nicely centered */
2894 background-attachment: scroll;
2895 background-position: center center;
2896 border-radius: 0;
2897 display: flex;
2898 align-items: center;
2899 justify-content: center;
2900 margin-bottom: 0;
2901 }
2902
2903 .yatra-taxonomy-hero-overlay {
2904 position: absolute;
2905 inset: 0;
2906 background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.8));
2907 }
2908
2909 .yatra-taxonomy-hero-content {
2910 position: relative;
2911 z-index: 10;
2912 text-align: center;
2913 max-width: 800px;
2914 padding: 0 20px;
2915 }
2916
2917 .yatra-taxonomy-hero-content,
2918 .yatra-taxonomy-hero-content * {
2919 color: #ffffff !important;
2920 }
2921
2922 .yatra-taxonomy-page .yatra-breadcrumb {
2923 margin-bottom: 16px;
2924 font-size: 14px;
2925 }
2926
2927 .yatra-taxonomy-page .yatra-breadcrumb a {
2928 color: rgba(255,255,255,0.9) !important;
2929 text-decoration: none;
2930 transition: color 0.2s ease;
2931 }
2932
2933 .yatra-taxonomy-page .yatra-breadcrumb a:hover {
2934 color: #ffffff !important;
2935 text-decoration: underline;
2936 }
2937
2938 .yatra-taxonomy-page .yatra-breadcrumb-sep {
2939 margin: 0 8px;
2940 color: rgba(255,255,255,0.7) !important;
2941 }
2942
2943 .yatra-taxonomy-page .yatra-breadcrumb-current {
2944 color: rgba(255,255,255,0.9) !important;
2945 }
2946
2947 .yatra-taxonomy-title {
2948 font-size: 48px;
2949 font-weight: 700;
2950 margin: 0 0 16px;
2951 color: #ffffff !important;
2952 text-shadow: 0 3px 10px rgba(0,0,0,0.6);
2953 line-height: 1.2;
2954 }
2955
2956 .yatra-taxonomy-description {
2957 font-size: 18px;
2958 line-height: 1.6;
2959 color: rgba(255,255,255,0.95) !important;
2960 margin: 0 0 20px;
2961 }
2962
2963 .yatra-taxonomy-stats {
2964 display: flex;
2965 gap: 24px;
2966 justify-content: center;
2967 }
2968
2969 .yatra-taxonomy-trip-count {
2970 display: flex;
2971 align-items: center;
2972 gap: 8px;
2973 background: rgba(255,255,255,0.2);
2974 backdrop-filter: blur(8px);
2975 padding: 10px 20px;
2976 border-radius: 50px;
2977 font-weight: 500;
2978 color: #ffffff !important;
2979 }
2980
2981 .yatra-taxonomy-trip-count svg {
2982 color: #ffffff !important;
2983 stroke: #ffffff !important;
2984 }
2985
2986 /* No Trips Found - Taxonomy Page */
2987 .yatra-taxonomy-page .yatra-no-trips-found {
2988 text-align: center;
2989 padding: 80px 20px;
2990 background: #f9fafb;
2991 border-radius: 16px;
2992 margin-top: 20px;
2993 }
2994
2995 .yatra-taxonomy-page .yatra-no-trips-icon {
2996 color: #9ca3af;
2997 margin-bottom: 20px;
2998 }
2999
3000 .yatra-taxonomy-page .yatra-no-trips-found h3 {
3001 font-size: 24px;
3002 font-weight: 600;
3003 color: #111827;
3004 margin: 0 0 12px;
3005 }
3006
3007 .yatra-taxonomy-page .yatra-no-trips-found p {
3008 color: #6b7280;
3009 font-size: 16px;
3010 margin: 0 0 24px;
3011 max-width: 400px;
3012 margin-left: auto;
3013 margin-right: auto;
3014 }
3015
3016 .yatra-btn-primary {
3017 display: inline-block;
3018 background: #059669;
3019 color: #fff !important;
3020 padding: 12px 28px;
3021 border-radius: 8px;
3022 font-weight: 600;
3023 text-decoration: none;
3024 transition: background 0.2s ease;
3025 }
3026
3027 .yatra-btn-primary:hover {
3028 background: #047857;
3029 color: #fff !important;
3030 }
3031
3032 /* Responsive - Taxonomy Page */
3033 @media (max-width: 768px) {
3034 .yatra-taxonomy-hero {
3035 height: 280px;
3036 }
3037
3038 .yatra-taxonomy-title {
3039 font-size: 32px;
3040 }
3041
3042 .yatra-taxonomy-description {
3043 font-size: 16px;
3044 }
3045 }
3046
3047 /* Trip Stats Row - Clean Modern Design */
3048 .yatra-trip-stats-row {
3049 display: flex;
3050 gap: 20px;
3051 margin: 20px 0;
3052 padding: 0;
3053 }
3054
3055 .yatra-trip-stat {
3056 display: flex;
3057 align-items: center;
3058 gap: 12px;
3059 flex: 1;
3060 min-width: 0;
3061 }
3062
3063 .yatra-stat-icon {
3064 width: 16px;
3065 height: 16px;
3066 border-radius: 4px;
3067 display: flex;
3068 align-items: center;
3069 justify-content: center;
3070 flex-shrink: 0;
3071 }
3072
3073 .yatra-stat-icon svg {
3074 width: 16px;
3075 height: 16px;
3076 }
3077
3078 .yatra-stat-icon.duration {
3079 background: linear-gradient(135deg, var(--yatra-primary, #3b82f6), var(--yatra-primary-dark, #2563eb));
3080 color: white;
3081 }
3082
3083 .yatra-stat-icon.difficulty {
3084 background: linear-gradient(135deg, #f59e0b, #d97316);
3085 color: white;
3086 }
3087
3088 .yatra-stat-icon.group {
3089 background: linear-gradient(135deg, #10b981, #059669);
3090 color: white;
3091 }
3092
3093 .yatra-stat-icon.rating {
3094 background: linear-gradient(135deg, #fbbf24, #f59e0b);
3095 color: white;
3096 }
3097
3098 .yatra-stat-content {
3099 display: flex;
3100 flex-direction: column;
3101 }
3102
3103 .yatra-stat-value {
3104 font-size: 16px;
3105 font-weight: 700;
3106 color: #1f2937;
3107 line-height: 1;
3108 }
3109
3110 .yatra-stat-label {
3111 font-size: 12px;
3112 color: #6b7280;
3113 font-weight: 500;
3114 line-height: 1;
3115 }
3116
3117
3118 /* Responsive design */
3119 @media (max-width: 768px) {
3120 .yatra-trip-stats-row {
3121 gap: 12px;
3122 margin: 16px 0;
3123 }
3124
3125 .yatra-stat-icon {
3126 width: 16px;
3127 height: 16px;
3128 }
3129
3130 .yatra-stat-value {
3131 font-size: 14px;
3132 }
3133
3134 .yatra-stat-label {
3135 font-size: 11px;
3136 }
3137 }
3138
3139 @media (max-width: 480px) {
3140 .yatra-trip-stats-row {
3141 flex-direction: column;
3142 gap: 8px;
3143 padding: 8px 0;
3144 }
3145
3146 .yatra-trip-stat {
3147 justify-content: flex-start;
3148 }
3149
3150 .yatra-stat-content {
3151 flex-direction: row;
3152 align-items: center;
3153 gap: 4px;
3154 }
3155
3156 .yatra-stat-label {
3157 margin-top: 0;
3158 }
3159 }
3160
3161 /* Trip Card Content Area - Enhanced Design */
3162 .yatra-trip-content {
3163 padding: 20px 24px;
3164 background: #ffffff;
3165 }
3166
3167 /* Trip card image overlay */
3168 .yatra-trip-card-image {
3169 position: relative;
3170 overflow: hidden;
3171 display: block;
3172 height: 240px;
3173 }
3174
3175 .yatra-trip-card-image::before {
3176 content: '';
3177 position: absolute;
3178 top: 0;
3179 left: 0;
3180 right: 0;
3181 bottom: 0;
3182 background: linear-gradient(to bottom,
3183 rgba(0, 0, 0, 0.2) 0%,
3184 rgba(0, 0, 0, 0.5) 100%);
3185 z-index: 1;
3186 pointer-events: none;
3187 }
3188
3189 .yatra-trip-card-image img {
3190 display: block;
3191 width: 100%;
3192 height: 100%;
3193 object-fit: cover;
3194 position: relative;
3195 z-index: 0;
3196 transition: opacity 0.3s ease;
3197 }
3198
3199 .yatra-trip-card-image:hover img {
3200 opacity: 0.9;
3201 }
3202
3203 .yatra-trip-card-image .yatra-discount-badge,
3204 .yatra-trip-card-image .yatra-group-discount-badge,
3205 .yatra-trip-card-image .yatra-favorite-btn,
3206 .yatra-trip-card-image .yatra-difficulty-overlay {
3207 position: absolute;
3208 z-index: 3;
3209 }
3210
3211 .yatra-trip-title {
3212 font-weight: 700;
3213 font-size: 20px;
3214 line-height: 1.3;
3215 margin-bottom: 12px;
3216 letter-spacing: -0.02em;
3217 }
3218
3219 .yatra-trip-title-link {
3220 text-decoration: none;
3221 transition: all 0.2s ease;
3222 display: block;
3223 }
3224
3225 .yatra-trip-title-link:hover {
3226 transform: translateY(-1px);
3227 }
3228
3229 .yatra-trip-short-description {
3230 color: #000000;
3231 line-height: 1.6;
3232 font-size: 14px;
3233 margin-bottom: 16px;
3234
3235 }
3236
3237 /* Enhanced taxonomy sections */
3238 .yatra-trip-destinations,
3239 .yatra-trip-activities,
3240 .yatra-trip-categories {
3241 color: #000000 !important;
3242 margin-bottom: 14px;
3243 padding: 8px 0;
3244 border-bottom: 1px solid #f1f5f9;
3245 font-size: 13px;
3246 }
3247
3248 .yatra-trip-destinations:last-child,
3249 .yatra-trip-activities:last-child,
3250 .yatra-trip-categories:last-child {
3251 border-bottom: none;
3252 margin-bottom: 0;
3253 }
3254
3255 .destination-link,
3256 .activity-link,
3257 .category-link {
3258 color: #000000 !important;
3259 text-decoration: none;
3260 font-weight: 500;
3261 transition: all 0.2s ease;
3262 }
3263
3264 .destination-link:hover,
3265 .activity-link:hover,
3266 .category-link:hover {
3267 color: #000000 !important;
3268 text-decoration: underline;
3269 background: rgba(0, 0, 0, 0.02);
3270 padding: 2px 4px;
3271 border-radius: 3px;
3272 }
3273
3274 /* Enhanced rating section */
3275 .yatra-trip-rating-row {
3276 color: #000000 !important;
3277 display: flex;
3278 align-items: center;
3279 gap: 8px;
3280 margin-bottom: 16px;
3281 padding: 8px 0;
3282 }
3283
3284 .yatra-rating-value {
3285 color: #000000 !important;
3286 font-weight: 600;
3287 font-size: 16px;
3288 }
3289
3290 .yatra-rating-count {
3291 color: #000000 !important;
3292 font-size: 12px;
3293 opacity: 0.7;
3294 }
3295
3296 /* Enhanced pricing section */
3297 .yatra-trip-price {
3298 color: #000000 !important;
3299 margin-bottom: 16px;
3300 padding: 12px 0;
3301
3302 }
3303
3304 .yatra-price-current {
3305 color: #000000 !important;
3306 font-weight: 800;
3307 font-size: 24px;
3308 line-height: 1;
3309 }
3310
3311 .yatra-price-original {
3312 color: #000000 !important;
3313 text-decoration: line-through;
3314 font-size: 16px;
3315 opacity: 0.6;
3316 margin-left: 8px;
3317 }
3318
3319 .yatra-price-prefix {
3320 color: #000000 !important;
3321 font-size: 14px;
3322 opacity: 0.7;
3323 margin-right: 4px;
3324 }
3325
3326 /* Clean and minimal stats row */
3327 .yatra-trip-stats-row {
3328 display: flex;
3329 flex-wrap: wrap;
3330 gap: 20px;
3331 padding: 16px 0;
3332 margin: 16px 0;
3333 }
3334
3335 .yatra-trip-stat {
3336 display: flex;
3337 align-items: center;
3338 gap: 8px;
3339 min-width: 0;
3340 }
3341
3342
3343 .yatra-stat-content {
3344 display: flex;
3345 flex-direction: column;
3346 min-width: 0;
3347 }
3348
3349 .yatra-stat-value {
3350 color: #000000 !important;
3351 font-weight: 600;
3352 font-size: 14px;
3353 line-height: 1.2;
3354 }
3355
3356 .yatra-stat-label {
3357 color: #000000 !important;
3358 font-size: 12px;
3359 line-height: 1.2;
3360 margin-top: 1px;
3361 opacity: 0.6;
3362 }
3363
3364 /* Footer elements - Keep original colors */
3365 .yatra-trip-footer {
3366 color: #475569 !important;
3367 }
3368
3369 /* Badge colors */
3370 .yatra-discount-badge {
3371 background: linear-gradient(135deg, #dc2626, #b91c1c);
3372 color: #ffffff !important;
3373 font-weight: 600;
3374 font-size: 12px;
3375 padding: 4px 8px;
3376 border-radius: 4px;
3377 }
3378
3379 .yatra-group-discount-badge {
3380 background: linear-gradient(135deg, #10b981, #059669);
3381 color: #ffffff !important;
3382 font-weight: 500;
3383 font-size: 11px;
3384 padding: 4px 8px;
3385 border-radius: 4px;
3386 }
3387
3388 /* Favorite button */
3389 .yatra-favorite-btn {
3390 color: #64748b !important;
3391 background: rgba(255, 255, 255, 0.9);
3392 border: 1px solid #e2e8f0;
3393 border-radius: 6px;
3394 padding: 6px;
3395 transition: all 0.2s ease;
3396 }
3397
3398 .yatra-favorite-btn:hover {
3399 color: #dc2626 !important;
3400 border-color: #dc2626;
3401 background: rgba(255, 255, 255, 1);
3402 }
3403
3404 .yatra-favorite-btn.active {
3405 color: #dc2626 !important;
3406 background: #fef2f2;
3407 border-color: #dc2626;
3408 }
3409
3410 /* Difficulty overlay */
3411 .yatra-difficulty-overlay {
3412 background: rgba(59, 130, 246, 0.9);
3413 backdrop-filter: blur(4px);
3414 color: #ffffff !important;
3415 font-weight: 600;
3416 font-size: 12px;
3417 padding: 6px 10px;
3418 border-radius: 6px;
3419 border: 1px solid rgba(255, 255, 255, 0.2);
3420 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
3421 }
3422
3423 /* Gutenberg: live listing preview (ServerSideRender) */
3424 .yatra-block-editor-preview {
3425 min-height: 48px;
3426 }
3427
3428 .yatra-block-editor-preview .components-placeholder {
3429 min-height: 120px;
3430 }
3431
3432 /**
3433 * Listing block section titles — same look in the editor (theme/iframe) as on the page.
3434 * Trip uses .yatra-tour-header like activity/destination; these rules beat theme h2 resets.
3435 */
3436 .wp-block-yatra-tour .yatra-tour-header .yatra-tour-title,
3437 .wp-block-yatra-activity .yatra-activity-header .yatra-activity-title,
3438 .wp-block-yatra-destination .yatra-destination-header .yatra-destination-title,
3439 .editor-styles-wrapper .yatra-tour-header .yatra-tour-title,
3440 .editor-styles-wrapper .yatra-activity-header .yatra-activity-title,
3441 .editor-styles-wrapper .yatra-destination-header .yatra-destination-title,
3442 .block-editor-block-list__layout .yatra-tour-header .yatra-tour-title,
3443 .block-editor-block-list__layout .yatra-activity-header .yatra-activity-title,
3444 .block-editor-block-list__layout .yatra-destination-header .yatra-destination-title {
3445 margin: 0;
3446 padding: 0;
3447 color: #1f2937;
3448 font-size: 1.875rem;
3449 font-weight: 600;
3450 line-height: 1.25;
3451 letter-spacing: normal;
3452 text-transform: none;
3453 font-style: normal;
3454 font-family: inherit;
3455 }
3456
3457 .wp-block-yatra-tour .yatra-tour-header .yatra-tour-count,
3458 .wp-block-yatra-activity .yatra-activity-header .yatra-activity-count,
3459 .wp-block-yatra-destination .yatra-destination-header .yatra-destination-count,
3460 .editor-styles-wrapper .yatra-tour-header .yatra-tour-count,
3461 .editor-styles-wrapper .yatra-activity-header .yatra-activity-count,
3462 .editor-styles-wrapper .yatra-destination-header .yatra-destination-count,
3463 .block-editor-block-list__layout .yatra-tour-header .yatra-tour-count,
3464 .block-editor-block-list__layout .yatra-activity-header .yatra-activity-count,
3465 .block-editor-block-list__layout .yatra-destination-header .yatra-destination-count {
3466 margin: 0;
3467 color: #6b7280;
3468 font-size: 0.875rem;
3469 font-weight: 400;
3470 line-height: 1.5;
3471 }
3472
3473