/* Ease My Visa shared design system. Loaded after page and footer styles. */
:root {
  --emv-navy: #0B1F3A;
  --emv-blue: #1769E0;
  --emv-sky: #38BDF8;
  --emv-bg: #F8FAFC;
  --emv-white: #FFFFFF;
  --emv-text: #0F172A;
  --emv-secondary: #475569;
  --emv-muted: #64748B;
  --emv-border: #E2E8F0;
  --emv-success: #16A34A;
  /* Legacy template aliases: keep every existing page on the same palette. */
  --navy: var(--emv-navy);
  --navy-dark: #07182E;
  --navy-mid: #153354;
  --navy-light: #315A82;
  --navy-tonal: #EEF4FA;
  --navy-muted: #CBD8E6;
  --ink-navy: var(--emv-navy);
  --ink-navy-dark: #07182E;
  --accent: var(--emv-blue);
  --accent-lt: var(--emv-blue);
  --coral: var(--emv-blue);
  --coral-light: #3C82E9;
  --rust: var(--emv-blue);
  --stamp-red: var(--emv-blue);
  --stamp-red-dark: #1254B5;
  --stamp: var(--emv-blue);
  --rust-light: #3C82E9;
  --blue-acc: var(--emv-blue);
  --success: var(--emv-success);
  --mint: var(--emv-success);
  --outline: var(--emv-border);
  --border-soft: var(--emv-border);
  --slate: var(--emv-secondary);
  --text-body: var(--emv-secondary);
  --text-dark: var(--emv-text);
  --text-muted: var(--emv-muted);
  --off-white: var(--emv-bg);
  --bg-soft: var(--emv-bg);
}

