/**
 * Interactive hub diagram (D3) on Actuarial University — study materials section.
 */
.actu-platform-hub-embed-shell {
  max-width: 640px;
  margin: 0 auto;
}

.actu-platform-hub-wrapper {
  width: 100%;
}

.actu-platform-hub-mount {
  width: 100%;
  max-width: 640px;
  margin: 0 auto 40px;
}

@media (max-width: 767.98px) {
  /* Actuarial University hub section: extra space below the diagram before CTAs. */
  section.static-pages-study-materials--actu-hub {
    padding-bottom: 10rem !important;
  }

  /* Cancel .col-* horizontal gutter so the SVG can use the full row width inside the container. */
  .actu-platform-hub-embed-shell {
    max-width: none;
    margin-left: calc(var(--bs-gutter-x, 1.5rem) * -0.5);
    margin-right: calc(var(--bs-gutter-x, 1.5rem) * -0.5);
    margin-bottom: 0;
  }

  .actu-platform-hub-mount {
    max-width: none;
    margin-bottom: 20px;
  }
}

.actu-platform-hub-svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

.actu-platform-hub-svg .actu-hub-node-inner {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.22s ease, filter 0.22s ease;
  cursor: pointer;
  filter: drop-shadow(0 0 0px rgba(44, 125, 136, 0));
}

.actu-platform-hub-svg .actu-hub-node-inner:hover,
.actu-platform-hub-svg .actu-hub-node-inner.actu-hub-node-inner--active {
  transform: scale(1.06);
  filter: drop-shadow(0 0 14px rgba(44, 125, 136, 0.6));
}

.actu-platform-hub-svg .actu-hub-node-circle {
  fill: #ffffff;
  stroke: #e2e8ee;
  stroke-width: 1;
}

.actu-platform-hub-svg .actu-hub-node:focus {
  outline: none;
}

.actu-platform-hub-svg .actu-hub-node:focus .actu-hub-node-circle {
  stroke: #2c7d88;
  stroke-width: 2;
}

.actu-platform-hub-svg .actu-hub-label {
  font-family: "Figtree", system-ui, -apple-system, sans-serif;
  font-size: 17px;
  font-weight: 600;
  fill: #02253b;
  pointer-events: none;
}

.actu-platform-hub-svg .actu-hub-spoke {
  stroke: #c5ced6;
  stroke-width: 1.5;
  stroke-dasharray: 6 5;
}

/* Lightbox-style modal: no card chrome; dismiss by clicking outside the image (Bootstrap mousedown on .modal). */
.actu-platform-hub-modal {
  --bs-modal-bg: transparent;
}

.actu-platform-hub-modal .modal-dialog.actu-platform-hub-modal-dialog {
  max-width: min(96vw, 920px);
  margin: 1rem auto;
  pointer-events: none;
}

.actu-platform-hub-modal .modal-content.actu-platform-hub-modal-content {
  background: transparent;
  border: 0;
  box-shadow: none;
  pointer-events: none;
}

.actu-platform-hub-modal .actu-platform-hub-modal-body {
  padding: 0;
  text-align: center;
  pointer-events: none;
}

.actu-platform-hub-modal .actu-platform-hub-modal-img {
  max-height: min(85vh, 640px);
  width: auto;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  vertical-align: middle;
  pointer-events: auto;
  filter: drop-shadow(0 8px 32px rgba(0, 0, 0, 0.35));
}
