/*
Theme Name: Sydney Immigration
Theme URI: https://sydneyimmigrationindia.com
Author: Sydney Immigration India
Author URI: https://sydneyimmigrationindia.com
Description: Custom theme for Sydney Immigration India, built from the Cowork site redesign. Ships its own header, footer, styling and scripts -- no page builder or extra plugin required.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
License: Unlicense
Text Domain: sydney-immigration
*/

/* =========================================================
   SYDNEY IMMIGRATION INDIA — Blue Theme (design system adapted from client reference, all rights to original layout/interactions retained by client)
   ========================================================= */

:root{
  --red-950:#0D2547;
  --red-900:#123a68;
  --red-800:#1B4A82;
  --red-700:#1670AB;
  --red-600:#2E8BC9;
  --red-500:#2E8BC9;
  --red-400:#6BB8E8;
  --cream:#ffffff;
  --white:#ffffff;
  --off-white:#F2F6FC;
  --ink:#22314a;
  --ink-soft:#5b6b85;
  --gold:#4FC3F7;
  --gold-soft:#B3E5FC;
  --line:rgba(34,49,74,0.08);
  --shadow-soft:0 20px 60px rgba(13,37,71,0.10);
  --shadow-strong:0 30px 80px rgba(13,37,71,0.22);
  --radius-lg:26px;
  --radius-md:16px;
  --radius-sm:10px;
  --ease:cubic-bezier(.22,1,.36,1);
  --maxw:1280px;
}

*,*::before,*::after{box-sizing:border-box;}
/* Horizontal-overflow guard lives on html, as overflow-x:clip with an
   overflow-x:hidden fallback for older browsers -- NOT overflow-x:hidden
   alone on body/html. Reason (confirmed empirically while debugging the
   stats-scrub pin not holding): setting overflow-x to any non-"visible"
   value while overflow-y is left unset computes overflow-y as auto (CSS
   overflow spec's visible/non-visible pairing rule) on WHICHEVER of
   html/body carries it, turning that element into its own scroll box --
   which breaks position:sticky for every descendant (the pin silently
   never held, and window.scrollY stopped matching the real scroll
   position) and this reproduces the same way whether the rule sits on
   body or html. overflow-x:clip is exempt from that pairing rule (verified:
   overflow-y stays visible, sticky pins correctly, scrollY stays in sync),
   so it's the fix; overflow-x:hidden stays first as a fallback for browsers
   that don't understand clip -- accepting the old sticky bug only there,
   which no part of this site depended on before the stats-scrub section. */
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip;}
body{
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,.serif{
  font-family:'Source Serif 4', Georgia, serif;
  font-optical-sizing:auto;
  font-weight:700;
  letter-spacing:-0.015em;
  line-height:1.15;
  margin:0 0 .5em;
  color:var(--ink);
}
h1{letter-spacing:-0.02em;}
p{line-height:1.75;color:var(--ink-soft);margin:0 0 1em;}
.accent-italic{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-weight:500;font-optical-sizing:auto;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.section{padding:120px 0;position:relative;}
.section--tight{padding:80px 0;}
.section--alt{background:var(--off-white);}
.section--dark{background:linear-gradient(160deg,var(--red-950),var(--red-800) 60%,var(--red-900));color:var(--white);}
.section--dark h2,.section--dark h3,.section--dark p{color:var(--white);}
.section--dark p{color:rgba(255,255,255,0.78);}

/* -------- Eyebrow / Tags -------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Inter',sans-serif;
  font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--red-700);font-weight:600;margin-bottom:18px;
  will-change:transform;
}
.cta-band h2{will-change:transform;}
.eyebrow::before{content:'';width:28px;height:1.5px;background:var(--gold);display:inline-block;}
.section--dark .eyebrow{color:var(--gold-soft);}

.section-head{max-width:680px;margin:0 auto 64px;text-align:center;}
.section-head h2{font-size:clamp(30px,4vw,46px);}
.section-head p{font-size:17px;}

/* -------- Buttons -------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:16px 34px;border-radius:100px;font-weight:600;font-size:14.5px;
  letter-spacing:.03em;border:1.5px solid transparent;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .35s ease,color .35s ease,border-color .35s ease;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg,var(--red-600),var(--red-800));
  color:var(--white);
  box-shadow:0 14px 34px rgba(13,37,71,0.32);
}
.btn-primary:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 20px 46px rgba(13,37,71,0.42);}
.btn-primary:active{transform:translateY(-1px) scale(.98);box-shadow:0 8px 18px rgba(13,37,71,0.38);transition-duration:.15s;}
.btn-outline{
  background:transparent;border-color:rgba(34,49,74,0.18);color:var(--ink);
}
.btn-outline:hover{border-color:var(--red-700);color:var(--red-700);transform:translateY(-3px) scale(1.015);}
.btn-outline:active{transform:translateY(-1px) scale(.98);transition-duration:.15s;}
.section--dark .btn-outline,
.hero .btn-outline,
.page-hero .btn-outline{border-color:rgba(255,255,255,0.35);color:var(--white);}
.section--dark .btn-outline:hover,
.hero .btn-outline:hover,
.page-hero .btn-outline:hover{border-color:var(--gold);color:var(--gold-soft);}
.btn-gold{
  background:linear-gradient(135deg,var(--gold),var(--red-900));color:var(--red-950);
  box-shadow:0 14px 30px rgba(79,195,247,0.35);
}
.btn-gold:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 20px 40px rgba(79,195,247,0.45);}
.btn-gold:active{transform:translateY(-1px) scale(.98);box-shadow:0 8px 18px rgba(79,195,247,0.4);transition-duration:.15s;}
.btn-sm{padding:11px 24px;font-size:13px;}
@media (prefers-reduced-motion:reduce){
  .btn-primary:hover,.btn-outline:hover,.btn-gold:hover,
  .btn-primary:active,.btn-outline:active,.btn-gold:active{transform:none;}
}

/* ========================= NAVIGATION ========================= */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:22px 0;
  transition:all .45s var(--ease);
  background:transparent;
}
.nav.is-scrolled{
  padding:14px 0;
  background:rgba(255,255,255,0.85);
  backdrop-filter:blur(16px) saturate(160%);
  box-shadow:0 8px 30px rgba(13,37,71,0.08);
}
.nav__inner{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;}
.brand__logo{display:block;height:40px;width:auto;transition:transform .35s var(--ease);}
.brand:hover .brand__logo{transform:translateY(-1px);}
/* The logo always keeps its real brand colours (icon + navy wordmark) --
   on the header's on-dark/unscrolled state, where a navy-coloured logo
   would otherwise sit low-contrast directly on the navy nav, a soft white
   pill plate rides behind it instead, so the icon and text always read
   crisply regardless of what's behind the nav. The plate fades out once
   scrolled (nav itself turns white then, so it'd be redundant), and
   everywhere else the logo appears (footer) it has no plate at all. */
.brand__plate{display:flex;align-items:center;border-radius:100px;transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease);}
.nav.on-dark:not(.is-scrolled) .brand__plate{
  background:rgba(255,255,255,0.97);
  padding:8px 18px 8px 14px;
  box-shadow:0 10px 26px rgba(8,22,43,0.32);
}

