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

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

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