.home-rokt {
  position: relative;
  overflow: hidden;
  padding: 80px 48px;
  background: #fff;
  color: #244570;
  font-family: Lato, sans-serif;
  letter-spacing: 0;
}

.home-rokt::before,
.home-rokt::after {
  content: "";
  position: absolute;
  width: 380px;
  height: 380px;
  border: 64px solid #fff9df;
  border-radius: 50%;
  pointer-events: none;
}

.home-rokt::before { top: -280px; right: -210px; }
.home-rokt::after { bottom: -290px; right: -190px; border-color: #edf5fc; }

.home-rokt-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
  max-width: 1240px;
  margin: 0 auto;
}

.home-rokt-copy {
  min-width: 0;
  order: 2;
}

.home-rokt-copy::before {
  content: "";
  display: block;
  width: 76px;
  height: 6px;
  margin-bottom: 26px;
  border-radius: 3px;
  background: #ffdf26;
}

.home-rokt .home-rokt-kicker {
  margin: 0 0 16px;
  color: #0051c8;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 7px;
  text-transform: uppercase;
}

.home-rokt h2 {
  margin: 0 0 28px;
  color: #003d96;
  font-family: inherit;
  font-size: 38px;
  line-height: 1.15;
  font-weight: 300;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.home-rokt .home-rokt-description {
  max-width: 100%;
  margin: 0 0 28px;
  color: #244570;
  font-size: 18px;
  line-height: 1.55;
}

.home-rokt a.home-rokt-cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  max-width: 100%;
  padding: 17px 26px;
  border-radius: 8px;
  background: #ffdf26;
  color: #00458e;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 800;
  text-decoration: none;
  transition: background-color 150ms ease, color 150ms ease;
}

