{"id":15681,"date":"2024-06-18T07:03:02","date_gmt":"2024-06-18T07:03:02","guid":{"rendered":"https:\/\/rabacademy.vn\/?page_id=15681"},"modified":"2026-08-20T07:00:55","modified_gmt":"2026-08-20T07:00:55","slug":"home-rab-academy","status":"publish","type":"page","link":"https:\/\/rabacademy.vn\/finland\/","title":{"rendered":"Home &#8211; RAB Academy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15681\" class=\"elementor elementor-15681\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d69a57 e-con e-atomic-element e-flexbox-base e-031392d \" data-id=\"2d69a57\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"2d69a57\">\n    \t\t<div class=\"elementor-element elementor-element-65d667b elementor-widget elementor-widget-html\" data-id=\"65d667b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* Standalone preview only: browsers add an 8px body margin to HTML fragments. *\/\nbody:has(> #rab-finland-home){margin:0;padding:0;background:#fbf7ee}\n\n\/* Elementor integration: remove widget spacing around the Finland full-bleed hero. *\/\n.elementor-widget-html:has(#rab-finland-home),\n.elementor-widget-html:has(#rab-finland-home) > .elementor-widget-container {\n  margin:0 !important;\n  padding:0 !important;\n  overflow:visible !important;\n}\n.elementor-widget-html:has(#rab-finland-home) #rab-finland-home {\n  margin:0 !important;\n}\n\n\/* A sticky element stops following the viewport when any Elementor ancestor\n   creates its own clipped\/scrolling box. Keep only the Finland widget's\n   ancestor chain open so the Hero -> Why Finland scene cannot be cut off. *\/\n:is(\n  .e-con,\n  .e-con-inner,\n  .elementor-section,\n  .elementor-container,\n  .elementor-column,\n  .elementor-widget-wrap,\n  .elementor-element,\n  .elementor-widget,\n  .elementor-widget-container\n):has(#rab-finland-home),\n.rab-finland-sticky-ancestor {\n  overflow:visible !important;\n}\n<\/style>\n<div id=\"rab-finland-home\">\n<style>\n\/* =========================================================\n   RAB FINLAND \u2014 PRODUCTION HOMEPAGE\n   Self-contained Elementor HTML widget. All styles and scripts are scoped to #rab-finland-home.\n   ========================================================= *\/\n\/* Header offset: standalone Body preview has no header, so do not leave a fake top strip.\n   On the live page, rab-finland-header.html is present and the offset is restored below. *\/\nbody:not(:has(#rab-finland-header-root)) #rab-finland-home {\n  --rab-finland-header-h:0px;\n}\nbody:has(#rab-finland-header-root) #rab-finland-home {\n  --rab-finland-header-h:100px;\n}\n@media (max-width:1023px) {\n  body:has(#rab-finland-header-root) #rab-finland-home {\n    --rab-finland-header-h:86px;\n  }\n}\n\n\/* ==================== 01. DESIGN SYSTEM \/ FOUNDATION ==================== *\/\n#rab-finland-home {\n  --rab-finland-max: 1280px;\n  --rab-finland-gutter: 48px;\n  --rab-finland-section: 92px;\n  --rab-finland-deep: #10251e;\n  --rab-finland-ink: #20342a;\n  --rab-finland-green: #2f6b52;\n  --rab-finland-green-hover: #24543f;\n  --rab-finland-amber: #ddbf77;\n  --rab-finland-amber-strong: #cfa54a;\n  --rab-finland-amber-soft: #f0e1bc;\n  --rab-finland-cream: #fbf7ee;\n  --rab-finland-paper: #eee7d8;\n  --rab-finland-muted: #617068;\n  --rab-finland-line: #c8d1c7;\n  --rab-finland-display: \"Roboto Slab\", Georgia, Cambria, serif;\n  --rab-finland-body: \"Roboto\", Arial, Helvetica, sans-serif;\n  --rab-finland-ease: cubic-bezier(.2,.8,.2,1);\n  --rab-finland-header-h:100px;\n  min-width: 0;\n  overflow:visible;\n  background: var(--rab-finland-cream);\n  color: var(--rab-finland-ink);\n  font-family: var(--rab-finland-body);\n  font-size: 17px;\n  line-height: 1.62;\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n}\n#rab-finland-home *,\n#rab-finland-home *::before,\n#rab-finland-home *::after { box-sizing: border-box; }\n#rab-finland-home img { display:block; width:100%; max-width:100%; }\n#rab-finland-home a { color:inherit; }\n#rab-finland-home button,\n#rab-finland-home input,\n#rab-finland-home textarea { font:inherit; }\n#rab-finland-home button { -webkit-tap-highlight-color: transparent; }\n#rab-finland-home h1,\n#rab-finland-home h2,\n#rab-finland-home h3,\n#rab-finland-home p { margin-top:0; }\n#rab-finland-home h1,\n#rab-finland-home h2,\n#rab-finland-home h3 { font-family:var(--rab-finland-display); text-wrap:balance; }\n#rab-finland-home :focus-visible { outline:3px solid var(--rab-finland-amber-strong); outline-offset:4px; }\n#rab-finland-home .rab-finland-shell {\n  width:min(100%,var(--rab-finland-max));\n  margin-inline:auto;\n  padding-inline:var(--rab-finland-gutter);\n}\n#rab-finland-home .rab-finland-section { padding-block:var(--rab-finland-section); scroll-margin-top:112px; }\n#rab-finland-home .rab-finland-kicker {\n  display:block;\n  margin-bottom:12px;\n  color:var(--rab-finland-green);\n  font-size:13px;\n  font-weight:800;\n  line-height:1.3;\n  letter-spacing:.105em;\n  text-transform:uppercase;\n}\n#rab-finland-home .rab-finland-title {\n  margin-bottom:18px;\n  font-size:clamp(42px,4.3vw,60px);\n  font-weight:900;\n  line-height:1.04;\n  letter-spacing:-.03em;\n}\n#rab-finland-home .rab-finland-section-title {\n  margin-bottom:18px;\n  font-size:clamp(38px,3.4vw,50px);\n  font-weight:900;\n  line-height:1.08;\n  letter-spacing:-.025em;\n}\n#rab-finland-home .rab-finland-body-text {\n  max-width:700px;\n  color:var(--rab-finland-muted);\n  font-size:18px;\n  line-height:1.68;\n}\n\/* ==================== 02. CTA COMPONENT ==================== *\/\n\/* Shared CTA base + BEM modifiers. Section-specific classes live with each section. *\/\n#rab-finland-home .rab-finland-cta {\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:12px;\n  min-height:52px;\n  padding:18px 18px;\n  border:1px solid transparent;\n  border-radius:0;\n  background:var(--rab-finland-green);\n  color:#fff;\n  font-size:15px;\n  font-weight:500;\n  line-height:1;\n  text-decoration:none;\n  cursor:pointer;\n  transition:transform .18s var(--rab-finland-ease),background .18s ease,border-color .18s ease,color .18s ease;\n}\n#rab-finland-home .rab-finland-cta::after { content:\"\u2192\"; font-size:16px; line-height:1; }\n#rab-finland-home .rab-finland-cta:hover { transform:translateY(-2px); background:var(--rab-finland-green-hover); }\n#rab-finland-home .rab-finland-cta--amber { background:var(--rab-finland-amber); color:var(--rab-finland-deep); }\n#rab-finland-home .rab-finland-cta--amber:hover { background:var(--rab-finland-amber-strong); }\n#rab-finland-home .rab-finland-cta--outline-light { border:1px solid;  border-color:#fff!important; background:transparent; color:#fff; }\n#rab-finland-home .rab-finland-cta--outline-light:hover { border-color:#fff; background:rgba(255,255,255,.06); }\n#rab-finland-home .rab-finland-cta--dark { background:var(--rab-finland-deep); color:#fff; }\n#rab-finland-home :is(\n  .rab-finland-cta,\n  .rab-finland-icon-btn,\n  .rab-finland-support-tab,\n  .rab-finland-program-card-cta a,\n  #rab-finland-wpforms-mount button[type=\"submit\"],\n  #rab-finland-wpforms-mount input[type=\"submit\"],\n  #rab-finland-wpforms-mount .wpforms-submit\n) { border-radius:0 !important; }\n\n\/* ==================== 03. HERO ==================== *\/\n\/* Full-bleed recruitment hero *\/\n#rab-finland-home .rab-finland-hero {\n  position:relative;\n  left:50%;\n  width:100vw;\n  max-width:none;\n  min-height:700px;\n  margin-left:-50vw;\n  isolation:isolate;\n  overflow:hidden;\n  background:var(--rab-finland-deep);\n  color:#fff;\n}\n#rab-finland-home .rab-finland-hero-media {\n  position:absolute;\n  z-index:0;\n  inset:0;\n  min-height:0;\n  overflow:hidden;\n}\n#rab-finland-home .rab-finland-hero-media picture {\n  display:block;\n  width:100%;\n  height:100%;\n}\n#rab-finland-home .rab-finland-hero-media img {\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:58% center;\n  transition:transform 1.2s var(--rab-finland-ease);\n}\n#rab-finland-home .rab-finland-hero:hover .rab-finland-hero-media img { transform:scale(1.012); }\n#rab-finland-home .rab-finland-hero::before {\n  position:absolute;\n  z-index:1;\n  inset:0;\n  content:\"\";\n  background:\n    linear-gradient(90deg,\n      rgba(10,27,21,.82) 0%,\n      rgba(10,27,21,.68) 16%,\n      rgba(10,27,21,.46) 28%,\n      rgba(10,27,21,.22) 40%,\n      rgba(10,27,21,.08) 52%,\n      rgba(10,27,21,.02) 66%,\n      rgba(10,27,21,0) 100%),\n    linear-gradient(0deg,rgba(8,20,16,.14) 0%,transparent 34%);\n  pointer-events:none;\n}\n#rab-finland-home .rab-finland-hero-content {\n  position:relative;\n  z-index:2;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n  min-height:700px;\n  padding:\n    96px\n    min(58vw,1110px)\n    88px\n    max(48px,calc((100vw - var(--rab-finland-max))\/2 + var(--rab-finland-gutter)));\n  background:transparent;\n}\n#rab-finland-home .rab-finland-hero-content::after { display:none; }\n#rab-finland-home .rab-finland-hero-eyebrow {\n  margin-bottom:18px;\n  color:var(--rab-finland-amber);\n  font-size:13px;\n  font-weight:800;\n  letter-spacing:.15em;\n  text-transform:uppercase;\n}\n#rab-finland-home .rab-finland-hero h1 {\n  max-width:500px;\n  margin-bottom:26px;\n  font-size:clamp(56px,5.2vw,76px);\n  font-weight:900;\n  line-height:1.01;\n  letter-spacing:-.045em;\n  text-shadow:0 3px 22px rgba(5,18,14,.52),0 1px 2px rgba(5,18,14,.42);\n}\n#rab-finland-home .rab-finland-hero-content p {\n  max-width:470px;\n  margin-bottom:38px;\n  color:rgba(255,255,255,.88);\n  font-size:19px;\n  line-height:1.68;\n  text-shadow:0 2px 14px rgba(5,18,14,.56),0 1px 2px rgba(5,18,14,.42);\n}\n#rab-finland-home .rab-finland-hero-actions {\n  display:flex;\n  flex-wrap:wrap;\n  gap:14px;\n  align-items:center;\n}\n#rab-finland-home .rab-finland-hero-cta {\n  min-width:206px;\n  padding-inline:26px;\n}\n#rab-finland-home .rab-finland-hero-cta.rab-finland-cta--outline-light {\n  background:rgba(255,255,255,.035);\n  border-color:rgba(255,255,255,.30);\n}\n#rab-finland-home .rab-finland-hero-cta.rab-finland-cta--outline-light:hover {\n  background:rgba(255,255,255,.09);\n  border-color:rgba(255,255,255,.52);\n}\n#rab-finland-home .rab-finland-hero-media::before { display:none; }\n\n\n\/* ==================== 04. WHY FINLAND ==================== *\/\n\/* Scroll-pinned cinematic scene *\/\n#rab-finland-home .rab-finland-why-section {\n  position:relative;\n  padding:68px 0;\n  background:#fff;\n  border-bottom:1px solid var(--rab-finland-line);\n}\n#rab-finland-home .rab-finland-why-sticky {\n  position:relative;\n}\n#rab-finland-home .rab-finland-why {\n  --rab-why-scale:1;\n  --rab-why-y:0px;\n  --rab-why-clip-y:0%;\n  --rab-why-clip-x:0%;\n  --rab-why-image-scale:1.03;\n  --rab-why-image-y:0%;\n  --rab-why-content-y:0px;\n  --rab-why-content-opacity:1;\n  --rab-why-content-clip:0%;\n  --rab-why-overlay:.78;\n  --rab-why-frame-opacity:.30;\n  position:relative;\n  min-height:450px;\n  overflow:hidden;\n  isolation:isolate;\n  background:var(--rab-finland-deep);\n  color:#fff;\n  transform-origin:center center;\n}\n#rab-finland-home .rab-finland-why-section.is-scroll-ready {\n  height:158vh;\n  min-height:980px;\n  padding:0;\n}\n#rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-sticky {\n  position:sticky;\n  top:var(--rab-finland-header-h);\n  height:calc(100svh - var(--rab-finland-header-h));\n  min-height:560px;\n  display:flex;\n  align-items:center;\n  overflow:hidden;\n}\n#rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-sticky > .rab-finland-shell {\n  width:100%;\n}\n#rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why {\n  transform:translate3d(0,var(--rab-why-y),0) scale(var(--rab-why-scale));\n  clip-path:inset(var(--rab-why-clip-y) var(--rab-why-clip-x));\n  will-change:transform,clip-path;\n}\n#rab-finland-home .rab-finland-why::before {\n  position:absolute;\n  z-index:2;\n  inset:0;\n  content:\"\";\n  pointer-events:none;\n  opacity:var(--rab-why-overlay);\n  background:\n    linear-gradient(90deg,\n      rgba(16,37,30,1) 0%,\n      rgba(16,37,30,.92) 31%,\n      rgba(16,37,30,.58) 58%,\n      rgba(16,37,30,.18) 84%,\n      rgba(16,37,30,.04) 100%),\n    linear-gradient(0deg,rgba(16,37,30,.38),rgba(16,37,30,.03) 64%);\n  transition:opacity .12s linear;\n}\n#rab-finland-home .rab-finland-why::after {\n  position:absolute;\n  z-index:5;\n  inset:14px;\n  content:\"\";\n  pointer-events:none;\n  border:0;\n}\n#rab-finland-home .rab-finland-why-content {\n  position:relative;\n  z-index:4;\n  display:flex;\n  flex-direction:column;\n  align-items:flex-start;\n  justify-content:center;\n  width:min(58%,650px);\n  min-height:450px;\n  padding:48px 54px;\n  background:transparent;\n  text-align:left;\n}\n#rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-content {\n  opacity:var(--rab-why-content-opacity);\n  transform:translate3d(0,var(--rab-why-content-y),0);\n  clip-path:inset(0 0 var(--rab-why-content-clip) 0);\n  will-change:transform,opacity,clip-path;\n}\n#rab-finland-home .rab-finland-why-content::before,\n#rab-finland-home .rab-finland-why-content::after { display:none; }\n#rab-finland-home .rab-finland-why .rab-finland-kicker {\n  display:block;\n  margin-bottom:14px;\n  color:var(--rab-finland-amber);\n}\n#rab-finland-home .rab-finland-why .rab-finland-title {\n  max-width:500px;\n  margin:0 0 26px;\n  color:#fff;\n  font-size:clamp(56px,5.2vw,76px);\n  font-weight:900;\n  line-height:1.01;\n  letter-spacing:-.045em;\n}\n#rab-finland-home .rab-finland-why-content p {\n  max-width:520px;\n  margin:0 0 26px;\n  color:rgba(255,255,255,.76);\n  font-size:19px;\n  line-height:1.68;\n}\n#rab-finland-home .rab-finland-why-cta {\n  min-width:150px;\n  width:auto;\n  margin:0;\n}\n#rab-finland-home .rab-finland-why-media {\n  position:absolute;\n  z-index:1;\n  inset:0;\n  min-height:450px;\n  margin:0;\n  overflow:hidden;\n}\n#rab-finland-home .rab-finland-why-media picture {\n  display:block;\n  width:100%;\n  height:100%;\n}\n#rab-finland-home .rab-finland-why-media img {\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:66% 50%;\n  filter:saturate(.92) contrast(1.04);\n  transform:translate3d(0,var(--rab-why-image-y),0) scale(var(--rab-why-image-scale));\n  transform-origin:center center;\n  will-change:transform;\n}\n#rab-finland-home .rab-finland-why-progress {\n  position:absolute;\n  z-index:6;\n  right:30px;\n  bottom:28px;\n  width:74px;\n  height:1px;\n  overflow:hidden;\n  background:rgba(255,255,255,.24);\n}\n#rab-finland-home .rab-finland-why-progress::after {\n  position:absolute;\n  inset:0;\n  content:\"\";\n  background:var(--rab-finland-amber);\n  transform:scaleX(var(--rab-why-progress,0));\n  transform-origin:left center;\n}\n#rab-finland-home .rab-finland-why-media::before,\n#rab-finland-home .rab-finland-why-media::after { display:none; }\n\n\/* ==================== 05. PROGRAMS ==================== *\/\n\/* Unified recruitment area *\/\n#rab-finland-home .rab-finland-programs-zone {\n  position:relative;\n  z-index:5;\n  overflow:hidden;\n  padding-block:78px 84px;\n  background:var(--rab-finland-cream);\n  color:var(--rab-finland-ink);\n  border-bottom:1px solid var(--rab-finland-line);\n}\n#rab-finland-home .rab-finland-programs-main-head {\n  display:grid;\n  grid-template-columns:minmax(500px,.95fr) minmax(0,1.05fr);\n  gap:48px;\n  align-items:end;\n  margin-bottom:52px;\n}\n#rab-finland-home .rab-finland-programs-main-head h2 {\n  width:max-content;\n  max-width:100%;\n  margin:0;\n  white-space:nowrap;\n}\n#rab-finland-home .rab-finland-programs-main-rule { display:none; }\n#rab-finland-home .rab-finland-program-group { min-width:0; position:relative; }\n#rab-finland-home .rab-finland-program-group::after {\n  position:absolute;\n  z-index:3;\n  top:var(--rab-program-track-top,0px);\n  right:0;\n  width:28px;\n  height:var(--rab-program-track-height,0px);\n  content:\"\";\n  pointer-events:none;\n  opacity:0;\n  background:linear-gradient(90deg,rgba(251,247,238,0) 0%,rgba(251,247,238,.28) 48%,rgba(251,247,238,.66) 100%);\n  transition:opacity .18s ease;\n}\n#rab-finland-home .rab-finland-program-group.has-more-right::after { opacity:1; }\n@media (max-width:767px) {\n  #rab-finland-home .rab-finland-program-group::after { width:20px; }\n}\n#rab-finland-home .rab-finland-program-group + .rab-finland-program-group {\n  margin-top:58px;\n  padding-top:52px;\n  border-top:0;\n}\n#rab-finland-home .rab-finland-program-head {\n  display:flex;\n  align-items:end;\n  justify-content:space-between;\n  gap:28px;\n  margin-bottom:24px;\n}\n#rab-finland-home .rab-finland-program-heading { min-width:0; }\n#rab-finland-home .rab-finland-program-head h3 {\n  margin:0;\n  font-family:var(--rab-finland-display);\n  font-size:clamp(30px,2.7vw,38px);\n  line-height:1.1;\n  font-weight:500;\n  letter-spacing:-.02em;\n}\n#rab-finland-home .rab-finland-program-title-mobile { display:none; }\n#rab-finland-home .rab-finland-program-tools { display:flex; align-items:center; gap:10px; }\n#rab-finland-home .rab-finland-icon-btn {\n  appearance:none;\n  -webkit-appearance:none;\n  flex:0 0 40px;\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  width:40px;\n  min-width:40px;\n  max-width:40px;\n  height:40px;\n  min-height:40px;\n  max-height:40px;\n  margin:0;\n  padding:0 !important;\n  border:1px solid rgba(32,52,42,.44);\n  border-radius:0;\n  background:var(--rab-finland-deep);\n  color:#fff;\n  font:inherit;\n  line-height:1;\n  cursor:pointer;\n  opacity:1;\n  box-sizing:border-box;\n  transition:background .18s ease,border-color .18s ease,transform .18s var(--rab-finland-ease);\n}\n#rab-finland-home .rab-finland-icon-btn:hover {\n  background:var(--rab-finland-green);\n  border-color:var(--rab-finland-green);\n  color:#fff;\n  transform:translateY(-2px);\n}\n#rab-finland-home .rab-finland-icon-btn svg {\n  display:block;\n  flex:0 0 18px;\n  width:18px;\n  height:18px;\n  margin:0;\n  overflow:visible;\n  fill:none;\n  stroke:currentColor;\n  stroke-width:1.8;\n  stroke-linecap:round;\n  stroke-linejoin:round;\n}\n#rab-finland-home .rab-finland-program-track {\n  display:grid;\n  grid-auto-flow:column;\n  grid-auto-columns:calc((100% - 3*18px)\/3.2);\n  gap:18px;\n  overflow-x:auto;\n  overscroll-behavior-inline:contain;\n  scroll-snap-type:x mandatory;\n  scrollbar-width:none;\n  padding-bottom:5px;\n}\n#rab-finland-home .rab-finland-program-track::-webkit-scrollbar { display:none; }\n#rab-finland-home .rab-finland-program-state {\n  grid-column:1 \/ -1;\n  width:min(100%,560px);\n  min-height:110px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  padding:24px;\n  border:1px solid var(--rab-finland-line);\n  background:rgba(255,255,255,.46);\n  color:var(--rab-finland-muted);\n  font-size:14px;\n  font-weight:700;\n  text-align:center;\n}\n\n#rab-finland-home .rab-finland-program-card {\n  min-width:0;\n  scroll-snap-align:start;\n  color:inherit;\n}\n#rab-finland-home .rab-finland-program-thumb {\n  position:relative;\n  aspect-ratio:16\/10;\n  overflow:hidden;\n  background:#d9ded9;\n}\n#rab-finland-home .rab-finland-program-thumb img {\n  height:100%;\n  object-fit:cover;\n  transition:transform .5s var(--rab-finland-ease);\n}\n#rab-finland-home .rab-finland-program-card:hover img { transform:scale(1.025); }\n\n\n\/* -------------------- 05A. PROGRAM CARDS -------------------- *\/\n\/* Shared degree + vocational structure *\/\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-card {\n  height:100%;\n  overflow:hidden;\n  border:1px solid var(--rab-finland-line);\n  background:#fff;\n  box-shadow:none;\n  transition:transform .24s var(--rab-finland-ease), box-shadow .24s var(--rab-finland-ease), border-color .24s var(--rab-finland-ease);\n}\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-card > a {\n  display:flex !important;\n  flex-direction:column;\n  height:100%;\n}\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-card:hover {\n  transform:translateY(-5px);\n  border-color:rgba(47,107,82,.32);\n  box-shadow:0 18px 42px rgba(16,37,30,.10);\n}\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-thumb {\n  aspect-ratio:16\/10;\n  border-bottom:1px solid var(--rab-finland-line);\n}\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-thumb::after { border:0; }\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-body {\n  flex:1 1 auto;\n  display:flex;\n  flex-direction:column;\n  min-height:250px;\n  padding:22px 22px 28px;\n}\n#rab-finland-home .rab-finland-degree-label {\n  display:inline-flex;\n  align-self:flex-start;\n  color:var(--rab-finland-green);\n  font-size:11px;\n  font-weight:900;\n  line-height:1.2;\n  letter-spacing:.09em;\n  text-transform:uppercase;\n}\n#rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-name {\n  min-height:54px;\n  margin:9px 0 19px;\n  color:var(--rab-finland-ink);\n  font-family:var(--rab-finland-display);\n  font-weight:800;\n  line-height:1.28;\n}\n#rab-finland-home [data-rab-finland-program-track=\"degree\"] .rab-finland-program-name {\n  font-size:clamp(30px,2.7vw,38px);\n  font-weight:500;\n}\n#rab-finland-home [data-rab-finland-program-track=\"vocational\"] .rab-finland-program-name {\n  color:var(--rab-finland-ink);\n  font-size:21px;\n}\n#rab-finland-home .rab-finland-program-card-cta {\n  margin-top:auto;\n  padding-top:20px;\n  text-align:center;\n}\n#rab-finland-home .rab-finland-program-card-cta a,\n#rab-finland-home .rab-finland-program-card-cta span {\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  gap:10px;\n  min-width:184px;\n  min-height:48px;\n  padding:20px 22px;\n  border:1px solid var(--rab-finland-deep);\n  border-radius:0;\n  background:var(--rab-finland-deep);\n  color:#fff;\n  font-size:14px;\n  font-weight:900;\n  line-height:1;\n  letter-spacing:.01em;\n  text-decoration:none;\n  transition:\n    transform .18s var(--rab-finland-ease),\n    background .18s ease,\n    border-color .18s ease;\n}\n#rab-finland-home .rab-finland-program-card-cta a::after,\n#rab-finland-home .rab-finland-program-card-cta span::after {\n  content:\"\u2192\";\n  font-size:16px;\n}\n#rab-finland-home .rab-finland-program-card-cta a:hover {\n  border-color:var(--rab-finland-amber);\n  background:var(--rab-finland-amber);\n  color:var(--rab-finland-deep);\n  transform:translateY(-2px);\n}\n#rab-finland-home .rab-finland-degree-meta {\n  display:grid;\n  margin-top:auto;\n  border-top:1px solid var(--rab-finland-line);\n}\n#rab-finland-home .rab-finland-degree-meta-row {\n  display:grid;\n  grid-template-columns:76px minmax(0,1fr);\n  gap:12px;\n  align-items:start;\n  padding:10px 0;\n  border-bottom:1px solid var(--rab-finland-line);\n  font-size:13px;\n  line-height:1.45;\n}\n#rab-finland-home .rab-finland-degree-meta-row span { color:var(--rab-finland-muted); }\n#rab-finland-home .rab-finland-degree-meta-row strong {\n  min-width:0;\n  color:var(--rab-finland-ink);\n  font-weight:800;\n  text-align:right;\n  overflow-wrap:anywhere;\n}\n@media (max-width:767px) {\n  #rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-body { min-height:236px; padding:20px 18px 24px; }\n  #rab-finland-home :is([data-rab-finland-program-track=\"degree\"],[data-rab-finland-program-track=\"vocational\"]) .rab-finland-program-name { min-height:0; line-height:1.25; }\n  #rab-finland-home [data-rab-finland-program-track=\"degree\"] .rab-finland-program-name { font-size:27px; }\n  #rab-finland-home [data-rab-finland-program-track=\"vocational\"] .rab-finland-program-name { font-size:20px; }\n  #rab-finland-home .rab-finland-degree-meta-row { grid-template-columns:70px minmax(0,1fr); }\n}\n\n\/* -------------------- 05B. FEATURED \/ HOT PROGRAMS -------------------- *\/\n\/* Elegant diagonal HOT ribbon *\/\n#rab-finland-home .rab-finland-program-card.is-hot {\n  position:relative;\n  z-index:2;\n  isolation:isolate;\n  border:1px solid rgba(207,165,74,.74);\n  background:#fff;\n  box-shadow:0 20px 48px rgba(16,37,30,.13);\n  transform:translateY(-4px);\n}\n#rab-finland-home .rab-finland-program-card.is-hot::before,\n#rab-finland-home .rab-finland-program-card.is-hot::after {\n  display:none;\n}\n#rab-finland-home .rab-finland-program-card.is-hot:hover {\n  transform:translateY(-6px);\n  border-color:rgba(207,165,74,.94);\n  box-shadow:0 26px 58px rgba(16,37,30,.16);\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-thumb {\n  position:relative;\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-thumb img {\n  filter:saturate(.96) contrast(1.025);\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-body {\n  position:relative;\n  padding:24px 24px 32px;\n  background:\n    linear-gradient(180deg,rgba(240,225,188,.16),rgba(240,225,188,0) 44%),\n    #fff;\n}\n\/* Vocational cards need a little more breathing room below the CTA. *\/\n#rab-finland-home [data-rab-finland-program-track=\"vocational\"] .rab-finland-program-body,\n#rab-finland-home [data-rab-finland-program-track=\"vocational\"] .rab-finland-program-card.is-hot .rab-finland-program-body {\n  padding-bottom:42px;\n}\n@media (max-width:767px) {\n  #rab-finland-home [data-rab-finland-program-track=\"vocational\"] .rab-finland-program-body,\n  #rab-finland-home [data-rab-finland-program-track=\"vocational\"] .rab-finland-program-card.is-hot .rab-finland-program-body {\n    padding-bottom:38px;\n  }\n}\n#rab-finland-home .rab-finland-hot-badge {\n  position:absolute;\n  z-index:10;\n  top:23px;\n  left:-51px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:176px;\n  min-height:38px;\n  padding:0 18px;\n  border:0;\n  border-top:1px solid rgba(47,107,82,.62);\n  border-bottom:1px solid rgba(47,107,82,.62);\n  border-radius:0;\n  background:\n    linear-gradient(90deg,rgba(255,255,255,.07),rgba(255,255,255,0) 38%),\n    linear-gradient(90deg,#F5F501 0%,#F5F501 50%,#F5F501 100%);\n  color:var(--rab-finland-green);\n  box-shadow:0 10px 24px rgba(47,107,82,.24);\n  transform:rotate(-45deg);\n  transform-origin:center;\n  pointer-events:none;\n}\n#rab-finland-home .rab-finland-hot-badge::before,\n#rab-finland-home .rab-finland-hot-badge::after {\n  position:absolute;\n  left:0;\n  width:100%;\n  height:1px;\n  content:\"\";\n  background:rgba(47,107,82,.20);\n}\n#rab-finland-home .rab-finland-hot-badge::before { top:3px; }\n#rab-finland-home .rab-finland-hot-badge::after { bottom:3px; }\n#rab-finland-home .rab-finland-hot-badge strong {\n  margin:0;\n  font:900 12px\/1 var(--rab-finland-body);\n  letter-spacing:.20em;\n  text-indent:.20em;\n  color:var(--rab-finland-green);\n  background:linear-gradient(105deg,\n    var(--rab-finland-green) 0%,\n    var(--rab-finland-green) 42%,\n    #d7e9df 47%,\n    #fffde8 50%,\n    #d7e9df 53%,\n    var(--rab-finland-green) 58%,\n    var(--rab-finland-green) 100%);\n  background-size:260% 100%;\n  background-position:160% 50%;\n  -webkit-background-clip:text;\n  background-clip:text;\n  -webkit-text-fill-color:transparent;\n  animation:rabFinlandHotRibbonLight 3.8s cubic-bezier(.22,.7,.2,1) infinite;\n}\n#rab-finland-home .rab-finland-hot-badge small { display:none; }\n@keyframes rabFinlandHotRibbonLight {\n  0%,56% { background-position:160% 50%; }\n  78%,100% { background-position:-70% 50%; }\n}\n@media (prefers-reduced-motion:reduce) {\n  #rab-finland-home .rab-finland-hot-badge strong {\n    animation:none;\n    background-position:0 50%;\n  }\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-thumb::before,\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-thumb::after {\n  display:none;\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-card-cta a,\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-card-cta span {\n  position:relative;\n  min-width:190px;\n  border-color:var(--rab-finland-deep);\n  background:var(--rab-finland-deep);\n  color:#fff;\n  box-shadow:none;\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-card-cta a::before,\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-card-cta span::before {\n  position:absolute;\n  top:-1px;\n  bottom:-1px;\n  left:-1px;\n  width:4px;\n  content:\"\";\n  background:var(--rab-finland-amber-strong);\n}\n#rab-finland-home .rab-finland-program-card.is-hot .rab-finland-program-card-cta a:hover,\n#rab-finland-home .rab-finland-program-card.is-hot:hover .rab-finland-program-card-cta span {\n  border-color:var(--rab-finland-amber);\n  background:var(--rab-finland-amber);\n  color:var(--rab-finland-deep);\n}\n@media (max-width:767px) {\n  #rab-finland-home .rab-finland-program-card.is-hot { transform:translateY(-3px); }\n  #rab-finland-home .rab-finland-program-card.is-hot:hover { transform:translateY(-4px); }\n  #rab-finland-home .rab-finland-hot-badge {\n    top:20px;\n    left:-49px;\n    width:164px;\n    min-height:34px;\n    padding:0 14px;\n    box-shadow:0 8px 20px rgba(47,107,82,.22);\n  }\n  #rab-finland-home .rab-finland-hot-badge strong { font-size:11px; letter-spacing:.18em; text-indent:.18em; }\n}\n\n\/* ==================== 06. RAB SUPPORT ==================== *\/\n\/* Guidance + priority partner programs *\/\n#rab-finland-home .rab-finland-support-pro { background:var(--rab-finland-paper); border-bottom:1px solid var(--rab-finland-line); }\n#rab-finland-home .rab-finland-support-head {\n  display:block;\n  margin-bottom:42px;\n}\n#rab-finland-home .rab-finland-support-head .rab-finland-section-title { margin:0; }\n#rab-finland-home .rab-finland-support-tabs { display:none; }\n#rab-finland-home .rab-finland-support-tab {\n  appearance:none;\n  min-height:48px;\n  padding:10px 14px;\n  border:0;\n  border-radius:0;\n  background:transparent;\n  color:var(--rab-finland-muted);\n  font:500 13px\/1.25 var(--rab-finland-display);\n  cursor:pointer;\n}\n#rab-finland-home .rab-finland-support-tab.is-active {\n  background:var(--rab-finland-deep);\n  color:#fff;\n}\n#rab-finland-home .rab-finland-support-tab .rab-finland-support-tab-line { display:inline; }\n#rab-finland-home .rab-finland-support-tab .rab-finland-support-tab-line + .rab-finland-support-tab-line::before { content:\" \"; }\n#rab-finland-home .rab-finland-support-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }\n#rab-finland-home .rab-finland-support-card { min-width:0; display:flex; flex-direction:column; border:1px solid var(--rab-finland-line); background:var(--rab-finland-cream); }\n#rab-finland-home .rab-finland-support-image { aspect-ratio:16\/9; overflow:hidden; background:#d8ddd7; }\n#rab-finland-home .rab-finland-support-image img { height:100%; object-fit:cover; transition:transform .55s var(--rab-finland-ease); }\n#rab-finland-home .rab-finland-support-card:hover .rab-finland-support-image img { transform:scale(1.025); }\n#rab-finland-home .rab-finland-support-body { flex:1; display:flex; flex-direction:column; padding:32px 34px 42px; }\n#rab-finland-home .rab-finland-support-body h3 { margin-bottom:12px; font-size:clamp(30px,2.7vw,38px); line-height:1.12; font-weight:500; letter-spacing:-.018em; text-wrap:pretty; }\n@media (min-width:1024px) {\n  #rab-finland-home .rab-finland-support-card[data-rab-finland-support-panel=\"partners\"] .rab-finland-support-body h3 {\n    font-size:clamp(30px,2.7vw,38px);\n    letter-spacing:-.026em;\n    white-space:normal;\n    text-wrap:pretty;\n  }\n}\n#rab-finland-home .rab-finland-support-body > p { margin-bottom:24px; color:var(--rab-finland-muted); font-size:16px; line-height:1.65; }\n#rab-finland-home .rab-finland-support-description {\n  max-width:58ch;\n  margin:18px 0 28px !important;\n  color:var(--rab-finland-muted);\n  font-size:15px;\n  line-height:1.75;\n}\n#rab-finland-home .rab-finland-support-cta {\n  display:flex;\n  justify-content:center;\n  margin-top:auto;\n  padding-top:20px;\n}\n#rab-finland-home .rab-finland-support-cta-button {\n  gap:10px;\n  min-width:184px;\n  min-height:48px;\n  padding:24px 22px;\n  border:1px solid var(--rab-finland-deep);\n  border-radius:0;\n  background:var(--rab-finland-deep);\n  color:#fff;\n  font-size:16px;\n  font-weight:900;\n  line-height:1;\n  letter-spacing:.01em;\n}\n#rab-finland-home .rab-finland-support-cta-button::after { font-size:16px; }\n#rab-finland-home .rab-finland-support-cta-button:hover {\n  border-color:var(--rab-finland-amber);\n  background:var(--rab-finland-amber);\n  color:var(--rab-finland-deep);\n}\n#rab-finland-home .rab-finland-support-links { border-top:1px solid var(--rab-finland-line); }\n#rab-finland-home .rab-finland-support-links + .rab-finland-support-cta { padding-top:24px; }\n#rab-finland-home .rab-finland-support-link {\n  display:grid;\n  grid-template-columns:34px 1fr auto;\n  gap:12px;\n  align-items:center;\n  min-height:55px;\n  border-bottom:1px solid var(--rab-finland-line);\n  color:var(--rab-finland-ink);\n  text-decoration:none;\n  font-size:13px;\n  font-weight:700;\n}\n#rab-finland-home .rab-finland-support-link b { color:var(--rab-finland-green); font-size:11px; font-weight:800; }\n#rab-finland-home .rab-finland-support-link::after { content:\"\u2192\"; color:var(--rab-finland-green); }\n#rab-finland-home .rab-finland-support-link:hover { color:var(--rab-finland-green); }\n\n\/* ==================== 07. ACTIVITY + NEWS ==================== *\/\n\/* Editorial stories section *\/\n#rab-finland-home .rab-finland-editorial { background:var(--rab-finland-cream); }\n#rab-finland-home .rab-finland-editorial-head {\n  display:block;\n  margin-bottom:38px;\n}\n#rab-finland-home .rab-finland-editorial-head .rab-finland-section-title { margin:0; }\n#rab-finland-home .rab-finland-stories-grid {\n  display:grid;\n  grid-template-columns:minmax(0,7fr) minmax(300px,3fr);\n  gap:48px;\n  align-items:start;\n}\n\n\/* Activity slider \u2014 adapted from the uploaded clip-path \/ GSAP concept *\/\n#rab-finland-home .rab-finland-activity-panel {\n  position:relative;\n  min-height:520px;\n  overflow:hidden;\n  background:var(--rab-finland-deep);\n  color:#fff;\n  isolation:isolate;\n}\n#rab-finland-home .rab-finland-activity-slider {\n  position:absolute;\n  inset:0;\n  overflow:hidden;\n}\n#rab-finland-home .rab-finland-activity-slide {\n  position:absolute;\n  inset:0;\n  z-index:var(--rab-finland-slide-z);\n  margin:0;\n}\n#rab-finland-home .rab-finland-activity-slide-image {\n  position:absolute;\n  inset:0;\n  overflow:hidden;\n  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);\n  will-change:clip-path;\n}\n#rab-finland-home .rab-finland-activity-slide-image::after {\n  position:absolute;\n  inset:0;\n  content:\"\";\n  background:\n    linear-gradient(90deg,rgba(16,37,30,.74) 0%,rgba(16,37,30,.22) 52%,rgba(16,37,30,.34) 100%),\n    linear-gradient(180deg,rgba(16,37,30,.06) 34%,rgba(16,37,30,.82) 100%);\n  pointer-events:none;\n}\n#rab-finland-home .rab-finland-activity-slide-image img {\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:center;\n  filter:saturate(.96) contrast(1.03);\n  transform:scale(1.015);\n}\n#rab-finland-home .rab-finland-activity-slide-content {\n  position:absolute;\n  z-index:3;\n  left:clamp(24px,4vw,48px);\n  bottom:clamp(26px,4vw,44px);\n  max-width:min(540px,72%);\n}\n#rab-finland-home .rab-finland-activity-slide-content > * {\n  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);\n  will-change:clip-path;\n}\n#rab-finland-home .rab-finland-activity-slide-content span {\n  display:block;\n  margin-bottom:10px;\n  color:var(--rab-finland-amber);\n  font-size:9px;\n  font-weight:900;\n  line-height:1.3;\n  letter-spacing:.10em;\n  text-transform:uppercase;\n}\n#rab-finland-home .rab-finland-activity-slide-content strong {\n  display:block;\n  max-width:12ch;\n  font-family:var(--rab-finland-display);\n  font-size:clamp(28px,3.6vw,48px);\n  font-weight:900;\n  line-height:.98;\n  letter-spacing:-.035em;\n  text-shadow:0 4px 24px rgba(0,0,0,.22);\n}\n#rab-finland-home .rab-finland-activity-slide-content p {\n  max-width:42ch;\n  margin:16px 0 0;\n  color:rgba(255,255,255,.76);\n  font-size:13px;\n  line-height:1.5;\n}\n#rab-finland-home .rab-finland-activity-counter {\n  position:absolute;\n  z-index:7;\n  top:20px;\n  right:20px;\n  display:flex;\n  align-items:center;\n  gap:8px;\n  min-height:34px;\n  padding:0 12px;\n  border:1px solid rgba(255,255,255,.20);\n  background:rgba(16,37,30,.54);\n  color:rgba(255,255,255,.82);\n  font-size:10px;\n  font-weight:800;\n  letter-spacing:.08em;\n  backdrop-filter:blur(10px);\n  -webkit-backdrop-filter:blur(10px);\n}\n#rab-finland-home .rab-finland-activity-counter strong {\n  color:var(--rab-finland-amber);\n  font-size:11px;\n}\n#rab-finland-home .rab-finland-activity-fallback .rab-finland-activity-slide {\n  opacity:0;\n  transition:opacity .55s ease;\n}\n#rab-finland-home .rab-finland-activity-fallback .rab-finland-activity-slide.is-active {\n  opacity:1;\n}\n\n#rab-finland-home .rab-finland-news-panel { display:flex; flex-direction:column; border-top:2px solid var(--rab-finland-deep); }\n#rab-finland-home .rab-finland-news-list { border-top:0; }\n#rab-finland-home .rab-finland-news-item {\n  position:relative;\n  z-index:0;\n  display:grid;\n  grid-template-columns:112px 1fr;\n  gap:18px;\n  align-items:center;\n  min-height:104px;\n  margin-inline:-14px;\n  padding:15px 14px;\n  border-bottom:1px solid var(--rab-finland-line);\n  background:transparent;\n  text-decoration:none;\n  transform:translateY(0);\n  transition:\n    transform .28s var(--rab-finland-ease),\n    background-color .28s ease,\n    box-shadow .28s ease,\n    border-color .28s ease;\n}\n#rab-finland-home .rab-finland-news-item:hover,\n#rab-finland-home .rab-finland-news-item:focus-visible {\n  z-index:2;\n  transform:translateY(-6px);\n  border-bottom-color:transparent;\n  background:rgba(255,255,255,.72);\n  box-shadow:0 18px 42px rgba(16,37,30,.12);\n  outline:0;\n}\n#rab-finland-home .rab-finland-news-thumb {\n  width:112px;\n  aspect-ratio:4\/3;\n  overflow:hidden;\n  background:#ddd;\n  box-shadow:0 0 0 rgba(16,37,30,0);\n  transition:box-shadow .28s ease;\n}\n#rab-finland-home .rab-finland-news-thumb img {\n  height:100%;\n  object-fit:cover;\n  transition:transform .42s var(--rab-finland-ease), filter .32s ease;\n}\n#rab-finland-home .rab-finland-news-item:hover .rab-finland-news-thumb,\n#rab-finland-home .rab-finland-news-item:focus-visible .rab-finland-news-thumb {\n  box-shadow:0 10px 24px rgba(16,37,30,.14);\n}\n#rab-finland-home .rab-finland-news-item:hover .rab-finland-news-thumb img,\n#rab-finland-home .rab-finland-news-item:focus-visible .rab-finland-news-thumb img {\n  transform:scale(1.065);\n  filter:saturate(1.04) contrast(1.02);\n}\n#rab-finland-home .rab-finland-news-item strong {\n  display:block;\n  font-family:var(--rab-finland-display);\n  font-size:17px;\n  line-height:1.38;\n  transition:color .24s ease, transform .24s var(--rab-finland-ease);\n}\n#rab-finland-home .rab-finland-news-item:hover strong,\n#rab-finland-home .rab-finland-news-item:focus-visible strong {\n  color:var(--rab-finland-green);\n  transform:translateX(3px);\n}\n#rab-finland-home .rab-finland-news-item span span {\n  display:block;\n  margin-top:7px;\n  color:var(--rab-finland-muted);\n  font-size:11px;\n}\n#rab-finland-home .rab-finland-all-news {\n  display:inline-flex;\n  align-items:center;\n  align-self:flex-start;\n  gap:8px;\n  margin-top:18px;\n  padding-bottom:4px;\n  border-bottom:1px solid currentColor;\n  font-size:13px;\n  font-weight:800;\n  text-decoration:none;\n}\n#rab-finland-home .rab-finland-all-news::after { content:\"\u2192\"; }\n\n\/* ==================== 08. CONSULTATION ==================== *\/\n\/* Two-column information + form layout *\/\n#rab-finland-home .rab-finland-consult { background:var(--rab-finland-amber-soft); border-top:1px solid rgba(32,52,42,.08); }\n#rab-finland-home .rab-finland-consult-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(420px,.78fr); gap:clamp(48px,7vw,112px); align-items:start; }\n#rab-finland-home .rab-finland-consult-content { position:sticky; top:112px; }\n#rab-finland-home .rab-finland-consult-content .rab-finland-section-title { max-width:560px; margin-bottom:22px; font-size:clamp(40px,4.2vw,60px); }\n#rab-finland-home .rab-finland-consult-content .rab-finland-body-text { margin-bottom:28px; color:var(--rab-finland-muted); }\n#rab-finland-home .rab-finland-consult-info {\n  margin-top:32px;\n}\n#rab-finland-home .rab-finland-contact-details-block {\n  margin-top:20px;\n  padding-top:0;\n  border-top:0;\n}\n#rab-finland-home .rab-finland-consult-block-title {\n  display:block;\n  margin-bottom:32px;\n  color:var(--rab-finland-green);\n  font-size:11px;\n  font-weight:900;\n  line-height:1.3;\n  letter-spacing:.08em;\n  text-transform:uppercase;\n}\n#rab-finland-home .rab-finland-advisor-grid {\n  display:grid;\n  grid-template-columns:1fr;\n  gap:10px;\n}\n#rab-finland-home .rab-finland-advisor-contact {\n  min-width:0;\n  display:grid;\n  grid-template-columns:minmax(120px,.72fr) minmax(150px,.78fr) auto;\n  gap:16px;\n  align-items:center;\n  padding:14px 16px;\n  border:1px solid rgba(32,52,42,.12);\n  background:rgba(255,255,255,.22);\n}\n#rab-finland-home .rab-finland-advisor-name {\n  color:var(--rab-finland-green);\n  font-size:15px;\n  font-weight:900;\n  line-height:1.4;\n  letter-spacing:.025em;\n  text-transform:uppercase;\n}\n#rab-finland-home .rab-finland-advisor-phone {\n  color:var(--rab-finland-ink);\n  font-size:16px;\n  font-weight:800;\n  line-height:1.4;\n  text-decoration:none;\n  white-space:nowrap;\n}\n#rab-finland-home .rab-finland-advisor-actions {\n  min-width:0;\n  display:flex;\n  flex-wrap:wrap;\n  justify-content:flex-end;\n  align-items:center;\n  gap:0;\n  color:var(--rab-finland-green);\n  font-size:16px;\n  font-weight:800;\n  line-height:1.3;\n}\n#rab-finland-home .rab-finland-advisor-actions a {\n  display:inline;\n  min-height:0;\n  padding:0;\n  border:0;\n  background:transparent;\n  color:inherit;\n  font-size:inherit;\n  font-weight:inherit;\n  line-height:inherit;\n  text-decoration:none;\n  white-space:nowrap;\n}\n#rab-finland-home .rab-finland-advisor-actions a + a::before {\n  content:\"\u00b7\";\n  display:inline-block;\n  margin:0 8px;\n  color:rgba(32,52,42,.38);\n}\n#rab-finland-home .rab-finland-advisor-actions a:hover {\n  background:transparent;\n  color:var(--rab-finland-deep);\n  text-decoration:underline;\n  text-underline-offset:3px;\n}\n#rab-finland-home .rab-finland-contact-details {\n  display:grid;\n  gap:16px;\n  padding:22px 20px;\n  border:1px solid rgba(32,52,42,.12);\n  background:rgba(255,255,255,.22);\n}\n#rab-finland-home .rab-finland-contact-details a,\n#rab-finland-home .rab-finland-contact-details div {\n  display:grid;\n  grid-template-columns:150px minmax(0,1fr);\n  gap:24px;\n  align-items:start;\n  padding:0;\n  color:var(--rab-finland-ink);\n  text-decoration:none;\n}\n#rab-finland-home .rab-finland-contact-details span {\n  color:var(--rab-finland-muted);\n  font-size:14px;\n  font-weight:900;\n  line-height:1.4;\n  letter-spacing:.045em;\n  text-transform:uppercase;\n}\n#rab-finland-home .rab-finland-contact-details strong {\n  font-size:16px;\n  font-weight:700;\n  line-height:1.4;\n}\n#rab-finland-home .rab-finland-contact-details a:hover strong {\n  color:var(--rab-finland-green);\n}\n#rab-finland-home .rab-finland-consult-form {\n  position:relative;\n  overflow:hidden;\n  padding:clamp(26px,3vw,42px);\n  border:1px solid rgba(221,191,119,.22);\n  background:var(--rab-finland-deep);\n  color:#fff;\n  box-shadow:0 24px 60px rgba(16,37,30,.14);\n}\n#rab-finland-home .rab-finland-consult-form::before {\n  position:absolute;\n  top:0;\n  left:0;\n  width:88px;\n  height:3px;\n  content:\"\";\n  background:var(--rab-finland-amber);\n}\n#rab-finland-home .rab-finland-form-title {\n  margin:0 0 8px;\n  color:#fff;\n  font-family:var(--rab-finland-display);\n  font-size:clamp(28px,2.4vw,36px);\n  font-weight:500;\n  line-height:1.12;\n  letter-spacing:-.02em;\n}\n#rab-finland-home .rab-finland-form-intro {\n  max-width:560px;\n  margin:0 0 24px;\n  color:rgba(255,255,255,.68);\n  font-size:15px;\n  line-height:1.62;\n}\n\n\/* WPForms 29251 \u2014 America-inspired dark form, Finland palette *\/\n#rab-finland-home #rab-finland-wpforms-mount {\n  display:block;\n  margin:0;\n  font-size:0; \/* hides raw shortcode text in standalone HTML preview *\/\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-container,\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-container-full {\n  width:100% !important;\n  max-width:none !important;\n  margin:0 !important;\n  padding:0 !important;\n  background:transparent !important;\n  border:0 !important;\n  box-shadow:none !important;\n  font-size:16px;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-form {\n  margin:0 !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-field {\n  padding:0 0 16px !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-field-label,\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-field-label-inline,\n#rab-finland-home #rab-finland-wpforms-mount label {\n  display:block;\n  margin:0 0 8px !important;\n  color:rgba(255,255,255,.92) !important;\n  font-family:var(--rab-finland-body) !important;\n  font-size:14px !important;\n  font-weight:800 !important;\n  line-height:1.35 !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-required-label {\n  color:#d86d61 !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"text\"],\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"email\"],\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"tel\"],\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"number\"],\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"url\"],\n#rab-finland-home #rab-finland-wpforms-mount select,\n#rab-finland-home #rab-finland-wpforms-mount textarea {\n  width:100% !important;\n  max-width:none !important;\n  min-height:52px !important;\n  margin:0 !important;\n  padding:12px 14px !important;\n  border:1px solid rgba(240,225,188,.58) !important;\n  border-radius:0 !important;\n  background:var(--rab-finland-cream) !important;\n  color:var(--rab-finland-ink) !important;\n  font-family:var(--rab-finland-body) !important;\n  font-size:16px !important;\n  line-height:1.45 !important;\n  box-shadow:none !important;\n  outline:0 !important;\n  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount textarea {\n  min-height:126px !important;\n  resize:vertical !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount input:focus,\n#rab-finland-home #rab-finland-wpforms-mount select:focus,\n#rab-finland-home #rab-finland-wpforms-mount textarea:focus {\n  border-color:var(--rab-finland-amber) !important;\n  background:#fffdf8 !important;\n  box-shadow:0 0 0 3px rgba(221,191,119,.16) !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount input::placeholder,\n#rab-finland-home #rab-finland-wpforms-mount textarea::placeholder {\n  color:#8b948f !important;\n  opacity:1 !important;\n}\n\/* WPForms Smart Phone \/ intl-tel-input: leave space for country flag *\/\n#rab-finland-home #rab-finland-wpforms-mount .iti input[type=\"tel\"],\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-smart-phone-field {\n  padding-left:62px !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .iti__selected-country,\n#rab-finland-home #rab-finland-wpforms-mount .iti__flag-container {\n  color:var(--rab-finland-ink) !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-field-description,\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-field-sublabel,\n#rab-finland-home #rab-finland-wpforms-mount em.wpforms-error,\n#rab-finland-home #rab-finland-wpforms-mount label.wpforms-error {\n  color:rgba(255,255,255,.62) !important;\n  font-size:12px !important;\n  line-height:1.45 !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-submit-container {\n  margin:4px 0 0 !important;\n  padding:0 !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount button[type=\"submit\"],\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"submit\"],\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-submit {\n  width:100% !important;\n  min-width:0 !important;\n  min-height:54px !important;\n  margin:0 !important;\n  padding:0 24px !important;\n  border:1px solid var(--rab-finland-amber) !important;\n  border-radius:0 !important;\n  background:var(--rab-finland-amber) !important;\n  color:var(--rab-finland-deep) !important;\n  font-family:var(--rab-finland-body) !important;\n  font-size:15px !important;\n  font-weight:900 !important;\n  line-height:1 !important;\n  box-shadow:none !important;\n  text-transform:none !important;\n  transition:transform .18s var(--rab-finland-ease),background .18s ease,border-color .18s ease !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount button[type=\"submit\"]:hover,\n#rab-finland-home #rab-finland-wpforms-mount input[type=\"submit\"]:hover,\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-submit:hover {\n  transform:translateY(-2px) !important;\n  border-color:var(--rab-finland-amber-strong) !important;\n  background:var(--rab-finland-amber-strong) !important;\n}\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-confirmation-container-full,\n#rab-finland-home #rab-finland-wpforms-mount .wpforms-confirmation-container {\n  margin:0 !important;\n  padding:18px 20px !important;\n  border:1px solid rgba(221,191,119,.35) !important;\n  background:rgba(255,255,255,.06) !important;\n  color:#fff !important;\n  font-size:14px !important;\n}\n\n\/* Desktop CTA borders \u2014 match the white outline used by Why Finland. *\/\n@media (min-width:1024px) {\n  #rab-finland-home .rab-finland-hero-cta.rab-finland-cta--amber,\n  #rab-finland-home .rab-finland-support-cta-button {\n    border-color:#fff;\n  }\n\n  #rab-finland-home .rab-finland-hero-cta.rab-finland-cta--amber:hover,\n  #rab-finland-home .rab-finland-support-cta-button:hover {\n    border-color:#fff;\n  }\n}\n\n\/* ==================== 09. RESPONSIVE ==================== *\/\n@media (max-width:1279px) {\n  #rab-finland-home { --rab-finland-gutter:32px; --rab-finland-section:82px; }\n  #rab-finland-home .rab-finland-program-track { grid-auto-columns:calc((100% - 2*18px)\/2.65); gap:18px; }\n  #rab-finland-home .rab-finland-stories-grid { gap:32px; }\n}\n@media (max-width:1023px) {\n  #rab-finland-home { --rab-finland-gutter:24px; --rab-finland-section:74px; }\n  #rab-finland-home .rab-finland-hero { min-height:650px; }\n  #rab-finland-home .rab-finland-hero-media { position:absolute; inset:0; min-height:0; }\n  #rab-finland-home .rab-finland-hero-media img { object-position:60% center; }\n  #rab-finland-home .rab-finland-hero::before {\n    background:\n      linear-gradient(0deg,rgba(16,37,30,.98) 0%,rgba(16,37,30,.80) 43%,rgba(16,37,30,.26) 78%,rgba(16,37,30,.08) 100%),\n      linear-gradient(90deg,rgba(16,37,30,.46) 0%,rgba(16,37,30,.10) 72%,transparent 100%);\n  }\n  #rab-finland-home .rab-finland-hero-content {\n    min-height:650px;\n    justify-content:flex-end;\n    padding:118px var(--rab-finland-gutter) 60px;\n    background:transparent;\n  }\n  #rab-finland-home .rab-finland-hero h1 { max-width:8ch; }\n  #rab-finland-home .rab-finland-hero-cta { min-width:0; }\n  #rab-finland-home .rab-finland-why-section { padding:58px 0; }\n  #rab-finland-home .rab-finland-why,\n  #rab-finland-home .rab-finland-why-content,\n  #rab-finland-home .rab-finland-why-media { min-height:430px; }\n  #rab-finland-home .rab-finland-why-content { width:min(64%,600px); padding:44px 42px; }\n  #rab-finland-home .rab-finland-why-media img { object-position:67% 50%; }\n  #rab-finland-home .rab-finland-programs-zone { padding-block:68px 72px; }\n  #rab-finland-home .rab-finland-programs-main-head { grid-template-columns:1fr; gap:18px; margin-bottom:42px; }\n  #rab-finland-home .rab-finland-programs-main-rule { display:none; }\n  #rab-finland-home .rab-finland-program-group + .rab-finland-program-group { margin-top:48px; padding-top:44px; }\n  #rab-finland-home .rab-finland-program-track { grid-auto-columns:calc((100% - 18px)\/1.7); }\n  #rab-finland-home .rab-finland-support-grid { grid-template-columns:1fr; gap:20px; }\n  #rab-finland-home .rab-finland-stories-grid { grid-template-columns:1fr; }\n  #rab-finland-home .rab-finland-all-news { align-self:center; }\n  #rab-finland-home .rab-finland-activity-panel { min-height:460px; }\n  #rab-finland-home .rab-finland-consult-grid { grid-template-columns:1fr; gap:28px; }\n  #rab-finland-home .rab-finland-consult-content { position:static; }\n}\n@media (max-width:767px) {\n  #rab-finland-home .rab-finland-mobile-hide-kicker { display:none; }\n  #rab-finland-home { --rab-finland-gutter:24px; --rab-finland-section:56px; }\n  #rab-finland-home .rab-finland-programs-kicker { display:none; }\n  #rab-finland-home .rab-finland-title { font-size:42px; line-height:1.02; }\n  #rab-finland-home .rab-finland-section-title { font-size:35px; line-height:1.04; }\n  #rab-finland-home .rab-finland-body-text { font-size:17px; line-height:1.6; }\n  #rab-finland-home .rab-finland-advisor-grid { gap:12px; }\n  #rab-finland-home .rab-finland-advisor-contact {\n    grid-template-columns:auto minmax(0,1fr);\n    grid-template-areas:\n      \"name name\"\n      \"phone actions\";\n    gap:8px 0;\n    padding:18px;\n    border:1px solid rgba(32,52,42,.16);\n    background:rgba(255,255,255,.28);\n  }\n  #rab-finland-home .rab-finland-advisor-name {\n    grid-area:name;\n    font-size:15px;\n    line-height:1.25;\n    letter-spacing:.015em;\n    white-space:nowrap;\n  }\n  #rab-finland-home .rab-finland-advisor-phone {\n    grid-area:phone;\n    font-size:17px;\n    line-height:1.3;\n    text-align:left;\n    white-space:nowrap;\n  }\n  #rab-finland-home .rab-finland-advisor-actions {\n    grid-area:actions;\n    flex-wrap:nowrap;\n    justify-content:flex-start;\n    min-width:0;\n    padding-top:0;\n    font-size:17px;\n    line-height:1.3;\n    white-space:nowrap;\n  }\n  #rab-finland-home .rab-finland-advisor-actions::before {\n    content:\"\u00b7\";\n    flex:0 0 auto;\n    margin:0 8px;\n    color:rgba(32,52,42,.52);\n  }\n  #rab-finland-home .rab-finland-advisor-actions a + a::before {\n    content:\",\";\n    margin:0 6px 0 0;\n    color:currentColor;\n  }\n  #rab-finland-home .rab-finland-contact-details {\n    gap:16px;\n    padding:18px;\n    border:1px solid rgba(32,52,42,.16);\n    background:rgba(255,255,255,.28);\n  }\n  #rab-finland-home .rab-finland-contact-details a,\n  #rab-finland-home .rab-finland-contact-details div {\n    grid-template-columns:minmax(86px,.72fr) minmax(0,1.28fr);\n    gap:14px;\n    align-items:start;\n    padding:0;\n    border:0;\n  }\n  #rab-finland-home .rab-finland-contact-details span {\n    font-size:12px;\n    line-height:1.3;\n    letter-spacing:.08em;\n  }\n  #rab-finland-home .rab-finland-contact-details strong {\n    min-width:0;\n    font-size:16px;\n    line-height:1.42;\n    overflow-wrap:anywhere;\n  }\n  #rab-finland-home .rab-finland-hero,\n  #rab-finland-home .rab-finland-hero-content {\n    height:calc(100svh - var(--rab-finland-header-h));\n    min-height:0;\n  }\n  #rab-finland-home .rab-finland-hero-media { min-height:0; }\n  #rab-finland-home .rab-finland-hero-media img { object-position:62% center; }\n  #rab-finland-home .rab-finland-hero::before {\n    background:none;\n  }\n  #rab-finland-home .rab-finland-hero-content {\n    --rab-mobile-hero-content-shift:50px;\n    justify-content:flex-start;\n    padding:calc(clamp(180px,21.2svh,194px) + var(--rab-mobile-hero-content-shift)) var(--rab-finland-gutter) 26px;\n  }\n  \/* Mobile Hero readability \u2014 scrim follows ONLY the text block, never the empty image area. *\/\n  #rab-finland-home .rab-finland-hero-content::before { display:none; }\n  #rab-finland-home .rab-finland-hero-text-group {\n    position:relative;\n    z-index:1;\n    padding-top:30px;\n  }\n  #rab-finland-home .rab-finland-hero-text-group::before {\n    position:absolute;\n    z-index:-1;\n    \/* Eyebrow is hidden, but its former space is preserved; scrim starts at the H1. *\/\n    top:30px;\n    right:calc(-1 * var(--rab-finland-gutter));\n    bottom:-16px;\n    left:calc(-1 * var(--rab-finland-gutter));\n    content:\"\";\n    pointer-events:none;\n    background:linear-gradient(90deg,\n      rgba(7,22,17,.52) 0%,\n      rgba(7,22,17,.40) 48%,\n      rgba(7,22,17,.20) 76%,\n      rgba(7,22,17,0) 100%);\n    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 5%,#000 95%,transparent 100%);\n    mask-image:linear-gradient(180deg,transparent 0%,#000 5%,#000 95%,transparent 100%);\n  }\n  #rab-finland-home .rab-finland-hero-eyebrow,\n  #rab-finland-home .rab-finland-hero h1,\n  #rab-finland-home .rab-finland-hero-content p {\n    position:relative;\n    z-index:1;\n  }\n  #rab-finland-home .rab-finland-hero-eyebrow {\n    display:none;\n  }\n  #rab-finland-home .rab-finland-hero h1 {\n    max-width:100%;\n    margin-bottom:12px;\n    font-size:clamp(50px,13vw,58px);\n    line-height:.98;\n    text-shadow:\n      0 2px 2px rgba(5,18,14,.48),\n      0 8px 26px rgba(5,18,14,.62);\n  }\n  #rab-finland-home .rab-finland-hero-content p {\n    max-width:34ch;\n    margin-bottom:0;\n    font-size:18px;\n    font-weight:500;\n    line-height:1.46;\n    text-shadow:\n      0 1px 2px rgba(5,18,14,.72),\n      0 5px 18px rgba(5,18,14,.62);\n  }\n  \/* Mobile Hero CTA anchor \u2014 fixed to the Hero frame, independent of content\/image flow. *\/\n  #rab-finland-home .rab-finland-hero-actions {\n    position:absolute;\n    z-index:3;\n    right:var(--rab-finland-gutter);\n    bottom:128px;\n    left:var(--rab-finland-gutter);\n    width:auto;\n    display:grid;\n    grid-template-columns:1fr;\n    gap:10px;\n    margin:0;\n    padding:0;\n  }\n  #rab-finland-home .rab-finland-hero-cta { min-width:0; }\n\n  \/* Mobile primary CTAs \u2014 keep amber surfaces, add the same white border as Contact. *\/\n  #rab-finland-home .rab-finland-hero-cta.rab-finland-cta--amber,\n  #rab-finland-home .rab-finland-why-cta.rab-finland-cta--amber {\n    border-color:#fff;\n  }\n  #rab-finland-home .rab-finland-hero-cta.rab-finland-cta--amber:hover,\n  #rab-finland-home .rab-finland-why-cta.rab-finland-cta--amber:hover {\n    border-color:#fff;\n  }\n\n  \/* Mobile Hero secondary CTA \u2014 solid Frost surface, black label, white border. *\/\n  #rab-finland-home .rab-finland-hero-cta.rab-finland-cta--outline-light {\n    border-color:#fff !important;\n    background:rgba(251,247,238,.70);\n    color:#111;\n  }\n  #rab-finland-home .rab-finland-hero-cta.rab-finland-cta--outline-light:hover {\n    border-color:#fff !important;\n    background:#fff;\n    color:#111;\n  }\n\n  #rab-finland-home .rab-finland-cta { width:100%; }\n  #rab-finland-home .rab-finland-why-section { padding:48px 0; }\n  #rab-finland-home .rab-finland-why,\n  #rab-finland-home .rab-finland-why-media { min-height:420px; }\n  #rab-finland-home .rab-finland-why::after { inset:9px; }\n  #rab-finland-home .rab-finland-why::before {\n    background:\n      linear-gradient(180deg,\n        rgba(16,37,30,.18) 0%,\n        rgba(16,37,30,.38) 42%,\n        rgba(16,37,30,.86) 100%),\n      linear-gradient(90deg,rgba(16,37,30,.34),rgba(16,37,30,.08));\n  }\n  #rab-finland-home .rab-finland-why-content {\n    width:100%;\n    min-height:420px;\n    align-items:flex-start;\n    justify-content:flex-end;\n    padding:34px 28px 32px;\n    text-align:left;\n  }\n  #rab-finland-home .rab-finland-why .rab-finland-kicker { margin-bottom:10px; font-size:12px; }\n  #rab-finland-home .rab-finland-why .rab-finland-title {\n    max-width:6.5ch;\n    margin:0 0 20px;\n    font-size:clamp(50px,13vw,58px);\n    line-height:.98;\n    letter-spacing:-.045em;\n  }\n  #rab-finland-home .rab-finland-why-content p {\n    max-width:31ch;\n    margin:0 0 20px;\n    font-size:17px;\n    line-height:1.62;\n  }\n  #rab-finland-home .rab-finland-why-cta {\n    width:auto;\n    min-width:154px;\n    margin:0;\n  }\n  #rab-finland-home .rab-finland-why-media img { object-position:60% 42%; }\n  #rab-finland-home .rab-finland-programs-zone { padding-block:56px; }\n  #rab-finland-home .rab-finland-programs-main-head { margin-bottom:34px; }\n  #rab-finland-home .rab-finland-program-group + .rab-finland-program-group { margin-top:40px; padding-top:36px; }\n  #rab-finland-home .rab-finland-program-head { align-items:center; margin-bottom:22px; }\n  #rab-finland-home .rab-finland-program-head h3 { font-size:27px; line-height:1.08; }\n  \/* Mobile-only program heading labels. *\/\n  #rab-finland-home .rab-finland-program-title-desktop { display:none; }\n  #rab-finland-home .rab-finland-program-title-mobile { display:inline; }\n\n  \/* Mobile slider controls \u2014 reverse the desktop dark\/light treatment. *\/\n  #rab-finland-home .rab-finland-program-tools .rab-finland-icon-btn {\n    border-color:var(--rab-finland-deep);\n    background:#fff;\n    color:var(--rab-finland-deep);\n  }\n  #rab-finland-home .rab-finland-program-tools .rab-finland-icon-btn:hover {\n    border-color:var(--rab-finland-deep);\n    background:var(--rab-finland-deep);\n    color:#fff;\n  }\n\n  \/* Hide the small green degree\/type label on mobile cards. *\/\n  #rab-finland-home .rab-finland-degree-label { display:none; }\n  #rab-finland-home .rab-finland-support-body h3 { font-size:27px; }\n  #rab-finland-home .rab-finland-program-track { grid-auto-columns:92.30%; gap:10px; }\n  #rab-finland-home .rab-finland-program-body { padding:16px 16px 24px; }\n  #rab-finland-home .rab-finland-program-card-cta {\n    padding-top:16px;\n  }\n  #rab-finland-home .rab-finland-program-card-cta a,\n  #rab-finland-home .rab-finland-program-card-cta span {\n    width:100%;\n    min-width:0;\n    min-height:48px;\n    padding-inline:18px;\n    font-size:16px;\n  }\n  #rab-finland-home .rab-finland-hot-badge {\n    top:20px;\n    left:-49px;\n    width:164px;\n    min-width:164px;\n    min-height:34px;\n    padding:0 14px;\n  }\n  #rab-finland-home .rab-finland-support-head { margin-bottom:24px; }\n  #rab-finland-home .rab-finland-support-tabs {\n    display:grid;\n    grid-template-columns:1fr 1fr;\n    margin-bottom:18px;\n    border:1px solid var(--rab-finland-line);\n    background:rgba(255,255,255,.24);\n  }\n  #rab-finland-home .rab-finland-support-tab {\n    min-height:68px;\n    padding:10px 12px;\n    font-size:18px;\n    line-height:1.08;\n    text-align:center;\n  }\n  #rab-finland-home .rab-finland-support-tab .rab-finland-support-tab-line {\n    display:block;\n  }\n  #rab-finland-home .rab-finland-support-tab .rab-finland-support-tab-line + .rab-finland-support-tab-line::before {\n    content:none;\n  }\n  #rab-finland-home .rab-finland-support-card .rab-finland-kicker {\n    display:none;\n  }\n  #rab-finland-home .rab-finland-support-grid { display:block; }\n  #rab-finland-home .rab-finland-support-card[data-rab-finland-support-panel] { display:none; }\n  #rab-finland-home .rab-finland-support-card[data-rab-finland-support-panel].is-mobile-active { display:flex; }\n  #rab-finland-home .rab-finland-support-body { padding:24px 24px 38px; }\n  #rab-finland-home .rab-finland-support-description {\n    max-width:none;\n    margin-bottom:24px !important;\n  }\n  #rab-finland-home .rab-finland-support-cta { padding-top:16px; }\n  #rab-finland-home .rab-finland-support-cta-button {\n    width:100%;\n    min-width:0;\n    min-height:48px;\n    padding-inline:18px;\n    font-size:16px;\n  }\n  #rab-finland-home .rab-finland-editorial-head { display:block; margin-bottom:28px; }\n  #rab-finland-home .rab-finland-editorial-head .rab-finland-body-text { margin-top:12px; }\n\n  \/* Mobile activity card \u2014 keep the full 16:9 image separate from the text. *\/\n  #rab-finland-home .rab-finland-activity-panel {\n    height:var(--rab-finland-activity-mobile-height,clamp(430px,112vw,510px));\n    min-height:0;\n    background:var(--rab-finland-deep);\n  }\n  #rab-finland-home .rab-finland-activity-slide {\n    inset:0;\n    height:100%;\n    min-height:0;\n    display:grid;\n    grid-template-rows:auto auto;\n    align-content:start;\n    background:var(--rab-finland-deep);\n  }\n  #rab-finland-home .rab-finland-activity-slide-image {\n    position:relative;\n    inset:auto;\n    width:calc(100% - 28px);\n    aspect-ratio:16 \/ 9;\n    margin:14px 14px 0;\n    overflow:hidden;\n    background:var(--rab-finland-deep);\n  }\n  #rab-finland-home .rab-finland-activity-slide-image::after {\n    display:none;\n  }\n  #rab-finland-home .rab-finland-activity-slide-image img {\n    width:100% !important;\n    height:100% !important;\n    max-height:none !important;\n    object-fit:cover !important;\n    object-position:center center !important;\n    transform:none !important;\n  }\n  #rab-finland-home .rab-finland-activity-slide-content {\n    position:relative;\n    left:auto;\n    right:auto;\n    bottom:auto;\n    max-width:none;\n    min-width:0;\n    padding:20px 22px 14px;\n    background:var(--rab-finland-deep);\n  }\n  #rab-finland-home .rab-finland-activity-slide-content span {\n    margin-bottom:8px;\n  }\n  #rab-finland-home .rab-finland-activity-slide-content strong {\n    max-width:100%;\n    font-size:clamp(28px,8.6vw,38px);\n    line-height:1.02;\n  }\n  #rab-finland-home .rab-finland-activity-slide-content p {\n    max-width:34ch;\n    margin-top:12px;\n    font-size:12px;\n    line-height:1.5;\n  }\n  #rab-finland-home .rab-finland-activity-counter {\n    top:14px;\n    right:14px;\n  }\n  #rab-finland-home .rab-finland-news-item { grid-template-columns:92px 1fr; gap:14px; }\n  #rab-finland-home .rab-finland-news-thumb { width:92px; }\n  #rab-finland-home .rab-finland-consult-form { padding:28px 20px; }\n  #rab-finland-home .rab-finland-form-grid { grid-template-columns:1fr; }\n  #rab-finland-home .rab-finland-field-full { grid-column:auto; }\n  #rab-finland-home .rab-finland-consult-content .rab-finland-section-title {\n    max-width:none;\n    margin-bottom:20px;\n    font-size:clamp(42px,11.5vw,48px);\n    line-height:1;\n    letter-spacing:-.035em;\n    white-space:nowrap;\n  }\n  #rab-finland-home .rab-finland-consult-content > .rab-finland-body-text {\n    max-width:33ch;\n    margin-bottom:26px;\n    font-size:18px;\n    color: var(--rab-finland-muted);\n    line-height:1.55;\n  }\n  #rab-finland-home .rab-finland-consult-info { margin-top:24px; }\n  \/* Mobile: contact details \u2192 form = 3 \u00d7 advisor-card gap (12px \u00d7 3). *\/\n  #rab-finland-home .rab-finland-consult-grid { gap:36px; }\n  #rab-finland-home .rab-finland-contact-details-block {\n    margin-top:24px;\n    padding-top:0;\n  }\n  #rab-finland-home .rab-finland-consult-block-title {\n    margin-bottom:18px;\n    font-size:12px;\n  }\n  #rab-finland-home .rab-finland-form-title {\n    margin-bottom:22px;\n    font-size:32px;\n    line-height:1.08;\n  }\n  #rab-finland-home #rab-finland-wpforms-mount .wpforms-field-label,\n  #rab-finland-home #rab-finland-wpforms-mount .wpforms-field-label-inline,\n  #rab-finland-home #rab-finland-wpforms-mount label {\n    font-size:15px !important;\n  }\n}\n\n\n\/* -------------------- 09A. WHY FINLAND RESPONSIVE -------------------- *\/\n@media (max-width:1023px) {\n  #rab-finland-home .rab-finland-why-section { padding:58px 0; }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready {\n    height:150vh;\n    min-height:900px;\n    padding:0;\n  }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-sticky {\n    min-height:0;\n  }\n  #rab-finland-home .rab-finland-why,\n  #rab-finland-home .rab-finland-why-content,\n  #rab-finland-home .rab-finland-why-media { min-height:430px; }\n  #rab-finland-home .rab-finland-why-content { width:min(64%,600px); padding:44px 42px; }\n  #rab-finland-home .rab-finland-why-media img { object-position:67% 50%; }\n}\n@media (max-width:767px) {\n  #rab-finland-home .rab-finland-why-section { padding:48px 0; }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready {\n    height:142svh;\n    min-height:760px;\n    padding:0;\n  }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-sticky {\n    top:var(--rab-finland-header-h);\n    height:calc(100svh - var(--rab-finland-header-h));\n    min-height:500px;\n  }\n  #rab-finland-home .rab-finland-why,\n  #rab-finland-home .rab-finland-why-media { min-height:420px; }\n  #rab-finland-home .rab-finland-why::after { inset:9px; }\n  #rab-finland-home .rab-finland-why::before {\n    background:\n      linear-gradient(180deg,\n        rgba(16,37,30,.18) 0%,\n        rgba(16,37,30,.42) 40%,\n        rgba(16,37,30,.96) 100%),\n      linear-gradient(90deg,rgba(16,37,30,.34),rgba(16,37,30,.08));\n  }\n  #rab-finland-home .rab-finland-why-content {\n    width:100%;\n    min-height:420px;\n    align-items:flex-start;\n    justify-content:flex-end;\n    padding:34px 28px 32px;\n    text-align:left;\n  }\n  #rab-finland-home .rab-finland-why .rab-finland-kicker { margin-bottom:10px; font-size:12px; }\n  #rab-finland-home .rab-finland-why .rab-finland-title {\n    max-width:9ch;\n    margin:0 0 12px;\n    font-size:clamp(50px,13vw,58px);\n    line-height:.98;\n  }\n  #rab-finland-home .rab-finland-why-content p {\n    max-width:31ch;\n    margin:0 0 20px;\n    font-size:17px;\n    line-height:1.62;\n  }\n  #rab-finland-home .rab-finland-why-cta {\n    width:auto;\n    min-width:154px;\n    margin:0;\n  }\n  #rab-finland-home .rab-finland-why-media img { object-position:60% 42%; }\n  #rab-finland-home .rab-finland-why-progress {\n    right:20px;\n    bottom:18px;\n    width:56px;\n  }\n}\n\n@media (prefers-reduced-motion:reduce) {\n  #rab-finland-home *,\n  #rab-finland-home *::before,\n  #rab-finland-home *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready { height:auto !important; min-height:0 !important; padding:48px 0 !important; }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-sticky { position:relative !important; top:auto !important; height:auto !important; min-height:0 !important; }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why { transform:none !important; clip-path:none !important; }\n  #rab-finland-home .rab-finland-why-section.is-scroll-ready .rab-finland-why-content { opacity:1 !important; transform:none !important; clip-path:none !important; }\n}\n\n\n\/* ==================== 10. HERO \u2192 WHY FINLAND \/ CINEMATIC ENGINE ==================== *\/\n\/* Hero stays as the backing scene; Why Finland wipes over it inside one pinned viewport. *\/\n#rab-finland-home .rab-finland-intro-scene {\n  position:relative;\n  height:168svh;\n  min-height:980px;\n  \/* The wrapper must never repeat the Why Finland image.\n     The image exists only inside .rab-finland-why-scene. *\/\n  background:var(--rab-finland-deep);\n}\n#rab-finland-home .rab-finland-intro-sticky {\n  position:sticky;\n  z-index:1;\n  top:0;\n  width:100%;\n  height:100svh;\n  min-height:0;\n  overflow:hidden;\n  isolation:isolate;\n  background:var(--rab-finland-deep);\n}\n\n\/* Existing Hero becomes the first absolute scene. *\/\n#rab-finland-home .rab-finland-intro-scene .rab-finland-hero {\n  position:absolute;\n  z-index:1;\n  inset:0;\n  left:0;\n  width:100%;\n  max-width:none;\n  height:100%;\n  min-height:0;\n  margin-left:0;\n  opacity:1;\n  transform:translateZ(0) scale(1);\n  transform-origin:center center;\n  will-change:transform,opacity;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-hero-content {\n  height:100%;\n  min-height:0;\n  opacity:1;\n  transform:translate3d(0,0,0);\n  will-change:transform,opacity;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-hero-media,\n#rab-finland-home .rab-finland-intro-scene .rab-finland-hero-media picture {\n  height:100%;\n  min-height:0;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-hero-media img {\n  height:100%;\n}\n\n\/* Why Finland is the second full-bleed cinematic scene. *\/\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-scene {\n  position:absolute;\n  z-index:3;\n  inset:0;\n  width:100%;\n  height:100%;\n  min-height:0;\n  overflow:hidden;\n  isolation:isolate;\n  background:var(--rab-finland-deep);\n  color:#fff;\n  clip-path:none;\n  transform:translate3d(0,100%,0);\n  will-change:transform;\n  backface-visibility:hidden;\n  contain:paint;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-scene::before {\n  position:absolute;\n  z-index:2;\n  inset:0;\n  content:\"\";\n  pointer-events:none;\n  opacity:0;\n  background:none;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-scene::after {\n  position:absolute;\n  z-index:6;\n  inset:14px;\n  content:\"\";\n  pointer-events:none;\n  border:0;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-media {\n  position:absolute;\n  z-index:1;\n  inset:0;\n  width:100%;\n  height:100%;\n  min-height:0;\n  margin:0;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-media img {\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:50% 50%;\n  filter:saturate(.92) contrast(1.04);\n  transform:translate3d(0,2.5%,0) scale(1.12);\n  transform-origin:center center;\n  will-change:transform;\n  backface-visibility:hidden;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-content {\n  position:relative;\n  z-index:4;\n  width:100%;\n  height:100%;\n  min-height:0;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  padding:clamp(34px,5vw,72px) max(var(--rab-finland-gutter),24px);\n  background:\n    radial-gradient(ellipse 48% 42% at 50% 47%,\n      rgba(8,20,16,.58) 0%,\n      rgba(8,20,16,.46) 28%,\n      rgba(8,20,16,.24) 52%,\n      rgba(8,20,16,.07) 72%,\n      rgba(8,20,16,0) 100%);\n  text-align:center;\n  opacity:0;\n  transform:translate3d(0,34px,0) scale(.985);\n  will-change:transform,opacity;\n  backface-visibility:hidden;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why .rab-finland-kicker {\n  display:block;\n  margin:0 0 12px;\n  color:var(--rab-finland-amber);\n  font-size:12px;\n  letter-spacing:.13em;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why .rab-finland-title {\n  max-width:760px;\n  margin:0 0 16px;\n  color:#fff;\n  font-size:clamp(56px,5.2vw,76px);\n  line-height:1.01;\n  letter-spacing:-.045em;\n  text-align:center;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-content p {\n  max-width:650px;\n  margin:0 0 26px;\n  color:rgba(255,255,255,.80);\n  font-size:19px;\n  line-height:1.68;\n  text-align:center;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-cta {\n  width:auto !important;\n  min-width:154px;\n  margin:0 auto;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-cta.rab-finland-cta--amber {\n  border-color:#fff;\n}\n#rab-finland-home .rab-finland-intro-scene .rab-finland-why-cta.rab-finland-cta--amber:hover {\n  border-color:#fff;\n}\n\n@media (max-width:1023px) {\n  #rab-finland-home .rab-finland-intro-scene {\n    height:164svh;\n    min-height:880px;\n  }\n  #rab-finland-home .rab-finland-intro-sticky {\n    min-height:520px;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why .rab-finland-title {\n    font-size:clamp(56px,5.2vw,76px);\n  }\n}\n\n@media (max-width:767px) {\n  #rab-finland-home .rab-finland-intro-scene {\n    height:158svh;\n    min-height:720px;\n  }\n  #rab-finland-home .rab-finland-intro-sticky {\n    top:0;\n    height:100svh;\n    min-height:0;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-hero,\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-hero-content {\n    height:100%;\n    min-height:0;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-scene::after {\n    inset:9px;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-scene::before {\n    background:none;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-media img {\n    object-position:58% 46%;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-content {\n    padding:30px 28px;\n    background:\n      radial-gradient(ellipse 58% 48% at 50% 47%,\n        rgba(8,20,16,.58) 0%,\n        rgba(8,20,16,.46) 28%,\n        rgba(8,20,16,.24) 52%,\n        rgba(8,20,16,.07) 72%,\n        rgba(8,20,16,0) 100%);\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why .rab-finland-kicker {\n    margin-bottom:10px;\n    font-size:12px;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why .rab-finland-title {\n    max-width:10ch;\n    margin-bottom:13px;\n    font-size:clamp(50px,13vw,58px);\n    line-height:.98;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-content p {\n    max-width:32ch;\n    margin-bottom:21px;\n    font-size:17px;\n    line-height:1.62;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-cta {\n    width:auto !important;\n    min-width:150px;\n  }\n}\n\n\/* Keep the next section above any painted scene remnants when sticky releases. *\/\n#rab-finland-home .rab-finland-programs-zone {\n  position:relative;\n  z-index:4;\n}\n\n@media (prefers-reduced-motion:reduce) {\n  #rab-finland-home .rab-finland-intro-scene {\n    height:auto !important;\n    min-height:0 !important;\n    background:transparent;\n  }\n  #rab-finland-home .rab-finland-intro-sticky {\n    position:relative !important;\n    top:auto !important;\n    height:auto !important;\n    min-height:0 !important;\n    overflow:visible;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-hero,\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-scene {\n    position:relative !important;\n    inset:auto !important;\n    height:auto !important;\n    min-height:620px !important;\n    opacity:1 !important;\n    transform:none !important;\n    clip-path:none !important;\n  }\n  #rab-finland-home .rab-finland-intro-scene .rab-finland-why-content {\n    min-height:620px !important;\n    opacity:1 !important;\n    transform:none !important;\n  }\n}\n\n<\/style>\n<main id=\"rab-finland-top\">\n  <!-- ==================== HERO \u2192 WHY FINLAND ==================== -->\n  <section class=\"rab-finland-intro-scene\" data-rab-finland-intro-scene aria-label=\"RAB Finland introduction\">\n    <div class=\"rab-finland-intro-sticky\">\n      <section class=\"rab-finland-hero\" aria-labelledby=\"rab-finland-hero-title\" data-rab-finland-hero-scene>\n        <div class=\"rab-finland-hero-content\">\n          <div class=\"rab-finland-hero-text-group\">\n            <div class=\"rab-finland-hero-eyebrow\">RAB Academy \u00b7 Finland<\/div>\n            <h1 id=\"rab-finland-hero-title\">\u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t<\/h1>\n            <p>Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t.<\/p>\n          <\/div>\n          <div class=\"rab-finland-hero-actions\">\n            <a class=\"rab-finland-cta rab-finland-cta--amber rab-finland-hero-cta\" href=\"#rab-finland-programs\">Xem ngay<\/a>\n            <a class=\"rab-finland-cta rab-finland-cta--outline-light rab-finland-hero-cta\" href=\"#rab-finland-consultation\">Li\u00ean h\u1ec7<\/a>\n          <\/div>\n        <\/div>\n        <div class=\"rab-finland-hero-media\">\n          <picture>\n            <!-- MOBILE HERO IMAGE \u2014 replace ONLY this srcset with the portrait\/mobile image URL. -->\n            <source id=\"rab-finland-hero-mobile-source\" media=\"(max-width:767px)\" srcset=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/08\/Hero_IMG_Mobile-scaled.webp\">\n            <!-- DESKTOP \/ FALLBACK HERO IMAGE -->\n            <img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/08\/Hero_IMG-scaled.webp\" alt=\"Lorem ipsum [6]\" fetchpriority=\"high\">\n          <\/picture>\n        <\/div>\n      <\/section>\n\n      <section class=\"rab-finland-why rab-finland-why-scene\" id=\"rab-finland-why\" aria-labelledby=\"rab-finland-why-title\" data-rab-finland-why-scene aria-hidden=\"true\">\n        <div class=\"rab-finland-why-media\">\n          <picture>\n            <!-- MOBILE WHY FINLAND IMAGE \u2014 replace ONLY this srcset with the portrait\/mobile image URL. -->\n            <source id=\"rab-finland-why-mobile-source\" media=\"(max-width:767px)\" srcset=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/08\/Why_Finland_Picture_Mobile.webp\">\n            <!-- DESKTOP \/ FALLBACK WHY FINLAND IMAGE -->\n            <img src=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/08\/Why_Finland_Picture.webp\" alt=\"Lorem ipsum [7]\" loading=\"eager\" decoding=\"async\">\n          <\/picture>\n        <\/div>\n        <div class=\"rab-finland-why-content\">\n          <span class=\"rab-finland-kicker\">V\u00ec sao ch\u1ecdn Ph\u1ea7n Lan<\/span>\n          <h1 class=\"rab-finland-title\" id=\"rab-finland-hero-title\">Why Finland?<\/h1>\n          <p class=\"rab-finland-body-text\" style=\"margin-top: 1px\">T\u00ecm hi\u1ec3u th\u00eam th\u00f4ng tin v\u1ec1 Ph\u1ea7n Lan, t\u1eeb h\u1ec7 th\u1ed1ng gi\u00e1o d\u1ee5c, chi ph\u00ed, ch\u00ednh s\u00e1ch \u0111\u1ebfn c\u01a1 h\u1ed9i h\u1ecdc t\u1eadp v\u00e0 nh\u1eefng c\u1eadp nh\u1eadt m\u1edbi d\u00e0nh cho sinh vi\u00ean qu\u1ed1c t\u1ebf.<\/p>\n          <div><a class=\"rab-finland-cta rab-finland-cta--amber rab-finland-why-cta\" href=\"\/why-finland\/\">Kh\u00e1m ph\u00e1 Ph\u1ea7n Lan<\/a><\/div>\n        <\/div>\n      <\/section>\n    <\/div>\n  <\/section>\n\n  <!-- ==================== PROGRAMS ==================== -->\n  <section class=\"rab-finland-programs-zone\" id=\"rab-finland-programs\" aria-labelledby=\"rab-finland-programs-title\">\n    <div class=\"rab-finland-shell\">\n      <div class=\"rab-finland-programs-main-head\">\n        <div>\n          <span class=\"rab-finland-kicker rab-finland-programs-kicker\">\u0110ang tuy\u1ec3n<\/span>\n          <h2 class=\"rab-finland-section-title\" id=\"rab-finland-programs-title\">Ch\u01b0\u01a1ng tr\u00ecnh HOT<\/h2>\n        <\/div>\n      <\/div>\n\n      <div class=\"rab-finland-program-group\" aria-labelledby=\"rab-finland-degree-programs-title\">\n        <div class=\"rab-finland-program-head\">\n          <div class=\"rab-finland-program-heading\">\n            <h3 id=\"rab-finland-degree-programs-title\"><span class=\"rab-finland-program-title-desktop\">\u0110\u1ea1i h\u1ecdc &amp; Sau \u0110\u1ea1i h\u1ecdc<\/span><span class=\"rab-finland-program-title-mobile\">\u0110\u1ea1i h\u1ecdc<\/span><\/h3>\n          <\/div>\n          <div class=\"rab-finland-program-tools\">\n            <button class=\"rab-finland-icon-btn\" type=\"button\" data-rab-finland-slider-prev=\"degree\" aria-label=\"Ch\u01b0\u01a1ng tr\u00ecnh tr\u01b0\u1edbc\"><svg viewBox=\"0 0 24 24\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg><\/button>\n            <button class=\"rab-finland-icon-btn\" type=\"button\" data-rab-finland-slider-next=\"degree\" aria-label=\"Ch\u01b0\u01a1ng tr\u00ecnh ti\u1ebfp theo\"><svg viewBox=\"0 0 24 24\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/button>\n          <\/div>\n        <\/div>\n        <div class=\"rab-finland-program-track\" data-rab-finland-program-track=\"degree\" aria-label=\"\u0110\u1ea1i h\u1ecdc v\u00e0 sau \u0111\u1ea1i h\u1ecdc\">\n          <div class=\"rab-finland-program-state\">\u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh...<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"rab-finland-program-group\" id=\"rab-finland-vocational-programs\" aria-labelledby=\"rab-finland-vocational-programs-title\">\n        <div class=\"rab-finland-program-head\">\n          <div class=\"rab-finland-program-heading\">\n            <h3 id=\"rab-finland-vocational-programs-title\"><span class=\"rab-finland-program-title-desktop\">Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1<\/span><span class=\"rab-finland-program-title-mobile\">H\u1ecdc ngh\u1ec1<\/span><\/h3>\n          <\/div>\n          <div class=\"rab-finland-program-tools\">\n            <button class=\"rab-finland-icon-btn\" type=\"button\" data-rab-finland-slider-prev=\"vocational\" aria-label=\"Ch\u01b0\u01a1ng tr\u00ecnh tr\u01b0\u1edbc\"><svg viewBox=\"0 0 24 24\"><path d=\"M15 5l-7 7 7 7\"\/><\/svg><\/button>\n            <button class=\"rab-finland-icon-btn\" type=\"button\" data-rab-finland-slider-next=\"vocational\" aria-label=\"Ch\u01b0\u01a1ng tr\u00ecnh ti\u1ebfp theo\"><svg viewBox=\"0 0 24 24\"><path d=\"M9 5l7 7-7 7\"\/><\/svg><\/button>\n          <\/div>\n        <\/div>\n        <div class=\"rab-finland-program-track\" data-rab-finland-program-track=\"vocational\" aria-label=\"Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1\">\n          <div class=\"rab-finland-program-state\" data-rab-finland-program-state>\u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh...<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ==================== RAB SUPPORT ==================== -->\n  <section class=\"rab-finland-support-pro rab-finland-section\" aria-labelledby=\"rab-finland-support-title\">\n    <div class=\"rab-finland-shell\">\n      <div class=\"rab-finland-support-head\">\n        <div><span class=\"rab-finland-kicker rab-finland-mobile-hide-kicker\">Ph\u01b0\u01a1ng \u00e1n du h\u1ecdc<\/span><h2 class=\"rab-finland-section-title\" id=\"rab-finland-support-title\">C\u00e1ch RAB h\u1ed7 tr\u1ee3<\/h2><\/div>\n      <\/div>\n      <div class=\"rab-finland-support-tabs\" role=\"tablist\" aria-label=\"C\u00e1ch RAB h\u1ed7 tr\u1ee3 b\u1ea1n\">\n        <button class=\"rab-finland-support-tab is-active\" type=\"button\" role=\"tab\" aria-selected=\"true\" data-rab-finland-support-tab=\"needs\"><span class=\"rab-finland-support-tab-line\">Theo<\/span><span class=\"rab-finland-support-tab-line\">Nguy\u1ec7n v\u1ecdng<\/span><\/button>\n        <button class=\"rab-finland-support-tab\" type=\"button\" role=\"tab\" aria-selected=\"false\" data-rab-finland-support-tab=\"partners\"><span class=\"rab-finland-support-tab-line\">Ch\u01b0\u01a1ng tr\u00ecnh<\/span><span class=\"rab-finland-support-tab-line\">\u0110\u1ed1i t\u00e1c<\/span><\/button>\n      <\/div>\n      <div class=\"rab-finland-support-grid\">\n        <article class=\"rab-finland-support-card rab-finland-support-card-needs is-mobile-active\" data-rab-finland-support-panel=\"needs\" role=\"tabpanel\">\n          <div class=\"rab-finland-support-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/08\/Khach-su-kien-Finland-Outlook.webp\" alt=\"Lorem ipsum [36]\" loading=\"lazy\"><\/div>\n          <div class=\"rab-finland-support-body\">\n            <span class=\"rab-finland-kicker\">Theo nguy\u1ec7n v\u1ecdng<\/span>\n            <h3>T\u01b0 v\u1ea5n theo nhu c\u1ea7u<\/h3>\n            <p class=\"rab-finland-support-description\">RAB h\u1ed7 tr\u1ee3 ri\u00eang bi\u1ec7t t\u1eebng tr\u01b0\u1eddng h\u1ee3p \u0111\u1ec3 b\u1ea1n c\u00f3 th\u1ec3 ch\u1ecdn tr\u01b0\u1eddng, ch\u1ecdn ng\u00e0nh h\u1ecdc t\u1ea1i Ph\u1ea7n Lan theo \u00fd th\u00edch.<\/p>\n            <div class=\"rab-finland-support-cta\">\n              <a class=\"rab-finland-cta rab-finland-cta--dark rab-finland-support-cta-button\" href=\"#rab-finland-programs\">B\u1eaft \u0111\u1ea7u<\/a>\n            <\/div>\n          <\/div>\n        <\/article>\n        <article class=\"rab-finland-support-card\" data-rab-finland-support-panel=\"partners\" role=\"tabpanel\">\n          <div class=\"rab-finland-support-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/08\/TAKK.webp\" alt=\"Lorem ipsum [42]\" loading=\"lazy\"><\/div>\n          <div class=\"rab-finland-support-body\">\n            <span class=\"rab-finland-kicker\">Ch\u01b0\u01a1ng tr\u00ecnh \u0110\u1ed1i t\u00e1c<\/span>\n            <h3>Ch\u1ecdn ng\u00e0nh h\u1ea5p d\u1eabn<\/h3>\n            <p class=\"rab-finland-support-description\">\u0110\u0103ng k\u00fd ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc theo danh s\u00e1ch \u201c\u0111\u1ed1i t\u00e1c tr\u1ecdng \u0111i\u1ec3m\u201d c\u1ee7a RAB \u0111\u1ec3 nh\u1eadn \u0111\u01b0\u1ee3c s\u1ef1 h\u1ed7 tr\u1ee3 t\u1ed1t nh\u1ea5t, \u0111\u1ea1t m\u1ee5c ti\u00eau nhanh nh\u1ea5t.<\/p>\n            <div class=\"rab-finland-support-cta\">\n              <a class=\"rab-finland-cta rab-finland-cta--dark rab-finland-support-cta-button\" href=\"#rab-finland-programs\">B\u1eaft \u0111\u1ea7u<\/a>\n            <\/div>\n          <\/div>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ==================== ACTIVITY + NEWS ==================== -->\n  <section class=\"rab-finland-editorial rab-finland-section\" id=\"rab-finland-stories\" aria-labelledby=\"rab-finland-stories-title\">\n    <div class=\"rab-finland-shell\">\n      <div class=\"rab-finland-editorial-head\">\n        <div><span class=\"rab-finland-kicker rab-finland-mobile-hide-kicker\">RAB Academy<\/span><h2 class=\"rab-finland-section-title\" id=\"rab-finland-stories-title\">Ho\u1ea1t \u0111\u1ed9ng &amp; Tin t\u1ee9c<\/h2><\/div>\n      <\/div>\n      <div class=\"rab-finland-stories-grid\">\n        <div class=\"rab-finland-activity-panel\">\n          <div class=\"rab-finland-activity-slider\" data-rab-finland-activity-slider aria-label=\"Ho\u1ea1t \u0111\u1ed9ng c\u1ee7a RAB Academy\">\n            <article class=\"rab-finland-activity-slide is-active\" style=\"--rab-finland-slide-z:5\">\n              <div class=\"rab-finland-activity-slide-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/11\/RAB-Team-2025.webp\" alt=\"Ho\u1ea1t \u0111\u1ed9ng c\u1ee7a RAB Academy\" loading=\"lazy\"><\/div>\n              <div class=\"rab-finland-activity-slide-content\">\n                <span>RAB Academy \u00b7 Finland<\/span>\n                <strong>Partner Visit at RAB Office<\/strong>\n                <p> \u0110\u00f3n ti\u1ebfp \u0111\u1ea1i di\u1ec7n tr\u01b0\u1eddng Ph\u1ea7n Lan \u0111\u1ebfn th\u0103m v\u00e0 trao \u0111\u1ed5i c\u00f4ng vi\u1ec7c t\u1ea1i v\u0103n ph\u00f2ng RAB.<\/p>\n              <\/div>\n            <\/article>\n            <article class=\"rab-finland-activity-slide\" style=\"--rab-finland-slide-z:4\">\n              <div class=\"rab-finland-activity-slide-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2026\/01\/Di-truong_07012026_anh4-1024x651.jpg\" alt=\"Ho\u1ea1t \u0111\u1ed9ng c\u1ee7a RAB Academy\" loading=\"lazy\"><\/div>\n              <div class=\"rab-finland-activity-slide-content\">\n                <span>RAB Academy \u00b7 Finland<\/span>\n                <strong>School visit<\/strong>\n                <p>G\u1eb7p g\u1ee1 v\u00e0 t\u01b0 v\u1ea5n tr\u1ef1c ti\u1ebfp c\u00f9ng h\u1ecdc sinh tr\u01b0\u1eddng Ch\u00e2u V\u0103n Li\u00eam - C\u1ea7n Th\u01a1<\/p>\n              <\/div>\n            <\/article>\n            <article class=\"rab-finland-activity-slide\" style=\"--rab-finland-slide-z:3\">\n              <div class=\"rab-finland-activity-slide-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/10\/Laurea-Exam-RAB-1.webp\" alt=\"Ho\u1ea1t \u0111\u1ed9ng c\u1ee7a RAB Academy\" loading=\"lazy\"><\/div>\n              <div class=\"rab-finland-activity-slide-content\">\n                <span>RAB Academy \u00b7 Finland<\/span>\n                <strong>Laurea Entrance Exam<\/strong>\n                <p>K\u1ef3 thi tuy\u1ec3n sinh ri\u00eang c\u1ee7a Laurea \u0111\u01b0\u1ee3c t\u1ed5 ch\u1ee9c t\u1ea1i TP.HCM.<\/p>\n              <\/div>\n            <\/article>\n            <article class=\"rab-finland-activity-slide\" style=\"--rab-finland-slide-z:2\">\n              <div class=\"rab-finland-activity-slide-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/08\/rab-tuvan.webp\" alt=\"Ho\u1ea1t \u0111\u1ed9ng c\u1ee7a RAB Academy\" loading=\"lazy\"><\/div>\n              <div class=\"rab-finland-activity-slide-content\">\n                <span>RAB Academy \u00b7 Finland<\/span>\n                <strong>School visit<\/strong>\n                <p>G\u1eb7p g\u1ee1 v\u00e0 t\u01b0 v\u1ea5n tr\u1ef1c ti\u1ebfp c\u00f9ng h\u1ecdc sinh tr\u01b0\u1eddng Ten L\u01a1 Man - TP. H\u1ed3 Ch\u00ed Minh.<\/p>\n              <\/div>\n            <\/article>\n            <article class=\"rab-finland-activity-slide\" style=\"--rab-finland-slide-z:1\">\n              <div class=\"rab-finland-activity-slide-image\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/08\/at-Laurea-scaled.webp\" alt=\"Ho\u1ea1t \u0111\u1ed9ng c\u1ee7a RAB Academy\" loading=\"lazy\"><\/div>\n              <div class=\"rab-finland-activity-slide-content\">\n                <span>RAB Academy \u00b7 Finland<\/span>\n                <strong>Finland Partner Visit<\/strong>\n                <p>Chuy\u1ebfn c\u00f4ng t\u00e1c v\u00e0 g\u1eb7p g\u1ee1 \u0111\u1ed1i t\u00e1c t\u1ea1i Ph\u1ea7n Lan.<\/p>\n              <\/div>\n            <\/article>\n          <\/div>\n          <div class=\"rab-finland-activity-counter\" aria-hidden=\"true\"><strong data-rab-finland-activity-current>01<\/strong><span>\/ 05<\/span><\/div>\n        <\/div>\n\n        <div class=\"rab-finland-news-panel\">\n          <div class=\"rab-finland-news-list\" data-rab-finland-stories-list>\n            <a class=\"rab-finland-news-item\" href=\"#\"><span class=\"rab-finland-news-thumb\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/11\/RAB-Team-2025.webp\" alt=\"\"><\/span><span><strong>Lorem ipsum [59]<\/strong><span>Lorem ipsum [60]<\/span><\/span><\/a>\n            <a class=\"rab-finland-news-item\" href=\"#\"><span class=\"rab-finland-news-thumb\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2026\/01\/Di-truong_07012026_anh4-1024x651.jpg\" alt=\"\"><\/span><span><strong>Lorem ipsum [61]<\/strong><span>Lorem ipsum [62]<\/span><\/span><\/a>\n            <a class=\"rab-finland-news-item\" href=\"#\"><span class=\"rab-finland-news-thumb\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/10\/Laurea-Exam-RAB-1.webp\" alt=\"\"><\/span><span><strong>Lorem ipsum [63]<\/strong><span>Lorem ipsum [64]<\/span><\/span><\/a>\n            <a class=\"rab-finland-news-item\" href=\"#\"><span class=\"rab-finland-news-thumb\"><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/08\/at-Laurea-scaled.webp\" alt=\"\"><\/span><span><strong>Lorem ipsum [65]<\/strong><span>Lorem ipsum [66]<\/span><\/span><\/a>\n          <\/div>\n          <a class=\"rab-finland-all-news\" href=\"\/tin-tuc\/\">Xem t\u1ea5t c\u1ea3<\/a>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ==================== CONSULTATION ==================== -->\n  <section class=\"rab-finland-consult rab-finland-section\" id=\"rab-finland-consultation\" aria-labelledby=\"rab-finland-consultation-title\">\n    <div class=\"rab-finland-shell rab-finland-consult-grid\">\n      <div class=\"rab-finland-consult-content\">\n        <h2 class=\"rab-finland-section-title\" id=\"rab-finland-consultation-title\">Li\u00ean h\u1ec7 RAB<\/h2>\n        <p class=\"rab-finland-body-text\">Chia s\u1ebb th\u00f4ng tin ban \u0111\u1ea7u \u0111\u1ec3 RAB hi\u1ec3u m\u1ee5c ti\u00eau, kh\u1ea3 n\u0103ng, n\u0103ng l\u1ef1c t\u00e0i ch\u00ednh v\u00e0 nguy\u1ec7n v\u1ecdng c\u1ee7a b\u1ea1n.\n<\/p>\n        <div class=\"rab-finland-consult-info\">\n          <div class=\"rab-finland-consult-block\">\n            <div class=\"rab-finland-advisor-grid\" aria-label=\"Th\u00f4ng tin t\u01b0 v\u1ea5n vi\u00ean\">\n              <div class=\"rab-finland-advisor-contact\">\n                <strong class=\"rab-finland-advisor-name\">Ms Lisa<\/strong>\n                <a class=\"rab-finland-advisor-phone\" href=\"tel:+84933807436\">+84 933 807 436<\/a>\n                <div class=\"rab-finland-advisor-actions\">\n                  <a href=\"https:\/\/zalo.me\/84933807436\" target=\"_blank\" rel=\"noopener\">Zalo<\/a>\n                  <a href=\"https:\/\/wa.me\/84933807436\" target=\"_blank\" rel=\"noopener\">WhatsApp<\/a>\n                  <a href=\"tel:+84933807436\">Call<\/a>\n                <\/div>\n              <\/div>\n              <div class=\"rab-finland-advisor-contact\">\n                <strong class=\"rab-finland-advisor-name\">Ms Cherry<\/strong>\n                <a class=\"rab-finland-advisor-phone\" href=\"tel:+84865614381\">+84 86 5614 381<\/a>\n                <div class=\"rab-finland-advisor-actions\">\n                  <a href=\"https:\/\/zalo.me\/84865614381\" target=\"_blank\" rel=\"noopener\">Zalo<\/a>\n                  <a href=\"https:\/\/wa.me\/84865614381\" target=\"_blank\" rel=\"noopener\">WhatsApp<\/a>\n                  <a href=\"tel:+84865614381\">Call<\/a>\n                <\/div>\n              <\/div>\n              <div class=\"rab-finland-advisor-contact\">\n                <strong class=\"rab-finland-advisor-name\">Ms Fairy<\/strong>\n                <a class=\"rab-finland-advisor-phone\" href=\"tel:+84353512414\">+84 353 512 414<\/a>\n                <div class=\"rab-finland-advisor-actions\">\n                  <a href=\"https:\/\/zalo.me\/84353512414\" target=\"_blank\" rel=\"noopener\">Zalo<\/a>\n                  <a href=\"https:\/\/wa.me\/84353512414\" target=\"_blank\" rel=\"noopener\">WhatsApp<\/a>\n                  <a href=\"tel:+84353512414\">Call<\/a>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"rab-finland-consult-block rab-finland-contact-details-block\">\n            <div class=\"rab-finland-contact-details\" aria-label=\"Th\u00f4ng tin li\u00ean h\u1ec7 RAB\">\n              <div><span>V\u0103n ph\u00f2ng<\/span><span>S\u1ed1 29 Hu\u1ef3nh V\u0103n B\u00e1nh, Ph\u00fa Nhu\u1eadn, TP. HCM<\/span><\/div>\n              <a href=\"tel:02873033036\"><span>\u0110i\u1ec7n tho\u1ea1i<\/span><span>028 7303 3036<\/span><\/a>\n              <a href=\"mailto:info@rabconsulting.vn\"><span>Email<\/span><span>info@rabconsulting.vn<\/span><\/a>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"rab-finland-consult-form\">\n        <div class=\"rab-finland-form-title\">\u0110\u1ec3 RAB li\u00ean h\u1ec7 b\u1ea1n<\/div>\n        <p class=\"rab-finland-form-intro\"><\/p>\n        <div id=\"rab-finland-wpforms-mount\"><style id=\"wpforms-css-vars-29251\">\n\t\t\t\t#wpforms-29251 {\n\t\t\t\t--wpforms-field-size-input-height: 43px;\n--wpforms-field-size-input-spacing: 15px;\n--wpforms-field-size-font-size: 16px;\n--wpforms-field-size-line-height: 19px;\n--wpforms-field-size-padding-h: 14px;\n--wpforms-field-size-checkbox-size: 16px;\n--wpforms-field-size-sublabel-spacing: 5px;\n--wpforms-field-size-icon-size: 1;\n--wpforms-label-size-font-size: 16px;\n--wpforms-label-size-line-height: 19px;\n--wpforms-label-size-sublabel-font-size: 14px;\n--wpforms-label-size-sublabel-line-height: 17px;\n--wpforms-button-size-font-size: 17px;\n--wpforms-button-size-height: 41px;\n--wpforms-button-size-padding-h: 15px;\n--wpforms-button-size-margin-top: 10px;\n--wpforms-container-shadow-size-box-shadow: none;\n\t\t\t}\n\t\t\t<\/style><div class=\"wpforms-container wpforms-container-full wpforms-render-modern\" id=\"wpforms-29251\"><form id=\"wpforms-form-29251\" class=\"wpforms-validate wpforms-form wpforms-ajax-form\" data-formid=\"29251\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/finland\/wp-json\/wp\/v2\/pages\/15681\" data-token=\"6b0d4edc0854c9a6018a39c4b8878c83\" data-token-time=\"1787528024\"><noscript class=\"wpforms-error-noscript\">Please enable JavaScript in your browser to complete this form.<\/noscript><div id=\"wpforms-error-noscript\" style=\"display: none;\">Please enable JavaScript in your browser to complete this form.<\/div><div class=\"wpforms-field-container\"><div id=\"wpforms-29251-field_1-container\" class=\"wpforms-field wpforms-field-text\" data-field-type=\"text\" data-field-id=\"1\"><label class=\"wpforms-field-label\" for=\"wpforms-29251-field_1\">H\u1ecd v\u00e0 t\u00ean <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-29251-field_1\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][1]\" aria-errormessage=\"wpforms-29251-field_1-error\" required><\/div>\t\t<div id=\"wpforms-29251-field_2-container\"\n\t\t\tclass=\"wpforms-field wpforms-field-text\"\n\t\t\tdata-field-type=\"text\"\n\t\t\tdata-field-id=\"2\"\n\t\t\t>\n\t\t\t<label class=\"wpforms-field-label\" for=\"wpforms-29251-field_2\" >Email nhu WhatsApp<\/label>\n\t\t\t<input type=\"text\" id=\"wpforms-29251-field_2\" class=\"wpforms-field-medium\" name=\"wpforms[fields][2]\" >\n\t\t<\/div>\n\t\t<div id=\"wpforms-29251-field_3-container\" class=\"wpforms-field wpforms-field-phone\" data-field-type=\"phone\" data-field-id=\"3\"><label class=\"wpforms-field-label\" for=\"wpforms-29251-field_3\">S\u1ed1 Phone \/ Zalo \/ WhatsApp <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"tel\" id=\"wpforms-29251-field_3\" class=\"wpforms-field-medium wpforms-field-required wpforms-smart-phone-field\" data-rule-smart-phone-field=\"true\" name=\"wpforms[fields][3]\" aria-label=\"S\u1ed1 Phone \/ Zalo \/ WhatsApp\" aria-errormessage=\"wpforms-29251-field_3-error\" required><\/div><div id=\"wpforms-29251-field_4-container\" class=\"wpforms-field wpforms-field-email\" data-field-type=\"email\" data-field-id=\"4\"><label class=\"wpforms-field-label\" for=\"wpforms-29251-field_4\">Email <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"email\" id=\"wpforms-29251-field_4\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][4]\" spellcheck=\"false\" aria-errormessage=\"wpforms-29251-field_4-error\" required><\/div><div id=\"wpforms-29251-field_5-container\" class=\"wpforms-field wpforms-field-textarea\" data-field-type=\"textarea\" data-field-id=\"5\"><label class=\"wpforms-field-label\" for=\"wpforms-29251-field_5\">M\u00f4 t\u1ea3 nhu c\u1ea7u c\u1ee7a b\u1ea1n<\/label><textarea id=\"wpforms-29251-field_5\" class=\"wpforms-field-medium\" name=\"wpforms[fields][5]\" aria-errormessage=\"wpforms-29251-field_5-error\" ><\/textarea><\/div><script>\n\t\t\t\t( function() {\n\t\t\t\t\tconst style = document.createElement( 'style' );\n\t\t\t\t\tstyle.appendChild( document.createTextNode( '#wpforms-29251-field_2-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-29251-field_2-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-29251-field_2-container label { counter-increment: none; }' ) );\n\t\t\t\t\tdocument.head.appendChild( style );\n\t\t\t\t\tdocument.currentScript?.remove();\n\t\t\t\t} )();\n\t\t\t<\/script><\/div><!-- .wpforms-field-container --><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"29251\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/pages\/15681\"><input type=\"hidden\" name=\"url_referer\" value=\"\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-29251\" class=\"wpforms-submit\" data-alt-text=\"Sending...\" data-submit-text=\"Submit\" aria-live=\"assertive\" value=\"wpforms-submit\">Submit<\/button><img decoding=\"async\" src=\"https:\/\/rabacademy.vn\/finland\/wp-content\/plugins\/wpforms\/assets\/images\/submit-spin.svg\" class=\"wpforms-submit-spinner\" style=\"display: none;\" width=\"26\" height=\"26\" alt=\"Loading\"><\/div><\/form><\/div>  <!-- .wpforms-container --><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n<\/main>\n\n<!-- ==================== 11. JAVASCRIPT \/ DATA + INTERACTIONS ==================== -->\n<script>\n    (() => {\n      const root = document.getElementById('rab-finland-home');\n      if (!root) return;\n\n      \/\/ ==================== 11A. STICKY \/ ELEMENTOR GUARD ====================\n      \/\/ Elementor often applies overflow:hidden\/clip to a parent container.\n      \/\/ That parent becomes the sticky containing block and leaves the empty\n      \/\/ green tail seen between Hero and Why Finland. Mark only blocking\n      \/\/ ancestors; the scoped CSS above releases their overflow.\n      const releaseRabStickyAncestors = () => {\n        let ancestor = root.parentElement;\n        while (ancestor && ancestor !== document.body && ancestor !== document.documentElement) {\n          const styles = window.getComputedStyle(ancestor);\n          const blocksSticky = [styles.overflow, styles.overflowX, styles.overflowY]\n            .some(value => \/^(auto|scroll|hidden|clip)$\/.test(value));\n          if (blocksSticky) ancestor.classList.add('rab-finland-sticky-ancestor');\n          ancestor = ancestor.parentElement;\n        }\n      };\n\n      releaseRabStickyAncestors();\n\n      \/\/ ==================== 11B. HERO \u2192 WHY CINEMATIC ====================\n      \/\/ HERO \u2192 WHY FINLAND \u2014 one pinned cinematic scene.\n      \/\/ Scrolling does not move to a second hero immediately: the first hero stays pinned\n      \/\/ while the Why Finland scene wipes upward, the image settles, then centered content reveals.\n      const initRabIntroCinematic = () => {\n        const scene = root.querySelector('[data-rab-finland-intro-scene]');\n        const hero = scene?.querySelector('[data-rab-finland-hero-scene]');\n        const heroContent = hero?.querySelector('.rab-finland-hero-content');\n        const heroImage = hero?.querySelector('.rab-finland-hero-media img');\n        const why = scene?.querySelector('[data-rab-finland-why-scene]');\n        const whyContent = why?.querySelector('.rab-finland-why-content');\n        const whyImage = why?.querySelector('.rab-finland-why-media img');\n        if (!scene || !hero || !heroContent || !heroImage || !why || !whyContent || !whyImage || scene.dataset.rabIntroReady === 'true') return;\n\n        scene.dataset.rabIntroReady = 'true';\n\n        const reducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;\n        if (reducedMotion) {\n          why.removeAttribute('aria-hidden');\n          return;\n        }\n\n        scene.classList.add('is-scroll-ready');\n\n        \/\/ This image is the very next full-screen scene. Decode it before the wipe starts\n        \/\/ instead of waiting until the user reaches the transition.\n        const warmWhyImage = () => {\n          if (typeof whyImage.decode === 'function') whyImage.decode().catch(() => {});\n        };\n        if (whyImage.complete) warmWhyImage();\n        else whyImage.addEventListener('load', warmWhyImage, { once:true });\n\n        const clamp = value => Math.min(1, Math.max(0, value));\n        const smooth = (from, to, value) => {\n          const t = clamp((value - from) \/ Math.max(.0001, to - from));\n          return t * t * (3 - 2 * t);\n        };\n\n        let ticking = false;\n        let sceneStartY = 0;\n        let travel = 1;\n        let lastWhyActive = null;\n        let lastHeroHidden = null;\n\n        \/\/ Layout reads happen on init \/ resize only, not on every scroll frame.\n        const measure = () => {\n          const viewportH = window.innerHeight || document.documentElement.clientHeight || 800;\n          const scrollY = window.scrollY || document.documentElement.scrollTop || 0;\n          const rect = scene.getBoundingClientRect();\n          sceneStartY = scrollY + rect.top;\n          travel = Math.max(1, scene.offsetHeight - viewportH);\n        };\n\n        const render = () => {\n          ticking = false;\n\n          const scrollY = window.scrollY || document.documentElement.scrollTop || 0;\n          const progress = clamp((scrollY - sceneStartY) \/ travel);\n\n          \/*\n           * Keep the same timing, but use transform-only full-screen reveal.\n           * This avoids repainting a 100vw \u00d7 100vh clip-path on every frame.\n           *\/\n          const heroLeave = smooth(.06, .34, progress);\n          const whyOpen = smooth(.10, .42, progress);\n          const whyContentIn = smooth(.24, .48, progress);\n\n          const heroScale = 1 + (.025 * heroLeave);\n          const heroContentOpacity = 1 - smooth(.07, .27, progress);\n          const heroContentY = -28 * heroLeave;\n\n          const whyRevealY = 100 * (1 - whyOpen);\n          const whyImageScale = 1.085 - (.055 * whyOpen);\n          const whyImageY = 1.4 * (1 - whyOpen) - (.35 * whyContentIn);\n          const whyContentOpacity = whyContentIn;\n          const whyContentY = 28 * (1 - whyContentIn);\n          const whyContentScale = .99 + (.01 * whyContentIn);\n\n          \/\/ Write only to the elements that actually animate. No inherited CSS-variable cascade.\n          hero.style.transform = `translateZ(0) scale(${heroScale.toFixed(4)})`;\n          heroContent.style.opacity = heroContentOpacity.toFixed(3);\n          heroContent.style.transform = `translate3d(0,${heroContentY.toFixed(1)}px,0)`;\n\n          why.style.transform = `translate3d(0,${whyRevealY.toFixed(2)}%,0)`;\n          whyImage.style.transform = `translate3d(0,${whyImageY.toFixed(2)}%,0) scale(${whyImageScale.toFixed(4)})`;\n          whyContent.style.opacity = whyContentOpacity.toFixed(3);\n          whyContent.style.transform = `translate3d(0,${whyContentY.toFixed(1)}px,0) scale(${whyContentScale.toFixed(4)})`;\n\n          \/\/ Do not mutate ARIA \/ visibility attributes every frame; only on threshold changes.\n          const whyActive = progress >= .36;\n          if (whyActive !== lastWhyActive) {\n            lastWhyActive = whyActive;\n            why.setAttribute('aria-hidden', whyActive ? 'false' : 'true');\n            hero.setAttribute('aria-hidden', whyActive ? 'true' : 'false');\n          }\n\n          \/\/ Once Why Finland completely covers Hero, stop compositing the hidden full-screen Hero layer.\n          const heroHidden = progress >= .44;\n          if (heroHidden !== lastHeroHidden) {\n            lastHeroHidden = heroHidden;\n            hero.style.visibility = heroHidden ? 'hidden' : 'visible';\n          }\n        };\n\n        const requestRender = () => {\n          if (ticking) return;\n          ticking = true;\n          requestAnimationFrame(render);\n        };\n\n        const onResize = () => {\n          measure();\n          requestRender();\n        };\n\n        measure();\n        window.addEventListener('scroll', requestRender, { passive:true });\n        window.addEventListener('resize', onResize, { passive:true });\n        window.addEventListener('load', onResize, { once:true });\n        document.fonts?.ready?.then(onResize).catch?.(() => {});\n        requestRender();\n      };\n\n      initRabIntroCinematic();\n\n      \/* ==================== 11C. SITE CONFIGURATION ====================\n         1) Live homepage \u01b0u ti\u00ean d\u1eef li\u1ec7u PHP bootstrap \u0111\u1ec3 render ngay.\n         2) REST endpoint ch\u1ec9 l\u00e0 fallback khi bootstrap kh\u00f4ng c\u00f3.\n         3) Degree gi\u1eef endpoint ri\u00eang khi c\u00f3; News d\u00f9ng WordPress REST API.\n      *\/\n      const CONFIG = {\n        programs: {\n          degreeEndpoint: '',\n          vocational: {\n            endpoint: 'https:\/\/rabacademy.vn\/finland\/wp-json\/rab-finland\/v1\/vocational-programs',\n            fallbackEndpoint: 'https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/posts',\n            categoryId: 70,\n            hotTagId: 91,\n            schoolTags: {\n              116: 'TAKK',\n              120: 'TREDU',\n              122: 'TurunAKK'\n            },\n            displayLimit: 8,\n            fallbackFetchLimit: 24\n          }\n        },\n        news: {\n          endpoint: 'https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/posts',\n          categoryIds: [],\n          tagIds: [],\n          perPage: 4\n        }\n      };\n\n\n      \/\/ ==================== 11D. PROGRAM DATA \/ WORDPRESS REST ====================\n      \/\/ PROGRAMS \u2014 WordPress REST rules\n      \/\/ Vocational:\n      \/\/ - Category 70 is REQUIRED to appear.\n      \/\/ - Tag 91 = HOT => always moves to the front.\n      \/\/ - rab_priority \/ priority \/ thu_tu: 0 = top, 1 = middle, 2 = bottom.\n      \/\/ - School tags: TAKK 116, TREDU 120, TurunAKK 122.\n      \/\/ - Only the first 8 programs after sorting are displayed.\n      \/\/ ========================================================================\n\n      const escapeHtml = (value = '') => String(value)\n        .replaceAll('&', '&amp;')\n        .replaceAll('<', '&lt;')\n        .replaceAll('>', '&gt;')\n        .replaceAll('\"', '&quot;')\n        .replaceAll(\"'\", '&#039;');\n\n      \/\/ Only allow normal web URLs from REST\/API data before using them in href\/src.\n      \/\/ This blocks javascript:, data:, vbscript: and malformed schemes while preserving\n      \/\/ absolute, protocol-relative and normal relative WordPress URLs.\n      const safeUrl = (value = '', fallback = '#') => {\n        const raw = String(value ?? '').trim();\n        if (!raw) return fallback;\n        try {\n          const parsed = new URL(raw, window.location.href);\n          if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') return fallback;\n          return raw;\n        } catch (_) {\n          return fallback;\n        }\n      };\n\n      const decodeHtmlCodePoint = (raw, radix) => {\n        const code = Number.parseInt(String(raw), radix);\n        return Number.isInteger(code) && code >= 0 && code <= 0x10FFFF\n          ? String.fromCodePoint(code)\n          : '\\uFFFD';\n      };\n\n      const decodeHtmlEntities = (value = '') => String(value)\n        .replace(\/&#(\\d+);\/g, (_, code) => decodeHtmlCodePoint(code, 10))\n        .replace(\/&#x([0-9a-f]+);\/gi, (_, code) => decodeHtmlCodePoint(code, 16))\n        .replace(\/&(amp|lt|gt|quot|apos|nbsp);\/gi, entity => ({\n          '&amp;':'&', '&lt;':'<', '&gt;':'>', '&quot;':'\"', '&apos;':\"'\", '&nbsp;':' '\n        })[entity.toLowerCase()] || entity);\n\n      \/\/ Convert WordPress rendered titles to plain text without assigning untrusted\n      \/\/ API content to innerHTML. Any decoded angle brackets are escaped again at render time.\n      const stripHtml = (value = '') => decodeHtmlEntities(\n        String(value).replace(\/<[^>]*>\/g, ' ')\n      ).replace(\/\\s+\/g, ' ').trim();\n\n\n\n\n\n      const getPriority = (post = {}) => {\n        const raw =\n          post?.rab_priority ??\n          post?.priority ??\n          post?.thu_tu ??\n          post?.meta?.rab_priority ??\n          post?.meta?.priority ??\n          post?.meta?.thu_tu ??\n          post?.acf?.rab_priority ??\n          post?.acf?.priority ??\n          post?.acf?.thu_tu ??\n          1;\n        const value = Number.parseInt(raw, 10);\n        return [0,1,2].includes(value) ? value : 1;\n      };\n\n      const getSchoolFromPost = (post = {}, config = {}) => {\n        const direct = post?.school || post?.school_name || post?.acf?.school || post?.acf?.school_name;\n        if (direct) return String(direct);\n\n        const title = stripHtml(post?.title?.rendered || post?.title || '');\n        const titleSchool = title.match(\/\\(([^()]+)\\)\\s*(?:[-\u2013\u2014]|$)\/);\n        if (titleSchool?.[1]) return titleSchool[1].trim();\n\n        const tags = Array.isArray(post?.tags) ? post.tags.map(Number) : [];\n        for (const [tagId, label] of Object.entries(config.schoolTags || {})) {\n          if (tags.includes(Number(tagId))) return label;\n        }\n        return '\u0110ang c\u1eadp nh\u1eadt';\n      };\n\n      const getIntakeFromPost = (post = {}) => {\n        const direct =\n          post?.intake ||\n          post?.start_date ||\n          post?.intake_date ||\n          post?.acf?.intake ||\n          post?.acf?.start_date;\n        if (direct) return String(direct);\n\n        const title = stripHtml(post?.title?.rendered || post?.title || '');\n        const match = title.match(\/l\u1edbp\\s*th\u00e1ng\\s*(0?[1-9]|1[0-2])\\s*\\\/\\s*(20\\d{2})(?:\\s*[-\u2013\u2014]\\s*(?:th\u00e1ng\\s*)?(0?[1-9]|1[0-2])\\s*\\\/\\s*(20\\d{2}))?\/i);\n        if (!match) return '\u0110ang c\u1eadp nh\u1eadt';\n\n        const start = `${String(match[1]).padStart(2,'0')}\/${match[2]}`;\n        if (!match[3] || !match[4]) return start;\n        const finish = `${String(match[3]).padStart(2,'0')}\/${match[4]}`;\n        return `${start} \u2013 ${finish}`;\n      };\n\n      const getFeaturedImageFromPost = (post = {}) => {\n        const media = post?._embedded?.['wp:featuredmedia']?.[0];\n        return (\n          media?.media_details?.sizes?.large?.source_url ||\n          media?.media_details?.sizes?.medium_large?.source_url ||\n          media?.media_details?.sizes?.medium?.source_url ||\n          media?.source_url ||\n          post?.image ||\n          ''\n        );\n      };\n\n      const normalizeVocationalItem = (item = {}, config = {}, fromWpPost = false) => {\n        if (!fromWpPost) {\n          return {\n            title: String(item?.title || 'Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc ngh\u1ec1'),\n            link: item?.link || '#',\n            image: item?.image || '',\n            school: item?.school || '\u0110ang c\u1eadp nh\u1eadt',\n            intake: item?.intake || '\u0110ang c\u1eadp nh\u1eadt',\n            level: item?.level || 'Vocational',\n            hot: Boolean(item?.hot),\n            priority: Number.isFinite(Number(item?.priority)) ? Number(item.priority) : 1,\n            date: item?.date || item?.date_gmt || ''\n          };\n        }\n\n        const tags = Array.isArray(item?.tags) ? item.tags.map(Number) : [];\n        return {\n          title: stripHtml(item?.title?.rendered || item?.title || 'Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc ngh\u1ec1'),\n          link: item?.link || '#',\n          image: getFeaturedImageFromPost(item),\n          school: getSchoolFromPost(item, config),\n          intake: getIntakeFromPost(item),\n          level: item?.level || item?.acf?.level || 'Vocational',\n          hot: tags.includes(Number(config.hotTagId)),\n          priority: getPriority(item),\n          date: item?.date || item?.date_gmt || ''\n        };\n      };\n\n      const renderVocationalCards = (track, items, limit) => {\n        const visible = items.slice(0, Number(limit || 8));\n        if (!visible.length) {\n          track.innerHTML = '<div class=\"rab-finland-program-state\">Hi\u1ec7n ch\u01b0a c\u00f3 ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc ngh\u1ec1 \u0111ang tuy\u1ec3n.<\/div>';\n          return;\n        }\n\n        track.innerHTML = visible.map(item => {\n          const title = String(item?.title || 'Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc ngh\u1ec1');\n          const link = safeUrl(item?.link, '#');\n          const image = safeUrl(item?.image, 'https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/08\/rab-tuvan.webp');\n          const school = item?.school || '\u0110ang c\u1eadp nh\u1eadt';\n          const intake = item?.intake || '\u0110ang c\u1eadp nh\u1eadt';\n          const hotClass = item?.hot ? ' is-hot' : '';\n          const hotBadge = item?.hot ? '<span class=\"rab-finland-hot-badge\"><strong>HOT<\/strong><\/span>' : '';\n\n          return `\n            <article class=\"rab-finland-program-card${hotClass}\">\n              <a href=\"${escapeHtml(link)}\" style=\"display:block;height:100%;text-decoration:none;color:inherit\">\n                <div class=\"rab-finland-program-thumb\">\n                  ${hotBadge}\n                  <img src=\"${escapeHtml(image)}\" alt=\"${escapeHtml(title)}\" loading=\"lazy\" decoding=\"async\">\n                <\/div>\n                <div class=\"rab-finland-program-body\">\n                  <span class=\"rab-finland-degree-label\">H\u1ecdc Ngh\u1ec1<\/span>\n                  <h4 class=\"rab-finland-program-name\">${escapeHtml(title)}<\/h4>\n                  <div class=\"rab-finland-degree-meta\">\n                    <div class=\"rab-finland-degree-meta-row\"><span>Tr\u01b0\u1eddng<\/span><strong>${escapeHtml(school)}<\/strong><\/div>\n                    <div class=\"rab-finland-degree-meta-row\"><span>B\u1eadc h\u1ecdc<\/span><strong>${escapeHtml(item?.level || 'Vocational')}<\/strong><\/div>\n                    <div class=\"rab-finland-degree-meta-row\"><span>Intake<\/span><strong>${escapeHtml(intake)}<\/strong><\/div>\n                  <\/div>\n                  <div class=\"rab-finland-program-card-cta\"><span>Xem ch\u01b0\u01a1ng tr\u00ecnh<\/span><\/div>\n                <\/div>\n              <\/a>\n            <\/article>`;\n        }).join('');\n        track.scrollLeft = 0;\n      };\n\n      const fetchVocationalFallback = async (config) => {\n        const url = new URL(config.fallbackEndpoint, window.location.href);\n        url.searchParams.set('categories', String(config.categoryId));\n        url.searchParams.set('per_page', String(config.fallbackFetchLimit || 24));\n        url.searchParams.set('orderby', 'date');\n        url.searchParams.set('order', 'desc');\n        url.searchParams.set('_embed', 'wp:featuredmedia');\n\n        const res = await fetch(url.toString(), {\n          mode:'cors',\n          credentials:'omit',\n          headers:{ 'Accept':'application\/json' }\n        });\n        if (!res.ok) throw new Error(`Fallback HTTP ${res.status}`);\n        const posts = await res.json();\n        if (!Array.isArray(posts)) return [];\n\n        return posts\n          .filter(post => Array.isArray(post?.categories) && post.categories.map(Number).includes(Number(config.categoryId)))\n          .map(post => normalizeVocationalItem(post, config, true))\n          .sort((a,b) => {\n            if (a.hot !== b.hot) return Number(b.hot) - Number(a.hot);\n            if (a.priority !== b.priority) return a.priority - b.priority;\n            return new Date(b.date || 0).getTime() - new Date(a.date || 0).getTime();\n          });\n      };\n\n      const renderVocationalPrograms = async () => {\n        const config = CONFIG.programs.vocational;\n        const track = root.querySelector('[data-rab-finland-program-track=\"vocational\"]');\n        if (!track) return;\n\n        \/\/ 0) Live WordPress homepage: PHP has already embedded the 8 sorted cards\n        \/\/ into window.RAB_FINLAND_PROGRAMS during server-side rendering.\n        \/\/ This path has no extra REST wait and should paint immediately.\n        if (Array.isArray(window.RAB_FINLAND_PROGRAMS)) {\n          const items = window.RAB_FINLAND_PROGRAMS\n            .map(item => normalizeVocationalItem(item, config, false))\n            .sort((a,b) => {\n              if (a.hot !== b.hot) return Number(b.hot) - Number(a.hot);\n              if (a.priority !== b.priority) return a.priority - b.priority;\n              return new Date(b.date || 0).getTime() - new Date(a.date || 0).getTime();\n            });\n\n          renderVocationalCards(track, items, config.displayLimit);\n          return;\n        }\n\n        \/\/ Local file preview \/ missing PHP bootstrap: use API fallback.\n        track.innerHTML = '<div class=\"rab-finland-program-state\" data-rab-finland-program-state>\u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh...<\/div>';\n\n        \/\/ 1) Try the lightweight custom endpoint when available.\n        try {\n          if (config?.endpoint) {\n            const res = await fetch(config.endpoint, {\n              mode:'cors',\n              credentials:'omit',\n              headers:{ 'Accept':'application\/json' }\n            });\n            if (!res.ok) throw new Error(`Custom HTTP ${res.status}`);\n            const payload = await res.json();\n            if (!Array.isArray(payload)) throw new Error('Custom endpoint payload is not an array');\n\n            const items = payload\n              .map(item => normalizeVocationalItem(item, config, false))\n              .sort((a,b) => {\n                if (a.hot !== b.hot) return Number(b.hot) - Number(a.hot);\n                if (a.priority !== b.priority) return a.priority - b.priority;\n                return new Date(b.date || 0).getTime() - new Date(a.date || 0).getTime();\n              });\n\n            renderVocationalCards(track, items, config.displayLimit);\n            return;\n          }\n        } catch (customErr) {\n          console.info('RAB Finland: custom vocational endpoint unavailable; using WP REST fallback.', customErr);\n        }\n\n        \/\/ 2) Always fall back to the standard WordPress REST API.\n        try {\n          const items = await fetchVocationalFallback(config);\n          renderVocationalCards(track, items, config.displayLimit);\n        } catch (fallbackErr) {\n          console.warn('RAB Finland vocational fallback API:', fallbackErr);\n          track.innerHTML = '<div class=\"rab-finland-program-state\">Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c ch\u01b0\u01a1ng tr\u00ecnh. Vui l\u00f2ng th\u1eed l\u1ea1i sau.<\/div>';\n        }\n      };\n\n      \/\/ Degree section keeps the optional existing endpoint for now.\n      const renderDegreePrograms = async (endpoint) => {\n        const track = root.querySelector('[data-rab-finland-program-track=\"degree\"]');\n        if (!track) return;\n        if (!endpoint) {\n          track.innerHTML = '<div class=\"rab-finland-program-state\">\u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh...<\/div>';\n          return;\n        }\n\n        try {\n          const res = await fetch(endpoint, { credentials:'same-origin' });\n          if (!res.ok) throw new Error(`HTTP ${res.status}`);\n          const payload = await res.json();\n          const items = Array.isArray(payload) ? payload : (payload.items || payload.data || []);\n          if (!items.length) {\n            track.innerHTML = '<div class=\"rab-finland-program-state\">Hi\u1ec7n ch\u01b0a c\u00f3 ch\u01b0\u01a1ng tr\u00ecnh \u0111ang tuy\u1ec3n.<\/div>';\n            return;\n          }\n\n          track.innerHTML = items.map((item, index) => {\n            const school = stripHtml(item.school || item.school_name || item.university || `Lorem ipsum [API-degree-${index}-school]`);\n            const name = stripHtml(item.name || item.program || item.title?.rendered || item.title || `Lorem ipsum [API-degree-${index}-name]`);\n            const intake = stripHtml(item.intake || item.start_date || 'mm\/yyyy');\n            const image = safeUrl(item.image || item.thumbnail || item.featured_image, 'https:\/\/rabacademy.vn\/wp-content\/uploads\/2025\/08\/at-Laurea-scaled.webp');\n            const url = safeUrl(item.url || item.link, '#');\n            const rawLevel = stripHtml(item.level || item.degree_type || item.study_level || '');\n            const inferredLevel = \/master\/i.test(String(rawLevel || name)) ? 'Master' : 'Bachelor';\n            const levelVi = inferredLevel === 'Master' ? 'Th\u1ea1c s\u0129' : 'C\u1eed nh\u00e2n';\n\n            return `<article class=\"rab-finland-program-card\"><a href=\"${escapeHtml(url)}\" style=\"display:block;height:100%;text-decoration:none;color:inherit\"><div class=\"rab-finland-program-thumb\"><img src=\"${escapeHtml(image)}\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div><div class=\"rab-finland-program-body\"><span class=\"rab-finland-degree-label\">${escapeHtml(levelVi)}<\/span><h3 class=\"rab-finland-program-name\">${escapeHtml(name)}<\/h3><div class=\"rab-finland-degree-meta\"><div class=\"rab-finland-degree-meta-row\"><span>Tr\u01b0\u1eddng<\/span><strong>${escapeHtml(school)}<\/strong><\/div><div class=\"rab-finland-degree-meta-row\"><span>B\u1eadc h\u1ecdc<\/span><strong>${escapeHtml(inferredLevel)}<\/strong><\/div><div class=\"rab-finland-degree-meta-row\"><span>Intake<\/span><strong>${escapeHtml(intake)}<\/strong><\/div><\/div><div class=\"rab-finland-program-card-cta\"><span>Xem ch\u01b0\u01a1ng tr\u00ecnh<\/span><\/div><\/div><\/a><\/article>`;\n          }).join('');\n          track.scrollLeft = 0;\n        } catch (err) {\n          console.warn('RAB Finland degree API:', err);\n          track.innerHTML = '<div class=\"rab-finland-program-state\">Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c ch\u01b0\u01a1ng tr\u00ecnh. Vui l\u00f2ng th\u1eed l\u1ea1i sau.<\/div>';\n        }\n      };\n\n      renderDegreePrograms(CONFIG.programs.degreeEndpoint);\n      renderVocationalPrograms();\n\n      \/\/ ==================== 11E. SUPPORT INTERACTIONS ====================\n      \/\/ Mobile support tabs: desktop keeps both cards visible; mobile shows one panel at a time.\n      const supportTabs = Array.from(root.querySelectorAll('[data-rab-finland-support-tab]'));\n      const supportPanels = Array.from(root.querySelectorAll('[data-rab-finland-support-panel]'));\n      const activateSupportTab = (name) => {\n        supportTabs.forEach(tab => {\n          const active = tab.getAttribute('data-rab-finland-support-tab') === name;\n          tab.classList.toggle('is-active', active);\n          tab.setAttribute('aria-selected', active ? 'true' : 'false');\n        });\n        supportPanels.forEach(panel => {\n          panel.classList.toggle('is-mobile-active', panel.getAttribute('data-rab-finland-support-panel') === name);\n        });\n      };\n      supportTabs.forEach(tab => {\n        tab.addEventListener('click', () => activateSupportTab(tab.getAttribute('data-rab-finland-support-tab')));\n      });\n\n      \/\/ ==================== 11F. PROGRAM CAROUSELS ====================\n      \/\/ Horizontal carousels\n      const scrollTrack = (name, dir) => {\n        const track = root.querySelector(`[data-rab-finland-program-track=\"${name}\"]`);\n        if (!track) return;\n        const card = track.querySelector('.rab-finland-program-card');\n        const gap = parseFloat(getComputedStyle(track).columnGap || getComputedStyle(track).gap || 18);\n        const step = card ? card.getBoundingClientRect().width + gap : track.clientWidth * .72;\n        track.scrollBy({ left: dir * step, behavior: 'smooth' });\n      };\n      root.querySelectorAll('[data-rab-finland-slider-prev]').forEach(btn => btn.addEventListener('click', () => scrollTrack(btn.getAttribute('data-rab-finland-slider-prev'),-1)));\n      root.querySelectorAll('[data-rab-finland-slider-next]').forEach(btn => btn.addEventListener('click', () => scrollTrack(btn.getAttribute('data-rab-finland-slider-next'),1)));\n\n\n      \/\/ Program carousel edge hint: keep the fade strictly inside the scrolling track,\n      \/\/ never across the title \/ navigation buttons above it.\n      const updateRabProgramEdgeFade = (track) => {\n        const group = track?.closest('.rab-finland-program-group');\n        if (!track || !group) return;\n        const maxScroll = Math.max(0, track.scrollWidth - track.clientWidth);\n        group.style.setProperty('--rab-program-track-top', `${track.offsetTop}px`);\n        group.style.setProperty('--rab-program-track-height', `${track.offsetHeight}px`);\n        group.classList.toggle('has-more-right', maxScroll > 3 && track.scrollLeft < maxScroll - 3);\n      };\n      root.querySelectorAll('[data-rab-finland-program-track]').forEach(track => {\n        const update = () => updateRabProgramEdgeFade(track);\n        track.addEventListener('scroll', update, { passive:true });\n        window.addEventListener('resize', update, { passive:true });\n        new MutationObserver(() => requestAnimationFrame(update)).observe(track, { childList:true });\n        requestAnimationFrame(update);\n      });\n\n      \/\/ ==================== 11G. ACTIVITY SLIDER ====================\n      \/\/ Activity slider: GSAP is loaded asynchronously so it cannot delay Programs\/API startup.\n      const loadRabGsap = () => {\n        if (window.gsap) return Promise.resolve(window.gsap);\n        if (window.__rabFinlandGsapPromise) return window.__rabFinlandGsapPromise;\n\n        window.__rabFinlandGsapPromise = new Promise(resolve => {\n          const script = document.createElement('script');\n          \/\/ Pin GSAP to an exact immutable release and verify the response with SRI.\n          script.src = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/gsap\/3.13.0\/gsap.min.js';\n          script.integrity = 'sha512-NcZdtrT77bJr4STcmsGAESr06BYGE8woZdSdEgqnpyqac7sugNO+Tr4bGwGF3MsnEkGKhU2KL2xh6Ec+BqsaHA==';\n          script.async = true;\n          script.crossOrigin = 'anonymous';\n          script.referrerPolicy = 'no-referrer';\n          script.onload = () => resolve(window.gsap || null);\n          script.onerror = () => resolve(null);\n          document.head.appendChild(script);\n        });\n\n        return window.__rabFinlandGsapPromise;\n      };\n\n      const initRabActivitySlider = async () => {\n\n        const slider = root.querySelector('[data-rab-finland-activity-slider]');\n        if (!slider || slider.dataset.rabReady === 'true') return;\n        slider.dataset.rabReady = 'true';\n\n        const slides = Array.from(slider.querySelectorAll('.rab-finland-activity-slide'));\n        const counter = root.querySelector('[data-rab-finland-activity-current]');\n        const panel = slider.closest('.rab-finland-activity-panel');\n        if (slides.length < 2) return;\n\n        \/* Mobile only: all slides share the height of the tallest natural card.\n           This keeps the longest text 14px above the bottom edge while shorter\n           slides stay perfectly aligned to the same frame height. *\/\n        const mobileActivityMq = window.matchMedia('(max-width:767px)');\n        let activityHeightRaf = 0;\n        const syncMobileActivityHeight = () => {\n          if (!panel) return;\n          window.cancelAnimationFrame(activityHeightRaf);\n          activityHeightRaf = window.requestAnimationFrame(() => {\n            if (!mobileActivityMq.matches) {\n              panel.style.removeProperty('--rab-finland-activity-mobile-height');\n              return;\n            }\n\n            panel.style.removeProperty('--rab-finland-activity-mobile-height');\n\n            \/* Slides fill the shared frame on mobile so the previous slide can never\n               bleed through below a shorter next card. Measure each card from its\n               actual image + text blocks instead of the now full-height slide box. *\/\n            const tallest = slides.reduce((maxHeight,slide) => {\n              const image = slide.querySelector('.rab-finland-activity-slide-image');\n              const content = slide.querySelector('.rab-finland-activity-slide-content');\n              if (!image || !content) return maxHeight;\n\n              const imageStyle = window.getComputedStyle(image);\n              const imageHeight = Math.ceil(image.getBoundingClientRect().height);\n              const marginTop = parseFloat(imageStyle.marginTop) || 0;\n              const contentHeight = Math.ceil(content.scrollHeight);\n              const naturalHeight = Math.ceil(marginTop + imageHeight + contentHeight);\n\n              return Math.max(maxHeight,naturalHeight);\n            },0);\n\n            if (tallest > 0) {\n              panel.style.setProperty('--rab-finland-activity-mobile-height',`${tallest}px`);\n            }\n          });\n        };\n\n        syncMobileActivityHeight();\n        window.addEventListener('resize',syncMobileActivityHeight,{ passive:true });\n        if (document.fonts && document.fonts.ready) {\n          document.fonts.ready.then(syncMobileActivityHeight).catch(() => {});\n        }\n\n        const contentParts = slide => Array.from(slide.querySelectorAll('.rab-finland-activity-slide-content > *'));\n        const fullClip = 'polygon(0% 0%,100% 0%,100% 100%,0% 100%)';\n        const closedClip = 'polygon(0% 0%,0% 0%,0% 100%,0% 100%)';\n        const SLIDE_DELAY = 3;\n        const TRANSITION_DURATION = .8;\n\n        let activeIndex = 0;\n        let timer = null;\n\n        const updateCounter = index => {\n          if (counter) counter.textContent = String(index + 1).padStart(2,'0');\n        };\n\n        const loadedGsap = await loadRabGsap();\n\n        \/\/ Fallback when GSAP is unavailable.\n        if (!loadedGsap) {\n          slider.classList.add('rab-finland-activity-fallback');\n          slides.forEach((slide,index) => slide.classList.toggle('is-active',index === 0));\n          updateCounter(0);\n\n          timer = window.setInterval(() => {\n            slides[activeIndex].classList.remove('is-active');\n            activeIndex = (activeIndex + 1) % slides.length;\n            slides[activeIndex].classList.add('is-active');\n            updateCounter(activeIndex);\n          }, SLIDE_DELAY * 1000);\n          return;\n        }\n\n        const gsap = loadedGsap;\n\n        \/\/ Each transition brings the next slide above the current one,\n        \/\/ so 05 -> 01 works exactly like every other transition.\n        slides.forEach((slide,index) => {\n          gsap.set(slide, {\n            zIndex:index === 0 ? 2 : 1,\n            visibility:index === 0 ? 'visible' : 'hidden'\n          });\n          gsap.set(slide.querySelector('.rab-finland-activity-slide-image'), {\n            clipPath:index === 0 ? fullClip : closedClip\n          });\n          gsap.set(contentParts(slide), {\n            clipPath:index === 0 ? fullClip : closedClip\n          });\n        });\n        updateCounter(0);\n\n        const showNext = () => {\n          const current = slides[activeIndex];\n          const nextIndex = (activeIndex + 1) % slides.length;\n          const next = slides[nextIndex];\n          const nextImage = next.querySelector('.rab-finland-activity-slide-image');\n          const nextParts = contentParts(next);\n\n          gsap.set(next, { visibility:'visible', zIndex:3 });\n          gsap.set(nextImage, { clipPath:closedClip });\n          gsap.set(nextParts, { clipPath:closedClip });\n\n          const tl = gsap.timeline({\n            onComplete:() => {\n              gsap.set(current, { visibility:'hidden', zIndex:1 });\n              gsap.set(next, { zIndex:2 });\n              activeIndex = nextIndex;\n              updateCounter(activeIndex);\n              timer = gsap.delayedCall(SLIDE_DELAY, showNext);\n            }\n          });\n\n          tl.to(nextImage, {\n            duration:TRANSITION_DURATION,\n            clipPath:fullClip,\n            ease:'expo.inOut'\n          });\n\n          nextParts.forEach((part,index) => {\n            tl.to(part, {\n              duration:.56,\n              clipPath:fullClip,\n              ease:'expo.out'\n            }, index === 0 ? '-=.28' : '-=.42');\n          });\n        };\n\n        \/\/ First image stays visible for exactly 3 seconds before moving to 02.\n        timer = gsap.delayedCall(SLIDE_DELAY, showNext);\n      };\n      initRabActivitySlider();\n\n      \/\/ WordPress news hook by category\/tag IDs\n      const renderNews = async () => {\n        const list = root.querySelector('[data-rab-finland-stories-list]');\n        if (!list || !CONFIG.news.endpoint) return;\n        if (!CONFIG.news.categoryIds.length && !CONFIG.news.tagIds.length) return;\n        try {\n          const url = new URL(CONFIG.news.endpoint, window.location.origin);\n          url.searchParams.set('per_page', String(CONFIG.news.perPage || 4));\n          url.searchParams.set('_embed', '1');\n          if (CONFIG.news.categoryIds.length) url.searchParams.set('categories', CONFIG.news.categoryIds.join(','));\n          if (CONFIG.news.tagIds.length) url.searchParams.set('tags', CONFIG.news.tagIds.join(','));\n          const res = await fetch(url.toString(), { credentials:'same-origin' });\n          if (!res.ok) throw new Error(`HTTP ${res.status}`);\n          const posts = await res.json();\n          if (!Array.isArray(posts) || !posts.length) return;\n          list.innerHTML = posts.map((post,index) => {\n            const media = post?._embedded?.['wp:featuredmedia']?.[0];\n            const image = safeUrl(media?.media_details?.sizes?.medium?.source_url || media?.source_url || '', '');\n            const title = stripHtml(post?.title?.rendered || `Lorem ipsum [NEWS-${index}]`);\n            const date = post?.date ? new Date(post.date).toLocaleDateString('vi-VN') : '';\n            const link = safeUrl(post?.link, '#');\n            return `<a class=\"rab-finland-news-item\" href=\"${escapeHtml(link)}\"><span class=\"rab-finland-news-thumb\">${image ? `<img src=\"${escapeHtml(image)}\" alt=\"\" loading=\"lazy\" decoding=\"async\">` : ''}<\/span><span><strong>${escapeHtml(title)}<\/strong><span>${escapeHtml(date)}<\/span><\/span><\/a>`;\n          }).join('');\n        } catch (err) {\n          console.warn('RAB Finland news API:', err);\n        }\n      };\n      renderNews();\n    })();\n<\/script>\n<\/div>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>RAB cung c\u1ea5p c\u00e1c gi\u1ea3i ph\u00e1p du h\u1ecdc uy t\u00edn cho ng\u01b0\u1eddi Vi\u1ec7t \u1edf nhi\u1ec1u \u0111\u1ed9 tu\u1ed5i. RAB c\u00f3 nhi\u1ec1u kinh nghi\u1ec7m t\u01b0 v\u1ea5n v\u1ec1 Ph\u1ea7n Lan, Hoa K\u1ef3, v\u00e0 \u00dac. \u0110i\u1ec1u ki\u1ec7n du h\u1ecdc ngh\u1ec1 Ph\u1ea7n Lan, chi ph\u00ed ti\u1ebft ki\u1ec7m, mang theo gia \u0111\u00ecnh, t\u1ef7 l\u1ec7 \u0111\u1eadu cao n\u0103m 2025 v\u00e0 \u0111\u1ecbnh c\u01b0 b\u1ec1n v\u1eefng cho ng\u01b0\u1eddi Vi\u1ec7t.<\/p>\n","protected":false},"author":3,"featured_media":6726,"parent":0,"menu_order":19,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"footnotes":""},"class_list":["post-15681","page","type-page","status-publish","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/rabacademy.vn\/finland\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"RAB ACADEMY - FINLAND -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Home \u2013 RAB Academy - RAB ACADEMY - FINLAND\" \/>\n\t\t<meta property=\"og:description\" content=\"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/rabacademy.vn\/finland\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"580\" \/>\n\t\t<meta property=\"og:image:height\" content=\"425\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-06-18T07:03:02+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-20T07:00:55+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Home \u2013 RAB Academy - RAB ACADEMY - FINLAND\" \/>\n\t\t<meta name=\"twitter:description\" content=\"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rabacademy.vn\\\/finland\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#listItem\",\"name\":\"Home &#8211; RAB Academy\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#listItem\",\"position\":2,\"name\":\"Home &#8211; RAB Academy\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#organization\",\"name\":\"RAB ACADEMY - FINLAND\",\"url\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/Logo-web.webp\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#organizationLogo\",\"width\":580,\"height\":425},\"image\":{\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#organizationLogo\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#webpage\",\"url\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/\",\"name\":\"Home \\u2013 RAB Academy - RAB ACADEMY - FINLAND\",\"description\":\"RAB Academy \\u00b7 Finland \\u0110i Ph\\u1ea7n Lan s\\u1edbm nh\\u1ea5t Xem danh s\\u00e1ch ch\\u01b0\\u01a1ng tr\\u00ecnh \\u0111\\u01b0\\u1ee3c m\\u1edf tuy\\u1ec3n m\\u1edbi nh\\u1ea5t. Xem ngay Li\\u00ean h\\u1ec7 \\u0110ang c\\u1eadp nh\\u1eadt ch\\u01b0\\u01a1ng tr\\u00ecnh... Ch\\u01b0\\u01a1ng tr\\u00ecnh h\\u1ecdc Ngh\\u1ec1H\\u1ecdc ngh\\u1ec1 \\u0110ang t\\u1ea3i ch\\u01b0\\u01a1ng tr\\u00ecnh... Ph\\u01b0\\u01a1ng \\u00e1n du h\\u1ecdcC\\u00e1ch RAB h\\u1ed7 tr\\u1ee3 TheoNguy\\u1ec7n v\\u1ecdng Ch\\u01b0\\u01a1ng tr\\u00ecnh\\u0110\\u1ed1i t\\u00e1c Theo nguy\\u1ec7n v\\u1ecdng T\\u01b0 v\\u1ea5n theo\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#breadcrumblist\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/Logo-web.webp\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#mainImage\",\"width\":580,\"height\":425,\"caption\":\"RAB Logo\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#mainImage\"},\"datePublished\":\"2024-06-18T07:03:02+00:00\",\"dateModified\":\"2026-08-20T07:00:55+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#website\",\"url\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/\",\"name\":\"RAB ACADEMY - FINLAND\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/rabacademy.vn\\\/finland\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Home \u2013 RAB Academy - RAB ACADEMY - FINLAND","description":"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo","canonical_url":"https:\/\/rabacademy.vn\/finland\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/rabacademy.vn\/finland\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/rabacademy.vn\/finland#listItem","position":1,"name":"Home","item":"https:\/\/rabacademy.vn\/finland","nextItem":{"@type":"ListItem","@id":"https:\/\/rabacademy.vn\/finland\/#listItem","name":"Home &#8211; RAB Academy"}},{"@type":"ListItem","@id":"https:\/\/rabacademy.vn\/finland\/#listItem","position":2,"name":"Home &#8211; RAB Academy","previousItem":{"@type":"ListItem","@id":"https:\/\/rabacademy.vn\/finland#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/rabacademy.vn\/finland\/#organization","name":"RAB ACADEMY - FINLAND","url":"https:\/\/rabacademy.vn\/finland\/","logo":{"@type":"ImageObject","url":"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp","@id":"https:\/\/rabacademy.vn\/finland\/#organizationLogo","width":580,"height":425},"image":{"@id":"https:\/\/rabacademy.vn\/finland\/#organizationLogo"}},{"@type":"WebPage","@id":"https:\/\/rabacademy.vn\/finland\/#webpage","url":"https:\/\/rabacademy.vn\/finland\/","name":"Home \u2013 RAB Academy - RAB ACADEMY - FINLAND","description":"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/rabacademy.vn\/finland\/#website"},"breadcrumb":{"@id":"https:\/\/rabacademy.vn\/finland\/#breadcrumblist"},"image":{"@type":"ImageObject","url":"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2023\/04\/Logo-web.webp","@id":"https:\/\/rabacademy.vn\/finland\/#mainImage","width":580,"height":425,"caption":"RAB Logo"},"primaryImageOfPage":{"@id":"https:\/\/rabacademy.vn\/finland\/#mainImage"},"datePublished":"2024-06-18T07:03:02+00:00","dateModified":"2026-08-20T07:00:55+00:00"},{"@type":"WebSite","@id":"https:\/\/rabacademy.vn\/finland\/#website","url":"https:\/\/rabacademy.vn\/finland\/","name":"RAB ACADEMY - FINLAND","inLanguage":"en-US","publisher":{"@id":"https:\/\/rabacademy.vn\/finland\/#organization"}}]},"og:locale":"en_US","og:site_name":"RAB ACADEMY - FINLAND -","og:type":"article","og:title":"Home \u2013 RAB Academy - RAB ACADEMY - FINLAND","og:description":"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo","og:url":"https:\/\/rabacademy.vn\/finland\/","og:image":"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp","og:image:secure_url":"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp","og:image:width":580,"og:image:height":425,"article:published_time":"2024-06-18T07:03:02+00:00","article:modified_time":"2026-08-20T07:00:55+00:00","twitter:card":"summary_large_image","twitter:title":"Home \u2013 RAB Academy - RAB ACADEMY - FINLAND","twitter:description":"RAB Academy \u00b7 Finland \u0110i Ph\u1ea7n Lan s\u1edbm nh\u1ea5t Xem danh s\u00e1ch ch\u01b0\u01a1ng tr\u00ecnh \u0111\u01b0\u1ee3c m\u1edf tuy\u1ec3n m\u1edbi nh\u1ea5t. Xem ngay Li\u00ean h\u1ec7 \u0110ang c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh... Ch\u01b0\u01a1ng tr\u00ecnh h\u1ecdc Ngh\u1ec1H\u1ecdc ngh\u1ec1 \u0110ang t\u1ea3i ch\u01b0\u01a1ng tr\u00ecnh... Ph\u01b0\u01a1ng \u00e1n du h\u1ecdcC\u00e1ch RAB h\u1ed7 tr\u1ee3 TheoNguy\u1ec7n v\u1ecdng Ch\u01b0\u01a1ng tr\u00ecnh\u0110\u1ed1i t\u00e1c Theo nguy\u1ec7n v\u1ecdng T\u01b0 v\u1ea5n theo","twitter:image":"https:\/\/rabacademy.vn\/finland\/wp-content\/uploads\/2026\/07\/Logo-web.webp"},"aioseo_meta_data":{"post_id":"15681","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-07-22 11:27:40","updated":"2026-08-20 07:52:07"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/rabacademy.vn\/finland\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tHome \u2013 RAB Academy\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/rabacademy.vn\/finland"},{"label":"Home &#8211; RAB Academy","link":"https:\/\/rabacademy.vn\/finland\/"}],"_links":{"self":[{"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/pages\/15681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/comments?post=15681"}],"version-history":[{"count":490,"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/pages\/15681\/revisions"}],"predecessor-version":[{"id":29838,"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/pages\/15681\/revisions\/29838"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/media\/6726"}],"wp:attachment":[{"href":"https:\/\/rabacademy.vn\/finland\/wp-json\/wp\/v2\/media?parent=15681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}