.nav__links{display:flex;align-items:center;gap:34px;}
.nav__links a,.nav__links .dropdown-toggle{
  font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--ink-soft);
  position:relative;padding:6px 0;transition:color .3s ease;
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;user-select:none;
}
.nav__links a::after,.nav__links .dropdown-toggle::after{
  content:'';position:absolute;left:0;bottom:0;height:2px;width:0;
  background:linear-gradient(90deg,var(--red-600),var(--gold));
  transition:width .35s var(--ease);
}
.nav__links a:hover,.nav__links a.active,
.nav__links .dropdown-toggle:hover,.nav__links .has-dropdown.active .dropdown-toggle{color:var(--red-700);}
.nav__links a:hover::after,.nav__links a.active::after,
.nav__links .dropdown-toggle:hover::after,.nav__links .has-dropdown.active .dropdown-toggle::after{width:100%;}
.nav__links .dropdown-toggle i{font-size:10px;transition:transform .3s var(--ease);}
.nav.on-dark:not(.is-scrolled) .nav__links a,
.nav.on-dark:not(.is-scrolled) .nav__links .dropdown-toggle{color:rgba(255,255,255,0.85);}
.nav.on-dark:not(.is-scrolled) .nav__links a:hover,
.nav.on-dark:not(.is-scrolled) .nav__links a.active,
.nav.on-dark:not(.is-scrolled) .nav__links .dropdown-toggle:hover,
.nav.on-dark:not(.is-scrolled) .nav__links .has-dropdown.active .dropdown-toggle{color:var(--gold-soft);}

/* Desktop dropdown menus (Study Destinations / Services) */
.nav__links .has-dropdown{position:relative;}
.nav__dropdown{
  position:absolute;top:100%;left:50%;transform:translate(-50%,10px);margin-top:14px;
  min-width:230px;background:var(--white);border-radius:var(--radius-md);
  box-shadow:var(--shadow-strong);padding:10px;z-index:1500;
  opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
}
.nav__links .has-dropdown:hover .nav__dropdown,
.nav__links .has-dropdown.is-open .nav__dropdown{
  opacity:1;visibility:visible;transform:translate(-50%,0);
}
.nav__links .has-dropdown:hover .dropdown-toggle i,
.nav__links .has-dropdown.is-open .dropdown-toggle i{transform:rotate(180deg);}
.nav__dropdown a{
  display:block;padding:11px 16px;border-radius:9px;font-size:13.5px;font-weight:600;
  color:var(--ink-soft)!important;white-space:nowrap;
}
.nav__dropdown a::after{display:none;}
.nav__dropdown a:hover{background:var(--off-white);color:var(--red-700)!important;}
.nav__dropdown a.active{color:var(--red-700)!important;background:var(--off-white);}

