/* Layer 2: reusable header, buttons, cards, forms, tabs, modal and footer. */

/* Header and navigation */
.tb-topbar {
  color: rgba(255,255,255,.9);
  background: var(--tb-ink-950) !important;
  border: 0 !important;
}

.tb-topbar-inner { min-height: 42px; }

.tb-topbar a,
.tb-topbar-contact a {
  color: rgba(255,255,255,.92) !important;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.tb-topbar a i { color: var(--tb-teal-500) !important; }

.tb-topbar-social { display: flex; gap: 8px; }

.tb-topbar-social a {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 50%;
}

.tb-topbar-social a:hover {
  background: var(--tb-teal-600) !important;
  border-color: var(--tb-teal-600) !important;
  transform: translateY(-2px);
}

.tb-topbar-social a:hover i { color: #fff !important; }

.tb-header {
  position: relative;
  z-index: 60;
  min-height: var(--tb-header-height);
  background: rgba(255,255,255,.98) !important;
  border-bottom: 1px solid var(--tb-border) !important;
  box-shadow: 0 8px 28px rgba(28, 10, 51, .06) !important;
}

.tb-navbar { min-height: var(--tb-header-height); padding-block: 10px; }

.tb-navbar .navbar-brand {
  display: inline-flex;
  align-items: center;
  min-width: 150px;
  max-width: 205px;
  margin-right: 22px;
}

.tb-navbar .navbar-brand img {
  display: block;
  width: auto;
  max-width: 100%;
  height: 52px;
  object-fit: contain;
}

.tb-main-menu {
  display: flex;
  align-items: stretch;
  gap: 0 !important;
  padding: 0 !important;
  overflow: visible;
  background: #fff !important;
  border: 1px solid var(--tb-border) !important;
  border-radius: 24px !important;
  box-shadow: var(--tb-shadow-xs);
}

.tb-main-menu > .nav-item { display: flex; margin: 0 !important; }

.tb-main-menu > .nav-item + .nav-item { border-left: 1px solid var(--tb-border); }

.tb-main-menu > .nav-item > .nav-link {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 48px;
  padding: 11px 14px !important;
  color: #343044 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
}

.tb-main-menu > .nav-item:first-child > .nav-link { border-radius: 22px 0 0 22px !important; }
.tb-main-menu > .nav-item:last-child > .nav-link { border-radius: 0 22px 22px 0 !important; }

.tb-main-menu > .nav-item > .nav-link i:not(.tb-nav-caret) {
  color: var(--tb-teal-500) !important;
  font-size: 16px;
}

.tb-main-menu > .nav-item > .nav-link::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: 7px;
  left: 14px;
  height: 2px;
  background: var(--tb-teal-500);
  border-radius: var(--tb-radius-pill);
  opacity: 0;
  transform: scaleX(.35);
  display: block !important;
  transition: opacity var(--tb-transition), transform var(--tb-transition);
}

.tb-main-menu > .nav-item > .nav-link:hover,
.tb-main-menu > .nav-item > .nav-link.active {
  color: var(--tb-ink-950) !important;
  background: var(--tb-teal-50) !important;
}

.tb-main-menu > .nav-item > .nav-link:hover::after,
.tb-main-menu > .nav-item > .nav-link.active::after { opacity: 1 !important; transform: scaleX(1) !important; }

.tb-nav-caret { color: var(--tb-text-muted) !important; font-size: 9px !important; transition: transform var(--tb-transition); }
.tb-service-dropdown:hover .tb-nav-caret,
.tb-mega-holder:hover .tb-nav-caret { transform: rotate(180deg); }

.tb-service-menu,
.tb-mega-menu,
.tb-client-menu-list {
  overflow: hidden;
  padding: 10px !important;
  background: rgba(255,255,255,.99) !important;
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius-md) !important;
  box-shadow: var(--tb-shadow-md) !important;
}

.tb-service-menu .dropdown-item,
.tb-client-menu-list a,
.tb-client-menu-list button {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 9px 12px !important;
  color: var(--tb-text) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 10px !important;
  font-weight: 700;
  text-decoration: none;
}

.tb-service-menu .dropdown-item i,
.tb-client-menu-list i { color: var(--tb-teal-600) !important; }

.tb-service-menu .dropdown-item:hover,
.tb-client-menu-list a:hover,
.tb-client-menu-list button:hover { background: var(--tb-teal-50) !important; color: var(--tb-ink-950) !important; transform: translateX(3px); }