.home-rokt a.home-rokt-cta:hover { background: #ffed00; color: #003d96; }
.home-rokt-cta span { flex-shrink: 0; font-size: 24px; line-height: 1; }
.home-rokt-cta:focus-visible { outline: 2px solid #0051c8; outline-offset: 4px; }

.home-rokt-image {
  display: block;
  order: 1;
  width: 100%;
  height: auto;
  aspect-ratio: 1.27;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 16px 40px rgb(0 0 0 / 7%);
}

@media (min-width: 768px) and (max-width: 1100px) {
  .home-rokt { padding: 60px 32px; }
  .home-rokt-inner { gap: 32px; }
  .home-rokt h2 { font-size: 30px; }
  .home-rokt .home-rokt-description { font-size: 18px; }
  .home-rokt-image { aspect-ratio: 1; }
}

@media (max-width: 767px) {
  .home-rokt { padding: 40px 24px 48px; }
  .home-rokt-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .home-rokt-copy { order: 2; }
  .home-rokt-image { order: 1; }
  .home-rokt-copy::before { margin-bottom: 20px; width: 64px; }
  .home-rokt .home-rokt-kicker { font-size: 12px; letter-spacing: 5px; margin-bottom: 14px; }
  .home-rokt h2 { font-size: 28px; margin-bottom: 22px; }
  .home-rokt .home-rokt-description { font-size: 17px; margin-bottom: 24px; }
  .home-rokt a.home-rokt-cta { font-size: 17px; padding: 15px 22px; }
  .home-rokt-image { aspect-ratio: 1.5; }
  .home-rokt::before { right: -300px; }
  .home-rokt::after { right: -290px; }
}

@media (max-width: 359px) {
  .home-rokt h2 { font-size: 24px; }
}

.home-training {
  position: relative;
  overflow: hidden;
  background: #fff;
  padding: 80px 48px;
  color: #244570;
  font-family: Lato, sans-serif;
  letter-spacing: 0;
}

.home-training::before,
.home-training::after {
  content: "";
  position: absolute;
  width: 380px;
  height: 380px;
  border: 64px solid #fff9df;
  border-radius: 50%;
  pointer-events: none;
}

.home-training::before { top: -280px; right: -210px; }
.home-training::after { bottom: -290px; right: -190px; border-color: #edf5fc; }

.home-training-inner {
  position: relative;
  z-index: 1;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 48px;
  align-items: center;
}

.home-training-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1.27;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 16px 40px rgb(0 0 0 / 7%);
}

.home-training-copy::before {
  content: "";
  display: block;
  width: 76px;
  height: 6px;
  margin-bottom: 26px;
  border-radius: 3px;
  background: #ffdf26;
}

.home-training .home-training-copy h2 {
  margin: 0 0 28px;
  color: #003d96;
  font-family: inherit;
  font-size: 38px;
  line-height: 1.15;
  font-weight: 300;
  letter-spacing: 0;
}

.home-training-copy h2 strong { display: block; font-size: 50px; font-weight: 800; margin-bottom: 4px; }
.home-training-copy h2 span { display: block; }

.home-training .home-training-lead {
  margin: 0 0 24px;
  font-size: 22px;
  line-height: 1.4;
  color: #244570;
}

.home-training .home-training-description {
  margin: 0 0 28px;
  font-size: 18px;
  line-height: 1.55;
  color: #244570;
}

.home-training a.home-training-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  padding: 17px 26px;
  border-radius: 8px;
  background: #ffdf26;
  color: #00458e;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 800;
  text-decoration: none;
  transition: background-color 150ms ease;
}

.home-training a.home-training-link:hover { background: #ffed00; color: #003d96; }
.home-training-link svg { flex-shrink: 0; }

@media (min-width: 768px) and (max-width: 1100px) {
  .home-training { padding: 60px 32px; }
  .home-training-inner { gap: 32px; }
  .home-training .home-training-copy h2 { font-size: 30px; }
  .home-training-copy h2 strong { font-size: 42px; }
  .home-training .home-training-lead { font-size: 20px; }
  .home-training-image img { aspect-ratio: 1; }
}

@media (max-width: 767px) {
  .home-training { padding: 40px 24px 48px; }
  .home-training-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .home-training-image img { aspect-ratio: 1.5; }
  .home-training-copy::before { margin-bottom: 20px; width: 64px; }
  .home-training .home-training-copy h2 { font-size: 28px; margin-bottom: 22px; }
  .home-training-copy h2 strong { font-size: 38px; }
  .home-training .home-training-lead { font-size: 20px; margin-bottom: 20px; }
  .home-training .home-training-description { font-size: 17px; margin-bottom: 24px; }
  .home-training a.home-training-link { font-size: 17px; padding: 15px 22px; }
  .home-training::before { right: -300px; }
  .home-training::after { right: -290px; }
}

@media (max-width: 359px) {
  .home-training .home-training-copy h2 { font-size: 24px; }
  .home-training-copy h2 strong { font-size: 34px; }
}

.home-offers {
  background: #f7f8fa;
  padding: 76px 48px 70px;
  color: #244570;
  font-family: Lato, sans-serif;
  letter-spacing: 0;
}

.home-offers-inner {
  max-width: 1240px;
  margin: 0 auto;
  text-align: center;
}

.home-offers-kicker {
  margin: 0 0 14px;
  color: #0051c8;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 7px;
}

.home-offers h2 {
  margin: 0 0 46px;
  color: #003d96;
  font-family: Lato, sans-serif;
  font-size: 38px;
  line-height: 1.15;
  font-weight: 300;
  letter-spacing: 0;
}

.home-offers-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  text-align: left;
}

.home-offer-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 40px rgb(0 0 0 / 7%);
  flex-direction: column;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.home-offer-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 48px rgb(18 35 60 / 13%);
}

.home-offer-image {
  display: block;
  overflow: hidden;
  aspect-ratio: 1.65;
  background: #eef2f7;
}

.home-offer-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms ease;
}

.home-offer-card:hover .home-offer-image img { transform: scale(1.035); }

.home-offer-content {
  display: flex;
  flex: 1;
  min-height: 310px;
  padding: 30px 30px 28px;
  flex-direction: column;
}

.home-offer-content h3 {
  margin: 0 0 22px;
  color: #003d96;
  font-family: Lato, sans-serif;
  font-size: 24px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0;
}

.home-offer-content h3 a,
.home-offer-content h3 a:hover {
  color: inherit;
  text-decoration: none;
}

.home-offer-content p {
  margin: 0 0 26px;
  color: #244570;
  font-size: 17px;
  line-height: 1.5;
}

