/* =========================================================
   WIN YOUR VISA — Combined WYE + WYV brand stylesheet
   Static build (Phase 1) — to be sliced into WordPress later
   ========================================================= */

:root{
  /* Core palette — Win Your Visa navy/gold/teal (matches client-approved homepage design) */
  --navy-900:#0E2240;
  --navy-800:#081429;
  --navy-700:#1B3A66;
  --navy-100:#EEF1F6;
  --gold-500:#C9974A;
  --gold-600:#B3823A;
  --gold-100:#F5EAD8;
  --grey-900:#1B2430;
  --grey-700:#5B6577;
  --grey-400:#8A93A3;
  --grey-200:#E3E7EE;
  --grey-100:#F7F3EC;
  --white:#ffffff;
  /* Aliases matching the client design file naming — used by homepage-specific components */
  --navy:var(--navy-900);
  --navy-deep:var(--navy-800);
  --gold:var(--gold-500);
  --gold-bright:#E2B45F;
  --cream:var(--grey-100);
  --paper:#FCFAF6;
  --ink:var(--grey-900);
  --teal:#1E6E66;
  --line:rgba(14,34,64,0.12);
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --shadow-sm:0 2px 8px rgba(10,31,61,0.08);
  --shadow-md:0 10px 30px rgba(10,31,61,0.12);
  --container:1280px;
  --font-head:'Fraunces', 'Georgia', serif;
  --font-body:'Inter', 'Segoe UI', Arial, sans-serif;
  --font-mono:'JetBrains Mono', 'Courier New', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--grey-900);
  background:var(--paper);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  color:var(--navy-900);
  line-height:1.25;
  margin:0 0 .6em;
}
h1{font-size:clamp(2rem,4vw,3.1rem); font-weight:700;}
h2{font-size:clamp(1.6rem,3vw,2.3rem); font-weight:700;}
h3{font-size:1.3rem; font-weight:600;}
p{margin:0 0 1em; color:var(--grey-700);}
a{color:var(--navy-700); text-decoration:none;}
img{max-width:100%; display:block;}
ul{margin:0; padding:0;}
.container{max-width:var(--container); margin:0 auto; padding:0 24px;}
section{padding:72px 0;}
.section-tight{padding:48px 0;}
.bg-light{background:var(--grey-100);}
.bg-navy{background:var(--navy-900); color:var(--white);}
.bg-navy h1,.bg-navy h2,.bg-navy h3{color:var(--white);}
.bg-navy p{color:#c9d4e3;}
.bg-gold-soft{background:var(--gold-100);}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-mono);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--teal);
  margin-bottom:14px;
}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--teal);display:inline-block;}

.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 26px;
  border-radius:var(--radius-sm);
  font-weight:600;
  font-size:.95rem;
  cursor:pointer;
  border:2px solid transparent;
  transition:all .2s ease;
  position:relative;
  overflow:hidden;
}
/* Ripple — grows from the top-left corner toward the bottom-right on hover. */
.btn::before{
  content:"";
  position:absolute;
  top:0; left:0;
  width:0; height:0;
  border-radius:50%;
  background:rgba(255,255,255,0.45);
  transform:translate(-50%,-50%);
  transition:width .55s ease, height .55s ease;
  z-index:-1;
  pointer-events:none;
}
.btn:hover::before{ width:260%; height:260%; }
.btn:hover{ transform:translateY(-2px); filter:brightness(1.08); }
.btn-primary{background:var(--gold-500); color:var(--navy-900);}
.btn-primary:hover{background:var(--gold-bright);}
.btn-outline{border-color:var(--white); color:var(--white);}
.btn-outline:hover{background:var(--white); color:var(--navy-900);}
.btn-outline-navy{border-color:var(--navy-700); color:var(--navy-700);}
.btn-outline-navy:hover{background:var(--navy-100); color:var(--navy-900);}
.btn-outline-onmatch{border-color:rgba(255,255,255,0.4); color:var(--white);}
.btn-outline-onmatch:hover{background:var(--white); color:var(--teal);}
.btn-block{width:100%; justify-content:center;}

/* ===== Top utility bar ===== */
.topbar{
  background:var(--navy-900);
  color:#cfd9e8;
  font-size:.85rem;
}
.topbar .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:8px;
  padding-bottom:8px;
  flex-wrap:wrap;
  gap:8px;
}
.topbar a{color:#cfd9e8;}
.topbar .topbar-contact{display:flex; gap:22px; flex-wrap:wrap;}
.topbar .topbar-social a{margin-left:14px; color:#cfd9e8;}

/* ===== Header / Nav ===== */
header.site-header{
  background:var(--white);
  position:sticky;
  top:0;
  z-index:100;
  box-shadow:var(--shadow-sm);
}
.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-top:14px;
  padding-bottom:14px;
}
/* Groups the nav links, CTA button and mobile toggle into one right-aligned
   cluster, so the menu sits flush against the button instead of the two
   being spread apart by .nav-wrap's space-between. */
.nav-right{
  display:flex;
  align-items:center;
}
.logo{
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  font-family:var(--font-head);
  line-height:1.1;
}
.logo .logo-img{height:46px; width:auto; display:block;}
.logo .logo-main{
  font-size:2.1rem;
  font-weight:800;
  color:var(--navy-900);
  letter-spacing:.02em;
}
.logo .logo-main span{color:var(--gold-600);}
.logo .logo-tag{
  font-size:.62rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--grey-400);
  font-weight:600;
}

nav.main-nav > ul{
  display:flex;
  align-items:center;
  gap:4px;
  list-style:none;
}
.dropdown{display:flex; flex-direction:column;}
nav.main-nav > ul > li{position:relative;}
nav.main-nav > ul > li > a, nav.main-nav > ul > li > span.nav-toggle{
  display:flex;
  align-items:center;
  gap:5px;
  padding:11px 13px;
  font-weight:600;
  font-size:.92rem;
  white-space:nowrap;
  color:var(--navy-900);
  cursor:pointer;
  border-radius:var(--radius-sm);
}
nav.main-nav > ul > li > a:hover,
nav.main-nav > ul > li:hover > span.nav-toggle,
nav.main-nav > ul > li.active > a{
  color:var(--gold-600);
  background:var(--navy-100);
}
nav.main-nav .caret{font-size:.6rem; margin-top:2px;}
nav.main-nav > ul > li > span.nav-toggle.nav-highlight,
nav.main-nav > ul > li > a.nav-highlight,
nav.main-nav > ul > li.active > a.nav-highlight{
  background:var(--navy-700);
  color:var(--white);
}
nav.main-nav > ul > li:hover > span.nav-toggle.nav-highlight,
nav.main-nav > ul > li > a.nav-highlight:hover,
nav.main-nav > ul > li:hover > a.nav-highlight{
  background:var(--navy-900);
  color:var(--white);
}