.nav__cta{display:flex;align-items:center;gap:18px;}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:6px;z-index:1200;}
.nav__burger span{width:26px;height:2px;background:var(--ink);transition:all .35s var(--ease);border-radius:2px;}
.nav.on-dark:not(.is-scrolled) .nav__burger span{background:var(--white);}
.nav__burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav__burger.is-open span:nth-child(2){opacity:0;}
.nav__burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  position:fixed;inset:0;background:var(--red-950);z-index:1100;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;
  transform:translateY(-100%);transition:transform .55s var(--ease);
}
.mobile-menu.is-open{transform:translateY(0);}
.mobile-menu{overflow-y:auto;padding:90px 24px 40px;gap:14px;}
.mobile-menu a{font-family:'Source Serif 4',serif;font-size:28px;color:var(--white);}
.mobile-menu a:hover{color:var(--gold-soft);}
.mobile-menu__group{width:100%;max-width:340px;text-align:center;}
.mobile-menu__toggle{
  font-family:'Source Serif 4',serif;font-size:28px;color:var(--white);
  display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;user-select:none;
}
.mobile-menu__toggle i{font-size:16px;color:var(--gold-soft);transition:transform .35s var(--ease);}
.mobile-menu__group.is-open .mobile-menu__toggle i{transform:rotate(180deg);}
.mobile-menu__submenu{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);}
.mobile-menu__group.is-open .mobile-menu__submenu{max-height:400px;}
.mobile-menu__submenu a{
  display:block;font-family:'Inter',sans-serif;font-size:15px;font-weight:600;
  color:rgba(255,255,255,0.72);padding:10px 0;
}
.mobile-menu__submenu a:hover{color:var(--gold-soft);}

/* Blog cards */
.blog-card{
  background:var(--white);border-radius:var(--radius-md);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow-soft);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.blog-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-strong);}
.blog-card__media{
  height:180px;background:linear-gradient(135deg,var(--red-700),var(--red-950));
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.28);font-size:44px;
}
.blog-card__body{padding:28px;}
.blog-card__meta{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--red-700);font-weight:700;margin-bottom:12px;}
.blog-card__meta span+span::before{content:'•';margin:0 8px;color:var(--line);}
.blog-card h3{font-size:18.5px;margin-bottom:10px;line-height:1.3;}
.blog-card p{font-size:14px;}

@media (max-width:900px){
  .nav__links{display:none;}
  .nav__cta .btn{display:none;}
  .nav__burger{display:flex;}
}

/* ========================= HERO ========================= */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  background:radial-gradient(ellipse at 20% -10%,var(--red-800) 0%,var(--red-950) 55%,#210000 100%);
  overflow:hidden;color:var(--white);padding-top:120px;
}
.hero__canvas-wrap{position:absolute;inset:0;z-index:1;opacity:.85;}
#hero-canvas{width:100%;height:100%;display:block;}
.hero__grain{
  position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:overlay;opacity:.35;
  background-image:radial-gradient(circle at 30% 20%,rgba(255,255,255,.08),transparent 40%),radial-gradient(circle at 80% 80%,rgba(255,255,255,.06),transparent 45%);
}
.hero__inner{position:relative;z-index:3;width:100%;}
.hero__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.hero__badge{
  display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border-radius:100px;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.18);
  font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--gold-soft);
  margin-bottom:26px;backdrop-filter:blur(6px);
}
.hero__badge .dot{width:7px;height:7px;border-radius:50%;background:#4bd67a;box-shadow:0 0 10px #4bd67a;animation:dotPulse 2.2s ease-in-out infinite;}
@keyframes dotPulse{0%,100%{box-shadow:0 0 6px 0 rgba(75,214,122,.7);transform:scale(1);}50%{box-shadow:0 0 14px 4px rgba(75,214,122,.55);transform:scale(1.25);}}
@media (prefers-reduced-motion:reduce){.hero__badge .dot{animation:none;}}
.hero h1{font-size:clamp(40px,5.6vw,72px);color:var(--white);margin-bottom:26px;}
.hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--gold-soft),var(--gold) 60%,#f4e4b8);-webkit-background-clip:text;background-clip:text;color:transparent;}
.hero p.lead{font-size:18.5px;color:rgba(255,255,255,0.78);max-width:520px;margin-bottom:38px;}
.hero__actions{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:56px;}
.hero__stats{display:flex;gap:44px;flex-wrap:wrap;}
.hero__stat b{display:block;font-family:'Source Serif 4',serif;font-size:32px;color:var(--white);}
.hero__stat span{font-size:12.5px;letter-spacing:.05em;color:rgba(255,255,255,0.6);text-transform:uppercase;}

