/* Custom Premium Vibe Styling for Nepas Travel */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --vibe-primary: #df6951;
  --vibe-primary-gradient: linear-gradient(135deg, #df6951 0%, #f1a501 100%);
  --vibe-purple-gradient: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 100%);
  --vibe-dark: #14183e;
  --vibe-glass: rgba(255, 255, 255, 0.88);
  --vibe-glass-border: rgba(255, 255, 255, 0.6);
  --vibe-shadow-sm: 0 10px 30px rgba(0, 0, 0, 0.05);
  --vibe-shadow-md: 0 18px 40px rgba(223, 105, 81, 0.12);
  --vibe-shadow-lg: 0 25px 50px -12px rgba(20, 24, 62, 0.12);
}

body {
  font-family: 'Plus Jakarta Sans', 'Poppins', sans-serif !important;
  color: #1e293b !important;
  overflow-x: hidden;
  line-height: 1.6;
}

/* Make body paragraphs and muted text crisp & dark */
p, .text-muted, .text-secondary {
  color: #334155 !important;
}

h1, h2, h3, h4, h5, h6 {
  color: #0f172a !important;
  font-weight: 700;
}

/* Slim Glassmorphism Navbar */
.navbar {
  background: var(--vibe-glass) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(203, 213, 225, 0.4);
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  transition: all 0.3s ease;
}

.navbar-brand img {
  height: 44px !important;
  transition: all 0.3s ease;
}

/* Air & Spacious Layout Rules Across All Pages */
section {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

.py-6 {
  padding-top: 5.5rem !important;
  padding-bottom: 5.5rem !important;
}

.py-5 {
  padding-top: 4.5rem !important;
  padding-bottom: 4.5rem !important;
}

.mb-5 {
  margin-bottom: 3rem !important;
}

/* Card Outer Margins & Breathing Room */
.quote-card-vibe {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

/* Partner Trust Strip Spacing */
.py-4.bg-light.border-top.border-bottom {
  padding-top: 3.5rem !important;
  padding-bottom: 3.5rem !important;
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}

/* Restore Original Header Typography & Gradient */
h1, h2, h3, h4, h5, h6,
.font-cursive,
.font-volkhov {
  font-family: 'Volkhov', serif !important;
  color: #181e4b;
}

.hero-title {
  font-family: 'Volkhov', serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #181e4b 0%, #df6951 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  position: relative;
}

/* Hide stray red brush underline artifact */
.hero-title:before,
.hero-title:after,
h1:before, h1:after,
h2:before, h2:after {
  display: none !important;
  content: none !important;
  background-image: none !important;
}

/* Premium Buttons */
.btn-vibe-primary {
  background: var(--vibe-primary-gradient) !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
  border-radius: 50px !important;
  padding: 14px 32px !important;
  box-shadow: 0 10px 25px rgba(223, 105, 81, 0.35) !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.btn-vibe-primary:hover {
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 15px 35px rgba(223, 105, 81, 0.45) !important;
  color: #fff !important;
}

.btn-vibe-outline {
  border: 2px solid #25D366 !important;
  color: #128C7E !important;
  font-weight: 700 !important;
  border-radius: 50px !important;
  padding: 12px 28px !important;
  background: rgba(37, 211, 102, 0.06) !important;
  transition: all 0.3s ease !important;
}

.btn-vibe-outline:hover {
  background: #25D366 !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 25px rgba(37, 211, 102, 0.3) !important;
}

/* Glassmorphic Flight Quote Card */
.quote-card-vibe {
  border-radius: 28px !important;
  background: rgba(255, 255, 255, 0.96) !important;
  backdrop-filter: blur(20px);
  border: 1px solid rgba(223, 215, 249, 0.6) !important;
  box-shadow: var(--vibe-shadow-lg) !important;
  position: relative;
  overflow: hidden;
}

.quote-card-vibe::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 5px;
  background: linear-gradient(90deg, #df6951, #f1a501, #6c5ce7);
}

/* Custom Segmented Trip Type Pill Toggle */
.trip-toggle-vibe {
  background: #f1f3f9;
  padding: 6px;
  border-radius: 50px;
  display: inline-flex;
}

.trip-toggle-vibe .btn-check + .btn {
  border: none !important;
  border-radius: 50px !important;
  padding: 10px 28px !important;
  font-weight: 600;
  color: #5e6282;
  transition: all 0.3s ease;
}

.trip-toggle-vibe .btn-check:checked + .btn {
  background: #ffffff !important;
  color: #df6951 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08) !important;
  font-weight: 700;
}

/* Form Labels & Inputs Styling for Maximum Visibility */
.quote-card-vibe .form-label,
#contact-form .form-label {
  color: #0f172a !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  margin-bottom: 6px;
}

/* Footer Newsletter Pill Capsule Wrapper */
#newsletter-form .input-group {
  background: #ffffff !important;
  border-radius: 50px !important;
  padding: 4px 5px !important;
  border: 1.5px solid #cbd5e1 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.04) !important;
  overflow: hidden;
  transition: all 0.2s ease;
}

#newsletter-form .input-group:focus-within {
  border-color: #df6951 !important;
  box-shadow: 0 0 0 4px rgba(223, 105, 81, 0.2) !important;
}