.dropdown{
  position:absolute;
  top:100%;
  left:0;
  background:var(--white);
  min-width:230px;
  box-shadow:var(--shadow-md);
  border-radius:var(--radius-md);
  padding:10px;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:all .18s ease;
  list-style:none;
  z-index:50;
}
li:hover > .dropdown,
li.dropdown-open > .dropdown{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.dropdown li a{
  display:block;
  padding:9px 14px;
  font-size:.88rem;
  font-weight:500;
  color:var(--grey-700);
  border-radius:var(--radius-sm);
}
.dropdown li a:hover{background:var(--navy-100); color:var(--navy-900);}

/* "mega" = the wide, 2-column variant shared by Countries and FAQs so both
   look and behave identically. Centered under its trigger so it can't run
   off the edge of the viewport regardless of where the parent item sits. */
.dropdown.mega{
  min-width:480px;
  left:50%;
  transform:translate(-50%,8px);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px 14px;
}
li:hover > .dropdown.mega,
li.dropdown-open > .dropdown.mega{
  transform:translate(-50%,0);
}

/* Non-clickable group heading used inside flat dropdowns (e.g. Coaching's
   "Online" / "Classroom" groups) so every dropdown stays a single flat
   list — no nested flyouts, same interaction everywhere. */
.dropdown li.dropdown-label{
  padding:10px 14px 4px;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--grey-400);
}
.dropdown li.dropdown-label:not(:first-child){
  margin-top:4px;
  border-top:1px solid var(--grey-200);
}

.nav-cta{margin-left:8px; padding:10px 18px; font-size:.86rem; white-space:nowrap; flex-shrink:0;}
.nav-toggle-mobile{display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px;}
.nav-toggle-mobile span{width:24px; height:2px; background:var(--navy-900); display:block;}

/* ===== Hero — boarding pass ===== */
.hero{
  background:var(--navy-900);
  color:var(--white);
  padding:64px 0 0;
  position:relative;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 700px 500px at 85% 10%, rgba(201,151,74,0.25), transparent 60%),
    radial-gradient(ellipse 900px 600px at 0% 100%, rgba(30,110,102,0.25), transparent 60%);
  pointer-events:none;
}
.hero-grid{display:grid; grid-template-columns:66fr 34fr; gap:50px; align-items:center; position:relative; z-index:2; padding-bottom:60px;}
.hero-tag{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid rgba(255,255,255,0.25);
  padding:6px 14px; border-radius:30px;
  font-family:var(--font-mono);
  font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500;
  color:var(--gold-bright); margin-bottom:22px;
}
.hero h1{color:var(--white); font-size:clamp(2.2rem,4.2vw,3.4rem); line-height:1.1; margin-bottom:20px;}
.hero h1 em{font-style:italic; color:var(--gold-bright); font-weight:600;}
.hero p.lead{font-size:1.08rem; line-height:1.6; color:rgba(255,255,255,.78); max-width:100%; margin-bottom:0;}
.hero-stats{display:flex; gap:34px; margin-top:36px; flex-wrap:wrap;}
.hero-stats .stat-num{font-family:var(--font-head); font-size:1.9rem; color:var(--gold-bright); font-weight:800;}
.hero-stats .stat-label{font-size:.78rem; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.05em; margin-top:2px;}