.hero__visual{position:relative;}
.hero__card{
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);
  border-radius:var(--radius-lg);padding:34px;backdrop-filter:blur(14px);
  box-shadow:var(--shadow-strong);
  transform:perspective(1000px) rotateY(-8deg) rotateX(4deg);
  transition:transform .6s var(--ease);
}
.hero__card:hover{transform:perspective(1000px) rotateY(-2deg) rotateX(1deg);}
.hero__card-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,0.12);}
.hero__card-row:last-child{border-bottom:none;}
.hero__card-row b{color:var(--white);font-size:14.5px;}
.hero__card-row span{font-size:12.5px;color:rgba(255,255,255,0.55);}
.pill{padding:5px 14px;border-radius:100px;font-size:11.5px;font-weight:700;letter-spacing:.03em;}
.pill--approved{background:rgba(75,214,122,0.16);color:#7be79f;}
.pill--review{background:rgba(79,195,247,0.18);color:var(--gold-soft);}
.pill--processing{background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.75);}

.scroll-cue{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,0.55);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
}
.scroll-cue__line{width:1px;height:46px;background:linear-gradient(var(--gold-soft),transparent);animation:scrollcue 2.2s infinite;}
@keyframes scrollcue{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.01%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr;}
  .hero__card{transform:none;}
  .hero{padding-top:150px;padding-bottom:80px;}
}

/* ========================= PAGE HERO (inner pages) ========================= */
.page-hero{
  position:relative;padding:200px 0 110px;
  background:radial-gradient(ellipse at 80% -20%,var(--red-800),var(--red-950) 60%,#210000);
  color:var(--white);overflow:hidden;text-align:center;
}
.page-hero::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.5) 0,transparent 100%),
                    radial-gradient(1px 1px at 70% 60%,rgba(255,255,255,.4) 0,transparent 100%),
                    radial-gradient(1px 1px at 40% 80%,rgba(255,255,255,.3) 0,transparent 100%),
                    radial-gradient(1px 1px at 90% 20%,rgba(255,255,255,.4) 0,transparent 100%);
  opacity:.6;
}
.page-hero h1{color:var(--white);font-size:clamp(36px,5vw,58px);position:relative;z-index:2;}
.page-hero p{color:rgba(255,255,255,0.75);max-width:600px;margin:0 auto;position:relative;z-index:2;font-size:17px;}
.breadcrumb{position:relative;z-index:2;display:flex;gap:10px;justify-content:center;align-items:center;font-size:13px;color:rgba(255,255,255,0.55);margin-bottom:20px;letter-spacing:.04em;text-transform:uppercase;}
.breadcrumb span{color:var(--gold-soft);}

/* ========================= CARDS / GRIDS ========================= */
.grid{display:grid;gap:30px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr);}.grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

.card{
  background:var(--white);border-radius:var(--radius-md);padding:38px 32px;
  border:1px solid var(--line);box-shadow:var(--shadow-soft);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  position:relative;overflow:hidden;
}
.card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--red-600),var(--gold));
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.card:hover{transform:perspective(1200px) translateY(-8px) rotateX(3deg);box-shadow:var(--shadow-strong);}
.card:hover::before{transform:scaleX(1);}
@media (prefers-reduced-motion:reduce){
  .card:hover{transform:translateY(-8px);}
}
.card__icon{
  width:60px;height:60px;border-radius:16px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--red-700),var(--red-900));color:var(--white);font-size:24px;margin-bottom:22px;
  box-shadow:0 12px 26px rgba(13,37,71,0.28);
}
.card h3{font-size:20px;margin-bottom:12px;}
.card p{font-size:14.5px;margin-bottom:0;}
.card__link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:13.5px;font-weight:700;color:var(--red-700);}
.card__link i{transition:transform .35s var(--ease);}
.card:hover .card__link i{transform:translateX(5px);}

/* Service detail card with number */
.svc-card{position:relative;}
.svc-card__num{
  position:absolute;top:24px;right:28px;font-family:'Source Serif 4',serif;
  font-size:44px;color:var(--off-white);-webkit-text-stroke:1px var(--line);opacity:.8;
}

