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

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

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