/* ══════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — 100% fully optimized
   All breakpoints: 1200px, 968px, 768px, 600px, 480px, 360px
══════════════════════════════════════════════════════════ */

/* ── TEXT ANIMATIONS (gsap-style split text) ── */
.title-split {
  overflow: hidden;
  display: block;
}
.title-split .word {
  display: inline-block;
  overflow: hidden;
}
.title-split .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity .6s cubic-bezier(.16,1,.3,1),
              transform .6s cubic-bezier(.16,1,.3,1);
}
.title-split .char.visible {
  opacity: 1;
  transform: none;
}
/* Section H2 animate in */
.sh h2 { overflow: hidden; }
[data-aos="fade-up"].aos-animate .sh h2,
.sh[data-aos="fade-up"].aos-animate h2 {
  animation: titleReveal .8s cubic-bezier(.16,1,.3,1) both;
}
@keyframes titleReveal {
  from { opacity:0; transform:translateY(30px); }
  to   { opacity:1; transform:none; }
}

/* ── Page hero titles animate ── */
.page-hero h1 {
  opacity: 0;
  transform: translateY(40px);
  animation: heroH1In .7s cubic-bezier(.16,1,.3,1) .2s forwards;
}
.page-hero p {
  opacity: 0;
  animation: heroH1In .6s cubic-bezier(.16,1,.3,1) .45s forwards;
}
.page-hero .breadcrumb {
  opacity: 0;
  animation: heroH1In .5s cubic-bezier(.16,1,.3,1) .6s forwards;
}
@keyframes heroH1In {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:none; }
}

/* ── About section image — FULL VISIBLE ── */
.about-grid {
  display: grid !important;
  grid-template-columns: 1.1fr 1fr !important;
  gap: 48px !important;
  align-items: stretch !important;
  max-width: 1100px;
  margin: 0 auto;
}
.about-img-wrap {
  position: relative !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  height: 100% !important;
  min-height: 440px !important;
}
.about-img-wrap img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* ── GOOGLE MAP SATELLITE ── */
.map-embed-real {
  width: 100% !important;
  height: 500px !important;
  border-radius: 20px !important;
  border: none !important;
  display: block !important;
}

/* ══════════════════════════════════════════════════════════
   DESKTOP LARGE (1200px+)
══════════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
  .hero-in { gap: 40px; }
  .footer-body { gap: 36px; }
}

/* ══════════════════════════════════════════════════════════
   TABLET / SMALL DESKTOP (max 968px)
══════════════════════════════════════════════════════════ */
@media (max-width: 968px) {
  /* TOPBAR */
  .topbar-in { flex-direction: column; gap: 4px; text-align: center; font-size: 10px; }
  .topbar { padding: 6px 0; }

  /* NAV */
  .nav-menu { display: none !important; }
  .mob-btn  { display: block !important; }

  /* HERO */
  .hero { padding: 100px 20px 60px !important; min-height: auto !important; }
  .hero-in {
    grid-template-columns: 1fr !important;
    text-align: center;
    gap: 32px;
  }
  .hero-btns { justify-content: center; }
  .hero-desc { margin: 16px auto 24px; }
  .hero-card { max-width: 480px; margin: 0 auto; }
  .hero-glow1, .hero-glow2 { display: none; }
  .float-tag { display: none; }
  .hero-title-top, .hero-title-bottom {
    font-size: clamp(32px, 8vw, 52px) !important;
  }

  /* ABOUT */
  .about-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  .about-img-wrap {
    min-height: 320px !important;
    position: relative !important;
  }
  .about-img-wrap img {
    position: relative !important;
    height: 320px !important;
    width: 100% !important;
  }

  /* STATS */
  .stats-in { grid-template-columns: repeat(2,1fr) !important; gap: 16px !important; }

  /* SERVICES */
  .svc-grid  { grid-template-columns: repeat(2,1fr) !important; }
  .svc-full-grid { grid-template-columns: 1fr !important; }
  .finder-grid { grid-template-columns: repeat(2,1fr) !important; }

  /* WHY */
  .why-grid { grid-template-columns: repeat(2,1fr) !important; }

  /* TESTIMONIALS */
  .test-grid { grid-template-columns: 1fr !important; }

  /* DOCS */
  .docs-grid { grid-template-columns: 1fr !important; }

  /* REGISTER */
  .reg-grid { grid-template-columns: 1fr !important; gap: 28px !important; }

  /* DESTINATIONS */
  .dest-all-grid { grid-template-columns: repeat(3,1fr) !important; }
  .malta-grid    { grid-template-columns: 1fr !important; }

  /* UNIVERSITIES */
  .uni-logo-grid { grid-template-columns: repeat(2,1fr) !important; }

  /* BLOG */
  .blog-layout   { grid-template-columns: 1fr !important; }
  .blog-card     { grid-template-columns: 1fr !important; }
  .blog-img img  { width: 100% !important; height: 200px !important; }

  /* CONTACT */
  .contact-grid     { grid-template-columns: 1fr !important; }
  .contact-strip-in { grid-template-columns: repeat(2,1fr) !important; }

  /* ABOUT PAGE */
  .about-hero-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
  .ceo-wrap { height: 400px !important; }

  /* MVV */
  .mvv-grid { grid-template-columns: 1fr !important; gap: 16px !important; }

  /* COUNTRY GRID */
  .country-grid { grid-template-columns: repeat(3,1fr) !important; }

  /* FOOTER */
  .footer-body   { grid-template-columns: 1fr !important; gap: 28px !important; }
  .footer-bottom { flex-direction: column; text-align: center; gap: 8px !important; }
  .footer-bottom-nav { flex-wrap: wrap; justify-content: center; }
}