.tb-mega-head { color: #fff; background: var(--tb-gradient) !important; }
.tb-mega-grid a { color: var(--tb-text) !important; border-radius: 10px; }
.tb-mega-grid a:hover { color: var(--tb-ink-950) !important; background: var(--tb-teal-50) !important; }
.tb-mega-grid small { color: var(--tb-teal-700) !important; background: var(--tb-teal-100) !important; }

/* Capsule CTA language based on the supplied reference button. */
.btn,
.tb-btn,
.tb-live-search-btn,
.tb-booking-pay-btn,
.tb-select-slot-btn,
.tb-lead-submit,
.tb-demo-form > button,
.tb-client-login-btn {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 50px;
  padding: 12px 18px 12px 24px !important;
  overflow: hidden;
  color: #fff !important;
  background: var(--tb-gradient-button) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: var(--tb-radius-pill) !important;
  box-shadow: var(--tb-shadow-button) !important;
  font-size: 14px;
  font-weight: 800 !important;
  line-height: 1.2;
  text-decoration: none !important;
  isolation: isolate;
  cursor: pointer;
  transition: transform var(--tb-transition), box-shadow var(--tb-transition), filter var(--tb-transition) !important;
}

.btn::after,
.tb-btn::after,
.tb-live-search-btn::after,
.tb-booking-pay-btn::after,
.tb-select-slot-btn::after,
.tb-lead-submit::after,
.tb-demo-form > button::after,
.tb-client-login-btn::after {
  content: "\2192";
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  color: var(--tb-violet-700);
  background: rgba(255,255,255,.94);
  border-radius: 50%;
  font-size: 18px;
  line-height: 1;
  transition: transform var(--tb-transition), background var(--tb-transition);
}

.btn:hover,
.tb-btn:hover,
.tb-live-search-btn:hover,
.tb-booking-pay-btn:hover,
.tb-select-slot-btn:hover,
.tb-lead-submit:hover,
.tb-demo-form > button:hover,
.tb-client-login-btn:hover {
  color: #fff !important;
  filter: saturate(1.08) brightness(1.04);
  transform: translateY(-2px) !important;
  box-shadow: 0 16px 34px rgba(81,20,138,.28) !important;
}

.btn:hover::after,
.tb-btn:hover::after,
.tb-live-search-btn:hover::after,
.tb-booking-pay-btn:hover::after,
.tb-select-slot-btn:hover::after,
.tb-lead-submit:hover::after,
.tb-demo-form > button:hover::after,
.tb-client-login-btn:hover::after { transform: translateX(4px); background: #fff; }

.btn:active,
.tb-btn:active,
.tb-live-search-btn:active,
.tb-booking-pay-btn:active { transform: translateY(0) scale(.985) !important; }

.btn:disabled,
.tb-btn:disabled,
.tb-booking-pay-btn:disabled,
.tb-select-slot-btn.disabled { opacity: .56; cursor: not-allowed; filter: grayscale(.2); box-shadow: none !important; }

.btn-light,
.btn-outline,
.tb-btn-light {
  color: var(--tb-violet-700) !important;
  background: #fff !important;
  border-color: var(--tb-border-strong) !important;
  box-shadow: var(--tb-shadow-xs) !important;
}

.btn-light::after,
.btn-outline::after,
.tb-btn-light::after { color: #fff; background: var(--tb-teal-600); }

.tb-btn-sm,
.tb-client-login-btn {
  min-height: 44px;
  padding: 8px 10px 8px 18px !important;
  font-size: 13px;
}

.tb-btn-sm::after,
.tb-client-login-btn::after { width: 28px; height: 28px; flex-basis: 28px; font-size: 16px; }

.tb-client-login-btn { background: var(--tb-gradient-teal) !important; box-shadow: 0 12px 26px rgba(13,141,136,.22) !important; }
.tb-client-login-btn::after { color: var(--tb-teal-700); }

/* Tabs and compact clickable controls */
.booking-tabs,
.tb-category-tabs,
.tb-day-tabs,
.tb-trip-tabs,
.tb-search-tabs,
.plan-switch,
.tb-flight-booking-steps,
.tb-hotel-booking-steps {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  padding: 5px !important;
  overflow-x: auto;
  background: #fff !important;
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius-pill) !important;
  box-shadow: var(--tb-shadow-xs);
  scrollbar-width: thin;
}

.booking-tabs button,
.tb-category-tabs button,
.tb-day-tabs button,
.tb-trip-tab,
.tb-search-tab,
.plan-switch button,
.tb-flight-booking-steps a,
.tb-hotel-booking-steps a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 17px !important;
  color: var(--tb-text) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: var(--tb-radius-pill) !important;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.booking-tabs button i,
.tb-search-tab i { color: var(--tb-teal-600) !important; }

.booking-tabs button.active,
.tb-category-tabs button.active,
.tb-day-tabs button.active,
.tb-trip-tab.active,
.tb-search-tab.active,
.plan-switch button.active,
.tb-flight-booking-steps a.active,
.tb-hotel-booking-steps a.active {
  color: #fff !important;
  background: var(--tb-gradient-button) !important;
  box-shadow: 0 7px 18px rgba(81,20,138,.2);
}

.booking-tabs button.active i,
.tb-search-tab.active i { color: var(--tb-teal-100) !important; }

/* Forms */
form label,
.tb-form-label { color: var(--tb-text); font-size: 13px; font-weight: 800; }

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
  width: 100%;
  min-height: 48px;
  padding: 11px 14px !important;
  color: var(--tb-text) !important;
  background: #fff !important;
  border: 1px solid var(--tb-border-strong) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  font-size: 14px;
  transition: border-color var(--tb-transition), box-shadow var(--tb-transition), background var(--tb-transition) !important;
}

textarea { min-height: 112px; resize: vertical; }

input::placeholder,
textarea::placeholder { color: #9993a2 !important; opacity: 1; }

input:focus,
select:focus,
textarea:focus {
  background: #fff !important;
  border-color: var(--tb-teal-500) !important;
  box-shadow: 0 0 0 4px rgba(19,167,161,.12) !important;
  outline: none !important;
}

input[type="checkbox"],
input[type="radio"] { accent-color: var(--tb-teal-600); }

.tb-live-field,
.tb-filter-search,
.tb-form-control-wrap {
  background: #fff !important;
  border-color: var(--tb-border) !important;
  border-radius: 14px !important;
}

.tb-live-field label i,
.tb-filter-search i { color: var(--tb-teal-600) !important; }

.tb-form-alert,
.tb-lead-alert,
.tb-account-alert { border-radius: 12px !important; }

/* Shared cards */
.tb-content-card,
.tb-detail-card,
.tb-blog-card,
.tb-list-blog-card,
.tb-home-package-card,
.tb-list-package-card,
.tb-booking-panel,
.tb-booking-fare-card,
.tb-profile-card,
.tb-contact-info-panel,
.tb-contact-form-panel,
.tb-contact-map-card,
.booking-shell,
.tb-demo-docs,
.plan,
.article {
  background: #fff !important;
  border: 1px solid var(--tb-border) !important;
  border-radius: var(--tb-radius-lg) !important;
  box-shadow: var(--tb-shadow-sm) !important;
}

.tb-home-package-card,
.tb-blog-card,
.tb-list-blog-card,
.tb-list-package-card,
.country-card,
.booking-benefits > div {
  transition: transform var(--tb-transition), border-color var(--tb-transition), box-shadow var(--tb-transition) !important;
}

.tb-home-package-card:hover,
.tb-blog-card:hover,
.tb-list-blog-card:hover,
.tb-list-package-card:hover,
.country-card:hover,
.booking-benefits > div:hover {
  border-color: rgba(19,167,161,.48) !important;
  box-shadow: var(--tb-shadow-md) !important;
  transform: translateY(-5px) !important;
}

.tb-badge-more,
.pill,
.tb-booking-status-pill,
.tb-flight-count-pill,
.tb-result-count,
.tb-contact-chip {
  color: var(--tb-teal-700) !important;
  background: var(--tb-teal-50) !important;
  border: 1px solid var(--tb-teal-100) !important;
  border-radius: var(--tb-radius-pill) !important;
}

/* Modal / popup */
.tb-lead-popup-backdrop,
.tb-client-auth-backdrop,
.tb-visa-modal-backdrop { background: rgba(18,8,38,.76) !important; backdrop-filter: blur(5px); }

.tb-lead-popup-dialog,
.tb-client-auth-dialog,
.tb-visa-modal-dialog {
  overflow: hidden;
  background: #fff !important;
  border: 1px solid rgba(255,255,255,.35) !important;
  border-radius: 26px !important;
  box-shadow: 0 30px 90px rgba(18,8,38,.34) !important;
}

.tb-lead-popup-visual,
.tb-client-auth-brand,
.tb-visa-modal-head { color: #fff !important; background: var(--tb-gradient) !important; }

.tb-lead-popup-visual h3,
.tb-lead-popup-visual p,
.tb-client-auth-brand h3,
.tb-client-auth-brand p,
.tb-visa-modal-head h2,
.tb-visa-modal-head p { color: #fff !important; }

.tb-lead-popup-badge,
.tb-lead-popup-points span { color: var(--tb-teal-100) !important; }

.tb-lead-popup-close,
.tb-client-auth-close,
.tb-visa-modal-close {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  color: var(--tb-ink-950) !important;
  background: #fff !important;
  border: 1px solid var(--tb-border) !important;
  border-radius: 50% !important;
  box-shadow: var(--tb-shadow-xs);
}

.tb-lead-popup-close:hover,
.tb-client-auth-close:hover,
.tb-visa-modal-close:hover { color: #fff !important; background: var(--tb-teal-600) !important; border-color: var(--tb-teal-600) !important; transform: rotate(6deg); }

/* Footer */
.tb-footer,
body.tb-home-page .tb-footer {
  position: relative;
  padding: 72px 0 0 !important;
  overflow: hidden;
  color: rgba(255,255,255,.78) !important;
  background: var(--tb-gradient) !important;
  border: 0 !important;
}

.tb-footer::before {
  content: "";
  position: absolute;
  top: -140px;
  right: -100px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  box-shadow: 0 0 0 48px rgba(255,255,255,.025), 0 0 0 96px rgba(255,255,255,.018);
  pointer-events: none;
}

.tb-footer h4,
body.tb-home-page .tb-footer h4 { color: #fff !important; font-size: 17px !important; text-transform: none !important; }
.tb-footer p,
.tb-footer li,
body.tb-home-page .tb-footer p,
body.tb-home-page .tb-footer li { color: rgba(255,255,255,.72) !important; }

.tb-footer a,
body.tb-home-page .tb-footer a { color: rgba(255,255,255,.78) !important; text-decoration: none; font-size: 14px !important; }
.tb-footer a:hover { color: var(--tb-teal-100) !important; transform: translateX(3px); }

.tb-footer-social { display: flex; gap: 10px; }
.tb-footer-social a,
body.tb-home-page .tb-footer-social a {
  display: grid !important;
  width: 42px;
  height: 42px;
  place-items: center;
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 50% !important;
}
.tb-footer-social a:hover,
body.tb-home-page .tb-footer-social a:hover { background: var(--tb-teal-600) !important; border-color: var(--tb-teal-500) !important; transform: translateY(-3px); }

.tb-contact-list i { color: var(--tb-teal-400, #29c8c0) !important; }

.tb-footer-bottom,
body.tb-home-page .tb-footer-bottom {
  margin-top: 56px !important;
  padding: 22px 0 !important;
  border-top: 1px solid rgba(255,255,255,.13) !important;
}

.tb-footer-policy-links { display: flex; flex-wrap: wrap; gap: 8px 18px; }

.tb-back-top {
  display: grid !important;
  width: 48px !important;
  height: 48px !important;
  place-items: center;
  color: #fff !important;
  background: var(--tb-gradient-teal) !important;
  border: 2px solid rgba(255,255,255,.6) !important;
  border-radius: 50% !important;
  box-shadow: 0 12px 30px rgba(13,141,136,.28) !important;
}

.tb-back-top:hover { transform: translateY(-4px) !important; }

.tb-whatsapp-float,
[class*="whatsapp-float"] {
  color: #fff !important;
  background: var(--tb-teal-600) !important;
  border-color: rgba(255,255,255,.65) !important;
  box-shadow: 0 12px 30px rgba(13,141,136,.26) !important;
}
.tb-reference-page-action{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:28px;padding-top:24px;border-top:1px solid rgba(75,25,127,.13)}
.tb-reference-page-action small{color:#6d6879;line-height:1.5}
.tb-reference-page-action .tb-btn{border-radius:999px;padding-inline:22px}
.tb-reference-page-action .tb-btn i{transition:transform .18s ease}
.tb-reference-page-action .tb-btn:hover i{transform:translateX(4px)}