/* Hero kicker + country/course search — ported from client redesign, step 1 */
.hero .kicker{font-family:var(--font-head); font-style:italic; font-size:1.15rem; color:var(--gold-bright); margin-bottom:10px;}
.hero-search-wrap{position:relative; max-width:460px; margin-top:22px;}
.hero-search{
  display:flex; align-items:center; gap:10px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:30px; padding:6px 6px 6px 18px;
}
.hero-search input{background:transparent; border:none; outline:none; color:#fff; font-size:.9rem; flex:1;}
.hero-search input::placeholder{color:rgba(255,255,255,.5);}
.hero-search button{background:var(--gold); color:var(--navy-deep); border:none; border-radius:30px; padding:9px 16px; font-weight:600; font-size:.82rem; cursor:pointer;}
.search-suggest{position:absolute; top:calc(100% + 8px); left:0; right:0; background:#fff; border-radius:12px; box-shadow:0 24px 48px -20px rgba(0,0,0,.5); overflow:hidden; z-index:80; display:none; max-height:280px; overflow-y:auto;}
.search-suggest.show{display:block;}
.search-suggest .sg-item{display:flex; align-items:center; gap:10px; padding:11px 16px; font-size:.86rem; color:var(--navy); cursor:pointer; border-bottom:1px solid rgba(14,34,64,.06);}
.search-suggest .sg-item:last-child{border-bottom:none;}
.search-suggest .sg-item:hover{background:var(--cream);}
.search-suggest .sg-item .sg-flag{font-size:1.15rem;}
.search-suggest .sg-item .sg-name{font-weight:600;}
.search-suggest .sg-item .sg-type{margin-left:auto; font-size:.62rem; text-transform:uppercase; letter-spacing:.04em; color:#8a93a3; font-family:var(--font-mono);}
.search-suggest .sg-empty{padding:14px 16px; font-size:.82rem; color:#6b7686;}
.search-suggest .sg-empty a{color:var(--teal); font-weight:600;}
.hero-chips{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:14px;}
.hero-chips span{font-size:.74rem; color:rgba(255,255,255,.55); font-family:var(--font-mono);}
.hero-chips a{font-size:.76rem; color:rgba(255,255,255,.8); border:1px solid rgba(255,255,255,.2); border-radius:20px; padding:4px 11px;}
.hero-chips a:hover{border-color:var(--gold-bright); color:var(--gold-bright);}

/* Boarding-pass lead form — signature hero element */
.pass{
  background:var(--paper);
  border-radius:var(--radius-md);
  position:relative;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.45);
  display:flex; flex-direction:column;
  z-index:3;
}
.pass-top{
  background:var(--navy-deep);
  color:var(--white);
  padding:18px 24px;
  display:flex; justify-content:space-between; align-items:center;
  border-bottom:2px dashed rgba(255,255,255,0.2);
  border-radius:var(--radius-md) var(--radius-md) 0 0;
}
.pass-top .pt-label{font-family:var(--font-mono); font-size:.62rem; letter-spacing:.12em; color:rgba(255,255,255,.55); text-transform:uppercase;}
.pass-top .pt-route{font-family:var(--font-head); font-size:1.05rem; font-weight:700; color:var(--gold-bright); margin-top:4px;}
.pass-body{padding:26px 24px 22px; position:relative;}
.pass-body::before,.pass-body::after{
  content:""; position:absolute; top:-10px; width:20px; height:20px;
  background:var(--navy); border-radius:50%;
}
.pass-body::before{left:-10px;}
.pass-body::after{right:-10px;}
.pass .field{margin-bottom:14px;}
.pass .field label{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--grey-400); margin-bottom:5px; font-weight:700;}
.pass .field input,.pass .field select{
  width:100%; padding:11px 12px; border:1px solid var(--grey-200); border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:.92rem; background:var(--white); color:var(--grey-900);
}
.pass .field input:focus,.pass .field select:focus{outline:2px solid var(--teal); outline-offset:1px;}
.pass-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.pass .btn{width:100%; justify-content:center; margin-top:6px; padding:13px; font-size:.95rem;}
.pass-foot{
  border-top:1px dashed var(--grey-200);
  padding:12px 24px;
  display:flex; justify-content:space-between; align-items:center;
  font-family:var(--font-mono);
  font-size:.62rem; color:var(--grey-400); letter-spacing:.02em;
}
@media (max-width:980px){ .hero-grid{grid-template-columns:1fr;} .hero p.lead{max-width:100%;} }

/* ===== Trust bar ===== */
.trust-bar{background:var(--navy-deep); padding:18px 0; position:relative; z-index:2;}
.trust-row{display:flex; justify-content:space-between; flex-wrap:wrap; gap:18px; color:rgba(255,255,255,.78); font-size:.82rem; font-weight:500;}
.trust-row span b{color:var(--gold-bright); font-family:var(--font-head); font-weight:800; margin-right:6px;}

/* Trust badges strip — ported from client redesign, styled to match old dark trust-bar */
.badges{background:var(--navy-deep); padding:18px 0;}
.badges-row{display:flex; justify-content:center; gap:38px; flex-wrap:wrap; align-items:center;}
.badge-item{display:flex; align-items:center; gap:9px; font-size:.82rem; color:rgba(255,255,255,.78); font-weight:500;}
.badge-item .ic{width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; font-size:.9rem;}

.stat-card{
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.15);
  border-radius:var(--radius-md);
  padding:22px;
  text-align:center;
  animation:fade-up .6s ease both;
}
.stat-card:nth-child(1){animation-delay:.3s;}
.stat-card:nth-child(2){animation-delay:.4s;}
.stat-card:nth-child(3){animation-delay:.5s;}
.stat-card:nth-child(4){animation-delay:.6s;}
.stat-card .num{font-family:var(--font-head); font-size:2rem; font-weight:800; color:var(--gold-500);}
.stat-card .label{font-size:.8rem; color:#cfd9e8; margin-top:4px;}

/* Quick-facts strip (country page) — same stat-card look, 4-up on a dark band */
.quick-facts{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:48px 0;}
.quick-facts .stat-card{animation:none;}

@keyframes fade-up{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .stat-card,.reveal{ animation:none !important; transition:none !important; opacity:1 !important; transform:none !important; }
  .btn::before,.review-arrow::before{ transition:none !important; }
  .btn:hover,.wa-float:hover,.counsel-float:hover{ transform:none !important; }
}

/* ===== Page header (sub-pages) ===== */
.page-header{
  background:linear-gradient(135deg, var(--navy-900), var(--navy-700));
  color:var(--white);
  padding:56px 0;
  text-align:center;
}
.page-header h1{color:var(--white);}
.page-header p{color:#cfd9e8; max-width:640px; margin:8px auto 0;}
.breadcrumb{font-size:.82rem; color:var(--gold-500); font-weight:600; letter-spacing:.04em; text-transform:uppercase;}
.breadcrumb a{color:#cfd9e8;}

/* ===== Cards / grids ===== */
.grid{display:grid; gap:28px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}

.card{
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-md);
  padding:30px;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.card .icon{
  width:52px; height:52px;
  border-radius:var(--radius-sm);
  background:var(--gold-100);
  color:var(--gold-600);
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  margin-bottom:18px;
  font-weight:700;
}

.section-head{max-width:680px; margin:0 auto 48px; text-align:center;}
.section-head.left{margin:0 0 40px; text-align:left;}

/* ===== Why Us — desk-aid grid (homepage) ===== */
.why-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--grey-200); border:1px solid var(--grey-200); border-radius:var(--radius-md); overflow:hidden;
}
@media (max-width:900px){ .why-grid{grid-template-columns:repeat(2,1fr);} }
.why-cell{background:var(--paper); padding:30px 26px;}
.why-cell .n{font-family:var(--font-body); font-weight:700; color:var(--gold-500); font-size:.78rem; letter-spacing:.08em;}
.why-cell h4{font-family:var(--font-head); font-size:1.08rem; color:var(--navy-900); margin:10px 0 8px; font-weight:700;}
.why-cell p{font-size:.9rem; color:var(--grey-700); line-height:1.55; margin:0;}

/* ===== Countries — ticket grid (homepage) ===== */
.countries-strip{background:var(--cream);}
.ticket-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:980px){ .ticket-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .ticket-grid{grid-template-columns:1fr;} }
.ticket{
  background:var(--paper);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-sm);
  overflow:hidden;
  position:relative;
  transition:transform .25s ease, box-shadow .25s ease;
  display:flex; flex-direction:column;
}
.ticket:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.ticket-head{
  display:flex; justify-content:space-between; align-items:flex-start;
  padding:18px 18px 14px; border-bottom:1px dashed var(--grey-200);
  position:relative;
}
.ticket-head .flag{font-size:1.6rem; line-height:1;}
.ticket-head .code{font-family:var(--font-mono); font-size:.66rem; color:var(--teal); letter-spacing:.05em; text-align:right; font-weight:500;}
.ticket-body{padding:14px 18px 18px; flex:1; display:flex; flex-direction:column;}
.ticket-body h3{font-size:1.2rem; margin-bottom:6px;}
.ticket-body .meta{display:flex; gap:14px; margin:10px 0 14px; flex-wrap:wrap;}
.ticket-body .meta div{font-size:.74rem; color:var(--grey-700);}
.newpill{font-family:var(--font-mono); font-size:.58rem; background:var(--teal); color:#fff; padding:2px 7px; border-radius:20px; letter-spacing:.05em;}
.ticket-body .meta div b{display:block; color:var(--navy-900); font-size:.85rem; font-family:var(--font-head); font-weight:700;}
.ticket-body .go{margin-top:auto; display:flex; align-items:center; gap:6px; font-weight:700; font-size:.85rem; color:var(--teal);}
.ticket-head .punch{position:absolute; left:-7px; top:50%; transform:translateY(-50%); width:14px; height:14px; background:var(--cream); border-radius:50%;}
.ticket-head .punch.right{left:auto; right:-7px;}

/* ===== Counsellor match table (homepage) ===== */
.matchbox{background:var(--navy-900); border-radius:var(--radius-lg); padding:46px; color:var(--white); position:relative; overflow:hidden;}
.matchbox::after{content:""; position:absolute; right:-80px; top:-80px; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle, rgba(201,151,74,0.25), transparent 70%);}
.matchbox .section-head h2{color:var(--white);}
.matchbox .section-head p{color:rgba(255,255,255,.65);}
.match-table{width:100%; border-collapse:collapse; font-size:.92rem; position:relative; z-index:1;}
.match-table th{text-align:left; font-family:var(--font-mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-bright); padding:12px 16px; border-bottom:1px solid rgba(255,255,255,0.15); font-weight:500;}
.match-table td{padding:15px 16px; border-bottom:1px solid rgba(255,255,255,0.08); color:rgba(255,255,255,.88);}
.match-table tr:hover td{background:rgba(255,255,255,0.04);}
.pill{display:inline-block; padding:4px 10px; border-radius:20px; background:rgba(201,151,74,0.18); color:var(--gold-bright); font-size:.78rem; font-weight:700;}