html { scroll-padding-top: 88px; }
body {
  color: var(--emv-text);
  background-color: var(--emv-bg);
  font-family: Inter, "Public Sans", "DM Sans", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
body, body * { text-wrap: pretty; }
h1, h2, h3, h4, h5, h6 {
  color: var(--emv-text);
  font-family: Inter, "Public Sans", "DM Sans", system-ui, sans-serif;
  letter-spacing: -0.025em;
}
:focus-visible { outline: 3px solid var(--emv-sky) !important; outline-offset: 3px; }
::selection { color: var(--emv-white); background: var(--emv-blue); }
img { height: auto; }

/* Shared navigation */
.emv-navbar, .emv-navbar.scrolled {
  background: var(--emv-navy);
  background-image: none;
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 4px 20px rgba(11,31,58,.12);
}
.emv-navbar::after { display: none; }
.emv-brand-text { font-family: Inter, sans-serif; font-weight: 750; letter-spacing: -.04em; text-transform: none; }
.emv-brand-text em { color: var(--emv-sky); }
.emv-brand-manifest { font-family: Inter, sans-serif; font-size: .67rem; letter-spacing: .07em; }
.emv-brand-manifest::before { content: none; }
.emv-navbar .nav-link { color: rgba(255,255,255,.82); font: 600 .9rem/1.2 Inter, sans-serif; letter-spacing: 0; text-transform: none; }
.emv-navbar .nav-link:hover, .emv-navbar .nav-link.active { color: #fff; }
.emv-navbar .nav-link::before { background: var(--emv-sky); }
.dropdown-menu-custom, .mega-menu { background: var(--emv-white); border: 1px solid var(--emv-border); border-radius: 14px; box-shadow: 0 18px 44px rgba(11,31,58,.18); }
.dropdown-menu-custom .dropdown-item, .mega-link { color: var(--emv-text); font-family: Inter, sans-serif; text-transform: none; letter-spacing: 0; }
.dropdown-menu-custom .dropdown-item i, .mega-link i { color: var(--emv-blue); }
.dropdown-menu-custom .dropdown-item:hover, .dropdown-menu-custom .dropdown-item.active, .mega-link:hover { color: var(--emv-blue); background: #EFF6FF; }
.btn-cta-stamp, .mega-cta-btn { background: var(--emv-blue); border-color: var(--emv-blue); color: #fff !important; border-radius: 999px; font-family: Inter, sans-serif; letter-spacing: 0; text-transform: none; }
.btn-cta-stamp:hover, .mega-cta-btn:hover { background: #1254B5; border-color: #1254B5; color: #fff !important; }
.mobile-toggle-btn { border-color: rgba(255,255,255,.35); border-radius: 10px; color: #fff; min-width: 44px; min-height: 44px; }
.mobile-menu-panel { background: var(--emv-navy); border-top: 1px solid rgba(255,255,255,.14); }
.mobile-menu-panel .nav-link { min-height: 44px; display: flex; align-items: center; font-family: Inter, sans-serif; }
.mobile-menu-panel .dropdown-menu-custom { max-height: min(62vh, 480px); overflow-y: auto; }
.mobile-menu-panel .dropdown-menu-custom .dropdown-item {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: .65rem 1rem !important;
  color: rgba(255,255,255,.92);
  background: transparent;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: .95rem;
  line-height: 1.35;
}
.mobile-menu-panel .dropdown-menu-custom .dropdown-item i { color: var(--emv-sky); }
.mobile-menu-panel .dropdown-menu-custom .dropdown-item:hover,
.mobile-menu-panel .dropdown-menu-custom .dropdown-item:focus-visible,
.mobile-menu-panel .dropdown-menu-custom .dropdown-item.active {
  color: #fff;
  background: rgba(56,189,248,.14);
}
.mobile-menu-panel .mega-region-label {
  color: #7dd3fc;
  padding: .75rem 1rem .25rem;
  font-size: .7rem;
  line-height: 1.4;
}

/* Legacy red/purple accent classes now use the shared interactive blue. */
.text-coral, .section-eyebrow, .sec-tag, .doc-eyebrow, .news-link,
.cvp-why-card i, .cvp-faq summary::after { color: var(--emv-blue) !important; }
.bg-coral, .btn-success { background-color: var(--emv-blue) !important; }
.stars { color: var(--emv-blue) !important; }
.stamp-crack, .hero-title em { color: var(--emv-sky) !important; }
.service-icon-wrap {
  background: #EAF2FF !important;
  color: var(--emv-blue) !important;
  border: 1px solid rgba(23,105,224,.12);
}
.service-icon-wrap i { color: var(--emv-blue) !important; }
.news-tag { background: var(--emv-blue) !important; color: #fff !important; }

/* Reusable card surfaces and controls across legacy PHP templates. */
.service-card, .why-ticket, .news-card, .tip-note, .testimonial-card, .cvp-why-card,
.cvp-process-card, .cvp-doc-item, .checklist-box, .lead-form-card, .procedure-panel,
.country-card, .faq-section .accordion-item, .emv-popup, .f-card {
  border-color: var(--emv-border) !important;
  box-shadow: 0 8px 26px rgba(11,31,58,.06);
}
.service-card, .news-card, .testimonial-card, .cvp-why-card, .cvp-process-card,
.checklist-box, .lead-form-card, .procedure-panel, .country-card, .faq-section .accordion-item {
  border-radius: 16px !important;
}
.service-card:hover, .news-card:hover, .testimonial-card:hover, .cvp-why-card:hover, .country-card:hover {
  border-color: rgba(23,105,224,.35) !important;
  box-shadow: 0 14px 34px rgba(11,31,58,.12);
}
.btn-stamp, .btn-service, .btn-navy, .btn-coral, .btn-hero-primary, .btn-primary-custom, .run-btn,
.submit-btn-form, .btn-emv-submit, .btn-wa, .cvp-hero .btn-coral {
  background-color: var(--emv-blue);
  border-color: var(--emv-blue);
  border-radius: 999px;
  color: #fff;
}
.btn-stamp:hover, .btn-service:hover, .btn-navy:hover, .btn-coral:hover,
.btn-hero-primary:hover, .run-btn:hover, .submit-btn-form:hover, .btn-emv-submit:hover,
.btn-wa:hover { background-color: #1254B5; border-color: #1254B5; color: #fff; }
.service-card p, .news-card p, .tip-note p, .why-ticket p, .cvp-why-card p,
.cvp-faq .faq-answer, .accordion-body { color: var(--emv-secondary); }
input, select, textarea, .form-control, .f-input, .search-box input {
  border-color: var(--emv-border);
  border-radius: 10px;
  font: inherit;
  min-height: 44px;
}
textarea { min-height: 110px; }
input:focus, select:focus, textarea:focus, .form-control:focus, .f-input:focus {
  border-color: var(--emv-blue);
  box-shadow: 0 0 0 3px rgba(23,105,224,.16);
}

/* Mobile first refinements */
.emv-mobile-cta { display: none; }
@media (max-width: 767.98px) {
  html { scroll-padding-top: 76px; }
  body { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  body.visa-country-page { padding-bottom: calc(82px + env(safe-area-inset-bottom, 0px)); }
  .emv-mobile-cta {
    position: fixed; inset: auto 0 0; z-index: 1025;
    display: grid; grid-template-columns: 1fr 1.15fr; gap: 10px;
    padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,.97); border-top: 1px solid var(--emv-border);
    box-shadow: 0 -6px 24px rgba(11,31,58,.10); backdrop-filter: blur(12px);
  }
  .emv-mobile-cta a {
    min-height: 48px; display: inline-flex; justify-content: center; align-items: center; gap: 8px;
    padding: 10px 12px; border-radius: 12px; text-decoration: none;
    font: 650 .9rem/1.15 Inter, sans-serif;
  }
  .emv-mobile-cta-check { color: var(--emv-navy); border: 1px solid var(--emv-border); background: #fff; }
  .emv-mobile-cta-wa { color: #fff; border: 1px solid var(--emv-blue); background: var(--emv-blue); }
  .emv-mobile-cta-wa:hover { color: #fff; background: #1254B5; }
  .emv-wa-sticky, .emv-call-sticky, .floating-wa { display: none !important; }
  .hero-title { font-size: clamp(2rem, 8vw, 2.5rem); line-height: 1.12; }
  .hero-inner { padding-inline: 1rem; }
  .hero-cta { gap: .75rem; }
  .hero-cta a { min-height: 48px; justify-content: center; }
  .container { --bs-gutter-x: 1.25rem; }
  #countryGrid > * { width: 50%; }
  .service-card { padding: 1.25rem !important; }
  .procedure-panel { padding: 1.25rem !important; }
  .cvp-mobile-bar { padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
  .cvp-mobile-bar a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.emv-legal-note { padding: 1rem 0 .5rem; text-align: center; }
.emv-legal-note p { max-width: 980px; margin: 0 auto; color: rgba(255,255,255,.72); font-size: .82rem; line-height: 1.55; }
