/* =========================================================
   BITWISE ACADEMY
   PRACTICAL LEARNING PAGE
   DARK BLUE + BLUE + MAROON + WHITE
   Page-scoped only. Header/footer remain on the existing site CSS.
========================================================= */

.bw-practical-page,
.bw-practical-page * {
  box-sizing: border-box;
}

.bw-practical-page {
  --pl-navy: #061d49;
  --pl-navy-dark: #020d25;
  --pl-navy-soft: #0a2b5d;
  --pl-blue: #075fc7;
  --pl-blue-light: #159cff;
  --pl-maroon: #8f0b2a;
  --pl-red: #c94c4c;
  --pl-white: #ffffff;
  --pl-soft: #f5f8fd;
  --pl-text: #11233f;
  --pl-muted: #66758b;
  --pl-border: rgba(6,29,73,.12);

  width: 100%;
  overflow: hidden;
  color: var(--pl-text);
  background: #fff;
  font-family: "Inter", sans-serif;
}

.bw-practical-page .container {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
}

.pl-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .85s ease, transform .85s ease;
}

.pl-reveal.pl-visible {
  opacity: 1;
  transform: translateY(0);
}

.pl-delay-1 { transition-delay: .12s; }
.pl-delay-2 { transition-delay: .24s; }
.pl-delay-3 { transition-delay: .36s; }

.pl-kicker {
  display: inline-block;
  margin-bottom: 15px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 3px;
  color: var(--pl-maroon);
}

.pl-section-heading {
  max-width: 800px;
  margin: 0 auto 55px;
  text-align: center;
}

.pl-section-heading h2,
.pl-review-heading h2 {
  margin: 0;
  font-size: clamp(35px, 4.5vw, 57px);
  line-height: 1.08;
  letter-spacing: -2px;
}

.pl-section-heading h2 span,
.pl-review-heading h2 span,
.pl-intro h2 span,
.pl-journal-copy h2 span,
.pl-challenge-copy h2 span,
.pl-mentor-copy h2 span,
.pl-final-inner h2 span {
  color: var(--pl-maroon);
}

.pl-section-heading p {
  max-width: 700px;
  margin: 19px auto 0;
  color: var(--pl-muted);
  font-size: 15px;
  line-height: 1.8;
}

.pl-light h2 {
  color: #fff;
}

.pl-light p {
  color: rgba(255,255,255,.68);
}

/* =========================================================
   BUTTONS
========================================================= */

.pl-btn {
  min-height: 51px;
  padding: 13px 21px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
  transition: transform .3s ease, box-shadow .3s ease, filter .3s ease;
}

.pl-btn:hover {
  transform: translateY(-4px);
  filter: brightness(1.06);
}

.pl-btn-red {
  color: #fff;
  background: linear-gradient(135deg, #8f0b2a 0%, #c94c4c 55%, #075fc7 145%);
  box-shadow: 0 16px 35px rgba(143,11,42,.27);
}

.pl-btn-outline {
  color: #fff;
  border: 1px solid rgba(255,255,255,.23);
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
}

.pl-btn-dark {
  color: #fff;
  background: linear-gradient(135deg, #061d49, #03122f);
  box-shadow: 0 15px 35px rgba(6,29,73,.18);
}

/* =========================================================
   HERO
========================================================= */

.pl-hero {
  min-height: 760px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 82% 26%, rgba(21,156,255,.28), transparent 27%),
    radial-gradient(circle at 18% 82%, rgba(143,11,42,.34), transparent 31%),
    radial-gradient(circle at 68% 100%, rgba(201,76,76,.12), transparent 25%),
    linear-gradient(120deg, #020d25 0%, #061d49 52%, #082e69 78%, #3d091d 145%);
}

.pl-hero-grid {
  position: absolute;
  inset: 0;
  opacity: .13;
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: linear-gradient(to right, black, transparent 90%);
}

.pl-hero-glow {
  position: absolute;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  filter: blur(90px);
  pointer-events: none;
}

.pl-blue-glow {
  right: 18%;
  top: 10%;
  background: rgba(21,156,255,.13);
  animation: plGlowBlue 7s ease-in-out infinite;
}

.pl-red-glow {
  left: 26%;
  bottom: -150px;
  background: rgba(143,11,42,.18);
  animation: plGlowRed 8s ease-in-out infinite;
}

.pl-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 65px;
  align-items: center;
}

.pl-eyebrow {
  display: inline-block;
  margin-bottom: 20px;
  color: #ef6969;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 3px;
}

.pl-hero h1 {
  max-width: 680px;
  margin: 0;
  font-size: clamp(46px, 6vw, 78px);
  line-height: 1.02;
  letter-spacing: -3px;
}

.pl-hero h1 span {
  display: block;
  color: var(--pl-blue-light);
}

.pl-hero-copy > p {
  max-width: 640px;
  margin: 28px 0 30px;
  color: rgba(255,255,255,.82);
  font-size: 18px;
  line-height: 1.7;
}

.pl-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.pl-hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 26px;
}

