PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.9
Yatra – Travel Booking & Tour Operator Software v3.0.9
3.0.16 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 All 84 releases
yatra / assets / css / trip.css

trip.css in Yatra – Travel Booking & Tour Operator Software 3.0.9, at assets/css/trip.css

13,754 lines 277.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Yatra Single Trip Page Styles
3 * Industry-standard design based on leading travel booking platforms
4 * Uses common.css variables for design consistency
5 */
6
7 /* ============================================
8 RESET & BASE
9 Uses consistent container widths from common.css
10 ============================================ */
11 .yatra-single-trip {
12 font-family: var(--yatra-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif);
13 line-height: 1.6;
14 color: var(--yatra-text-primary, #1a1a1a);
15 width: 100%;
16 min-height: 100vh;
17 }
18
19 /* Inner container with max-width */
20 .yatra-single-trip > .yatra-trip-hero-new,
21 .yatra-single-trip > .yatra-trip-tags,
22 .yatra-single-trip > .yatra-trip-quick-facts-section,
23 .yatra-single-trip > .yatra-trip-container {
24 width: 100%;
25 max-width: var(--yatra-container-max-width, 1300px);
26 margin-left: auto;
27 margin-right: auto;
28 }
29
30 .yatra-single-trip > * {
31 max-width: 100%;
32 }
33
34 .yatra-single-trip * {
35 box-sizing: border-box;
36 }
37
38 .yatra-single-trip img {
39 max-width: 100%;
40 height: auto;
41 }
42
43 /* ============================================
44 UNIFIED SPACING SYSTEM
45 Consistent spacing across all sections
46 ============================================ */
47
48 /* Spacing Variables - Consistent Design System */
49 :root {
50 --yatra-section-padding: 60px;
51 --yatra-section-gap: 48px;
52 --yatra-container-padding: 20px;
53 --yatra-element-gap: 24px;
54 --yatra-small-gap: 16px;
55 --yatra-tiny-gap: 12px;
56 --yatra-mini-gap: 8px;
57 --yatra-micro-gap: 6px;
58 }
59
60 /* Mobile Responsive Spacing */
61 @media (max-width: 768px) {
62 :root {
63 --yatra-section-padding: 40px;
64 --yatra-section-gap: 32px;
65 --yatra-container-padding: 16px;
66 --yatra-element-gap: 20px;
67 --yatra-small-gap: 12px;
68 --yatra-tiny-gap: 8px;
69 --yatra-mini-gap: 6px;
70 --yatra-micro-gap: 4px;
71 }
72 }
73
74 @media (max-width: 480px) {
75 :root {
76 --yatra-section-padding: 32px;
77 --yatra-section-gap: 24px;
78 --yatra-container-padding: 12px;
79 --yatra-element-gap: 16px;
80 --yatra-small-gap: 12px;
81 --yatra-tiny-gap: 8px;
82 --yatra-mini-gap: 6px;
83 --yatra-micro-gap: 4px;
84 --yatra-hero-mobile-padding-top: 12px;
85 --yatra-hero-mobile-padding-bottom: 16px;
86 }
87 }
88
89 @media (min-width: 481px) and (max-width: 768px) {
90 :root {
91 --yatra-hero-mobile-padding-top: 16px;
92 --yatra-hero-mobile-padding-bottom: 20px;
93 }
94 }
95
96 /* Update main container padding */
97 .yatra-single-trip {
98 padding: 0;
99 }
100
101 /* Unified Container System */
102 .yatra-single-trip > .yatra-trip-hero-new,
103 .yatra-single-trip > .yatra-trip-tags,
104 .yatra-single-trip > .yatra-trip-quick-facts-section,
105 .yatra-single-trip > .yatra-trip-attributes,
106 .yatra-single-trip > .yatra-trip-container,
107 .yatra-single-trip > .yatra-group-discounts-section,
108 .yatra-single-trip > .yatra-similar-section {
109 width: 100%;
110 max-width: var(--yatra-container-max-width, 1300px);
111 margin-left: auto;
112 margin-right: auto;
113 padding-left: var(--yatra-container-padding);
114 padding-right: var(--yatra-container-padding);
115 }
116
117 /* Reviews: descendant selector so width matches .yatra-trip-container even if wrapped; align-self fixes flex parents with align-items:center */
118 .yatra-single-trip .yatra-reviews-section {
119 width: 100%;
120 max-width: var(--yatra-container-max-width, 1300px);
121 margin-left: auto;
122 margin-right: auto;
123 padding-left: var(--yatra-container-padding);
124 padding-right: var(--yatra-container-padding);
125 box-sizing: border-box;
126 align-self: stretch;
127 min-width: 0;
128 }
129
130 /* Unified Section Spacing
131 One rhythm between stacked blocks: previous section’s bottom spacing only.
132 --yatra-section-padding: top of the first block (hero) below the page chrome only.
133 Do not stack padding-top: section-padding on a section that already follows margin/padding-bottom: section-gap. */
134 .yatra-trip-hero-new {
135 padding-top: var(--yatra-section-padding);
136 padding-bottom: var(--yatra-section-gap);
137 }
138
139 .yatra-trip-tags {
140 padding-top: 0;
141 padding-bottom: var(--yatra-section-gap);
142 }
143
144 .yatra-trip-quick-facts-section,
145 .yatra-trip-attributes {
146 padding-top: 0;
147 padding-bottom: var(--yatra-section-gap);
148 background: transparent;
149 }
150
151 .yatra-trip-container {
152 padding-top: 0;
153 padding-bottom: var(--yatra-section-gap);
154 }
155
156 /* When reviews follows the main grid directly, avoid double gap (trip bottom + reviews top) */
157 .yatra-trip-container:has(+ .yatra-reviews-section) {
158 padding-bottom: 0;
159 }
160
161 /* Full-width sections (match template class names) — see also SIMILAR TRIPS / REVIEWS blocks */
162 .yatra-group-discounts-section {
163 padding-top: 0;
164 padding-bottom: var(--yatra-section-gap);
165 }
166
167 /* ============================================
168 COMMON BUTTON STYLES
169 ============================================ */
170 .yatra-btn {
171 display: inline-flex;
172 align-items: center;
173 justify-content: center;
174 gap: 8px;
175 padding: 14px 28px;
176 background: var(--yatra-primary, #3b82f6);
177 color: #fff;
178 border: none;
179 border-radius: 8px;
180 font-size: 15px;
181 font-weight: 600;
182 cursor: pointer;
183 text-decoration: none;
184 transition: all 0.3s ease;
185 }
186
187 .yatra-btn svg {
188 flex-shrink: 0;
189 }
190
191 .yatra-btn:hover {
192 background: var(--yatra-primary-dark, #2563eb);
193 color: #fff;
194 transform: translateY(-1px);
195 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
196 }
197
198 /* ============================================
199 SVG ICONS
200 ============================================ */
201 .yatra-icon {
202 width: 24px;
203 height: 24px;
204 display: inline-block;
205 flex-shrink: 0;
206 }
207
208 .yatra-icon-sm {
209 width: 20px;
210 height: 20px;
211 }
212
213 .yatra-icon-lg {
214 width: 32px;
215 height: 32px;
216 }
217
218 /* Font Awesome webfont icons use font-size (not SVG width/height) */
219 .yatra-icon.fa-solid,
220 .yatra-icon.fa-regular,
221 .yatra-icon-sm.fa-solid,
222 .yatra-icon-sm.fa-regular,
223 .yatra-icon-lg.fa-solid,
224 .yatra-icon-lg.fa-regular,
225 .yatra-icon-xl.fa-solid,
226 .yatra-icon-xl.fa-regular {
227 display: inline-flex;
228 align-items: center;
229 justify-content: center;
230 font-style: normal;
231 line-height: 1;
232 color: inherit;
233 }
234
235 .yatra-icon-sm.fa-solid,
236 .yatra-icon-sm.fa-regular {
237 font-size: 18px;
238 }
239
240 .yatra-icon.fa-solid,
241 .yatra-icon.fa-regular {
242 font-size: 22px;
243 }
244
245 .yatra-icon-lg.fa-solid,
246 .yatra-icon-lg.fa-regular {
247 font-size: 28px;
248 }
249
250 .yatra-icon-xl.fa-solid,
251 .yatra-icon-xl.fa-regular {
252 font-size: 40px;
253 }
254
255 .yatra-icon-xl {
256 width: 48px;
257 height: 48px;
258 }
259
260 .yatra-booking-button svg,
261 .yatra-booking-enquiry-button svg,
262 .yatra-card-book-btn svg {
263 display: inline-block !important;
264 visibility: visible !important;
265 opacity: 1 !important;
266 color: inherit !important;
267 stroke: currentColor !important;
268 fill: none !important;
269 }
270
271 #check-availability-btn svg,
272 button.yatra-booking-button svg,
273 button.yatra-booking-enquiry-button svg,
274 button.yatra-card-book-btn svg,
275 a.yatra-card-book-btn svg {
276 display: inline-block !important;
277 visibility: visible !important;
278 opacity: 1 !important;
279 width: 18px !important;
280 height: 18px !important;
281 flex-shrink: 0 !important;
282 }
283
284 #check-availability-btn svg,
285 button.yatra-card-book-btn svg,
286 button.yatra-booking-button svg {
287 color: #fff !important;
288 stroke: #fff !important;
289 fill: none !important;
290 stroke-width: 2 !important;
291 }
292
293 .yatra-booking-button svg path,
294 .yatra-booking-enquiry-button svg path,
295 .yatra-card-book-btn svg path {
296 stroke: currentColor !important;
297 }
298
299 #check-availability-btn svg path,
300 button.yatra-card-book-btn svg path,
301 button.yatra-booking-button svg path,
302 button.yatra-booking-enquiry-button svg path {
303 stroke: currentColor !important;
304 }
305
306 #check-availability-btn svg path,
307 button.yatra-card-book-btn svg path,
308 button.yatra-booking-button svg path {
309 stroke: #fff !important;
310 }
311
312 /* ============================================
313 STICKY NAVIGATION BAR
314 ============================================ */
315 .yatra-sticky-nav {
316 background: #fff;
317 border-bottom: 1px solid #e5e7eb;
318 box-shadow: 0 2px 8px rgba(0,0,0,0.05);
319 position: fixed;
320 top: 0;
321 left: 0;
322 right: 0;
323 z-index: 100;
324 transform: translateY(-100%);
325 opacity: 0;
326 transition: transform 0.3s ease, opacity 0.3s ease;
327 pointer-events: none;
328 }
329
330 /* Account for WordPress admin bar */
331 .admin-bar .yatra-sticky-nav {
332 top: 32px;
333 }
334
335 @media screen and (max-width: 782px) {
336 .admin-bar .yatra-sticky-nav {
337 top: 46px;
338 }
339 }
340
341 .yatra-sticky-nav.visible {
342 transform: translateY(0);
343 opacity: 1;
344 pointer-events: auto;
345 }
346
347 /*
348 * Hide the desktop sticky tab strip on mobile. On phones, the mobile sticky
349 * sidebar (yatra-mobile-sticky-sidebar) handles the "back to booking" affordance,
350 * and the horizontally-scrolling top nav competes with the theme header + the WP
351 * admin bar for limited vertical space. Same 768px breakpoint other trip mobile
352 * rules use elsewhere in this file.
353 */
354 @media (max-width: 768px) {
355 .yatra-sticky-nav,
356 .yatra-sticky-nav-container {
357 display: none !important;
358 }
359 }
360
361 .yatra-sticky-nav-container {
362 max-width: var(--yatra-container-max-width, 1300px);
363 margin: 0 auto;
364 padding: 0 var(--yatra-container-padding);
365 display: flex;
366 align-items: center;
367 gap: var(--yatra-element-gap);
368 overflow-x: auto;
369 -webkit-overflow-scrolling: touch;
370 }
371
372 .yatra-sticky-nav-item {
373 display: flex;
374 align-items: center;
375 gap: var(--yatra-mini-gap);
376 padding: 16px 0;
377 color: #6b7280;
378 text-decoration: none;
379 font-size: 14px;
380 font-weight: 500;
381 white-space: nowrap;
382 border-bottom: 3px solid transparent;
383 transition: all 0.3s ease;
384 cursor: pointer;
385 }
386
387 .yatra-sticky-nav-item:hover,
388 .yatra-sticky-nav-item.active {
389 color: var(--yatra-primary, #3b82f6);
390 border-bottom-color: var(--yatra-primary, #3b82f6);
391 }
392
393 .yatra-sticky-nav-item svg {
394 width: 18px;
395 height: 18px;
396 }
397
398 .yatra-sticky-nav-price {
399 margin-left: auto;
400 display: flex;
401 align-items: center;
402 gap: 8px;
403 padding: 16px 0;
404 color: var(--yatra-primary, #3b82f6);
405 font-size: 18px;
406 font-weight: 700;
407 white-space: nowrap;
408 }
409
410 .yatra-sticky-nav-price svg {
411 width: 20px;
412 height: 20px;
413 }
414
415 .yatra-sticky-nav-cta {
416 margin-left: auto;
417 display: flex;
418 align-items: center;
419 }
420
421 .yatra-sticky-nav-cta .yatra-btn {
422 padding: 8px 16px;
423 font-size: 14px;
424 font-weight: 600;
425 white-space: nowrap;
426 }
427
428 .yatra-sticky-nav-cta .yatra-btn-primary {
429 background: var(--yatra-primary, #3b82f6);
430 color: white;
431 border-color: var(--yatra-primary, #3b82f6);
432 }
433
434 .yatra-sticky-nav-cta .yatra-btn-primary:hover {
435 background: var(--yatra-primary-dark, #2563eb);
436 border-color: var(--yatra-primary-dark, #2563eb);
437 color: white;
438 }
439
440 /* ============================================
441 NEW HERO SECTION
442 ============================================ */
443 .yatra-trip-hero-new {
444 max-width: 100%;
445 margin: 0 auto;
446 padding-top: var(--yatra-section-padding);
447 padding-bottom: var(--yatra-section-gap);
448 }
449
450 .yatra-hero-header {
451 margin-bottom: 24px;
452 text-align: left;
453 }
454
455 .yatra-hero-breadcrumb {
456 display: flex;
457 align-items: center;
458 flex-wrap: wrap;
459 row-gap: 4px;
460 gap: 8px;
461 margin-bottom: 12px;
462 font-size: 13px;
463 color: #6b7280;
464 justify-content: flex-start;
465 }
466
467 .yatra-hero-breadcrumb a {
468 color: var(--yatra-primary, #3b82f6);
469 text-decoration: none;
470 transition: color 0.2s ease;
471 }
472
473 .yatra-hero-breadcrumb a:hover {
474 color: var(--yatra-primary-dark, #2563eb);
475 text-decoration: underline;
476 }
477
478 .yatra-hero-breadcrumb-separator {
479 color: #9ca3af;
480 margin: 0 4px;
481 }
482
483 .yatra-hero-breadcrumb-current {
484 color: #374151;
485 font-weight: 500;
486 min-width: 0;
487 overflow-wrap: anywhere;
488 word-break: break-word;
489 }
490
491 .yatra-hero-meta {
492 display: flex;
493 align-items: center;
494 justify-content: flex-start;
495 flex-wrap: wrap;
496 gap: 12px;
497 margin-bottom: 16px;
498 text-align: left;
499 }
500
501 .yatra-trip-hero-title-new {
502 font-size: 2.5rem;
503 font-weight: 700;
504 color: #111827;
505 margin: 0 0 16px 0;
506 line-height: 1.2;
507 letter-spacing: -0.01em;
508 text-align: left;
509 }
510
511 .yatra-hero-rating {
512 display: flex;
513 align-items: center;
514 justify-content: flex-start;
515 flex-wrap: wrap;
516 gap: 12px;
517 text-align: left;
518 }
519
520 .yatra-hero-location {
521 display: flex;
522 align-items: center;
523 gap: 6px;
524 color: #6b7280;
525 font-size: 15px;
526 font-weight: 500;
527 }
528
529 .yatra-hero-duration {
530 display: flex;
531 align-items: center;
532 gap: 6px;
533 color: #6b7280;
534 font-size: 15px;
535 font-weight: 500;
536 }
537
538 .yatra-rating-stars {
539 display: flex;
540 gap: 2px;
541 font-size: 20px;
542 line-height: 1;
543 }
544
545 /* Do not set gold on the container — it made every star look filled. Empty = gray, .filled = gold. */
546 .yatra-rating-stars > .yatra-star,
547 .yatra-rating-stars .yatra-star {
548 display: inline-block;
549 font-size: 20px;
550 color: #d1d5db;
551 }
552
553 .yatra-rating-stars .yatra-star.filled {
554 color: var(--yatra-star, #fbbf24);
555 }
556
557 .yatra-no-rating .yatra-star {
558 color: #d1d5db;
559 }
560
561 .yatra-no-reviews {
562 color: #9ca3af;
563 font-style: italic;
564 }
565
566 .yatra-rating-stars .yatra-star.half {
567 background: linear-gradient(
568 90deg,
569 var(--yatra-star, #fbbf24) 50%,
570 #d1d5db 50%
571 );
572 -webkit-background-clip: text;
573 -webkit-text-fill-color: transparent;
574 background-clip: text;
575 color: transparent;
576 }
577
578 .yatra-rating-number {
579 font-size: 18px;
580 font-weight: 700;
581 color: #111827;
582 }
583
584 .yatra-rating-text {
585 font-size: 14px;
586 color: #6b7280;
587 }
588
589 .yatra-hero-images {
590 display: grid;
591 grid-template-columns: 3fr 1fr;
592 gap: 16px;
593 margin-bottom: 24px;
594 align-items: start;
595 width: 100%;
596 }
597
598 .yatra-hero-main-image {
599 position: relative;
600 border-radius: 16px;
601 overflow: hidden;
602 background: #f3f4f6;
603 width: 100%;
604 height: 500px;
605 }
606
607 .yatra-hero-main-img-link {
608 display: block;
609 position: relative;
610 height: 100%;
611 width: 100%;
612 }
613
614
615 /* Hero Media Badges */
616 .yatra-hero-media-badges {
617 position: absolute;
618 top: 15px;
619 left: 15px;
620 display: flex;
621 gap: 8px;
622 z-index: 10;
623 }
624
625 .yatra-media-badge {
626 display: inline-flex;
627 align-items: center;
628 gap: 4px;
629 background: rgba(17, 24, 39, 0.55);
630 color: rgba(255, 255, 255, 0.95);
631 padding: 4px 8px;
632 border-radius: 999px;
633 font-size: 12px;
634 font-weight: 500;
635 letter-spacing: 0.2px;
636 border: none;
637 box-shadow: none;
638 backdrop-filter: none;
639 transition: none;
640 cursor: default;
641 user-select: none;
642 pointer-events: none;
643 }
644
645 .yatra-media-badge:hover {
646 background: rgba(17, 24, 39, 0.55);
647 }
648
649 .yatra-media-badge-icon {
650 width: 14px !important;
651 height: 14px !important;
652 flex-shrink: 0;
653 }
654
655 .yatra-media-badge-icon svg {
656 width: 100% !important;
657 height: 100% !important;
658 display: block !important;
659 }
660
661 .yatra-media-badge-count {
662 font-weight: 600;
663 }
664
665 /* Media Type Specific Colors */
666 .yatra-media-badge-image {
667 background: rgba(59, 130, 246, 0.8);
668 }
669
670 .yatra-media-badge-video {
671 background: rgba(239, 68, 68, 0.8);
672 }
673
674 .yatra-media-badge-youtube {
675 background: rgba(255, 0, 0, 0.8);
676 }
677
678 .yatra-media-badge-tour {
679 background: rgba(16, 185, 129, 0.8);
680 }
681
682 .yatra-media-badge-document {
683 background: rgba(245, 158, 11, 0.8);
684 }
685
686 /* Hero Media Switcher */
687 .yatra-hero-media-switcher {
688 position: absolute;
689 bottom: 15px;
690 left: 15px;
691 display: flex;
692 gap: 8px;
693 z-index: 10;
694 }
695
696 .yatra-media-switcher-btn {
697 display: flex;
698 align-items: center;
699 gap: 6px;
700 background: rgba(255, 255, 255, 0.9);
701 border: 1px solid rgba(0, 0, 0, 0.2);
702 color: #374151;
703 padding: 8px 12px;
704 border-radius: 20px;
705 font-size: 12px;
706 font-weight: 500;
707 cursor: pointer;
708 transition: all 0.3s ease;
709 backdrop-filter: blur(4px);
710 }
711
712 .yatra-media-switcher-btn:hover {
713 background: rgba(255, 255, 255, 0.95);
714 transform: translateY(-1px);
715 }
716
717 .yatra-media-switcher-btn.yatra-media-switcher-active {
718 background: var(--yatra-primary, #3b82f6);
719 color: white;
720 border-color: var(--yatra-primary, #3b82f6);
721 }
722
723 .yatra-media-switcher-icon {
724 width: 16px !important;
725 height: 16px !important;
726 flex-shrink: 0;
727 }
728
729 .yatra-media-switcher-icon svg {
730 width: 100% !important;
731 height: 100% !important;
732 display: block !important;
733 }
734
735 /* Hero Image Dark Overlay */
736 .yatra-hero-main-img-link::before {
737 content: '';
738 position: absolute;
739 top: 0;
740 left: 0;
741 right: 0;
742 bottom: 0;
743 background: rgba(0, 0, 0, 0.15);
744 z-index: 1;
745 pointer-events: none;
746 transition: background 0.3s ease;
747 }
748
749 .yatra-hero-main-img-link:hover::before {
750 background: rgba(0, 0, 0, 0.25);
751 }
752
753 /* Media Overlays */
754 .yatra-media-overlay {
755 position: absolute;
756 top: 0;
757 left: 0;
758 right: 0;
759 bottom: 0;
760 display: flex;
761 align-items: center;
762 justify-content: center;
763 cursor: pointer;
764 z-index: 5;
765 }
766
767 .yatra-play-button {
768 cursor: pointer;
769 transition: transform 0.3s ease;
770 }
771
772 .yatra-play-button:hover {
773 transform: scale(1.1);
774 }
775
776 .yatra-document-overlay {
777 background: rgba(0, 0, 0, 0.5);
778 }
779
780 .yatra-document-info {
781 display: flex;
782 align-items: center;
783 gap: 16px;
784 padding: 20px;
785 color: white;
786 text-align: left;
787 }
788
789 .yatra-document-icon {
790 flex-shrink: 0;
791 }
792
793 .yatra-document-details {
794 flex: 1;
795 }
796
797 .yatra-document-title {
798 font-size: 16px;
799 font-weight: 600;
800 margin-bottom: 4px;
801 line-height: 1.2;
802 }
803
804 .yatra-document-size {
805 font-size: 14px;
806 opacity: 0.8;
807 }
808
809 /* Play Button Overlay Styles */
810 .yatra-media-play-overlay {
811 pointer-events: auto;
812 cursor: pointer;
813 }
814
815 /* YouTube Overlay Styles */
816 .yatra-media-youtube-overlay {
817 background: rgba(0, 0, 0, 0.4);
818 display: flex;
819 align-items: center;
820 justify-content: center;
821 pointer-events: auto;
822 cursor: pointer;
823 }
824
825 .yatra-youtube-play-button {
826 cursor: pointer;
827 transition: all 0.3s ease;
828 filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.3));
829 }
830
831 .yatra-youtube-play-button:hover {
832 transform: scale(1.15);
833 filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.4));
834 }
835
836 .yatra-youtube-play-button svg {
837 display: block;
838 }
839
840 /* 360° Tour Overlay Styles */
841 .yatra-media-tour-overlay {
842 background: rgba(0, 0, 0, 0.5);
843 display: flex;
844 align-items: center;
845 justify-content: center;
846 pointer-events: auto;
847 cursor: pointer;
848 }
849
850 .yatra-tour-info {
851 display: flex;
852 flex-direction: column;
853 align-items: center;
854 gap: 16px;
855 padding: 24px;
856 color: white;
857 text-align: center;
858 background: rgba(16, 185, 129, 0.15);
859 border-radius: 16px;
860 border: 2px solid rgba(16, 185, 129, 0.4);
861 backdrop-filter: blur(8px);
862 max-width: 300px;
863 }
864
865 .yatra-tour-icon {
866 flex-shrink: 0;
867 filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.3));
868 }
869
870 .yatra-tour-details {
871 flex: 1;
872 }
873
874 .yatra-tour-type {
875 font-size: 15px;
876 opacity: 0.9;
877 margin-bottom: 12px;
878 color: rgba(255, 255, 255, 0.9);
879 }
880
881 .yatra-tour-action {
882 font-size: 14px;
883 font-weight: 600;
884 padding: 10px 20px;
885 background: rgba(16, 185, 129, 0.9);
886 border-radius: 24px;
887 border: 2px solid rgba(255, 255, 255, 0.3);
888 color: white;
889 transition: all 0.3s ease;
890 }
891
892 .yatra-tour-info:hover .yatra-tour-action {
893 background: rgba(16, 185, 129, 1);
894 transform: scale(1.05);
895 }
896
897 /* Responsive adjustments */
898 @media (max-width: 768px) {
899 .yatra-hero-media-badges {
900 top: 10px;
901 left: 10px;
902 gap: 6px;
903 }
904
905 .yatra-media-badge {
906 padding: 4px 8px;
907 font-size: 11px;
908 }
909
910 .yatra-hero-media-switcher {
911 bottom: 10px;
912 left: 10px;
913 gap: 6px;
914 flex-wrap: wrap;
915 }
916
917 .yatra-media-switcher-btn {
918 padding: 6px 10px;
919 font-size: 11px;
920 flex: 0 0 auto;
921 }
922
923 .yatra-media-switcher-icon {
924 width: 14px !important;
925 height: 14px !important;
926 }
927
928 .yatra-hero-media-switcher {
929 justify-content: flex-start;
930 flex-wrap: wrap;
931 }
932
933 /* Responsive overlays */
934 .yatra-youtube-play-button svg {
935 width: 70px !important;
936 height: 70px !important;
937 }
938
939 .yatra-tour-info {
940 max-width: 250px;
941 padding: 20px;
942 gap: 12px;
943 }
944
945 .yatra-tour-icon svg {
946 width: 60px !important;
947 height: 60px !important;
948 }
949
950 .yatra-tour-title {
951 font-size: 18px;
952 }
953
954 .yatra-tour-type {
955 font-size: 14px;
956 }
957
958 .yatra-tour-action {
959 font-size: 13px;
960 padding: 8px 16px;
961 }
962 }
963
964 @media (max-width: 480px) {
965 .yatra-hero-media-badges {
966 top: 8px;
967 left: 8px;
968 gap: 4px;
969 }
970
971 .yatra-media-badge {
972 padding: 3px 6px;
973 font-size: 10px;
974 }
975
976 .yatra-hero-media-switcher {
977 bottom: 8px;
978 left: 8px;
979 right: 8px;
980 gap: 4px;
981 }
982
983 .yatra-media-switcher-btn {
984 padding: 6px 10px;
985 font-size: 10px;
986 flex: 0 0 auto;
987 justify-content: center;
988 }
989
990 .yatra-media-switcher-btn span {
991 display: none;
992 }
993
994 .yatra-media-switcher-icon {
995 width: 16px !important;
996 height: 16px !important;
997 margin: 0;
998 }
999
1000 /* Smaller overlays for mobile */
1001 .yatra-youtube-play-button svg {
1002 width: 60px !important;
1003 height: 60px !important;
1004 }
1005
1006 .yatra-tour-info {
1007 max-width: 200px;
1008 padding: 16px;
1009 gap: 10px;
1010 }
1011
1012 .yatra-tour-icon svg {
1013 width: 50px !important;
1014 height: 50px !important;
1015 }
1016
1017 .yatra-tour-title {
1018 font-size: 16px;
1019 }
1020
1021 .yatra-tour-type {
1022 font-size: 13px;
1023 }
1024
1025 .yatra-tour-action {
1026 font-size: 12px;
1027 padding: 6px 12px;
1028 }
1029 }
1030
1031 /* Hide side images for non-image media types */
1032 .yatra-hero-side-images {
1033 transition: opacity 0.3s ease, width 0.3s ease;
1034 }
1035
1036 .yatra-hero-side-images.yatra-media-non-image {
1037 display: none;
1038 }
1039
1040 /* Make main image full width when side images are hidden */
1041 .yatra-hero-images.yatra-media-full-width .yatra-hero-main-image {
1042 grid-column: 1 / -1;
1043 }
1044
1045 /* Book Now Button Container - Right Side */
1046 .yatra-hero-book-now-container {
1047 position: absolute;
1048 bottom: 20px;
1049 right: 20px;
1050 z-index: 25;
1051 pointer-events: auto;
1052 }
1053
1054 .yatra-hero-book-now-btn {
1055 display: flex;
1056 align-items: center;
1057 gap: 8px;
1058 background: var(--yatra-primary, #3b82f6);
1059 color: white;
1060 padding: 12px 20px;
1061 border-radius: 8px;
1062 text-decoration: none;
1063 font-weight: 600;
1064 font-size: 14px;
1065 transition: all 0.3s ease;
1066 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
1067 }
1068
1069 .yatra-hero-book-now-btn:hover {
1070 background: var(--yatra-primary-dark, #2563eb);
1071 transform: translateY(-2px);
1072 box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4);
1073 }
1074
1075 /* Responsive adjustments for Book Now button */
1076 @media (max-width: 768px) {
1077 .yatra-hero-book-now-container {
1078 bottom: 10px;
1079 right: 10px;
1080 }
1081
1082 .yatra-hero-book-now-btn {
1083 padding: 10px 16px;
1084 font-size: 13px;
1085 }
1086 }
1087
1088 @media (max-width: 480px) {
1089 /* Avoid overlap with the full-width media switcher */
1090 .yatra-hero-book-now-container {
1091 bottom: 10px;
1092 right: 10px;
1093 z-index: 30;
1094 }
1095 }
1096
1097 .yatra-hero-book-now-btn.is-disabled,
1098 .yatra-hero-book-now-btn[aria-disabled="true"] {
1099 opacity: 0.6;
1100 cursor: not-allowed;
1101 pointer-events: none;
1102 }
1103
1104 /* Video Player and Tour Viewer modules are loaded separately */
1105
1106
1107 .yatra-hero-main-img {
1108 width: 100%;
1109 height: 100%;
1110 object-fit: cover;
1111 display: block;
1112 }
1113
1114 .yatra-hero-discount-tag {
1115 position: absolute;
1116 top: 16px;
1117 right: 16px;
1118 display: inline-block;
1119 width: max-content;
1120 max-width: calc(100% - 24px);
1121 white-space: nowrap;
1122 background: #ef4444;
1123 color: #fff;
1124 padding: 5px 10px;
1125 border-radius: 6px;
1126 font-size: 14px;
1127 font-weight: 700;
1128 text-transform: uppercase;
1129 letter-spacing: 0.5px;
1130 z-index: 10;
1131 box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
1132 }
1133
1134 .yatra-hero-book-now-btn {
1135 background: #10b981;
1136 color: #fff;
1137 border: none;
1138 padding: 14px 28px;
1139 border-radius: 8px;
1140 font-size: 16px;
1141 font-weight: 700;
1142 cursor: pointer;
1143 text-decoration: none;
1144 display: inline-flex;
1145 align-items: center;
1146 justify-content: center;
1147 gap: 8px;
1148 transition: all 0.3s ease;
1149 z-index: 10;
1150 box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
1151 }
1152
1153 .yatra-hero-book-now-btn svg {
1154 flex-shrink: 0;
1155 }
1156
1157 .yatra-hero-book-now-btn:hover {
1158 background: #059669;
1159 transform: translateY(-2px);
1160 box-shadow: 0 6px 16px rgba(16, 185, 129, 0.4);
1161 color: #fff;
1162 }
1163
1164 .yatra-hero-side-images {
1165 display: flex;
1166 flex-direction: column;
1167 gap: 16px;
1168 height: 500px;
1169 align-items: stretch;
1170 }
1171
1172 .yatra-side-image-item {
1173 position: relative;
1174 border-radius: 12px;
1175 overflow: hidden;
1176 background: #f3f4f6;
1177 cursor: pointer;
1178 transition: transform 0.3s ease;
1179 width: 100%;
1180 flex: 1;
1181 min-height: 0;
1182 display: flex;
1183 }
1184
1185 .yatra-side-image-item img {
1186 width: 100%;
1187 height: 100%;
1188 object-fit: cover;
1189 display: block;
1190 }
1191
1192 .yatra-side-image-item:hover {
1193 transform: scale(1.02);
1194 }
1195
1196 .yatra-favorite-btn {
1197 position: absolute !important;
1198 top: 12px !important;
1199 right: 12px !important;
1200 width: 40px !important;
1201 height: 40px !important;
1202 background: #ffffff !important;
1203 border: 1px solid rgba(0, 0, 0, 0.1) !important;
1204 border-radius: 50% !important;
1205 display: flex !important;
1206 align-items: center !important;
1207 justify-content: center !important;
1208 cursor: pointer !important;
1209 color: #6b7280 !important;
1210 transition: all 0.3s ease !important;
1211 z-index: 100 !important;
1212 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
1213 padding: 0 !important;
1214 margin: 0 !important;
1215 opacity: 1 !important;
1216 visibility: visible !important;
1217 }
1218
1219 .yatra-favorite-btn:hover {
1220 background: #ffffff !important;
1221 color: #ef4444 !important;
1222 transform: scale(1.1) !important;
1223 border-color: rgba(0, 0, 0, 0.1) !important;
1224 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
1225 }
1226
1227 .yatra-favorite-btn svg {
1228 width: 20px !important;
1229 height: 20px !important;
1230 stroke-width: 2 !important;
1231 display: block !important;
1232 fill: none !important;
1233 }
1234
1235 .yatra-favorite-btn svg path {
1236 stroke: currentColor !important;
1237 }
1238
1239 .yatra-view-all-photos-btn {
1240 position: absolute;
1241 bottom: 12px;
1242 right: 12px;
1243 background: #fff;
1244 color: #111827;
1245 border: none;
1246 padding: 10px 16px;
1247 border-radius: 8px;
1248 font-size: 13px;
1249 font-weight: 600;
1250 cursor: pointer;
1251 display: flex;
1252 align-items: center;
1253 gap: 6px;
1254 transition: all 0.3s ease;
1255 z-index: 10;
1256 box-shadow: 0 2px 8px rgba(0,0,0,0.15);
1257 }
1258
1259 .yatra-view-all-photos-btn:hover {
1260 background: #f9fafb;
1261 color: #111827;
1262 transform: translateY(-2px);
1263 box-shadow: 0 4px 12px rgba(0,0,0,0.2);
1264 }
1265
1266 .yatra-view-all-photos-btn svg {
1267 width: 16px;
1268 height: 16px;
1269 }
1270
1271
1272 /* ============================================
1273 OLD HERO SECTION (keeping for reference)
1274 ============================================ */
1275 .yatra-trip-hero {
1276 position: relative;
1277 width: 100%;
1278 height: 70vh;
1279 min-height: 600px;
1280 max-height: 800px;
1281 overflow: hidden;
1282 background: linear-gradient(135deg, var(--yatra-primary-darker, #1e3a8a) 0%, var(--yatra-primary, #3b82f6) 100%);
1283 }
1284
1285 .yatra-trip-hero-slider {
1286 width: 100%;
1287 height: 100%;
1288 position: relative;
1289 }
1290
1291 .yatra-trip-hero-slide {
1292 position: absolute;
1293 top: 0;
1294 left: 0;
1295 width: 100%;
1296 height: 100%;
1297 opacity: 0;
1298 transition: opacity 0.8s ease-in-out;
1299 }
1300
1301 .yatra-trip-hero-slide.active {
1302 opacity: 1;
1303 z-index: 1;
1304 }
1305
1306 .yatra-trip-hero-image {
1307 width: 100%;
1308 height: 100%;
1309 object-fit: cover;
1310 display: block;
1311 }
1312
1313 .yatra-trip-hero-overlay {
1314 position: absolute;
1315 top: 0;
1316 left: 0;
1317 right: 0;
1318 bottom: 0;
1319 background: linear-gradient(to bottom, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.6) 100%);
1320 display: flex;
1321 align-items: center;
1322 justify-content: flex-start;
1323 padding: 60px 20px;
1324 z-index: 2;
1325 }
1326
1327 .yatra-trip-hero-content {
1328 max-width: 1200px;
1329 width: 100%;
1330 margin: 0 auto;
1331 color: #fff;
1332 position: relative;
1333 text-align: left;
1334 }
1335
1336 .yatra-trip-hero-badges {
1337 display: flex;
1338 flex-wrap: wrap;
1339 gap: 12px;
1340 margin-bottom: 20px;
1341 justify-content: flex-start;
1342 }
1343
1344 .yatra-trip-hero-badge {
1345 display: inline-flex;
1346 align-items: center;
1347 gap: 6px;
1348 padding: 8px 16px;
1349 background: rgba(255,255,255,0.15);
1350 backdrop-filter: blur(10px);
1351 border-radius: 24px;
1352 font-size: 13px;
1353 font-weight: 600;
1354 text-transform: uppercase;
1355 letter-spacing: 0.5px;
1356 border: 1px solid rgba(255,255,255,0.2);
1357 }
1358
1359 .yatra-trip-hero-title {
1360 font-size: 3.75rem;
1361 font-weight: 800;
1362 line-height: 1.1;
1363 margin: 0 0 20px 0;
1364 text-shadow: 0 2px 20px rgba(0,0,0,0.4);
1365 letter-spacing: -0.02em;
1366 text-align: left;
1367 }
1368
1369 .yatra-trip-hero-subtitle {
1370 font-size: 1.375rem;
1371 font-weight: 400;
1372 opacity: 0.95;
1373 margin: 0 0 32px 0;
1374 max-width: 800px;
1375 line-height: 1.6;
1376 text-align: left;
1377 }
1378
1379 .yatra-trip-hero-actions {
1380 display: flex;
1381 gap: 16px;
1382 flex-wrap: wrap;
1383 margin: 0;
1384 justify-content: flex-start;
1385 }
1386
1387 .yatra-hero-button {
1388 padding: 14px 32px;
1389 border-radius: 8px;
1390 font-size: 16px;
1391 font-weight: 600;
1392 text-decoration: none;
1393 display: inline-flex;
1394 align-items: center;
1395 gap: 8px;
1396 transition: all 0.3s ease;
1397 border: 2px solid transparent;
1398 }
1399
1400 .yatra-hero-button-primary {
1401 background: #fff;
1402 color: var(--yatra-primary-darker, #1e3a8a);
1403 border-color: #fff;
1404 }
1405
1406 .yatra-hero-button-primary:hover {
1407 background: #f0f0f0;
1408 transform: translateY(-2px);
1409 box-shadow: 0 8px 25px rgba(0,0,0,0.2);
1410 }
1411
1412 .yatra-hero-button-secondary {
1413 background: transparent;
1414 color: #fff;
1415 border-color: rgba(255,255,255,0.5);
1416 }
1417
1418 .yatra-hero-button-secondary:hover {
1419 background: rgba(255,255,255,0.1);
1420 border-color: #fff;
1421 }
1422
1423 .yatra-gallery-count {
1424 font-size: 14px;
1425 opacity: 0.9;
1426 font-weight: 500;
1427 }
1428
1429 .yatra-hero-gallery-play {
1430 position: absolute;
1431 bottom: 40px;
1432 right: 40px;
1433 z-index: 10;
1434 background: rgba(255,255,255,0.95);
1435 backdrop-filter: blur(10px);
1436 border: 2px solid rgba(255,255,255,0.3);
1437 border-radius: 50%;
1438 width: 80px;
1439 height: 80px;
1440 display: flex;
1441 flex-direction: column;
1442 align-items: center;
1443 justify-content: center;
1444 gap: 4px;
1445 cursor: pointer;
1446 transition: all 0.3s ease;
1447 color: var(--yatra-primary, #3b82f6);
1448 box-shadow: 0 4px 20px rgba(0,0,0,0.2);
1449 }
1450
1451 .yatra-hero-gallery-play:hover {
1452 background: #fff;
1453 transform: scale(1.1);
1454 box-shadow: 0 6px 30px rgba(0,0,0,0.3);
1455 }
1456
1457 .yatra-hero-gallery-play svg {
1458 width: 32px;
1459 height: 32px;
1460 }
1461
1462 .yatra-hero-gallery-play span {
1463 font-size: 11px;
1464 font-weight: 600;
1465 text-transform: uppercase;
1466 letter-spacing: 0.5px;
1467 margin-top: 2px;
1468 }
1469
1470 .yatra-gallery-play-btn {
1471 cursor: pointer;
1472 border: none;
1473 font-family: inherit;
1474 }
1475
1476
1477
1478 .yatra-trip-tags-container {
1479 display: flex;
1480 flex-wrap: wrap;
1481 gap: var(--yatra-element-gap);
1482 align-items: center;
1483 }
1484
1485 .yatra-trip-tag {
1486 display: flex;
1487 align-items: center;
1488 gap: 8px;
1489 padding: 8px 16px;
1490 background: #e5e7eb;
1491 border-radius: 20px;
1492 font-size: 14px;
1493 }
1494
1495 .yatra-trip-tag-label {
1496 color: #6b7280;
1497 font-weight: 600;
1498 text-transform: uppercase;
1499 font-size: 11px;
1500 letter-spacing: 0.5px;
1501 }
1502
1503 .yatra-trip-tag-value {
1504 color: #111827;
1505 font-weight: 500;
1506 }
1507
1508 .yatra-trip-tag-value a {
1509 color: #059669;
1510 text-decoration: none;
1511 transition: color 0.2s ease;
1512 }
1513
1514 .yatra-trip-tag-value a:hover {
1515 color: #047857;
1516 text-decoration: underline;
1517 }
1518
1519
1520 /* ============================================
1521 SPEC SHEET WRAPPER — white ring so hairline grid never bleeds into rounded corners
1522 (Gray “caps” / holes happen when line-color fills the grid box under border-radius.)
1523 ============================================ */
1524 .yatra-spec-sheet {
1525 --yatra-spec-line: #d6d3d1;
1526 border: 1px solid var(--yatra-spec-line);
1527 border-radius: 12px;
1528 background: #fff;
1529 padding: 1px;
1530 box-sizing: border-box;
1531 overflow: hidden;
1532 }
1533
1534 .yatra-spec-sheet--quick-facts {
1535 width: 100%;
1536 margin: 0;
1537 }
1538
1539 /* Same as .yatra-trip-attributes .yatra-spec-sheet: inner card fills the padded shell */
1540 .yatra-trip-quick-facts-section .yatra-spec-sheet--quick-facts {
1541 width: 100%;
1542 }
1543
1544 .yatra-trip-attributes .yatra-spec-sheet--attributes-grid {
1545 width: 100%;
1546 }
1547
1548 /* Inner grid: 1px gaps only — line color never touches the outer rounded clip */
1549 .yatra-spec-sheet > .yatra-trip-quick-facts,
1550 .yatra-spec-sheet > .yatra-attributes-grid {
1551 width: 100%;
1552 display: grid;
1553 grid-template-columns: repeat(auto-fit, minmax(136px, 1fr));
1554 gap: 1px;
1555 align-items: stretch;
1556 padding: 0;
1557 margin: 0;
1558 background: var(--yatra-spec-line, #d6d3d1);
1559 border: none;
1560 border-radius: 11px;
1561 overflow: hidden;
1562 }
1563
1564 .yatra-spec-sheet > .yatra-attributes-grid {
1565 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
1566 }
1567
1568 /* ============================================
1569 QUICK FACTS BAR — neutral “spec sheet” (no tinted icon wells)
1570 ============================================ */
1571 .yatra-trip-quick-facts {
1572 width: 100%;
1573 }
1574
1575 .yatra-quick-fact {
1576 display: flex;
1577 flex-direction: row;
1578 align-items: flex-start;
1579 text-align: left;
1580 gap: 12px;
1581 padding: 14px 16px;
1582 background: #fff;
1583 border: none;
1584 border-radius: 0;
1585 transition: background-color 0.15s ease;
1586 min-width: 0;
1587 min-height: 100%;
1588 box-sizing: border-box;
1589 align-self: stretch;
1590 }
1591
1592 .yatra-quick-fact:hover {
1593 background: #fafaf9;
1594 }
1595
1596 .yatra-quick-fact-icon {
1597 width: auto;
1598 height: auto;
1599 min-width: 28px;
1600 min-height: 28px;
1601 padding: 0;
1602 background: transparent;
1603 border-radius: 0;
1604 display: flex;
1605 align-items: center;
1606 justify-content: center;
1607 color: #57534e;
1608 flex-shrink: 0;
1609 overflow: visible;
1610 }
1611
1612 .yatra-quick-fact-icon svg {
1613 display: block;
1614 width: 22px;
1615 height: 22px;
1616 min-width: 22px;
1617 min-height: 22px;
1618 flex-shrink: 0;
1619 overflow: visible;
1620 opacity: 0.92;
1621 }
1622
1623 .yatra-quick-fact-icon svg[fill="none"] {
1624 stroke: currentColor;
1625 }
1626
1627 .yatra-quick-fact-icon svg[fill="currentColor"] {
1628 stroke: none;
1629 opacity: 1;
1630 }
1631
1632 .yatra-quick-fact-icon .fa-solid,
1633 .yatra-quick-fact-icon .fa-regular {
1634 font-size: 22px;
1635 line-height: 1;
1636 opacity: 0.92;
1637 }
1638
1639 .yatra-quick-fact-content {
1640 flex: 1;
1641 min-width: 0;
1642 padding-top: 1px;
1643 }
1644
1645 .yatra-quick-fact-label {
1646 font-size: 11px;
1647 color: #78716c;
1648 text-transform: none;
1649 letter-spacing: 0.01em;
1650 margin-bottom: 3px;
1651 font-weight: 500;
1652 line-height: 1.25;
1653 display: block;
1654 }
1655
1656 .yatra-quick-fact-value {
1657 font-size: 15px;
1658 font-weight: 600;
1659 color: #1c1917;
1660 margin: 0;
1661 line-height: 1.35;
1662 display: block;
1663 }
1664
1665 .yatra-trip-quick-facts .yatra-price-current {
1666 color: #059669;
1667 font-weight: 600;
1668 }
1669
1670 .yatra-trip-quick-facts .yatra-price-original {
1671 color: #94a3b8;
1672 text-decoration: line-through;
1673 font-weight: 400;
1674 font-size: 0.88em;
1675 margin-left: 4px;
1676 }
1677
1678 .yatra-trip-quick-facts .yatra-rating-display {
1679 display: flex;
1680 align-items: center;
1681 gap: 6px;
1682 flex-wrap: wrap;
1683 }
1684
1685 .yatra-trip-quick-facts .yatra-rating-number {
1686 font-weight: 700;
1687 color: #0f172a;
1688 }
1689
1690 .yatra-trip-quick-facts .yatra-rating-stars {
1691 display: inline-flex;
1692 gap: 1px;
1693 font-size: 0.85rem;
1694 line-height: 1;
1695 }
1696
1697 .yatra-trip-quick-facts .star-filled {
1698 color: #fbbf24;
1699 }
1700
1701 .yatra-trip-quick-facts .star-empty {
1702 color: #cbd5e1;
1703 }
1704
1705 .yatra-trip-quick-facts .yatra-review-count {
1706 font-size: 12px;
1707 color: #64748b;
1708 font-weight: 500;
1709 }
1710
1711 .yatra-quick-fact-price {
1712 font-size: 15px;
1713 font-weight: 600;
1714 color: #1c1917;
1715 line-height: 1.35;
1716 margin: 0;
1717 display: block;
1718 }
1719
1720 .yatra-quick-fact-price-label {
1721 font-size: 10px;
1722 color: #94a3b8;
1723 font-weight: 400;
1724 margin-top: 2px;
1725 display: block;
1726 }
1727
1728 /* ============================================
1729 MAIN CONTAINER
1730 ============================================ */
1731 .yatra-trip-container {
1732 display: grid;
1733 grid-template-columns: 1fr 400px;
1734 gap: var(--yatra-section-gap);
1735 align-items: start;
1736 padding-top: 0;
1737 }
1738
1739 /*
1740 * Responsive: collapse the trip-detail two-column grid to a single
1741 * column at tablet-portrait and below. Without this, the fixed
1742 * `1fr 400px` causes the booking sidebar to overflow the viewport
1743 * on phones — and because the sidebar is `position: sticky`, it
1744 * starts covering the hero gallery + section navigation as soon as
1745 * the user scrolls. Stacking puts the gallery/content first and the
1746 * booking card after, in normal document flow.
1747 */
1748 @media (max-width: 1024px) {
1749 .yatra-trip-container {
1750 grid-template-columns: 1fr;
1751 }
1752 .yatra-trip-container .yatra-trip-sidebar,
1753 .yatra-trip-sidebar-column .yatra-trip-sidebar,
1754 .yatra-trip-sidebar {
1755 position: static;
1756 top: auto;
1757 order: 2;
1758 }
1759 }
1760
1761 /* ============================================
1762 MAIN CONTENT
1763 ============================================ */
1764 .yatra-trip-main {
1765 min-width: 0;
1766 }
1767
1768 /* Sidebar Column */
1769 .yatra-trip-sidebar-column {
1770 min-width: 0;
1771 width: 100%;
1772 }
1773
1774 .yatra-trip-sidebar-column .yatra-trip-sidebar {
1775 position: sticky;
1776 top: 0;
1777 height: fit-content;
1778 }
1779
1780 .yatra-trip-section {
1781 background: #ffffff;
1782 border-radius: 8px;
1783 padding: 40px;
1784 margin-bottom: 24px;
1785 border: 1px solid #e5e7eb;
1786 }
1787
1788 .yatra-trip-section-title {
1789 font-size: 28px;
1790 font-weight: 600;
1791 color: #111827;
1792 margin: 0 0 24px 0;
1793 display: flex;
1794 align-items: center;
1795 gap: 12px;
1796 line-height: 1.2;
1797 }
1798
1799 .yatra-trip-section-title-icon {
1800 width: 24px;
1801 height: 24px;
1802 color: #6b7280;
1803 flex-shrink: 0;
1804 }
1805
1806 /* ============================================
1807 OVERVIEW & HIGHLIGHTS
1808 ============================================ */
1809 .yatra-trip-description {
1810 font-size: 17px;
1811 line-height: 1.8;
1812 color: #374151;
1813 margin-bottom: 40px;
1814 }
1815
1816 .yatra-trip-description p {
1817 margin-bottom: 20px;
1818 }
1819
1820 .yatra-trip-description p:last-child {
1821 margin-bottom: 0;
1822 }
1823
1824 /* Lead / excerpt above full description (overview tab) */
1825 .yatra-trip-short-description-lead {
1826 font-size: 1.125rem;
1827 line-height: 1.7;
1828 color: #475569;
1829 font-weight: 500;
1830 margin-bottom: 24px;
1831 padding: 20px;
1832 background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
1833 border-radius: 12px;
1834 border-left: 4px solid var(--yatra-primary, #3b82f6);
1835 }
1836
1837 @media (prefers-color-scheme: dark) {
1838 .yatra-trip-short-description-lead {
1839 color: #cbd5e1;
1840 background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
1841 border-left-color: #60a5fa;
1842 }
1843 }
1844
1845 @media (max-width: 768px) {
1846 .yatra-trip-short-description-lead {
1847 font-size: 1rem;
1848 padding: 16px;
1849 margin-bottom: 20px;
1850 }
1851 }
1852
1853 .yatra-trip-highlights {
1854 display: grid;
1855 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
1856 gap: 20px;
1857 margin-top: 40px;
1858 }
1859
1860 .yatra-highlight-item {
1861 display: flex;
1862 align-items: flex-start;
1863 gap: 16px;
1864 padding: 20px;
1865 background: #f9fafb;
1866 border-radius: 12px;
1867 border-left: 4px solid var(--yatra-primary, #3b82f6);
1868 transition: all 0.3s ease;
1869 }
1870
1871 .yatra-highlight-item:hover {
1872 background: #f3f4f6;
1873 transform: translateX(4px);
1874 }
1875
1876 .yatra-highlight-icon {
1877 width: 24px;
1878 height: 24px;
1879 color: var(--yatra-primary, #3b82f6);
1880 flex-shrink: 0;
1881 margin-top: 2px;
1882 }
1883
1884 .yatra-highlight-text {
1885 flex: 1;
1886 font-size: 15px;
1887 color: #111827;
1888 margin: 0;
1889 line-height: 1.6;
1890 }
1891
1892 /* ============================================
1893 KEY FEATURES GRID
1894 ============================================ */
1895 .yatra-trip-features {
1896 display: grid;
1897 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
1898 gap: 24px;
1899 margin-top: 32px;
1900 }
1901
1902 .yatra-feature-card {
1903 text-align: center;
1904 padding: 24px;
1905 background: #f9fafb;
1906 border-radius: 12px;
1907 border: 1px solid #e5e7eb;
1908 transition: all 0.3s ease;
1909 }
1910
1911 .yatra-feature-card:hover {
1912 background: #fff;
1913 border-color: var(--yatra-primary, #3b82f6);
1914 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
1915 transform: translateY(-4px);
1916 }
1917
1918 .yatra-feature-icon {
1919 width: 48px;
1920 height: 48px;
1921 margin: 0 auto 12px;
1922 color: var(--yatra-primary, #3b82f6);
1923 }
1924
1925 .yatra-feature-title {
1926 font-size: 16px;
1927 font-weight: 600;
1928 color: #111827;
1929 margin: 0 0 8px 0;
1930 }
1931
1932 .yatra-feature-desc {
1933 font-size: 14px;
1934 color: #6b7280;
1935 margin: 0;
1936 line-height: 1.5;
1937 }
1938
1939 /* ============================================
1940 ITINERARY - New Timeline Design
1941 ============================================ */
1942
1943 /* Itinerary tab: consistently left-aligned (all viewports) */
1944 .yatra-trip-section#itinerary,
1945 .yatra-trip-section#itinerary .yatra-itinerary-timeline,
1946 .yatra-trip-section#itinerary .yatra-itinerary-day,
1947 .yatra-trip-section#itinerary .yatra-itinerary-day-content,
1948 .yatra-trip-section#itinerary .yatra-entry-card,
1949 .yatra-trip-section#itinerary .yatra-entry-info,
1950 .yatra-trip-section#itinerary .yatra-entry-description,
1951 .yatra-trip-section#itinerary .yatra-day-description {
1952 text-align: left;
1953 }
1954
1955 .yatra-trip-section#itinerary .yatra-day-description p {
1956 text-align: left;
1957 }
1958
1959 .yatra-trip-section#itinerary .yatra-entry-header {
1960 justify-content: flex-start;
1961 }
1962
1963 .yatra-trip-section#itinerary .yatra-entry-meta,
1964 .yatra-trip-section#itinerary .yatra-entry-included {
1965 justify-content: flex-start;
1966 }
1967
1968 .yatra-trip-section#itinerary .yatra-gallery-title {
1969 justify-content: flex-start;
1970 }
1971
1972 /* Section Header with Actions */
1973 .yatra-section-header-with-actions {
1974 display: flex;
1975 align-items: flex-start;
1976 justify-content: space-between;
1977 gap: 20px;
1978 margin-bottom: 24px;
1979 flex-wrap: wrap;
1980 text-align: left;
1981 }
1982
1983 @media (min-width: 600px) {
1984 .yatra-section-header-with-actions {
1985 align-items: center;
1986 }
1987 }
1988
1989 .yatra-section-header-with-actions .yatra-trip-section-title {
1990 margin-bottom: 0;
1991 }
1992
1993 .yatra-itinerary-actions {
1994 display: flex;
1995 gap: 12px;
1996 }
1997
1998 .yatra-toggle-all-btn {
1999 display: inline-flex;
2000 align-items: center;
2001 gap: 6px;
2002 padding: 8px 16px;
2003 background: #fff;
2004 border: 1px solid #e5e7eb;
2005 border-radius: 8px;
2006 font-size: 13px;
2007 font-weight: 500;
2008 color: #374151;
2009 cursor: pointer;
2010 transition: all 0.2s;
2011 }
2012
2013 .yatra-toggle-all-btn:hover {
2014 background: #f3f4f6;
2015 border-color: #d1d5db;
2016 }
2017
2018 .yatra-toggle-all-btn svg {
2019 color: #6b7280;
2020 }
2021
2022 .yatra-itinerary-timeline {
2023 display: flex;
2024 flex-direction: column;
2025 gap: 24px;
2026 }
2027
2028 .yatra-itinerary-day {
2029 background: #fff;
2030 border: 1px solid #e5e7eb;
2031 border-radius: 8px;
2032 overflow: hidden;
2033 }
2034
2035 .yatra-itinerary-day-header {
2036 display: flex;
2037 align-items: center;
2038 gap: 16px;
2039 padding: 16px 20px;
2040 background: #f9fafb;
2041 border-bottom: 1px solid #e5e7eb;
2042 cursor: pointer;
2043 transition: background 0.2s ease;
2044 }
2045
2046 .yatra-itinerary-day-header:hover {
2047 background: #f3f4f6;
2048 }
2049
2050 .yatra-day-badge {
2051 font-size: 14px;
2052 font-weight: 700;
2053 color: #fff;
2054 background: var(--yatra-primary, #3b82f6);
2055 padding: 6px 14px;
2056 border-radius: 6px;
2057 white-space: nowrap;
2058 }
2059
2060 .yatra-day-title {
2061 font-size: 18px;
2062 font-weight: 600;
2063 color: #111827;
2064 margin: 0;
2065 flex: 1;
2066 }
2067
2068 .yatra-day-toggle {
2069 width: 36px;
2070 height: 36px;
2071 min-width: 36px;
2072 display: flex !important;
2073 align-items: center;
2074 justify-content: center;
2075 background: #fff;
2076 border: 1px solid #e5e7eb;
2077 border-radius: 8px;
2078 cursor: pointer;
2079 transition: all 0.2s;
2080 flex-shrink: 0;
2081 padding: 0;
2082 }
2083
2084 .yatra-day-toggle:hover {
2085 background: #f3f4f6;
2086 border-color: #d1d5db;
2087 }
2088
2089 .yatra-day-toggle .yatra-chevron-icon {
2090 transition: transform 0.25s ease;
2091 color: #6b7280;
2092 width: 20px;
2093 height: 20px;
2094 }
2095
2096 .yatra-day-toggle svg {
2097 width: 20px;
2098 height: 20px;
2099 color: #6b7280;
2100 stroke: currentColor;
2101 }
2102
2103 /* Expand/collapse days via `.is-day-expanded` (set in PHP for day 1; toggled in trip.js) */
2104 .yatra-itinerary-day-content {
2105 padding: var(--yatra-element-gap);
2106 }
2107
2108 .yatra-itinerary-day:not(.is-day-expanded) .yatra-itinerary-day-content {
2109 display: none;
2110 }
2111
2112 .yatra-itinerary-day.is-day-expanded .yatra-itinerary-day-content {
2113 display: block;
2114 }
2115
2116 .yatra-itinerary-day:not(.is-day-expanded) .yatra-day-toggle .yatra-chevron-icon {
2117 transform: rotate(-90deg);
2118 }
2119
2120 .yatra-itinerary-day.is-day-expanded .yatra-day-toggle .yatra-chevron-icon {
2121 transform: rotate(0deg);
2122 }
2123
2124 .yatra-day-description {
2125 margin-bottom: var(--yatra-element-gap);
2126 color: #4b5563;
2127 font-size: 15px;
2128 line-height: 1.6;
2129 }
2130
2131 .yatra-toggle-all-btn .collapse-icon {
2132 display: none;
2133 }
2134
2135 .yatra-toggle-all-btn.is-all-expanded .expand-icon {
2136 display: none;
2137 }
2138
2139 .yatra-toggle-all-btn.is-all-expanded .collapse-icon {
2140 display: block;
2141 }
2142
2143 /* Hidden image sources for itinerary lightbox collection */
2144 .yatra-itinerary-trip-gallery {
2145 display: none;
2146 }
2147
2148 /* Entry Timeline */
2149 .yatra-entries-timeline {
2150 position: relative;
2151 padding-left: 32px;
2152 }
2153
2154 .yatra-entries-timeline::before {
2155 content: '';
2156 position: absolute;
2157 left: 8px;
2158 top: 0;
2159 bottom: 0;
2160 width: 2px;
2161 background: #e5e7eb;
2162 }
2163
2164 .yatra-entry-item {
2165 position: relative;
2166 margin-bottom: 20px;
2167 }
2168
2169 .yatra-entry-item:last-child {
2170 margin-bottom: 0;
2171 }
2172
2173 .yatra-entry-timeline-dot {
2174 position: absolute;
2175 left: -28px;
2176 top: 20px;
2177 width: 12px;
2178 height: 12px;
2179 background: var(--entry-color, var(--yatra-primary, #3b82f6));
2180 border-radius: 50%;
2181 border: 3px solid #fff;
2182 box-shadow: 0 0 0 2px var(--entry-color, var(--yatra-primary, #3b82f6));
2183 z-index: 2;
2184 }
2185
2186 .yatra-entry-card {
2187 background: #f9fafb;
2188 border: 1px solid #e5e7eb;
2189 border-radius: 12px;
2190 padding: 20px;
2191 transition: all 0.2s;
2192 }
2193
2194 .yatra-entry-card:hover {
2195 border-color: var(--entry-color, var(--yatra-primary, #3b82f6));
2196 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
2197 }
2198
2199 .yatra-entry-header {
2200 display: flex;
2201 align-items: flex-start;
2202 gap: 14px;
2203 margin-bottom: 12px;
2204 }
2205
2206 .yatra-entry-icon {
2207 width: 40px;
2208 height: 40px;
2209 display: flex;
2210 align-items: center;
2211 justify-content: center;
2212 border-radius: 10px;
2213 flex-shrink: 0;
2214 }
2215
2216 .yatra-entry-icon svg {
2217 width: 20px;
2218 height: 20px;
2219 }
2220
2221 .yatra-entry-info {
2222 flex: 1;
2223 min-width: 0;
2224 }
2225
2226 .yatra-entry-type {
2227 font-size: 12px;
2228 font-weight: 600;
2229 text-transform: uppercase;
2230 letter-spacing: 0.5px;
2231 display: block;
2232 margin-bottom: 4px;
2233 }
2234
2235 .yatra-entry-title {
2236 font-size: 16px;
2237 font-weight: 600;
2238 color: #111827;
2239 margin: 0;
2240 }
2241
2242 .yatra-entry-time {
2243 display: flex;
2244 align-items: center;
2245 gap: 6px;
2246 font-size: 13px;
2247 color: #6b7280;
2248 background: #fff;
2249 padding: 6px 12px;
2250 border-radius: 6px;
2251 border: 1px solid #e5e7eb;
2252 white-space: nowrap;
2253 }
2254
2255 .yatra-entry-time svg {
2256 color: #9ca3af;
2257 }
2258
2259 .yatra-entry-description {
2260 font-size: 14px;
2261 line-height: 1.6;
2262 color: #4b5563;
2263 margin: 0 0 12px 0;
2264 }
2265
2266 .yatra-entry-notes {
2267 display: block;
2268 padding: 10px 12px;
2269 margin: 0 0 12px 0;
2270 background: #fffbeb;
2271 border-left: 3px solid #f59e0b;
2272 border-radius: 6px;
2273 font-size: 13px;
2274 line-height: 1.55;
2275 color: #78350f;
2276 }
2277
2278 .yatra-entry-notes__head {
2279 display: inline-flex;
2280 align-items: center;
2281 gap: 6px;
2282 margin-bottom: 4px;
2283 color: #b45309;
2284 font-weight: 600;
2285 text-transform: uppercase;
2286 letter-spacing: 0.04em;
2287 font-size: 11px;
2288 }
2289
2290 .yatra-entry-notes__head svg {
2291 color: #d97706;
2292 }
2293
2294 .yatra-entry-notes__body {
2295 color: #78350f;
2296 }
2297
2298 .yatra-entry-notes__body p {
2299 margin: 0 0 6px 0;
2300 }
2301
2302 .yatra-entry-notes__body p:last-child {
2303 margin-bottom: 0;
2304 }
2305
2306 .yatra-entry-cost {
2307 display: inline-flex;
2308 align-items: center;
2309 gap: 6px;
2310 padding: 6px 12px;
2311 background: linear-gradient(135deg, #10b981 0%, #059669 100%);
2312 border-radius: 8px;
2313 margin-bottom: 12px;
2314 color: white;
2315 font-size: 14px;
2316 font-weight: 600;
2317 }
2318
2319 .yatra-entry-cost svg {
2320 flex-shrink: 0;
2321 color: white;
2322 }
2323
2324 .yatra-entry-cost .yatra-cost-amount {
2325 font-weight: 700;
2326 }
2327
2328 .yatra-entry-cost .yatra-cost-label {
2329 font-size: 12px;
2330 font-weight: 500;
2331 opacity: 0.9;
2332 }
2333
2334 .yatra-entry-meta {
2335 display: flex;
2336 flex-wrap: wrap;
2337 gap: 16px;
2338 margin-bottom: 12px;
2339 }
2340
2341 .yatra-entry-meta-item {
2342 display: flex;
2343 align-items: center;
2344 gap: 6px;
2345 font-size: 13px;
2346 color: #6b7280;
2347 }
2348
2349 .yatra-entry-meta-item svg {
2350 color: #9ca3af;
2351 }
2352
2353 .yatra-entry-included {
2354 display: flex;
2355 flex-wrap: wrap;
2356 gap: 8px;
2357 padding-top: 12px;
2358 border-top: 1px solid #e5e7eb;
2359 }
2360
2361 .yatra-included-tag {
2362 display: inline-flex;
2363 align-items: center;
2364 gap: 4px;
2365 font-size: 12px;
2366 color: #059669;
2367 background: #ecfdf5;
2368 padding: 4px 10px;
2369 border-radius: 4px;
2370 }
2371
2372 .yatra-included-tag svg {
2373 color: #10b981;
2374 }
2375
2376 /* Itinerary: Included / Excluded split layout */
2377 .yatra-entry-inclusions {
2378 display: grid;
2379 grid-template-columns: 1fr 1fr;
2380 gap: 16px;
2381 padding-top: 12px;
2382 border-top: 1px solid #e5e7eb;
2383 margin-top: 12px;
2384 }
2385
2386 .yatra-entry-inclusions-col {
2387 min-width: 0;
2388 }
2389
2390 .yatra-entry-inclusions-heading {
2391 display: flex;
2392 align-items: center;
2393 justify-content: space-between;
2394 margin-bottom: 8px;
2395 }
2396
2397 .yatra-entry-inclusions-title {
2398 font-size: 12px;
2399 font-weight: 700;
2400 letter-spacing: 0.02em;
2401 text-transform: uppercase;
2402 color: #6b7280;
2403 }
2404
2405 .yatra-entry-inclusions-tags {
2406 display: flex;
2407 flex-wrap: wrap;
2408 gap: 8px;
2409 }
2410
2411 .yatra-entry-inclusions-empty {
2412 font-size: 12px;
2413 color: #9ca3af;
2414 background: #f9fafb;
2415 padding: 4px 10px;
2416 border-radius: 999px;
2417 }
2418
2419 .yatra-excluded-tag {
2420 display: inline-flex;
2421 align-items: center;
2422 gap: 4px;
2423 font-size: 12px;
2424 font-weight: 600;
2425 color: #b91c1c;
2426 background: #fef2f2;
2427 padding: 4px 10px;
2428 border-radius: 4px;
2429 }
2430
2431 .yatra-excluded-tag svg {
2432 color: #ef4444;
2433 }
2434
2435 @media (max-width: 640px) {
2436 .yatra-entry-inclusions {
2437 grid-template-columns: 1fr;
2438 gap: 12px;
2439 }
2440 }
2441
2442 /* Summary Day */
2443 .yatra-itinerary-summary .yatra-day-badge {
2444 background: #8b5cf6;
2445 }
2446
2447 .yatra-summary-content {
2448 padding: 20px;
2449 background: #f9fafb;
2450 border-radius: 12px;
2451 }
2452
2453 .yatra-summary-content p {
2454 font-size: 15px;
2455 color: #374151;
2456 margin-bottom: 16px;
2457 }
2458
2459 .yatra-summary-list {
2460 list-style: none;
2461 padding: 0;
2462 margin: 0;
2463 }
2464
2465 .yatra-summary-list li {
2466 padding: 12px 0;
2467 border-bottom: 1px solid #e5e7eb;
2468 font-size: 14px;
2469 color: #4b5563;
2470 }
2471
2472 .yatra-summary-list li:last-child {
2473 border-bottom: none;
2474 }
2475
2476 .yatra-summary-list li strong {
2477 color: #111827;
2478 font-weight: 600;
2479 }
2480
2481 /* ============================================
2482 MOBILE STICKY SIDEBAR
2483 ============================================ */
2484
2485 /* Account for WordPress admin bar */
2486 .admin-bar .yatra-mobile-sticky-sidebar {
2487 bottom: 32px;
2488 }
2489
2490
2491 @media screen and (max-width: 782px) {
2492 .admin-bar .yatra-mobile-sticky-sidebar {
2493 bottom: 46px;
2494 }
2495 }
2496
2497 .yatra-mobile-sticky-sidebar.hidden {
2498 transform: translateY(100%);
2499 opacity: 0;
2500 }
2501
2502 .yatra-mobile-sticky-content {
2503 display: flex;
2504 flex-direction: column;
2505 padding: 12px;
2506 gap: 8px;
2507 background: #ffffff;
2508 min-height: auto;
2509 padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
2510 position: relative;
2511 padding-top: 14px;
2512 padding-right: 56px; /* space for close button */
2513 }
2514
2515 /* Row 1: Price and Date */
2516 .yatra-mobile-row-1 {
2517 display: grid;
2518 grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
2519 align-items: center;
2520 gap: 0;
2521 width: 100%;
2522 overflow: visible;
2523 }
2524
2525 /* Make the two top fields feel like one joined control */
2526 .yatra-mobile-row-1 > .yatra-mobile-date-section,
2527 .yatra-mobile-row-1 > .yatra-mobile-travelers-section {
2528 width: 100%;
2529 min-width: 0;
2530 }
2531
2532 .yatra-mobile-row-1 .yatra-mobile-field-btn,
2533 .yatra-mobile-row-1 .yatra-booking-field-select,
2534 .yatra-mobile-row-1 .yatra-mobile-booking-field {
2535 width: 100%;
2536 }
2537
2538 .yatra-mobile-row-1 > .yatra-mobile-date-section .yatra-mobile-field-btn {
2539 border-top-right-radius: 0;
2540 border-bottom-right-radius: 0;
2541 border-right: 0;
2542 }
2543
2544 .yatra-mobile-row-1 > .yatra-mobile-travelers-section .yatra-booking-field-select,
2545 .yatra-mobile-row-1 > .yatra-mobile-travelers-section .yatra-mobile-booking-field {
2546 border-top-left-radius: 0;
2547 border-bottom-left-radius: 0;
2548 }
2549
2550 .yatra-mobile-row-1::-webkit-scrollbar {
2551 display: none; /* Hide scrollbar for Chrome, Safari and Opera */
2552 }
2553
2554 /* Row 2: Total Price Only */
2555 .yatra-mobile-row-2 {
2556 display: grid;
2557 grid-template-columns: 1fr 1fr;
2558 align-items: center;
2559 gap: 8px;
2560 padding-top: 8px;
2561 border-top: 1px solid #e5e7eb;
2562 }
2563
2564 /* Row 3: Date, Total, and Actions */
2565 .yatra-mobile-row-3 {
2566 display: flex;
2567 align-items: center;
2568 justify-content: space-between;
2569 gap: 8px;
2570 flex-wrap: nowrap;
2571 }
2572
2573 /* Ensure correct order of elements */
2574 .yatra-mobile-price-section {
2575 order: 2;
2576 }
2577
2578 .yatra-mobile-date-section {
2579 order: 3;
2580 display: flex;
2581 align-items: center;
2582 min-width: 0;
2583 width: 100%;
2584 touch-action: manipulation;
2585 }
2586
2587 .yatra-mobile-travelers-section {
2588 order: 4;
2589 min-width: 0;
2590 }
2591
2592 .yatra-mobile-travelers-section .yatra-mobile-travelers-range {
2593 display: block;
2594 width: 100%;
2595 font-size: 10px;
2596 line-height: 1.25;
2597 color: #6b7280;
2598 text-align: center;
2599 margin-top: 2px;
2600 white-space: nowrap;
2601 }
2602
2603 .yatra-mobile-action-section {
2604 order: 6;
2605 }
2606
2607 .yatra-mobile-trust-badge {
2608 order: 7;
2609 }
2610
2611 .yatra-mobile-action-buttons {
2612 order: 8;
2613 position: absolute;
2614 top: 10px;
2615 right: 10px;
2616 z-index: 6;
2617 }
2618
2619 /* Mobile Booking Fields */
2620 .yatra-mobile-booking-field {
2621 display: flex;
2622 align-items: center;
2623 gap: 6px;
2624 background: #f9fafb;
2625 border: 1px solid #e5e7eb;
2626 border-radius: 6px;
2627 padding: 0 8px;
2628 box-sizing: border-box;
2629 min-width: 0;
2630 min-height: 44px;
2631 height: 44px;
2632 max-height: 44px;
2633 flex-shrink: 0;
2634 touch-action: manipulation;
2635 }
2636
2637 /* New: unified mobile field wrapper (used by date button wrapper) */
2638 .yatra-mobile-field-btn {
2639 display: flex;
2640 align-items: center;
2641 gap: 6px;
2642 width: 100%;
2643 min-height: 44px;
2644 height: 44px;
2645 padding: 0 10px;
2646 background: #f9fafb;
2647 border: 1px solid #e5e7eb;
2648 border-radius: 10px;
2649 cursor: pointer;
2650 box-sizing: border-box;
2651 -webkit-tap-highlight-color: transparent;
2652 }
2653
2654 .yatra-mobile-field-btn:active {
2655 transform: translateY(0.5px);
2656 }
2657
2658 .yatra-mobile-field-btn input {
2659 pointer-events: none; /* wrapper opens picker */
2660 }
2661
2662 .yatra-mobile-field-btn .yatra-mobile-datepicker-input {
2663 width: 100% !important;
2664 flex: 1 1 auto !important;
2665 min-width: 0 !important;
2666 font-size:13px;
2667 }
2668
2669 /* Flatpickr creates an altInput which becomes the visible field.
2670 Ensure it stretches inside our button wrapper. */
2671 .yatra-mobile-field-btn .flatpickr-input,
2672 .yatra-mobile-field-btn input.flatpickr-input,
2673 .yatra-mobile-field-btn input.flatpickr-alt-input,
2674 .yatra-mobile-field-btn input[type="text"] {
2675 flex: 1 1 auto;
2676 width: 100%;
2677 min-width: 0;
2678 }
2679
2680 .yatra-mobile-field-btn .yatra-mobile-field-icon {
2681 width: 18px;
2682 height: 18px;
2683 }
2684
2685 .yatra-mobile-field-btn .yatra-mobile-arrow {
2686 flex-shrink: 0;
2687 }
2688
2689 .yatra-mobile-field-btn .yatra-mobile-arrow {
2690 margin-left: auto;
2691 }
2692
2693 /* Compact Mobile Date Picker — same vertical footprint as Adult / Check / Enquire */
2694 .yatra-mobile-compact-datepicker {
2695 display: flex;
2696 align-items: center;
2697 gap: 4px;
2698 background: #f9fafb;
2699 border: 1px solid #e5e7eb;
2700 border-radius: 6px;
2701 padding: 0 6px;
2702 box-sizing: border-box;
2703 width: 100%;
2704 max-width: 100%;
2705 min-width: 0;
2706 min-height: 44px;
2707 height: 44px;
2708 max-height: 44px;
2709 flex-shrink: 1;
2710 cursor: pointer;
2711 transition: all 0.2s ease;
2712 position: relative;
2713 z-index: 2;
2714 touch-action: manipulation;
2715 -webkit-tap-highlight-color: transparent;
2716 }
2717
2718 .yatra-mobile-compact-datepicker:hover {
2719 background: #f3f4f6;
2720 border-color: #d1d5db;
2721 }
2722
2723 .yatra-mobile-compact-datepicker .yatra-mobile-field-icon {
2724 display: flex;
2725 align-items: center;
2726 justify-content: center;
2727 flex-shrink: 0;
2728 }
2729
2730 .yatra-mobile-compact-datepicker .yatra-mobile-icon {
2731 width: 14px;
2732 height: 14px;
2733 }
2734
2735 .yatra-mobile-datepicker-input {
2736 border: none;
2737 background: transparent;
2738 font-size: 14px;
2739 line-height: 1.2;
2740 color: #374151;
2741 outline: none;
2742 min-width: 0;
2743 width: 100%;
2744 flex: 1 1 auto;
2745 white-space: nowrap;
2746 overflow: hidden;
2747 text-overflow: ellipsis;
2748 font-weight: 500;
2749 cursor: pointer;
2750 padding: 0;
2751 margin: 0;
2752 min-height: 0 !important;
2753 height: auto;
2754 max-height: 100%;
2755 vertical-align: middle;
2756 -webkit-appearance: none;
2757 appearance: none;
2758 touch-action: manipulation;
2759 }
2760
2761 /* If Flatpickr clones classes onto the altInput, ensure it still stretches */
2762 .yatra-mobile-field-btn .yatra-mobile-datepicker-input.flatpickr-input,
2763 .yatra-mobile-field-btn .flatpickr-input {
2764 width: 100% !important;
2765 flex: 1 1 auto !important;
2766 min-width: 0 !important;
2767 background: transparent !important;
2768 padding: 0 !important;
2769 margin: 0 !important;
2770 }
2771
2772 .yatra-mobile-datepicker-input::placeholder {
2773 color: #9ca3af;
2774 }
2775
2776 .yatra-mobile-arrow {
2777 width: 12px;
2778 height: 12px;
2779 color: #6b7280;
2780 flex-shrink: 0;
2781 transition: transform 0.2s ease;
2782 }
2783
2784 .yatra-mobile-compact-datepicker:hover .yatra-mobile-arrow {
2785 transform: translateY(1px);
2786 }
2787
2788 /* Mobile Date Picker - Match Right Sidebar Exactly */
2789 .yatra-mobile-date-section .yatra-booking-field-select {
2790 display: flex;
2791 align-items: center;
2792 gap: 8px;
2793 background: #f9fafb;
2794 border: 1px solid #e5e7eb;
2795 border-radius: 8px;
2796 padding: 8px 12px;
2797 min-width: 0;
2798 flex-shrink: 0;
2799 position: relative;
2800 cursor: pointer;
2801 }
2802
2803 /* Mobile Traveler Picker (traveler-based) - reuse desktop component but tuned for bottom sticky bar */
2804 .yatra-mobile-travelers-section .yatra-booking-field-select {
2805 display: flex;
2806 align-items: center;
2807 gap: 8px;
2808 background: #f9fafb;
2809 border: 1px solid #e5e7eb;
2810 border-radius: 10px;
2811 padding: 0 10px;
2812 min-height: 44px;
2813 height: 44px;
2814 max-height: 44px;
2815 min-width: 0;
2816 width: 100%;
2817 position: relative;
2818 cursor: pointer;
2819 }
2820
2821 .yatra-mobile-travelers-section .yatra-participants-display {
2822 padding: 0;
2823 font-size: 14px;
2824 color: #374151;
2825 min-width: 0;
2826 overflow: hidden;
2827 text-overflow: ellipsis;
2828 white-space: nowrap;
2829 }
2830
2831 /* In a bottom sticky bar, open the dropdown upward */
2832 .yatra-mobile-participants.active .yatra-booking-quantity-selector,
2833 .yatra-mobile-travelers-section .yatra-booking-quantity-selector {
2834 top: auto;
2835 bottom: 100%;
2836 margin-top: 0;
2837 margin-bottom: 8px;
2838 max-height: min(60vh, 360px);
2839 overflow-y: auto;
2840 }
2841
2842 .yatra-mobile-date-section .yatra-booking-field-icon {
2843 display: flex;
2844 align-items: center;
2845 justify-content: center;
2846 flex-shrink: 0;
2847 }
2848
2849 .yatra-mobile-date-section .yatra-booking-select {
2850 border: none;
2851 background: transparent;
2852 font-size: 14px;
2853 color: #374151;
2854 outline: none;
2855 min-width: 80px;
2856 white-space: nowrap;
2857 overflow: hidden;
2858 text-overflow: ellipsis;
2859 font-weight: 500;
2860 cursor: pointer;
2861 flex: 1;
2862 }
2863
2864 .yatra-mobile-date-section .yatra-booking-select::placeholder {
2865 color: #9ca3af;
2866 }
2867
2868 .yatra-mobile-date-section .yatra-select-arrow {
2869 width: 16px;
2870 height: 16px;
2871 color: #6b7280;
2872 flex-shrink: 0;
2873 transition: transform 0.2s ease;
2874 }
2875
2876 .yatra-mobile-date-section .yatra-booking-field-select:hover .yatra-select-arrow {
2877 transform: translateY(1px);
2878 }
2879
2880 /* Responsive adjustments for mobile date picker */
2881 @media (max-width: 480px) {
2882 .yatra-mobile-date-section .yatra-booking-field-select {
2883 padding: 6px 8px;
2884 gap: 6px;
2885 }
2886
2887 .yatra-mobile-date-section .yatra-booking-select {
2888 font-size: 12px;
2889 min-width: 60px;
2890 }
2891
2892 .yatra-mobile-date-section .yatra-select-arrow {
2893 width: 14px;
2894 height: 14px;
2895 }
2896 }
2897
2898 @media (max-width: 360px) {
2899 .yatra-mobile-date-section .yatra-booking-field-select {
2900 padding: 4px 6px;
2901 gap: 4px;
2902 }
2903
2904 .yatra-mobile-date-section .yatra-booking-select {
2905 font-size: 11px;
2906 min-width: 50px;
2907 }
2908
2909 .yatra-mobile-date-section .yatra-select-arrow {
2910 width: 12px;
2911 height: 12px;
2912 }
2913 }
2914
2915 .yatra-mobile-field-icon {
2916 display: flex;
2917 align-items: center;
2918 justify-content: center;
2919 flex-shrink: 0;
2920 }
2921
2922 .yatra-mobile-icon {
2923 width: 18px;
2924 height: 18px;
2925 color: #6b7280;
2926 }
2927
2928 /* Ensure SVG icons inside mobile field icon render consistently */
2929 .yatra-mobile-field-icon svg,
2930 .yatra-mobile-close-icon svg {
2931 width: 18px;
2932 height: 18px;
2933 display: block;
2934 stroke: currentColor;
2935 fill: none;
2936 }
2937
2938 .yatra-mobile-datepicker,
2939 .yatra-mobile-travelers-display {
2940 border: none;
2941 background: transparent;
2942 font-size: 12px;
2943 line-height: 1.2;
2944 color: #374151;
2945 outline: none;
2946 min-width: 80px;
2947 white-space: nowrap;
2948 overflow: hidden;
2949 text-overflow: ellipsis;
2950 font-weight: 500;
2951 }
2952
2953 .yatra-mobile-datepicker::placeholder {
2954 color: #9ca3af;
2955 }
2956
2957 /* Mobile Quantity Controls */
2958 .yatra-mobile-quantity-controls {
2959 display: flex;
2960 align-items: center;
2961 gap: 6px;
2962 }
2963
2964 .yatra-mobile-quantity-btn {
2965 display: flex;
2966 align-items: center;
2967 justify-content: center;
2968 width: 55px;
2969 height: 34px;
2970 background: #f3f4f6;
2971 border: 1px solid #d1d5db;
2972 border-radius: 6px;
2973 cursor: pointer;
2974 transition: all 0.2s ease;
2975 }
2976
2977 .yatra-mobile-quantity-btn:hover {
2978 background: #e5e7eb;
2979 border-color: #9ca3af;
2980 }
2981
2982 .yatra-mobile-quantity-btn svg {
2983 width: 14px;
2984 height: 14px;
2985 color: #374151;
2986 }
2987
2988 .yatra-mobile-quantity-input {
2989 width: 40px;
2990 text-align: center;
2991 border: none;
2992 background: transparent;
2993 font-size: 15px;
2994 font-weight: 600;
2995 color: #374151;
2996 outline: none;
2997 }
2998
2999 /* Mobile Check Button */
3000 .yatra-mobile-check-btn {
3001 display: flex;
3002 align-items: center;
3003 justify-content: center;
3004 gap: 4px;
3005 padding: 0 10px;
3006 box-sizing: border-box;
3007 min-height: 36px;
3008 height: 36px;
3009 max-height: 36px;
3010 font-size: 12px;
3011 font-weight: 600;
3012 border-radius: 6px;
3013 border: none;
3014 cursor: pointer;
3015 transition: all 0.2s ease;
3016 white-space: nowrap;
3017 background: var(--yatra-primary, #3b82f6);
3018 color: white;
3019 box-shadow: 0 1px 3px rgba(59, 130, 246, 0.3);
3020 flex-shrink: 0;
3021 touch-action: manipulation;
3022 }
3023
3024 .yatra-mobile-check-btn:hover {
3025 background: var(--yatra-primary-dark, #2563eb);
3026 box-shadow: 0 2px 4px rgba(59, 130, 246, 0.4);
3027 }
3028
3029 /* Mobile Availability Compact */
3030 .yatra-mobile-availability-compact {
3031 background: rgba(255, 255, 255, 0.1);
3032 border-top: 1px solid rgba(255, 255, 255, 0.2);
3033 padding: 8px 16px;
3034 text-align: center;
3035 }
3036
3037 .yatra-mobile-availability-info {
3038 display: flex;
3039 align-items: center;
3040 justify-content: center;
3041 gap: 6px;
3042 }
3043
3044 .yatra-mobile-availability-count {
3045 font-size: 11px;
3046 font-weight: 600;
3047 color: rgba(255, 255, 255, 0.9);
3048 }
3049
3050 /* Price Section */
3051 .yatra-mobile-price-section {
3052 flex-shrink: 0;
3053 position: relative;
3054 background: #f9fafb;
3055 border: 1px solid #e5e7eb;
3056 border-radius: 8px;
3057 padding: 10px 14px;
3058 }
3059
3060 .yatra-mobile-price-info {
3061 display: flex;
3062 flex-direction: column;
3063 align-items: flex-start;
3064 gap: 4px;
3065 }
3066
3067 .yatra-mobile-price-label {
3068 font-size: 11px;
3069 font-weight: 600;
3070 color: #6b7280;
3071 text-transform: uppercase;
3072 letter-spacing: 0.5px;
3073 line-height: 1;
3074 }
3075
3076 .yatra-mobile-price-amount {
3077 font-size: 18px;
3078 font-weight: 700;
3079 color: #111827;
3080 line-height: 1.2;
3081 }
3082
3083 .yatra-mobile-price-original {
3084 font-size: 13px;
3085 font-weight: 500;
3086 color: #9ca3af;
3087 text-decoration: line-through;
3088 line-height: 1;
3089 }
3090
3091 .yatra-mobile-contact-pricing {
3092 color: #6b7280 !important;
3093 font-size: 16px !important;
3094 }
3095
3096 /* Group Discount Badge */
3097 .yatra-mobile-group-badge {
3098 display: flex;
3099 align-items: center;
3100 justify-content: center;
3101 width: 32px;
3102 height: 32px;
3103 background: #f0fdf4;
3104 border: 1px solid #bbf7d0;
3105 border-radius: 8px;
3106 flex-shrink: 0;
3107 }
3108
3109 .yatra-mobile-group-badge svg {
3110 color: #16a34a;
3111 }
3112
3113 /* Discount Badge */
3114 .yatra-mobile-discount-badge {
3115 position: absolute;
3116 top: -10px;
3117 right: -10px;
3118 background: #dc2626;
3119 color: white;
3120 font-size: 10px;
3121 font-weight: 700;
3122 padding: 3px 8px;
3123 border-radius: 6px;
3124 white-space: nowrap;
3125 box-shadow: 0 2px 6px rgba(220, 38, 38, 0.3);
3126 z-index: 1;
3127 }
3128
3129
3130 /* Trust Badge */
3131 .yatra-mobile-trust-badge {
3132 display: flex;
3133 align-items: center;
3134 gap: 6px;
3135 background: #f0fdf4;
3136 border: 1px solid #bbf7d0;
3137 border-radius: 8px;
3138 padding: 6px 12px;
3139 flex-shrink: 0;
3140 }
3141
3142 .yatra-mobile-trust-badge svg {
3143 color: #16a34a;
3144 flex-shrink: 0;
3145 }
3146
3147 .yatra-mobile-trust-badge span {
3148 font-size: 12px;
3149 font-weight: 600;
3150 color: #15803d;
3151 white-space: nowrap;
3152 }
3153
3154 /* Info Bar */
3155 .yatra-mobile-info-bar {
3156 display: flex;
3157 align-items: center;
3158 justify-content: center;
3159 gap: 16px;
3160 background: #f9fafb;
3161 border-top: 1px solid #e5e7eb;
3162 padding: 8px 16px;
3163 min-height: 32px;
3164 }
3165
3166 /* Info Section */
3167 .yatra-mobile-info-section {
3168 display: flex;
3169 align-items: center;
3170 gap: 12px;
3171 flex: 1;
3172 justify-content: center;
3173 }
3174
3175 .yatra-mobile-info-item {
3176 display: flex;
3177 align-items: center;
3178 gap: 4px;
3179 font-size: 12px;
3180 color: #6b7280;
3181 font-weight: 500;
3182 white-space: nowrap;
3183 }
3184
3185 .yatra-mobile-info-item svg {
3186 color: #9ca3af;
3187 flex-shrink: 0;
3188 }
3189
3190 .yatra-mobile-info-icon {
3191 width: 12px;
3192 height: 12px;
3193 flex-shrink: 0;
3194 color: #9ca3af;
3195 }
3196
3197 /* Action Section */
3198 .yatra-mobile-action-section {
3199 display: flex;
3200 align-items: center;
3201 gap: 6px;
3202 flex-shrink: 0;
3203 }
3204
3205 .yatra-mobile-book-btn,
3206 .yatra-mobile-enquire-btn {
3207 display: flex;
3208 align-items: center;
3209 gap: 6px;
3210 padding: 8px 16px;
3211 font-size: 14px;
3212 font-weight: 600;
3213 border-radius: 6px;
3214 border: none;
3215 cursor: pointer;
3216 transition: all 0.2s ease;
3217 white-space: nowrap;
3218 }
3219
3220 .yatra-mobile-book-btn {
3221 background: var(--yatra-primary, #3b82f6);
3222 color: white;
3223 }
3224
3225 .yatra-mobile-book-btn:hover {
3226 background: var(--yatra-primary-dark, #2563eb);
3227 }
3228
3229 .yatra-mobile-enquire-btn {
3230 background: #f3f4f6;
3231 color: #374151;
3232 border: 1px solid #d1d5db;
3233 padding: 0 10px;
3234 box-sizing: border-box;
3235 min-height: 44px;
3236 height: 44px;
3237 max-height: 44px;
3238 font-size: 14px;
3239 flex-shrink: 0;
3240 align-items: center;
3241 justify-content: center;
3242 touch-action: manipulation;
3243 }
3244
3245 /* When Enquire is placed in the mobile sticky row-2 grid */
3246 .yatra-mobile-row-2 .yatra-mobile-check-btn,
3247 .yatra-mobile-row-2 .yatra-mobile-enquire-btn {
3248 width: 100%;
3249 justify-content: center;
3250 min-height: 44px;
3251 height: 44px;
3252 font-size: 14px;
3253 }
3254
3255 @media (max-width: 480px) {
3256 /* Avoid cramped horizontal overflow; use clean two-row layout */
3257 .yatra-mobile-row-1 {
3258 display: grid;
3259 grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
3260 align-items: center;
3261 gap: 0;
3262 width: 100%;
3263 overflow-x: visible;
3264 }
3265
3266 /* If group badge exists, let it sit above fields */
3267 .yatra-mobile-group-badge {
3268 grid-column: 1 / -1;
3269 justify-content: center;
3270 }
3271
3272 .yatra-mobile-date-section {
3273 max-width: none;
3274 width: 100%;
3275 min-width: 0;
3276 }
3277
3278 .yatra-mobile-travelers-section {
3279 width: 100%;
3280 min-width: 0;
3281 }
3282
3283 /* Close button is absolutely positioned; don't reserve grid space for it */
3284 }
3285
3286 .yatra-mobile-enquire-btn:hover {
3287 background: #e5e7eb;
3288 border-color: #9ca3af;
3289 color: #111827;
3290 }
3291
3292 .yatra-mobile-btn-icon {
3293 width: 14px;
3294 height: 14px;
3295 flex-shrink: 0;
3296 }
3297
3298 /* Action Buttons */
3299 .yatra-mobile-action-buttons {
3300 display: flex;
3301 align-items: center;
3302 gap: 6px;
3303 flex-shrink: 0;
3304 }
3305
3306 /* Close Button */
3307 .yatra-mobile-close-btn {
3308 display: flex;
3309 align-items: center;
3310 justify-content: center;
3311 width: 44px;
3312 height: 44px;
3313 background: #f3f4f6;
3314 border: 1px solid #d1d5db;
3315 border-radius: 8px;
3316 cursor: pointer;
3317 transition: all 0.2s ease;
3318 z-index: 10;
3319 position: relative;
3320 }
3321
3322 .yatra-mobile-close-btn:hover {
3323 background: #e5e7eb;
3324 border-color: #9ca3af;
3325 }
3326
3327 .yatra-mobile-close-btn:active {
3328 transform: scale(0.95);
3329 }
3330
3331 .yatra-mobile-close-icon {
3332 width: 18px;
3333 height: 18px;
3334 color: #6b7280;
3335 }
3336
3337 .yatra-mobile-close-btn .yatra-mobile-close-icon {
3338 display: block;
3339 stroke: currentColor;
3340 fill: none;
3341 }
3342
3343 /* Ultimate fallback if SVG icon isn't available */
3344 .yatra-mobile-close-fallback {
3345 display: block;
3346 width: 18px;
3347 height: 18px;
3348 line-height: 18px;
3349 text-align: center;
3350 font-size: 22px;
3351 font-weight: 700;
3352 color: #6b7280;
3353 transform: translateY(-1px);
3354 user-select: none;
3355 }
3356
3357 /* Hidden state for sidebar */
3358 .yatra-mobile-sticky-sidebar.user-closed {
3359 transform: translateY(100%) !important;
3360 opacity: 0 !important;
3361 pointer-events: none;
3362 }
3363
3364 .yatra-mobile-sidebar-details {
3365 max-height: 0;
3366 overflow: hidden;
3367 transition: max-height 0.3s ease;
3368 background: #f9fafb;
3369 border-top: 1px solid #e5e7eb;
3370 }
3371
3372 .yatra-mobile-sidebar-details.expanded {
3373 max-height: 60vh;
3374 overflow-y: auto;
3375 }
3376
3377 .yatra-mobile-details-content {
3378 padding: 20px;
3379 }
3380
3381 /* Dark mode support */
3382 @media (prefers-color-scheme: dark) {
3383 .yatra-mobile-sticky-sidebar {
3384 background: #1f2937 !important;
3385 border-top-color: #374151 !important;
3386 }
3387
3388 .yatra-mobile-sticky-content {
3389 background: #1f2937;
3390 }
3391
3392 .yatra-mobile-booking-field {
3393 background: #374151;
3394 border-color: #4b5563;
3395 }
3396
3397 .yatra-mobile-price-section {
3398 background: #374151;
3399 border-color: #4b5563;
3400 }
3401
3402
3403 .yatra-mobile-price-amount {
3404 color: #f9fafb;
3405 }
3406
3407 .yatra-mobile-price-label {
3408 color: #9ca3af;
3409 }
3410
3411 .yatra-mobile-price-original {
3412 color: #6b7280;
3413 }
3414
3415 .yatra-mobile-datepicker,
3416 .yatra-mobile-travelers-display {
3417 color: #e5e7eb;
3418 }
3419
3420 .yatra-mobile-datepicker::placeholder {
3421 color: #6b7280;
3422 }
3423
3424 .yatra-mobile-icon {
3425 color: #9ca3af;
3426 }
3427
3428 .yatra-mobile-quantity-btn {
3429 background: #4b5563;
3430 border-color: #6b7280;
3431 }
3432
3433 .yatra-mobile-quantity-btn:hover {
3434 background: #6b7280;
3435 border-color: #9ca3af;
3436 }
3437
3438 .yatra-mobile-quantity-btn svg {
3439 color: #d1d5db;
3440 }
3441
3442 .yatra-mobile-quantity-input {
3443 color: #e5e7eb;
3444 }
3445
3446 .yatra-mobile-trust-badge {
3447 background: #14532d;
3448 border-color: #166534;
3449 }
3450
3451 .yatra-mobile-trust-badge svg {
3452 color: #22c55e;
3453 }
3454
3455 .yatra-mobile-trust-badge span {
3456 color: #86efac;
3457 }
3458
3459 .yatra-mobile-close-btn {
3460 background: #4b5563;
3461 border-color: #6b7280;
3462 }
3463
3464 .yatra-mobile-close-btn:hover {
3465 background: #6b7280;
3466 border-color: #9ca3af;
3467 }
3468
3469 .yatra-mobile-close-icon {
3470 color: #9ca3af;
3471 }
3472
3473 .yatra-mobile-info-bar {
3474 background: #374151;
3475 border-top-color: #4b5563;
3476 }
3477
3478 .yatra-mobile-info-item {
3479 color: #d1d5db;
3480 }
3481
3482 .yatra-mobile-info-item svg {
3483 color: #9ca3af;
3484 }
3485
3486 .yatra-mobile-enquire-btn {
3487 background: #4b5563;
3488 color: #e5e7eb;
3489 border-color: #6b7280;
3490 }
3491
3492 .yatra-mobile-enquire-btn:hover {
3493 background: #6b7280;
3494 border-color: #9ca3af;
3495 color: #f9fafb;
3496 }
3497 }
3498
3499 /* Responsive adjustments for three-row layout */
3500 @media (max-width: 480px) {
3501 .yatra-mobile-sticky-content {
3502 padding: 8px;
3503 gap: 6px;
3504 padding-right: calc(8px + 56px); /* keep space for close button */
3505 }
3506
3507 .yatra-mobile-row-1,
3508 .yatra-mobile-row-2,
3509 .yatra-mobile-row-3 {
3510 gap: 6px;
3511 }
3512
3513 .yatra-mobile-booking-field {
3514 padding: 0 6px;
3515 min-height: 34px;
3516 height: 34px;
3517 max-height: 34px;
3518 }
3519
3520 .yatra-mobile-compact-date,
3521 .yatra-mobile-compact-datepicker {
3522 padding: 0 6px;
3523 gap: 4px;
3524 min-height: 34px;
3525 height: 34px;
3526 max-height: 34px;
3527 }
3528
3529 .yatra-mobile-check-btn,
3530 .yatra-mobile-enquire-btn {
3531 min-height: 34px;
3532 height: 34px;
3533 max-height: 34px;
3534 }
3535
3536 .yatra-mobile-price-section {
3537 padding: 4px 6px;
3538 }
3539
3540
3541 .yatra-mobile-price-amount {
3542 font-size: 14px;
3543 }
3544
3545
3546 .yatra-mobile-datepicker {
3547 font-size: 11px;
3548 min-width: 40px;
3549 }
3550
3551 .yatra-mobile-check-btn,
3552 .yatra-mobile-enquire-btn {
3553 padding: 0 6px;
3554 font-size: 10px;
3555 }
3556
3557 .yatra-mobile-check-btn {
3558 gap: 3px;
3559 }
3560
3561 .yatra-mobile-enquire-btn {
3562 gap: 3px;
3563 }
3564
3565 .yatra-mobile-trust-badge {
3566 padding: 2px 4px;
3567 }
3568
3569 .yatra-mobile-trust-badge span {
3570 font-size: 8px;
3571 }
3572
3573 .yatra-mobile-close-btn {
3574 width: 40px;
3575 height: 40px;
3576 min-width: 40px;
3577 min-height: 40px;
3578 }
3579
3580 /* Simple (per-trip) traveler stepper: keep tap targets and legible count */
3581 .yatra-mobile-booking-field:has(.yatra-mobile-quantity-controls) {
3582 min-height: 44px;
3583 height: 44px;
3584 max-height: none;
3585 padding: 0 8px;
3586 }
3587
3588 .yatra-mobile-booking-field .yatra-mobile-quantity-btn {
3589 width: 36px;
3590 height: 36px;
3591 min-width: 36px;
3592 min-height: 36px;
3593 }
3594
3595 .yatra-mobile-booking-field .yatra-mobile-quantity-input {
3596 min-width: 40px;
3597 width: 48px;
3598 font-size: 15px;
3599 font-weight: 700;
3600 color:#fff;
3601 }
3602 }
3603
3604 /* Sticky bar traveler dropdown should open UP (bottom sticky UI) */
3605 .yatra-mobile-travelers-section .yatra-booking-field-select,
3606 .yatra-mobile-travelers-section .yatra-participants-select {
3607 position: relative;
3608 z-index: 2;
3609 }
3610
3611 .yatra-mobile-participants .yatra-booking-quantity-selector,
3612 .yatra-mobile-participants.active .yatra-booking-quantity-selector,
3613 .yatra-mobile-travelers-section .yatra-booking-quantity-selector {
3614 top: auto !important;
3615 bottom: 100% !important;
3616 margin-top: 0 !important;
3617 margin-bottom: 8px !important;
3618 z-index: 2000;
3619 }
3620
3621 /* On mobile sticky bar, show travelers dropdown as a full-width panel */
3622 .yatra-mobile-participants.active .yatra-booking-quantity-selector {
3623 position: fixed !important;
3624 left: 12px !important;
3625 right: 12px !important;
3626 width: auto !important;
3627 max-width: 560px;
3628 margin-left: auto !important;
3629 margin-right: auto !important;
3630 bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
3631 box-sizing: border-box;
3632 }
3633
3634 /* Traveler-category dropdown opened from bottom bar: larger controls + readable counts */
3635 .yatra-mobile-sticky-sidebar .yatra-mobile-travelers-section .yatra-participants-display,
3636 .yatra-mobile-sticky-sidebar .yatra-mobile-participants-display {
3637 font-size: 13px;
3638 font-weight: 600;
3639 color: #111827;
3640 }
3641
3642 .yatra-mobile-sticky-sidebar .yatra-booking-quantity-selector .yatra-quantity-row {
3643 padding: 12px 10px;
3644 gap: 10px;
3645 }
3646
3647 .yatra-mobile-sticky-sidebar .yatra-booking-quantity-selector .yatra-quantity-btn {
3648 width: 40px;
3649 height: 40px;
3650 min-width: 40px;
3651 min-height: 40px;
3652 }
3653
3654 .yatra-mobile-sticky-sidebar .yatra-booking-quantity-selector .yatra-quantity-row .yatra-quantity-input {
3655 width: 48px;
3656 min-width: 44px;
3657 height: 40px;
3658 font-size: 16px;
3659 font-weight: 700;
3660 color: #0f172a;
3661 }
3662
3663 /* Extra small mobile screens */
3664 @media (max-width: 360px) {
3665 .yatra-mobile-sticky-content {
3666 padding: 6px;
3667 gap: 4px;
3668 }
3669
3670 .yatra-mobile-row-1,
3671 .yatra-mobile-row-2,
3672 .yatra-mobile-row-3 {
3673 gap: 4px;
3674 }
3675
3676 .yatra-mobile-booking-field {
3677 padding: 0 4px;
3678 min-height: 32px;
3679 height: 32px;
3680 max-height: 32px;
3681 }
3682
3683 .yatra-mobile-booking-field:has(.yatra-mobile-quantity-controls) {
3684 min-height: 42px;
3685 height: 42px;
3686 max-height: none;
3687 padding: 0 6px;
3688 }
3689
3690 .yatra-mobile-compact-date,
3691 .yatra-mobile-compact-datepicker {
3692 padding: 0 4px;
3693 gap: 3px;
3694 min-height: 32px;
3695 height: 32px;
3696 max-height: 32px;
3697 }
3698
3699 .yatra-mobile-check-btn,
3700 .yatra-mobile-enquire-btn {
3701 min-height: 32px;
3702 height: 32px;
3703 max-height: 32px;
3704 }
3705
3706 .yatra-mobile-price-section {
3707 padding: 3px 4px;
3708 }
3709
3710
3711 .yatra-mobile-price-amount {
3712 font-size: 12px;
3713 }
3714
3715
3716 .yatra-mobile-datepicker {
3717 font-size: 10px;
3718 min-width: 35px;
3719 }
3720
3721 .yatra-mobile-check-btn,
3722 .yatra-mobile-enquire-btn {
3723 padding: 0 4px;
3724 font-size: 9px;
3725 }
3726
3727 .yatra-mobile-check-btn {
3728 gap: 2px;
3729 }
3730
3731 .yatra-mobile-enquire-btn {
3732 gap: 2px;
3733 }
3734
3735 .yatra-mobile-trust-badge {
3736 display: none; /* Hide trust badge on very small screens */
3737 }
3738
3739 .yatra-mobile-close-btn {
3740 width: 40px;
3741 height: 40px;
3742 min-width: 40px;
3743 min-height: 40px;
3744 }
3745 }
3746
3747 /* MOBILE FIRST - Show by default, hide on desktop */
3748 .yatra-mobile-sticky-sidebar {
3749 position: fixed !important;
3750 bottom: 0 !important;
3751 left: 0 !important;
3752 right: 0 !important;
3753 background: #ffffff !important;
3754 border-top: 1px solid #e5e7eb !important;
3755 box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1) !important;
3756 z-index: 9999 !important;
3757 transform: translateY(0) !important;
3758 transition: transform 0.3s ease, opacity 0.3s ease !important;
3759 display: block !important; /* MOBILE FIRST - Visible by default */
3760 visibility: visible !important; /* MOBILE FIRST - Visible by default */
3761 opacity: 1 !important; /* MOBILE FIRST - Visible by default */
3762 min-height: 70px !important;
3763 /* Allow traveler/date dropdowns to overflow upward */
3764 max-height: none !important;
3765 overflow: visible !important;
3766 }
3767
3768 /* Hide on desktop - 769px and above */
3769 @media only screen and (min-width: 769px) {
3770 .yatra-mobile-sticky-sidebar {
3771 display: none !important;
3772 visibility: hidden !important;
3773 opacity: 0 !important;
3774 transform: translateY(100%) !important;
3775 }
3776 }
3777
3778 /* Responsive */
3779 @media (max-width: 768px) {
3780 .yatra-trip-section#itinerary {
3781 padding: 24px 16px;
3782 }
3783
3784 .yatra-trip-section#itinerary .yatra-trip-section-title {
3785 font-size: 1.25rem;
3786 flex-wrap: wrap;
3787 justify-content: flex-start;
3788 }
3789
3790 .yatra-section-header-with-actions {
3791 flex-direction: column;
3792 align-items: stretch;
3793 gap: 12px;
3794 }
3795
3796 .yatra-itinerary-actions {
3797 width: 100%;
3798 justify-content: flex-start;
3799 }
3800
3801 .yatra-toggle-all-btn {
3802 align-self: flex-start;
3803 width: auto;
3804 max-width: 100%;
3805 justify-content: flex-start;
3806 }
3807
3808 .yatra-itinerary-day-header {
3809 padding: 14px 16px;
3810 align-items: flex-start;
3811 gap: 12px;
3812 }
3813
3814 .yatra-day-badge {
3815 flex-shrink: 0;
3816 }
3817
3818 .yatra-day-title {
3819 font-size: 16px;
3820 line-height: 1.35;
3821 text-align: left;
3822 min-width: 0;
3823 }
3824
3825 .yatra-itinerary-day-content {
3826 padding: 16px 14px;
3827 margin-left: 0;
3828 }
3829
3830 .yatra-trip-section#itinerary .yatra-itinerary-day,
3831 .yatra-itinerary-day {
3832 padding-left: 0;
3833 margin-left: 0;
3834 }
3835
3836 .yatra-entries-timeline {
3837 padding-left: 22px;
3838 }
3839
3840 .yatra-entries-timeline::before {
3841 left: 6px;
3842 }
3843
3844 .yatra-entry-timeline-dot {
3845 left: -22px;
3846 }
3847
3848 .yatra-entry-header {
3849 flex-wrap: wrap;
3850 align-items: flex-start;
3851 justify-content: flex-start;
3852 }
3853
3854 .yatra-entry-time {
3855 width: 100%;
3856 max-width: 100%;
3857 justify-content: flex-start;
3858 margin-top: 8px;
3859 white-space: normal;
3860 flex-wrap: wrap;
3861 }
3862
3863 .yatra-entry-card {
3864 padding: 16px 14px;
3865 }
3866
3867 .yatra-entry-description {
3868 text-align: left;
3869 }
3870
3871 .yatra-trip-section#itinerary .yatra-gallery-grid {
3872 grid-template-columns: repeat(2, minmax(0, 1fr));
3873 gap: 8px;
3874 }
3875 }
3876
3877 /* ============================================
3878 PRICING SECTION
3879 ============================================ */
3880 .yatra-trip-pricing {
3881 display: grid;
3882 gap: 24px;
3883 }
3884
3885 .yatra-pricing-card {
3886 border: 2px solid #e5e7eb;
3887 border-radius: 16px;
3888 padding: 32px;
3889 transition: all 0.3s ease;
3890 background: #fff;
3891 }
3892
3893 .yatra-pricing-card:hover {
3894 border-color: var(--yatra-primary, #3b82f6);
3895 box-shadow: 0 8px 30px rgba(59, 130, 246, 0.15);
3896 transform: translateY(-4px);
3897 }
3898
3899 .yatra-pricing-header {
3900 display: flex;
3901 justify-content: space-between;
3902 align-items: flex-start;
3903 margin-bottom: 20px;
3904 padding-bottom: 20px;
3905 border-bottom: 2px solid #f3f4f6;
3906 }
3907
3908 .yatra-pricing-title {
3909 font-size: 20px;
3910 font-weight: 700;
3911 color: #111827;
3912 margin: 0;
3913 }
3914
3915 .yatra-pricing-amount {
3916 font-size: 36px;
3917 font-weight: 800;
3918 color: var(--yatra-primary, #3b82f6);
3919 margin: 0;
3920 line-height: 1;
3921 }
3922
3923 .yatra-pricing-currency {
3924 font-size: 18px;
3925 font-weight: 400;
3926 color: #6b7280;
3927 }
3928
3929 .yatra-pricing-details {
3930 list-style: none;
3931 padding: 0;
3932 margin: 24px 0 0 0;
3933 }
3934
3935 .yatra-pricing-details li {
3936 padding: 12px 0;
3937 font-size: 15px;
3938 color: #374151;
3939 display: flex;
3940 align-items: center;
3941 gap: 12px;
3942 border-bottom: 1px solid #f3f4f6;
3943 }
3944
3945 .yatra-pricing-details li:last-child {
3946 border-bottom: none;
3947 }
3948
3949 .yatra-pricing-details-icon {
3950 width: 20px;
3951 height: 20px;
3952 color: #10b981;
3953 flex-shrink: 0;
3954 }
3955
3956 /* ============================================
3957 INCLUDED/EXCLUDED
3958 ============================================ */
3959 .yatra-included-excluded {
3960 display: grid;
3961 grid-template-columns: 1fr 1fr;
3962 gap: 32px;
3963 margin-top: 24px;
3964 }
3965
3966 .yatra-included-section,
3967 .yatra-excluded-section {
3968 background: #ffffff;
3969 border-radius: 8px;
3970 padding: 24px;
3971 border: 1px solid #e5e7eb;
3972 }
3973
3974 .yatra-included-section {
3975 border-left: 4px solid #10b981;
3976 }
3977
3978 .yatra-excluded-section {
3979 border-left: 4px solid #ef4444;
3980 }
3981
3982 .yatra-included-section h3,
3983 .yatra-excluded-section h3 {
3984 font-size: 18px;
3985 font-weight: 600;
3986 margin: 0 0 16px 0;
3987 display: flex;
3988 align-items: center;
3989 gap: 8px;
3990 }
3991
3992 .yatra-included-section h3 {
3993 color: #047857;
3994 }
3995
3996 .yatra-excluded-section h3 {
3997 color: #dc2626;
3998 }
3999
4000 .yatra-included-list,
4001 .yatra-excluded-list {
4002 list-style: none;
4003 padding: 0;
4004 margin: 0;
4005 }
4006
4007 .yatra-included-list li,
4008 .yatra-excluded-list li {
4009 padding: 12px 0;
4010 font-size: 15px;
4011 display: flex;
4012 align-items: flex-start;
4013 gap: 10px;
4014 border-bottom: 1px solid #e5e7eb;
4015 line-height: 1.5;
4016 }
4017
4018 .yatra-included-list li:last-child,
4019 .yatra-excluded-list li:last-child {
4020 border-bottom: none;
4021 }
4022
4023 .yatra-included-list li {
4024 color: #065f46;
4025 }
4026
4027 .yatra-excluded-list li {
4028 color: #991b1b;
4029 }
4030
4031 .yatra-item-content {
4032 flex: 1;
4033 }
4034
4035 .yatra-item-title {
4036 font-weight: 500;
4037 margin-bottom: 4px;
4038 }
4039
4040 .yatra-item-desc {
4041 display: block;
4042 margin-top: 6px;
4043 font-size: 13px;
4044 color: #6b7280;
4045 line-height: 1.4;
4046 }
4047
4048 .yatra-included-icon,
4049 .yatra-excluded-icon {
4050 width: 18px;
4051 height: 18px;
4052 flex-shrink: 0;
4053 margin-top: 2px;
4054 }
4055
4056 .yatra-included-icon {
4057 color: #059669;
4058 }
4059
4060 .yatra-excluded-icon {
4061 color: #dc2626;
4062 }
4063
4064 /* Dark mode support */
4065 .dark .yatra-included-section,
4066 .dark .yatra-excluded-section {
4067 background: #1f2937;
4068 border-color: #374151;
4069 }
4070
4071 .dark .yatra-included-section {
4072 border-left-color: #10b981;
4073 }
4074
4075 .dark .yatra-excluded-section {
4076 border-left-color: #ef4444;
4077 }
4078
4079 .dark .yatra-included-section h3 {
4080 color: #34d399;
4081 }
4082
4083 .dark .yatra-excluded-section h3 {
4084 color: #f87171;
4085 }
4086
4087 .dark .yatra-included-list li,
4088 .dark .yatra-excluded-list li {
4089 border-bottom-color: #374151;
4090 }
4091
4092 .dark .yatra-included-list li {
4093 color: #6ee7b7;
4094 }
4095
4096 .dark .yatra-excluded-list li {
4097 color: #fca5a5;
4098 }
4099
4100 .dark .yatra-item-desc {
4101 color: #9ca3af;
4102 }
4103
4104 /* Responsive design */
4105 @media (max-width: 768px) {
4106 .yatra-included-excluded {
4107 grid-template-columns: 1fr;
4108 gap: 20px;
4109 }
4110
4111 .yatra-included-section,
4112 .yatra-excluded-section {
4113 padding: 20px;
4114 }
4115
4116 .yatra-included-section h3,
4117 .yatra-excluded-section h3 {
4118 font-size: 16px;
4119 }
4120
4121 .yatra-included-list li,
4122 .yatra-excluded-list li {
4123 font-size: 14px;
4124 }
4125 }
4126
4127 /* ============================================
4128 GALLERY
4129 ============================================ */
4130 .yatra-trip-gallery {
4131 display: grid;
4132 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
4133 gap: 16px;
4134 margin-top: 24px;
4135 }
4136
4137 .yatra-trip-gallery-empty {
4138 grid-column: 1 / -1;
4139 margin: 0;
4140 padding: 1.25rem 1rem;
4141 text-align: center;
4142 color: #6b7280;
4143 font-size: 0.9375rem;
4144 background: #f9fafb;
4145 border-radius: 8px;
4146 border: 1px dashed #e5e7eb;
4147 }
4148
4149 .yatra-gallery-item {
4150 position: relative;
4151 aspect-ratio: 4/3;
4152 overflow: hidden;
4153 border-radius: 8px;
4154 cursor: pointer;
4155 transition: transform 0.2s ease;
4156 background: #f3f4f6;
4157 }
4158
4159 .yatra-gallery-item:hover {
4160 transform: translateY(-2px);
4161 box-shadow: 0 4px 12px rgba(0,0,0,0.1);
4162 }
4163
4164 .yatra-gallery-item img {
4165 width: 100%;
4166 height: 100%;
4167 object-fit: cover;
4168 display: block;
4169 transition: transform 0.5s ease;
4170 }
4171
4172 .yatra-gallery-item:hover img {
4173 transform: scale(1.1);
4174 }
4175
4176 /* ============================================
4177 GALLERY MODAL
4178 ============================================ */
4179 .yatra-gallery-modal {
4180 position: fixed;
4181 top: 0;
4182 left: 0;
4183 right: 0;
4184 bottom: 0;
4185 z-index: 10000;
4186 display: none;
4187 align-items: center;
4188 justify-content: center;
4189 }
4190
4191 .yatra-gallery-modal.active {
4192 display: flex;
4193 }
4194
4195 .yatra-gallery-modal-overlay {
4196 position: absolute;
4197 top: 0;
4198 left: 0;
4199 right: 0;
4200 bottom: 0;
4201 background: rgba(0,0,0,0.95);
4202 backdrop-filter: blur(5px);
4203 }
4204
4205 .yatra-gallery-modal-content {
4206 position: relative;
4207 width: 95%;
4208 max-width: 1400px;
4209 height: 90vh;
4210 max-height: 900px;
4211 background: #000;
4212 border-radius: 16px;
4213 overflow: hidden;
4214 display: flex;
4215 flex-direction: column;
4216 z-index: 1;
4217 }
4218
4219 /* Account for WordPress admin bar */
4220 .admin-bar .yatra-gallery-modal-content {
4221 margin-top: 32px;
4222 max-height: calc(90vh - 32px);
4223 }
4224
4225 .yatra-gallery-modal-close {
4226 position: absolute;
4227 top: 20px;
4228 right: 20px;
4229 z-index: 100;
4230 width: 44px;
4231 height: 44px;
4232 background: rgba(255,255,255,0.1);
4233 backdrop-filter: blur(10px);
4234 border: 1px solid rgba(255,255,255,0.2);
4235 border-radius: 50%;
4236 display: flex;
4237 align-items: center;
4238 justify-content: center;
4239 cursor: pointer;
4240 transition: all 0.3s ease;
4241 color: #fff;
4242 margin:0;
4243 padding:0;
4244 }
4245
4246 .yatra-gallery-modal-close:hover {
4247 background: rgba(255,255,255,0.2);
4248 transform: rotate(90deg);
4249 }
4250
4251 .yatra-gallery-modal-prev,
4252 .yatra-gallery-modal-next {
4253 position: absolute;
4254 top: 50%;
4255 transform: translateY(-50%);
4256 z-index: 100;
4257 width: 50px;
4258 height: 50px;
4259 background: rgba(255,255,255,0.1);
4260 backdrop-filter: blur(10px);
4261 border: 1px solid rgba(255,255,255,0.2);
4262 border-radius: 50%;
4263 display: flex;
4264 align-items: center;
4265 justify-content: center;
4266 cursor: pointer;
4267 transition: all 0.3s ease;
4268 color: #fff;
4269 margin:0;
4270 padding:0;
4271 }
4272
4273 .yatra-gallery-modal-prev {
4274 left: 20px;
4275 }
4276
4277 .yatra-gallery-modal-next {
4278 right: 20px;
4279 }
4280
4281 .yatra-gallery-modal-prev:hover,
4282 .yatra-gallery-modal-next:hover {
4283 background: rgba(255,255,255,0.2);
4284 transform: translateY(-50%) scale(1.1);
4285 }
4286
4287 .yatra-gallery-modal-main {
4288 flex: 1;
4289 display: flex;
4290 align-items: center;
4291 justify-content: center;
4292 position: relative;
4293 background: #000;
4294 overflow: hidden;
4295 }
4296
4297 .yatra-gallery-modal-image {
4298 max-width: 100%;
4299 max-height: 100%;
4300 width: auto;
4301 height: auto;
4302 object-fit: contain;
4303 display: block;
4304 opacity: 0;
4305 transition: opacity 0.3s ease;
4306 }
4307
4308 .yatra-gallery-modal-image.loaded {
4309 opacity: 1;
4310 }
4311
4312 .yatra-gallery-modal-loader {
4313 position: absolute;
4314 color: #fff;
4315 font-size: 16px;
4316 display: none;
4317 }
4318
4319 .yatra-gallery-modal-loader.active {
4320 display: block;
4321 }
4322
4323 .yatra-gallery-modal-info {
4324 padding: 16px 24px;
4325 background: rgba(0,0,0,0.8);
4326 border-top: 1px solid rgba(255,255,255,0.1);
4327 }
4328
4329 .yatra-gallery-modal-counter {
4330 color: #fff;
4331 font-size: 16px;
4332 font-weight: 600;
4333 text-align: center;
4334 }
4335
4336 .yatra-gallery-modal-thumbnails {
4337 padding: 16px;
4338 background: rgba(0,0,0,0.9);
4339 border-top: 1px solid rgba(255,255,255,0.1);
4340 max-height: 120px;
4341 overflow-x: auto;
4342 overflow-y: hidden;
4343 }
4344
4345 .yatra-gallery-thumbnails-container {
4346 display: flex;
4347 gap: 12px;
4348 justify-content: center;
4349 align-items: center;
4350 padding: 0 20px;
4351 }
4352
4353 .yatra-gallery-thumbnail {
4354 width: 80px;
4355 height: 80px;
4356 border-radius: 8px;
4357 overflow: hidden;
4358 cursor: pointer;
4359 opacity: 0.6;
4360 transition: all 0.3s ease;
4361 border: 2px solid transparent;
4362 flex-shrink: 0;
4363 }
4364
4365 .yatra-gallery-thumbnail:hover {
4366 opacity: 1;
4367 transform: scale(1.1);
4368 }
4369
4370 .yatra-gallery-thumbnail.active {
4371 opacity: 1;
4372 border-color: var(--yatra-primary, #3b82f6);
4373 }
4374
4375 .yatra-gallery-thumbnail img {
4376 width: 100%;
4377 height: 100%;
4378 object-fit: cover;
4379 display: block;
4380 }
4381
4382 /* ============================================
4383 MAP
4384 ============================================ */
4385 .yatra-trip-map {
4386 width: 100%;
4387 height: 450px;
4388 border-radius: 12px;
4389 overflow: hidden;
4390 margin-top: 32px;
4391 background: #e5e7eb;
4392 display: flex;
4393 align-items: center;
4394 justify-content: center;
4395 color: #6b7280;
4396 font-size: 16px;
4397 border: 1px solid #d1d5db;
4398 position: relative;
4399 }
4400
4401 .yatra-map-placeholder {
4402 background: linear-gradient(135deg, #f8fafc, #e2e8f0);
4403 border: 2px dashed #cbd5e1;
4404 }
4405
4406 .yatra-map-placeholder p {
4407 margin: 0;
4408 padding: 20px;
4409 text-align: center;
4410 color: #64748b;
4411 font-weight: 500;
4412 }
4413
4414 /* OpenStreetMap specific styles */
4415 #yatra-openstreet-map {
4416 border-radius: 12px !important;
4417 overflow: hidden;
4418 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
4419 }
4420
4421 .yatra-custom-marker {
4422 z-index: 1000 !important;
4423 }
4424
4425 .yatra-marker-bounce {
4426 animation: bounce 2s infinite;
4427 }
4428
4429 @keyframes bounce {
4430 0%, 20%, 50%, 80%, 100% {
4431 transform: translateY(0) rotate(-45deg);
4432 }
4433 40% {
4434 transform: translateY(-10px) rotate(-45deg);
4435 }
4436 60% {
4437 transform: translateY(-5px) rotate(-45deg);
4438 }
4439 }
4440
4441 /* Dark mode support for map */
4442 @media (prefers-color-scheme: dark) {
4443 .yatra-trip-map {
4444 background: #1e293b;
4445 border-color: #334155;
4446 }
4447
4448 .yatra-map-placeholder {
4449 background: linear-gradient(135deg, #1e293b, #334155);
4450 border-color: #475569;
4451 }
4452
4453 .yatra-map-placeholder p {
4454 color: #94a3b8;
4455 }
4456 }
4457
4458 /* ============================================
4459 FAQ
4460 ============================================ */
4461 .yatra-trip-faq {
4462 list-style: none;
4463 padding: 0;
4464 margin: 0;
4465 }
4466
4467 .yatra-faq-item {
4468 border-bottom: 1px solid #e5e7eb;
4469 padding: 20px 0;
4470 }
4471
4472 .yatra-faq-item:first-child {
4473 padding-top: 0;
4474 }
4475
4476 .yatra-faq-item:last-child {
4477 border-bottom: none;
4478 padding-bottom: 0;
4479 }
4480
4481 .yatra-faq-question {
4482 font-size: 18px;
4483 font-weight: 600;
4484 color: #111827;
4485 margin: 0 0 12px 0;
4486 cursor: pointer;
4487 display: flex;
4488 align-items: center;
4489 justify-content: space-between;
4490 transition: color 0.2s ease;
4491 }
4492
4493 .yatra-faq-question:hover {
4494 color: #374151;
4495 }
4496
4497 .yatra-faq-toggle {
4498 width: 20px;
4499 height: 20px;
4500 color: #6b7280;
4501 flex-shrink: 0;
4502 transition: transform 0.2s ease;
4503 }
4504
4505 .yatra-faq-item.active .yatra-faq-toggle {
4506 transform: rotate(45deg);
4507 }
4508
4509 .yatra-faq-answer {
4510 font-size: 16px;
4511 line-height: 1.6;
4512 color: #4b5563;
4513 max-height: 0;
4514 overflow: hidden;
4515 transition: max-height 0.2s ease, margin 0.2s ease, padding 0.2s ease;
4516 margin: 0;
4517 padding: 0;
4518 }
4519
4520 .yatra-faq-item.active .yatra-faq-answer {
4521 max-height: 1000px;
4522 margin-top: 12px;
4523 padding-top: 12px;
4524 border-top: 1px solid #f3f4f6;
4525 }
4526
4527 /* ============================================
4528 SIDEBAR - BOOKING CARD
4529 ============================================ */
4530 .yatra-trip-sidebar {
4531 position: sticky;
4532 top: max(12px, env(safe-area-inset-top, 0px));
4533 height: fit-content;
4534 max-width: 100%;
4535 align-self: flex-start;
4536 transition: top 0.3s ease;
4537 }
4538
4539 /* Account for WordPress admin bar */
4540 .admin-bar .yatra-trip-sidebar {
4541 top: 32px; /* Admin bar height */
4542 }
4543
4544 @media screen and (max-width: 782px) {
4545 .admin-bar .yatra-trip-sidebar {
4546 top: 46px; /* Mobile admin bar height */
4547 }
4548 }
4549
4550 .yatra-booking-card {
4551 background: #fff;
4552 border-radius: 12px;
4553 padding: 24px;
4554 box-shadow: 0 2px 8px rgba(0,0,0,0.1);
4555 border: 1px solid #e5e7eb;
4556 position: relative;
4557 }
4558
4559 .yatra-booking-price {
4560 margin-bottom: 24px;
4561 padding-bottom: 24px;
4562 border-bottom: 1px solid #e5e7eb;
4563 }
4564
4565 .yatra-booking-card .yatra-group-discount-badge-minimal {
4566 margin-bottom: 10px;
4567 background: #f0f9ff;
4568 border-color: rgba(2, 132, 199, 0.22);
4569 }
4570
4571 .yatra-booking-price-from {
4572 margin-bottom: 8px;
4573 }
4574
4575 .yatra-booking-price-from-text {
4576 font-size: 14px;
4577 color: #6b7280;
4578 font-weight: 500;
4579 }
4580
4581 .yatra-booking-price-original {
4582 font-size: 14px;
4583 color: rgba(107, 114, 128, 0.85);
4584 text-decoration: line-through;
4585 font-weight: 500;
4586 text-decoration-thickness: 1px;
4587 text-decoration-color: rgba(107, 114, 128, 0.65);
4588 }
4589
4590 .yatra-booking-price-main {
4591 display: flex;
4592 align-items: baseline;
4593 gap: 10px;
4594 /* Keep badge inside the card: allow wrapping only when needed */
4595 flex-wrap: wrap;
4596 white-space: normal;
4597 max-width: 100%;
4598 }
4599
4600 .yatra-booking-price-amount {
4601 font-size: 28px;
4602 font-weight: 700;
4603 color: #ef4444;
4604 line-height: 1.05;
4605 letter-spacing: -0.01em;
4606 }
4607
4608 .yatra-booking-price-label {
4609 font-size: 14px;
4610 color: #6b7280;
4611 font-weight: 500;
4612 line-height: 1.2;
4613 white-space: nowrap;
4614 max-width: 100%;
4615 }
4616
4617 /* Allow wrapping on very small screens */
4618 @media (max-width: 480px) {
4619 .yatra-booking-price-main {
4620 flex-wrap: wrap;
4621 white-space: normal;
4622 }
4623 }
4624
4625 /* Booking Discount Badge */
4626 .yatra-booking-discount-badge {
4627 display: inline-block;
4628 padding: 4px 10px;
4629 margin-bottom: 8px;
4630 background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
4631 color: white;
4632 font-size: 12px;
4633 font-weight: 600;
4634 border-radius: 4px;
4635 text-transform: uppercase;
4636 letter-spacing: 0.5px;
4637 }
4638
4639 /* Contact for pricing styling */
4640 .yatra-contact-pricing {
4641 font-size: 18px !important;
4642 color: #ef4444 !important;
4643 }
4644
4645 /* Group Discount Badge - Minimal */
4646 .yatra-group-discount-badge-minimal {
4647 display: inline-flex;
4648 align-items: center;
4649 gap: 6px;
4650 background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
4651 color: #0369a1;
4652 padding: 4px 8px;
4653 border-radius: 6px;
4654 font-size: 11px;
4655 font-weight: 500;
4656 border: 1px solid #bae6fd;
4657 position: relative;
4658 z-index: 1;
4659 }
4660
4661 .yatra-group-discount-badge-minimal svg {
4662 flex-shrink: 0;
4663 }
4664
4665 /* Tooltip Styles */
4666 .yatra-has-tooltip {
4667 cursor: help;
4668 }
4669
4670 .yatra-has-tooltip .yatra-info-icon {
4671 opacity: 0.6;
4672 transition: opacity 0.2s ease;
4673 }
4674
4675 .yatra-has-tooltip:hover .yatra-info-icon {
4676 opacity: 1;
4677 }
4678
4679 .yatra-tooltip {
4680 position: absolute;
4681 bottom: calc(100% + 8px);
4682 left: 50%;
4683 transform: translateX(-50%);
4684 background: #ffffff;
4685 border: 1px solid #e5e7eb;
4686 border-radius: 8px;
4687 box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
4688 padding: 0;
4689 min-width: 220px;
4690 z-index: 999999;
4691 opacity: 0;
4692 visibility: hidden;
4693 transition: opacity 0.2s ease, visibility 0.2s ease;
4694 pointer-events: none;
4695 }
4696
4697 .yatra-has-tooltip:hover .yatra-tooltip {
4698 opacity: 1;
4699 visibility: visible;
4700 pointer-events: auto;
4701 z-index: 999999;
4702 }
4703
4704 .yatra-tooltip::after {
4705 content: '';
4706 position: absolute;
4707 top: 100%;
4708 left: 50%;
4709 transform: translateX(-50%);
4710 border: 6px solid transparent;
4711 border-top-color: #ffffff;
4712 }
4713
4714 .yatra-tooltip-header {
4715 padding: 10px 12px;
4716 border-bottom: 1px solid #e5e7eb;
4717 background: #f9fafb;
4718 border-radius: 8px 8px 0 0;
4719 font-size: 13px;
4720 color: #111827;
4721 }
4722
4723 .yatra-tooltip-content {
4724 padding: 8px;
4725 }
4726
4727 .yatra-discount-tier {
4728 display: flex;
4729 justify-content: space-between;
4730 align-items: center;
4731 padding: 8px 6px;
4732 border-radius: 4px;
4733 transition: background-color 0.15s ease;
4734 }
4735
4736 .yatra-discount-tier:hover {
4737 background: #f3f4f6;
4738 }
4739
4740 .yatra-tier-size {
4741 font-size: 12px;
4742 color: #4b5563;
4743 font-weight: 500;
4744 }
4745
4746 .yatra-tier-discount {
4747 font-size: 12px;
4748 font-weight: 600;
4749 color: #059669;
4750 background: #ecfdf5;
4751 padding: 2px 8px;
4752 border-radius: 4px;
4753 }
4754
4755 /* Group discount popover (booking sidebar + mobile sticky) — replaces full-width section */
4756 .yatra-group-discount-popover {
4757 position: relative;
4758 display: block;
4759 width: 100%;
4760 margin-bottom: 12px;
4761 z-index: 5;
4762 }
4763
4764 .yatra-group-discount-popover--mobile {
4765 margin-bottom: 8px;
4766 }
4767
4768 .yatra-mobile-group-discount-popover-wrap {
4769 width: 100%;
4770 padding: 0 2px 4px;
4771 }
4772
4773 button[type="button"].yatra-group-discount-popover__trigger {
4774 display: flex;
4775 align-items: center;
4776 gap: 8px;
4777 width: 100%;
4778 justify-content: flex-start;
4779 text-align: left;
4780 padding: 10px 12px;
4781 border-radius: 10px;
4782 border: 1px solid rgba(2, 132, 199, 0.28);
4783 background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
4784 color: #0369a1;
4785 font-size: 13px;
4786 font-weight: 600;
4787 cursor: pointer;
4788 transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
4789 box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
4790 }
4791
4792 .yatra-group-discount-popover__trigger:hover,
4793 .yatra-group-discount-popover__trigger:focus-visible {
4794 outline: none;
4795 border-color: #38bdf8;
4796 box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.25);
4797 }
4798
4799 .yatra-group-discount-popover__trigger-icon {
4800 display: flex;
4801 color: #0284c7;
4802 }
4803
4804 .yatra-group-discount-popover__trigger-text {
4805 flex: 1;
4806 min-width: 0;
4807 line-height: 1.25;
4808 }
4809
4810 .yatra-group-discount-popover__chev {
4811 display: flex;
4812 color: #0369a1;
4813 opacity: 0.75;
4814 transition: transform 0.2s ease;
4815 }
4816
4817 .yatra-group-discount-popover.is-open .yatra-group-discount-popover__chev {
4818 transform: rotate(180deg);
4819 }
4820
4821 .yatra-group-discount-popover__panel {
4822 position: absolute;
4823 left: 0;
4824 right: 0;
4825 bottom: calc(100% + 8px);
4826 min-width: 0;
4827 max-width: min(340px, calc(100vw - 32px));
4828 margin-left: auto;
4829 margin-right: auto;
4830 background: #fff;
4831 border: 1px solid #e5e7eb;
4832 border-radius: 12px;
4833 box-shadow:
4834 0 14px 40px -12px rgba(15, 23, 42, 0.22),
4835 0 6px 16px -8px rgba(15, 23, 42, 0.12);
4836 opacity: 0;
4837 visibility: hidden;
4838 transform: translateY(6px);
4839 transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
4840 pointer-events: none;
4841 z-index: 100020;
4842 }
4843
4844 .yatra-group-discount-popover--mobile .yatra-group-discount-popover__panel {
4845 left: 0;
4846 right: 0;
4847 max-width: none;
4848 }
4849
4850 .yatra-group-discount-popover:hover .yatra-group-discount-popover__panel,
4851 .yatra-group-discount-popover:focus-within .yatra-group-discount-popover__panel,
4852 .yatra-group-discount-popover.is-open .yatra-group-discount-popover__panel {
4853 opacity: 1;
4854 visibility: visible;
4855 transform: translateY(0);
4856 pointer-events: auto;
4857 }
4858
4859 .yatra-group-discount-popover__panel-inner {
4860 padding: 12px 14px 14px;
4861 max-height: min(420px, 55vh);
4862 overflow-y: auto;
4863 -webkit-overflow-scrolling: touch;
4864 }
4865
4866 .yatra-group-discount-popover__head strong {
4867 display: block;
4868 font-size: 14px;
4869 color: #0f172a;
4870 margin-bottom: 4px;
4871 }
4872
4873 .yatra-group-discount-popover__sub {
4874 margin: 0 0 10px;
4875 font-size: 12px;
4876 line-height: 1.45;
4877 color: #64748b;
4878 }
4879
4880 .yatra-group-discount-popover__list {
4881 list-style: none;
4882 margin: 0;
4883 padding: 0;
4884 display: flex;
4885 flex-direction: column;
4886 gap: 8px;
4887 }
4888
4889 .yatra-group-discount-popover__tier {
4890 border: 1px solid #f1f5f9;
4891 border-radius: 10px;
4892 padding: 10px 10px 8px;
4893 background: #fafafa;
4894 }
4895
4896 .yatra-group-discount-popover__tier-main {
4897 display: flex;
4898 justify-content: space-between;
4899 align-items: center;
4900 gap: 10px;
4901 }
4902
4903 .yatra-group-discount-popover__range {
4904 font-size: 13px;
4905 font-weight: 600;
4906 color: #334155;
4907 }
4908
4909 .yatra-group-discount-popover__value {
4910 font-size: 13px;
4911 font-weight: 700;
4912 color: #059669;
4913 background: #ecfdf5;
4914 padding: 4px 10px;
4915 border-radius: 999px;
4916 white-space: nowrap;
4917 }
4918
4919 .yatra-group-discount-popover__cats {
4920 list-style: none;
4921 margin: 8px 0 0;
4922 padding: 8px 0 0;
4923 border-top: 1px dashed #e2e8f0;
4924 font-size: 12px;
4925 color: #475569;
4926 }
4927
4928 .yatra-group-discount-popover__cats li {
4929 display: flex;
4930 justify-content: space-between;
4931 gap: 8px;
4932 padding: 4px 0;
4933 }
4934
4935 .yatra-group-discount-popover__cat-name {
4936 font-weight: 500;
4937 }
4938
4939 .yatra-group-discount-popover__cat-val {
4940 font-weight: 600;
4941 color: #047857;
4942 }
4943
4944 .yatra-group-discount-popover__note {
4945 display: flex;
4946 align-items: flex-start;
4947 gap: 8px;
4948 margin: 12px 0 0;
4949 padding-top: 10px;
4950 border-top: 1px solid #f1f5f9;
4951 font-size: 11px;
4952 line-height: 1.45;
4953 color: #64748b;
4954 }
4955
4956 .yatra-group-discount-popover__note svg {
4957 flex-shrink: 0;
4958 margin-top: 1px;
4959 color: #94a3b8;
4960 }
4961
4962 /* Applied Group Discount Display */
4963 .yatra-applied-group-discount {
4964 margin-top: 12px;
4965 padding: 10px 12px;
4966 background: #ecfdf5;
4967 border: 1px solid #10b981;
4968 border-radius: 8px;
4969 display: none;
4970 }
4971
4972 .yatra-applied-group-discount.active {
4973 display: block;
4974 }
4975
4976 .yatra-applied-group-discount-header {
4977 display: flex;
4978 align-items: center;
4979 gap: 8px;
4980 margin-bottom: 6px;
4981 }
4982
4983 .yatra-applied-group-discount-icon {
4984 color: #10b981;
4985 }
4986
4987 .yatra-applied-group-discount-title {
4988 font-size: 13px;
4989 font-weight: 600;
4990 color: #047857;
4991 }
4992
4993 .yatra-applied-group-discount-amount {
4994 font-size: 14px;
4995 font-weight: 700;
4996 color: #059669;
4997 margin-left: auto;
4998 }
4999
5000 .yatra-applied-group-discount-desc {
5001 font-size: 12px;
5002 color: #059669;
5003 }
5004
5005 /* Pricing Mode Labels */
5006 .yatra-quantity-price-wrapper {
5007 display: flex;
5008 flex-direction: column;
5009 align-items: flex-start;
5010 gap: 2px;
5011 }
5012
5013 .yatra-pricing-mode-label {
5014 font-size: 10px;
5015 font-weight: 500;
5016 padding: 2px 6px;
5017 border-radius: 4px;
5018 white-space: nowrap;
5019 }
5020
5021 .yatra-pricing-mode-group {
5022 background: #fef3c7;
5023 color: #92400e;
5024 border: 1px solid #f59e0b;
5025 }
5026
5027 .yatra-booking-form {
5028 display: flex;
5029 flex-direction: column;
5030 gap: 16px;
5031 }
5032
5033 /* Participants Select */
5034 .yatra-participants-select {
5035 position: relative;
5036 }
5037
5038 .yatra-participants-display {
5039 flex: 1;
5040 padding: 14px 12px 14px 0;
5041 font-size: 15px;
5042 font-weight: 500;
5043 color: #111827;
5044 cursor: pointer;
5045 user-select: none;
5046 height: 100%;
5047 display: flex;
5048 align-items: center;
5049 pointer-events: auto;
5050 position: relative;
5051 z-index: 1;
5052 transition: color 0.2s ease;
5053 }
5054
5055 .yatra-participants-select:hover .yatra-participants-display {
5056 color: var(--yatra-primary, #3b82f6);
5057 }
5058
5059 /* Quantity Selector - Hidden by default */
5060 .yatra-booking-quantity-selector {
5061 position: absolute;
5062 top: 100%;
5063 left: 0;
5064 right: 0;
5065 margin-top: 8px;
5066 border: 1px solid #e5e7eb;
5067 border-radius: 12px;
5068 padding: 12px;
5069 background: #fff;
5070 box-shadow: 0 10px 25px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);
5071 z-index: 1000;
5072 display: none;
5073 max-height: 400px;
5074 overflow-y: auto;
5075 overflow-x: hidden;
5076 }
5077
5078 .yatra-participants-select.active .yatra-booking-quantity-selector {
5079 display: block;
5080 animation: yatra-trip-dropdown-slide 0.2s ease-out;
5081 }
5082
5083 @keyframes yatra-trip-dropdown-slide {
5084 from {
5085 opacity: 0;
5086 transform: translateY(-10px);
5087 }
5088 to {
5089 opacity: 1;
5090 transform: translateY(0);
5091 }
5092 }
5093
5094 /* Enquiry form quantity selector */
5095 .yatra-enquiry-participants.active .yatra-booking-quantity-selector {
5096 display: block;
5097 }
5098
5099 .yatra-quantity-row {
5100 display: flex;
5101 align-items: center;
5102 justify-content: space-between;
5103 padding: 16px 12px;
5104 border-radius: 12px;
5105 transition: all 0.2s ease;
5106 gap: 16px;
5107 margin-bottom: 8px;
5108 }
5109
5110 .yatra-quantity-row:hover {
5111 background-color: #f8fafc;
5112 transform: translateX(2px);
5113 }
5114
5115 .yatra-quantity-row:not(:last-child) {
5116 border-bottom: none;
5117 }
5118
5119 .yatra-quantity-label {
5120 display: flex;
5121 flex-direction: column;
5122 gap: 4px;
5123 flex: 1;
5124 min-width: 0;
5125 }
5126
5127 .yatra-quantity-title {
5128 font-size: 15px;
5129 font-weight: 600;
5130 color: #0f172a;
5131 line-height: 1.3;
5132 }
5133
5134 .yatra-quantity-subtitle {
5135 font-size: 12px;
5136 color: #64748b;
5137 line-height: 1.4;
5138 }
5139
5140 .yatra-quantity-price {
5141 display: block;
5142 font-size: 14px;
5143 font-weight: 700;
5144 color: #059669;
5145 margin-top: 2px;
5146 white-space: nowrap;
5147 }
5148
5149 .yatra-booking-price-label-top {
5150 display: block;
5151 font-size: 12px;
5152 color: #6b7280;
5153 text-transform: uppercase;
5154 letter-spacing: 0.5px;
5155 margin-bottom: 2px;
5156 }
5157
5158 /* Simple Travelers Input (Regular Pricing) */
5159 .yatra-booking-field-group {
5160 margin-bottom: 16px;
5161 }
5162
5163 .yatra-booking-field-label {
5164 display: block;
5165 font-size: 13px;
5166 font-weight: 500;
5167 color: #374151;
5168 margin-bottom: 8px;
5169 }
5170
5171 .yatra-booking-travelers-simple {
5172 display: flex;
5173 align-items: center;
5174 gap: 12px;
5175 padding: 12px 16px;
5176 background: #f9fafb;
5177 border: 1px solid #e5e7eb;
5178 border-radius: 10px;
5179 flex-wrap: wrap;
5180 }
5181
5182 /* Quantity Controls Inline - Modern Clean Design */
5183 .yatra-quantity-controls-inline {
5184 display: flex;
5185 align-items: center;
5186 gap: 2px;
5187 background: #f8fafc;
5188 border: 1.5px solid #e2e8f0;
5189 border-radius: 12px;
5190 padding: 3px;
5191 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
5192 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
5193 }
5194
5195 .yatra-quantity-controls-inline:hover {
5196 border-color: #cbd5e1;
5197 box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
5198 background: #ffffff;
5199 }
5200
5201 .yatra-quantity-controls-inline:focus-within {
5202 border-color: var(--yatra-primary, #3b82f6);
5203 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
5204 }
5205
5206 .yatra-quantity-controls-inline .yatra-quantity-btn {
5207 width: 32px;
5208 height: 32px;
5209 border-radius: 10px;
5210 border: none;
5211 background: #ffffff;
5212 display: flex;
5213 align-items: center;
5214 justify-content: center;
5215 cursor: pointer;
5216 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
5217 color: #475569;
5218 padding: 0;
5219 flex-shrink: 0;
5220 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
5221 position: relative;
5222 z-index: 1;
5223 }
5224
5225 .yatra-quantity-controls-inline .yatra-quantity-btn:hover:not(:disabled) {
5226 background: var(--yatra-primary, #3b82f6);
5227 color: #ffffff;
5228 transform: translateY(-1px);
5229 box-shadow: 0 4px 8px rgba(59, 130, 246, 0.25);
5230 z-index: 2;
5231 }
5232
5233 .yatra-quantity-controls-inline .yatra-quantity-btn:active:not(:disabled) {
5234 background: var(--yatra-primary-dark, #2563eb);
5235 color: #ffffff;
5236 transform: translateY(0);
5237 box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2);
5238 }
5239
5240 .yatra-quantity-controls-inline .yatra-quantity-btn:disabled {
5241 opacity: 0.4;
5242 cursor: not-allowed;
5243 color: #cbd5e1;
5244 background: #f1f5f9;
5245 box-shadow: none;
5246 }
5247
5248 .yatra-quantity-controls-inline .yatra-quantity-btn svg {
5249 width: 16px;
5250 height: 16px;
5251 stroke-width: 2.5;
5252 transition: transform 0.2s ease;
5253 pointer-events: none;
5254 }
5255
5256 .yatra-quantity-controls-inline .yatra-quantity-btn:hover:not(:disabled) svg {
5257 transform: scale(1.1);
5258 }
5259
5260 .yatra-quantity-input-simple {
5261 width: 50px;
5262 text-align: center;
5263 font-size: 15px;
5264 font-weight: 700;
5265 color: #0f172a;
5266 border: none;
5267 background: transparent;
5268 appearance: textfield;
5269 -moz-appearance: textfield;
5270 padding: 0 4px;
5271 border-radius: 8px;
5272 transition: all 0.2s ease;
5273 }
5274
5275 .yatra-quantity-input-simple::-webkit-outer-spin-button,
5276 .yatra-quantity-input-simple::-webkit-inner-spin-button {
5277 -webkit-appearance: none;
5278 margin: 0;
5279 }
5280
5281 .yatra-quantity-input-simple:focus {
5282 outline: none;
5283 background: #ffffff;
5284 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
5285 }
5286
5287 .yatra-travelers-range,
5288 .yatra-travelers-available {
5289 font-size: 12px;
5290 color: #6b7280;
5291 margin-left: auto;
5292 }
5293
5294 /* Availability Info */
5295 .yatra-availability-info {
5296 padding: 8px 12px;
5297 background: #ecfdf5;
5298 border-radius: 8px;
5299 margin-bottom: 16px;
5300 text-align: center;
5301 }
5302
5303 .yatra-availability-count {
5304 font-size: 13px;
5305 font-weight: 500;
5306 color: #059669;
5307 }
5308
5309 /* Flexible Booking Info */
5310 .yatra-flexible-booking-info {
5311 background: #f3f8ff;
5312 border-left: 3px solid rgba(59, 130, 246, 0.65);
5313 }
5314
5315 .yatra-flexible-booking-info .yatra-availability-count {
5316 color: var(--yatra-primary-darker, #1e40af);
5317 display: block;
5318 margin-bottom: 2px;
5319 font-weight: 600;
5320 }
5321
5322 .yatra-availability-note {
5323 display: block;
5324 font-size: 12px;
5325 color: #6b7280;
5326 font-weight: 400;
5327 }
5328
5329 /* Departure Dates List */
5330 .yatra-departure-dates-list {
5331 display: flex;
5332 flex-direction: column;
5333 gap: 8px;
5334 max-height: 280px;
5335 overflow-y: auto;
5336 padding-right: 4px;
5337 }
5338
5339 .yatra-departure-option {
5340 display: flex;
5341 align-items: center;
5342 gap: 12px;
5343 padding: 12px;
5344 border: 2px solid #e5e7eb;
5345 border-radius: 10px;
5346 cursor: pointer;
5347 transition: all 0.2s ease;
5348 background: #fff;
5349 }
5350
5351 .yatra-departure-option:hover {
5352 border-color: var(--yatra-primary, #3b82f6);
5353 background: #f8fafc;
5354 }
5355
5356 .yatra-departure-option.selected {
5357 border-color: var(--yatra-primary, #3b82f6);
5358 background: #eff6ff;
5359 }
5360
5361 .yatra-departure-option.limited {
5362 border-color: #f59e0b;
5363 }
5364
5365 .yatra-departure-option.limited.selected {
5366 background: #fffbeb;
5367 }
5368
5369 .yatra-departure-option input[type="radio"] {
5370 display: none;
5371 }
5372
5373 .yatra-departure-info {
5374 flex: 1;
5375 }
5376
5377 .yatra-departure-date {
5378 display: flex;
5379 flex-direction: column;
5380 gap: 2px;
5381 }
5382
5383 .yatra-departure-day {
5384 font-size: 11px;
5385 font-weight: 600;
5386 color: #6b7280;
5387 text-transform: uppercase;
5388 }
5389
5390 .yatra-departure-full {
5391 font-size: 14px;
5392 font-weight: 600;
5393 color: #111827;
5394 }
5395
5396 .yatra-return-date {
5397 font-size: 12px;
5398 color: #6b7280;
5399 }
5400
5401 .yatra-departure-meta {
5402 margin-top: 4px;
5403 }
5404
5405 .yatra-departure-seats {
5406 font-size: 11px;
5407 color: #059669;
5408 }
5409
5410 .yatra-departure-seats.limited {
5411 color: #f59e0b;
5412 font-weight: 500;
5413 }
5414
5415 .yatra-departure-price {
5416 text-align: right;
5417 }
5418
5419 .yatra-departure-original-price {
5420 font-size: 12px;
5421 color: #9ca3af;
5422 text-decoration: line-through;
5423 display: block;
5424 }
5425
5426 .yatra-departure-current-price {
5427 font-size: 16px;
5428 font-weight: 700;
5429 color: #059669;
5430 }
5431
5432 .yatra-departure-check {
5433 width: 24px;
5434 height: 24px;
5435 border-radius: 50%;
5436 background: #e5e7eb;
5437 display: flex;
5438 align-items: center;
5439 justify-content: center;
5440 transition: all 0.2s ease;
5441 }
5442
5443 .yatra-departure-check svg {
5444 color: transparent;
5445 transition: color 0.2s ease;
5446 }
5447
5448 .yatra-departure-option.selected .yatra-departure-check {
5449 background: var(--yatra-primary, #3b82f6);
5450 }
5451
5452 .yatra-departure-option.selected .yatra-departure-check svg {
5453 color: #fff;
5454 }
5455
5456 /* Scrollbar styling for departure list */
5457 .yatra-departure-dates-list::-webkit-scrollbar {
5458 width: 4px;
5459 }
5460
5461 .yatra-departure-dates-list::-webkit-scrollbar-track {
5462 background: #f1f5f9;
5463 border-radius: 4px;
5464 }
5465
5466 .yatra-departure-dates-list::-webkit-scrollbar-thumb {
5467 background: #cbd5e1;
5468 border-radius: 4px;
5469 }
5470
5471 .yatra-departure-dates-list::-webkit-scrollbar-thumb:hover {
5472 background: #94a3b8;
5473 }
5474
5475 /* Quantity Controls - Modern Clean Design */
5476 .yatra-quantity-controls {
5477 display: inline-flex;
5478 align-items: center;
5479 gap: 2px;
5480 background: #f8fafc;
5481 padding: 3px;
5482 border-radius: 12px;
5483 border: 1.5px solid #e2e8f0;
5484 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
5485 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
5486 }
5487
5488 .yatra-quantity-controls:hover {
5489 border-color: #cbd5e1;
5490 box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
5491 background: #ffffff;
5492 }
5493
5494 .yatra-quantity-controls:focus-within {
5495 border-color: var(--yatra-primary, #3b82f6);
5496 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
5497 }
5498
5499 .yatra-quantity-btn {
5500 width: 32px;
5501 height: 32px;
5502 border-radius: 10px;
5503 border: none;
5504 background: #ffffff;
5505 display: flex;
5506 align-items: center;
5507 justify-content: center;
5508 cursor: pointer;
5509 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
5510 color: #475569;
5511 padding: 0;
5512 flex-shrink: 0;
5513 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
5514 position: relative;
5515 z-index: 1;
5516 }
5517
5518 .yatra-quantity-row .yatra-quantity-btn:hover:not(:disabled) {
5519 background: var(--yatra-primary, #3b82f6);
5520 color: #ffffff;
5521 transform: translateY(-1px);
5522 box-shadow: 0 4px 8px rgba(59, 130, 246, 0.25);
5523 z-index: 2;
5524 }
5525
5526 .yatra-quantity-btn:active:not(:disabled) {
5527 background: var(--yatra-primary-dark, #2563eb);
5528 color: #ffffff;
5529 transform: translateY(0);
5530 box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2);
5531 }
5532
5533 .yatra-quantity-btn:disabled {
5534 opacity: 0.4;
5535 cursor: not-allowed;
5536 color: #cbd5e1;
5537 background: #f1f5f9;
5538 box-shadow: none;
5539 }
5540
5541 .yatra-quantity-btn svg {
5542 width: 16px;
5543 height: 16px;
5544 stroke-width: 2.5;
5545 transition: transform 0.2s ease;
5546 pointer-events: none;
5547 }
5548
5549 .yatra-quantity-btn:hover:not(:disabled) svg {
5550 transform: scale(1.1);
5551 }
5552
5553 .yatra-quantity-row .yatra-quantity-input {
5554 width: 48px;
5555 height: 32px;
5556 text-align: center;
5557 border: none;
5558 background: transparent;
5559 font-size: 15px;
5560 font-weight: 500;
5561 color: #0f172a;
5562 padding: 0 6px;
5563 cursor: default;
5564 min-width: 48px;
5565 border-radius: 8px;
5566 appearance: textfield;
5567 -moz-appearance: textfield;
5568 transition: all 0.2s ease;
5569 line-height: 32px;
5570 }
5571
5572 .yatra-quantity-input::-webkit-outer-spin-button,
5573 .yatra-quantity-input::-webkit-inner-spin-button {
5574 -webkit-appearance: none;
5575 margin: 0;
5576 }
5577
5578 .yatra-quantity-input:focus {
5579 outline: none;
5580 background: #ffffff;
5581 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
5582 }
5583
5584 .yatra-quantity-note {
5585 margin-top: 12px;
5586 padding-top: 12px;
5587 border-top: 1px solid #e5e7eb;
5588 font-size: 12px;
5589 color: #6b7280;
5590 line-height: 1.4;
5591 }
5592
5593 .yatra-booking-field-select {
5594 position: relative;
5595 display: flex;
5596 align-items: center;
5597 width: 100%;
5598 border: 1px solid rgba(209, 213, 219, 0.9);
5599 border-radius: 8px;
5600 background: #fff;
5601 transition: all 0.3s ease;
5602 min-height: 46px;
5603 height: 46px;
5604 cursor: pointer;
5605 }
5606
5607 .yatra-booking-field-select input[readonly] {
5608 cursor: pointer;
5609 }
5610
5611 .yatra-booking-field-select:focus-within {
5612 border-color: var(--yatra-primary, #3b82f6);
5613 }
5614
5615 .yatra-enquiry-field .yatra-booking-field-select:hover:not(:focus-within) {
5616 border-color: #cbd5e1;
5617 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 32%, #d1d5db);
5618 }
5619
5620 .yatra-booking-field-icon {
5621 padding: 0 12px;
5622 display: flex;
5623 align-items: center;
5624 color: #6b7280;
5625 flex-shrink: 0;
5626 height: 100%;
5627 }
5628
5629 .yatra-booking-field-icon svg {
5630 width: 18px;
5631 height: 18px;
5632 }
5633
5634 .yatra-booking-select {
5635 flex: 1;
5636 padding: 12px 12px 12px 0;
5637 border: none;
5638 background: transparent;
5639 font-size: 15px;
5640 color: #111827;
5641 font-family: inherit;
5642 appearance: none;
5643 cursor: pointer;
5644 height: 100%;
5645 display: flex;
5646 align-items: center;
5647 }
5648
5649 .yatra-booking-select:focus {
5650 outline: none;
5651 }
5652
5653 .yatra-booking-select option {
5654 padding: 8px;
5655 }
5656
5657 /* Pro: date-as-dropdown — keep the <select> visually consistent with the
5658 flatpickr input it replaces. The shared .yatra-booking-select rule above
5659 already handles borders/appearance; this just sizes the control like the
5660 readonly input variant and hides the native focus ring. */
5661 .yatra-booking-field-select.yatra-date-as-dropdown select.yatra-date-dropdown {
5662 width: 100%;
5663 min-width: 0;
5664 background-image: none;
5665 padding-right: 24px;
5666 }
5667 .yatra-mobile-field-btn select.yatra-mobile-date-dropdown {
5668 background-image: none;
5669 padding-right: 0;
5670 }
5671
5672 /* Datepicker - Remove double border */
5673 .yatra-datepicker,
5674 .yatra-booking-field-select input.yatra-datepicker,
5675 input.yatra-datepicker,
5676 .yatra-enquiry-datepicker,
5677 .yatra-enquiry-field .yatra-booking-field-select input {
5678 border: none !important;
5679 outline: none !important;
5680 box-shadow: none !important;
5681 margin:0;
5682 padding:0;
5683 }
5684
5685 .flatpickr-input {
5686 outline: none !important;
5687 box-shadow: none !important;
5688 }
5689
5690 /* Ensure enquiry form datepicker doesn't have double border */
5691 .yatra-enquiry-field .yatra-booking-field-select .flatpickr-input {
5692 border: none !important;
5693 outline: none !important;
5694 box-shadow: none !important;
5695 }
5696
5697 .yatra-select-arrow {
5698 position: absolute;
5699 right: 12px;
5700 width: 20px;
5701 height: 20px;
5702 color: #6b7280;
5703 pointer-events: none;
5704 flex-shrink: 0;
5705 }
5706
5707 .yatra-booking-enquiry-button {
5708 width: 100%;
5709 padding: 14px 24px;
5710 background: transparent;
5711 color: var(--yatra-primary, #3b82f6);
5712 border: 2px solid var(--yatra-primary, #3b82f6);
5713 border-radius: 8px;
5714 font-size: 15px;
5715 font-weight: 600;
5716 cursor: pointer;
5717 transition: all 0.3s ease;
5718 margin-top: 8px;
5719 display: flex;
5720 align-items: center;
5721 justify-content: center;
5722 gap: 8px;
5723 }
5724
5725 .yatra-booking-enquiry-button svg {
5726 flex-shrink: 0;
5727 }
5728
5729 .yatra-booking-enquiry-button:hover {
5730 background: var(--yatra-primary, #3b82f6);
5731 color: #fff;
5732 border-color: var(--yatra-primary-dark, #2563eb);
5733 }
5734
5735 .yatra-booking-button {
5736 width: 100%;
5737 padding: 16px 24px;
5738 background: var(--yatra-primary, #3b82f6);
5739 color: #fff;
5740 border: none;
5741 border-radius: 8px;
5742 font-size: 16px;
5743 font-weight: 600;
5744 cursor: pointer;
5745 transition: all 0.3s ease;
5746 margin-top: 8px;
5747 display: flex;
5748 align-items: center;
5749 justify-content: center;
5750 gap: 8px;
5751 }
5752
5753 .yatra-booking-button svg {
5754 flex-shrink: 0;
5755 }
5756
5757 .yatra-booking-button:hover {
5758 background: var(--yatra-primary-dark, #2563eb);
5759 transform: translateY(-1px);
5760 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
5761 }
5762
5763 .yatra-booking-button:focus-visible,
5764 .yatra-booking-enquiry-button:focus-visible,
5765 .yatra-booking-field-select:focus-within {
5766 outline: none;
5767 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
5768 box-shadow: 0 0 0 3px color-mix(in srgb, var(--yatra-primary, #3b82f6) 22%, transparent);
5769 }
5770
5771 /* Compact Availability Alert */
5772 .yatra-booking-availability-compact {
5773 padding: 8px 12px;
5774 background: #fef3c7;
5775 border: 1px solid #fde68a;
5776 border-radius: 6px;
5777 margin-bottom: 20px;
5778 font-size: 12px;
5779 color: #92400e;
5780 text-align: center;
5781 line-height: 1.4;
5782 }
5783
5784 .yatra-booking-availability-compact strong {
5785 font-weight: 700;
5786 color: #78350f;
5787 }
5788
5789
5790 /* Single Trust Signal */
5791 .yatra-booking-trust {
5792 margin-top: 20px;
5793 padding-top: 20px;
5794 border-top: 1px solid #e5e7eb;
5795 display: flex;
5796 align-items: flex-start;
5797 gap: 10px;
5798 }
5799
5800 .yatra-booking-trust-icon {
5801 flex-shrink: 0;
5802 margin-top: 2px;
5803 }
5804
5805 .yatra-booking-trust-icon svg {
5806 width: 18px;
5807 height: 18px;
5808 color: #10b981;
5809 }
5810
5811 .yatra-booking-trust-text {
5812 font-size: 13px;
5813 color: #4b5563;
5814 line-height: 1.5;
5815 }
5816
5817 .yatra-booking-trust-text strong {
5818 color: #111827;
5819 font-weight: 600;
5820 }
5821
5822 /* ============================================
5823 ENQUIRY MODAL
5824 ============================================ */
5825 .yatra-enquiry-modal {
5826 position: fixed;
5827 top: 0;
5828 left: 0;
5829 right: 0;
5830 bottom: 0;
5831 z-index: 99999;
5832 display: none !important;
5833 align-items: center;
5834 justify-content: center;
5835 padding: 20px;
5836 visibility: hidden;
5837 opacity: 0;
5838 transition: opacity 0.3s ease, visibility 0.3s ease;
5839 }
5840
5841 .yatra-enquiry-modal.active {
5842 display: flex !important;
5843 visibility: visible !important;
5844 opacity: 1 !important;
5845 }
5846
5847 .yatra-enquiry-modal-overlay {
5848 position: absolute;
5849 top: 0;
5850 left: 0;
5851 right: 0;
5852 bottom: 0;
5853 background: rgba(0, 0, 0, 0.6);
5854 backdrop-filter: blur(4px);
5855 }
5856
5857 .yatra-enquiry-modal-content {
5858 position: relative;
5859 background: #fff;
5860 border-radius: 16px;
5861 max-width: 700px;
5862 width: 100%;
5863 max-height: 90vh;
5864 overflow-y: auto;
5865 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
5866 z-index: 1;
5867 }
5868
5869 .yatra-enquiry-modal-close {
5870 position: absolute;
5871 top: 16px;
5872 right: 16px;
5873 width: 40px;
5874 height: 40px;
5875 border: none;
5876 background: #f3f4f6;
5877 border-radius: 50%;
5878 display: flex;
5879 align-items: center;
5880 justify-content: center;
5881 cursor: pointer;
5882 transition: all 0.2s ease;
5883 z-index: 10;
5884 color: #6b7280;
5885 padding:0;
5886 }
5887
5888 .yatra-enquiry-modal-close:hover {
5889 background: #e5e7eb;
5890 color: #111827;
5891 transform: rotate(90deg);
5892 }
5893
5894 .yatra-enquiry-modal-close svg {
5895 width: 20px;
5896 height: 20px;
5897 }
5898
5899 .yatra-enquiry-modal-header {
5900 padding: 32px 32px 24px;
5901 border-bottom: 1px solid #e5e7eb;
5902 }
5903
5904 .yatra-enquiry-modal-title {
5905 font-size: 24px;
5906 font-weight: 700;
5907 color: #111827;
5908 margin: 0 0 8px 0;
5909 }
5910
5911 .yatra-enquiry-modal-subtitle {
5912 font-size: 14px;
5913 color: #6b7280;
5914 margin: 0;
5915 line-height: 1.5;
5916 }
5917
5918 .yatra-enquiry-form {
5919 padding: 24px 32px 32px;
5920 }
5921
5922 /* Enquiry form message box */
5923 .yatra-enquiry-message {
5924 margin-bottom: 16px;
5925 padding: 12px 16px;
5926 border-radius: 8px;
5927 font-size: 14px;
5928 line-height: 1.5;
5929 }
5930
5931 .yatra-enquiry-message p {
5932 margin: 0;
5933 }
5934
5935 .yatra-enquiry-message-success {
5936 background-color: #dcfce7;
5937 color: #166534;
5938 border: 1px solid #bbf7d0;
5939 }
5940
5941 .yatra-enquiry-message-error {
5942 background-color: #fef2f2;
5943 color: #dc2626;
5944 border: 1px solid #fecaca;
5945 }
5946
5947 .yatra-enquiry-form-grid {
5948 display: grid;
5949 grid-template-columns: 1fr 1fr 1fr;
5950 gap: 16px;
5951 margin-bottom: 20px;
5952 }
5953
5954 .yatra-enquiry-field {
5955 margin-bottom: 20px;
5956 }
5957
5958 .yatra-enquiry-field-group {
5959 display: grid;
5960 grid-template-columns: 1fr 1fr;
5961 gap: 16px;
5962 margin-bottom: 20px;
5963 }
5964
5965 /* Enquiry form date and travelers selectors */
5966 .yatra-enquiry-field .yatra-booking-field-select {
5967 margin-top: 0;
5968 }
5969
5970 .yatra-enquiry-label {
5971 display: block;
5972 font-size: 14px;
5973 font-weight: 600;
5974 color: #374151;
5975 margin-bottom: 8px;
5976 }
5977
5978 .yatra-enquiry-required {
5979 color: #ef4444;
5980 }
5981
5982 .yatra-enquiry-input,
5983 .yatra-enquiry-textarea ,
5984 .yatra-enquiry-input[type="text"],
5985 .yatra-enquiry-input[type="email"],
5986 .yatra-enquiry-input[type="tel"]{
5987 width: 100%;
5988 padding: 12px 16px;
5989 border: 1px solid #d1d5db;
5990 border-radius: 8px;
5991 font-size: 15px;
5992 font-family: inherit;
5993 color: #111827;
5994 background: #fff;
5995 transition: all 0.2s ease;
5996 box-sizing: border-box;
5997 }
5998
5999 .yatra-enquiry-input:hover,
6000 .yatra-enquiry-textarea:hover {
6001 border-color: #cbd5e1;
6002 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 28%, #d1d5db);
6003 }
6004
6005 .yatra-enquiry-input:focus,
6006 .yatra-enquiry-textarea:focus {
6007 outline: none;
6008 border-color: var(--yatra-primary, #3b82f6);
6009 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
6010 box-shadow: 0 0 0 3px color-mix(in srgb, var(--yatra-primary, #3b82f6) 14%, transparent);
6011 }
6012
6013 .yatra-enquiry-textarea {
6014 resize: vertical;
6015 min-height: 80px;
6016 height: 80px;
6017 line-height: 1.6;
6018 }
6019
6020 /* Enquiry form responsive - handled in main responsive section below */
6021
6022 @media (max-width: 640px) {
6023 .yatra-enquiry-form-grid {
6024 grid-template-columns: 1fr;
6025 }
6026
6027 .yatra-enquiry-field-group {
6028 grid-template-columns: 1fr;
6029 }
6030 }
6031
6032 .yatra-enquiry-input::placeholder,
6033 .yatra-enquiry-textarea::placeholder {
6034 color: #9ca3af;
6035 }
6036
6037 .yatra-enquiry-actions {
6038 display: flex;
6039 gap: 12px;
6040 margin-top: 32px;
6041 padding-top: 24px;
6042 border-top: 1px solid #e5e7eb;
6043 }
6044
6045 /* Match sidebar / Check Availability: same primary CTA class + flex row layout */
6046 .yatra-enquiry-actions .yatra-booking-button.yatra-enquiry-submit {
6047 width: auto;
6048 flex: 1;
6049 min-width: 0;
6050 margin-top: 0;
6051 }
6052
6053 .yatra-enquiry-cancel {
6054 flex: 1;
6055 padding: 14px 24px;
6056 border: 1px solid #d1d5db;
6057 border-radius: 8px;
6058 background: #fff;
6059 color: #374151;
6060 font-size: 15px;
6061 font-weight: 600;
6062 cursor: pointer;
6063 transition: all 0.2s ease;
6064 display: flex;
6065 align-items: center;
6066 justify-content: center;
6067 gap: 6px;
6068 }
6069
6070 .yatra-enquiry-cancel svg {
6071 flex-shrink: 0;
6072 }
6073
6074 .yatra-enquiry-cancel:hover {
6075 background: #f9fafb;
6076 border-color: #9ca3af;
6077 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 38%, #9ca3af);
6078 }
6079
6080 /* Standalone submit (no booking CTA class): full primary styling */
6081 .yatra-enquiry-submit:not(.yatra-booking-button) {
6082 flex: 1;
6083 padding: 14px 24px;
6084 border: none;
6085 border-radius: 8px;
6086 background: var(--yatra-primary, #3b82f6);
6087 color: #fff;
6088 font-size: 15px;
6089 font-weight: 600;
6090 cursor: pointer;
6091 transition: all 0.2s ease;
6092 display: flex;
6093 align-items: center;
6094 justify-content: center;
6095 gap: 6px;
6096 }
6097
6098 .yatra-enquiry-submit svg {
6099 flex-shrink: 0;
6100 }
6101
6102 .yatra-enquiry-submit:not(.yatra-booking-button):hover {
6103 background: var(--yatra-primary-dark, #2563eb);
6104 transform: translateY(-1px);
6105 box-shadow: 0 4px 12px color-mix(in srgb, var(--yatra-primary, #3b82f6) 40%, transparent);
6106 }
6107
6108 .yatra-enquiry-submit:not(.yatra-booking-button):active {
6109 transform: translateY(0);
6110 }
6111
6112 .yatra-enquiry-actions .yatra-booking-button.yatra-enquiry-submit:hover {
6113 box-shadow: 0 4px 12px color-mix(in srgb, var(--yatra-primary, #3b82f6) 40%, transparent);
6114 }
6115
6116 @media (max-width: 640px) {
6117 .yatra-enquiry-modal-content {
6118 max-width: 100%;
6119 border-radius: 12px;
6120 }
6121
6122 .yatra-enquiry-modal-header {
6123 padding: 24px 20px 20px;
6124 }
6125
6126 .yatra-enquiry-form {
6127 padding: 20px;
6128 }
6129
6130 .yatra-enquiry-field-group {
6131 grid-template-columns: 1fr;
6132 }
6133
6134 .yatra-enquiry-actions {
6135 flex-direction: column;
6136 }
6137 }
6138
6139 /* ============================================
6140 ADDITIONAL SERVICES MODAL (Yatra Pro)
6141 Matches .yatra-enquiry-modal + booking / theme tokens
6142 ============================================ */
6143 .yatra-services-modal {
6144 position: fixed;
6145 top: 0;
6146 left: 0;
6147 right: 0;
6148 bottom: 0;
6149 z-index: 100000;
6150 display: none !important;
6151 align-items: center;
6152 justify-content: center;
6153 padding: 20px;
6154 visibility: hidden;
6155 opacity: 0;
6156 transition: opacity 0.3s ease, visibility 0.3s ease;
6157 }
6158
6159 .yatra-services-modal.active {
6160 display: flex !important;
6161 visibility: visible !important;
6162 opacity: 1 !important;
6163 }
6164
6165 .yatra-services-modal-overlay {
6166 position: absolute;
6167 top: 0;
6168 left: 0;
6169 right: 0;
6170 bottom: 0;
6171 background: rgba(0, 0, 0, 0.6);
6172 backdrop-filter: blur(4px);
6173 }
6174
6175 .yatra-services-modal-container {
6176 position: relative;
6177 z-index: 1;
6178 width: 100%;
6179 max-width: 560px;
6180 max-height: 90vh;
6181 animation: yatra-services-modal-in 0.28s ease-out;
6182 }
6183
6184 @keyframes yatra-services-modal-in {
6185 from {
6186 opacity: 0;
6187 transform: translateY(16px);
6188 }
6189 to {
6190 opacity: 1;
6191 transform: translateY(0);
6192 }
6193 }
6194
6195 .yatra-services-modal-content {
6196 position: relative;
6197 background: #fff;
6198 border-radius: 16px;
6199 width: 100%;
6200 max-height: 90vh;
6201 overflow: hidden;
6202 display: flex;
6203 flex-direction: column;
6204 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.28);
6205 }
6206
6207 .yatra-services-modal-close {
6208 position: absolute;
6209 top: 16px;
6210 right: 16px;
6211 width: 40px;
6212 height: 40px;
6213 border: none;
6214 background: #f3f4f6;
6215 border-radius: 50%;
6216 display: flex;
6217 align-items: center;
6218 justify-content: center;
6219 cursor: pointer;
6220 transition: all 0.2s ease;
6221 z-index: 10;
6222 color: #6b7280;
6223 padding: 0;
6224 }
6225
6226 .yatra-services-modal-close:hover {
6227 background: #e5e7eb;
6228 color: #111827;
6229 transform: rotate(90deg);
6230 }
6231
6232 .yatra-services-modal-close svg {
6233 width: 20px;
6234 height: 20px;
6235 }
6236
6237 .yatra-services-modal-header {
6238 display: flex;
6239 align-items: flex-start;
6240 gap: 16px;
6241 padding: 28px 72px 22px 32px;
6242 border-bottom: 1px solid #e5e7eb;
6243 }
6244
6245 .yatra-services-modal-icon {
6246 flex-shrink: 0;
6247 width: 48px;
6248 height: 48px;
6249 background: var(--yatra-primary, #3b82f6);
6250 border-radius: 12px;
6251 display: flex;
6252 align-items: center;
6253 justify-content: center;
6254 color: #fff;
6255 box-shadow: 0 4px 14px color-mix(in srgb, var(--yatra-primary, #3b82f6) 35%, transparent);
6256 }
6257
6258 .yatra-services-modal-title-wrap {
6259 flex: 1;
6260 min-width: 0;
6261 padding-top: 2px;
6262 }
6263
6264 .yatra-services-modal-title {
6265 margin: 0 0 8px 0;
6266 font-size: 22px;
6267 font-weight: 700;
6268 color: #111827;
6269 line-height: 1.25;
6270 }
6271
6272 .yatra-services-modal-subtitle {
6273 margin: 0;
6274 font-size: 14px;
6275 color: #6b7280;
6276 line-height: 1.5;
6277 }
6278
6279 .yatra-services-modal-body {
6280 flex: 1;
6281 overflow-y: auto;
6282 padding: 20px 32px;
6283 }
6284
6285 .yatra-services-modal-list {
6286 display: flex;
6287 flex-direction: column;
6288 gap: 12px;
6289 }
6290
6291 .yatra-services-loading {
6292 display: flex;
6293 align-items: center;
6294 justify-content: center;
6295 gap: 12px;
6296 padding: 36px 16px;
6297 color: #6b7280;
6298 font-size: 14px;
6299 }
6300
6301 .yatra-services-modal .yatra-spin {
6302 animation: yatra-services-spin 0.9s linear infinite;
6303 }
6304
6305 @keyframes yatra-services-spin {
6306 from {
6307 transform: rotate(0deg);
6308 }
6309 to {
6310 transform: rotate(360deg);
6311 }
6312 }
6313
6314 .yatra-service-modal-item {
6315 background: #f9fafb;
6316 border: 1px solid #e5e7eb;
6317 border-radius: 12px;
6318 padding: 16px 18px;
6319 cursor: pointer;
6320 transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
6321 }
6322
6323 .yatra-service-modal-item:hover {
6324 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 45%, #e5e7eb);
6325 background: #fff;
6326 box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
6327 }
6328
6329 .yatra-service-modal-item.selected {
6330 border-color: var(--yatra-primary, #3b82f6);
6331 background: color-mix(in srgb, var(--yatra-primary, #3b82f6) 6%, #fff);
6332 box-shadow: 0 0 0 1px color-mix(in srgb, var(--yatra-primary, #3b82f6) 25%, transparent);
6333 }
6334
6335 .yatra-service-modal-item.required {
6336 border-color: #fcd34d;
6337 background: #fffbeb;
6338 }
6339
6340 .yatra-service-modal-item.required.selected {
6341 border-color: #f59e0b;
6342 background: #fef3c7;
6343 }
6344
6345 .yatra-service-modal-item-header {
6346 display: flex;
6347 align-items: flex-start;
6348 gap: 14px;
6349 }
6350
6351 .yatra-service-modal-checkbox {
6352 flex-shrink: 0;
6353 width: 22px;
6354 height: 22px;
6355 margin-top: 2px;
6356 }
6357
6358 .yatra-service-modal-checkbox input {
6359 width: 22px;
6360 height: 22px;
6361 accent-color: var(--yatra-primary, #3b82f6);
6362 cursor: pointer;
6363 }
6364
6365 .yatra-service-modal-checkbox input:disabled {
6366 cursor: not-allowed;
6367 opacity: 0.85;
6368 }
6369
6370 .yatra-service-modal-info {
6371 flex: 1;
6372 min-width: 0;
6373 }
6374
6375 .yatra-service-modal-name {
6376 display: flex;
6377 flex-wrap: wrap;
6378 align-items: center;
6379 gap: 8px;
6380 font-size: 15px;
6381 font-weight: 600;
6382 color: #111827;
6383 margin-bottom: 6px;
6384 }
6385
6386 .yatra-service-modal-badge {
6387 display: inline-flex;
6388 align-items: center;
6389 padding: 2px 10px;
6390 font-size: 11px;
6391 font-weight: 600;
6392 border-radius: 9999px;
6393 letter-spacing: 0.02em;
6394 }
6395
6396 .yatra-service-modal-badge.required {
6397 background: #fef3c7;
6398 color: #92400e;
6399 }
6400
6401 .yatra-service-modal-description {
6402 font-size: 13px;
6403 color: #6b7280;
6404 line-height: 1.45;
6405 margin: 0;
6406 }
6407
6408 .yatra-service-modal-price {
6409 flex-shrink: 0;
6410 text-align: right;
6411 }
6412
6413 .yatra-service-modal-price-amount {
6414 font-size: 17px;
6415 font-weight: 700;
6416 color: var(--yatra-primary, #3b82f6);
6417 }
6418
6419 .yatra-service-modal-price-per {
6420 font-size: 12px;
6421 color: #9ca3af;
6422 margin-top: 2px;
6423 }
6424
6425 .yatra-services-modal-footer {
6426 display: flex;
6427 align-items: center;
6428 justify-content: space-between;
6429 gap: 16px;
6430 padding: 18px 32px 22px;
6431 border-top: 1px solid #e5e7eb;
6432 background: #fafafa;
6433 }
6434
6435 .yatra-services-modal-total {
6436 display: flex;
6437 flex-direction: column;
6438 gap: 4px;
6439 }
6440
6441 .yatra-services-total-label {
6442 font-size: 12px;
6443 font-weight: 600;
6444 color: #6b7280;
6445 text-transform: uppercase;
6446 letter-spacing: 0.04em;
6447 }
6448
6449 .yatra-services-total-amount {
6450 font-size: 22px;
6451 font-weight: 700;
6452 color: #111827;
6453 line-height: 1.2;
6454 }
6455
6456 .yatra-services-modal-actions {
6457 display: flex;
6458 flex-wrap: wrap;
6459 gap: 12px;
6460 align-items: center;
6461 }
6462
6463 .yatra-services-skip-btn {
6464 padding: 12px 22px;
6465 font-size: 15px;
6466 font-weight: 600;
6467 color: #374151;
6468 background: #fff;
6469 border: 1px solid #d1d5db;
6470 border-radius: 8px;
6471 cursor: pointer;
6472 transition: all 0.2s ease;
6473 }
6474
6475 .yatra-services-skip-btn:hover:not(:disabled) {
6476 background: #f9fafb;
6477 border-color: #9ca3af;
6478 }
6479
6480 .yatra-services-skip-btn:disabled {
6481 opacity: 0.45;
6482 cursor: not-allowed;
6483 }
6484
6485 .yatra-services-continue-btn {
6486 display: inline-flex;
6487 align-items: center;
6488 justify-content: center;
6489 gap: 8px;
6490 padding: 12px 24px;
6491 font-size: 15px;
6492 font-weight: 600;
6493 color: #fff;
6494 background: var(--yatra-primary, #3b82f6);
6495 border: none;
6496 border-radius: 8px;
6497 cursor: pointer;
6498 transition: all 0.2s ease;
6499 }
6500
6501 .yatra-services-continue-btn:hover:not(:disabled) {
6502 background: var(--yatra-primary-dark, #2563eb);
6503 transform: translateY(-1px);
6504 box-shadow: 0 4px 14px color-mix(in srgb, var(--yatra-primary, #3b82f6) 40%, transparent);
6505 }
6506
6507 .yatra-services-continue-btn:active:not(:disabled) {
6508 transform: translateY(0);
6509 }
6510
6511 .yatra-services-continue-btn:disabled {
6512 opacity: 0.5;
6513 cursor: not-allowed;
6514 transform: none;
6515 }
6516
6517 .yatra-services-empty {
6518 text-align: center;
6519 padding: 40px 20px;
6520 color: #6b7280;
6521 font-size: 14px;
6522 }
6523
6524 .yatra-services-empty-icon {
6525 width: 48px;
6526 height: 48px;
6527 margin: 0 auto 12px;
6528 color: #d1d5db;
6529 }
6530
6531 @media (max-width: 640px) {
6532 .yatra-services-modal {
6533 padding: 12px;
6534 }
6535
6536 .yatra-services-modal-content {
6537 border-radius: 14px;
6538 max-height: 92vh;
6539 }
6540
6541 .yatra-services-modal-header {
6542 padding: 24px 56px 18px 20px;
6543 }
6544
6545 .yatra-services-modal-title {
6546 font-size: 19px;
6547 }
6548
6549 .yatra-services-modal-body {
6550 padding: 16px 20px;
6551 }
6552
6553 .yatra-services-modal-footer {
6554 flex-direction: column;
6555 align-items: stretch;
6556 padding: 16px 20px 20px;
6557 }
6558
6559 .yatra-services-modal-total {
6560 flex-direction: row;
6561 justify-content: space-between;
6562 align-items: baseline;
6563 }
6564
6565 .yatra-services-modal-actions {
6566 width: 100%;
6567 }
6568
6569 .yatra-services-skip-btn,
6570 .yatra-services-continue-btn {
6571 flex: 1;
6572 justify-content: center;
6573 }
6574 }
6575
6576 .yatra-booking-feature-item {
6577 display: flex;
6578 align-items: flex-start;
6579 gap: 12px;
6580 }
6581
6582 .yatra-booking-feature-icon {
6583 flex-shrink: 0;
6584 margin-top: 2px;
6585 }
6586
6587 .yatra-booking-feature-icon svg {
6588 width: 20px;
6589 height: 20px;
6590 color: #10b981;
6591 }
6592
6593 .yatra-booking-feature-content {
6594 flex: 1;
6595 }
6596
6597 .yatra-booking-feature-title {
6598 font-size: 15px;
6599 font-weight: 600;
6600 color: #111827;
6601 margin-bottom: 4px;
6602 }
6603
6604 .yatra-booking-feature-desc {
6605 font-size: 13px;
6606 color: #6b7280;
6607 line-height: 1.5;
6608 }
6609
6610 .yatra-booking-feature-link {
6611 color: var(--yatra-primary, #3b82f6);
6612 text-decoration: none;
6613 font-weight: 500;
6614 }
6615
6616 .yatra-booking-feature-link:hover {
6617 text-decoration: underline;
6618 }
6619
6620 /* ============================================
6621 WEATHER & CLIMATE
6622 ============================================ */
6623 .yatra-weather-info {
6624 background: #f9fafb;
6625 border-radius: 12px;
6626 padding: 24px;
6627 border: 1px solid #e5e7eb;
6628 }
6629
6630 .yatra-weather-card {
6631 margin-bottom: 24px;
6632 }
6633
6634 .yatra-weather-season {
6635 font-size: 18px;
6636 font-weight: 700;
6637 color: #111827;
6638 margin-bottom: 12px;
6639 }
6640
6641 .yatra-weather-desc {
6642 font-size: 15px;
6643 line-height: 1.7;
6644 color: #4b5563;
6645 margin: 0;
6646 }
6647
6648 .yatra-weather-details {
6649 display: grid;
6650 gap: 16px;
6651 }
6652
6653 .yatra-weather-detail-item {
6654 padding: 16px;
6655 background: #fff;
6656 border-radius: 8px;
6657 border: 1px solid #e5e7eb;
6658 }
6659
6660 .yatra-weather-detail-label {
6661 font-size: 14px;
6662 font-weight: 600;
6663 color: #374151;
6664 margin-bottom: 6px;
6665 }
6666
6667 .yatra-weather-detail-value {
6668 font-size: 14px;
6669 color: #6b7280;
6670 line-height: 1.5;
6671 }
6672
6673 /* ============================================
6674 PACKING LIST
6675 ============================================ */
6676 .yatra-packing-list {
6677 display: grid;
6678 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
6679 gap: 24px;
6680 }
6681
6682 .yatra-packing-category {
6683 background: #f9fafb;
6684 border-radius: 12px;
6685 padding: 24px;
6686 border: 1px solid #e5e7eb;
6687 }
6688
6689 .yatra-packing-category-title {
6690 font-size: 18px;
6691 font-weight: 700;
6692 color: #111827;
6693 margin-bottom: 16px;
6694 padding-bottom: 12px;
6695 border-bottom: 2px solid var(--yatra-primary, #3b82f6);
6696 }
6697
6698 .yatra-packing-items {
6699 list-style: none;
6700 padding: 0;
6701 margin: 0;
6702 display: flex;
6703 flex-direction: column;
6704 gap: 10px;
6705 }
6706
6707 .yatra-packing-items li {
6708 font-size: 14px;
6709 color: #4b5563;
6710 line-height: 1.6;
6711 padding-left: 24px;
6712 position: relative;
6713 }
6714
6715 .yatra-packing-items li::before {
6716 content: "\2713";
6717 position: absolute;
6718 left: 0;
6719 color: #10b981;
6720 font-weight: 700;
6721 font-size: 16px;
6722 }
6723
6724 /* ============================================
6725 SIMILAR TRIPS - UNIFIED SPACING
6726 ============================================ */
6727 .yatra-similar-section {
6728 /* Breathing room from reviews (or previous block); section already has bottom rhythm */
6729 padding-top: var(--yatra-section-gap);
6730 padding-bottom: var(--yatra-section-gap);
6731 background: #f8fafc;
6732 margin-top: 0;
6733 border-top: 1px solid var(--yatra-border-color, #e5e7eb);
6734 }
6735
6736 /* Parent .yatra-similar-section already has unified max-width + horizontal padding (see .yatra-single-trip > rules).
6737 Higher specificity than common.css .yatra-similar-section-container legacy rule. */
6738 .yatra-single-trip .yatra-similar-section > .yatra-similar-section-container {
6739 width: 100%;
6740 max-width: none;
6741 margin-left: 0;
6742 margin-right: 0;
6743 padding-left: 0;
6744 padding-right: 0;
6745 }
6746
6747 .yatra-similar-section-header {
6748 display: flex;
6749 align-items: center;
6750 justify-content: space-between;
6751 margin-bottom: var(--yatra-element-gap);
6752 }
6753
6754 .yatra-similar-section-title {
6755 display: flex;
6756 align-items: center;
6757 gap: var(--yatra-tiny-gap);
6758 font-size: 28px;
6759 font-weight: 700;
6760 color: #111827;
6761 margin: 0;
6762 }
6763
6764 .yatra-similar-section-icon {
6765 width: 32px;
6766 height: 32px;
6767 color: var(--yatra-primary, #3b82f6);
6768 }
6769
6770 /* Carousel Navigation */
6771 .yatra-carousel-nav {
6772 display: flex;
6773 gap: 8px;
6774 }
6775
6776 .yatra-carousel-btn {
6777 width: 44px;
6778 height: 44px;
6779 display: flex;
6780 align-items: center;
6781 justify-content: center;
6782 background: #fff;
6783 border: 1px solid #e5e7eb;
6784 border-radius: 50%;
6785 cursor: pointer;
6786 color: #374151;
6787 transition: all 0.2s;
6788 }
6789
6790 .yatra-carousel-btn:hover:not(:disabled) {
6791 background: var(--yatra-primary, #3b82f6);
6792 border-color: var(--yatra-primary, #3b82f6);
6793 color: #fff;
6794 }
6795
6796 .yatra-carousel-btn:disabled {
6797 opacity: 0.5;
6798 cursor: not-allowed;
6799 }
6800
6801 /* Carousel Wrapper */
6802 .yatra-carousel-wrapper {
6803 overflow: hidden;
6804 position: relative;
6805 }
6806
6807 .yatra-carousel-track {
6808 display: flex;
6809 gap: 24px;
6810 transition: transform 0.4s ease;
6811 }
6812
6813 .yatra-carousel-item {
6814 flex: 0 0 calc(25% - 18px);
6815 min-width: 280px;
6816 }
6817
6818 @media (max-width: 1200px) {
6819 .yatra-carousel-item {
6820 flex: 0 0 calc(33.333% - 16px);
6821 }
6822 }
6823
6824 @media (max-width: 900px) {
6825 .yatra-carousel-item {
6826 flex: 0 0 calc(50% - 12px);
6827 }
6828 }
6829
6830 @media (max-width: 600px) {
6831 .yatra-carousel-item {
6832 flex: 0 0 100%;
6833 }
6834
6835 .yatra-carousel-nav {
6836 display: none;
6837 }
6838
6839 .yatra-carousel-track {
6840 overflow-x: auto;
6841 scroll-snap-type: x mandatory;
6842 -webkit-overflow-scrolling: touch;
6843 scrollbar-width: none;
6844 -ms-overflow-style: none;
6845 }
6846
6847 .yatra-carousel-track::-webkit-scrollbar {
6848 display: none;
6849 }
6850
6851 .yatra-carousel-item {
6852 scroll-snap-align: start;
6853 }
6854 }
6855
6856 /* Grid uses same card styles as /trip page */
6857 .yatra-similar-trips-grid {
6858 display: grid;
6859 grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
6860 gap: 24px;
6861 }
6862
6863 .yatra-similar-trips-grid .yatra-trip-card {
6864 background: #fff;
6865 border-radius: 12px;
6866 overflow: hidden;
6867 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
6868 transition: transform 0.2s, box-shadow 0.2s;
6869 cursor: pointer;
6870 display: flex;
6871 flex-direction: column;
6872 }
6873
6874 .yatra-similar-trips-grid .yatra-trip-card:hover {
6875 transform: translateY(-4px);
6876 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
6877 }
6878
6879 .yatra-similar-trips-grid .yatra-trip-image {
6880 position: relative;
6881 width: 100%;
6882 height: 200px;
6883 overflow: hidden;
6884 background: #e5e7eb;
6885 flex-shrink: 0;
6886 }
6887
6888 .yatra-similar-trips-grid .yatra-trip-image img {
6889 width: 100%;
6890 height: 100%;
6891 object-fit: cover;
6892 transition: transform 0.3s;
6893 }
6894
6895 .yatra-similar-trips-grid .yatra-trip-card:hover .yatra-trip-image img {
6896 transform: scale(1.05);
6897 }
6898
6899 .yatra-similar-trips-grid .yatra-discount-badge {
6900 position: absolute;
6901 top: 12px;
6902 left: 12px;
6903 background: #ef4444;
6904 color: #fff;
6905 padding: 4px 10px;
6906 border-radius: 4px;
6907 font-size: 12px;
6908 font-weight: 600;
6909 z-index: 2;
6910 }
6911
6912 .yatra-similar-trips-grid .yatra-favorite-btn {
6913 position: absolute !important;
6914 top: 12px !important;
6915 right: 12px !important;
6916 width: 36px !important;
6917 height: 36px !important;
6918 background: #ffffff !important;
6919 border: 1px solid rgba(0, 0, 0, 0.1) !important;
6920 border-radius: 50% !important;
6921 cursor: pointer !important;
6922 display: flex !important;
6923 align-items: center !important;
6924 justify-content: center !important;
6925 color: #6b7280 !important;
6926 transition: all 0.2s !important;
6927 z-index: 10 !important;
6928 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
6929 padding: 0 !important;
6930 }
6931
6932 .yatra-similar-trips-grid .yatra-favorite-btn:hover {
6933 background: #ffffff !important;
6934 color: #ef4444 !important;
6935 transform: scale(1.1) !important;
6936 }
6937
6938 .yatra-similar-trips-grid .yatra-favorite-btn svg {
6939 width: 18px !important;
6940 height: 18px !important;
6941 }
6942
6943 .yatra-similar-trips-grid .yatra-trip-content {
6944 padding: 20px;
6945 display: flex;
6946 flex-direction: column;
6947 flex: 1;
6948 }
6949
6950 .yatra-similar-trips-grid .yatra-trip-meta {
6951 display: flex;
6952 align-items: center;
6953 gap: 8px;
6954 margin-bottom: 12px;
6955 font-size: 13px;
6956 color: #6b7280;
6957 flex-wrap: wrap;
6958 }
6959
6960 .yatra-similar-trips-grid .yatra-trip-separator {
6961 color: #d1d5db;
6962 }
6963
6964 .yatra-similar-trips-grid .yatra-trip-title {
6965 font-size: 18px;
6966 font-weight: 600;
6967 color: #1f2937;
6968 margin-bottom: 12px;
6969 line-height: 1.4;
6970 }
6971
6972 .yatra-similar-trips-grid .yatra-trip-highlights {
6973 display: flex;
6974 flex-wrap: wrap;
6975 gap: 6px;
6976 margin-top: 0 !important;
6977 margin-bottom: 12px;
6978 }
6979
6980 .yatra-similar-trips-grid .yatra-highlight-badge {
6981 padding: 4px 10px;
6982 background: #eff6ff;
6983 color: var(--yatra-primary-darker, #1e40af);
6984 border-radius: 4px;
6985 font-size: 12px;
6986 font-weight: 500;
6987 }
6988
6989 .yatra-similar-trips-grid .yatra-trip-rating {
6990 display: flex;
6991 align-items: center;
6992 gap: 8px;
6993 margin-bottom: 16px;
6994 }
6995
6996 .yatra-similar-trips-grid .yatra-rating-stars {
6997 display: flex;
6998 align-items: center;
6999 gap: 4px;
7000 }
7001
7002 .yatra-similar-trips-grid .yatra-rating-value {
7003 font-size: 13px;
7004 font-weight: 600;
7005 color: #1f2937;
7006 }
7007
7008 .yatra-similar-trips-grid .yatra-reviews-count {
7009 font-size: 12px;
7010 color: #6b7280;
7011 }
7012
7013 .yatra-similar-trips-grid .yatra-trip-footer {
7014 display: flex;
7015 justify-content: space-between;
7016 align-items: center;
7017 margin-top: auto;
7018 padding-top: 16px;
7019 border-top: 1px solid #f3f4f6;
7020 }
7021
7022 .yatra-similar-trips-grid .yatra-trip-price {
7023 display: flex;
7024 flex-direction: column;
7025 }
7026
7027 .yatra-similar-trips-grid .yatra-original-price {
7028 font-size: 12px;
7029 color: #9ca3af;
7030 text-decoration: line-through;
7031 margin-bottom: 2px;
7032 }
7033
7034 .yatra-similar-trips-grid .yatra-current-price {
7035 font-size: 22px;
7036 font-weight: 700;
7037 color: var(--yatra-primary, #3b82f6);
7038 line-height: 1;
7039 }
7040
7041 .yatra-similar-trips-grid .yatra-price-note {
7042 font-size: 11px;
7043 color: #9ca3af;
7044 margin-top: 2px;
7045 }
7046
7047 .yatra-similar-trips-grid .yatra-card-view-btn {
7048 display: inline-flex;
7049 align-items: center;
7050 justify-content: center;
7051 padding: 10px 16px;
7052 background: var(--yatra-primary, #3b82f6);
7053 color: #fff !important;
7054 border: none;
7055 border-radius: 6px;
7056 font-size: 13px;
7057 font-weight: 600;
7058 cursor: pointer;
7059 transition: all 0.2s;
7060 text-decoration: none !important;
7061 white-space: nowrap;
7062 }
7063
7064 .yatra-similar-trips-grid .yatra-card-view-btn:hover {
7065 background: var(--yatra-primary-dark, #2563eb);
7066 transform: translateY(-1px);
7067 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
7068 }
7069
7070 @media (max-width: 1024px) {
7071 .yatra-similar-trips-grid {
7072 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
7073 gap: 20px;
7074 }
7075 }
7076
7077 @media (max-width: 768px) {
7078 .yatra-similar-trips-grid {
7079 grid-template-columns: 1fr;
7080 }
7081
7082 .yatra-similar-section {
7083 padding-top: var(--yatra-section-gap);
7084 padding-bottom: var(--yatra-section-gap);
7085 margin-top: 0;
7086 }
7087
7088 .yatra-similar-section-title {
7089 font-size: 22px;
7090 }
7091
7092 .yatra-similar-section-header {
7093 flex-direction: column;
7094 align-items: flex-start;
7095 gap: 16px;
7096 margin-bottom: 24px;
7097 }
7098 }
7099
7100 /* Carousel Card Styles */
7101 .yatra-carousel-item .yatra-trip-card {
7102 background: #fff;
7103 border-radius: 12px;
7104 overflow: hidden;
7105 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
7106 transition: transform 0.2s, box-shadow 0.2s;
7107 cursor: pointer;
7108 display: flex;
7109 flex-direction: column;
7110 height: 100%;
7111 }
7112
7113 .yatra-carousel-item .yatra-trip-card:hover {
7114 transform: translateY(-4px);
7115 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
7116 }
7117
7118 .yatra-carousel-item .yatra-trip-image {
7119 position: relative;
7120 width: 100%;
7121 height: 200px;
7122 overflow: hidden;
7123 background: #e5e7eb;
7124 flex-shrink: 0;
7125 }
7126
7127 .yatra-carousel-item .yatra-trip-image img {
7128 width: 100%;
7129 height: 100%;
7130 object-fit: cover;
7131 transition: transform 0.3s;
7132 }
7133
7134 .yatra-carousel-item .yatra-trip-card:hover .yatra-trip-image img {
7135 transform: scale(1.05);
7136 }
7137
7138 .yatra-carousel-item .yatra-discount-badge {
7139 position: absolute;
7140 top: 12px;
7141 left: 12px;
7142 background: #ef4444;
7143 color: #fff;
7144 padding: 4px 10px;
7145 border-radius: 4px;
7146 font-size: 12px;
7147 font-weight: 600;
7148 z-index: 2;
7149 }
7150
7151 .yatra-carousel-item .yatra-favorite-btn {
7152 position: absolute !important;
7153 top: 12px !important;
7154 right: 12px !important;
7155 width: 36px !important;
7156 height: 36px !important;
7157 background: #ffffff !important;
7158 border: 1px solid rgba(0, 0, 0, 0.1) !important;
7159 border-radius: 50% !important;
7160 cursor: pointer !important;
7161 display: flex !important;
7162 align-items: center !important;
7163 justify-content: center !important;
7164 color: #6b7280 !important;
7165 transition: all 0.2s !important;
7166 z-index: 10 !important;
7167 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
7168 padding: 0 !important;
7169 }
7170
7171 .yatra-carousel-item .yatra-favorite-btn:hover {
7172 background: #ffffff !important;
7173 color: #ef4444 !important;
7174 transform: scale(1.1) !important;
7175 }
7176
7177 .yatra-carousel-item .yatra-favorite-btn svg {
7178 width: 18px !important;
7179 height: 18px !important;
7180 }
7181
7182 .yatra-carousel-item .yatra-trip-content {
7183 padding: 20px;
7184 display: flex;
7185 flex-direction: column;
7186 flex: 1;
7187 }
7188
7189 .yatra-carousel-item .yatra-trip-meta {
7190 display: flex;
7191 align-items: center;
7192 gap: 8px;
7193 margin-bottom: 12px;
7194 font-size: 13px;
7195 color: #6b7280;
7196 flex-wrap: wrap;
7197 }
7198
7199 .yatra-carousel-item .yatra-trip-separator {
7200 color: #d1d5db;
7201 }
7202
7203 .yatra-carousel-item .yatra-trip-title {
7204 font-size: 18px;
7205 font-weight: 600;
7206 color: #1f2937;
7207 margin-bottom: 12px;
7208 line-height: 1.4;
7209 }
7210
7211 .yatra-carousel-item .yatra-trip-highlights {
7212 display: flex;
7213 flex-wrap: wrap;
7214 gap: 6px;
7215 margin-top: 0 !important;
7216 margin-bottom: 12px;
7217 }
7218
7219 .yatra-carousel-item .yatra-highlight-badge {
7220 padding: 4px 10px;
7221 background: #eff6ff;
7222 color: var(--yatra-primary-darker, #1e40af);
7223 border-radius: 4px;
7224 font-size: 12px;
7225 font-weight: 500;
7226 }
7227
7228 .yatra-carousel-item .yatra-trip-location {
7229 color: #6b7280;
7230 }
7231
7232 .yatra-carousel-item .yatra-trip-rating {
7233 display: flex;
7234 align-items: center;
7235 gap: 8px;
7236 margin-bottom: 16px;
7237 }
7238
7239 .yatra-carousel-item .yatra-rating-stars {
7240 display: flex;
7241 align-items: center;
7242 gap: 4px;
7243 }
7244
7245 .yatra-carousel-item .yatra-rating-value {
7246 font-size: 14px;
7247 font-weight: 600;
7248 color: #1f2937;
7249 }
7250
7251 .yatra-carousel-item .yatra-reviews-count {
7252 font-size: 13px;
7253 color: #6b7280;
7254 }
7255
7256 .yatra-carousel-item .yatra-trip-footer {
7257 display: flex;
7258 justify-content: space-between;
7259 align-items: center;
7260 margin-top: auto;
7261 padding-top: 16px;
7262 border-top: 1px solid #f3f4f6;
7263 }
7264
7265 .yatra-carousel-item .yatra-trip-price {
7266 display: flex;
7267 flex-direction: column;
7268 }
7269
7270 .yatra-carousel-item .yatra-original-price {
7271 font-size: 12px;
7272 color: #9ca3af;
7273 text-decoration: line-through;
7274 margin-bottom: 2px;
7275 }
7276
7277 .yatra-carousel-item .yatra-current-price {
7278 font-size: 22px;
7279 font-weight: 700;
7280 color: var(--yatra-primary, #3b82f6);
7281 line-height: 1;
7282 }
7283
7284 .yatra-carousel-item .yatra-price-note {
7285 font-size: 11px;
7286 color: #9ca3af;
7287 margin-top: 2px;
7288 }
7289
7290 .yatra-carousel-item .yatra-card-view-btn {
7291 display: inline-flex;
7292 align-items: center;
7293 justify-content: center;
7294 padding: 10px 16px;
7295 background: var(--yatra-primary, #3b82f6);
7296 color: #fff !important;
7297 border: none;
7298 border-radius: 6px;
7299 font-size: 13px;
7300 font-weight: 600;
7301 cursor: pointer;
7302 transition: all 0.2s;
7303 text-decoration: none !important;
7304 white-space: nowrap;
7305 }
7306
7307 .yatra-carousel-item .yatra-card-view-btn:hover {
7308 background: var(--yatra-primary-dark, #2563eb);
7309 transform: translateY(-1px);
7310 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
7311 }
7312
7313 /* ============================================
7314 REVIEWS SECTION - UNIFIED SPACING
7315 Outer width: see .yatra-single-trip .yatra-reviews-section (top of file). Inner fills the section.
7316 ============================================ */
7317 .yatra-reviews-section {
7318 padding-top: var(--yatra-section-gap);
7319 padding-bottom: var(--yatra-section-gap);
7320 background: #fff;
7321 border-top: 1px solid #e5e7eb;
7322 }
7323
7324 /* Inner wrapper: use full content width of the section (no second max-width / no double horizontal inset) */
7325 .yatra-single-trip .yatra-reviews-section > .yatra-reviews-section-container {
7326 width: 100%;
7327 max-width: 100%;
7328 margin-left: 0;
7329 margin-right: 0;
7330 padding-left: 0;
7331 padding-right: 0;
7332 box-sizing: border-box;
7333 }
7334
7335 .yatra-reviews-section .yatra-reviews-header {
7336 margin-bottom: var(--yatra-element-gap);
7337 }
7338
7339 .yatra-reviews-section-title {
7340 display: flex;
7341 align-items: center;
7342 gap: var(--yatra-tiny-gap);
7343 font-size: 28px;
7344 font-weight: 700;
7345 color: #111827;
7346 margin: 0;
7347 }
7348
7349 .yatra-reviews-section-icon {
7350 width: 32px;
7351 height: 32px;
7352 color: #fbbf24;
7353 }
7354
7355 .yatra-reviews-section .yatra-reviews-container {
7356 display: grid;
7357 grid-template-columns: 320px 1fr;
7358 gap: var(--yatra-section-gap);
7359 align-items: start;
7360 }
7361
7362 @media (max-width: 900px) {
7363 .yatra-reviews-section .yatra-reviews-container {
7364 grid-template-columns: 1fr;
7365 gap: var(--yatra-element-gap);
7366 }
7367 }
7368
7369 /* Rating Distribution Styles */
7370 .yatra-rating-distribution {
7371 margin-top: 24px;
7372 }
7373
7374 .yatra-breakdown-star {
7375 font-size: 14px;
7376 color: #d1d5db;
7377 line-height: 1;
7378 }
7379
7380 .yatra-breakdown-star.filled {
7381 color: #fbbf24;
7382 }
7383
7384 .yatra-rating-distribution-title {
7385 font-size: 14px;
7386 font-weight: 600;
7387 color: #374151;
7388 margin: 0 0 16px 0;
7389 }
7390
7391 .yatra-rating-row {
7392 display: flex;
7393 align-items: center;
7394 gap: 12px;
7395 margin-bottom: 8px;
7396 }
7397
7398 .yatra-rating-star-label {
7399 display: flex;
7400 gap: 1px;
7401 width: 80px;
7402 flex-shrink: 0;
7403 }
7404
7405 .yatra-rating-bar {
7406 flex: 1;
7407 height: 8px;
7408 background: #e5e7eb;
7409 border-radius: 4px;
7410 overflow: hidden;
7411 }
7412
7413 .yatra-rating-bar-fill {
7414 height: 100%;
7415 background: var(--yatra-star, #fbbf24);
7416 border-radius: 4px;
7417 transition: width 0.3s ease;
7418 }
7419
7420 .yatra-rating-count {
7421 font-size: 13px;
7422 color: #6b7280;
7423 width: 24px;
7424 text-align: right;
7425 flex-shrink: 0;
7426 }
7427
7428 /* No Reviews State */
7429 .yatra-reviews-section .yatra-no-reviews-message {
7430 text-align: center;
7431 padding: 48px 24px;
7432 background: #f9fafb;
7433 border-radius: 12px;
7434 border: 1px dashed #d1d5db;
7435 }
7436
7437 .yatra-no-reviews-icon {
7438 width: 48px;
7439 height: 48px;
7440 margin: 0 auto 16px;
7441 color: #9ca3af;
7442 display: flex;
7443 align-items: center;
7444 justify-content: center;
7445 }
7446
7447 .yatra-no-reviews-icon svg {
7448 width: 100%;
7449 height: 100%;
7450 flex-shrink: 0;
7451 }
7452
7453 .yatra-reviews-section .yatra-no-reviews-message p {
7454 color: #6b7280;
7455 font-size: 15px;
7456 margin: 0;
7457 }
7458
7459 /* Reviews List in Full Width Section */
7460 .yatra-reviews-section .yatra-reviews-items {
7461 display: flex;
7462 flex-direction: column;
7463 gap: var(--yatra-element-gap);
7464 }
7465
7466 .yatra-reviews-section .yatra-review-item {
7467 padding: var(--yatra-element-gap);
7468 background: #f9fafb;
7469 border-radius: 12px;
7470 border: 1px solid #e5e7eb;
7471 }
7472
7473 @media (max-width: 768px) {
7474 .yatra-reviews-section-title {
7475 font-size: 22px;
7476 }
7477 }
7478
7479 /* ============================================
7480 BOOKING INFORMATION SECTION
7481 ============================================ */
7482 .yatra-booking-info-grid {
7483 display: grid;
7484 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
7485 gap: 24px;
7486 margin-top: 24px;
7487 }
7488
7489 .yatra-booking-info-card {
7490 background: #f9fafb;
7491 border-radius: 12px;
7492 padding: 24px;
7493 border: 1px solid #e5e7eb;
7494 text-align: center;
7495 transition: all 0.3s ease;
7496 }
7497
7498 .yatra-booking-info-card:hover {
7499 background: #fff;
7500 box-shadow: 0 4px 12px rgba(0,0,0,0.08);
7501 transform: translateY(-2px);
7502 }
7503
7504 .yatra-booking-info-icon {
7505 width: 56px;
7506 height: 56px;
7507 margin: 0 auto 16px;
7508 display: flex;
7509 align-items: center;
7510 justify-content: center;
7511 background: #eff6ff;
7512 border-radius: 12px;
7513 color: var(--yatra-primary, #3b82f6);
7514 }
7515
7516 .yatra-booking-info-icon svg {
7517 width: 28px;
7518 height: 28px;
7519 }
7520
7521 .yatra-booking-info-title {
7522 font-size: 18px;
7523 font-weight: 700;
7524 color: #111827;
7525 margin-bottom: 8px;
7526 }
7527
7528 .yatra-booking-info-desc {
7529 font-size: 14px;
7530 color: #6b7280;
7531 line-height: 1.6;
7532 margin: 0;
7533 }
7534
7535 .yatra-booking-info-link {
7536 color: var(--yatra-primary, #3b82f6);
7537 text-decoration: none;
7538 font-weight: 500;
7539 }
7540
7541 .yatra-booking-info-link:hover {
7542 text-decoration: underline;
7543 }
7544
7545 /* ============================================
7546 TESTIMONIALS
7547 ============================================ */
7548 .yatra-trip-testimonials {
7549 display: grid;
7550 grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
7551 gap: 24px;
7552 margin-top: 32px;
7553 }
7554
7555 .yatra-testimonial-card {
7556 background: #f9fafb;
7557 border-radius: 16px;
7558 padding: 28px;
7559 border-left: 4px solid var(--yatra-primary, #3b82f6);
7560 transition: all 0.3s ease;
7561 }
7562
7563 .yatra-testimonial-card:hover {
7564 background: #fff;
7565 box-shadow: 0 4px 20px rgba(0,0,0,0.08);
7566 transform: translateY(-4px);
7567 }
7568
7569 .yatra-testimonial-rating {
7570 color: #fbbf24;
7571 font-size: 18px;
7572 margin-bottom: 16px;
7573 letter-spacing: 2px;
7574 }
7575
7576 .yatra-testimonial-text {
7577 font-size: 15px;
7578 line-height: 1.8;
7579 color: #374151;
7580 margin: 0 0 20px 0;
7581 font-style: italic;
7582 }
7583
7584 .yatra-testimonial-author {
7585 display: flex;
7586 align-items: center;
7587 gap: 16px;
7588 }
7589
7590 .yatra-testimonial-avatar {
7591 width: 52px;
7592 height: 52px;
7593 border-radius: 50%;
7594 background: linear-gradient(135deg, var(--yatra-primary, #3b82f6) 0%, var(--yatra-primary-darker, #1e40af) 100%);
7595 display: flex;
7596 align-items: center;
7597 justify-content: center;
7598 color: #fff;
7599 font-weight: 700;
7600 font-size: 20px;
7601 flex-shrink: 0;
7602 }
7603
7604 .yatra-testimonial-info {
7605 flex: 1;
7606 }
7607
7608 .yatra-testimonial-name {
7609 font-size: 16px;
7610 font-weight: 700;
7611 color: #111827;
7612 margin: 0 0 4px 0;
7613 }
7614
7615 .yatra-testimonial-location {
7616 font-size: 14px;
7617 color: #6b7280;
7618 margin: 0;
7619 }
7620
7621 /* ============================================
7622 REVIEW SECTION STYLES (Professional Design)
7623 ============================================ */
7624 .yatra-reviews-header {
7625 margin-bottom: 32px;
7626 }
7627
7628 .yatra-reviews-divider {
7629 height: 2px;
7630 background: var(--yatra-primary, #3b82f6);
7631 margin-top: 16px;
7632 width: 100%;
7633 }
7634
7635 .yatra-reviews-container {
7636 display: grid;
7637 grid-template-columns: 320px 1fr;
7638 gap: 48px;
7639 margin-bottom: 40px;
7640 }
7641
7642 /* Left: Overall Rating Summary */
7643 .yatra-reviews-summary {
7644 position: sticky;
7645 top: 100px;
7646 height: fit-content;
7647 }
7648
7649 .yatra-overall-rating {
7650 text-align: center;
7651 padding-bottom: 32px;
7652 border-bottom: 1px solid #e5e7eb;
7653 margin-bottom: 24px;
7654 }
7655
7656 .yatra-overall-rating-label {
7657 font-size: 12px;
7658 font-weight: 600;
7659 color: #6b7280;
7660 margin: 0 0 16px 0;
7661 text-transform: uppercase;
7662 letter-spacing: 0.5px;
7663 }
7664
7665 .yatra-overall-rating-score {
7666 display: flex;
7667 align-items: baseline;
7668 justify-content: center;
7669 gap: 2px;
7670 margin-bottom: 12px;
7671 }
7672
7673 .yatra-rating-big {
7674 font-size: 56px;
7675 font-weight: 700;
7676 color: #1f2937;
7677 line-height: 1;
7678 }
7679
7680 .yatra-rating-max {
7681 font-size: 24px;
7682 font-weight: 400;
7683 color: #6b7280;
7684 }
7685
7686 .yatra-overall-stars {
7687 display: flex;
7688 justify-content: center;
7689 gap: 4px;
7690 margin-bottom: 8px;
7691 }
7692
7693 .yatra-star-icon {
7694 font-size: 28px;
7695 color: #d1d5db;
7696 }
7697
7698 .yatra-star-icon.filled {
7699 color: var(--yatra-star, #fbbf24);
7700 }
7701
7702 .yatra-star-icon.half {
7703 background: linear-gradient(
7704 90deg,
7705 var(--yatra-star, #fbbf24) 50%,
7706 #d1d5db 50%
7707 );
7708 -webkit-background-clip: text;
7709 -webkit-text-fill-color: transparent;
7710 background-clip: text;
7711 color: transparent;
7712 }
7713
7714 .yatra-reviews-based-on {
7715 font-size: 14px;
7716 color: #6b7280;
7717 margin: 0;
7718 }
7719
7720 /* Review Categories */
7721 .yatra-review-categories {
7722 padding: 0;
7723 }
7724
7725 .yatra-review-categories-title {
7726 font-size: 14px;
7727 font-weight: 600;
7728 color: #1f2937;
7729 margin: 0 0 20px 0;
7730 }
7731
7732 .yatra-review-category {
7733 display: flex;
7734 align-items: center;
7735 gap: 12px;
7736 margin-bottom: 16px;
7737 }
7738
7739 .yatra-category-name {
7740 width: 120px;
7741 font-size: 14px;
7742 color: #374151;
7743 flex-shrink: 0;
7744 }
7745
7746 .yatra-category-bar {
7747 flex: 1;
7748 height: 8px;
7749 background: #e5e7eb;
7750 border-radius: 4px;
7751 overflow: hidden;
7752 }
7753
7754 .yatra-category-bar-fill {
7755 height: 100%;
7756 background: #1e3a5f;
7757 border-radius: 4px;
7758 transition: width 0.3s ease;
7759 }
7760
7761 .yatra-category-score {
7762 width: 40px;
7763 font-size: 14px;
7764 color: #6b7280;
7765 text-align: right;
7766 flex-shrink: 0;
7767 }
7768
7769 /* Right: Reviews List */
7770 .yatra-reviews-list {
7771 min-width: 0;
7772 }
7773
7774 .yatra-reviews-toolbar {
7775 display: flex;
7776 align-items: center;
7777 gap: 12px;
7778 margin-bottom: 24px;
7779 }
7780
7781 .yatra-reviews-sort {
7782 display: flex;
7783 align-items: center;
7784 gap: 8px;
7785 }
7786
7787 .yatra-sort-label {
7788 font-size: 14px;
7789 color: #6b7280;
7790 }
7791
7792 .yatra-sort-select {
7793 padding: 10px 36px 10px 16px;
7794 border: 1px solid #d1d5db;
7795 border-radius: 8px;
7796 font-size: 14px;
7797 color: #1f2937;
7798 background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
7799 cursor: pointer;
7800 appearance: none;
7801 -webkit-appearance: none;
7802 }
7803
7804 .yatra-sort-select:focus {
7805 outline: none;
7806 border-color: var(--yatra-primary, #3b82f6);
7807 }
7808
7809 .yatra-filter-btn {
7810 display: flex;
7811 align-items: center;
7812 gap: 6px;
7813 padding: 10px 16px;
7814 border: 1px solid #d1d5db;
7815 border-radius: 8px;
7816 background: #fff;
7817 font-size: 14px;
7818 color: #374151;
7819 cursor: pointer;
7820 transition: all 0.2s;
7821 }
7822
7823 .yatra-filter-btn:hover {
7824 border-color: #9ca3af;
7825 background: #f9fafb;
7826 }
7827
7828 /* Review Items */
7829 .yatra-reviews-items {
7830 display: flex;
7831 flex-direction: column;
7832 gap: 16px;
7833 }
7834
7835 .yatra-review-item {
7836 padding: 20px 24px;
7837 background: #fff;
7838 border: 1px solid #e5e7eb;
7839 border-radius: 12px;
7840 transition: box-shadow 0.2s ease, border-color 0.2s ease;
7841 }
7842
7843 .yatra-review-item:hover {
7844 border-color: #d1d5db;
7845 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
7846 }
7847
7848 .yatra-review-header {
7849 display: flex;
7850 align-items: flex-start;
7851 justify-content: space-between;
7852 margin-bottom: 16px;
7853 }
7854
7855 .yatra-review-header-left {
7856 display: flex;
7857 align-items: center;
7858 gap: 14px;
7859 flex: 1;
7860 }
7861
7862 .yatra-review-avatar {
7863 width: 44px;
7864 height: 44px;
7865 border-radius: 50%;
7866 display: flex;
7867 align-items: center;
7868 justify-content: center;
7869 color: #fff;
7870 font-size: 16px;
7871 font-weight: 600;
7872 flex-shrink: 0;
7873 background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
7874 }
7875
7876 .yatra-review-author-info {
7877 flex: 1;
7878 min-width: 0;
7879 }
7880
7881 .yatra-review-author-top {
7882 display: flex;
7883 align-items: center;
7884 gap: 10px;
7885 margin-bottom: 4px;
7886 }
7887
7888 .yatra-review-author-name {
7889 font-size: 15px;
7890 font-weight: 600;
7891 color: #1f2937;
7892 }
7893
7894 .yatra-verified-badge {
7895 display: inline-flex;
7896 align-items: center;
7897 gap: 4px;
7898 padding: 2px 8px;
7899 background: #ecfdf5;
7900 border-radius: 20px;
7901 font-size: 11px;
7902 font-weight: 500;
7903 color: #059669;
7904 }
7905
7906 .yatra-verified-badge .yatra-icon-xs {
7907 width: 12px;
7908 height: 12px;
7909 }
7910
7911 .yatra-review-meta {
7912 display: flex;
7913 align-items: center;
7914 gap: 8px;
7915 font-size: 13px;
7916 color: #6b7280;
7917 }
7918
7919 .yatra-review-author-location {
7920 font-weight: 400;
7921 color: #6b7280;
7922 }
7923
7924 .yatra-review-stars {
7925 display: flex;
7926 align-items: center;
7927 gap: 2px;
7928 }
7929
7930 .yatra-star-sm {
7931 font-size: 14px;
7932 color: #d1d5db;
7933 }
7934
7935 .yatra-star-sm.filled {
7936 color: #fbbf24;
7937 }
7938
7939 .yatra-review-rating-num {
7940 margin-left: 6px;
7941 font-size: 13px;
7942 font-weight: 600;
7943 color: #1f2937;
7944 }
7945
7946 .yatra-review-more-btn {
7947 width: 32px;
7948 height: 32px;
7949 display: flex;
7950 align-items: center;
7951 justify-content: center;
7952 border: none;
7953 background: transparent;
7954 color: #9ca3af;
7955 border-radius: 6px;
7956 cursor: pointer;
7957 transition: all 0.2s;
7958 }
7959
7960 .yatra-review-more-btn:hover {
7961 background: #f3f4f6;
7962 color: #6b7280;
7963 }
7964
7965 .yatra-review-body {
7966 padding-left: 58px;
7967 }
7968
7969 .yatra-review-title {
7970 font-size: 15px;
7971 font-weight: 600;
7972 color: #1f2937;
7973 margin: 0 0 6px 0;
7974 line-height: 1.4;
7975 }
7976
7977 .yatra-review-content {
7978 font-size: 14px;
7979 line-height: 1.7;
7980 color: #4b5563;
7981 margin: 0;
7982 }
7983
7984 /* Review Author Row - Legacy support */
7985 .yatra-review-author-row {
7986 display: flex;
7987 align-items: flex-start;
7988 gap: 14px;
7989 margin-bottom: 16px;
7990 }
7991
7992 /* Load More */
7993 .yatra-reviews-load-more {
7994 padding-top: 24px;
7995 }
7996
7997 .yatra-load-more-btn {
7998 width: 100%;
7999 padding: 14px 24px;
8000 border: 1px solid #d1d5db;
8001 border-radius: 8px;
8002 background: #fff;
8003 font-size: 15px;
8004 font-weight: 500;
8005 color: #374151;
8006 cursor: pointer;
8007 transition: all 0.2s;
8008 }
8009
8010 .yatra-load-more-btn:hover {
8011 border-color: #9ca3af;
8012 background: #f9fafb;
8013 }
8014
8015 .yatra-no-reviews-message {
8016 text-align: center;
8017 padding: 40px;
8018 background: #f9fafb;
8019 border-radius: 12px;
8020 color: #6b7280;
8021 }
8022
8023 /* Responsive */
8024 @media (max-width: 968px) {
8025 .yatra-reviews-container {
8026 grid-template-columns: 1fr;
8027 gap: 32px;
8028 }
8029
8030 .yatra-reviews-summary {
8031 position: static;
8032 display: grid;
8033 grid-template-columns: 1fr 1fr;
8034 gap: 24px;
8035 padding: 24px;
8036 background: #f9fafb;
8037 border-radius: 12px;
8038 }
8039
8040 .yatra-overall-rating {
8041 padding-bottom: 0;
8042 border-bottom: none;
8043 margin-bottom: 0;
8044 border-right: 1px solid #e5e7eb;
8045 padding-right: 24px;
8046 }
8047
8048 .yatra-review-categories {
8049 padding-left: 24px;
8050 }
8051 }
8052
8053 @media (max-width: 640px) {
8054 .yatra-reviews-summary {
8055 grid-template-columns: 1fr;
8056 }
8057
8058 .yatra-overall-rating {
8059 border-right: none;
8060 padding-right: 0;
8061 padding-bottom: 24px;
8062 border-bottom: 1px solid #e5e7eb;
8063 margin-bottom: 24px;
8064 }
8065
8066 .yatra-review-categories {
8067 padding-left: 0;
8068 }
8069
8070 .yatra-reviews-toolbar {
8071 flex-wrap: wrap;
8072 }
8073
8074 .yatra-reviews-sort {
8075 width: 100%;
8076 }
8077
8078 .yatra-sort-select {
8079 flex: 1;
8080 }
8081 }
8082
8083 .yatra-review-form-section {
8084 margin-top: 40px;
8085 padding-top: 40px;
8086 padding-bottom: var(--yatra-element-gap);
8087 border-top: 1px solid #e5e7eb;
8088 }
8089
8090 .yatra-review-form-title {
8091 font-size: 20px;
8092 font-weight: 700;
8093 color: #1f2937;
8094 margin: 0 0 24px 0;
8095 }
8096
8097 .yatra-review-login-notice,
8098 .yatra-review-booking-notice,
8099 .yatra-review-already-notice {
8100 padding: 20px 24px;
8101 background: #f3f4f6;
8102 border-radius: 12px;
8103 color: #4b5563;
8104 font-size: 15px;
8105 }
8106
8107 .yatra-review-login-notice a {
8108 color: var(--yatra-primary, #3b82f6);
8109 font-weight: 600;
8110 text-decoration: none;
8111 }
8112
8113 .yatra-review-login-notice a:hover {
8114 text-decoration: underline;
8115 }
8116
8117 .yatra-review-form {
8118 display: flex;
8119 flex-direction: column;
8120 gap: 24px;
8121 }
8122
8123 .yatra-form-field {
8124 display: flex;
8125 flex-direction: column;
8126 gap: 8px;
8127 }
8128
8129 .yatra-form-label {
8130 font-size: 14px;
8131 font-weight: 600;
8132 color: #374151;
8133 }
8134
8135 .yatra-required {
8136 color: #ef4444;
8137 }
8138
8139 .yatra-rating-field .yatra-star-rating-input {
8140 display: flex;
8141 flex-direction: row;
8142 justify-content: flex-start;
8143 gap: 4px;
8144 }
8145
8146 .yatra-star-rating-input input {
8147 display: none;
8148 }
8149
8150 .yatra-star-label {
8151 font-size: 32px;
8152 color: #d1d5db;
8153 cursor: pointer;
8154 transition: color 0.2s;
8155 }
8156
8157 .yatra-star-rating-input .yatra-star-label.selected,
8158 .yatra-star-rating-input .yatra-star-label.hover {
8159 color: #fbbf24;
8160 }
8161
8162 .yatra-star-rating-input input:disabled + .yatra-star-label {
8163 cursor: not-allowed;
8164 opacity: 0.5;
8165 }
8166
8167 /* Ensure stars are clickable */
8168 .yatra-star-rating-input .yatra-star-label {
8169 position: relative;
8170 z-index: 1;
8171 user-select: none;
8172 -webkit-user-select: none;
8173 }
8174
8175 .yatra-field-hint {
8176 font-size: 12px;
8177 color: #9ca3af;
8178 margin: 0;
8179 }
8180
8181 .yatra-form-input,
8182 .yatra-form-textarea {
8183 padding: 12px 16px;
8184 border: 1px solid #d1d5db;
8185 border-radius: 8px;
8186 font-size: 15px;
8187 color: #1f2937;
8188 transition: all 0.2s;
8189 }
8190
8191 .yatra-form-input:focus,
8192 .yatra-form-textarea:focus {
8193 outline: none;
8194 border-color: var(--yatra-primary, #3b82f6);
8195 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
8196 }
8197
8198 .yatra-form-textarea {
8199 resize: vertical;
8200 min-height: 120px;
8201 }
8202
8203 .yatra-review-submit-btn {
8204 display: inline-flex;
8205 align-items: center;
8206 justify-content: center;
8207 gap: 8px;
8208 padding: 14px 28px;
8209 background: var(--yatra-primary, #3b82f6);
8210 color: #fff;
8211 border: none;
8212 border-radius: 8px;
8213 font-size: 15px;
8214 font-weight: 600;
8215 cursor: pointer;
8216 transition: all 0.2s;
8217 width: fit-content;
8218 }
8219
8220 .yatra-review-submit-btn:hover {
8221 background: var(--yatra-primary-dark, #2563eb);
8222 transform: translateY(-1px);
8223 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
8224 }
8225
8226 .yatra-review-moderation-notice {
8227 font-size: 13px;
8228 color: #6b7280;
8229 margin: 8px 0 0 0;
8230 font-style: italic;
8231 }
8232
8233 .yatra-review-message {
8234 padding: 16px 20px;
8235 border-radius: 8px;
8236 margin-bottom: 20px;
8237 font-size: 14px;
8238 }
8239
8240 .yatra-review-message p {
8241 margin: 0;
8242 padding: 0;
8243 }
8244
8245 .yatra-review-message-success {
8246 background: #dcfce7;
8247 color: #166534;
8248 border: 1px solid #86efac;
8249 }
8250
8251 .yatra-review-message-error {
8252 background: #fef2f2;
8253 color: #991b1b;
8254 border: 1px solid #fca5a5;
8255 }
8256
8257 /* Edit Review Notice */
8258 .yatra-review-edit-notice {
8259 display: flex;
8260 align-items: center;
8261 gap: 10px;
8262 padding: 12px 16px;
8263 background: #eff6ff;
8264 border: 1px solid #bfdbfe;
8265 border-radius: 8px;
8266 margin-bottom: 20px;
8267 color: var(--yatra-primary-darker, #1e40af);
8268 font-size: 14px;
8269 }
8270
8271 .yatra-review-edit-notice svg {
8272 flex-shrink: 0;
8273 color: var(--yatra-primary, #3b82f6);
8274 }
8275
8276 .yatra-review-edit-notice p {
8277 margin: 0;
8278 }
8279
8280 .yatra-loading-spinner {
8281 display: inline-block;
8282 width: 16px;
8283 height: 16px;
8284 border: 2px solid rgba(255, 255, 255, 0.3);
8285 border-radius: 50%;
8286 border-top-color: #fff;
8287 animation: yatra-spin 0.8s linear infinite;
8288 }
8289
8290 /* Review form responsive */
8291 @media (max-width: 768px) {
8292 .yatra-review-summary {
8293 padding: 24px;
8294 }
8295
8296 .yatra-review-summary-number {
8297 font-size: 36px;
8298 }
8299
8300 .yatra-star-label {
8301 font-size: 28px;
8302 }
8303
8304 .yatra-review-form-section {
8305 margin-top: 32px;
8306 padding-top: 32px;
8307 }
8308 }
8309
8310 /* ============================================
8311 REQUIREMENTS & POLICIES
8312 ============================================ */
8313 .yatra-requirements-grid {
8314 display: grid;
8315 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
8316 gap: 24px;
8317 margin-top: 32px;
8318 }
8319
8320 .yatra-requirement-card {
8321 background: #f9fafb;
8322 border-radius: 12px;
8323 padding: 24px;
8324 border: 1px solid #e5e7eb;
8325 }
8326
8327 .yatra-requirement-title {
8328 font-size: 18px;
8329 font-weight: 700;
8330 color: #111827;
8331 margin: 0 0 16px 0;
8332 display: flex;
8333 align-items: center;
8334 gap: 10px;
8335 }
8336
8337 .yatra-requirement-icon {
8338 width: 24px;
8339 height: 24px;
8340 color: var(--yatra-primary, #3b82f6);
8341 }
8342
8343 .yatra-requirement-content {
8344 font-size: 15px;
8345 line-height: 1.7;
8346 color: #4b5563;
8347 margin: 0;
8348 }
8349
8350 /* ============================================
8351 ACCOMMODATION & TRANSPORTATION
8352 ============================================ */
8353 .yatra-accommodation-transport {
8354 display: grid;
8355 grid-template-columns: 1fr 1fr;
8356 gap: 32px;
8357 margin-top: 32px;
8358 }
8359
8360 .yatra-accommodation-card,
8361 .yatra-transport-card {
8362 background: #f9fafb;
8363 border-radius: 12px;
8364 padding: 24px;
8365 border: 1px solid #e5e7eb;
8366 }
8367
8368 .yatra-accommodation-title,
8369 .yatra-transport-title {
8370 font-size: 20px;
8371 font-weight: 700;
8372 color: #111827;
8373 margin: 0 0 16px 0;
8374 display: flex;
8375 align-items: center;
8376 gap: 12px;
8377 }
8378
8379 .yatra-accommodation-icon,
8380 .yatra-transport-icon {
8381 width: 24px;
8382 height: 24px;
8383 color: var(--yatra-primary, #3b82f6);
8384 }
8385
8386 .yatra-accommodation-details,
8387 .yatra-transport-details {
8388 font-size: 15px;
8389 line-height: 1.8;
8390 color: #374151;
8391 margin: 0;
8392 }
8393
8394 /* ============================================
8395 RESPONSIVE
8396 ============================================ */
8397 @media (max-width: 1024px) {
8398 .yatra-trip-container {
8399 grid-template-columns: 1fr;
8400 gap: var(--yatra-element-gap);
8401 }
8402
8403 .yatra-trip-sidebar {
8404 position: static;
8405 order: -1;
8406 }
8407
8408 .yatra-enquiry-form-grid {
8409 grid-template-columns: 1fr 1fr;
8410 }
8411
8412 .yatra-trip-hero-title {
8413 font-size: 2.75rem;
8414 }
8415
8416 .yatra-included-excluded {
8417 grid-template-columns: 1fr;
8418 }
8419
8420 .yatra-accommodation-transport {
8421 grid-template-columns: 1fr;
8422 }
8423
8424 .yatra-spec-sheet > .yatra-trip-quick-facts {
8425 grid-template-columns: repeat(3, 1fr);
8426 gap: 1px;
8427 padding: 0;
8428 }
8429
8430 .yatra-hero-images {
8431 grid-template-columns: 1fr;
8432 }
8433
8434 /* Stack main + thumbs: fluid main height, strip is horizontal — do not keep desktop 500px column height */
8435 .yatra-hero-main-image {
8436 height: clamp(240px, 52vw, 440px);
8437 }
8438
8439 .yatra-hero-side-images {
8440 flex-direction: row;
8441 overflow-x: auto;
8442 gap: 12px;
8443 height: auto;
8444 min-height: 0;
8445 -webkit-overflow-scrolling: touch;
8446 scrollbar-width: thin;
8447 padding-bottom: 4px;
8448 }
8449
8450 .yatra-side-image-item {
8451 flex: 0 0 auto;
8452 min-width: 148px;
8453 width: 148px;
8454 height: 112px;
8455 max-height: 120px;
8456 flex-shrink: 0;
8457 }
8458
8459 .yatra-side-image-item img {
8460 height: 100%;
8461 object-fit: cover;
8462 }
8463
8464 .yatra-trip-hero-title-new {
8465 font-size: 2rem;
8466 }
8467 }
8468
8469 @media (max-width: 768px) {
8470 .yatra-trip-hero {
8471 height: 65vh;
8472 min-height: 550px;
8473 max-height: 650px;
8474 }
8475
8476 /* Enhanced mobile sticky navigation */
8477 .yatra-sticky-nav-container {
8478 gap: var(--yatra-tiny-gap);
8479 padding: 0 var(--yatra-container-padding);
8480 scroll-behavior: smooth;
8481 scrollbar-width: none; /* Firefox */
8482 -ms-overflow-style: none; /* IE/Edge */
8483 }
8484
8485 .yatra-sticky-nav-container::-webkit-scrollbar {
8486 display: none; /* Chrome/Safari */
8487 }
8488
8489 .yatra-sticky-nav-item {
8490 font-size: 12px;
8491 padding: 12px 8px;
8492 white-space: nowrap;
8493 flex-shrink: 0;
8494 min-width: fit-content;
8495 }
8496
8497 .yatra-sticky-nav-item svg {
8498 width: 16px;
8499 height: 16px;
8500 }
8501
8502 .yatra-sticky-nav-label {
8503 display: none; /* Hide text on very small screens; icon + aria-label remain */
8504 }
8505
8506 /* Show text on slightly larger mobile devices */
8507 @media (min-width: 480px) {
8508 .yatra-sticky-nav-label {
8509 display: inline;
8510 }
8511 .yatra-sticky-nav-item {
8512 padding: 12px 12px;
8513 }
8514 }
8515
8516 /* Hide original sidebar on mobile, show sticky version */
8517 .yatra-trip-sidebar {
8518 display: none !important;
8519 position: static !important;
8520 order: unset !important;
8521 }
8522
8523 .yatra-trip-main {
8524 width: 100%;
8525 max-width: none;
8526 }
8527
8528 .yatra-trip-container {
8529 grid-template-columns: 1fr;
8530 }
8531
8532 .yatra-trip-hero-title {
8533 font-size: 2.25rem;
8534 }
8535
8536 .yatra-trip-hero-subtitle {
8537 font-size: 1.125rem;
8538 }
8539
8540 .yatra-spec-sheet > .yatra-trip-quick-facts {
8541 grid-template-columns: repeat(2, 1fr);
8542 gap: 1px;
8543 padding: 0;
8544 }
8545
8546 .yatra-trip-quick-facts .yatra-rating-display {
8547 flex-direction: column;
8548 align-items: flex-start;
8549 gap: 4px;
8550 }
8551
8552 .yatra-trip-hero-new {
8553 padding-top: var(--yatra-hero-mobile-padding-top, 16px);
8554 padding-bottom: var(--yatra-hero-mobile-padding-bottom, 20px);
8555 /* Horizontal padding comes from .yatra-single-trip > .yatra-trip-hero-new — avoid doubling */
8556 }
8557
8558 .yatra-trip-hero-title-new {
8559 font-size: 1.75rem;
8560 }
8561
8562 .yatra-hero-main-image {
8563 height: clamp(220px, 58vw, 400px);
8564 }
8565
8566 .yatra-hero-meta {
8567 flex-wrap: wrap;
8568 gap: 8px;
8569 }
8570
8571 .yatra-hero-rating {
8572 flex-wrap: wrap;
8573 gap: 8px;
8574 }
8575
8576 .yatra-hero-location,
8577 .yatra-hero-duration,
8578 .yatra-hero-season {
8579 font-size: 14px;
8580 }
8581
8582 .yatra-hero-breadcrumb {
8583 font-size: 12px;
8584 margin-bottom: 10px;
8585 }
8586
8587 .yatra-hero-breadcrumb-current {
8588 font-weight: 400;
8589 }
8590
8591 .yatra-hero-images {
8592 gap: 12px;
8593 }
8594
8595 /* Keep savings badge top-right so it does not stack on media badges (top-left) */
8596 .yatra-hero-discount-tag {
8597 top: 12px;
8598 right: 12px;
8599 left: auto;
8600 padding: 8px 14px;
8601 font-size: 12px;
8602 }
8603
8604 .yatra-hero-book-now-btn {
8605 padding: 12px 20px;
8606 font-size: 14px;
8607 }
8608
8609 .yatra-sticky-nav-container {
8610 gap: var(--yatra-element-gap);
8611 padding: 0 var(--yatra-container-padding);
8612 }
8613
8614 .yatra-sticky-nav-item {
8615 font-size: 13px;
8616 padding: 14px 0;
8617 }
8618
8619 .yatra-sticky-nav-price {
8620 font-size: 16px;
8621 }
8622
8623 .yatra-hero-side-images {
8624 flex-direction: row;
8625 overflow-x: auto;
8626 gap: 12px;
8627 -webkit-overflow-scrolling: touch;
8628 height: auto;
8629 min-height: 0;
8630 scrollbar-width: thin;
8631 }
8632
8633 .yatra-side-image-item {
8634 flex: 0 0 auto;
8635 min-width: 132px;
8636 width: 132px;
8637 height: 100px;
8638 max-height: 108px;
8639 }
8640
8641 .yatra-side-image-item img {
8642 height: 100%;
8643 object-fit: cover;
8644 }
8645
8646 .yatra-hero-tags {
8647 flex-wrap: wrap;
8648 gap: 8px;
8649 padding: 16px 0;
8650 }
8651
8652 .yatra-tag {
8653 font-size: 11px;
8654 padding: 6px 12px;
8655 }
8656
8657 .yatra-carbon-badge {
8658 margin-left: 0;
8659 width: 100%;
8660 margin-top: 8px;
8661 }
8662
8663 .yatra-quick-fact {
8664 gap: 12px;
8665 padding: 12px 14px;
8666 }
8667
8668 .yatra-quick-fact-icon svg {
8669 width: 22px;
8670 height: 22px;
8671 min-width: 22px;
8672 min-height: 22px;
8673 }
8674
8675 .yatra-quick-fact-label {
8676 font-size: 11px;
8677 margin-bottom: 4px;
8678 }
8679
8680 .yatra-quick-fact-value {
8681 font-size: 15px;
8682 }
8683
8684 .yatra-quick-fact-price {
8685 font-size: 15px;
8686 }
8687
8688 .yatra-quick-fact-price-label {
8689 font-size: 11px;
8690 margin-top: 4px;
8691 }
8692
8693 .yatra-hero-gallery-play {
8694 bottom: 20px;
8695 right: 20px;
8696 width: 60px;
8697 height: 60px;
8698 }
8699
8700 .yatra-hero-gallery-play svg {
8701 width: 24px;
8702 height: 24px;
8703 }
8704
8705 .yatra-hero-gallery-play span {
8706 font-size: 9px;
8707 }
8708
8709 .yatra-gallery-modal-content {
8710 width: 100%;
8711 height: 100vh;
8712 max-height: 100vh;
8713 border-radius: 0;
8714 }
8715
8716 .yatra-gallery-modal-prev,
8717 .yatra-gallery-modal-next {
8718 width: 40px;
8719 height: 40px;
8720 }
8721
8722 .yatra-gallery-modal-prev {
8723 left: 10px;
8724 }
8725
8726 .yatra-gallery-modal-next {
8727 right: 10px;
8728 }
8729
8730 .yatra-gallery-modal-close {
8731 top: 10px;
8732 right: 10px;
8733 width: 36px;
8734 height: 36px;
8735 }
8736
8737 /* Account for WordPress admin bar on mobile */
8738 .admin-bar .yatra-gallery-modal-close {
8739 top: 56px; /* 10px + 46px admin bar on mobile */
8740 }
8741
8742 .admin-bar .yatra-gallery-modal-content {
8743 margin-top: 46px;
8744 max-height: calc(100vh - 46px);
8745 }
8746
8747 .yatra-gallery-thumbnail {
8748 width: 60px;
8749 height: 60px;
8750 }
8751
8752 .yatra-trip-section {
8753 padding: 32px 24px;
8754 }
8755
8756 .yatra-trip-section-title {
8757 font-size: 24px;
8758 }
8759
8760 .yatra-trip-gallery {
8761 grid-template-columns: repeat(2, 1fr);
8762 }
8763
8764 .yatra-trip-testimonials {
8765 grid-template-columns: 1fr;
8766 }
8767 }
8768
8769 @media (max-width: 480px) {
8770 .yatra-trip-hero {
8771 padding-top: 20px;
8772 }
8773
8774 .yatra-trip-hero-title {
8775 font-size: 1.875rem;
8776 }
8777
8778 .yatra-trip-hero-title-new {
8779 font-size: 1.4rem;
8780 line-height: 1.25;
8781 }
8782
8783 .yatra-hero-main-image {
8784 height: clamp(200px, 62vw, 360px);
8785 border-radius: 12px;
8786 }
8787
8788 .yatra-hero-book-now-container {
8789 left: auto;
8790 right: 10px;
8791 bottom: 10px;
8792 width: auto;
8793 }
8794
8795 .yatra-hero-book-now-btn {
8796 width: auto;
8797
8798 justify-content: center;
8799 font-size: 13px;
8800 padding: 10px 16px;
8801 }
8802
8803 .yatra-trip-section {
8804 padding: 24px 20px;
8805 }
8806
8807 .yatra-trip-section#itinerary {
8808 padding: 20px 12px;
8809 }
8810
8811 .yatra-trip-section-title {
8812 font-size: 22px;
8813 }
8814
8815 .yatra-toggle-all-btn {
8816 font-size: 12px;
8817 padding: 10px 12px;
8818 }
8819
8820 .yatra-itinerary-day-header {
8821 padding: 12px 12px;
8822 }
8823
8824 .yatra-day-badge {
8825 font-size: 12px;
8826 padding: 5px 10px;
8827 }
8828
8829 .yatra-day-title {
8830 font-size: 15px;
8831 }
8832
8833 .yatra-itinerary-day-content {
8834 padding: 14px 10px;
8835 margin-left: 0;
8836 }
8837
8838 .yatra-trip-section#itinerary .yatra-itinerary-day,
8839 .yatra-itinerary-day {
8840 padding-left: 0;
8841 margin-left: 0;
8842 }
8843
8844 .yatra-entries-timeline {
8845 padding-left: 18px;
8846 }
8847
8848 .yatra-entries-timeline::before {
8849 left: 4px;
8850 }
8851
8852 .yatra-entry-timeline-dot {
8853 left: -18px;
8854 width: 10px;
8855 height: 10px;
8856 }
8857
8858 .yatra-trip-section#itinerary .yatra-gallery-grid {
8859 grid-template-columns: repeat(2, minmax(0, 1fr));
8860 gap: 6px;
8861 }
8862
8863 .yatra-booking-card {
8864 padding: 24px;
8865 }
8866
8867 .yatra-booking-price-amount {
8868 font-size: 42px;
8869 }
8870
8871 .yatra-trip-gallery {
8872 grid-template-columns: 1fr;
8873 }
8874
8875 .yatra-spec-sheet > .yatra-trip-quick-facts {
8876 grid-template-columns: 1fr;
8877 gap: 1px;
8878 padding: 0;
8879 }
8880 }
8881
8882 /* ============================================
8883 UTILITIES
8884 ============================================ */
8885 .yatra-badge {
8886 display: inline-flex;
8887 align-items: center;
8888 gap: 6px;
8889 padding: 6px 14px;
8890 border-radius: 20px;
8891 font-size: 12px;
8892 font-weight: 600;
8893 text-transform: uppercase;
8894 letter-spacing: 0.5px;
8895 }
8896
8897 .yatra-badge-featured {
8898 background: #fef3c7;
8899 color: #92400e;
8900 }
8901
8902 .yatra-badge-popular {
8903 background: #dbeafe;
8904 color: var(--yatra-primary-darker, #1e40af);
8905 }
8906
8907 .yatra-badge-new {
8908 background: #d1fae5;
8909 color: #065f46;
8910 }
8911
8912 .yatra-badge-limited {
8913 background: #fee2e2;
8914 color: #991b1b;
8915 }
8916
8917 .yatra-badge-bestseller {
8918 background: #fce7f3;
8919 color: #9f1239;
8920 }
8921
8922 /* ============================================
8923 TRIP AVAILABILITY SECTION
8924 ============================================ */
8925 .yatra-availability-section {
8926 margin-bottom: 48px;
8927 }
8928
8929 .yatra-availability-header {
8930 margin-bottom: 32px;
8931 }
8932
8933 .yatra-availability-header-top {
8934 display: flex;
8935 justify-content: space-between;
8936 align-items: center;
8937 margin-bottom: 12px;
8938 gap: 24px;
8939 }
8940
8941 .yatra-availability-sort {
8942 flex-shrink: 0;
8943 }
8944
8945 .yatra-availability-sort-select {
8946 padding: 10px 16px;
8947 border: 1px solid #e5e7eb;
8948 border-radius: 8px;
8949 font-size: 14px;
8950 font-weight: 500;
8951 color: #374151;
8952 background: #fff;
8953 cursor: pointer;
8954 transition: all 0.2s ease;
8955 min-width: 200px;
8956 }
8957
8958 .yatra-availability-sort-select:hover {
8959 border-color: var(--yatra-primary, #3b82f6);
8960 }
8961
8962 .yatra-availability-sort-select:focus {
8963 outline: none;
8964 border-color: var(--yatra-primary, #3b82f6);
8965 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
8966 }
8967
8968 .yatra-availability-subtitle {
8969 font-size: 16px;
8970 color: #6b7280;
8971 margin: 0;
8972 }
8973
8974 .yatra-availability-filters {
8975 display: flex;
8976 gap: 12px;
8977 margin-bottom: 32px;
8978 flex-wrap: wrap;
8979 }
8980
8981 .yatra-availability-filter-btn {
8982 padding: 10px 20px;
8983 border: 1px solid #e5e7eb;
8984 background: #fff;
8985 border-radius: 8px;
8986 font-size: 14px;
8987 font-weight: 500;
8988 color: #374151;
8989 cursor: pointer;
8990 transition: all 0.2s ease;
8991 }
8992
8993 .yatra-availability-filter-btn:hover {
8994 border-color: var(--yatra-primary, #3b82f6);
8995 color: var(--yatra-primary, #3b82f6);
8996 background: #eff6ff;
8997 }
8998
8999 .yatra-availability-filter-btn.active {
9000 background: var(--yatra-primary, #3b82f6);
9001 border-color: var(--yatra-primary, #3b82f6);
9002 color: #fff;
9003 }
9004
9005 /* Availability Card List */
9006 .yatra-availability-list {
9007 display: flex;
9008 flex-direction: column;
9009 gap: 20px;
9010 margin-bottom: 32px;
9011 }
9012
9013 /* Availability Card */
9014 .yatra-availability-card {
9015 background: #fff;
9016 border: 1px solid #e5e7eb;
9017 border-radius: 14px;
9018 overflow: visible;
9019 transition: all 0.2s ease;
9020 position: relative;
9021 }
9022
9023 .yatra-availability-card:hover {
9024 border-color: #d1d5db;
9025 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
9026 }
9027
9028 .yatra-availability-card.open {
9029 border-color: #bfdbfe;
9030 box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
9031 }
9032
9033 /* Selected card state - highlighted with blue border */
9034 .yatra-availability-card.selected {
9035 border-color: var(--yatra-primary, #3b82f6);
9036 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1), 0 10px 30px rgba(15, 23, 42, 0.08);
9037 background: #f0f9ff;
9038 }
9039
9040 .yatra-availability-card.selected .yatra-availability-card-header {
9041 background: #eff6ff;
9042 }
9043
9044 /* Card Header - Clean Modern Design */
9045 .yatra-availability-card-header {
9046 position: relative;
9047 padding: 20px 24px;
9048 cursor: pointer;
9049 user-select: none;
9050 background: #f8fafc;
9051 transition: all 0.2s ease;
9052 border-bottom: 1px solid #e2e8f0;
9053 }
9054
9055 .yatra-availability-card-header:hover {
9056 background: #f1f5f9;
9057 }
9058
9059 /* Day Trip Date Header */
9060 .yatra-card-date-header {
9061 display: flex;
9062 align-items: center;
9063 gap: 8px;
9064 font-size: 14px;
9065 font-weight: 600;
9066 color: var(--yatra-primary-dark, #2563eb);
9067 margin-bottom: 12px;
9068 padding-bottom: 12px;
9069 border-bottom: 1px solid #e5e7eb;
9070 }
9071
9072 .yatra-card-date-header svg {
9073 width: 16px;
9074 height: 16px;
9075 color: var(--yatra-primary-dark, #2563eb);
9076 }
9077
9078 /* Day Trip Grid - adjusted for time display */
9079 .yatra-day-trip-grid .yatra-card-header-date {
9080 font-size: 18px;
9081 font-weight: 700;
9082 }
9083
9084 .yatra-card-header-grid {
9085 display: grid;
9086 grid-template-columns: 1fr 1fr auto auto auto;
9087 gap: 20px;
9088 align-items: center;
9089 }
9090
9091 /* Badges row: full width under optional day-trip date, above header grid (original → savings → urgency → status) */
9092 .yatra-card-badges-container {
9093 position: static;
9094 width: 100%;
9095 display: flex;
9096 flex-direction: row;
9097 flex-wrap: wrap;
9098 align-items: center;
9099 justify-content: flex-end;
9100 gap: 8px;
9101 margin: 0 0 14px 0;
9102 padding: 0;
9103 max-width: 100%;
9104 z-index: 1;
9105 }
9106
9107 .yatra-card-date-header + .yatra-card-badges-container {
9108 margin-top: 2px;
9109 }
9110
9111 .yatra-availability-badge-row__original {
9112 display: inline-block;
9113 font-size: 13px;
9114 font-weight: 600;
9115 color: #9ca3af;
9116 text-decoration: line-through;
9117 white-space: nowrap;
9118 line-height: 1.2;
9119 letter-spacing: -0.02em;
9120 }
9121
9122 .yatra-card-badges-container .yatra-card-discount-badge {
9123 display: inline-flex;
9124 align-items: center;
9125 margin: 0;
9126 }
9127
9128 /* Urgency copy: same row as status, immediately before Available (no discount required) */
9129 .yatra-card-badges-container .yatra-availability-urgency-message {
9130 display: inline-flex;
9131 align-items: center;
9132
9133 padding: 5px 8px;
9134 background-color: #fef3c7;
9135 color: #92400e;
9136 border-radius: 6px;
9137 font-size: 11px;
9138 font-weight: 600;
9139 line-height: 1.25;
9140 white-space: normal;
9141 text-align: left;
9142 box-shadow: 0 1px 2px rgba(146, 64, 14, 0.12);
9143 }
9144
9145 .yatra-card-header-item {
9146 display: flex;
9147 flex-direction: column;
9148 gap: 6px;
9149 min-width: 0;
9150 }
9151
9152 .yatra-card-header-label {
9153 font-size: 10px;
9154 font-weight: 600;
9155 color: #9ca3af;
9156 text-transform: uppercase;
9157 letter-spacing: 0.5px;
9158 line-height: 1;
9159 }
9160
9161 .yatra-card-header-date {
9162 font-size: 16px;
9163 font-weight: 700;
9164 color: #111827;
9165 line-height: 1.2;
9166 margin-bottom: 2px;
9167 }
9168
9169 .yatra-card-header-location {
9170 font-size: 13px;
9171 color: #6b7280;
9172 line-height: 1.4;
9173 font-weight: 400;
9174 white-space: nowrap;
9175 overflow: hidden;
9176 text-overflow: ellipsis;
9177 }
9178
9179 .yatra-card-header-seats {
9180 font-size: 20px;
9181 font-weight: 700;
9182 color: #111827;
9183 line-height: 1;
9184 margin-bottom: 4px;
9185 }
9186
9187 .yatra-card-header-sub {
9188 font-size: 12px;
9189 color: #9ca3af;
9190 line-height: 1.2;
9191 font-weight: 400;
9192 }
9193
9194 .yatra-card-header-price {
9195 position: relative;
9196 display: flex;
9197 flex-direction: column;
9198 align-items: flex-end;
9199 gap: 6px;
9200 flex-shrink: 0;
9201 min-width: 140px;
9202 }
9203
9204 .yatra-card-price-group {
9205 display: flex;
9206 flex-direction: column;
9207 align-items: flex-end;
9208 gap: 2px;
9209 }
9210
9211 /* Availability header: sale + label only (original / % live in .yatra-card-badges-container) */
9212 .yatra-card-price-group.yatra-card-price-group--stack {
9213 flex-direction: column;
9214 align-items: flex-end;
9215 gap: 4px;
9216 }
9217
9218 .yatra-sale-price {
9219 font-size: 20px;
9220 font-weight: 700;
9221 color: #111827;
9222 line-height: 1;
9223 letter-spacing: -0.5px;
9224 }
9225
9226 .yatra-price-label {
9227 font-size: 12px;
9228 color: #9ca3af;
9229 font-weight: 400;
9230 line-height: 1;
9231 }
9232
9233 .yatra-card-discount-badge {
9234 padding: 6px 12px;
9235 background: #dc2626;
9236 color: #fff;
9237 font-size: 11px;
9238 font-weight: 600;
9239 border-radius: 6px;
9240 text-transform: uppercase;
9241 letter-spacing: 0.5px;
9242 line-height: 1;
9243 white-space: nowrap;
9244 box-shadow: 0 2px 4px rgba(220, 38, 38, 0.3);
9245 }
9246
9247 .yatra-badge-discount {
9248 background: #16a34a;
9249 color: #fff;
9250 }
9251
9252 .yatra-badge-higher {
9253 background: #ef4444;
9254 color: #fff;
9255 }
9256
9257 .yatra-card-price-original {
9258 font-size: 12px;
9259 color: #9ca3af;
9260 text-decoration: line-through;
9261 line-height: 1.2;
9262 }
9263
9264 .yatra-card-price-sale {
9265 font-size: 18px;
9266 font-weight: 700;
9267 color: #111827;
9268 line-height: 1.2;
9269 }
9270
9271 .yatra-card-header-arrow {
9272 display: flex;
9273 align-items: center;
9274 justify-content: center;
9275 width: 24px;
9276 height: 24px;
9277 color: #9ca3af;
9278 transition: all 0.2s ease;
9279 }
9280
9281 .yatra-card-header-arrow:hover {
9282 color: #6b7280;
9283 }
9284
9285 .yatra-availability-card.open .yatra-card-header-arrow {
9286 transform: rotate(180deg);
9287 color: var(--yatra-primary-dark, #2563eb);
9288 }
9289
9290 /* Card Body */
9291 .yatra-availability-card-body {
9292 display: none;
9293 padding: 16px;
9294 background: #fefefe;
9295 border-top: 1px solid #e2e8f0;
9296 overflow: visible;
9297 position: relative;
9298 border-radius:0 0 14px 14px;
9299 }
9300
9301 .yatra-availability-card.open .yatra-availability-card-body {
9302 display: block;
9303 }
9304
9305 .yatra-card-body-content {
9306 display: flex;
9307 flex-direction: column;
9308 gap: 12px;
9309 }
9310
9311 .yatra-card-tour-header {
9312 display: flex;
9313 flex-direction: column;
9314 gap: 4px;
9315 }
9316
9317 .yatra-card-tour-title {
9318 font-size: 18px;
9319 font-weight: 600;
9320 color: #111827;
9321 margin: 0;
9322 line-height: 1.4;
9323 }
9324
9325 .yatra-card-tour-meta {
9326 display: flex;
9327 align-items: center;
9328 gap: 6px;
9329 flex-wrap: wrap;
9330 }
9331
9332 .yatra-card-tour-type {
9333 font-size: 13px;
9334 color: var(--yatra-primary, #3b82f6);
9335 font-weight: 500;
9336 line-height: 1.4;
9337 }
9338
9339 .yatra-card-tour-separator {
9340 font-size: 13px;
9341 color: #9ca3af;
9342 line-height: 1.4;
9343 }
9344
9345 .yatra-card-tour-location {
9346 font-size: 13px;
9347 color: #6b7280;
9348 line-height: 1.4;
9349 }
9350
9351 /* Info Grid */
9352 .yatra-card-info-grid {
9353 display: flex;
9354 flex-wrap: wrap;
9355 gap: 14px;
9356 padding: 0;
9357 background: transparent;
9358 border-radius: 0;
9359 border: none;
9360 }
9361
9362 .yatra-card-info-item {
9363 display: flex;
9364 gap: 8px;
9365 align-items: center;
9366 padding: 0;
9367 background: transparent;
9368 border: none;
9369 border-radius: 0;
9370 }
9371
9372 .yatra-card-info-icon {
9373 flex-shrink: 0;
9374 width: 18px;
9375 height: 18px;
9376 display: flex;
9377 align-items: center;
9378 justify-content: center;
9379 background: transparent;
9380 border-radius: 0;
9381 color: var(--yatra-primary-dark, #2563eb);
9382 }
9383
9384 .yatra-card-info-icon svg {
9385 width: 18px;
9386 height: 18px;
9387 }
9388
9389 .yatra-card-info-content {
9390 flex: 1;
9391 display: flex;
9392 flex-direction: row;
9393 align-items: baseline;
9394 gap: 8px;
9395 }
9396
9397 .yatra-card-info-label {
9398 font-size: 13px;
9399 font-weight: 600;
9400 color: #475569;
9401 text-transform: none;
9402 letter-spacing: 0;
9403 line-height: 1.3;
9404 }
9405
9406 .yatra-card-info-value {
9407 font-size: 13px;
9408 font-weight: 700;
9409 color: #0f172a;
9410 line-height: 1.3;
9411 }
9412
9413 /* Timeline */
9414 .yatra-card-timeline {
9415 display: grid;
9416 grid-template-columns: 1fr 1fr;
9417 gap: 16px;
9418 padding: 10px;
9419 background: #f9fafb;
9420 border-radius: 8px;
9421 border: none;
9422 }
9423
9424 .yatra-timeline-item {
9425 position: relative;
9426 display: flex;
9427 gap: 10px;
9428 align-items: flex-start;
9429 }
9430
9431 .yatra-timeline-dot {
9432 flex-shrink: 0;
9433 width: 10px;
9434 height: 10px;
9435 border-radius: 50%;
9436 border: 2px solid #fff;
9437 margin-top: 20px;
9438 }
9439
9440 .yatra-timeline-dot-start {
9441 background: #10b981;
9442 box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
9443 }
9444
9445 .yatra-timeline-dot-end {
9446 background: #ef4444;
9447 box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
9448 }
9449
9450 .yatra-timeline-content {
9451 flex: 1;
9452 }
9453
9454 .yatra-timeline-label {
9455 font-size: 10px;
9456 font-weight: 600;
9457 color: #6b7280;
9458 text-transform: uppercase;
9459 letter-spacing: 0.4px;
9460 margin-bottom: 3px;
9461 line-height: 1.3;
9462 }
9463
9464 .yatra-timeline-date {
9465 font-size: 14px;
9466 font-weight: 600;
9467 color: #111827;
9468 margin-bottom: 2px;
9469 line-height: 1.3;
9470 }
9471
9472 .yatra-timeline-location {
9473 font-size: 12px;
9474 color: #6b7280;
9475 line-height: 1.4;
9476 }
9477
9478 .yatra-card-traveler-section {
9479 display: flex;
9480 flex-direction: column;
9481 gap: 8px;
9482 }
9483
9484 .yatra-card-action-steps {
9485 display: flex;
9486 align-items: center;
9487 gap: 8px;
9488 padding: 0;
9489 background: transparent;
9490 border: none;
9491 border-radius: 0;
9492 margin-top: 2px;
9493 }
9494
9495 .yatra-card-action-step {
9496 display: inline-flex;
9497 align-items: center;
9498 gap: 8px;
9499 font-size: 13px;
9500 font-weight: 600;
9501 color: #0f172a;
9502 line-height: 1.2;
9503 }
9504
9505 .yatra-card-action-step-num {
9506 width: 20px;
9507 height: 20px;
9508 display: inline-flex;
9509 align-items: center;
9510 justify-content: center;
9511 border-radius: 999px;
9512 background: var(--yatra-primary-dark, #2563eb);
9513 color: #fff;
9514 font-size: 11px;
9515 font-weight: 700;
9516 flex-shrink: 0;
9517 }
9518
9519 .yatra-card-action-step-sep {
9520 color: #94a3b8;
9521 font-weight: 700;
9522 }
9523
9524 .yatra-card-action-help {
9525 font-size: 12px;
9526 color: #64748b;
9527 line-height: 1.4;
9528 margin-top: 0;
9529 }
9530
9531 .yatra-card-traveler-label {
9532 font-size: 12px;
9533 font-weight: 600;
9534 color: #374151;
9535 line-height: 1.4;
9536 }
9537
9538 .yatra-card-traveler-section .yatra-booking-field-select {
9539 width: 100%;
9540 border-color: #e5e7eb;
9541 border-radius: 12px;
9542 min-height: 52px;
9543 height: 52px;
9544 }
9545
9546 .yatra-card-traveler-section .yatra-booking-field-select:focus-within {
9547 border-color: #93c5fd;
9548 box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.12);
9549 }
9550
9551 .yatra-card-traveler-section .yatra-booking-field-icon {
9552 color: var(--yatra-primary-dark, #2563eb);
9553 }
9554
9555 /* Availability card traveler dropdown polish */
9556 .yatra-availability-card .yatra-availability-participants {
9557 width: 100%;
9558 }
9559
9560 .yatra-availability-card .yatra-availability-participants .yatra-booking-field-select {
9561 border-radius: 12px;
9562 border-color: #e5e7eb;
9563 background: #fff;
9564 min-height: 52px;
9565 height: 52px;
9566 }
9567
9568 .yatra-availability-card .yatra-availability-participants .yatra-booking-field-icon {
9569 padding: 0 14px;
9570 color: var(--yatra-primary-dark, #2563eb);
9571 }
9572
9573 .yatra-availability-card .yatra-availability-participants-display {
9574 padding: 0 42px 0 0;
9575 font-size: 14px;
9576 font-weight: 600;
9577 color: #0f172a;
9578 }
9579
9580 .yatra-availability-card .yatra-select-arrow {
9581 right: 14px;
9582 width: 18px;
9583 height: 18px;
9584 color: #64748b;
9585 }
9586
9587 .yatra-availability-card .yatra-availability-quantity-selector {
9588 left: 0;
9589 right: 0;
9590 margin-top: 10px;
9591 border-radius: 14px;
9592 border-color: #e5e7eb;
9593 padding: 12px;
9594 }
9595
9596 .yatra-availability-card .yatra-quantity-row {
9597 padding: 10px 8px;
9598 border-radius: 10px;
9599 }
9600
9601 .yatra-availability-card .yatra-quantity-row:not(:last-child) {
9602 border-bottom: 1px solid #f1f5f9;
9603 margin-bottom: 2px;
9604 padding-bottom: 10px;
9605 }
9606
9607 /* Simple Travelers Display in Availability Cards */
9608 .yatra-availability-travelers-simple {
9609 display: flex;
9610 align-items: center;
9611 gap: 12px;
9612 padding: 10px 14px;
9613 background: #f9fafb;
9614 border: 1px solid #e5e7eb;
9615 border-radius: 8px;
9616 }
9617
9618 .yatra-availability-travelers-simple .yatra-booking-field-icon {
9619 flex-shrink: 0;
9620 }
9621
9622 .yatra-availability-travelers-simple .yatra-quantity-input-simple {
9623 width: 45px;
9624 font-size: 14px;
9625 font-weight: 600;
9626 color: #111827;
9627 background: transparent;
9628 border: none;
9629 }
9630
9631 .yatra-availability-travelers-simple .yatra-quantity-btn {
9632 width: 28px;
9633 height: 28px;
9634 display: flex;
9635 align-items: center;
9636 justify-content: center;
9637 background: #fff;
9638 border: 1px solid #d1d5db;
9639 border-radius: 6px;
9640 cursor: pointer;
9641 transition: all 0.15s ease;
9642 }
9643
9644 .yatra-availability-travelers-simple .yatra-quantity-btn:hover:not(:disabled) {
9645 background: #f3f4f6;
9646 border-color: var(--yatra-primary-dark, #2563eb);
9647 }
9648
9649 .yatra-availability-travelers-simple .yatra-quantity-btn:disabled {
9650 opacity: 0.5;
9651 cursor: not-allowed;
9652 }
9653
9654 .yatra-availability-travelers-simple .yatra-quantity-btn svg {
9655 width: 14px;
9656 height: 14px;
9657 color: #374151;
9658 }
9659
9660 .yatra-availability-travelers-simple .yatra-travelers-label {
9661 font-size: 13px;
9662 color: #6b7280;
9663 margin-left: 4px;
9664 }
9665
9666 /* Booking Row */
9667 .yatra-card-booking-row {
9668 display: flex;
9669 gap: 10px;
9670 align-items: stretch;
9671 margin-top: 16px;
9672 padding-top: 16px;
9673 border-top: 1px solid #eef2f7;
9674 }
9675
9676 .yatra-card-total-box {
9677 flex: 1;
9678 padding: 8px 12px;
9679 background: #f8fafc;
9680 border: 1px solid #eef2f7;
9681 border-radius: 12px;
9682 display: flex;
9683 flex-direction: row;
9684 align-items: center;
9685 gap: 6px;
9686 }
9687
9688 .yatra-card-total-label {
9689 font-size: 12px;
9690 font-weight: 600;
9691 color: #6b7280;
9692 text-transform: uppercase;
9693 letter-spacing: 0.5px;
9694 white-space: nowrap;
9695 }
9696
9697 .yatra-card-total-note {
9698 font-size: 12px;
9699 color: #6b7280;
9700 white-space: nowrap;
9701 }
9702
9703 .yatra-card-total-amount {
9704 font-size: 16px;
9705 font-weight: 700;
9706 color: var(--yatra-primary, #3b82f6);
9707 line-height: 1;
9708 white-space: nowrap;
9709 margin-left: auto;
9710 }
9711
9712 button[type="button"].yatra-card-book-btn {
9713 flex: 1;
9714 padding: 12px 16px;
9715 background: var(--yatra-primary, #3b82f6);
9716 color: #fff;
9717 border: none;
9718 border-radius: 12px;
9719 font-size: 13px;
9720 font-weight: 600;
9721 cursor: pointer;
9722 transition: all 0.2s ease;
9723 white-space: nowrap;
9724 display: inline-flex;
9725 align-items: center;
9726 justify-content: center;
9727 gap: 10px;
9728 text-align: left;
9729 text-decoration: none;
9730 }
9731
9732 .yatra-card-book-btn svg {
9733 width: 18px;
9734 height: 18px;
9735 flex-shrink: 0;
9736 }
9737
9738 .yatra-card-book-btn-text {
9739 display: flex;
9740 flex-direction: column;
9741 align-items: flex-start;
9742 line-height: 1.1;
9743 }
9744
9745 .yatra-card-book-btn-title {
9746 font-size: 14px;
9747 font-weight: 700;
9748 color: #fff;
9749 }
9750
9751 .yatra-card-book-btn-subtitle {
9752 font-size: 11px;
9753 font-weight: 500;
9754 color: rgba(255,255,255,0.9);
9755 }
9756
9757 .yatra-card-book-btn:hover:not(:disabled),
9758 a.yatra-card-book-btn:hover {
9759 background: var(--yatra-primary-dark, #2563eb);
9760 transform: translateY(-1px);
9761 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
9762 color: #fff;
9763 text-decoration: none;
9764 }
9765
9766 .yatra-card-book-btn:disabled {
9767 background: #9ca3af;
9768 cursor: not-allowed;
9769 opacity: 0.7;
9770 }
9771
9772 /* Availability Participants Select */
9773 .yatra-availability-participants {
9774 position: relative;
9775 width: 100%;
9776 cursor: pointer;
9777 }
9778
9779 .yatra-availability-participants-display {
9780 flex: 1;
9781 padding: 14px 12px 14px 0;
9782 font-size: 15px;
9783 font-weight: 500;
9784 color: #111827;
9785 cursor: pointer;
9786 user-select: none;
9787 height: 100%;
9788 display: flex;
9789 align-items: center;
9790 transition: color 0.2s ease;
9791 }
9792
9793 .yatra-availability-participants:hover .yatra-availability-participants-display {
9794 color: var(--yatra-primary, #3b82f6);
9795 }
9796
9797 .yatra-availability-quantity-selector {
9798 position: absolute;
9799 top: 100%;
9800 left: -12px;
9801 right: -12px;
9802 margin-top: 8px;
9803 border: 1px solid #e5e7eb;
9804 border-radius: 12px;
9805 padding: 12px;
9806 background: #fff;
9807 box-shadow: 0 10px 25px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);
9808 z-index: 1000;
9809 display: none;
9810 max-height: 350px;
9811 overflow-y: auto;
9812 }
9813
9814 .yatra-availability-participants.active .yatra-availability-quantity-selector {
9815 display: block;
9816 animation: yatra-trip-dropdown-slide 0.2s ease-out;
9817 }
9818
9819 /* Responsive */
9820 @media (max-width: 1024px) {
9821 .yatra-card-header-grid {
9822 grid-template-columns: 1fr 1fr;
9823 gap: 16px;
9824 }
9825
9826 .yatra-card-header-price {
9827 grid-column: 1 / -1;
9828 align-items: flex-start;
9829 }
9830
9831 .yatra-card-header-arrow {
9832 grid-column: 2;
9833 grid-row: 1;
9834 justify-self: end;
9835 }
9836
9837 .yatra-card-body-content {
9838 gap: 16px;
9839 }
9840 }
9841
9842 @media (max-width: 768px) {
9843 .yatra-availability-card-header {
9844 padding: 14px 16px;
9845 }
9846
9847 .yatra-card-header-grid {
9848 grid-template-columns: 1fr;
9849 gap: 10px;
9850 }
9851
9852 .yatra-card-header-arrow {
9853 position: absolute;
9854 top: 14px;
9855 right: 16px;
9856 }
9857
9858 .yatra-availability-card-body {
9859 padding: 14px;
9860 }
9861
9862 .yatra-card-body-content {
9863 gap: 16px;
9864 }
9865
9866 .yatra-card-body-left {
9867 gap: 10px;
9868 }
9869
9870 .yatra-card-info-grid {
9871 grid-template-columns: 1fr;
9872 gap: 10px;
9873 padding: 10px;
9874 }
9875
9876 .yatra-card-booking-row {
9877 flex-direction: column;
9878 margin-top: 12px;
9879 padding-top: 12px;
9880 }
9881
9882 .yatra-card-book-btn {
9883 width: 100%;
9884 }
9885 }
9886
9887 .yatra-availability-toggle {
9888 border: none;
9889 background: transparent;
9890 width: 100%;
9891 border-radius:12px;
9892 }
9893
9894 /* Load More Section */
9895 .yatra-availability-load-more {
9896 display: flex;
9897 flex-direction: column;
9898 gap: 2px;
9899 min-width: 120px;
9900 flex: 1 1 0;
9901 }
9902
9903 .yatra-summary-label {
9904 font-size: 12px;
9905 color: #6b7280;
9906 text-transform: uppercase;
9907 letter-spacing: 0.5px;
9908 }
9909
9910 .yatra-summary-value {
9911 font-size: 16px;
9912 font-weight: 700;
9913 color: #0f172a;
9914 }
9915
9916 .yatra-summary-sub {
9917 font-size: 13px;
9918 color: #6b7280;
9919 }
9920
9921 .yatra-summary-price {
9922 margin-left: auto;
9923 text-align: right;
9924 flex: 0 0 auto;
9925 display: flex;
9926 flex-direction: column;
9927 align-items: flex-end;
9928 gap: 2px;
9929 min-width: 250px;
9930 }
9931
9932 .yatra-summary-price div {
9933 display: flex;
9934 align-items: baseline;
9935 justify-content: flex-end;
9936 gap: 8px;
9937 }
9938
9939 .yatra-summary-original {
9940 font-size: 13px;
9941 color: #9ca3af;
9942 text-decoration: line-through;
9943 }
9944
9945 .yatra-summary-sale {
9946 font-size: 20px;
9947 font-weight: 700;
9948 color: #111827;
9949 }
9950
9951 .yatra-summary-arrow {
9952 width: 14px;
9953 height: 14px;
9954 border-right: 2px solid #374151;
9955 border-bottom: 2px solid #374151;
9956 transform: rotate(45deg);
9957 transition: transform 0.2s ease;
9958 }
9959
9960 .yatra-availability-item.open .yatra-summary-arrow {
9961 transform: rotate(-135deg);
9962 }
9963
9964 .yatra-availability-details {
9965 display: none;
9966 border-top: 1px solid #e5e7eb;
9967 padding: 0 24px 24px;
9968 background: #f9fafb;
9969 }
9970
9971 .yatra-availability-item.open .yatra-availability-details {
9972 display: block;
9973 }
9974
9975 .yatra-availability-details-content {
9976 display: flex;
9977 flex-direction: column;
9978 gap: 20px;
9979 padding-top: 20px;
9980 }
9981
9982 .yatra-details-heading {
9983 display: flex;
9984 flex-direction: column;
9985 gap: 4px;
9986 }
9987
9988 .yatra-details-title {
9989 font-size: 18px;
9990 font-weight: 700;
9991 color: #0f172a;
9992 margin: 0;
9993 }
9994
9995 .yatra-details-subtitle {
9996 font-size: 14px;
9997 color: var(--yatra-primary, #3b82f6);
9998 font-weight: 600;
9999 margin: 0;
10000 }
10001
10002 .yatra-details-timeline {
10003 border-left: 2px dashed #d1d5db;
10004 padding-left: 18px;
10005 margin-left: 10px;
10006 display: flex;
10007 flex-direction: column;
10008 gap: 16px;
10009 }
10010
10011 .yatra-timeline-row {
10012 display: flex;
10013 gap: 12px;
10014 align-items: flex-start;
10015 }
10016
10017 .yatra-timeline-dot {
10018 width: 14px;
10019 height: 14px;
10020 border-radius: 50%;
10021 margin-left: -25px;
10022 margin-top: 20px;
10023 }
10024
10025 .yatra-timeline-dot.success {
10026 background: #10b981;
10027 box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
10028 }
10029
10030 .yatra-timeline-dot.danger {
10031 background: #ef4444;
10032 box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.2);
10033 }
10034
10035 .yatra-timeline-label {
10036 font-size: 12px;
10037 color: #6b7280;
10038 text-transform: uppercase;
10039 letter-spacing: 0.4px;
10040 }
10041
10042 .yatra-timeline-meta {
10043 display: block;
10044 font-size: 13px;
10045 color: #6b7280;
10046 }
10047
10048 .yatra-details-right {
10049 border-left: 1px solid #e5e7eb;
10050 padding-left: 24px;
10051 display: flex;
10052 flex-direction: column;
10053 gap: 16px;
10054 }
10055
10056 .yatra-details-price-group {
10057 display: flex;
10058 flex-direction: column;
10059 gap: 6px;
10060 }
10061
10062 .yatra-details-price-label {
10063 font-size: 12px;
10064 color: #6b7280;
10065 text-transform: uppercase;
10066 letter-spacing: 0.4px;
10067 }
10068
10069 .yatra-details-price {
10070 display: flex;
10071 align-items: baseline;
10072 gap: 8px;
10073 }
10074
10075 .yatra-details-price-note {
10076 font-size: 12px;
10077 color: #6b7280;
10078 }
10079
10080 .yatra-availability-traveler-picker {
10081 display: flex;
10082 flex-direction: column;
10083 gap: 8px;
10084 }
10085
10086 .yatra-availability-traveler-picker .yatra-booking-field-select {
10087 width: 100%;
10088 }
10089
10090 .yatra-availability-total-row {
10091 display: flex;
10092 align-items: center;
10093 gap: 16px;
10094 width: 100%;
10095 }
10096
10097 .yatra-availability-total-price {
10098 display: flex;
10099 flex-direction: column;
10100 background: #f8fafc;
10101 border: 1px solid #e5e7eb;
10102 border-radius: 10px;
10103 padding: 10px 14px;
10104 flex: 1 1 50%;
10105 }
10106
10107 .yatra-availability-total-label {
10108 font-size: 13px;
10109 font-weight: 600;
10110 color: #374151;
10111 text-transform: uppercase;
10112 letter-spacing: 0.4px;
10113 }
10114
10115 .yatra-availability-total-note {
10116 font-size: 12px;
10117 color: #6b7280;
10118 margin-top: 2px;
10119 }
10120
10121 .yatra-availability-total-amount {
10122 font-size: 20px;
10123 font-weight: 700;
10124 color: #0f172a;
10125 }
10126
10127 .yatra-availability-book-btn {
10128 padding: 14px 18px;
10129 border-radius: 12px;
10130 border: none;
10131 background: var(--yatra-primary, #3b82f6);
10132 color: #fff;
10133 font-size: 15px;
10134 font-weight: 600;
10135 cursor: pointer;
10136 transition: background 0.2s ease;
10137 flex: 1 1 50%;
10138 }
10139
10140 .yatra-availability-book-btn:hover {
10141 background: var(--yatra-primary-dark, #2563eb);
10142 }
10143
10144 .yatra-availability-book-btn:disabled {
10145 background: #9ca3af;
10146 cursor: not-allowed;
10147 }
10148
10149 @media (max-width: 640px) {
10150 .yatra-availability-total-row {
10151 flex-direction: column;
10152 }
10153
10154 .yatra-availability-book-btn {
10155 width: 100%;
10156 }
10157 }
10158
10159 .yatra-availability-book-btn:disabled {
10160 background: #9ca3af;
10161 cursor: not-allowed;
10162 }
10163
10164 .yatra-availability-details-content {
10165 flex-direction: column;
10166 }
10167
10168 @media (min-width: 900px) {
10169 .yatra-availability-summary {
10170 flex-wrap: nowrap;
10171 }
10172
10173 .yatra-availability-details-content {
10174 flex-direction: row;
10175 gap: 32px;
10176 }
10177
10178 .yatra-details-left {
10179 flex: 1 1 55%;
10180 }
10181
10182 .yatra-details-right {
10183 flex: 1 1 45%;
10184 }
10185 }
10186
10187 .yatra-availability-date-section {
10188 display: flex;
10189 flex-direction: column;
10190 gap: 12px;
10191 }
10192
10193 .yatra-availability-main-date {
10194 display: flex;
10195 align-items: baseline;
10196 gap: 8px;
10197 }
10198
10199 .yatra-availability-day {
10200 font-size: 13px;
10201 font-weight: 600;
10202 color: #6b7280;
10203 text-transform: uppercase;
10204 letter-spacing: 0.5px;
10205 }
10206
10207 .yatra-availability-date {
10208 font-size: 24px;
10209 font-weight: 700;
10210 color: #111827;
10211 line-height: 1;
10212 }
10213
10214 .yatra-availability-year {
10215 font-size: 16px;
10216 font-weight: 500;
10217 color: #6b7280;
10218 }
10219
10220 .yatra-availability-date-range {
10221 display: flex;
10222 align-items: center;
10223 gap: 12px;
10224 font-size: 13px;
10225 }
10226
10227 .yatra-availability-date-item {
10228 display: flex;
10229 align-items: center;
10230 gap: 6px;
10231 }
10232
10233 .yatra-availability-date-label {
10234 font-weight: 500;
10235 color: #6b7280;
10236 font-size: 12px;
10237 }
10238
10239 .yatra-availability-date-value {
10240 font-weight: 600;
10241 color: #111827;
10242 font-size: 13px;
10243 }
10244
10245 .yatra-availability-separator {
10246 color: #9ca3af;
10247 font-size: 14px;
10248 font-weight: 500;
10249 }
10250
10251 .yatra-availability-location-section {
10252 display: flex;
10253 align-items: center;
10254 gap: 12px;
10255 font-size: 13px;
10256 padding: 12px;
10257 background: #f9fafb;
10258 border-radius: 8px;
10259 }
10260
10261 .yatra-availability-location-item {
10262 display: flex;
10263 align-items: center;
10264 gap: 6px;
10265 flex: 1;
10266 }
10267
10268 .yatra-availability-location-item svg {
10269 color: #6b7280;
10270 flex-shrink: 0;
10271 }
10272
10273 .yatra-availability-location-value {
10274 font-weight: 600;
10275 color: #111827;
10276 font-size: 13px;
10277 }
10278
10279 .yatra-availability-meta {
10280 display: flex;
10281 align-items: center;
10282 gap: 20px;
10283 font-size: 13px;
10284 color: #6b7280;
10285 }
10286
10287 .yatra-availability-duration {
10288 display: flex;
10289 align-items: center;
10290 gap: 6px;
10291 }
10292
10293 .yatra-availability-duration-icon {
10294 width: 14px;
10295 height: 14px;
10296 flex-shrink: 0;
10297 color: #6b7280;
10298 }
10299
10300 .yatra-availability-seats-info {
10301 display: flex;
10302 align-items: center;
10303 gap: 6px;
10304 }
10305
10306 .yatra-availability-seats-info svg {
10307 color: #6b7280;
10308 flex-shrink: 0;
10309 }
10310
10311 .yatra-availability-status-badge {
10312 display: inline-block;
10313 padding: 6px 12px;
10314 border-radius: 6px;
10315 font-size: 12px;
10316 font-weight: 600;
10317 text-transform: uppercase;
10318 letter-spacing: 0.5px;
10319 width: fit-content;
10320 }
10321
10322 .yatra-availability-status-available {
10323 background: #d1fae5;
10324 color: #065f46;
10325 }
10326
10327 .yatra-availability-status-limited {
10328 background: #fef3c7;
10329 color: #92400e;
10330 }
10331
10332 .yatra-availability-status-waitlist {
10333 background: #fee2e2;
10334 color: #991b1b;
10335 }
10336
10337 .yatra-availability-status-sold-out {
10338 background: #fee2e2;
10339 color: #991b1b;
10340 }
10341
10342 .yatra-availability-status-blocked {
10343 background: #1f2937;
10344 color: #f9fafb;
10345 }
10346
10347 .yatra-availability-status-closed {
10348 background: #f3f4f6;
10349 color: #6b7280;
10350 border: 1px solid #d1d5db;
10351 }
10352
10353 .yatra-availability-status-cancelled {
10354 background: #9ca3af;
10355 color: #ffffff;
10356 }
10357
10358 /* Card Header Status Badge - Inline Design */
10359 .yatra-badge-status {
10360 display: inline-flex;
10361 align-items: center;
10362 padding: 6px 12px;
10363 font-size: 11px;
10364 font-weight: 600;
10365 border-radius: 6px;
10366 text-transform: uppercase;
10367 letter-spacing: 0.5px;
10368 line-height: 1;
10369 white-space: nowrap;
10370 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
10371 }
10372
10373 /* Status badge colors - matching discount badge style */
10374 .yatra-badge-status.yatra-badge-available {
10375 background: #10b981;
10376 color: #fff;
10377 }
10378
10379 .yatra-badge-status.yatra-badge-limited {
10380 background: #f59e0b;
10381 color: #fff;
10382 }
10383
10384 .yatra-badge-status.yatra-badge-sold-out {
10385 background: #dc2626;
10386 color: #fff;
10387 }
10388
10389 .yatra-badge-status.yatra-badge-blocked {
10390 background: #1f2937;
10391 color: #fff;
10392 }
10393
10394 .yatra-badge-status.yatra-badge-closed {
10395 background: #6b7280;
10396 color: #fff;
10397 }
10398
10399 .yatra-badge-status.yatra-badge-cancelled {
10400 background: #9ca3af;
10401 color: #fff;
10402 }
10403
10404 /* Status-Specific Card Designs - Left Border Only */
10405 .yatra-availability-card.yatra-card-status-available {
10406 border-left: 4px solid #10b981;
10407 }
10408
10409 .yatra-availability-card.yatra-card-status-available:hover {
10410 border-left-color: #059669;
10411 box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
10412 }
10413
10414 .yatra-availability-card.yatra-card-status-limited {
10415 border-left: 4px solid #f59e0b;
10416 }
10417
10418 .yatra-availability-card.yatra-card-status-limited:hover {
10419 border-left-color: #d97706;
10420 box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
10421 }
10422
10423 .yatra-availability-card.yatra-card-status-sold-out {
10424 border-left: 4px solid #ef4444;
10425 opacity: 0.85;
10426 }
10427
10428 .yatra-availability-card.yatra-card-status-sold-out:hover {
10429 border-left-color: #dc2626;
10430 box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
10431 }
10432
10433 .yatra-availability-card.yatra-card-status-blocked {
10434 border-left: 4px solid #1f2937;
10435 opacity: 0.7;
10436 }
10437
10438 .yatra-availability-card.yatra-card-status-blocked:hover {
10439 border-left-color: #111827;
10440 box-shadow: 0 4px 12px rgba(31, 41, 55, 0.15);
10441 }
10442
10443 .yatra-availability-card.yatra-card-status-closed {
10444 border-left: 4px solid #6b7280;
10445 opacity: 0.8;
10446 }
10447
10448 .yatra-availability-card.yatra-card-status-closed:hover {
10449 border-left-color: #4b5563;
10450 box-shadow: 0 4px 12px rgba(107, 114, 128, 0.15);
10451 }
10452
10453 .yatra-availability-card.yatra-card-status-cancelled {
10454 border-left: 4px solid #9ca3af;
10455 opacity: 0.75;
10456 }
10457
10458 .yatra-availability-card.yatra-card-status-cancelled:hover {
10459 border-left-color: #6b7280;
10460 box-shadow: 0 4px 12px rgba(156, 163, 175, 0.15);
10461 }
10462
10463 /* Right Column: Pricing & Booking */
10464 .yatra-availability-right {
10465 display: flex;
10466 flex-direction: column;
10467 gap: 20px;
10468 padding-left: 24px;
10469 border-left: 1px solid #e5e7eb;
10470 }
10471
10472 .yatra-availability-pricing-section {
10473 display: flex;
10474 flex-direction: column;
10475 align-items: flex-end;
10476 gap: 8px;
10477 }
10478
10479 .yatra-availability-discount-badge {
10480 display: inline-block;
10481 padding: 4px 10px;
10482 background: #dc2626;
10483 color: #fff;
10484 font-size: 11px;
10485 font-weight: 700;
10486 border-radius: 4px;
10487 text-transform: uppercase;
10488 letter-spacing: 0.5px;
10489 }
10490
10491 .yatra-availability-pricing {
10492 display: flex;
10493 flex-direction: column;
10494 align-items: flex-end;
10495 gap: 4px;
10496 }
10497
10498 .yatra-availability-price-original {
10499 font-size: 14px;
10500 color: #9ca3af;
10501 text-decoration: line-through;
10502 }
10503
10504 .yatra-availability-price-main {
10505 display: flex;
10506 align-items: baseline;
10507 gap: 6px;
10508 }
10509
10510 .yatra-availability-price-sale {
10511 font-size: 32px;
10512 font-weight: 700;
10513 color: #111827;
10514 line-height: 1;
10515 }
10516
10517 .yatra-availability-price-label {
10518 font-size: 13px;
10519 color: #6b7280;
10520 font-weight: 500;
10521 }
10522
10523 /* Traveler Selector */
10524 .yatra-availability-travelers {
10525 display: flex;
10526 flex-direction: column;
10527 gap: 12px;
10528 }
10529
10530 .yatra-availability-traveler-label {
10531 font-size: 13px;
10532 font-weight: 600;
10533 color: #374151;
10534 margin-bottom: 4px;
10535 }
10536
10537 /* Availability Participants Select - Same as sidebar - DUPLICATE REMOVED */
10538
10539 .yatra-availability-total-price {
10540 display: flex;
10541 align-items: center;
10542 justify-content: space-between;
10543 padding: 12px;
10544 background: #fff;
10545 border: 2px solid var(--yatra-primary, #3b82f6);
10546 border-radius: 8px;
10547 margin-top: 4px;
10548 }
10549
10550 .yatra-availability-total-label {
10551 font-size: 15px;
10552 font-weight: 600;
10553 color: #374151;
10554 }
10555
10556 .yatra-availability-total-amount {
10557 font-size: 20px;
10558 font-weight: 700;
10559 color: var(--yatra-primary, #3b82f6);
10560 }
10561
10562 .yatra-availability-book-btn {
10563 padding: 14px 24px;
10564 background: var(--yatra-primary, #3b82f6);
10565 color: #fff;
10566 border: none;
10567 border-radius: 8px;
10568 font-size: 15px;
10569 font-weight: 600;
10570 cursor: pointer;
10571 transition: all 0.2s ease;
10572 width: 100%;
10573 text-align: center;
10574 }
10575
10576 .yatra-availability-book-btn:hover:not(:disabled) {
10577 background: var(--yatra-primary-dark, #2563eb);
10578 transform: translateY(-1px);
10579 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
10580 }
10581
10582 .yatra-availability-book-btn:disabled {
10583 background: #9ca3af;
10584 cursor: not-allowed;
10585 opacity: 0.7;
10586 }
10587
10588 /* Responsive Design */
10589 @media (max-width: 1024px) {
10590 .yatra-availability-item-main {
10591 grid-template-columns: 1fr;
10592 gap: 24px;
10593 }
10594
10595 .yatra-availability-right {
10596 padding-left: 0;
10597 border-left: none;
10598 border-top: 1px solid #e5e7eb;
10599 padding-top: 24px;
10600 }
10601 }
10602
10603 .yatra-availability-load-more {
10604 text-align: center;
10605 margin-top: 32px;
10606 margin-bottom: 24px;
10607 display: flex;
10608 flex-direction: column;
10609 align-items: center;
10610 gap: 12px;
10611 }
10612
10613 .yatra-availability-load-more-btn {
10614 display: inline-flex;
10615 align-items: center;
10616 justify-content: center;
10617 gap: 8px;
10618 padding: 14px 32px;
10619 background: #10b981;
10620 color: #fff;
10621 border: 2px solid #10b981;
10622 border-radius: 8px;
10623 font-size: 15px;
10624 font-weight: 600;
10625 cursor: pointer;
10626 transition: all 0.3s ease;
10627 }
10628
10629 .yatra-availability-load-more-btn:hover:not(:disabled) {
10630 background: #059669;
10631 border-color: #059669;
10632 }
10633
10634 .yatra-availability-load-more-btn:disabled {
10635 opacity: 0.7;
10636 cursor: not-allowed;
10637 }
10638
10639 .yatra-availability-load-more-btn svg {
10640 width: 18px;
10641 height: 18px;
10642 }
10643
10644 .yatra-availability-count-info {
10645 font-size: 13px;
10646 color: #6b7280;
10647 }
10648
10649 /* Spinner animation for load more */
10650 .yatra-spinner {
10651 animation: yatra-spin 1s linear infinite;
10652 }
10653
10654 /* Responsive */
10655 @media (max-width: 1024px) {
10656 .yatra-availability-header-top {
10657 flex-direction: column;
10658 align-items: flex-start;
10659 }
10660
10661 .yatra-availability-sort-select {
10662 width: 100%;
10663 }
10664
10665 .yatra-availability-item-main {
10666 grid-template-columns: 1fr;
10667 gap: 24px;
10668 }
10669
10670 .yatra-availability-pricing-info {
10671 align-items: flex-start;
10672 }
10673
10674 .yatra-availability-book-btn {
10675 max-width: 100%;
10676 }
10677 }
10678
10679 @media (max-width: 768px) {
10680 .yatra-availability-filters {
10681 overflow-x: auto;
10682 flex-wrap: nowrap;
10683 padding-bottom: 8px;
10684 -webkit-overflow-scrolling: touch;
10685 }
10686
10687 .yatra-availability-filter-btn {
10688 white-space: nowrap;
10689 flex-shrink: 0;
10690 }
10691
10692 .yatra-availability-item {
10693 padding: 20px;
10694 }
10695
10696 .yatra-availability-date {
10697 font-size: 20px;
10698 }
10699
10700 .yatra-availability-price-sale {
10701 font-size: 24px;
10702 }
10703 }
10704
10705 /* Price Section Styling */
10706 .yatra-price-section {
10707 margin: 16px 0;
10708 border-top: 1px solid #e5e7eb;
10709 padding-top: 12px;
10710 }
10711
10712 .yatra-price-section-title {
10713 display: flex;
10714 align-items: center;
10715 gap: 8px;
10716 font-weight: 600;
10717 color: #374151;
10718 margin-bottom: 8px;
10719 font-size: 14px;
10720 }
10721
10722 .dark .yatra-price-section-title {
10723 color: #d1d5db;
10724 }
10725
10726 /* Itinerary Costs Styling */
10727 .yatra-price-itinerary {
10728 display: flex;
10729 justify-content: space-between;
10730 align-items: center;
10731 padding: 6px 0;
10732 font-size: 13px;
10733 color: #6b7280;
10734 }
10735
10736 .yatra-price-itinerary span:first-child {
10737 font-weight: 500;
10738 color: #374151;
10739 }
10740
10741 .yatra-price-itinerary span:last-child {
10742 font-weight: 600;
10743 color: #059669;
10744 }
10745
10746 .dark .yatra-price-itinerary {
10747 color: #9ca3af;
10748 }
10749
10750 .dark .yatra-price-itinerary span:first-child {
10751 color: #d1d5db;
10752 }
10753
10754 .dark .yatra-price-itinerary span:last-child {
10755 color: #10b981;
10756 }
10757
10758 /* Availability Fallback Styling */
10759 .yatra-availability-empty-actions {
10760 display: flex;
10761 gap: 12px;
10762 margin-top: 20px;
10763 flex-wrap: wrap;
10764 }
10765
10766 .yatra-availability-empty-actions .yatra-btn {
10767 min-width: 140px;
10768 }
10769
10770 .yatra-availability-empty .yatra-icon-xl {
10771 color: #10b981;
10772 margin-bottom: 16px;
10773 }
10774
10775 .dark .yatra-availability-empty .yatra-icon-xl {
10776 color: #34d399;
10777 }
10778
10779 /* Date Picker Customization */
10780 .flatpickr-calendar {
10781 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
10782 border-radius: 8px;
10783 }
10784
10785 .flatpickr-day.selected {
10786 background: var(--yatra-primary, #3b82f6);
10787 border-color: var(--yatra-primary, #3b82f6);
10788 }
10789
10790 .flatpickr-day:hover {
10791 background: #dbeafe;
10792 border-color: #93c5fd;
10793 }
10794
10795 .flatpickr-day.today {
10796 border-color: var(--yatra-primary, #3b82f6);
10797 }
10798
10799 .flatpickr-day.disabled {
10800 color: #d1d5db;
10801 }
10802
10803 /* Dark mode date picker */
10804 .dark .flatpickr-calendar {
10805 background: #1f2937;
10806 border-color: #374151;
10807 }
10808
10809 .dark .flatpickr-months {
10810 background: #1f2937;
10811 }
10812
10813 .dark .flatpickr-current-month .flatpickr-monthDropdown-months,
10814 .dark .flatpickr-current-month input.cur-year {
10815 color: #f9fafb;
10816 }
10817
10818 .dark .flatpickr-weekday {
10819 color: #9ca3af;
10820 }
10821
10822 .dark .flatpickr-day {
10823 color: #f9fafb;
10824 }
10825
10826 .dark .flatpickr-day:hover {
10827 background: #374151;
10828 border-color: #4b5563;
10829 }
10830
10831 .dark .flatpickr-day.disabled {
10832 color: #4b5563;
10833 }
10834
10835 /* Availability Empty Info */
10836 .yatra-availability-empty-info {
10837 display: flex;
10838 flex-direction: column;
10839 gap: 16px;
10840 margin: 24px 0;
10841 padding: 20px;
10842 background: #f9fafb;
10843 border-radius: 8px;
10844 border: 1px solid #e5e7eb;
10845 }
10846
10847 .dark .yatra-availability-empty-info {
10848 background: #1f2937;
10849 border-color: #374151;
10850 }
10851
10852 .yatra-availability-empty-info-item {
10853 display: flex;
10854 align-items: center;
10855 gap: 12px;
10856 }
10857
10858 .yatra-availability-empty-info-icon {
10859 width: 40px;
10860 height: 40px;
10861 display: flex;
10862 align-items: center;
10863 justify-content: center;
10864 background: #10b981;
10865 color: white;
10866 border-radius: 8px;
10867 flex-shrink: 0;
10868 }
10869
10870 .yatra-availability-empty-info-text {
10871 display: flex;
10872 flex-direction: column;
10873 gap: 2px;
10874 }
10875
10876 .yatra-availability-empty-info-label {
10877 font-size: 12px;
10878 color: #6b7280;
10879 font-weight: 500;
10880 }
10881
10882 .yatra-availability-empty-info-value {
10883 font-size: 16px;
10884 color: #111827;
10885 font-weight: 600;
10886 }
10887
10888 .dark .yatra-availability-empty-info-label {
10889 color: #9ca3af;
10890 }
10891
10892 .dark .yatra-availability-empty-info-value {
10893 color: #f9fafb;
10894 }
10895
10896 /* ============================================
10897 TRIP ATTRIBUTES SECTION — matches quick facts: hairline grid, neutral icons
10898 (Vertical spacing: unified block above — no extra padding-top here.)
10899 ============================================ */
10900 .yatra-trip-attributes {
10901 --yatra-attr-divider: #d6d3d1;
10902 }
10903
10904 .yatra-trip-attributes .yatra-section-header {
10905 margin-bottom: 14px;
10906 padding-bottom: 12px;
10907 border-bottom: 1px solid var(--yatra-attr-divider);
10908 }
10909
10910 .yatra-trip-attributes .yatra-section-title {
10911 font-size: 1.125rem;
10912 font-weight: 600;
10913 letter-spacing: -0.02em;
10914 color: #1c1917;
10915 margin: 0 0 6px 0;
10916 line-height: 1.25;
10917 }
10918
10919 .yatra-trip-attributes .yatra-section-description {
10920 font-size: 13px;
10921 line-height: 1.5;
10922 color: #78716c;
10923 margin: 0;
10924 max-width: 42em;
10925 }
10926
10927 /* Layout + hairlines when wrapped by .yatra-spec-sheet (see SPEC SHEET WRAPPER block). */
10928 .yatra-attributes-grid {
10929 margin-top: 0;
10930 }
10931
10932 .yatra-attributes-filter-wrapper .yatra-attributes-grid {
10933 display: grid;
10934 }
10935
10936 /* Scoped to single-trip attributes grid only — listing filters reuse class names with a different DOM (label + content stacked). */
10937 .yatra-attributes-grid > .yatra-attribute-item {
10938 display: flex;
10939 align-items: flex-start;
10940 gap: 12px;
10941 padding: 14px 16px;
10942 background: #fff;
10943 border: none;
10944 border-radius: 0;
10945 transition: background-color 0.15s ease;
10946 min-width: 0;
10947 min-height: 100%;
10948 box-sizing: border-box;
10949 align-self: stretch;
10950 }
10951
10952 .yatra-attributes-grid > .yatra-attribute-item:hover {
10953 background: #fafaf9;
10954 }
10955
10956 .yatra-attributes-grid .yatra-attribute-icon {
10957 width: auto;
10958 height: auto;
10959 min-width: 28px;
10960 min-height: 28px;
10961 display: flex;
10962 align-items: center;
10963 justify-content: center;
10964 background: transparent;
10965 color: #57534e;
10966 border-radius: 0;
10967 flex-shrink: 0;
10968 overflow: visible;
10969 }
10970
10971 .yatra-attributes-grid .yatra-attribute-icon svg {
10972 display: block;
10973 width: 22px;
10974 height: 22px;
10975 min-width: 22px;
10976 min-height: 22px;
10977 flex-shrink: 0;
10978 overflow: visible;
10979 opacity: 0.92;
10980 }
10981
10982 .yatra-attributes-grid .yatra-attribute-icon svg[fill="none"] {
10983 stroke: currentColor;
10984 }
10985
10986 .yatra-attributes-grid .yatra-attribute-icon svg[fill="currentColor"] {
10987 stroke: none;
10988 opacity: 1;
10989 }
10990
10991 .yatra-attribute-icon-img {
10992 width: 26px;
10993 height: 26px;
10994 max-width: 100%;
10995 max-height: 100%;
10996 object-fit: contain;
10997 border-radius: 4px;
10998 }
10999
11000 .yatra-attributes-grid .yatra-attribute-content {
11001 flex: 1 1 auto;
11002 min-width: 0;
11003 display: flex;
11004 flex-direction: column;
11005 justify-content: flex-start;
11006 min-height: 0;
11007 }
11008
11009 .yatra-attributes-grid .yatra-attribute-content .yatra-attribute-name {
11010 font-size: 13px;
11011 font-weight: 600;
11012 color: #292524;
11013 margin-bottom: 3px;
11014 line-height: 1.35;
11015 }
11016
11017 .yatra-attributes-grid .yatra-attribute-value {
11018 font-size: 13px;
11019 color: #57534e;
11020 margin-bottom: 0;
11021 word-wrap: break-word;
11022 line-height: 1.45;
11023 }
11024
11025 .yatra-attributes-grid .yatra-attribute-value a {
11026 color: var(--yatra-primary-color, var(--yatra-primary, #3b82f6));
11027 text-decoration: none;
11028 }
11029
11030 .yatra-attributes-grid .yatra-attribute-value a:hover {
11031 text-decoration: underline;
11032 }
11033
11034 .yatra-color-swatch {
11035 display: inline-block;
11036 width: 16px;
11037 height: 16px;
11038 border-radius: 3px;
11039 border: 1px solid var(--yatra-border-color, #e5e7eb);
11040 vertical-align: middle;
11041 margin-right: 6px;
11042 }
11043
11044 .yatra-attributes-grid .yatra-attribute-description {
11045 margin-top: 6px;
11046 font-size: 11px;
11047 color: #a8a29e;
11048 font-style: italic;
11049 line-height: 1.35;
11050 }
11051
11052 /* ============================================
11053 BOOKING PAGE TRIP INFORMATION
11054 ============================================ */
11055 .yatra-booking-info {
11056 margin: 20px 0;
11057 padding: 16px;
11058 background: var(--yatra-bg-card, #ffffff);
11059 border: 1px solid var(--yatra-border-color, #e5e7eb);
11060 border-radius: 8px;
11061 }
11062
11063 .yatra-booking-info h5 {
11064 font-size: 14px;
11065 font-weight: 600;
11066 color: var(--yatra-text-primary, #1a1a1a);
11067 margin: 0 0 12px 0;
11068 padding-bottom: 8px;
11069 border-bottom: 1px solid var(--yatra-border-color, #e5e7eb);
11070 }
11071
11072 .yatra-booking-info-list {
11073 display: flex;
11074 flex-direction: column;
11075 gap: 8px;
11076 }
11077
11078 .yatra-booking-info-item {
11079 display: flex;
11080 justify-content: space-between;
11081 align-items: center;
11082 padding: 6px 0;
11083 border-bottom: 1px solid var(--yatra-border-light, #f3f4f6);
11084 }
11085
11086 .yatra-booking-info-item:last-child {
11087 border-bottom: none;
11088 }
11089
11090 .yatra-booking-info-name {
11091 font-size: 12px;
11092 font-weight: 500;
11093 color: var(--yatra-text-secondary, #6b7280);
11094 flex: 1;
11095 min-width: 0;
11096 margin-right: 8px;
11097 }
11098
11099 .yatra-booking-info-value {
11100 font-size: 12px;
11101 font-weight: 600;
11102 color: var(--yatra-text-primary, #1a1a1a);
11103 text-align: right;
11104 flex-shrink: 0;
11105 }
11106
11107 /* Dark Mode */
11108 .dark .yatra-booking-info {
11109 background: var(--yatra-bg-card-dark, #1f2937);
11110 border-color: var(--yatra-border-color-dark, #374151);
11111 }
11112
11113 .dark .yatra-booking-info h5 {
11114 color: var(--yatra-text-primary-dark, #f9fafb);
11115 border-bottom-color: var(--yatra-border-color-dark, #374151);
11116 }
11117
11118 .dark .yatra-booking-info-item {
11119 border-bottom-color: var(--yatra-border-light-dark, #374151);
11120 }
11121
11122 .dark .yatra-booking-info-name {
11123 color: var(--yatra-text-secondary-dark, #9ca3af);
11124 }
11125
11126 .dark .yatra-booking-info-value {
11127 color: var(--yatra-text-primary-dark, #f9fafb);
11128 }
11129
11130 /* Cancellation Policy Content */
11131 .yatra-cancellation-policy-content p {
11132 font-size: 13px;
11133 line-height: 1.5;
11134 color: var(--yatra-text-secondary, #6b7280);
11135 margin: 0 0 8px 0;
11136 }
11137
11138 .yatra-cancellation-policy-content p:last-child {
11139 margin-bottom: 0;
11140 }
11141
11142 .yatra-policy-more {
11143 font-size: 12px;
11144 font-style: italic;
11145 color: var(--yatra-text-muted, #9ca3af);
11146 margin-top: 8px;
11147 }
11148
11149 /* Dark Mode */
11150 .dark .yatra-cancellation-policy-content p {
11151 color: var(--yatra-text-secondary-dark, #9ca3af);
11152 }
11153
11154 .dark .yatra-policy-more {
11155 color: var(--yatra-text-muted-dark, #6b7280);
11156 }
11157
11158 /* ============================================
11159 IMPORTANT INFORMATION SECTION - SIMPLE & CLEAN
11160 ============================================ */
11161
11162 .yatra-important-info-grid {
11163 display: flex;
11164 flex-direction: column;
11165 gap: 20px;
11166 margin-top: 32px;
11167 }
11168
11169 .yatra-important-info-card {
11170 display: flex;
11171 align-items: flex-start;
11172 gap: 20px;
11173 background: var(--yatra-bg-card, #ffffff);
11174 border: 1px solid var(--yatra-border-color, #e5e7eb);
11175 border-radius: 12px;
11176 padding: 24px;
11177 transition: all 0.2s ease;
11178 }
11179
11180 .yatra-important-info-card:hover {
11181 transform: translateY(-2px);
11182 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
11183 }
11184
11185 .yatra-important-info-icon {
11186 width: 48px;
11187 height: 48px;
11188 display: flex;
11189 align-items: center;
11190 justify-content: center;
11191 background: var(--yatra-primary-light, #eff6ff);
11192 color: var(--yatra-primary-color, var(--yatra-primary, #3b82f6));
11193 border-radius: 12px;
11194 font-size: 20px;
11195 flex-shrink: 0;
11196 }
11197
11198 .yatra-important-info-content-wrapper {
11199 flex: 1;
11200 }
11201
11202 .yatra-important-info-title {
11203 font-size: 16px;
11204 font-weight: 600;
11205 color: var(--yatra-text-primary, #1a1a1a);
11206 margin: 0 0 16px 0;
11207 display: flex;
11208 align-items: center;
11209 gap: 0;
11210 }
11211
11212 .yatra-important-info-title .yatra-icon-inline {
11213 display: none;
11214 }
11215
11216 .yatra-important-info-content {
11217 font-size: 14px;
11218 line-height: 1.6;
11219 color: var(--yatra-text-secondary, #6b7280);
11220 margin: 0;
11221 }
11222
11223 .yatra-important-info-content p {
11224 margin: 0 0 8px 0;
11225 }
11226
11227 .yatra-important-info-content p:last-child {
11228 margin-bottom: 0;
11229 }
11230
11231 /* Info Detail Rows */
11232 .yatra-info-detail-row {
11233 display: flex;
11234 align-items: flex-start;
11235 justify-content: space-between;
11236 padding: 6px 0;
11237 }
11238
11239 .yatra-info-label {
11240 font-size: 13px;
11241 font-weight: 500;
11242 color: #6b7280;
11243 display: flex;
11244 align-items: center;
11245 gap: 6px;
11246 }
11247
11248 .yatra-info-value {
11249 font-size: 14px;
11250 font-weight: 600;
11251 color: #1a1a1a;
11252 text-align: right;
11253 }
11254
11255 /* Info Badge */
11256 .yatra-info-badge {
11257 display: inline-flex;
11258 align-items: center;
11259 gap: 6px;
11260 padding: 6px 12px;
11261 border-radius: 6px;
11262 font-size: 13px;
11263 font-weight: 500;
11264 margin-bottom: 12px;
11265 }
11266
11267 .yatra-badge-included {
11268 background: #d1fae5;
11269 color: #065f46;
11270 }
11271
11272 /* Info Description */
11273 .yatra-info-description {
11274 margin-top: 12px;
11275 }
11276
11277 /* Icon Sizes */
11278 .yatra-icon-tiny {
11279 width: 14px;
11280 height: 14px;
11281 }
11282
11283 /* Icon Color Variations */
11284 .yatra-icon-physical {
11285 background: #fef3c7;
11286 color: #d97706;
11287 }
11288
11289 .yatra-icon-visa {
11290 background: #dbeafe;
11291 color: var(--yatra-primary-dark, #2563eb);
11292 }
11293
11294 .yatra-icon-health {
11295 background: #fce7f3;
11296 color: #db2777;
11297 }
11298
11299 .yatra-icon-policy {
11300 background: #fee2e2;
11301 color: #dc2626;
11302 }
11303
11304 .yatra-icon-age {
11305 background: #e0e7ff;
11306 color: #6366f1;
11307 }
11308
11309 .yatra-icon-accommodation {
11310 background: #d1fae5;
11311 color: #059669;
11312 }
11313
11314 .yatra-icon-transport {
11315 background: #ddd6fe;
11316 color: #7c3aed;
11317 }
11318
11319 /* Section Description */
11320 .yatra-section-description {
11321 font-size: 15px;
11322 line-height: 1.6;
11323 color: #6b7280;
11324 margin: 12px 0 0 0;
11325 }
11326
11327 /* Responsive Design */
11328 @media (max-width: 768px) {
11329 .yatra-important-info-grid {
11330 gap: 16px;
11331 }
11332
11333 .yatra-important-info-card {
11334 padding: 20px;
11335 gap: 16px;
11336 align-items: flex-start;
11337 text-align: left;
11338 }
11339
11340 .yatra-important-info-icon {
11341 width: 40px;
11342 height: 40px;
11343 font-size: 18px;
11344 }
11345
11346 .yatra-important-info-title {
11347 font-size: 15px;
11348 }
11349
11350 .yatra-info-detail-row {
11351 flex-direction: column;
11352 gap: 4px;
11353 }
11354
11355 .yatra-info-value {
11356 text-align: left;
11357 }
11358
11359 .yatra-important-info-content {
11360 font-size: 13px;
11361 }
11362 }
11363
11364 @media (max-width: 480px) {
11365 .yatra-important-info-card {
11366 flex-direction: row;
11367 align-items: flex-start;
11368 text-align: left;
11369 gap: 12px;
11370 }
11371
11372 .yatra-important-info-icon {
11373 margin: 0;
11374 }
11375
11376 .yatra-important-info-title {
11377 text-align: left;
11378 justify-content: flex-start;
11379 }
11380
11381 .yatra-important-info-content {
11382 text-align: left;
11383 }
11384 }
11385
11386 /* ============================================
11387 BOOKING PAGE ATTRIBUTES
11388 ============================================ */
11389 .yatra-booking-attributes {
11390 margin: 20px 0;
11391 padding: 16px;
11392 background: var(--yatra-bg-card, #ffffff);
11393 border: 1px solid var(--yatra-border-color, #e5e7eb);
11394 border-radius: 8px;
11395 }
11396
11397 .yatra-booking-attributes h5 {
11398 font-size: 14px;
11399 font-weight: 600;
11400 color: var(--yatra-text-primary, #1a1a1a);
11401 margin: 0 0 12px 0;
11402 padding-bottom: 8px;
11403 border-bottom: 1px solid var(--yatra-border-color, #e5e7eb);
11404 }
11405
11406 .yatra-booking-attributes-list {
11407 display: flex;
11408 flex-direction: column;
11409 gap: 8px;
11410 }
11411
11412 .yatra-booking-attribute-item {
11413 display: flex;
11414 justify-content: space-between;
11415 align-items: center;
11416 padding: 6px 0;
11417 border-bottom: 1px solid var(--yatra-border-light, #f3f4f6);
11418 }
11419
11420 .yatra-booking-attribute-item:last-child {
11421 border-bottom: none;
11422 }
11423
11424 .yatra-booking-attribute-name {
11425 font-size: 12px;
11426 font-weight: 500;
11427 color: var(--yatra-text-secondary, #6b7280);
11428 flex: 1;
11429 min-width: 0;
11430 margin-right: 8px;
11431 }
11432
11433 .yatra-booking-attribute-value {
11434 font-size: 12px;
11435 font-weight: 600;
11436 color: var(--yatra-text-primary, #1a1a1a);
11437 text-align: right;
11438 flex-shrink: 0;
11439 }
11440
11441 .yatra-booking-color-swatch {
11442 display: inline-block;
11443 width: 12px;
11444 height: 12px;
11445 border-radius: 2px;
11446 border: 1px solid var(--yatra-border-color, #e5e7eb);
11447 vertical-align: middle;
11448 }
11449
11450 /* Dark Mode */
11451 .dark .yatra-booking-attributes {
11452 background: var(--yatra-bg-card-dark, #1f2937);
11453 border-color: var(--yatra-border-color-dark, #374151);
11454 }
11455
11456 .dark .yatra-booking-attributes h5 {
11457 color: var(--yatra-text-primary-dark, #f9fafb);
11458 border-bottom-color: var(--yatra-border-color-dark, #374151);
11459 }
11460
11461 .dark .yatra-booking-attribute-item {
11462 border-bottom-color: var(--yatra-border-light-dark, #374151);
11463 }
11464
11465 .dark .yatra-booking-attribute-name {
11466 color: var(--yatra-text-secondary-dark, #9ca3af);
11467 }
11468
11469 .dark .yatra-booking-attribute-value {
11470 color: var(--yatra-text-primary-dark, #f9fafb);
11471 }
11472
11473 /* ============================================
11474 TRIP LISTING ATTRIBUTE FILTERS - MATCHES AGE SUITABILITY DESIGN
11475 ============================================ */
11476
11477 /* Input groups for number/date ranges */
11478 .yatra-input-group {
11479 display: flex;
11480 flex-direction: column;
11481 gap: 12px;
11482 width: 100%;
11483 }
11484
11485 .yatra-input-group input.yatra-filter-input {
11486 width: 100%;
11487 }
11488
11489 /* Attribute filter icons - match Age Suitability size */
11490 .yatra-filter-icon[width="18"] {
11491 width: 18px !important;
11492 height: 18px !important;
11493 object-fit: contain !important;
11494 }
11495
11496 /* Individual attribute items within Trip Attributes section */
11497 .yatra-attribute-item {
11498 margin-bottom: 20px;
11499 padding-bottom: 20px;
11500 border-bottom: 1px solid #f0f0f2;
11501 }
11502
11503 .yatra-attribute-item:last-child {
11504 margin-bottom: 0;
11505 padding-bottom: 0;
11506 border-bottom: none;
11507 }
11508
11509 .yatra-attribute-label {
11510 display: flex;
11511 align-items: center;
11512 gap: 10px;
11513 margin-bottom: 12px;
11514 }
11515
11516 .yatra-attribute-icon {
11517 width: 18px;
11518 height: 18px;
11519 flex-shrink: 0;
11520 object-fit: contain;
11521 display: flex;
11522 align-items: center;
11523 justify-content: center;
11524 }
11525
11526 .yatra-attribute-icon img {
11527 width: 18px !important;
11528 height: 18px !important;
11529 object-fit: contain !important;
11530 }
11531
11532 .yatra-attribute-icon svg {
11533 width: 18px;
11534 height: 18px;
11535 color: #6b7280;
11536 }
11537
11538 .yatra-attribute-name {
11539 font-size: 14px;
11540 font-weight: 600;
11541 color: #374151;
11542 line-height: 1.5;
11543 }
11544
11545 .yatra-attribute-content {
11546 width: 100%;
11547 display: block;
11548 }
11549
11550 .yatra-attribute-content input.yatra-filter-input {
11551 width: 100% !important;
11552 max-width: 100% !important;
11553 box-sizing: border-box;
11554 }
11555
11556 .yatra-attribute-content .yatra-checkbox-group {
11557 width: 100%;
11558 }
11559
11560 .yatra-attribute-content .yatra-input-group {
11561 width: 100%;
11562 }
11563
11564 .yatra-attribute-content .yatra-input-group input {
11565 width: 100% !important;
11566 max-width: 100% !important;
11567 box-sizing: border-box;
11568 }
11569
11570 /* Dark mode for attribute items */
11571 .dark .yatra-attribute-item {
11572 border-bottom-color: #374151;
11573 }
11574
11575 .dark .yatra-attribute-icon svg {
11576 color: #9ca3af;
11577 }
11578
11579 .dark .yatra-attribute-name {
11580 color: #e5e7eb;
11581 }
11582
11583 /* Responsive Design */
11584 @media (max-width: 768px) {
11585 .yatra-attr-filter {
11586 margin: 20px 0;
11587 border-radius: 12px;
11588 }
11589
11590 .yatra-attr-filter__header {
11591 padding: 20px 20px;
11592 flex-direction: column;
11593 align-items: flex-start;
11594 gap: 14px;
11595 }
11596
11597 .yatra-attr-filter__title {
11598 font-size: 16px;
11599 }
11600
11601 .yatra-attr-filter__reset {
11602 width: 100%;
11603 justify-content: center;
11604 }
11605
11606 .yatra-attr-group {
11607 padding: 20px 20px;
11608 }
11609
11610 .yatra-attr-icon {
11611 width: 36px;
11612 height: 36px;
11613 }
11614
11615 .yatra-attr-icon img {
11616 width: 18px;
11617 height: 18px;
11618 }
11619
11620 .yatra-attr-icon svg {
11621 width: 18px;
11622 height: 18px;
11623 }
11624
11625 .yatra-attr-range {
11626 flex-direction: column;
11627 align-items: stretch;
11628 gap: 12px;
11629 }
11630
11631 .yatra-attr-range__sep {
11632 display: none;
11633 }
11634 }
11635
11636 /* Dark Mode - Professional Theme */
11637 .dark .yatra-attr-filter {
11638 background: #1e293b;
11639 border-color: #334155;
11640 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.3);
11641 }
11642
11643 .dark .yatra-attr-filter:hover {
11644 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25), 0 2px 4px rgba(0, 0, 0, 0.35);
11645 }
11646
11647 .dark .yatra-attr-filter__header {
11648 background: #0f172a;
11649 border-bottom-color: #334155;
11650 }
11651
11652 .dark .yatra-attr-filter__title {
11653 color: #f1f5f9;
11654 }
11655
11656 .dark .yatra-attr-filter__reset {
11657 background: #1e293b;
11658 border-color: #475569;
11659 color: #cbd5e1;
11660 }
11661
11662 .dark .yatra-attr-filter__reset:hover {
11663 background: #334155;
11664 border-color: #64748b;
11665 color: #f1f5f9;
11666 }
11667
11668 .dark .yatra-attr-group {
11669 border-bottom-color: #334155;
11670 }
11671
11672 .dark .yatra-attr-group:hover {
11673 background: #1a2332;
11674 }
11675
11676 .dark .yatra-attr-group__label {
11677 border-bottom-color: #334155;
11678 }
11679
11680 .dark .yatra-attr-icon {
11681 background: linear-gradient(135deg, var(--yatra-primary-darker, #1e3a8a) 0%, var(--yatra-primary-darker, #1e40af) 100%);
11682 border-color: var(--yatra-primary, #3b82f6);
11683 box-shadow: 0 1px 2px rgba(59, 130, 246, 0.15);
11684 }
11685
11686 .dark .yatra-attr-icon svg {
11687 color: #60a5fa;
11688 }
11689
11690 .dark .yatra-attr-name {
11691 color: #f1f5f9;
11692 }
11693
11694 .dark .yatra-attr-checkbox:hover {
11695 background: #1a2332;
11696 }
11697
11698 .dark .yatra-attr-checkbox__box {
11699 border-color: #475569;
11700 background: #334155;
11701 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
11702 }
11703
11704 .dark .yatra-attr-checkbox input[type="checkbox"]:checked + .yatra-attr-checkbox__box {
11705 background: var(--yatra-primary, #3b82f6);
11706 border-color: var(--yatra-primary, #3b82f6);
11707 box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
11708 }
11709
11710 .dark .yatra-attr-checkbox:hover .yatra-attr-checkbox__box {
11711 border-color: #64748b;
11712 background: #475569;
11713 }
11714
11715 .dark .yatra-attr-checkbox input[type="checkbox"]:checked:hover + .yatra-attr-checkbox__box {
11716 background: var(--yatra-primary-dark, #2563eb);
11717 border-color: var(--yatra-primary-dark, #2563eb);
11718 }
11719
11720 .dark .yatra-attr-checkbox__label {
11721 color: #e2e8f0;
11722 }
11723
11724 .dark .yatra-attr-range__sep {
11725 color: #64748b;
11726 }
11727
11728 .dark .yatra-attr-input {
11729 background: #334155;
11730 border-color: #475569;
11731 color: #f1f5f9;
11732 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
11733 }
11734
11735 .dark .yatra-attr-input:hover {
11736 border-color: #64748b;
11737 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
11738 }
11739
11740 .dark .yatra-attr-input:focus {
11741 border-color: var(--yatra-primary, #3b82f6);
11742 background: #334155;
11743 box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15), 0 1px 2px rgba(0, 0, 0, 0.2);
11744 }
11745
11746 .dark .yatra-attr-input::placeholder {
11747 color: #64748b;
11748 }
11749
11750 /* Legacy compatibility - keeping minimal old styles */
11751 .yatra-attribute-input-wrap input {
11752 border: none;
11753 background: transparent;
11754 font-size: 15px;
11755 font-weight: 600;
11756 color: var(--yatra-text-primary, #0f172a);
11757 padding: 0;
11758 outline: none;
11759 }
11760
11761 .yatra-attribute-input-wrap input::placeholder {
11762 color: rgba(15, 23, 42, 0.35);
11763 }
11764
11765 .yatra-attribute-input-separator {
11766 font-size: 22px;
11767 color: rgba(15, 23, 42, 0.2);
11768 font-weight: 200;
11769 }
11770
11771 /* Responsive */
11772 @media (max-width: 960px) {
11773 .yatra-attributes-panel__head {
11774 flex-direction: column;
11775 align-items: flex-start;
11776 }
11777 }
11778
11779 @media (max-width: 640px) {
11780 .yatra-attributes-panel__body {
11781 grid-template-columns: 1fr;
11782 padding: 24px;
11783 }
11784
11785 .yatra-attributes-panel__head {
11786 padding: 24px;
11787 }
11788
11789 .yatra-attribute-input-row {
11790 flex-direction: column;
11791 }
11792
11793 .yatra-attribute-input-separator {
11794 display: none;
11795 }
11796 }
11797
11798 /* Dark Mode */
11799 .dark .yatra-attributes-panel {
11800 background: #0b1120;
11801 border-color: rgba(148, 163, 184, 0.12);
11802 box-shadow: 0 25px 60px rgba(0, 0, 0, 0.35);
11803 }
11804
11805 .dark .yatra-attributes-panel__head {
11806 background: linear-gradient(120deg, #020617 0%, #0f172a 60%, var(--yatra-primary-darker, #1e3a8a) 100%);
11807 }
11808
11809 .dark .yatra-attribute-tile {
11810 background: rgba(15, 23, 42, 0.75);
11811 }
11812
11813 .dark .yatra-attribute-tile:hover {
11814 background: rgba(15, 23, 42, 0.95);
11815 }
11816
11817 .dark .yatra-attribute-tile__name {
11818 color: #e2e8f0;
11819 }
11820
11821 .dark .yatra-attribute-tile__type {
11822 color: rgba(148, 163, 184, 0.8);
11823 }
11824
11825 .dark .yatra-attribute-pill {
11826 background: rgba(15, 23, 42, 0.45);
11827 color: #cbd5e5;
11828 border-color: rgba(148, 163, 184, 0.2);
11829 }
11830
11831 .dark .yatra-attribute-pill input:checked ~ span {
11832 color: #60a5fa;
11833 }
11834
11835 .dark .yatra-attribute-input-row {
11836 background: rgba(15, 23, 42, 0.45);
11837 border-color: rgba(148, 163, 184, 0.2);
11838 }
11839
11840 .dark .yatra-attribute-input-wrap label {
11841 color: rgba(148, 163, 184, 0.7);
11842 }
11843
11844 .dark .yatra-attribute-input-wrap input {
11845 color: #f1f5f9;
11846 }
11847
11848 .dark .yatra-attribute-input-wrap input::placeholder {
11849 color: rgba(148, 163, 184, 0.4);
11850 }
11851
11852 .dark .yatra-attribute-input-separator {
11853 color: rgba(148, 163, 184, 0.2);
11854 }
11855
11856 /* Legacy attribute styles below - keeping for backward compatibility */
11857 .yatra-attribute-range-inputs {
11858 display: flex;
11859 align-items: center;
11860 gap: 12px;
11861 background: #f8fafc;
11862 border: 1px solid #e2e8f0;
11863 border-radius: 10px;
11864 padding: 16px;
11865 }
11866
11867 .yatra-attribute-input-group {
11868 flex: 1;
11869 min-width: 0;
11870 }
11871
11872 .yatra-attribute-input-label {
11873 display: block;
11874 font-size: 12px;
11875 font-weight: 600;
11876 color: #718096;
11877 margin-bottom: 6px;
11878 text-transform: uppercase;
11879 letter-spacing: 0.5px;
11880 }
11881
11882 .yatra-attribute-input {
11883 width: 100%;
11884 padding: 10px 14px;
11885 background: #ffffff;
11886 border: 2px solid #e2e8f0;
11887 border-radius: 8px;
11888 font-size: 14px;
11889 font-weight: 500;
11890 color: #2d3748;
11891 transition: all 0.2s ease;
11892 }
11893
11894 .yatra-attribute-input:focus {
11895 outline: none;
11896 border-color: #667eea;
11897 box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
11898 }
11899
11900 .yatra-attribute-range-separator {
11901 font-size: 16px;
11902 font-weight: 600;
11903 color: #a0aec0;
11904 margin-top: 20px;
11905 }
11906
11907 /* Responsive Design for New Attribute Filter */
11908 @media (max-width: 768px) {
11909 .yatra-attributes-filter-header {
11910 flex-direction: column;
11911 gap: 12px;
11912 text-align: center;
11913 padding: 16px;
11914 }
11915
11916 .yatra-attributes-filter-title {
11917 justify-content: center;
11918 }
11919
11920 .yatra-attributes-filter-wrapper .yatra-attributes-grid {
11921 grid-template-columns: 1fr;
11922 gap: 16px;
11923 }
11924
11925 .yatra-attribute-card-header {
11926 padding: 16px;
11927 gap: 12px;
11928 }
11929
11930 .yatra-attribute-icon-wrapper {
11931 width: 40px;
11932 height: 40px;
11933 }
11934
11935 .yatra-attribute-icon-img {
11936 width: 24px;
11937 height: 24px;
11938 }
11939
11940 .yatra-attribute-icon-svg {
11941 width: 20px;
11942 height: 20px;
11943 }
11944
11945 .yatra-attribute-title {
11946 font-size: 14px;
11947 }
11948
11949 .yatra-attribute-card-body {
11950 padding: 16px;
11951 }
11952
11953 .yatra-attribute-range-inputs {
11954 flex-direction: column;
11955 gap: 12px;
11956 }
11957
11958 .yatra-attribute-range-separator {
11959 display: none;
11960 }
11961 }
11962
11963 @media (max-width: 480px) {
11964 .yatra-attributes-filter-wrapper {
11965 margin: 16px 0;
11966 }
11967
11968 .yatra-attributes-filter-header {
11969 padding: 12px;
11970 }
11971
11972 .yatra-attributes-filter-title h3 {
11973 font-size: 16px;
11974 }
11975
11976 .yatra-attributes-clear-btn {
11977 padding: 6px 12px;
11978 font-size: 13px;
11979 }
11980
11981 .yatra-attribute-card-header {
11982 padding: 12px;
11983 }
11984
11985 .yatra-attribute-card-body {
11986 padding: 12px;
11987 }
11988
11989 .yatra-attribute-option {
11990 padding: 10px 12px;
11991 gap: 10px;
11992 }
11993
11994 .yatra-attribute-option-label {
11995 font-size: 13px;
11996 }
11997
11998 .yatra-attribute-input {
11999 padding: 8px 12px;
12000 font-size: 13px;
12001 }
12002 }
12003
12004 /* Dark mode styles for attribute filters */
12005 .dark .yatra-attribute-item {
12006 background: var(--yatra-bg-secondary-dark, #1f2937);
12007 border-color: var(--yatra-border-color-dark, #374151);
12008 }
12009
12010 .dark .yatra-attribute-item:hover {
12011 background: var(--yatra-bg-card-dark, #1f2937);
12012 border-color: var(--yatra-primary-color-dark, #60a5fa);
12013 box-shadow: 0 2px 8px rgba(96, 165, 250, 0.15);
12014 }
12015
12016 .dark .yatra-attribute-header {
12017 border-bottom-color: var(--yatra-border-color-dark, #374151);
12018 }
12019
12020 .dark .yatra-attribute-svg-icon {
12021 color: var(--yatra-primary-color-dark, #60a5fa);
12022 }
12023
12024 .dark .yatra-attribute-name {
12025 color: var(--yatra-text-primary-dark, #f9fafb);
12026 }
12027
12028 .dark .yatra-attribute-options .yatra-checkbox-label {
12029 background: var(--yatra-bg-card-dark, #1f2937);
12030 border-color: var(--yatra-border-color-dark, #374151);
12031 }
12032
12033 .dark .yatra-attribute-options .yatra-checkbox-label:hover {
12034 background: var(--yatra-primary-light-dark, var(--yatra-primary-darker, #1e3a8a));
12035 border-color: var(--yatra-primary-color-dark, #60a5fa);
12036 box-shadow: 0 1px 4px rgba(96, 165, 250, 0.25);
12037 }
12038
12039 .dark .yatra-attribute-options .yatra-checkbox-label span {
12040 color: var(--yatra-text-primary-dark, #f9fafb);
12041 }
12042
12043 .dark .yatra-attribute-options .yatra-checkbox-label .yatra-filter-count {
12044 background: var(--yatra-bg-secondary-dark, #374151);
12045 color: var(--yatra-text-muted-dark, #9ca3af);
12046 }
12047
12048 .dark .yatra-attribute-options .yatra-price-inputs {
12049 background: var(--yatra-bg-card-dark, #1f2937);
12050 border-color: var(--yatra-border-color-dark, #374151);
12051 }
12052
12053 .dark .yatra-attribute-options .yatra-price-input-label {
12054 color: var(--yatra-text-muted-dark, #9ca3af);
12055 }
12056
12057 .dark .yatra-attribute-options .yatra-price-input {
12058 background: var(--yatra-bg-card-dark, #1f2937);
12059 border-color: var(--yatra-border-color-dark, #374151);
12060 color: var(--yatra-text-primary-dark, #f9fafb);
12061 }
12062
12063 .dark .yatra-attribute-options .yatra-price-input:focus {
12064 border-color: var(--yatra-primary-color-dark, #60a5fa);
12065 box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
12066 }
12067
12068 /* Dark Mode Styles for New Attribute Filter Design */
12069
12070 .dark .yatra-attributes-filter-header {
12071 background: linear-gradient(135deg, #4c1d95 0%, #5b21b6 100%);
12072 border-color: #374151;
12073 }
12074
12075 .dark .yatra-attributes-filter-icon {
12076 background: rgba(255, 255, 255, 0.1);
12077 color: #e9d5ff;
12078 }
12079
12080 .dark .yatra-attributes-filter-title h3 {
12081 color: #f3f4f6;
12082 }
12083
12084 .dark .yatra-attributes-clear-btn {
12085 background: rgba(255, 255, 255, 0.1);
12086 border-color: rgba(255, 255, 255, 0.2);
12087 color: #f3f4f6;
12088 }
12089
12090 .dark .yatra-attributes-clear-btn:hover {
12091 background: rgba(255, 255, 255, 0.2);
12092 }
12093
12094 .dark .yatra-attribute-card {
12095 background: #1f2937;
12096 border-color: #374151;
12097 box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
12098 }
12099
12100 .dark .yatra-attribute-card:hover {
12101 border-color: #8b5cf6;
12102 box-shadow: 0 8px 25px rgba(139, 92, 246, 0.2);
12103 }
12104
12105 .dark .yatra-attribute-card-header {
12106 background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%);
12107 border-bottom-color: #374151;
12108 }
12109
12110 .dark .yatra-attribute-icon-wrapper {
12111 background: #374151;
12112 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
12113 }
12114
12115 .dark .yatra-attribute-icon-svg {
12116 color: #a78bfa;
12117 }
12118
12119 .dark .yatra-attribute-title {
12120 color: #f3f4f6;
12121 }
12122
12123 .dark .yatra-attribute-type {
12124 color: #9ca3af;
12125 }
12126
12127
12128 .dark .yatra-attribute-option {
12129 background: #374151;
12130 border-color: #4b5563;
12131 }
12132
12133 .dark .yatra-attribute-option:hover {
12134 background: #4b5563;
12135 border-color: #6b7280;
12136 }
12137
12138 .dark .yatra-attribute-option-indicator {
12139 background: #1f2937;
12140 border-color: #6b7280;
12141 }
12142
12143 .dark .yatra-attribute-option input[type="checkbox"]:checked + .yatra-attribute-option-indicator {
12144 background: #8b5cf6;
12145 border-color: #8b5cf6;
12146 }
12147
12148 .dark .yatra-attribute-option-label {
12149 color: #e5e7eb;
12150 }
12151
12152 .dark .yatra-attribute-range-inputs {
12153 background: #374151;
12154 border-color: #4b5563;
12155 }
12156
12157 .dark .yatra-attribute-input-label {
12158 color: #9ca3af;
12159 }
12160
12161 .dark .yatra-attribute-input {
12162 background: #1f2937;
12163 border-color: #4b5563;
12164 color: #f3f4f6;
12165 }
12166
12167 .dark .yatra-attribute-input:focus {
12168 border-color: #8b5cf6;
12169 box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.15);
12170 }
12171
12172 .dark .yatra-attribute-range-separator {
12173 color: #6b7280;
12174 }
12175
12176 /* End of Attribute Filter Styles */
12177
12178
12179 /* ============================================
12180 ITINERARY SECTION STYLES
12181 ============================================ */
12182
12183 /* Empty State */
12184 .yatra-empty-itinerary {
12185 text-align: left;
12186 padding: 32px 20px;
12187 background: #f8fafc;
12188 border-radius: 12px;
12189 border: 1px solid #e2e8f0;
12190 }
12191
12192 .yatra-trip-section#itinerary .yatra-empty-itinerary {
12193 text-align: left;
12194 }
12195
12196 .yatra-empty-state-icon {
12197 margin-bottom: 16px;
12198 color: #6b7280;
12199 }
12200
12201 .yatra-empty-state-title {
12202 font-size: 1.35rem;
12203 font-weight: 600;
12204 color: #374151;
12205 margin-bottom: 10px;
12206 text-align: left;
12207 }
12208
12209 .yatra-empty-state-description {
12210 color: #6b7280;
12211 max-width: none;
12212 margin: 0;
12213 line-height: 1.6;
12214 text-align: left;
12215 }
12216
12217 /* Gallery Styles - Itinerary Specific */
12218 .yatra-entry-gallery {
12219 margin-top: 20px;
12220 }
12221
12222 .yatra-gallery-title {
12223 display: flex;
12224 align-items: center;
12225 gap: 8px;
12226 font-size: 0.875rem;
12227 font-weight: 600;
12228 color: #374151;
12229 margin-bottom: 12px;
12230 }
12231
12232 .yatra-gallery-grid {
12233 display: grid;
12234 grid-template-columns: repeat(6, 1fr);
12235 gap: 8px;
12236 width: 100%;
12237 }
12238
12239 .yatra-gallery-item-link {
12240 display: block;
12241 text-decoration: none;
12242 }
12243
12244 .yatra-gallery-item {
12245 position: relative;
12246 aspect-ratio: 1;
12247 border-radius: 8px;
12248 overflow: hidden;
12249 cursor: pointer;
12250 transition: opacity 0.2s ease;
12251 background: #f3f4f6;
12252 }
12253
12254 .yatra-gallery-item:hover {
12255 opacity: 0.8;
12256 }
12257
12258 .yatra-media-card {
12259 position: relative;
12260 width: 100%;
12261 height: 100%;
12262 border-radius: 8px;
12263 overflow: hidden;
12264 }
12265
12266 .yatra-media-card img {
12267 width: 100%;
12268 height: 100%;
12269 object-fit: cover;
12270 display: block;
12271 }
12272
12273 /* Itinerary Specific Overlay Styles */
12274 .yatra-entry-gallery .yatra-media-overlay {
12275 position: absolute;
12276 top: 50%;
12277 left: 50%;
12278 transform: translate(-50%, -50%);
12279 width: 16px;
12280 height: 16px;
12281 background: rgba(0, 0, 0, 0.4);
12282 border-radius: 50%;
12283 display: flex;
12284 align-items: center;
12285 justify-content: center;
12286 pointer-events: auto;
12287 cursor: pointer;
12288 transition: all 0.2s ease;
12289 }
12290
12291 .yatra-entry-gallery .yatra-media-overlay:hover {
12292 background: rgba(0, 0, 0, 0.5);
12293 transform: translate(-50%, -50%) scale(1.1);
12294 }
12295
12296 /* Smaller YouTube button for itinerary gallery - same as hero */
12297 .yatra-entry-gallery .yatra-youtube-play-button svg {
12298 width: 24px !important;
12299 height: 24px !important;
12300 }
12301
12302 .yatra-entry-gallery .yatra-youtube-play-button svg circle {
12303 fill: rgba(255, 0, 0, 0.9) !important;
12304 stroke: white !important;
12305 stroke-width: 1px !important;
12306 }
12307
12308 .yatra-entry-gallery .yatra-youtube-play-button svg path {
12309 fill: white !important;
12310 }
12311
12312 /* Remove separate video section - videos now in gallery */
12313 .yatra-entry-video {
12314 display: none;
12315 }
12316
12317
12318 /* Responsive styles */
12319 @media (max-width: 768px) {
12320 .yatra-gallery-grid {
12321 grid-template-columns: repeat(4, 1fr);
12322 gap: 6px;
12323 width: 100%;
12324 }
12325
12326 .yatra-entry-gallery .yatra-media-overlay {
12327 width: 12px;
12328 height: 12px;
12329 }
12330
12331 .yatra-entry-gallery .yatra-youtube-play-button svg {
12332 width: 18px !important;
12333 height: 18px !important;
12334 }
12335
12336 .yatra-entry-gallery .yatra-youtube-play-button svg circle {
12337 fill: rgba(255, 0, 0, 0.9) !important;
12338 stroke: white !important;
12339 stroke-width: 0.5px !important;
12340 }
12341
12342 .yatra-entry-gallery .yatra-youtube-play-button svg path {
12343 fill: white !important;
12344 }
12345 }
12346
12347 @media (max-width: 480px) {
12348 .yatra-gallery-grid {
12349 grid-template-columns: repeat(3, 1fr);
12350 gap: 4px;
12351 width: 100%;
12352 }
12353
12354 .yatra-entry-gallery .yatra-media-overlay {
12355 width: 10px;
12356 height: 10px;
12357 }
12358
12359 .yatra-entry-gallery .yatra-youtube-play-button svg {
12360 width: 14px !important;
12361 height: 14px !important;
12362 }
12363
12364 .yatra-entry-gallery .yatra-youtube-play-button svg circle {
12365 fill: rgba(255, 0, 0, 0.9) !important;
12366 stroke: white !important;
12367 stroke-width: 0.5px !important;
12368 }
12369
12370 .yatra-entry-gallery .yatra-youtube-play-button svg path {
12371 fill: white !important;
12372 }
12373 }
12374
12375
12376 /* Responsive styles */
12377 @media (max-width: 768px) {
12378 .yatra-gallery-grid {
12379 grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
12380 gap: 8px;
12381 }
12382
12383 .yatra-play-overlay {
12384 width: 40px;
12385 height: 40px;
12386 }
12387 }
12388
12389 /* Trip Details Grid Styles */
12390 .yatra-trip-details-grid {
12391 display: grid;
12392 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
12393 gap: 24px;
12394 margin-top: 24px;
12395 }
12396
12397 .yatra-detail-item {
12398 display: flex;
12399 align-items: flex-start;
12400 padding: 16px;
12401 background: #f9fafb;
12402 border-radius: 8px;
12403 border: 1px solid #e5e7eb;
12404 transition: all 0.2s ease;
12405 }
12406
12407 .yatra-detail-item:hover {
12408 background: #f3f4f6;
12409 border-color: #d1d5db;
12410 transform: translateY(-2px);
12411 }
12412
12413 .yatra-detail-label {
12414 display: flex;
12415 align-items: center;
12416 gap: 8px;
12417 font-weight: 600;
12418 color: #374151;
12419 font-size: 0.875rem;
12420 margin-bottom: 4px;
12421 flex-shrink: 0;
12422 min-width: 140px;
12423 }
12424
12425 .yatra-detail-icon {
12426 width: 16px;
12427 height: 16px;
12428 color: #6b7280;
12429 }
12430
12431 .yatra-detail-value {
12432 color: #111827;
12433 font-size: 0.95rem;
12434 line-height: 1.5;
12435 flex: 1;
12436 }
12437
12438 .yatra-no-details {
12439 text-align: center;
12440 padding: 48px 24px;
12441 background: #f9fafb;
12442 border-radius: 8px;
12443 border: 1px solid #e5e7eb;
12444 margin-top: 24px;
12445 }
12446
12447 .yatra-no-details p {
12448 color: #6b7280;
12449 font-size: 1rem;
12450 margin: 0;
12451 }
12452
12453 /* Responsive styles for trip details */
12454 @media (max-width: 768px) {
12455 .yatra-trip-details-grid {
12456 grid-template-columns: 1fr;
12457 gap: 16px;
12458 margin-top: 16px;
12459 }
12460
12461 .yatra-detail-item {
12462 padding: 12px;
12463 flex-direction: column;
12464 align-items: flex-start;
12465 }
12466
12467 .yatra-detail-label {
12468 min-width: auto;
12469 margin-bottom: 8px;
12470 }
12471
12472 .yatra-detail-value {
12473 font-size: 0.9rem;
12474 }
12475 }
12476
12477 @media (max-width: 480px) {
12478 .yatra-trip-details-grid {
12479 gap: 12px;
12480 }
12481
12482 .yatra-detail-item {
12483 padding: 10px;
12484 }
12485
12486 .yatra-no-details {
12487 padding: 32px 16px;
12488 }
12489 }
12490
12491 /* Sticky Navigation Icon Styles */
12492 .yatra-sticky-nav-icon {
12493 width: 18px;
12494 height: 18px;
12495 color: #6b7280;
12496 transition: color 0.2s ease;
12497 }
12498
12499 .yatra-sticky-nav-item:hover .yatra-sticky-nav-icon {
12500 color: var(--yatra-primary, #3b82f6);
12501 }
12502
12503 .yatra-sticky-nav-item.active .yatra-sticky-nav-icon {
12504 color: var(--yatra-primary, #3b82f6);
12505 }
12506
12507 /* Hero Season Styles */
12508 .yatra-hero-season {
12509 display: flex;
12510 align-items: center;
12511 gap: 6px;
12512 color: #6b7280;
12513 font-size: 15px;
12514 font-weight: 500;
12515 }
12516
12517 /* FAQ Toggle Button Styles */
12518 .faq-toggle-btn {
12519 display: flex;
12520 align-items: center;
12521 gap: 8px;
12522 padding: 8px 16px;
12523 background: #ffffff;
12524 border: 1px solid #e5e7eb;
12525 border-radius: 6px;
12526 color: #374151;
12527 font-size: 14px;
12528 font-weight: 500;
12529 cursor: pointer;
12530 transition: all 0.2s ease;
12531 }
12532
12533 .faq-toggle-btn:hover {
12534 background: #f9fafb;
12535 border-color: #d1d5db;
12536 color: #111827;
12537 }
12538
12539 .faq-toggle-btn .toggle-icon {
12540 width: 16px;
12541 height: 16px;
12542 color: #6b7280;
12543 }
12544
12545 .faq-toggle-btn .toggle-text {
12546 font-size: 14px;
12547 font-weight: 500;
12548 }
12549
12550 /* ============================================
12551 SIMILAR ADVENTURES SECTION
12552 Custom styling for similar trips carousel cards
12553 ============================================ */
12554
12555 /* Similar Trips Card Container */
12556 .yatra-similar-trip-card {
12557 background: #ffffff;
12558 border-radius: 12px;
12559 overflow: hidden;
12560 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
12561 transition: all 0.3s ease;
12562 height: 100%;
12563 display: flex;
12564 flex-direction: column;
12565 }
12566
12567 .yatra-similar-trip-card:hover {
12568 transform: translateY(-4px);
12569 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
12570 }
12571
12572 /* Similar Trips Image Section */
12573 .yatra-similar-trip-image {
12574 position: relative;
12575 width: 100%;
12576 height: 200px;
12577 overflow: hidden;
12578 }
12579
12580 .yatra-similar-trip-image img {
12581 width: 100%;
12582 height: 100%;
12583 object-fit: cover;
12584 transition: transform 0.3s ease;
12585 }
12586
12587 .yatra-similar-trip-card:hover .yatra-similar-trip-image img {
12588 transform: scale(1.05);
12589 }
12590
12591 .yatra-similar-image-link {
12592 display: block;
12593 width: 100%;
12594 height: 100%;
12595 text-decoration: none;
12596 }
12597
12598 /* Similar Trips Discount Badge */
12599 .yatra-similar-discount-badge {
12600 position: absolute;
12601 top: 12px;
12602 left: 12px;
12603 background: #ef4444;
12604 color: white;
12605 padding: 6px 12px;
12606 border-radius: 20px;
12607 font-size: 12px;
12608 font-weight: 600;
12609 text-transform: uppercase;
12610 letter-spacing: 0.5px;
12611 z-index: 5;
12612 box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
12613 }
12614
12615 /* Similar Trips Favorite Button */
12616 .yatra-similar-favorite-btn {
12617 position: absolute;
12618 top: 12px;
12619 right: 12px;
12620 background: rgba(255, 255, 255, 0.9);
12621 border: none;
12622 width: 36px;
12623 height: 36px;
12624 border-radius: 50%;
12625 display: flex;
12626 align-items: center;
12627 justify-content: center;
12628 cursor: pointer;
12629 transition: all 0.3s ease;
12630 z-index: 5;
12631 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
12632 }
12633
12634 .yatra-similar-favorite-btn:hover {
12635 background: #ffffff;
12636 transform: scale(1.1);
12637 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
12638 }
12639
12640 .yatra-similar-favorite-btn svg {
12641 color: #6b7280;
12642 transition: color 0.3s ease;
12643 }
12644
12645 .yatra-similar-favorite-btn:hover svg {
12646 color: #ef4444;
12647 }
12648
12649 /* Similar Trips Difficulty Overlay */
12650 .yatra-similar-difficulty-overlay {
12651 position: absolute;
12652 bottom: 12px;
12653 right: 12px;
12654 background: rgba(0, 0, 0, 0.7);
12655 color: white;
12656 padding: 6px 10px;
12657 border-radius: 6px;
12658 font-size: 12px;
12659 font-weight: 500;
12660 display: flex;
12661 align-items: center;
12662 gap: 4px;
12663 z-index: 5;
12664 backdrop-filter: blur(4px);
12665 }
12666
12667 .similar-difficulty-icon {
12668 width: 14px;
12669 height: 14px;
12670 flex-shrink: 0;
12671 }
12672
12673 .similar-difficulty-icon.fa-solid,
12674 .similar-difficulty-icon.fa-regular {
12675 width: auto;
12676 height: auto;
12677 font-size: 14px;
12678 line-height: 1;
12679 display: inline-flex;
12680 align-items: center;
12681 justify-content: center;
12682 }
12683
12684 /* Similar Trips Content Section */
12685 .yatra-similar-trip-content {
12686 padding: 20px;
12687 flex: 1;
12688 display: flex;
12689 flex-direction: column;
12690 }
12691
12692 /* Similar Trips Destinations */
12693 .yatra-similar-destinations {
12694 display: flex;
12695 align-items: center;
12696 gap: 6px;
12697 margin-bottom: 12px;
12698 font-size: 14px;
12699 color: #6b7280;
12700 }
12701
12702 .similar-location-icon {
12703 width: 14px;
12704 height: 14px;
12705 flex-shrink: 0;
12706 color: #9ca3af;
12707 }
12708
12709 .similar-destination-link {
12710 color: #6b7280;
12711 text-decoration: none;
12712 transition: color 0.3s ease;
12713 }
12714
12715 .similar-destination-link:hover {
12716 color: var(--yatra-primary, #3b82f6);
12717 }
12718
12719 /* Similar Trips Title */
12720 .yatra-similar-trip-title {
12721 margin: 0 0 16px 0;
12722 font-size: 18px;
12723 font-weight: 600;
12724 line-height: 1.4;
12725 color: #111827;
12726 }
12727
12728 .yatra-similar-title-link {
12729 color: #111827;
12730 text-decoration: none;
12731 transition: color 0.3s ease;
12732 }
12733
12734 .yatra-similar-title-link:hover {
12735 color: var(--yatra-primary, #3b82f6);
12736 }
12737
12738 /* Similar Trips Stats */
12739 .yatra-similar-trip-stats {
12740 display: flex;
12741 gap: 16px;
12742 margin-bottom: 16px;
12743 flex-wrap: wrap;
12744 }
12745
12746 .yatra-similar-stat {
12747 display: flex;
12748 align-items: center;
12749 gap: 6px;
12750 font-size: 13px;
12751 color: #6b7280;
12752 }
12753
12754 .similar-stat-icon {
12755 width: 14px;
12756 height: 14px;
12757 flex-shrink: 0;
12758 color: #9ca3af;
12759 }
12760
12761 /* Similar Trips Categories */
12762 .yatra-similar-categories {
12763 display: flex;
12764 gap: 8px;
12765 margin-bottom: 20px;
12766 flex-wrap: wrap;
12767 }
12768
12769 .yatra-similar-category-tag {
12770 background: #f3f4f6;
12771 color: #374151;
12772 padding: 4px 10px;
12773 border-radius: 12px;
12774 font-size: 12px;
12775 font-weight: 500;
12776 text-decoration: none;
12777 transition: all 0.3s ease;
12778 }
12779
12780 .yatra-similar-category-tag:hover {
12781 background: #e5e7eb;
12782 color: #111827;
12783 }
12784
12785 /* Similar Trips Footer */
12786 .yatra-similar-trip-footer {
12787 margin-top: auto;
12788 display: flex;
12789 align-items: center;
12790 justify-content: space-between;
12791 gap: 12px;
12792 }
12793
12794 /* Similar Trips Price — compact single-line row, baseline-aligned */
12795 .yatra-similar-price {
12796 display: flex;
12797 flex-direction: row;
12798 align-items: center;
12799 min-width: 0;
12800 flex: 1;
12801 }
12802
12803 .yatra-similar-trip-price {
12804 display: flex;
12805 flex-wrap: wrap;
12806 align-items: baseline;
12807 column-gap: 6px;
12808 row-gap: 2px;
12809 line-height: 1.25;
12810 color: #111827;
12811 }
12812
12813 .yatra-similar-price-label {
12814 font-size: 11px;
12815 font-weight: 600;
12816 color: #6b7280;
12817 letter-spacing: 0.02em;
12818 flex-shrink: 0;
12819 }
12820
12821 .yatra-similar-price-amount {
12822 font-size: 15px;
12823 font-weight: 700;
12824 color: #111827;
12825 }
12826
12827 .yatra-similar-price-contact {
12828 font-size: 13px;
12829 font-weight: 500;
12830 color: #6b7280;
12831 }
12832
12833 .yatra-similar-original-price {
12834 font-size: 11px;
12835 font-weight: 500;
12836 color: #9ca3af;
12837 text-decoration: line-through;
12838 margin-left: 0;
12839 }
12840
12841 /* Similar Trips View Button */
12842 .yatra-similar-view-btn {
12843 background: var(--yatra-primary, #3b82f6);
12844 color: white;
12845 border: none;
12846 padding: 10px 18px;
12847 border-radius: 6px;
12848 font-size: 14px;
12849 font-weight: 600;
12850 text-decoration: none;
12851 transition: all 0.3s ease;
12852 white-space: nowrap;
12853 flex-shrink: 0;
12854 }
12855
12856 .yatra-similar-view-btn:hover {
12857 background: var(--yatra-primary-dark, #2563eb);
12858 transform: translateY(-1px);
12859 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
12860 }
12861
12862 /* ============================================
12863 SIMILAR ADVENTURES RESPONSIVE DESIGN
12864 ============================================ */
12865
12866 @media (max-width: 768px) {
12867 .yatra-similar-trip-card {
12868 margin-bottom: 16px;
12869 }
12870
12871 .yatra-similar-trip-image {
12872 height: 160px;
12873 }
12874
12875 .yatra-similar-trip-content {
12876 padding: 16px;
12877 }
12878
12879 .yatra-similar-trip-title {
12880 font-size: 16px;
12881 }
12882
12883 .yatra-similar-trip-stats {
12884 gap: 12px;
12885 }
12886
12887 .yatra-similar-trip-footer {
12888 flex-direction: column;
12889 align-items: flex-start;
12890 gap: 12px;
12891 }
12892
12893 .yatra-similar-price {
12894 width: 100%;
12895 }
12896
12897 .yatra-similar-view-btn {
12898 width: 100%;
12899 text-align: center;
12900 }
12901 }
12902
12903 @media (max-width: 480px) {
12904 .yatra-similar-trip-image {
12905 height: 140px;
12906 }
12907
12908 .yatra-similar-trip-content {
12909 padding: 12px;
12910 }
12911
12912 .yatra-similar-trip-title {
12913 font-size: 15px;
12914 margin-bottom: 12px;
12915 }
12916
12917 .yatra-similar-trip-stats {
12918 gap: 8px;
12919 font-size: 12px;
12920 }
12921
12922 .yatra-similar-categories {
12923 margin-bottom: 16px;
12924 }
12925 }
12926
12927 /* ============================================
12928 DOWNLOADS SECTION
12929 List view with download icons
12930 ============================================ */
12931
12932 /* Downloads Container */
12933 .yatra-downloads-container {
12934 margin-top: 24px;
12935 }
12936
12937 .yatra-downloads-list {
12938 display: flex;
12939 flex-direction: column;
12940 gap: 16px;
12941 margin-top: 20px;
12942 }
12943
12944 /* Download Item - List View */
12945 .yatra-download-item {
12946 display: flex;
12947 align-items: center;
12948 gap: 16px;
12949 background: #ffffff;
12950 border: 1px solid #e5e7eb;
12951 border-radius: 12px;
12952 padding: 20px;
12953 transition: all 0.3s ease;
12954 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
12955 }
12956
12957 .yatra-download-item:hover {
12958 transform: translateY(-1px);
12959 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
12960 border-color: #d1d5db;
12961 }
12962
12963 /* Download Icon Section */
12964 .yatra-download-icon {
12965 display: flex;
12966 align-items: center;
12967 justify-content: center;
12968 width: 60px;
12969 height: 60px;
12970 min-width: 60px;
12971 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
12972 border-radius: 12px;
12973 color: white;
12974 flex-shrink: 0;
12975 }
12976
12977 .yatra-download-file-icon {
12978 width: 28px;
12979 height: 28px;
12980 color: white;
12981 }
12982
12983 /* Download Content */
12984 .yatra-download-content {
12985 flex: 1;
12986 min-width: 0;
12987 }
12988
12989 .yatra-download-title {
12990 margin: 0 0 8px 0;
12991 font-size: 16px;
12992 font-weight: 600;
12993 line-height: 1.4;
12994 color: #111827;
12995 }
12996
12997 .yatra-download-description {
12998 margin: 0 0 12px 0;
12999 font-size: 14px;
13000 line-height: 1.5;
13001 color: #6b7280;
13002 }
13003
13004 /* Download Meta */
13005 .yatra-download-meta {
13006 display: flex;
13007 align-items: center;
13008 gap: 12px;
13009 flex-wrap: wrap;
13010 font-size: 12px;
13011 color: #9ca3af;
13012 }
13013
13014 .yatra-download-file-size,
13015 .yatra-download-file-type {
13016 background: #f3f4f6;
13017 padding: 3px 8px;
13018 border-radius: 4px;
13019 font-weight: 500;
13020 }
13021
13022 /* Download Action */
13023 .yatra-download-action {
13024 flex-shrink: 0;
13025 margin-left: auto;
13026 }
13027
13028 .yatra-download-btn {
13029 display: flex;
13030 align-items: center;
13031 gap: 8px;
13032 background: var(--yatra-primary, #3b82f6);
13033 color: white;
13034 border: none;
13035 padding: 10px 20px;
13036 border-radius: 8px;
13037 font-size: 14px;
13038 font-weight: 600;
13039 cursor: pointer;
13040 text-decoration: none;
13041 transition: all 0.3s ease;
13042 white-space: nowrap;
13043 }
13044
13045 .yatra-download-btn:hover {
13046 background: var(--yatra-primary-dark, #2563eb);
13047 transform: translateY(-1px);
13048 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
13049 color: white;
13050 }
13051
13052 .yatra-download-btn-icon {
13053 width: 16px;
13054 height: 16px;
13055 flex-shrink: 0;
13056 }
13057
13058 .yatra-download-btn-disabled {
13059 background: #9ca3af;
13060 color: #6b7280;
13061 cursor: not-allowed;
13062 opacity: 0.7;
13063 }
13064
13065 .yatra-download-btn-disabled:hover {
13066 background: #9ca3af;
13067 transform: none;
13068 box-shadow: none;
13069 color: #6b7280;
13070 }
13071
13072 /* Responsive Design */
13073 @media (max-width: 768px) {
13074 .yatra-downloads-list {
13075 gap: 12px;
13076 }
13077
13078 .yatra-download-item {
13079 flex-direction: column;
13080 align-items: flex-start;
13081 gap: 12px;
13082 padding: 16px;
13083 }
13084
13085 .yatra-download-icon {
13086 width: 50px;
13087 height: 50px;
13088 min-width: 50px;
13089 }
13090
13091 .yatra-download-file-icon {
13092 width: 24px;
13093 height: 24px;
13094 }
13095
13096 .yatra-download-action {
13097 margin-left: 0;
13098 width: 100%;
13099 }
13100
13101 .yatra-download-btn {
13102 width: 100%;
13103 justify-content: center;
13104 }
13105 }
13106
13107 @media (max-width: 480px) {
13108 .yatra-download-item {
13109 padding: 12px;
13110 }
13111
13112 .yatra-download-title {
13113 font-size: 15px;
13114 }
13115
13116 .yatra-download-description {
13117 font-size: 13px;
13118 }
13119
13120 .yatra-download-meta {
13121 font-size: 11px;
13122 gap: 8px;
13123 }
13124 }
13125
13126 /* End of Downloads Section Styles */
13127
13128 /* ============================================
13129 SINGLE TRIP — Tab sections (moved from partials; token-based spacing)
13130 ============================================ */
13131
13132 /* --- What makes this trip special --- */
13133 #what-makes-special .yatra-trip-special-container {
13134 margin: 0 auto;
13135 }
13136
13137 #what-makes-special .yatra-trip-special-content {
13138 background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
13139 border-radius: 16px;
13140 padding: clamp(var(--yatra-container-padding), 5vw, 2.5rem);
13141 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
13142 position: relative;
13143 overflow: hidden;
13144 }
13145
13146 #what-makes-special .yatra-trip-special-content::before {
13147 content: '';
13148 position: absolute;
13149 top: -50%;
13150 right: -50%;
13151 width: 200%;
13152 height: 200%;
13153 background: radial-gradient(circle, rgba(251, 191, 36, 0.1) 0%, transparent 70%);
13154 animation: yatra-special-float 6s ease-in-out infinite;
13155 }
13156
13157 @keyframes yatra-special-float {
13158 0%, 100% { transform: translateY(0) rotate(0deg); }
13159 50% { transform: translateY(-20px) rotate(180deg); }
13160 }
13161
13162 #what-makes-special .yatra-special-features {
13163 position: relative;
13164 z-index: 1;
13165 }
13166
13167 #what-makes-special .yatra-special-feature-item {
13168 display: flex;
13169 align-items: flex-start;
13170 gap: var(--yatra-small-gap);
13171 margin-bottom: var(--yatra-element-gap);
13172 padding: var(--yatra-small-gap);
13173 background: rgba(255, 255, 255, 0.7);
13174 border-radius: 12px;
13175 transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
13176 }
13177
13178 #what-makes-special .yatra-special-feature-item:hover {
13179 background: rgba(255, 255, 255, 0.9);
13180 transform: translateY(-2px);
13181 box-shadow: 0 8px 25px -5px rgba(251, 191, 36, 0.2);
13182 }
13183
13184 #what-makes-special .yatra-special-feature-item:last-child {
13185 margin-bottom: 0;
13186 }
13187
13188 #what-makes-special .yatra-special-feature-icon {
13189 flex-shrink: 0;
13190 width: 24px;
13191 height: 24px;
13192 color: #f59e0b;
13193 margin-top: 2px;
13194 }
13195
13196 #what-makes-special .yatra-special-feature-text {
13197 font-size: 1rem;
13198 line-height: 1.6;
13199 color: #78350f;
13200 font-weight: 500;
13201 }
13202
13203 #what-makes-special .yatra-special-badge {
13204 display: inline-flex;
13205 align-items: center;
13206 gap: var(--yatra-mini-gap);
13207 margin-top: var(--yatra-element-gap);
13208 padding: var(--yatra-tiny-gap) var(--yatra-element-gap);
13209 background: #f59e0b;
13210 color: #fff;
13211 border-radius: 25px;
13212 font-weight: 600;
13213 font-size: 0.875rem;
13214 box-shadow: 0 4px 6px -1px rgba(245, 158, 11, 0.3);
13215 }
13216
13217 #what-makes-special .yatra-badge-icon {
13218 width: 16px;
13219 height: 16px;
13220 }
13221
13222 #what-makes-special .yatra-special-features .yatra-no-content {
13223 color: #92400e;
13224 font-style: italic;
13225 text-align: center;
13226 padding: 2rem;
13227 background: rgba(255, 255, 255, 0.5);
13228 border-radius: 12px;
13229 }
13230
13231 @media (prefers-color-scheme: dark) {
13232 #what-makes-special .yatra-trip-special-content {
13233 background: linear-gradient(135deg, #451a03 0%, #78350f 100%);
13234 }
13235
13236 #what-makes-special .yatra-special-feature-item {
13237 background: rgba(30, 41, 59, 0.7);
13238 }
13239
13240 #what-makes-special .yatra-special-feature-item:hover {
13241 background: rgba(30, 41, 59, 0.9);
13242 }
13243
13244 #what-makes-special .yatra-special-feature-text {
13245 color: #fbbf24;
13246 }
13247
13248 #what-makes-special .yatra-special-badge {
13249 background: #f59e0b;
13250 color: #451a03;
13251 }
13252
13253 #what-makes-special .yatra-special-features .yatra-no-content {
13254 color: #fbbf24;
13255 background: rgba(30, 41, 59, 0.5);
13256 }
13257 }
13258
13259 @media (max-width: 768px) {
13260 #what-makes-special .yatra-special-feature-item {
13261 padding: var(--yatra-tiny-gap);
13262 gap: var(--yatra-tiny-gap);
13263 }
13264
13265 #what-makes-special .yatra-special-feature-icon {
13266 width: 20px;
13267 height: 20px;
13268 }
13269
13270 #what-makes-special .yatra-special-feature-text {
13271 font-size: 0.9rem;
13272 }
13273 }
13274
13275 /* --- Trip story --- */
13276 #trip-story .yatra-trip-story-container {
13277 margin: 0 auto;
13278 }
13279
13280 #trip-story .yatra-trip-story-content {
13281 background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
13282 border-radius: 16px;
13283 padding: clamp(var(--yatra-container-padding), 5vw, 2.5rem);
13284 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
13285 position: relative;
13286 overflow: hidden;
13287 }
13288
13289 #trip-story .yatra-trip-story-content::before {
13290 content: '"';
13291 position: absolute;
13292 top: -20px;
13293 left: var(--yatra-element-gap);
13294 font-size: 120px;
13295 color: #e2e8f0;
13296 font-family: Georgia, serif;
13297 z-index: 0;
13298 }
13299
13300 #trip-story .yatra-trip-story-text {
13301 position: relative;
13302 z-index: 1;
13303 font-size: 1.125rem;
13304 line-height: 1.8;
13305 color: #475569;
13306 }
13307
13308 #trip-story .yatra-trip-story-text p {
13309 margin-bottom: 1.5rem;
13310 }
13311
13312 #trip-story .yatra-trip-story-text p:last-child {
13313 margin-bottom: 0;
13314 }
13315
13316 #trip-story .yatra-trip-story-text h1,
13317 #trip-story .yatra-trip-story-text h2,
13318 #trip-story .yatra-trip-story-text h3 {
13319 color: #1e293b;
13320 margin-top: 2rem;
13321 margin-bottom: 1rem;
13322 }
13323
13324 #trip-story .yatra-trip-story-text h1 { font-size: 1.875rem; }
13325 #trip-story .yatra-trip-story-text h2 { font-size: 1.5rem; }
13326 #trip-story .yatra-trip-story-text h3 { font-size: 1.25rem; }
13327
13328 #trip-story .yatra-trip-story-text ul,
13329 #trip-story .yatra-trip-story-text ol {
13330 margin: 1.5rem 0;
13331 padding-left: 2rem;
13332 }
13333
13334 #trip-story .yatra-trip-story-text li {
13335 margin-bottom: 0.5rem;
13336 color: #475569;
13337 }
13338
13339 #trip-story .yatra-trip-story-text blockquote {
13340 border-left: 4px solid var(--yatra-primary, #3b82f6);
13341 padding-left: 1.5rem;
13342 margin: 1.5rem 0;
13343 font-style: italic;
13344 color: #64748b;
13345 }
13346
13347 #trip-story .yatra-trip-story-text strong {
13348 color: #1e293b;
13349 font-weight: 600;
13350 }
13351
13352 #trip-story .yatra-trip-story-text em {
13353 color: #64748b;
13354 font-style: italic;
13355 }
13356
13357 #trip-story .yatra-trip-story-meta {
13358 margin-top: var(--yatra-element-gap);
13359 text-align: center;
13360 }
13361
13362 #trip-story .yatra-story-highlight {
13363 display: inline-flex;
13364 align-items: center;
13365 gap: var(--yatra-mini-gap);
13366 padding: var(--yatra-mini-gap) var(--yatra-small-gap);
13367 background: #fef3c7;
13368 border-radius: 20px;
13369 color: #92400e;
13370 font-size: 0.875rem;
13371 font-weight: 500;
13372 }
13373
13374 #trip-story .yatra-story-icon {
13375 width: 16px;
13376 height: 16px;
13377 }
13378
13379 #trip-story .yatra-trip-story-text > .yatra-no-content {
13380 color: #94a3b8;
13381 font-style: italic;
13382 text-align: center;
13383 padding: 2rem;
13384 }
13385
13386 @media (prefers-color-scheme: dark) {
13387 #trip-story .yatra-trip-story-content {
13388 background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
13389 }
13390
13391 #trip-story .yatra-trip-story-content::before {
13392 color: #475569;
13393 }
13394
13395 #trip-story .yatra-trip-story-text {
13396 color: #cbd5e1;
13397 }
13398
13399 #trip-story .yatra-trip-story-text h1,
13400 #trip-story .yatra-trip-story-text h2,
13401 #trip-story .yatra-trip-story-text h3 {
13402 color: #f8fafc;
13403 }
13404
13405 #trip-story .yatra-trip-story-text li {
13406 color: #cbd5e1;
13407 }
13408
13409 #trip-story .yatra-trip-story-text blockquote {
13410 color: #94a3b8;
13411 border-left-color: #60a5fa;
13412 }
13413
13414 #trip-story .yatra-trip-story-text strong {
13415 color: #f8fafc;
13416 }
13417
13418 #trip-story .yatra-trip-story-text em {
13419 color: #94a3b8;
13420 }
13421
13422 #trip-story .yatra-story-highlight {
13423 background: #451a03;
13424 color: #fbbf24;
13425 }
13426
13427 #trip-story .yatra-trip-story-text > .yatra-no-content {
13428 color: #64748b;
13429 }
13430 }
13431
13432 @media (max-width: 768px) {
13433 #trip-story .yatra-trip-story-text {
13434 font-size: 1rem;
13435 }
13436
13437 #trip-story .yatra-trip-story-content::before {
13438 font-size: 80px;
13439 top: -10px;
13440 left: var(--yatra-tiny-gap);
13441 }
13442 }
13443
13444 /* --- Testimonials tab --- */
13445 .yatra-testimonials-content {
13446 margin-top: var(--yatra-section-gap);
13447 }
13448
13449 .yatra-testimonial-avatar {
13450 width: 52px;
13451 height: 52px;
13452 border-radius: 50%;
13453 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
13454 color: #fff;
13455 display: flex;
13456 align-items: center;
13457 justify-content: center;
13458 font-weight: 600;
13459 font-size: 18px;
13460 flex-shrink: 0;
13461 }
13462
13463 .yatra-testimonials-empty {
13464 text-align: center;
13465 padding: clamp(3rem, 10vw, 5rem) var(--yatra-container-padding);
13466 background: #f8fafc;
13467 border-radius: 16px;
13468 border: 2px dashed #e2e8f0;
13469 }
13470
13471 .yatra-testimonials-empty-icon {
13472 margin-bottom: var(--yatra-element-gap);
13473 }
13474
13475 .yatra-testimonials-empty-svg {
13476 width: 80px;
13477 height: 80px;
13478 color: #cbd5e1;
13479 margin: 0 auto;
13480 }
13481
13482 .yatra-testimonials-empty-title {
13483 font-size: 1.5rem;
13484 font-weight: 600;
13485 color: #1e293b;
13486 margin-bottom: var(--yatra-tiny-gap);
13487 }
13488
13489 .yatra-testimonials-empty-text {
13490 color: #64748b;
13491 margin-bottom: var(--yatra-section-gap);
13492 max-width: 400px;
13493 margin-left: auto;
13494 margin-right: auto;
13495 }
13496
13497 .yatra-testimonials-empty-cta {
13498 display: inline-flex;
13499 align-items: center;
13500 gap: var(--yatra-mini-gap);
13501 background: var(--yatra-primary, #3b82f6);
13502 color: #fff;
13503 text-decoration: none;
13504 padding: var(--yatra-tiny-gap) var(--yatra-element-gap);
13505 border-radius: 8px;
13506 font-weight: 500;
13507 transition: background-color 0.3s ease;
13508 }
13509
13510 .yatra-testimonials-empty-cta:hover {
13511 background: var(--yatra-primary-dark, #2563eb);
13512 color: #fff;
13513 }
13514
13515 @media (prefers-color-scheme: dark) {
13516 .yatra-testimonials-empty {
13517 background: #1e293b;
13518 border-color: #334155;
13519 }
13520
13521 .yatra-testimonials-empty-title {
13522 color: #f8fafc;
13523 }
13524
13525 .yatra-testimonials-empty-text {
13526 color: #cbd5e1;
13527 }
13528 }
13529
13530 @media (max-width: 768px) {
13531 .yatra-testimonials-empty {
13532 padding: clamp(2.5rem, 8vw, 3.75rem) var(--yatra-container-padding);
13533 }
13534 }
13535
13536 /* --- FAQ accordion --- */
13537 #faq .faq-header {
13538 display: flex;
13539 justify-content: space-between;
13540 align-items: center;
13541 margin-bottom: var(--yatra-element-gap);
13542 flex-wrap: wrap;
13543 gap: var(--yatra-small-gap);
13544 }
13545
13546 #faq .faq-controls {
13547 display: flex;
13548 gap: var(--yatra-mini-gap);
13549 }
13550
13551 #faq .faq-toggle-btn,
13552 #faq .faq-btn {
13553 display: inline-flex;
13554 align-items: center;
13555 gap: 6px;
13556 padding: 6px var(--yatra-tiny-gap);
13557 background: #fff;
13558 border: 1px solid #e5e7eb;
13559 border-radius: 6px;
13560 font-size: 13px;
13561 color: #6b7280;
13562 cursor: pointer;
13563 transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
13564 }
13565
13566 #faq .faq-toggle-btn:hover,
13567 #faq .faq-btn:hover {
13568 background: #f9fafb;
13569 border-color: #d1d5db;
13570 color: #374151;
13571 }
13572
13573 #faq .faq-toggle-btn svg,
13574 #faq .faq-btn svg {
13575 flex-shrink: 0;
13576 }
13577
13578 #faq .faq-btn-arrow {
13579 color: #9ca3af;
13580 transition: transform 0.3s ease;
13581 }
13582
13583 #faq .faq-container {
13584 margin: 0 auto;
13585 border: 1px solid #e5e7eb;
13586 border-radius: 8px;
13587 overflow: hidden;
13588 }
13589
13590 #faq .faq-item {
13591 border-bottom: 1px solid #e5e7eb;
13592 }
13593
13594 #faq .faq-item:last-child {
13595 border-bottom: none;
13596 }
13597
13598 #faq .faq-question {
13599 width: 100%;
13600 background: none;
13601 border: none;
13602 padding: var(--yatra-small-gap) var(--yatra-element-gap);
13603 text-align: left;
13604 font-size: 15px;
13605 font-weight: 500;
13606 color: #374151;
13607 cursor: pointer;
13608 display: flex;
13609 justify-content: space-between;
13610 align-items: center;
13611 transition: background-color 0.2s ease;
13612 }
13613
13614 #faq .faq-question:hover {
13615 background: #f9fafb;
13616 }
13617
13618 #faq .faq-item.active .faq-question {
13619 background: #f9fafb;
13620 font-weight: 600;
13621 }
13622
13623 #faq .faq-arrow {
13624 color: #9ca3af;
13625 transition: transform 0.3s ease;
13626 flex-shrink: 0;
13627 margin-left: var(--yatra-tiny-gap);
13628 }
13629
13630 #faq .faq-item.active .faq-arrow {
13631 color: #6b7280;
13632 transform: rotate(180deg);
13633 }
13634
13635 #faq .faq-toggle-btn .collapse-icon {
13636 display: none;
13637 }
13638
13639 #faq .faq-toggle-btn.is-all-expanded .expand-icon {
13640 display: none;
13641 }
13642
13643 #faq .faq-toggle-btn.is-all-expanded .collapse-icon {
13644 display: block;
13645 }
13646
13647 #faq .faq-answer {
13648 max-height: 0;
13649 overflow: hidden;
13650 transition: max-height 0.35s ease;
13651 background: #f9fafb;
13652 padding: 0 var(--yatra-element-gap);
13653 color: #6b7280;
13654 line-height: 1.5;
13655 font-size: 14px;
13656 }
13657
13658 #faq .faq-item.active .faq-answer {
13659 max-height: min(4000px, 200vh);
13660 padding: 0 var(--yatra-element-gap) var(--yatra-small-gap) var(--yatra-element-gap);
13661 }
13662
13663 #faq .faq-answer p {
13664 margin: 0 0 var(--yatra-mini-gap) 0;
13665 }
13666
13667 #faq .faq-answer p:last-child {
13668 margin-bottom: 0;
13669 }
13670
13671 #faq .faq-answer ul,
13672 #faq .faq-answer ol {
13673 margin: var(--yatra-mini-gap) 0;
13674 padding-left: var(--yatra-small-gap);
13675 }
13676
13677 #faq .faq-answer li {
13678 margin-bottom: var(--yatra-micro-gap);
13679 }
13680
13681 @media (max-width: 768px) {
13682 #faq .faq-header {
13683 flex-direction: column;
13684 align-items: flex-start;
13685 gap: var(--yatra-tiny-gap);
13686 }
13687
13688 #faq .faq-controls {
13689 width: 100%;
13690 justify-content: flex-start;
13691 }
13692
13693 #faq .faq-question {
13694 padding: 14px var(--yatra-small-gap);
13695 font-size: 14px;
13696 }
13697
13698 #faq .faq-answer {
13699 font-size: 13px;
13700 }
13701
13702 #faq .faq-item.active .faq-answer {
13703 padding: 0 var(--yatra-small-gap) 14px var(--yatra-small-gap);
13704 }
13705 }
13706
13707 /* ============================================
13708 MOBILE-INPUT HYGIENE (single-trip booking widget)
13709 ============================================
13710 Applied last so it wins specificity ties against earlier desktop
13711 rules without needing !important. Two concerns:
13712
13713 1. iOS Safari auto-zoom: any <input>/<select>/<textarea> with
13714 computed font-size < 16px triggers a 1.25x viewport zoom on
13715 focus. The trip page's sticky booking widget often contains
13716 a date / traveler / discount field — zoom + scroll-jump
13717 breaks the user mid-typing.
13718
13719 2. Tap-target comfort: bump the rendered control height to ~48px
13720 so thumbs in portrait have room. Apple HIG minimum is 44pt;
13721 48dp (Material) is more forgiving and matches the public
13722 booking form (booking.css).
13723 ============================================ */
13724 @media (max-width: 768px) {
13725 .yatra-trip-sidebar input,
13726 .yatra-trip-sidebar select,
13727 .yatra-trip-sidebar textarea,
13728 .yatra-booking-card input,
13729 .yatra-booking-card select,
13730 .yatra-booking-card textarea {
13731 font-size: 16px;
13732 min-height: 48px;
13733 padding-top: 12px;
13734 padding-bottom: 12px;
13735 }
13736
13737 .yatra-trip-sidebar textarea,
13738 .yatra-booking-card textarea {
13739 min-height: 96px;
13740 }
13741
13742 /*
13743 * The "Book now" / "Reserve" CTA in the booking card needs the
13744 * same comfortable size. Buttons inside the card sometimes
13745 * inherit smaller padding from utility classes.
13746 */
13747 .yatra-booking-card button,
13748 .yatra-booking-card .yatra-book-now-btn,
13749 .yatra-booking-card .yatra-trip-cta {
13750 min-height: 48px;
13751 font-size: 16px;
13752 }
13753 }
13754