#newsletter-form .form-control {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 10px 18px !important;
  font-size: 0.9rem !important;
  color: #0f172a !important;
}

#newsletter-form .form-control::placeholder {
  color: #64748b !important;
}

#newsletter-form .btn-vibe-primary {
  border-radius: 50px !important;
  padding: 10px 24px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(223, 105, 81, 0.3) !important;
}

.quote-card-vibe .form-control,
.quote-card-vibe .form-select,
#contact-form .form-control {
  border-radius: 14px;
  border: 1.5px solid #cbd5e1 !important;
  padding: 12px 18px;
  font-weight: 600 !important;
  font-size: 0.95rem;
  color: #0f172a !important;
  transition: all 0.2s ease;
  background-color: #ffffff !important;
}

.quote-card-vibe .form-control::placeholder,
#contact-form .form-control::placeholder {
  color: #64748b !important;
  font-weight: 500;
}

.quote-card-vibe .form-control:focus,
.quote-card-vibe .form-select:focus,
#contact-form .form-control:focus {
  border-color: #df6951 !important;
  box-shadow: 0 0 0 4px rgba(223, 105, 81, 0.2) !important;
  background-color: #ffffff !important;
}

/* Service & Route Cards Hover Zoom & Vibe Glow */
.service-card,
.route-card-vibe {
  border-radius: 20px !important;
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
  overflow: hidden;
  border: 1px solid rgba(223, 215, 249, 0.3) !important;
}

.service-card:hover,
.route-card-vibe:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 20px 40px rgba(20, 24, 62, 0.12) !important;
}

.route-card-vibe .card-img-top {
  transition: transform 0.6s ease;
}

.route-card-vibe:hover .card-img-top {
  transform: scale(1.07);
}

