.ble-academy {
  --navy: #112f4a;
  --blue: #0874c9;
  --cyan: #18b6d4;
  --ink: #20364a;
  --muted: #617589;
  --line: #dce7ee;
  --pale: #f4f8fb;
  --academy-space-sm: 8px;
  --academy-space-md: 16px;
  --academy-space-lg: 24px;
  --academy-space-xl: 32px;
  --academy-space-2xl: 48px;
  --academy-space-3xl: 64px;
  font-family: inherit;
  color: var(--ink);
  background: #fff;
  line-height: 1.65;
}
.ble-academy * {
  box-sizing: border-box;
}
.ble-academy section {
  padding: 0;
}
.ble-academy .section-heading {
  margin: 0;
}
.ble-academy h1,
.ble-academy h2,
.ble-academy h3 {
  font-family: inherit;
  color: var(--navy);
  line-height: 1.19;
  font-weight: 600;
  letter-spacing: -0.035em;
}
.ble-academy p {
  margin: 0 0 1.1em;
}
.ble-academy a {
  color: var(--blue);
}
.ble-academy a:hover {
  color: #075792;
}
.ble-academy button {
  font: inherit;
}
.ble-academy :focus-visible,
.academy-skip:focus-visible {
  outline: 3px solid #f8b44c;
  outline-offset: 3px;
}
.ble-academy .academy-container {
  width: min(1240px, calc(100% - 48px));
  margin-inline: auto;
}
.ble-academy .eyebrow {
  font-size: 0.73rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #0876ae;
}
.academy-skip {
  position: absolute;
  z-index: 9999;
  top: -100px;
  left: 16px;
  background: #fff;
  padding: 12px 18px;
}
.academy-skip:focus {
  top: 10px;
}
.ble-academy .academy-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  border-radius: 8px;
  padding: 13px 19px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid transparent;
  min-height: 48px;
  line-height: 1.2;
  transition:
    transform 0.2s,
    background 0.2s,
    box-shadow 0.2s;
  cursor: pointer;
}
.ble-academy .academy-button:hover {
  transform: translateY(-2px);
}
.ble-academy .academy-button.primary {
  background: #0874c9;
  color: #fff;
  box-shadow: 0 8px 22px rgba(8, 116, 201, 0.17);
}
.ble-academy .academy-button.primary:hover {
  background: #075caa;
  color: #fff;
}
.ble-academy .academy-button.light {
  background: #fff;
  color: var(--navy);
  border-color: #d3e4ef;
}
.ble-academy .academy-button.secondary {
  background: #eff7fc;
  color: var(--blue);
}
.ble-academy .academy-crumb {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 26px 0;
  color: #718293;
  font-size: 0.84rem;
}
.ble-academy .academy-crumb a {
  text-decoration: none;
  color: #53728b;
}
.ble-academy .academy-crumb [aria-current] {
  color: var(--ink);
  font-weight: 600;
}
.ble-academy .academy-hero {
  background:
    radial-gradient(circle at 80% 26%, #dcf3f9 0, transparent 30%),
    linear-gradient(135deg, #f5fbff 0%, #eef6fb 100%);
  overflow: hidden;
  border-bottom: 1px solid #dcecf3;
}
.ble-academy .hero-grid {
  display: grid;
  grid-template-columns: 1fr 0.94fr;
  align-items: center;
  gap: 5%;
  padding-block: 70px 68px;
}
.ble-academy .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: #e2f3fa;
  border: 1px solid #c7e8f2;
  border-radius: 100px;
  padding: 8px 14px;
}
.ble-academy .hero-text h1 {
  font-size: clamp(2.9rem, 5.2vw, 4.7rem);
  max-width: 700px;
  margin: 24px 0 16px;
}
.ble-academy .hero-text h1 em {
  font-style: normal;
  color: var(--blue);
}
.ble-academy .hero-tagline {
  font-size: 1.21rem;
  font-weight: 600;
  color: #225b7b;
  margin-bottom: 12px;
}
.ble-academy .hero-description {
  font-size: 1.04rem;
  max-width: 620px;
  color: #536a7f;
}
.ble-academy .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 11px;
  margin: 27px 0 33px;
}
.ble-academy .hero-features {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  color: #536b7e;
  font-size: 0.83rem;
}
.ble-academy .hero-features i {
  color: #16a6c3;
  margin-right: 5px;
}
.ble-academy .hero-visual {
  position: relative;
  min-height: 370px;
  display: grid;
  place-items: center;
}
.ble-academy .visual-glow {
  position: absolute;
  width: 380px;
  height: 380px;
  border: 1px solid #badfee;
  border-radius: 50%;
  box-shadow:
    0 0 0 50px rgba(147, 215, 231, 0.12),
    0 0 0 100px rgba(147, 215, 231, 0.06);
}
.ble-academy .visual-panel {
  position: relative;
  width: min(100%, 500px);
  border: 1px solid #c9dfeb;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 25px 70px rgba(34, 83, 110, 0.16);
  overflow: hidden;
}
.ble-academy .visual-top {
  height: 54px;
  background: #123a58;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 18px;
  color: #fff;
  font-size: 0.74rem;
  letter-spacing: 0.09em;
}
.ble-academy .visual-dots {
  display: flex;
  gap: 5px;
}
.ble-academy .visual-dots i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #7a9cb1;
}
.ble-academy .visual-dots i:first-child {
  background: #40c7d8;
}
.ble-academy .visual-live {
  margin-left: auto;
  color: #8de0d1;
  font-size: 0.61rem;
  white-space: nowrap;
}
.ble-academy .visual-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 53px 28px 41px;
}
.ble-academy .visual-device {
  display: flex;
  align-items: center;
  flex-direction: column;
  text-align: center;
  width: 128px;
}
.ble-academy .device-icon {
  width: 72px;
  height: 72px;
  border: 1px solid #c8e3f1;
  border-radius: 20px;
  display: grid;
  place-items: center;
  background: #edf8fc;
  color: #0a78bf;
  font-size: 1.7rem;
  margin-bottom: 11px;
}
.ble-academy .peripheral .device-icon {
  background: #e9fbf7;
  color: #079c90;
  border-color: #c2e9de;
}
.ble-academy .visual-device strong {
  font-size: 0.9rem;
  color: var(--navy);
}
.ble-academy .visual-device small {
  font-size: 0.72rem;
  color: #71869a;
}
.ble-academy .visual-wave {
  position: relative;
  flex: 1;
  display: flex;
  justify-content: space-around;
  margin: 0 5px;
  align-self: center;
  border-top: 2px dashed #7bc8d8;
  height: 2px;
}
.ble-academy .visual-wave i {
  position: relative;
  top: -6px;
  width: 9px;
  height: 9px;
  background: #0bb5c9;
  border-radius: 50%;
  box-shadow: 0 0 0 5px #def6f8;
}
.ble-academy .visual-wave span {
  position: absolute;
  top: 15px;
  color: #678599;
  font-size: 0.65rem;
  white-space: nowrap;
}
.ble-academy .visual-output {
  border-top: 1px solid #e4eef3;
  padding: 17px 20px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.76rem;
}
.ble-academy .visual-output i {
  color: #19b6be;
}
.ble-academy .visual-output code {
  color: #227b98;
}
.ble-academy .visual-label {
  position: absolute;
  background: #fff;
  border: 1px solid #d5e8f1;
  border-radius: 5px;
  padding: 7px 10px;
  box-shadow: 0 8px 20px rgba(11, 74, 106, 0.08);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #367c9d;
}
.ble-academy .label-one {
  top: 80px;
  right: -10px;
}
.ble-academy .label-two {
  left: -18px;
  bottom: 68px;
}
.ble-academy .label-three {
  right: 10px;
  bottom: 73px;
}
.ble-academy .journey-section {
  padding: 68px 0 72px;
}
.ble-academy .section-heading h2 {
  font-size: clamp(2rem, 3vw, 2.85rem);
  margin: 10px 0 12px;
}
.ble-academy .section-heading p {
  color: var(--muted);
  max-width: 680px;
}
.ble-academy .section-heading.centered {
  text-align: center;
  margin-bottom: 42px;
}
.ble-academy .section-heading.centered p {
  margin-inline: auto;
}
.ble-academy .journey-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.ble-academy .journey-card {
  position: relative;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 25px;
  background: #fff;
  min-height: 250px;
}
.ble-academy .journey-card:not(:last-child):after {
  content: '→';
  position: absolute;
  right: -17px;
  top: 50px;
  z-index: 1;
  background: #fff;
  color: #36a4c0;
  font-size: 1.15rem;
}
.ble-academy .journey-number {
  font-size: 0.77rem;
  color: #85a5b5;
  font-weight: 600;
}
.ble-academy .journey-icon {
  display: grid;
  place-items: center;
  width: 45px;
  height: 45px;
  border-radius: 11px;
  background: #e8f5fb;
  color: #0874c9;
  font-size: 1.1rem;
  margin: 17px 0;
}
.ble-academy .journey-card h3 {
  font-size: 1.09rem;
  margin-bottom: 9px;
}
.ble-academy .journey-card p {
  font-size: 0.87rem;
  color: var(--muted);
  margin: 0;
}
.ble-academy .curriculum-section {
  background: #f5f9fc;
  padding: 70px 0 76px;
  border-top: 1px solid #e4eef4;
}
.ble-academy .curriculum-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 35px;
  margin-bottom: 34px;
}
.ble-academy .curriculum-count {
  display: flex;
  gap: 12px;
  align-items: center;
  border-left: 1px solid #cbdfea;
  padding-left: 24px;
  white-space: nowrap;
  color: #648197;
  font-size: 0.82rem;
  line-height: 1.4;
}
.ble-academy .curriculum-count strong {
  font-size: 3rem;
  color: #1386be;
  line-height: 1;
}
.ble-academy .module-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 17px;
}
.ble-academy .module-card {
  display: flex;
  flex-direction: column;
  min-height: 315px;
  background: #fff;
  border: 1px solid #dce8ef;
  border-radius: 13px;
  padding: 23px;
  text-decoration: none;
  box-shadow: 0 3px 12px rgba(17, 69, 102, 0.03);
  transition:
    transform 0.2s,
    box-shadow 0.2s,
    border-color 0.2s;
}
.ble-academy .module-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 13px 27px rgba(17, 69, 102, 0.1);
  border-color: #98cce1;
  text-decoration: none;
}
.ble-academy .module-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ble-academy .module-number {
  font-weight: 600;
  letter-spacing: 0.12em;
  color: #6e96aa;
  font-size: 0.68rem;
}
.ble-academy .module-card-icon {
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  border-radius: 9px;
  background: #e7f5fb;
  color: #1688bd;
}
.ble-academy .module-card h3 {
  font-size: 1.18rem;
  margin: 27px 0 9px;
}
.ble-academy .module-card p {
  font-size: 0.86rem;
  color: #5c7285;
  line-height: 1.55;
  margin-bottom: 22px;
}
.ble-academy .module-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: auto;
}
.ble-academy .module-card-meta span {
  font-size: 0.67rem;
  color: #638097;
  background: #f1f7fa;
  padding: 4px 7px;
  border-radius: 4px;
}
.ble-academy .module-link {
  border-top: 1px solid #e6eef2;
  margin-top: 19px;
  padding-top: 15px;
  font-size: 0.84rem;
  font-weight: 600;
  color: #0874c9;
  display: flex;
  justify-content: space-between;
}
.ble-academy .academy-search-section {
  padding: 58px 0;
  background: #fff;
}
.ble-academy .search-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8%;
  align-items: center;
}
.ble-academy .search-grid h2 {
  font-size: 2.2rem;
  margin: 10px 0;
}
.ble-academy .search-grid p {
  color: var(--muted);
}
.ble-academy .search-box label {
  display: block;
  font-weight: 700;
  margin-bottom: 9px;
}
.ble-academy .search-input {
  border: 1px solid #b9d1df;
  border-radius: 9px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
}
.ble-academy .search-input i {
  color: #688ca1;
}
.ble-academy .search-input input {
  border: 0;
  outline: 0;
  padding: 14px 0;
  width: 100%;
  background: transparent;
  color: var(--ink);
}
.ble-academy .search-results {
  max-height: 290px;
  overflow: auto;
}
.ble-academy .search-result {
  display: block;
  border-bottom: 1px solid #e8eef2;
  padding: 11px 3px;
  color: var(--ink);
  text-decoration: none;
}
.ble-academy .search-result strong {
  display: block;
  font-size: 0.86rem;
}
.ble-academy .search-result small {
  display: block;
  color: #728697;
}
.ble-academy .search-result.upcoming {
  opacity: 0.65;
}
.ble-academy .academy-webapp {
  background: #eaf5fa;
  border-top: 1px solid #d6eaf3;
  padding: 44px 0;
}
.ble-academy .webapp-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}
.ble-academy .webapp-inner h2 {
  font-size: 2.15rem;
  margin: 8px 0;
}
.ble-academy .webapp-inner p {
  max-width: 760px;
  color: #527187;
}
.ble-academy .webapp-inner .webapp-note {
  font-size: 0.8rem;
  margin: 0;
  color: #6a8393;
}
.ble-academy .webapp-inner .academy-button {
  white-space: nowrap;
}
.ble-academy.academy-module {
  padding-bottom: 64px;
}
.ble-academy .module-hero {
  background: #eef7fb;
  border: 1px solid #d9eaf2;
  border-radius: 16px;
  padding: 46px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
  overflow: hidden;
}
.ble-academy .module-hero h1 {
  font-size: clamp(2.3rem, 4vw, 3.5rem);
  max-width: 770px;
  margin: 12px 0 15px;
}
.ble-academy .module-hero p {
  font-size: 1.1rem;
  max-width: 760px;
  color: #526f82;
}
.ble-academy .module-hero-meta {
  display: flex;
  gap: 22px;
  font-size: 0.85rem;
  color: #5e8094;
}
.ble-academy .module-hero-meta i {
  color: #1388b9;
  margin-right: 6px;
}
.ble-academy .module-symbol {
  flex: 0 0 155px;
  height: 155px;
  background: #d8eef8;
  color: #0a86bd;
  border-radius: 30px;
  display: grid;
  place-items: center;
  position: relative;
}
.ble-academy .module-symbol i {
  font-size: 3.3rem;
}
.ble-academy .module-symbol span {
  position: absolute;
  bottom: 13px;
  right: 17px;
  font-weight: 600;
  opacity: 0.45;
}
.ble-academy .module-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 36px;
  margin-top: 44px;
}
.ble-academy .module-lesson-list {
  list-style: none;
  padding: 0;
  margin: 23px 0;
  border-top: 1px solid var(--line);
}
.ble-academy .module-lesson-list li {
  display: flex;
  align-items: center;
  gap: 17px;
  border-bottom: 1px solid var(--line);
  padding: 17px 4px;
}
.ble-academy .lesson-index {
  color: #87a1af;
  font-size: 0.78rem;
  font-weight: 600;
}
.ble-academy .lesson-title {
  font-weight: 600;
  flex: 1;
}
.ble-academy .lesson-title a {
  color: var(--navy);
  text-decoration: none;
}
.ble-academy .lesson-title a:hover {
  color: var(--blue);
}
.ble-academy .upcoming .lesson-title {
  color: #728697;
  font-weight: 500;
}
.ble-academy .lesson-status {
  font-size: 0.75rem;
  color: #7891a1;
  white-space: nowrap;
}
.ble-academy .available .lesson-status {
  color: var(--blue);
  font-weight: 600;
}
.ble-academy .side-card {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 24px;
  background: #fff;
}
.ble-academy .side-card h2 {
  font-size: 1.3rem;
  margin: 13px 0 8px;
}
.ble-academy .side-card h3 {
  font-size: 0.98rem;
  margin: 24px 0 6px;
}
.ble-academy .side-card p {
  font-size: 0.88rem;
  color: #617789;
}
.ble-academy .side-card .academy-button {
  width: 100%;
  margin-top: 10px;
}
.ble-academy .module-neighbors {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--line);
  margin-top: 38px;
  padding-top: 22px;
}
.ble-academy .module-neighbors a {
  font-size: 0.75rem;
  text-decoration: none;
  color: #6e8a9d;
}
.ble-academy .module-neighbors strong {
  display: block;
  color: var(--navy);
  font-size: 0.9rem;
}
.ble-academy .lesson-grid {
  display: grid;
  grid-template-columns: 230px minmax(0, 760px) 185px;
  justify-content: space-between;
  gap: 30px;
  align-items: start;
  padding-bottom: 64px;
}
.ble-academy .curriculum,
.ble-academy .lesson-toc {
  position: sticky;
  top: calc(var(--academy-header-height, 110px) + 16px);
  max-height: calc(100vh - var(--academy-header-height, 110px) - 32px);
  overflow: auto;
}
.ble-academy .curriculum {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fbfd;
  padding: 15px;
}
.ble-academy .sidebar-heading {
  padding: 8px 8px 15px;
  border-bottom: 1px solid #dce9ef;
}
.ble-academy .sidebar-heading a {
  font-weight: 600;
  color: var(--navy);
  text-decoration: none;
  display: block;
}
.ble-academy .sidebar-heading span {
  font-size: 0.75rem;
  color: #7892a1;
}
.ble-academy .curriculum details {
  border-bottom: 1px solid #e3ecf0;
}
.ble-academy .curriculum summary {
  cursor: pointer;
  padding: 13px 8px;
  color: var(--navy);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
}
.ble-academy .curriculum ol {
  list-style: none;
  padding: 0 0 9px;
  margin: 0;
}
.ble-academy .curriculum li a,
.ble-academy .sidebar-upcoming {
  display: block;
  padding: 7px 8px;
  border-radius: 6px;
  text-decoration: none;
  color: #587086;
  font-size: 0.75rem;
  line-height: 1.35;
}
.ble-academy .curriculum li a:hover {
  background: #eaf4f9;
}
.ble-academy .curriculum li a[aria-current] {
  background: #dff0f8;
  color: #075f98;
  font-weight: 600;
}
.ble-academy .curriculum li span span,
.ble-academy .curriculum li a span {
  color: #94abb8;
}
.ble-academy .sidebar-upcoming {
  opacity: 0.65;
}
.ble-academy .sidebar-upcoming small {
  display: block;
  margin-left: 14px;
}
.ble-academy .lesson-toc > div {
  border-left: 1px solid #dce8ed;
  padding: 5px 0 5px 15px;
}
.ble-academy .lesson-toc nav {
  display: flex;
  flex-direction: column;
  margin-top: 12px;
}
.ble-academy .lesson-toc a {
  font-size: 0.77rem;
  line-height: 1.45;
  color: #6b8192;
  text-decoration: none;
  padding: 7px 0;
}
.ble-academy .lesson-toc a.active,
.ble-academy .lesson-toc a:hover {
  color: var(--blue);
  font-weight: 600;
}
.ble-academy .mobile-curriculum {
  display: none !important;
}
.ble-academy .lesson-article {
  min-width: 0;
}
.ble-academy .lesson-header {
  border-bottom: 1px solid var(--line);
  padding: 5px 0 29px;
}
.ble-academy .lesson-meta {
  display: flex;
  gap: 9px;
  margin: 14px 0;
}
.ble-academy .lesson-meta span {
  border: 1px solid #d6e6ee;
  background: #f4fafc;
  border-radius: 5px;
  padding: 4px 8px;
  font-size: 0.72rem;
  color: #5b8093;
}
.ble-academy .lesson-header h1 {
  font-size: clamp(2.25rem, 3.8vw, 2.5rem);
  margin: 13px 0;
}
.ble-academy .lesson-deck {
  font-size: 1.14rem;
  color: #5d7284;
  line-height: 1.6;
  margin: 0;
}
.ble-academy .objectives {
  background: #eff8fc;
  border: 1px solid #d9edf5;
  border-radius: 11px;
  margin: 28px 0 36px;
  padding: 22px 26px;
}
.ble-academy .objectives h2 {
  font-size: 1.35rem;
  margin: 7px 0 13px;
}
.ble-academy .objectives ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ble-academy .objectives li {
  display: flex;
  gap: 11px;
  margin: 7px 0;
  font-size: 0.92rem;
}
.ble-academy .objectives li i {
  color: #12a7ab;
  margin-top: 6px;
}
.ble-academy .lesson-section {
  margin: 0 0 var(--academy-space-xl);
  scroll-margin-top: 22px;
}
.ble-academy .lesson-section h2,
.ble-academy .knowledge-check h2,
.ble-academy .takeaways h2,
.ble-academy .references h2 {
  font-size: 1.65rem;
  margin: 0 0 15px;
}
.ble-academy .lesson-section p {
  font-size: 1rem;
  line-height: 1.72;
  color: #3e5263;
}
.ble-academy .lesson-section code {
  font-size: 0.9em;
  background: #edf5f8;
  padding: 2px 4px;
  border-radius: 4px;
  color: #14668c;
}
.ble-academy .academy-note {
  border-left: 3px solid #18a8c4;
  background: #f1f9fc;
  padding: 17px 20px;
  margin: 24px 0;
  border-radius: 0 7px 7px 0;
}
.ble-academy .academy-note strong {
  color: #0b668c;
}
.ble-academy .academy-note p {
  margin: 5px 0 0;
  font-size: 0.92rem;
}
.ble-academy .academy-table-wrap {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin: 20px 0;
}
.ble-academy table {
  border-collapse: collapse;
  width: 100%;
  min-width: 560px;
  font-size: 0.88rem;
}
.ble-academy th,
.ble-academy td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.ble-academy th {
  background: #edf6fa;
  color: #184764;
}
.ble-academy .concept-diagram {
  display: block;
  padding: 22px;
  margin: 22px 0 0;
  background: #f3f9fc;
  border: 1px solid #dcecf2;
  border-radius: 12px;
}
.ble-academy .academy-exercise {
  border: 1px solid #b9dfe9;
  border-radius: 13px;
  overflow: hidden;
  margin: var(--academy-space-xl) 0;
  background: #fff;
  scroll-margin-top: 22px;
}
.ble-academy .exercise-top {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 22px 26px;
  background: #eaf8fb;
}
.ble-academy .exercise-top h2 {
  font-size: 1.65rem;
  margin: 8px 0;
}
.ble-academy .exercise-top p {
  margin: 0;
  color: #527286;
}
.ble-academy .exercise-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: #d2eff4;
  color: #087a9b;
}
.ble-academy .exercise-setup {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 250px;
  gap: 20px;
  padding: 18px 26px;
  border-bottom: 1px solid #e0edf1;
}
.ble-academy .exercise-needs {
  padding: 0;
  border: 0;
}
.ble-academy .exercise-needs p {
  color: #5a7283;
  font-size: 0.86rem;
  margin: 5px 0 0;
}
.ble-academy .exercise-steps {
  counter-reset: step;
  list-style: none;
  margin: 0;
  padding: 13px 26px;
}
.ble-academy .exercise-steps li {
  position: relative;
  padding: 5px 0 5px 35px;
  font-size: 0.9rem;
}
.ble-academy .exercise-steps li:before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: 5px;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  background: #e1f2f8;
  color: #0877a3;
  font-weight: 600;
  font-size: 0.72rem;
}
.ble-academy .exercise-commands,
.ble-academy .example-output {
  padding: 0 26px 16px;
}
.ble-academy .exercise-commands h3 {
  font-size: 1rem;
  margin: 0 0 10px;
}
.ble-academy .command-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  background: #102f49;
  color: #effaff;
  padding: 10px 14px;
  margin: 5px 0;
  border-radius: 6px;
}
.ble-academy .command-line code {
  color: #b9f1f1;
  font-size: 0.86rem;
  overflow: auto;
}
.ble-academy .copy-command {
  background: #274b63;
  color: #fff;
  border: 1px solid #527083;
  border-radius: 5px;
  padding: 4px 10px;
  font-size: 0.72rem;
  cursor: pointer;
}
.ble-academy .copy-command:hover {
  background: #356786;
}
.ble-academy .example-output strong {
  font-size: 0.78rem;
}
.ble-academy .example-output pre {
  overflow: auto;
  background: #f3f8fa;
  border: 1px solid #dfebef;
  border-radius: 6px;
  padding: 14px;
  font-size: 0.75rem;
  color: #395666;
  line-height: 1.55;
  margin: 8px 0 0;
}
.ble-academy .exercise-tips {
  margin: 0 29px 21px;
  border-top: 1px solid #e4eef1;
  padding-top: 15px;
  font-size: 0.85rem;
}
.ble-academy .exercise-tips summary {
  cursor: pointer;
  font-weight: 600;
  color: #287795;
}
.ble-academy .exercise-tips ul {
  margin: 9px 0 0;
  padding-left: 22px;
}
.ble-academy .exercise-bottom {
  display: flex;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
  background: #f0f8fa;
  padding: 18px 26px;
}
.ble-academy .exercise-bottom span {
  font-size: 0.75rem;
  color: #6e8997;
}
.ble-academy .knowledge-check {
  border: 1px solid #dbe9ef;
  border-radius: 11px;
  padding: var(--academy-space-lg);
  margin: var(--academy-space-xl) 0;
  scroll-margin-top: 22px;
}
.ble-academy .knowledge-check h2 {
  margin-top: 7px;
}
.ble-academy .answer-options {
  display: grid;
  gap: 8px;
}
.ble-academy .answer-options button {
  text-align: left;
  border: 1px solid #d6e4eb;
  background: #fff;
  border-radius: 7px;
  padding: 11px 13px;
  cursor: pointer;
  color: var(--ink);
}
.ble-academy .answer-options button:hover {
  border-color: #64bbcf;
  background: #f4fafb;
}
.ble-academy .answer-options button.correct {
  border-color: #36ae8e;
  background: #eaf9f3;
}
.ble-academy .answer-options button.incorrect {
  border-color: #e3a58b;
  background: #fff3ee;
}
.ble-academy .answer-feedback {
  font-size: 0.85rem;
  color: #1a775d;
  margin: 12px 0 0;
  min-height: 1em;
}
.ble-academy .takeaways {
  background: #f3f8fb;
  padding: var(--academy-space-lg);
  border-radius: 10px;
  margin: var(--academy-space-xl) 0;
  scroll-margin-top: 22px;
}
.ble-academy .takeaways h2 {
  margin-top: 6px;
}
.ble-academy .takeaways ul {
  padding-left: 20px;
  margin: 0;
}
.ble-academy .takeaways li {
  margin: 7px 0;
}
.ble-academy .references {
  margin: 30px 0;
  scroll-margin-top: 22px;
}
.ble-academy .references h2 {
  font-size: 1.25rem;
}
.ble-academy .references ul {
  padding-left: 20px;
  font-size: 0.88rem;
}
.ble-academy .lesson-complete {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 20px 0;
}
.ble-academy .lesson-complete p {
  margin: 2px 0 0;
  color: #728697;
  font-size: 0.8rem;
}
.ble-academy .lesson-next {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 25px;
}
.ble-academy .lesson-next a {
  flex: 1;
  max-width: 48%;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  border: 1px solid var(--line);
  padding: 16px;
  border-radius: 8px;
}
.ble-academy .lesson-next a:last-child {
  margin-left: auto;
  text-align: right;
}
.ble-academy .lesson-next small {
  color: #6b8ba0;
  font-size: 0.75rem;
}
.ble-academy .lesson-next strong {
  color: var(--navy);
  font-size: 0.87rem;
}
@media (max-width: 1279px) {
  .ble-academy .module-cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .ble-academy .journey-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ble-academy .journey-card:nth-child(2):after {
    display: none;
  }
  .ble-academy .lesson-grid {
    grid-template-columns: 205px minmax(0, 760px);
    justify-content: start;
  }
  .ble-academy .lesson-toc {
    display: none;
  }
}
@media (max-width: 900px) {
  .ble-academy .lesson-grid {
    grid-template-columns: 1fr;
  }
  .ble-academy .mobile-curriculum {
    display: inline-flex !important;
    margin-bottom: 14px;
  }
  .ble-academy .curriculum {
    display: none;
    position: static;
    max-height: none;
  }
  .ble-academy .curriculum.open {
    display: block;
  }
}
@media (max-width: 760px) {
  .ble-academy .academy-container {
    width: min(100% - 32px, 640px);
  }
  .ble-academy .hero-grid {
    grid-template-columns: 1fr;
    padding-block: 49px 45px;
    gap: 20px;
  }
  .ble-academy .hero-text h1 {
    font-size: clamp(2.7rem, 10vw, 4rem);
  }
  .ble-academy .hero-visual {
    min-height: 300px;
  }
  .ble-academy .visual-glow {
    width: 250px;
    height: 250px;
  }
  .ble-academy .journey-section,
  .ble-academy .curriculum-section {
    padding: 55px 0;
  }
  .ble-academy .curriculum-heading {
    align-items: start;
  }
  .ble-academy .curriculum-count {
    display: none;
  }
  .ble-academy .search-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .ble-academy .webapp-inner {
    align-items: start;
    flex-direction: column;
  }
  .ble-academy .module-hero {
    padding: 26px;
  }
  .ble-academy .module-symbol {
    display: none;
  }
  .ble-academy .module-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ble-academy .lesson-header h1 {
    font-size: 2.4rem;
  }
}
@media (max-width: 520px) {
  .ble-academy .module-cards,
  .ble-academy .journey-grid {
    grid-template-columns: 1fr;
  }
  .ble-academy .journey-card {
    min-height: 0;
  }
  .ble-academy .journey-card:after {
    display: none;
  }
  .ble-academy .visual-body {
    padding: 34px 12px;
  }
  .ble-academy .visual-device {
    width: 100px;
  }
  .ble-academy .device-icon {
    width: 58px;
    height: 58px;
  }
  .ble-academy .visual-label {
    display: none;
  }
  .ble-academy .visual-output {
    font-size: 0.65rem;
  }
  .ble-academy .module-lesson-list li {
    gap: 10px;
    align-items: flex-start;
  }
  .ble-academy .lesson-status {
    font-size: 0.68rem;
  }
  .ble-academy .concept-diagram {
    gap: 8px;
    padding: 20px 8px;
  }
  .ble-academy .exercise-top,
  .ble-academy .exercise-needs,
  .ble-academy .exercise-bottom {
    padding-left: 19px;
    padding-right: 19px;
  }
  .ble-academy .exercise-steps,
  .ble-academy .exercise-commands,
  .ble-academy .example-output {
    padding-left: 19px;
    padding-right: 19px;
  }
  .ble-academy .exercise-tips {
    margin-left: 19px;
    margin-right: 19px;
  }
  .ble-academy .lesson-next {
    flex-direction: column;
  }
  .ble-academy .lesson-next a {
    max-width: 100%;
  }
  .ble-academy .lesson-next a:last-child {
    margin-left: 0;
    text-align: left;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ble-academy *,
  .ble-academy *:before,
  .ble-academy *:after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
.ble-academy .exercise-guide {
  padding: 0 26px;
  font-size: 0.8rem;
  color: #688396;
  margin: 0 0 20px;
}
.ble-academy .exercise-guide a {
  font-weight: 600;
}
.ble-academy .exercise-screenshot {
  margin: 0;
  max-width: 250px;
}
.ble-academy .exercise-screenshot img {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid #d8e5ea;
  border-radius: 9px;
}
.ble-academy .exercise-screenshot figcaption {
  font-size: 0.72rem;
  line-height: 1.4;
  color: #6a8191;
  margin-top: 7px;
}
@media (max-width: 700px) {
  .ble-academy .exercise-setup {
    grid-template-columns: 1fr;
    padding: 18px 19px;
  }
  .ble-academy .exercise-screenshot {
    max-width: 320px;
  }
}
.academy-header-spacer {
  height: var(--academy-header-height, 128px);
}
@media (max-width: 760px) {
  .academy-header-spacer {
    height: var(--academy-header-height, 152px);
  }
}
.ble-academy .concept-diagram figcaption {
  font-size: 0.77rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #407b99;
  text-transform: uppercase;
  margin-bottom: 17px;
}
.ble-academy .diagram-items {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 10px;
}
.ble-academy .diagram-step {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  background: #fff;
  border: 1px solid #cfe2ec;
  border-radius: 10px;
  padding: 14px;
}
.ble-academy .diagram-step-number {
  font-size: 0.7rem;
  font-weight: 600;
  color: #128bb0;
  margin-bottom: 14px;
}
.ble-academy .diagram-step strong {
  font-size: 0.85rem;
  color: #153f5b;
}
.ble-academy .diagram-step small {
  font-size: 0.72rem;
  color: #668193;
  line-height: 1.4;
}
.ble-academy .diagram-arrow {
  align-self: center;
  font-size: 1.25rem;
  color: #3aaac3;
  font-weight: 600;
}
.ble-academy .diagram-compare .diagram-arrow {
  color: #6e8ea0;
}
@media (max-width: 520px) {
  .ble-academy .diagram-items {
    flex-direction: column;
  }
  .ble-academy .diagram-arrow {
    transform: rotate(90deg);
  }
  .ble-academy .diagram-compare .diagram-arrow {
    transform: none;
  }
}
@media (max-width: 760px) {
  .ble-academy .hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .ble-academy .hero-text,
  .ble-academy .hero-visual {
    min-width: 0;
  }
  .ble-academy .hero-visual {
    width: 100%;
  }
  .ble-academy .visual-panel {
    min-width: 0;
  }
  .ble-academy .hero-text h1 {
    overflow-wrap: normal;
  }
  .ble-academy .hero-actions .academy-button {
    max-width: 100%;
  }
}
.ble-academy .diagram-roles .diagram-arrow,
.ble-academy .diagram-advertising .diagram-arrow {
  display: none;
}
.ble-academy .diagram-roles .diagram-items,
.ble-academy .diagram-advertising .diagram-items {
  gap: 12px;
}
.ble-academy .diagram-advertising .diagram-step:first-child {
  border-color: #9dd5e3;
  background: #f7fcfd;
}
.ble-academy [id] {
  scroll-margin-top: calc(var(--academy-header-height, 120px) + 18px);
}
.ble-academy .module-objectives {
  padding-left: 19px;
  margin: 8px 0 20px;
  color: #617789;
  font-size: 0.85rem;
}
.ble-academy .module-objectives li {
  margin: 7px 0;
}
.ble-academy .academy-video-section {
  margin: var(--academy-space-xl) 0 0;
}
.ble-academy .academy-video-section h2 {
  font-size: 1.65rem;
  margin: 8px 0 12px;
}
.ble-academy .academy-video-section > p {
  color: #526b7d;
  line-height: 1.7;
}
.ble-academy .academy-video {
  width: 100%;
  aspect-ratio: 16/9;
  background: #102f49;
  border: 1px solid #d4e5ec;
  border-radius: 10px;
  overflow: hidden;
}
.ble-academy .academy-video iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.ble-academy .academy-video-section .video-fallback {
  font-size: 0.82rem;
  margin: 10px 0 0;
}
.ble-academy .video-fallback a {
  font-weight: 600;
}
.ble-academy .academy-svg-figure {
  max-width: 100%;
  margin: 25px 0 27px;
  padding: 12px;
  overflow-x: auto;
  border: 1px solid #d7e7ed;
  border-radius: 12px;
  background: #f4fbfe;
}
.ble-academy .academy-svg-figure img {
  display: block;
  width: 100%;
  height: auto;
}
.ble-academy .academy-svg-figure figcaption {
  margin: 10px 3px 2px;
  color: #557184;
  font-size: .78rem;
  line-height: 1.5;
}
.ble-academy .academy-svg-figure:focus-visible {
  outline: 3px solid #198cb4;
  outline-offset: 2px;
}
.ble-academy .lesson-section h3 {
  margin: 23px 0 8px;
  color: #183f59;
  font-size: 1.13rem;
}
.ble-academy .academy-projects {
  display: grid;
  gap: 12px;
  margin: 23px 0;
}
.ble-academy .academy-projects article {
  padding: 19px 20px;
  border: 1px solid #d3e4eb;
  border-radius: 10px;
  background: #f8fcfd;
}
.ble-academy .academy-projects h3 { margin-top: 0; }
.ble-academy .academy-projects p { margin: 0 0 10px; }
.ble-academy .academy-projects a { font-weight: 600; }
.ble-academy .stack-explorer {
  padding: 20px;
  border: 1px solid #d1e4ec;
  border-radius: 12px;
  background: #f6fbfd;
}
.ble-academy .stack-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ble-academy .stack-controls button {
  padding: 8px 12px;
  border: 1px solid #aacddb;
  border-radius: 7px;
  background: #fff;
  color: #16445d;
  font: inherit;
  font-size: .82rem;
  cursor: pointer;
}
.ble-academy .stack-controls button:hover,
.ble-academy .stack-controls button[aria-pressed="true"] {
  border-color: #158fb0;
  background: #e3f7fb;
}
.ble-academy .stack-controls button:focus-visible {
  outline: 3px solid #198cb4;
  outline-offset: 2px;
}
.ble-academy .stack-detail { min-height: 2.8em; margin: 16px 0 0; }
@media (max-width: 600px) {
  .ble-academy .academy-svg-figure img { min-width: 760px; }
}
