/* =========================================================
   SAHYOG — Design Tokens v3
   Palette: Royal Blue + Red + White (matches brand ask)
   NOTE: variable NAMES kept from v2 (--teal-*, --terracotta, --gold)
   so every existing inline reference across pages still works —
   only the color VALUES changed.
   ========================================================= */
:root{
  --teal-900:#0d1b5e;   /* deep royal blue */
  --teal-800:#142876;
  --teal-700:#1c3494;
  --teal-600:#2743b8;

  --terracotta:#d81e2c;       /* red */
  --terracotta-light:#ef4a56;

  --gold:#3f5fe0;              /* accent blue, replaces gold accent */
  --gold-light:#b9c6fb;

  --cream:#f5f6fb;
  --ink:#1c1d22;
  --slate:#5b5f6b;
  --white:#ffffff;

  --font-display:'Fraunces', 'Playfair Display', Georgia, serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --radius-lg:22px;
  --radius-md:14px;
  --radius-sm:8px;
  --shadow-soft:0 24px 55px -22px rgba(13,27,94,0.35);
  --shadow-tight:0 8px 22px -10px rgba(13,27,94,0.28);
}

*{box-sizing:border-box;}
:root,html{scroll-behavior:auto !important;}   /* beats Bootstrap's :root{scroll-behavior:smooth};
   smooth scrolling is asked for per click in main.js */
body{
  font-family:var(--font-body); color:var(--ink); background:var(--cream); overflow-x:hidden;
  background-image:radial-gradient(rgba(13,27,94,0.045) 1.4px, transparent 1.4px);
  background-size:26px 26px;
}
h1,h2,h3,h4,.font-display{font-family:var(--font-display);}
a{text-decoration:none;}
:focus-visible{outline:3px solid var(--terracotta); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}}

/* ---------- Section heading system ---------- */
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; color:var(--terracotta); font-weight:700; margin-bottom:.75rem;}
.eyebrow::before{content:""; width:26px; height:2px; background:var(--terracotta); display:inline-block;}
.eyebrow.light{color:#ffb3b8;}
.section-title{font-size:clamp(1.8rem, 3vw, 2.6rem); color:var(--teal-900); font-weight:700; margin-bottom:.6rem;}
.section-title-lg{font-size:clamp(2.2rem, 4.2vw, 3.4rem); color:var(--teal-900); font-weight:800; margin-bottom:.6rem; letter-spacing:-.01em;}
.section-sub{color:var(--slate); max-width:640px; margin-bottom:2.5rem; font-size:1.05rem;}
.section{padding:5.5rem 0;}
.section-dark{background:var(--teal-900); color:var(--white);}
.section-dark .section-title, .section-dark .section-title-lg{color:var(--white);}
.section-dark .section-sub{color:#c7cdf0;}

/* ---------- Navbar (logo on LEFT — see the override block at the
     end of this file, which sets the flex order) ---------- */
.navbar-sahyog{background:linear-gradient(90deg, var(--teal-900), var(--teal-800) 60%, var(--teal-900)); backdrop-filter:blur(10px); padding:.7rem 0; transition:padding .25s ease, background .25s ease; overflow:visible; border-bottom:3px solid var(--terracotta);}
.navbar-sahyog.scrolled{padding:.4rem 0; box-shadow:var(--shadow-tight);}
.navbar-sahyog .container{display:flex; align-items:center; flex-wrap:wrap; overflow:visible;}
.navbar-sahyog .navbar-brand{padding:0; margin:0 0 0 auto; order:3; display:flex; align-items:center;}
.navbar-sahyog .navbar-brand img{height:76px; width:auto; background:#fff; border-radius:12px; padding:4px; transition:height .25s ease; display:block; box-shadow:0 4px 14px rgba(0,0,0,0.25);}
.navbar-sahyog.scrolled .navbar-brand img{height:58px;}
.navbar-sahyog .navbar-toggler{order:2; margin-left:auto;}
.navbar-sahyog .navbar-collapse{order:1;}
@media (min-width: 992px){
  .navbar-sahyog .navbar-collapse{order:1; flex-grow:0; margin-right:2rem;}
  .navbar-sahyog .navbar-brand{order:2; margin-left:0;}
}
@media (max-width: 991px){
  .navbar-sahyog .navbar-brand img{height:58px;}
}
.navbar-sahyog .nav-link{
  display:inline-flex; align-items:center; gap:.5rem; color:#dfe3f5 !important; font-weight:600; font-size:.92rem;
  position:relative; margin:0 .2rem; padding:.55rem 1rem !important; border-radius:10px;
  transition:background .2s ease, color .2s ease;
}
.navbar-sahyog .nav-icon{font-size:1rem; width:18px; text-align:center; color:var(--gold-light); transition:color .2s ease;}
.navbar-sahyog .nav-link:hover{background:rgba(255,255,255,.08); color:#ffffff !important;}
.navbar-sahyog .nav-link.active{background:rgba(255,255,255,.14); color:#ffffff !important; box-shadow:inset 0 -3px 0 var(--terracotta);}
.navbar-sahyog .nav-link.active .nav-icon{color:#ffffff;}
.navbar-sahyog .nav-link .fa-arrow-up-right-from-square{font-size:.65rem; margin-left:2px; opacity:.65;}

.btn-gold{background:linear-gradient(135deg, var(--terracotta), var(--terracotta-light)); color:var(--white); font-weight:700; border:none; border-radius:999px; padding:.65rem 1.6rem; box-shadow:var(--shadow-tight); transition:transform .2s ease, box-shadow .2s ease;}
.btn-gold:hover{transform:translateY(-2px); box-shadow:0 14px 26px -10px rgba(216,30,44,0.5); color:var(--white);}
.btn-terracotta{background:var(--terracotta); color:var(--white); font-weight:700; border:none; border-radius:999px; padding:.65rem 1.6rem; transition:transform .2s ease, background .2s ease;}
.btn-terracotta:hover{background:var(--terracotta-light); transform:translateY(-2px); color:var(--white);}
.btn-outline-teal{border:2px solid var(--teal-800); color:var(--teal-800); font-weight:700; border-radius:999px; padding:.6rem 1.5rem; background:transparent; transition:all .2s ease;}
.btn-outline-teal:hover{background:var(--teal-800); color:var(--white);}
.btn-outline-light-custom{border:2px solid rgba(255,255,255,.5); color:#fff; font-weight:700; border-radius:999px; padding:.6rem 1.5rem; background:transparent; transition:all .2s ease;}
.btn-outline-light-custom:hover{background:rgba(255,255,255,.12); color:#fff; border-color:#fff;}

/* ---------- Blinking attention buttons ---------- */
@keyframes btnBlink{
  0%, 100%{box-shadow:0 0 0 0 rgba(216,30,44,0.55);}
  50%{box-shadow:0 0 0 10px rgba(216,30,44,0);}
}
.btn-blink{animation:btnBlink 1.6s ease-in-out infinite;}

/* ---------- Offers button: cloud-glow + cracked starburst, blinking ---------- */
.btn-offers-wrap{position:relative; display:inline-block; z-index:1;}
.btn-offers-wrap::before{
  content:"";
  position:absolute;
  inset:-14px;
  background:radial-gradient(circle, rgba(224,168,63,0.55), rgba(216,30,44,0.25) 55%, transparent 75%);
  clip-path:polygon(50% 0%, 61% 18%, 80% 8%, 78% 29%, 100% 32%, 87% 48%, 100% 64%, 78% 68%, 80% 90%, 61% 79%, 50% 100%, 39% 79%, 20% 90%, 22% 68%, 0% 64%, 13% 48%, 0% 32%, 22% 29%, 20% 8%, 39% 18%);
  z-index:-1;
  animation:burstPulse 1.7s ease-in-out infinite;
  pointer-events:none;
}
@keyframes burstPulse{
  0%, 100%{opacity:.45; transform:scale(0.88) rotate(0deg);}
  50%{opacity:1; transform:scale(1.08) rotate(4deg);}
}
.btn-offers-wrap .btn{position:relative; z-index:2;}
@keyframes textBlink{
  0%, 100%{opacity:1;}
  50%{opacity:.45;}
}
.pillar-link.highlight-link{animation:textBlink 1.5s ease-in-out infinite; color:var(--teal-700); font-weight:800;}

/* ---------- BANNER (scrolling hero replacement) ---------- */
.banner-carousel{margin-top:0;}
.banner-carousel .carousel-item{height:80vh; min-height:560px; max-height:720px; position:relative;}
.banner-carousel .carousel-item img{width:100%; height:100%; object-fit:cover; filter:brightness(0.5);}
.banner-carousel .banner-caption{position:absolute; inset:0; display:flex; align-items:center; padding-bottom:3.5rem;}
.banner-carousel .banner-caption .container{color:#fff;}
.banner-carousel .banner-caption p.tagline{color:#ffb3b8; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.85rem;}
.banner-carousel .banner-caption h1{font-size:clamp(1.9rem,4.2vw,3.2rem); font-weight:800; max-width:700px; line-height:1.2;}
.banner-carousel .banner-caption p.lead-text{color:#e7e9ff; max-width:560px; font-size:1.05rem;}
.banner-carousel .carousel-indicators{margin-bottom:1.2rem; z-index:3;}
.banner-carousel .carousel-indicators [data-bs-target]{background-color:var(--terracotta); width:10px; height:10px; border-radius:50%;}
.banner-carousel .carousel-control-prev, .banner-carousel .carousel-control-next{width:6%;}
.banner-carousel .carousel-control-prev-icon, .banner-carousel .carousel-control-next-icon{background-color:rgba(216,30,44,0.85); border-radius:50%; padding:1.3rem; background-size:50%;}
@media (max-width: 767px){
  .banner-carousel .carousel-item{height:auto; min-height:620px;}
  .banner-carousel .banner-caption{padding-bottom:2.5rem; padding-top:2rem;}
}

/* ---------- Stats trust bar (floats over banner) ---------- */
.stats-float-wrap{position:relative; margin-top:-42px; z-index:6; margin-bottom:3.5rem;}
.stats-float-card{
  background:var(--white); border-radius:18px; box-shadow:var(--shadow-soft);
  display:flex; align-items:stretch; overflow:hidden; flex-wrap:wrap;
}
.stat-tile{
  flex:1 1 0; min-width:220px; display:flex; align-items:center; gap:1rem;
  padding:1.4rem 1.2rem; border-right:1px solid rgba(13,27,94,0.08);
}
.stat-tile:last-child{border-right:none;}
.stat-tile-icon{
  width:52px; height:52px; min-width:52px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--teal-800), var(--teal-600)); color:var(--gold-light); font-size:1.3rem;
}
.stat-tile-text .stat-number{
  font-family:var(--font-display); font-weight:700; font-size:1.6rem; color:var(--teal-900); line-height:1.1;
}
.stat-tile-label{color:var(--slate); font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em;}
@media (max-width: 767px){
  .stats-float-wrap{margin-top:-24px;}
  .stats-float-card{border-radius:14px;}
  .stat-tile{min-width:50%; padding:1rem .8rem; border-bottom:1px solid rgba(13,27,94,0.08);}
  .stat-tile-icon{width:42px; height:42px; min-width:42px; font-size:1.05rem;}
  .stat-tile-text .stat-number{font-size:1.25rem;}
}

/* ---------- Pillar / Service cards ---------- */
.pillar-card{background:var(--white); border-radius:var(--radius-lg); padding:2.4rem 2rem; box-shadow:var(--shadow-tight); border:1px solid rgba(13,27,94,0.06); height:100%; transition:transform .3s ease, box-shadow .3s ease; position:relative; overflow:hidden;}
.pillar-card::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg, var(--terracotta), var(--teal-700)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease;}
.pillar-card:hover::before, .pillar-card.open::before{transform:scaleX(1);}
.pillar-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-soft);}
.pillar-card .pillar-media{width:100%; height:170px; border-radius:var(--radius-md); overflow:hidden; margin-bottom:1.2rem; position:relative;}
.pillar-trust{
  position:absolute; bottom:.6rem; left:.6rem; background:rgba(13,27,94,0.85); color:#fff; font-size:.72rem; font-weight:700;
  padding:.3rem .7rem; border-radius:999px; backdrop-filter:blur(3px);
}
.pillar-trust i{color:var(--gold-light); margin-right:.3rem;}
.pillar-card .pillar-media img{width:100%; height:100%; object-fit:cover;}

/* ---------- Highlighted "Our Services" section ---------- */
.services-highlight{position:relative; border:2px solid var(--teal-700); border-radius:var(--radius-lg); background:linear-gradient(180deg, #eef1ff, var(--cream) 40%); padding:3rem 0;}
.services-highlight::before{content:"OUR CORE OFFERING"; position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--terracotta); color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.1em; padding:.35rem 1.2rem; border-radius:999px;}

/* ---------- Blog section ---------- */
.blog-card{background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-tight); transition:transform .3s ease, box-shadow .3s ease; height:100%; display:flex; flex-direction:column;}
.blog-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-soft);}
.blog-image-wrap{position:relative; overflow:hidden; height:180px; cursor:pointer;}
.blog-image-wrap img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.blog-image-wrap:hover img{transform:scale(1.06);}
.blog-hover-desc{
  position:absolute; inset:0; display:flex; align-items:center;
  background:linear-gradient(180deg, rgba(13,27,94,0.25), rgba(13,27,94,0.94));
  padding:1.2rem; opacity:0; transition:opacity .3s ease;
}
.blog-hover-desc p{color:#fff; font-size:.85rem; line-height:1.5; margin:0;}
.blog-image-wrap:hover .blog-hover-desc{opacity:1;}
.blog-card .blog-body{padding:1.4rem; display:flex; flex-direction:column; flex-grow:1;}
.blog-card .blog-tag{color:var(--terracotta); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:.5rem;}
.blog-card h5{color:var(--teal-900); font-weight:700; font-size:1.05rem; margin-bottom:0;}
.blog-card .blog-link{color:var(--terracotta); font-weight:700; font-size:.85rem; margin-top:.8rem;}

/* Detailed blog variant: full description always visible, no hover-hide */
.blog-card-detailed img{width:100%; height:200px; object-fit:cover;}
.blog-card-detailed .blog-body p{color:var(--slate); font-size:.9rem; line-height:1.6; margin-top:.6rem; margin-bottom:0;}

/* ---------- Country card (photo, not blue banner) ---------- */
.country-card{background:var(--white); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-tight); transition:transform .3s ease, box-shadow .3s ease; height:100%; cursor:pointer;}
.country-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-soft);}
.country-card .country-media{position:relative; height:150px; overflow:hidden;}
.country-card .country-media img{width:100%; height:100%; object-fit:cover;}
.country-card .country-media .flag-emoji{position:absolute; bottom:8px; right:10px; font-size:1.8rem; filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));}
.country-card .body{padding:1.2rem; text-align:center;}
.country-card h5{color:var(--teal-900); font-weight:700; margin-bottom:.2rem;}
.country-card .price-tag{color:var(--terracotta); font-weight:700; font-size:.95rem; margin-bottom:.8rem; display:block;}
.country-card .btn-row{display:flex; flex-direction:column; gap:.5rem;}

/* ---------- Itinerary modal package rows ---------- */
.itinerary-package-row{
  padding:1.1rem 1.2rem; border:1px solid rgba(13,27,94,0.1); border-radius:var(--radius-md); margin-bottom:.9rem;
  background:var(--cream);
}
.itinerary-package-row:last-child{margin-bottom:0;}
.itinerary-package-info h6{color:var(--teal-900); font-weight:700; margin-bottom:.2rem; font-size:1.02rem;}
.itinerary-duration{color:var(--terracotta); font-size:.8rem; font-weight:600;}
.itinerary-desc{color:var(--slate); font-size:.87rem; line-height:1.5; margin:.5rem 0 0;}
.itinerary-package-actions{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.9rem;}
.pillar-icon{width:64px; height:64px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--teal-800), var(--teal-600)); color:#ff9da4; font-size:1.6rem; margin-bottom:1.2rem;}
.pillar-card h3{color:var(--teal-900); font-size:1.4rem; margin-bottom:.6rem;}
.pillar-card p{color:var(--slate); font-size:.95rem;}
.pillar-link{color:var(--terracotta); font-weight:700; font-size:.9rem; background:none; border:none; padding:0; cursor:pointer;}
.pillar-link::after{content:" \2192"; transition:margin .2s ease, transform .2s ease; display:inline-block;}
.pillar-link:hover::after{margin-left:4px;}
.pillar-link[aria-expanded="true"]::after{content:" \2191";}

/* ---------- Expandable service detail panel ---------- */
.service-detail-panel{background:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); padding:2.5rem; margin-top:1.5rem; border-top:4px solid var(--terracotta);}
.sub-service-card{display:flex; gap:1rem; background:var(--cream); border-radius:var(--radius-md); padding:1.2rem; height:100%; transition:transform .2s ease;}
.sub-service-card:hover{transform:translateY(-4px);}
.sub-service-card img{width:64px; height:64px; border-radius:12px; object-fit:cover; flex-shrink:0;}
.sub-service-card .icon-fallback{width:64px; height:64px; border-radius:12px; background:linear-gradient(135deg, var(--teal-800), var(--teal-600)); color:#ff9da4; display:flex; align-items:center; justify-content:center; font-size:1.4rem; flex-shrink:0;}
.sub-service-card h5{font-size:.98rem; color:var(--teal-900); font-weight:700; margin-bottom:.3rem;}
.sub-service-card p{font-size:.85rem; color:var(--slate); margin-bottom:0;}

/* ---------- Badge / certification cards ---------- */
.badge-card{background:var(--white); border-radius:var(--radius-md); padding:1.8rem; text-align:center; height:100%; border:1px solid rgba(13,27,94,0.06); box-shadow:var(--shadow-tight); transition:transform .3s ease;}
.badge-card:hover{transform:translateY(-6px);}
.badge-card .badge-icon{width:70px; height:70px; border-radius:50%; background:linear-gradient(135deg, var(--terracotta), var(--terracotta-light)); color:var(--white); display:flex; align-items:center; justify-content:center; font-size:1.6rem; margin:0 auto 1rem;}
.badge-card .badge-icon.blue-icon{background:linear-gradient(135deg, var(--teal-700), var(--gold));}
.badge-card h4{font-size:1.05rem; color:var(--teal-900); margin-bottom:.5rem;}
.badge-card p{color:var(--slate); font-size:.88rem; margin-bottom:0;}

/* ---------- About ---------- */
.about-media{position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); margin-bottom:1.2rem;}
.about-media img{width:100%; display:block;}
.about-badge-float{position:absolute; bottom:-1.2rem; right:-1.2rem; background:var(--white); border-radius:var(--radius-md); padding:1.2rem 1.5rem; box-shadow:var(--shadow-soft); text-align:center;}
.about-badge-float .num{font-family:var(--font-display); color:var(--terracotta); font-weight:700; font-size:1.6rem;}
.about-badge-float .lbl{font-size:.75rem; color:var(--slate); text-transform:uppercase; letter-spacing:.06em;}
.about-badge-float-secondary{left:-1rem; right:auto; bottom:auto; top:1.2rem; background:var(--teal-900);}
.about-badge-float-secondary .num{color:var(--gold-light);}
.about-badge-float-secondary .lbl{color:#c7cdf0;}
.about-feature-list{display:grid; grid-template-columns:1fr 1fr; gap:.7rem;}
.about-feature-item{display:flex; align-items:center; gap:.6rem; font-size:.9rem; font-weight:600; color:var(--teal-900);}
.about-feature-item i{color:var(--terracotta); font-size:1rem;}
@media (max-width: 575px){.about-feature-list{grid-template-columns:1fr;}}

/* ---------- Video block ---------- */
.video-frame{position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); aspect-ratio:16/9; background:var(--teal-800); cursor:pointer;}
.story-video-frame{border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); aspect-ratio:16/9; background:#000;}
.story-video-frame video{width:100%; height:100%; object-fit:cover; display:block;}
.video-frame img{width:100%; height:100%; object-fit:cover; opacity:.75;}
.video-frame .play-btn{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.video-frame .play-btn span{width:78px; height:78px; border-radius:50%; background:var(--terracotta); display:flex; align-items:center; justify-content:center; color:var(--white); font-size:1.6rem; box-shadow:0 0 0 0 rgba(216,30,44,0.5); animation:pulse 2.4s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(216,30,44,.45);} 70%{box-shadow:0 0 0 22px rgba(216,30,44,0);} 100%{box-shadow:0 0 0 0 rgba(216,30,44,0);}}
.video-frame iframe{width:100%; height:100%; border:0;}
.video-fallback-link{position:absolute; bottom:8px; left:50%; transform:translateX(-50%); background:rgba(0,0,0,0.75); color:#fff; font-size:.75rem; padding:.35rem .8rem; border-radius:999px; z-index:2;}
.video-fallback-link i{color:#ff0000; margin-right:.3rem;}

/* Testimonial video card: fixed, consistent height */
.testimonial-card.testimonial-video-card{display:flex; flex-direction:column; height:100%;}
.testimonial-video-wrap{border-radius:var(--radius-md) var(--radius-md) 0 0; overflow:hidden; width:100%; height:260px; background:#000; flex-shrink:0;}
.testimonial-video-wrap .video-frame{width:100%; height:100%; aspect-ratio:auto;}
.testimonial-video-wrap .video-frame img{width:100%; height:100%; object-fit:cover;}
.testimonial-video-wrap .video-frame iframe{width:100%; height:100%;}
.testimonial-video-card .video-caption{padding:1.1rem 1.4rem; flex-grow:1; display:flex; flex-direction:column; justify-content:center;}
@media (max-width: 767px){.testimonial-video-wrap{height:320px;}}

/* ---------- Testimonials ---------- */
.testimonial-card{background:var(--white); border-radius:var(--radius-lg); padding:2rem; box-shadow:var(--shadow-tight); height:100%;}
.testimonial-card .quote-mark{font-family:var(--font-display); font-size:3rem; color:var(--terracotta); line-height:0.5; display:block; margin-bottom:1rem;}
.testimonial-card p.quote-text{color:var(--ink); font-style:italic; font-size:.96rem;}
.testimonial-name{color:var(--teal-900); font-weight:700; margin-bottom:0; margin-top:1rem;}
.testimonial-role{color:var(--slate); font-size:.85rem;}
#testimonialCarousel .carousel-control-prev, #testimonialCarousel .carousel-control-next{width:44px; height:44px; background:var(--teal-900); border-radius:50%; top:50%; transform:translateY(-50%); opacity:.85;}
#testimonialCarousel .carousel-control-prev{left:-10px;}
#testimonialCarousel .carousel-control-next{right:-10px;}

/* ---------- Single combined video + review testimonial card ---------- */
.testimonials-badge{
  display:inline-flex; align-items:center; background:var(--white); border:1px solid rgba(13,27,94,0.12);
  border-radius:999px; padding:.5rem 1.2rem; font-weight:700; font-size:.9rem; color:var(--teal-800);
  box-shadow:var(--shadow-tight);
}
.testimonial-single-card{
  display:flex; align-items:stretch; background:var(--white); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft); overflow:hidden; max-width:680px; margin:0 auto; min-height:auto;
}
.testimonial-single-video{width:38%; flex-shrink:0; background:#000; max-height:320px;}
.testimonial-single-video video{width:100%; height:100%; object-fit:cover; display:block; background:#000;}
.testimonial-single-review{flex-grow:1; padding:1.8rem; display:flex; flex-direction:column; justify-content:center;}
.testimonial-single-review .quote-mark{font-family:var(--font-display); font-size:2.6rem; color:var(--terracotta); line-height:.4; display:block; margin-bottom:.9rem;}
.testimonial-single-review .quote-text{color:var(--ink); font-style:italic; font-size:.95rem; line-height:1.55;}
.testimonial-single-review .testimonial-name{color:var(--teal-900); font-weight:700; font-size:1rem; margin-top:1rem;}
.testimonial-single-review .testimonial-role{color:var(--slate); font-size:.85rem;}
.testimonial-single-card.testimonial-single-text-only{min-height:auto;}
.testimonial-single-card.testimonial-single-text-only .testimonial-single-review{padding:2.2rem 2.6rem; text-align:center; align-items:center;}
@media (max-width: 767px){
  .testimonial-single-card{flex-direction:column; min-height:auto;}
  .testimonial-single-video{width:100%; height:200px; max-height:none;}
  .testimonial-single-review{padding:1.5rem;}
}

/* ---------- FAQ / Questions Accordion ---------- */
.accordion-sahyog .accordion-button{font-family:var(--font-display); font-weight:700; color:var(--teal-900); background:var(--white); box-shadow:none;}
.accordion-sahyog .accordion-button:not(.collapsed){color:var(--terracotta); background:var(--cream);}
.accordion-sahyog .accordion-button::after{filter:invert(21%) sepia(80%) saturate(3000%) hue-rotate(340deg);}
.accordion-sahyog .accordion-item{border:1px solid rgba(13,27,94,0.08); border-radius:var(--radius-sm) !important; margin-bottom:.75rem; overflow:hidden;}

/* ---------- Offers section ---------- */
.offer-card{
  border-radius:var(--radius-lg); overflow:hidden; position:relative; color:#fff; min-height:280px;
  display:flex; flex-direction:column; justify-content:flex-end; padding:1.8rem; box-shadow:var(--shadow-soft);
  background-size:cover; background-position:center; transition:transform .3s ease, box-shadow .3s ease;
}
.offer-card:hover{transform:translateY(-6px); box-shadow:0 30px 60px -20px rgba(13,27,94,0.45);}
.offer-card::before{content:""; position:absolute; inset:0; z-index:0;}
.offer-card.offer-diwali::before{background:linear-gradient(180deg, rgba(179,20,31,0.35), rgba(179,20,31,0.6) 55%, rgba(15,10,10,0.9));}
.offer-card.offer-newyear::before{background:linear-gradient(180deg, rgba(13,27,94,0.35), rgba(13,27,94,0.65) 55%, rgba(5,10,35,0.92));}
.offer-card.offer-free::before{background:linear-gradient(180deg, rgba(20,40,118,0.35), rgba(20,40,118,0.65) 55%, rgba(5,10,45,0.92));}
.offer-card > *{position:relative; z-index:1;}
.offer-ribbon{
  position:absolute; top:1.2rem; right:-2.4rem; z-index:2; background:var(--gold); color:var(--teal-900);
  font-weight:800; font-size:.8rem; padding:.35rem 3rem; transform:rotate(40deg); box-shadow:0 4px 10px rgba(0,0,0,.25);
}
.offer-badge{display:inline-block; background:rgba(255,255,255,0.2); border:1px solid rgba(255,255,255,0.4); padding:.25rem .8rem; border-radius:999px; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.8rem; width:fit-content; backdrop-filter:blur(4px);}
.offer-card h4{font-family:var(--font-display); font-weight:700; font-size:1.4rem; margin-bottom:.4rem;}
.offer-card p{font-size:.9rem; opacity:.92; margin-bottom:1rem;}

/* ---------- Floating WhatsApp / Call buttons ---------- */
.floating-contact{position:fixed; right:20px; bottom:24px; z-index:1050; display:flex; flex-direction:column; gap:.7rem; align-items:flex-end;}
.floating-contact a{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.4rem; box-shadow:0 10px 24px -6px rgba(0,0,0,0.4); transition:transform .2s ease;
}
.floating-contact a:hover{transform:scale(1.08); color:#fff;}
.floating-contact .fc-whatsapp{background:#25d366;}
.floating-contact .fc-call{background:var(--terracotta);}
.floating-contact .fc-label{position:absolute; right:66px; background:var(--teal-900); color:#fff; font-size:.75rem; padding:.35rem .7rem; border-radius:6px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s ease;}
.floating-contact a:hover .fc-label{opacity:1;}

/* ---------- Footer ---------- */
.footer-sahyog{background:var(--teal-900); color:#c7cdf0; padding:4rem 0 1.5rem;}
.footer-sahyog h5{color:var(--white); font-family:var(--font-display); margin-bottom:1.1rem;}
.footer-sahyog a{color:#c7cdf0; transition:color .2s ease;}
.footer-sahyog a:hover{color:#ff9da4;}
.footer-sahyog .social-icon{width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,0.25); display:inline-flex; align-items:center; justify-content:center; margin-right:.5rem; transition:background .2s ease, border-color .2s ease;}
.footer-sahyog .social-icon:hover{background:var(--terracotta); border-color:var(--terracotta);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1); margin-top:2.5rem; padding-top:1.5rem; font-size:.85rem; text-align:center; color:#8f9adf;}
.footer-logo img{height:60px; background:#fff; border-radius:10px; padding:4px;}

/* ---------- Booking page ---------- */
.breadcrumb-trail{display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:#c7cdf0; margin-bottom:1.2rem;}
.breadcrumb-trail a{color:#c7cdf0; opacity:.85; transition:opacity .2s ease;}
.breadcrumb-trail a:hover{opacity:1; color:#fff;}
.breadcrumb-trail i{font-size:.6rem; opacity:.6;}
.breadcrumb-trail span{color:var(--gold-light); font-weight:600;}
.booking-hero{background:linear-gradient(135deg, var(--teal-900), var(--teal-700)); color:var(--white); padding:8rem 0 4rem; position:relative; overflow:hidden;}
.booking-hero::after{content:""; position:absolute; right:-60px; bottom:-60px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, rgba(216,30,44,0.3), transparent 70%);}
.booking-card{background:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft); overflow:hidden;}
.booking-card .calendar-side{background:var(--cream); padding:2rem;}
.booking-card .form-side{padding:2.5rem;}
.slot-btn{border:2px solid rgba(13,27,94,0.15); border-radius:999px; padding:.5rem 1.1rem; background:var(--white); font-weight:600; font-size:.85rem; color:var(--teal-800); cursor:pointer; transition:all .2s ease;}
.slot-btn.active, .slot-btn:hover{background:var(--teal-900); color:var(--white); border-color:var(--teal-900);}
.form-control:focus, .form-select:focus{border-color:var(--terracotta); box-shadow:0 0 0 .2rem rgba(216,30,44,0.2);}
.flatpickr-day.selected{background:var(--terracotta) !important; border-color:var(--terracotta) !important;}
.flatpickr-day.today{border-color:var(--terracotta) !important;}
.flatpickr-calendar{box-shadow:var(--shadow-soft) !important; border-radius:var(--radius-md) !important;}
.flatpickr-current-month .flatpickr-monthDropdown-months, .flatpickr-current-month input.cur-year{color:var(--teal-900) !important;}
.form-alert{border-radius:var(--radius-sm); font-size:.9rem;}

/* ---------- Contact info items ---------- */
.contact-info-item{display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.4rem;}
.contact-info-item .icon-circle{width:48px; height:48px; min-width:48px; border-radius:50%; background:linear-gradient(135deg, var(--teal-800), var(--teal-600)); color:#ff9da4; display:flex; align-items:center; justify-content:center; font-size:1.1rem;}

/* ---------- Process steps ---------- */
.process-step{text-align:center; padding:1.5rem;}
.process-step .step-num{width:56px; height:56px; border-radius:50%; background:var(--terracotta); color:var(--white); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:1.3rem; margin:0 auto 1rem;}

/* ---------- External link cards ---------- */
.external-pillar{position:relative; overflow:hidden;}
.external-pillar .go-badge{position:absolute; top:1.2rem; right:1.2rem; background:var(--terracotta); color:var(--white); font-size:.7rem; font-weight:700; padding:.25rem .6rem; border-radius:999px;}

/* ---------- Mobile menu polish ---------- */
.navbar-toggler{border:none; padding:.25rem .5rem;}
.navbar-toggler:focus{box-shadow:none;}
@media (max-width: 991px){
  .navbar-collapse{background:var(--teal-900); margin-top:1rem; border-radius:var(--radius-md); padding:1.2rem; order:1; width:100%;}
  .navbar-sahyog .nav-link{margin:.3rem 0;}
  .navbar-sahyog .container{justify-content:space-between;}
}
body.menu-open{overflow:hidden;}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in-view{opacity:1; transform:translateY(0);}

/* ---------- Utility ---------- */
.text-terracotta{color:var(--terracotta) !important;}
.text-gold{color:var(--terracotta) !important;}
.bg-cream{background:var(--cream) !important;}

/* =========================================================
   SAHYOG — v5 MOTION & POLISH LAYER
   Layered on top of everything above. No markup was changed
   to add this: every hook below is either an existing class
   or a class that assets/js/main.js attaches at runtime.
   The global prefers-reduced-motion rule near the top of this
   file still wins over all of it, so this stays accessible.
   ========================================================= */

/* ---------- 1. Reading-progress bar (injected by main.js) ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; z-index:2000;
  height:3px; width:100%;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg, var(--terracotta), var(--gold), var(--terracotta-light));
  box-shadow:0 0 12px rgba(216,30,44,.55);
  will-change:transform; pointer-events:none;
}

/* ---------- 2. Reveal system, extended ---------- */
.reveal{
  opacity:0; transform:translateY(30px);
  transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1), filter .8s ease;
  transition-delay:var(--reveal-delay, 0ms);
  will-change:opacity, transform;
}
.reveal-left{transform:translateX(-40px);}
.reveal-right{transform:translateX(40px);}
.reveal-zoom{transform:scale(.93);}
.reveal-soft{transform:translateY(18px); filter:blur(6px);}
.reveal.in-view{opacity:1; transform:none; filter:none;}
.reveal.settled{will-change:auto;}

/* ---------- 3. Hero banner: Ken Burns + richer scrim + caption entrance ---------- */
.banner-carousel .carousel-item{overflow:hidden;}
.banner-carousel .carousel-item img{filter:brightness(.62); transform-origin:center;}
.banner-carousel .carousel-item.active img{animation:kenBurns 9s ease-out both;}
@keyframes kenBurns{
  from{transform:scale(1.14) translate3d(1.6%, 1.2%, 0);}
  to{transform:scale(1) translate3d(0,0,0);}
}
.banner-carousel .carousel-item::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(100deg, rgba(13,27,94,.88) 0%, rgba(13,27,94,.52) 46%, rgba(216,30,44,.30) 100%),
    radial-gradient(120% 80% at 15% 100%, rgba(216,30,44,.34), transparent 60%);
}
.banner-carousel .banner-caption{z-index:2;}
.banner-carousel .carousel-item.active .banner-caption .tagline{animation:capIn .85s cubic-bezier(.22,.61,.36,1) .10s both;}
.banner-carousel .carousel-item.active .banner-caption h1{animation:capIn .85s cubic-bezier(.22,.61,.36,1) .22s both;}
.banner-carousel .carousel-item.active .banner-caption .lead-text{animation:capIn .85s cubic-bezier(.22,.61,.36,1) .34s both;}
.banner-carousel .carousel-item.active .banner-caption .btn{animation:capIn .85s cubic-bezier(.22,.61,.36,1) .46s both;}
@keyframes capIn{
  from{opacity:0; transform:translateY(26px);}
  to{opacity:1; transform:translateY(0);}
}
.banner-carousel .carousel-item.active .banner-caption .tagline::after{
  content:""; display:block; height:2px; width:0; margin-top:.5rem;
  background:linear-gradient(90deg, var(--terracotta), transparent);
  animation:ruleGrow .9s ease-out .7s both;
}
@keyframes ruleGrow{from{width:0;} to{width:96px;}}

.scroll-cue{
  position:absolute; left:50%; bottom:26px; z-index:3;
  width:26px; height:42px; margin-left:-13px; border-radius:999px;
  border:2px solid rgba(255,255,255,.55); pointer-events:none;
}
.scroll-cue::after{
  content:""; position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px;
  border-radius:2px; background:#fff; animation:cueDrop 1.8s ease-in-out infinite;
}
@keyframes cueDrop{
  0%{opacity:0; transform:translateY(0);}
  30%{opacity:1;}
  100%{opacity:0; transform:translateY(14px);}
}

/* ---------- 4. Navbar: animated chip underline + entrance ---------- */
.navbar-sahyog{animation:navDrop .7s cubic-bezier(.22,.61,.36,1) both;}
@keyframes navDrop{from{opacity:0; transform:translateY(-100%);} to{opacity:1; transform:translateY(0);}}
.navbar-sahyog .nav-link{position:relative; overflow:hidden;}
.navbar-sahyog .nav-link::after{
  content:""; position:absolute; left:12px; right:12px; bottom:5px; height:2px;
  background:var(--terracotta-light); transform:scaleX(0); transform-origin:right;
  transition:transform .32s cubic-bezier(.22,.61,.36,1);
}
.navbar-sahyog .nav-link:hover::after{transform:scaleX(1); transform-origin:left;}
.navbar-sahyog .nav-link:hover .nav-icon{color:var(--terracotta-light); transform:translateY(-1px) scale(1.12);}
.navbar-sahyog .nav-icon{transition:color .2s ease, transform .25s cubic-bezier(.34,1.56,.64,1);}
.navbar-sahyog .navbar-brand img{transition:height .25s ease, transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;}
.navbar-sahyog .navbar-brand:hover img{transform:translateY(-2px) rotate(-1.5deg); box-shadow:0 10px 26px rgba(0,0,0,.35);}

/* ---------- 5. Buttons: shine sweep + press feedback + ripple ---------- */
.btn-gold, .btn-terracotta, .btn-outline-teal{position:relative; overflow:hidden; isolation:isolate;}
.btn-gold::before, .btn-terracotta::before{
  content:""; position:absolute; top:0; bottom:0; left:-140%; width:60%; z-index:-1;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.42), transparent);
  transform:skewX(-18deg); transition:left .6s cubic-bezier(.22,.61,.36,1);
}
.btn-gold:hover::before, .btn-terracotta:hover::before{left:150%;}
.btn-gold:active, .btn-terracotta:active, .btn-outline-teal:active{transform:translateY(1px) scale(.985);}
.btn-outline-teal{transition:background .25s ease, color .25s ease, transform .2s ease, box-shadow .25s ease;}
.btn-outline-teal:hover{transform:translateY(-2px); box-shadow:0 12px 24px -12px rgba(13,27,94,.6);}

.ripple-ink{
  position:absolute; border-radius:50%; transform:scale(0);
  background:rgba(255,255,255,.5); pointer-events:none;
  animation:rippleOut .62s ease-out forwards;
}
.btn-outline-teal .ripple-ink{background:rgba(13,27,94,.22);}
@keyframes rippleOut{to{transform:scale(2.6); opacity:0;}}

/* ---------- 6. Cards: image zoom, glow lift, sheen ---------- */
.pillar-card, .blog-card, .country-card, .sub-service-card, .stat-tile, .booking-card, .testimonial-single-card{
  transition:transform .38s cubic-bezier(.22,.61,.36,1), box-shadow .38s ease, border-color .3s ease;
}
.pillar-card:hover, .blog-card:hover, .country-card:hover{
  box-shadow:0 30px 60px -28px rgba(13,27,94,.55), 0 0 0 1px rgba(216,30,44,.18);
}
.pillar-card .pillar-media img,
.blog-card .blog-image-wrap img,
.country-card .country-media img,
.blog-card-detailed img{
  transition:transform .7s cubic-bezier(.22,.61,.36,1), filter .5s ease;
}
.pillar-card:hover .pillar-media img,
.blog-card:hover .blog-image-wrap img,
.blog-card-detailed:hover > img,
.country-card:hover .country-media img{
  transform:scale(1.09); filter:saturate(1.12);
}
.pillar-card .pillar-media::after,
.country-card .country-media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 38%, rgba(255,255,255,.35) 50%, transparent 62%);
  transform:translateX(-120%); transition:transform .85s cubic-bezier(.22,.61,.36,1);
}
.pillar-card:hover .pillar-media::after,
.country-card:hover .country-media::after{transform:translateX(120%);}

.sub-service-card{position:relative; overflow:hidden;}
.sub-service-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--terracotta), var(--teal-600));
  transform:scaleY(0); transform-origin:top; transition:transform .35s ease;
}
.sub-service-card:hover::before{transform:scaleY(1);}
.sub-service-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-tight); background:#fff;}
.sub-service-card img, .sub-service-card .icon-fallback{transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
.sub-service-card:hover img, .sub-service-card:hover .icon-fallback{transform:scale(1.08) rotate(-3deg);}

/* ---------- 7. Stats bar: hover lift + counting glow ---------- */
.stat-tile:hover{transform:translateY(-4px);}
.stat-tile-icon{transition:transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;}
.stat-tile:hover .stat-tile-icon{transform:rotate(-8deg) scale(1.1); box-shadow:0 10px 22px -10px rgba(216,30,44,.7);}
.stat-number.counting{
  background:linear-gradient(92deg, var(--teal-900), var(--terracotta));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}

/* ---------- 8. Section headings: animated accent rule ---------- */
.section-title, .section-title-lg{position:relative;}
.section-title.in-view::after, .section-title-lg.in-view::after{
  content:""; display:block; height:3px; width:0; margin-top:.75rem; border-radius:2px;
  background:linear-gradient(90deg, var(--terracotta), var(--gold));
  animation:ruleGrowWide 1s cubic-bezier(.22,.61,.36,1) .25s both;
}
@keyframes ruleGrowWide{from{width:0;} to{width:72px;}}
.text-center .section-title.in-view::after,
.text-center .section-title-lg.in-view::after{margin-left:auto; margin-right:auto;}

/* ---------- 9. Ambient depth: slow drifting colour fields ---------- */
.section{position:relative; isolation:isolate;}
.section::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  width:min(46vw, 520px); aspect-ratio:1; border-radius:50%;
  top:-12%; right:-10%; opacity:.5;
  background:radial-gradient(circle, rgba(63,95,224,.16), transparent 68%);
  animation:drift 22s ease-in-out infinite alternate;
}
.section::after{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  width:min(38vw, 420px); aspect-ratio:1; border-radius:50%;
  bottom:-14%; left:-8%; opacity:.45;
  background:radial-gradient(circle, rgba(216,30,44,.13), transparent 68%);
  animation:drift 26s ease-in-out infinite alternate-reverse;
}
.section-dark::before{background:radial-gradient(circle, rgba(255,255,255,.10), transparent 68%);}
.section-dark::after{background:radial-gradient(circle, rgba(216,30,44,.28), transparent 68%);}
@keyframes drift{
  from{transform:translate3d(0,0,0) scale(1);}
  to{transform:translate3d(-5%, 6%, 0) scale(1.14);}
}

/* ---------- 10. Footer ---------- */
.footer-sahyog{position:relative; background:linear-gradient(165deg, var(--teal-900), #091046 70%);}
.footer-sahyog::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--terracotta), var(--gold), var(--terracotta-light), var(--terracotta));
  background-size:300% 100%; animation:hueSlide 9s linear infinite;
}
@keyframes hueSlide{from{background-position:0% 50%;} to{background-position:300% 50%;}}
.footer-sahyog .social-icon{transition:background .25s ease, border-color .25s ease, transform .3s cubic-bezier(.34,1.56,.64,1);}
.footer-sahyog .social-icon:hover{transform:translateY(-4px) scale(1.08);}
.footer-sahyog a:not(.social-icon){position:relative;}
.footer-sahyog a:not(.social-icon)::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .3s ease;
}
.footer-sahyog a:not(.social-icon):hover::after{transform:scaleX(1); transform-origin:left;}
.footer-logo img{transition:transform .4s cubic-bezier(.34,1.56,.64,1);}
.footer-logo:hover img{transform:scale(1.05) rotate(-2deg);}