/* Country card */
.country-card{
  border-radius:var(--radius-md);overflow:hidden;position:relative;background:var(--ink);
  aspect-ratio:4/5;box-shadow:var(--shadow-soft);
}
.country-card__bg{
  position:absolute;inset:0;background:linear-gradient(160deg,var(--red-800),var(--red-950));
  transition:transform .8s var(--ease);
}
.country-card__bg--photo{background-size:cover;background-position:center top;background-repeat:no-repeat;}
.country-card:hover .country-card__bg{transform:scale(1.08);}
.country-card::after{
  content:'';position:absolute;top:0;left:-60%;width:35%;height:100%;
  background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.28) 50%,transparent 100%);
  transform:skewX(-18deg);pointer-events:none;transition:left .9s var(--ease);z-index:4;
}
.country-card:hover::after{left:130%;}
@media (prefers-reduced-motion:reduce){.country-card::after{display:none;}}
.country-card__watermark{
  position:absolute;right:-16px;bottom:-22px;font-size:130px;line-height:1;
  color:rgba(255,255,255,.14);z-index:1;pointer-events:none;
}
.country-card__landmark{
  position:absolute;left:0;right:0;bottom:0;width:100%;height:58%;
  opacity:.24;z-index:2;pointer-events:none;transition:opacity .5s var(--ease),transform .8s var(--ease);
}
.country-card:hover .country-card__landmark{opacity:.32;transform:translateY(-3px);}
.country-card__landmark path,.country-card__landmark rect,.country-card__landmark circle,
.country-card__landmark ellipse,.country-card__landmark polygon{fill:#fff;}
.country-card__flag{position:absolute;top:24px;left:24px;font-size:34px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.35));}
.country-card__body{position:absolute;left:0;right:0;bottom:0;padding:26px;color:var(--white);z-index:2;}
.country-card__body h3{color:var(--white);margin-bottom:6px;font-size:22px;}
.country-card__body span{font-size:12.5px;color:var(--gold-soft);letter-spacing:.06em;text-transform:uppercase;}
.country-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75),transparent 55%);z-index:1;}
.country-card__bg--australia,.country-card__bg--canada,.country-card__bg--usa,.country-card__bg--uk,.country-card__bg--uae,.country-card__bg--new-zealand,.country-card__bg--ireland,.country-card__bg--germany,.country-card__bg--switzerland{
  background-size:contain,cover;background-position:center,center;background-repeat:no-repeat,no-repeat;
}
.country-card__bg--australia{background-image:url('images/destinations/australia.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--canada{background-image:url('images/destinations/canada.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--usa{background-image:url('images/destinations/usa.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--uk{background-image:url('images/destinations/uk.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--uae{background-image:url('images/destinations/uae.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--new-zealand{background-image:url('images/destinations/new-zealand.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--ireland{background-image:url('images/destinations/ireland.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--germany{background-image:url('images/destinations/germany.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}
.country-card__bg--switzerland{background-image:url('images/destinations/switzerland.jpg'),linear-gradient(160deg,var(--red-800),var(--red-950));}

/* Who We Are: text + stats grid, two columns (stats live inline here, not
   in a separate boxed/pinned section -- Udit tried the dedicated navy
   "By The Numbers" scroll-scrub block and asked for the simpler inline
   look back, "acha nhi lag raha"). */
.who-we-are__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.who-we-are__stats{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.who-we-are__stat{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:26px 22px;box-shadow:var(--shadow-soft);text-align:center;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.who-we-are__stat:hover{transform:translateY(-4px);box-shadow:var(--shadow-strong);}
.who-we-are__stat b{display:block;font-family:'Source Serif 4',serif;font-size:36px;color:var(--red-700);margin-bottom:4px;}
.who-we-are__stat b .plus{color:var(--red-600);}
.who-we-are__stat span{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;}
@media (max-width:900px){.who-we-are__grid{grid-template-columns:1fr;}.who-we-are__stats{margin-top:10px;}}

/* Process timeline */
.timeline{position:relative;max-width:900px;margin:0 auto;}
.timeline::before{content:'';position:absolute;left:29px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--red-600),var(--gold));}
.timeline-item{position:relative;padding-left:80px;margin-bottom:50px;}
.timeline-item:last-child{margin-bottom:0;}
.timeline-item__num{
  position:absolute;left:0;top:0;width:60px;height:60px;border-radius:50%;
  background:var(--white);border:2px solid var(--red-700);color:var(--red-700);
  display:flex;align-items:center;justify-content:center;font-family:'Source Serif 4',serif;font-size:22px;font-weight:700;
  box-shadow:0 10px 24px rgba(13,37,71,0.18);z-index:1;
}
.timeline-item h3{font-size:21px;margin-bottom:10px;}

/* Testimonials */
.testi-card{
  background:var(--white);border-radius:var(--radius-md);padding:34px;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);position:relative;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.testi-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-strong);}
.testi-card__quote{font-size:58px;font-family:'Source Serif 4',serif;color:var(--gold);opacity:.4;line-height:.6;margin-bottom:6px;}
.testi-card p{font-family:'Source Serif 4',Georgia,serif;font-optical-sizing:auto;font-style:italic;font-weight:500;color:var(--ink-soft);font-size:16px;line-height:1.65;}
.badge-verified{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:100px;
  background:rgba(75,214,122,0.12);color:#2f8a52;font-size:11px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px;
}
.badge-verified i{font-size:10px;}
.testi-card__person{display:flex;align-items:center;gap:14px;margin-top:22px;}
.testi-card__avatar{
  width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--red-600),var(--red-900));
  display:flex;align-items:center;justify-content:center;color:var(--white);font-weight:700;font-family:'Source Serif 4',serif;
}
.testi-card__person b{display:block;font-size:14.5px;color:var(--ink);}
.testi-card__person span{font-size:12.5px;color:var(--ink-soft);}
.testi-card__stars{color:var(--gold);font-size:13px;margin-top:2px;}

/* Team */
.team-card{text-align:center;}
.team-card__photo{
  width:150px;height:150px;border-radius:50%;margin:0 auto 20px;
  background:linear-gradient(145deg,var(--red-700),var(--red-950));
  display:flex;align-items:center;justify-content:center;color:var(--white);
  font-family:'Source Serif 4',serif;font-size:40px;border:4px solid var(--white);box-shadow:var(--shadow-soft);
}
.team-card h3{font-size:18px;margin-bottom:4px;}
.team-card span{font-size:13px;color:var(--red-700);font-weight:600;letter-spacing:.02em;}

/* CTA band */
.cta-band{
  border-radius:var(--radius-lg);padding:70px 60px;text-align:center;
  background:linear-gradient(135deg,var(--red-700),var(--red-950));color:var(--white);
  position:relative;overflow:hidden;
}
.cta-band::before{
  content:'';position:absolute;width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(79,195,247,0.25),transparent 70%);
  top:-200px;right:-150px;
}
.cta-band h2{color:var(--white);font-size:clamp(28px,3.6vw,40px);}
.cta-band p{color:rgba(255,255,255,0.78);max-width:560px;margin:0 auto 34px;}

/* Forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.form-grid .full{grid-column:1/-1;}
@media (max-width:640px){.form-grid{grid-template-columns:1fr;}}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:8px;color:var(--ink);letter-spacing:.02em;}
.field input,.field select,.field textarea{
  width:100%;padding:15px 18px;border-radius:var(--radius-sm);border:1.5px solid var(--line);
  background:var(--off-white);font-family:inherit;font-size:14.5px;color:var(--ink);
  transition:border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--red-600);background:var(--white);box-shadow:0 0 0 4px rgba(46,139,201,0.1);
}
.field textarea{resize:vertical;min-height:130px;}

.contact-info-card{
  background:linear-gradient(160deg,var(--red-900),var(--red-950));color:var(--white);
  border-radius:var(--radius-lg);padding:44px;height:100%;
}
.contact-info-card h3{color:var(--white);}
.contact-row{display:flex;gap:16px;align-items:flex-start;padding:18px 0;border-bottom:1px solid rgba(255,255,255,0.12);}
.contact-row:last-child{border-bottom:none;}
.contact-row__icon{
  width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,0.08);
  display:flex;align-items:center;justify-content:center;color:var(--gold-soft);flex-shrink:0;
}
.contact-row b{display:block;color:var(--white);font-size:14.5px;margin-bottom:3px;}
.contact-row span{font-size:13.5px;color:rgba(255,255,255,0.65);}
.social-row{display:flex;gap:12px;margin-top:26px;}
.social-row a{
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);
  display:flex;align-items:center;justify-content:center;color:var(--white);
  transition:all .3s var(--ease);
}
.social-row a:hover{background:var(--gold);color:var(--red-950);transform:translateY(-4px);}

.map-placeholder{
  border-radius:var(--radius-lg);border:2px dashed rgba(13,37,71,0.25);background:var(--off-white);
  min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  color:var(--ink-soft);text-align:center;padding:30px;
}
.map-placeholder i{font-size:34px;color:var(--red-600);}

/* FAQ accordion */
.faq-item{border-bottom:1px solid var(--line);padding:26px 0;}
.faq-item__q{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;font-size:16.5px;gap:20px;}
.faq-item__q i{transition:transform .4s var(--ease);color:var(--red-700);flex-shrink:0;}
.faq-item.is-open .faq-item__q i{transform:rotate(45deg);}
.faq-item__a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
.faq-item__a p{padding-top:14px;}

/* Logos strip -- animated marquee */
.logo-strip{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.logo-strip__track{display:flex;align-items:center;flex-wrap:nowrap;gap:60px;width:max-content;opacity:.65;animation:logoMarquee 28s linear infinite;}
.logo-strip:hover .logo-strip__track{animation-play-state:paused;}
.logo-strip span{font-family:'Source Serif 4',serif;font-size:20px;color:var(--ink-soft);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;}
@keyframes logoMarquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.logo-strip__track{animation:none;flex-wrap:wrap;width:auto;justify-content:center;}}

/* Footer */
.footer{background:var(--white);color:var(--ink-soft);padding:90px 0 30px;position:relative;overflow:hidden;border-top:1px solid var(--line);}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:50px;margin-bottom:60px;}
.footer h4{color:var(--ink);font-size:15px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:22px;font-family:'Inter',sans-serif;font-weight:700;}
.footer p{color:var(--ink-soft);font-size:14px;}
.footer ul li{margin-bottom:13px;}
.footer ul a{font-size:14px;color:var(--ink-soft);transition:color .3s ease,padding-left .3s ease;}
.footer ul a:hover{color:var(--red-700);padding-left:4px;}
.footer__bottom{border-top:1px solid var(--line);padding-top:28px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--ink-soft);}
.footer__legal-links a{color:var(--ink-soft);text-decoration:none;transition:color .3s ease;}
.footer__legal-links a:hover{color:var(--red-700);}
.footer .social-row a{background:rgba(22,112,171,0.07);color:var(--red-700);border:1px solid rgba(22,112,171,0.15);}
.footer .social-row a:hover{background:var(--red-700);color:var(--white);border-color:var(--red-700);}
@media (max-width:900px){.footer__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr;}}