.pl-hero-tags span {
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 99px;
  background: rgba(255,255,255,.045);
  color: rgba(255,255,255,.68);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1px;
}

/* console */
.pl-console-wrap {
  position: relative;
}

.pl-console {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 22px;
  background: rgba(2,13,37,.75);
  box-shadow:
    0 35px 90px rgba(0,0,0,.38),
    0 0 55px rgba(21,156,255,.08),
    0 0 45px rgba(143,11,42,.07);
  backdrop-filter: blur(16px);
  animation: plConsoleFloat 6s ease-in-out infinite;
}

.pl-console::after {
  content: "";
  position: absolute;
  inset: -30%;
  background: linear-gradient(110deg, transparent 42%, rgba(255,255,255,.09) 49%, transparent 56%);
  transform: translateX(-55%);
  animation: plShine 7s ease-in-out infinite;
  pointer-events: none;
}

.pl-console-top {
  display: flex;
  justify-content: space-between;
  padding: 15px 17px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  color: rgba(255,255,255,.58);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1.5px;
}

.pl-console-top > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pl-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #159cff;
  box-shadow: 0 0 12px #159cff;
  animation: plPulse 2s infinite;
}

.pl-console-main {
  padding: 23px;
}

.pl-market-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pl-market-title small {
  display: block;
  margin-bottom: 4px;
  color: rgba(255,255,255,.43);
  font-size: 8px;
  letter-spacing: 1.5px;
}

.pl-market-title strong {
  font-size: 19px;
}

.pl-market-badge {
  padding: 7px 10px;
  border-radius: 5px;
  color: #ef6969;
  background: rgba(143,11,42,.18);
  border: 1px solid rgba(143,11,42,.28);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 1px;
}

.pl-chart {
  height: 245px;
  position: relative;
  margin: 23px 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    #041735;
  background-size: 45px 45px;
}

.pl-chart-line {
  position: absolute;
  width: 150%;
  height: 1px;
  left: -20%;
  top: 55%;
  background: rgba(21,156,255,.15);
  transform: rotate(-8deg);
}

.pl-chart-line-2 {
  top: 34%;
  background: rgba(143,11,42,.16);
  transform: rotate(5deg);
}

.pl-chart-line-3 {
  top: 72%;
  background: rgba(255,255,255,.08);
  transform: rotate(-2deg);
}

.pl-candle {
  position: absolute;
  width: 9px;
  border-radius: 2px;
  background: #159cff;
  box-shadow: 0 0 10px rgba(21,156,255,.24);
}

.pl-candle::before,
.pl-candle::after {
  content: "";
  position: absolute;
  left: 4px;
  width: 1px;
  background: currentColor;
}

.pl-candle::before { top: -13px; height: 13px; }
.pl-candle::after { bottom: -13px; height: 13px; }

