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

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

13,755 lines 277.4 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 border: none !important;
5687 outline: none !important;
5688 box-shadow: none !important;
5689 }
5690
5691 /* Ensure enquiry form datepicker doesn't have double border */
5692 .yatra-enquiry-field .yatra-booking-field-select .flatpickr-input {
5693 border: none !important;
5694 outline: none !important;
5695 box-shadow: none !important;
5696 }
5697
5698 .yatra-select-arrow {
5699 position: absolute;
5700 right: 12px;
5701 width: 20px;
5702 height: 20px;
5703 color: #6b7280;
5704 pointer-events: none;
5705 flex-shrink: 0;
5706 }
5707
5708 .yatra-booking-enquiry-button {
5709 width: 100%;
5710 padding: 14px 24px;
5711 background: transparent;
5712 color: var(--yatra-primary, #3b82f6);
5713 border: 2px solid var(--yatra-primary, #3b82f6);
5714 border-radius: 8px;
5715 font-size: 15px;
5716 font-weight: 600;
5717 cursor: pointer;
5718 transition: all 0.3s ease;
5719 margin-top: 8px;
5720 display: flex;
5721 align-items: center;
5722 justify-content: center;
5723 gap: 8px;
5724 }
5725
5726 .yatra-booking-enquiry-button svg {
5727 flex-shrink: 0;
5728 }
5729
5730 .yatra-booking-enquiry-button:hover {
5731 background: var(--yatra-primary, #3b82f6);
5732 color: #fff;
5733 border-color: var(--yatra-primary-dark, #2563eb);
5734 }
5735
5736 .yatra-booking-button {
5737 width: 100%;
5738 padding: 16px 24px;
5739 background: var(--yatra-primary, #3b82f6);
5740 color: #fff;
5741 border: none;
5742 border-radius: 8px;
5743 font-size: 16px;
5744 font-weight: 600;
5745 cursor: pointer;
5746 transition: all 0.3s ease;
5747 margin-top: 8px;
5748 display: flex;
5749 align-items: center;
5750 justify-content: center;
5751 gap: 8px;
5752 }
5753
5754 .yatra-booking-button svg {
5755 flex-shrink: 0;
5756 }
5757
5758 .yatra-booking-button:hover {
5759 background: var(--yatra-primary-dark, #2563eb);
5760 transform: translateY(-1px);
5761 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
5762 }
5763
5764 .yatra-booking-button:focus-visible,
5765 .yatra-booking-enquiry-button:focus-visible,
5766 .yatra-booking-field-select:focus-within {
5767 outline: none;
5768 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
5769 box-shadow: 0 0 0 3px color-mix(in srgb, var(--yatra-primary, #3b82f6) 22%, transparent);
5770 }
5771
5772 /* Compact Availability Alert */
5773 .yatra-booking-availability-compact {
5774 padding: 8px 12px;
5775 background: #fef3c7;
5776 border: 1px solid #fde68a;
5777 border-radius: 6px;
5778 margin-bottom: 20px;
5779 font-size: 12px;
5780 color: #92400e;
5781 text-align: center;
5782 line-height: 1.4;
5783 }
5784
5785 .yatra-booking-availability-compact strong {
5786 font-weight: 700;
5787 color: #78350f;
5788 }
5789
5790
5791 /* Single Trust Signal */
5792 .yatra-booking-trust {
5793 margin-top: 20px;
5794 padding-top: 20px;
5795 border-top: 1px solid #e5e7eb;
5796 display: flex;
5797 align-items: flex-start;
5798 gap: 10px;
5799 }
5800
5801 .yatra-booking-trust-icon {
5802 flex-shrink: 0;
5803 margin-top: 2px;
5804 }
5805
5806 .yatra-booking-trust-icon svg {
5807 width: 18px;
5808 height: 18px;
5809 color: #10b981;
5810 }
5811
5812 .yatra-booking-trust-text {
5813 font-size: 13px;
5814 color: #4b5563;
5815 line-height: 1.5;
5816 }
5817
5818 .yatra-booking-trust-text strong {
5819 color: #111827;
5820 font-weight: 600;
5821 }
5822
5823 /* ============================================
5824 ENQUIRY MODAL
5825 ============================================ */
5826 .yatra-enquiry-modal {
5827 position: fixed;
5828 top: 0;
5829 left: 0;
5830 right: 0;
5831 bottom: 0;
5832 z-index: 99999;
5833 display: none !important;
5834 align-items: center;
5835 justify-content: center;
5836 padding: 20px;
5837 visibility: hidden;
5838 opacity: 0;
5839 transition: opacity 0.3s ease, visibility 0.3s ease;
5840 }
5841
5842 .yatra-enquiry-modal.active {
5843 display: flex !important;
5844 visibility: visible !important;
5845 opacity: 1 !important;
5846 }
5847
5848 .yatra-enquiry-modal-overlay {
5849 position: absolute;
5850 top: 0;
5851 left: 0;
5852 right: 0;
5853 bottom: 0;
5854 background: rgba(0, 0, 0, 0.6);
5855 backdrop-filter: blur(4px);
5856 }
5857
5858 .yatra-enquiry-modal-content {
5859 position: relative;
5860 background: #fff;
5861 border-radius: 16px;
5862 max-width: 700px;
5863 width: 100%;
5864 max-height: 90vh;
5865 overflow-y: auto;
5866 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
5867 z-index: 1;
5868 }
5869
5870 .yatra-enquiry-modal-close {
5871 position: absolute;
5872 top: 16px;
5873 right: 16px;
5874 width: 40px;
5875 height: 40px;
5876 border: none;
5877 background: #f3f4f6;
5878 border-radius: 50%;
5879 display: flex;
5880 align-items: center;
5881 justify-content: center;
5882 cursor: pointer;
5883 transition: all 0.2s ease;
5884 z-index: 10;
5885 color: #6b7280;
5886 padding:0;
5887 }
5888
5889 .yatra-enquiry-modal-close:hover {
5890 background: #e5e7eb;
5891 color: #111827;
5892 transform: rotate(90deg);
5893 }
5894
5895 .yatra-enquiry-modal-close svg {
5896 width: 20px;
5897 height: 20px;
5898 }
5899
5900 .yatra-enquiry-modal-header {
5901 padding: 32px 32px 24px;
5902 border-bottom: 1px solid #e5e7eb;
5903 }
5904
5905 .yatra-enquiry-modal-title {
5906 font-size: 24px;
5907 font-weight: 700;
5908 color: #111827;
5909 margin: 0 0 8px 0;
5910 }
5911
5912 .yatra-enquiry-modal-subtitle {
5913 font-size: 14px;
5914 color: #6b7280;
5915 margin: 0;
5916 line-height: 1.5;
5917 }
5918
5919 .yatra-enquiry-form {
5920 padding: 24px 32px 32px;
5921 }
5922
5923 /* Enquiry form message box */
5924 .yatra-enquiry-message {
5925 margin-bottom: 16px;
5926 padding: 12px 16px;
5927 border-radius: 8px;
5928 font-size: 14px;
5929 line-height: 1.5;
5930 }
5931
5932 .yatra-enquiry-message p {
5933 margin: 0;
5934 }
5935
5936 .yatra-enquiry-message-success {
5937 background-color: #dcfce7;
5938 color: #166534;
5939 border: 1px solid #bbf7d0;
5940 }
5941
5942 .yatra-enquiry-message-error {
5943 background-color: #fef2f2;
5944 color: #dc2626;
5945 border: 1px solid #fecaca;
5946 }
5947
5948 .yatra-enquiry-form-grid {
5949 display: grid;
5950 grid-template-columns: 1fr 1fr 1fr;
5951 gap: 16px;
5952 margin-bottom: 20px;
5953 }
5954
5955 .yatra-enquiry-field {
5956 margin-bottom: 20px;
5957 }
5958
5959 .yatra-enquiry-field-group {
5960 display: grid;
5961 grid-template-columns: 1fr 1fr;
5962 gap: 16px;
5963 margin-bottom: 20px;
5964 }
5965
5966 /* Enquiry form date and travelers selectors */
5967 .yatra-enquiry-field .yatra-booking-field-select {
5968 margin-top: 0;
5969 }
5970
5971 .yatra-enquiry-label {
5972 display: block;
5973 font-size: 14px;
5974 font-weight: 600;
5975 color: #374151;
5976 margin-bottom: 8px;
5977 }
5978
5979 .yatra-enquiry-required {
5980 color: #ef4444;
5981 }
5982
5983 .yatra-enquiry-input,
5984 .yatra-enquiry-textarea ,
5985 .yatra-enquiry-input[type="text"],
5986 .yatra-enquiry-input[type="email"],
5987 .yatra-enquiry-input[type="tel"]{
5988 width: 100%;
5989 padding: 12px 16px;
5990 border: 1px solid #d1d5db;
5991 border-radius: 8px;
5992 font-size: 15px;
5993 font-family: inherit;
5994 color: #111827;
5995 background: #fff;
5996 transition: all 0.2s ease;
5997 box-sizing: border-box;
5998 }
5999
6000 .yatra-enquiry-input:hover,
6001 .yatra-enquiry-textarea:hover {
6002 border-color: #cbd5e1;
6003 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 28%, #d1d5db);
6004 }
6005
6006 .yatra-enquiry-input:focus,
6007 .yatra-enquiry-textarea:focus {
6008 outline: none;
6009 border-color: var(--yatra-primary, #3b82f6);
6010 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
6011 box-shadow: 0 0 0 3px color-mix(in srgb, var(--yatra-primary, #3b82f6) 14%, transparent);
6012 }
6013
6014 .yatra-enquiry-textarea {
6015 resize: vertical;
6016 min-height: 80px;
6017 height: 80px;
6018 line-height: 1.6;
6019 }
6020
6021 /* Enquiry form responsive - handled in main responsive section below */
6022
6023 @media (max-width: 640px) {
6024 .yatra-enquiry-form-grid {
6025 grid-template-columns: 1fr;
6026 }
6027
6028 .yatra-enquiry-field-group {
6029 grid-template-columns: 1fr;
6030 }
6031 }
6032
6033 .yatra-enquiry-input::placeholder,
6034 .yatra-enquiry-textarea::placeholder {
6035 color: #9ca3af;
6036 }
6037
6038 .yatra-enquiry-actions {
6039 display: flex;
6040 gap: 12px;
6041 margin-top: 32px;
6042 padding-top: 24px;
6043 border-top: 1px solid #e5e7eb;
6044 }
6045
6046 /* Match sidebar / Check Availability: same primary CTA class + flex row layout */
6047 .yatra-enquiry-actions .yatra-booking-button.yatra-enquiry-submit {
6048 width: auto;
6049 flex: 1;
6050 min-width: 0;
6051 margin-top: 0;
6052 }
6053
6054 .yatra-enquiry-cancel {
6055 flex: 1;
6056 padding: 14px 24px;
6057 border: 1px solid #d1d5db;
6058 border-radius: 8px;
6059 background: #fff;
6060 color: #374151;
6061 font-size: 15px;
6062 font-weight: 600;
6063 cursor: pointer;
6064 transition: all 0.2s ease;
6065 display: flex;
6066 align-items: center;
6067 justify-content: center;
6068 gap: 6px;
6069 }
6070
6071 .yatra-enquiry-cancel svg {
6072 flex-shrink: 0;
6073 }
6074
6075 .yatra-enquiry-cancel:hover {
6076 background: #f9fafb;
6077 border-color: #9ca3af;
6078 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 38%, #9ca3af);
6079 }
6080
6081 /* Standalone submit (no booking CTA class): full primary styling */
6082 .yatra-enquiry-submit:not(.yatra-booking-button) {
6083 flex: 1;
6084 padding: 14px 24px;
6085 border: none;
6086 border-radius: 8px;
6087 background: var(--yatra-primary, #3b82f6);
6088 color: #fff;
6089 font-size: 15px;
6090 font-weight: 600;
6091 cursor: pointer;
6092 transition: all 0.2s ease;
6093 display: flex;
6094 align-items: center;
6095 justify-content: center;
6096 gap: 6px;
6097 }
6098
6099 .yatra-enquiry-submit svg {
6100 flex-shrink: 0;
6101 }
6102
6103 .yatra-enquiry-submit:not(.yatra-booking-button):hover {
6104 background: var(--yatra-primary-dark, #2563eb);
6105 transform: translateY(-1px);
6106 box-shadow: 0 4px 12px color-mix(in srgb, var(--yatra-primary, #3b82f6) 40%, transparent);
6107 }
6108
6109 .yatra-enquiry-submit:not(.yatra-booking-button):active {
6110 transform: translateY(0);
6111 }
6112
6113 .yatra-enquiry-actions .yatra-booking-button.yatra-enquiry-submit:hover {
6114 box-shadow: 0 4px 12px color-mix(in srgb, var(--yatra-primary, #3b82f6) 40%, transparent);
6115 }
6116
6117 @media (max-width: 640px) {
6118 .yatra-enquiry-modal-content {
6119 max-width: 100%;
6120 border-radius: 12px;
6121 }
6122
6123 .yatra-enquiry-modal-header {
6124 padding: 24px 20px 20px;
6125 }
6126
6127 .yatra-enquiry-form {
6128 padding: 20px;
6129 }
6130
6131 .yatra-enquiry-field-group {
6132 grid-template-columns: 1fr;
6133 }
6134
6135 .yatra-enquiry-actions {
6136 flex-direction: column;
6137 }
6138 }
6139
6140 /* ============================================
6141 ADDITIONAL SERVICES MODAL (Yatra Pro)
6142 Matches .yatra-enquiry-modal + booking / theme tokens
6143 ============================================ */
6144 .yatra-services-modal {
6145 position: fixed;
6146 top: 0;
6147 left: 0;
6148 right: 0;
6149 bottom: 0;
6150 z-index: 100000;
6151 display: none !important;
6152 align-items: center;
6153 justify-content: center;
6154 padding: 20px;
6155 visibility: hidden;
6156 opacity: 0;
6157 transition: opacity 0.3s ease, visibility 0.3s ease;
6158 }
6159
6160 .yatra-services-modal.active {
6161 display: flex !important;
6162 visibility: visible !important;
6163 opacity: 1 !important;
6164 }
6165
6166 .yatra-services-modal-overlay {
6167 position: absolute;
6168 top: 0;
6169 left: 0;
6170 right: 0;
6171 bottom: 0;
6172 background: rgba(0, 0, 0, 0.6);
6173 backdrop-filter: blur(4px);
6174 }
6175
6176 .yatra-services-modal-container {
6177 position: relative;
6178 z-index: 1;
6179 width: 100%;
6180 max-width: 560px;
6181 max-height: 90vh;
6182 animation: yatra-services-modal-in 0.28s ease-out;
6183 }
6184
6185 @keyframes yatra-services-modal-in {
6186 from {
6187 opacity: 0;
6188 transform: translateY(16px);
6189 }
6190 to {
6191 opacity: 1;
6192 transform: translateY(0);
6193 }
6194 }
6195
6196 .yatra-services-modal-content {
6197 position: relative;
6198 background: #fff;
6199 border-radius: 16px;
6200 width: 100%;
6201 max-height: 90vh;
6202 overflow: hidden;
6203 display: flex;
6204 flex-direction: column;
6205 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.28);
6206 }
6207
6208 .yatra-services-modal-close {
6209 position: absolute;
6210 top: 16px;
6211 right: 16px;
6212 width: 40px;
6213 height: 40px;
6214 border: none;
6215 background: #f3f4f6;
6216 border-radius: 50%;
6217 display: flex;
6218 align-items: center;
6219 justify-content: center;
6220 cursor: pointer;
6221 transition: all 0.2s ease;
6222 z-index: 10;
6223 color: #6b7280;
6224 padding: 0;
6225 }
6226
6227 .yatra-services-modal-close:hover {
6228 background: #e5e7eb;
6229 color: #111827;
6230 transform: rotate(90deg);
6231 }
6232
6233 .yatra-services-modal-close svg {
6234 width: 20px;
6235 height: 20px;
6236 }
6237
6238 .yatra-services-modal-header {
6239 display: flex;
6240 align-items: flex-start;
6241 gap: 16px;
6242 padding: 28px 72px 22px 32px;
6243 border-bottom: 1px solid #e5e7eb;
6244 }
6245
6246 .yatra-services-modal-icon {
6247 flex-shrink: 0;
6248 width: 48px;
6249 height: 48px;
6250 background: var(--yatra-primary, #3b82f6);
6251 border-radius: 12px;
6252 display: flex;
6253 align-items: center;
6254 justify-content: center;
6255 color: #fff;
6256 box-shadow: 0 4px 14px color-mix(in srgb, var(--yatra-primary, #3b82f6) 35%, transparent);
6257 }
6258
6259 .yatra-services-modal-title-wrap {
6260 flex: 1;
6261 min-width: 0;
6262 padding-top: 2px;
6263 }
6264
6265 .yatra-services-modal-title {
6266 margin: 0 0 8px 0;
6267 font-size: 22px;
6268 font-weight: 700;
6269 color: #111827;
6270 line-height: 1.25;
6271 }
6272
6273 .yatra-services-modal-subtitle {
6274 margin: 0;
6275 font-size: 14px;
6276 color: #6b7280;
6277 line-height: 1.5;
6278 }
6279
6280 .yatra-services-modal-body {
6281 flex: 1;
6282 overflow-y: auto;
6283 padding: 20px 32px;
6284 }
6285
6286 .yatra-services-modal-list {
6287 display: flex;
6288 flex-direction: column;
6289 gap: 12px;
6290 }
6291
6292 .yatra-services-loading {
6293 display: flex;
6294 align-items: center;
6295 justify-content: center;
6296 gap: 12px;
6297 padding: 36px 16px;
6298 color: #6b7280;
6299 font-size: 14px;
6300 }
6301
6302 .yatra-services-modal .yatra-spin {
6303 animation: yatra-services-spin 0.9s linear infinite;
6304 }
6305
6306 @keyframes yatra-services-spin {
6307 from {
6308 transform: rotate(0deg);
6309 }
6310 to {
6311 transform: rotate(360deg);
6312 }
6313 }
6314
6315 .yatra-service-modal-item {
6316 background: #f9fafb;
6317 border: 1px solid #e5e7eb;
6318 border-radius: 12px;
6319 padding: 16px 18px;
6320 cursor: pointer;
6321 transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
6322 }
6323
6324 .yatra-service-modal-item:hover {
6325 border-color: color-mix(in srgb, var(--yatra-primary, #3b82f6) 45%, #e5e7eb);
6326 background: #fff;
6327 box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
6328 }
6329
6330 .yatra-service-modal-item.selected {
6331 border-color: var(--yatra-primary, #3b82f6);
6332 background: color-mix(in srgb, var(--yatra-primary, #3b82f6) 6%, #fff);
6333 box-shadow: 0 0 0 1px color-mix(in srgb, var(--yatra-primary, #3b82f6) 25%, transparent);
6334 }
6335
6336 .yatra-service-modal-item.required {
6337 border-color: #fcd34d;
6338 background: #fffbeb;
6339 }
6340
6341 .yatra-service-modal-item.required.selected {
6342 border-color: #f59e0b;
6343 background: #fef3c7;
6344 }
6345
6346 .yatra-service-modal-item-header {
6347 display: flex;
6348 align-items: flex-start;
6349 gap: 14px;
6350 }
6351
6352 .yatra-service-modal-checkbox {
6353 flex-shrink: 0;
6354 width: 22px;
6355 height: 22px;
6356 margin-top: 2px;
6357 }
6358
6359 .yatra-service-modal-checkbox input {
6360 width: 22px;
6361 height: 22px;
6362 accent-color: var(--yatra-primary, #3b82f6);
6363 cursor: pointer;
6364 }
6365
6366 .yatra-service-modal-checkbox input:disabled {
6367 cursor: not-allowed;
6368 opacity: 0.85;
6369 }
6370
6371 .yatra-service-modal-info {
6372 flex: 1;
6373 min-width: 0;
6374 }
6375
6376 .yatra-service-modal-name {
6377 display: flex;
6378 flex-wrap: wrap;
6379 align-items: center;
6380 gap: 8px;
6381 font-size: 15px;
6382 font-weight: 600;
6383 color: #111827;
6384 margin-bottom: 6px;
6385 }
6386
6387 .yatra-service-modal-badge {
6388 display: inline-flex;
6389 align-items: center;
6390 padding: 2px 10px;
6391 font-size: 11px;
6392 font-weight: 600;
6393 border-radius: 9999px;
6394 letter-spacing: 0.02em;
6395 }
6396
6397 .yatra-service-modal-badge.required {
6398 background: #fef3c7;
6399 color: #92400e;
6400 }
6401
6402 .yatra-service-modal-description {
6403 font-size: 13px;
6404 color: #6b7280;
6405 line-height: 1.45;
6406 margin: 0;
6407 }
6408
6409 .yatra-service-modal-price {
6410 flex-shrink: 0;
6411 text-align: right;
6412 }
6413
6414 .yatra-service-modal-price-amount {
6415 font-size: 17px;
6416 font-weight: 700;
6417 color: var(--yatra-primary, #3b82f6);
6418 }
6419
6420 .yatra-service-modal-price-per {
6421 font-size: 12px;
6422 color: #9ca3af;
6423 margin-top: 2px;
6424 }
6425
6426 .yatra-services-modal-footer {
6427 display: flex;
6428 align-items: center;
6429 justify-content: space-between;
6430 gap: 16px;
6431 padding: 18px 32px 22px;
6432 border-top: 1px solid #e5e7eb;
6433 background: #fafafa;
6434 }
6435
6436 .yatra-services-modal-total {
6437 display: flex;
6438 flex-direction: column;
6439 gap: 4px;
6440 }
6441
6442 .yatra-services-total-label {
6443 font-size: 12px;
6444 font-weight: 600;
6445 color: #6b7280;
6446 text-transform: uppercase;
6447 letter-spacing: 0.04em;
6448 }
6449
6450 .yatra-services-total-amount {
6451 font-size: 22px;
6452 font-weight: 700;
6453 color: #111827;
6454 line-height: 1.2;
6455 }
6456
6457 .yatra-services-modal-actions {
6458 display: flex;
6459 flex-wrap: wrap;
6460 gap: 12px;
6461 align-items: center;
6462 }
6463
6464 .yatra-services-skip-btn {
6465 padding: 12px 22px;
6466 font-size: 15px;
6467 font-weight: 600;
6468 color: #374151;
6469 background: #fff;
6470 border: 1px solid #d1d5db;
6471 border-radius: 8px;
6472 cursor: pointer;
6473 transition: all 0.2s ease;
6474 }
6475
6476 .yatra-services-skip-btn:hover:not(:disabled) {
6477 background: #f9fafb;
6478 border-color: #9ca3af;
6479 }
6480
6481 .yatra-services-skip-btn:disabled {
6482 opacity: 0.45;
6483 cursor: not-allowed;
6484 }
6485
6486 .yatra-services-continue-btn {
6487 display: inline-flex;
6488 align-items: center;
6489 justify-content: center;
6490 gap: 8px;
6491 padding: 12px 24px;
6492 font-size: 15px;
6493 font-weight: 600;
6494 color: #fff;
6495 background: var(--yatra-primary, #3b82f6);
6496 border: none;
6497 border-radius: 8px;
6498 cursor: pointer;
6499 transition: all 0.2s ease;
6500 }
6501
6502 .yatra-services-continue-btn:hover:not(:disabled) {
6503 background: var(--yatra-primary-dark, #2563eb);
6504 transform: translateY(-1px);
6505 box-shadow: 0 4px 14px color-mix(in srgb, var(--yatra-primary, #3b82f6) 40%, transparent);
6506 }
6507
6508 .yatra-services-continue-btn:active:not(:disabled) {
6509 transform: translateY(0);
6510 }
6511
6512 .yatra-services-continue-btn:disabled {
6513 opacity: 0.5;
6514 cursor: not-allowed;
6515 transform: none;
6516 }
6517
6518 .yatra-services-empty {
6519 text-align: center;
6520 padding: 40px 20px;
6521 color: #6b7280;
6522 font-size: 14px;
6523 }
6524
6525 .yatra-services-empty-icon {
6526 width: 48px;
6527 height: 48px;
6528 margin: 0 auto 12px;
6529 color: #d1d5db;
6530 }
6531
6532 @media (max-width: 640px) {
6533 .yatra-services-modal {
6534 padding: 12px;
6535 }
6536
6537 .yatra-services-modal-content {
6538 border-radius: 14px;
6539 max-height: 92vh;
6540 }
6541
6542 .yatra-services-modal-header {
6543 padding: 24px 56px 18px 20px;
6544 }
6545
6546 .yatra-services-modal-title {
6547 font-size: 19px;
6548 }
6549
6550 .yatra-services-modal-body {
6551 padding: 16px 20px;
6552 }
6553
6554 .yatra-services-modal-footer {
6555 flex-direction: column;
6556 align-items: stretch;
6557 padding: 16px 20px 20px;
6558 }
6559
6560 .yatra-services-modal-total {
6561 flex-direction: row;
6562 justify-content: space-between;
6563 align-items: baseline;
6564 }
6565
6566 .yatra-services-modal-actions {
6567 width: 100%;
6568 }
6569
6570 .yatra-services-skip-btn,
6571 .yatra-services-continue-btn {
6572 flex: 1;
6573 justify-content: center;
6574 }
6575 }
6576
6577 .yatra-booking-feature-item {
6578 display: flex;
6579 align-items: flex-start;
6580 gap: 12px;
6581 }
6582
6583 .yatra-booking-feature-icon {
6584 flex-shrink: 0;
6585 margin-top: 2px;
6586 }
6587
6588 .yatra-booking-feature-icon svg {
6589 width: 20px;
6590 height: 20px;
6591 color: #10b981;
6592 }
6593
6594 .yatra-booking-feature-content {
6595 flex: 1;
6596 }
6597
6598 .yatra-booking-feature-title {
6599 font-size: 15px;
6600 font-weight: 600;
6601 color: #111827;
6602 margin-bottom: 4px;
6603 }
6604
6605 .yatra-booking-feature-desc {
6606 font-size: 13px;
6607 color: #6b7280;
6608 line-height: 1.5;
6609 }
6610
6611 .yatra-booking-feature-link {
6612 color: var(--yatra-primary, #3b82f6);
6613 text-decoration: none;
6614 font-weight: 500;
6615 }
6616
6617 .yatra-booking-feature-link:hover {
6618 text-decoration: underline;
6619 }
6620
6621 /* ============================================
6622 WEATHER & CLIMATE
6623 ============================================ */
6624 .yatra-weather-info {
6625 background: #f9fafb;
6626 border-radius: 12px;
6627 padding: 24px;
6628 border: 1px solid #e5e7eb;
6629 }
6630
6631 .yatra-weather-card {
6632 margin-bottom: 24px;
6633 }
6634
6635 .yatra-weather-season {
6636 font-size: 18px;
6637 font-weight: 700;
6638 color: #111827;
6639 margin-bottom: 12px;
6640 }
6641
6642 .yatra-weather-desc {
6643 font-size: 15px;
6644 line-height: 1.7;
6645 color: #4b5563;
6646 margin: 0;
6647 }
6648
6649 .yatra-weather-details {
6650 display: grid;
6651 gap: 16px;
6652 }
6653
6654 .yatra-weather-detail-item {
6655 padding: 16px;
6656 background: #fff;
6657 border-radius: 8px;
6658 border: 1px solid #e5e7eb;
6659 }
6660
6661 .yatra-weather-detail-label {
6662 font-size: 14px;
6663 font-weight: 600;
6664 color: #374151;
6665 margin-bottom: 6px;
6666 }
6667
6668 .yatra-weather-detail-value {
6669 font-size: 14px;
6670 color: #6b7280;
6671 line-height: 1.5;
6672 }
6673
6674 /* ============================================
6675 PACKING LIST
6676 ============================================ */
6677 .yatra-packing-list {
6678 display: grid;
6679 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
6680 gap: 24px;
6681 }
6682
6683 .yatra-packing-category {
6684 background: #f9fafb;
6685 border-radius: 12px;
6686 padding: 24px;
6687 border: 1px solid #e5e7eb;
6688 }
6689
6690 .yatra-packing-category-title {
6691 font-size: 18px;
6692 font-weight: 700;
6693 color: #111827;
6694 margin-bottom: 16px;
6695 padding-bottom: 12px;
6696 border-bottom: 2px solid var(--yatra-primary, #3b82f6);
6697 }
6698
6699 .yatra-packing-items {
6700 list-style: none;
6701 padding: 0;
6702 margin: 0;
6703 display: flex;
6704 flex-direction: column;
6705 gap: 10px;
6706 }
6707
6708 .yatra-packing-items li {
6709 font-size: 14px;
6710 color: #4b5563;
6711 line-height: 1.6;
6712 padding-left: 24px;
6713 position: relative;
6714 }
6715
6716 .yatra-packing-items li::before {
6717 content: "\2713";
6718 position: absolute;
6719 left: 0;
6720 color: #10b981;
6721 font-weight: 700;
6722 font-size: 16px;
6723 }
6724
6725 /* ============================================
6726 SIMILAR TRIPS - UNIFIED SPACING
6727 ============================================ */
6728 .yatra-similar-section {
6729 /* Breathing room from reviews (or previous block); section already has bottom rhythm */
6730 padding-top: var(--yatra-section-gap);
6731 padding-bottom: var(--yatra-section-gap);
6732 background: #f8fafc;
6733 margin-top: 0;
6734 border-top: 1px solid var(--yatra-border-color, #e5e7eb);
6735 }
6736
6737 /* Parent .yatra-similar-section already has unified max-width + horizontal padding (see .yatra-single-trip > rules).
6738 Higher specificity than common.css .yatra-similar-section-container legacy rule. */
6739 .yatra-single-trip .yatra-similar-section > .yatra-similar-section-container {
6740 width: 100%;
6741 max-width: none;
6742 margin-left: 0;
6743 margin-right: 0;
6744 padding-left: 0;
6745 padding-right: 0;
6746 }
6747
6748 .yatra-similar-section-header {
6749 display: flex;
6750 align-items: center;
6751 justify-content: space-between;
6752 margin-bottom: var(--yatra-element-gap);
6753 }
6754
6755 .yatra-similar-section-title {
6756 display: flex;
6757 align-items: center;
6758 gap: var(--yatra-tiny-gap);
6759 font-size: 28px;
6760 font-weight: 700;
6761 color: #111827;
6762 margin: 0;
6763 }
6764
6765 .yatra-similar-section-icon {
6766 width: 32px;
6767 height: 32px;
6768 color: var(--yatra-primary, #3b82f6);
6769 }
6770
6771 /* Carousel Navigation */
6772 .yatra-carousel-nav {
6773 display: flex;
6774 gap: 8px;
6775 }
6776
6777 .yatra-carousel-btn {
6778 width: 44px;
6779 height: 44px;
6780 display: flex;
6781 align-items: center;
6782 justify-content: center;
6783 background: #fff;
6784 border: 1px solid #e5e7eb;
6785 border-radius: 50%;
6786 cursor: pointer;
6787 color: #374151;
6788 transition: all 0.2s;
6789 }
6790
6791 .yatra-carousel-btn:hover:not(:disabled) {
6792 background: var(--yatra-primary, #3b82f6);
6793 border-color: var(--yatra-primary, #3b82f6);
6794 color: #fff;
6795 }
6796
6797 .yatra-carousel-btn:disabled {
6798 opacity: 0.5;
6799 cursor: not-allowed;
6800 }
6801
6802 /* Carousel Wrapper */
6803 .yatra-carousel-wrapper {
6804 overflow: hidden;
6805 position: relative;
6806 }
6807
6808 .yatra-carousel-track {
6809 display: flex;
6810 gap: 24px;
6811 transition: transform 0.4s ease;
6812 }
6813
6814 .yatra-carousel-item {
6815 flex: 0 0 calc(25% - 18px);
6816 min-width: 280px;
6817 }
6818
6819 @media (max-width: 1200px) {
6820 .yatra-carousel-item {
6821 flex: 0 0 calc(33.333% - 16px);
6822 }
6823 }
6824
6825 @media (max-width: 900px) {
6826 .yatra-carousel-item {
6827 flex: 0 0 calc(50% - 12px);
6828 }
6829 }
6830
6831 @media (max-width: 600px) {
6832 .yatra-carousel-item {
6833 flex: 0 0 100%;
6834 }
6835
6836 .yatra-carousel-nav {
6837 display: none;
6838 }
6839
6840 .yatra-carousel-track {
6841 overflow-x: auto;
6842 scroll-snap-type: x mandatory;
6843 -webkit-overflow-scrolling: touch;
6844 scrollbar-width: none;
6845 -ms-overflow-style: none;
6846 }
6847
6848 .yatra-carousel-track::-webkit-scrollbar {
6849 display: none;
6850 }
6851
6852 .yatra-carousel-item {
6853 scroll-snap-align: start;
6854 }
6855 }
6856
6857 /* Grid uses same card styles as /trip page */
6858 .yatra-similar-trips-grid {
6859 display: grid;
6860 grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
6861 gap: 24px;
6862 }
6863
6864 .yatra-similar-trips-grid .yatra-trip-card {
6865 background: #fff;
6866 border-radius: 12px;
6867 overflow: hidden;
6868 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
6869 transition: transform 0.2s, box-shadow 0.2s;
6870 cursor: pointer;
6871 display: flex;
6872 flex-direction: column;
6873 }
6874
6875 .yatra-similar-trips-grid .yatra-trip-card:hover {
6876 transform: translateY(-4px);
6877 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
6878 }
6879
6880 .yatra-similar-trips-grid .yatra-trip-image {
6881 position: relative;
6882 width: 100%;
6883 height: 200px;
6884 overflow: hidden;
6885 background: #e5e7eb;
6886 flex-shrink: 0;
6887 }
6888
6889 .yatra-similar-trips-grid .yatra-trip-image img {
6890 width: 100%;
6891 height: 100%;
6892 object-fit: cover;
6893 transition: transform 0.3s;
6894 }
6895
6896 .yatra-similar-trips-grid .yatra-trip-card:hover .yatra-trip-image img {
6897 transform: scale(1.05);
6898 }
6899
6900 .yatra-similar-trips-grid .yatra-discount-badge {
6901 position: absolute;
6902 top: 12px;
6903 left: 12px;
6904 background: #ef4444;
6905 color: #fff;
6906 padding: 4px 10px;
6907 border-radius: 4px;
6908 font-size: 12px;
6909 font-weight: 600;
6910 z-index: 2;
6911 }
6912
6913 .yatra-similar-trips-grid .yatra-favorite-btn {
6914 position: absolute !important;
6915 top: 12px !important;
6916 right: 12px !important;
6917 width: 36px !important;
6918 height: 36px !important;
6919 background: #ffffff !important;
6920 border: 1px solid rgba(0, 0, 0, 0.1) !important;
6921 border-radius: 50% !important;
6922 cursor: pointer !important;
6923 display: flex !important;
6924 align-items: center !important;
6925 justify-content: center !important;
6926 color: #6b7280 !important;
6927 transition: all 0.2s !important;
6928 z-index: 10 !important;
6929 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
6930 padding: 0 !important;
6931 }
6932
6933 .yatra-similar-trips-grid .yatra-favorite-btn:hover {
6934 background: #ffffff !important;
6935 color: #ef4444 !important;
6936 transform: scale(1.1) !important;
6937 }
6938
6939 .yatra-similar-trips-grid .yatra-favorite-btn svg {
6940 width: 18px !important;
6941 height: 18px !important;
6942 }
6943
6944 .yatra-similar-trips-grid .yatra-trip-content {
6945 padding: 20px;
6946 display: flex;
6947 flex-direction: column;
6948 flex: 1;
6949 }
6950
6951 .yatra-similar-trips-grid .yatra-trip-meta {
6952 display: flex;
6953 align-items: center;
6954 gap: 8px;
6955 margin-bottom: 12px;
6956 font-size: 13px;
6957 color: #6b7280;
6958 flex-wrap: wrap;
6959 }
6960
6961 .yatra-similar-trips-grid .yatra-trip-separator {
6962 color: #d1d5db;
6963 }
6964
6965 .yatra-similar-trips-grid .yatra-trip-title {
6966 font-size: 18px;
6967 font-weight: 600;
6968 color: #1f2937;
6969 margin-bottom: 12px;
6970 line-height: 1.4;
6971 }
6972
6973 .yatra-similar-trips-grid .yatra-trip-highlights {
6974 display: flex;
6975 flex-wrap: wrap;
6976 gap: 6px;
6977 margin-top: 0 !important;
6978 margin-bottom: 12px;
6979 }
6980
6981 .yatra-similar-trips-grid .yatra-highlight-badge {
6982 padding: 4px 10px;
6983 background: #eff6ff;
6984 color: var(--yatra-primary-darker, #1e40af);
6985 border-radius: 4px;
6986 font-size: 12px;
6987 font-weight: 500;
6988 }
6989
6990 .yatra-similar-trips-grid .yatra-trip-rating {
6991 display: flex;
6992 align-items: center;
6993 gap: 8px;
6994 margin-bottom: 16px;
6995 }
6996
6997 .yatra-similar-trips-grid .yatra-rating-stars {
6998 display: flex;
6999 align-items: center;
7000 gap: 4px;
7001 }
7002
7003 .yatra-similar-trips-grid .yatra-rating-value {
7004 font-size: 13px;
7005 font-weight: 600;
7006 color: #1f2937;
7007 }
7008
7009 .yatra-similar-trips-grid .yatra-reviews-count {
7010 font-size: 12px;
7011 color: #6b7280;
7012 }
7013
7014 .yatra-similar-trips-grid .yatra-trip-footer {
7015 display: flex;
7016 justify-content: space-between;
7017 align-items: center;
7018 margin-top: auto;
7019 padding-top: 16px;
7020 border-top: 1px solid #f3f4f6;
7021 }
7022
7023 .yatra-similar-trips-grid .yatra-trip-price {
7024 display: flex;
7025 flex-direction: column;
7026 }
7027
7028 .yatra-similar-trips-grid .yatra-original-price {
7029 font-size: 12px;
7030 color: #9ca3af;
7031 text-decoration: line-through;
7032 margin-bottom: 2px;
7033 }
7034
7035 .yatra-similar-trips-grid .yatra-current-price {
7036 font-size: 22px;
7037 font-weight: 700;
7038 color: var(--yatra-primary, #3b82f6);
7039 line-height: 1;
7040 }
7041
7042 .yatra-similar-trips-grid .yatra-price-note {
7043 font-size: 11px;
7044 color: #9ca3af;
7045 margin-top: 2px;
7046 }
7047
7048 .yatra-similar-trips-grid .yatra-card-view-btn {
7049 display: inline-flex;
7050 align-items: center;
7051 justify-content: center;
7052 padding: 10px 16px;
7053 background: var(--yatra-primary, #3b82f6);
7054 color: #fff !important;
7055 border: none;
7056 border-radius: 6px;
7057 font-size: 13px;
7058 font-weight: 600;
7059 cursor: pointer;
7060 transition: all 0.2s;
7061 text-decoration: none !important;
7062 white-space: nowrap;
7063 }
7064
7065 .yatra-similar-trips-grid .yatra-card-view-btn:hover {
7066 background: var(--yatra-primary-dark, #2563eb);
7067 transform: translateY(-1px);
7068 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
7069 }
7070
7071 @media (max-width: 1024px) {
7072 .yatra-similar-trips-grid {
7073 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
7074 gap: 20px;
7075 }
7076 }
7077
7078 @media (max-width: 768px) {
7079 .yatra-similar-trips-grid {
7080 grid-template-columns: 1fr;
7081 }
7082
7083 .yatra-similar-section {
7084 padding-top: var(--yatra-section-gap);
7085 padding-bottom: var(--yatra-section-gap);
7086 margin-top: 0;
7087 }
7088
7089 .yatra-similar-section-title {
7090 font-size: 22px;
7091 }
7092
7093 .yatra-similar-section-header {
7094 flex-direction: column;
7095 align-items: flex-start;
7096 gap: 16px;
7097 margin-bottom: 24px;
7098 }
7099 }
7100
7101 /* Carousel Card Styles */
7102 .yatra-carousel-item .yatra-trip-card {
7103 background: #fff;
7104 border-radius: 12px;
7105 overflow: hidden;
7106 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
7107 transition: transform 0.2s, box-shadow 0.2s;
7108 cursor: pointer;
7109 display: flex;
7110 flex-direction: column;
7111 height: 100%;
7112 }
7113
7114 .yatra-carousel-item .yatra-trip-card:hover {
7115 transform: translateY(-4px);
7116 box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
7117 }
7118
7119 .yatra-carousel-item .yatra-trip-image {
7120 position: relative;
7121 width: 100%;
7122 height: 200px;
7123 overflow: hidden;
7124 background: #e5e7eb;
7125 flex-shrink: 0;
7126 }
7127
7128 .yatra-carousel-item .yatra-trip-image img {
7129 width: 100%;
7130 height: 100%;
7131 object-fit: cover;
7132 transition: transform 0.3s;
7133 }
7134
7135 .yatra-carousel-item .yatra-trip-card:hover .yatra-trip-image img {
7136 transform: scale(1.05);
7137 }
7138
7139 .yatra-carousel-item .yatra-discount-badge {
7140 position: absolute;
7141 top: 12px;
7142 left: 12px;
7143 background: #ef4444;
7144 color: #fff;
7145 padding: 4px 10px;
7146 border-radius: 4px;
7147 font-size: 12px;
7148 font-weight: 600;
7149 z-index: 2;
7150 }
7151
7152 .yatra-carousel-item .yatra-favorite-btn {
7153 position: absolute !important;
7154 top: 12px !important;
7155 right: 12px !important;
7156 width: 36px !important;
7157 height: 36px !important;
7158 background: #ffffff !important;
7159 border: 1px solid rgba(0, 0, 0, 0.1) !important;
7160 border-radius: 50% !important;
7161 cursor: pointer !important;
7162 display: flex !important;
7163 align-items: center !important;
7164 justify-content: center !important;
7165 color: #6b7280 !important;
7166 transition: all 0.2s !important;
7167 z-index: 10 !important;
7168 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
7169 padding: 0 !important;
7170 }
7171
7172 .yatra-carousel-item .yatra-favorite-btn:hover {
7173 background: #ffffff !important;
7174 color: #ef4444 !important;
7175 transform: scale(1.1) !important;
7176 }
7177
7178 .yatra-carousel-item .yatra-favorite-btn svg {
7179 width: 18px !important;
7180 height: 18px !important;
7181 }
7182
7183 .yatra-carousel-item .yatra-trip-content {
7184 padding: 20px;
7185 display: flex;
7186 flex-direction: column;
7187 flex: 1;
7188 }
7189
7190 .yatra-carousel-item .yatra-trip-meta {
7191 display: flex;
7192 align-items: center;
7193 gap: 8px;
7194 margin-bottom: 12px;
7195 font-size: 13px;
7196 color: #6b7280;
7197 flex-wrap: wrap;
7198 }
7199
7200 .yatra-carousel-item .yatra-trip-separator {
7201 color: #d1d5db;
7202 }
7203
7204 .yatra-carousel-item .yatra-trip-title {
7205 font-size: 18px;
7206 font-weight: 600;
7207 color: #1f2937;
7208 margin-bottom: 12px;
7209 line-height: 1.4;
7210 }
7211
7212 .yatra-carousel-item .yatra-trip-highlights {
7213 display: flex;
7214 flex-wrap: wrap;
7215 gap: 6px;
7216 margin-top: 0 !important;
7217 margin-bottom: 12px;
7218 }
7219
7220 .yatra-carousel-item .yatra-highlight-badge {
7221 padding: 4px 10px;
7222 background: #eff6ff;
7223 color: var(--yatra-primary-darker, #1e40af);
7224 border-radius: 4px;
7225 font-size: 12px;
7226 font-weight: 500;
7227 }
7228
7229 .yatra-carousel-item .yatra-trip-location {
7230 color: #6b7280;
7231 }
7232
7233 .yatra-carousel-item .yatra-trip-rating {
7234 display: flex;
7235 align-items: center;
7236 gap: 8px;
7237 margin-bottom: 16px;
7238 }
7239
7240 .yatra-carousel-item .yatra-rating-stars {
7241 display: flex;
7242 align-items: center;
7243 gap: 4px;
7244 }
7245
7246 .yatra-carousel-item .yatra-rating-value {
7247 font-size: 14px;
7248 font-weight: 600;
7249 color: #1f2937;
7250 }
7251
7252 .yatra-carousel-item .yatra-reviews-count {
7253 font-size: 13px;
7254 color: #6b7280;
7255 }
7256
7257 .yatra-carousel-item .yatra-trip-footer {
7258 display: flex;
7259 justify-content: space-between;
7260 align-items: center;
7261 margin-top: auto;
7262 padding-top: 16px;
7263 border-top: 1px solid #f3f4f6;
7264 }
7265
7266 .yatra-carousel-item .yatra-trip-price {
7267 display: flex;
7268 flex-direction: column;
7269 }
7270
7271 .yatra-carousel-item .yatra-original-price {
7272 font-size: 12px;
7273 color: #9ca3af;
7274 text-decoration: line-through;
7275 margin-bottom: 2px;
7276 }
7277
7278 .yatra-carousel-item .yatra-current-price {
7279 font-size: 22px;
7280 font-weight: 700;
7281 color: var(--yatra-primary, #3b82f6);
7282 line-height: 1;
7283 }
7284
7285 .yatra-carousel-item .yatra-price-note {
7286 font-size: 11px;
7287 color: #9ca3af;
7288 margin-top: 2px;
7289 }
7290
7291 .yatra-carousel-item .yatra-card-view-btn {
7292 display: inline-flex;
7293 align-items: center;
7294 justify-content: center;
7295 padding: 10px 16px;
7296 background: var(--yatra-primary, #3b82f6);
7297 color: #fff !important;
7298 border: none;
7299 border-radius: 6px;
7300 font-size: 13px;
7301 font-weight: 600;
7302 cursor: pointer;
7303 transition: all 0.2s;
7304 text-decoration: none !important;
7305 white-space: nowrap;
7306 }
7307
7308 .yatra-carousel-item .yatra-card-view-btn:hover {
7309 background: var(--yatra-primary-dark, #2563eb);
7310 transform: translateY(-1px);
7311 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
7312 }
7313
7314 /* ============================================
7315 REVIEWS SECTION - UNIFIED SPACING
7316 Outer width: see .yatra-single-trip .yatra-reviews-section (top of file). Inner fills the section.
7317 ============================================ */
7318 .yatra-reviews-section {
7319 padding-top: var(--yatra-section-gap);
7320 padding-bottom: var(--yatra-section-gap);
7321 background: #fff;
7322 border-top: 1px solid #e5e7eb;
7323 }
7324
7325 /* Inner wrapper: use full content width of the section (no second max-width / no double horizontal inset) */
7326 .yatra-single-trip .yatra-reviews-section > .yatra-reviews-section-container {
7327 width: 100%;
7328 max-width: 100%;
7329 margin-left: 0;
7330 margin-right: 0;
7331 padding-left: 0;
7332 padding-right: 0;
7333 box-sizing: border-box;
7334 }
7335
7336 .yatra-reviews-section .yatra-reviews-header {
7337 margin-bottom: var(--yatra-element-gap);
7338 }
7339
7340 .yatra-reviews-section-title {
7341 display: flex;
7342 align-items: center;
7343 gap: var(--yatra-tiny-gap);
7344 font-size: 28px;
7345 font-weight: 700;
7346 color: #111827;
7347 margin: 0;
7348 }
7349
7350 .yatra-reviews-section-icon {
7351 width: 32px;
7352 height: 32px;
7353 color: #fbbf24;
7354 }
7355
7356 .yatra-reviews-section .yatra-reviews-container {
7357 display: grid;
7358 grid-template-columns: 320px 1fr;
7359 gap: var(--yatra-section-gap);
7360 align-items: start;
7361 }
7362
7363 @media (max-width: 900px) {
7364 .yatra-reviews-section .yatra-reviews-container {
7365 grid-template-columns: 1fr;
7366 gap: var(--yatra-element-gap);
7367 }
7368 }
7369
7370 /* Rating Distribution Styles */
7371 .yatra-rating-distribution {
7372 margin-top: 24px;
7373 }
7374
7375 .yatra-breakdown-star {
7376 font-size: 14px;
7377 color: #d1d5db;
7378 line-height: 1;
7379 }
7380
7381 .yatra-breakdown-star.filled {
7382 color: #fbbf24;
7383 }
7384
7385 .yatra-rating-distribution-title {
7386 font-size: 14px;
7387 font-weight: 600;
7388 color: #374151;
7389 margin: 0 0 16px 0;
7390 }
7391
7392 .yatra-rating-row {
7393 display: flex;
7394 align-items: center;
7395 gap: 12px;
7396 margin-bottom: 8px;
7397 }
7398
7399 .yatra-rating-star-label {
7400 display: flex;
7401 gap: 1px;
7402 width: 80px;
7403 flex-shrink: 0;
7404 }
7405
7406 .yatra-rating-bar {
7407 flex: 1;
7408 height: 8px;
7409 background: #e5e7eb;
7410 border-radius: 4px;
7411 overflow: hidden;
7412 }
7413
7414 .yatra-rating-bar-fill {
7415 height: 100%;
7416 background: var(--yatra-star, #fbbf24);
7417 border-radius: 4px;
7418 transition: width 0.3s ease;
7419 }
7420
7421 .yatra-rating-count {
7422 font-size: 13px;
7423 color: #6b7280;
7424 width: 24px;
7425 text-align: right;
7426 flex-shrink: 0;
7427 }
7428
7429 /* No Reviews State */
7430 .yatra-reviews-section .yatra-no-reviews-message {
7431 text-align: center;
7432 padding: 48px 24px;
7433 background: #f9fafb;
7434 border-radius: 12px;
7435 border: 1px dashed #d1d5db;
7436 }
7437
7438 .yatra-no-reviews-icon {
7439 width: 48px;
7440 height: 48px;
7441 margin: 0 auto 16px;
7442 color: #9ca3af;
7443 display: flex;
7444 align-items: center;
7445 justify-content: center;
7446 }
7447
7448 .yatra-no-reviews-icon svg {
7449 width: 100%;
7450 height: 100%;
7451 flex-shrink: 0;
7452 }
7453
7454 .yatra-reviews-section .yatra-no-reviews-message p {
7455 color: #6b7280;
7456 font-size: 15px;
7457 margin: 0;
7458 }
7459
7460 /* Reviews List in Full Width Section */
7461 .yatra-reviews-section .yatra-reviews-items {
7462 display: flex;
7463 flex-direction: column;
7464 gap: var(--yatra-element-gap);
7465 }
7466
7467 .yatra-reviews-section .yatra-review-item {
7468 padding: var(--yatra-element-gap);
7469 background: #f9fafb;
7470 border-radius: 12px;
7471 border: 1px solid #e5e7eb;
7472 }
7473
7474 @media (max-width: 768px) {
7475 .yatra-reviews-section-title {
7476 font-size: 22px;
7477 }
7478 }
7479
7480 /* ============================================
7481 BOOKING INFORMATION SECTION
7482 ============================================ */
7483 .yatra-booking-info-grid {
7484 display: grid;
7485 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
7486 gap: 24px;
7487 margin-top: 24px;
7488 }
7489
7490 .yatra-booking-info-card {
7491 background: #f9fafb;
7492 border-radius: 12px;
7493 padding: 24px;
7494 border: 1px solid #e5e7eb;
7495 text-align: center;
7496 transition: all 0.3s ease;
7497 }
7498
7499 .yatra-booking-info-card:hover {
7500 background: #fff;
7501 box-shadow: 0 4px 12px rgba(0,0,0,0.08);
7502 transform: translateY(-2px);
7503 }
7504
7505 .yatra-booking-info-icon {
7506 width: 56px;
7507 height: 56px;
7508 margin: 0 auto 16px;
7509 display: flex;
7510 align-items: center;
7511 justify-content: center;
7512 background: #eff6ff;
7513 border-radius: 12px;
7514 color: var(--yatra-primary, #3b82f6);
7515 }
7516
7517 .yatra-booking-info-icon svg {
7518 width: 28px;
7519 height: 28px;
7520 }
7521
7522 .yatra-booking-info-title {
7523 font-size: 18px;
7524 font-weight: 700;
7525 color: #111827;
7526 margin-bottom: 8px;
7527 }
7528
7529 .yatra-booking-info-desc {
7530 font-size: 14px;
7531 color: #6b7280;
7532 line-height: 1.6;
7533 margin: 0;
7534 }
7535
7536 .yatra-booking-info-link {
7537 color: var(--yatra-primary, #3b82f6);
7538 text-decoration: none;
7539 font-weight: 500;
7540 }
7541
7542 .yatra-booking-info-link:hover {
7543 text-decoration: underline;
7544 }
7545
7546 /* ============================================
7547 TESTIMONIALS
7548 ============================================ */
7549 .yatra-trip-testimonials {
7550 display: grid;
7551 grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
7552 gap: 24px;
7553 margin-top: 32px;
7554 }
7555
7556 .yatra-testimonial-card {
7557 background: #f9fafb;
7558 border-radius: 16px;
7559 padding: 28px;
7560 border-left: 4px solid var(--yatra-primary, #3b82f6);
7561 transition: all 0.3s ease;
7562 }
7563
7564 .yatra-testimonial-card:hover {
7565 background: #fff;
7566 box-shadow: 0 4px 20px rgba(0,0,0,0.08);
7567 transform: translateY(-4px);
7568 }
7569
7570 .yatra-testimonial-rating {
7571 color: #fbbf24;
7572 font-size: 18px;
7573 margin-bottom: 16px;
7574 letter-spacing: 2px;
7575 }
7576
7577 .yatra-testimonial-text {
7578 font-size: 15px;
7579 line-height: 1.8;
7580 color: #374151;
7581 margin: 0 0 20px 0;
7582 font-style: italic;
7583 }
7584
7585 .yatra-testimonial-author {
7586 display: flex;
7587 align-items: center;
7588 gap: 16px;
7589 }
7590
7591 .yatra-testimonial-avatar {
7592 width: 52px;
7593 height: 52px;
7594 border-radius: 50%;
7595 background: linear-gradient(135deg, var(--yatra-primary, #3b82f6) 0%, var(--yatra-primary-darker, #1e40af) 100%);
7596 display: flex;
7597 align-items: center;
7598 justify-content: center;
7599 color: #fff;
7600 font-weight: 700;
7601 font-size: 20px;
7602 flex-shrink: 0;
7603 }
7604
7605 .yatra-testimonial-info {
7606 flex: 1;
7607 }
7608
7609 .yatra-testimonial-name {
7610 font-size: 16px;
7611 font-weight: 700;
7612 color: #111827;
7613 margin: 0 0 4px 0;
7614 }
7615
7616 .yatra-testimonial-location {
7617 font-size: 14px;
7618 color: #6b7280;
7619 margin: 0;
7620 }
7621
7622 /* ============================================
7623 REVIEW SECTION STYLES (Professional Design)
7624 ============================================ */
7625 .yatra-reviews-header {
7626 margin-bottom: 32px;
7627 }
7628
7629 .yatra-reviews-divider {
7630 height: 2px;
7631 background: var(--yatra-primary, #3b82f6);
7632 margin-top: 16px;
7633 width: 100%;
7634 }
7635
7636 .yatra-reviews-container {
7637 display: grid;
7638 grid-template-columns: 320px 1fr;
7639 gap: 48px;
7640 margin-bottom: 40px;
7641 }
7642
7643 /* Left: Overall Rating Summary */
7644 .yatra-reviews-summary {
7645 position: sticky;
7646 top: 100px;
7647 height: fit-content;
7648 }
7649
7650 .yatra-overall-rating {
7651 text-align: center;
7652 padding-bottom: 32px;
7653 border-bottom: 1px solid #e5e7eb;
7654 margin-bottom: 24px;
7655 }
7656
7657 .yatra-overall-rating-label {
7658 font-size: 12px;
7659 font-weight: 600;
7660 color: #6b7280;
7661 margin: 0 0 16px 0;
7662 text-transform: uppercase;
7663 letter-spacing: 0.5px;
7664 }
7665
7666 .yatra-overall-rating-score {
7667 display: flex;
7668 align-items: baseline;
7669 justify-content: center;
7670 gap: 2px;
7671 margin-bottom: 12px;
7672 }
7673
7674 .yatra-rating-big {
7675 font-size: 56px;
7676 font-weight: 700;
7677 color: #1f2937;
7678 line-height: 1;
7679 }
7680
7681 .yatra-rating-max {
7682 font-size: 24px;
7683 font-weight: 400;
7684 color: #6b7280;
7685 }
7686
7687 .yatra-overall-stars {
7688 display: flex;
7689 justify-content: center;
7690 gap: 4px;
7691 margin-bottom: 8px;
7692 }
7693
7694 .yatra-star-icon {
7695 font-size: 28px;
7696 color: #d1d5db;
7697 }
7698
7699 .yatra-star-icon.filled {
7700 color: var(--yatra-star, #fbbf24);
7701 }
7702
7703 .yatra-star-icon.half {
7704 background: linear-gradient(
7705 90deg,
7706 var(--yatra-star, #fbbf24) 50%,
7707 #d1d5db 50%
7708 );
7709 -webkit-background-clip: text;
7710 -webkit-text-fill-color: transparent;
7711 background-clip: text;
7712 color: transparent;
7713 }
7714
7715 .yatra-reviews-based-on {
7716 font-size: 14px;
7717 color: #6b7280;
7718 margin: 0;
7719 }
7720
7721 /* Review Categories */
7722 .yatra-review-categories {
7723 padding: 0;
7724 }
7725
7726 .yatra-review-categories-title {
7727 font-size: 14px;
7728 font-weight: 600;
7729 color: #1f2937;
7730 margin: 0 0 20px 0;
7731 }
7732
7733 .yatra-review-category {
7734 display: flex;
7735 align-items: center;
7736 gap: 12px;
7737 margin-bottom: 16px;
7738 }
7739
7740 .yatra-category-name {
7741 width: 120px;
7742 font-size: 14px;
7743 color: #374151;
7744 flex-shrink: 0;
7745 }
7746
7747 .yatra-category-bar {
7748 flex: 1;
7749 height: 8px;
7750 background: #e5e7eb;
7751 border-radius: 4px;
7752 overflow: hidden;
7753 }
7754
7755 .yatra-category-bar-fill {
7756 height: 100%;
7757 background: #1e3a5f;
7758 border-radius: 4px;
7759 transition: width 0.3s ease;
7760 }
7761
7762 .yatra-category-score {
7763 width: 40px;
7764 font-size: 14px;
7765 color: #6b7280;
7766 text-align: right;
7767 flex-shrink: 0;
7768 }
7769
7770 /* Right: Reviews List */
7771 .yatra-reviews-list {
7772 min-width: 0;
7773 }
7774
7775 .yatra-reviews-toolbar {
7776 display: flex;
7777 align-items: center;
7778 gap: 12px;
7779 margin-bottom: 24px;
7780 }
7781
7782 .yatra-reviews-sort {
7783 display: flex;
7784 align-items: center;
7785 gap: 8px;
7786 }
7787
7788 .yatra-sort-label {
7789 font-size: 14px;
7790 color: #6b7280;
7791 }
7792
7793 .yatra-sort-select {
7794 padding: 10px 36px 10px 16px;
7795 border: 1px solid #d1d5db;
7796 border-radius: 8px;
7797 font-size: 14px;
7798 color: #1f2937;
7799 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;
7800 cursor: pointer;
7801 appearance: none;
7802 -webkit-appearance: none;
7803 }
7804
7805 .yatra-sort-select:focus {
7806 outline: none;
7807 border-color: var(--yatra-primary, #3b82f6);
7808 }
7809
7810 .yatra-filter-btn {
7811 display: flex;
7812 align-items: center;
7813 gap: 6px;
7814 padding: 10px 16px;
7815 border: 1px solid #d1d5db;
7816 border-radius: 8px;
7817 background: #fff;
7818 font-size: 14px;
7819 color: #374151;
7820 cursor: pointer;
7821 transition: all 0.2s;
7822 }
7823
7824 .yatra-filter-btn:hover {
7825 border-color: #9ca3af;
7826 background: #f9fafb;
7827 }
7828
7829 /* Review Items */
7830 .yatra-reviews-items {
7831 display: flex;
7832 flex-direction: column;
7833 gap: 16px;
7834 }
7835
7836 .yatra-review-item {
7837 padding: 20px 24px;
7838 background: #fff;
7839 border: 1px solid #e5e7eb;
7840 border-radius: 12px;
7841 transition: box-shadow 0.2s ease, border-color 0.2s ease;
7842 }
7843
7844 .yatra-review-item:hover {
7845 border-color: #d1d5db;
7846 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
7847 }
7848
7849 .yatra-review-header {
7850 display: flex;
7851 align-items: flex-start;
7852 justify-content: space-between;
7853 margin-bottom: 16px;
7854 }
7855
7856 .yatra-review-header-left {
7857 display: flex;
7858 align-items: center;
7859 gap: 14px;
7860 flex: 1;
7861 }
7862
7863 .yatra-review-avatar {
7864 width: 44px;
7865 height: 44px;
7866 border-radius: 50%;
7867 display: flex;
7868 align-items: center;
7869 justify-content: center;
7870 color: #fff;
7871 font-size: 16px;
7872 font-weight: 600;
7873 flex-shrink: 0;
7874 background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
7875 }
7876
7877 .yatra-review-author-info {
7878 flex: 1;
7879 min-width: 0;
7880 }
7881
7882 .yatra-review-author-top {
7883 display: flex;
7884 align-items: center;
7885 gap: 10px;
7886 margin-bottom: 4px;
7887 }
7888
7889 .yatra-review-author-name {
7890 font-size: 15px;
7891 font-weight: 600;
7892 color: #1f2937;
7893 }
7894
7895 .yatra-verified-badge {
7896 display: inline-flex;
7897 align-items: center;
7898 gap: 4px;
7899 padding: 2px 8px;
7900 background: #ecfdf5;
7901 border-radius: 20px;
7902 font-size: 11px;
7903 font-weight: 500;
7904 color: #059669;
7905 }
7906
7907 .yatra-verified-badge .yatra-icon-xs {
7908 width: 12px;
7909 height: 12px;
7910 }
7911
7912 .yatra-review-meta {
7913 display: flex;
7914 align-items: center;
7915 gap: 8px;
7916 font-size: 13px;
7917 color: #6b7280;
7918 }
7919
7920 .yatra-review-author-location {
7921 font-weight: 400;
7922 color: #6b7280;
7923 }
7924
7925 .yatra-review-stars {
7926 display: flex;
7927 align-items: center;
7928 gap: 2px;
7929 }
7930
7931 .yatra-star-sm {
7932 font-size: 14px;
7933 color: #d1d5db;
7934 }
7935
7936 .yatra-star-sm.filled {
7937 color: #fbbf24;
7938 }
7939
7940 .yatra-review-rating-num {
7941 margin-left: 6px;
7942 font-size: 13px;
7943 font-weight: 600;
7944 color: #1f2937;
7945 }
7946
7947 .yatra-review-more-btn {
7948 width: 32px;
7949 height: 32px;
7950 display: flex;
7951 align-items: center;
7952 justify-content: center;
7953 border: none;
7954 background: transparent;
7955 color: #9ca3af;
7956 border-radius: 6px;
7957 cursor: pointer;
7958 transition: all 0.2s;
7959 }
7960
7961 .yatra-review-more-btn:hover {
7962 background: #f3f4f6;
7963 color: #6b7280;
7964 }
7965
7966 .yatra-review-body {
7967 padding-left: 58px;
7968 }
7969
7970 .yatra-review-title {
7971 font-size: 15px;
7972 font-weight: 600;
7973 color: #1f2937;
7974 margin: 0 0 6px 0;
7975 line-height: 1.4;
7976 }
7977
7978 .yatra-review-content {
7979 font-size: 14px;
7980 line-height: 1.7;
7981 color: #4b5563;
7982 margin: 0;
7983 }
7984
7985 /* Review Author Row - Legacy support */
7986 .yatra-review-author-row {
7987 display: flex;
7988 align-items: flex-start;
7989 gap: 14px;
7990 margin-bottom: 16px;
7991 }
7992
7993 /* Load More */
7994 .yatra-reviews-load-more {
7995 padding-top: 24px;
7996 }
7997
7998 .yatra-load-more-btn {
7999 width: 100%;
8000 padding: 14px 24px;
8001 border: 1px solid #d1d5db;
8002 border-radius: 8px;
8003 background: #fff;
8004 font-size: 15px;
8005 font-weight: 500;
8006 color: #374151;
8007 cursor: pointer;
8008 transition: all 0.2s;
8009 }
8010
8011 .yatra-load-more-btn:hover {
8012 border-color: #9ca3af;
8013 background: #f9fafb;
8014 }
8015
8016 .yatra-no-reviews-message {
8017 text-align: center;
8018 padding: 40px;
8019 background: #f9fafb;
8020 border-radius: 12px;
8021 color: #6b7280;
8022 }
8023
8024 /* Responsive */
8025 @media (max-width: 968px) {
8026 .yatra-reviews-container {
8027 grid-template-columns: 1fr;
8028 gap: 32px;
8029 }
8030
8031 .yatra-reviews-summary {
8032 position: static;
8033 display: grid;
8034 grid-template-columns: 1fr 1fr;
8035 gap: 24px;
8036 padding: 24px;
8037 background: #f9fafb;
8038 border-radius: 12px;
8039 }
8040
8041 .yatra-overall-rating {
8042 padding-bottom: 0;
8043 border-bottom: none;
8044 margin-bottom: 0;
8045 border-right: 1px solid #e5e7eb;
8046 padding-right: 24px;
8047 }
8048
8049 .yatra-review-categories {
8050 padding-left: 24px;
8051 }
8052 }
8053
8054 @media (max-width: 640px) {
8055 .yatra-reviews-summary {
8056 grid-template-columns: 1fr;
8057 }
8058
8059 .yatra-overall-rating {
8060 border-right: none;
8061 padding-right: 0;
8062 padding-bottom: 24px;
8063 border-bottom: 1px solid #e5e7eb;
8064 margin-bottom: 24px;
8065 }
8066
8067 .yatra-review-categories {
8068 padding-left: 0;
8069 }
8070
8071 .yatra-reviews-toolbar {
8072 flex-wrap: wrap;
8073 }
8074
8075 .yatra-reviews-sort {
8076 width: 100%;
8077 }
8078
8079 .yatra-sort-select {
8080 flex: 1;
8081 }
8082 }
8083
8084 .yatra-review-form-section {
8085 margin-top: 40px;
8086 padding-top: 40px;
8087 padding-bottom: var(--yatra-element-gap);
8088 border-top: 1px solid #e5e7eb;
8089 }
8090
8091 .yatra-review-form-title {
8092 font-size: 20px;
8093 font-weight: 700;
8094 color: #1f2937;
8095 margin: 0 0 24px 0;
8096 }
8097
8098 .yatra-review-login-notice,
8099 .yatra-review-booking-notice,
8100 .yatra-review-already-notice {
8101 padding: 20px 24px;
8102 background: #f3f4f6;
8103 border-radius: 12px;
8104 color: #4b5563;
8105 font-size: 15px;
8106 }
8107
8108 .yatra-review-login-notice a {
8109 color: var(--yatra-primary, #3b82f6);
8110 font-weight: 600;
8111 text-decoration: none;
8112 }
8113
8114 .yatra-review-login-notice a:hover {
8115 text-decoration: underline;
8116 }
8117
8118 .yatra-review-form {
8119 display: flex;
8120 flex-direction: column;
8121 gap: 24px;
8122 }
8123
8124 .yatra-form-field {
8125 display: flex;
8126 flex-direction: column;
8127 gap: 8px;
8128 }
8129
8130 .yatra-form-label {
8131 font-size: 14px;
8132 font-weight: 600;
8133 color: #374151;
8134 }
8135
8136 .yatra-required {
8137 color: #ef4444;
8138 }
8139
8140 .yatra-rating-field .yatra-star-rating-input {
8141 display: flex;
8142 flex-direction: row;
8143 justify-content: flex-start;
8144 gap: 4px;
8145 }
8146
8147 .yatra-star-rating-input input {
8148 display: none;
8149 }
8150
8151 .yatra-star-label {
8152 font-size: 32px;
8153 color: #d1d5db;
8154 cursor: pointer;
8155 transition: color 0.2s;
8156 }
8157
8158 .yatra-star-rating-input .yatra-star-label.selected,
8159 .yatra-star-rating-input .yatra-star-label.hover {
8160 color: #fbbf24;
8161 }
8162
8163 .yatra-star-rating-input input:disabled + .yatra-star-label {
8164 cursor: not-allowed;
8165 opacity: 0.5;
8166 }
8167
8168 /* Ensure stars are clickable */
8169 .yatra-star-rating-input .yatra-star-label {
8170 position: relative;
8171 z-index: 1;
8172 user-select: none;
8173 -webkit-user-select: none;
8174 }
8175
8176 .yatra-field-hint {
8177 font-size: 12px;
8178 color: #9ca3af;
8179 margin: 0;
8180 }
8181
8182 .yatra-form-input,
8183 .yatra-form-textarea {
8184 padding: 12px 16px;
8185 border: 1px solid #d1d5db;
8186 border-radius: 8px;
8187 font-size: 15px;
8188 color: #1f2937;
8189 transition: all 0.2s;
8190 }
8191
8192 .yatra-form-input:focus,
8193 .yatra-form-textarea:focus {
8194 outline: none;
8195 border-color: var(--yatra-primary, #3b82f6);
8196 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
8197 }
8198
8199 .yatra-form-textarea {
8200 resize: vertical;
8201 min-height: 120px;
8202 }
8203
8204 .yatra-review-submit-btn {
8205 display: inline-flex;
8206 align-items: center;
8207 justify-content: center;
8208 gap: 8px;
8209 padding: 14px 28px;
8210 background: var(--yatra-primary, #3b82f6);
8211 color: #fff;
8212 border: none;
8213 border-radius: 8px;
8214 font-size: 15px;
8215 font-weight: 600;
8216 cursor: pointer;
8217 transition: all 0.2s;
8218 width: fit-content;
8219 }
8220
8221 .yatra-review-submit-btn:hover {
8222 background: var(--yatra-primary-dark, #2563eb);
8223 transform: translateY(-1px);
8224 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
8225 }
8226
8227 .yatra-review-moderation-notice {
8228 font-size: 13px;
8229 color: #6b7280;
8230 margin: 8px 0 0 0;
8231 font-style: italic;
8232 }
8233
8234 .yatra-review-message {
8235 padding: 16px 20px;
8236 border-radius: 8px;
8237 margin-bottom: 20px;
8238 font-size: 14px;
8239 }
8240
8241 .yatra-review-message p {
8242 margin: 0;
8243 padding: 0;
8244 }
8245
8246 .yatra-review-message-success {
8247 background: #dcfce7;
8248 color: #166534;
8249 border: 1px solid #86efac;
8250 }
8251
8252 .yatra-review-message-error {
8253 background: #fef2f2;
8254 color: #991b1b;
8255 border: 1px solid #fca5a5;
8256 }
8257
8258 /* Edit Review Notice */
8259 .yatra-review-edit-notice {
8260 display: flex;
8261 align-items: center;
8262 gap: 10px;
8263 padding: 12px 16px;
8264 background: #eff6ff;
8265 border: 1px solid #bfdbfe;
8266 border-radius: 8px;
8267 margin-bottom: 20px;
8268 color: var(--yatra-primary-darker, #1e40af);
8269 font-size: 14px;
8270 }
8271
8272 .yatra-review-edit-notice svg {
8273 flex-shrink: 0;
8274 color: var(--yatra-primary, #3b82f6);
8275 }
8276
8277 .yatra-review-edit-notice p {
8278 margin: 0;
8279 }
8280
8281 .yatra-loading-spinner {
8282 display: inline-block;
8283 width: 16px;
8284 height: 16px;
8285 border: 2px solid rgba(255, 255, 255, 0.3);
8286 border-radius: 50%;
8287 border-top-color: #fff;
8288 animation: yatra-spin 0.8s linear infinite;
8289 }
8290
8291 /* Review form responsive */
8292 @media (max-width: 768px) {
8293 .yatra-review-summary {
8294 padding: 24px;
8295 }
8296
8297 .yatra-review-summary-number {
8298 font-size: 36px;
8299 }
8300
8301 .yatra-star-label {
8302 font-size: 28px;
8303 }
8304
8305 .yatra-review-form-section {
8306 margin-top: 32px;
8307 padding-top: 32px;
8308 }
8309 }
8310
8311 /* ============================================
8312 REQUIREMENTS & POLICIES
8313 ============================================ */
8314 .yatra-requirements-grid {
8315 display: grid;
8316 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
8317 gap: 24px;
8318 margin-top: 32px;
8319 }
8320
8321 .yatra-requirement-card {
8322 background: #f9fafb;
8323 border-radius: 12px;
8324 padding: 24px;
8325 border: 1px solid #e5e7eb;
8326 }
8327
8328 .yatra-requirement-title {
8329 font-size: 18px;
8330 font-weight: 700;
8331 color: #111827;
8332 margin: 0 0 16px 0;
8333 display: flex;
8334 align-items: center;
8335 gap: 10px;
8336 }
8337
8338 .yatra-requirement-icon {
8339 width: 24px;
8340 height: 24px;
8341 color: var(--yatra-primary, #3b82f6);
8342 }
8343
8344 .yatra-requirement-content {
8345 font-size: 15px;
8346 line-height: 1.7;
8347 color: #4b5563;
8348 margin: 0;
8349 }
8350
8351 /* ============================================
8352 ACCOMMODATION & TRANSPORTATION
8353 ============================================ */
8354 .yatra-accommodation-transport {
8355 display: grid;
8356 grid-template-columns: 1fr 1fr;
8357 gap: 32px;
8358 margin-top: 32px;
8359 }
8360
8361 .yatra-accommodation-card,
8362 .yatra-transport-card {
8363 background: #f9fafb;
8364 border-radius: 12px;
8365 padding: 24px;
8366 border: 1px solid #e5e7eb;
8367 }
8368
8369 .yatra-accommodation-title,
8370 .yatra-transport-title {
8371 font-size: 20px;
8372 font-weight: 700;
8373 color: #111827;
8374 margin: 0 0 16px 0;
8375 display: flex;
8376 align-items: center;
8377 gap: 12px;
8378 }
8379
8380 .yatra-accommodation-icon,
8381 .yatra-transport-icon {
8382 width: 24px;
8383 height: 24px;
8384 color: var(--yatra-primary, #3b82f6);
8385 }
8386
8387 .yatra-accommodation-details,
8388 .yatra-transport-details {
8389 font-size: 15px;
8390 line-height: 1.8;
8391 color: #374151;
8392 margin: 0;
8393 }
8394
8395 /* ============================================
8396 RESPONSIVE
8397 ============================================ */
8398 @media (max-width: 1024px) {
8399 .yatra-trip-container {
8400 grid-template-columns: 1fr;
8401 gap: var(--yatra-element-gap);
8402 }
8403
8404 .yatra-trip-sidebar {
8405 position: static;
8406 order: -1;
8407 }
8408
8409 .yatra-enquiry-form-grid {
8410 grid-template-columns: 1fr 1fr;
8411 }
8412
8413 .yatra-trip-hero-title {
8414 font-size: 2.75rem;
8415 }
8416
8417 .yatra-included-excluded {
8418 grid-template-columns: 1fr;
8419 }
8420
8421 .yatra-accommodation-transport {
8422 grid-template-columns: 1fr;
8423 }
8424
8425 .yatra-spec-sheet > .yatra-trip-quick-facts {
8426 grid-template-columns: repeat(3, 1fr);
8427 gap: 1px;
8428 padding: 0;
8429 }
8430
8431 .yatra-hero-images {
8432 grid-template-columns: 1fr;
8433 }
8434
8435 /* Stack main + thumbs: fluid main height, strip is horizontal — do not keep desktop 500px column height */
8436 .yatra-hero-main-image {
8437 height: clamp(240px, 52vw, 440px);
8438 }
8439
8440 .yatra-hero-side-images {
8441 flex-direction: row;
8442 overflow-x: auto;
8443 gap: 12px;
8444 height: auto;
8445 min-height: 0;
8446 -webkit-overflow-scrolling: touch;
8447 scrollbar-width: thin;
8448 padding-bottom: 4px;
8449 }
8450
8451 .yatra-side-image-item {
8452 flex: 0 0 auto;
8453 min-width: 148px;
8454 width: 148px;
8455 height: 112px;
8456 max-height: 120px;
8457 flex-shrink: 0;
8458 }
8459
8460 .yatra-side-image-item img {
8461 height: 100%;
8462 object-fit: cover;
8463 }
8464
8465 .yatra-trip-hero-title-new {
8466 font-size: 2rem;
8467 }
8468 }
8469
8470 @media (max-width: 768px) {
8471 .yatra-trip-hero {
8472 height: 65vh;
8473 min-height: 550px;
8474 max-height: 650px;
8475 }
8476
8477 /* Enhanced mobile sticky navigation */
8478 .yatra-sticky-nav-container {
8479 gap: var(--yatra-tiny-gap);
8480 padding: 0 var(--yatra-container-padding);
8481 scroll-behavior: smooth;
8482 scrollbar-width: none; /* Firefox */
8483 -ms-overflow-style: none; /* IE/Edge */
8484 }
8485
8486 .yatra-sticky-nav-container::-webkit-scrollbar {
8487 display: none; /* Chrome/Safari */
8488 }
8489
8490 .yatra-sticky-nav-item {
8491 font-size: 12px;
8492 padding: 12px 8px;
8493 white-space: nowrap;
8494 flex-shrink: 0;
8495 min-width: fit-content;
8496 }
8497
8498 .yatra-sticky-nav-item svg {
8499 width: 16px;
8500 height: 16px;
8501 }
8502
8503 .yatra-sticky-nav-label {
8504 display: none; /* Hide text on very small screens; icon + aria-label remain */
8505 }
8506
8507 /* Show text on slightly larger mobile devices */
8508 @media (min-width: 480px) {
8509 .yatra-sticky-nav-label {
8510 display: inline;
8511 }
8512 .yatra-sticky-nav-item {
8513 padding: 12px 12px;
8514 }
8515 }
8516
8517 /* Hide original sidebar on mobile, show sticky version */
8518 .yatra-trip-sidebar {
8519 display: none !important;
8520 position: static !important;
8521 order: unset !important;
8522 }
8523
8524 .yatra-trip-main {
8525 width: 100%;
8526 max-width: none;
8527 }
8528
8529 .yatra-trip-container {
8530 grid-template-columns: 1fr;
8531 }
8532
8533 .yatra-trip-hero-title {
8534 font-size: 2.25rem;
8535 }
8536
8537 .yatra-trip-hero-subtitle {
8538 font-size: 1.125rem;
8539 }
8540
8541 .yatra-spec-sheet > .yatra-trip-quick-facts {
8542 grid-template-columns: repeat(2, 1fr);
8543 gap: 1px;
8544 padding: 0;
8545 }
8546
8547 .yatra-trip-quick-facts .yatra-rating-display {
8548 flex-direction: column;
8549 align-items: flex-start;
8550 gap: 4px;
8551 }
8552
8553 .yatra-trip-hero-new {
8554 padding-top: var(--yatra-hero-mobile-padding-top, 16px);
8555 padding-bottom: var(--yatra-hero-mobile-padding-bottom, 20px);
8556 /* Horizontal padding comes from .yatra-single-trip > .yatra-trip-hero-new — avoid doubling */
8557 }
8558
8559 .yatra-trip-hero-title-new {
8560 font-size: 1.75rem;
8561 }
8562
8563 .yatra-hero-main-image {
8564 height: clamp(220px, 58vw, 400px);
8565 }
8566
8567 .yatra-hero-meta {
8568 flex-wrap: wrap;
8569 gap: 8px;
8570 }
8571
8572 .yatra-hero-rating {
8573 flex-wrap: wrap;
8574 gap: 8px;
8575 }
8576
8577 .yatra-hero-location,
8578 .yatra-hero-duration,
8579 .yatra-hero-season {
8580 font-size: 14px;
8581 }
8582
8583 .yatra-hero-breadcrumb {
8584 font-size: 12px;
8585 margin-bottom: 10px;
8586 }
8587
8588 .yatra-hero-breadcrumb-current {
8589 font-weight: 400;
8590 }
8591
8592 .yatra-hero-images {
8593 gap: 12px;
8594 }
8595
8596 /* Keep savings badge top-right so it does not stack on media badges (top-left) */
8597 .yatra-hero-discount-tag {
8598 top: 12px;
8599 right: 12px;
8600 left: auto;
8601 padding: 8px 14px;
8602 font-size: 12px;
8603 }
8604
8605 .yatra-hero-book-now-btn {
8606 padding: 12px 20px;
8607 font-size: 14px;
8608 }
8609
8610 .yatra-sticky-nav-container {
8611 gap: var(--yatra-element-gap);
8612 padding: 0 var(--yatra-container-padding);
8613 }
8614
8615 .yatra-sticky-nav-item {
8616 font-size: 13px;
8617 padding: 14px 0;
8618 }
8619
8620 .yatra-sticky-nav-price {
8621 font-size: 16px;
8622 }
8623
8624 .yatra-hero-side-images {
8625 flex-direction: row;
8626 overflow-x: auto;
8627 gap: 12px;
8628 -webkit-overflow-scrolling: touch;
8629 height: auto;
8630 min-height: 0;
8631 scrollbar-width: thin;
8632 }
8633
8634 .yatra-side-image-item {
8635 flex: 0 0 auto;
8636 min-width: 132px;
8637 width: 132px;
8638 height: 100px;
8639 max-height: 108px;
8640 }
8641
8642 .yatra-side-image-item img {
8643 height: 100%;
8644 object-fit: cover;
8645 }
8646
8647 .yatra-hero-tags {
8648 flex-wrap: wrap;
8649 gap: 8px;
8650 padding: 16px 0;
8651 }
8652
8653 .yatra-tag {
8654 font-size: 11px;
8655 padding: 6px 12px;
8656 }
8657
8658 .yatra-carbon-badge {
8659 margin-left: 0;
8660 width: 100%;
8661 margin-top: 8px;
8662 }
8663
8664 .yatra-quick-fact {
8665 gap: 12px;
8666 padding: 12px 14px;
8667 }
8668
8669 .yatra-quick-fact-icon svg {
8670 width: 22px;
8671 height: 22px;
8672 min-width: 22px;
8673 min-height: 22px;
8674 }
8675
8676 .yatra-quick-fact-label {
8677 font-size: 11px;
8678 margin-bottom: 4px;
8679 }
8680
8681 .yatra-quick-fact-value {
8682 font-size: 15px;
8683 }
8684
8685 .yatra-quick-fact-price {
8686 font-size: 15px;
8687 }
8688
8689 .yatra-quick-fact-price-label {
8690 font-size: 11px;
8691 margin-top: 4px;
8692 }
8693
8694 .yatra-hero-gallery-play {
8695 bottom: 20px;
8696 right: 20px;
8697 width: 60px;
8698 height: 60px;
8699 }
8700
8701 .yatra-hero-gallery-play svg {
8702 width: 24px;
8703 height: 24px;
8704 }
8705
8706 .yatra-hero-gallery-play span {
8707 font-size: 9px;
8708 }
8709
8710 .yatra-gallery-modal-content {
8711 width: 100%;
8712 height: 100vh;
8713 max-height: 100vh;
8714 border-radius: 0;
8715 }
8716
8717 .yatra-gallery-modal-prev,
8718 .yatra-gallery-modal-next {
8719 width: 40px;
8720 height: 40px;
8721 }
8722
8723 .yatra-gallery-modal-prev {
8724 left: 10px;
8725 }
8726
8727 .yatra-gallery-modal-next {
8728 right: 10px;
8729 }
8730
8731 .yatra-gallery-modal-close {
8732 top: 10px;
8733 right: 10px;
8734 width: 36px;
8735 height: 36px;
8736 }
8737
8738 /* Account for WordPress admin bar on mobile */
8739 .admin-bar .yatra-gallery-modal-close {
8740 top: 56px; /* 10px + 46px admin bar on mobile */
8741 }
8742
8743 .admin-bar .yatra-gallery-modal-content {
8744 margin-top: 46px;
8745 max-height: calc(100vh - 46px);
8746 }
8747
8748 .yatra-gallery-thumbnail {
8749 width: 60px;
8750 height: 60px;
8751 }
8752
8753 .yatra-trip-section {
8754 padding: 32px 24px;
8755 }
8756
8757 .yatra-trip-section-title {
8758 font-size: 24px;
8759 }
8760
8761 .yatra-trip-gallery {
8762 grid-template-columns: repeat(2, 1fr);
8763 }
8764
8765 .yatra-trip-testimonials {
8766 grid-template-columns: 1fr;
8767 }
8768 }
8769
8770 @media (max-width: 480px) {
8771 .yatra-trip-hero {
8772 padding-top: 20px;
8773 }
8774
8775 .yatra-trip-hero-title {
8776 font-size: 1.875rem;
8777 }
8778
8779 .yatra-trip-hero-title-new {
8780 font-size: 1.4rem;
8781 line-height: 1.25;
8782 }
8783
8784 .yatra-hero-main-image {
8785 height: clamp(200px, 62vw, 360px);
8786 border-radius: 12px;
8787 }
8788
8789 .yatra-hero-book-now-container {
8790 left: auto;
8791 right: 10px;
8792 bottom: 10px;
8793 width: auto;
8794 }
8795
8796 .yatra-hero-book-now-btn {
8797 width: auto;
8798
8799 justify-content: center;
8800 font-size: 13px;
8801 padding: 10px 16px;
8802 }
8803
8804 .yatra-trip-section {
8805 padding: 24px 20px;
8806 }
8807
8808 .yatra-trip-section#itinerary {
8809 padding: 20px 12px;
8810 }
8811
8812 .yatra-trip-section-title {
8813 font-size: 22px;
8814 }
8815
8816 .yatra-toggle-all-btn {
8817 font-size: 12px;
8818 padding: 10px 12px;
8819 }
8820
8821 .yatra-itinerary-day-header {
8822 padding: 12px 12px;
8823 }
8824
8825 .yatra-day-badge {
8826 font-size: 12px;
8827 padding: 5px 10px;
8828 }
8829
8830 .yatra-day-title {
8831 font-size: 15px;
8832 }
8833
8834 .yatra-itinerary-day-content {
8835 padding: 14px 10px;
8836 margin-left: 0;
8837 }
8838
8839 .yatra-trip-section#itinerary .yatra-itinerary-day,
8840 .yatra-itinerary-day {
8841 padding-left: 0;
8842 margin-left: 0;
8843 }
8844
8845 .yatra-entries-timeline {
8846 padding-left: 18px;
8847 }
8848
8849 .yatra-entries-timeline::before {
8850 left: 4px;
8851 }
8852
8853 .yatra-entry-timeline-dot {
8854 left: -18px;
8855 width: 10px;
8856 height: 10px;
8857 }
8858
8859 .yatra-trip-section#itinerary .yatra-gallery-grid {
8860 grid-template-columns: repeat(2, minmax(0, 1fr));
8861 gap: 6px;
8862 }
8863
8864 .yatra-booking-card {
8865 padding: 24px;
8866 }
8867
8868 .yatra-booking-price-amount {
8869 font-size: 42px;
8870 }
8871
8872 .yatra-trip-gallery {
8873 grid-template-columns: 1fr;
8874 }
8875
8876 .yatra-spec-sheet > .yatra-trip-quick-facts {
8877 grid-template-columns: 1fr;
8878 gap: 1px;
8879 padding: 0;
8880 }
8881 }
8882
8883 /* ============================================
8884 UTILITIES
8885 ============================================ */
8886 .yatra-badge {
8887 display: inline-flex;
8888 align-items: center;
8889 gap: 6px;
8890 padding: 6px 14px;
8891 border-radius: 20px;
8892 font-size: 12px;
8893 font-weight: 600;
8894 text-transform: uppercase;
8895 letter-spacing: 0.5px;
8896 }
8897
8898 .yatra-badge-featured {
8899 background: #fef3c7;
8900 color: #92400e;
8901 }
8902
8903 .yatra-badge-popular {
8904 background: #dbeafe;
8905 color: var(--yatra-primary-darker, #1e40af);
8906 }
8907
8908 .yatra-badge-new {
8909 background: #d1fae5;
8910 color: #065f46;
8911 }
8912
8913 .yatra-badge-limited {
8914 background: #fee2e2;
8915 color: #991b1b;
8916 }
8917
8918 .yatra-badge-bestseller {
8919 background: #fce7f3;
8920 color: #9f1239;
8921 }
8922
8923 /* ============================================
8924 TRIP AVAILABILITY SECTION
8925 ============================================ */
8926 .yatra-availability-section {
8927 margin-bottom: 48px;
8928 }
8929
8930 .yatra-availability-header {
8931 margin-bottom: 32px;
8932 }
8933
8934 .yatra-availability-header-top {
8935 display: flex;
8936 justify-content: space-between;
8937 align-items: center;
8938 margin-bottom: 12px;
8939 gap: 24px;
8940 }
8941
8942 .yatra-availability-sort {
8943 flex-shrink: 0;
8944 }
8945
8946 .yatra-availability-sort-select {
8947 padding: 10px 16px;
8948 border: 1px solid #e5e7eb;
8949 border-radius: 8px;
8950 font-size: 14px;
8951 font-weight: 500;
8952 color: #374151;
8953 background: #fff;
8954 cursor: pointer;
8955 transition: all 0.2s ease;
8956 min-width: 200px;
8957 }
8958
8959 .yatra-availability-sort-select:hover {
8960 border-color: var(--yatra-primary, #3b82f6);
8961 }
8962
8963 .yatra-availability-sort-select:focus {
8964 outline: none;
8965 border-color: var(--yatra-primary, #3b82f6);
8966 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
8967 }
8968
8969 .yatra-availability-subtitle {
8970 font-size: 16px;
8971 color: #6b7280;
8972 margin: 0;
8973 }
8974
8975 .yatra-availability-filters {
8976 display: flex;
8977 gap: 12px;
8978 margin-bottom: 32px;
8979 flex-wrap: wrap;
8980 }
8981
8982 .yatra-availability-filter-btn {
8983 padding: 10px 20px;
8984 border: 1px solid #e5e7eb;
8985 background: #fff;
8986 border-radius: 8px;
8987 font-size: 14px;
8988 font-weight: 500;
8989 color: #374151;
8990 cursor: pointer;
8991 transition: all 0.2s ease;
8992 }
8993
8994 .yatra-availability-filter-btn:hover {
8995 border-color: var(--yatra-primary, #3b82f6);
8996 color: var(--yatra-primary, #3b82f6);
8997 background: #eff6ff;
8998 }
8999
9000 .yatra-availability-filter-btn.active {
9001 background: var(--yatra-primary, #3b82f6);
9002 border-color: var(--yatra-primary, #3b82f6);
9003 color: #fff;
9004 }
9005
9006 /* Availability Card List */
9007 .yatra-availability-list {
9008 display: flex;
9009 flex-direction: column;
9010 gap: 20px;
9011 margin-bottom: 32px;
9012 }
9013
9014 /* Availability Card */
9015 .yatra-availability-card {
9016 background: #fff;
9017 border: 1px solid #e5e7eb;
9018 border-radius: 14px;
9019 overflow: visible;
9020 transition: all 0.2s ease;
9021 position: relative;
9022 }
9023
9024 .yatra-availability-card:hover {
9025 border-color: #d1d5db;
9026 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
9027 }
9028
9029 .yatra-availability-card.open {
9030 border-color: #bfdbfe;
9031 box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
9032 }
9033
9034 /* Selected card state - highlighted with blue border */
9035 .yatra-availability-card.selected {
9036 border-color: var(--yatra-primary, #3b82f6);
9037 box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1), 0 10px 30px rgba(15, 23, 42, 0.08);
9038 background: #f0f9ff;
9039 }
9040
9041 .yatra-availability-card.selected .yatra-availability-card-header {
9042 background: #eff6ff;
9043 }
9044
9045 /* Card Header - Clean Modern Design */
9046 .yatra-availability-card-header {
9047 position: relative;
9048 padding: 20px 24px;
9049 cursor: pointer;
9050 user-select: none;
9051 background: #f8fafc;
9052 transition: all 0.2s ease;
9053 border-bottom: 1px solid #e2e8f0;
9054 }
9055
9056 .yatra-availability-card-header:hover {
9057 background: #f1f5f9;
9058 }
9059
9060 /* Day Trip Date Header */
9061 .yatra-card-date-header {
9062 display: flex;
9063 align-items: center;
9064 gap: 8px;
9065 font-size: 14px;
9066 font-weight: 600;
9067 color: var(--yatra-primary-dark, #2563eb);
9068 margin-bottom: 12px;
9069 padding-bottom: 12px;
9070 border-bottom: 1px solid #e5e7eb;
9071 }
9072
9073 .yatra-card-date-header svg {
9074 width: 16px;
9075 height: 16px;
9076 color: var(--yatra-primary-dark, #2563eb);
9077 }
9078
9079 /* Day Trip Grid - adjusted for time display */
9080 .yatra-day-trip-grid .yatra-card-header-date {
9081 font-size: 18px;
9082 font-weight: 700;
9083 }
9084
9085 .yatra-card-header-grid {
9086 display: grid;
9087 grid-template-columns: 1fr 1fr auto auto auto;
9088 gap: 20px;
9089 align-items: center;
9090 }
9091
9092 /* Badges row: full width under optional day-trip date, above header grid (original → savings → urgency → status) */
9093 .yatra-card-badges-container {
9094 position: static;
9095 width: 100%;
9096 display: flex;
9097 flex-direction: row;
9098 flex-wrap: wrap;
9099 align-items: center;
9100 justify-content: flex-end;
9101 gap: 8px;
9102 margin: 0 0 14px 0;
9103 padding: 0;
9104 max-width: 100%;
9105 z-index: 1;
9106 }
9107
9108 .yatra-card-date-header + .yatra-card-badges-container {
9109 margin-top: 2px;
9110 }
9111
9112 .yatra-availability-badge-row__original {
9113 display: inline-block;
9114 font-size: 13px;
9115 font-weight: 600;
9116 color: #9ca3af;
9117 text-decoration: line-through;
9118 white-space: nowrap;
9119 line-height: 1.2;
9120 letter-spacing: -0.02em;
9121 }
9122
9123 .yatra-card-badges-container .yatra-card-discount-badge {
9124 display: inline-flex;
9125 align-items: center;
9126 margin: 0;
9127 }
9128
9129 /* Urgency copy: same row as status, immediately before Available (no discount required) */
9130 .yatra-card-badges-container .yatra-availability-urgency-message {
9131 display: inline-flex;
9132 align-items: center;
9133
9134 padding: 5px 8px;
9135 background-color: #fef3c7;
9136 color: #92400e;
9137 border-radius: 6px;
9138 font-size: 11px;
9139 font-weight: 600;
9140 line-height: 1.25;
9141 white-space: normal;
9142 text-align: left;
9143 box-shadow: 0 1px 2px rgba(146, 64, 14, 0.12);
9144 }
9145
9146 .yatra-card-header-item {
9147 display: flex;
9148 flex-direction: column;
9149 gap: 6px;
9150 min-width: 0;
9151 }
9152
9153 .yatra-card-header-label {
9154 font-size: 10px;
9155 font-weight: 600;
9156 color: #9ca3af;
9157 text-transform: uppercase;
9158 letter-spacing: 0.5px;
9159 line-height: 1;
9160 }
9161
9162 .yatra-card-header-date {
9163 font-size: 16px;
9164 font-weight: 700;
9165 color: #111827;
9166 line-height: 1.2;
9167 margin-bottom: 2px;
9168 }
9169
9170 .yatra-card-header-location {
9171 font-size: 13px;
9172 color: #6b7280;
9173 line-height: 1.4;
9174 font-weight: 400;
9175 white-space: nowrap;
9176 overflow: hidden;
9177 text-overflow: ellipsis;
9178 }
9179
9180 .yatra-card-header-seats {
9181 font-size: 20px;
9182 font-weight: 700;
9183 color: #111827;
9184 line-height: 1;
9185 margin-bottom: 4px;
9186 }
9187
9188 .yatra-card-header-sub {
9189 font-size: 12px;
9190 color: #9ca3af;
9191 line-height: 1.2;
9192 font-weight: 400;
9193 }
9194
9195 .yatra-card-header-price {
9196 position: relative;
9197 display: flex;
9198 flex-direction: column;
9199 align-items: flex-end;
9200 gap: 6px;
9201 flex-shrink: 0;
9202 min-width: 140px;
9203 }
9204
9205 .yatra-card-price-group {
9206 display: flex;
9207 flex-direction: column;
9208 align-items: flex-end;
9209 gap: 2px;
9210 }
9211
9212 /* Availability header: sale + label only (original / % live in .yatra-card-badges-container) */
9213 .yatra-card-price-group.yatra-card-price-group--stack {
9214 flex-direction: column;
9215 align-items: flex-end;
9216 gap: 4px;
9217 }
9218
9219 .yatra-sale-price {
9220 font-size: 20px;
9221 font-weight: 700;
9222 color: #111827;
9223 line-height: 1;
9224 letter-spacing: -0.5px;
9225 }
9226
9227 .yatra-price-label {
9228 font-size: 12px;
9229 color: #9ca3af;
9230 font-weight: 400;
9231 line-height: 1;
9232 }
9233
9234 .yatra-card-discount-badge {
9235 padding: 6px 12px;
9236 background: #dc2626;
9237 color: #fff;
9238 font-size: 11px;
9239 font-weight: 600;
9240 border-radius: 6px;
9241 text-transform: uppercase;
9242 letter-spacing: 0.5px;
9243 line-height: 1;
9244 white-space: nowrap;
9245 box-shadow: 0 2px 4px rgba(220, 38, 38, 0.3);
9246 }
9247
9248 .yatra-badge-discount {
9249 background: #16a34a;
9250 color: #fff;
9251 }
9252
9253 .yatra-badge-higher {
9254 background: #ef4444;
9255 color: #fff;
9256 }
9257
9258 .yatra-card-price-original {
9259 font-size: 12px;
9260 color: #9ca3af;
9261 text-decoration: line-through;
9262 line-height: 1.2;
9263 }
9264
9265 .yatra-card-price-sale {
9266 font-size: 18px;
9267 font-weight: 700;
9268 color: #111827;
9269 line-height: 1.2;
9270 }
9271
9272 .yatra-card-header-arrow {
9273 display: flex;
9274 align-items: center;
9275 justify-content: center;
9276 width: 24px;
9277 height: 24px;
9278 color: #9ca3af;
9279 transition: all 0.2s ease;
9280 }
9281
9282 .yatra-card-header-arrow:hover {
9283 color: #6b7280;
9284 }
9285
9286 .yatra-availability-card.open .yatra-card-header-arrow {
9287 transform: rotate(180deg);
9288 color: var(--yatra-primary-dark, #2563eb);
9289 }
9290
9291 /* Card Body */
9292 .yatra-availability-card-body {
9293 display: none;
9294 padding: 16px;
9295 background: #fefefe;
9296 border-top: 1px solid #e2e8f0;
9297 overflow: visible;
9298 position: relative;
9299 border-radius:0 0 14px 14px;
9300 }
9301
9302 .yatra-availability-card.open .yatra-availability-card-body {
9303 display: block;
9304 }
9305
9306 .yatra-card-body-content {
9307 display: flex;
9308 flex-direction: column;
9309 gap: 12px;
9310 }
9311
9312 .yatra-card-tour-header {
9313 display: flex;
9314 flex-direction: column;
9315 gap: 4px;
9316 }
9317
9318 .yatra-card-tour-title {
9319 font-size: 18px;
9320 font-weight: 600;
9321 color: #111827;
9322 margin: 0;
9323 line-height: 1.4;
9324 }
9325
9326 .yatra-card-tour-meta {
9327 display: flex;
9328 align-items: center;
9329 gap: 6px;
9330 flex-wrap: wrap;
9331 }
9332
9333 .yatra-card-tour-type {
9334 font-size: 13px;
9335 color: var(--yatra-primary, #3b82f6);
9336 font-weight: 500;
9337 line-height: 1.4;
9338 }
9339
9340 .yatra-card-tour-separator {
9341 font-size: 13px;
9342 color: #9ca3af;
9343 line-height: 1.4;
9344 }
9345
9346 .yatra-card-tour-location {
9347 font-size: 13px;
9348 color: #6b7280;
9349 line-height: 1.4;
9350 }
9351
9352 /* Info Grid */
9353 .yatra-card-info-grid {
9354 display: flex;
9355 flex-wrap: wrap;
9356 gap: 14px;
9357 padding: 0;
9358 background: transparent;
9359 border-radius: 0;
9360 border: none;
9361 }
9362
9363 .yatra-card-info-item {
9364 display: flex;
9365 gap: 8px;
9366 align-items: center;
9367 padding: 0;
9368 background: transparent;
9369 border: none;
9370 border-radius: 0;
9371 }
9372
9373 .yatra-card-info-icon {
9374 flex-shrink: 0;
9375 width: 18px;
9376 height: 18px;
9377 display: flex;
9378 align-items: center;
9379 justify-content: center;
9380 background: transparent;
9381 border-radius: 0;
9382 color: var(--yatra-primary-dark, #2563eb);
9383 }
9384
9385 .yatra-card-info-icon svg {
9386 width: 18px;
9387 height: 18px;
9388 }
9389
9390 .yatra-card-info-content {
9391 flex: 1;
9392 display: flex;
9393 flex-direction: row;
9394 align-items: baseline;
9395 gap: 8px;
9396 }
9397
9398 .yatra-card-info-label {
9399 font-size: 13px;
9400 font-weight: 600;
9401 color: #475569;
9402 text-transform: none;
9403 letter-spacing: 0;
9404 line-height: 1.3;
9405 }
9406
9407 .yatra-card-info-value {
9408 font-size: 13px;
9409 font-weight: 700;
9410 color: #0f172a;
9411 line-height: 1.3;
9412 }
9413
9414 /* Timeline */
9415 .yatra-card-timeline {
9416 display: grid;
9417 grid-template-columns: 1fr 1fr;
9418 gap: 16px;
9419 padding: 10px;
9420 background: #f9fafb;
9421 border-radius: 8px;
9422 border: none;
9423 }
9424
9425 .yatra-timeline-item {
9426 position: relative;
9427 display: flex;
9428 gap: 10px;
9429 align-items: flex-start;
9430 }
9431
9432 .yatra-timeline-dot {
9433 flex-shrink: 0;
9434 width: 10px;
9435 height: 10px;
9436 border-radius: 50%;
9437 border: 2px solid #fff;
9438 margin-top: 20px;
9439 }
9440
9441 .yatra-timeline-dot-start {
9442 background: #10b981;
9443 box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.2);
9444 }
9445
9446 .yatra-timeline-dot-end {
9447 background: #ef4444;
9448 box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
9449 }
9450
9451 .yatra-timeline-content {
9452 flex: 1;
9453 }
9454
9455 .yatra-timeline-label {
9456 font-size: 10px;
9457 font-weight: 600;
9458 color: #6b7280;
9459 text-transform: uppercase;
9460 letter-spacing: 0.4px;
9461 margin-bottom: 3px;
9462 line-height: 1.3;
9463 }
9464
9465 .yatra-timeline-date {
9466 font-size: 14px;
9467 font-weight: 600;
9468 color: #111827;
9469 margin-bottom: 2px;
9470 line-height: 1.3;
9471 }
9472
9473 .yatra-timeline-location {
9474 font-size: 12px;
9475 color: #6b7280;
9476 line-height: 1.4;
9477 }
9478
9479 .yatra-card-traveler-section {
9480 display: flex;
9481 flex-direction: column;
9482 gap: 8px;
9483 }
9484
9485 .yatra-card-action-steps {
9486 display: flex;
9487 align-items: center;
9488 gap: 8px;
9489 padding: 0;
9490 background: transparent;
9491 border: none;
9492 border-radius: 0;
9493 margin-top: 2px;
9494 }
9495
9496 .yatra-card-action-step {
9497 display: inline-flex;
9498 align-items: center;
9499 gap: 8px;
9500 font-size: 13px;
9501 font-weight: 600;
9502 color: #0f172a;
9503 line-height: 1.2;
9504 }
9505
9506 .yatra-card-action-step-num {
9507 width: 20px;
9508 height: 20px;
9509 display: inline-flex;
9510 align-items: center;
9511 justify-content: center;
9512 border-radius: 999px;
9513 background: var(--yatra-primary-dark, #2563eb);
9514 color: #fff;
9515 font-size: 11px;
9516 font-weight: 700;
9517 flex-shrink: 0;
9518 }
9519
9520 .yatra-card-action-step-sep {
9521 color: #94a3b8;
9522 font-weight: 700;
9523 }
9524
9525 .yatra-card-action-help {
9526 font-size: 12px;
9527 color: #64748b;
9528 line-height: 1.4;
9529 margin-top: 0;
9530 }
9531
9532 .yatra-card-traveler-label {
9533 font-size: 12px;
9534 font-weight: 600;
9535 color: #374151;
9536 line-height: 1.4;
9537 }
9538
9539 .yatra-card-traveler-section .yatra-booking-field-select {
9540 width: 100%;
9541 border-color: #e5e7eb;
9542 border-radius: 12px;
9543 min-height: 52px;
9544 height: 52px;
9545 }
9546
9547 .yatra-card-traveler-section .yatra-booking-field-select:focus-within {
9548 border-color: #93c5fd;
9549 box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.12);
9550 }
9551
9552 .yatra-card-traveler-section .yatra-booking-field-icon {
9553 color: var(--yatra-primary-dark, #2563eb);
9554 }
9555
9556 /* Availability card traveler dropdown polish */
9557 .yatra-availability-card .yatra-availability-participants {
9558 width: 100%;
9559 }
9560
9561 .yatra-availability-card .yatra-availability-participants .yatra-booking-field-select {
9562 border-radius: 12px;
9563 border-color: #e5e7eb;
9564 background: #fff;
9565 min-height: 52px;
9566 height: 52px;
9567 }
9568
9569 .yatra-availability-card .yatra-availability-participants .yatra-booking-field-icon {
9570 padding: 0 14px;
9571 color: var(--yatra-primary-dark, #2563eb);
9572 }
9573
9574 .yatra-availability-card .yatra-availability-participants-display {
9575 padding: 0 42px 0 0;
9576 font-size: 14px;
9577 font-weight: 600;
9578 color: #0f172a;
9579 }
9580
9581 .yatra-availability-card .yatra-select-arrow {
9582 right: 14px;
9583 width: 18px;
9584 height: 18px;
9585 color: #64748b;
9586 }
9587
9588 .yatra-availability-card .yatra-availability-quantity-selector {
9589 left: 0;
9590 right: 0;
9591 margin-top: 10px;
9592 border-radius: 14px;
9593 border-color: #e5e7eb;
9594 padding: 12px;
9595 }
9596
9597 .yatra-availability-card .yatra-quantity-row {
9598 padding: 10px 8px;
9599 border-radius: 10px;
9600 }
9601
9602 .yatra-availability-card .yatra-quantity-row:not(:last-child) {
9603 border-bottom: 1px solid #f1f5f9;
9604 margin-bottom: 2px;
9605 padding-bottom: 10px;
9606 }
9607
9608 /* Simple Travelers Display in Availability Cards */
9609 .yatra-availability-travelers-simple {
9610 display: flex;
9611 align-items: center;
9612 gap: 12px;
9613 padding: 10px 14px;
9614 background: #f9fafb;
9615 border: 1px solid #e5e7eb;
9616 border-radius: 8px;
9617 }
9618
9619 .yatra-availability-travelers-simple .yatra-booking-field-icon {
9620 flex-shrink: 0;
9621 }
9622
9623 .yatra-availability-travelers-simple .yatra-quantity-input-simple {
9624 width: 45px;
9625 font-size: 14px;
9626 font-weight: 600;
9627 color: #111827;
9628 background: transparent;
9629 border: none;
9630 }
9631
9632 .yatra-availability-travelers-simple .yatra-quantity-btn {
9633 width: 28px;
9634 height: 28px;
9635 display: flex;
9636 align-items: center;
9637 justify-content: center;
9638 background: #fff;
9639 border: 1px solid #d1d5db;
9640 border-radius: 6px;
9641 cursor: pointer;
9642 transition: all 0.15s ease;
9643 }
9644
9645 .yatra-availability-travelers-simple .yatra-quantity-btn:hover:not(:disabled) {
9646 background: #f3f4f6;
9647 border-color: var(--yatra-primary-dark, #2563eb);
9648 }
9649
9650 .yatra-availability-travelers-simple .yatra-quantity-btn:disabled {
9651 opacity: 0.5;
9652 cursor: not-allowed;
9653 }
9654
9655 .yatra-availability-travelers-simple .yatra-quantity-btn svg {
9656 width: 14px;
9657 height: 14px;
9658 color: #374151;
9659 }
9660
9661 .yatra-availability-travelers-simple .yatra-travelers-label {
9662 font-size: 13px;
9663 color: #6b7280;
9664 margin-left: 4px;
9665 }
9666
9667 /* Booking Row */
9668 .yatra-card-booking-row {
9669 display: flex;
9670 gap: 10px;
9671 align-items: stretch;
9672 margin-top: 16px;
9673 padding-top: 16px;
9674 border-top: 1px solid #eef2f7;
9675 }
9676
9677 .yatra-card-total-box {
9678 flex: 1;
9679 padding: 8px 12px;
9680 background: #f8fafc;
9681 border: 1px solid #eef2f7;
9682 border-radius: 12px;
9683 display: flex;
9684 flex-direction: row;
9685 align-items: center;
9686 gap: 6px;
9687 }
9688
9689 .yatra-card-total-label {
9690 font-size: 12px;
9691 font-weight: 600;
9692 color: #6b7280;
9693 text-transform: uppercase;
9694 letter-spacing: 0.5px;
9695 white-space: nowrap;
9696 }
9697
9698 .yatra-card-total-note {
9699 font-size: 12px;
9700 color: #6b7280;
9701 white-space: nowrap;
9702 }
9703
9704 .yatra-card-total-amount {
9705 font-size: 16px;
9706 font-weight: 700;
9707 color: var(--yatra-primary, #3b82f6);
9708 line-height: 1;
9709 white-space: nowrap;
9710 margin-left: auto;
9711 }
9712
9713 button[type="button"].yatra-card-book-btn {
9714 flex: 1;
9715 padding: 12px 16px;
9716 background: var(--yatra-primary, #3b82f6);
9717 color: #fff;
9718 border: none;
9719 border-radius: 12px;
9720 font-size: 13px;
9721 font-weight: 600;
9722 cursor: pointer;
9723 transition: all 0.2s ease;
9724 white-space: nowrap;
9725 display: inline-flex;
9726 align-items: center;
9727 justify-content: center;
9728 gap: 10px;
9729 text-align: left;
9730 text-decoration: none;
9731 }
9732
9733 .yatra-card-book-btn svg {
9734 width: 18px;
9735 height: 18px;
9736 flex-shrink: 0;
9737 }
9738
9739 .yatra-card-book-btn-text {
9740 display: flex;
9741 flex-direction: column;
9742 align-items: flex-start;
9743 line-height: 1.1;
9744 }
9745
9746 .yatra-card-book-btn-title {
9747 font-size: 14px;
9748 font-weight: 700;
9749 color: #fff;
9750 }
9751
9752 .yatra-card-book-btn-subtitle {
9753 font-size: 11px;
9754 font-weight: 500;
9755 color: rgba(255,255,255,0.9);
9756 }
9757
9758 .yatra-card-book-btn:hover:not(:disabled),
9759 a.yatra-card-book-btn:hover {
9760 background: var(--yatra-primary-dark, #2563eb);
9761 transform: translateY(-1px);
9762 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
9763 color: #fff;
9764 text-decoration: none;
9765 }
9766
9767 .yatra-card-book-btn:disabled {
9768 background: #9ca3af;
9769 cursor: not-allowed;
9770 opacity: 0.7;
9771 }
9772
9773 /* Availability Participants Select */
9774 .yatra-availability-participants {
9775 position: relative;
9776 width: 100%;
9777 cursor: pointer;
9778 }
9779
9780 .yatra-availability-participants-display {
9781 flex: 1;
9782 padding: 14px 12px 14px 0;
9783 font-size: 15px;
9784 font-weight: 500;
9785 color: #111827;
9786 cursor: pointer;
9787 user-select: none;
9788 height: 100%;
9789 display: flex;
9790 align-items: center;
9791 transition: color 0.2s ease;
9792 }
9793
9794 .yatra-availability-participants:hover .yatra-availability-participants-display {
9795 color: var(--yatra-primary, #3b82f6);
9796 }
9797
9798 .yatra-availability-quantity-selector {
9799 position: absolute;
9800 top: 100%;
9801 left: -12px;
9802 right: -12px;
9803 margin-top: 8px;
9804 border: 1px solid #e5e7eb;
9805 border-radius: 12px;
9806 padding: 12px;
9807 background: #fff;
9808 box-shadow: 0 10px 25px rgba(0,0,0,0.1), 0 4px 6px rgba(0,0,0,0.05);
9809 z-index: 1000;
9810 display: none;
9811 max-height: 350px;
9812 overflow-y: auto;
9813 }
9814
9815 .yatra-availability-participants.active .yatra-availability-quantity-selector {
9816 display: block;
9817 animation: yatra-trip-dropdown-slide 0.2s ease-out;
9818 }
9819
9820 /* Responsive */
9821 @media (max-width: 1024px) {
9822 .yatra-card-header-grid {
9823 grid-template-columns: 1fr 1fr;
9824 gap: 16px;
9825 }
9826
9827 .yatra-card-header-price {
9828 grid-column: 1 / -1;
9829 align-items: flex-start;
9830 }
9831
9832 .yatra-card-header-arrow {
9833 grid-column: 2;
9834 grid-row: 1;
9835 justify-self: end;
9836 }
9837
9838 .yatra-card-body-content {
9839 gap: 16px;
9840 }
9841 }
9842
9843 @media (max-width: 768px) {
9844 .yatra-availability-card-header {
9845 padding: 14px 16px;
9846 }
9847
9848 .yatra-card-header-grid {
9849 grid-template-columns: 1fr;
9850 gap: 10px;
9851 }
9852
9853 .yatra-card-header-arrow {
9854 position: absolute;
9855 top: 14px;
9856 right: 16px;
9857 }
9858
9859 .yatra-availability-card-body {
9860 padding: 14px;
9861 }
9862
9863 .yatra-card-body-content {
9864 gap: 16px;
9865 }
9866
9867 .yatra-card-body-left {
9868 gap: 10px;
9869 }
9870
9871 .yatra-card-info-grid {
9872 grid-template-columns: 1fr;
9873 gap: 10px;
9874 padding: 10px;
9875 }
9876
9877 .yatra-card-booking-row {
9878 flex-direction: column;
9879 margin-top: 12px;
9880 padding-top: 12px;
9881 }
9882
9883 .yatra-card-book-btn {
9884 width: 100%;
9885 }
9886 }
9887
9888 .yatra-availability-toggle {
9889 border: none;
9890 background: transparent;
9891 width: 100%;
9892 border-radius:12px;
9893 }
9894
9895 /* Load More Section */
9896 .yatra-availability-load-more {
9897 display: flex;
9898 flex-direction: column;
9899 gap: 2px;
9900 min-width: 120px;
9901 flex: 1 1 0;
9902 }
9903
9904 .yatra-summary-label {
9905 font-size: 12px;
9906 color: #6b7280;
9907 text-transform: uppercase;
9908 letter-spacing: 0.5px;
9909 }
9910
9911 .yatra-summary-value {
9912 font-size: 16px;
9913 font-weight: 700;
9914 color: #0f172a;
9915 }
9916
9917 .yatra-summary-sub {
9918 font-size: 13px;
9919 color: #6b7280;
9920 }
9921
9922 .yatra-summary-price {
9923 margin-left: auto;
9924 text-align: right;
9925 flex: 0 0 auto;
9926 display: flex;
9927 flex-direction: column;
9928 align-items: flex-end;
9929 gap: 2px;
9930 min-width: 250px;
9931 }
9932
9933 .yatra-summary-price div {
9934 display: flex;
9935 align-items: baseline;
9936 justify-content: flex-end;
9937 gap: 8px;
9938 }
9939
9940 .yatra-summary-original {
9941 font-size: 13px;
9942 color: #9ca3af;
9943 text-decoration: line-through;
9944 }
9945
9946 .yatra-summary-sale {
9947 font-size: 20px;
9948 font-weight: 700;
9949 color: #111827;
9950 }
9951
9952 .yatra-summary-arrow {
9953 width: 14px;
9954 height: 14px;
9955 border-right: 2px solid #374151;
9956 border-bottom: 2px solid #374151;
9957 transform: rotate(45deg);
9958 transition: transform 0.2s ease;
9959 }
9960
9961 .yatra-availability-item.open .yatra-summary-arrow {
9962 transform: rotate(-135deg);
9963 }
9964
9965 .yatra-availability-details {
9966 display: none;
9967 border-top: 1px solid #e5e7eb;
9968 padding: 0 24px 24px;
9969 background: #f9fafb;
9970 }
9971
9972 .yatra-availability-item.open .yatra-availability-details {
9973 display: block;
9974 }
9975
9976 .yatra-availability-details-content {
9977 display: flex;
9978 flex-direction: column;
9979 gap: 20px;
9980 padding-top: 20px;
9981 }
9982
9983 .yatra-details-heading {
9984 display: flex;
9985 flex-direction: column;
9986 gap: 4px;
9987 }
9988
9989 .yatra-details-title {
9990 font-size: 18px;
9991 font-weight: 700;
9992 color: #0f172a;
9993 margin: 0;
9994 }
9995
9996 .yatra-details-subtitle {
9997 font-size: 14px;
9998 color: var(--yatra-primary, #3b82f6);
9999 font-weight: 600;
10000 margin: 0;
10001 }
10002
10003 .yatra-details-timeline {
10004 border-left: 2px dashed #d1d5db;
10005 padding-left: 18px;
10006 margin-left: 10px;
10007 display: flex;
10008 flex-direction: column;
10009 gap: 16px;
10010 }
10011
10012 .yatra-timeline-row {
10013 display: flex;
10014 gap: 12px;
10015 align-items: flex-start;
10016 }
10017
10018 .yatra-timeline-dot {
10019 width: 14px;
10020 height: 14px;
10021 border-radius: 50%;
10022 margin-left: -25px;
10023 margin-top: 20px;
10024 }
10025
10026 .yatra-timeline-dot.success {
10027 background: #10b981;
10028 box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
10029 }
10030
10031 .yatra-timeline-dot.danger {
10032 background: #ef4444;
10033 box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.2);
10034 }
10035
10036 .yatra-timeline-label {
10037 font-size: 12px;
10038 color: #6b7280;
10039 text-transform: uppercase;
10040 letter-spacing: 0.4px;
10041 }
10042
10043 .yatra-timeline-meta {
10044 display: block;
10045 font-size: 13px;
10046 color: #6b7280;
10047 }
10048
10049 .yatra-details-right {
10050 border-left: 1px solid #e5e7eb;
10051 padding-left: 24px;
10052 display: flex;
10053 flex-direction: column;
10054 gap: 16px;
10055 }
10056
10057 .yatra-details-price-group {
10058 display: flex;
10059 flex-direction: column;
10060 gap: 6px;
10061 }
10062
10063 .yatra-details-price-label {
10064 font-size: 12px;
10065 color: #6b7280;
10066 text-transform: uppercase;
10067 letter-spacing: 0.4px;
10068 }
10069
10070 .yatra-details-price {
10071 display: flex;
10072 align-items: baseline;
10073 gap: 8px;
10074 }
10075
10076 .yatra-details-price-note {
10077 font-size: 12px;
10078 color: #6b7280;
10079 }
10080
10081 .yatra-availability-traveler-picker {
10082 display: flex;
10083 flex-direction: column;
10084 gap: 8px;
10085 }
10086
10087 .yatra-availability-traveler-picker .yatra-booking-field-select {
10088 width: 100%;
10089 }
10090
10091 .yatra-availability-total-row {
10092 display: flex;
10093 align-items: center;
10094 gap: 16px;
10095 width: 100%;
10096 }
10097
10098 .yatra-availability-total-price {
10099 display: flex;
10100 flex-direction: column;
10101 background: #f8fafc;
10102 border: 1px solid #e5e7eb;
10103 border-radius: 10px;
10104 padding: 10px 14px;
10105 flex: 1 1 50%;
10106 }
10107
10108 .yatra-availability-total-label {
10109 font-size: 13px;
10110 font-weight: 600;
10111 color: #374151;
10112 text-transform: uppercase;
10113 letter-spacing: 0.4px;
10114 }
10115
10116 .yatra-availability-total-note {
10117 font-size: 12px;
10118 color: #6b7280;
10119 margin-top: 2px;
10120 }
10121
10122 .yatra-availability-total-amount {
10123 font-size: 20px;
10124 font-weight: 700;
10125 color: #0f172a;
10126 }
10127
10128 .yatra-availability-book-btn {
10129 padding: 14px 18px;
10130 border-radius: 12px;
10131 border: none;
10132 background: var(--yatra-primary, #3b82f6);
10133 color: #fff;
10134 font-size: 15px;
10135 font-weight: 600;
10136 cursor: pointer;
10137 transition: background 0.2s ease;
10138 flex: 1 1 50%;
10139 }
10140
10141 .yatra-availability-book-btn:hover {
10142 background: var(--yatra-primary-dark, #2563eb);
10143 }
10144
10145 .yatra-availability-book-btn:disabled {
10146 background: #9ca3af;
10147 cursor: not-allowed;
10148 }
10149
10150 @media (max-width: 640px) {
10151 .yatra-availability-total-row {
10152 flex-direction: column;
10153 }
10154
10155 .yatra-availability-book-btn {
10156 width: 100%;
10157 }
10158 }
10159
10160 .yatra-availability-book-btn:disabled {
10161 background: #9ca3af;
10162 cursor: not-allowed;
10163 }
10164
10165 .yatra-availability-details-content {
10166 flex-direction: column;
10167 }
10168
10169 @media (min-width: 900px) {
10170 .yatra-availability-summary {
10171 flex-wrap: nowrap;
10172 }
10173
10174 .yatra-availability-details-content {
10175 flex-direction: row;
10176 gap: 32px;
10177 }
10178
10179 .yatra-details-left {
10180 flex: 1 1 55%;
10181 }
10182
10183 .yatra-details-right {
10184 flex: 1 1 45%;
10185 }
10186 }
10187
10188 .yatra-availability-date-section {
10189 display: flex;
10190 flex-direction: column;
10191 gap: 12px;
10192 }
10193
10194 .yatra-availability-main-date {
10195 display: flex;
10196 align-items: baseline;
10197 gap: 8px;
10198 }
10199
10200 .yatra-availability-day {
10201 font-size: 13px;
10202 font-weight: 600;
10203 color: #6b7280;
10204 text-transform: uppercase;
10205 letter-spacing: 0.5px;
10206 }
10207
10208 .yatra-availability-date {
10209 font-size: 24px;
10210 font-weight: 700;
10211 color: #111827;
10212 line-height: 1;
10213 }
10214
10215 .yatra-availability-year {
10216 font-size: 16px;
10217 font-weight: 500;
10218 color: #6b7280;
10219 }
10220
10221 .yatra-availability-date-range {
10222 display: flex;
10223 align-items: center;
10224 gap: 12px;
10225 font-size: 13px;
10226 }
10227
10228 .yatra-availability-date-item {
10229 display: flex;
10230 align-items: center;
10231 gap: 6px;
10232 }
10233
10234 .yatra-availability-date-label {
10235 font-weight: 500;
10236 color: #6b7280;
10237 font-size: 12px;
10238 }
10239
10240 .yatra-availability-date-value {
10241 font-weight: 600;
10242 color: #111827;
10243 font-size: 13px;
10244 }
10245
10246 .yatra-availability-separator {
10247 color: #9ca3af;
10248 font-size: 14px;
10249 font-weight: 500;
10250 }
10251
10252 .yatra-availability-location-section {
10253 display: flex;
10254 align-items: center;
10255 gap: 12px;
10256 font-size: 13px;
10257 padding: 12px;
10258 background: #f9fafb;
10259 border-radius: 8px;
10260 }
10261
10262 .yatra-availability-location-item {
10263 display: flex;
10264 align-items: center;
10265 gap: 6px;
10266 flex: 1;
10267 }
10268
10269 .yatra-availability-location-item svg {
10270 color: #6b7280;
10271 flex-shrink: 0;
10272 }
10273
10274 .yatra-availability-location-value {
10275 font-weight: 600;
10276 color: #111827;
10277 font-size: 13px;
10278 }
10279
10280 .yatra-availability-meta {
10281 display: flex;
10282 align-items: center;
10283 gap: 20px;
10284 font-size: 13px;
10285 color: #6b7280;
10286 }
10287
10288 .yatra-availability-duration {
10289 display: flex;
10290 align-items: center;
10291 gap: 6px;
10292 }
10293
10294 .yatra-availability-duration-icon {
10295 width: 14px;
10296 height: 14px;
10297 flex-shrink: 0;
10298 color: #6b7280;
10299 }
10300
10301 .yatra-availability-seats-info {
10302 display: flex;
10303 align-items: center;
10304 gap: 6px;
10305 }
10306
10307 .yatra-availability-seats-info svg {
10308 color: #6b7280;
10309 flex-shrink: 0;
10310 }
10311
10312 .yatra-availability-status-badge {
10313 display: inline-block;
10314 padding: 6px 12px;
10315 border-radius: 6px;
10316 font-size: 12px;
10317 font-weight: 600;
10318 text-transform: uppercase;
10319 letter-spacing: 0.5px;
10320 width: fit-content;
10321 }
10322
10323 .yatra-availability-status-available {
10324 background: #d1fae5;
10325 color: #065f46;
10326 }
10327
10328 .yatra-availability-status-limited {
10329 background: #fef3c7;
10330 color: #92400e;
10331 }
10332
10333 .yatra-availability-status-waitlist {
10334 background: #fee2e2;
10335 color: #991b1b;
10336 }
10337
10338 .yatra-availability-status-sold-out {
10339 background: #fee2e2;
10340 color: #991b1b;
10341 }
10342
10343 .yatra-availability-status-blocked {
10344 background: #1f2937;
10345 color: #f9fafb;
10346 }
10347
10348 .yatra-availability-status-closed {
10349 background: #f3f4f6;
10350 color: #6b7280;
10351 border: 1px solid #d1d5db;
10352 }
10353
10354 .yatra-availability-status-cancelled {
10355 background: #9ca3af;
10356 color: #ffffff;
10357 }
10358
10359 /* Card Header Status Badge - Inline Design */
10360 .yatra-badge-status {
10361 display: inline-flex;
10362 align-items: center;
10363 padding: 6px 12px;
10364 font-size: 11px;
10365 font-weight: 600;
10366 border-radius: 6px;
10367 text-transform: uppercase;
10368 letter-spacing: 0.5px;
10369 line-height: 1;
10370 white-space: nowrap;
10371 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
10372 }
10373
10374 /* Status badge colors - matching discount badge style */
10375 .yatra-badge-status.yatra-badge-available {
10376 background: #10b981;
10377 color: #fff;
10378 }
10379
10380 .yatra-badge-status.yatra-badge-limited {
10381 background: #f59e0b;
10382 color: #fff;
10383 }
10384
10385 .yatra-badge-status.yatra-badge-sold-out {
10386 background: #dc2626;
10387 color: #fff;
10388 }
10389
10390 .yatra-badge-status.yatra-badge-blocked {
10391 background: #1f2937;
10392 color: #fff;
10393 }
10394
10395 .yatra-badge-status.yatra-badge-closed {
10396 background: #6b7280;
10397 color: #fff;
10398 }
10399
10400 .yatra-badge-status.yatra-badge-cancelled {
10401 background: #9ca3af;
10402 color: #fff;
10403 }
10404
10405 /* Status-Specific Card Designs - Left Border Only */
10406 .yatra-availability-card.yatra-card-status-available {
10407 border-left: 4px solid #10b981;
10408 }
10409
10410 .yatra-availability-card.yatra-card-status-available:hover {
10411 border-left-color: #059669;
10412 box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
10413 }
10414
10415 .yatra-availability-card.yatra-card-status-limited {
10416 border-left: 4px solid #f59e0b;
10417 }
10418
10419 .yatra-availability-card.yatra-card-status-limited:hover {
10420 border-left-color: #d97706;
10421 box-shadow: 0 4px 12px rgba(245, 158, 11, 0.15);
10422 }
10423
10424 .yatra-availability-card.yatra-card-status-sold-out {
10425 border-left: 4px solid #ef4444;
10426 opacity: 0.85;
10427 }
10428
10429 .yatra-availability-card.yatra-card-status-sold-out:hover {
10430 border-left-color: #dc2626;
10431 box-shadow: 0 4px 12px rgba(239, 68, 68, 0.15);
10432 }
10433
10434 .yatra-availability-card.yatra-card-status-blocked {
10435 border-left: 4px solid #1f2937;
10436 opacity: 0.7;
10437 }
10438
10439 .yatra-availability-card.yatra-card-status-blocked:hover {
10440 border-left-color: #111827;
10441 box-shadow: 0 4px 12px rgba(31, 41, 55, 0.15);
10442 }
10443
10444 .yatra-availability-card.yatra-card-status-closed {
10445 border-left: 4px solid #6b7280;
10446 opacity: 0.8;
10447 }
10448
10449 .yatra-availability-card.yatra-card-status-closed:hover {
10450 border-left-color: #4b5563;
10451 box-shadow: 0 4px 12px rgba(107, 114, 128, 0.15);
10452 }
10453
10454 .yatra-availability-card.yatra-card-status-cancelled {
10455 border-left: 4px solid #9ca3af;
10456 opacity: 0.75;
10457 }
10458
10459 .yatra-availability-card.yatra-card-status-cancelled:hover {
10460 border-left-color: #6b7280;
10461 box-shadow: 0 4px 12px rgba(156, 163, 175, 0.15);
10462 }
10463
10464 /* Right Column: Pricing & Booking */
10465 .yatra-availability-right {
10466 display: flex;
10467 flex-direction: column;
10468 gap: 20px;
10469 padding-left: 24px;
10470 border-left: 1px solid #e5e7eb;
10471 }
10472
10473 .yatra-availability-pricing-section {
10474 display: flex;
10475 flex-direction: column;
10476 align-items: flex-end;
10477 gap: 8px;
10478 }
10479
10480 .yatra-availability-discount-badge {
10481 display: inline-block;
10482 padding: 4px 10px;
10483 background: #dc2626;
10484 color: #fff;
10485 font-size: 11px;
10486 font-weight: 700;
10487 border-radius: 4px;
10488 text-transform: uppercase;
10489 letter-spacing: 0.5px;
10490 }
10491
10492 .yatra-availability-pricing {
10493 display: flex;
10494 flex-direction: column;
10495 align-items: flex-end;
10496 gap: 4px;
10497 }
10498
10499 .yatra-availability-price-original {
10500 font-size: 14px;
10501 color: #9ca3af;
10502 text-decoration: line-through;
10503 }
10504
10505 .yatra-availability-price-main {
10506 display: flex;
10507 align-items: baseline;
10508 gap: 6px;
10509 }
10510
10511 .yatra-availability-price-sale {
10512 font-size: 32px;
10513 font-weight: 700;
10514 color: #111827;
10515 line-height: 1;
10516 }
10517
10518 .yatra-availability-price-label {
10519 font-size: 13px;
10520 color: #6b7280;
10521 font-weight: 500;
10522 }
10523
10524 /* Traveler Selector */
10525 .yatra-availability-travelers {
10526 display: flex;
10527 flex-direction: column;
10528 gap: 12px;
10529 }
10530
10531 .yatra-availability-traveler-label {
10532 font-size: 13px;
10533 font-weight: 600;
10534 color: #374151;
10535 margin-bottom: 4px;
10536 }
10537
10538 /* Availability Participants Select - Same as sidebar - DUPLICATE REMOVED */
10539
10540 .yatra-availability-total-price {
10541 display: flex;
10542 align-items: center;
10543 justify-content: space-between;
10544 padding: 12px;
10545 background: #fff;
10546 border: 2px solid var(--yatra-primary, #3b82f6);
10547 border-radius: 8px;
10548 margin-top: 4px;
10549 }
10550
10551 .yatra-availability-total-label {
10552 font-size: 15px;
10553 font-weight: 600;
10554 color: #374151;
10555 }
10556
10557 .yatra-availability-total-amount {
10558 font-size: 20px;
10559 font-weight: 700;
10560 color: var(--yatra-primary, #3b82f6);
10561 }
10562
10563 .yatra-availability-book-btn {
10564 padding: 14px 24px;
10565 background: var(--yatra-primary, #3b82f6);
10566 color: #fff;
10567 border: none;
10568 border-radius: 8px;
10569 font-size: 15px;
10570 font-weight: 600;
10571 cursor: pointer;
10572 transition: all 0.2s ease;
10573 width: 100%;
10574 text-align: center;
10575 }
10576
10577 .yatra-availability-book-btn:hover:not(:disabled) {
10578 background: var(--yatra-primary-dark, #2563eb);
10579 transform: translateY(-1px);
10580 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
10581 }
10582
10583 .yatra-availability-book-btn:disabled {
10584 background: #9ca3af;
10585 cursor: not-allowed;
10586 opacity: 0.7;
10587 }
10588
10589 /* Responsive Design */
10590 @media (max-width: 1024px) {
10591 .yatra-availability-item-main {
10592 grid-template-columns: 1fr;
10593 gap: 24px;
10594 }
10595
10596 .yatra-availability-right {
10597 padding-left: 0;
10598 border-left: none;
10599 border-top: 1px solid #e5e7eb;
10600 padding-top: 24px;
10601 }
10602 }
10603
10604 .yatra-availability-load-more {
10605 text-align: center;
10606 margin-top: 32px;
10607 margin-bottom: 24px;
10608 display: flex;
10609 flex-direction: column;
10610 align-items: center;
10611 gap: 12px;
10612 }
10613
10614 .yatra-availability-load-more-btn {
10615 display: inline-flex;
10616 align-items: center;
10617 justify-content: center;
10618 gap: 8px;
10619 padding: 14px 32px;
10620 background: #10b981;
10621 color: #fff;
10622 border: 2px solid #10b981;
10623 border-radius: 8px;
10624 font-size: 15px;
10625 font-weight: 600;
10626 cursor: pointer;
10627 transition: all 0.3s ease;
10628 }
10629
10630 .yatra-availability-load-more-btn:hover:not(:disabled) {
10631 background: #059669;
10632 border-color: #059669;
10633 }
10634
10635 .yatra-availability-load-more-btn:disabled {
10636 opacity: 0.7;
10637 cursor: not-allowed;
10638 }
10639
10640 .yatra-availability-load-more-btn svg {
10641 width: 18px;
10642 height: 18px;
10643 }
10644
10645 .yatra-availability-count-info {
10646 font-size: 13px;
10647 color: #6b7280;
10648 }
10649
10650 /* Spinner animation for load more */
10651 .yatra-spinner {
10652 animation: yatra-spin 1s linear infinite;
10653 }
10654
10655 /* Responsive */
10656 @media (max-width: 1024px) {
10657 .yatra-availability-header-top {
10658 flex-direction: column;
10659 align-items: flex-start;
10660 }
10661
10662 .yatra-availability-sort-select {
10663 width: 100%;
10664 }
10665
10666 .yatra-availability-item-main {
10667 grid-template-columns: 1fr;
10668 gap: 24px;
10669 }
10670
10671 .yatra-availability-pricing-info {
10672 align-items: flex-start;
10673 }
10674
10675 .yatra-availability-book-btn {
10676 max-width: 100%;
10677 }
10678 }
10679
10680 @media (max-width: 768px) {
10681 .yatra-availability-filters {
10682 overflow-x: auto;
10683 flex-wrap: nowrap;
10684 padding-bottom: 8px;
10685 -webkit-overflow-scrolling: touch;
10686 }
10687
10688 .yatra-availability-filter-btn {
10689 white-space: nowrap;
10690 flex-shrink: 0;
10691 }
10692
10693 .yatra-availability-item {
10694 padding: 20px;
10695 }
10696
10697 .yatra-availability-date {
10698 font-size: 20px;
10699 }
10700
10701 .yatra-availability-price-sale {
10702 font-size: 24px;
10703 }
10704 }
10705
10706 /* Price Section Styling */
10707 .yatra-price-section {
10708 margin: 16px 0;
10709 border-top: 1px solid #e5e7eb;
10710 padding-top: 12px;
10711 }
10712
10713 .yatra-price-section-title {
10714 display: flex;
10715 align-items: center;
10716 gap: 8px;
10717 font-weight: 600;
10718 color: #374151;
10719 margin-bottom: 8px;
10720 font-size: 14px;
10721 }
10722
10723 .dark .yatra-price-section-title {
10724 color: #d1d5db;
10725 }
10726
10727 /* Itinerary Costs Styling */
10728 .yatra-price-itinerary {
10729 display: flex;
10730 justify-content: space-between;
10731 align-items: center;
10732 padding: 6px 0;
10733 font-size: 13px;
10734 color: #6b7280;
10735 }
10736
10737 .yatra-price-itinerary span:first-child {
10738 font-weight: 500;
10739 color: #374151;
10740 }
10741
10742 .yatra-price-itinerary span:last-child {
10743 font-weight: 600;
10744 color: #059669;
10745 }
10746
10747 .dark .yatra-price-itinerary {
10748 color: #9ca3af;
10749 }
10750
10751 .dark .yatra-price-itinerary span:first-child {
10752 color: #d1d5db;
10753 }
10754
10755 .dark .yatra-price-itinerary span:last-child {
10756 color: #10b981;
10757 }
10758
10759 /* Availability Fallback Styling */
10760 .yatra-availability-empty-actions {
10761 display: flex;
10762 gap: 12px;
10763 margin-top: 20px;
10764 flex-wrap: wrap;
10765 }
10766
10767 .yatra-availability-empty-actions .yatra-btn {
10768 min-width: 140px;
10769 }
10770
10771 .yatra-availability-empty .yatra-icon-xl {
10772 color: #10b981;
10773 margin-bottom: 16px;
10774 }
10775
10776 .dark .yatra-availability-empty .yatra-icon-xl {
10777 color: #34d399;
10778 }
10779
10780 /* Date Picker Customization */
10781 .flatpickr-calendar {
10782 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
10783 border-radius: 8px;
10784 }
10785
10786 .flatpickr-day.selected {
10787 background: var(--yatra-primary, #3b82f6);
10788 border-color: var(--yatra-primary, #3b82f6);
10789 }
10790
10791 .flatpickr-day:hover {
10792 background: #dbeafe;
10793 border-color: #93c5fd;
10794 }
10795
10796 .flatpickr-day.today {
10797 border-color: var(--yatra-primary, #3b82f6);
10798 }
10799
10800 .flatpickr-day.disabled {
10801 color: #d1d5db;
10802 }
10803
10804 /* Dark mode date picker */
10805 .dark .flatpickr-calendar {
10806 background: #1f2937;
10807 border-color: #374151;
10808 }
10809
10810 .dark .flatpickr-months {
10811 background: #1f2937;
10812 }
10813
10814 .dark .flatpickr-current-month .flatpickr-monthDropdown-months,
10815 .dark .flatpickr-current-month input.cur-year {
10816 color: #f9fafb;
10817 }
10818
10819 .dark .flatpickr-weekday {
10820 color: #9ca3af;
10821 }
10822
10823 .dark .flatpickr-day {
10824 color: #f9fafb;
10825 }
10826
10827 .dark .flatpickr-day:hover {
10828 background: #374151;
10829 border-color: #4b5563;
10830 }
10831
10832 .dark .flatpickr-day.disabled {
10833 color: #4b5563;
10834 }
10835
10836 /* Availability Empty Info */
10837 .yatra-availability-empty-info {
10838 display: flex;
10839 flex-direction: column;
10840 gap: 16px;
10841 margin: 24px 0;
10842 padding: 20px;
10843 background: #f9fafb;
10844 border-radius: 8px;
10845 border: 1px solid #e5e7eb;
10846 }
10847
10848 .dark .yatra-availability-empty-info {
10849 background: #1f2937;
10850 border-color: #374151;
10851 }
10852
10853 .yatra-availability-empty-info-item {
10854 display: flex;
10855 align-items: center;
10856 gap: 12px;
10857 }
10858
10859 .yatra-availability-empty-info-icon {
10860 width: 40px;
10861 height: 40px;
10862 display: flex;
10863 align-items: center;
10864 justify-content: center;
10865 background: #10b981;
10866 color: white;
10867 border-radius: 8px;
10868 flex-shrink: 0;
10869 }
10870
10871 .yatra-availability-empty-info-text {
10872 display: flex;
10873 flex-direction: column;
10874 gap: 2px;
10875 }
10876
10877 .yatra-availability-empty-info-label {
10878 font-size: 12px;
10879 color: #6b7280;
10880 font-weight: 500;
10881 }
10882
10883 .yatra-availability-empty-info-value {
10884 font-size: 16px;
10885 color: #111827;
10886 font-weight: 600;
10887 }
10888
10889 .dark .yatra-availability-empty-info-label {
10890 color: #9ca3af;
10891 }
10892
10893 .dark .yatra-availability-empty-info-value {
10894 color: #f9fafb;
10895 }
10896
10897 /* ============================================
10898 TRIP ATTRIBUTES SECTION — matches quick facts: hairline grid, neutral icons
10899 (Vertical spacing: unified block above — no extra padding-top here.)
10900 ============================================ */
10901 .yatra-trip-attributes {
10902 --yatra-attr-divider: #d6d3d1;
10903 }
10904
10905 .yatra-trip-attributes .yatra-section-header {
10906 margin-bottom: 14px;
10907 padding-bottom: 12px;
10908 border-bottom: 1px solid var(--yatra-attr-divider);
10909 }
10910
10911 .yatra-trip-attributes .yatra-section-title {
10912 font-size: 1.125rem;
10913 font-weight: 600;
10914 letter-spacing: -0.02em;
10915 color: #1c1917;
10916 margin: 0 0 6px 0;
10917 line-height: 1.25;
10918 }
10919
10920 .yatra-trip-attributes .yatra-section-description {
10921 font-size: 13px;
10922 line-height: 1.5;
10923 color: #78716c;
10924 margin: 0;
10925 max-width: 42em;
10926 }
10927
10928 /* Layout + hairlines when wrapped by .yatra-spec-sheet (see SPEC SHEET WRAPPER block). */
10929 .yatra-attributes-grid {
10930 margin-top: 0;
10931 }
10932
10933 .yatra-attributes-filter-wrapper .yatra-attributes-grid {
10934 display: grid;
10935 }
10936
10937 /* Scoped to single-trip attributes grid only — listing filters reuse class names with a different DOM (label + content stacked). */
10938 .yatra-attributes-grid > .yatra-attribute-item {
10939 display: flex;
10940 align-items: flex-start;
10941 gap: 12px;
10942 padding: 14px 16px;
10943 background: #fff;
10944 border: none;
10945 border-radius: 0;
10946 transition: background-color 0.15s ease;
10947 min-width: 0;
10948 min-height: 100%;
10949 box-sizing: border-box;
10950 align-self: stretch;
10951 }
10952
10953 .yatra-attributes-grid > .yatra-attribute-item:hover {
10954 background: #fafaf9;
10955 }
10956
10957 .yatra-attributes-grid .yatra-attribute-icon {
10958 width: auto;
10959 height: auto;
10960 min-width: 28px;
10961 min-height: 28px;
10962 display: flex;
10963 align-items: center;
10964 justify-content: center;
10965 background: transparent;
10966 color: #57534e;
10967 border-radius: 0;
10968 flex-shrink: 0;
10969 overflow: visible;
10970 }
10971
10972 .yatra-attributes-grid .yatra-attribute-icon svg {
10973 display: block;
10974 width: 22px;
10975 height: 22px;
10976 min-width: 22px;
10977 min-height: 22px;
10978 flex-shrink: 0;
10979 overflow: visible;
10980 opacity: 0.92;
10981 }
10982
10983 .yatra-attributes-grid .yatra-attribute-icon svg[fill="none"] {
10984 stroke: currentColor;
10985 }
10986
10987 .yatra-attributes-grid .yatra-attribute-icon svg[fill="currentColor"] {
10988 stroke: none;
10989 opacity: 1;
10990 }
10991
10992 .yatra-attribute-icon-img {
10993 width: 26px;
10994 height: 26px;
10995 max-width: 100%;
10996 max-height: 100%;
10997 object-fit: contain;
10998 border-radius: 4px;
10999 }
11000
11001 .yatra-attributes-grid .yatra-attribute-content {
11002 flex: 1 1 auto;
11003 min-width: 0;
11004 display: flex;
11005 flex-direction: column;
11006 justify-content: flex-start;
11007 min-height: 0;
11008 }
11009
11010 .yatra-attributes-grid .yatra-attribute-content .yatra-attribute-name {
11011 font-size: 13px;
11012 font-weight: 600;
11013 color: #292524;
11014 margin-bottom: 3px;
11015 line-height: 1.35;
11016 }
11017
11018 .yatra-attributes-grid .yatra-attribute-value {
11019 font-size: 13px;
11020 color: #57534e;
11021 margin-bottom: 0;
11022 word-wrap: break-word;
11023 line-height: 1.45;
11024 }
11025
11026 .yatra-attributes-grid .yatra-attribute-value a {
11027 color: var(--yatra-primary-color, var(--yatra-primary, #3b82f6));
11028 text-decoration: none;
11029 }
11030
11031 .yatra-attributes-grid .yatra-attribute-value a:hover {
11032 text-decoration: underline;
11033 }
11034
11035 .yatra-color-swatch {
11036 display: inline-block;
11037 width: 16px;
11038 height: 16px;
11039 border-radius: 3px;
11040 border: 1px solid var(--yatra-border-color, #e5e7eb);
11041 vertical-align: middle;
11042 margin-right: 6px;
11043 }
11044
11045 .yatra-attributes-grid .yatra-attribute-description {
11046 margin-top: 6px;
11047 font-size: 11px;
11048 color: #a8a29e;
11049 font-style: italic;
11050 line-height: 1.35;
11051 }
11052
11053 /* ============================================
11054 BOOKING PAGE TRIP INFORMATION
11055 ============================================ */
11056 .yatra-booking-info {
11057 margin: 20px 0;
11058 padding: 16px;
11059 background: var(--yatra-bg-card, #ffffff);
11060 border: 1px solid var(--yatra-border-color, #e5e7eb);
11061 border-radius: 8px;
11062 }
11063
11064 .yatra-booking-info h5 {
11065 font-size: 14px;
11066 font-weight: 600;
11067 color: var(--yatra-text-primary, #1a1a1a);
11068 margin: 0 0 12px 0;
11069 padding-bottom: 8px;
11070 border-bottom: 1px solid var(--yatra-border-color, #e5e7eb);
11071 }
11072
11073 .yatra-booking-info-list {
11074 display: flex;
11075 flex-direction: column;
11076 gap: 8px;
11077 }
11078
11079 .yatra-booking-info-item {
11080 display: flex;
11081 justify-content: space-between;
11082 align-items: center;
11083 padding: 6px 0;
11084 border-bottom: 1px solid var(--yatra-border-light, #f3f4f6);
11085 }
11086
11087 .yatra-booking-info-item:last-child {
11088 border-bottom: none;
11089 }
11090
11091 .yatra-booking-info-name {
11092 font-size: 12px;
11093 font-weight: 500;
11094 color: var(--yatra-text-secondary, #6b7280);
11095 flex: 1;
11096 min-width: 0;
11097 margin-right: 8px;
11098 }
11099
11100 .yatra-booking-info-value {
11101 font-size: 12px;
11102 font-weight: 600;
11103 color: var(--yatra-text-primary, #1a1a1a);
11104 text-align: right;
11105 flex-shrink: 0;
11106 }
11107
11108 /* Dark Mode */
11109 .dark .yatra-booking-info {
11110 background: var(--yatra-bg-card-dark, #1f2937);
11111 border-color: var(--yatra-border-color-dark, #374151);
11112 }
11113
11114 .dark .yatra-booking-info h5 {
11115 color: var(--yatra-text-primary-dark, #f9fafb);
11116 border-bottom-color: var(--yatra-border-color-dark, #374151);
11117 }
11118
11119 .dark .yatra-booking-info-item {
11120 border-bottom-color: var(--yatra-border-light-dark, #374151);
11121 }
11122
11123 .dark .yatra-booking-info-name {
11124 color: var(--yatra-text-secondary-dark, #9ca3af);
11125 }
11126
11127 .dark .yatra-booking-info-value {
11128 color: var(--yatra-text-primary-dark, #f9fafb);
11129 }
11130
11131 /* Cancellation Policy Content */
11132 .yatra-cancellation-policy-content p {
11133 font-size: 13px;
11134 line-height: 1.5;
11135 color: var(--yatra-text-secondary, #6b7280);
11136 margin: 0 0 8px 0;
11137 }
11138
11139 .yatra-cancellation-policy-content p:last-child {
11140 margin-bottom: 0;
11141 }
11142
11143 .yatra-policy-more {
11144 font-size: 12px;
11145 font-style: italic;
11146 color: var(--yatra-text-muted, #9ca3af);
11147 margin-top: 8px;
11148 }
11149
11150 /* Dark Mode */
11151 .dark .yatra-cancellation-policy-content p {
11152 color: var(--yatra-text-secondary-dark, #9ca3af);
11153 }
11154
11155 .dark .yatra-policy-more {
11156 color: var(--yatra-text-muted-dark, #6b7280);
11157 }
11158
11159 /* ============================================
11160 IMPORTANT INFORMATION SECTION - SIMPLE & CLEAN
11161 ============================================ */
11162
11163 .yatra-important-info-grid {
11164 display: flex;
11165 flex-direction: column;
11166 gap: 20px;
11167 margin-top: 32px;
11168 }
11169
11170 .yatra-important-info-card {
11171 display: flex;
11172 align-items: flex-start;
11173 gap: 20px;
11174 background: var(--yatra-bg-card, #ffffff);
11175 border: 1px solid var(--yatra-border-color, #e5e7eb);
11176 border-radius: 12px;
11177 padding: 24px;
11178 transition: all 0.2s ease;
11179 }
11180
11181 .yatra-important-info-card:hover {
11182 transform: translateY(-2px);
11183 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
11184 }
11185
11186 .yatra-important-info-icon {
11187 width: 48px;
11188 height: 48px;
11189 display: flex;
11190 align-items: center;
11191 justify-content: center;
11192 background: var(--yatra-primary-light, #eff6ff);
11193 color: var(--yatra-primary-color, var(--yatra-primary, #3b82f6));
11194 border-radius: 12px;
11195 font-size: 20px;
11196 flex-shrink: 0;
11197 }
11198
11199 .yatra-important-info-content-wrapper {
11200 flex: 1;
11201 }
11202
11203 .yatra-important-info-title {
11204 font-size: 16px;
11205 font-weight: 600;
11206 color: var(--yatra-text-primary, #1a1a1a);
11207 margin: 0 0 16px 0;
11208 display: flex;
11209 align-items: center;
11210 gap: 0;
11211 }
11212
11213 .yatra-important-info-title .yatra-icon-inline {
11214 display: none;
11215 }
11216
11217 .yatra-important-info-content {
11218 font-size: 14px;
11219 line-height: 1.6;
11220 color: var(--yatra-text-secondary, #6b7280);
11221 margin: 0;
11222 }
11223
11224 .yatra-important-info-content p {
11225 margin: 0 0 8px 0;
11226 }
11227
11228 .yatra-important-info-content p:last-child {
11229 margin-bottom: 0;
11230 }
11231
11232 /* Info Detail Rows */
11233 .yatra-info-detail-row {
11234 display: flex;
11235 align-items: flex-start;
11236 justify-content: space-between;
11237 padding: 6px 0;
11238 }
11239
11240 .yatra-info-label {
11241 font-size: 13px;
11242 font-weight: 500;
11243 color: #6b7280;
11244 display: flex;
11245 align-items: center;
11246 gap: 6px;
11247 }
11248
11249 .yatra-info-value {
11250 font-size: 14px;
11251 font-weight: 600;
11252 color: #1a1a1a;
11253 text-align: right;
11254 }
11255
11256 /* Info Badge */
11257 .yatra-info-badge {
11258 display: inline-flex;
11259 align-items: center;
11260 gap: 6px;
11261 padding: 6px 12px;
11262 border-radius: 6px;
11263 font-size: 13px;
11264 font-weight: 500;
11265 margin-bottom: 12px;
11266 }
11267
11268 .yatra-badge-included {
11269 background: #d1fae5;
11270 color: #065f46;
11271 }
11272
11273 /* Info Description */
11274 .yatra-info-description {
11275 margin-top: 12px;
11276 }
11277
11278 /* Icon Sizes */
11279 .yatra-icon-tiny {
11280 width: 14px;
11281 height: 14px;
11282 }
11283
11284 /* Icon Color Variations */
11285 .yatra-icon-physical {
11286 background: #fef3c7;
11287 color: #d97706;
11288 }
11289
11290 .yatra-icon-visa {
11291 background: #dbeafe;
11292 color: var(--yatra-primary-dark, #2563eb);
11293 }
11294
11295 .yatra-icon-health {
11296 background: #fce7f3;
11297 color: #db2777;
11298 }
11299
11300 .yatra-icon-policy {
11301 background: #fee2e2;
11302 color: #dc2626;
11303 }
11304
11305 .yatra-icon-age {
11306 background: #e0e7ff;
11307 color: #6366f1;
11308 }
11309
11310 .yatra-icon-accommodation {
11311 background: #d1fae5;
11312 color: #059669;
11313 }
11314
11315 .yatra-icon-transport {
11316 background: #ddd6fe;
11317 color: #7c3aed;
11318 }
11319
11320 /* Section Description */
11321 .yatra-section-description {
11322 font-size: 15px;
11323 line-height: 1.6;
11324 color: #6b7280;
11325 margin: 12px 0 0 0;
11326 }
11327
11328 /* Responsive Design */
11329 @media (max-width: 768px) {
11330 .yatra-important-info-grid {
11331 gap: 16px;
11332 }
11333
11334 .yatra-important-info-card {
11335 padding: 20px;
11336 gap: 16px;
11337 align-items: flex-start;
11338 text-align: left;
11339 }
11340
11341 .yatra-important-info-icon {
11342 width: 40px;
11343 height: 40px;
11344 font-size: 18px;
11345 }
11346
11347 .yatra-important-info-title {
11348 font-size: 15px;
11349 }
11350
11351 .yatra-info-detail-row {
11352 flex-direction: column;
11353 gap: 4px;
11354 }
11355
11356 .yatra-info-value {
11357 text-align: left;
11358 }
11359
11360 .yatra-important-info-content {
11361 font-size: 13px;
11362 }
11363 }
11364
11365 @media (max-width: 480px) {
11366 .yatra-important-info-card {
11367 flex-direction: row;
11368 align-items: flex-start;
11369 text-align: left;
11370 gap: 12px;
11371 }
11372
11373 .yatra-important-info-icon {
11374 margin: 0;
11375 }
11376
11377 .yatra-important-info-title {
11378 text-align: left;
11379 justify-content: flex-start;
11380 }
11381
11382 .yatra-important-info-content {
11383 text-align: left;
11384 }
11385 }
11386
11387 /* ============================================
11388 BOOKING PAGE ATTRIBUTES
11389 ============================================ */
11390 .yatra-booking-attributes {
11391 margin: 20px 0;
11392 padding: 16px;
11393 background: var(--yatra-bg-card, #ffffff);
11394 border: 1px solid var(--yatra-border-color, #e5e7eb);
11395 border-radius: 8px;
11396 }
11397
11398 .yatra-booking-attributes h5 {
11399 font-size: 14px;
11400 font-weight: 600;
11401 color: var(--yatra-text-primary, #1a1a1a);
11402 margin: 0 0 12px 0;
11403 padding-bottom: 8px;
11404 border-bottom: 1px solid var(--yatra-border-color, #e5e7eb);
11405 }
11406
11407 .yatra-booking-attributes-list {
11408 display: flex;
11409 flex-direction: column;
11410 gap: 8px;
11411 }
11412
11413 .yatra-booking-attribute-item {
11414 display: flex;
11415 justify-content: space-between;
11416 align-items: center;
11417 padding: 6px 0;
11418 border-bottom: 1px solid var(--yatra-border-light, #f3f4f6);
11419 }
11420
11421 .yatra-booking-attribute-item:last-child {
11422 border-bottom: none;
11423 }
11424
11425 .yatra-booking-attribute-name {
11426 font-size: 12px;
11427 font-weight: 500;
11428 color: var(--yatra-text-secondary, #6b7280);
11429 flex: 1;
11430 min-width: 0;
11431 margin-right: 8px;
11432 }
11433
11434 .yatra-booking-attribute-value {
11435 font-size: 12px;
11436 font-weight: 600;
11437 color: var(--yatra-text-primary, #1a1a1a);
11438 text-align: right;
11439 flex-shrink: 0;
11440 }
11441
11442 .yatra-booking-color-swatch {
11443 display: inline-block;
11444 width: 12px;
11445 height: 12px;
11446 border-radius: 2px;
11447 border: 1px solid var(--yatra-border-color, #e5e7eb);
11448 vertical-align: middle;
11449 }
11450
11451 /* Dark Mode */
11452 .dark .yatra-booking-attributes {
11453 background: var(--yatra-bg-card-dark, #1f2937);
11454 border-color: var(--yatra-border-color-dark, #374151);
11455 }
11456
11457 .dark .yatra-booking-attributes h5 {
11458 color: var(--yatra-text-primary-dark, #f9fafb);
11459 border-bottom-color: var(--yatra-border-color-dark, #374151);
11460 }
11461
11462 .dark .yatra-booking-attribute-item {
11463 border-bottom-color: var(--yatra-border-light-dark, #374151);
11464 }
11465
11466 .dark .yatra-booking-attribute-name {
11467 color: var(--yatra-text-secondary-dark, #9ca3af);
11468 }
11469
11470 .dark .yatra-booking-attribute-value {
11471 color: var(--yatra-text-primary-dark, #f9fafb);
11472 }
11473
11474 /* ============================================
11475 TRIP LISTING ATTRIBUTE FILTERS - MATCHES AGE SUITABILITY DESIGN
11476 ============================================ */
11477
11478 /* Input groups for number/date ranges */
11479 .yatra-input-group {
11480 display: flex;
11481 flex-direction: column;
11482 gap: 12px;
11483 width: 100%;
11484 }
11485
11486 .yatra-input-group input.yatra-filter-input {
11487 width: 100%;
11488 }
11489
11490 /* Attribute filter icons - match Age Suitability size */
11491 .yatra-filter-icon[width="18"] {
11492 width: 18px !important;
11493 height: 18px !important;
11494 object-fit: contain !important;
11495 }
11496
11497 /* Individual attribute items within Trip Attributes section */
11498 .yatra-attribute-item {
11499 margin-bottom: 20px;
11500 padding-bottom: 20px;
11501 border-bottom: 1px solid #f0f0f2;
11502 }
11503
11504 .yatra-attribute-item:last-child {
11505 margin-bottom: 0;
11506 padding-bottom: 0;
11507 border-bottom: none;
11508 }
11509
11510 .yatra-attribute-label {
11511 display: flex;
11512 align-items: center;
11513 gap: 10px;
11514 margin-bottom: 12px;
11515 }
11516
11517 .yatra-attribute-icon {
11518 width: 18px;
11519 height: 18px;
11520 flex-shrink: 0;
11521 object-fit: contain;
11522 display: flex;
11523 align-items: center;
11524 justify-content: center;
11525 }
11526
11527 .yatra-attribute-icon img {
11528 width: 18px !important;
11529 height: 18px !important;
11530 object-fit: contain !important;
11531 }
11532
11533 .yatra-attribute-icon svg {
11534 width: 18px;
11535 height: 18px;
11536 color: #6b7280;
11537 }
11538
11539 .yatra-attribute-name {
11540 font-size: 14px;
11541 font-weight: 600;
11542 color: #374151;
11543 line-height: 1.5;
11544 }
11545
11546 .yatra-attribute-content {
11547 width: 100%;
11548 display: block;
11549 }
11550
11551 .yatra-attribute-content input.yatra-filter-input {
11552 width: 100% !important;
11553 max-width: 100% !important;
11554 box-sizing: border-box;
11555 }
11556
11557 .yatra-attribute-content .yatra-checkbox-group {
11558 width: 100%;
11559 }
11560
11561 .yatra-attribute-content .yatra-input-group {
11562 width: 100%;
11563 }
11564
11565 .yatra-attribute-content .yatra-input-group input {
11566 width: 100% !important;
11567 max-width: 100% !important;
11568 box-sizing: border-box;
11569 }
11570
11571 /* Dark mode for attribute items */
11572 .dark .yatra-attribute-item {
11573 border-bottom-color: #374151;
11574 }
11575
11576 .dark .yatra-attribute-icon svg {
11577 color: #9ca3af;
11578 }
11579
11580 .dark .yatra-attribute-name {
11581 color: #e5e7eb;
11582 }
11583
11584 /* Responsive Design */
11585 @media (max-width: 768px) {
11586 .yatra-attr-filter {
11587 margin: 20px 0;
11588 border-radius: 12px;
11589 }
11590
11591 .yatra-attr-filter__header {
11592 padding: 20px 20px;
11593 flex-direction: column;
11594 align-items: flex-start;
11595 gap: 14px;
11596 }
11597
11598 .yatra-attr-filter__title {
11599 font-size: 16px;
11600 }
11601
11602 .yatra-attr-filter__reset {
11603 width: 100%;
11604 justify-content: center;
11605 }
11606
11607 .yatra-attr-group {
11608 padding: 20px 20px;
11609 }
11610
11611 .yatra-attr-icon {
11612 width: 36px;
11613 height: 36px;
11614 }
11615
11616 .yatra-attr-icon img {
11617 width: 18px;
11618 height: 18px;
11619 }
11620
11621 .yatra-attr-icon svg {
11622 width: 18px;
11623 height: 18px;
11624 }
11625
11626 .yatra-attr-range {
11627 flex-direction: column;
11628 align-items: stretch;
11629 gap: 12px;
11630 }
11631
11632 .yatra-attr-range__sep {
11633 display: none;
11634 }
11635 }
11636
11637 /* Dark Mode - Professional Theme */
11638 .dark .yatra-attr-filter {
11639 background: #1e293b;
11640 border-color: #334155;
11641 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.3);
11642 }
11643
11644 .dark .yatra-attr-filter:hover {
11645 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25), 0 2px 4px rgba(0, 0, 0, 0.35);
11646 }
11647
11648 .dark .yatra-attr-filter__header {
11649 background: #0f172a;
11650 border-bottom-color: #334155;
11651 }
11652
11653 .dark .yatra-attr-filter__title {
11654 color: #f1f5f9;
11655 }
11656
11657 .dark .yatra-attr-filter__reset {
11658 background: #1e293b;
11659 border-color: #475569;
11660 color: #cbd5e1;
11661 }
11662
11663 .dark .yatra-attr-filter__reset:hover {
11664 background: #334155;
11665 border-color: #64748b;
11666 color: #f1f5f9;
11667 }
11668
11669 .dark .yatra-attr-group {
11670 border-bottom-color: #334155;
11671 }
11672
11673 .dark .yatra-attr-group:hover {
11674 background: #1a2332;
11675 }
11676
11677 .dark .yatra-attr-group__label {
11678 border-bottom-color: #334155;
11679 }
11680
11681 .dark .yatra-attr-icon {
11682 background: linear-gradient(135deg, var(--yatra-primary-darker, #1e3a8a) 0%, var(--yatra-primary-darker, #1e40af) 100%);
11683 border-color: var(--yatra-primary, #3b82f6);
11684 box-shadow: 0 1px 2px rgba(59, 130, 246, 0.15);
11685 }
11686
11687 .dark .yatra-attr-icon svg {
11688 color: #60a5fa;
11689 }
11690
11691 .dark .yatra-attr-name {
11692 color: #f1f5f9;
11693 }
11694
11695 .dark .yatra-attr-checkbox:hover {
11696 background: #1a2332;
11697 }
11698
11699 .dark .yatra-attr-checkbox__box {
11700 border-color: #475569;
11701 background: #334155;
11702 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
11703 }
11704
11705 .dark .yatra-attr-checkbox input[type="checkbox"]:checked + .yatra-attr-checkbox__box {
11706 background: var(--yatra-primary, #3b82f6);
11707 border-color: var(--yatra-primary, #3b82f6);
11708 box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
11709 }
11710
11711 .dark .yatra-attr-checkbox:hover .yatra-attr-checkbox__box {
11712 border-color: #64748b;
11713 background: #475569;
11714 }
11715
11716 .dark .yatra-attr-checkbox input[type="checkbox"]:checked:hover + .yatra-attr-checkbox__box {
11717 background: var(--yatra-primary-dark, #2563eb);
11718 border-color: var(--yatra-primary-dark, #2563eb);
11719 }
11720
11721 .dark .yatra-attr-checkbox__label {
11722 color: #e2e8f0;
11723 }
11724
11725 .dark .yatra-attr-range__sep {
11726 color: #64748b;
11727 }
11728
11729 .dark .yatra-attr-input {
11730 background: #334155;
11731 border-color: #475569;
11732 color: #f1f5f9;
11733 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
11734 }
11735
11736 .dark .yatra-attr-input:hover {
11737 border-color: #64748b;
11738 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
11739 }
11740
11741 .dark .yatra-attr-input:focus {
11742 border-color: var(--yatra-primary, #3b82f6);
11743 background: #334155;
11744 box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15), 0 1px 2px rgba(0, 0, 0, 0.2);
11745 }
11746
11747 .dark .yatra-attr-input::placeholder {
11748 color: #64748b;
11749 }
11750
11751 /* Legacy compatibility - keeping minimal old styles */
11752 .yatra-attribute-input-wrap input {
11753 border: none;
11754 background: transparent;
11755 font-size: 15px;
11756 font-weight: 600;
11757 color: var(--yatra-text-primary, #0f172a);
11758 padding: 0;
11759 outline: none;
11760 }
11761
11762 .yatra-attribute-input-wrap input::placeholder {
11763 color: rgba(15, 23, 42, 0.35);
11764 }
11765
11766 .yatra-attribute-input-separator {
11767 font-size: 22px;
11768 color: rgba(15, 23, 42, 0.2);
11769 font-weight: 200;
11770 }
11771
11772 /* Responsive */
11773 @media (max-width: 960px) {
11774 .yatra-attributes-panel__head {
11775 flex-direction: column;
11776 align-items: flex-start;
11777 }
11778 }
11779
11780 @media (max-width: 640px) {
11781 .yatra-attributes-panel__body {
11782 grid-template-columns: 1fr;
11783 padding: 24px;
11784 }
11785
11786 .yatra-attributes-panel__head {
11787 padding: 24px;
11788 }
11789
11790 .yatra-attribute-input-row {
11791 flex-direction: column;
11792 }
11793
11794 .yatra-attribute-input-separator {
11795 display: none;
11796 }
11797 }
11798
11799 /* Dark Mode */
11800 .dark .yatra-attributes-panel {
11801 background: #0b1120;
11802 border-color: rgba(148, 163, 184, 0.12);
11803 box-shadow: 0 25px 60px rgba(0, 0, 0, 0.35);
11804 }
11805
11806 .dark .yatra-attributes-panel__head {
11807 background: linear-gradient(120deg, #020617 0%, #0f172a 60%, var(--yatra-primary-darker, #1e3a8a) 100%);
11808 }
11809
11810 .dark .yatra-attribute-tile {
11811 background: rgba(15, 23, 42, 0.75);
11812 }
11813
11814 .dark .yatra-attribute-tile:hover {
11815 background: rgba(15, 23, 42, 0.95);
11816 }
11817
11818 .dark .yatra-attribute-tile__name {
11819 color: #e2e8f0;
11820 }
11821
11822 .dark .yatra-attribute-tile__type {
11823 color: rgba(148, 163, 184, 0.8);
11824 }
11825
11826 .dark .yatra-attribute-pill {
11827 background: rgba(15, 23, 42, 0.45);
11828 color: #cbd5e5;
11829 border-color: rgba(148, 163, 184, 0.2);
11830 }
11831
11832 .dark .yatra-attribute-pill input:checked ~ span {
11833 color: #60a5fa;
11834 }
11835
11836 .dark .yatra-attribute-input-row {
11837 background: rgba(15, 23, 42, 0.45);
11838 border-color: rgba(148, 163, 184, 0.2);
11839 }
11840
11841 .dark .yatra-attribute-input-wrap label {
11842 color: rgba(148, 163, 184, 0.7);
11843 }
11844
11845 .dark .yatra-attribute-input-wrap input {
11846 color: #f1f5f9;
11847 }
11848
11849 .dark .yatra-attribute-input-wrap input::placeholder {
11850 color: rgba(148, 163, 184, 0.4);
11851 }
11852
11853 .dark .yatra-attribute-input-separator {
11854 color: rgba(148, 163, 184, 0.2);
11855 }
11856
11857 /* Legacy attribute styles below - keeping for backward compatibility */
11858 .yatra-attribute-range-inputs {
11859 display: flex;
11860 align-items: center;
11861 gap: 12px;
11862 background: #f8fafc;
11863 border: 1px solid #e2e8f0;
11864 border-radius: 10px;
11865 padding: 16px;
11866 }
11867
11868 .yatra-attribute-input-group {
11869 flex: 1;
11870 min-width: 0;
11871 }
11872
11873 .yatra-attribute-input-label {
11874 display: block;
11875 font-size: 12px;
11876 font-weight: 600;
11877 color: #718096;
11878 margin-bottom: 6px;
11879 text-transform: uppercase;
11880 letter-spacing: 0.5px;
11881 }
11882
11883 .yatra-attribute-input {
11884 width: 100%;
11885 padding: 10px 14px;
11886 background: #ffffff;
11887 border: 2px solid #e2e8f0;
11888 border-radius: 8px;
11889 font-size: 14px;
11890 font-weight: 500;
11891 color: #2d3748;
11892 transition: all 0.2s ease;
11893 }
11894
11895 .yatra-attribute-input:focus {
11896 outline: none;
11897 border-color: #667eea;
11898 box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
11899 }
11900
11901 .yatra-attribute-range-separator {
11902 font-size: 16px;
11903 font-weight: 600;
11904 color: #a0aec0;
11905 margin-top: 20px;
11906 }
11907
11908 /* Responsive Design for New Attribute Filter */
11909 @media (max-width: 768px) {
11910 .yatra-attributes-filter-header {
11911 flex-direction: column;
11912 gap: 12px;
11913 text-align: center;
11914 padding: 16px;
11915 }
11916
11917 .yatra-attributes-filter-title {
11918 justify-content: center;
11919 }
11920
11921 .yatra-attributes-filter-wrapper .yatra-attributes-grid {
11922 grid-template-columns: 1fr;
11923 gap: 16px;
11924 }
11925
11926 .yatra-attribute-card-header {
11927 padding: 16px;
11928 gap: 12px;
11929 }
11930
11931 .yatra-attribute-icon-wrapper {
11932 width: 40px;
11933 height: 40px;
11934 }
11935
11936 .yatra-attribute-icon-img {
11937 width: 24px;
11938 height: 24px;
11939 }
11940
11941 .yatra-attribute-icon-svg {
11942 width: 20px;
11943 height: 20px;
11944 }
11945
11946 .yatra-attribute-title {
11947 font-size: 14px;
11948 }
11949
11950 .yatra-attribute-card-body {
11951 padding: 16px;
11952 }
11953
11954 .yatra-attribute-range-inputs {
11955 flex-direction: column;
11956 gap: 12px;
11957 }
11958
11959 .yatra-attribute-range-separator {
11960 display: none;
11961 }
11962 }
11963
11964 @media (max-width: 480px) {
11965 .yatra-attributes-filter-wrapper {
11966 margin: 16px 0;
11967 }
11968
11969 .yatra-attributes-filter-header {
11970 padding: 12px;
11971 }
11972
11973 .yatra-attributes-filter-title h3 {
11974 font-size: 16px;
11975 }
11976
11977 .yatra-attributes-clear-btn {
11978 padding: 6px 12px;
11979 font-size: 13px;
11980 }
11981
11982 .yatra-attribute-card-header {
11983 padding: 12px;
11984 }
11985
11986 .yatra-attribute-card-body {
11987 padding: 12px;
11988 }
11989
11990 .yatra-attribute-option {
11991 padding: 10px 12px;
11992 gap: 10px;
11993 }
11994
11995 .yatra-attribute-option-label {
11996 font-size: 13px;
11997 }
11998
11999 .yatra-attribute-input {
12000 padding: 8px 12px;
12001 font-size: 13px;
12002 }
12003 }
12004
12005 /* Dark mode styles for attribute filters */
12006 .dark .yatra-attribute-item {
12007 background: var(--yatra-bg-secondary-dark, #1f2937);
12008 border-color: var(--yatra-border-color-dark, #374151);
12009 }
12010
12011 .dark .yatra-attribute-item:hover {
12012 background: var(--yatra-bg-card-dark, #1f2937);
12013 border-color: var(--yatra-primary-color-dark, #60a5fa);
12014 box-shadow: 0 2px 8px rgba(96, 165, 250, 0.15);
12015 }
12016
12017 .dark .yatra-attribute-header {
12018 border-bottom-color: var(--yatra-border-color-dark, #374151);
12019 }
12020
12021 .dark .yatra-attribute-svg-icon {
12022 color: var(--yatra-primary-color-dark, #60a5fa);
12023 }
12024
12025 .dark .yatra-attribute-name {
12026 color: var(--yatra-text-primary-dark, #f9fafb);
12027 }
12028
12029 .dark .yatra-attribute-options .yatra-checkbox-label {
12030 background: var(--yatra-bg-card-dark, #1f2937);
12031 border-color: var(--yatra-border-color-dark, #374151);
12032 }
12033
12034 .dark .yatra-attribute-options .yatra-checkbox-label:hover {
12035 background: var(--yatra-primary-light-dark, var(--yatra-primary-darker, #1e3a8a));
12036 border-color: var(--yatra-primary-color-dark, #60a5fa);
12037 box-shadow: 0 1px 4px rgba(96, 165, 250, 0.25);
12038 }
12039
12040 .dark .yatra-attribute-options .yatra-checkbox-label span {
12041 color: var(--yatra-text-primary-dark, #f9fafb);
12042 }
12043
12044 .dark .yatra-attribute-options .yatra-checkbox-label .yatra-filter-count {
12045 background: var(--yatra-bg-secondary-dark, #374151);
12046 color: var(--yatra-text-muted-dark, #9ca3af);
12047 }
12048
12049 .dark .yatra-attribute-options .yatra-price-inputs {
12050 background: var(--yatra-bg-card-dark, #1f2937);
12051 border-color: var(--yatra-border-color-dark, #374151);
12052 }
12053
12054 .dark .yatra-attribute-options .yatra-price-input-label {
12055 color: var(--yatra-text-muted-dark, #9ca3af);
12056 }
12057
12058 .dark .yatra-attribute-options .yatra-price-input {
12059 background: var(--yatra-bg-card-dark, #1f2937);
12060 border-color: var(--yatra-border-color-dark, #374151);
12061 color: var(--yatra-text-primary-dark, #f9fafb);
12062 }
12063
12064 .dark .yatra-attribute-options .yatra-price-input:focus {
12065 border-color: var(--yatra-primary-color-dark, #60a5fa);
12066 box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.15);
12067 }
12068
12069 /* Dark Mode Styles for New Attribute Filter Design */
12070
12071 .dark .yatra-attributes-filter-header {
12072 background: linear-gradient(135deg, #4c1d95 0%, #5b21b6 100%);
12073 border-color: #374151;
12074 }
12075
12076 .dark .yatra-attributes-filter-icon {
12077 background: rgba(255, 255, 255, 0.1);
12078 color: #e9d5ff;
12079 }
12080
12081 .dark .yatra-attributes-filter-title h3 {
12082 color: #f3f4f6;
12083 }
12084
12085 .dark .yatra-attributes-clear-btn {
12086 background: rgba(255, 255, 255, 0.1);
12087 border-color: rgba(255, 255, 255, 0.2);
12088 color: #f3f4f6;
12089 }
12090
12091 .dark .yatra-attributes-clear-btn:hover {
12092 background: rgba(255, 255, 255, 0.2);
12093 }
12094
12095 .dark .yatra-attribute-card {
12096 background: #1f2937;
12097 border-color: #374151;
12098 box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
12099 }
12100
12101 .dark .yatra-attribute-card:hover {
12102 border-color: #8b5cf6;
12103 box-shadow: 0 8px 25px rgba(139, 92, 246, 0.2);
12104 }
12105
12106 .dark .yatra-attribute-card-header {
12107 background: linear-gradient(135deg, #1e1b4b 0%, #312e81 100%);
12108 border-bottom-color: #374151;
12109 }
12110
12111 .dark .yatra-attribute-icon-wrapper {
12112 background: #374151;
12113 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
12114 }
12115
12116 .dark .yatra-attribute-icon-svg {
12117 color: #a78bfa;
12118 }
12119
12120 .dark .yatra-attribute-title {
12121 color: #f3f4f6;
12122 }
12123
12124 .dark .yatra-attribute-type {
12125 color: #9ca3af;
12126 }
12127
12128
12129 .dark .yatra-attribute-option {
12130 background: #374151;
12131 border-color: #4b5563;
12132 }
12133
12134 .dark .yatra-attribute-option:hover {
12135 background: #4b5563;
12136 border-color: #6b7280;
12137 }
12138
12139 .dark .yatra-attribute-option-indicator {
12140 background: #1f2937;
12141 border-color: #6b7280;
12142 }
12143
12144 .dark .yatra-attribute-option input[type="checkbox"]:checked + .yatra-attribute-option-indicator {
12145 background: #8b5cf6;
12146 border-color: #8b5cf6;
12147 }
12148
12149 .dark .yatra-attribute-option-label {
12150 color: #e5e7eb;
12151 }
12152
12153 .dark .yatra-attribute-range-inputs {
12154 background: #374151;
12155 border-color: #4b5563;
12156 }
12157
12158 .dark .yatra-attribute-input-label {
12159 color: #9ca3af;
12160 }
12161
12162 .dark .yatra-attribute-input {
12163 background: #1f2937;
12164 border-color: #4b5563;
12165 color: #f3f4f6;
12166 }
12167
12168 .dark .yatra-attribute-input:focus {
12169 border-color: #8b5cf6;
12170 box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.15);
12171 }
12172
12173 .dark .yatra-attribute-range-separator {
12174 color: #6b7280;
12175 }
12176
12177 /* End of Attribute Filter Styles */
12178
12179
12180 /* ============================================
12181 ITINERARY SECTION STYLES
12182 ============================================ */
12183
12184 /* Empty State */
12185 .yatra-empty-itinerary {
12186 text-align: left;
12187 padding: 32px 20px;
12188 background: #f8fafc;
12189 border-radius: 12px;
12190 border: 1px solid #e2e8f0;
12191 }
12192
12193 .yatra-trip-section#itinerary .yatra-empty-itinerary {
12194 text-align: left;
12195 }
12196
12197 .yatra-empty-state-icon {
12198 margin-bottom: 16px;
12199 color: #6b7280;
12200 }
12201
12202 .yatra-empty-state-title {
12203 font-size: 1.35rem;
12204 font-weight: 600;
12205 color: #374151;
12206 margin-bottom: 10px;
12207 text-align: left;
12208 }
12209
12210 .yatra-empty-state-description {
12211 color: #6b7280;
12212 max-width: none;
12213 margin: 0;
12214 line-height: 1.6;
12215 text-align: left;
12216 }
12217
12218 /* Gallery Styles - Itinerary Specific */
12219 .yatra-entry-gallery {
12220 margin-top: 20px;
12221 }
12222
12223 .yatra-gallery-title {
12224 display: flex;
12225 align-items: center;
12226 gap: 8px;
12227 font-size: 0.875rem;
12228 font-weight: 600;
12229 color: #374151;
12230 margin-bottom: 12px;
12231 }
12232
12233 .yatra-gallery-grid {
12234 display: grid;
12235 grid-template-columns: repeat(6, 1fr);
12236 gap: 8px;
12237 width: 100%;
12238 }
12239
12240 .yatra-gallery-item-link {
12241 display: block;
12242 text-decoration: none;
12243 }
12244
12245 .yatra-gallery-item {
12246 position: relative;
12247 aspect-ratio: 1;
12248 border-radius: 8px;
12249 overflow: hidden;
12250 cursor: pointer;
12251 transition: opacity 0.2s ease;
12252 background: #f3f4f6;
12253 }
12254
12255 .yatra-gallery-item:hover {
12256 opacity: 0.8;
12257 }
12258
12259 .yatra-media-card {
12260 position: relative;
12261 width: 100%;
12262 height: 100%;
12263 border-radius: 8px;
12264 overflow: hidden;
12265 }
12266
12267 .yatra-media-card img {
12268 width: 100%;
12269 height: 100%;
12270 object-fit: cover;
12271 display: block;
12272 }
12273
12274 /* Itinerary Specific Overlay Styles */
12275 .yatra-entry-gallery .yatra-media-overlay {
12276 position: absolute;
12277 top: 50%;
12278 left: 50%;
12279 transform: translate(-50%, -50%);
12280 width: 16px;
12281 height: 16px;
12282 background: rgba(0, 0, 0, 0.4);
12283 border-radius: 50%;
12284 display: flex;
12285 align-items: center;
12286 justify-content: center;
12287 pointer-events: auto;
12288 cursor: pointer;
12289 transition: all 0.2s ease;
12290 }
12291
12292 .yatra-entry-gallery .yatra-media-overlay:hover {
12293 background: rgba(0, 0, 0, 0.5);
12294 transform: translate(-50%, -50%) scale(1.1);
12295 }
12296
12297 /* Smaller YouTube button for itinerary gallery - same as hero */
12298 .yatra-entry-gallery .yatra-youtube-play-button svg {
12299 width: 24px !important;
12300 height: 24px !important;
12301 }
12302
12303 .yatra-entry-gallery .yatra-youtube-play-button svg circle {
12304 fill: rgba(255, 0, 0, 0.9) !important;
12305 stroke: white !important;
12306 stroke-width: 1px !important;
12307 }
12308
12309 .yatra-entry-gallery .yatra-youtube-play-button svg path {
12310 fill: white !important;
12311 }
12312
12313 /* Remove separate video section - videos now in gallery */
12314 .yatra-entry-video {
12315 display: none;
12316 }
12317
12318
12319 /* Responsive styles */
12320 @media (max-width: 768px) {
12321 .yatra-gallery-grid {
12322 grid-template-columns: repeat(4, 1fr);
12323 gap: 6px;
12324 width: 100%;
12325 }
12326
12327 .yatra-entry-gallery .yatra-media-overlay {
12328 width: 12px;
12329 height: 12px;
12330 }
12331
12332 .yatra-entry-gallery .yatra-youtube-play-button svg {
12333 width: 18px !important;
12334 height: 18px !important;
12335 }
12336
12337 .yatra-entry-gallery .yatra-youtube-play-button svg circle {
12338 fill: rgba(255, 0, 0, 0.9) !important;
12339 stroke: white !important;
12340 stroke-width: 0.5px !important;
12341 }
12342
12343 .yatra-entry-gallery .yatra-youtube-play-button svg path {
12344 fill: white !important;
12345 }
12346 }
12347
12348 @media (max-width: 480px) {
12349 .yatra-gallery-grid {
12350 grid-template-columns: repeat(3, 1fr);
12351 gap: 4px;
12352 width: 100%;
12353 }
12354
12355 .yatra-entry-gallery .yatra-media-overlay {
12356 width: 10px;
12357 height: 10px;
12358 }
12359
12360 .yatra-entry-gallery .yatra-youtube-play-button svg {
12361 width: 14px !important;
12362 height: 14px !important;
12363 }
12364
12365 .yatra-entry-gallery .yatra-youtube-play-button svg circle {
12366 fill: rgba(255, 0, 0, 0.9) !important;
12367 stroke: white !important;
12368 stroke-width: 0.5px !important;
12369 }
12370
12371 .yatra-entry-gallery .yatra-youtube-play-button svg path {
12372 fill: white !important;
12373 }
12374 }
12375
12376
12377 /* Responsive styles */
12378 @media (max-width: 768px) {
12379 .yatra-gallery-grid {
12380 grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
12381 gap: 8px;
12382 }
12383
12384 .yatra-play-overlay {
12385 width: 40px;
12386 height: 40px;
12387 }
12388 }
12389
12390 /* Trip Details Grid Styles */
12391 .yatra-trip-details-grid {
12392 display: grid;
12393 grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
12394 gap: 24px;
12395 margin-top: 24px;
12396 }
12397
12398 .yatra-detail-item {
12399 display: flex;
12400 align-items: flex-start;
12401 padding: 16px;
12402 background: #f9fafb;
12403 border-radius: 8px;
12404 border: 1px solid #e5e7eb;
12405 transition: all 0.2s ease;
12406 }
12407
12408 .yatra-detail-item:hover {
12409 background: #f3f4f6;
12410 border-color: #d1d5db;
12411 transform: translateY(-2px);
12412 }
12413
12414 .yatra-detail-label {
12415 display: flex;
12416 align-items: center;
12417 gap: 8px;
12418 font-weight: 600;
12419 color: #374151;
12420 font-size: 0.875rem;
12421 margin-bottom: 4px;
12422 flex-shrink: 0;
12423 min-width: 140px;
12424 }
12425
12426 .yatra-detail-icon {
12427 width: 16px;
12428 height: 16px;
12429 color: #6b7280;
12430 }
12431
12432 .yatra-detail-value {
12433 color: #111827;
12434 font-size: 0.95rem;
12435 line-height: 1.5;
12436 flex: 1;
12437 }
12438
12439 .yatra-no-details {
12440 text-align: center;
12441 padding: 48px 24px;
12442 background: #f9fafb;
12443 border-radius: 8px;
12444 border: 1px solid #e5e7eb;
12445 margin-top: 24px;
12446 }
12447
12448 .yatra-no-details p {
12449 color: #6b7280;
12450 font-size: 1rem;
12451 margin: 0;
12452 }
12453
12454 /* Responsive styles for trip details */
12455 @media (max-width: 768px) {
12456 .yatra-trip-details-grid {
12457 grid-template-columns: 1fr;
12458 gap: 16px;
12459 margin-top: 16px;
12460 }
12461
12462 .yatra-detail-item {
12463 padding: 12px;
12464 flex-direction: column;
12465 align-items: flex-start;
12466 }
12467
12468 .yatra-detail-label {
12469 min-width: auto;
12470 margin-bottom: 8px;
12471 }
12472
12473 .yatra-detail-value {
12474 font-size: 0.9rem;
12475 }
12476 }
12477
12478 @media (max-width: 480px) {
12479 .yatra-trip-details-grid {
12480 gap: 12px;
12481 }
12482
12483 .yatra-detail-item {
12484 padding: 10px;
12485 }
12486
12487 .yatra-no-details {
12488 padding: 32px 16px;
12489 }
12490 }
12491
12492 /* Sticky Navigation Icon Styles */
12493 .yatra-sticky-nav-icon {
12494 width: 18px;
12495 height: 18px;
12496 color: #6b7280;
12497 transition: color 0.2s ease;
12498 }
12499
12500 .yatra-sticky-nav-item:hover .yatra-sticky-nav-icon {
12501 color: var(--yatra-primary, #3b82f6);
12502 }
12503
12504 .yatra-sticky-nav-item.active .yatra-sticky-nav-icon {
12505 color: var(--yatra-primary, #3b82f6);
12506 }
12507
12508 /* Hero Season Styles */
12509 .yatra-hero-season {
12510 display: flex;
12511 align-items: center;
12512 gap: 6px;
12513 color: #6b7280;
12514 font-size: 15px;
12515 font-weight: 500;
12516 }
12517
12518 /* FAQ Toggle Button Styles */
12519 .faq-toggle-btn {
12520 display: flex;
12521 align-items: center;
12522 gap: 8px;
12523 padding: 8px 16px;
12524 background: #ffffff;
12525 border: 1px solid #e5e7eb;
12526 border-radius: 6px;
12527 color: #374151;
12528 font-size: 14px;
12529 font-weight: 500;
12530 cursor: pointer;
12531 transition: all 0.2s ease;
12532 }
12533
12534 .faq-toggle-btn:hover {
12535 background: #f9fafb;
12536 border-color: #d1d5db;
12537 color: #111827;
12538 }
12539
12540 .faq-toggle-btn .toggle-icon {
12541 width: 16px;
12542 height: 16px;
12543 color: #6b7280;
12544 }
12545
12546 .faq-toggle-btn .toggle-text {
12547 font-size: 14px;
12548 font-weight: 500;
12549 }
12550
12551 /* ============================================
12552 SIMILAR ADVENTURES SECTION
12553 Custom styling for similar trips carousel cards
12554 ============================================ */
12555
12556 /* Similar Trips Card Container */
12557 .yatra-similar-trip-card {
12558 background: #ffffff;
12559 border-radius: 12px;
12560 overflow: hidden;
12561 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
12562 transition: all 0.3s ease;
12563 height: 100%;
12564 display: flex;
12565 flex-direction: column;
12566 }
12567
12568 .yatra-similar-trip-card:hover {
12569 transform: translateY(-4px);
12570 box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
12571 }
12572
12573 /* Similar Trips Image Section */
12574 .yatra-similar-trip-image {
12575 position: relative;
12576 width: 100%;
12577 height: 200px;
12578 overflow: hidden;
12579 }
12580
12581 .yatra-similar-trip-image img {
12582 width: 100%;
12583 height: 100%;
12584 object-fit: cover;
12585 transition: transform 0.3s ease;
12586 }
12587
12588 .yatra-similar-trip-card:hover .yatra-similar-trip-image img {
12589 transform: scale(1.05);
12590 }
12591
12592 .yatra-similar-image-link {
12593 display: block;
12594 width: 100%;
12595 height: 100%;
12596 text-decoration: none;
12597 }
12598
12599 /* Similar Trips Discount Badge */
12600 .yatra-similar-discount-badge {
12601 position: absolute;
12602 top: 12px;
12603 left: 12px;
12604 background: #ef4444;
12605 color: white;
12606 padding: 6px 12px;
12607 border-radius: 20px;
12608 font-size: 12px;
12609 font-weight: 600;
12610 text-transform: uppercase;
12611 letter-spacing: 0.5px;
12612 z-index: 5;
12613 box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
12614 }
12615
12616 /* Similar Trips Favorite Button */
12617 .yatra-similar-favorite-btn {
12618 position: absolute;
12619 top: 12px;
12620 right: 12px;
12621 background: rgba(255, 255, 255, 0.9);
12622 border: none;
12623 width: 36px;
12624 height: 36px;
12625 border-radius: 50%;
12626 display: flex;
12627 align-items: center;
12628 justify-content: center;
12629 cursor: pointer;
12630 transition: all 0.3s ease;
12631 z-index: 5;
12632 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
12633 }
12634
12635 .yatra-similar-favorite-btn:hover {
12636 background: #ffffff;
12637 transform: scale(1.1);
12638 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
12639 }
12640
12641 .yatra-similar-favorite-btn svg {
12642 color: #6b7280;
12643 transition: color 0.3s ease;
12644 }
12645
12646 .yatra-similar-favorite-btn:hover svg {
12647 color: #ef4444;
12648 }
12649
12650 /* Similar Trips Difficulty Overlay */
12651 .yatra-similar-difficulty-overlay {
12652 position: absolute;
12653 bottom: 12px;
12654 right: 12px;
12655 background: rgba(0, 0, 0, 0.7);
12656 color: white;
12657 padding: 6px 10px;
12658 border-radius: 6px;
12659 font-size: 12px;
12660 font-weight: 500;
12661 display: flex;
12662 align-items: center;
12663 gap: 4px;
12664 z-index: 5;
12665 backdrop-filter: blur(4px);
12666 }
12667
12668 .similar-difficulty-icon {
12669 width: 14px;
12670 height: 14px;
12671 flex-shrink: 0;
12672 }
12673
12674 .similar-difficulty-icon.fa-solid,
12675 .similar-difficulty-icon.fa-regular {
12676 width: auto;
12677 height: auto;
12678 font-size: 14px;
12679 line-height: 1;
12680 display: inline-flex;
12681 align-items: center;
12682 justify-content: center;
12683 }
12684
12685 /* Similar Trips Content Section */
12686 .yatra-similar-trip-content {
12687 padding: 20px;
12688 flex: 1;
12689 display: flex;
12690 flex-direction: column;
12691 }
12692
12693 /* Similar Trips Destinations */
12694 .yatra-similar-destinations {
12695 display: flex;
12696 align-items: center;
12697 gap: 6px;
12698 margin-bottom: 12px;
12699 font-size: 14px;
12700 color: #6b7280;
12701 }
12702
12703 .similar-location-icon {
12704 width: 14px;
12705 height: 14px;
12706 flex-shrink: 0;
12707 color: #9ca3af;
12708 }
12709
12710 .similar-destination-link {
12711 color: #6b7280;
12712 text-decoration: none;
12713 transition: color 0.3s ease;
12714 }
12715
12716 .similar-destination-link:hover {
12717 color: var(--yatra-primary, #3b82f6);
12718 }
12719
12720 /* Similar Trips Title */
12721 .yatra-similar-trip-title {
12722 margin: 0 0 16px 0;
12723 font-size: 18px;
12724 font-weight: 600;
12725 line-height: 1.4;
12726 color: #111827;
12727 }
12728
12729 .yatra-similar-title-link {
12730 color: #111827;
12731 text-decoration: none;
12732 transition: color 0.3s ease;
12733 }
12734
12735 .yatra-similar-title-link:hover {
12736 color: var(--yatra-primary, #3b82f6);
12737 }
12738
12739 /* Similar Trips Stats */
12740 .yatra-similar-trip-stats {
12741 display: flex;
12742 gap: 16px;
12743 margin-bottom: 16px;
12744 flex-wrap: wrap;
12745 }
12746
12747 .yatra-similar-stat {
12748 display: flex;
12749 align-items: center;
12750 gap: 6px;
12751 font-size: 13px;
12752 color: #6b7280;
12753 }
12754
12755 .similar-stat-icon {
12756 width: 14px;
12757 height: 14px;
12758 flex-shrink: 0;
12759 color: #9ca3af;
12760 }
12761
12762 /* Similar Trips Categories */
12763 .yatra-similar-categories {
12764 display: flex;
12765 gap: 8px;
12766 margin-bottom: 20px;
12767 flex-wrap: wrap;
12768 }
12769
12770 .yatra-similar-category-tag {
12771 background: #f3f4f6;
12772 color: #374151;
12773 padding: 4px 10px;
12774 border-radius: 12px;
12775 font-size: 12px;
12776 font-weight: 500;
12777 text-decoration: none;
12778 transition: all 0.3s ease;
12779 }
12780
12781 .yatra-similar-category-tag:hover {
12782 background: #e5e7eb;
12783 color: #111827;
12784 }
12785
12786 /* Similar Trips Footer */
12787 .yatra-similar-trip-footer {
12788 margin-top: auto;
12789 display: flex;
12790 align-items: center;
12791 justify-content: space-between;
12792 gap: 12px;
12793 }
12794
12795 /* Similar Trips Price — compact single-line row, baseline-aligned */
12796 .yatra-similar-price {
12797 display: flex;
12798 flex-direction: row;
12799 align-items: center;
12800 min-width: 0;
12801 flex: 1;
12802 }
12803
12804 .yatra-similar-trip-price {
12805 display: flex;
12806 flex-wrap: wrap;
12807 align-items: baseline;
12808 column-gap: 6px;
12809 row-gap: 2px;
12810 line-height: 1.25;
12811 color: #111827;
12812 }
12813
12814 .yatra-similar-price-label {
12815 font-size: 11px;
12816 font-weight: 600;
12817 color: #6b7280;
12818 letter-spacing: 0.02em;
12819 flex-shrink: 0;
12820 }
12821
12822 .yatra-similar-price-amount {
12823 font-size: 15px;
12824 font-weight: 700;
12825 color: #111827;
12826 }
12827
12828 .yatra-similar-price-contact {
12829 font-size: 13px;
12830 font-weight: 500;
12831 color: #6b7280;
12832 }
12833
12834 .yatra-similar-original-price {
12835 font-size: 11px;
12836 font-weight: 500;
12837 color: #9ca3af;
12838 text-decoration: line-through;
12839 margin-left: 0;
12840 }
12841
12842 /* Similar Trips View Button */
12843 .yatra-similar-view-btn {
12844 background: var(--yatra-primary, #3b82f6);
12845 color: white;
12846 border: none;
12847 padding: 10px 18px;
12848 border-radius: 6px;
12849 font-size: 14px;
12850 font-weight: 600;
12851 text-decoration: none;
12852 transition: all 0.3s ease;
12853 white-space: nowrap;
12854 flex-shrink: 0;
12855 }
12856
12857 .yatra-similar-view-btn:hover {
12858 background: var(--yatra-primary-dark, #2563eb);
12859 transform: translateY(-1px);
12860 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
12861 }
12862
12863 /* ============================================
12864 SIMILAR ADVENTURES RESPONSIVE DESIGN
12865 ============================================ */
12866
12867 @media (max-width: 768px) {
12868 .yatra-similar-trip-card {
12869 margin-bottom: 16px;
12870 }
12871
12872 .yatra-similar-trip-image {
12873 height: 160px;
12874 }
12875
12876 .yatra-similar-trip-content {
12877 padding: 16px;
12878 }
12879
12880 .yatra-similar-trip-title {
12881 font-size: 16px;
12882 }
12883
12884 .yatra-similar-trip-stats {
12885 gap: 12px;
12886 }
12887
12888 .yatra-similar-trip-footer {
12889 flex-direction: column;
12890 align-items: flex-start;
12891 gap: 12px;
12892 }
12893
12894 .yatra-similar-price {
12895 width: 100%;
12896 }
12897
12898 .yatra-similar-view-btn {
12899 width: 100%;
12900 text-align: center;
12901 }
12902 }
12903
12904 @media (max-width: 480px) {
12905 .yatra-similar-trip-image {
12906 height: 140px;
12907 }
12908
12909 .yatra-similar-trip-content {
12910 padding: 12px;
12911 }
12912
12913 .yatra-similar-trip-title {
12914 font-size: 15px;
12915 margin-bottom: 12px;
12916 }
12917
12918 .yatra-similar-trip-stats {
12919 gap: 8px;
12920 font-size: 12px;
12921 }
12922
12923 .yatra-similar-categories {
12924 margin-bottom: 16px;
12925 }
12926 }
12927
12928 /* ============================================
12929 DOWNLOADS SECTION
12930 List view with download icons
12931 ============================================ */
12932
12933 /* Downloads Container */
12934 .yatra-downloads-container {
12935 margin-top: 24px;
12936 }
12937
12938 .yatra-downloads-list {
12939 display: flex;
12940 flex-direction: column;
12941 gap: 16px;
12942 margin-top: 20px;
12943 }
12944
12945 /* Download Item - List View */
12946 .yatra-download-item {
12947 display: flex;
12948 align-items: center;
12949 gap: 16px;
12950 background: #ffffff;
12951 border: 1px solid #e5e7eb;
12952 border-radius: 12px;
12953 padding: 20px;
12954 transition: all 0.3s ease;
12955 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
12956 }
12957
12958 .yatra-download-item:hover {
12959 transform: translateY(-1px);
12960 box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
12961 border-color: #d1d5db;
12962 }
12963
12964 /* Download Icon Section */
12965 .yatra-download-icon {
12966 display: flex;
12967 align-items: center;
12968 justify-content: center;
12969 width: 60px;
12970 height: 60px;
12971 min-width: 60px;
12972 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
12973 border-radius: 12px;
12974 color: white;
12975 flex-shrink: 0;
12976 }
12977
12978 .yatra-download-file-icon {
12979 width: 28px;
12980 height: 28px;
12981 color: white;
12982 }
12983
12984 /* Download Content */
12985 .yatra-download-content {
12986 flex: 1;
12987 min-width: 0;
12988 }
12989
12990 .yatra-download-title {
12991 margin: 0 0 8px 0;
12992 font-size: 16px;
12993 font-weight: 600;
12994 line-height: 1.4;
12995 color: #111827;
12996 }
12997
12998 .yatra-download-description {
12999 margin: 0 0 12px 0;
13000 font-size: 14px;
13001 line-height: 1.5;
13002 color: #6b7280;
13003 }
13004
13005 /* Download Meta */
13006 .yatra-download-meta {
13007 display: flex;
13008 align-items: center;
13009 gap: 12px;
13010 flex-wrap: wrap;
13011 font-size: 12px;
13012 color: #9ca3af;
13013 }
13014
13015 .yatra-download-file-size,
13016 .yatra-download-file-type {
13017 background: #f3f4f6;
13018 padding: 3px 8px;
13019 border-radius: 4px;
13020 font-weight: 500;
13021 }
13022
13023 /* Download Action */
13024 .yatra-download-action {
13025 flex-shrink: 0;
13026 margin-left: auto;
13027 }
13028
13029 .yatra-download-btn {
13030 display: flex;
13031 align-items: center;
13032 gap: 8px;
13033 background: var(--yatra-primary, #3b82f6);
13034 color: white;
13035 border: none;
13036 padding: 10px 20px;
13037 border-radius: 8px;
13038 font-size: 14px;
13039 font-weight: 600;
13040 cursor: pointer;
13041 text-decoration: none;
13042 transition: all 0.3s ease;
13043 white-space: nowrap;
13044 }
13045
13046 .yatra-download-btn:hover {
13047 background: var(--yatra-primary-dark, #2563eb);
13048 transform: translateY(-1px);
13049 box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
13050 color: white;
13051 }
13052
13053 .yatra-download-btn-icon {
13054 width: 16px;
13055 height: 16px;
13056 flex-shrink: 0;
13057 }
13058
13059 .yatra-download-btn-disabled {
13060 background: #9ca3af;
13061 color: #6b7280;
13062 cursor: not-allowed;
13063 opacity: 0.7;
13064 }
13065
13066 .yatra-download-btn-disabled:hover {
13067 background: #9ca3af;
13068 transform: none;
13069 box-shadow: none;
13070 color: #6b7280;
13071 }
13072
13073 /* Responsive Design */
13074 @media (max-width: 768px) {
13075 .yatra-downloads-list {
13076 gap: 12px;
13077 }
13078
13079 .yatra-download-item {
13080 flex-direction: column;
13081 align-items: flex-start;
13082 gap: 12px;
13083 padding: 16px;
13084 }
13085
13086 .yatra-download-icon {
13087 width: 50px;
13088 height: 50px;
13089 min-width: 50px;
13090 }
13091
13092 .yatra-download-file-icon {
13093 width: 24px;
13094 height: 24px;
13095 }
13096
13097 .yatra-download-action {
13098 margin-left: 0;
13099 width: 100%;
13100 }
13101
13102 .yatra-download-btn {
13103 width: 100%;
13104 justify-content: center;
13105 }
13106 }
13107
13108 @media (max-width: 480px) {
13109 .yatra-download-item {
13110 padding: 12px;
13111 }
13112
13113 .yatra-download-title {
13114 font-size: 15px;
13115 }
13116
13117 .yatra-download-description {
13118 font-size: 13px;
13119 }
13120
13121 .yatra-download-meta {
13122 font-size: 11px;
13123 gap: 8px;
13124 }
13125 }
13126
13127 /* End of Downloads Section Styles */
13128
13129 /* ============================================
13130 SINGLE TRIP — Tab sections (moved from partials; token-based spacing)
13131 ============================================ */
13132
13133 /* --- What makes this trip special --- */
13134 #what-makes-special .yatra-trip-special-container {
13135 margin: 0 auto;
13136 }
13137
13138 #what-makes-special .yatra-trip-special-content {
13139 background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
13140 border-radius: 16px;
13141 padding: clamp(var(--yatra-container-padding), 5vw, 2.5rem);
13142 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
13143 position: relative;
13144 overflow: hidden;
13145 }
13146
13147 #what-makes-special .yatra-trip-special-content::before {
13148 content: '';
13149 position: absolute;
13150 top: -50%;
13151 right: -50%;
13152 width: 200%;
13153 height: 200%;
13154 background: radial-gradient(circle, rgba(251, 191, 36, 0.1) 0%, transparent 70%);
13155 animation: yatra-special-float 6s ease-in-out infinite;
13156 }
13157
13158 @keyframes yatra-special-float {
13159 0%, 100% { transform: translateY(0) rotate(0deg); }
13160 50% { transform: translateY(-20px) rotate(180deg); }
13161 }
13162
13163 #what-makes-special .yatra-special-features {
13164 position: relative;
13165 z-index: 1;
13166 }
13167
13168 #what-makes-special .yatra-special-feature-item {
13169 display: flex;
13170 align-items: flex-start;
13171 gap: var(--yatra-small-gap);
13172 margin-bottom: var(--yatra-element-gap);
13173 padding: var(--yatra-small-gap);
13174 background: rgba(255, 255, 255, 0.7);
13175 border-radius: 12px;
13176 transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
13177 }
13178
13179 #what-makes-special .yatra-special-feature-item:hover {
13180 background: rgba(255, 255, 255, 0.9);
13181 transform: translateY(-2px);
13182 box-shadow: 0 8px 25px -5px rgba(251, 191, 36, 0.2);
13183 }
13184
13185 #what-makes-special .yatra-special-feature-item:last-child {
13186 margin-bottom: 0;
13187 }
13188
13189 #what-makes-special .yatra-special-feature-icon {
13190 flex-shrink: 0;
13191 width: 24px;
13192 height: 24px;
13193 color: #f59e0b;
13194 margin-top: 2px;
13195 }
13196
13197 #what-makes-special .yatra-special-feature-text {
13198 font-size: 1rem;
13199 line-height: 1.6;
13200 color: #78350f;
13201 font-weight: 500;
13202 }
13203
13204 #what-makes-special .yatra-special-badge {
13205 display: inline-flex;
13206 align-items: center;
13207 gap: var(--yatra-mini-gap);
13208 margin-top: var(--yatra-element-gap);
13209 padding: var(--yatra-tiny-gap) var(--yatra-element-gap);
13210 background: #f59e0b;
13211 color: #fff;
13212 border-radius: 25px;
13213 font-weight: 600;
13214 font-size: 0.875rem;
13215 box-shadow: 0 4px 6px -1px rgba(245, 158, 11, 0.3);
13216 }
13217
13218 #what-makes-special .yatra-badge-icon {
13219 width: 16px;
13220 height: 16px;
13221 }
13222
13223 #what-makes-special .yatra-special-features .yatra-no-content {
13224 color: #92400e;
13225 font-style: italic;
13226 text-align: center;
13227 padding: 2rem;
13228 background: rgba(255, 255, 255, 0.5);
13229 border-radius: 12px;
13230 }
13231
13232 @media (prefers-color-scheme: dark) {
13233 #what-makes-special .yatra-trip-special-content {
13234 background: linear-gradient(135deg, #451a03 0%, #78350f 100%);
13235 }
13236
13237 #what-makes-special .yatra-special-feature-item {
13238 background: rgba(30, 41, 59, 0.7);
13239 }
13240
13241 #what-makes-special .yatra-special-feature-item:hover {
13242 background: rgba(30, 41, 59, 0.9);
13243 }
13244
13245 #what-makes-special .yatra-special-feature-text {
13246 color: #fbbf24;
13247 }
13248
13249 #what-makes-special .yatra-special-badge {
13250 background: #f59e0b;
13251 color: #451a03;
13252 }
13253
13254 #what-makes-special .yatra-special-features .yatra-no-content {
13255 color: #fbbf24;
13256 background: rgba(30, 41, 59, 0.5);
13257 }
13258 }
13259
13260 @media (max-width: 768px) {
13261 #what-makes-special .yatra-special-feature-item {
13262 padding: var(--yatra-tiny-gap);
13263 gap: var(--yatra-tiny-gap);
13264 }
13265
13266 #what-makes-special .yatra-special-feature-icon {
13267 width: 20px;
13268 height: 20px;
13269 }
13270
13271 #what-makes-special .yatra-special-feature-text {
13272 font-size: 0.9rem;
13273 }
13274 }
13275
13276 /* --- Trip story --- */
13277 #trip-story .yatra-trip-story-container {
13278 margin: 0 auto;
13279 }
13280
13281 #trip-story .yatra-trip-story-content {
13282 background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
13283 border-radius: 16px;
13284 padding: clamp(var(--yatra-container-padding), 5vw, 2.5rem);
13285 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
13286 position: relative;
13287 overflow: hidden;
13288 }
13289
13290 #trip-story .yatra-trip-story-content::before {
13291 content: '"';
13292 position: absolute;
13293 top: -20px;
13294 left: var(--yatra-element-gap);
13295 font-size: 120px;
13296 color: #e2e8f0;
13297 font-family: Georgia, serif;
13298 z-index: 0;
13299 }
13300
13301 #trip-story .yatra-trip-story-text {
13302 position: relative;
13303 z-index: 1;
13304 font-size: 1.125rem;
13305 line-height: 1.8;
13306 color: #475569;
13307 }
13308
13309 #trip-story .yatra-trip-story-text p {
13310 margin-bottom: 1.5rem;
13311 }
13312
13313 #trip-story .yatra-trip-story-text p:last-child {
13314 margin-bottom: 0;
13315 }
13316
13317 #trip-story .yatra-trip-story-text h1,
13318 #trip-story .yatra-trip-story-text h2,
13319 #trip-story .yatra-trip-story-text h3 {
13320 color: #1e293b;
13321 margin-top: 2rem;
13322 margin-bottom: 1rem;
13323 }
13324
13325 #trip-story .yatra-trip-story-text h1 { font-size: 1.875rem; }
13326 #trip-story .yatra-trip-story-text h2 { font-size: 1.5rem; }
13327 #trip-story .yatra-trip-story-text h3 { font-size: 1.25rem; }
13328
13329 #trip-story .yatra-trip-story-text ul,
13330 #trip-story .yatra-trip-story-text ol {
13331 margin: 1.5rem 0;
13332 padding-left: 2rem;
13333 }
13334
13335 #trip-story .yatra-trip-story-text li {
13336 margin-bottom: 0.5rem;
13337 color: #475569;
13338 }
13339
13340 #trip-story .yatra-trip-story-text blockquote {
13341 border-left: 4px solid var(--yatra-primary, #3b82f6);
13342 padding-left: 1.5rem;
13343 margin: 1.5rem 0;
13344 font-style: italic;
13345 color: #64748b;
13346 }
13347
13348 #trip-story .yatra-trip-story-text strong {
13349 color: #1e293b;
13350 font-weight: 600;
13351 }
13352
13353 #trip-story .yatra-trip-story-text em {
13354 color: #64748b;
13355 font-style: italic;
13356 }
13357
13358 #trip-story .yatra-trip-story-meta {
13359 margin-top: var(--yatra-element-gap);
13360 text-align: center;
13361 }
13362
13363 #trip-story .yatra-story-highlight {
13364 display: inline-flex;
13365 align-items: center;
13366 gap: var(--yatra-mini-gap);
13367 padding: var(--yatra-mini-gap) var(--yatra-small-gap);
13368 background: #fef3c7;
13369 border-radius: 20px;
13370 color: #92400e;
13371 font-size: 0.875rem;
13372 font-weight: 500;
13373 }
13374
13375 #trip-story .yatra-story-icon {
13376 width: 16px;
13377 height: 16px;
13378 }
13379
13380 #trip-story .yatra-trip-story-text > .yatra-no-content {
13381 color: #94a3b8;
13382 font-style: italic;
13383 text-align: center;
13384 padding: 2rem;
13385 }
13386
13387 @media (prefers-color-scheme: dark) {
13388 #trip-story .yatra-trip-story-content {
13389 background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
13390 }
13391
13392 #trip-story .yatra-trip-story-content::before {
13393 color: #475569;
13394 }
13395
13396 #trip-story .yatra-trip-story-text {
13397 color: #cbd5e1;
13398 }
13399
13400 #trip-story .yatra-trip-story-text h1,
13401 #trip-story .yatra-trip-story-text h2,
13402 #trip-story .yatra-trip-story-text h3 {
13403 color: #f8fafc;
13404 }
13405
13406 #trip-story .yatra-trip-story-text li {
13407 color: #cbd5e1;
13408 }
13409
13410 #trip-story .yatra-trip-story-text blockquote {
13411 color: #94a3b8;
13412 border-left-color: #60a5fa;
13413 }
13414
13415 #trip-story .yatra-trip-story-text strong {
13416 color: #f8fafc;
13417 }
13418
13419 #trip-story .yatra-trip-story-text em {
13420 color: #94a3b8;
13421 }
13422
13423 #trip-story .yatra-story-highlight {
13424 background: #451a03;
13425 color: #fbbf24;
13426 }
13427
13428 #trip-story .yatra-trip-story-text > .yatra-no-content {
13429 color: #64748b;
13430 }
13431 }
13432
13433 @media (max-width: 768px) {
13434 #trip-story .yatra-trip-story-text {
13435 font-size: 1rem;
13436 }
13437
13438 #trip-story .yatra-trip-story-content::before {
13439 font-size: 80px;
13440 top: -10px;
13441 left: var(--yatra-tiny-gap);
13442 }
13443 }
13444
13445 /* --- Testimonials tab --- */
13446 .yatra-testimonials-content {
13447 margin-top: var(--yatra-section-gap);
13448 }
13449
13450 .yatra-testimonial-avatar {
13451 width: 52px;
13452 height: 52px;
13453 border-radius: 50%;
13454 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
13455 color: #fff;
13456 display: flex;
13457 align-items: center;
13458 justify-content: center;
13459 font-weight: 600;
13460 font-size: 18px;
13461 flex-shrink: 0;
13462 }
13463
13464 .yatra-testimonials-empty {
13465 text-align: center;
13466 padding: clamp(3rem, 10vw, 5rem) var(--yatra-container-padding);
13467 background: #f8fafc;
13468 border-radius: 16px;
13469 border: 2px dashed #e2e8f0;
13470 }
13471
13472 .yatra-testimonials-empty-icon {
13473 margin-bottom: var(--yatra-element-gap);
13474 }
13475
13476 .yatra-testimonials-empty-svg {
13477 width: 80px;
13478 height: 80px;
13479 color: #cbd5e1;
13480 margin: 0 auto;
13481 }
13482
13483 .yatra-testimonials-empty-title {
13484 font-size: 1.5rem;
13485 font-weight: 600;
13486 color: #1e293b;
13487 margin-bottom: var(--yatra-tiny-gap);
13488 }
13489
13490 .yatra-testimonials-empty-text {
13491 color: #64748b;
13492 margin-bottom: var(--yatra-section-gap);
13493 max-width: 400px;
13494 margin-left: auto;
13495 margin-right: auto;
13496 }
13497
13498 .yatra-testimonials-empty-cta {
13499 display: inline-flex;
13500 align-items: center;
13501 gap: var(--yatra-mini-gap);
13502 background: var(--yatra-primary, #3b82f6);
13503 color: #fff;
13504 text-decoration: none;
13505 padding: var(--yatra-tiny-gap) var(--yatra-element-gap);
13506 border-radius: 8px;
13507 font-weight: 500;
13508 transition: background-color 0.3s ease;
13509 }
13510
13511 .yatra-testimonials-empty-cta:hover {
13512 background: var(--yatra-primary-dark, #2563eb);
13513 color: #fff;
13514 }
13515
13516 @media (prefers-color-scheme: dark) {
13517 .yatra-testimonials-empty {
13518 background: #1e293b;
13519 border-color: #334155;
13520 }
13521
13522 .yatra-testimonials-empty-title {
13523 color: #f8fafc;
13524 }
13525
13526 .yatra-testimonials-empty-text {
13527 color: #cbd5e1;
13528 }
13529 }
13530
13531 @media (max-width: 768px) {
13532 .yatra-testimonials-empty {
13533 padding: clamp(2.5rem, 8vw, 3.75rem) var(--yatra-container-padding);
13534 }
13535 }
13536
13537 /* --- FAQ accordion --- */
13538 #faq .faq-header {
13539 display: flex;
13540 justify-content: space-between;
13541 align-items: center;
13542 margin-bottom: var(--yatra-element-gap);
13543 flex-wrap: wrap;
13544 gap: var(--yatra-small-gap);
13545 }
13546
13547 #faq .faq-controls {
13548 display: flex;
13549 gap: var(--yatra-mini-gap);
13550 }
13551
13552 #faq .faq-toggle-btn,
13553 #faq .faq-btn {
13554 display: inline-flex;
13555 align-items: center;
13556 gap: 6px;
13557 padding: 6px var(--yatra-tiny-gap);
13558 background: #fff;
13559 border: 1px solid #e5e7eb;
13560 border-radius: 6px;
13561 font-size: 13px;
13562 color: #6b7280;
13563 cursor: pointer;
13564 transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
13565 }
13566
13567 #faq .faq-toggle-btn:hover,
13568 #faq .faq-btn:hover {
13569 background: #f9fafb;
13570 border-color: #d1d5db;
13571 color: #374151;
13572 }
13573
13574 #faq .faq-toggle-btn svg,
13575 #faq .faq-btn svg {
13576 flex-shrink: 0;
13577 }
13578
13579 #faq .faq-btn-arrow {
13580 color: #9ca3af;
13581 transition: transform 0.3s ease;
13582 }
13583
13584 #faq .faq-container {
13585 margin: 0 auto;
13586 border: 1px solid #e5e7eb;
13587 border-radius: 8px;
13588 overflow: hidden;
13589 }
13590
13591 #faq .faq-item {
13592 border-bottom: 1px solid #e5e7eb;
13593 }
13594
13595 #faq .faq-item:last-child {
13596 border-bottom: none;
13597 }
13598
13599 #faq .faq-question {
13600 width: 100%;
13601 background: none;
13602 border: none;
13603 padding: var(--yatra-small-gap) var(--yatra-element-gap);
13604 text-align: left;
13605 font-size: 15px;
13606 font-weight: 500;
13607 color: #374151;
13608 cursor: pointer;
13609 display: flex;
13610 justify-content: space-between;
13611 align-items: center;
13612 transition: background-color 0.2s ease;
13613 }
13614
13615 #faq .faq-question:hover {
13616 background: #f9fafb;
13617 }
13618
13619 #faq .faq-item.active .faq-question {
13620 background: #f9fafb;
13621 font-weight: 600;
13622 }
13623
13624 #faq .faq-arrow {
13625 color: #9ca3af;
13626 transition: transform 0.3s ease;
13627 flex-shrink: 0;
13628 margin-left: var(--yatra-tiny-gap);
13629 }
13630
13631 #faq .faq-item.active .faq-arrow {
13632 color: #6b7280;
13633 transform: rotate(180deg);
13634 }
13635
13636 #faq .faq-toggle-btn .collapse-icon {
13637 display: none;
13638 }
13639
13640 #faq .faq-toggle-btn.is-all-expanded .expand-icon {
13641 display: none;
13642 }
13643
13644 #faq .faq-toggle-btn.is-all-expanded .collapse-icon {
13645 display: block;
13646 }
13647
13648 #faq .faq-answer {
13649 max-height: 0;
13650 overflow: hidden;
13651 transition: max-height 0.35s ease;
13652 background: #f9fafb;
13653 padding: 0 var(--yatra-element-gap);
13654 color: #6b7280;
13655 line-height: 1.5;
13656 font-size: 14px;
13657 }
13658
13659 #faq .faq-item.active .faq-answer {
13660 max-height: min(4000px, 200vh);
13661 padding: 0 var(--yatra-element-gap) var(--yatra-small-gap) var(--yatra-element-gap);
13662 }
13663
13664 #faq .faq-answer p {
13665 margin: 0 0 var(--yatra-mini-gap) 0;
13666 }
13667
13668 #faq .faq-answer p:last-child {
13669 margin-bottom: 0;
13670 }
13671
13672 #faq .faq-answer ul,
13673 #faq .faq-answer ol {
13674 margin: var(--yatra-mini-gap) 0;
13675 padding-left: var(--yatra-small-gap);
13676 }
13677
13678 #faq .faq-answer li {
13679 margin-bottom: var(--yatra-micro-gap);
13680 }
13681
13682 @media (max-width: 768px) {
13683 #faq .faq-header {
13684 flex-direction: column;
13685 align-items: flex-start;
13686 gap: var(--yatra-tiny-gap);
13687 }
13688
13689 #faq .faq-controls {
13690 width: 100%;
13691 justify-content: flex-start;
13692 }
13693
13694 #faq .faq-question {
13695 padding: 14px var(--yatra-small-gap);
13696 font-size: 14px;
13697 }
13698
13699 #faq .faq-answer {
13700 font-size: 13px;
13701 }
13702
13703 #faq .faq-item.active .faq-answer {
13704 padding: 0 var(--yatra-small-gap) 14px var(--yatra-small-gap);
13705 }
13706 }
13707
13708 /* ============================================
13709 MOBILE-INPUT HYGIENE (single-trip booking widget)
13710 ============================================
13711 Applied last so it wins specificity ties against earlier desktop
13712 rules without needing !important. Two concerns:
13713
13714 1. iOS Safari auto-zoom: any <input>/<select>/<textarea> with
13715 computed font-size < 16px triggers a 1.25x viewport zoom on
13716 focus. The trip page's sticky booking widget often contains
13717 a date / traveler / discount field — zoom + scroll-jump
13718 breaks the user mid-typing.
13719
13720 2. Tap-target comfort: bump the rendered control height to ~48px
13721 so thumbs in portrait have room. Apple HIG minimum is 44pt;
13722 48dp (Material) is more forgiving and matches the public
13723 booking form (booking.css).
13724 ============================================ */
13725 @media (max-width: 768px) {
13726 .yatra-trip-sidebar input,
13727 .yatra-trip-sidebar select,
13728 .yatra-trip-sidebar textarea,
13729 .yatra-booking-card input,
13730 .yatra-booking-card select,
13731 .yatra-booking-card textarea {
13732 font-size: 16px;
13733 min-height: 48px;
13734 padding-top: 12px;
13735 padding-bottom: 12px;
13736 }
13737
13738 .yatra-trip-sidebar textarea,
13739 .yatra-booking-card textarea {
13740 min-height: 96px;
13741 }
13742
13743 /*
13744 * The "Book now" / "Reserve" CTA in the booking card needs the
13745 * same comfortable size. Buttons inside the card sometimes
13746 * inherit smaller padding from utility classes.
13747 */
13748 .yatra-booking-card button,
13749 .yatra-booking-card .yatra-book-now-btn,
13750 .yatra-booking-card .yatra-trip-cta {
13751 min-height: 48px;
13752 font-size: 16px;
13753 }
13754 }
13755