/* ===== Journey — numbered process grid (homepage) ===== */
.process{display:grid; grid-template-columns:repeat(3,1fr); gap:32px 28px;}
.pstep{position:relative; padding:0;}
.pstep::after{display:none;}
.pstep .pnum{font-family:var(--font-head); font-size:2.1rem; -webkit-text-stroke:1.5px var(--gold-500); color:transparent; font-weight:800;}
.pstep h4{font-size:1rem; margin:10px 0 6px; color:var(--navy-900);}
.pstep p{font-size:.82rem; color:var(--grey-700); line-height:1.5; margin:0;}
@media (max-width:900px){ .process{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .process{grid-template-columns:1fr;} }

/* Roadmap slider (country pages) — reuses the review-slider carousel */
.roadmap-group{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; padding:2px 2px 2px 0;}
.roadmap-group .pstep{padding:0; min-width:0;}
.roadmap-group .pstep::after{display:none;}
@media (max-width:980px){
  .roadmap-group{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:760px){
  .roadmap-group{grid-template-columns:1fr; gap:20px;}
}

/* ===== Tools (homepage) ===== */
.tools-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
@media (max-width:900px){ .tools-grid{grid-template-columns:1fr;} }
.tools-grid-full{grid-template-columns:1fr; width:100%;}
.tool-card-spotlight{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; text-align:left; padding:44px 44px; width:100%;}
.tool-card-spotlight .spotlight-text{flex:1;}
.tool-card-spotlight .spotlight-text p{max-width:640px; margin:0;}
.tool-card-spotlight .spotlight-cta{flex-shrink:0;}
.tool-card-spotlight .spotlight-cta .btn{white-space:nowrap;}
@media (max-width:700px){ .tool-card-spotlight{flex-direction:column; align-items:flex-start; text-align:left;} }
.tool-card{background:var(--paper); border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:34px; position:relative; overflow:hidden;}
.tool-card .eyebrow{margin-bottom:10px; display:block;}
.tool-card h3{font-size:1.4rem; margin-bottom:10px;}
.tool-card p{color:var(--grey-700); font-size:.92rem; margin-bottom:22px; line-height:1.55;}
.tool-card.dark{background:linear-gradient(160deg, var(--navy-900), var(--navy-deep)); color:var(--white);}
.tool-card.dark h3{color:var(--white);}
.tool-card.dark p{color:rgba(255,255,255,.7);}
.tool-card.dark .eyebrow{color:var(--gold-bright);}

/* ===== Programs — icon chip grid (homepage) ===== */
.prog-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
@media (max-width:900px){ .prog-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:600px){ .prog-grid{grid-template-columns:repeat(2,1fr);} }
.prog-chip{background:var(--white); border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:26px 14px; text-align:center; transition:all .2s ease;}
.prog-chip:hover{border-color:var(--gold-500); transform:translateY(-3px); box-shadow:var(--shadow-md);}
.prog-chip .ic{width:46px; height:46px; margin:0 auto 12px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(30,110,102,0.1); color:var(--teal);}
.prog-chip .ic svg{width:22px; height:22px;}
.prog-chip span{font-size:.85rem; font-weight:700; color:var(--navy-900);}

/* ===== For Parents — icon cell grid (homepage) ===== */
.parent-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:900px){ .parent-grid{grid-template-columns:repeat(2,1fr);} }
.parent-cell .ic{width:48px; height:48px; border-radius:50%; background:rgba(201,151,74,0.15); color:var(--gold-600); display:flex; align-items:center; justify-content:center; margin-bottom:14px;}
.parent-cell .ic svg{width:23px; height:23px;}
.parent-cell h5{font-family:var(--font-head); font-size:1rem; color:var(--navy-900); margin-bottom:6px; font-weight:700;}
.parent-cell p{font-size:.88rem; color:var(--grey-700); line-height:1.55; margin:0;}

/* ===== Our Offices — linked cards (homepage) ===== */
.offices-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media (max-width:900px){ .offices-grid{grid-template-columns:1fr;} }
.office-card{display:block; background:var(--white); border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:34px 26px; text-align:center; transition:all .2s ease;}
.office-card:hover{border-color:var(--gold-500); transform:translateY(-4px); box-shadow:var(--shadow-md);}
.office-card .ic{width:52px; height:52px; border-radius:50%; background:rgba(14,34,64,0.06); color:var(--navy-900); display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.office-card .ic svg{width:25px; height:25px;}
.office-card h4{font-family:var(--font-head); font-size:1.1rem; color:var(--navy-900); margin-bottom:6px;}
.office-card p{font-size:.85rem; color:var(--grey-700); margin-bottom:14px;}
.office-card .go{font-size:.82rem; font-weight:700; color:var(--teal);}

/* ===== Success stories — static grid (homepage) ===== */
.test-strip{background:var(--cream);}
.test-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media (max-width:980px){ .test-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .test-grid{grid-template-columns:1fr;} }
.test-card{background:var(--paper); border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:22px;}
.test-card .stars{color:var(--gold-500); font-size:.85rem; margin-bottom:10px;}
.test-card p{font-size:.88rem; color:var(--grey-900); line-height:1.5; margin-bottom:14px; font-style:italic;}
.test-card .who{display:flex; align-items:center; gap:10px;}
.test-card .avatar{width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,var(--navy-900),var(--teal)); flex-shrink:0;}
.test-card .who b{font-size:.85rem; display:block; color:var(--navy-900);}

/* Google reviews strip — ported from client redesign */
.reviews-strip{display:flex; align-items:center; justify-content:space-between; gap:24px; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:26px 32px; flex-wrap:wrap;}
.reviews-strip .rs-left{display:flex; align-items:center; gap:16px;}
.reviews-strip .stars-big{color:var(--gold); font-size:1.4rem;}
.reviews-strip h4{font-family:var(--font-head); font-size:1.1rem; color:var(--navy);}
.reviews-strip p{font-size:.82rem; color:#6b7686; margin:0;}

/* From the Blog — ported from client redesign */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:900px){ .blog-grid{grid-template-columns:1fr;} }
.blog-card{background:var(--paper); border:1px solid var(--line); border-radius:8px; overflow:hidden;}
.blog-card .bimg{height:150px; background:linear-gradient(140deg, var(--cream), #eee2ce); overflow:hidden;}
.blog-card .bimg img{width:100%; height:100%; object-fit:cover; display:block;}
.blog-card .bbody{padding:20px;}
.blog-card .cat{font-family:var(--font-mono); font-size:.66rem; color:var(--teal); text-transform:uppercase; letter-spacing:.06em;}
.blog-card h4{font-size:1.02rem; margin:8px 0 8px; color:var(--navy);}
.blog-card p{font-size:.84rem; color:#6b7686; line-height:1.5;}

/* Get Started — two-column lead form, ported from client redesign */
.getstarted-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start;}
@media (max-width:900px){ .getstarted-grid{grid-template-columns:1fr;} }
.gs-text p{color:var(--grey-700); font-size:1rem; line-height:1.6; max-width:420px;}
.gs-text .lf-trust{display:flex; flex-direction:column; gap:10px; margin-top:24px; font-size:.85rem; color:var(--grey-700);}
.leadform-card{background:var(--paper); border:1px solid var(--grey-200); border-radius:var(--radius-md); box-shadow:var(--shadow-md); padding:30px;}
.leadform-card .lf-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; margin-bottom:16px;}
.leadform-card .lf-span2{grid-column:1 / -1;}
.leadform-card .field{margin-bottom:0;}
.leadform-card .field label{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--grey-400); margin-bottom:5px; font-weight:700;}
.leadform-card .field input,.leadform-card .field select{
  width:100%; padding:11px 12px; border:1px solid var(--grey-200); border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:.92rem; background:var(--white); color:var(--grey-900);
}
.leadform-card .field input:focus,.leadform-card .field select:focus{outline:2px solid var(--teal); outline-offset:1px;}
.leadform-card .lf-check{display:flex; align-items:flex-start; gap:8px; font-size:.78rem; color:var(--grey-700); line-height:1.4; margin-bottom:16px; cursor:pointer;}
.leadform-card .lf-check input{width:15px; height:15px; flex-shrink:0; margin:2px 0 0;}
.leadform-card .lf-check span{flex:1;}
@media (max-width:560px){ .leadform-card .lf-grid{grid-template-columns:1fr;} }
.test-card .who span{font-size:.74rem; color:var(--grey-400);}

/* ===== Final CTA banner (homepage) ===== */
.finalcta{background:var(--navy-900); border-radius:var(--radius-lg); padding:60px 50px; color:var(--white); display:flex; justify-content:space-between; align-items:center; gap:30px; position:relative; overflow:hidden;}
.finalcta::before{content:""; position:absolute; inset:0; background:radial-gradient(circle 400px at 90% 20%, rgba(201,151,74,0.3), transparent 70%);}
.finalcta h2{color:var(--white); font-size:1.9rem; max-width:480px; position:relative; z-index:1;}
.finalcta .actions{display:flex; gap:14px; position:relative; z-index:1; flex-shrink:0;}
@media (max-width:760px){ .finalcta{flex-direction:column; text-align:center; padding:42px 26px;} .finalcta .actions{flex-direction:column; width:100%;} }

/* ===== Scroll reveal (homepage) ===== */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}