/* Reveal animation base (JS toggles .is-visible) */
[data-reveal]{opacity:0;transform:perspective(1000px) translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
[data-reveal].is-visible{opacity:1;transform:perspective(1000px) translateY(0);}
[data-reveal="fade"]{transform:none;}
[data-reveal="left"]{transform:translateX(-46px);}
[data-reveal="left"].is-visible{transform:translateX(0);}
[data-reveal="right"]{transform:translateX(46px);}
[data-reveal="right"].is-visible{transform:translateX(0);}
[data-reveal="scale"]{transform:perspective(800px) scale(.86) rotateX(18deg);transform-origin:center bottom;}
[data-reveal="scale"].is-visible{transform:perspective(800px) scale(1) rotateX(0deg);}
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal="scale"],[data-reveal="left"],[data-reveal="right"]{transform:none !important;transition:opacity .6s ease !important;}
}
[data-delay="1"]{transition-delay:.12s;}
[data-delay="2"]{transition-delay:.24s;}
[data-delay="3"]{transition-delay:.36s;}
[data-delay="4"]{transition-delay:.48s;}
[data-delay="5"]{transition-delay:.6s;}
[data-delay="6"]{transition-delay:.72s;}
[data-delay="7"]{transition-delay:.84s;}

/* Preloader */
.preloader{
  position:fixed;inset:0;z-index:9999;background:var(--red-950);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;
  transition:opacity .7s var(--ease),visibility .7s var(--ease);
}
.preloader.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
.preloader__ring{
  width:64px;height:64px;border-radius:50%;border:2.5px solid rgba(255,255,255,0.15);
  border-top-color:var(--gold);animation:spin 1s linear infinite;
}
.preloader__text{font-family:'Source Serif 4',serif;color:var(--white);letter-spacing:.08em;font-size:14px;}
@keyframes spin{to{transform:rotate(360deg);}}