.home-offer-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: fit-content;
  margin-top: auto;
  padding: 12px 16px;
  border-radius: 8px;
  background: #ffdf26;
  color: #000;
  font-size: 16px;
  line-height: 1.35;
  font-weight: 800;
  text-decoration: none;
}

.home-offer-link:hover {
  background: #ffdf26;
  color: #000;
  text-decoration: none;
}

.home-offer-link span,
.home-offers-cta span {
  font-size: 24px;
  line-height: 1;
}

.home-offers-cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  min-width: 360px;
  margin-top: 42px;
  padding: 17px 26px;
  border-radius: 8px;
  background: #ffdf26;
  color: #000;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 12px 28px rgb(0 0 0 / 8%);
}

.home-offers-cta:hover {
  background: #ffdf26;
  color: #000;
  text-decoration: none;
}

.home-training-offers .home-offer-content h3 {
  font-weight: 300;
}

.home-training-offers a.home-offers-cta {
  min-width: 0;
  max-width: 100%;
}

.home-rokt a.home-rokt-cta,
.home-rokt a.home-rokt-cta:hover,
.home-training a.home-training-link,
.home-training a.home-training-link:hover,
.home-offers a.home-offer-link,
.home-offers a.home-offer-link:hover,
.home-offers a.home-offers-cta,
.home-offers a.home-offers-cta:hover {
  background: #ffdf26;
  color: #000;
  text-decoration: none;
  transition: none;
  transform: none;
}

.home-offer-content h3 { overflow-wrap: anywhere; }
.home-offer-link { max-width: 100%; }
.home-offer-link svg,
.home-offers-cta svg { flex-shrink: 0; }
.home-offer-link:focus-visible,
.home-offers-cta:focus-visible,
.home-offer-image:focus-visible,
.home-offer-content h3 a:focus-visible { outline: 2px solid #0051c8; outline-offset: 4px; }

@media (min-width: 768px) and (max-width: 1100px) {
  .home-offers { padding: 60px 32px 56px; }
  .home-offers h2 { font-size: 30px; margin-bottom: 36px; }
  .home-offers-grid { gap: 22px; }
  .home-offer-content { min-height: 330px; padding: 26px 24px 24px; }
  .home-offer-content h3 { font-size: 22px; }
  .home-offer-content p { font-size: 16px; }
}

@media (max-width: 767px) {
  .home-offers { padding: 42px 24px 48px; }
  .home-offers-kicker { font-size: 12px; letter-spacing: 4px; }
  .home-offers h2 { font-size: 28px; margin-bottom: 30px; }
  .home-offers-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .home-offer-content { min-height: 0; padding: 26px 24px 24px; }
  .home-offer-content h3 { font-size: 23px; margin-bottom: 20px; }
  .home-offer-content p { font-size: 16px; margin-bottom: 24px; }
  .home-offer-link { font-size: 16px; }
  .home-offers-cta { width: 100%; min-width: 0; margin-top: 30px; padding: 15px 22px; font-size: 17px; }
}

@media (max-width: 359px) {
  .home-offers h2 { font-size: 24px; }
}

.ffb-id-6fqhm51e {
  display: none !important;
}

.home-locations {
  position: relative;
  overflow: hidden;
  padding: 84px 48px 92px;
  background: #fff;
  color: #244570;
  font-family: Lato, sans-serif;
  letter-spacing: 0;
}

.home-locations::before,
.home-locations::after {
  content: "";
  position: absolute;
  width: 380px;
  height: 380px;
  border: 64px solid #fff9df;
  border-radius: 50%;
  pointer-events: none;
}

.home-locations::before { top: -280px; right: -210px; }
.home-locations::after { bottom: -290px; left: -190px; border-color: #edf5fc; }

.home-locations-inner {
  position: relative;
  z-index: 1;
  max-width: 1240px;
  margin: 0 auto;
}

.home-locations-header {
  max-width: 760px;
  margin-bottom: 42px;
}

.home-locations-header::before {
  content: "";
  display: block;
  width: 76px;
  height: 6px;
  margin-bottom: 26px;
  border-radius: 3px;
  background: #ffdf26;
}

.home-locations-kicker,
.home-locations-map-kicker {
  margin: 0 0 14px;
  color: #0051c8;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 7px;
  text-transform: uppercase;
}

.home-locations h2 {
  margin: 0 0 22px;
  color: #003d96;
  font-family: inherit;
  font-size: 42px;
  line-height: 1.15;
  font-weight: 300;
  letter-spacing: 0;
}

.home-locations-header > p:last-child {
  margin: 0;
  color: #244570;
  font-size: 18px;
  line-height: 1.55;
}

.home-locations-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 24px;
}

.home-location-card {
  overflow: hidden;
  min-width: 0;
  border: 1px solid rgb(0 79 159 / 14%);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 32px rgb(0 0 0 / 7%);
}

.home-location-image {
  display: block;
  overflow: hidden;
  background: #edf5fc;
  text-decoration: none;
}

.home-location-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1.28;
  object-fit: cover;
  transition: transform 180ms ease;
}