/* ══════════════════════════════════════════════════════════
   MOBILE (max 768px)
══════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* SECTION PADDING */
  .sec { padding: 52px 16px !important; }
  .sh { margin-bottom: 28px !important; }
  .sh h2 { font-size: clamp(22px, 6vw, 30px) !important; }

  /* HERO */
  .hero { padding: 90px 16px 48px !important; }
  .hero-title-top, .hero-title-bottom {
    font-size: clamp(28px, 9vw, 44px) !important;
    letter-spacing: -1px !important;
  }
  .hero-jobs span { font-size: 11px; }
  .hero-desc { font-size: 13px !important; }
  .h-stats { grid-template-columns: repeat(3,1fr) !important; }
  .h-stat-n { font-size: 20px !important; }

  /* MARQUEE */
  .marquee { padding: 10px 0; }

  /* GALLERY */
  .g-item { width: 160px !important; height: 160px !important; }

  /* STATS */
  .stat-num { font-size: 32px !important; }
  .stats-row { padding: 36px 16px !important; }

  /* SERVICES */
  .svc-grid  { grid-template-columns: 1fr !important; }
  .finder-grid { grid-template-columns: repeat(2,1fr) !important; }

  /* WHY */
  .why-grid { grid-template-columns: 1fr !important; }
  .why { padding: 52px 16px !important; }

  /* DESTINATIONS */
  .dest-all-grid { grid-template-columns: repeat(2,1fr) !important; gap: 12px !important; }

  /* UNIVERSITIES */
  .uni-logo-grid { grid-template-columns: 1fr !important; }

  /* CONTACT STRIP */
  .contact-strip-in { grid-template-columns: 1fr !important; text-align: center; }

  /* CTA SECTION */
  .cta-sec { padding: 48px 16px !important; }
  .cta-sec h2 { font-size: clamp(18px, 5vw, 26px) !important; }

  /* BLOG */
  .blog-sidebar { order: -1; }

  /* FORM */
  .fr { flex-direction: column !important; gap: 0 !important; }
  .reg-form { padding: 24px 18px !important; }

  /* FOOTER */
  .footer-banner img { height: 200px !important; }
  .footer-logo span { font-size: 16px !important; }
  .footer-col h4 { font-size: 10px; }
  .footer-hours { padding: 14px !important; }
  .fh-row { font-size: 11px; }

  /* COUNTRY GRID */
  .country-grid { grid-template-columns: repeat(2,1fr) !important; }

  /* ABOUT PILLS */
  .about-pills { gap: 6px !important; }
  .about-pill  { font-size: 10px !important; padding: 5px 10px !important; }

  /* PROCESS */
  .timeline::before { left: 22px; }
  .tl-num { width: 44px !important; height: 44px !important; min-width: 44px !important; font-size: 16px !important; }
}

/* ══════════════════════════════════════════════════════════
   SMALL MOBILE (max 600px)
══════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  /* NAV */
  .nav-in { height: 58px !important; padding: 0 14px !important; }
  .nav-logo img { height: 36px !important; }
  .nav-logo-t { font-size: 13px !important; }

  /* HERO */
  .hero { padding: 82px 14px 44px !important; }
  .hero-title-top, .hero-title-bottom {
    font-size: clamp(24px, 10vw, 38px) !important;
  }
  .hero-btns { flex-direction: column; align-items: center; }
  .btn { padding: 12px 22px !important; font-size: 12px !important; width: 100%; justify-content: center; }
  .hero-badge { font-size: 9px; padding: 4px 12px; }
  .avail-badge { font-size: 10px; }
  .h-stats { gap: 6px !important; }
  .h-stat { padding: 10px 4px !important; }
  .h-stat-n { font-size: 18px !important; }
  .h-stat-l { font-size: 8px !important; }

  /* GALLERY */
  .g-item { width: 140px !important; height: 140px !important; }

  /* FINDER CARDS */
  .finder-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .finder-card { padding: 20px 12px !important; }
  .finder-icon img { width: 52px !important; height: 52px !important; }

  /* SVC CARDS */
  .svc { padding: 26px 18px !important; }
  .svc-icon { width: 64px !important; height: 64px !important; }

  /* DESTINATIONS */
  .dest-all-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .dest-item-img { height: 110px !important; }

  /* BLOG */
  .blog-card { margin-bottom: 16px !important; }
  .sb-box { padding: 16px !important; }

  /* CONTACT FORM */
  .cform-box { padding: 22px 14px !important; }

  /* PAGE HERO */
  .page-hero { padding: 96px 16px 52px !important; }
  .page-hero h1 { font-size: clamp(22px, 8vw, 36px) !important; }

  /* FOOTER */
  .footer-body { padding: 32px 16px 0 !important; }
  .footer-bottom { padding: 16px !important; }
  .footer-logo img { height: 40px !important; }

  /* STATS */
  .stats-in { grid-template-columns: repeat(2,1fr) !important; gap: 10px !important; }
  .stat-num { font-size: 28px !important; }

  /* WORK ITEMS (destinations list) */
  .work-item { padding: 16px 0 !important; }
  .wi-title { font-size: clamp(16px, 5vw, 22px) !important; }
}