/* Back to top */
.back-to-top{
  position:fixed;right:26px;bottom:26px;width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,var(--red-600),var(--red-800));color:var(--white);
  display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(13,37,71,0.4);
  border:none;z-index:500;opacity:0;pointer-events:none;transform:translateY(12px);
  transition:all .4s var(--ease);
}
.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0);}
.back-to-top:hover{transform:translateY(-4px);}

/* Utility */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.mb-0{margin-bottom:0;}
.flex{display:flex;}
.gap-4{gap:16px;}
.items-center{align-items:center;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
@media (max-width:900px){.two-col{grid-template-columns:1fr;gap:44px;}}
.tag-list{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px;}
.tag-list span{padding:8px 16px;border-radius:100px;background:var(--off-white);border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--red-700);}
.badge-check{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:15px;color:var(--ink);font-weight:500;}
.badge-check i{color:var(--red-600);font-size:15px;}

/* -------- Trust bar (credibility strip, sits directly under the hero) -------- */
.trust-bar{background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:5;}
.trust-bar__inner{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:14px 40px;padding:26px 0;text-align:center;
}
.trust-bar__item{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:var(--ink-soft);}
.trust-bar__item i{color:var(--red-600);font-size:15px;}
.trust-bar__note{
  text-align:center;font-size:11.5px;color:var(--ink-soft);opacity:.65;
  padding-bottom:16px;
}