/* ---------- 11. Floating action stack + back-to-top ---------- */
.floating-contact a{transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease, opacity .3s ease;}
.floating-contact a:hover{transform:translateY(-3px) scale(1.1);}
/* The pulse used to animate box-shadow. That repaints the button on every
   frame, for ever, and because the button is fixed on the screen the browser
   was repainting it all the way down every scroll - which is what made the
   page feel heavy. The ring is now a separate circle that only scales and
   fades, so it runs on the compositor and costs the scroll nothing. */
.floating-contact .fc-whatsapp{position:relative; isolation:isolate;}
.floating-contact .fc-whatsapp::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  background:rgba(37,211,102,.55); z-index:-1;
  animation:fcPulse 2.6s ease-out infinite;
  will-change:transform, opacity;
}
@keyframes fcPulse{
  0%{transform:scale(1); opacity:.55;}
  70%{transform:scale(1.55); opacity:0;}
  100%{transform:scale(1.55); opacity:0;}
}

/* ---------- 12. Breadcrumb + form polish ---------- */
.breadcrumb-trail a{position:relative;}
.breadcrumb-trail a::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .3s ease;
}
.breadcrumb-trail a:hover::after{transform:scaleX(1); transform-origin:left;}
.form-control, .form-select{transition:border-color .25s ease, box-shadow .25s ease, transform .2s ease;}
.form-control:focus, .form-select:focus{transform:translateY(-1px);}
.slot-btn{position:relative; overflow:hidden;}
.slot-btn.active{animation:slotPop .35s cubic-bezier(.34,1.56,.64,1);}
@keyframes slotPop{0%{transform:scale(1);} 45%{transform:scale(1.09);} 100%{transform:scale(1);}}
.form-alert{animation:capIn .45s ease-out both;}

/* ---------- 13. Images fade in as they decode ---------- */
img.img-fade{opacity:0; transition:opacity .6s ease;}
img.img-fade.loaded{opacity:1;}

/* ---------- 14. Modals ---------- */
.modal.fade .modal-dialog{transform:translateY(28px) scale(.96); transition:transform .38s cubic-bezier(.22,.61,.36,1);}
.modal.show .modal-dialog{transform:none;}
.itinerary-package-row{transition:transform .25s ease, background .25s ease;}
.itinerary-package-row:hover{transform:translateX(4px);}

/* ---------- 15. Motion opt-out, belt and braces ---------- */
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1 !important; transform:none !important; filter:none !important;}
  .section::before, .section::after, .scroll-cue{display:none;}
  .banner-carousel .carousel-item.active img{animation:none;}
}

/* =========================================================
   SAHYOG — COUNTRY DOCUMENT CHECKLIST MODAL
   Content is rendered by the inline script in visa-services.html
   from assets/js/visa-checklists.js, so every class below is
   created at runtime.
   ========================================================= */

.checklist-modal .modal-content{
  border:none; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(13,27,94,.65);
}

/* ---------- Header ---------- */
.checklist-hero{
  position:relative; padding:1.7rem 1.9rem 1.3rem; color:#fff;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(216,30,44,.55), transparent 58%),
    linear-gradient(135deg, var(--teal-900), var(--teal-700));
}
.checklist-hero::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:linear-gradient(90deg, var(--terracotta), var(--gold), var(--terracotta-light));
  background-size:300% 100%; animation:hueSlide 8s linear infinite;
}
.checklist-close{position:absolute; top:1.1rem; right:1.2rem; opacity:.85;}
.checklist-close:hover{opacity:1;}
.checklist-hero-top{display:flex; align-items:center; gap:1rem; padding-right:2.2rem;}
.checklist-flag{
  font-size:2.3rem; line-height:1; flex-shrink:0;
  width:64px; height:64px; border-radius:18px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  animation:flagPop .55s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes flagPop{from{opacity:0; transform:scale(.6) rotate(-12deg);} to{opacity:1; transform:none;}}
.checklist-kicker{
  margin:0 0 .15rem; font-size:.7rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--gold-light);
}
.checklist-hero .modal-title{
  margin:0; font-weight:800; color:#fff;
  font-size:clamp(1.25rem, 2.6vw, 1.75rem); line-height:1.15;
}
.checklist-meta{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.1rem;}
.checklist-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  border-radius:999px; padding:.34rem .85rem;
  font-size:.78rem; font-weight:600; color:#fff;
}
.checklist-chip i{font-size:.75rem; opacity:.85;}
.checklist-chip-price{background:var(--terracotta); border-color:var(--terracotta); font-weight:700;}
.checklist-chip-muted{background:transparent; color:#c7cdf0; font-weight:500;}

/* ---------- Body ---------- */
.checklist-body{background:var(--cream); padding:1.5rem;}
.checklist-body::-webkit-scrollbar{width:10px;}
.checklist-body::-webkit-scrollbar-track{background:transparent;}
.checklist-body::-webkit-scrollbar-thumb{background:rgba(13,27,94,.22); border-radius:999px; border:3px solid var(--cream);}
.checklist-body::-webkit-scrollbar-thumb:hover{background:rgba(13,27,94,.4);}

/* Masonry-ish: groups vary a lot in length (Schengen has 16, Vietnam has 1) */
.checklist-groups{columns:1; column-gap:1rem;}
@media (min-width:768px){ .checklist-groups{columns:2;} }

.doc-group{
  break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid;
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:1.05rem 1.15rem; margin:0 0 1rem;
  box-shadow:0 6px 18px -12px rgba(13,27,94,.35);
  animation:docIn .5s cubic-bezier(.22,.61,.36,1) both;
  animation-delay:calc(var(--g, 0) * 45ms);
}
@keyframes docIn{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:none;}}

.doc-group-head{
  display:flex; align-items:center; gap:.6rem;
  padding-bottom:.6rem; margin-bottom:.7rem;
  border-bottom:1px dashed rgba(13,27,94,.14);
}
.doc-group-icon{
  width:32px; height:32px; min-width:32px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, var(--teal-800), var(--teal-600));
  color:var(--gold-light); font-size:.82rem;
}
.doc-group-head h6{
  margin:0; flex:1; font-weight:700; font-size:.92rem;
  color:var(--teal-900); line-height:1.3;
}
.doc-group-count{
  font-size:.7rem; font-weight:700; color:var(--terracotta);
  background:rgba(216,30,44,.09); border-radius:999px; padding:.15rem .55rem;
}