.testimonial{
  background:var(--white);
  border:1px solid var(--grey-200);
  border-left:3px solid var(--gold-500);
  border-radius:var(--radius-md);
  padding:18px 20px;
  box-shadow:var(--shadow-sm);
}
.testimonial p{margin:0 0 8px; color:var(--grey-900); font-style:italic;}
.testimonial .who{font-size:.82rem; font-weight:700; color:var(--navy-700); text-transform:uppercase; letter-spacing:.03em;}

/* Reviews slider (homepage success stories) */
.review-slider{margin-top:24px;}
.review-track-wrap{overflow:hidden;}
.review-track{
  display:flex;
  transition:transform .45s ease;
}
.review-slide{flex:0 0 100%; min-width:0; padding:2px 2px 2px 0;}
.review-slide .testimonial{min-height:148px; display:flex; flex-direction:column; justify-content:center;}
.review-stars{color:var(--gold-500); font-size:.8rem; letter-spacing:3px; margin-bottom:8px;}
.review-controls{display:flex; align-items:center; justify-content:center; gap:18px; margin-top:20px;}
.review-arrow{
  width:38px; height:38px;
  border-radius:50%;
  border:1px solid var(--grey-200);
  background:var(--white);
  color:var(--navy-800);
  font-size:1.2rem;
  line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:all .2s ease;
  flex-shrink:0;
  position:relative;
  overflow:hidden;
}
.review-arrow::before{
  content:"";
  position:absolute;
  top:0; left:0;
  width:0; height:0;
  border-radius:50%;
  background:rgba(14,34,64,0.12);
  transform:translate(-50%,-50%);
  transition:width .45s ease, height .45s ease;
  z-index:-1;
  pointer-events:none;
}
.review-arrow:hover::before{ width:220%; height:220%; }
.review-arrow:hover{background:var(--navy-100); color:var(--navy-900); border-color:var(--navy-100);}
.review-dots{display:flex; align-items:center; gap:8px;}
.review-dot{
  width:9px; height:9px;
  border-radius:5px;
  background:var(--grey-200);
  border:none;
  padding:0;
  cursor:pointer;
  transition:all .2s ease;
}
.review-dot.active{background:var(--gold-500); width:22px;}

/* lists with check icons */
.check-list{list-style:none; padding:0; margin:0;}
.check-list li{
  display:flex; gap:12px; align-items:flex-start;
  padding:9px 0;
  color:var(--grey-700);
  font-weight:500;
}
.check-list li::before{
  content:"✔";
  color:var(--gold-600);
  font-weight:700;
  flex-shrink:0;
  margin-top:1px;
}

/* country/coaching pill tags */
.tag-row{display:flex; flex-wrap:wrap; gap:10px; margin:10px 0 0;}
.tag{
  background:var(--navy-100);
  color:var(--navy-800);
  font-size:.82rem;
  font-weight:600;
  padding:8px 16px;
  border-radius:30px;
}