.home-location-card:hover .home-location-image img {
  transform: scale(1.03);
}

.home-location-content {
  min-height: 126px;
  padding: 20px 18px 22px;
}

.home-location-content p {
  margin: 0 0 10px;
  color: #0051c8;
  font-size: 12px;
  line-height: 1.3;
  font-weight: 800;
  text-transform: uppercase;
}

.home-location-content h3 {
  margin: 0;
  color: #003d96;
  font-family: inherit;
  font-size: 19px;
  line-height: 1.25;
  font-weight: 800;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.home-location-content a {
  color: inherit;
  text-decoration: none;
}

.home-location-content a:hover {
  color: #004f9f;
  text-decoration: none;
}

.home-locations-map {
  display: grid;
  grid-template-columns: minmax(260px, 0.65fr) minmax(0, 1fr);
  gap: 32px;
  align-items: center;
  margin-top: 44px;
  padding: 32px;
  border-radius: 8px;
  background: #edf5fc;
}

.home-locations-map h3 {
  margin: 0 0 14px;
  color: #003d96;
  font-family: inherit;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 300;
  letter-spacing: 0;
}

.home-locations .map-privacy {
  margin: 0;
  color: #244570;
  font-size: 15px;
  line-height: 1.5;
}

.home-locations .partner-map {
  min-width: 0;
  padding: 0;
  background: transparent;
}

.home-locations .partner-map button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 15px 22px;
  border: 0;
  border-radius: 8px;
  background: #ffdf26;
  color: #000;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 800;
}

.home-locations .partner-map button:focus-visible,
.home-location-image:focus-visible,
.home-location-content a:focus-visible {
  outline: 2px solid #0051c8;
  outline-offset: 4px;
}

.home-locations .partner-map-canvas {
  overflow: hidden;
  width: 100%;
  margin-top: 18px;
  border-radius: 8px;
}

@media (max-width: 1180px) {
  .home-locations-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .home-locations { padding: 60px 32px 68px; }
  .home-locations h2 { font-size: 34px; }
  .home-locations-map { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
  .home-locations { padding: 42px 24px 52px; }
  .home-locations-header { margin-bottom: 30px; }
  .home-locations-header::before { width: 64px; margin-bottom: 20px; }
  .home-locations-kicker,
  .home-locations-map-kicker { font-size: 12px; letter-spacing: 4px; }
  .home-locations h2 { font-size: 28px; }
  .home-locations-header > p:last-child { font-size: 17px; }
  .home-locations-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .home-location-content { min-height: 0; }
  .home-locations-map { grid-template-columns: minmax(0, 1fr); margin-top: 34px; padding: 26px 22px; }
  .home-locations-map h3 { font-size: 25px; }
  .home-locations .partner-map button { width: 100%; }
  .home-locations::before { right: -300px; }
  .home-locations::after { left: -290px; }
}

.home-locations {
  padding: 64px 48px 68px;
  background:
    radial-gradient(circle at -4% 36%, rgb(0 79 159 / 8%) 0 160px, transparent 162px),
    #fff;
}

.home-locations::before {
  top: auto;
  right: auto;
  left: -120px;
  bottom: 120px;
  width: 300px;
  height: 300px;
  border: 0;
  background: rgb(0 79 159 / 7%);
}

.home-locations::after {
  display: none;
}

.home-locations-inner {
  max-width: 1050px;
  text-align: center;
}

.home-locations-header {
  max-width: 780px;
  margin: 0 auto 28px;
}

.home-locations-header::before {
  width: 78px;
  height: 5px;
  margin: 0 auto 30px;
  border-radius: 999px;
}

.home-locations-kicker {
  margin-bottom: 16px;
  color: #0051c8;
  font-size: 14px;
  letter-spacing: 9px;
}

.home-locations h2 {
  margin-bottom: 16px;
  color: #062247;
  font-size: 44px;
  line-height: 1.1;
  font-weight: 800;
  text-shadow: 0 8px 20px rgb(0 33 74 / 12%);
}

.home-locations-header > p:last-child {
  color: #6f7888;
  font-size: 22px;
  line-height: 1.35;
}

.home-locations-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  max-width: 1050px;
  margin: 0 auto 28px;
}

