/*

*/
:root,
[data-bs-theme=light] {
  --bs-body-bg: #ffffff;
  --bs-body-color: #494B5B;
  --bs-primary: #c4161c;
  --bs-visa-primary: #c4161c;
  --bs-visa-secondary: #003a66;
  --bs-primary-rgb: 196, 22, 28;
  --bs-primary-hover: #c4161c;
  --bs-primary-hover-rgb: 196, 22, 28;
  --bs-secondary: #CCE8C9;
  --bs-secondary-rgb: 204, 232, 201;
  --bs-heading-color: #16181B;
  --inverse-color: #494B5B;
  --inverse-color-rgb: 73, 75, 91;
  --bs-link-color: var(--bs-primary);
  --nav-bg: #ffffff;
  --bg-black: #000000;
  --nav-color: #fff;
  --nav-hover-color: #1f6bff;
  --dropdown-bg: #ffffff;
  --dropdown-color: #1f6bff;
  --dropdown-hover-bg: #f7f7f7;
  --nav-inverse: #000000;
  --nav-inverse-alt: #ffffff;
}
html {
    overflow-y: scroll;
}
body {
  font-family: 'Poppins', sans-serif;
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.site-wrap {
  position: relative;
}

::-moz-selection {
  background-color: var(--bs-black);
  color: var(--bs-white);
}

::selection {
  background-color: var(--bs-black);
  color: var(--bs-white);
}

a {
  -webkit-transition: 0.3s all ease-in-out;
  transition: 0.3s all ease-in-out;
  color: var(--bs-primary);
  text-decoration: underline;
}
a:hover {
  text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--bs-heading-color);
}

.container {
  max-width: 1140px;
}

.section {
  padding: 50px 0;
  scroll-margin-top: 40px;
  box-shadow: 0 0.1875rem 0.375rem rgba(var(--bs-black-rgb), 0.05) !important;
}
@media (max-width: 767.98px) {
  .section {
    padding: 40px 0;
  }
}
.section.first-section {
  /* padding-top: 100px; */
}
@media (min-width: 992px) {
  .section.first-section {
    /* padding-top: 130px; */
  }
}

.text-heading-color {
  color: var(--bs-heading-color);
}

.shadow-sm {
  -webkit-box-shadow: 0 0.125rem 0.25rem 0 rgba(var(--bs-black-rgb), 0.05) !important;
          box-shadow: 0 0.125rem 0.25rem 0 rgba(var(--bs-black-rgb), 0.05) !important;
}

.shadow {
  -webkit-box-shadow: 0 0.5rem 1rem 0 rgba(var(--bs-black-rgb), 0.05) !important;
          box-shadow: 0 0.5rem 1rem 0 rgba(var(--bs-black-rgb), 0.05) !important;
}

.shadow-lg {
  -webkit-box-shadow: 0 1rem 3rem 0 rgba(var(--bs-black-rgb), 0.05) !important;
          box-shadow: 0 1rem 3rem 0 rgba(var(--bs-black-rgb), 0.05) !important;
}

.list-checked {
  padding: 0;
  margin: 0;
  color: var(--bs-body-color);
}
.list-checked li {
  position: relative;
  margin-bottom: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
  gap: 10px;
}
.list-checked li i {
  width: 30px;
  height: 30px;
  text-align: center;
  line-height: 30px;
  display: inline-block;
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  border-radius: 50%;
  color: var(--bs-primary);
  font-size: 20px;
}
.list-checked li:before {
  position: absolute;
  display: inline-block;
  left: 0;
  content: "";
  vertical-align: -0.125em;
  background-repeat: no-repeat;
  background-position: right center;
  background-size: 1.5625rem 1.5625rem;
  width: 1.5625rem;
  height: 1.5625rem;
}

.btn {
  padding: 12px 20px;
  background-color: var(--bs-primary);
  color: var(--bs-white);
  border: 1px solid transparent;
  border-radius: 7px;
  font-weight: 600;
  position: relative;
}
.btn:hover, .btn:focus {
  color: var(--bs-white);
  background-color: var(--bs-primary-hover) !important;
  border: 1px solid var(--bs-primary-hover) !important;
  outline: none !important;
  box-shadow: none !important;
}
/* General button active state - exclude submit buttons */
.btn:active:not(button[type="submit"]) {
  color: var(--bs-white);
  background-color: var(--bs-primary-hover) !important;
  border: 1px solid var(--bs-primary-hover) !important;
  outline: none !important;
  box-shadow: none !important;
}
/* Remove blue focus ring from buttons */
.btn:focus-visible {
  outline: 2px solid var(--bs-primary) !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 0.2rem rgba(196, 22, 28, 0.25) !important;
}
/* Submit button specific styles */
button[type="submit"].btn-primary:focus,
button[type="submit"].btn-primary:focus-visible {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: var(--bs-white) !important;
  outline: 2px solid var(--bs-primary) !important;
  outline-offset: 2px;
  box-shadow: 0 0 0 0.2rem rgba(196, 22, 28, 0.25) !important;
}
/* Submit button active/click state - black with white text (highest specificity) */
button[type="submit"].btn.btn-primary:active,
button[type="submit"].btn-primary:active,
#submitBtn:active,
button[type="submit"]:active.btn-primary,
.btn-primary[type="submit"]:active,
form button[type="submit"].btn-primary:active,
form[data-ajax="true"] button[type="submit"]:active,
#inquiryForm button[type="submit"]:active {
  background-color: #000000 !important;
  border-color: #000000 !important;
  color: #ffffff !important;
  outline: none !important;
  box-shadow: none !important;
  transform: none !important;
}
.btn.btn-white.hover-outline {
  background-color: var(--bs-white) !important;
  color: var(--bs-black) !important;
  border: 1px solid transparent !important;
}
.btn.btn-white.hover-outline:hover {
  color: var(--bs-white) !important;
  background-color: transparent !important;
  border: 1px solid var(--bs-white) !important;
}
.btn.btn-white-outline {
  border: 1px solid rgba(var(--inverse-color-rgb), 0.2) !important;
  color: var(--inverse-color) !important;
  background-color: transparent;
}
.btn.btn-white-outline:hover, .btn.btn-white-outline:focus, .btn.btn-white-outline:active {
  background-color: transparent !important;
  border: 1px solid rgba(var(--inverse-color-rgb), 0.5) !important;
}

/* Bootstrap's stock .btn-outline-light alone loses to the generic .btn /
   .btn:hover rules above (same or lower specificity, and .btn:hover carries
   !important) — same pattern as .btn-white-outline right above, so beat it
   the same way: match .btn's specificity and add !important on every
   property those generic rules touch. Used for light-outline CTAs on
   colored/dark backgrounds (e.g. the footer "Send Email" button). */