/* Country page – pathways, photo-card layout */
.pathway-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.pathway-card{
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease;
}
.pathway-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}
.pathway-img-wrap{position:relative; height:210px; overflow:hidden;}
.pathway-img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.pathway-card:hover .pathway-img{transform:scale(1.09);}
.pathway-img-wrap::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,31,61,0) 35%, rgba(10,31,61,.92) 100%);
}
.pathway-num{
  position:absolute;
  top:14px; right:14px;
  z-index:2;
  font-family:var(--font-head);
  font-weight:800;
  font-size:.78rem;
  letter-spacing:.04em;
  color:var(--white);
  background:rgba(255,255,255,0.16);
  border:1px solid rgba(255,255,255,0.35);
  backdrop-filter:blur(2px);
  border-radius:30px;
  padding:4px 10px;
}
.pathway-title{
  position:absolute;
  left:20px; right:20px; bottom:16px;
  z-index:2;
  color:var(--white);
  font-size:1.08rem;
  margin:0;
}
.pathway-body{padding:18px 22px 24px;}
.pathway-body p{font-size:.9rem; margin-bottom:0;}

/* Country page – good reasons highlights */
.reason-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:8px;}
.reason-item{
  display:flex; gap:12px; align-items:flex-start;
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-md);
  padding:18px 20px;
  box-shadow:var(--shadow-sm);
}
.reason-item .ic{font-size:1.3rem; line-height:1; flex-shrink:0;}
.reason-item p{margin:0; font-weight:600; color:var(--navy-900); font-size:.95rem;}

/* Team */
.team-card{text-align:center;}
.team-card .avatar{
  width:120px; height:120px;
  border-radius:50%;
  margin:0 auto 18px;
  background:var(--navy-100);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-head);
  font-weight:800;
  font-size:1.8rem;
  color:var(--navy-700);
}
.team-card .role{color:var(--gold-600); font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; margin-bottom:10px;}

/* FAQ accordion */
.accordion-item{
  border:1px solid var(--grey-200);
  border-radius:var(--radius-md);
  margin-bottom:14px;
  overflow:hidden;
}
.accordion-q{
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 22px;
  font-weight:600;
  color:var(--navy-900);
  cursor:pointer;
  background:var(--white);
}
.accordion-q .plus{color:var(--gold-600); font-size:1.2rem; transition:transform .2s ease;}
.accordion-item.open .accordion-q .plus{transform:rotate(45deg);}
.accordion-a{
  padding:0 22px;
  max-height:0;
  overflow:hidden;
  transition:max-height .25s ease, padding .25s ease;
  color:var(--grey-700);
  background:#FCFAF6;
}
.accordion-item.open .accordion-a{padding:14px 22px 20px;}

/* Coming soon stub pages */
.stub-box{
  border:2px dashed var(--grey-200);
  border-radius:var(--radius-lg);
  padding:60px 30px;
  text-align:center;
  background:var(--grey-100);
}

/* Forms */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-grid .full{grid-column:1/-1;}
label{display:block; font-size:.85rem; font-weight:600; color:var(--navy-900); margin-bottom:6px;}
input,select,textarea{
  width:100%;
  padding:13px 14px;
  border:1px solid var(--grey-200);
  border-radius:var(--radius-sm);
  font-family:var(--font-body);
  font-size:.95rem;
  background:var(--white);
}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold-500); border-color:var(--gold-500);}
textarea{resize:vertical; min-height:120px;}

.contact-card{
  background:var(--navy-900);
  color:var(--white);
  border-radius:var(--radius-lg);
  padding:36px;
}
.contact-card h3{color:var(--white);}
.contact-row{display:flex; gap:14px; padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.12);}
.contact-row:last-child{border-bottom:none;}
.contact-row .ic{color:var(--gold-500); font-size:1.2rem;}
.contact-row a{color:#cfd9e8;}

/* CTA band */
.cta-band{
  background:linear-gradient(135deg, var(--gold-500), var(--gold-600));
  border-radius:var(--radius-lg);
  padding:48px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.cta-band h2,.cta-band p{color:var(--navy-900);}
.cta-band h2{margin-bottom:6px;}

/* Footer */
footer.site-footer{background:var(--navy-900); color:#aebcd1; padding:0;}
.footer-top{background:var(--white); width:100%;}
.footer-top-inner{display:flex; align-items:center; gap:28px; padding:28px 24px;}
.footer-top-inner .footer-logo{flex:0 0 auto; margin-bottom:0;}
footer.site-footer .footer-top-inner p{margin:0; flex:1; width:100%; color:var(--grey-900);}
.footer-grid{display:grid; grid-template-columns:0.7fr 1.5fr 1.8fr 1.1fr auto; gap:32px; padding-top:44px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.1);}
footer.site-footer h4{color:var(--white); font-size:1rem; margin-bottom:18px;}
footer.site-footer p{color:#aebcd1;}
footer.site-footer ul{list-style:none;}
footer.site-footer li{margin-bottom:10px; font-size:.9rem;}
.footer-destinations{column-count:2; column-gap:12px;}
.footer-destinations li{break-inside:avoid; margin-bottom:8px;}
footer.site-footer a{color:#aebcd1;}
footer.site-footer a:hover{color:var(--gold-500);}
.footer-logo{font-family:var(--font-head); font-weight:800; font-size:1.3rem; color:var(--white); margin-bottom:12px;}
.footer-logo span{color:var(--gold-500);}
.footer-logo-img{height:44px; width:auto; display:block;}
.footer-social{display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin-top:16px;}
.footer-social a{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,0.08);
  display:flex; align-items:center; justify-content:center;
  font-size:.85rem;
}
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding:22px 0; font-size:.82rem;
}

/* ===== How It Works — process strip ===== */
.process-steps{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:24px;
  position:relative;
}
.process-steps::before{
  content:"";
  position:absolute;
  top:34px; left:12%; right:12%;
  height:2px;
  background:var(--grey-200);
  z-index:0;
}
.process-step{
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-md);
  padding:30px 22px;
  text-align:center;
  box-shadow:var(--shadow-sm);
  position:relative;
  z-index:1;
}
.process-step .step-num{
  width:44px; height:44px;
  border-radius:50%;
  background:var(--navy-900);
  color:var(--gold-500);
  font-family:var(--font-head);
  font-weight:800;
  font-size:1.05rem;
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 16px;
}
.process-step h3{font-size:1.05rem; margin-bottom:8px;}
.process-step p{font-size:.88rem; margin-bottom:0;}

/* check-list on dark backgrounds needs lighter text than the default grey */
.bg-navy .check-list li{color:#cfd9e8;}

/* ===== WhatsApp float (site-wide) — matches client mockup ===== */
.wa-float{
  position:fixed;
  bottom:84px;
  right:24px;
  z-index:300;
  width:56px;
  height:56px;
  border-radius:50%;
  background:#25D366;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease;
}
.wa-float svg{width:28px; height:28px; fill:#fff;}
.wa-float:hover{transform:translateY(-3px); filter:brightness(1.08);}
.wa-label{
  position:absolute;
  right:68px;
  top:50%;
  transform:translateY(-50%);
  background:var(--white);
  color:var(--navy-900);
  padding:8px 14px;
  border-radius:var(--radius-sm);
  font-family:var(--font-body);
  font-size:.85rem;
  font-weight:600;
  white-space:nowrap;
  box-shadow:var(--shadow-md);
  opacity:0;
  visibility:hidden;
  transition:opacity .2s ease, transform .2s ease;
  pointer-events:none;
}
.wa-float:hover .wa-label{opacity:1; visibility:visible; transform:translateY(-50%) translateX(-4px);}

/* ===== Free Counselling float (site-wide) — stacked above the WhatsApp button,
   pill-shaped with an always-visible label (not a hover-only tooltip). ===== */
.counsel-float{
  position:fixed;
  bottom:24px;
  right:24px;
  z-index:300;
  height:48px;
  padding:0 18px 0 14px;
  border-radius:999px;
  background:var(--gold-500);
  display:flex;
  align-items:center;
  gap:8px;
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
  cursor:pointer;
  transition:transform .2s ease, filter .2s ease;
}
.counsel-float svg{width:22px; height:22px; fill:var(--navy-900); flex:0 0 auto;}
.counsel-float .counsel-label{
  color:var(--navy-900);
  font-family:var(--font-body);
  font-size:.85rem;
  font-weight:700;
  white-space:nowrap;
}
.counsel-float:hover{transform:translateY(-3px); filter:brightness(1.06);}

/* ===== Country destination page (Malta-style template) ===== */
.crumb{font-size:.82rem; color:var(--grey-400); padding:8px 0;}
.crumb a{color:var(--teal); font-weight:500;}

.mhero{position:relative; background:var(--navy-900); color:var(--white); overflow:hidden; padding:46px 0 56px;}
.mhero::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse 700px 500px at 90% 0%, rgba(201,151,74,0.28), transparent 60%), radial-gradient(ellipse 700px 500px at 0% 100%, rgba(30,110,102,0.25), transparent 60%); pointer-events:none;}
.mhero-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:40px; align-items:end; position:relative; z-index:1;}
.flagrow{display:flex; align-items:center; gap:10px; margin-bottom:18px;}
.flagrow .flag{font-size:2rem;}
.flagrow span{font-family:var(--font-mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-bright);}
.mhero h1{color:var(--white); font-size:clamp(2.2rem,4vw,3.2rem); line-height:1.06; margin-bottom:14px;}
.mhero h1 em{color:var(--gold-bright); font-style:italic; font-weight:500;}
.mhero p.lead{color:rgba(255,255,255,.75); font-size:1.04rem; max-width:480px; line-height:1.6; margin-bottom:24px;}
.chips{display:flex; gap:10px; flex-wrap:wrap;}
.chip{border:1px solid rgba(255,255,255,.25); border-radius:30px; padding:7px 14px; font-size:.78rem; color:rgba(255,255,255,.85);}
.chip b{color:var(--gold-bright);}