.home-location-card {
  box-shadow: 0 8px 24px rgb(0 33 74 / 8%);
}

.home-location-image img {
  aspect-ratio: 1.65;
}

.home-location-content {
  min-height: 78px;
  padding: 12px 13px 14px;
  text-align: left;
}

.home-location-content p {
  margin-bottom: 5px;
  font-size: 10px;
  letter-spacing: 0.5px;
}

.home-location-content h3 {
  font-size: 14px;
  line-height: 1.25;
}

.home-locations .home-locations-map {
  display: block;
  max-width: 1050px;
  margin: 0 auto;
  padding: 12px;
  border: 1px solid rgb(255 255 255 / 80%);
  border-radius: 8px;
  background: rgb(255 255 255 / 90%);
  box-shadow: 0 18px 54px rgb(0 33 74 / 10%);
}

.home-locations-icon {
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: #edf5fc;
  color: #0051c8;
}

.home-locations-icon svg {
  display: block;
  width: 40px;
  height: 40px;
}

.home-locations-icon circle {
  fill: #ffdf26;
}

.home-locations .partner-map button {
  gap: 20px;
  min-width: min(100%, 340px);
  margin-top: 0;
  padding: 13px 22px;
  background: #0051c8;
  color: #fff;
  box-shadow: 0 12px 26px rgb(0 81 200 / 23%);
}

.home-locations .partner-map button:hover {
  background: #00439f;
  color: #fff;
}

.home-locations .partner-map button span {
  font-size: 22px;
  line-height: 1;
}

.home-locations .map-privacy {
  margin-top: 12px;
  color: #6f7888;
  font-size: 13px;
  line-height: 1.45;
}

.home-locations .partner-map-canvas {
  margin-top: 0;
  border-radius: 8px;
}

@media (min-width: 768px) and (max-width: 1100px) {
  .home-locations {
    padding: 56px 32px 60px;
  }

  .home-locations h2 {
    font-size: 38px;
  }

  .home-locations-header > p:last-child {
    font-size: 20px;
  }

  .home-locations-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .home-locations {
    padding: 46px 24px 52px;
  }

  .home-locations::before {
    left: -230px;
  }

  .home-locations-header {
    margin-bottom: 28px;
  }

  .home-locations-header::before {
    margin-bottom: 22px;
  }

  .home-locations-kicker {
    font-size: 12px;
    letter-spacing: 5px;
  }

  .home-locations h2 {
    font-size: 32px;
    text-shadow: none;
  }

  .home-locations-header > p:last-child {
    font-size: 19px;
  }

  .home-locations-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 24px;
  }

  .home-location-content {
    min-height: 80px;
    padding: 11px 12px 13px;
  }

  .home-location-content h3 {
    font-size: 13px;
  }

  .home-locations .home-locations-map {
    padding: 8px;
  }

  .home-locations-icon {
    width: 62px;
    height: 62px;
  }

  .home-locations-icon svg {
    width: 38px;
    height: 38px;
  }

  .home-locations .partner-map button {
    min-width: 0;
    width: 100%;
    gap: 18px;
    font-size: 16px;
  }
}