/* ══════════════════════════════════════════════════════════
   VERY SMALL (max 400px)
══════════════════════════════════════════════════════════ */
@media (max-width: 400px) {
  body { font-size: 13px; }
  .sec { padding: 44px 12px !important; }
  .hero-title-top, .hero-title-bottom {
    font-size: clamp(22px, 11vw, 32px) !important;
    letter-spacing: -0.5px !important;
  }
  .dest-all-grid { grid-template-columns: 1fr !important; }
  .finder-grid   { grid-template-columns: 1fr 1fr !important; }
  .stats-in      { grid-template-columns: 1fr 1fr !important; }
  .country-grid  { grid-template-columns: repeat(2,1fr) !important; }
  .why-card      { padding: 20px 14px !important; }
  .hero-jobs span { font-size: 10px; }
  .topbar { display: none; } /* hide topbar on very small */
}

/* ══════════════════════════════════════════════════════════
   TOUCH / HOVER — disable hover effects on touch
══════════════════════════════════════════════════════════ */
@media (hover: none) {
  .custom-cursor, .cursor-dot { display: none !important; }
  .svc:hover { transform: none !important; }
  .work-item:hover { padding-left: 0 !important; }
}

/* ══════════════════════════════════════════════════════════
   OVERFLOW PROTECTION — prevent horizontal scroll
══════════════════════════════════════════════════════════ */
html, body { overflow-x: hidden; max-width: 100vw; }
.hero, .marquee, .gallery, .stats-row, .why { overflow: hidden; }
img { max-width: 100%; }

/* ══════════════════════════════════════════════════════════
   TOUCH SCROLL — smooth on iOS
══════════════════════════════════════════════════════════ */
* { -webkit-tap-highlight-color: transparent; }
input, select, textarea, button {
  font-size: 16px !important; /* prevents iOS zoom on focus */
}

/* ══════════════════════════════════════════════════════════
   TITLE TEXT ANIMATIONS
══════════════════════════════════════════════════════════ */
/* Section h2 fly up */
.sh h2 {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1) .1s,
              transform .8s cubic-bezier(.16,1,.3,1) .1s;
}
.sh.aos-animate h2 {
  opacity: 1 !important;
  transform: none !important;
}
/* Section tag slide in */
.sh .tag {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s ease, transform .6s cubic-bezier(.16,1,.3,1);
}
.sh.aos-animate .tag {
  opacity: 1 !important;
  transform: none !important;
}
/* Section paragraph */
.sh p {
  opacity: 0;
  transition: opacity .6s ease .25s;
}
.sh.aos-animate p {
  opacity: 1 !important;
}

/* Work item h2 text reveal on scroll */
.wi-title {
  overflow: hidden;
  display: block;
}

/* CTA h2 */
.cta-sec h2 {
  opacity: 0;
  transform: translateY(22px);
  animation: none;
  transition: opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
}
.cta-sec[data-aos="zoom-in"].aos-animate h2 {
  opacity: 1 !important;
  transform: none !important;
}

/* Stats numbers — scale in */
.stat-num {
  opacity: 0;
  transform: scale(.7);
  transition: opacity .6s cubic-bezier(.16,1,.3,1),
              transform .6s cubic-bezier(.16,1,.3,1);
}
.stat-item.aos-animate .stat-num,
.stat-item.show .stat-num {
  opacity: 1 !important;
  transform: none !important;
}

/* About h3 title — char by char */
.about-text h2, .about-text h3,
section[id="about"] h3 {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1),
              transform .8s cubic-bezier(.16,1,.3,1);
}
[data-aos="fade-right"].aos-animate .about-text h2,
[data-aos="fade-right"].aos-animate h3,
section h3[data-aos="fade-right"].aos-animate,
div[data-aos="fade-right"].aos-animate h3 {
  opacity: 1 !important;
  transform: none !important;
}

/* Footer h4 */
.footer-col h4 {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .5s ease .1s, transform .5s ease .1s;
}
footer:hover .footer-col h4 { opacity: 1; transform: none; }
/* Always visible in footer */
.footer-col h4 { opacity: 1 !important; transform: none !important; }