.doc-list{list-style:none; margin:0; padding:0;}
.doc-list li{
  display:flex; gap:.6rem; align-items:flex-start;
  padding:.4rem 0; font-size:.87rem; line-height:1.55; color:var(--slate);
  border-bottom:1px solid rgba(13,27,94,.05);
}
.doc-list li:last-child{border-bottom:none; padding-bottom:0;}
.doc-list li i{
  margin-top:.28rem; font-size:.62rem; flex-shrink:0;
  width:16px; height:16px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(216,30,44,.12); color:var(--terracotta);
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.doc-group:hover{border-color:rgba(216,30,44,.22); box-shadow:0 14px 30px -18px rgba(13,27,94,.5);}
.doc-list li:hover i{background:var(--terracotta); color:#fff; transform:scale(1.12);}

/* ---------- Notes callout ---------- */
.doc-note{
  display:flex; gap:.85rem; margin-top:.4rem;
  background:#fff5f6; border:1px solid rgba(216,30,44,.18);
  border-left:4px solid var(--terracotta);
  border-radius:var(--radius-md); padding:1rem 1.15rem;
}
.doc-note > i{color:var(--terracotta); font-size:1.05rem; margin-top:.15rem;}
.doc-note strong{
  display:block; color:var(--teal-900); font-size:.82rem;
  text-transform:uppercase; letter-spacing:.08em; margin-bottom:.4rem;
}
.doc-note ul{margin:0; padding-left:1.05rem;}
.doc-note li{font-size:.86rem; line-height:1.6; color:#7a2530; margin-bottom:.3rem;}
.doc-note li:last-child{margin-bottom:0;}

.doc-generic-hint{
  margin:1rem 0 0; padding:.85rem 1rem; border-radius:var(--radius-md);
  background:rgba(13,27,94,.05); color:var(--slate);
  font-size:.84rem; line-height:1.6;
}

/* ---------- Sticky action bar ---------- */
.checklist-actions{
  display:flex; flex-wrap:wrap; gap:.6rem;
  padding:1rem 1.5rem; background:var(--white);
  border-top:1px solid rgba(13,27,94,.09);
}
.checklist-actions .btn{flex:1 1 auto; min-width:170px;}

@media (max-width:575px){
  .checklist-hero{padding:1.3rem 1.2rem 1rem;}
  .checklist-flag{width:52px; height:52px; font-size:1.8rem; border-radius:14px;}
  .checklist-body{padding:1.1rem;}
  .checklist-actions{padding:.9rem 1.1rem;}
  .checklist-actions .btn{flex:1 1 100%; min-width:0;}
}

@media (prefers-reduced-motion: reduce){
  .doc-group, .checklist-flag{animation:none;}
}

/* =========================================================
   SAHYOG — DESTINATION / ITINERARY MODAL (offers.html)
   Shares the .checklist-* shell with the visa checklist modal
   so the two read as one system. Content is rendered at runtime
   from assets/js/travel-packages.js.
   ========================================================= */

/* ---------- Destination overview ---------- */
.dest-overview{
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:1.15rem 1.25rem; margin-bottom:1.25rem;
  box-shadow:0 6px 18px -12px rgba(13,27,94,.35);
  animation:docIn .5s cubic-bezier(.22,.61,.36,1) both;
}
.dest-overview h6{
  display:flex; align-items:center; gap:.5rem; margin:0 0 .6rem;
  font-weight:700; font-size:.92rem; color:var(--teal-900);
}
.dest-overview h6 i{color:var(--terracotta); font-size:.85rem;}
.dest-overview p{
  margin:0; font-size:.9rem; line-height:1.7; color:var(--slate);
}

.dest-highlights{display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.9rem;}
.dest-chip{
  display:inline-flex; align-items:center; gap:.35rem;
  background:rgba(13,27,94,.05); border:1px solid rgba(13,27,94,.09);
  border-radius:999px; padding:.3rem .75rem;
  font-size:.76rem; font-weight:600; color:var(--teal-800);
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.dest-chip i{font-size:.6rem; color:var(--gold);}
.dest-chip:hover{background:var(--teal-900); color:#fff; transform:translateY(-2px);}
.dest-chip:hover i{color:var(--gold-light);}

/* ---------- "Available Itineraries" divider ---------- */
.dest-section-label{
  display:flex; align-items:center; gap:.55rem; margin:0 0 .85rem;
  font-size:.74rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--teal-900);
}
.dest-section-label::after{
  content:""; flex:1; height:1px; background:rgba(13,27,94,.14);
}
.dest-section-label span{
  order:3; font-size:.7rem; letter-spacing:0;
  background:var(--terracotta); color:#fff;
  border-radius:999px; padding:.1rem .55rem;
}

/* ---------- Package cards ---------- */
.pkg-card{
  position:relative; overflow:hidden;
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:1.1rem 1.2rem; margin-bottom:.9rem;
  box-shadow:0 6px 18px -12px rgba(13,27,94,.35);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease, border-color .3s ease;
  animation:docIn .5s cubic-bezier(.22,.61,.36,1) both;
  animation-delay:calc(var(--g, 0) * 80ms + 90ms);
}
.pkg-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:linear-gradient(180deg, var(--terracotta), var(--teal-600));
  transform:scaleY(0); transform-origin:top; transition:transform .35s ease;
}
.pkg-card:hover{
  transform:translateY(-3px);
  border-color:rgba(216,30,44,.22);
  box-shadow:0 18px 36px -20px rgba(13,27,94,.5);
}
.pkg-card:hover::before{transform:scaleY(1);}

.pkg-head{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:.75rem; flex-wrap:wrap; margin-bottom:.5rem;
}
.pkg-head h6{
  margin:0; flex:1; min-width:180px;
  font-weight:700; font-size:1rem; line-height:1.35; color:var(--teal-900);
}
.pkg-duration{
  display:inline-flex; align-items:center; gap:.35rem; white-space:nowrap;
  background:rgba(216,30,44,.09); color:var(--terracotta);
  border-radius:999px; padding:.25rem .7rem;
  font-size:.75rem; font-weight:700;
}
.pkg-desc{
  margin:0 0 .9rem; font-size:.87rem; line-height:1.65; color:var(--slate);
}
.pkg-actions{display:flex; flex-wrap:wrap; gap:.5rem;}
.pkg-actions .btn{flex:1 1 auto; min-width:150px;}

@media (max-width:575px){
  .pkg-actions .btn{flex:1 1 100%; min-width:0;}
  .pkg-head h6{min-width:0;}
}

@media (prefers-reduced-motion: reduce){
  .dest-overview, .pkg-card{animation:none;}
}

/* ---------- "Visa at a Glance" facts grid (visa-services.html) ---------- */
.visa-facts{margin-bottom:1.25rem;}
.visa-fact-grid{
  display:grid; gap:.55rem; margin:0;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
}
.visa-fact-grid > div{
  background:var(--cream); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-sm); padding:.6rem .75rem;
}
.visa-fact-grid dt{
  margin:0 0 .15rem; font-size:.68rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--slate);
}
.visa-fact-grid dd{
  margin:0; font-size:.9rem; font-weight:700; color:var(--teal-900); line-height:1.35;
}
.visa-fact-grid > div:last-child dd{color:var(--terracotta);}

/* ---------- Day-by-day itinerary timeline (offers.html) ---------- */
.pkg-toggle{
  display:flex; align-items:center; gap:.6rem; width:100%;
  background:var(--cream); border:1px solid rgba(13,27,94,.09);
  border-radius:var(--radius-sm); padding:.6rem .85rem; margin-bottom:.9rem;
  font-size:.82rem; font-weight:700; color:var(--teal-900); text-align:left;
  cursor:pointer; transition:background .2s ease, border-color .2s ease;
}
.pkg-toggle:hover{background:#eceffb; border-color:rgba(216,30,44,.25);}
.pkg-toggle > span{flex:1;}
.pkg-toggle > i:first-child{color:var(--terracotta);}
.pkg-chevron{font-size:.72rem; color:var(--slate); transition:transform .25s ease;}

.pkg-days{
  list-style:none; margin:0 0 1rem; padding:0 0 0 .25rem;
  position:relative; overflow:hidden;
}
.pkg-days.collapsed{display:none;}

.pkg-day{display:flex; gap:.85rem; position:relative; padding-bottom:1.05rem;}
.pkg-day:last-child{padding-bottom:.25rem;}
/* the connecting spine */
.pkg-day::before{
  content:""; position:absolute; left:21px; top:44px; bottom:0; width:2px;
  background:linear-gradient(180deg, rgba(216,30,44,.35), rgba(13,27,94,.12));
}
.pkg-day:last-child::before{display:none;}

.pkg-day-num{
  flex-shrink:0; width:44px; height:44px; border-radius:12px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:linear-gradient(140deg, var(--teal-800), var(--teal-600));
  color:#fff; line-height:1; z-index:1;
}
.pkg-day-num span{font-size:.52rem; letter-spacing:.1em; text-transform:uppercase; opacity:.75;}
.pkg-day-num strong{font-size:1.02rem; font-weight:800; margin-top:.1rem;}

.pkg-day-body{flex:1; min-width:0; padding-top:.15rem;}
.pkg-day-body h6{
  margin:0 0 .4rem; font-size:.9rem; font-weight:700;
  color:var(--teal-900); line-height:1.4;
}
.pkg-day-body ul{list-style:none; margin:0; padding:0;}
.pkg-day-body ul li{
  position:relative; padding:.18rem 0 .18rem .9rem;
  font-size:.84rem; line-height:1.6; color:var(--slate);
}
.pkg-day-body ul li::before{
  content:""; position:absolute; left:0; top:.72rem;
  width:5px; height:5px; border-radius:50%; background:var(--terracotta); opacity:.55;
}
.pkg-day-meta{
  display:flex; flex-wrap:wrap; gap:.4rem; margin:.55rem 0 0;
}
.pkg-day-meta span{
  display:inline-flex; align-items:center; gap:.35rem;
  background:rgba(13,27,94,.05); border-radius:999px; padding:.2rem .6rem;
  font-size:.72rem; font-weight:600; color:var(--teal-800);
}
.pkg-day-meta i{font-size:.62rem; color:var(--terracotta);}

@media (max-width:575px){
  .pkg-day{gap:.65rem;}
  .pkg-day-num{width:38px; height:38px; border-radius:10px;}
  .pkg-day::before{left:18px; top:38px;}
  .pkg-day-body ul li{font-size:.82rem;}
}

/* ---------- Itinerary modal: wider shell + side-by-side packages ---------- */

/* Roomier than modal-xl's default so a 2-package destination has space for
   two full day-by-day columns without either feeling cramped. */
@media (min-width:1200px){
  #itineraryModal .modal-dialog{max-width:min(1280px, 95vw);}
}
#itineraryModal .modal-content{min-height:min(560px, 82vh);}

.pkg-grid{display:grid; gap:1rem; align-items:start;}
.pkg-grid .pkg-card{margin-bottom:0; height:100%;}

/* Two packages -> two columns, but only once there is room for them. */
@media (min-width:992px){
  .pkg-grid-2{grid-template-columns:1fr 1fr;}
}

/* Each column keeps its download button pinned to the bottom so the two
   cards line up even when one itinerary is longer than the other. */
.pkg-grid-2 .pkg-card{display:flex; flex-direction:column;}
.pkg-grid-2 .pkg-card .pkg-days{flex:1;}
.pkg-grid-2 .pkg-card .pkg-actions{margin-top:auto;}

/* Slightly tighter timeline in the narrower two-up columns. */
@media (min-width:992px){
  .pkg-grid-2 .pkg-day-num{width:40px; height:40px;}
  .pkg-grid-2 .pkg-day::before{left:19px; top:40px;}
  .pkg-grid-2 .pkg-day-body ul li{font-size:.82rem;}
}

/* (The old story-video rules that lived here were for the landscape
   main.mp4 and the YouTube embed, both of which are gone. The current
   rules are in the OUR STORY CARD block near the end of this file.) */

/* =========================================================
   OFFERS BUTTON — gold/red "cracker" blink
   Royal blue sat on a royal-blue navbar and disappeared into it, so
   this alternates two colours that both punch against navy.
   Overrides the earlier red .btn-gold / .btn-blink / starburst
   rules for the Offers chip only. Appears in the navbar of all
   six pages, so this one block covers the whole site.
   ========================================================= */

/* --- 1. The button itself: hard dark <-> light blink --------------------
   steps(1) is deliberate. Gradients don't interpolate, and a crisp
   two-state switch is what reads as "blinking" rather than "fading". */
.btn-offers-wrap .btn.btn-gold,
.btn-offers-wrap .btn.btn-blink{
  background:linear-gradient(135deg, #f6b700, #ffd977);
  color:#0d1b5e;
  font-weight:800;
  border:2px solid #ffffff;
  animation:offersBlink 1.4s steps(1, end) infinite,
            offersRing  1.4s ease-out infinite;
}
/* Amber -> red. Both read loudly on the navy bar; the white border keeps
   the chip separated from the navbar in either state. */
@keyframes offersBlink{
  0%,   49.99%{
    background:linear-gradient(135deg, #f6b700, #ffd977);
    color:#0d1b5e;
    border-color:#ffffff;
  }
  50%, 100%{
    background:linear-gradient(135deg, #d81e2c, #ff5b68);
    color:#ffffff;
    border-color:#ffd977;
  }
}
@keyframes offersRing{
  0%  {box-shadow:0 0 0 0 rgba(246,183,0,.85), 0 0 20px 3px rgba(255,217,119,.65);}
  70% {box-shadow:0 0 0 16px rgba(246,183,0,0), 0 0 30px 8px rgba(216,30,44,.45);}
  100%{box-shadow:0 0 0 0 rgba(246,183,0,0), 0 0 20px 3px rgba(255,217,119,.65);}
}
.btn-offers-wrap .btn.btn-gold:hover{
  color:#0d1b5e;
  background:linear-gradient(135deg, #ffe9a8, #ffffff);
  border-color:#ffffff;
}

/* --- 2. Starburst behind it, in gold fading to red --- */
.btn-offers-wrap::before{
  background:radial-gradient(circle,
    rgba(255,231,153,.95),
    rgba(246,183,0,.55) 50%,
    rgba(216,30,44,.28) 70%,
    transparent 78%);
  animation:burstPulse 1.7s ease-in-out infinite, burstSpin 6s linear infinite;
}
@keyframes burstSpin{from{rotate:0deg;} to{rotate:360deg;}}

/* --- 3. Cracker sparks flying off the chip ---------------------------- */
.btn-offers-wrap::after{
  content:"";
  position:absolute; inset:-20px; z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle 2.5px at 12% 22%, #ffffff 96%, transparent),
    radial-gradient(circle 2px   at 88% 16%, var(--gold-light) 96%, transparent),
    radial-gradient(circle 2px   at 22% 84%, #ffffff 96%, transparent),
    radial-gradient(circle 2.5px at 78% 88%, var(--gold-light) 96%, transparent),
    radial-gradient(circle 1.5px at 50% 6%,  #ffffff 96%, transparent),
    radial-gradient(circle 1.5px at 6%  55%, var(--gold-light) 96%, transparent),
    radial-gradient(circle 2px   at 95% 58%, #ffffff 96%, transparent),
    radial-gradient(circle 1.5px at 46% 96%, var(--gold-light) 96%, transparent);
  animation:sparkTwinkle 1.5s ease-in-out infinite;
}
@keyframes sparkTwinkle{
  0%,  100%{opacity:0;   transform:scale(.72);}
  35%      {opacity:1;   transform:scale(1.06);}
  60%      {opacity:.45; transform:scale(1.16);}
}

/* --- 4. Keep it legible on the mobile menu ---------------------------- */
@media (max-width:991px){
  .btn-offers-wrap::after{inset:-12px;}
}

/* --- 5. Motion opt-out: hold the light state, no flashing ------------- */
@media (prefers-reduced-motion: reduce){
  .btn-offers-wrap .btn.btn-gold,
  .btn-offers-wrap .btn.btn-blink{
    animation:none;
    background:linear-gradient(135deg, #f6b700, #ffd977);
    color:#0d1b5e;
    border-color:#fff;
  }
  .btn-offers-wrap::before,
  .btn-offers-wrap::after{animation:none; opacity:.5;}
}

/* =========================================================
   TWO-PACKAGE DESTINATIONS — highlighted package names
   Only Europe (Grand Tour / Wonders) and South Africa
   (Discovery / Retreat) have two. When there are two, the name
   becomes a solid header bar so you can tell them apart at a
   glance instead of reading down into the detail.
   ========================================================= */
.pkg-grid-2 .pkg-card{padding-top:0;}

/* Bleed the header out to the card edges (card padding is 1.1rem 1.2rem). */
.pkg-grid-2 .pkg-head{
  margin:0 -1.2rem .9rem;
  padding:.85rem 1.2rem;
  background:linear-gradient(135deg, var(--teal-900), var(--teal-700));
  border-bottom:3px solid var(--terracotta);
  align-items:center;
  gap:.6rem;
}
.pkg-grid-2 .pkg-head h6{
  color:#ffffff;
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:-.01em;
  flex-basis:100%;
  order:2;
}
.pkg-grid-2 .pkg-duration{
  order:3;
  background:rgba(255,255,255,.16);
  color:#ffffff;
  border:1px solid rgba(255,255,255,.28);
}
.pkg-grid-2 .pkg-duration i{color:var(--gold-light);}

/* The "Option 1 / Option 2" tag */
.pkg-badge{
  order:1;
  display:inline-flex; align-items:center;
  background:var(--terracotta); color:#ffffff;
  border-radius:999px; padding:.18rem .7rem;
  font-size:.66rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase;
  align-self:flex-start;
}

/* Second option gets the accent flipped, so the pair reads as a pair. */
.pkg-grid-2 .pkg-card:nth-child(2) .pkg-head{
  background:linear-gradient(135deg, #3d1220, var(--terracotta));
  border-bottom-color:var(--teal-700);
}
.pkg-grid-2 .pkg-card:nth-child(2) .pkg-badge{background:var(--teal-700);}

/* Keep the hover lift from clipping the coloured header. */
.pkg-grid-2 .pkg-card{overflow:hidden;}

/* ---------- Package price, route, sights, inclusions, notes ---------- */
.pkg-facts{display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:0 0 .75rem;}
.pkg-price{
  display:inline-flex; align-items:baseline; gap:.35rem;
  background:linear-gradient(135deg, var(--terracotta), var(--terracotta-light));
  color:#fff; border-radius:999px; padding:.32rem .9rem;
  font-size:1.02rem; font-weight:800; letter-spacing:-.01em;
}
.pkg-price small{font-size:.64rem; font-weight:600; opacity:.85; text-transform:uppercase; letter-spacing:.08em;}
.pkg-stay{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(13,27,94,.05); border:1px solid rgba(13,27,94,.09);
  border-radius:999px; padding:.3rem .8rem;
  font-size:.74rem; font-weight:600; color:var(--teal-800); line-height:1.5;
}
.pkg-stay i{font-size:.66rem; color:var(--terracotta); flex-shrink:0;}

.pkg-sublist{margin:0 0 .85rem;}
.pkg-sublist h6{
  display:flex; align-items:center; gap:.45rem; margin:0 0 .45rem;
  font-size:.72rem; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--teal-900);
}
.pkg-sublist h6 i{color:var(--terracotta); font-size:.76rem;}
.pkg-chips{display:flex; flex-wrap:wrap; gap:.35rem;}
.pkg-chip{
  background:var(--cream); border:1px solid rgba(13,27,94,.08);
  border-radius:999px; padding:.24rem .7rem;
  font-size:.76rem; font-weight:600; color:var(--teal-800);
}
.pkg-inc{list-style:none; margin:0; padding:0;}
.pkg-inc li{
  position:relative; padding:.16rem 0 .16rem 1rem;
  font-size:.83rem; line-height:1.6; color:var(--slate);
}
.pkg-inc li::before{
  content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900;
  position:absolute; left:0; top:.3rem; font-size:.6rem; color:var(--terracotta);
}
.pkg-notes{
  list-style:none; margin:0 0 .9rem; padding:.7rem .9rem;
  background:#fff5f6; border-left:3px solid var(--terracotta);
  border-radius:var(--radius-sm);
}
.pkg-notes li{font-size:.78rem; line-height:1.6; color:#7a2530;}

/* ---------- "Not included" list, and plain (non-tick) lists ---------- */
.pkg-exc{list-style:none; margin:0; padding:0;}
.pkg-exc li{
  position:relative; padding:.16rem 0 .16rem 1rem;
  font-size:.83rem; line-height:1.6; color:var(--slate);
}
.pkg-exc li::before{
  content:"\f00d"; font-family:"Font Awesome 6 Free"; font-weight:900;
  position:absolute; left:0; top:.3rem; font-size:.6rem; color:var(--slate); opacity:.55;
}
.pkg-inc.pkg-plain li::before{
  content:"\f111"; font-size:.3rem; top:.62rem; opacity:.5;
}

/* ---------- Testimonial video: sound toggle ---------- */
.testimonial-single-video{position:relative;}
.vid-sound{
  position:absolute; left:10px; bottom:10px; z-index:3;
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(13,27,94,.82); color:#fff;
  border:1px solid rgba(255,255,255,.28); border-radius:999px;
  padding:.32rem .75rem; font-size:.72rem; font-weight:700;
  cursor:pointer; backdrop-filter:blur(4px);
  transition:background .2s ease, transform .2s ease, opacity .2s ease;
}
.vid-sound:hover{background:var(--terracotta); transform:translateY(-2px);}
.vid-sound i{font-size:.72rem;}
.vid-sound.on{background:var(--terracotta); border-color:var(--terracotta);}
@media (max-width:575px){
  .vid-sound{left:8px; bottom:8px; padding:.28rem .6rem; font-size:.68rem;}
  .vid-sound span{display:none;}
}

/* =========================================================
   NAVBAR — LOGO MOVED TO THE LEFT
   The markup order in every page is: toggler, #mainNav, brand.
   Flex `order` rearranges that without touching any HTML, so this
   one block moves the logo on all six pages.
   ========================================================= */

/* Desktop: logo first, then the nav links to its right. */
@media (min-width:992px){
  .navbar-sahyog .navbar-brand{order:1; margin:0 2rem 0 0;}
  .navbar-sahyog .navbar-collapse{order:2; flex-grow:1; margin-right:0; margin-left:0;}
  /* nav links start right after the logo rather than being pushed out */
  .navbar-sahyog .navbar-nav{margin-right:auto;}
}

/* Mobile: logo left, hamburger right, menu drops full-width underneath.
   The menu must come last in the order or it wraps between them. */
@media (max-width:991px){
  .navbar-sahyog .navbar-brand{order:1; margin:0 auto 0 0;}
  .navbar-sahyog .navbar-toggler{order:2; margin-left:auto;}
  .navbar-sahyog .navbar-collapse{order:3; width:100%;}
}

/* Give the logo a touch more presence now that it leads the bar. */
.navbar-sahyog .navbar-brand img{
  padding:5px;
  box-shadow:0 6px 18px rgba(0,0,0,.3);
}

/* =========================================================
   BANNER — make the prev/next arrows clickable
   .banner-caption is inset:0 with z-index:2, so it covers the whole
   slide and was intercepting every click aimed at the arrows (which
   sit at Bootstrap's default z-index:1). The indicators were fine
   because they are already at z-index:3.

   Fix both ends: let clicks fall through the caption except on its
   actual links, and lift the controls above it.
   ========================================================= */
.banner-carousel .banner-caption{pointer-events:none;}
.banner-carousel .banner-caption a,
.banner-carousel .banner-caption .btn{pointer-events:auto;}

.banner-carousel .carousel-control-prev,
.banner-carousel .carousel-control-next{
  z-index:4;
  opacity:.75;
  transition:opacity .2s ease, transform .2s ease;
}
.banner-carousel .carousel-control-prev:hover,
.banner-carousel .carousel-control-next:hover{opacity:1;}
.banner-carousel .carousel-control-prev:hover .carousel-control-prev-icon,
.banner-carousel .carousel-control-next:hover .carousel-control-next-icon{transform:scale(1.1);}
.banner-carousel .carousel-control-prev-icon,
.banner-carousel .carousel-control-next-icon{transition:transform .2s ease;}

/* =========================================================
   DIWALI DHAMAKA SECTION (offers.html)
   Festive gold accent over the standard royal-blue palette.
   ========================================================= */
.diwali-section{
  background:
    radial-gradient(90% 70% at 50% 0%, rgba(224,168,63,.14), transparent 62%),
    linear-gradient(180deg, #fffdf8, var(--cream) 55%);
  position:relative;
}
.diwali-eyebrow{color:#b8860b;}
.diwali-eyebrow::before{background:#e0a83f;}
.diwali-title{
  background:linear-gradient(100deg, var(--teal-900) 20%, #b8860b 60%, var(--terracotta));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.diwali-label{margin-bottom:1.5rem;}
.diwali-label span{background:#b8860b;}

.diwali-usps{display:flex; flex-wrap:wrap; gap:.5rem;}
.diwali-usps span{
  display:inline-flex; align-items:center; gap:.4rem;
  background:#fff; border:1px solid rgba(184,134,11,.28);
  border-radius:999px; padding:.34rem .85rem;
  font-size:.76rem; font-weight:700; color:var(--teal-900);
  box-shadow:0 4px 12px -8px rgba(13,27,94,.4);
}
.diwali-usps i{color:#b8860b; font-size:.76rem;}

.diwali-note{
  margin:2rem 0 0; padding:.9rem 1.1rem; border-radius:var(--radius-md);
  background:rgba(13,27,94,.05); color:var(--slate);
  font-size:.82rem; line-height:1.6;
}

/* ---------- Poster thumbnails ---------- */
.poster-figure{
  position:relative; margin:0; overflow:hidden; cursor:zoom-in;
  border-radius:var(--radius-md); background:var(--teal-900);
  box-shadow:0 10px 28px -18px rgba(13,27,94,.6);
}
.poster-figure img{
  display:block; width:100%; height:100%; object-fit:cover;
  transition:transform .6s cubic-bezier(.22,.61,.36,1), filter .4s ease;
}
.poster-figure:hover img{transform:scale(1.05); filter:saturate(1.08);}
.poster-figure figcaption{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  display:flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.55rem .6rem;
  background:linear-gradient(0deg, rgba(13,27,94,.92), transparent);
  color:#fff; font-size:.74rem; font-weight:700;
  opacity:0; transform:translateY(100%);
  transition:opacity .3s ease, transform .3s ease;
}
.poster-figure:hover figcaption,
.poster-figure:focus-visible figcaption{opacity:1; transform:none;}

/* The master poster is portrait (roughly 4:5), so in a wide column it ran
   taller than the viewport. Constrain its WIDTH and let the height follow. */
.poster-hero{
  box-shadow:var(--shadow-soft);
  max-width:420px; margin-inline:auto; background:#fff;
}
.poster-hero img{aspect-ratio:auto; object-fit:contain; background:#fff;}
@media (min-width:1400px){ .poster-hero{max-width:470px;} }

/* card thumbnails are cropped to a consistent portrait */
.festive-card .poster-figure img{aspect-ratio:4/5;}

.festive-price{
  position:absolute; top:10px; left:10px; z-index:2;
  background:linear-gradient(135deg, var(--terracotta), var(--terracotta-light));
  color:#fff; border-radius:999px; padding:.26rem .8rem;
  font-size:.82rem; font-weight:800;
  box-shadow:0 6px 16px -8px rgba(216,30,44,.9);
}

/* ---------- Offer cards ---------- */
.festive-card{
  height:100%; display:flex; flex-direction:column; overflow:hidden;
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-lg);
  box-shadow:0 8px 22px -16px rgba(13,27,94,.45);
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .3s ease;
}
.festive-card:hover{
  transform:translateY(-6px);
  border-color:rgba(184,134,11,.35);
  box-shadow:0 28px 55px -30px rgba(13,27,94,.6);
}
.festive-card .poster-figure{border-radius:0;}
.festive-body{padding:1.1rem 1.2rem 1.2rem; display:flex; flex-direction:column; flex-grow:1;}
.festive-body h5{
  margin:0 0 .15rem; font-family:var(--font-display);
  font-weight:700; font-size:1.08rem; color:var(--teal-900);
}
.festive-tag{
  margin:0 0 .75rem; font-size:.78rem; font-weight:600;
  color:var(--terracotta); line-height:1.45;
}
.festive-meta{list-style:none; margin:0 0 1rem; padding:0; flex-grow:1;}
.festive-meta li{
  display:flex; gap:.5rem; align-items:flex-start;
  padding:.22rem 0; font-size:.79rem; line-height:1.5; color:var(--slate);
}
.festive-meta i{
  margin-top:.2rem; width:14px; flex-shrink:0;
  font-size:.7rem; color:var(--teal-600);
}

.festive-card-cta{
  background:linear-gradient(160deg, #fffdf8, #f4f1ff);
  border-style:dashed; border-color:rgba(184,134,11,.4);
  justify-content:center;
}
.festive-card-cta .festive-tag{color:var(--slate); margin-bottom:1.1rem;}

/* ---------- Full-size poster viewer ---------- */
.poster-modal .modal-content{
  border:none; border-radius:var(--radius-lg); overflow:hidden;
  background:#0b1444;
}
.poster-modal-bar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.7rem 1rem; color:#fff;
  background:linear-gradient(135deg, var(--teal-900), var(--teal-700));
  border-bottom:2px solid #b8860b;
  font-weight:700; font-size:.9rem;
}
.poster-modal-actions{display:flex; align-items:center; gap:.6rem;}
.poster-modal-body{
  padding:0; background:#0b1444; max-height:78vh; overflow:auto;
  display:flex; align-items:flex-start; justify-content:center;
}
.poster-modal-body img{width:100%; height:auto; display:block;}

@media (max-width:767px){
  .festive-body{padding:.85rem .9rem 1rem;}
  .festive-body h5{font-size:.98rem;}
  .festive-meta li{font-size:.74rem;}
  .poster-figure figcaption{opacity:1; transform:none; font-size:.68rem;}
}

@media (prefers-reduced-motion: reduce){
  .poster-figure img, .festive-card{transition:none;}
}

/* =========================================================
   OUR STORY VIDEO — broad frame, baked-in bars cropped off

   The file is a 476x848 portrait canvas with a ~16:9 recording
   centred on it and BLACK PADDING above and below, baked into the
   video itself. object-fit:cover on a 16:9 frame shows the middle
   268px of the 848px canvas — just inside the ~275px content band
   — so the black is pushed outside the frame.

   If a sliver of black still shows, raise the ratio (16/9 -> 1.85/1).
   If the picture looks over-cropped, lower it (16/9 -> 16/10).
   ========================================================= */
.story-video-frame{
  /* clears the aspect-ratio:16/9 set on this class earlier in the file */
  aspect-ratio:16 / 9;
  width:100%;
  height:auto;
  position:relative;
  background:#000;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-soft);
  cursor:default;
}
.story-video-frame video{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  display:block; background:#000;
}

/* =========================================================
   START YOUR JOURNEY (study-abroad.html) + ENQUIRY FORM
   ========================================================= */
.journey-section{padding-top:3.5rem;}
.journey-card{
  display:grid; grid-template-columns:1.35fr 1fr; gap:2.5rem; align-items:center;
  padding:2.75rem; border-radius:var(--radius-lg); color:#fff; position:relative; overflow:hidden;
  background:
    radial-gradient(120% 130% at 100% 0%, rgba(216,30,44,.55), transparent 58%),
    linear-gradient(135deg, var(--teal-900), var(--teal-700));
  box-shadow:var(--shadow-soft);
}
.journey-card::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:4px;
  background:linear-gradient(90deg, var(--terracotta), #f6b700, var(--terracotta-light));
  background-size:300% 100%; animation:hueSlide 9s linear infinite;
}
@media (max-width:991px){ .journey-card{grid-template-columns:1fr; padding:1.9rem; gap:1.75rem;} }

.journey-title{
  color:#fff; margin-bottom:.75rem;
  -webkit-text-fill-color:#fff; background:none;
}
.journey-sub{color:#d7dcf5; font-size:1rem; line-height:1.7; margin-bottom:1.25rem;}
.journey-points{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem;}
.journey-points li{
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
  border-radius:999px; padding:.32rem .8rem; font-size:.78rem; font-weight:600;
}
.journey-points i{color:#f6b700; font-size:.68rem;}

.journey-actions{display:flex; flex-direction:column; gap:.85rem;}
.journey-btn{
  display:flex; flex-direction:column; align-items:flex-start; gap:.15rem;
  text-align:left; padding:.95rem 1.35rem; border-radius:14px; font-size:1rem; line-height:1.3;
}
.journey-btn span{font-size:.75rem; font-weight:500; opacity:.85;}
.journey-btn i{font-size:.9rem;}

/* ---------- Enquiry page ---------- */
.enquiry-steps{list-style:none; margin:0 0 1.75rem; padding:0;}
.enquiry-steps li{display:flex; gap:.85rem; align-items:flex-start; padding:.6rem 0;}
.enquiry-steps li > span{
  width:30px; height:30px; flex-shrink:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--terracotta); color:#fff; font-weight:800; font-size:.85rem;
}
.enquiry-steps strong{display:block; color:var(--teal-900); font-size:.94rem;}
.enquiry-steps p{margin:0; font-size:.83rem; color:var(--slate);}
.enquiry-aside{
  background:var(--cream); border:1px solid rgba(13,27,94,.08);
  border-radius:var(--radius-md); padding:1.1rem;
}
.enquiry-legend{
  display:flex; align-items:center; gap:.55rem; margin:0 0 1rem;
  font-size:.76rem; font-weight:800; letter-spacing:.12em;
  text-transform:uppercase; color:var(--teal-900);
  padding-bottom:.6rem; border-bottom:1px dashed rgba(13,27,94,.16);
}
.enquiry-legend i{color:var(--terracotta); font-size:.85rem;}
.req{color:var(--terracotta);}
.enquiry-actions{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.75rem;}
.enquiry-actions .btn{flex:1 1 auto; min-width:190px;}
.enquiry-note{
  margin:1rem 0 0; font-size:.78rem; color:var(--slate);
  background:rgba(13,27,94,.04); border-radius:10px; padding:.65rem .85rem;
}

/* =========================================================
   HAPPY CLIENTS — approval wall (index.html)
   Two rows of client approval cards drifting in opposite
   directions. Thumbnails only; the full image loads on click.
   ========================================================= */
.happy-section{
  background:
    radial-gradient(80% 60% at 50% 0%, rgba(63,95,224,.10), transparent 60%),
    linear-gradient(180deg, #fbfcff, var(--cream));
  overflow:hidden;
}
.happy-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:2rem; flex-wrap:wrap; margin-bottom:2.25rem;
}
.happy-stat{
  display:flex; align-items:center; gap:.7rem; flex-shrink:0;
  background:var(--white); border:1px solid rgba(13,27,94,.08);
  border-radius:var(--radius-md); padding:.9rem 1.3rem;
  box-shadow:var(--shadow-tight);
}
.happy-stat strong{
  font-family:var(--font-display); font-size:2.2rem; line-height:1; font-weight:800;
  background:linear-gradient(100deg, var(--teal-900), var(--terracotta));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.happy-stat span{
  font-size:.72rem; font-weight:700; line-height:1.3;
  text-transform:uppercase; letter-spacing:.08em; color:var(--slate);
}

.happy-grid{
  display:grid; gap:.9rem;
  grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));
  margin-bottom:1.5rem;
}
.happy-more{display:flex; justify-content:center; margin-bottom:1.25rem;}


#clientModal .modal-dialog{max-width:min(620px, 94vw);}
#clientModal .poster-modal-body{max-height:80vh;}

@media (max-width:767px){
  .happy-card{width:150px;}
  .happy-stat strong{font-size:1.8rem;}
}
@media (prefers-reduced-motion: reduce){
  .happy-row{animation:none !important;}
  .happy-wall{overflow-x:auto;}
}

/* ---------- Happy Clients grid: card tag + reveal ---------- */
.happy-card-tag{
  position:absolute; left:8px; bottom:8px; z-index:2;
  display:inline-flex; align-items:center; gap:.3rem;
  background:rgba(13,27,94,.85); color:#fff;
  border-radius:999px; padding:.18rem .55rem;
  font-size:.62rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  opacity:0; transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.happy-card-tag i{color:#6ee7a8; font-size:.6rem;}
.happy-card:hover .happy-card-tag{opacity:1; transform:none;}
@media (max-width:767px){
  .happy-grid{grid-template-columns:repeat(auto-fill, minmax(118px, 1fr)); gap:.6rem;}
  .happy-card-tag{opacity:1; transform:none;}
}

/* =========================================================
   STUDY ABROAD — universities, scholarships, intakes, FAQ
   ========================================================= */
.uni-section{background:linear-gradient(180deg,#fbfcff,var(--cream));}
.uni-card{
  height:100%; display:flex; flex-direction:column; overflow:hidden;
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-lg); box-shadow:0 8px 22px -16px rgba(13,27,94,.45);
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .3s ease;
}
.uni-card:hover{transform:translateY(-6px); border-color:rgba(216,30,44,.25);
  box-shadow:0 28px 55px -30px rgba(13,27,94,.6);}
.uni-media{position:relative; height:170px; overflow:hidden;}
.uni-media > img:first-child{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.uni-card:hover .uni-media > img:first-child{transform:scale(1.07);}
.uni-media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 35%, rgba(13,27,94,.88));}
.uni-media h5{position:absolute; left:1rem; bottom:.8rem; z-index:2; margin:0;
  color:#fff; font-family:var(--font-display); font-weight:700; font-size:1.2rem;}
.uni-flag{position:absolute; top:12px; right:12px; z-index:2;
  width:42px; height:42px; border-radius:50%; object-fit:cover;
  border:2.5px solid #fff; box-shadow:0 4px 12px rgba(0,0,0,.4);}
.uni-body{padding:1.1rem 1.2rem 1.2rem; display:flex; flex-direction:column; flex-grow:1;}
.uni-list{list-style:none; margin:0 0 .9rem; padding:0; flex-grow:1;}
.uni-list li{display:flex; gap:.5rem; align-items:flex-start; padding:.22rem 0;
  font-size:.84rem; line-height:1.5; color:var(--slate);}
.uni-list i{margin-top:.25rem; font-size:.66rem; color:var(--teal-600); flex-shrink:0;}
.uni-perk{display:flex; align-items:center; gap:.45rem; margin:0 0 .9rem;
  background:rgba(246,183,0,.14); border:1px solid rgba(246,183,0,.3);
  border-radius:8px; padding:.45rem .7rem; font-size:.76rem; font-weight:700; color:#8a6400;}
.uni-perk i{font-size:.7rem;}
.uni-note{margin:2rem 0 0; padding:.85rem 1rem; border-radius:var(--radius-md);
  background:rgba(13,27,94,.05); color:var(--slate); font-size:.8rem; line-height:1.6;}

/* ---------- Scholarships ---------- */
.schol-section{background:linear-gradient(180deg,var(--cream),#fbfcff);}
.schol-hero{position:relative; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-soft);}
.schol-hero img{width:100%; height:300px; object-fit:cover; display:block;}
.schol-hero-stat{position:absolute; left:1.2rem; bottom:1.2rem;
  background:rgba(255,255,255,.95); border-radius:var(--radius-md);
  padding:.7rem 1.1rem; box-shadow:var(--shadow-tight);}
.schol-hero-stat strong{display:block; font-family:var(--font-display); font-size:1.6rem;
  font-weight:800; color:var(--teal-900); line-height:1;}
.schol-hero-stat span{font-size:.74rem; font-weight:600; color:var(--slate);}
.schol-card{height:100%; display:flex; flex-direction:column; overflow:hidden;
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-lg); box-shadow:0 8px 22px -16px rgba(13,27,94,.45);
  transition:transform .35s ease, box-shadow .35s ease;}
.schol-card:hover{transform:translateY(-5px); box-shadow:0 24px 46px -26px rgba(13,27,94,.55);}
.schol-media{position:relative; height:130px; overflow:hidden;}
.schol-media img{width:100%; height:100%; object-fit:cover; display:block;}
.schol-tag{position:absolute; top:10px; left:10px;
  background:var(--terracotta); color:#fff; border-radius:999px;
  padding:.18rem .6rem; font-size:.64rem; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase;}
.schol-body{padding:1rem 1.1rem 1.1rem;}
.schol-body h5{display:flex; align-items:center; gap:.45rem; margin:0 0 .5rem;
  font-size:.98rem; font-weight:700; color:var(--teal-900);}
.schol-body h5 i{color:var(--terracotta); font-size:.85rem;}
.schol-body p{font-size:.82rem; line-height:1.6; color:var(--slate); margin:0 0 .7rem;}
.schol-body ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.3rem;}
.schol-body ul li{background:var(--cream); border-radius:999px; padding:.18rem .55rem;
  font-size:.7rem; font-weight:600; color:var(--teal-800);}

/* ---------- Intakes + timeline ---------- */
.intake-grid{display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.intake-card{position:relative; background:var(--white); border:1px solid rgba(13,27,94,.08);
  border-radius:var(--radius-lg); padding:1.4rem 1.3rem; box-shadow:var(--shadow-tight);
  transition:transform .3s ease, box-shadow .3s ease;}
.intake-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-soft);}
.intake-badge{display:inline-block; background:rgba(13,27,94,.08); color:var(--teal-800);
  border-radius:999px; padding:.18rem .6rem; font-size:.64rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; margin-bottom:.6rem;}
.intake-badge.intake-main{background:var(--terracotta); color:#fff;}
.intake-card h5{margin:0 0 .4rem; font-family:var(--font-display); font-weight:700;
  font-size:1.15rem; color:var(--teal-900);}
.intake-card p{font-size:.85rem; line-height:1.6; color:var(--slate); margin:0 0 .5rem;}
.intake-when{display:flex; align-items:center; gap:.4rem; margin:0 !important;
  font-size:.76rem !important; font-weight:700; color:var(--teal-700) !important;}

.timeline-steps{list-style:none; margin:0; padding:0; display:grid; gap:1rem;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.timeline-steps li{display:flex; gap:.75rem; align-items:flex-start;
  background:var(--white); border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:1rem;}
.timeline-steps li > span{width:30px; height:30px; flex-shrink:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,var(--teal-900),var(--teal-600));
  color:#fff; font-weight:800; font-size:.85rem;}
.timeline-steps strong{display:block; color:var(--teal-900); font-size:.9rem;}
.timeline-steps p{margin:0; font-size:.8rem; color:var(--slate); line-height:1.5;}

/* ---------- FAQ ---------- */
.faq-accordion .accordion-item{border:1px solid rgba(13,27,94,.09);
  border-radius:var(--radius-md) !important; margin-bottom:.7rem; overflow:hidden;}
.faq-accordion .accordion-button{font-weight:700; color:var(--teal-900);
  font-size:.95rem; background:var(--white);}
.faq-accordion .accordion-button:not(.collapsed){background:var(--cream);
  color:var(--teal-900); box-shadow:none;}
.faq-accordion .accordion-button:focus{box-shadow:none; border-color:rgba(216,30,44,.3);}
.faq-accordion .accordion-body{font-size:.88rem; line-height:1.7; color:var(--slate);}

/* =========================================================
   GENERIC SLIDER  [data-slider]
   Native scroll-snap track with arrow buttons, so touch swipe
   and trackpad scrolling work without extra JS.
   ========================================================= */
.slider{position:relative;}
.slider-track{
  display:flex; gap:1rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding:.5rem .25rem 1.25rem;
  scrollbar-width:thin; scrollbar-color:rgba(13,27,94,.25) transparent;
}
.slider-track::-webkit-scrollbar{height:8px;}
.slider-track::-webkit-scrollbar-track{background:transparent;}
.slider-track::-webkit-scrollbar-thumb{background:rgba(13,27,94,.22); border-radius:999px;}
.slider-track::-webkit-scrollbar-thumb:hover{background:rgba(13,27,94,.4);}
.slider-item{flex:0 0 auto; scroll-snap-align:start; width:320px;}

.slider-nav{
  position:absolute; top:calc(50% - 1rem); z-index:5;
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:none; color:#fff; cursor:pointer;
  background:linear-gradient(135deg, var(--teal-900), var(--teal-700));
  box-shadow:0 8px 20px -8px rgba(13,27,94,.8);
  transition:transform .2s ease, opacity .2s ease, background .2s ease;
}
.slider-nav:hover:not(:disabled){transform:scale(1.08); background:var(--terracotta);}
.slider-nav:disabled{opacity:.3; cursor:default;}
.slider-prev{left:-14px;}
.slider-next{right:-14px;}
.slider-static .slider-nav{display:none;}

@media (max-width:991px){
  .slider-item{width:270px;}
  .slider-prev{left:-6px;}
  .slider-next{right:-6px;}
  .slider-nav{width:38px; height:38px;}
}
@media (max-width:575px){ .slider-item{width:230px;} }

/* Happy Clients: every poster shown WHOLE. The set is a mix of 1:1 and 4:5,
   so the slide is sized by height and the width follows each image's own
   ratio — no cropping and no letterbox bars. */
.happy-track{align-items:stretch;}
.happy-track .slider-item{width:auto;}
.happy-slide .happy-card{height:250px; width:auto; background:#fff;}
.happy-slide .happy-card img{height:100%; width:auto; aspect-ratio:auto; object-fit:contain; display:block;}
@media (max-width:575px){ .happy-slide .happy-card{height:190px;} }

/* =========================================================
   NAVBAR CONSISTENCY ACROSS PAGES
   The bar and .booking-hero are both royal-blue gradients, so on the
   inner pages they merged into one block while on the home page the
   bar sat over a photo and read clearly. Give the bar its own edge and
   shadow on every page, and make sure the taller (84px logo) bar is
   properly cleared by the hero beneath it.
   ========================================================= */
.navbar-sahyog{
  box-shadow:0 6px 24px -10px rgba(0,0,0,.55);
  border-bottom:3px solid var(--terracotta);
}
/* hero sits under a ~104px fixed bar (84px logo + padding) */
.booking-hero{padding-top:10.5rem !important;}
@media (max-width:1199.98px){ .booking-hero{padding-top:8.5rem !important;} }
@media (max-width:575px){ .booking-hero{padding-top:7.5rem !important;} }

/* anchor jumps should stop below the bar, not behind it */
html{scroll-padding-top:120px;}

/* =========================================================
   MOBILE SAFETY NET
   Nothing should be able to push the page wider than the screen,
   and a shared link must land on a usable page on any device.
   ========================================================= */
/* overflow-x:hidden here turns the page into a scroll container, and that
   quietly kills position:sticky everywhere - the "Ready to Apply" panel
   scrolled away instead of staying put. clip stops sideways scrolling the
   same way without creating that container. hidden stays as the fallback
   for browsers that do not know clip. */
html, body{max-width:100%; overflow-x:hidden;}
@supports (overflow: clip) {
  html, body{overflow-x:clip;}
}
img, video, iframe, canvas, svg{max-width:100%;}
/* long unbroken strings (emails, URLs) must not stretch a card */
p, li, h1, h2, h3, h4, h5, h6, td, dd, a{overflow-wrap:anywhere;}

@media (max-width:575px){
  /* hero and section headings scale down rather than overflow */
  .section{padding:3rem 0;}
  .section-title{font-size:clamp(1.4rem, 6vw, 1.9rem);}
  .section-title-lg{font-size:clamp(1.6rem, 7vw, 2.2rem);}
  .section-sub{font-size:.94rem;}

  /* stacked, full-width buttons read better than cramped rows */
  .journey-actions .btn,
  .enquiry-actions .btn,
  .checklist-actions .btn{width:100%; min-width:0;}

  /* the floating call/WhatsApp buttons must not cover content */
  .floating-contact{right:12px; bottom:12px;}
  .floating-contact a{width:48px; height:48px; font-size:1.2rem;}
  .floating-contact .fc-label{display:none;}

  /* modals use the full screen on a phone */
  .checklist-modal .modal-dialog,
  .poster-modal .modal-dialog{margin:.5rem; max-width:calc(100% - 1rem);}
  .checklist-hero{padding:1.1rem 1rem .9rem;}
  .checklist-meta{gap:.35rem;}
  .checklist-chip{font-size:.72rem; padding:.28rem .7rem;}
}

/* tap targets stay finger-sized on touch devices */
@media (hover: none){
  .slider-nav{width:42px; height:42px;}
  .nav-link{padding-top:.65rem !important; padding-bottom:.65rem !important;}
}

/* =========================================================
   CONTINUOUS MARQUEE  [data-marquee]
   A strip that never stops. Items are duplicated in JS, so
   translating the track by -50% returns to the same frame and
   the seam is invisible.
   ========================================================= */
.marquee{
  position:relative; overflow:hidden;
  /* fade the strip out at both edges so items enter and leave softly */
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.marquee-track{
  display:flex; align-items:stretch; gap:1rem; width:max-content;
  animation-name:marqueeScroll;
  animation-timing-function:linear;
  animation-iteration-count:infinite;
  will-change:transform;
}
@keyframes marqueeScroll{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(-50%,0,0);}
}
.marquee-item{flex:0 0 auto;}

/* Stop the strip while the visitor is looking at a card, so they can
   actually read it or click it without chasing a moving target. */
.marquee:hover .marquee-track,
.marquee:focus-within .marquee-track{animation-play-state:paused;}

.uni-slide{width:330px;}
@media (max-width:991px){ .uni-slide{width:280px;} }
@media (max-width:575px){ .uni-slide{width:240px;} }

.happy-track .marquee-item{width:auto;}

@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none; width:auto; overflow-x:auto;}
  .marquee{mask-image:none; -webkit-mask-image:none;}
}

/* =========================================================
   STUDY ABROAD — light hero, roadmap, bubbles, services
   ========================================================= */
.edu-hero{
  padding:9rem 0 3.5rem;
  background:
    radial-gradient(70% 90% at 85% 10%, rgba(63,95,224,.13), transparent 62%),
    linear-gradient(180deg,#eef2ff,#f7f9ff 60%,var(--cream));
}
@media (max-width:1199.98px){ .edu-hero{padding-top:7.5rem;} }
.edu-hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:3rem; align-items:center;}
@media (max-width:991px){ .edu-hero-grid{grid-template-columns:1fr; gap:2rem;} }
.edu-hero-text h1{
  font-family:var(--font-display); font-weight:800; color:var(--teal-900);
  font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.12; margin:.25rem 0 1rem;
}
.edu-hero-sub{font-size:1.08rem; line-height:1.7; color:var(--slate); margin-bottom:1.75rem; max-width:34rem;}
.edu-hero-cta{display:flex; flex-wrap:wrap; gap:.75rem;}
.edu-hero-media{position:relative;}
.edu-hero-media img{
  width:100%; border-radius:24px; display:block;
  aspect-ratio:4/3; object-fit:cover; box-shadow:var(--shadow-soft);
}
.edu-hero-badge{
  position:absolute; left:-10px; bottom:-14px;
  display:flex; align-items:center; gap:.6rem;
  background:#fff; border-radius:14px; padding:.75rem 1rem;
  box-shadow:var(--shadow-tight);
}
.edu-hero-badge i{color:#16a34a; font-size:1.2rem;}
.edu-hero-badge strong{display:block; font-size:.9rem; color:var(--teal-900);}
.edu-hero-badge span{font-size:.76rem; color:var(--slate);}
@media (max-width:991px){ .edu-hero-badge{left:10px;} }

.edu-stats{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1rem;
  margin-top:3.25rem; background:#fff; border-radius:var(--radius-lg);
  padding:1.4rem; box-shadow:var(--shadow-tight);
}
.edu-stat{text-align:center;}
.edu-stat i{color:var(--teal-600); font-size:1.4rem; display:block; margin-bottom:.4rem;}
.edu-stat strong{display:block; font-family:var(--font-display); font-size:1.5rem; color:var(--teal-900);}
.edu-stat span{font-size:.78rem; color:var(--slate);}

/* ---------- Roadmap ---------- */
.roadmap{position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-top:2.5rem;}
.roadmap-line{
  position:absolute; left:6%; right:6%; top:26px; height:4px; border-radius:2px;
  background:repeating-linear-gradient(90deg, var(--teal-600) 0 14px, transparent 14px 26px);
}
.roadmap-stop{position:relative; text-align:center;}
.roadmap-pin{
  position:relative; z-index:2; display:flex; align-items:center; justify-content:center;
  width:54px; height:54px; margin:0 auto 1rem; border-radius:50%;
  background:linear-gradient(135deg,var(--teal-900),var(--teal-600));
  color:#fff; font-weight:800; font-size:1.1rem;
  box-shadow:0 0 0 6px #fff, 0 8px 20px -10px rgba(13,27,94,.8);
}
.roadmap-stop:last-child .roadmap-pin{background:linear-gradient(135deg,var(--terracotta),var(--terracotta-light));}
.roadmap-card{background:#fff; border:1px solid rgba(13,27,94,.07); border-radius:var(--radius-md); padding:1rem .9rem; height:100%;}
.roadmap-card h5{font-size:.92rem; font-weight:700; color:var(--teal-900); margin:0 0 .35rem;}
.roadmap-card p{font-size:.8rem; line-height:1.55; color:var(--slate); margin:0;}
@media (max-width:991px){
  .roadmap{grid-template-columns:1fr; gap:.75rem;}
  .roadmap-line{left:26px; right:auto; top:6%; bottom:6%; width:4px; height:auto;
    background:repeating-linear-gradient(180deg, var(--teal-600) 0 14px, transparent 14px 26px);}
  .roadmap-stop{display:flex; gap:1rem; text-align:left; align-items:flex-start;}
  .roadmap-pin{margin:0; width:46px; height:46px; flex-shrink:0;}
}

/* ---------- Included list, compact ---------- */
.incl-grid{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.5rem;}
.incl-chip{
  display:inline-flex; align-items:center; gap:.5rem;
  background:#fff; border:1px solid rgba(13,27,94,.09); border-radius:999px;
  padding:.6rem 1.1rem; font-size:.88rem; font-weight:600; color:var(--teal-900);
  box-shadow:0 4px 12px -9px rgba(13,27,94,.5);
  transition:transform .2s ease, border-color .2s ease;
}
.incl-chip:hover{transform:translateY(-3px); border-color:rgba(216,30,44,.3);}
.incl-chip i{color:var(--terracotta); font-size:.85rem;}

/* ---------- University networks ---------- */
.grp-item{width:250px;}
.grp-card{background:#fff; border:1px solid rgba(13,27,94,.08); border-radius:var(--radius-lg);
  padding:1.3rem; height:100%; text-align:center; box-shadow:var(--shadow-tight);}
.grp-mark{
  display:flex; align-items:center; justify-content:center;
  width:62px; height:62px; margin:0 auto .8rem; border-radius:16px;
  background:var(--mark); color:#fff; font-weight:800; font-size:1.05rem; letter-spacing:.02em;
}
.grp-card h5{font-size:1rem; font-weight:700; color:var(--teal-900); margin:0 0 .2rem;}
.grp-card p{font-size:.8rem; color:var(--slate); margin:0;}

/* ---------- Top universities ---------- */
.uni-country{display:flex; align-items:center; gap:.4rem; margin:0 0 .8rem;
  font-size:.82rem; font-weight:600; color:var(--slate);}
.uni-country i{color:var(--terracotta); font-size:.7rem;}

/* ---------- Test prep bubbles ---------- */
.testprep-section{background:linear-gradient(180deg,#fbfcff,var(--cream));}
.bubble-field{display:flex; flex-wrap:wrap; justify-content:center; gap:1.1rem; margin-top:2.5rem;}
.bubble{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:132px; height:132px; border-radius:50%; text-align:center;
  background:linear-gradient(140deg,var(--teal-900),var(--teal-600));
  color:#fff; font-weight:800; font-size:1.05rem;
  box-shadow:0 14px 30px -16px rgba(13,27,94,.85);
  animation:bubbleFloat 5s ease-in-out infinite;
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.bubble small{display:block; font-size:.66rem; font-weight:600; opacity:.85; margin-top:.2rem;}
.bubble:hover{transform:scale(1.09);}
.bubble-lg{width:156px; height:156px; font-size:1.25rem;
  background:linear-gradient(140deg,var(--terracotta),var(--terracotta-light));}
.bubble-md{width:142px; height:142px;}
.bubble-sm{width:116px; height:116px; font-size:.95rem;}
.bubble:nth-child(2n){animation-delay:-1.2s;}
.bubble:nth-child(3n){animation-delay:-2.4s;}
.bubble:nth-child(5n){animation-delay:-3.6s;}
@keyframes bubbleFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-12px);}}
@media (max-width:575px){
  .bubble{width:104px; height:104px; font-size:.9rem;}
  .bubble-lg{width:120px; height:120px; font-size:1rem;}
  .bubble-md{width:110px; height:110px;}
  .bubble-sm{width:96px; height:96px; font-size:.82rem;}
}

/* ---------- Services ---------- */
.svc-section{background:linear-gradient(180deg,var(--cream),#fbfcff);}
.svc-card{
  height:100%; background:#fff; border:1px solid rgba(13,27,94,.08);
  border-radius:var(--radius-lg); padding:1.5rem;
  box-shadow:0 8px 22px -16px rgba(13,27,94,.45);
  transition:transform .35s cubic-bezier(.22,.61,.36,1), box-shadow .35s ease, border-color .3s ease;
}
.svc-card:hover{transform:translateY(-6px); border-color:rgba(216,30,44,.25);
  box-shadow:0 28px 55px -30px rgba(13,27,94,.6);}
.svc-icon{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:14px; margin-bottom:1rem;
  background:linear-gradient(135deg,var(--teal-900),var(--teal-600));
  color:#fff; font-size:1.2rem;
}
.svc-card h5{font-size:1.02rem; font-weight:700; color:var(--teal-900); margin:0 0 .5rem;}
.svc-card p{font-size:.86rem; line-height:1.65; color:var(--slate); margin:0 0 .9rem;}
.svc-link{display:inline-flex; align-items:center; gap:.35rem; font-size:.84rem;
  font-weight:700; color:var(--terracotta);}
.svc-link i{font-size:.66rem; transition:transform .2s ease;}
.svc-card:hover .svc-link i{transform:translateX(3px);}

/* ---------- Destination cards ---------- */
.dest-item{width:230px;}
.dest-card{position:relative; display:block; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:var(--shadow-tight);}
.dest-card img:first-child{width:100%; height:150px; object-fit:cover; display:block;}
.dest-card::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(13,27,94,.9));}
.dest-flag{position:absolute; top:10px; right:10px; z-index:2; width:38px; height:38px;
  border-radius:50%; object-fit:cover; border:2.5px solid #fff; box-shadow:0 4px 10px rgba(0,0,0,.4);}
.dest-card span{position:absolute; left:1rem; bottom:.8rem; z-index:2; color:#fff;
  font-family:var(--font-display); font-weight:700; font-size:1.05rem;}

/* =========================================================
   STUDY ABROAD v3 — portrait hero, winding road, network and
   service cards. Overrides the earlier blocks above.
   ========================================================= */

/* ---------- Hero: cut-out style student portrait ---------- */
.edu-hero-media img{
  aspect-ratio:auto; height:clamp(340px, 42vw, 520px);
  width:100%; object-fit:cover; object-position:center top;
  border-radius:0 0 0 0;
  background:transparent; box-shadow:none;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 40%, #000 62%, transparent 86%);
  mask-image:radial-gradient(120% 100% at 50% 40%, #000 62%, transparent 86%);
}
@media (max-width:991px){
  .edu-hero-media img{height:300px; object-position:center 20%;}
}

/* ---------- Winding road ---------- */
.road-section{background:linear-gradient(180deg,#fbfcff,var(--cream));}
.road{
  position:relative; list-style:none; margin:2.5rem 0 0; padding:0;
  display:grid; grid-template-columns:repeat(6,1fr); gap:1rem; min-height:360px;
}
.road-path{position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;}
.road-stop{position:relative; z-index:1; text-align:center; align-self:start;}
/* lift alternate stops so they follow the curve of the road */
.road-stop:nth-child(3){margin-top:0;}
.road-stop:nth-child(4){margin-top:86px;}
.road-stop:nth-child(5){margin-top:132px;}
.road-stop:nth-child(6){margin-top:36px;}
.road-stop:nth-child(7){margin-top:118px;}
.road-node{
  display:flex; align-items:center; justify-content:center;
  width:50px; height:50px; margin:0 auto .8rem; border-radius:50%;
  background:linear-gradient(140deg,var(--teal-900),var(--teal-600));
  color:#fff; font-weight:800; font-size:1.05rem;
  box-shadow:0 0 0 6px #fff, 0 10px 22px -10px rgba(13,27,94,.9);
}
.road-stop:last-child .road-node{background:linear-gradient(140deg,var(--terracotta),var(--terracotta-light));}
.road-card{
  background:#fff; border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:.9rem .85rem;
  box-shadow:0 8px 20px -16px rgba(13,27,94,.6);
}
.road-card h5{font-size:.9rem; font-weight:700; color:var(--teal-900); margin:0 0 .3rem;}
.road-card p{font-size:.78rem; line-height:1.55; color:var(--slate); margin:0;}
@media (max-width:991px){
  .road{grid-template-columns:1fr; gap:.8rem; min-height:0;}
  .road-path{display:none;}
  .road-stop{display:flex; gap:1rem; text-align:left; align-items:flex-start; margin-top:0 !important;}
  .road-stop::before{
    content:""; position:absolute; left:24px; top:50px; bottom:-14px; width:3px;
    background:repeating-linear-gradient(180deg,var(--terracotta) 0 8px,transparent 8px 16px);
    opacity:.45;
  }
  .road-stop:last-child::before{display:none;}
  .road-node{margin:0; flex-shrink:0;}
  .road-card{flex:1;}
}

/* ---------- University network cards ---------- */
.net-item{width:280px;}
.net-card{
  height:100%; background:#fff; border:1px solid rgba(13,27,94,.08);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-tight);
}
.net-media{height:140px; overflow:hidden;}
.net-media img{width:100%; height:100%; object-fit:cover; display:block;}
.net-body{padding:1rem 1.1rem 1.2rem;}
.net-body h5{font-size:1.02rem; font-weight:700; color:var(--teal-900); margin:0 0 .3rem;}
.net-country{display:flex; align-items:center; gap:.35rem; margin:0 0 .4rem;
  font-size:.8rem; font-weight:600; color:var(--terracotta);}
.net-country i{font-size:.68rem;}
.net-note{font-size:.8rem; line-height:1.55; color:var(--slate); margin:0;}

/* ---------- Service cards with imagery ---------- */
.svc-card{padding:0; overflow:hidden;}
.svc-media{position:relative; height:150px; overflow:hidden;}
.svc-media img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.svc-card:hover .svc-media img{transform:scale(1.07);}
.svc-media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(13,27,94,.55));}
.svc-media .svc-icon{
  position:absolute; left:1rem; bottom:-22px; z-index:2; margin:0;
  box-shadow:0 8px 18px -8px rgba(13,27,94,.9);
}
.svc-body{padding:2rem 1.3rem 1.4rem;}

/* =========================================================
   STUDY ABROAD v4 — single banner, clear road, round orbs
   ========================================================= */

/* ---------- One full-width banner ---------- */
.edu-banner{
  position:relative; overflow:hidden; isolation:isolate;
  min-height:clamp(430px, 58vh, 620px);
  display:flex; align-items:center;
  padding:9rem 0 4rem; color:#fff;
}
.edu-banner-bg{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:-2;
}
.edu-banner::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(100deg, rgba(13,27,94,.92) 0%, rgba(13,27,94,.68) 46%, rgba(216,30,44,.30) 100%),
    radial-gradient(110% 80% at 12% 100%, rgba(216,30,44,.35), transparent 62%);
}
.edu-banner-inner{position:relative;}
.edu-banner h1{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(2rem,4.6vw,3.4rem); line-height:1.12;
  margin:.25rem 0 1rem; max-width:20ch;
}
.edu-banner-sub{
  font-size:1.06rem; line-height:1.7; color:#dfe4fb;
  max-width:44ch; margin-bottom:1.75rem;
}
.edu-banner-cta{display:flex; flex-wrap:wrap; gap:.75rem;}
.edu-banner .breadcrumb-trail{margin-bottom:.75rem;}
@media (max-width:1199.98px){ .edu-banner{padding-top:7.5rem;} }

/* ---------- Snaking road ---------- */
.road-section{background:linear-gradient(180deg,#fbfcff,var(--cream));}
.road{
  position:relative; list-style:none; margin:2.5rem 0 0; padding:0;
  aspect-ratio:1200 / 700;
}
.road-path{position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;}
.road-surface{
  fill:none; stroke:#e4e7f2; stroke-width:30;
  stroke-linecap:round; stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
.road-dash{
  fill:none; stroke:#fff; stroke-width:3;
  stroke-dasharray:14 16; stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}
.road-stop{position:absolute; transform:translate(-50%,-50%); width:210px; text-align:center;}
.road-node{
  position:relative; z-index:3; display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; margin:0 auto; border-radius:50%;
  background:var(--teal-900); color:#fff; font-weight:800; font-size:1rem;
  box-shadow:0 0 0 5px #fff, 0 8px 18px -8px rgba(13,27,94,.9);
}
.road-stop:last-child .road-node{background:var(--terracotta);}
.road-card{
  position:absolute; left:50%; transform:translateX(-50%); width:210px;
  background:#fff; border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:.8rem .85rem; text-align:left;
  box-shadow:0 10px 26px -18px rgba(13,27,94,.7);
}
.road-below .road-card{top:60px;}
.road-above .road-card{bottom:60px;}
.road-card h5{font-size:.9rem; font-weight:700; color:var(--teal-900); margin:0 0 .25rem;}
.road-card p{font-size:.77rem; line-height:1.5; color:var(--slate); margin:0;}

@media (max-width:991px){
  .road{aspect-ratio:auto; display:grid; gap:.8rem;}
  .road-path{display:none;}
  .road-stop{
    position:relative; left:auto !important; top:auto !important;
    transform:none; width:auto; display:flex; gap:1rem; align-items:flex-start; text-align:left;
  }
  .road-stop::before{
    content:""; position:absolute; left:23px; top:48px; bottom:-14px; width:3px;
    background:repeating-linear-gradient(180deg,var(--teal-600) 0 8px,transparent 8px 16px);
    opacity:.4;
  }
  .road-stop:last-child::before{display:none;}
  .road-node{flex-shrink:0; margin:0;}
  .road-card{position:static; transform:none; width:auto; flex:1;}
}

/* ---------- Round destination orbs ---------- */
.dest-item{width:auto;}
.dest-orb{display:flex; flex-direction:column; align-items:center; gap:.7rem; text-align:center;}
.dest-ring{
  position:relative; display:block; width:150px; height:150px; border-radius:50%;
  padding:5px; background:linear-gradient(140deg,var(--teal-700),var(--terracotta));
  box-shadow:0 12px 26px -16px rgba(13,27,94,.8);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.dest-orb:hover .dest-ring{transform:translateY(-6px) scale(1.05);}
.dest-ring > img:first-child{
  width:100%; height:100%; border-radius:50%; object-fit:cover; display:block;
}
.dest-flag{
  position:absolute; right:2px; bottom:2px; width:42px; height:42px;
  border-radius:50%; object-fit:cover; border:3px solid #fff;
  box-shadow:0 4px 10px rgba(0,0,0,.35);
}
.dest-name{
  font-family:var(--font-display); font-weight:700;
  font-size:.98rem; color:var(--teal-900);
}
@media (max-width:575px){
  .dest-ring{width:118px; height:118px;}
  .dest-flag{width:34px; height:34px; border-width:2.5px;}
  .dest-name{font-size:.88rem;}
}

/* =========================================================
   STUDY ABROAD v5 — compact snaking road
   Replaces the absolutely-positioned version, which ran far too
   tall and let neighbouring cards overlap. This is a plain 3x2
   grid with the road drawn behind it, so nothing can collide.
   ========================================================= */
.road-wrap{position:relative; margin-top:2.25rem;}
.road-wrap .road-path{
  position:absolute; inset:0; width:100%; height:100%;
  z-index:0; pointer-events:none;
}
.road-wrap .road{
  position:relative; z-index:1;
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.5rem 1.25rem;
}
/* second row runs right to left, the way the road doubles back */
.road-wrap .road-stop:nth-child(4){order:6;}
.road-wrap .road-stop:nth-child(5){order:5;}
.road-wrap .road-stop:nth-child(6){order:4;}

.road-wrap .road-stop{
  position:static; transform:none; width:auto; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:.7rem;
}
.road-wrap .road-node{
  position:relative; z-index:2;
  width:46px; height:46px; margin:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--teal-900); color:#fff; font-weight:800; font-size:1rem;
  box-shadow:0 0 0 5px #fff, 0 8px 18px -8px rgba(13,27,94,.9);
}
.road-wrap .road-stop:last-child .road-node{background:var(--terracotta);}
.road-wrap .road-card{
  position:static; transform:none; width:100%; max-width:290px;
  background:#fff; border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:.85rem .9rem; text-align:left;
  box-shadow:0 10px 26px -18px rgba(13,27,94,.7);
}
.road-wrap .road-card h5{font-size:.92rem; font-weight:700; color:var(--teal-900); margin:0 0 .25rem;}
.road-wrap .road-card p{font-size:.79rem; line-height:1.55; color:var(--slate); margin:0;}

@media (max-width:767px){
  .road-wrap .road{grid-template-columns:1fr; gap:.85rem;}
  .road-wrap .road-path{display:none;}
  .road-wrap .road-stop{flex-direction:row; align-items:flex-start; text-align:left; gap:1rem; order:0 !important;}
  .road-wrap .road-node{flex-shrink:0;}
  .road-wrap .road-card{max-width:none; flex:1;}
}

/* ---------- Banner: shorter, text-light ---------- */
.edu-banner{min-height:clamp(380px, 48vh, 500px); padding:8.5rem 0 3.5rem;}
.edu-banner h1{font-size:clamp(1.9rem,4.2vw,3.1rem); max-width:18ch;}
.edu-banner-sub{font-size:1.05rem; max-width:38ch; margin-bottom:1.6rem;}
@media (max-width:1199.98px){ .edu-banner{padding-top:7rem;} }

/* =========================================================
   STUDY ABROAD v6
   Light IDP-style banner, and a vertical snake roadmap that
   cannot overlap because each step owns its own grid row.
   ========================================================= */

/* ---------- Banner ---------- */
.idp-hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,#e9f6f6 0%, #f1f8fb 62%, var(--cream) 100%);
  padding:8.5rem 0 0;
}
@media (max-width:1199.98px){ .idp-hero{padding-top:7rem;} }

.idp-flight{
  position:absolute; left:2%; top:14%; width:min(46%,560px); height:auto;
  z-index:0; pointer-events:none;
}
.idp-plane{
  position:absolute; left:calc(2% + min(46%,560px) * 0.70); top:15%;
  font-size:1.5rem; color:var(--terracotta); z-index:1;
  transform:rotate(-28deg);
  animation:planeDrift 6s ease-in-out infinite;
}
@keyframes planeDrift{
  0%,100%{transform:rotate(-28deg) translate(0,0);}
  50%{transform:rotate(-28deg) translate(10px,-8px);}
}
@media (max-width:991px){ .idp-flight, .idp-plane{display:none;} }

.idp-hero-inner{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.05fr .95fr; gap:2rem; align-items:end;
}
@media (max-width:991px){
  .idp-hero-inner{grid-template-columns:1fr; gap:1.5rem;}
}
.idp-hero-text{padding-bottom:4rem;}
.idp-hero-text h1{
  font-family:var(--font-display); font-weight:800; color:#16223f;
  font-size:clamp(1.95rem,4.2vw,3.15rem); line-height:1.14;
  margin:.25rem 0 1rem; max-width:17ch;
}
.idp-hero-sub{
  font-size:1.08rem; line-height:1.7; color:#4a5268;
  max-width:36ch; margin-bottom:1.6rem;
}
.idp-hero-cta{display:flex; flex-wrap:wrap; gap:.7rem;}
.idp-hero .breadcrumb-trail a{color:var(--teal-700);}
.idp-hero .breadcrumb-trail span,
.idp-hero .breadcrumb-trail i{color:#6b7391;}

.idp-hero-media{align-self:end;}
.idp-hero-media img{
  display:block; width:100%; max-width:470px; margin-inline:auto;
  height:clamp(300px,36vw,430px); object-fit:cover; object-position:center top;
  /* soften the edges so the photo reads as a cut-out on the flat background */
  -webkit-mask-image:radial-gradient(118% 96% at 50% 34%, #000 60%, transparent 88%);
  mask-image:radial-gradient(118% 96% at 50% 34%, #000 60%, transparent 88%);
}
@media (max-width:991px){ .idp-hero-media img{height:270px;} }

/* ---------- Vertical snake roadmap ---------- */
.snake{
  position:relative; list-style:none; margin:2.5rem auto 0; padding:0;
  max-width:920px;
  display:grid; grid-template-columns:1fr 92px 1fr; row-gap:.5rem;
}
.snake-road{
  position:absolute; left:50%; top:0; transform:translateX(-50%);
  width:92px; height:100%; z-index:0; pointer-events:none;
}
.snake-surface{
  fill:none; stroke:#e2e6f1; stroke-width:30;
  stroke-linecap:round; vector-effect:non-scaling-stroke;
}
.snake-dash{
  fill:none; stroke:#fff; stroke-width:3;
  stroke-dasharray:12 14; stroke-linecap:round; vector-effect:non-scaling-stroke;
}

.snake-stop{
  position:relative; z-index:1;
  display:grid; grid-template-columns:subgrid; grid-column:1 / -1;
  align-items:center; min-height:132px;
}
.snake-node{
  grid-column:2; justify-self:center;
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:50%;
  background:var(--teal-900); color:#fff; font-weight:800; font-size:1rem;
  box-shadow:0 0 0 5px #fff, 0 8px 18px -8px rgba(13,27,94,.9);
}
.snake-stop:last-child .snake-node{background:var(--terracotta);}
.snake-card{
  background:#fff; border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:.9rem 1rem;
  box-shadow:0 10px 26px -18px rgba(13,27,94,.7);
  max-width:330px;
}
.snake-left .snake-card{grid-column:1; justify-self:end; text-align:right;}
.snake-right .snake-card{grid-column:3; justify-self:start;}
.snake-card h5{font-size:.94rem; font-weight:700; color:var(--teal-900); margin:0 0 .25rem;}
.snake-card p{font-size:.81rem; line-height:1.55; color:var(--slate); margin:0;}

@media (max-width:767px){
  .snake{grid-template-columns:46px 1fr; max-width:none;}
  .snake-road{display:none;}
  .snake-stop{min-height:0; gap:.9rem; padding-bottom:1rem;}
  .snake-node{grid-column:1;}
  .snake-left .snake-card,
  .snake-right .snake-card{grid-column:2; justify-self:stretch; text-align:left; max-width:none;}
  /* dotted connector between steps */
  .snake-stop::before{
    content:""; position:absolute; left:22px; top:52px; bottom:0; width:3px;
    background:repeating-linear-gradient(180deg,var(--teal-600) 0 8px,transparent 8px 16px);
    opacity:.4;
  }
  .snake-stop:last-child::before{display:none;}
}

/* =========================================================
   STUDY ABROAD v7
   Horizontal left-to-right roadmap, and a plain IDP-style
   banner with no decoration.
   ========================================================= */

/* ---------- Banner tweaks: photo sits on the baseline ---------- */
.idp-hero{padding-bottom:0;}
.idp-hero-inner{align-items:end;}
.idp-hero-media img{
  max-width:520px; height:clamp(320px,38vw,460px);
  object-position:center 12%;
  -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent 100%),
                     radial-gradient(120% 100% at 50% 34%, #000 62%, transparent 92%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(180deg,#000 82%,transparent 100%),
             radial-gradient(120% 100% at 50% 34%, #000 62%, transparent 92%);
  mask-composite:intersect;
}

/* ---------- Horizontal roadmap ---------- */
.hroad{
  position:relative; list-style:none; margin:2.75rem 0 0; padding:0;
  display:grid; grid-template-columns:repeat(6,1fr); column-gap:.75rem;
  /* three bands: card above | road | card below */
  grid-template-rows:minmax(130px,auto) 120px minmax(130px,auto);
  align-items:center;
}
.hroad-path{
  grid-row:2; grid-column:1 / -1;
  width:100%; height:120px; z-index:0; pointer-events:none;
}
.hroad-surface{
  fill:none; stroke:#e2e6f1; stroke-width:26;
  stroke-linecap:round; vector-effect:non-scaling-stroke;
}
.hroad-dash{
  fill:none; stroke:#fff; stroke-width:3;
  stroke-dasharray:12 14; stroke-linecap:round; vector-effect:non-scaling-stroke;
}

.hroad-stop{
  position:relative; z-index:1;
  display:grid; grid-row:1 / -1; grid-template-rows:subgrid;
  justify-items:center; text-align:center;
}
.hroad-stop:nth-child(2){grid-column:1;}
.hroad-stop:nth-child(3){grid-column:2;}
.hroad-stop:nth-child(4){grid-column:3;}
.hroad-stop:nth-child(5){grid-column:4;}
.hroad-stop:nth-child(6){grid-column:5;}
.hroad-stop:nth-child(7){grid-column:6;}

.hroad-node{
  grid-row:2; align-self:center;
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:var(--teal-900); color:#fff; font-weight:800; font-size:.98rem;
  box-shadow:0 0 0 5px #fff, 0 8px 18px -8px rgba(13,27,94,.9);
}
.hroad-stop:last-child .hroad-node{background:var(--terracotta);}

.hroad-card{
  background:#fff; border:1px solid rgba(13,27,94,.07);
  border-radius:var(--radius-md); padding:.8rem .85rem; text-align:left;
  box-shadow:0 10px 26px -18px rgba(13,27,94,.7);
  width:100%;
}
.hroad-above .hroad-card{grid-row:1; align-self:end; margin-bottom:.6rem;}
.hroad-below .hroad-card{grid-row:3; align-self:start; margin-top:.6rem;}
.hroad-card h5{font-size:.88rem; font-weight:700; color:var(--teal-900); margin:0 0 .25rem;}
.hroad-card p{font-size:.76rem; line-height:1.5; color:var(--slate); margin:0;}

/* a light stem linking each card to its node */
.hroad-above .hroad-card::after,
.hroad-below .hroad-card::after{
  content:""; position:absolute; left:50%; width:2px;
  background:repeating-linear-gradient(180deg,var(--teal-600) 0 5px,transparent 5px 10px);
  opacity:.45;
}
.hroad-above .hroad-card::after{top:100%; height:.6rem;}
.hroad-below .hroad-card::after{bottom:100%; height:.6rem;}

@media (max-width:991px){
  .hroad{grid-template-columns:44px 1fr; grid-template-rows:none; row-gap:1rem;}
  .hroad-path{display:none;}
  .hroad-stop{
    grid-row:auto !important; grid-column:1 / -1 !important;
    grid-template-rows:none; grid-template-columns:44px 1fr;
    justify-items:stretch; text-align:left; gap:.9rem; align-items:start;
  }
  .hroad-node{grid-row:auto; grid-column:1;}
  .hroad-above .hroad-card,
  .hroad-below .hroad-card{grid-row:auto; grid-column:2; margin:0;}
  .hroad-card::after{display:none !important;}
  .hroad-stop::before{
    content:""; position:absolute; left:21px; top:50px; bottom:-1rem; width:3px;
    background:repeating-linear-gradient(180deg,var(--teal-600) 0 8px,transparent 8px 16px);
    opacity:.4;
  }
  .hroad-stop:last-child::before{display:none;}
}
@media (max-width:575px){
  .hroad-card h5{font-size:.9rem;}
  .hroad-card p{font-size:.8rem;}
}

/* =========================================================
   STUDY ABROAD v8 — "Study Abroad Preparation" banner,
   rebuilt in code (no third-party artwork), plus alliance cards.
   ========================================================= */
.sa-banner{
  position:relative; overflow:hidden; isolation:isolate;
  background:
    radial-gradient(60% 80% at 80% 50%, rgba(255,255,255,.05), transparent 70%),
    linear-gradient(135deg,#1f4e5f 0%,#23586b 55%,#1c4656 100%);
  color:#fff; padding:8.5rem 0 3rem;
}
@media (max-width:1199.98px){ .sa-banner{padding-top:7rem;} }

/* decorative shapes */
.sa-hex{position:absolute; z-index:-1; aspect-ratio:1/1.1547;
  clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);}
.sa-hex::after{content:""; position:absolute; inset:5px; background:#23586b;
  clip-path:inherit;}
.sa-hex-big{width:230px; right:3%; top:14%; background:rgba(255,255,255,.85);}
.sa-hex-small{width:120px; left:44%; top:58%; background:rgba(255,255,255,.18);}
.sa-tri{position:absolute; z-index:-1; width:0; height:0;
  border-left:14px solid transparent; border-right:14px solid transparent;
  border-bottom:24px solid transparent; outline:none;}
.sa-tri::before{content:""; position:absolute; left:-12px; top:3px;
  border-left:12px solid transparent; border-right:12px solid transparent;
  border-bottom:20px solid rgba(255,255,255,.35);}
.sa-tri-1{left:4%; top:52%;}
.sa-tri-2{left:48%; top:20%;}

.sa-banner-inner{display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center;}
@media (max-width:991px){ .sa-banner-inner{grid-template-columns:1fr;} }

.sa-banner .breadcrumb-trail a,
.sa-banner .breadcrumb-trail span,
.sa-banner .breadcrumb-trail i{color:rgba(255,255,255,.75);}
.sa-bar{display:block; width:70px; height:20px; border-radius:4px;
  background:#f6a21a; margin:1rem 0 1.1rem; transform:skewX(-8deg);}
.sa-banner h1{margin:0 0 1rem; line-height:.98; font-family:'Inter',sans-serif; font-weight:900;}
.sa-line{display:block; font-size:clamp(2.6rem,6.4vw,4.8rem); letter-spacing:.01em; text-transform:uppercase;}
.sa-accent{display:block; margin-top:.35rem; color:#f6a21a;
  font-size:clamp(1.6rem,3.8vw,2.9rem); letter-spacing:.02em; text-transform:uppercase;}
.sa-sub{color:#d6e6ec; font-size:1.02rem; line-height:1.65; max-width:36ch; margin:0 0 1.2rem;}
.sa-dots{display:block; width:62px; height:42px; margin:0 0 1.2rem;
  background-image:radial-gradient(#f6a21a 4.5px, transparent 5px);
  background-size:21px 21px;}
.sa-register{
  display:inline-flex; align-items:center; background:#f6a21a; color:#10303c;
  font-weight:800; border-radius:8px; padding:.7rem 1.4rem; font-size:1rem;
  box-shadow:0 10px 22px -12px rgba(0,0,0,.6);
  transition:transform .2s ease, background .2s ease;
}
.sa-register:hover{background:#ffb843; color:#10303c; transform:translateY(-2px);}

/* right side: student on an orange orb with flag bubbles */
.sa-banner-media{position:relative; min-height:420px; display:flex; align-items:flex-end; justify-content:center;}
.sa-orb{position:absolute; width:min(78%,390px); aspect-ratio:1; border-radius:50%;
  background:#f6a21a; bottom:6%; left:50%; transform:translateX(-50%); z-index:0;}
.sa-student{position:relative; z-index:1; width:min(72%,360px); aspect-ratio:3/4;
  object-fit:cover; object-position:center top; border-radius:0 0 180px 180px;
  -webkit-mask-image:linear-gradient(180deg,#000 88%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 88%,transparent 100%);}
.sa-flag{position:absolute; z-index:2; width:64px; height:64px; border-radius:50%;
  background:#fff; padding:4px; box-shadow:0 10px 22px -10px rgba(0,0,0,.7);
  animation:saFloat 5s ease-in-out infinite;}
.sa-flag img{width:100%; height:100%; border-radius:50%; object-fit:cover; display:block;}
.sa-flag::after{content:""; position:absolute; width:14px; height:14px; background:#fff;
  bottom:4px; transform:rotate(45deg); z-index:-1;}
.sa-flag-1{left:4%; top:30%;}  .sa-flag-1::after{right:-3px;}
.sa-flag-2{right:4%; top:22%; animation-delay:-1.2s;} .sa-flag-2::after{left:-3px;}
.sa-flag-3{right:2%; top:58%; animation-delay:-2.4s;} .sa-flag-3::after{left:-3px;}
.sa-flag-4{left:8%; bottom:10%; animation-delay:-3.6s;} .sa-flag-4::after{right:-3px;}
.sa-flag-5{left:26%; top:4%; width:52px; height:52px; animation-delay:-.6s;} .sa-flag-5::after{right:-3px;}
@keyframes saFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
.sa-dots-media{position:absolute; right:22%; bottom:2%; z-index:2; margin:0;}
@media (max-width:991px){
  .sa-banner-media{min-height:340px;}
  .sa-hex-big{width:140px; right:-30px; top:auto; bottom:30%;}
  .sa-hex-small, .sa-tri-2{display:none;}
  .sa-flag{width:52px; height:52px;}
}
@media (max-width:575px){
  .sa-flag-5, .sa-dots-media{display:none;}
  .sa-banner-media{min-height:300px;}
}

/* ---------- University alliance cards ---------- */
.alliance-section{background:linear-gradient(180deg,#fbfcff,var(--cream));}
.alliance-card{
  height:100%; text-align:center; background:#fff;
  border:1px solid rgba(13,27,94,.08); border-radius:var(--radius-lg);
  padding:1.5rem 1.2rem 1.3rem; box-shadow:var(--shadow-tight);
  transition:transform .3s ease, box-shadow .3s ease;
}
.alliance-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-soft);}
.alliance-crest{
  position:relative; width:78px; height:88px; margin:0 auto 1rem;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg,var(--crest),color-mix(in srgb,var(--crest) 70%,#000));
  color:#fff; font-size:1.7rem;
  clip-path:path('M39 0 L78 12 L78 48 C78 70 58 82 39 88 C20 82 0 70 0 48 L0 12 Z');
}
.alliance-flag{position:absolute; right:-6px; bottom:-4px; width:30px; height:30px;
  border-radius:50%; object-fit:cover; border:2.5px solid #fff;}
.alliance-card h5{font-size:1.05rem; font-weight:800; color:var(--teal-900); margin:0 0 .2rem;}
.alliance-country{font-size:.8rem; font-weight:700; color:var(--terracotta); margin:0 0 .4rem;}
.alliance-note{font-size:.8rem; line-height:1.5; color:var(--slate); margin:0;}

/* ---------- Study Abroad image banner ---------- */
/* background matches the artwork's own teal so the band reads as full width */
/* The artwork is only 738px wide. Stretched across a full screen it goes
   soft, so it is shown at a medium, capped width, centred on a band in
   its own teal so the section still reads edge to edge. */
.img-banner{background:#2d516e; padding:6.6rem 0 0;}
@media (max-width:1199.98px){ .img-banner{padding-top:5.6rem;} }
.img-banner-link{display:block; width:100%; overflow:hidden;}
.img-banner-link picture{display:block;}
.img-banner-link img{display:block; width:100%; height:auto; transition:transform .6s ease;}
.img-banner-link:hover img{transform:scale(1.01);}

/* alliance cards: flag sits outside the shield clip so it is fully visible */
.alliance-badge{position:relative; width:78px; margin:0 auto 1rem;}
.alliance-badge .alliance-crest{margin:0;}
.alliance-badge .alliance-flag{position:absolute; right:-14px; bottom:-6px; width:36px; height:36px;
  border-radius:50%; object-fit:cover; border:3px solid #fff; box-shadow:0 4px 10px -3px rgba(13,27,94,.45); background:#fff;}

/* =========================================================
   HOME v2 — About (three companies), compact services,
   Happy Clients globe with popping client bubbles
   ========================================================= */

/* ---------- About: three companies ---------- */
.about-cos{background:linear-gradient(180deg,#fff,#f7f8fd);}
.about-cos-head{max-width:760px; margin-bottom:2.5rem;}
.about-cos-head .eyebrow{display:flex;}
.co-card{height:100%; background:#fff; border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid rgba(13,27,94,.07); box-shadow:var(--shadow-tight);
  display:flex; flex-direction:column; transition:transform .35s ease, box-shadow .35s ease;}
.co-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-soft);}
.co-media{position:relative; aspect-ratio:16/10; overflow:hidden;}
.co-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;}
.co-card:hover .co-media img{transform:scale(1.07);}
.co-media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(9,20,70,.55));}
.co-tag{position:absolute; left:1rem; bottom:.9rem; z-index:1; color:#fff; font-size:.75rem;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  background:rgba(255,255,255,.18); backdrop-filter:blur(6px); padding:.3rem .7rem; border-radius:50px;}
.co-body{position:relative; padding:2.2rem 1.5rem 1.5rem; display:flex; flex-direction:column; flex:1;}
.co-icon{position:absolute; top:-28px; right:1.5rem; width:56px; height:56px; border-radius:16px;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.35rem;
  box-shadow:0 12px 24px -10px rgba(13,27,94,.6);}
.co-edu .co-icon{background:linear-gradient(135deg,#1e3a8a,#3b82f6);}
.co-travel .co-icon{background:linear-gradient(135deg,#0f766e,#14b8a6);}
.co-invest .co-icon{background:linear-gradient(135deg,#b45309,#f59e0b);}
.co-body h3{font-size:1.2rem; color:var(--teal-900); margin:0 0 .6rem;}
.co-body p{color:var(--slate); font-size:.92rem; line-height:1.7; margin:0 0 1.1rem; flex:1;}
.co-link{font-weight:700; font-size:.9rem; color:var(--terracotta); text-decoration:none; align-self:flex-start;}
.co-link i{font-size:.75rem; margin-left:.3rem; transition:transform .25s ease;}
.co-link:hover i{transform:translateX(4px);}

/* ---------- Services: three pillars, points only ---------- */
.svc-band{background:linear-gradient(135deg,#0d1b5e 0%,#16287a 60%,#1d3494 100%); color:#fff; position:relative; overflow:hidden;}
.svc-band::before{content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1.5px); background-size:22px 22px;}
.svc-band .container{position:relative;}
.svc-band .eyebrow{display:flex;}
.svc-band .section-title-lg{color:#fff;}
.svc-pillar{height:100%; display:flex; flex-direction:column;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-lg); padding:1.6rem 1.5rem; backdrop-filter:blur(4px);
  transition:transform .3s ease, background .3s ease;}
.svc-pillar:hover{transform:translateY(-6px); background:rgba(255,255,255,.11);}
.svc-pillar-head{display:flex; align-items:center; gap:.9rem; padding-bottom:1rem; margin-bottom:1rem;
  border-bottom:1px dashed rgba(255,255,255,.22);}
.svc-pillar-icon{width:50px; height:50px; flex:none; border-radius:14px; display:flex; align-items:center;
  justify-content:center; font-size:1.25rem; color:#0d1b5e; background:linear-gradient(135deg,#ffd166,#f6a21a);}
.svc-pillar-head h3{font-size:1.2rem; margin:0; color:#fff;}
.svc-points{list-style:none; margin:0 0 1.2rem; padding:0; flex:1;}
.svc-points li{display:flex; align-items:center; gap:.6rem; padding:.42rem 0; font-size:.93rem; color:#e6ebff;}
.svc-points i{color:#6ee7a8; font-size:.85rem;}
.svc-pillar-link{align-self:flex-start; color:#ffd166; font-weight:700; font-size:.88rem; text-decoration:none;}
.svc-pillar-link i{font-size:.72rem; margin-left:.3rem; transition:transform .25s ease;}
.svc-pillar-link:hover{color:#fff;}
.svc-pillar-link:hover i{transform:translateX(4px);}

/* ---------- Happy clients globe ---------- */
.happy-globe-section{background:radial-gradient(70% 60% at 75% 50%,#eef2ff,#fff 70%); overflow:hidden;}
.hg-stats{display:flex; flex-wrap:wrap; gap:1.6rem; margin:1.4rem 0;}
.hg-stats strong{display:block; font-family:'Fraunces',serif; font-size:1.9rem; line-height:1; color:var(--teal-900);}
.hg-stats span{font-size:.8rem; color:var(--slate);}
.hg-chips{list-style:none; padding:0; margin:0 0 1.6rem; display:flex; flex-wrap:wrap; gap:.5rem;}
.hg-chips li{display:flex; align-items:center; gap:.45rem; background:#fff; border:1px solid rgba(13,27,94,.1);
  border-radius:50px; padding:.3rem .8rem .3rem .35rem; font-size:.82rem; font-weight:600; color:var(--teal-900);
  box-shadow:var(--shadow-tight);}
.hg-chips img{width:22px; height:22px; border-radius:50%; object-fit:cover;}

.hg-wrap{position:relative; width:min(100%,580px); aspect-ratio:1; margin:0 auto;}
.hg-orbit{position:absolute; border-radius:50%; pointer-events:none;}
.hg-orbit-1{inset:9%; border:2px dashed rgba(13,27,94,.16); animation:hgSpin 60s linear infinite;}
.hg-orbit-2{inset:0; border:1px solid rgba(13,27,94,.07);}
.hg-globe{position:absolute; inset:20%; border-radius:50%; overflow:hidden;
  background:
    radial-gradient(circle at 32% 28%,rgba(255,255,255,.35),transparent 42%),
    radial-gradient(circle at 50% 50%,#1d3494,#0d1b5e 72%);
  box-shadow:inset -18px -22px 40px rgba(0,0,0,.35), 0 30px 60px -25px rgba(13,27,94,.7);}
.hg-globe::before{content:""; position:absolute; inset:0; border-radius:50%;
  background-image:radial-gradient(rgba(255,255,255,.28) 1.2px,transparent 1.8px); background-size:12px 12px;
  -webkit-mask-image:radial-gradient(circle,#000 55%,transparent 72%); mask-image:radial-gradient(circle,#000 55%,transparent 72%);}
.hg-globe::after{content:""; position:absolute; inset:0; border-radius:50%;
  background:
    linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.12)) center/100% 1px no-repeat,
    linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.12)) center/1px 100% no-repeat;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);}

/* flags travel round the globe */
.hg-flags{position:absolute; inset:20%; border-radius:50%; animation:hgSpin 40s linear infinite;}
.hg-flag{position:absolute; left:50%; top:50%; width:15%; aspect-ratio:1; margin:-7.5% 0 0 -7.5%;
  transform:rotate(calc(var(--i) * 45deg)) translateY(-245%) rotate(calc(var(--i) * -45deg));}
.hg-flag img{width:100%; height:100%; border-radius:50%; object-fit:cover; display:block;
  border:2px solid #fff; box-shadow:0 6px 14px -6px rgba(0,0,0,.6); animation:hgSpin 40s linear infinite reverse;}

.hg-core{position:absolute; left:50%; top:50%; width:28%; aspect-ratio:1; transform:translate(-50%,-50%);
  border-radius:50%; background:#fff; z-index:2; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; box-shadow:0 0 0 8px rgba(255,255,255,.25), 0 18px 40px -16px rgba(0,0,0,.6);}
.hg-core img{width:42%; height:auto; border-radius:50%;}
.hg-core strong{font-family:'Fraunces',serif; font-size:clamp(1.1rem,2.4vw,1.6rem); line-height:1; color:var(--teal-900); margin-top:.15rem;}
.hg-core span{font-size:clamp(.55rem,1vw,.7rem); font-weight:700; color:var(--terracotta); text-transform:uppercase; letter-spacing:.05em;}

/* client bubbles */
.hg-bubbles{position:absolute; inset:0; z-index:3;}
.hg-bubble{position:absolute; width:19%; aspect-ratio:1; padding:0; border:0; background:none;
  transform:translate(-50%,-50%); cursor:pointer;}
.hg-bubble-in{display:block; width:100%; height:100%; border-radius:50%; overflow:hidden; background:#fff;
  border:4px solid #fff; box-shadow:0 14px 30px -12px rgba(13,27,94,.65);
  animation:hgBob 4.5s ease-in-out infinite; animation-delay:var(--d);
  transition:transform .38s cubic-bezier(.5,-0.4,.7,.3), opacity .38s ease;}
.hg-bubble img{width:100%; height:100%; object-fit:cover; display:block;}
/* little chat tail pointing at the globe */
.hg-bubble::before{content:""; position:absolute; left:50%; top:50%; width:22%; height:22%; background:#fff;
  transform:translate(-50%,-50%) rotate(45deg); border-radius:3px; z-index:-1; opacity:.9;}
.hg-tick{position:absolute; right:2%; bottom:6%; width:26%; aspect-ratio:1; border-radius:50%;
  background:#16a34a; color:#fff; font-size:clamp(.5rem,1vw,.7rem); display:flex; align-items:center;
  justify-content:center; border:2px solid #fff; transition:transform .3s ease;}
.hg-label{position:absolute; left:50%; top:100%; transform:translate(-50%,4px) scale(.8); white-space:nowrap;
  background:var(--teal-900); color:#fff; font-size:.68rem; font-weight:700; padding:.2rem .55rem;
  border-radius:50px; opacity:0; transition:opacity .25s ease, transform .25s ease; pointer-events:none;}
.hg-bubble:hover .hg-bubble-in,
.hg-bubble:focus-visible .hg-bubble-in{transform:scale(1.12); animation-play-state:paused;}
.hg-bubble:hover .hg-label,
.hg-bubble:focus-visible .hg-label{opacity:1; transform:translate(-50%,6px) scale(1);}
.hg-bubble.is-out .hg-bubble-in{transform:scale(0); opacity:0;}
.hg-bubble.is-out .hg-tick{transform:scale(0);}
.hg-bubble.is-pop .hg-bubble-in{animation:hgPop .65s cubic-bezier(.2,1.6,.4,1) both;}
.hg-bubble.is-pop .hg-label{opacity:1; transform:translate(-50%,6px) scale(1);}

@keyframes hgSpin{to{transform:rotate(360deg);}}
@keyframes hgBob{0%,100%{translate:0 0;}50%{translate:0 -6px;}}
@keyframes hgPop{0%{transform:scale(0);}70%{transform:scale(1.15);}100%{transform:scale(1);}}

@media (max-width:991.98px){ .hg-wrap{width:min(100%,480px);} }
@media (max-width:575.98px){
  .hg-bubble{width:23%;}
  .hg-bubble-in{border-width:3px;}
  .hg-flag{width:17%; margin:-8.5% 0 0 -8.5%; transform:rotate(calc(var(--i) * 45deg)) translateY(-215%) rotate(calc(var(--i) * -45deg));}
  .hg-stats{gap:1.1rem;}
  .hg-stats strong{font-size:1.5rem;}
}
@media (prefers-reduced-motion:reduce){
  .hg-orbit-1,.hg-flags,.hg-flag img,.hg-bubble-in{animation:none !important;}
}

/* =========================================================
   HOME v3 — split About, image service pillars, How We Work,
   country flags on client bubbles
   ========================================================= */

/* ---------- About: image collage + company list ---------- */
.ab-section{background:#fff;}
.ab-collage{position:relative; aspect-ratio:1/0.92; max-width:560px; margin:0 auto;}
.ab-img{position:absolute; object-fit:cover; border-radius:22px; box-shadow:0 24px 50px -24px rgba(13,27,94,.55); border:6px solid #fff;}
.ab-img-1{left:0; top:0; width:68%; height:74%;}
.ab-img-2{right:0; top:12%; width:44%; height:40%; animation:abFloat 6s ease-in-out infinite;}
.ab-img-3{right:6%; bottom:0; width:56%; height:44%; animation:abFloat 6s ease-in-out infinite -3s;}
.ab-badge{position:absolute; left:6%; bottom:8%; background:linear-gradient(135deg,var(--terracotta),#f0525f); color:#fff;
  border-radius:18px; padding:.9rem 1.2rem; box-shadow:0 18px 34px -16px rgba(220,38,38,.7); text-align:center;}
.ab-badge strong{display:block; font-family:'Fraunces',serif; font-size:2rem; line-height:1;}
.ab-badge span{font-size:.75rem; font-weight:600; letter-spacing:.04em;}
@keyframes abFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

.ab-cos{display:flex; flex-direction:column; gap:.8rem; margin-top:1.2rem;}
.ab-co{display:flex; align-items:center; gap:1rem; padding:.95rem 1.1rem; border-radius:16px; text-decoration:none;
  background:#f7f8fd; border:1px solid rgba(13,27,94,.07); transition:transform .25s ease, background .25s ease, box-shadow .25s ease;}
.ab-co:hover{transform:translateX(6px); background:#fff; box-shadow:var(--shadow-tight);}
.ab-co-icon{width:50px; height:50px; flex:none; border-radius:14px; color:#fff; font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;}
.ab-co-edu .ab-co-icon{background:linear-gradient(135deg,#1e3a8a,#3b82f6);}
.ab-co-travel .ab-co-icon{background:linear-gradient(135deg,#0f766e,#14b8a6);}
.ab-co-invest .ab-co-icon{background:linear-gradient(135deg,#b45309,#f59e0b);}
.ab-co-text{flex:1; min-width:0;}
.ab-co-text strong{display:block; color:var(--teal-900); font-size:1rem;}
.ab-co-text small{display:block; color:var(--slate); font-size:.85rem; line-height:1.5;}
.ab-co-go{color:var(--terracotta); font-size:.85rem; transition:transform .25s ease;}
.ab-co:hover .ab-co-go{transform:translateX(4px);}
@media (max-width:575.98px){ .ab-badge strong{font-size:1.5rem;} .ab-img{border-width:4px;} }

/* ---------- Services pillars with image ---------- */
.svc-band .svc-pillar{padding:0; overflow:hidden;}
.svc-pillar-media{position:relative; aspect-ratio:16/9;}
.svc-pillar-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;}
.svc-pillar:hover .svc-pillar-media img{transform:scale(1.07);}
.svc-pillar-media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,rgba(13,27,94,.75));}
.svc-pillar-media .svc-pillar-icon{position:absolute; left:1.3rem; bottom:-22px; z-index:1; width:54px; height:54px;
  box-shadow:0 10px 22px -8px rgba(0,0,0,.6);}
.svc-pillar-body{padding:2rem 1.5rem 1.5rem; display:flex; flex-direction:column; flex:1;}
.svc-pillar-body h3{font-size:1.25rem; color:#fff; margin:0 0 .8rem; padding-bottom:.8rem; border-bottom:1px dashed rgba(255,255,255,.22);}

/* ---------- How we work ---------- */
.hw-section{background:linear-gradient(180deg,#f7f8fd,#fff);}
.hw-steps{list-style:none; padding:0; margin:2.5rem 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; position:relative;}
.hw-steps::before{content:""; position:absolute; left:12%; right:12%; top:42px; height:2px;
  background:repeating-linear-gradient(90deg,rgba(13,27,94,.25) 0 10px,transparent 10px 20px);}
.hw-steps li{position:relative; text-align:center; background:#fff; border-radius:var(--radius-lg); padding:1.4rem 1.1rem 1.3rem;
  border:1px solid rgba(13,27,94,.07); box-shadow:var(--shadow-tight); margin-top:20px; transition:transform .3s ease;}
.hw-steps li:hover{transform:translateY(-6px);}
.hw-icon{width:64px; height:64px; margin:-52px auto .9rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.4rem; background:linear-gradient(135deg,var(--teal-900),#3b5bdb); border:5px solid #fff;
  box-shadow:0 12px 24px -10px rgba(13,27,94,.7);}
.hw-steps li:last-child .hw-icon{background:linear-gradient(135deg,var(--terracotta),#f0525f);}
.hw-num{position:absolute; right:1rem; top:.6rem; font-family:'Fraunces',serif; font-weight:800; font-size:1.5rem; color:rgba(13,27,94,.1);}
.hw-steps h4{font-size:1.02rem; color:var(--teal-900); margin:0 0 .35rem;}
.hw-steps p{font-size:.86rem; color:var(--slate); margin:0;}
@media (max-width:991.98px){ .hw-steps{grid-template-columns:repeat(2,1fr); row-gap:2.6rem;} .hw-steps::before{display:none;} }
@media (max-width:575.98px){ .hw-steps{grid-template-columns:1fr;} }

/* ---------- Client bubbles: country flag badge ---------- */
.hg-cflag{position:absolute; right:0; bottom:4%; width:30%; aspect-ratio:1; border-radius:50%; object-fit:cover;
  border:2px solid #fff; box-shadow:0 4px 10px -3px rgba(0,0,0,.5); background:#fff; transition:transform .3s ease;}
.hg-bubble.is-out .hg-cflag{transform:scale(0);}
.hg-bubble.is-pop .hg-cflag{animation:hgPop .65s cubic-bezier(.2,1.6,.4,1) .12s both;}
.hg-label i{color:#6ee7a8; margin-right:.15rem;}
/* fixes: flag badge must not inherit the full-size bubble photo rule; equal image heights */
.hg-bubble .hg-cflag{width:30%; height:auto; aspect-ratio:1;}
.svc-pillar-media{flex:none; overflow:visible;}
.svc-pillar:hover .svc-pillar-media img{transform:none;}
.svc-pillar-media img{position:absolute; inset:0;}

/* =========================================================
   VISA SERVICES v2 — hero chips, country search,
   checklist + document upload box side by side
   ========================================================= */
.visa-hero-title{font-size:clamp(2.2rem,5vw,3.6rem); line-height:1.05;}
.visa-hero-title span{background:linear-gradient(90deg,#ffd166,#ff8a5b); -webkit-background-clip:text; background-clip:text; color:transparent;}
.visa-hero-chips{list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:.6rem;}
.visa-hero-chips li{display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .95rem; border-radius:50px;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px);
  font-size:.86rem; font-weight:600; color:#fff; animation:chipIn .6s ease both;}
.visa-hero-chips li:nth-child(2){animation-delay:.1s;} .visa-hero-chips li:nth-child(3){animation-delay:.2s;} .visa-hero-chips li:nth-child(4){animation-delay:.3s;}
.visa-hero-chips i{color:#ffd166;}
@keyframes chipIn{from{opacity:0; transform:translateY(10px);}to{opacity:1; transform:none;}}

.visa-search{position:relative; max-width:420px; margin:0 0 1.6rem;}
.visa-search i{position:absolute; left:1.1rem; top:50%; transform:translateY(-50%); color:var(--slate);}
.visa-search input{width:100%; border:1px solid rgba(13,27,94,.14); border-radius:50px; padding:.8rem 1.2rem .8rem 2.8rem;
  font-size:.95rem; background:#fff; box-shadow:var(--shadow-tight); transition:border-color .2s ease, box-shadow .2s ease;}
.visa-search input:focus{outline:none; border-color:var(--terracotta); box-shadow:0 0 0 4px rgba(216,30,44,.12);}
.visa-search-empty{color:var(--slate); margin:-.6rem 0 1.2rem;}

/* ---------- Visa Services hero: royal blue visa-stamp background, medium heading ---------- */
.booking-hero.visa-hero-light{
  background:#1d45c4 url("../images/visa-hero-bg.svg") center/cover no-repeat;
  color:#fff; padding-bottom:3.5rem;
}
.visa-hero-light::before,.visa-hero-light::after{display:none;}
.visa-hero-light .breadcrumb-trail a,
.visa-hero-light .breadcrumb-trail span,
.visa-hero-light .breadcrumb-trail i{color:rgba(255,255,255,.8);}
.visa-hero-light .eyebrow.light{color:#ffd166;}
.visa-hero-light .eyebrow.light::before{background:#ffd166;}
.visa-hero-light .visa-hero-title{font-size:clamp(1.7rem,3.2vw,2.5rem); line-height:1.15; color:#fff; max-width:640px;}
.visa-hero-light .visa-hero-title span{display:block; background:linear-gradient(90deg,#ffd166,#ff9a62);
  -webkit-background-clip:text; background-clip:text; color:transparent;}
.visa-hero-light .visa-hero-chips li{background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.28); color:#fff;
  box-shadow:0 8px 20px -14px rgba(0,0,0,.5);}
.visa-hero-light .visa-hero-chips i{color:#ffd166;}

/* =========================================================
   OFFERS v2 — poster banner slider, section-wise packages,
   travel insurance band, study abroad cross-sell
   ========================================================= */

/* ---------- Offer banner slider ---------- */
.offer-banner{background:#0d1b5e; padding-top:105px;}
@media (max-width:1199.98px){ .offer-banner{padding-top:88px;} }
.ob-slide{position:relative; overflow:hidden; min-height:560px; display:flex; align-items:center; padding:2.5rem 0 5.5rem;}
.ob-bg{position:absolute; inset:-40px; width:calc(100% + 80px); height:calc(100% + 80px); object-fit:cover;
  filter:blur(28px) saturate(1.3) brightness(.55); transform:scale(1.05);}
.ob-slide::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,18,64,.88) 0%,rgba(9,18,64,.55) 55%,rgba(9,18,64,.25) 100%);}
.ob-inner{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:2.5rem; align-items:center;}
.ob-text{color:#fff;}
.ob-tag{display:inline-flex; align-items:center; gap:.5rem; background:linear-gradient(90deg,#d81e2c,#f97316); color:#fff;
  font-size:.78rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:.4rem .9rem; border-radius:50px;
  box-shadow:0 10px 24px -12px rgba(216,30,44,.9);}
.ob-title{font-family:'Fraunces',serif; font-weight:800; font-size:clamp(2rem,4.4vw,3.4rem); line-height:1.05; margin:1rem 0 .6rem; color:#fff;}
.ob-line{color:#dbe3ff; font-size:1.02rem; margin:0 0 1rem;}
.ob-chips{list-style:none; padding:0; margin:0 0 1.3rem; display:flex; flex-wrap:wrap; gap:.5rem;}
.ob-chips li{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); color:#fff; border-radius:50px;
  padding:.3rem .8rem; font-size:.82rem; font-weight:600; backdrop-filter:blur(4px);}
.ob-price{display:inline-flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; margin-bottom:1.4rem;}
.ob-price small{font-size:.8rem; color:#c7d2fe; width:100%;}
.ob-price strong{font-family:'Fraunces',serif; font-size:clamp(2rem,4vw,2.8rem); line-height:1; color:#ffd166;}
.ob-price span{color:#c7d2fe; font-size:.85rem;}
.ob-poster{position:relative; margin:0; justify-self:center; width:min(100%,380px); aspect-ratio:4/5; border-radius:18px; overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.75); border:5px solid rgba(255,255,255,.9); cursor:zoom-in;
  transform:rotate(2deg); transition:transform .4s ease;}
.ob-poster:hover{transform:rotate(0) scale(1.02);}
.ob-poster img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}
.ob-poster figcaption{position:absolute; left:50%; bottom:12px; transform:translateX(-50%); background:rgba(13,27,94,.85); color:#fff;
  font-size:.78rem; font-weight:700; padding:.35rem .8rem; border-radius:50px; white-space:nowrap;}
.ob-poster figcaption i{margin-right:.35rem;}
.carousel-item.active .ob-text > *{animation:obUp .7s ease both;}
.carousel-item.active .ob-text > *:nth-child(2){animation-delay:.08s;}
.carousel-item.active .ob-text > *:nth-child(3){animation-delay:.16s;}
.carousel-item.active .ob-text > *:nth-child(4){animation-delay:.24s;}
.carousel-item.active .ob-text > *:nth-child(5){animation-delay:.32s;}
.carousel-item.active .ob-text > *:nth-child(6){animation-delay:.4s;}
.carousel-item.active .ob-poster{animation:obPoster .8s ease both;}
@keyframes obUp{from{opacity:0; transform:translateY(18px);}to{opacity:1; transform:none;}}
@keyframes obPoster{from{opacity:0; transform:rotate(6deg) translateY(30px);}to{opacity:1; transform:rotate(2deg);}}

.offer-banner .carousel-control-prev,.offer-banner .carousel-control-next{width:54px; height:54px; top:50%; transform:translateY(-50%);
  border-radius:50%; background:rgba(255,255,255,.15); margin:0 1rem; opacity:1; backdrop-filter:blur(6px);}
.offer-banner .carousel-control-prev:hover,.offer-banner .carousel-control-next:hover{background:rgba(255,255,255,.3);}
.offer-banner .carousel-control-prev-icon,.offer-banner .carousel-control-next-icon{width:1.3rem; height:1.3rem;}
.ob-thumbs{margin-bottom:1.1rem; gap:.5rem;}
.ob-thumbs [data-bs-target]{width:52px; height:52px; border-radius:12px; overflow:hidden; padding:0; margin:0; border:2px solid rgba(255,255,255,.35);
  opacity:.65; text-indent:0; background:none; transition:opacity .25s ease, transform .25s ease, border-color .25s ease;}
.ob-thumbs [data-bs-target] img{width:100%; height:100%; object-fit:cover; object-position:top; display:block;}
.ob-thumbs .active{opacity:1; border-color:#ffd166; transform:translateY(-4px);}

@media (max-width:991.98px){
  .ob-inner{grid-template-columns:1fr; gap:1.6rem; text-align:center;}
  .ob-chips,.ob-actions{justify-content:center;}
  .ob-actions{display:flex;}
  .ob-price{justify-content:center;}
  .ob-poster{width:min(78%,300px); order:-1;}
  .ob-slide{min-height:0; padding:1.8rem 0 5rem;}
  .offer-banner .carousel-control-prev,.offer-banner .carousel-control-next{display:none;}
}
@media (max-width:575.98px){
  .ob-thumbs [data-bs-target]{width:40px; height:40px; border-radius:9px;}
  .ob-line{font-size:.92rem;}
}

/* ---------- Packages, section-wise ---------- */
.pk-section{background:linear-gradient(180deg,#f7f8fd,#fff);}
.pk-section .eyebrow{display:flex;}
.pk-group{margin-top:2.6rem;}
.pk-group-head{display:flex; align-items:center; gap:1rem; margin-bottom:1.2rem; padding-bottom:.9rem; border-bottom:1px dashed rgba(13,27,94,.15);}
.pk-group-icon{width:52px; height:52px; flex:none; border-radius:16px; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:1.3rem; background:linear-gradient(135deg,var(--teal-900),#3b5bdb); box-shadow:0 12px 24px -12px rgba(13,27,94,.8);}
.pk-group:nth-child(odd) .pk-group-icon{background:linear-gradient(135deg,var(--terracotta),#f97316);}
.pk-group-head h3{font-family:'Fraunces',serif; font-size:1.5rem; margin:0; color:var(--teal-900);}
.pk-group-head p{margin:.15rem 0 0; color:var(--slate); font-size:.92rem;}
.pk-row{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.2rem;}
@media (max-width:991.98px){ .pk-row{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:575.98px){
  .pk-row{grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:78%; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:.6rem;}
  .pk-card{scroll-snap-align:start;}
}

.pk-card{position:relative; background:#fff; border-radius:18px; overflow:hidden; cursor:pointer;
  border:1px solid rgba(13,27,94,.07); box-shadow:var(--shadow-tight); display:flex; flex-direction:column;
  transition:transform .35s ease, box-shadow .35s ease;}
.pk-card:hover,.pk-card:focus-visible{transform:translateY(-8px); box-shadow:0 26px 46px -24px rgba(13,27,94,.55); outline:none;}
.pk-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
.pk-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;}
.pk-card:hover .pk-media img{transform:scale(1.08);}
.pk-media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(9,18,64,.45));}
.pk-media .flag-emoji{position:absolute; top:.7rem; right:.7rem; z-index:1; width:38px; height:38px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.25rem; box-shadow:0 6px 14px -6px rgba(0,0,0,.5);}
.pk-count{position:absolute; left:.7rem; bottom:.7rem; z-index:1; background:rgba(255,255,255,.92); color:var(--teal-900);
  font-size:.72rem; font-weight:800; padding:.25rem .6rem; border-radius:50px;}
.pk-count:empty{display:none;}
.pk-body{padding:1rem 1.1rem 1.1rem; display:flex; flex-direction:column; flex:1;}
.pk-tag{margin:0; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--terracotta);}
.pk-body h3{font-size:1.12rem; font-weight:800; color:var(--teal-900); margin:.2rem 0 .35rem;}
.pk-duration{margin:0 0 .9rem; font-size:.84rem; color:var(--slate);}
.pk-duration i{margin-right:.35rem;}
.pk-foot{margin-top:auto; display:flex; align-items:flex-end; justify-content:space-between; gap:.5rem;
  padding-top:.8rem; border-top:1px solid rgba(13,27,94,.07);}
.pk-price small{display:block; font-size:.7rem; color:var(--slate);}
.pk-price strong{font-size:1.15rem; color:var(--teal-900);}
.pk-go{font-size:.82rem; font-weight:800; color:#fff; background:var(--terracotta); padding:.4rem .8rem; border-radius:50px; white-space:nowrap;}
.pk-go i{font-size:.7rem; margin-left:.2rem; transition:transform .25s ease;}
.pk-card:hover .pk-go i{transform:translateX(3px);}

/* ---------- Travel insurance ---------- */
.ti-section{padding-top:0;}
.ti-card{display:grid; grid-template-columns:1.1fr .9fr; border-radius:26px; overflow:hidden;
  background:linear-gradient(135deg,#0d1b5e,#1d45c4); box-shadow:0 30px 60px -30px rgba(13,27,94,.8);}
.ti-text{padding:2.6rem; color:#fff;}
.ti-title{font-family:'Fraunces',serif; font-size:clamp(1.6rem,3vw,2.3rem); color:#fff; margin:0 0 1.4rem;}
.ti-benefits{list-style:none; padding:0; margin:0 0 1.6rem; display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.2rem;}
.ti-benefits li{display:flex; gap:.7rem; align-items:flex-start;}
.ti-benefits i{width:40px; height:40px; flex:none; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.12); color:#ffd166;}
.ti-benefits strong{display:block; font-size:.92rem;}
.ti-benefits span{font-size:.8rem; color:#c7d2fe;}
.ti-media{position:relative; min-height:320px;}
.ti-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.ti-badge{position:absolute; left:1.2rem; bottom:1.2rem; display:flex; align-items:center; gap:.7rem; background:#fff; color:var(--teal-900);
  border-radius:16px; padding:.8rem 1rem; font-size:.82rem; font-weight:700; line-height:1.25; box-shadow:0 16px 30px -14px rgba(0,0,0,.6);}
.ti-badge i{font-size:1.5rem; color:#16a34a;}
@media (max-width:991.98px){
  .ti-card{grid-template-columns:1fr;}
  .ti-media{min-height:220px; order:-1;}
  .ti-text{padding:1.8rem 1.4rem;}
}
@media (max-width:575.98px){ .ti-benefits{grid-template-columns:1fr;} }

/* ---------- Study abroad cross-sell ---------- */
.sa-cross{padding-top:0;}
.sa-cross-card{position:relative; border-radius:26px; overflow:hidden; text-align:center; color:#fff; padding:3.2rem 1.5rem;}
.sa-cross-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.sa-cross-card::after{content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(216,30,44,.88),rgba(13,27,94,.88));}
.sa-cross-inner{position:relative; z-index:1; max-width:640px; margin:0 auto;}
.sa-cross-inner .eyebrow{justify-content:center; display:flex;}
.sa-cross-inner h2{font-family:'Fraunces',serif; font-size:clamp(1.6rem,3.2vw,2.4rem); color:#fff; margin:0 0 .6rem;}
.sa-cross-inner p{color:#f1f5ff; margin-bottom:1.4rem;}
/* keep slider arrows clear of the text on laptop widths */
@media (min-width:992px) and (max-width:1499.98px){ .ob-inner{padding-left:4.5rem; padding-right:4.5rem;} }

/* ---------- Offers v3: flag badges, coloured names, summary-first modal ---------- */
.pk-media .pk-flag{position:absolute; top:.7rem; right:.7rem; z-index:1; display:flex; align-items:center; gap:.3rem;
  background:#fff; border-radius:50px; padding:.22rem .6rem .22rem .25rem; box-shadow:0 6px 14px -6px rgba(0,0,0,.5);}
.pk-flag img{width:24px; height:24px; border-radius:50%; object-fit:cover; border:2px solid #fff; box-shadow:0 0 0 1px rgba(13,27,94,.12);}
.pk-flag img + img{margin-left:-.65rem;}
.pk-flag b{font-size:.72rem; font-weight:800; letter-spacing:.04em; color:var(--teal-900); margin-left:.15rem;}
.pk-body h3{font-size:1.35rem; font-weight:800; color:var(--c,var(--teal-900)); margin:.25rem 0 .4rem; line-height:1.2;}
.pk-body h3::after{content:""; display:block; width:36px; height:3px; border-radius:3px; background:var(--c,var(--terracotta)); margin-top:.35rem; opacity:.8;}

.checklist-flag img{width:100%; height:100%; object-fit:cover; border-radius:50%; display:block;}
.checklist-flag.multi-flag{width:auto; padding:0 .55rem; gap:0;}
.checklist-flag.multi-flag img{flex:none; width:40px; height:40px; border:2px solid #fff; box-shadow:0 4px 10px -4px rgba(0,0,0,.5);}
.checklist-flag.multi-flag img + img{margin-left:-12px;}

.pkg-summary{background:#f7f8fd; border-radius:14px; padding:.8rem 1rem; margin:.2rem 0 1rem;}
.pkg-summary h6{font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--terracotta); margin:0 0 .5rem;}
.pkg-summary h6 i{margin-right:.4rem;}
.pkg-summary ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.4rem;}
.pkg-summary li{background:#fff; border:1px solid rgba(13,27,94,.1); border-radius:50px; padding:.28rem .7rem; font-size:.8rem; font-weight:600; color:var(--teal-900);}
.pkg-full{border-top:1px dashed rgba(13,27,94,.15); padding-top:1rem; margin-bottom:1rem; animation:obUp .45s ease both;}
/* offers v4: flag only, title + subtitle share the country colour, line-by-line highlights */
.pk-media .pk-flag{padding:.22rem;}
.pk-flag img{width:30px; height:30px;}
.pk-card .pk-tag{color:var(--c,var(--terracotta));}
.pkg-summary ul{display:block;}
.pkg-summary li{display:flex; align-items:flex-start; gap:.55rem; background:none; border:0; border-radius:0; padding:.4rem 0;
  font-size:.9rem; font-weight:500; color:var(--teal-900); border-bottom:1px dashed rgba(13,27,94,.1);}
.pkg-summary li:last-child{border-bottom:0;}
.pkg-summary li i{color:#16a34a; margin-top:.2rem; font-size:.85rem;}

/* ---------- Offer banner: big flying aeroplane + paused indicator ---------- */
.offer-banner{position:relative;}
.ob-planes{position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden;}
.ob-trail{position:absolute; inset:0; width:100%; height:100%;}
.ob-bigplane{position:absolute; width:110px; height:110px; left:0; top:0;
  offset-path:path("M -80 560 C 260 610, 600 560, 700 360 S 820 40, 1560 -60");
  offset-rotate:auto; animation:obPlanePath 14s linear infinite;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.45));}
@keyframes obPlanePath{from{offset-distance:0%;}to{offset-distance:100%;}}
@media (max-width:991.98px){
  .ob-bigplane{width:64px; height:64px; offset-path:path("M -40 300 C 120 260, 220 120, 380 110 S 560 60, 760 10");}
}
.ob-playpause{position:absolute; z-index:5; left:1.2rem; bottom:1.4rem; display:inline-flex; align-items:center; gap:.5rem;
  border:0; border-radius:50px; padding:.45rem .9rem; background:rgba(255,255,255,.92); color:var(--teal-900);
  font-size:.8rem; font-weight:800; box-shadow:0 10px 24px -12px rgba(0,0,0,.6);}
.ob-playpause i{color:var(--terracotta);}
.offer-banner .carousel-item{cursor:pointer;}
@media (max-width:1199.98px){ .ob-planes{top:88px;} }
@media (max-width:575.98px){ .ob-playpause span{display:none;} .ob-plane::before{width:90px;} }
@media (prefers-reduced-motion:reduce){ .ob-plane{animation:none; display:none;} }

/* ---------- Visa Services hero v2: photo + floating cards ---------- */
.visa-hero-v2{padding-bottom:4rem; overflow:hidden;}
.vh-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:2.5rem; align-items:center;}
.vh-cta{display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem;}
.vh-media{position:relative; min-height:400px;}
.vh-ring{position:absolute; width:380px; height:380px; right:4%; top:50%; margin-top:-190px; border-radius:50%;
  border:2px dashed rgba(255,255,255,.3); animation:hgSpin 50s linear infinite;}
.vh-photo{position:absolute; right:calc(4% + 30px); top:50%; margin-top:-160px; width:320px; height:320px; border-radius:50%; overflow:hidden;
  border:8px solid rgba(255,255,255,.95); box-shadow:0 30px 60px -20px rgba(0,0,0,.6);}
.vh-photo img{width:100%; height:100%; object-fit:cover;}
.vh-card{position:absolute; background:#fff; color:var(--teal-900); border-radius:16px; padding:.75rem 1rem;
  box-shadow:0 18px 36px -16px rgba(0,0,0,.55); animation:vhFloat 5s ease-in-out infinite;}
.vh-card-approved{left:2%; top:14%; display:flex; align-items:center; gap:.7rem;}
.vh-card-icon{width:40px; height:40px; border-radius:12px; background:#dcfce7; color:#16a34a; display:flex; align-items:center; justify-content:center; font-size:1.2rem;}
.vh-card strong{display:block; font-size:.95rem;}
.vh-card small{display:block; font-size:.74rem; color:var(--slate);}
.vh-card-pass{left:6%; bottom:10%; min-width:190px; animation-delay:-2.5s;}
.vh-pass-top{display:flex; align-items:center; justify-content:space-between; font-weight:800; font-size:1.2rem; letter-spacing:.05em; color:var(--teal-900);}
.vh-pass-top i{color:var(--terracotta); font-size:.95rem;}
.vh-card-pass::after{content:""; display:block; height:6px; margin-top:.5rem; border-radius:3px;
  background:repeating-linear-gradient(90deg,var(--teal-900) 0 3px,transparent 3px 6px); opacity:.5;}
.vh-flags{position:absolute; right:0; bottom:6%; display:flex; background:#fff; border-radius:50px; padding:.35rem .5rem;
  box-shadow:0 14px 30px -14px rgba(0,0,0,.55); animation:vhFloat 6s ease-in-out infinite -1s;}
.vh-flags img{width:32px; height:32px; border-radius:50%; object-fit:cover; border:2px solid #fff;}
.vh-flags img + img{margin-left:-9px;}
.vh-stamp{position:absolute; right:2%; top:6%; transform:rotate(14deg); border:3px solid #ffd166; color:#ffd166; border-radius:10px;
  padding:.25rem .7rem; font-weight:900; letter-spacing:.12em; font-size:1rem; background:rgba(13,27,94,.35);}
@keyframes vhFloat{0%,100%{translate:0 0;}50%{translate:0 -10px;}}
@media (max-width:991.98px){
  .vh-grid{grid-template-columns:1fr;}
  .vh-media{min-height:340px; max-width:440px; margin:0 auto; width:100%;}
  .vh-ring{width:300px; height:300px; right:50%; margin:-150px -150px 0 0;}
  .vh-photo{width:250px; height:250px; right:50%; margin:-125px -125px 0 0;}
}
@media (max-width:575.98px){
  .vh-card-pass{display:none;}
  .vh-card-approved{left:0; top:4%;}
}

/* the aeroplane flies behind the poster and text, not over them */
.ob-slide .ob-inner{z-index:3;}
.ob-slide::after{z-index:0;}


/* =========================================================
   NAVBAR v2 — white glass bar, Poppins, colour icons, pill links
   (overrides the dark navy navbar on every page)
   ========================================================= */
.navbar-sahyog{
  background:rgba(255,255,255,.94) !important;
  -webkit-backdrop-filter:saturate(1.4) blur(14px); backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:0 !important;
  box-shadow:0 10px 30px -18px rgba(13,27,94,.45);
  padding:.55rem 0 !important;
}
.navbar-sahyog::before{
  content:""; position:absolute; left:0; right:0; top:0; height:4px;
  background:linear-gradient(90deg,#0d1b5e,#1d45c4 35%,#d81e2c 70%,#f6b700);
}
.navbar-sahyog.scrolled{padding:.3rem 0 !important; background:rgba(255,255,255,.98) !important;}

.navbar-sahyog .navbar-brand img{box-shadow:0 6px 18px -8px rgba(13,27,94,.45) !important; border:1px solid rgba(13,27,94,.08);}

.navbar-sahyog .nav-link{
  font-family:'Poppins','Inter',sans-serif !important;
  font-weight:500 !important; letter-spacing:.01em;
  color:#1b2559 !important;
  border-radius:50px !important;
  padding:.5rem .95rem !important;
  transition:background .25s ease, color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.navbar-sahyog .nav-link::after{display:none !important;}
.navbar-sahyog .nav-link:hover{background:#eef2ff !important; color:#0d1b5e !important; transform:translateY(-1px);}
.navbar-sahyog .nav-link.active{
  background:linear-gradient(135deg,#0d1b5e,#1d45c4) !important; color:#fff !important;
  box-shadow:0 8px 18px -8px rgba(29,69,196,.8) !important; font-weight:600 !important;
}
.navbar-sahyog .nav-link .fa-arrow-up-right-from-square{opacity:.45; font-size:.6rem;}

/* icons: no filled circles any more, just the brand colour */
.navbar-sahyog .nav-badge{background:none !important; width:auto !important; height:auto !important; margin-right:.4rem !important; font-size:.95rem !important;}
.navbar-sahyog .nav-badge-home{color:#16a34a !important;}
.navbar-sahyog .nav-badge-study{color:#1d45c4 !important;}
.navbar-sahyog .nav-badge-travel{color:#0e9f9f !important;}
.navbar-sahyog .nav-badge-invest{color:#d81e2c !important;}
.navbar-sahyog .nav-badge-visa{color:#8e44ad !important;}
.navbar-sahyog .nav-badge-contact{color:#ea7317 !important;}
.navbar-sahyog .nav-link.active .nav-badge{color:#ffd166 !important;}

/* Offers: clean gradient pill with a soft pulse instead of the blinking starburst */
.navbar-sahyog .btn-offers-wrap::before{display:none !important;}
.navbar-sahyog .btn-offers-wrap .btn.btn-gold,
.navbar-sahyog .btn-offers-wrap .btn.btn-blink{
  font-family:'Poppins','Inter',sans-serif; font-weight:600; letter-spacing:.02em;
  border:0 !important; border-radius:50px; padding:.55rem 1.4rem;
  animation:navOffersPulse 1.8s ease-out infinite !important;
}
.navbar-sahyog .btn-offers-wrap .btn.btn-gold:hover{background:linear-gradient(135deg,#b91c1c,#ea580c) !important; color:#fff !important; transform:translateY(-2px);}
@keyframes navOffersPulse{
  0%{box-shadow:0 0 0 0 rgba(249,115,22,.6);}
  70%{box-shadow:0 0 0 12px rgba(249,115,22,0);}
  100%{box-shadow:0 0 0 0 rgba(249,115,22,0);}
}

/* hamburger + dropdown on tablets / phones */
.navbar-sahyog .navbar-toggler{border:1px solid rgba(13,27,94,.15) !important; border-radius:12px; padding:.45rem .7rem;}
.navbar-sahyog .navbar-toggler i{color:#0d1b5e !important; font-size:1.2rem;}
@media (max-width:1199.98px){
  .navbar-sahyog .navbar-collapse{background:#fff; border-radius:16px; margin-top:.6rem; padding:.5rem; box-shadow:0 18px 40px -20px rgba(13,27,94,.5);}
  .navbar-sahyog .navbar-nav{gap:.15rem;}
  .navbar-sahyog .nav-item{width:100%;}
  .navbar-sahyog .nav-link{width:100%; justify-content:flex-start;}
}

/* beat the per-page inline size rule so the icons read clearly */
.navbar-sahyog .navbar-nav .nav-link .nav-badge{font-size:1rem !important; width:auto !important; height:auto !important;}

/* =========================================================
   NAVBAR v3 — maroon / wine red bar, white text, gold active pill
   ========================================================= */
.navbar-sahyog{
  background:linear-gradient(90deg,#5b0f16 0%,#7f1d1d 40%,#b91c1c 100%) !important;
  box-shadow:0 10px 30px -14px rgba(91,15,22,.7) !important;
}
.navbar-sahyog.scrolled{background:linear-gradient(90deg,#5b0f16 0%,#7f1d1d 40%,#b91c1c 100%) !important;}
.navbar-sahyog::before{background:linear-gradient(90deg,#f6b700,#ffd977 50%,#f6b700) !important; height:3px !important;}
.navbar-sahyog .nav-link{color:#fde8e8 !important;}
.navbar-sahyog .nav-link:hover{background:rgba(255,255,255,.12) !important; color:#fff !important;}
.navbar-sahyog .nav-link.active{
  background:linear-gradient(135deg,#f6b700,#ffd977) !important; color:#5b0f16 !important;
  box-shadow:0 8px 18px -8px rgba(246,183,0,.8) !important;
}
.navbar-sahyog .nav-link.active .nav-badge{color:#7f1d1d !important;}
.navbar-sahyog .nav-link .fa-arrow-up-right-from-square{opacity:.6;}
/* icons in light tints so they show on maroon */
.navbar-sahyog .nav-badge-home{color:#86efac !important;}
.navbar-sahyog .nav-badge-study{color:#93c5fd !important;}
.navbar-sahyog .nav-badge-travel{color:#5eead4 !important;}
.navbar-sahyog .nav-badge-invest{color:#fdba74 !important;}
.navbar-sahyog .nav-badge-visa{color:#d8b4fe !important;}
.navbar-sahyog .nav-badge-contact{color:#fde68a !important;}
/* Offers in gold so it stands out from the red bar */
.navbar-sahyog .btn-offers-wrap .btn.btn-gold,
.navbar-sahyog .btn-offers-wrap .btn.btn-blink{
  animation:navOffersPulseGold 1.8s ease-out infinite !important;
}
.navbar-sahyog .btn-offers-wrap .btn.btn-gold:hover{background:linear-gradient(135deg,#ffe9a8,#fff) !important; color:#5b0f16 !important;}
@keyframes navOffersPulseGold{
  0%{box-shadow:0 0 0 0 rgba(255,217,119,.75);}
  70%{box-shadow:0 0 0 12px rgba(255,217,119,0);}
  100%{box-shadow:0 0 0 0 rgba(255,217,119,0);}
}
.navbar-sahyog .navbar-toggler{border-color:rgba(255,255,255,.35) !important;}
.navbar-sahyog .navbar-toggler i{color:#fff !important;}
@media (max-width:1199.98px){
  .navbar-sahyog .navbar-collapse{background:#6b1219; box-shadow:0 18px 40px -20px rgba(0,0,0,.6);}
}

/* Offers button: royal blue so it pops against the maroon bar and the gold active pill */
.navbar-sahyog .btn-offers-wrap .btn.btn-gold,
.navbar-sahyog .btn-offers-wrap .btn.btn-blink{
  border:2px solid rgba(255,255,255,.85) !important;
  animation:navOffersPulseBlue 1.8s ease-out infinite !important;
}
.navbar-sahyog .btn-offers-wrap .btn.btn-gold:hover{background:linear-gradient(135deg,#0d1b5e,#1d45c4) !important; color:#fff !important;}
@keyframes navOffersPulseBlue{
  0%{box-shadow:0 0 0 0 rgba(47,107,255,.8);}
  70%{box-shadow:0 0 0 12px rgba(47,107,255,0);}
  100%{box-shadow:0 0 0 0 rgba(47,107,255,0);}
}

/* =========================================================
   NAVBAR v4 — dark navy bar (maroon replaced), gold active pill
   ========================================================= */
.navbar-sahyog,
.navbar-sahyog.scrolled{
  background:linear-gradient(90deg,#0a1447 0%,#0d1b5e 50%,#13287f 100%) !important;
  box-shadow:0 10px 30px -14px rgba(10,20,71,.75) !important;
}
.navbar-sahyog .nav-link{color:#e6ebff !important;}
.navbar-sahyog .nav-link.active{color:#0d1b5e !important;}
.navbar-sahyog .nav-link.active .nav-badge{color:#0d1b5e !important;}
@media (max-width:1199.98px){
  .navbar-sahyog .navbar-collapse{background:#0d1b5e;}
}

/* ---------- Navbar: bigger menu font ---------- */
.navbar-sahyog .navbar-nav .nav-item .nav-link{font-size:1.02rem !important; font-weight:600 !important; padding:.55rem .85rem !important;}
.navbar-sahyog .navbar-nav .nav-link .nav-badge{font-size:1.08rem !important;}
@media (min-width:1200px) and (max-width:1399.98px){
  .navbar-sahyog .navbar-nav .nav-item .nav-link{font-size:.95rem !important; padding:.5rem .6rem !important;}
}
@media (max-width:1199.98px){
  .navbar-sahyog .navbar-nav .nav-item .nav-link{font-size:1.08rem !important; padding:.7rem 1rem !important;}
}

/* ---------- Offers button: red -> yellow -> green, turn by turn ---------- */
.navbar-sahyog .btn-offers-wrap .btn.btn-gold,
.navbar-sahyog .btn-offers-wrap .btn.btn-blink{
  font-size:1.05rem !important; font-weight:700 !important;
  border:2px solid #fff !important;
  animation:navOffersTraffic 2.4s steps(1,end) infinite, navOffersGlow 2.4s ease-out infinite !important;
}
@keyframes navOffersTraffic{
  0%     {background:linear-gradient(135deg,#dc2626,#ef4444); color:#fff;}
  33.33% {background:linear-gradient(135deg,#f5b700,#ffd84d); color:#0d1b5e;}
  66.66% {background:linear-gradient(135deg,#16a34a,#22c55e); color:#fff;}
}
@keyframes navOffersGlow{
  0%     {box-shadow:0 0 0 0 rgba(239,68,68,.8);}
  30%    {box-shadow:0 0 0 12px rgba(239,68,68,0);}
  33.33% {box-shadow:0 0 0 0 rgba(255,216,77,.8);}
  63%    {box-shadow:0 0 0 12px rgba(255,216,77,0);}
  66.66% {box-shadow:0 0 0 0 rgba(34,197,94,.8);}
  100%   {box-shadow:0 0 0 12px rgba(34,197,94,0);}
}
.navbar-sahyog .btn-offers-wrap .btn.btn-gold:hover{animation-play-state:paused !important; transform:translateY(-2px);}

/* Offers button must stay on one line; tighter menu on 1200-1399px screens */
.navbar-sahyog .btn-offers-wrap .btn{white-space:nowrap;}
@media (min-width:1200px) and (max-width:1399.98px){
  .navbar-sahyog .navbar-nav .nav-item .nav-link{font-size:.9rem !important; padding:.45rem .5rem !important;}
  .navbar-sahyog .navbar-nav .nav-link .nav-badge{font-size:.95rem !important; margin-right:.3rem !important;}
  .navbar-sahyog .btn-offers-wrap .btn.btn-gold{font-size:.95rem !important; padding:.45rem 1rem !important;}
  .navbar-sahyog .nav-item.ms-lg-3{margin-left:.4rem !important;}
}


/* =========================================================
   OFFERS v5 — travel photo banner + compact itinerary modal
   ========================================================= */
.ob-photo{min-height:600px;}
.ob-bgphoto{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.06);}
.carousel-item.active .ob-bgphoto{animation:obKen 9s ease-out both;}
@keyframes obKen{from{transform:scale(1.14);}to{transform:scale(1.02);}}
.ob-photo::after{background:linear-gradient(90deg,rgba(6,14,52,.92) 0%,rgba(6,14,52,.62) 45%,rgba(6,14,52,.12) 100%) !important;}
.ob-photo .ob-title{font-size:clamp(2.2rem,5vw,3.8rem);}
.ob-actions{display:flex; flex-wrap:wrap; gap:.6rem;}

.ob-ticket{justify-self:end; width:min(100%,340px); background:#fff; color:var(--teal-900); border-radius:20px; overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.7); transform:rotate(-3deg); animation:vhFloat 6s ease-in-out infinite;}
.ob-ticket-top{display:flex; align-items:center; justify-content:space-between; padding:.8rem 1.1rem;
  background:linear-gradient(135deg,#0d1b5e,#1d45c4); color:#fff; font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:.75rem;}
.ob-ticket-top img{width:30px; height:30px; border-radius:50%; object-fit:cover; border:2px solid #fff;}
.ob-ticket-route{display:flex; align-items:center; justify-content:space-between; padding:1.2rem 1.3rem .9rem;}
.ob-ticket-route strong{display:block; font-size:2.1rem; font-weight:800; letter-spacing:.04em; line-height:1;}
.ob-ticket-route small{color:var(--slate); font-size:.75rem;}
.ob-ticket-route > div:last-child{text-align:right;}
.ob-ticket-route i{color:var(--terracotta); font-size:1.3rem;}
.ob-ticket-foot{display:flex; justify-content:space-between; padding:.75rem 1.3rem; border-top:2px dashed rgba(13,27,94,.18);
  font-size:.8rem; font-weight:700; color:var(--terracotta);}
.ob-ticket-foot span:last-child{color:var(--slate); font-weight:600;}

.ob-thumbs-photo [data-bs-target]{width:auto !important; height:auto !important; display:flex !important; align-items:center; gap:.4rem;
  border-radius:50px !important; padding:.2rem .7rem .2rem .2rem !important; background:rgba(255,255,255,.14) !important;
  color:#fff; font-size:.78rem; font-weight:700; backdrop-filter:blur(6px);}
.ob-thumbs-photo [data-bs-target] img{width:30px !important; height:30px !important; border-radius:50%;}
.ob-thumbs-photo .active{background:#ffd166 !important; color:#0d1b5e;}
@media (max-width:991.98px){
  .ob-photo{min-height:0;}
  .ob-ticket{justify-self:center; order:0; width:min(100%,300px); transform:none;}
  .ob-actions{justify-content:center;}
}
@media (max-width:575.98px){
  .ob-thumbs-photo [data-bs-target] span{display:none;}
  .ob-thumbs-photo [data-bs-target]{padding:.2rem !important;}
  .ob-ticket{display:none;}
}

/* ---------- itinerary modal: medium width, one column ---------- */
.itin-dialog{max-width:860px;}
.pkg-grid-1{grid-template-columns:1fr !important;}
.pkg-list{background:#fff; border:1px solid rgba(13,27,94,.08); border-radius:16px; padding:1rem 1.1rem; margin-bottom:1rem; box-shadow:var(--shadow-tight);}
.pkg-list h6{font-size:.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--terracotta); margin:0 0 .6rem;}
.pkg-list h6 i{margin-right:.4rem;}
.pkg-list ol{list-style:none; margin:0; padding:0; counter-reset:pk;}
.pkg-list li + li{border-top:1px dashed rgba(13,27,94,.12);}
.pkg-list a{display:flex; align-items:center; gap:.7rem; padding:.6rem .2rem; text-decoration:none; color:var(--teal-900); counter-increment:pk;}
.pkg-list a::before{content:counter(pk); width:26px; height:26px; flex:none; border-radius:50%; background:#0d1b5e; color:#fff;
  font-size:.78rem; font-weight:800; display:flex; align-items:center; justify-content:center;}
.pkg-list-name{flex:1; font-weight:700; font-size:.95rem;}
.pkg-list-dur{font-size:.78rem; color:var(--slate); white-space:nowrap;}
.pkg-list strong{color:var(--terracotta); font-size:1.02rem; white-space:nowrap;}
.pkg-list a:hover .pkg-list-name{text-decoration:underline;}
.pkg-flash{animation:pkgFlash 1.2s ease;}
@keyframes pkgFlash{0%{box-shadow:0 0 0 0 rgba(246,183,0,.9);}100%{box-shadow:0 0 0 14px rgba(246,183,0,0);}}
@media (max-width:575.98px){ .pkg-list-dur{display:none;} }

/* medium-width itinerary popup (the checklist modal rule set a wider size) */
.checklist-modal .modal-dialog.itin-dialog{max-width:820px !important; width:calc(100% - 1.5rem);}


/* =========================================================
   OFFERS v6 — detailed jet + A4 "paper" itinerary popup
   ========================================================= */
.ob-bigplane{width:170px !important; height:142px !important; filter:drop-shadow(0 18px 16px rgba(0,0,0,.45)) !important;}
@media (max-width:991.98px){ .ob-bigplane{width:96px !important; height:80px !important;} }

/* A4 sheet: 794px wide (A4 at 96dpi), white paper, soft page shadow */
.checklist-modal .modal-dialog.itin-a4{max-width:794px !important;}
.itin-a4 .modal-content{background:#fff; border-radius:4px !important; overflow:hidden;
  box-shadow:0 2px 0 #e5e7ef, 0 30px 80px -20px rgba(0,0,0,.6) !important;}
.itin-a4 .modal-content::before{content:""; position:absolute; left:0; right:0; top:0; height:6px; z-index:2; background:#0d1b5e;}

.itin-paper-head{background:#fff !important; color:var(--teal-900) !important; padding:1.4rem 2.2rem 1rem !important; border-bottom:0 !important;}
.itin-paper-head::before,.itin-paper-head::after{display:none !important;}
.itin-paper-head .checklist-close{filter:none; opacity:.6;}
.itin-letterhead{display:flex; align-items:center; gap:.9rem; padding-bottom:.9rem; margin-bottom:1rem; border-bottom:2px solid #d81e2c;}
.itin-letterhead img{width:62px; height:62px; object-fit:contain;}
.itin-lh-text{display:flex; flex-direction:column; line-height:1.2;}
.itin-lh-text strong{font-family:'Times New Roman',Georgia,serif; font-size:1.6rem; color:#16487a; letter-spacing:.02em;}
.itin-lh-text span{font-size:.74rem; color:#16487a;}
.itin-lh-text em{font-style:normal; font-size:.7rem; color:#d81e2c;}
.itin-lh-doc{margin-left:auto; margin-right:2rem; font-weight:800; color:#0d1b5e; font-size:1rem;}
.itin-paper-head .checklist-kicker{color:var(--terracotta) !important;}
.itin-paper-head .modal-title{color:var(--teal-900) !important;}
.itin-paper-head .checklist-flag{background:#f4f6fc !important; border-color:rgba(13,27,94,.1) !important;}
.itin-paper-head .checklist-chip{background:#f4f6fc !important; color:var(--teal-900) !important; border-color:rgba(13,27,94,.12) !important;}
.itin-paper-head .checklist-chip-price{background:#d81e2c !important; color:#fff !important; border-color:#d81e2c !important;}

.itin-a4 .checklist-body{background:#fff !important; padding:1.2rem 2.2rem 1.6rem !important;
  background-image:url("../images/logo-watermark.png") !important; background-repeat:no-repeat !important;
  background-position:center 55% !important; background-size:60% auto !important; background-attachment:local;}
.itin-a4 .checklist-body > *{position:relative;}
/* fade the watermark: white veil over the logo, under the content */
.itin-a4 .checklist-body::before{content:""; position:sticky; top:0; display:block; height:0;}
.itin-a4 .dest-overview,.itin-a4 .pkg-card,.itin-a4 .pkg-list{background:rgba(255,255,255,.93) !important; border:1px solid #e3e7f2 !important; box-shadow:none !important; border-radius:6px !important;}
.itin-a4 .pkg-card::before{display:none !important;}
.itin-a4 .checklist-actions{background:#fff; border-top:1px solid #e3e7f2; padding:.9rem 2.2rem !important;}
@media (max-width:575.98px){
  .itin-paper-head{padding:1rem 1rem .8rem !important;}
  .itin-a4 .checklist-body{padding:1rem !important;}
  .itin-lh-doc{display:none;}
  .itin-letterhead img{width:48px; height:48px;}
  .itin-lh-text strong{font-size:1.3rem;}
}


/* =========================================================
   HOME BANNER v2 — mixed slides with floating cards
   ========================================================= */
.hb-banner .carousel-item{height:auto !important; min-height:0 !important; max-height:none !important;}
.hb-slide{position:relative; overflow:hidden; min-height:640px; display:flex; align-items:center; padding:130px 0 120px;}
.hb-bg{position:absolute; inset:0; width:100% !important; height:100% !important; object-fit:cover; filter:none !important; transform:scale(1.06);}
.carousel-item.active .hb-bg{animation:obKen 9s ease-out both;}
.hb-slide::after{content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(90deg,rgba(6,14,52,.93) 0%,rgba(6,14,52,.66) 45%,rgba(6,14,52,.15) 100%);}
.hb-slide .ob-planes{z-index:1; inset:0;}
.hb-inner{position:relative; z-index:3; display:grid; grid-template-columns:1.1fr .9fr; gap:2.5rem; align-items:center;}
.hb-text{color:#fff;}
.hb-tag{display:inline-flex; align-items:center; gap:.5rem; background:linear-gradient(90deg,#d81e2c,#f97316); color:#fff;
  font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:.42rem .95rem; border-radius:50px;
  box-shadow:0 10px 24px -12px rgba(216,30,44,.9);}
.hb-title{font-family:'Fraunces',serif; font-weight:800; color:#fff; font-size:clamp(2.1rem,4.6vw,3.6rem); line-height:1.08; margin:1rem 0 .8rem; max-width:680px;}
.hb-title span{display:block; background:linear-gradient(90deg,#ffd166,#ff9a62); -webkit-background-clip:text; background-clip:text; color:transparent;}
.hb-line{color:#dbe3ff; font-size:1.06rem; max-width:560px; margin:0 0 1.5rem;}
.hb-actions{display:flex; flex-wrap:wrap; gap:.7rem;}
.carousel-item.active .hb-text > *{animation:obUp .7s ease both;}
.carousel-item.active .hb-text > *:nth-child(2){animation-delay:.1s;}
.carousel-item.active .hb-text > *:nth-child(3){animation-delay:.2s;}
.carousel-item.active .hb-text > *:nth-child(4){animation-delay:.3s;}
.carousel-item.active .hb-side > *{animation:obPoster .9s ease both .2s;}

.hb-side{justify-self:end;}
.hb-card{position:relative; width:min(100%,340px); background:#fff; color:var(--teal-900); border-radius:20px; padding:1.2rem 1.3rem;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.7); animation:vhFloat 6s ease-in-out infinite;}
.hb-card-head{display:flex; align-items:center; gap:.6rem; font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--slate);}
.hb-card-head i{width:36px; height:36px; border-radius:12px; display:flex; align-items:center; justify-content:center; color:#fff;
  background:linear-gradient(135deg,#0d1b5e,#1d45c4); font-size:1rem; letter-spacing:0;}
.hb-card-big{font-family:'Fraunces',serif; font-size:1.7rem; font-weight:800; margin:.8rem 0 .7rem; color:var(--teal-900);}
.hb-card-big i{color:#16a34a; font-size:1.3rem;}
.hb-card small{color:var(--slate); font-size:.8rem;}
.hb-flags{display:flex; margin-bottom:.5rem;}
.hb-flags img{width:36px; height:36px; border-radius:50%; object-fit:cover; border:3px solid #fff; box-shadow:0 4px 10px -4px rgba(0,0,0,.4);}
.hb-flags img + img{margin-left:-10px;}
.hb-stamp{position:absolute; right:-14px; top:-16px; transform:rotate(12deg); border:3px solid #d81e2c; color:#d81e2c; background:#fff;
  border-radius:10px; padding:.2rem .6rem; font-weight:900; letter-spacing:.12em; font-size:.9rem;}
.hb-card-visa .hb-card-head i{background:linear-gradient(135deg,#7c3aed,#a855f7);}
.hb-card-fin .hb-card-head i{background:linear-gradient(135deg,#15803d,#22c55e);}
.hb-card-offers .hb-card-head i{background:linear-gradient(135deg,#d81e2c,#f97316);}
.hb-card-study .hb-card-head i{background:linear-gradient(135deg,#1d45c4,#3b82f6);}
.hb-chart{width:100%; height:auto; margin:.8rem 0 .6rem;}
.hb-chips{display:flex; flex-wrap:wrap; gap:.35rem;}
.hb-chips span{background:#f0fdf4; color:#15803d; border:1px solid #bbf7d0; border-radius:50px; padding:.2rem .6rem; font-size:.74rem; font-weight:700;}
.hb-offer-list{list-style:none; margin:.8rem 0 0; padding:0;}
.hb-offer-list li{display:flex; align-items:center; gap:.6rem; padding:.5rem 0; border-top:1px dashed rgba(13,27,94,.12);}
.hb-offer-list li:first-child{border-top:0;}
.hb-offer-list img{width:28px; height:28px; border-radius:50%; object-fit:cover;}
.hb-offer-list span{font-weight:800; flex:1;}
.hb-offer-list b{font-size:.74rem; color:var(--terracotta); font-weight:700;}
.hb-ticket{margin:0;}

/* tabs at the bottom */
.hb-tabs{margin-bottom:5.2rem !important; gap:.5rem; z-index:4 !important;}
.hb-tabs [data-bs-target]{width:auto !important; height:auto !important; text-indent:0 !important; border:0 !important; margin:0 !important;
  display:flex !important; align-items:center; gap:.45rem; padding:.45rem .9rem !important; border-radius:50px !important;
  background:rgba(255,255,255,.14) !important; color:#fff; font-size:.8rem; font-weight:700; opacity:1 !important; backdrop-filter:blur(6px);}
.hb-tabs .active{background:#ffd166 !important; color:#0d1b5e;}
.hb-banner .carousel-control-prev,.hb-banner .carousel-control-next{z-index:4;}

@media (max-width:991.98px){
  .hb-slide{min-height:0; padding:110px 0 130px;}
  .hb-inner{grid-template-columns:1fr; text-align:center; gap:1.8rem;}
  .hb-title,.hb-line{margin-left:auto; margin-right:auto;}
  .hb-actions{justify-content:center;}
  .hb-side{justify-self:center;}
  .hb-tabs span{display:none;}
  .hb-tabs [data-bs-target]{padding:.55rem .65rem !important;}
}
@media (max-width:575.98px){
  .hb-side{display:none;}
  .hb-slide{padding:100px 0 120px;}
}
/* the old banner rule stretched every <img> in a slide; keep it to the background photo only */
.hb-banner .carousel-item .hb-side img{filter:none !important; height:auto; object-fit:cover;}
.hb-banner .carousel-item .hb-flags img{width:36px !important; height:36px !important;}
.hb-banner .carousel-item .hb-offer-list img{width:28px !important; height:28px !important;}
.hb-banner .carousel-item .ob-ticket-top img{width:30px !important; height:30px !important;}
.hb-ticket .ob-ticket-foot{gap:1rem;}

/* ---------- Home banner: short text, brighter photos ---------- */
.hb-slide{min-height:580px; padding:120px 0 120px;}
.hb-slide::after{background:linear-gradient(90deg,rgba(6,14,52,.78) 0%,rgba(6,14,52,.35) 40%,rgba(6,14,52,0) 70%) !important;}
.hb-bg{filter:saturate(1.15) contrast(1.05) !important;}
.hb-title{font-size:clamp(2.4rem,5.4vw,4.2rem); text-shadow:0 6px 24px rgba(0,0,0,.35); margin-bottom:1.4rem;}
.hb-title span{text-shadow:none;}
@media (max-width:991.98px){ .hb-slide{padding:105px 0 125px;} }

/* drop the old banner tint so the photos show in full colour */
.hb-banner .carousel-item::after{display:none !important;}
.hb-banner .carousel-item .hb-bg{filter:saturate(1.15) contrast(1.05) !important;}

/* Home banner titles: medium size */
.hb-banner .hb-title{font-size:clamp(1.8rem,3.4vw,2.8rem) !important; line-height:1.15; margin:.9rem 0 1.2rem;}
@media (max-width:575.98px){ .hb-banner .hb-title{font-size:1.7rem !important;} }

/* ---------- Contact page hero (same style as Visa Services) ---------- */
.contact-hero .vh-card-icon{background:#e0e7ff; color:#1d45c4;}
.ch-card .vh-pass-top{justify-content:flex-start; gap:.6rem; font-size:1.05rem;}
.ch-card .vh-pass-top i{color:#1d45c4;}
.ch-card::after{display:none !important;}
.ch-icons{gap:.35rem; padding:.4rem .55rem;}
.ch-icons span{width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:.9rem;}
.ch-icons span:nth-child(1){background:#1d45c4;} .ch-icons span:nth-child(2){background:#0e9f9f;}
.ch-icons span:nth-child(3){background:#8e44ad;} .ch-icons span:nth-child(4){background:#16a34a;}

/* ---------- EduAbroad: 3-slide banner (slide 1 = original image) ---------- */
.sa-slider .carousel-item{background:#2d516e;}
.sab-slide{position:relative; overflow:hidden; aspect-ratio:2656/830; display:flex; align-items:center;}
.sab-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.carousel-item.active .sab-bg{animation:obKen 9s ease-out both;}
.sab-slide::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,14,52,.85) 0%,rgba(6,14,52,.45) 45%,rgba(6,14,52,0) 75%);}
.sab-inner{position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:2rem;}
.sab-title{font-family:'Fraunces',serif; font-weight:800; color:#fff; font-size:clamp(1.6rem,3.2vw,2.7rem); line-height:1.12; margin:.9rem 0 1.3rem;}
.sab-title span{display:block; background:linear-gradient(90deg,#ffd166,#ff9a62); -webkit-background-clip:text; background-clip:text; color:transparent;}
.carousel-item.active .sab-text > *{animation:obUp .7s ease both;}
.carousel-item.active .sab-text > *:nth-child(2){animation-delay:.1s;}
.carousel-item.active .sab-text > *:nth-child(3){animation-delay:.2s;}
.sab-card{width:280px;}
.sab-card .hb-flags img{width:34px !important; height:34px !important;}
.sab-dots{margin-bottom:.8rem;}
.sab-dots [data-bs-target]{width:10px !important; height:10px !important; border-radius:50%; background:#fff !important; opacity:.5;}
.sab-dots .active{opacity:1; background:#ffd166 !important;}
.sa-slider .carousel-control-prev,.sa-slider .carousel-control-next{width:6%;}
@media (max-width:767.98px){
  .sab-slide{aspect-ratio:1476/830;}
  .sab-card{display:none;}
  .sab-inner{justify-content:center; text-align:center;}
}

/* EduAbroad slide 3: keep the students faces in frame */
.sab-bg[src*="1488085061387"]{object-position:center 60%;}

/* Offers banner titles: medium size (all slides) */
.offer-banner .ob-title,
.offer-banner .ob-photo .ob-title{font-size:clamp(1.8rem,3.4vw,2.8rem) !important; line-height:1.15;}
.offer-banner .ob-price strong{font-size:clamp(1.6rem,3vw,2.2rem) !important;}
@media (max-width:575.98px){ .offer-banner .ob-title{font-size:1.7rem !important;} }

/* =========================================================
   LIGHT COLOUR THEME — no plain white page backgrounds.
   Soft tinted sections (sky, peach, mint, lavender) behind the
   white cards, so every page feels warm but stays readable.
   ========================================================= */
:root{
  --tint-sky:#eaf2ff;
  --tint-peach:#fff3ea;
  --tint-mint:#e9f8f1;
  --tint-lav:#f1edff;
  --tint-sun:#fff9e6;
  --cream:#eef3ff;
}
body{
  background-color:#f2f6ff !important;
  background-image:
    radial-gradient(900px 500px at 0% 0%, rgba(59,130,246,.10), transparent 60%),
    radial-gradient(800px 500px at 100% 30%, rgba(249,115,22,.08), transparent 60%),
    radial-gradient(900px 600px at 20% 100%, rgba(34,197,94,.08), transparent 60%),
    radial-gradient(rgba(13,27,94,.05) 1.2px, transparent 1.4px) !important;
  background-size:auto, auto, auto, 26px 26px !important;
  background-attachment:fixed, fixed, fixed, scroll;
}
.bg-cream{background:linear-gradient(180deg,var(--tint-sky),#f6f9ff) !important;}

/* Home */
.ab-section{background:linear-gradient(135deg,var(--tint-peach) 0%,#fffaf5 60%,var(--tint-sun) 100%) !important;}
.hw-section{background:linear-gradient(180deg,var(--tint-mint),#f4fcf8) !important;}
.happy-globe-section{background:radial-gradient(70% 60% at 75% 50%,#e3e9ff,var(--tint-lav) 70%) !important;}

/* EduAbroad */
.road-section{background:linear-gradient(180deg,var(--tint-sky),#f5f8ff) !important;}
.alliance-section{background:linear-gradient(180deg,var(--tint-lav),#f8f6ff) !important;}
.uni-section{background:linear-gradient(180deg,var(--tint-peach),#fffaf6) !important;}
.testprep-section{background:linear-gradient(180deg,var(--tint-mint),#f4fcf8) !important;}

/* Offers */
.pk-section{background:linear-gradient(180deg,var(--tint-sky),var(--tint-lav)) !important;}
.ti-section{background:linear-gradient(180deg,var(--tint-lav),var(--tint-peach)) !important; padding-top:4rem !important;}

/* sections with no colour of their own pick up a soft band */
section.section:not([class*="-section"]):not(.bg-cream):not(.svc-band):not(.pk-section):not(.ti-section):not(.sa-cross){
  background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(234,242,255,.6));
}

/* footer edge so the light page meets the dark footer cleanly */
.footer-sahyog{box-shadow:0 -1px 0 rgba(13,27,94,.08);}

/* ---------- Itinerary popup: smaller buttons, coloured package names ---------- */
#itineraryModal .pkg-actions{gap:.5rem; justify-content:flex-start;}
#itineraryModal .pkg-actions .btn{flex:0 0 auto !important; min-width:0 !important; width:auto !important;
  font-size:.85rem !important; padding:.45rem 1rem !important; border-radius:50px;}
#itineraryModal .pkg-head h6{
  font-size:1.12rem !important; font-weight:800 !important; line-height:1.3;
  background:linear-gradient(90deg,#1d45c4,#7c3aed); -webkit-background-clip:text; background-clip:text; color:transparent !important;
}
#itineraryModal .pkg-card:nth-child(2) .pkg-head h6{background-image:linear-gradient(90deg,#d81e2c,#f97316);}
#itineraryModal .pkg-card:nth-child(3) .pkg-head h6{background-image:linear-gradient(90deg,#0f766e,#16a34a);}
#itineraryModal .pkg-card:nth-child(4) .pkg-head h6{background-image:linear-gradient(90deg,#b45309,#db2777);}
#itineraryModal .pkg-list-name{color:#1d45c4;}
#itineraryModal .pkg-list li:nth-child(2) .pkg-list-name{color:#d81e2c;}
#itineraryModal .pkg-list li:nth-child(3) .pkg-list-name{color:#0f766e;}
#itineraryModal .pkg-list li:nth-child(4) .pkg-list-name{color:#b45309;}
@media (max-width:575.98px){ #itineraryModal .pkg-actions .btn{flex:1 1 auto !important;} }

/* ---------- Itinerary popup: all buttons small ---------- */
#itineraryModal .pkg-actions .btn{font-size:.78rem !important; padding:.32rem .8rem !important; font-weight:700;}
#itineraryModal .pkg-actions .btn i{font-size:.75rem;}
#itineraryModal .checklist-actions{justify-content:flex-start !important; gap:.5rem; padding:.7rem 2.2rem !important;}
#itineraryModal .checklist-actions .btn{flex:0 0 auto !important; width:auto !important; min-width:0 !important;
  font-size:.82rem !important; padding:.4rem 1rem !important; border-radius:50px;}
#itineraryModal .checklist-meta .checklist-chip{font-size:.74rem !important; padding:.25rem .65rem !important;}
#itineraryModal .pkg-price{font-size:.95rem;}
#itineraryModal .pkg-chip,#itineraryModal .pkg-stay{font-size:.74rem;}

/* ---------- Itinerary popup: colourful package list + options side by side ---------- */
#itineraryModal .pkg-list{
  background:linear-gradient(135deg,#0d1b5e 0%,#1d45c4 60%,#7c3aed 100%) !important;
  border:0 !important; border-radius:16px !important; padding:1rem 1.1rem !important; color:#fff;
  box-shadow:0 18px 36px -20px rgba(29,69,196,.8) !important;
}
#itineraryModal .pkg-list h6{color:#ffd166 !important;}
#itineraryModal .pkg-list li + li{border-top:1px dashed rgba(255,255,255,.25) !important;}
#itineraryModal .pkg-list a{color:#fff;}
#itineraryModal .pkg-list a::before{background:#ffd166 !important; color:#0d1b5e !important;}
#itineraryModal .pkg-list .pkg-list-name,
#itineraryModal .pkg-list li:nth-child(n) .pkg-list-name{color:#fff !important;}
#itineraryModal .pkg-list-dur{color:#c7d2fe !important;}
#itineraryModal .pkg-list strong{color:#0d1b5e !important; background:#ffd166; padding:.15rem .6rem; border-radius:50px; font-size:.9rem;}

/* Option 1 | Option 2 next to each other */
#itineraryModal .pkg-grid.pkg-side{display:grid !important; grid-template-columns:1fr 1fr !important; gap:.9rem; align-items:start;}
#itineraryModal .pkg-side .pkg-card{padding:1rem !important; margin:0 !important;}
#itineraryModal .pkg-side .pkg-head{flex-wrap:wrap; gap:.35rem;}
#itineraryModal .pkg-side .pkg-head h6{width:100%; order:2; font-size:1.02rem !important;}
#itineraryModal .pkg-side .pkg-facts{display:flex; flex-direction:column; align-items:flex-start; gap:.4rem;}
#itineraryModal .pkg-side .pkg-desc{font-size:.84rem;}
#itineraryModal .pkg-side .pkg-summary li{font-size:.82rem; padding:.3rem 0;}
#itineraryModal .pkg-side .pkg-actions{flex-wrap:wrap;}
#itineraryModal .pkg-side .pkg-card:nth-child(1){border-top:4px solid #1d45c4 !important;}
#itineraryModal .pkg-side .pkg-card:nth-child(2){border-top:4px solid #d81e2c !important;}
#itineraryModal .pkg-side .pkg-card:nth-child(3){border-top:4px solid #0f766e !important;}
#itineraryModal .pkg-side .pkg-full{grid-column:auto;}
@media (max-width:767.98px){ #itineraryModal .pkg-grid.pkg-side{grid-template-columns:1fr !important;} }

/* ---------- Home About: medium heading, content only ---------- */
.ab-section .ab-title{font-size:clamp(1.6rem,2.8vw,2.2rem) !important; line-height:1.2; margin-bottom:1rem;}
.ab-title span{background:linear-gradient(90deg,#1d45c4,#d81e2c); -webkit-background-clip:text; background-clip:text; color:transparent;}
.ab-lead{font-size:1.08rem; font-weight:600; color:var(--teal-900); margin-bottom:1rem;}
.ab-copy{color:var(--slate); line-height:1.75; margin-bottom:.8rem; padding-left:1rem; border-left:3px solid rgba(29,69,196,.25);}
.ab-copy:nth-of-type(3){border-left-color:rgba(14,159,159,.45);}
.ab-copy:nth-of-type(4){border-left-color:rgba(22,163,74,.45);}
.ab-copy:nth-of-type(2){border-left-color:rgba(29,69,196,.45);}
.ab-sign{margin-top:1.2rem; font-weight:700; color:var(--terracotta); display:flex; align-items:center; gap:.5rem;}

/* ---------- Home About: trust circles ---------- */
.ab-circles{display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem .8rem; margin:1.4rem 0 .4rem;}
.ab-circle{display:flex; flex-direction:column; align-items:center; text-align:center; gap:.55rem;}
.ab-circle span{width:78px; height:78px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; color:var(--c); background:#fff; border:3px solid var(--c);
  box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 14%,transparent), 0 14px 26px -14px var(--c);
  transition:transform .3s ease, background .3s ease, color .3s ease;}
.ab-circle:hover span{transform:translateY(-5px) scale(1.06); background:var(--c); color:#fff;}
.ab-circle b{font-size:.88rem; font-weight:700; color:var(--teal-900);}
@media (max-width:575.98px){ .ab-circle span{width:64px; height:64px; font-size:1.3rem;} .ab-circle b{font-size:.8rem;} }

/* ---------- Exam bubbles: white circles with the official test logos ---------- */
.bubble.exam-logo{background:#fff !important; color:var(--teal-900);
  border:3px solid rgba(29,69,196,.18); box-shadow:0 0 0 6px rgba(29,69,196,.06), 0 16px 30px -16px rgba(13,27,94,.55);}
.bubble.exam-logo.bubble-lg{border-color:rgba(216,30,44,.35); box-shadow:0 0 0 7px rgba(216,30,44,.08), 0 16px 30px -16px rgba(216,30,44,.5);}
.bubble.exam-logo img{max-width:72%; max-height:40%; object-fit:contain; display:block;}
.bubble.exam-logo .exam-word{font-family:'Poppins','Inter',sans-serif; font-size:1.6rem; font-weight:800; letter-spacing:.02em; line-height:1;}
.bubble.exam-logo small{color:var(--slate); opacity:1; font-size:.68rem; margin-top:.45rem;}
@media (max-width:575px){ .bubble.exam-logo .exam-word{font-size:1.25rem;} }

/* ---------- Exam bubbles: colourful royal-blue rings ---------- */
.bubble.exam-logo{border:0 !important; background:#fff !important; position:relative;
  box-shadow:0 0 0 5px #fff, 0 0 0 10px var(--ring,#1d45c4), 0 20px 36px -14px rgba(29,69,196,.6) !important;}
.bubble.exam-logo:nth-child(1){--ring:#1d45c4;}
.bubble.exam-logo:nth-child(2){--ring:#2f6bff;}
.bubble.exam-logo:nth-child(3){--ring:#4f46e5;}
.bubble.exam-logo:nth-child(4){--ring:#1d45c4;}
.bubble.exam-logo:nth-child(5){--ring:#2563eb;}
.bubble.exam-logo:nth-child(6){--ring:#3b5bdb;}
.bubble.exam-logo:nth-child(7){--ring:#1e40af;}
.bubble.exam-logo small{background:linear-gradient(90deg,#1d45c4,#2f6bff); color:#fff !important; border-radius:50px; padding:.12rem .55rem; font-size:.62rem !important;}
.bubble-field{background:radial-gradient(60% 80% at 50% 50%,rgba(29,69,196,.10),transparent 70%); padding:1.5rem 0;}

/* =========================================================
   EduAbroad slide 1 — animated "Study Abroad Preparation"
   ========================================================= */
.sap-slide{position:relative; overflow:hidden; aspect-ratio:2656/830; min-height:420px; display:flex; align-items:center;
  background:radial-gradient(70% 90% at 75% 50%,#3a6690 0%,#2d516e 55%,#243f58 100%);}
.sap-inner{position:relative; z-index:3; display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:center; width:100%;}
.sap-bar{display:block; width:78px; height:22px; border-radius:6px; background:#f6a21a; transform:skewX(-10deg); margin-bottom:1rem;}
.sap-title{margin:0; font-family:'Poppins','Inter',sans-serif; font-weight:800; line-height:.98; text-transform:uppercase;}
.sap-title span{display:block; color:#fff; font-size:clamp(2.4rem,5.2vw,4.4rem); letter-spacing:.01em; animation:sapIn .8s ease both;}
.sap-title span:nth-child(2){animation-delay:.12s;}
.sap-title em{display:block; font-style:normal; font-size:clamp(1.5rem,3.2vw,2.7rem); margin-top:.35rem;
  background:linear-gradient(90deg,#f6a21a,#ffe08a,#f6a21a); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:sapIn .8s ease both .24s, sapShine 3.5s linear infinite 1s;}
.sap-dots{display:block; width:62px; height:42px; margin:1.1rem 0; background-image:radial-gradient(#f6a21a 5px,transparent 5.5px); background-size:21px 21px;
  animation:sapIn .8s ease both .36s;}
.sap-btn{animation:sapIn .8s ease both .48s;}
@keyframes sapIn{from{opacity:0; transform:translateY(24px);}to{opacity:1; transform:none;}}
@keyframes sapShine{to{background-position:-200% 0;}}

.sap-media{position:relative; height:clamp(300px,34vw,440px);}
.sap-blob{position:absolute; left:50%; top:50%; width:min(78%,420px); aspect-ratio:1; transform:translate(-50%,-50%);
  border-radius:42% 58% 55% 45% / 48% 42% 58% 52%;
  background:linear-gradient(135deg,#f6a21a,#ffc24d); animation:sapMorph 9s ease-in-out infinite; box-shadow:0 30px 60px -25px rgba(0,0,0,.6);}
@keyframes sapMorph{0%,100%{border-radius:42% 58% 55% 45% / 48% 42% 58% 52%;}50%{border-radius:58% 42% 45% 55% / 42% 58% 42% 58%;}}
.sap-card{position:absolute; left:50%; top:50%; width:min(72%,380px); aspect-ratio:1; transform:translate(-50%,-50%); border-radius:32px; overflow:hidden;
  box-shadow:0 26px 50px -18px rgba(0,0,0,.65); animation:sapFloat 6s ease-in-out infinite;}
.sap-card img{width:100%; height:100%; object-fit:cover; display:block;}
@keyframes sapFloat{0%,100%{translate:0 0;}50%{translate:0 -12px;}}
.sap-logo{position:absolute; left:6%; top:2%; width:clamp(64px,7vw,96px); height:auto; aspect-ratio:1; object-fit:contain; background:#fff; border-radius:50%;
  padding:6px; border:4px solid #f6a21a; box-shadow:0 12px 24px -10px rgba(0,0,0,.6); z-index:4; animation:sapFloat 5s ease-in-out infinite -1s;}
.sap-flag{position:absolute; z-index:4; width:clamp(52px,5.6vw,76px); aspect-ratio:1; border-radius:50%; background:#fff; padding:4px;
  box-shadow:0 12px 22px -10px rgba(0,0,0,.6); animation:sapBob 4.5s ease-in-out infinite;}
.sap-flag img{width:100%; height:100%; border-radius:50%; object-fit:cover; display:block;}
.sap-flag-uk{left:4%; top:42%;}
.sap-flag-de{left:10%; bottom:2%; animation-delay:-1.1s;}
.sap-flag-au{right:4%; top:22%; animation-delay:-2.2s;}
.sap-flag-us{right:8%; bottom:10%; animation-delay:-3.3s;}
@keyframes sapBob{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-14px) scale(1.06);}}

.sap-hex{position:absolute; z-index:1; aspect-ratio:1/1.1547; clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
  background:rgba(255,255,255,.85); animation:sapSpin 30s linear infinite;}
.sap-hex::after{content:""; position:absolute; inset:4px; clip-path:inherit; background:#2f5677;}
.sap-hex-1{width:170px; right:2%; top:6%;}
.sap-hex-2{width:120px; right:30%; bottom:-40px; animation-direction:reverse;}
@keyframes sapSpin{to{rotate:360deg;}}
.sap-tri{position:absolute; z-index:1; width:0; height:0; border-left:14px solid transparent; border-right:14px solid transparent;
  border-bottom:24px solid rgba(246,162,26,.8); animation:sapBob 5s ease-in-out infinite;}
.sap-tri-1{left:30%; top:80%;} .sap-tri-2{left:42%; top:12%; animation-delay:-2s;}
.sap-trail{position:absolute; inset:0; width:100%; height:100%; z-index:1;}
.sap-trail path{animation:sapDash 6s linear infinite;}
@keyframes sapDash{to{stroke-dashoffset:-200;}}
.sap-plane{position:absolute; z-index:2; color:#fff; font-size:2rem; filter:drop-shadow(0 6px 8px rgba(0,0,0,.35));}
.sap-plane-1{left:45%; top:14%; rotate:-10deg; animation:sapFly 6s ease-in-out infinite;}
.sap-plane-2{right:1.5%; top:20%; rotate:-55deg; animation:sapFly 7s ease-in-out infinite -2s;}
@keyframes sapFly{0%,100%{translate:0 0;}50%{translate:14px -12px;}}

@media (max-width:767.98px){
  .sap-slide{aspect-ratio:auto; padding:2rem 0 3rem;}
  .sap-inner{grid-template-columns:1fr; text-align:center;}
  .sap-bar,.sap-dots{margin-left:auto; margin-right:auto;}
  .sap-hex-2,.sap-plane-2,.sap-hex-1{display:none;}
  .sap-media{height:320px;}
}
@media (prefers-reduced-motion:reduce){ .sap-slide *{animation:none !important;} }

/* ---------- University logo cards ---------- */
.uni-logo-card{padding:1.3rem 1rem 1.1rem !important; min-width:210px;}
.uni-logo-wrap{position:relative; width:96px; height:96px; margin:0 auto .9rem; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 6px #eef2ff, 0 12px 24px -12px rgba(13,27,94,.55);}
.uni-logo-wrap > img:first-child{width:66px; height:66px; object-fit:contain;}
.uni-logo-wrap .alliance-flag{right:-4px; bottom:-2px;}
.uni-logo-card h5{font-size:.95rem !important;}

/* ---------- Universities We Work With: popping bubble wave ---------- */
.ub-cloud{display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1.4rem 1.6rem; margin-top:2.4rem; padding:1rem 0;}
.ub-item{position:relative; display:flex; flex-direction:column; align-items:center;
  transform:scale(0); opacity:0; transition:transform .6s cubic-bezier(.2,1.6,.4,1), opacity .4s ease;
  transition-delay:calc(var(--i) * 90ms);}
.ub-cloud.ub-in .ub-item{transform:scale(1); opacity:1;}
.ub-item:nth-child(even){margin-top:3rem;}
.ub-bubble{position:relative; width:var(--sz,120px); height:var(--sz,120px); border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:0 0 0 6px rgba(29,69,196,.10), 0 18px 34px -16px rgba(13,27,94,.55);
  animation:ubWave 4.5s ease-in-out infinite; animation-delay:calc(var(--i) * -0.35s);
  transition:box-shadow .3s ease, scale .3s ease;}
.ub-bubble > img:first-child{width:62%; height:62%; object-fit:contain;}
.ub-flag{position:absolute; right:2%; bottom:4%; width:28%; height:28%; border-radius:50%; object-fit:cover; border:3px solid #fff; box-shadow:0 4px 10px -3px rgba(0,0,0,.4);}
.ub-lg{--sz:140px;} .ub-md{--sz:118px;} .ub-sm{--sz:98px;}
@keyframes ubWave{0%,100%{translate:0 0;}50%{translate:0 -16px;}}
.ub-item:hover .ub-bubble{scale:1.12; box-shadow:0 0 0 8px rgba(29,69,196,.2), 0 24px 40px -14px rgba(29,69,196,.7); animation-play-state:paused;}
.ub-tip{position:absolute; top:calc(100% + 8px); left:50%; transform:translate(-50%,6px); white-space:nowrap; z-index:5;
  background:var(--teal-900); color:#fff; border-radius:12px; padding:.4rem .8rem; text-align:center; font-size:.8rem;
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease; box-shadow:0 10px 20px -10px rgba(0,0,0,.6);}
.ub-tip::before{content:""; position:absolute; left:50%; top:-6px; width:12px; height:12px; background:inherit; transform:translateX(-50%) rotate(45deg);}
.ub-tip strong{display:block; font-weight:700;}
.ub-tip span{color:#ffd166; font-size:.72rem; font-weight:600;}
.ub-item:hover .ub-tip{opacity:1; transform:translate(-50%,0);}
@media (max-width:575.98px){
  .ub-lg{--sz:100px;} .ub-md{--sz:88px;} .ub-sm{--sz:76px;}
  .ub-cloud{gap:1rem;} .ub-item:nth-child(even){margin-top:1.6rem;}
}
@media (prefers-reduced-motion:reduce){ .ub-bubble{animation:none;} .ub-item{transform:none; opacity:1;} }

/* ---------- Diwali Dhamaka banner: fireworks + diyas ---------- */
.diwali-banner{position:relative;}
.dw-fireworks{position:absolute; left:0; right:0; top:0; bottom:0; width:100%; height:100%; z-index:2; pointer-events:none; mix-blend-mode:screen;}
.diwali-banner .ob-inner{z-index:3;}
.ob-tag.ob-diwali{background:linear-gradient(90deg,#ff9f1c,#f72585,#ff9f1c); background-size:200% 100%;
  animation:dwTag 3s linear infinite; box-shadow:0 0 0 0 rgba(255,159,28,.7), 0 10px 24px -10px rgba(247,37,133,.9);}
@keyframes dwTag{to{background-position:-200% 0;}}
.ob-tag.ob-diwali i{animation:dwFlame 1s ease-in-out infinite alternate; color:#ffe08a;}
@keyframes dwFlame{from{transform:scale(1) rotate(-6deg);}to{transform:scale(1.25) rotate(6deg);}}
.dw-diyas{position:absolute; left:0; right:0; bottom:10px; z-index:3; display:flex; justify-content:space-around; pointer-events:none;}
.dw-diyas span{position:relative; width:34px; height:14px; border-radius:0 0 34px 34px; background:linear-gradient(180deg,#e76f51,#9c3d22);}
.dw-diyas span::after{content:""; position:absolute; left:50%; bottom:100%; width:10px; height:18px; margin-left:-5px;
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; background:radial-gradient(circle at 50% 70%,#fff6c2,#ffb703 45%,#ff6b00 80%);
  box-shadow:0 0 16px 6px rgba(255,183,3,.55); animation:dwFlicker 1.2s ease-in-out infinite alternate;}
.dw-diyas span:nth-child(2)::after{animation-delay:-.4s;} .dw-diyas span:nth-child(3)::after{animation-delay:-.8s;}
.dw-diyas span:nth-child(4)::after{animation-delay:-.2s;} .dw-diyas span:nth-child(5)::after{animation-delay:-.6s;}
@keyframes dwFlicker{from{transform:scaleY(1) rotate(-3deg); opacity:.9;}to{transform:scaleY(1.2) rotate(3deg); opacity:1;}}
@media (max-width:575.98px){ .dw-diyas span:nth-child(2),.dw-diyas span:nth-child(4){display:none;} }

/* ---------- Package cards: included icons ---------- */
.pk-inc{list-style:none; padding:0; margin:-.3rem 0 .9rem; display:flex; flex-wrap:wrap; gap:.35rem;}
.pk-inc li{display:inline-flex; align-items:center; gap:.3rem; padding:.22rem .55rem; border-radius:50px; font-size:.7rem; font-weight:700;
  background:color-mix(in srgb,var(--c,#1d45c4) 10%,#fff); color:var(--c,#1d45c4); border:1px solid color-mix(in srgb,var(--c,#1d45c4) 28%,transparent);}
.pk-inc li i{font-size:.72rem;}

/* ---------- Travel insurance: big highlighted label, medium title, insurance photo ---------- */
.ti-badge-big{display:inline-flex; align-items:center; gap:.6rem; margin:0 0 1rem; padding:.55rem 1.2rem; border-radius:50px;
  background:linear-gradient(90deg,#ffd166,#f6a21a); color:#0d1b5e; font-weight:800; font-size:1.25rem; letter-spacing:.04em; text-transform:uppercase;
  box-shadow:0 12px 26px -12px rgba(246,162,26,.9);}
.ti-badge-big i{font-size:1.3rem; color:#d81e2c;}
.ti-title{font-size:clamp(1.25rem,2vw,1.6rem) !important; font-weight:700; margin-bottom:1.2rem !important;}
.ti-float{position:absolute; right:1.2rem; top:1.2rem; display:flex; align-items:center; gap:.7rem; background:rgba(13,27,94,.88); color:#fff;
  border-radius:16px; padding:.75rem 1rem; box-shadow:0 16px 30px -14px rgba(0,0,0,.6); animation:vhFloat 5s ease-in-out infinite;}
.ti-float i{font-size:1.6rem; color:#22c55e;}
.ti-float strong{display:block; font-size:.95rem;}
.ti-float span{font-size:.75rem; color:#c7d2fe;}

/* keep the centre clear for the slide thumbnails */
.dw-diyas span:nth-child(3){visibility:hidden;}

/* ---------- Diwali Dhamaka: big animated title, top centre of the banner ---------- */
.diwali-banner .ob-slide{padding-top:10.5rem !important;}
.dw-head{position:absolute; left:0; right:0; top:118px; z-index:4; text-align:center; pointer-events:none;}
@media (max-width:1199.98px){ .dw-head{top:98px;} }
.dw-title{margin:0; font-family:'Fraunces',serif; font-weight:900; line-height:1; font-size:clamp(2rem,5.2vw,4.2rem);
  display:inline-flex; gap:.45em; flex-wrap:wrap; justify-content:center; text-transform:uppercase; letter-spacing:.02em;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.55));}
.dw-word{background:linear-gradient(90deg,#fff3b0,#ffd166 25%,#ff9f1c 50%,#ffd166 75%,#fff3b0); background-size:200% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:dwPop .8s cubic-bezier(.2,1.6,.4,1) both, dwGlow 3s linear infinite;}
.dw-w2{background-image:linear-gradient(90deg,#ffd6e8,#ff5fa2 25%,#f72585 50%,#ff5fa2 75%,#ffd6e8); animation-delay:.15s, .2s;}
.dw-w3{animation-delay:.3s, .4s;}
@keyframes dwPop{from{opacity:0; transform:scale(.3) translateY(30px);}to{opacity:1; transform:none;}}
@keyframes dwGlow{to{background-position:-200% 0;}}
.dw-sub{margin:.6rem 0 0; color:#fff; font-weight:600; font-size:.95rem; letter-spacing:.03em; text-shadow:0 2px 8px rgba(0,0,0,.6);
  animation:dwPop .8s ease both .5s;}
.dw-sub i{color:#ffd166; margin-right:.3rem;}
.dw-cracker{display:inline-block; vertical-align:middle; font-size:clamp(1.6rem,3vw,2.6rem); margin:0 .6rem;}
.dw-cracker i{color:#ffd166; animation:dwBurst 1.6s ease-in-out infinite; filter:drop-shadow(0 0 10px rgba(255,209,102,.9));}
.dw-cracker-r i{color:#ff5fa2; animation-delay:-.8s; filter:drop-shadow(0 0 10px rgba(247,37,133,.9));}
@keyframes dwBurst{0%,100%{transform:scale(.7) rotate(0); opacity:.6;}50%{transform:scale(1.25) rotate(25deg); opacity:1;}}
.dw-fly{position:absolute; top:-6px; left:0; color:#fff; font-size:1.6rem; filter:drop-shadow(0 4px 6px rgba(0,0,0,.5));
  animation:dwFly 9s linear infinite;}
.dw-fly::after{content:""; position:absolute; right:100%; top:50%; width:120px; margin-right:6px; border-top:2px dashed rgba(255,255,255,.6);}
@keyframes dwFly{0%{left:-10%;}100%{left:105%;}}
@media (max-width:575.98px){ .dw-sub{font-size:.8rem; padding:0 1rem;} .diwali-banner .ob-slide{padding-top:9rem !important;} .dw-cracker{display:none;} }

/* package "included" tags: icon-only round badges */
.pk-inc{gap:.45rem;}
.pk-inc li{width:34px; height:34px; padding:0 !important; justify-content:center; border-radius:50%; font-size:0;}
.pk-inc li i{font-size:.95rem !important;}

/* smaller "included" symbols on package cards */
.pk-inc{gap:.3rem !important;}
.pk-inc li{width:24px !important; height:24px !important; border-width:1px;}
.pk-inc li i{font-size:.66rem !important;}

/* included symbols: royal blue on every card */
.pk-card .pk-inc li{background:#e8eeff !important; color:#1d45c4 !important; border:1px solid rgba(29,69,196,.3) !important;}

/* hotel table inside the itinerary popup */
.pkg-hotels{width:100%; border-collapse:collapse; font-size:.85rem;}
.pkg-hotels th{text-align:left; width:38%; padding:.4rem .5rem .4rem 0; color:var(--teal-900); font-weight:700; vertical-align:top;}
.pkg-hotels td{padding:.4rem 0; color:var(--slate);}
.pkg-hotels tr + tr th,.pkg-hotels tr + tr td{border-top:1px dashed rgba(13,27,94,.14);}

/* hotels table with borders, like the printed itinerary */
.pkg-hotels{border:1px solid #c9d0e6; border-radius:6px; overflow:hidden;}
.pkg-hotels thead th{background:#0d1b5e; color:#fff; font-size:.75rem; letter-spacing:.04em; text-transform:uppercase; padding:.45rem .6rem; border:0;}
.pkg-hotels td{border:1px solid #dfe4f2; padding:.45rem .6rem; color:var(--slate); vertical-align:middle;}
.pkg-hotels .pkg-h-city{font-weight:700; color:var(--teal-900); width:30%;}
.pkg-hotels .pkg-h-n{width:14%; text-align:center; font-weight:700; color:var(--teal-900);}
.pkg-hotels tr + tr th,.pkg-hotels tr + tr td{border-top:1px solid #dfe4f2;}

/* Happy clients heading: medium size */
.hc-title{font-size:clamp(1.4rem,2.4vw,1.9rem) !important; line-height:1.25;}
.hc-title i{font-size:.9em; color:var(--terracotta);}

/* Tourist visa form on phones: the table headings are hidden there, so each
   field carries its own small label instead. */
.mob-label{font-size:.78rem; font-weight:600; color:var(--teal-900); margin-bottom:.15rem;}
@media (max-width:767.98px){
  #visaForm .row.g-2 > [class*="col-md"]{margin-bottom:.35rem;}
  #visaForm .fam-tag{background:#eef2ff; border-radius:8px; padding:.35rem .6rem; margin-bottom:.3rem;}
  #visaForm .fam-tag span{color:var(--teal-900); font-size:.9rem;}
  #visaForm .form-control-sm,#visaForm .form-select{font-size:.95rem; padding:.5rem .7rem;}
  #visaForm .form-section{padding:1.1rem;}
}

/* =========================================================
   SMOOTHER SCROLLING ON PHONES
   Fixed background layers and blur effects make phones redraw
   the whole screen on every scroll, which feels jerky. Turn
   them off on small screens.
   ========================================================= */
@media (max-width:991.98px){
  body{background-attachment:scroll !important;}
  .navbar-sahyog,
  .ob-chips li,.visa-hero-chips li,.hb-tabs [data-bs-target],.ob-thumbs-photo [data-bs-target],
  .co-tag,.svc-pillar{-webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
  .dw-fireworks{display:none !important;}
  .ob-bigplane,.sap-hex,.sap-plane,.ab-img-2,.ab-img-3{animation:none !important;}
  .sap-blob,.sap-card,.hb-card,.ob-ticket,.vh-card,.vh-flags{animation:none !important;}
  .hg-bubble-in,.ub-bubble{animation:none !important;}
}
/* visa form: sub-headings inside a section */
#visaForm .sub-head{font-size:.95rem; font-weight:800; color:var(--terracotta); margin:.2rem 0 .8rem;}
#visaForm .repeat-row{padding-bottom:.4rem; margin-bottom:.4rem; border-bottom:1px dashed rgba(13,27,94,.12);}
#visaForm .repeat-row:last-child{border-bottom:0;}
#visaForm .add-row{margin-top:.4rem;}

/* phones: plain background and no reveal animations on long form pages */
@media (max-width:991.98px){
  body{background-image:none !important; background-color:#f4f7ff !important;}
  .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
  #visaForm .form-section,#enquiryForm .form-section{box-shadow:none; border:1px solid rgba(13,27,94,.08);}
  :root,html{scroll-behavior:auto !important;}
}

/* =========================================================
   SCROLL PERFORMANCE (all screens)
   Pinned background layers and glass blur force the browser to
   repaint the whole window on every scroll frame. Neither is
   needed for the look, so both come off everywhere.
   ========================================================= */
body{background-attachment:scroll !important;}
.navbar-sahyog{-webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
.ob-chips li,.visa-hero-chips li,.hb-tabs [data-bs-target],.ob-thumbs-photo [data-bs-target],
.co-tag,.svc-pillar,.carousel-indicators [data-bs-target]{-webkit-backdrop-filter:none !important; backdrop-filter:none !important;}
/* long lists only paint what is on screen */
.pk-section,.happy-globe-section,.uni-section,.alliance-section,.ub-section{content-visibility:auto; contain-intrinsic-size:auto 900px;}


/* =========================================================
   ANIMATIONS ONLY WHERE YOU CAN SEE THEM
   main.js marks a section .off-screen while it is out of view;
   its decoration stops repainting until it comes back.
   ========================================================= */
.off-screen *,
.off-screen::before,
.off-screen::after{animation-play-state:paused !important;}

/* a scroll that lands on a form field should not slide the page */
input,select,textarea{scroll-margin-top:90px;}

/* Pages marked data-no-motion (the forms and the visa page) hold still:
   content is simply there, and nothing slides in as you pass it. */
[data-no-motion] .reveal{opacity:1 !important; transform:none !important; transition:none !important;}
[data-no-motion] .scroll-progress,[data-no-motion] .scroll-cue{display:none !important;}

/* =========================================================
   VISA SERVICE TABS
   The visa page now covers tourist, student, work, PR, spouse
   and the passport desk. These are the tabs above the country
   grid and the panel used by services with no country list.
   ========================================================= */
.svc-tabs{display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin:1.2rem auto .9rem; max-width:980px;}
.svc-tab{display:inline-flex; align-items:center; gap:.5rem; border:1.5px solid rgba(13,27,94,.16);
  background:#fff; color:var(--teal-900); font-weight:700; font-size:.92rem; letter-spacing:.01em;
  padding:.6rem 1.1rem; border-radius:999px; cursor:pointer; transition:background .18s, color .18s, border-color .18s, box-shadow .18s;}
.svc-tab i{font-size:.95rem; color:var(--terracotta); transition:color .18s;}
.svc-tab:hover{border-color:rgba(13,27,94,.4); box-shadow:0 8px 18px -12px rgba(13,27,94,.5);}
.svc-tab.is-on{background:linear-gradient(90deg,#0d1b5e,#1d45c4); border-color:transparent; color:#fff;
  box-shadow:0 12px 26px -14px rgba(13,27,94,.8);}
.svc-tab.is-on i{color:var(--gold, #f6b700);}
.svc-blurb{text-align:center; color:#5b6480; font-size:.98rem; margin:0 auto .4rem; max-width:620px;}
.svc-deep{text-align:center; margin:0 0 1.1rem;}
.svc-deep a{color:var(--teal-700); font-weight:700; text-decoration:none; font-size:.95rem;}
.svc-deep a:hover{text-decoration:underline;}
.svc-panel{max-width:620px; margin:0 auto;}
.svc-panel-in{background:#fff; border:1px solid rgba(13,27,94,.1); border-radius:var(--radius-lg);
  padding:2rem 1.6rem; text-align:center; box-shadow:var(--shadow-soft);}
.svc-panel-in > i{font-size:2.2rem; color:var(--terracotta); margin-bottom:.7rem; display:block;}
.svc-panel-in h5{font-weight:800; color:var(--teal-900); margin-bottom:.4rem;}
.svc-panel-in p{color:#5b6480; margin-bottom:1.1rem;}
.svc-panel-in .btn-row{display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap;}
@media (max-width:575.98px){
  .svc-tab{font-size:.84rem; padding:.5rem .85rem;}
  .svc-tab span{white-space:nowrap;}
}

/* =========================================================
   SERVICE PAGES (PR, work & PSW, spouse, passport desk)
   ========================================================= */
.svc-card{background:#fff; border:1px solid rgba(13,27,94,.1); border-radius:var(--radius-lg);
  padding:1.5rem 1.4rem; height:100%; box-shadow:var(--shadow-tight); transition:transform .25s ease, box-shadow .25s ease;}
.svc-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-soft);}
.svc-card-ico{width:50px; height:50px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#0d1b5e,#1d45c4); color:#fff; font-size:1.15rem; margin-bottom:.9rem;}
.svc-card h5{font-weight:800; color:var(--teal-900); font-size:1.08rem; margin-bottom:.45rem;}
.svc-card p{color:#5b6480; font-size:.95rem; margin:0;}

.svc-list{list-style:none; padding:0; margin:.4rem 0 1rem;}
.svc-list li{display:flex; gap:.6rem; align-items:flex-start; padding:.4rem 0; color:#3c4563; font-size:1rem;}
.svc-list li i{color:var(--teal-600); margin-top:.28rem; font-size:.85rem; flex-shrink:0;}
.svc-note{background:rgba(29,69,196,.06); border-left:3px solid var(--teal-700); border-radius:0 10px 10px 0;
  padding:.7rem .9rem; color:#3c4563; font-size:.93rem;}
.svc-note i{color:var(--teal-700); margin-right:.45rem;}

.svc-docs{background:#fff; border:1px solid rgba(13,27,94,.1); border-radius:var(--radius-lg);
  padding:1.6rem 1.5rem; box-shadow:var(--shadow-soft);}
.svc-docs > h5{font-weight:800; color:var(--teal-900); font-size:1.05rem; margin-bottom:1rem;}
.svc-docs > h5 i{color:var(--terracotta); margin-right:.5rem;}
.svc-docs h6{font-weight:800; color:var(--terracotta); font-size:.9rem; text-transform:uppercase;
  letter-spacing:.04em; margin:1.1rem 0 .5rem;}
.svc-docs h6 i{margin-right:.45rem;}
.svc-docs ul{list-style:none; padding:0; margin:0;}
.svc-docs li{position:relative; padding:.3rem 0 .3rem 1.3rem; color:#44506e; font-size:.95rem;
  border-bottom:1px dashed rgba(13,27,94,.08);}
.svc-docs li:last-child{border-bottom:0;}
.svc-docs li::before{content:""; position:absolute; left:.25rem; top:.75rem; width:7px; height:7px;
  border-radius:50%; background:var(--teal-600);}
.svc-doc-note{margin:.9rem 0 0; font-size:.88rem; color:#6b7490;}
.svc-doc-note i{color:var(--teal-700); margin-right:.4rem;}

.svc-step{background:#fff; border:1px solid rgba(13,27,94,.1); border-radius:var(--radius-lg);
  padding:1.4rem 1.3rem; height:100%; box-shadow:var(--shadow-tight);}
.svc-step-n{display:inline-block; font-family:var(--font-display); font-size:1.6rem; font-weight:800;
  color:var(--gold, #f6b700); line-height:1; margin-bottom:.5rem;}
.svc-step h6{font-weight:800; color:var(--teal-900); font-size:1rem; margin-bottom:.4rem;}
.svc-step p{color:#5b6480; font-size:.92rem; margin:0;}

.svc-cta{background:linear-gradient(135deg,#f4f7ff,#e9efff); border:1px solid rgba(13,27,94,.1);
  border-radius:var(--radius-lg); padding:2rem 1.8rem; box-shadow:var(--shadow-soft);}
.svc-cta a{color:var(--teal-700); font-weight:700; text-decoration:none;}
.svc-cta a:hover{text-decoration:underline;}
.svc-cta .form-control{background:#fff;}
@media (max-width:575.98px){ .svc-cta{padding:1.4rem 1.1rem;} }

/* ---------- Navbar: Visa Services dropdown ---------- */
.dropdown-menu-sahyog{background:#0d1b5e; border:1px solid rgba(255,255,255,.12); border-radius:14px;
  padding:.45rem; margin-top:.5rem; box-shadow:0 22px 44px -20px rgba(5,10,40,.85); min-width:252px;}
.dropdown-menu-sahyog .dropdown-item{display:flex; align-items:center; gap:.6rem; color:#e6ebff;
  font-weight:600; font-size:.95rem; border-radius:9px; padding:.56rem .8rem;}
.dropdown-menu-sahyog .dropdown-item i{color:var(--gold, #f6b700); width:1.1rem; text-align:center; font-size:.9rem;}
.dropdown-menu-sahyog .dropdown-item:hover,
.dropdown-menu-sahyog .dropdown-item:focus{background:rgba(255,255,255,.12); color:#fff;}
.navbar-sahyog .dropdown-toggle::after{margin-left:.35rem; vertical-align:.12em; opacity:.8;}
@media (max-width:1199.98px){
  .dropdown-menu-sahyog{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14);
    box-shadow:none; margin:.25rem 0 .4rem 1.6rem; min-width:0;}
}

/* ---------- Service detail, rendered inside the visa page ---------- */
.svc-detail{margin-top:2.4rem;}
.svc-detail-in{border-top:1px solid rgba(13,27,94,.1); padding-top:2rem;}
.svc-sub{text-align:center; margin-bottom:1.2rem;}
.svc-sub .eyebrow{margin-bottom:.3rem;}
.svc-sub h3{font-family:var(--font-display); font-weight:800; color:var(--teal-900); font-size:1.75rem; margin:0;}
.svc-detail .svc-cta h3{font-size:1.5rem;}
@media (max-width:575.98px){ .svc-sub h3{font-size:1.4rem;} }

/* ---------- the little download icon under the service tabs ---------- */
.svc-dl-row{text-align:center; margin:0 0 1.2rem;}
.svc-dl{display:inline-flex; align-items:center; gap:.45rem; border:1.5px solid rgba(13,27,94,.18);
  background:#fff; color:var(--teal-900); font-weight:700; font-size:.88rem;
  padding:.45rem .95rem; border-radius:999px; cursor:pointer; transition:background .18s, color .18s, border-color .18s;}
.svc-dl i{color:var(--terracotta); font-size:.9rem;}
.svc-dl:hover{background:var(--teal-900); border-color:transparent; color:#fff;}
.svc-dl:hover i{color:var(--gold, #f6b700);}

/* ---------- the visa services we offer, as plain names ---------- */
.svc-names{display:flex; flex-wrap:wrap; justify-content:center; gap:.55rem;
  list-style:none; padding:0; margin:1.1rem auto 1.4rem; max-width:900px;}
.svc-names li{display:inline-flex; align-items:center; gap:.45rem;
  background:#fff; border:1.5px solid rgba(13,27,94,.14); border-radius:999px;
  padding:.55rem 1.05rem; font-weight:700; font-size:.93rem; color:var(--teal-900);}
.svc-names li i{color:var(--terracotta); font-size:.9rem;}
@media (max-width:575.98px){ .svc-names li{font-size:.84rem; padding:.45rem .8rem;} }

/* =========================================================
   EDUABROAD BANNER — one height for every slide.

   Slide 1 is content-driven while slides 2 and 3 are sized by
   an aspect ratio, so when the carousel advanced (every 5s) the
   banner shrank by ~420px and yanked the page up under the
   reader. Stacking all slides in one grid cell makes the tallest
   set the height, so changing slide can never move the page.
   ========================================================= */
.sa-slider .carousel-inner{display:grid;}
.sa-slider .carousel-item{
  grid-area:1 / 1; display:block !important; position:relative !important;
  float:none !important; margin-right:0 !important; transform:none !important;
}
.sa-slider .carousel-item:not(.active){opacity:0; pointer-events:none;}
.sa-slider .carousel-item.active{opacity:1;}
.sa-slider .sab-slide,.sa-slider .sap-slide{height:100%;}