/* -------- Security / privacy micro-copy (near forms) -------- */
.security-note{
  display:flex;align-items:flex-start;gap:12px;margin-top:22px;padding:16px 18px;
  background:rgba(75,214,122,0.08);border:1px solid rgba(75,214,122,0.25);border-radius:var(--radius-sm);
}
.security-note i{color:#2f8a52;font-size:16px;margin-top:1px;flex-shrink:0;}
.security-note span{font-size:13px;color:var(--ink-soft);line-height:1.55;}
.security-note.on-dark{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.14);}
.security-note.on-dark span{color:rgba(255,255,255,0.7);}
.security-note.on-dark i{color:#7be79f;}

/* =========================================================
   PREMIUM REFRESH — signature motif, bento grid, refined
   destination/testimonial treatments, curved dividers
   ========================================================= */

/* -------- Route motif (signature decorative element) --------
   A quiet "flight path" line-and-waypoint mark used sparingly as a
   brand signature — hero backdrop, destination cards, section
   flourishes. Pure SVG/CSS, no external assets. */
.route-motif{position:absolute;pointer-events:none;overflow:visible;}
.route-motif path{fill:none;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:2 10;}
.route-motif--gold path{stroke:var(--gold-soft);opacity:.55;}
.route-motif--ink path{stroke:var(--red-700);opacity:.16;}
.route-motif circle{opacity:.9;}
.route-motif--gold circle{fill:var(--gold-soft);}
.route-motif--ink circle{fill:var(--red-700);opacity:.3;}
.route-motif path.is-animated{animation:routeTravel 26s linear infinite;}
@keyframes routeTravel{to{stroke-dashoffset:-480;}}
@media (prefers-reduced-motion:reduce){.route-motif path.is-animated{animation:none;}}
/* Hero visual card: multiple client origin countries converging on one
   destination (Australia) -- not a single sequential journey, since Sydney
   Immigration's clients are the diaspora already living abroad (Europe, UK,
   Singapore, Canada and beyond), not people relocating out of India. Visually
   a fan-in/convergence shape rather than the site's usual single dashed path,
   so it reads as a distinct diagram, not a re-skin of the route-motif dots. */
.origin-map{position:static;width:100%;height:auto;display:block;overflow:visible;}
.origin-map__line{fill:none;stroke:var(--gold-soft);stroke-width:1.3;stroke-linecap:round;stroke-dasharray:2 9;opacity:.5;}
.origin-map__line.is-animated{animation:routeTravel 26s linear infinite;}
@media (prefers-reduced-motion:reduce){.origin-map__line.is-animated{animation:none;}}
.origin-map__dot{fill:var(--gold-soft);opacity:.85;}
.origin-map__label{font-family:'Inter',sans-serif;font-size:10.5px;font-weight:600;fill:rgba(255,255,255,.72);letter-spacing:.01em;}
.origin-map__ring{fill:none;stroke:var(--gold);stroke-width:1.2;opacity:.35;animation:originPulse 2.6s var(--ease) infinite;}
.origin-map__dest{fill:var(--gold);}
.origin-map__dest-label{font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;fill:var(--white);letter-spacing:.01em;}
@keyframes originPulse{0%,100%{r:14;opacity:.35;}50%{r:18;opacity:.12;}}
@media (prefers-reduced-motion:reduce){.origin-map__ring{animation:none;}}

/* -------- Curved section divider -------- */
.section-curve{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:4;pointer-events:none;}
.section-curve svg{width:100%;height:auto;display:block;}

/* -------- Bento services grid --------
   Two wide "feature" tiles fill row one for visual hierarchy; the
   remaining services sit below in a uniform grid — deliberately NOT
   eight identical repeated cards. */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.bento .card{margin:0;}
.bento .card--feature{
  grid-column:span 2;min-height:230px;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(165deg,var(--red-800) 0%,var(--red-950) 100%);
  color:var(--white);position:relative;padding:36px;
}
.bento .card--feature::after{
  content:'';position:absolute;top:0;left:-60%;width:35%;height:100%;
  background:linear-gradient(115deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);
  transform:skewX(-18deg);pointer-events:none;transition:left .9s var(--ease);z-index:3;
}
.bento .card--feature:hover::after{left:130%;}
@media (prefers-reduced-motion:reduce){.bento .card--feature::after{display:none;}}
.bento .card--feature .route-motif{top:0;right:0;width:75%;height:100%;}
.bento .card--feature .card__icon{
  background:linear-gradient(135deg,var(--gold),var(--red-900));color:var(--red-950);
  position:relative;z-index:2;
}
.bento .card--feature h3{color:var(--white);font-size:25px;position:relative;z-index:2;}
.bento .card--feature p{color:rgba(255,255,255,.8);font-size:15px;max-width:360px;position:relative;z-index:2;}
.bento .card--feature .card__link{color:var(--gold-soft);position:relative;z-index:2;}
@media (max-width:980px){
  .bento{grid-template-columns:repeat(2,1fr);}
  .bento .card--feature{grid-column:span 2;}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr;}
  .bento .card--feature{grid-column:span 1;}
}

/* -------- Refined destination card badge (replaces flag emoji) -------- */
.country-card__badge{
  position:absolute;top:22px;left:22px;z-index:3;
  width:44px;height:44px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.08);backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-soft);font-size:15px;
  transition:transform .5s var(--ease),border-color .5s var(--ease);
}
.country-card:hover .country-card__badge{transform:scale(1.08) rotate(-8deg);border-color:var(--gold-soft);}
.country-card .route-motif{top:10%;left:10%;width:80%;height:60%;z-index:1;}

/* -------- Testimonial spotlight (featured centre card) -------- */
.testi-card--spotlight{
  background:linear-gradient(165deg,var(--red-900),var(--red-950));
  border-color:transparent;color:var(--white);
  transform:translateY(-14px);
  box-shadow:var(--shadow-strong);
}
.testi-card--spotlight p{color:rgba(255,255,255,.92);}
.testi-card--spotlight .testi-card__quote{color:var(--gold-soft);}
.testi-card--spotlight .testi-card__person b{color:var(--white);}
.testi-card--spotlight .testi-card__person span{color:rgba(255,255,255,.6);}
.testi-card--spotlight .badge-verified{background:rgba(75,214,122,0.18);}
.testi-card__avatar--ring{
  background:transparent;border:1.5px solid var(--gold-soft);color:var(--gold-soft);
}
.testi-card--spotlight:hover{transform:translateY(-20px);}
@media (max-width:980px){.testi-card--spotlight{transform:none;}.testi-card--spotlight:hover{transform:translateY(-6px);}}

/* -------- Section eyebrow flourish (small route accent) -------- */
.section-head{position:relative;}
.section-head .route-motif{top:-18px;left:50%;transform:translateX(-50%);width:220px;height:40px;}

/* Mobile fix for the tilted hero/snapshot card (ported from the main
   build's EXTRA_CSS -- keeps the card flat on small screens wherever it's
   used, not just the homepage). */
@media (max-width:900px){
  .hero__card{transform:none!important;}
}