/* Floating WhatsApp Pulse Animation */
@keyframes whatsappPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6);
  }
  70% {
    box-shadow: 0 0 0 15px rgba(37, 211, 102, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

.whatsapp-pulse {
  animation: whatsappPulse 2s infinite;
}

/* Soft Badges */
.badge-vibe-danger {
  background: rgba(223, 105, 81, 0.12) !important;
  color: #df6951 !important;
}

.badge-vibe-info {
  background: rgba(108, 92, 231, 0.12) !important;
  color: #6c5ce7 !important;
}

.badge-vibe-success {
  background: rgba(37, 211, 102, 0.12) !important;
  color: #128c7e !important;
}

/* FAQ Accordion Styling */
.accordion-vibe .accordion-item {
  border-radius: 16px !important;
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid #edf2f7 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
  transition: all 0.2s ease;
}

.accordion-vibe .accordion-button {
  font-weight: 700;
  color: #1e1d4c;
  background: #ffffff;
  padding: 18px 24px;
}

.accordion-vibe .accordion-button:not(.collapsed) {
  background: rgba(223, 215, 249, 0.15);
  color: #df6951;
  box-shadow: none;
}

/* Mobile Navbar & Mobile Logo Perfection */
@media (max-width: 991.98px) {
  .navbar {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .navbar > .container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: relative;
  }

  .navbar-brand {
    margin-right: 0 !important;
  }

  .navbar-brand img {
    height: 36px !important;
    width: auto !important;
    max-width: 160px !important;
    object-fit: contain;
  }

  .navbar-toggler {
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    padding: 4px 8px !important;
    background-color: #ffffff !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04) !important;
  }

  .navbar-toggler-icon {
    width: 1.1em !important;
    height: 1.1em !important;
    background-size: 100% 100% !important;
  }

  .navbar-toggler:focus {
    box-shadow: 0 0 0 3px rgba(223, 105, 81, 0.2) !important;
  }

  .navbar-collapse {
    position: absolute !important;
    top: 100% !important;
    left: 12px !important;
    right: 12px !important;
    background: #ffffff !important;
    border-radius: 18px !important;
    padding: 16px 20px !important;
    box-shadow: 0 20px 45px rgba(15, 23, 42, 0.18) !important;
    margin-top: 8px !important;
    border: 1px solid #cbd5e1 !important;
    z-index: 1090 !important;
  }

  .navbar-nav {
    width: 100% !important;
  }

  .navbar-nav .nav-item {
    padding: 0 !important;
    margin-bottom: 0 !important;
    width: 100% !important;
    border-bottom: 1px solid #f1f5f9;
  }

  .navbar-nav .nav-item:last-child {
    border-bottom: none;
  }

  .navbar-nav .nav-link {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    padding: 12px 8px !important;
    display: block;
  }

  .navbar-nav .btn {
    width: 100% !important;
    text-align: center;
    margin-top: 12px !important;
    margin-bottom: 4px !important;
    padding: 12px 20px !important;
    font-weight: 700 !important;
    border-radius: 50px !important;
  }

  /* Spacing adjustments on tablet/mobile */
  section {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }

  .py-6, .py-5 {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
  }

  /* Hero image sizing on tablet */
  .hero-img {
    max-height: 320px !important;
    width: auto !important;
    margin: 0 auto 1.5rem auto;
    display: block;
  }

  /* Hide offset background cards that cause side-scrolling */
  .card.shadow-sm.position-absolute[style*="transform:translate(25px, 25px)"] {
    display: none !important;
  }
}

@media (max-width: 767.98px) {
  /* Prevent horizontal page scrolling */
  html, body {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  /* Hero title & text sizing on small mobile */
  .hero-title {
    font-size: 1.85rem !important;
    line-height: 1.3 !important;
  }

  .hero-img {
    max-height: 240px !important;
  }

  /* Flight Quote Widget Pill Toggle on small screens */
  .trip-toggle-vibe {
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .trip-toggle-vibe .btn-check + .btn {
    padding: 8px 16px !important;
    font-size: 0.85rem !important;
    flex: 1;
    text-align: center;
  }

  /* Form controls on mobile */
  .quote-card-vibe {
    padding: 1.25rem !important;
    border-radius: 16px !important;
    margin-top: 0.5rem !important;
    margin-bottom: 1.5rem !important;
  }

  .quote-card-vibe .card-body {
    padding: 0.75rem !important;
  }

  .quote-card-vibe .form-control,
  .quote-card-vibe .form-select,
  #contact-form .form-control {
    font-size: 16px !important; /* Prevents iOS browser auto-zoom */
    padding: 10px 14px !important;
  }

  /* Partner Airline Badges Grid */
  .py-4.bg-light.border-top.border-bottom {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
    margin-top: 1.5rem !important;
    margin-bottom: 1.5rem !important;
  }

  /* Floating WhatsApp & Call Widget adjustment */
  .position-fixed.bottom-0.end-0 {
    padding: 12px !important;
  }

  .whatsapp-pulse, .position-fixed .btn-primary {
    width: 46px !important;
    height: 46px !important;
  }
}
