:root {
  --primary-color: #0f2454;
  --secondary-color: #e31a22;
  --tertiary-color: #c05c3e;
  --black: #111111;
  --blog-text: #111111;
  --text-muted: #323232;
  --text-light: #323232CC;
  --blockquote-bg: #F3F3F3;
  --footer-bg: #001137;
  --footer-border: #ffffff33;
  --footer-text-muted: #ffffff99;
  --background: #ffffff;
  --border-color: #dbdbdb;
  --secondary-background: #ffefef;
  --secondary-background-light: #FFEFEF80;
  --box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
}
/* ========== Base Styles ========== */
body {
  background-color: var(--background);
}

a {
  color: var(--black);
  transition: all 0.3s;
  text-decoration: none;
}

a:hover {
  color: var(--secondary-color);
}
body:has(.other-page) header, 
body:has(.page-banner) header, 
body:has(.blog-post) header{
  box-shadow: var(--box-shadow);
}
body:has(.table-of-contents.is-sticky) header, body:has(.table-of-contents.is-mobile-sticky) header {
  box-shadow: none;
}
label:has(+ input[required])::after, label:has(+ select[required])::after, label:has(+ textarea[required])::after {
  content: " *";
  color: #dc2626;
}
blockquote {
  background-color: var(--blockquote-bg);
  color: var(--text-muted);
  font-style: italic;
}
input.border {
  border: 1px solid #E2E2E2;
}
/* ========== Component Styles ========== */
.badge-white {
  background-color: var(--background);
  color: var(--primary-color);
}
.badge-primary {
  background-color: var(--primary-color);
  color: var(--background);
}
.badge-secondary {
  background-color: var(--secondary-color);
  color: var(--background);
}
.badge-transparent {
  background-color: var(--footer-border);
  border: 1px solid var(--footer-border); 
  color: var(--background);
  backdrop-filter: blur(3px);
}
.badge-transparent:hover {
  background-color: var(--secondary-background);
  color: var(--primary-color);
}
.btn-secondary {
  background-color: var(--secondary-color);
  color: var(--background);
}
.btn-primary {
  background-color: var(--primary-color);
  color: var(--background);
}
.btn-primary:hover {
  color: var(--background);
  opacity: 0.92;
}

.scroll-to-top {
  background-color: var(--secondary-color);
  color: var(--background);
  box-shadow: var(--box-shadow);
}

.scroll-to-top:hover {
  background-color: var(--secondary-color);
  color: var(--background);
}

.blog-card .img-placeholder {
  background-color: var(--border-color);
}
.blog-card-overlay .img-placeholder {
  background-color: transparent;
}
/* ========== Utility Styles ========== */
.border {
  border: 1px solid var(--border-color);
}
.bg-primary {
  background-color: var(--primary-color);
}
.bg-secondary {
  background-color: var(--secondary-color);
  color: var(--background);
}
.bg-body-secondary {
  background-color: var(--secondary-background);
}
.bg-body-secondary-light {
  background-color: var(--secondary-background-light);
}
.bg-body {
  background-color: var(--background);
}
.text-white {
  color: var(--background);
}
.text-black {
  color: var(--black);
}
.text-primary {
  color: var(--primary-color);
}
.text-secondary {
  color: var(--secondary-color);
}
.text-tertiary {
  color: var(--tertiary-color);
}
.text-light {
  color: var(--text-light);
}
.text-muted {
  color: var(--text-muted);
}
.gradient-blue {
  background: linear-gradient(119.95deg, var(--primary-color) 35.64%, var(--secondary-color) 89.65%);
}
.gradient-green {
  background: linear-gradient(162.41deg, #004D40 16.91%, #00897B 54.97%, #FFB300 93.03%);
}
.gradient-green .img-placeholder {
  background-color: transparent;
}
.gradient-blue .btn-secondary {
  border: 1px solid transparent;
}
.gradient-blue .btn-secondary:hover {
  border: 1px solid var(--background);
}
.border-green {
  border: 1px solid #008768;
}
.border-red {
  border: 1px solid #d60f0f;
}
/* ========== Extracted Visual States ========== */
.header nav li a:focus,
.header nav li a:hover {
  color: var(--secondary-color);
}

.header nav li a:hover svg {
  fill: var(--secondary-color);
}

.tabs {
  background: #f1f3f6;
}

.tablinks.active {
  background: var(--primary-color, #0f2454);
  color: #fff;
}

.trip-tab-btn:hover {
  border-bottom-color: var(--secondary-color);
}

.country-card-pill:hover .img-placeholder::after {
  background: rgba(0, 0, 0, 0.35);
}

.hero-search input::placeholder {
  color: #9a9a9a;
}

.hero-search-btn svg {
  fill: var(--background);
}

.swiper-button-next:hover svg,
.swiper-button-prev:hover svg {
  fill: #f1f3f6;
}

.blog-card-overlay a,
.blog-card-overlay .blog-card-footer,
.blog-card-overlay p{
  color: var(--background);
}

.footer-links-grid a:focus,
.footer-links-grid a:hover {
  color: #fff;
}

.footer-socials a:hover {
  background: rgba(255, 255, 255, 0.2);
}

.policy-accordion ul {
  color: var(--text-muted);
}

.contact-map p {
  color: #5F5F5F;
}