.statcard{background:var(--paper); border-radius:var(--radius-md); padding:26px; box-shadow:0 24px 50px -18px rgba(0,0,0,0.4);}
.statcard .row{display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px dashed var(--line); font-size:.88rem;}
.statcard .row:last-child{border-bottom:none;}
.statcard .row span:first-child{color:var(--grey-400);}
.statcard .row span:last-child{font-family:var(--font-head); font-weight:600; color:var(--navy-900);}
.statcard .ctarow{margin-top:16px;}
.statcard .ctarow .btn{width:100%; justify-content:center;}

.glance-table{width:100%; border-collapse:collapse; font-size:.9rem;}
.glance-table td{padding:9px 0; border-bottom:1px solid var(--line);}
.glance-table td:first-child{color:var(--grey-400); width:40%;}
.glance-table td:last-child{font-weight:600; color:var(--navy-900);}

.uni-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.uni-card{background:var(--paper); border:1px solid var(--grey-200); border-radius:var(--radius-md); overflow:hidden; display:flex; flex-direction:column;}
.uni-card .uh{background:var(--navy-900); color:var(--white); padding:16px 20px; display:flex; justify-content:space-between; align-items:center;}
.uni-card .uh .badge{font-family:var(--font-mono); font-size:.65rem; background:rgba(201,151,74,0.2); color:var(--gold-bright); padding:3px 9px; border-radius:20px;}
.uni-card .uh h4{color:var(--white); font-size:1.05rem; margin:0;}
.uni-card .ub{padding:20px; flex:1; display:flex; flex-direction:column;}
.uni-card .ub .tagline{font-size:.78rem; color:var(--teal); font-weight:600; margin-bottom:14px; text-transform:uppercase; letter-spacing:.04em;}
.uni-card .progs{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px;}
.uni-card .progs span{font-size:.74rem; background:var(--cream); border-radius:4px; padding:4px 9px; color:var(--navy-900);}
.uni-card .progs-desc{font-size:.85rem; color:var(--grey-700); margin-bottom:14px;}
.uni-card .fees{margin-top:auto; display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:14px; font-size:.85rem;}
.uni-card .fees b{color:var(--navy-900); font-family:var(--font-head);}
.uni-card.exclusive .uh{background:linear-gradient(120deg, var(--navy-900), #1a2f55);}

.comp-wrap{overflow-x:auto; border:1px solid var(--grey-200); border-radius:var(--radius-md); background:var(--white);}
table.comp{width:100%; border-collapse:collapse; font-size:.88rem; min-width:600px;}
table.comp th{background:var(--navy-900); color:var(--white); text-align:left; padding:13px 16px; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;}
table.comp td{padding:13px 16px; border-bottom:1px solid var(--grey-200);}
table.comp tr:last-child td{border-bottom:none;}
table.comp tr:nth-child(even){background:var(--cream);}
table.comp .yes{color:var(--teal); font-weight:700;}
table.comp .no{color:#c0455a; font-weight:700;}
.pill-tag{display:inline-block; padding:4px 10px; border-radius:20px; background:rgba(30,110,102,0.12); color:var(--teal); font-size:.78rem; font-weight:600;}

/* Online-program pricecard: Launch Offer badge, price display, demo/enroll form */
.pc-eyebrow{font-family:var(--font-mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:6px;}
.pc-price{display:flex; align-items:baseline; gap:10px; margin-bottom:2px;}
.pc-price .now{font-family:var(--font-head); font-size:2rem; font-weight:700; color:var(--navy-900);}
.pc-price .was{font-size:1rem; color:var(--grey-400); text-decoration:line-through;}
.pc-note{font-size:.74rem; color:var(--grey-400); margin-bottom:14px;}
.demoform{margin-top:16px; padding-top:16px; border-top:1px dashed var(--grey-200);}
.demoform .df-title{font-size:.78rem; font-weight:700; color:var(--navy-900); margin-bottom:10px; text-transform:uppercase; letter-spacing:.03em;}
.df-field{margin-bottom:9px;}
.df-field input, .df-field select{width:100%; padding:9px 11px; border:1px solid var(--grey-200); border-radius:var(--radius-sm); background:var(--cream); font-family:inherit; font-size:.84rem; color:var(--ink,#1B2430);}
.df-field input:focus, .df-field select:focus{outline:2px solid var(--teal); background:var(--white);}
.df-success{display:none; font-size:.82rem; color:var(--teal); font-weight:600; padding:8px 0;}
.df-success.show{display:block;}

/* Success-story placeholder cards */
.storygrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.storycard{background:var(--paper); border:1px solid var(--grey-200); border-radius:var(--radius-md); overflow:hidden;}
.storycard .sc-media{aspect-ratio:16/9; background:var(--navy-900); position:relative; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.55);}
.storycard .sc-media .sc-tag{position:absolute; top:12px; left:12px; background:rgba(255,255,255,.94); color:var(--navy-900); font-size:.68rem; font-weight:700; padding:4px 9px; border-radius:5px;}
.storycard .sc-play{width:44px; height:44px; border-radius:50%; border:2px dashed rgba(255,255,255,.4); display:flex; align-items:center; justify-content:center; font-size:1.05rem;}
.storycard .sc-body{padding:16px;}
.storycard .sc-body h4{font-size:.9rem; margin-bottom:4px;}
.storycard .sc-body p{font-size:.78rem; color:var(--grey-700); line-height:1.5; margin:0;}
@media (max-width:900px){ .storygrid{grid-template-columns:1fr 1fr;} }
@media (max-width:620px){ .storygrid{grid-template-columns:1fr;} }

.uni-cloud{display:flex; flex-wrap:wrap; gap:12px;}
.uni-pill{background:var(--paper); border:1px solid var(--grey-200); border-radius:var(--radius-md); padding:14px 18px; font-size:.88rem; font-weight:600; color:var(--navy-900); display:flex; align-items:center; gap:8px; transition:all .2s ease;}
.uni-pill:hover{border-color:var(--gold); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.uni-pill .dot{width:7px; height:7px; border-radius:50%; background:var(--teal); flex-shrink:0;}

.prog-cloud{display:flex; flex-wrap:wrap; gap:10px;}
.prog-pill{background:var(--cream); border-radius:20px; padding:8px 16px; font-size:.82rem; color:var(--navy-900); font-weight:600;}

/* Contact page — quickbar + multi-branch cards */
.quickbar{display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin-top:22px;}
.branch-card{background:var(--white); border:1px solid var(--grey-200); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm);}
.branch-card .bc-head{padding:20px 24px; border-bottom:1px solid var(--grey-200); display:flex; justify-content:space-between; align-items:center; gap:10px;}
.branch-card .bc-head h3{font-size:1.15rem; margin:0;}
.branch-card .bc-tag{font-family:var(--font-mono); font-size:.64rem; letter-spacing:.06em; text-transform:uppercase; background:var(--gold-100); color:var(--gold-600); padding:4px 10px; border-radius:20px; font-weight:700; white-space:nowrap;}
.branch-card .bc-tag.soon{background:rgba(201,151,74,.18); color:#8a6512;}
.branch-card .bc-map{width:100%; height:220px; border:0; display:block; filter:grayscale(.15);}
.branch-card .bc-body{padding:20px 24px;}
.branch-card .bc-row{display:flex; gap:10px; align-items:flex-start; font-size:.9rem; color:var(--grey-700); margin-bottom:10px;}
.branch-card .bc-row:last-child{margin-bottom:0;}
.branch-card .bc-row .ic{flex-shrink:0; width:20px; text-align:center; color:var(--gold-500);}
.branch-card .bc-row a{color:var(--navy-900); font-weight:600;}
.branch-card .bc-note{background:var(--cream); border-left:3px solid var(--gold-500); padding:10px 14px; font-size:.78rem; color:var(--grey-700); border-radius:0 6px 6px 0; margin-top:10px;}

@media (max-width:980px){
  .mhero-grid{grid-template-columns:1fr;}
  .uni-grid{grid-template-columns:1fr;}
}

/* Responsive */
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr;}
  .form-grid{grid-template-columns:1fr;}
  .decor-ring{width:240px; height:240px; left:60%;}
  .success-grid{grid-template-columns:1fr;}
  .success-collage{order:-1; padding:36px 24px 48px;}
  .why-grid{grid-template-columns:1fr;}
  .why-media{order:-1; margin-bottom:12px;}
  .quick-facts{grid-template-columns:1fr 1fr;}
  .reason-grid{grid-template-columns:1fr 1fr;}
  .pathway-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width: 600px){
  .hero-decor{display:none;}
  .wa-float{right:16px; bottom:76px;}
  .counsel-float{right:16px; bottom:16px;}
  .why-media-img{height:300px;}
  .why-badge-float{left:14px; padding:12px 16px; gap:10px;}
  .why-badge-float .num{font-size:1.3rem;}
}
@media (max-width: 980px){
  .process-steps{grid-template-columns:1fr 1fr;}
  .process-steps::before{display:none;}
}
@media (max-width: 600px){
  .process-steps{grid-template-columns:1fr;}
}
/* Nav collapses to the hamburger menu until the viewport is wide enough for
   the container to sit at its full max-width (--container, currently 1280px)
   — keeps the header's rendered width pinned to the same container as the
   topbar and page sections at every viewport, instead of letting the nav
   overflow it. */
@media (max-width: 1280px){
  nav.main-nav{display:none;}
  nav.main-nav.open{
    display:block;
    position:absolute;
    top:100%; left:0; right:0;
    background:var(--white);
    box-shadow:var(--shadow-md);
    padding:14px;
    max-height:calc(100vh - 100%);
    overflow-y:auto;
  }
  nav.main-nav.open ul{flex-direction:column; align-items:stretch;}
  nav.main-nav.open .dropdown{position:static; display:none; opacity:1; visibility:visible; transform:none; box-shadow:none; margin-left:14px;}
  nav.main-nav.open li.dropdown-open .dropdown{display:block;}
  nav.main-nav.open .dropdown.mega{grid-template-columns:1fr;}
  .nav-toggle-mobile{display:flex;}
}
@media (max-width: 760px){
  .topbar .topbar-contact{display:none;}
  .grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}
  .quick-facts{grid-template-columns:1fr;}
  .reason-grid{grid-template-columns:1fr;}
  .pathway-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:28px;}
  .footer-top-inner{flex-wrap:wrap;}
  section{padding:52px 0;}
  .cta-band{flex-direction:column; text-align:center;}
}