.btn.btn-outline-light {
  background-color: transparent !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, 0.6) !important;
}
.btn.btn-outline-light:hover, .btn.btn-outline-light:focus, .btn.btn-outline-light:active {
  background-color: #fff !important;
  color: var(--bs-visa-primary, #c4161c) !important;
  border: 1px solid #fff !important;
}

.block-squares {
  position: absolute;
  bottom: -12px;
  right: 0;
  z-index: 1;
  width: auto;
}

.form-control {
  padding-top: 6px;
  padding-bottom: 6px;
  padding-left: 12px;
  padding-right: 12px;
  border-width: 1px;
  font-size: 14px;
  line-height: 1.5;
  height: auto;
  min-height: 38px;
  background-color: transparent;
  border-color: rgba(var(--inverse-color-rgb), 0.1);
}

/* Contact form specific - reduce height */
#inquiryForm .form-control,
.contact_input_area .form-control,
.request-form .form-control {
  height: 38px !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
}

/* Textarea specific - reduce height */
#inquiryForm textarea.form-control,
.contact_input_area textarea.form-control,
.request-form textarea.form-control {
  height: 60px !important;
  min-height: 60px !important;
  padding: 8px 12px !important;
  font-size: 14px !important;
  resize: vertical;
}

/* Contact form margin spacing */
.contact_input_area .mb-3,
.request-form .mb-3 {
  margin-bottom: 12px !important;
}

/* Keywords Section - Mobile Responsive */
.keywords-section {
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.keywords-container p {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

@media (max-width: 767.98px) {
  .keywords-section {
    padding: 15px !important;
    margin: 15px 0 !important;
  }
  
  .keywords-section h4 {
    font-size: 16px !important;
    margin-bottom: 10px !important;
  }
  
  .keywords-container p {
    font-size: 11px !important;
    line-height: 1.6 !important;
  }
}

@media (max-width: 575.98px) {
  .keywords-section {
    padding: 12px !important;
  }
  
  .keywords-section h4 {
    font-size: 14px !important;
  }
  
  .keywords-container p {
    font-size: 10px !important;
    line-height: 1.5 !important;
  }
}

/* Header buttons - Mobile responsive */
@media (max-width: 767.98px) {
  .header-social .btn {
    font-size: 12px;
    padding: 6px 10px;
  }
  
  .header-social .btn i {
    font-size: 14px;
  }
}

/* Contact form - Mobile responsive */
@media (max-width: 767.98px) {
  .request-form,
  .contact_input_area {
    position: relative !important;
    top: auto !important;
    margin-top: 20px;
  }
  
  .col-lg-4 .request-form {
    position: relative !important;
  }
}

/* Category page layout - Mobile */
@media (max-width: 991.98px) {
  .about__v4 .col-lg-8,
  .about__v4 .col-lg-4 {
    margin-bottom: 30px;
  }
}

.form-control:focus {
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  border-color: var(--bs-primary);
}

/* Select dropdown styling and hover effects */
select.form-control {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%23c4161c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  transition: all 0.3s ease;
}

.form-control:hover,
select.form-control:hover {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(196, 22, 28, 0.1);
}

select.form-control:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(196, 22, 28, 0.25);
}

/* Select option hover effect */
select.form-control option {
  padding: 8px;
}

select.form-control option:hover {
  background-color: var(--bs-primary);
  color: #fff;
}

select.form-control option:checked {
  background-color: var(--bs-primary);
  color: #fff;
}

/* Searchable "Service" combobox — replaces a plain <select> with 100+ options
   (52 countries x visa types) that's slow to scan/scroll natively, with a
   type-to-filter text input + dropdown list. The real <select name="contact-
   service"> stays in the DOM (visually hidden) so form submission and the
   existing city/service URL auto-fill script keep working unchanged. */
.service-combobox {
  position: relative;
}
.service-combobox-control {
  position: relative;
}
.service-combobox-control .bi-search {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: .8rem;
  color: rgba(var(--inverse-color-rgb), 0.45);
  pointer-events: none;
}
.service-combobox-input {
  padding-left: 34px !important;
  padding-right: 34px !important;
  text-align: left !important;
  cursor: text;
}
/* #inquiryForm .form-control (an ID selector, see ~line 272) outranks a
   plain-class .service-combobox-input rule no matter what order they're
   declared in — CSS specificity always prefers an ID over any number of
   classes — so it was silently winning and collapsing the padding back to
   8px 12px, pushing the input text on top of/under the search icon. Repeat
   the same ID/class prefixes here so this rule actually wins that fight
   (same pattern already used for the mega-menu and .btn-outline-light
   fights elsewhere in this file). */
#inquiryForm .service-combobox-input,
.contact_input_area .service-combobox-input,
.request-form .service-combobox-input {
  padding-left: 34px !important;
  padding-right: 34px !important;
}
.service-combobox-control .service-combobox-caret {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: .75rem;
  color: rgba(var(--inverse-color-rgb), 0.45);
  pointer-events: none;
  transition: transform .2s ease;
}
.service-combobox-input[aria-expanded="true"] ~ .service-combobox-caret {
  transform: translateY(-50%) rotate(180deg);
}
.service-combobox-list {
  list-style: none;
  margin: 0;
  padding: 6px;
  /* position:fixed (not absolute) + JS-computed top/left/width (see
     bodyScripts.php) — an absolutely-positioned dropdown still counts
     towards its scrolling ancestor's scrollHeight even though it's out of
     normal flow, which inside a Bootstrap modal (itself scrollable)
     produced a second, redundant scrollbar right next to the dropdown's own
     one. Fixed positioning removes it from that calculation entirely. */
  position: fixed;
  z-index: 1090;
  max-height: 260px;
  overflow-y: auto;
  background: var(--bs-body-bg, #fff);
  border: 1px solid rgba(var(--inverse-color-rgb), 0.1);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
  display: none;
}
.service-combobox-list.is-open {
  display: block;
}
.service-combobox-list li {
  padding: 8px 10px;
  font-size: .85rem;
  text-align: left;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color .12s ease, color .12s ease;
  display: flex;
  align-items: center;
}
.service-combobox-flag {
  display: inline-block;
  width: 18px;
  height: 13px;
  object-fit: cover;
  border-radius: 2px;
  margin-right: 8px;
  flex-shrink: 0;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .08);
}
/* europe/africa aren't single nations — same globe fallback as the mega menu. */
.service-combobox-flag-icon {
  box-shadow: none;
  font-size: .8rem;
  line-height: 13px;
  text-align: center;
  color: var(--bs-visa-primary, #c4161c);
}
.service-combobox-list li[data-value]:hover .service-combobox-flag-icon,
.service-combobox-list li[data-value].is-highlighted .service-combobox-flag-icon {
  color: #fff;
}
.service-combobox-list li[data-value]:hover,
.service-combobox-list li[data-value].is-highlighted {
  background-color: var(--bs-primary);
  color: #fff;
}
.service-combobox-list li.service-combobox-empty {
  color: rgba(var(--inverse-color-rgb), 0.5);
  cursor: default;
  text-align: center;
  font-style: italic;
}
.service-combobox-list li.service-combobox-empty:hover {
  background: none;
}

.a-link i {
  font-size: 26px;
  margin-left: 10px;
  -webkit-transition: 0.25s all ease-in-out;
  transition: 0.25s all ease-in-out;
}
.a-link:hover i {
  margin-left: 15px;
}

.page-title {
  padding-top: 100px !important;
  padding-bottom: 50px !important;
  background-color: rgba(var(--inverse-color-rgb), 0.03);
}

.special-link .icons {
  display: inline-block;
  width: 38px;
  height: 38px;
  line-height: 38px;
  border-radius: 50%;
  text-align: center;
  position: relative;
  border: 1px solid rgba(var(--inverse-color-rgb), 0.2);
}

.special-link .icons i {
  font-size: 25px;
  position: relative;
  display: inline-block;
  position: absolute;
  -webkit-transition: 0.3s all ease-in-out;
  transition: 0.3s all ease-in-out;
}
.special-link .icons i.icon-1 {
  opacity: 1;
  visibility: visible;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
.special-link .icons i.icon-2 {
  opacity: 0;
  visibility: hidden;
  top: 80%;
  left: 20%;
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
.special-link:hover .icons .icon-1 {
  opacity: 0;
  visibility: hidden;
  top: 20%;
  left: 80%;
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}
.special-link:hover .icons .icon-2 {
  opacity: 1;
  visibility: visible;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}

.fbs__net-navbar {
  position: absolute;
  top: 0;
  -webkit-transition: 0.3s all ease-in-out;
  transition: 0.3s all ease-in-out;
  z-index: 999;
  width: 100%;
  /* background-color: transparent !important; */
  background-color: var(--nav-bg) !important;
  border: none;
}

@media (min-width: 992px) {
  .fbs__net-navbar {
    padding-top: 0;
    padding-bottom: 0;
  }
}
.fbs__net-navbar > .container {
  position: relative;
}
.fbs__net-navbar.relative {
  position: absolute;
}
.fbs__net-navbar .navbar-brand {
  color: var(--bs-white);
  font-size: 30px;
  font-weight: bold;
}
.fbs__net-navbar .navbar-brand .logo.dark {
  display: none;
}
.fbs__net-navbar .navbar-brand .logo.light {
  display: block;
}
.fbs__net-navbar .navbar-nav > li > .nav-link {
  position: relative;
  padding-top: 22px;
  padding-bottom: 22px;
  padding-left: 10px;
  padding-right: 10px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(var(--bs-white-rgb), 1);
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  position: relative;
}
@media (max-width: 991.98px) {
  .fbs__net-navbar .navbar-nav > li > .nav-link {
    color: var(--inverse-color);
  }
}
.fbs__net-navbar .navbar-nav > li > .nav-link:before {
  content: "";
  position: absolute;
  width: calc(100% - 20px);
  -webkit-transform: scaleX(0);
          transform: scaleX(0);
  border-radius: 5px;
  height: 1.5px;
  bottom: 0;
  left: 10px;
  /* background: currentcolor; */
  background: rgb(224 36 84);
  -webkit-transform-origin: bottom right;
          transform-origin: bottom right;
  -webkit-transition: -webkit-transform 0.35s ease-out;
  transition: -webkit-transform 0.35s ease-out;
  transition: transform 0.35s ease-out;
  transition: transform 0.35s ease-out, -webkit-transform 0.35s ease-out;
}
.fbs__net-navbar .navbar-nav > li > .nav-link:hover::before {
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
}
.fbs__net-navbar .navbar-nav > li > .nav-link:hover, .fbs__net-navbar .navbar-nav > li > .nav-link:focus {
  color: var(--bs-white);
}
@media (max-width: 991.98px) {
  .fbs__net-navbar .navbar-nav > li > .nav-link:hover, .fbs__net-navbar .navbar-nav > li > .nav-link:focus {
    color: var(--inverse-color) !important;
  }
}
@media (max-width: 767.98px) {
  .fbs__net-navbar .navbar-nav > li > .nav-link {
    padding-top: 5px;
    padding-bottom: 5px;
  }
}
.fbs__net-navbar .navbar-nav > li > .nav-link.active {
  color: var(--bs-white);
}
@media (max-width: 991.98px) {
  .fbs__net-navbar .navbar-nav > li > .nav-link.active {
    color: var(--inverse-color);
  }
}
.fbs__net-navbar .navbar-nav > li > .nav-link.active:before {
  content: "";
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
  -webkit-transform: scaleX(1);
          transform: scaleX(1);
}
.fbs__net-navbar .navbar-nav > li > .nav-link.dropdown-toggle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.fbs__net-navbar .navbar-nav > li > .nav-link.dropdown-toggle::after {
  display: none;
  content: "";
}
@media (max-width: 991.98px) {
  .fbs__net-navbar .navbar-nav > li > .nav-link {
    padding-top: 10px;
    padding-bottom: 10px;
  }
}
.fbs__net-navbar .navbar-nav .dropdown-menu {
  background-color: var(--nav-bg);
}
.fbs__net-navbar .navbar-nav .dropdown-menu .nav-link:hover {
  background-color: var(--dropdown-hover-bg) !important;
  color: var(--inverse-color);
}
.fbs__net-navbar .navbar-nav .dropdown-toggle::after {
  display: none;
}
.fbs__net-navbar .navbar-nav .dropdown-toggle .bi-chevron-down {
  margin-left: 0.5rem;
  transition: transform 0.3s ease;
  display: inline-block;
}
/* Rotate chevron when dropdown is open on mobile */
@media (max-width: 991.98px) {
  .fbs__net-navbar .navbar-nav .dropdown.show .dropdown-toggle .bi-chevron-down,
  .fbs__net-navbar .navbar-nav .dropdown[aria-expanded="true"] .dropdown-toggle .bi-chevron-down {
    transform: rotate(180deg);
  }
}
.fbs__net-navbar .fbs__net-navbar-toggler {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  position: relative;
  background-color: var(--bs-black);
  color: var(--bs-white);
  border: none;
  display: none;
}
@media (max-width: 991.98px) {
  .fbs__net-navbar .fbs__net-navbar-toggler {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}
.fbs__net-navbar .navbar-brand {
  margin-right: 0 !important;
}
.fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu,
.fbs__net-navbar .navbar-nav .dropend > .dropdown-menu,
.fbs__net-navbar .navbar-nav .dropstart > .dropdown-menu {
  border: none !important;
  padding-left: 10px;
  padding-right: 10px;
  -webkit-box-shadow: 0 0.1875rem 0.375rem rgba(var(--bs-black-rgb), 0.1);
          box-shadow: 0 0.1875rem 0.375rem rgba(var(--bs-black-rgb), 0.1);
}
@media (min-width: 992px) {
  .fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu,
  .fbs__net-navbar .navbar-nav .dropend > .dropdown-menu,
  .fbs__net-navbar .navbar-nav .dropstart > .dropdown-menu {
    padding-left: 10px;
    padding-right: 10px;
    width: 300px;
    min-width: 300px;
    border: none;
  }
}
.fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu .dropdown-item,
.fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu .nav-link,
.fbs__net-navbar .navbar-nav .dropend > .dropdown-menu .dropdown-item,
.fbs__net-navbar .navbar-nav .dropend > .dropdown-menu .nav-link,
.fbs__net-navbar .navbar-nav .dropstart > .dropdown-menu .dropdown-item,
.fbs__net-navbar .navbar-nav .dropstart > .dropdown-menu .nav-link {
  font-size: 0.875rem;
  padding: 6px 10px;
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  border-radius: 0.5rem;
}
@media (min-width: 992px) {
  .fbs__net-navbar .navbar-nav .dropdown:hover > .dropdown-menu,
  .fbs__net-navbar .navbar-nav .dropend:hover > .dropdown-menu,
  .fbs__net-navbar .navbar-nav .dropstart:hover > .dropdown-menu {
    display: block;
    -webkit-animation: fadeInUp 0.3s ease;
            animation: fadeInUp 0.3s ease;
  }
  /* The whole menu is shown purely by :hover (no click needed) — fine for a
     plain link list, but the mega menu's search input needs to keep the
     panel open while it has keyboard focus even if the mouse isn't
     precisely over it (e.g. right after the results grid reflows under the
     cursor while typing, which was making it snap shut mid-keystroke).
     :focus-within keeps it open as long as the search box is focused. */
  .fbs__net-navbar .navbar-nav .dropdown.mega-menu-wrap:focus-within > .dropdown-menu {
    display: block;
  }
}
@media (min-width: 992px) {
  .fbs__net-navbar .navbar-nav .dropend:hover > .dropdown-menu {
    position: absolute;
    top: 0;
    left: 100%;
    -webkit-animation: fadeInRight 0.3s ease;
            animation: fadeInRight 0.3s ease;
  }
}
@media (min-width: 992px) {
  .fbs__net-navbar .navbar-nav .dropstart:hover > .dropdown-menu {
    position: absolute;
    top: 0;
    right: 100%;
    -webkit-animation: fadeInLeft 0.3s ease;
            animation: fadeInLeft 0.3s ease;
  }
}
.fbs__net-navbar .navbar-nav .dropdown-toggle::before {
  display: none;
}
.fbs__net-navbar .navbar-nav .dropdown-toggle::after {
  display: none;
}
.fbs__net-navbar .navbar-nav li.dropend > a,
.fbs__net-navbar .navbar-nav li.dropstart > a {
  position: relative;
}
.fbs__net-navbar .navbar-nav li.dropend > a .bi,
.fbs__net-navbar .navbar-nav li.dropstart > a .bi {
  position: absolute;
  right: 10px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
@media (max-width: 991.98px) {
  .fbs__net-navbar .navbar-nav li.dropend > a .bi,
  .fbs__net-navbar .navbar-nav li.dropstart > a .bi {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
    margin-top: -10px;
  }
}
.fbs__net-navbar .navbar-nav li.dropend > a::after,
.fbs__net-navbar .navbar-nav li.dropstart > a::after {
  display: none;
}
.fbs__net-navbar .navbar-nav li.dropend > a {
  position: relative;
}
.fbs__net-navbar .navbar-nav li.dropend > a:hover {
  background-color: var(--dropdown-hover-bg) !important;
}
.fbs__net-navbar .navbar-nav li.dropend > a .caret {
  position: absolute;
  right: 10px;
}
.fbs__net-navbar .navbar-nav li.dropstart > a {
  position: relative;
}
.fbs__net-navbar .navbar-nav li.dropstart > a:hover {
  background-color: var(--dropdown-hover-bg) !important;
}
.fbs__net-navbar .navbar-nav li.dropstart > a .caret {
  position: absolute;
  left: 10px;
}
.fbs__net-navbar .navbar-toggler:hover, .fbs__net-navbar .navbar-toggler:focus, .fbs__net-navbar .navbar-toggler:active {
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.fbs__net-navbar .header-social a {
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  color: var(--bs-white);
  width: 30px;
  height: 30px;
  line-height: 30px;
  text-align: center;
  border-radius: 4px;
  display: inline-block;
  background-color: transparent;
}
.fbs__net-navbar .header-social a:hover {
  background-color: rgba(var(--bs-white-rgb), 0.1);
}
@media (min-width: 992px) {
  .fbs__net-navbar .header-social a {
    color: var(--bs-white);
  }
}
.fbs__net-navbar .header-social .btn {
  width: auto !important;
  height: auto !important;
  background-color: var(--bs-primary) !important;
  color: var(--bs-white) !important;
}
@media (max-width: 575.98px) {
  .fbs__net-navbar .header-social .btn {
    display: none;
  }
}
.fbs__net-navbar.active {
  position: fixed;
  top: 0;
  width: 100%;
  background-color: var(--nav-bg) !important;
  -webkit-box-shadow: 0 0.1875rem 0.375rem rgba(var(--bs-black-rgb), 0.05) !important;
          box-shadow: 0 0.1875rem 0.375rem rgba(var(--bs-black-rgb), 0.05) !important;
}
.fbs__net-navbar.active .navbar-brand {
  color: rgba(var(--inverse-color-rgb), 1) !important;
}
.fbs__net-navbar.active .navbar-brand .logo.dark {
  display: block;
}

.fbs__net-navbar.active .navbar-brand .logo.light {
  display: none;
}

.fbs__net-navbar.active .nav-link {
  color: rgba(var(--inverse-color-rgb), 1) !important;
}
.fbs__net-navbar.active .nav-link:hover {
  color: rgba(var(--inverse-color-rgb), 1) !important;
}
.fbs__net-navbar.active .header-social a {
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  color: var(--inverse-color);
}
.fbs__net-navbar.active .header-social a:hover {
  background-color: rgba(var(--inverse-color-rgb), 0.1);
}
@media (min-width: 992px) {
  .fbs__net-navbar.active .header-social a {
    color: rgba(var(--inverse-color-rgb), 1) !important;
  }
}
.fbs__net-navbar.active .header-social .btn {
  width: auto !important;
  height: auto !important;
  background-color: var(--bs-primary) !important;
  color: var(--bs-white) !important;
}
.fbs__net-navbar.active .navbar-nav > li > .dropdown-toggle:hover {
  color: var(--inverse-color) !important;
}
.fbs__net-navbar.active .navbar-nav > li > .nav-link.dropdown-toggle::after {
  display: none;
  content: "";
}
.fbs__net-navbar.active .navbar-nav li.dropdown a:hover,
.fbs__net-navbar.active .navbar-nav li.dropend a:hover,
.fbs__net-navbar.active .navbar-nav li.dropstart a:hover {
  color: var(--inverse-color) !important;
}
.fbs__net-navbar .fbs__net-icon-menu {
  display: block;
}
.fbs__net-navbar .fbs__net-icon-close {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.offcanvas-active .fbs__net-navbar .fbs__net-icon-menu {
  display: none;
}
.offcanvas-active .fbs__net-navbar .fbs__net-icon-close {
  display: block !important;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.fbs__net-navbar.dark {
  -webkit-box-shadow: 0 0px 2px rgba(var(--inverse-color-rgb), 0.15);
          box-shadow: 0 0px 2px rgba(var(--inverse-color-rgb), 0.15);
}
.fbs__net-navbar.dark .navbar-brand .logo.dark {
  display: block;
  max-height: 55px;
}
.footer-logo img{
    max-height: 60px;
    margin-bottom: 1rem;
    mix-blend-mode: darken;
}

.fbs__net-navbar.dark .navbar-brand .logo.light {
  display: none;
}

.fbs__net-navbar.dark a {
  color: var(--inverse-color) !important;
}
.fbs__net-navbar.dark a:hover {
  color: var(--inverse-color);
}
.fbs__net-navbar.dark .header-social a:hover {
  background-color: rgba(var(--inverse-color-rgb), 0.05);
}

.fbs__net-navbar.dark ul li a {
  color: rgba(var(--inverse-color-rgb), 1) !important;
}
.fbs__net-navbar.dark ul li a:hover {
  color: var(--inverse-color) !important;
}
.fbs__net-navbar .offcanvas-header .offcanvas-header-logo .logo-link .logo.dark {
  display: block;
  max-height: 50px;
}

.fbs__net-navbar .offcanvas-header .offcanvas-header-logo .logo-link .logo.light {
  display: none;
  max-height: 50px;
}


@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translateX(10px);
            transform: translateX(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    -webkit-transform: translateX(10px);
            transform: translateX(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@-webkit-keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
@keyframes fadeInLeft {
  from {
    opacity: 0;
    -webkit-transform: translateX(-10px);
            transform: translateX(-10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
}
.hero__v6 {
    padding: 8rem 0 3rem 0 !important;
    box-shadow: 0 0.1875rem 0.375rem rgba(var(--bs-black-rgb), 0.05) !important;
}
.hero__v6 .hero-subtitle {
  /* background: color-mix(in srgb, var(--bs-secondary), transparent 70%); */
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}
.hero__v6 .hero-subtitle-link {
  color: inherit;
  text-decoration: none;
}
.hero__v6 .hero-subtitle-link:hover {
  text-decoration: underline;
}
.hero__v6 .hero-title {
  font-size: 48px;
}
@media (max-width: 1199.98px) {
  .hero__v6 .hero-title {
    font-size: 40px;
  }
}
@media (max-width: 991.98px) {
  .hero__v6 .hero-title {
    font-size: 30px;
  }
}
.hero__v6 .logos .logos-title {
  font-size: 12px;
  letter-spacing: 1px;
  color: color-mix(in srgb, var(--bs-primary), transparent 10%);
}

.hero__v6 .logos img {
  width: 140px;
}
.hero__v6 .hero-img {
  position: relative;
}
.hero__v6 .hero-img .img-main {
  position: relative;
  z-index: 9;
}
.hero__v6 .hero-img .img-card {
  z-index: 10;
  border-radius: 20px;
  -webkit-box-shadow: 0 15px 40px 0 rgba(var(--bs-black-rgb), 0.1);
          box-shadow: 0 15px 40px 0 rgba(var(--bs-black-rgb), 0.1);
  position: absolute;
  max-width: 280px;
  bottom: -40px;
  left: -60px;
}
@media (max-width: 991.98px) {
  .hero__v6 .hero-img .img-card {
    left: 10px;
    max-width: 380px;
  }
}
@media (max-width: 575.98px) {
  .hero__v6 .hero-img .img-card {
    left: 10px;
    max-width: 280px;
  }
}

/* ======= Hero Stats ======= */
.hero-stats-wrap { display: flex; align-items: stretch; gap: 0; background: #fff; border: 1px solid rgba(0,0,0,.07); border-radius: 14px; padding: 14px 20px; box-shadow: 0 4px 18px rgba(0,0,0,.06); }
.hero-stat { flex: 1; text-align: center; }
.hero-stat-num { font-size: 1.75rem; font-weight: 800; color: #c4161c; line-height: 1.1; letter-spacing: -.5px; }
.hero-stat-lbl { font-size: .72rem; color: #777; font-weight: 500; margin-top: 3px; line-height: 1.3; }
.hero-stat-div { width: 1px; background: rgba(0,0,0,.09); margin: 4px 12px; }

/* ======= Hero Urgency Badge ======= */
.hero-urgency-badge { position: absolute; top: 18px; right: 12px; z-index: 12; background: #fff; border-radius: 14px; padding: 10px 14px; box-shadow: 0 8px 32px rgba(0,0,0,.13); border: 1px solid rgba(0,0,0,.06); display: flex; align-items: center; gap: 10px; animation: badge-float 3s ease-in-out infinite; }
@keyframes badge-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
.hero-badge-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg,#c4161c,#e63030); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1rem; flex-shrink: 0; }
.hero-badge-lbl { font-size: .68rem; color: #999; font-weight: 500; }
.hero-badge-val { font-size: .88rem; font-weight: 700; color: #16181B; line-height: 1.2; }
.hero-badge-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #22c55e; margin-right: 4px; animation: dot-pulse 1.8s ease-in-out infinite; }
@keyframes dot-pulse { 0%,100% { opacity:1; } 50% { opacity:.35; } }
@media (max-width: 991.98px) { .hero-urgency-badge { top: 10px; right: 6px; } }

.features__v2 .icon {
  width: 60px;
  height: 60px;
  line-height: 60px;
  border-radius: 50%;
  background-color: var(--bs-secondary);
  color: var(--bs-primary);
}

.features__v2 .content {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
}

.features__v2 .btn-play i {
  width: 30px;
  height: 30px;
  line-height: 30px;
  border-radius: 50%;
  background-color: var(--bs-white);
  color: var(--bs-primary);
}

.about__v4 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.about__v4 .features li .icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  line-height: 20px;
  background-color: var(--bs-primary);
  color: var(--bs-white);
}
.about__v4 .mission-statement {
  background-color: var(--bs-primary);
  position: relative;
  bottom: -20px;
  width: 100%;
}
.about__v4 .mission-statement h3 {
  font-size: 10px;
  color: var(--bs-secondary);
}
.about__v4 .mission-statement p {
  color: var(--bs-white);
}
.about__v4 .mission-icon {
  width: 50px;
  height: 50px;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50px;
          flex: 0 0 50px;
  line-height: 50px;
  display: inline-block;
  background-color: rgba(var(--bs-secondary-rgb), 0.1);
}
.about__v4 .mission-icon i {
  color: var(--bs-secondary);
}

.pricing__v2 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.pricing__v2 .price-table {
  border: 1px solid rgba(var(--inverse-color-rgb), 0.2);
}
.pricing__v2 .price-table .price {
  color: var(--bs-heading-color);
}
.pricing__v2 .price-table .price strong {
  font-size: 40px;
}
.pricing__v2 .price-table .icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 20px;
          flex: 0 0 20px;
  width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  border: 1px solid rgba(var(--bs-white-rgb), 0.2);
}
.pricing__v2 .popular {
  background-color: var(--bs-primary);
  color: var(--bs-white);
}
.pricing__v2 .popular .price {
  color: var(--bs-secondary);
}
.pricing__v2 .popular h3 {
  color: var(--bs-white);
}
.pricing__v2 .popular p {
  color: var(--bs-white);
}
.pricing__v2 .popular .pricing-features h4 {
  font-size: 12px;
  color: var(--bs-secondary);
}

.stats__v3 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.howitworks__v1 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.howitworks__v1 .step-card {
  position: relative;
}
.howitworks__v1 .step-card .step-number {
  width: 60px;
  height: 60px;
  line-height: 60px;
  display: inline-block;
  color: var(--bs-white);
  background-color: var(--bs-primary);
  font-size: 18px;
}
.howitworks__v1 .arch-line {
  position: absolute;
  top: 15px;
  width: 150px;
  right: 0;
  left: calc(100% + 24px);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media (max-width: 991.98px) {
  .howitworks__v1 .arch-line {
    display: none;
  }
}
.howitworks__v1 .arch-line.reverse {
  top: 20px;
}

.services__v3 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.services__v3 .icon {
  display: inline-block;
  position: relative;
  color: var(--bs-primary) !important;
}

.services__v3 .icon:before {
  content: "";
  position: absolute;
  z-index: -1;
  width: 40px;
  height: 40px;
  right: -10px;
  bottom: 0px;
  border-radius: 50%;
  background-color: rgba(var(--bs-secondary-rgb), 1);
}

.services__v3 .icon svg {
  width: 50px;
}
/* Country/category page tabs (Overview / Visa Type / Documents / Photo /
   Process / Reviews) — active tab needs to be visually obvious, Bootstrap's
   default active state (white bg, thin border) barely reads against the
   white tab-content panel below it. */
.visa-tabs-section .nav-tabs {
  border-bottom: 2px solid rgba(var(--inverse-color-rgb), 0.1);
  border-radius: 12px 12px 0 0;
  overflow: hidden;
}
.visa-tabs-section .tab-content {
  border-radius: 0 0 12px 12px !important;
  overflow: hidden;
}
.visa-tabs-section .nav-tabs .nav-link {
  color: var(--bs-heading-color, #16181b);
  font-weight: 600;
  font-size: 0.88rem;
  border: none;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  padding: 0.85rem 1rem;
  background: transparent;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.visa-tabs-section .nav-tabs .nav-link:hover {
  background: rgba(196, 22, 28, 0.08);
  color: var(--bs-visa-primary, #c4161c);
}
/* 6 tabs (Overview/Visa Type/Documents/Photo/Process/Reviews) under nav-fill
   would otherwise squeeze/wrap into unreadable slivers on a narrow phone —
   turn the bar into a horizontally swipeable strip instead, same fix
   pattern as the blog comparison tables above. */
@media (max-width: 767.98px) {
  .visa-tabs-section .nav-tabs {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    border-radius: 12px 12px 0 0;
  }
  .visa-tabs-section .nav-tabs .nav-item {
    flex: 0 0 auto !important;
  }
  .visa-tabs-section .nav-tabs .nav-link {
    white-space: nowrap;
    font-size: 0.8rem;
    padding: 0.7rem 0.85rem;
  }
}
.visa-tabs-section .nav-tabs .nav-link.active {
  background: var(--bs-visa-primary, #c4161c);
  color: #fff;
  border-bottom-color: var(--bs-visa-primary, #c4161c);
}

.services__v3 .service-card {
  border: 1px solid rgba(var(--inverse-color-rgb), 0.2);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.services__v3 a.service-card:hover {
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  transform: translateY(-3px);
}
/* A plain text link read as unclear where to click — an actual button
   makes the card's clickability obvious without needing to hover first. */
.service-card-btn {
  background: var(--bs-visa-primary, #c4161c);
  color: #fff;
  font-weight: 600;
  font-size: .78rem;
  padding: 5px 14px;
  border-radius: 30px;
  transition: background .2s ease, transform .2s ease;
  width: fit-content;
}
.services__v3 .service-card:hover .service-card-btn {
  background: #16181B;
  transform: translateX(3px);
}

.faq__v2 {
  background-color: rgba(var(--inverse-color-rgb), 0.02);
}

.faq__v2 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.faq__v2 .custom-accordion {
  --bs-accordion-bg: var(--bs-body-bg);
  --bs-accordion-btn-icon: url("");
  --bs-accordion-btn-active-icon: url("");
}

.faq__v2 .custom-accordion .accordion-button {
  position: relative;
  padding-right: 50px;
}
.faq__v2 .custom-accordion .accordion-button::after {
  content: "\f4fe";
  font-family: "bootstrap-icons" !important;
  font-style: normal;
  font-weight: 400 !important;
  font-variant: normal;
  text-transform: none;
  right: 20px;
  top: 15px;
  width: 18px;
  height: 14px;
  font-size: 30px;
  color: var(--inverse-color);
  -webkit-transform-origin: center center;
          transform-origin: center center;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  line-height: 1;
  position: absolute;
  -webkit-font-smoothing: antialiased;
}

.faq__v2 .custom-accordion .accordion-button:not(.collapsed)::after {
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  content: "\f2ea";
}
.faq__v2 .custom-accordion .accordion-item {
  border: none;
  margin-bottom: 10px;
  border-radius: 10px;
  overflow: hidden;
  -webkit-transition: 0.3s all ease-in-out;
  transition: 0.3s all ease-in-out;
}
.faq__v2 .custom-accordion .accordion-item .accordion-header .accordion-button {
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  font-size: 18px;
  font-weight: 500;
  color: var(--bs-heading-color);
  padding-top: 20px;
  padding-bottom: 20px;
  border: none;
}
.faq__v2 .custom-accordion .accordion-item .accordion-header .accordion-button:not(.collapsed) {
  background-color: transparent;
  color: var(--inverse-color);
  -webkit-box-shadow: 0 1px 1px rgba(var(--inverse-color-rgb), 0.05);
          box-shadow: 0 1px 1px rgba(var(--inverse-color-rgb), 0.05);
}
.faq__v2 .custom-accordion .accordion-item .accordion-body {
  border-top: none;
}

.stats__v3 .content {
  padding-top: 70px;
  padding-bottom: 70px;
  background-color: var(--bs-primary);
  color: var(--bs-white);
  overflow: hidden;
  position: relative;
}
.stats__v3 .content h3 {
  color: var(--bs-secondary);
}
.stats__v3 .content .rounded-borders {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 500px;
  height: 500px;
}
.stats__v3 .content .rounded-borders .rounded-border-1,
.stats__v3 .content .rounded-borders .rounded-border-2,
.stats__v3 .content .rounded-borders .rounded-border-3 {
  border: 1px solid var(--bs-secondary);
  width: 500px;
  height: 500px;
  border-radius: 50%;
  position: absolute;
}
.stats__v3 .content .rounded-borders .rounded-border-1 {
  right: 20px;
  top: 20px;
}
.stats__v3 .content .rounded-borders .rounded-border-2 {
  right: 40px;
  top: 40px;
}

.testimonials__v2 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.testimonials__v2 .testimonial {
  border: 1px solid rgba(var(--inverse-color-rgb), 0.2);
}
.testimonials__v2 .testimonial-author .author-img {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50px;
          flex: 0 0 50px;
}

.contact__v2 .subtitle {
  background-color: rgba(var(--bs-secondary-rgb), 0.2);
  color: var(--bs-primary);
  display: inline-block;
  padding: 5px 12px;
  border-radius: 7px;
  font-weight: 600;
  font-size: 0.75rem;
  margin-bottom: 10px;
}

.contact__v2 .icon {
  width: 50px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  border: 1px solid rgba(var(--inverse-color-rgb), 0.2);
  border-radius: 50%;
}

.footer {
  background-color: rgba(var(--inverse-color-rgb), 0.02);
  font-size: 15px;
}

.footer h2, .footer h3, .footer h4 {
  font-size: 16px;
}
.footer h3 {
  position: relative;
  padding-bottom: .7rem;
}
.footer h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 34px;
  height: 3px;
  border-radius: 2px;
  background: var(--bs-visa-primary, #c4161c);
}
.footer ul li {
  padding: 0;
  margin: 0 0 10px 0;
}
.footer a {
  color: rgba(var(--inverse-color-rgb), 1);
  text-decoration: none;
  font-weight: 500;
}
.footer a:hover {
  color: var(--inverse-color);
}
.footer a .badge {
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  background-color: rgba(var(--bs-primary-rgb), 0.1);
  color: var(--bs-primary);
}
.footer a:hover .badge {
  background-color: rgba(var(--bs-primary-rgb), 1);
  color: var(--bs-white);
}
.footer .quick-contact i {
  color: var(--inverse-color);
}
.footer .credits {
    font-size: 1rem;
    border-top: 1px solid #dedede;
}
.footer-link-list li a {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  transition: color .2s ease, transform .2s ease;
}
.footer-link-list li a i {
  font-size: .95rem;
  color: var(--bs-visa-primary, #c4161c);
  opacity: .75;
  transition: opacity .2s ease;
  flex-shrink: 0;
}
.footer-link-list li a:hover {
  color: var(--bs-visa-primary, #c4161c);
  transform: translateX(3px);
}
.footer-link-list li a:hover i {
  opacity: 1;
}
#back-to-top {
  position: fixed;
  bottom: 0px;
  right: 20px;
  visibility: hidden;
  opacity: 0;
  background-color: var(--bs-primary);
  color: white;
  border: none;
  border-radius: 50%;
  padding: 10px;
  cursor: pointer;
  -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
          box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
  z-index: 1000;
  width: 40px;
  height: 40px;
}
#back-to-top i {
  font-size: 24px;
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
#back-to-top.show {
  bottom: 20px;
  opacity: 1;
  visibility: visible;
}

.request-form {
    /* background-color: #fff; */
    /* padding: 1rem 2rem; */
    /* border-radius: 10px; */
    box-shadow: 0 0 16px #7d7c7c36;
    /* color: #333; */
    border: 1px solid rgba(var(--inverse-color-rgb), 0.2);
    padding: 1.5rem !important;
    border-radius: var(--bs-border-radius-xl)!important;
    text-align: center;
    /* max-width: 380px; */
    /* float: right; */
    width: 100%;
}
.request-form .title {    
    font-size: 1.6rem;
    line-height: 16px;
    font-weight: 500;
    text-align: center;
    margin: 10px 0px;
    color: #16181B;
}
.request-form p {
    font-size: 0.6rem;
    font-weight: 600;
    margin: 10px 0px 15px 0px;
    text-transform: uppercase;
    background-color: #c4161c17;
    color: #c4161c;
    padding: 5px;
    border-radius: 15px;
}

.theme-color-primary{
  color: var(--bs-visa-primary) !important;
}
.theme-color-secondary{
  color: var(--bs-visa-secondary) !important;
}

.hero__v6{
  background-color: rgba(var(--inverse-color-rgb), 0.02);
}
.howitworks__v1{
  background-color: rgba(var(--inverse-color-rgb), 0.02);
}
.services__v3{
  background-color: rgba(var(--inverse-color-rgb), 0.02);
}

.pagetitle__v1 {
    padding-top: 140px;
    padding-bottom: 2.8rem;
    background-color: #fbfafa;
    background-image:
        linear-gradient(rgba(22, 27, 46, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(22, 27, 46, 0.06) 1px, transparent 1px);
    background-size: 34px 34px;
    background-position: center;
    position: relative;
    overflow: hidden;
    text-align: center;
}
.pagetitle__v1::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 60% 90% at 50% 0%, rgba(22, 27, 46, 0.10), transparent 70%);
    pointer-events: none;
}
.pagetitle__v1 .container { position: relative; z-index: 1; }
.pagetitle__v1 h1 {
    font-weight: 700;
}
.pagetitle-flag {
    display: inline-block;
    width: 34px;
    height: 24px;
    object-fit: cover;
    border-radius: 4px;
    vertical-align: middle;
    margin-right: 14px;
    transform: translateY(-3px);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .12);
}
.pagetitle-flag-icon {
    width: 34px;
    height: 24px;
    box-shadow: none;
    font-size: 1.4rem;
    line-height: 24px;
    text-align: center;
    color: var(--bs-visa-primary, #c4161c);
}
.pagetitle__v1 .breadcrumb { font-size: .82rem; justify-content: center; }
.pagetitle__v1 .breadcrumb-item a { color: inherit; text-decoration: none; font-weight: 400; opacity: .7; }
.pagetitle__v1 .breadcrumb-item a:hover { opacity: 1; color: var(--bs-visa-primary, #c4161c); }
.pagetitle__v1 .breadcrumb-item.active { color: var(--bs-visa-primary, #c4161c); font-weight: 600; opacity: 1; }
.pagetitle__v1 .breadcrumb-item + .breadcrumb-item::before { opacity: .4; }
.pagetitle__v1 .breadcrumb-item i { opacity: .6; }

/* ======= Red left-border accent — section headings site-wide ======= */
/* Main section h2 headings */
.about__v4 h2.fw-bold,
.proc__section h2.fw-bold,
.eeat__section h2.fw-bold { border-left: 4px solid #c4161c; padding-left: .8rem; }

/* Content sub-headings h3 */
.about__v4 h3.fw-bold,
.proc__section h3.fw-bold,
.eeat__section .info-block h3,
.eeat__section .scope-block h3 { border-left: 3px solid #c4161c; padding-left: .65rem; }

/* AEO/FAQ section sub-headings */
.aeo__section .sub-h { border-left: 3px solid #c4161c; padding-left: .6rem; }

/* Policy pages (Privacy, Cookie, T&C, Disclaimer, Refund) */
.content__v3 h3.fw-bold { border-left: 3px solid #c4161c; padding-left: .65rem; }

.sticky-top {
    z-index: 998
}

/* SweetAlert2 sets overflow:hidden on <body> while any alert (even a small
   validation warning) is open, to lock background scrolling. But per CSS spec,
   ANY ancestor with overflow != visible breaks position:sticky for descendants —
   so the sticky request-form sidebar was un-sticking and jumping/vanishing every
   time an alert appeared mid-scroll. Forcing body overflow back to visible while
   SweetAlert is shown fixes the sticky sidebar; the alert's own backdrop already
   blocks interaction with the page underneath, so this has no real downside. */
body.swal2-shown {
    overflow: visible !important;
}

.blog__v1 .blog-entry .thumbnail {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 370px;
          flex: 0 0 370px;
}
.blog__v1 .blog-entry .thumbnail a {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}
@media (max-width: 767.98px) {
  .blog__v1 .blog-entry .thumbnail {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
  }
}
.blog__v1 .blog-entry .thumbnail img {
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  width: 370px;
  height: 250px;
  -webkit-transform: scale(1);
          transform: scale(1);
}
@media (max-width: 767.98px) {
  .blog__v1 .blog-entry .thumbnail img {
    width: 100%;
  }
}
.blog__v1 .blog-entry h3 a {
  color: var(--bs-heading-color);
  text-decoration: none;
}
.blog__v1 .blog-entry .post-author {
  color: var(--bs-heading-color);
  text-decoration: none;
  font-size: 14px;
}
.blog__v1 .blog-entry .post-author img {
  width: 50px;
  height: 50px;
}
.blog__v1 .blog-entry .post-author strong {
  margin-bottom: 6px;
}
.blog__v1 .blog-entry .post-author .date {
  color: rgba(var(--inverse-color-rgb), 0.8);
}
.blog__v1 .blog-entry:hover .thumbnail img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.blog__v2 .blog-entry .thumbnail {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100%;
          flex: 0 0 100%;
}
.blog__v2 .blog-entry .thumbnail a {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
}
@media (max-width: 767.98px) {
  .blog__v2 .blog-entry .thumbnail {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
  }
}
.blog__v2 .blog-entry .thumbnail img {
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  width: 100%;
  height: 100%;
  -webkit-transform: scale(1);
          transform: scale(1);
}
@media (max-width: 767.98px) {
  .blog__v2 .blog-entry .thumbnail img {
    width: 100%;
  }
}
.blog__v2 .blog-entry h3 a {
  color: var(--bs-heading-color);
  text-decoration: none;
}
.blog__v2 .blog-entry .post-author {
  color: var(--bs-heading-color);
  text-decoration: none;
  font-size: 14px;
}
.blog__v2 .blog-entry .post-author img {
  width: 50px;
  height: 50px;
}
.blog__v2 .blog-entry .post-author strong {
  margin-bottom: 6px;
}
.blog__v2 .blog-entry .post-author .date {
  color: rgba(var(--inverse-color-rgb), 0.8);
}
.blog__v2 .blog-entry:hover .thumbnail > a > img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}
.blog__v2 .category a {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 14px;
  text-decoration: none;
  border: 1px solid rgba(var(--inverse-color-rgb), 0.1);
  color: rgba(var(--inverse-color-rgb), 0.7);
}
.blog__v2 .category a:hover {
  -webkit-box-shadow: 0 2px 5px 0px rgba(var(--inverse-color-rgb), 0.2);
          box-shadow: 0 2px 5px 0px rgba(var(--inverse-color-rgb), 0.2);
  border: 1px solid rgba(var(--inverse-color-rgb), 0.25);
  color: rgba(var(--inverse-color-rgb), 1);
}
.blog__v2 .highlight-post {
  position: relative;
  z-index: 2;
}
.blog__v2 .highlight-post:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  z-index: 1;
  background-color: rgba(var(--bs-black-rgb), 0.3);
}
.blog__v2 .highlight-post .post-content {
  z-index: 4;
  z-index: 99;
  position: absolute;
  bottom: 20px;
  left: 20px;
  right: 20px;
}
.blog__v2 .highlight-post .post-content h3 {
  color: var(--bs-white);
}
.blog__v2 .highlight-post .post-content .post-author strong, .blog__v2 .highlight-post .post-content .post-author span {
  color: var(--bs-white);
}

.blog__v3 .blog-entry .thumbnail {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 270px;
          flex: 0 0 270px;
}
.blog__v3 .blog-entry .thumbnail a {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}
@media (max-width: 767.98px) {
  .blog__v3 .blog-entry .thumbnail {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 100%;
            flex: 0 0 100%;
  }
}
.blog__v3 .blog-entry .thumbnail img {
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
  width: 270px;
  height: 250px;
  -webkit-transform: scale(1);
          transform: scale(1);
}
@media (max-width: 767.98px) {
  .blog__v3 .blog-entry .thumbnail img {
    width: 100%;
  }
}
.blog__v3 .blog-entry h3 a {
  color: var(--bs-heading-color);
  text-decoration: none;
}
.blog__v3 .blog-entry .post-author {
  color: var(--bs-heading-color);
  text-decoration: none;
  font-size: 14px;
}
.blog__v3 .blog-entry .post-author img {
  width: 50px;
  height: 50px;
}
.blog__v3 .blog-entry .post-author strong {
  margin-bottom: 6px;
}
.blog__v3 .blog-entry .post-author .date {
  color: rgba(var(--inverse-color-rgb), 0.8);
}
.blog__v3 .blog-entry:hover .thumbnail img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.aside__v1 .border-top {
  border-color: rgba(var(--inverse-color-rgb), 0.1) !important;
}
.aside__v1 .post-entry {
  text-decoration: none;
}
.aside__v1 .post-entry .thumbnail {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 100px;
          flex: 0 0 100px;
}
.aside__v1 .post-entry .thumbnail img {
  width: 100px;
  -webkit-transition: 0.3s all ease;
  transition: 0.3s all ease;
}
.aside__v1 .post-entry .date {
  color: rgba(var(--inverse-color-rgb), 0.7);
  font-size: 14px;
}
.aside__v1 .post-entry:hover .thumbnail img {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

.aside-subscribe-sticky {
  top: 65px;
}
.content__v1 .share {
    top: 100px !important;
}
.content__v1 .article figure figcaption {
    text-align: center;
    font-size: 12px;
    color: rgba(var(--inverse-color-rgb), 0.7);
}


.page404__v1 {
  background-size: cover;
  background-position: center center;
  height: 100vh;
  min-height: 550px;
  position: relative;
}
.page404__v1 > .container {
  position: relative;
}
.page404__v1 .astronaut {
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translate(-50%);
          transform: translate(-50%);
  width: 200px;
}
@media (max-width: 767.98px) {
  .page404__v1 .astronaut {
    width: 120px;
  }
}
@media (max-width: 575.98px) {
  .page404__v1 .astronaut {
    width: 100px;
  }
}
.page404__v1 h1 {
  font-size: 18rem;
}
@media (max-width: 991.98px) {
  .page404__v1 h1 {
    font-size: 15rem;
  }
}
@media (max-width: 767.98px) {
  .page404__v1 h1 {
    font-size: 10rem;
  }
}
@media (max-width: 575.98px) {
  .page404__v1 h1 {
    font-size: 8rem;
  }
}

/* ✅ Shake animation */
@keyframes shake {
    0%, 100% {
        transform: rotate(0deg);
    }
    10% {
        transform: rotate(15deg);
    }
    20% {
        transform: rotate(-15deg);
    }
    30% {
        transform: rotate(15deg);
    }
    40% {
        transform: rotate(-15deg);
    }
    50% {
        transform: rotate(0deg);
    }
}

/* ✅ Apply shake to the icon only */
.animation i {
    animation: shake 2s infinite;
    display: inline-block;
    transform-origin: center;
}
.bg-dark {
    background-color: var(---bg-black) !important;
}
.dropdown-item.active, .dropdown-item:active a{
    text-decoration: none;
    background-color: var(--dropdown-hover-bg) !important;
    color: var(--bs-white) !important;
}
.list-style-type-none{
    list-style: none!important;
}


/* Add this to your stylesheet */

/* Modal backdrop with blur effect */
.modal-backdrop {
    background-color: rgba(0, 0, 0, 0.5) !important;
}

.modal-backdrop.show {
    opacity: 1 !important;
}

/* Add blur effect to backdrop */
.modal-backdrop::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    background-color: rgba(0, 0, 0, 0.1);
}

/* Prevent body scroll when modal is open */
body.modal-open {
    overflow: hidden !important;
    padding-right: 0 !important;
}

/* Smooth modal transitions */
.modal.fade .modal-dialog {
    transition: transform 0.3s ease-out;
    transform: translate(0, -50px);
}

.modal.show .modal-dialog {
    transform: translate(0, 0);
}

/* Ensure modal content stays sharp */
.modal-content {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
}

/* Custom close button styling */
.modal-header .btn-close {
    width: 25px;
    height: 25px;
    background-color: #000;
    border-radius: 50%;
    opacity: 0.7;
    transition: all 0.3s ease;
    position: relative;
}

.modal-header .btn-close:hover {
    opacity: 1;
    transform: rotate(90deg);
}

.modal-header .btn-close:focus {
    box-shadow: none;
    outline: none;
}

/* Make the close icon white */
.modal-header .btn-close::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 2px;
    background-color: white;
    transform: translate(-50%, -50%) rotate(45deg);
}

.modal-header .btn-close::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 2px;
    background-color: white;
    transform: translate(-50%, -50%) rotate(-45deg);
}

/* Hide the default close icon */
.modal-header .btn-close span {
    display: none;
}

.modal-footer {
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;    
}

/* Mobile Responsive Fixes */
@media (max-width: 991.98px) {
    /* Location pages - stack sidebar on mobile */
    .location-agent .col-lg-8,
    .location-agent .col-lg-4 {
        width: 100%;
        max-width: 100%;
    }
    
    /* Dropdown menu full width on mobile */
    .fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 767.98px) {
    /* Location content sections */
    .location-intro,
    .about-location,
    .why-choose-us,
    .services-offered,
    .areas-covered,
    .process-section,
    .documents-section {
        padding-left: 15px;
        padding-right: 15px;
    }
    
    /* CTA section mobile */
    .cta-section {
        padding: 20px 15px !important;
    }
    
    .cta-section h3 {
        font-size: 20px !important;
    }
    
    .cta-section a {
        font-size: 22px !important;
    }
    
    /* Sticky sidebar remove on mobile */
    .request-form.sticky-top {
        position: relative !important;
        top: 0 !important;
    }
}

/* Mobile Responsive Fixes */
@media (max-width: 991.98px) {
    /* Location pages - stack sidebar on mobile */
    .location-agent .col-lg-8,
    .location-agent .col-lg-4 {
        width: 100%;
        max-width: 100%;
    }
    
    /* Dropdown menu full width on mobile */
    .fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 767.98px) {
    /* Location content sections */
    .location-intro,
    .about-location,
    .why-choose-us,
    .services-offered,
    .areas-covered,
    .process-section,
    .documents-section {
        padding-left: 15px;
        padding-right: 15px;
    }
    
    /* CTA section mobile */
    .cta-section {
        padding: 20px 15px !important;
    }
    
    .cta-section h3 {
        font-size: 20px !important;
    }
    
    .cta-section a {
        font-size: 22px !important;
    }
    
    /* Sticky sidebar remove on mobile */
    .request-form.sticky-top {
        position: relative !important;
        top: 0 !important;
    }
}

.thankyou__v1 {
  background-size: cover;
  background-position: center center;
  height: 100vh;
  min-height: 550px;
  position: relative;
}

/* Submit button active state override - must be at end to override Bootstrap */
button[type="submit"]:active,
#submitBtn:active,
button.btn-primary[type="submit"]:active,
.btn.btn-primary[type="submit"]:active,
form button[type="submit"].btn-primary:active,
form[data-ajax="true"] button[type="submit"].btn-primary:active,
#inquiryForm button[type="submit"].btn-primary:active {
  background-color: #000000 !important;
  border-color: #000000 !important;
  color: #ffffff !important;
  background: #000000 !important;
}

/* ============================================
   MOBILE RESPONSIVE ENHANCEMENTS
   ============================================ */

/* Keywords Section - Mobile Responsive */
@media (max-width: 767.98px) {
  .keywords-section {
    padding: 15px !important;
    margin: 15px 0 !important;
  }
  
  .keywords-section h4 {
    font-size: 16px !important;
    margin-bottom: 10px !important;
  }
  
  .keywords-container p {
    font-size: 11px !important;
    line-height: 1.6 !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
  }
}

@media (max-width: 575.98px) {
  .keywords-section {
    padding: 12px !important;
  }
  
  .keywords-section h4 {
    font-size: 14px !important;
  }
  
  .keywords-container p {
    font-size: 10px !important;
    line-height: 1.5 !important;
  }
}

/* Header Buttons - Mobile Responsive */
@media (max-width: 767.98px) {
  .header-social .btn {
    font-size: 12px;
    padding: 6px 10px;
  }
  
  .header-social .btn i {
    font-size: 14px;
  }
}

/* Contact Form - Mobile Responsive */
@media (max-width: 991.98px) {
  .request-form.sticky-top,
  .col-lg-4 .request-form.sticky-top {
    position: relative !important;
    top: auto !important;
  }
  
  .about__v4 .col-lg-8,
  .about__v4 .col-lg-4 {
    margin-bottom: 30px;
  }
}

/* Images - Ensure Responsive */
img {
  max-width: 100%;
  height: auto;
}

/* Prevent Horizontal Scroll */
@media (max-width: 575.98px) {
  body {
    overflow-x: hidden;
  }

  .container {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* ============================================================
   NAV MEGA MENU — "Our Services" — search + region tabs + country grid.
   Replaces the old per-country icon + flyout submenu design: with 50+
   countries a flyout-per-item doesn't scale, and small per-item icons/
   thumbnails didn't read well at menu-row size, so this is a plain,
   fast-to-scan searchable grid instead.

   IMPORTANT: this theme has a sitewide base rule —
   .fbs__net-navbar .navbar-nav .dropdown > .dropdown-menu { width: 300px; }
   (around line 651) — that is MORE specific than a plain ".mega-menu-wrap
   .mega-menu" selector, so it silently wins and clamps the panel to 300px
   unless overridden with an equal-or-higher-specificity selector. Every
   sizing rule below repeats that same ".fbs__net-navbar .navbar-nav"
   prefix + !important specifically to guarantee it wins that fight — do
   not simplify these selectors back down, that's the bug that kept
   recurring.
   ============================================================ */
@media (min-width: 992px) {
    .fbs__net-navbar .navbar-nav .dropdown.mega-menu-wrap > .dropdown-menu.mega-menu {
        width: 720px !important;
        min-width: 720px !important;
        max-width: 92vw !important;
        border-radius: 14px;
        overflow: hidden;
        box-shadow: 0 20px 45px rgba(0, 0, 0, 0.16);
    }
}
@media (max-width: 991.98px) {
    .fbs__net-navbar .navbar-nav .dropdown.mega-menu-wrap > .dropdown-menu.mega-menu {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        border: none !important;
        box-shadow: none !important;
        background: rgba(0, 0, 0, 0.015);
    }
}

.mega-menu-search-wrap {
    padding: 14px 16px 0;
}
/* Self-contained icon-in-input pattern instead of Bootstrap's .input-group —
   simpler and avoids that combo's icon-alignment quirks in this context. */
.mega-search-box {
    position: relative;
}
.mega-search-box .bi-search {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    font-size: .85rem;
    color: var(--bs-body-color);
    opacity: .5;
    pointer-events: none;
}
.fbs__net-navbar.dark .mega-menu-search {
    width: 100%;
    padding: 9px 14px 9px 36px;
    border: 1px solid rgba(var(--inverse-color-rgb), 0.15);
    border-radius: 8px;
    font-size: .85rem;
    background: rgba(var(--inverse-color-rgb), 0.03);
    color: var(--bs-body-color) !important;
}
.mega-menu-search:focus {
    outline: none;
    border-color: var(--bs-visa-primary, #c4161c);
    background: #fff;
    box-shadow: none;
}

.mega-menu-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px 16px;
    border-bottom: 1px solid rgba(var(--inverse-color-rgb), 0.1);
}
.mega-tab {
    background: rgba(var(--inverse-color-rgb), 0.05);
    border: none;
    padding: 7px 14px;
    font-size: .8rem;
    font-weight: 600;
    color: var(--bs-body-color);
    border-radius: 20px;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, color .15s;
}
.mega-tab:hover {
    background: var(--bs-visa-primary, #c4161c);
    color: #fff;
}
.mega-tab.active {
    background: var(--bs-visa-primary, #c4161c);
    color: #fff;
}

.mega-menu-panel {
    padding: 14px 18px 6px;
    max-height: 320px;
    overflow-y: auto;
}
.mega-menu-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3px 14px;
}
@media (max-width: 575.98px) {
    .mega-menu-grid { grid-template-columns: repeat(2, 1fr); }
}
.mega-menu-grid a {
    display: block;
    padding: 8px 10px;
    border-radius: 7px;
    font-size: .84rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: background-color .15s, color .15s;
}
.mega-menu-flag {
    display: inline-block;
    width: 18px;
    height: 13px;
    margin-right: 7px;
    object-fit: cover;
    border-radius: 2px;
    vertical-align: middle;
    transform: translateY(-1px);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .08);
}
/* europe/africa aren't single nations, so they use a Bootstrap Icons globe
   glyph instead of a flag image — sized/aligned to match the <img> flags. */
.mega-menu-flag-icon {
    width: 18px;
    height: 13px;
    box-shadow: none;
    font-size: .8rem;
    line-height: 13px;
    text-align: center;
    color: var(--bs-visa-primary, #c4161c);
}
/* .fbs__net-navbar.dark forces `ul li a` text color with !important (see
   line ~891), and a class-chain selector still wasn't reliably beating it.
   #megaMenuPanel is an ID already on this exact element (see appHeader.php)
   — ID selectors outrank ANY number of chained classes in CSS specificity,
   full stop, so anchoring to it here is what actually guarantees these win
   no matter what else targets `a` elsewhere in this stylesheet. Don't swap
   this back to a class-only selector. */
#megaMenuPanel .mega-menu-grid a {
    color: var(--bs-body-color) !important;
}
#megaMenuPanel .mega-menu-grid a:hover,
#megaMenuPanel .mega-menu-grid a.active {
    background: var(--bs-visa-primary, #c4161c) !important;
    color: #fff !important;
}
/* Search mode — while the search box has text, JS adds .mm-searching to the
   panel: all tabs' countries show at once (flat, filtered by name) instead
   of just the active tab's, and the region-tab bar hides since it no longer
   applies. The "Popular" tab is a curated duplicate of countries that also
   exist in their real region tab (e.g. Dubai is in both Popular and Middle
   East) — fine when only one tab is visible at a time, but showing every
   tab at once during search would list those countries twice. Exclude
   #mm-popular specifically so search only ever shows each country once. */
#megaMenuPanel.mm-searching .mega-menu-tabs { display: none; }
#megaMenuPanel.mm-searching .mega-menu-panel .tab-pane {
    display: block !important;
    opacity: 1 !important;
}
#megaMenuPanel.mm-searching .mega-menu-panel #mm-popular {
    display: none !important;
}
#megaMenuPanel.mm-searching .mega-menu-grid a[data-hidden="1"] { display: none; }

.mega-menu-no-results {
    display: none;
    padding: 24px 8px;
    text-align: center;
    color: var(--bs-body-color);
    opacity: .55;
    font-size: .85rem;
}

.mega-menu-footer {
    border-top: 1px solid rgba(var(--inverse-color-rgb), 0.1);
    padding: 12px 18px;
    background: rgba(var(--inverse-color-rgb), 0.02);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.mega-menu-footer .mega-menu-count {
    font-size: .76rem;
    color: var(--bs-body-color);
    opacity: .55;
}
#megaMenuPanel .mega-menu-footer a {
    font-weight: 700;
    font-size: .84rem;
    color: var(--bs-visa-primary, #c4161c) !important;
    text-decoration: none;
}
.mega-menu-footer a:hover { text-decoration: underline; }

/* ============================================================
   UK VISITOR VISA GUIDE SECTION
   ============================================================ */

/* Subtitle */
.guide__section .subtitle {
    background-color: rgba(var(--bs-secondary-rgb), 0.2);
    color: var(--bs-primary);
    display: inline-block;
    padding: 5px 14px;
    border-radius: 7px;
    font-weight: 600;
    font-size: .75rem;
    letter-spacing: .04em;
    margin-bottom: 12px;
}

/* Image frame */
.guide__section .guide-img-frame {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 4px 20px rgba(0,0,0,.1);
    background: #f8f9fa;
}
.guide__section .guide-img-link {
    display: block;
    position: relative;
    text-decoration: none;
}
.guide__section .guide-img-link img {
    width: 100%;
    height: auto;
    display: block;
}
.guide__section .guide-img-zoom {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0);
    transition: background .2s;
}
.guide__section .guide-img-link:hover .guide-img-zoom { background: rgba(0,0,0,.35); }
.guide__section .guide-img-zoom-btn {
    color: #fff;
    background: var(--bs-visa-primary, #c4161c);
    border: 0;
    border-radius: 8px;
    padding: 8px 18px;
    font-size: .82rem;
    font-weight: 600;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .2s, transform .2s;
    pointer-events: none;
}
.guide__section .guide-img-link:hover .guide-img-zoom-btn {
    opacity: 1;
    transform: translateY(0);
}
.guide__section .guide-img-caption {
    padding: 10px 16px;
    background: var(--bs-visa-primary, #c4161c);
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .8rem;
    font-weight: 600;
    color: #fff;
}
.guide__section .guide-img-caption span { opacity: .75; font-weight: 400; }

/* Info cards */
.guide__section .guide-info-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.07);
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 2px 10px rgba(0,0,0,.05);
    transition: box-shadow .2s;
}
.guide__section .guide-info-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.09); }
.guide__section .guide-info-title {
    font-size: .9rem;
    font-weight: 700;
    color: var(--bs-heading-color);
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 7px;
}
.guide__section .guide-check-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: .86rem;
}
.guide__section .guide-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    padding-bottom: 8px;
    line-height: 1.5;
}
.guide__section .guide-check-list li:last-child { padding-bottom: 0; }
.guide__section .guide-check-icon { color: var(--bs-primary); flex-shrink: 0; margin-top: 2px; }
.guide__section .guide-error-icon { color: #e65100; flex-shrink: 0; margin-top: 2px; }
.guide__section .guide-text { font-size: .86rem; color: var(--bs-body-color); line-height: 1.65; }

/* Site-wide primary button */
.btn-visa-primary {
    background: var(--bs-visa-primary, #c4161c);
    color: #fff;
    border: 0;
}
.btn-visa-primary:hover, .btn-visa-primary:focus { background: #a81218; color: #fff; }

/* ============================================================
   EEAT TRUST SECTION
   ============================================================ */
.eeat__section .subtitle {
    background-color: rgba(var(--bs-secondary-rgb),.2);
    color: var(--bs-primary);
    display: inline-block;
    padding: 5px 14px;
    border-radius: 7px;
    font-weight: 600;
    font-size: .75rem;
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.eeat__section .eeat-card {
    border: 1px solid rgba(0,0,0,.07);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0,0,0,.05);
    padding: 20px;
    height: 100%;
    transition: box-shadow .2s;
}
.eeat__section .eeat-card:hover { box-shadow: 0 4px 18px rgba(0,0,0,.09); }
.eeat__section .eeat-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-bottom: 12px;
}
.eeat__section .eeat-card h3 { font-size: .9rem; font-weight: 700; color: var(--bs-heading-color); margin-bottom: 6px; }
.eeat__section .eeat-card p { font-size: .82rem; color: var(--bs-body-color); margin: 0; line-height: 1.65; }
.eeat__section .info-block {
    background: #f8f9fa;
    border: 1px solid rgba(0,0,0,.07);
    border-radius: 12px;
    padding: 20px 24px;
    height: 100%;
}
.eeat__section .info-block h3 { font-size: .9rem; font-weight: 700; color: var(--bs-heading-color); margin-bottom: 12px; }
.eeat__section .scope-block {
    border-left: 3px solid var(--bs-primary);
    background: rgba(var(--bs-primary-rgb),.04);
    border-radius: 0 10px 10px 0;
    padding: 20px 24px;
    height: 100%;
}
.eeat__section .scope-block h3 { font-size: .9rem; font-weight: 700; color: var(--bs-heading-color); margin-bottom: 12px; }
.eeat__section .step-item {
    background: #fff;
    border: 1px solid rgba(0,0,0,.07);
    border-radius: 10px;
    padding: 14px 16px;
    display: flex;
    gap: 14px;
    align-items: flex-start;
    height: 100%;
}
.eeat__section .step-num { font-size: 1.3rem; font-weight: 800; color: var(--bs-primary); line-height: 1; flex-shrink: 0; min-width: 28px; }
.eeat__section .step-item h4 { font-size: .88rem; font-weight: 700; color: var(--bs-heading-color); margin-bottom: 4px; }
.eeat__section .step-item p { font-size: .8rem; color: var(--bs-body-color); margin: 0; line-height: 1.6; }

/* ============================================================
   PROCESSING TIERS SECTION
   ============================================================ */
.proc__section .subtitle {
    background-color: rgba(var(--bs-secondary-rgb),.2);
    color: var(--bs-primary);
    display: inline-block;
    padding: 5px 14px;
    border-radius: 7px;
    font-weight: 600;
    font-size: .75rem;
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.proc__section .variant-card {
    border: 1px solid rgba(0,0,0,.07);
    border-top: 3px solid var(--bs-primary);
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0,0,0,.05);
    transition: box-shadow .2s;
}
.proc__section .variant-card:hover { box-shadow: 0 6px 24px rgba(196,22,28,.1); }
.proc__section .tier-card {
    border: 1px solid rgba(0,0,0,.07);
    border-left: 4px solid var(--bs-primary);
    border-radius: 3px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
    transition: box-shadow .2s;
    height: 100%;
}
.proc__section .tier-card:hover { box-shadow: 0 4px 18px rgba(0,0,0,.09); }
.proc__section .tier-card.tier-urgent   { border-left-color: #e65100; }
.proc__section .tier-card.tier-super    { border-left-color: var(--bs-primary); }
.proc__section .tier-card.tier-express  { border-left-color: var(--bs-visa-secondary, #003a66); }
.proc__section .tier-card.tier-emergency{ border-left-color: #b71c1c; }
.proc__section .tier-card.tier-weekend  { border-left-color: #1565c0; }
.proc__section .tier-badge { font-size: .7rem; font-weight: 700; padding: 3px 10px; border-radius: 20px; white-space: nowrap; }
.proc__section .tier-time { font-size: .8rem; font-weight: 700; color: var(--bs-heading-color); }
.proc__section .cmp-table th { background: var(--bs-primary); color: #fff; font-weight: 600; font-size: .82rem; padding: 10px 14px; border: none; }
.proc__section .cmp-table td { font-size: .82rem; padding: 9px 14px; color: var(--bs-body-color); border-bottom: 1px solid rgba(0,0,0,.06); vertical-align: middle; }
.proc__section .cmp-table tr:last-child td { border-bottom: none; }
.proc__section .cmp-table tbody tr:hover td { background: rgba(196,22,28,.03); }
.proc__section .cmp-table td:first-child { font-weight: 600; color: var(--bs-heading-color); }
.proc__section .compare-toggle-btns .btn-compare {
    background: transparent;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 7px;
    padding: 6px 18px;
    font-size: .82rem;
    font-weight: 600;
    color: var(--bs-body-color);
    cursor: pointer;
    transition: all .2s;
}
.proc__section .compare-toggle-btns .btn-compare.active,
.proc__section .compare-toggle-btns .btn-compare:hover { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }

/* ============================================================
   DELHI NCR LOCATIONS SECTION
   ============================================================ */
.delhi-ncr-locations__v1 .subtitle {
    background-color: rgba(var(--bs-secondary-rgb),0.2);
    color: var(--bs-primary);
    display: inline-block;
    padding: 5px 12px;
    border-radius: 7px;
    font-weight: 600;
    font-size: 0.75rem;
    margin-bottom: 10px;
}
.locations-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; line-height: normal; font-size: initial; text-align: left; }
.locations-list::after { display: none; }
.location-item { display: inline-flex; padding: 0; }
.location-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    color: var(--bs-body-color);
    text-decoration: none;
    font-size: .85rem;
    font-weight: 500;
    background: #fff;
    border: 1px solid rgba(0,0,0,.1);
    border-radius: 20px;
    transition: all .2s;
    white-space: nowrap;
}
.location-link::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--bs-primary); opacity: .5; flex-shrink: 0; }
.location-link:hover { border-color: var(--bs-primary); color: var(--bs-primary); background: rgba(196,22,28,.04); }
.location-link:hover::before { opacity: 1; }
#showMoreLocations { color: #c4161c !important; background: none !important; border: none !important; box-shadow: none !important; outline: none !important; }
#showMoreLocations:hover, #showMoreLocations:focus, #showMoreLocations:active { color: #c4161c !important; background: none !important; border: none !important; box-shadow: none !important; outline: none !important; text-decoration: none !important; }
#showMoreLocations span, #showMoreLocations i { color: #c4161c !important; }
#showMoreLocations:hover span, #showMoreLocations:hover i,
#showMoreLocations:focus span, #showMoreLocations:focus i,
#showMoreLocations:active span, #showMoreLocations:active i { color: #c4161c !important; }

/* ============================================================
   BLOG POST — SHARE PREVIEW CARD + SHARE BUTTONS
   ============================================================ */
.vv-share-wrap {
    border: 1px solid #ececef;
    border-radius: 16px;
    padding: 18px;
    background: #fafafb;
}
.vv-share-preview {
    display: flex;
    gap: 14px;
    background: #fff;
    border: 1px solid #e7e7ea;
    border-radius: 12px;
    padding: 10px;
    margin-bottom: 16px;
}
.vv-share-preview img {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
}
.vv-share-preview-text { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.vv-share-preview-domain { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #9a9da3; font-weight: 600; }
.vv-share-preview-title { font-size: 15px; font-weight: 700; color: #16181B; margin-top: 2px; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vv-share-preview-desc { font-size: 12.5px; color: #6c6f75; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vv-share-label { font-size: 15px; font-weight: 700; color: #16181B; margin-right: 6px; }
.vv-share-bar { flex-wrap: wrap; }
.vv-share-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: none;
    color: #fff;
    font-size: 18px;
    text-decoration: none;
    cursor: pointer;
    transition: all .2s ease;
    box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
.vv-share-btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.18); }
.vv-share-whatsapp { background: #25D366; }
.vv-share-facebook { background: #1877F2; }
.vv-share-linkedin { background: #0A66C2; }
.vv-share-twitter  { background: #000000; }
.vv-share-instagram {
    background: radial-gradient(circle at 30% 110%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
    padding: 0;
}
.vv-share-toast {
    display: none;
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 10px;
    background: #16181B;
    color: #fff;
    font-size: 13px;
    font-weight: 500;
}
.vv-share-toast.show { display: block; animation: vvFadeIn .2s ease; }
@keyframes vvFadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 575.98px) {
    .vv-share-preview img { width: 72px; height: 72px; }
}

/* ============================================================
   BLOG POST — "USEFUL LINKS" CARD
   ============================================================ */
.vv-useful-links {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 18px;
    padding: 24px;
    box-shadow: 0 4px 16px rgba(0,0,0,.05);
}
.vv-article-body .vv-useful-links-title {
    font-size: 1.05rem;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 18px;
    padding-left: 0;
    padding-bottom: 14px;
    border-left: none;
    border-bottom: 1px solid rgba(0,0,0,.08);
    display: flex;
    align-items: center;
}
.vv-useful-links-title .bi {
    color: var(--bs-visa-primary, #c4161c);
    margin-right: 8px;
    font-size: 1.2rem;
}
.vv-useful-links-heading {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #8a8a8a;
    margin-bottom: 10px;
}
.vv-useful-links-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.vv-useful-link-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: var(--bs-body-color);
    transition: background .15s ease, transform .15s ease;
}
.vv-useful-link-row:hover {
    background: rgba(196,22,28,.06);
    transform: translateX(3px);
    color: var(--bs-visa-primary, #c4161c);
}
.vv-useful-link-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(196,22,28,.08);
    color: var(--bs-visa-primary, #c4161c);
    font-size: .85rem;
    flex-shrink: 0;
}
.vv-useful-link-text {
    font-size: .9rem;
    font-weight: 500;
    flex: 1;
}
.vv-useful-link-arrow {
    font-size: .75rem;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .15s ease, transform .15s ease;
}
.vv-useful-link-row:hover .vv-useful-link-arrow {
    opacity: 1;
    transform: translateX(0);
}

/* ============================================================
   AEO FAQ SECTION
   ============================================================ */
.aeo__section .subtitle-pill {
    background-color: rgba(var(--bs-secondary-rgb),.2);
    color: var(--bs-primary);
    display: inline-block;
    padding: 5px 14px;
    border-radius: 7px;
    font-weight: 600;
    font-size: .75rem;
    letter-spacing: .04em;
    margin-bottom: 12px;
}
.aeo__section .featured-answer { border-left: 4px solid var(--bs-primary); background: rgba(var(--bs-primary-rgb),.03); padding: 16px 20px; border-radius: 0 8px 8px 0; }
.aeo__section .tier-featured { border-left: 4px solid var(--bs-visa-secondary, #003a66); background: rgba(0,58,102,.03); padding: 16px 20px; border-radius: 0 8px 8px 0; }
.aeo__section .accordion-item { border: 1px solid rgba(0,0,0,.07) !important; border-radius: 8px !important; overflow: hidden; }
.aeo__section .accordion-button { font-size: .88rem; font-weight: 600; color: var(--bs-heading-color); background: #fff; }
.aeo__section .accordion-button:not(.collapsed) { color: var(--bs-primary); background: rgba(var(--bs-primary-rgb),.04); box-shadow: none; }
.aeo__section .accordion-button::after { filter: none; }
.aeo__section .accordion-body { font-size: .88rem; color: var(--bs-body-color); line-height: 1.7; }
.aeo__section .entity-def { border-left: 3px solid var(--bs-primary); padding: 10px 12px; background: #f8f9fa; border-radius: 0 6px 6px 0; height: 100%; }
.aeo__section .entity-def .term { font-size: .8rem; font-weight: 700; color: var(--bs-primary); margin-bottom: 4px; }
.aeo__section .entity-def .def { font-size: .78rem; color: var(--bs-body-color); margin: 0; }
.aeo__section .sub-h { font-size: .95rem; font-weight: 700; color: var(--bs-heading-color); margin-bottom: 12px; }

/* ============================================================
   CITY SERVICE CONTENT UTILITIES — category.php new sections
   ============================================================ */
.svc-tag-pill {
    background: rgba(196,22,28,.08);
    color: var(--bs-visa-primary);
    border: 1px solid rgba(196,22,28,.18);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .04em;
}
.svc-advice-block {
    border-left: 3px solid var(--bs-visa-primary);
    background: rgba(196,22,28,.04);
    border-radius: 0 6px 6px 0;
}
.svc-tip-callout {
    background: #fffbf0;
    border: 1px solid #ffe58f;
}
.svc-issue-callout {
    background: #fff8f8;
    border: 1px solid #ffc9cc;
}
.svc-label { font-size: .85rem; font-weight: 600; color: var(--bs-heading-color); }
.svc-body  { font-size: .82rem; line-height: 1.65; }
.svc-xs    { font-size: .78rem; }
.btn.svc-xs { padding: .15rem .45rem; line-height: 1.4; }
.svc-badge-sm { font-size: .77rem; font-weight: 500; }
.svc-distance-note { background: rgba(196, 22, 28, 0.04); border-color: rgba(196, 22, 28, 0.15) !important; }
.svc-map-embed iframe { display: block; filter: grayscale(.15) contrast(1.02); }

/* ======= Blog Listing Card ======= */
.vv-blog-card { transition: box-shadow .22s, transform .22s; }
.vv-blog-card:hover { box-shadow: 0 10px 36px rgba(0,0,0,.13) !important; transform: translateY(-4px); }
.vv-blog-img { aspect-ratio: 4 / 3; height: auto; overflow: hidden; position: relative; }
.vv-blog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .38s ease; display: block; }
.vv-blog-card:hover .vv-blog-img img { transform: scale(1.07); }
.vv-blog-overlay { position: absolute; inset: 0; pointer-events: none; }
.vv-blog-num { position: absolute; bottom: 12px; right: 12px; background: #c4161c; color: #fff; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; z-index: 2; letter-spacing: .5px; }
.vv-blog-title { color: var(--bs-heading-color); text-decoration: none; }
.vv-blog-title:hover { color: #c4161c; }
.vv-blog-desc { font-size: .82rem; color: #6c757d; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* ======= Blog Sidebar ======= */
.vv-sb-wrap { top: 100px; max-height: 84vh; display: flex; flex-direction: column; scrollbar-width: thin; scrollbar-color: #c4161c #f1f1f1; }
.vv-sb-wrap::-webkit-scrollbar { width: 5px; }
.vv-sb-wrap::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; }
.vv-sb-wrap::-webkit-scrollbar-thumb { background: #c4161c; border-radius: 10px; }
.vv-sb-head { padding: 16px 18px 12px; border-bottom: 1px solid #e9ecef; background: #fff; position: sticky; top: 0; z-index: 5; flex-shrink: 0; }
.vv-sb-body { overflow-y: auto; flex: 1; padding: 12px 14px 16px; }
.vv-sb-item { display: flex; align-items: flex-start; gap: 9px; padding: 7px 8px; border-radius: 8px; margin-bottom: 4px; transition: background .16s; text-decoration: none; }
.vv-sb-item:hover { background: #fff5f5; }
.vv-sb-item.active { background: #fff0f0; }
.vv-sb-num { min-width: 20px; height: 20px; border-radius: 50%; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: #e9ecef; color: #666; margin-top: 3px; }
.vv-sb-item.active .vv-sb-num { background: #c4161c; color: #fff; }
.vv-sb-thumb { width: 48px; height: 36px; border-radius: 5px; object-fit: cover; flex-shrink: 0; }
.vv-sb-label { font-size: 12.5px; line-height: 1.4; color: #444; }
.vv-sb-item:hover .vv-sb-label, .vv-sb-item.active .vv-sb-label { color: #c4161c; font-weight: 600; }

/* ======= Article Body Typography ======= */
.vv-article-body h3 { font-size: 1.08rem; font-weight: 700; color: #16181B; margin-top: 2rem; margin-bottom: .55rem; padding-left: .65rem; border-left: 3px solid #c4161c; }
.vv-article-body p { font-size: .9375rem; line-height: 1.82; color: #3a3a3a; }
.vv-article-body ul, .vv-article-body ol { font-size: .9375rem; line-height: 1.75; color: #3a3a3a; padding-left: 1.4rem; }
.vv-article-body li { margin-bottom: .45rem; }
.vv-article-body a { color: #c4161c; text-decoration: none; }
.vv-article-body a:hover { color: #a01217; text-decoration: underline; }
.vv-article-body .table th { font-size: .82rem; font-weight: 600; }
.vv-article-body .table td { font-size: .84rem; }

/* Blog content table */
.blog-cmp-table th { background: var(--bs-primary); color: #fff; font-weight: 600; font-size: .82rem; padding: 10px 14px; border: none; }
.blog-cmp-table td { font-size: .82rem; padding: 9px 14px; color: var(--bs-body-color); border-bottom: 1px solid rgba(0,0,0,.06); vertical-align: middle; }
.blog-cmp-table tr:last-child td { border-bottom: none; }
.blog-cmp-table tbody tr:hover td { background: rgba(196,22,28,.03); }
.blog-cmp-table td:first-child { font-weight: 600; color: var(--bs-heading-color); }