.c1 { left: 15%; top: 57%; height: 35px; }
.c2 { left: 27%; top: 47%; height: 48px; }
.c3 { left: 40%; top: 52%; height: 28px; background:#c94c4c; }
.c4 { left: 52%; top: 35%; height: 53px; }
.c5 { left: 66%; top: 40%; height: 34px; background:#c94c4c; }
.c6 { left: 80%; top: 24%; height: 55px; }

.pl-console-stats {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 10px;
}

.pl-console-stats div {
  padding: 13px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 9px;
  background: rgba(255,255,255,.035);
}

.pl-console-stats small {
  display: block;
  margin-bottom: 6px;
  color: rgba(255,255,255,.4);
  font-size: 7px;
  letter-spacing: 1px;
}

.pl-console-stats b {
  font-size: 11px;
}

.pl-status {
  color: #ef6969;
}

.pl-hero-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(90deg, rgba(6,29,73,.85), rgba(143,11,42,.2), rgba(6,29,73,.85));
  color: rgba(255,255,255,.57);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 3px;
}

.pl-hero-bottom i {
  width: 22px;
  height: 1px;
  background: linear-gradient(90deg, #159cff, #8f0b2a);
}

/* =========================================================
   INTRO
========================================================= */

.pl-intro {
  padding: 105px 0;
  background: #fff;
}

.pl-intro-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 80px;
  align-items: center;
}

.pl-intro h2,
.pl-journal-copy h2,
.pl-challenge-copy h2,
.pl-mentor-copy h2 {
  margin: 0;
  font-size: clamp(35px,4vw,55px);
  line-height: 1.1;
  letter-spacing: -1.7px;
}

.pl-intro-copy > p {
  margin: 0 0 24px;
  color: var(--pl-muted);
  font-size: 16px;
  line-height: 1.85;
}

.pl-note {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  padding: 18px;
  border-left: 3px solid var(--pl-maroon);
  background: linear-gradient(90deg, rgba(143,11,42,.055), rgba(7,95,199,.035));
}

.pl-note i {
  color: var(--pl-maroon);
  margin-top: 2px;
}

.pl-note span {
  color: #4f5f75;
  font-size: 12px;
  line-height: 1.65;
}

/* =========================================================
   PRACTICE ROOM
========================================================= */

.pl-practice-section {
  position: relative;
  padding: 115px 0;
  color: #fff;
  background:
    radial-gradient(circle at 12% 30%, rgba(21,156,255,.18), transparent 27%),
    radial-gradient(circle at 88% 75%, rgba(143,11,42,.24), transparent 31%),
    linear-gradient(135deg,#020d25,#061d49 62%,#35091d 145%);
}

.pl-practice-layout {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 35px;
  align-items: stretch;
}

.pl-practice-screen {
  min-height: 570px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  background: rgba(255,255,255,.035);
  box-shadow: 0 35px 80px rgba(0,0,0,.28);
}

.pl-screen-bar {
  display: flex;
  justify-content: space-between;
  padding: 15px 18px;
  border-bottom: 1px solid rgba(255,255,255,.09);
  color: rgba(255,255,255,.62);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1.5px;
}

.pl-screen-bar i {
  margin-right: 7px;
  color: #159cff;
  font-size: 7px;
}

.pl-screen-body {
  min-height: 510px;
  display: grid;
  grid-template-columns: 155px 1fr;
}

.pl-screen-side {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 18px 10px;
  border-right: 1px solid rgba(255,255,255,.07);
  background: rgba(0,0,0,.12);
}

.pl-screen-side span {
  padding: 12px 10px;
  border-radius: 8px;
  color: rgba(255,255,255,.48);
  font-size: 10px;
}

.pl-screen-side span i {
  width: 20px;
  margin-right: 5px;
}

.pl-screen-side .active {
  color: #fff;
  background: linear-gradient(90deg, rgba(7,95,199,.28), rgba(143,11,42,.16));
  box-shadow: inset 3px 0 #159cff;
}

.pl-screen-chart {
  padding: 25px;
}

.pl-chart-labels {
  display: flex;
  justify-content: space-between;
  margin-bottom: 14px;
  color: rgba(255,255,255,.48);
  font-size: 8px;
  letter-spacing: 1.5px;
}

.pl-chart-labels b {
  color: #ef6969;
}

.pl-big-chart {
  height: 350px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 12px;
  background: #041735;
}

.pl-grid-lines {
  position: absolute;
  inset: 0;
  opacity: .4;
  background:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 55px 55px;
}

.pl-big-chart svg {
  position: absolute;
  inset: 35px 10px 15px;
  width: calc(100% - 20px);
  height: calc(100% - 50px);
}

.pl-order-row {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 17px;
}

.pl-order-row button {
  border: 0;
  border-radius: 6px;
  padding: 10px 12px;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
}

.pl-buy {
  background: linear-gradient(135deg,#075fc7,#159cff);
}

.pl-sell {
  background: linear-gradient(135deg,#8f0b2a,#c94c4c);
}

.pl-order-row span {
  margin-left: auto;
  color: rgba(255,255,255,.38);
  font-size: 8px;
}

.pl-feature-stack {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* =========================================================
   CARD SYSTEM + CENTER LOGO WATERMARK
========================================================= */

.pl-card,
.pl-tool-card,
.pl-analytics-card,
.pl-challenge-board,
.pl-journal-paper {
  position: relative;
  overflow: hidden;
}

.pl-card::before,
.pl-tool-card::before,
.pl-analytics-card::before,
.pl-challenge-board::before,
.pl-journal-paper::before {
  content: "";
  position: absolute;
  width: 125px;
  height: 125px;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  background-image: url("assets/bitwise-logo-nav-footer-clean-final.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .055;
  filter: grayscale(1) brightness(2);
  pointer-events: none;
  z-index: 0;
}

.pl-card > *,
.pl-tool-card > *,
.pl-analytics-card > *,
.pl-challenge-board > *,
.pl-journal-paper > * {
  position: relative;
  z-index: 1;
}

.pl-card {
  min-height: 270px;
  padding: 27px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 15px;
  background: rgba(255,255,255,.045);
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.pl-card::after,
.pl-tool-card::after,
.pl-analytics-card::after {
  content: "";
  position: absolute;
  inset: -80%;
  background: linear-gradient(110deg, transparent 44%, rgba(255,255,255,.13) 50%, transparent 56%);
  transform: translateX(-40%);
  animation: plCardShine 8s ease-in-out infinite;
  pointer-events: none;
}

.pl-card:hover {
  transform: translateY(-7px);
  border-color: rgba(21,156,255,.35);
  box-shadow: 0 22px 50px rgba(0,0,0,.24), 0 0 30px rgba(21,156,255,.06);
}

.pl-card-red:hover {
  border-color: rgba(143,11,42,.55);
  box-shadow: 0 22px 50px rgba(143,11,42,.14);
}

.pl-card-icon {
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(135deg,#075fc7,#159cff);
  box-shadow: 0 12px 25px rgba(7,95,199,.22);
}

.pl-card-red .pl-card-icon {
  background: linear-gradient(135deg,#8f0b2a,#c94c4c);
  box-shadow: 0 12px 25px rgba(143,11,42,.24);
}

.pl-card-number {
  position: absolute;
  top: 22px;
  right: 24px;
  color: rgba(255,255,255,.32);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2px;
}

.pl-card h3 {
  margin: 25px 0 9px;
  font-size: 19px;
}

.pl-card p {
  margin: 0;
  color: rgba(255,255,255,.55);
  font-size: 11px;
  line-height: 1.7;
}

.pl-watermark {
  position: absolute !important;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  font-size: 26px;
  font-weight: 900;
  letter-spacing: 5px;
  color: rgba(255,255,255,.035);
  white-space: nowrap;
  pointer-events: none;
}

/* =========================================================
   TOOLS
========================================================= */

.pl-tools-section {
  padding: 115px 0 100px;
  background: #fff;
}

.pl-tools-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 16px;
}

.pl-tool-card {
  min-height: 235px;
  padding: 25px;
  border: 1px solid var(--pl-border);
  border-radius: 14px;
  background:
    linear-gradient(145deg,#fff,#f5f8fd);
  box-shadow: 0 14px 35px rgba(6,29,73,.055);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.pl-tool-card:hover {
  transform: translateY(-7px);
  border-color: rgba(7,95,199,.28);
  box-shadow: 0 25px 55px rgba(6,29,73,.10);
}

.pl-tool-card.pl-red-tool:hover {
  border-color: rgba(143,11,42,.35);
  box-shadow: 0 25px 55px rgba(143,11,42,.08);
}

.pl-tool-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pl-tool-top span {
  color: var(--pl-blue);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 2px;
}

.pl-red-tool .pl-tool-top span,
.pl-red-tool .pl-tool-top i {
  color: var(--pl-maroon);
}

.pl-tool-top i {
  color: var(--pl-blue);
  font-size: 18px;
}

.pl-tool-card h3 {
  margin: 27px 0 10px;
  color: var(--pl-navy);
  font-size: 16px;
}

.pl-tool-card p {
  margin: 0;
  color: var(--pl-muted);
  font-size: 11px;
  line-height: 1.75;
}

.pl-tool-line {
  width: 38px;
  height: 2px;
  margin-top: 20px;
  background: linear-gradient(90deg,#075fc7,#159cff);
}

.pl-red-tool .pl-tool-line {
  background: linear-gradient(90deg,#8f0b2a,#c94c4c);
}

.pl-tool-footnote {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 25px;
  padding: 15px 18px;
  border-left: 3px solid var(--pl-maroon);
  background: #fff6f7;
  color: #65748a;
  font-size: 11px;
}

.pl-tool-footnote i {
  color: var(--pl-maroon);
}

/* =========================================================
   JOURNAL
========================================================= */

.pl-journal-section {
  padding: 120px 0;
  background:
    radial-gradient(circle at 85% 30%, rgba(21,156,255,.10), transparent 27%),
    linear-gradient(180deg,#f5f8fd,#fff);
}

.pl-journal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 90px;
  align-items: center;
}

.pl-journal-paper {
  min-height: 535px;
  padding: 28px;
  border: 1px solid rgba(6,29,73,.12);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 30px 75px rgba(6,29,73,.11);
}

.pl-journal-paper::before {
  opacity: .045;
  filter: grayscale(1);
}

.pl-paper-watermark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%) rotate(-20deg);
  color: rgba(143,11,42,.045);
  font-size: 50px;
  font-weight: 900;
  letter-spacing: 8px;
  pointer-events: none;
}

.pl-paper-top {
  display: flex;
  justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--pl-navy);
  color: var(--pl-navy);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 2px;
}

.pl-paper-top b {
  color: var(--pl-maroon);
  font-size: 8px;
}

.pl-journal-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 23px;
}

.pl-journal-fields div {
  padding: 13px;
  border: 1px solid rgba(6,29,73,.09);
  border-radius: 8px;
  background: #f8faff;
}

.pl-journal-fields small,
.pl-journal-note span {
  display: block;
  margin-bottom: 5px;
  color: #7b8797;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 1px;
}

.pl-journal-fields strong {
  color: var(--pl-navy);
  font-size: 10px;
}

.pl-journal-note {
  margin-top: 15px;
  padding: 15px;
  border: 1px solid rgba(6,29,73,.09);
  border-radius: 8px;
}

.pl-journal-note div {
  height: 24px;
  margin-top: 8px;
  border-bottom: 1px solid rgba(6,29,73,.09);
}

.pl-journal-copy > p {
  margin: 22px 0 28px;
  color: var(--pl-muted);
  font-size: 15px;
  line-height: 1.8;
}

.pl-journal-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
}

.pl-journal-list span,
.pl-mentor-points span {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  color: #40516a;
  font-size: 11px;
  line-height: 1.55;
}

.pl-journal-list i,
.pl-mentor-points i {
  color: var(--pl-maroon);
  margin-top: 2px;
}

/* =========================================================
   ANALYTICS
========================================================= */

.pl-analytics-section {
  padding: 115px 0;
  color: #fff;
  background:
    radial-gradient(circle at 14% 20%, rgba(21,156,255,.18), transparent 27%),
    radial-gradient(circle at 88% 75%, rgba(143,11,42,.25), transparent 30%),
    linear-gradient(135deg,#020d25,#061d49 60%,#35091d);
}

.pl-analytics-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 15px;
}

.pl-analytics-card {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 25px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 13px;
  background: rgba(255,255,255,.045);
  transition: transform .35s ease, border-color .35s ease;
}

.pl-analytics-card:hover {
  transform: translateY(-6px);
  border-color: rgba(21,156,255,.35);
}

.pl-red-analytics:hover {
  border-color: rgba(143,11,42,.55);
}

.pl-analytics-card > i {
  margin-bottom: 22px;
  color: #159cff;
  font-size: 20px;
}

.pl-red-analytics > i {
  color: #ef6969;
}

.pl-analytics-card strong {
  font-size: 15px;
}

.pl-analytics-card > span:not(.pl-watermark) {
  margin-top: 7px;
  color: rgba(255,255,255,.48);
  font-size: 10px;
  line-height: 1.5;
}

.pl-summary-bar {
  display: grid;
  grid-template-columns: 190px 1fr auto;
  gap: 20px;
  align-items: center;
  margin-top: 25px;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 10px;
  background: rgba(255,255,255,.035);
}

.pl-summary-bar > span,
.pl-summary-bar > b {
  font-size: 8px;
  letter-spacing: 1.3px;
}

.pl-summary-bar > span {
  color: rgba(255,255,255,.48);
}

.pl-summary-bar > b {
  color: #ef6969;
}

.pl-summary-track {
  height: 5px;
  overflow: hidden;
  border-radius: 20px;
  background: rgba(255,255,255,.08);
}

.pl-summary-track span {
  display: block;
  width: 72%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,#075fc7,#159cff,#8f0b2a);
  animation: plProgress 4s ease-in-out infinite alternate;
}

/* =========================================================
   REVIEW FLOW
========================================================= */

.pl-review-section {
  padding: 115px 0;
  background: #fff;
}

.pl-review-heading {
  max-width: 850px;
  margin: 0 auto 65px;
  text-align: center;
}

.pl-review-flow {
  display: grid;
  grid-template-columns: 1fr 70px 1fr 70px 1fr 70px 1fr;
  align-items: center;
}

.pl-review-step {
  min-height: 220px;
  position: relative;
  padding: 30px 22px;
  border: 1px solid rgba(6,29,73,.11);
  border-radius: 15px;
  background: linear-gradient(145deg,#fff,#f5f8fd);
  box-shadow: 0 15px 35px rgba(6,29,73,.06);
  text-align: center;
  transition: transform .35s ease, box-shadow .35s ease;
}

.pl-review-step:hover {
  transform: translateY(-7px);
  box-shadow: 0 25px 55px rgba(6,29,73,.10);
}

.pl-review-step > span {
  position: absolute;
  top: 15px;
  right: 18px;
  color: var(--pl-blue);
  font-size: 9px;
  font-weight: 900;
}

.pl-review-step i {
  width: 55px;
  height: 55px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 20px auto 18px;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg,#075fc7,#159cff);
  box-shadow: 0 12px 25px rgba(7,95,199,.22);
}

.pl-review-step strong {
  display: block;
  color: var(--pl-navy);
  font-size: 17px;
}

.pl-review-step small {
  display: block;
  margin-top: 9px;
  color: var(--pl-muted);
  font-size: 10px;
  line-height: 1.5;
}

.pl-review-step.red-step i {
  background: linear-gradient(135deg,#8f0b2a,#c94c4c);
  box-shadow: 0 12px 25px rgba(143,11,42,.22);
}

.pl-review-step.red-step > span {
  color: var(--pl-maroon);
}

.pl-review-connector {
  height: 2px;
  background: linear-gradient(90deg,#075fc7,#8f0b2a);
  position: relative;
}

.pl-review-connector::after {
  content: "›";
  position: absolute;
  right: -2px;
  top: 50%;
  transform: translateY(-58%);
  color: var(--pl-maroon);
  font-size: 25px;
}

/* =========================================================
   CHALLENGES
========================================================= */

.pl-challenges-section {
  padding: 115px 0;
  background:
    linear-gradient(135deg,#f5f8fd 0%,#fff 55%,#fff3f5 100%);
}

.pl-challenges-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 80px;
  align-items: center;
}

.pl-challenge-copy p {
  max-width: 570px;
  margin: 22px 0 25px;
  color: var(--pl-muted);
  font-size: 15px;
  line-height: 1.8;
}

.pl-goal-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.pl-goal-pills span {
  padding: 8px 11px;
  border-radius: 99px;
  border: 1px solid rgba(6,29,73,.10);
  color: #4f6078;
  background: #fff;
  font-size: 9px;
  font-weight: 700;
}

.pl-goal-pills span:nth-child(even) {
  border-color: rgba(143,11,42,.18);
  color: var(--pl-maroon);
}

.pl-challenge-board {
  padding: 28px;
  border: 1px solid rgba(6,29,73,.12);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 25px 65px rgba(6,29,73,.10);
}

.pl-board-watermark {
  position: absolute;
  right: 20px;
  bottom: 10px;
  color: rgba(143,11,42,.035);
  font-size: 45px;
  font-weight: 900;
  letter-spacing: 7px;
}

.pl-board-head {
  display: flex;
  justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--pl-navy);
  color: var(--pl-navy);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 2px;
}

.pl-board-head b {
  color: var(--pl-maroon);
}

.pl-goal-row {
  display: grid;
  grid-template-columns: 15px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 19px 4px;
  border-bottom: 1px solid rgba(6,29,73,.08);
}

.pl-goal-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  box-shadow: 0 0 13px currentColor;
}

.pl-goal-dot.blue { color:#159cff; background:#159cff; }
.pl-goal-dot.red { color:#c94c4c; background:#c94c4c; }

.pl-goal-row strong {
  display: block;
  color: var(--pl-navy);
  font-size: 12px;
}

.pl-goal-row small {
  display: block;
  margin-top: 3px;
  color: #7b8797;
  font-size: 9px;
}

.pl-goal-row > b {
  color: var(--pl-blue);
  font-size: 8px;
  letter-spacing: 1px;
}

.pl-goal-row:nth-child(even) > b {
  color: var(--pl-maroon);
}

/* =========================================================
   MENTOR
========================================================= */

.pl-mentor-section {
  padding: 120px 0;
  color: #fff;
  background:
    radial-gradient(circle at 25% 50%, rgba(21,156,255,.14), transparent 25%),
    radial-gradient(circle at 78% 40%, rgba(143,11,42,.22), transparent 30%),
    linear-gradient(135deg,#020d25,#061d49 65%,#35091d);
}

.pl-mentor-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 90px;
  align-items: center;
}

.pl-mentor-visual {
  height: 390px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pl-mentor-orbit {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(21,156,255,.18);
  animation: plOrbit 17s linear infinite;
}

.orbit-one { width: 245px; height: 245px; }
.orbit-two {
  width: 340px;
  height: 340px;
  border-color: rgba(143,11,42,.28);
  animation-direction: reverse;
  animation-duration: 22s;
}

.pl-mentor-core {
  width: 170px;
  height: 170px;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  text-align: center;
  background: radial-gradient(circle at 35% 25%,#0b438e,#03122f 72%);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow:
    0 25px 65px rgba(0,0,0,.35),
    0 0 35px rgba(21,156,255,.12),
    0 0 30px rgba(143,11,42,.08);
  animation: plCorePulse 5s ease-in-out infinite;
}

.pl-mentor-core i {
  margin-bottom: 12px;
  color: #159cff;
  font-size: 25px;
}

.pl-mentor-core span {
  color: #ef6969;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 1.5px;
}

.pl-mentor-core strong {
  margin-top: 4px;
  font-size: 12px;
  letter-spacing: 1px;
}

.pl-mentor-copy p {
  max-width: 650px;
  margin: 22px 0 25px;
  color: rgba(255,255,255,.62);
  font-size: 15px;
  line-height: 1.8;
}

.pl-mentor-copy h2 {
  color: #fff;
}

.pl-mentor-points {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
}

.pl-mentor-points span {
  color: rgba(255,255,255,.66);
}

.pl-mentor-points i {
  color: #ef6969;
}

/* =========================================================
   DISCLAIMER
========================================================= */

.pl-disclaimer {
  padding: 38px 0;
  background: #fff;
}

.pl-disclaimer-box {
  display: flex;
  gap: 17px;
  align-items: flex-start;
  padding: 23px;
  border: 1px solid rgba(143,11,42,.16);
  border-left: 4px solid var(--pl-maroon);
  border-radius: 10px;
  background: linear-gradient(90deg,#fff7f8,#f8faff);
}

.pl-disclaimer-box > i {
  margin-top: 3px;
  color: var(--pl-maroon);
  font-size: 18px;
}

.pl-disclaimer-box strong {
  display: block;
  margin-bottom: 6px;
  color: var(--pl-navy);
  font-size: 13px;
}

.pl-disclaimer-box p {
  margin: 0;
  color: var(--pl-muted);
  font-size: 11px;
  line-height: 1.7;
}

/* =========================================================
   FINAL CTA
========================================================= */

.pl-final-cta {
  position: relative;
  overflow: hidden;
  padding: 105px 0;
  text-align: center;
  background:
    radial-gradient(circle at 80% 25%, rgba(21,156,255,.22), transparent 27%),
    radial-gradient(circle at 20% 75%, rgba(143,11,42,.28), transparent 30%),
    linear-gradient(135deg,#ffffff,#f5f8fd 65%,#fff1f4);
}

.pl-final-glow {
  position: absolute;
  width: 300px;
  height: 300px;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  filter: blur(90px);
  background: rgba(21,156,255,.08);
  animation: plGlowFinal 6s ease-in-out infinite;
}

.pl-final-inner {
  position: relative;
  z-index: 2;
}

.pl-final-inner h2 {
  max-width: 900px;
  margin: 0 auto;
  color: var(--pl-navy);
  font-size: clamp(38px,5vw,63px);
  line-height: 1.06;
  letter-spacing: -2px;
}

.pl-final-inner p {
  max-width: 650px;
  margin: 20px auto 28px;
  color: var(--pl-muted);
  font-size: 15px;
  line-height: 1.8;
}

.pl-final-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
}

/* =========================================================
   KEYFRAMES
========================================================= */

@keyframes plGlowBlue {
  0%,100% { transform: translate3d(0,0,0) scale(1); opacity:.75; }
  50% { transform: translate3d(-25px,25px,0) scale(1.13); opacity:1; }
}

@keyframes plGlowRed {
  0%,100% { transform: translate3d(0,0,0) scale(1); opacity:.65; }
  50% { transform: translate3d(30px,-20px,0) scale(1.12); opacity:1; }
}

@keyframes plConsoleFloat {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

@keyframes plShine {
  0%,55%,100% { transform: translateX(-55%) rotate(0); }
  70% { transform: translateX(55%) rotate(0); }
}

@keyframes plCardShine {
  0%,65%,100% { transform: translateX(-45%); }
  80% { transform: translateX(45%); }
}

@keyframes plPulse {
  0%,100% { opacity:.65; transform:scale(1); }
  50% { opacity:1; transform:scale(1.35); }
}

@keyframes plProgress {
  from { width:62%; }
  to { width:82%; }
}

@keyframes plOrbit {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes plCorePulse {
  0%,100% { box-shadow:0 25px 65px rgba(0,0,0,.35),0 0 35px rgba(21,156,255,.12); }
  50% { box-shadow:0 25px 65px rgba(0,0,0,.35),0 0 55px rgba(21,156,255,.18),0 0 30px rgba(143,11,42,.13); }
}

@keyframes plGlowFinal {
  0%,100% { transform:translate(-50%,-50%) scale(1); opacity:.7; }
  50% { transform:translate(-50%,-50%) scale(1.25); opacity:1; }
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1050px) {
  .pl-hero-inner,
  .pl-intro-grid,
  .pl-journal-grid,
  .pl-challenges-grid,
  .pl-mentor-grid {
    gap: 45px;
  }

  .pl-practice-layout {
    grid-template-columns: 1fr;
  }

  .pl-feature-stack {
    grid-template-columns: repeat(4,1fr);
  }

  .pl-tools-grid,
  .pl-analytics-grid {
    grid-template-columns: repeat(2,1fr);
  }

  .pl-review-flow {
    grid-template-columns: 1fr 35px 1fr;
    row-gap: 15px;
  }

  .pl-review-connector:nth-of-type(4),
  .pl-review-connector:nth-of-type(6) {
    display: none;
  }
}

@media (max-width: 820px) {
  .pl-hero {
    min-height: auto;
    padding: 95px 0 70px;
  }

  .pl-hero-inner,
  .pl-intro-grid,
  .pl-journal-grid,
  .pl-challenges-grid,
  .pl-mentor-grid {
    grid-template-columns: 1fr;
  }

  .pl-hero h1 {
    font-size: clamp(43px,9vw,65px);
  }

  .pl-console {
    max-width: 650px;
    margin: 0 auto;
  }

  .pl-feature-stack {
    grid-template-columns: repeat(2,1fr);
  }

  .pl-review-flow {
    grid-template-columns: 1fr;
  }

  .pl-review-connector {
    width: 2px;
    height: 30px;
    margin: 0 auto;
    background: linear-gradient(180deg,#075fc7,#8f0b2a);
  }

  .pl-review-connector::after {
    content: "↓";
    right: auto;
    left: 50%;
    top: 20px;
    transform: translateX(-50%);
  }

  .pl-mentor-visual {
    order: 2;
  }
}

@media (max-width: 640px) {
  .bw-practical-page .container {
    width: calc(100% - 28px);
  }

  .pl-hero {
    padding-top: 80px;
  }

  .pl-hero h1 {
    font-size: 40px;
    letter-spacing: -1.8px;
  }

  .pl-hero-copy > p {
    font-size: 14px;
  }

  .pl-hero-actions,
  .pl-final-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .pl-hero-bottom {
    gap: 7px;
    font-size: 7px;
    letter-spacing: 1.5px;
  }

  .pl-console-stats {
    grid-template-columns: 1fr;
  }

  .pl-screen-body {
    grid-template-columns: 1fr;
  }

  .pl-screen-side {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.07);
  }

  .pl-screen-side span {
    font-size: 8px;
    padding: 9px 6px;
  }

  .pl-screen-side span i {
    display: block;
    margin: 0 auto 4px;
    text-align: center;
  }

  .pl-screen-chart {
    padding: 15px;
  }

  .pl-big-chart {
    height: 260px;
  }

  .pl-order-row {
    flex-wrap: wrap;
  }

  .pl-order-row span {
    width: 100%;
    margin-left: 0;
  }

  .pl-feature-stack,
  .pl-tools-grid,
  .pl-analytics-grid {
    grid-template-columns: 1fr;
  }

  .pl-card {
    min-height: 220px;
  }

  .pl-journal-fields,
  .pl-journal-list,
  .pl-mentor-points {
    grid-template-columns: 1fr;
  }

  .pl-summary-bar {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .pl-mentor-visual {
    height: 310px;
  }

  .orbit-one { width: 190px; height: 190px; }
  .orbit-two { width: 275px; height: 275px; }

  .pl-mentor-core {
    width: 145px;
    height: 145px;
  }

  .pl-final-inner h2 {
    font-size: 37px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bw-practical-page *,
  .bw-practical-page *::before,
  .bw-practical-page *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* =========================================================
   FOOTER GAP FIX
   Removes unwanted blank space immediately above the footer.
========================================================= */
.bw-practical-page {
  margin-bottom: 24px !important;
}

.bw-practical-page + .footer {
  margin-top: 80px !important;
}
