/*
Theme Name: Global Career Connects
Theme URI: https://globalcareerconnects.com
Author: Codynex Technology
Author URI: https://codynex.com
Description: Custom WordPress theme for Global Career Connects — a dark navy/gold visa consultancy theme with a Visa post type for country/visa detail pages and native WordPress Blog support. Ported 1:1 from the static site design (Cinzel + Orbitron + Inter, dark gold/navy palette).
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: visa-find-service
*/

  :root{
    --navy: #0D0C0A;
    --navy-2: #17150F;
    --navy-3: #211D15;
    --paper: #161512;
    --paper-2: #1F1C17;
    --ink: #F2ECDD;
    --ink-dim: #B6AC96;
    --gold: #CDA43A;
    --gold-bright: #EFCC70;
    --stamp: #C98A3A;
    --line: rgba(242,236,221,0.14);
    --line-dark: rgba(242,236,221,0.1);
    --radius: 18px;
    --ease: cubic-bezier(.22,1,.36,1);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Inter', sans-serif;
    background:var(--paper);
    color:var(--ink);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{text-decoration:none; color:inherit;}
  ul{list-style:none;}
  button{font-family:inherit; cursor:pointer; border:none; background:none;}
  .container{max-width:1180px; margin:0 auto; padding:0 32px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Orbitron', sans-serif;
    font-size:12px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--gold);
    margin-bottom:18px;
  }
  .eyebrow::before{content:''; width:22px; height:1px; background:var(--gold);}
  h1,h2,h3{font-family:'Cinzel', serif; font-weight:600; line-height:1.05; letter-spacing:-0.01em;}
  h2{font-size:clamp(28px,4vw,44px); margin-bottom:16px;}
  p{color:var(--ink); opacity:.68; line-height:1.65;}
  section{position:relative;}

  /* ---------- Reveal on scroll ---------- */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
  .reveal.in{opacity:1; transform:translateY(0);}
  .reveal-delay-1{transition-delay:.1s;}
  .reveal-delay-2{transition-delay:.2s;}
  .reveal-delay-3{transition-delay:.3s;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    *{scroll-behavior:auto !important;}
  }

  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 28px; border-radius:999px;
    font-size:14px; font-weight:600; letter-spacing:.01em;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s;
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--gold); color:var(--navy);
    box-shadow:0 8px 24px rgba(201,162,39,.28);
  }
  .btn-primary:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(201,162,39,.4);}
  .btn-ghost{
    color:var(--ink); border:1px solid var(--line);
  }
  .btn-ghost:hover{border-color:var(--gold); color:var(--gold-bright); transform:translateY(-2px);}
  .btn-ghost-dark{ color:var(--ink); border:1px solid var(--line-dark);}
  .btn-ghost-dark:hover{border-color:var(--stamp); color:var(--stamp); transform:translateY(-2px);}
  .btn-sm{padding:10px 18px; font-size:13px;}
  .arrow{transition:transform .3s var(--ease);}
  .btn:hover .arrow{transform:translateX(4px);}

  /* ---------- NAV ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:22px 0;
    transition:padding .4s var(--ease), background .4s var(--ease), backdrop-filter .4s;
  }
 header.scrolled{
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
  header.scrolled::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:rgba(13,12,10,.78);
  backdrop-filter:blur(16px) saturate(140%);
}
  nav{display:flex; align-items:center; justify-content:space-between;}

  .logo{
    width:110px;
  }
  
  .logo-mark{
    width:40px; height:33px; flex-shrink:0;
    background-image:url('assets/logo.png');
    background-size:133px 66px;
    background-position:-11px -11px;
    background-repeat:no-repeat;
  }
  .nav-links{display:flex; align-items:center; gap:36px;}
  .nav-links a{
    font-size:14px; color:var(--ink-dim); font-weight:500;
    position:relative; padding:4px 0;
    transition:color .3s;
  }
  .nav-links a::after{
    content:''; position:absolute; bottom:0; left:0; right:100%;
    height:1px; background:var(--gold);
    transition:right .35s var(--ease);
  }
  .nav-links a:hover{color:var(--ink);}
  .nav-links a:hover::after{right:0;}
  .nav-right{display:flex; align-items:center; gap:22px;}
  .burger{display:none; flex-direction:column; gap:5px; width:26px; z-index:200;}
  .burger span{height:2px; background:var(--ink); border-radius:2px; transition:.3s;}

  /* ---------- Nav dropdown ---------- */
  .has-dropdown{position:relative;}
  .has-dropdown::before{
    content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    width:200px; height:20px;
  }
  .dropdown-toggle{
    display:flex; align-items:center; gap:6px;
    font-size:14px; color:var(--ink-dim); font-weight:500;
    font-family:inherit; padding:4px 0;
  }
  .dropdown-toggle svg{transition:transform .3s var(--ease);}
  .has-dropdown:hover .dropdown-toggle{color:var(--ink);}
  .has-dropdown:hover .dropdown-toggle svg{transform:rotate(180deg);}
  .dropdown-menu{
    position:absolute; top:calc(100% + 20px); left:50%;
    transform:translateX(-50%) translateY(-8px);
    background:var(--paper-2); border:1px solid var(--line-dark); border-radius:14px;
    padding:8px; min-width:180px; box-shadow:0 20px 44px rgba(0,0,0,.45);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
    z-index:50;
  }
  .has-dropdown:hover .dropdown-menu{
    opacity:1; visibility:visible; pointer-events:auto;
    transform:translateX(-50%) translateY(0);
  }
  .dropdown-menu a{
    display:block; padding:11px 16px; border-radius:9px;
    font-size:14px; color:var(--ink-dim); white-space:nowrap; transition:background .25s, color .25s;
  }
  .dropdown-menu a::after{display:none;}
  .dropdown-menu a:hover{background:var(--navy); color:var(--gold-bright);}

  /* ---------- HERO ---------- */
  .hero{
    background:radial-gradient(ellipse 900px 500px at 80% -10%, rgba(201,162,39,.16), transparent 60%), var(--navy);
    padding:210px 0 0;
    color:var(--ink);
    position:relative;
    overflow:hidden;
  }
  .hero::after{
    content:''; position:absolute; inset:0; z-index:1;
    background-image:radial-gradient(rgba(233,228,214,.06) 1px, transparent 1px);
    background-size:26px 26px;
    mask-image:radial-gradient(ellipse 800px 500px at 70% 10%, black, transparent);
    pointer-events:none;
  }
  .hero-video{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; z-index:0;
  }
  .hero-video-overlay{
    position:absolute; inset:0; z-index:0;
    background:linear-gradient(180deg, rgba(13,12,10,.55), rgba(13,12,10,.72) 55%, rgba(13,12,10,.88) 100%);
  }
  .hero-inner{
    display:flex; flex-direction:column; align-items:center; text-align:center;
    max-width:760px; margin:0 auto;
    position:relative; z-index:2;
  }
  .hero h1{font-size:clamp(38px,5.5vw,72px); color:var(--ink);}
  .hero h1 em{font-style:italic; color:var(--gold-bright); font-weight:500;}
  .hero p.lede{font-size:18px; max-width:540px; margin:22px auto 34px; color:var(--ink-dim); opacity:1;}
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap; justify-content:center;}

  .stamp-wrap{
    display:flex; align-items:center; justify-content:center; position:relative;
    width:460px; height:460px; margin:0 auto;
  }
  .stamp-fan{position:absolute; inset:0; z-index:1;}
  .stamp-slot{position:absolute; width:150px; animation:stamp-bob 6s ease-in-out infinite;}
  @keyframes stamp-bob{0%,100%{margin-top:0;} 50%{margin-top:-9px;}}
  .stamp-card{
    background:var(--paper); border-radius:14px; overflow:hidden;
    padding:0 0 14px; box-shadow:0 26px 50px rgba(0,0,0,.55), 0 8px 18px rgba(0,0,0,.4);
    border:1px solid rgba(0,0,0,.05);
  }
  .stamp-card-flag{height:34px;}
  .stamp-card-body{padding:11px 13px 0;}
  .stamp-card-name{font-family:'Cinzel',serif; font-weight:600; font-size:15px; color:var(--ink);}
  .stamp-card-meta{
    display:flex; align-items:center; gap:5px; margin-top:5px;
    font-family:'Orbitron',sans-serif; font-size:9.5px; letter-spacing:.08em;
    text-transform:uppercase; color:var(--stamp); font-weight:700;
  }
  .stamp-card-meta svg{width:10px; height:10px;}
  @media (max-width:980px){
    .stamp-wrap{width:380px; height:380px;}
    .stamp-slot{width:122px;}
    .stamp-card-flag{height:28px;}
    .stamp-card-body{padding:9px 11px 0;}
    .stamp-card-name{font-size:13px;}
  }
  @media (max-width:520px){
    .stamp-wrap{width:300px; height:300px; transform:scale(.9);}
  }
  /* ---------- MARQUEE ---------- */
  .marquee-band{
    position:relative; z-index:2;
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    padding:26px 0; margin-top:110px; overflow:hidden;
    background:rgba(255,255,255,.02);
  }
  .marquee-track{display:flex; width:max-content; animation:scroll-x 32s linear infinite;}
  .marquee-track:hover{animation-play-state:paused;}
  .marquee-item{
    display:flex; align-items:center; gap:12px; padding:0 34px;
    font-family:'Cinzel', serif; font-weight:700; font-size:14px; letter-spacing:.06em;
    color:var(--ink-dim); white-space:nowrap;
  }
  .marquee-item .dot{width:5px; height:5px; border-radius:50%; background:var(--gold);}
  @keyframes scroll-x{from{transform:translateX(0);} to{transform:translateX(-50%);}}

  .marquee-band.light{background:var(--paper-2); border-color:var(--line-dark);}
  .marquee-band.light .marquee-item{color:rgba(242,236,221,.5);}
  .marquee-band.light .marquee-item .dot{background:var(--stamp);}

  /* ---------- SECTION: paper ---------- */
  .section{padding:120px 0;}
  .section-head{max-width:640px; margin-bottom:64px;}
  .section-head p{font-size:16px;}

  .trio{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
  .trio-card{
    padding:8px 0 0;
  }
  .trio-icon{
    width:50px; height:50px; border-radius:14px;
    background:var(--navy); color:var(--gold-bright);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:22px;
  }
  .trio-card h3{font-size:19px; margin-bottom:10px; font-weight:600;}
  .trio-card p{font-size:14.5px;}

  /* ---------- Split feature ---------- */
  .split{
    display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;
  }
  .split-visual{
    position:relative; border-radius:var(--radius); overflow:hidden;
    aspect-ratio:4/3.1;
    background:linear-gradient(160deg,var(--navy),var(--navy-3));
    display:flex; align-items:center; justify-content:center;
  }
  .split-visual svg{width:62%; opacity:.92;}
  .split-badge{
    position:absolute; bottom:22px; left:22px; right:22px;
    background:rgba(250,246,236,.94); backdrop-filter:blur(6px);
    border-radius:14px; padding:16px 18px;
    display:flex; align-items:center; gap:14px;
  }
  .split-badge .pct{font-family:'Cinzel',serif; font-weight:700; font-size:24px; color:var(--stamp);}
  .split-badge .txt{font-size:12.5px; color:rgba(10,22,40,.68); line-height:1.4;}
  .feature-list{margin:26px 0 32px;}
  .feature-list li{
    display:flex; align-items:flex-start; gap:14px;
    padding:14px 0; border-top:1px solid var(--line-dark);
    font-size:15px; font-weight:500;
  }
  .feature-list li:last-child{border-bottom:1px solid var(--line-dark);}
  .feature-list li .num{
    font-family:'Orbitron',sans-serif; font-size:12px; color:var(--stamp);
    padding-top:2px;
  }

  /* ---------- Checklist + wave card ---------- */
  .check-list{margin:26px 0 32px; display:flex; flex-direction:column; gap:16px;}
  .check-item{display:flex; align-items:center; gap:14px; font-size:15.5px; font-weight:500; color:var(--ink);}
  .check-icon{
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    border:1.5px solid var(--line-dark); background:var(--paper-2);
    display:flex; align-items:center; justify-content:center; color:var(--gold-bright);
  }
  .check-icon svg{width:12px; height:12px;}
  .wave-card{
    position:relative; border-radius:var(--radius); overflow:hidden;
    aspect-ratio:4/3.1; background:var(--paper);
    border:1px solid rgba(242,236,221,.1);
    box-shadow:0 20px 44px rgba(0,0,0,.35);
    display:flex; align-items:center; justify-content:center;
  }
  .wave-card svg{width:86%; height:auto;}
  .wave-video{width:100%; height:100%; object-fit:cover;}
  .route-path{opacity:0; transition:opacity 1.2s var(--ease) .2s;}
  .split-visual.in .route-path{opacity:1;}
  .route-point{opacity:0; transition:opacity .5s var(--ease) 1.4s;}
  .split-visual.in .route-point{opacity:1;}
  .route-pulse{transform-box:fill-box; transform-origin:center; animation:route-pulse 2.4s ease-out infinite;}
  .route-pulse.delay{animation-delay:1.2s;}
  @keyframes route-pulse{
    0%{transform:scale(1); opacity:.6;}
    100%{transform:scale(2.8); opacity:0;}
  }
  .route-plane{opacity:0; transition:opacity .5s var(--ease) 1.6s;}
  .split-visual.in .route-plane{opacity:1;}

  /* ---------- Visa cards (boarding pass) ---------- */
  .visa-grid, .feature-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
  }
  .visa-card{
    background:var(--paper-2); border:1px solid rgba(242,236,221,.12);
    border-radius:16px; padding:30px 26px 26px;
    position:relative; overflow:visible;
    box-shadow:0 10px 26px rgba(0,0,0,.28);
    transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
  }
  .visa-card::before{
    content:''; position:absolute; right:-11px; top:50%; transform:translateY(-50%);
    width:22px; height:22px; border-radius:50%;
    background:var(--paper); border:1px solid rgba(242,236,221,.12);
  }
  .visa-card::after{
    content:''; position:absolute; right:20px; top:12px; bottom:12px;
    border-right:1.5px dashed rgba(242,236,221,.16);
  }
  .visa-card:hover{
    transform:translateY(-8px);
    box-shadow:0 24px 48px rgba(0,0,0,.45);
    border-color:var(--gold);
  }
  .visa-icon{
    width:46px; height:46px; border-radius:50%;
    background:var(--navy); color:var(--gold-bright);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:20px;
  }
  .visa-card h3{font-size:18px; margin-bottom:8px; font-weight:600;}
  .visa-card p{font-size:14px; margin-bottom:18px; min-height:96px;}
  .visa-card .learn{
    font-size:13px; font-weight:700; color:var(--stamp);
    display:inline-flex; align-items:center; gap:6px;
  }
  .visa-more{
    margin-top:50px; display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:20px; padding-top:40px; border-top:1px solid var(--line-dark);
  }
  .visa-more p{max-width:420px; font-size:14.5px;}

  /* ---------- Stats (navy) ---------- */
  .stats-section{background:var(--navy); color:var(--ink); padding:110px 0;}
  .stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:30px;}
  .stat{border-left:1px solid var(--line); padding-left:26px;}
  .stat .count{
    font-family:'Cinzel',serif; font-weight:600; font-size:clamp(38px,4vw,52px);
    color:var(--gold-bright); display:flex; align-items:baseline; gap:2px;
  }
  .stat .lbl{font-size:14px; font-weight:600; margin:10px 0 6px; color:var(--ink);}
  .stat p{font-size:13px; color:var(--ink-dim); opacity:1;}

  /* ---------- Testimonials ---------- */
  .testi-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px;}
  .testi-card{
    background:var(--paper-2); border:1px solid rgba(242,236,221,.12);
    border-radius:16px; padding:32px;
    box-shadow:0 10px 26px rgba(0,0,0,.28);
    transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .testi-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.4);}
  .testi-quote{font-size:15.5px; line-height:1.7; margin-bottom:24px; font-family:'Cinzel',serif; font-style:italic; font-weight:500; color:var(--ink); opacity:.9;}
  .testi-person{display:flex; align-items:center; gap:14px;}
  .avatar{
    width:44px; height:44px; border-radius:50%;
    background:linear-gradient(140deg,var(--gold),var(--stamp));
    display:flex; align-items:center; justify-content:center;
    color:var(--navy); font-weight:700; font-size:15px; font-family:'Cinzel',serif;
  }
  .testi-person .name{font-weight:700; font-size:14.5px;}
  .testi-person .role{font-size:12.5px; opacity:.6;}

  /* ---------- Blog ---------- */
  .blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .blog-card{
    border-radius:16px; overflow:hidden;
    background:var(--paper-2); border:1px solid rgba(242,236,221,.12);
    box-shadow:0 10px 26px rgba(0,0,0,.28);
    transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .blog-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.4);}
  .blog-img{
    height:160px; background:linear-gradient(150deg,var(--navy),var(--navy-3));
    display:flex; align-items:center; justify-content:center; color:var(--gold-bright); opacity:.9;
  }
  .blog-body{padding:24px;}
  .blog-tag{font-family:'Orbitron',sans-serif; font-size:11px; letter-spacing:.1em; color:var(--stamp); text-transform:uppercase;}
  .blog-body h3{font-size:16.5px; margin:10px 0 8px; font-weight:600;}
  .blog-body p{font-size:13.5px; margin-bottom:14px;}
  .blog-body .learn{font-size:13px; font-weight:700; color:var(--stamp);}

  /* ---------- CTA banner ---------- */
  .cta-banner{
    background:var(--navy); color:var(--ink);
    border-radius:28px; padding:56px 40px 40px;
    margin:0 32px; max-width:1180px; margin-inline:auto;
    display:flex; flex-direction:column; align-items:center; text-align:center;
    gap:22px; position:relative; overflow:hidden;
  }
  .cta-banner::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(circle at 85% 20%, rgba(201,162,39,.22), transparent 60%);
  }
  .cta-banner .eyebrow{justify-content:center; margin-bottom:0; position:relative;}
  .cta-banner h2{color:var(--ink); max-width:560px; position:relative;}
  .cta-banner .btn{position:relative; margin-bottom:34px;}

  /* ---------- World map CTA visual ---------- */
  .world-map-cta{
    position:relative; width:100%; max-width:1060px;
    aspect-ratio:832.77/414.9;
    margin-top:14px; pointer-events:none;
  }
  .world-map-svg{position:absolute; inset:0; width:100%; height:100%;}
  .map-pin{
    position:absolute; transform:translate(-50%,-50%);
    animation:map-pin-bob 4.5s ease-in-out infinite;
    pointer-events:auto; cursor:pointer;
  }
  @keyframes map-pin-bob{0%,100%{margin-top:0;} 50%{margin-top:-6px;}}
  .map-pin-label{
    position:absolute; bottom:calc(100% + 12px); left:50%;
    transform:translateX(-50%) translateY(6px) scale(.92);
    background:var(--paper-2); color:var(--ink);
    font-family:'Orbitron',sans-serif; font-size:10.5px; letter-spacing:.06em; font-weight:600;
    padding:7px 13px; border-radius:8px; white-space:nowrap;
    border:1px solid var(--line-dark); box-shadow:0 10px 26px rgba(0,0,0,.45);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
    z-index:10;
  }
  .map-pin-label::after{
    content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%);
    border:5px solid transparent; border-top-color:var(--paper-2);
  }
  .map-pin:hover .map-pin-label, .map-pin:focus-visible .map-pin-label{
    opacity:1; visibility:visible; transform:translateX(-50%) translateY(0) scale(1);
  }
  .map-pin-pulse{
    position:absolute; inset:0; border-radius:50%;
    background:var(--gold-bright);
    animation:map-pin-pulse 2.6s ease-out infinite;
  }
  @keyframes map-pin-pulse{
    0%{transform:scale(1); opacity:.5;}
    100%{transform:scale(2.4); opacity:0;}
  }
  .map-pin-flag{
    position:relative; display:block;
    width:42px; height:42px; border-radius:50%;
    border:2.5px solid #fff; box-shadow:0 8px 18px rgba(0,0,0,.5);
  }
  @media (max-width:680px){
    .world-map-cta{max-width:100%;}
    .map-pin-flag{width:26px; height:26px; border-width:2px;}
  }

  /* ---------- Page hero (interior pages) ---------- */
  .page-hero{
    background:radial-gradient(ellipse 900px 500px at 80% -10%, rgba(201,162,39,.16), transparent 60%), var(--navy);
    padding:190px 0 100px;
    color:var(--ink);
    position:relative; overflow:hidden;
    text-align:center;
  }
  .page-hero::after{
    content:''; position:absolute; inset:0; z-index:0;
    background-image:radial-gradient(rgba(233,228,214,.06) 1px, transparent 1px);
    background-size:26px 26px;
    mask-image:radial-gradient(ellipse 800px 500px at 70% 10%, black, transparent);
    pointer-events:none;
  }
  .page-hero .container{position:relative; z-index:1;}
  .page-hero .eyebrow{justify-content:center;}
  .page-hero h1{font-size:clamp(34px,5vw,58px); color:var(--ink);}
  .page-hero p.lede{font-size:17px; max-width:560px; margin:18px auto 0; color:var(--ink-dim); opacity:1;}
  .breadcrumb{
    display:flex; align-items:center; justify-content:center; gap:8px;
    font-size:13px; color:var(--ink-dim); margin-top:22px;
  }
  .breadcrumb a{color:var(--ink-dim); transition:color .3s;}
  .breadcrumb a:hover{color:var(--gold-bright);}
  .breadcrumb span{color:var(--gold);}

  /* ---------- Job listings (careers) ---------- */
  .job-list{display:flex; flex-direction:column; gap:20px;}
  .job-card{
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px;
    background:var(--paper-2); border:1px solid rgba(242,236,221,.12);
    border-radius:16px; padding:28px 32px;
    box-shadow:0 10px 26px rgba(0,0,0,.28);
    transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
  }
  .job-card:hover{transform:translateY(-4px); box-shadow:0 20px 40px rgba(0,0,0,.4); border-color:var(--gold);}
  .job-info h3{font-size:18.5px; margin-bottom:8px; font-weight:600;}
  .job-tags{display:flex; gap:10px; flex-wrap:wrap;}
  .job-tag{
    font-family:'Orbitron',sans-serif; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--stamp); border:1px solid rgba(201,138,58,.35); border-radius:999px; padding:5px 12px;
  }

  /* ---------- Contact form ---------- */
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
  .form-field{display:flex; flex-direction:column; gap:9px;}
  .form-field.full{grid-column:1/-1;}
  .form-field label{
    font-family:'Orbitron',sans-serif; font-size:11px; letter-spacing:.08em;
    text-transform:uppercase; color:var(--ink-dim);
  }
  .form-field input, .form-field select, .form-field textarea{
    background:var(--paper); border:1px solid var(--line-dark); border-radius:12px;
    padding:14px 16px; color:var(--ink); font-family:'Inter',sans-serif; font-size:14.5px;
    outline:none; transition:border-color .3s;
  }
  .form-field input:focus, .form-field select:focus, .form-field textarea:focus{border-color:var(--gold);}
  .form-field textarea{resize:vertical; min-height:130px;}
  .form-field input::placeholder, .form-field textarea::placeholder{color:var(--ink-dim);}
  .contact-form-card{
    background:var(--paper-2); border:1px solid rgba(242,236,221,.12);
    border-radius:20px; padding:44px; box-shadow:0 10px 26px rgba(0,0,0,.28);
  }
  .inquiry-msg{font-size:13.5px; color:var(--gold-bright); margin-top:18px; min-height:16px;}

  /* ---------- Visa single page content (Elementor-editable area) ----------
     Only styles plain classic-editor text (headings/paragraphs/lists) so a Visa
     page looks right before anything's been built in Elementor. Elementor's own
     widgets carry their own styling and aren't affected by this. */
  .vfs-visa-content > *:not(.elementor):not(.elementor *) {
    max-width:1180px; margin-left:auto; margin-right:auto; padding:0 32px;
  }
  .vfs-visa-content h2, .vfs-visa-content h3{margin-top:32px; margin-bottom:14px;}
  .vfs-visa-content p{font-size:16px; line-height:1.8; color:var(--ink); opacity:.85; margin-bottom:16px;}
  .vfs-visa-content ul, .vfs-visa-content ol{margin:0 0 20px 22px; color:var(--ink); opacity:.85;}
  .vfs-visa-content img{border-radius:var(--radius); max-width:100%; height:auto;}
  .vfs-visa-content > *:first-child{padding-top:100px;}
  .vfs-visa-content > *:last-child{padding-bottom:20px;}

  /* ---------- FAQ accordion ---------- */
  .faq-list{display:flex; flex-direction:column; gap:16px; max-width:820px; margin:0 auto;}
  .faq-item{
    background:var(--paper-2); border:1px solid rgba(242,236,221,.12);
    border-radius:16px; overflow:hidden;
  }
  .faq-item summary{
    list-style:none; cursor:pointer; padding:24px 28px;
    display:flex; align-items:center; justify-content:space-between; gap:18px;
    font-family:'Cinzel',serif; font-weight:600; font-size:16.5px; color:var(--ink);
    transition:color .3s;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::marker{content:'';}
  .faq-item summary:hover{color:var(--gold-bright);}
  .faq-icon{
    width:30px; height:30px; border-radius:50%; flex-shrink:0;
    background:var(--navy); color:var(--gold-bright);
    display:flex; align-items:center; justify-content:center;
    transition:transform .4s var(--ease);
  }
  .faq-item[open] .faq-icon{transform:rotate(45deg);}
  .faq-answer{padding:0 28px 26px; font-size:14.5px; color:var(--ink-dim); line-height:1.75; max-width:680px;}

  /* ---------- Footer ---------- */
  footer{background:var(--navy); color:var(--ink); padding-top:110px;}
  .footer-top{
    display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1fr 1fr; gap:32px;
    padding-bottom:70px; border-bottom:1px solid var(--line);
  }
  .footer-brand .logo{margin-bottom:10px;}
  .footer-tagline{
    font-family:'Orbitron',sans-serif; font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; color:var(--gold); margin-bottom:16px;
  }
  .footer-brand p{max-width:280px; font-size:14px; color:var(--ink-dim); opacity:1;}
  .newsletter-form{
    display:flex; margin-top:20px; border:1px solid var(--line); border-radius:999px;
    padding:5px; max-width:320px;
  }
  .newsletter-form input{
    flex:1; background:none; border:none; padding:10px 16px;
    color:var(--ink); font-size:13.5px; outline:none;
  }
  .newsletter-form input::placeholder{color:var(--ink-dim);}
  .newsletter-form button{
    background:var(--gold); color:var(--navy); font-weight:700; font-size:13px;
    padding:10px 20px; border-radius:999px; transition:background .3s;
  }
  .newsletter-form button:hover{background:var(--gold-bright);}
  .newsletter-msg{font-size:12.5px; color:var(--gold-bright); margin-top:10px; height:14px;}
  .footer-col h4{font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:20px; font-weight:600;}
  .footer-col li{margin-bottom:12px;}
  .footer-col a{font-size:14px; color:var(--ink); opacity:.85; transition:opacity .3s, padding-left .3s;}
  .footer-col a:hover{opacity:1; color:var(--gold-bright); padding-left:4px;}
  .footer-bottom{
    display:flex; align-items:center; justify-content:space-between;
    padding:26px 0 40px; font-size:13px; color:var(--ink-dim); flex-wrap:wrap; gap:12px;
  }
  .footer-giant{
    font-family:'Cinzel',serif; font-weight:600;
    font-size:clamp(50px,12vw,180px);
    text-align:center; color:transparent;
    -webkit-text-stroke:1px rgba(233,228,214,.14);
    letter-spacing:-.02em; padding-bottom:10px; user-select:none;
  }

  /* ---------- Flight scroll section (plane position driven by scroll progress) ----------
     Compact, always in normal page flow — no pinning, no full-screen takeover.
     Sections before and after this one stay visible in the same scroll view;
     the plane's position is just tied to how far this small section itself
     has scrolled through the viewport. */
  .fly-scroll{
    position:relative; min-height:360px; padding:70px 0;
    background:var(--paper); overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .fly-scroll::before{
    content:''; position:absolute; inset:0;
    background-image:radial-gradient(rgba(242,236,221,.05) 1px, transparent 1px);
    background-size:26px 26px;
    mask-image:radial-gradient(ellipse 900px 520px at 50% 50%, black, transparent);
    pointer-events:none;
  }
  .fly-plane-scroll{
    position:absolute; top:50%; left:0; width:280px; height:160px;
    transform:translate(-50%,-50%); z-index:2;
    filter:drop-shadow(0 20px 34px rgba(0,0,0,.55));
    will-change:transform;
  }
  .fly-plane-scroll img{width:100%; height:100%; object-fit:contain;}
  .fly-text-wrap{
    position:relative; z-index:1; width:100%; max-width:900px;
    padding:0 32px; min-height:130px;
    display:flex; align-items:center; justify-content:center;
  }
  .fly-text{
    position:absolute; left:32px; right:32px; text-align:center;
    font-family:'Cinzel',serif; font-weight:500; letter-spacing:-.01em;
    font-size:clamp(26px,3.8vw,44px); color:var(--ink); line-height:1.3;
    opacity:0; transform:translateY(14px);
    transition:opacity .5s var(--ease), transform .5s var(--ease);
    pointer-events:none;
  }
  .fly-text.active{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){
    .fly-plane-scroll{display:none;}
    .fly-text{position:static; opacity:1; transform:none; display:none;}
    .fly-text.active{display:flex; align-items:center; justify-content:center;}
  }
  @media (max-width:680px){
    .fly-scroll{min-height:280px; padding:50px 0;}
    .fly-plane-scroll{width:180px; height:104px;}
    .fly-text{left:20px; right:20px;}
  }

  /* ---------- Video testimonial grid ---------- */
  .video-testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .video-testi-card{
    border-radius:14px; overflow:hidden; background:#000;
    box-shadow:0 10px 26px rgba(0,0,0,.3);
    transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .video-testi-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.4);}
  .video-testi-player{width:100%; height:auto; display:block; background:#000;}
  @media (max-width:680px){
    .video-testi-grid{grid-template-columns:1fr; max-width:420px; margin:0 auto;}
  }

  /* ---------- Lead-capture popup ---------- */
  .site-popup-overlay{
    position:fixed; inset:0; z-index:1000;
    background:rgba(8,7,5,.72); backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .4s var(--ease), visibility .4s;
  }
  .site-popup-overlay.show{opacity:1; visibility:visible;}
  .site-popup{
    position:relative; width:100%; max-width:460px;
    background:var(--paper-2); border:1px solid var(--line-dark); border-radius:22px;
    padding:44px 40px 36px;
    box-shadow:0 30px 70px rgba(0,0,0,.55);
    transform:scale(.94) translateY(16px);
    transition:transform .4s var(--ease);
  }
  .site-popup-overlay.show .site-popup{transform:scale(1) translateY(0);}
  .site-popup-close{
    position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%;
    background:var(--paper); color:var(--ink-dim);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:color .3s, background .3s;
  }
  .site-popup-close:hover{color:var(--gold-bright); background:var(--navy);}
  .site-popup h3{font-size:clamp(22px,3vw,28px); margin-bottom:10px;}
  .site-popup p{font-size:14.5px; margin-bottom:4px;}
  .site-popup .form-grid{margin-top:22px;}
  .site-popup .btn{width:100%; justify-content:center;}
  @media (max-width:520px){
    .site-popup{padding:34px 26px 28px;}
  }

  /* ---------- Scroll to top ---------- */
  .totop{
    position:fixed; bottom:26px; right:26px; z-index:90;
    width:46px; height:46px; border-radius:50%;
    background:var(--gold); color:var(--navy);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transform:translateY(10px);
    transition:.4s var(--ease); box-shadow:0 10px 24px rgba(201,162,39,.3);
  }
  .totop.show{opacity:1; visibility:visible; transform:translateY(0);}

  /* ---------- Responsive ---------- */
  @media (max-width:980px){
    .trio{grid-template-columns:1fr; gap:40px;}
    .split{grid-template-columns:1fr;}
    .visa-grid, .feature-grid{grid-template-columns:repeat(2,1fr);}
    .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:40px;}
    .testi-grid{grid-template-columns:1fr;}
    .blog-grid{grid-template-columns:1fr;}
    .footer-top{grid-template-columns:1fr 1fr 1fr; row-gap:44px;}
  }
  @media (max-width:680px){
    .nav-links{
      position:fixed; inset:0 0 0 30%; background:var(--navy);
      flex-direction:column; justify-content:center; align-items:flex-start;
      padding:40px; gap:26px; transform:translateX(100%);
      transition:transform .45s var(--ease); border-left:1px solid var(--line);
    }
    .nav-links.open{transform:translateX(0);}
    .nav-links a{font-size:20px;}
    .nav-links > li{width:100%;}
    .dropdown-toggle{font-size:20px; width:100%; justify-content:space-between;}
    .dropdown-menu{
      position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto;
      background:none; border:none; box-shadow:none; padding:4px 0 0 6px; margin-top:8px;
      min-width:0; max-height:0; overflow:hidden;
      transition:max-height .35s var(--ease);
    }
    .has-dropdown.open .dropdown-menu{max-height:240px;}
    .dropdown-menu a{font-size:16px; padding:9px 0;}
    .burger{display:flex;}
    .nav-right .btn-primary{display:none;}
    .visa-grid, .feature-grid{grid-template-columns:1fr;}
    .section{padding:80px 0;}
    .cta-banner{padding:44px 26px; border-radius:20px; text-align:center; justify-content:center;}
    .footer-top{grid-template-columns:1fr;}
    .page-hero{padding:150px 0 70px;}
    .form-grid{grid-template-columns:1fr;}
    .contact-form-card{padding:28px;}
    .job-card{padding:24px;}
  }
  
  .check-list-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px 30px;}
@media (max-width:900px){
  .check-list-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:680px){
  .check-list-grid{grid-template-columns:1fr;}
}
