.asp-structura {
  --structura-action: #0058D2;       /* interactive blue */
  --structura-ink: #121212;
  --structura-line: rgba(0, 53, 126, .28);
  --structura-card-border: rgba(0, 53, 126, .16);
  --structura-panel: #F5F8FD;
  --structura-panel-border: #E4EEFB;
  --structura-radius: 8px;
  --structura-font: 'Onest', system-ui, -apple-system, sans-serif;

  font-family: var(--structura-font);
  color: var(--structura-ink);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  padding: 0;
}

.asp-structura *,
.asp-structura *::before,
.asp-structura *::after {
  box-sizing: border-box;
}

.asp-structura__wrap,
.asp-structura {
  max-width: 900px;
  margin: 0 auto;
}

/* ── Zoom toolbar ── */
.asp-structura__toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.asp-structura__toolbar > *:first-child {
  margin-right: auto;
}

.asp-structura__toolbar h1,
.asp-structura__toolbar .page-title,
.asp-structura__toolbar :is(h1, h2).page-title {
  margin: 0 auto 0 0;
}

.asp-structura__zbtn {
  font-family: var(--structura-font);
  font-weight: 600;
  font-size: 15px;
  color: var(--color-brand-primary);
  background: #fff;
  border: 1px solid var(--structura-card-border);
  border-radius: 999px;
  height: 38px;
  min-width: 38px;
  padding: 0 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, border-color .15s, color .15s;
}

.asp-structura__zbtn:hover {
  background: #E8F0FB;
  border-color: var(--structura-action);
}

.asp-structura__zbtn:active {
  background: #CCDEF6;
}

.asp-structura__zbtn--label {
  min-width: 60px;
  font-variant-numeric: tabular-nums;
}

/* ── Pan/zoom viewport ── */
.asp-structura__viewport {
  height: auto; overflow: hidden; overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  background: #fff;
  border-radius: 12px;
}

.asp-structura__sizer {
  position: relative;
  margin: 0 auto;
}

.asp-structura__stage {
  position: absolute;
  top: 0;
  left: 0;
  width: 1120px;
  transform-origin: top left;
  padding: 8px 0 4px;
}

.asp-structura__viewport.is-grabbing {
  cursor: grabbing;
}

@media (max-width: 900px) {
h1.page-title{font-size: 28px; line-height: 32px;}
}



/* ── Apex ── */
.asp-structura__apex {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.asp-structura__node {
  font-family: var(--structura-font);
  text-align: center;
  border-radius: var(--structura-radius);
  line-height: 1.2;
}

.asp-structura__node--council {
  background: var(--blue-sky-100);
  border: 1.5px solid var(--color-brand-primary);
  color: var(--color-brand-primary);
  font-weight: 700;
  font-size: 20px;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 16px 40px;
  min-width: 460px;
}

.asp-structura__node--director {
  background: var(--color-brand-primary);
  color: #fff;
  font-weight: 700;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 15px 44px;
  min-width: 340px;
}

/* ── Connectors ── */
.asp-structura__v-line {
  width: 2px;
  background: var(--structura-line);
  margin: 0 auto;
}

.asp-structura__v-line--28 {
  height: 28px;
}

.asp-structura__bar {
  height: 2px;
  width: 66.6%;
  background: var(--structura-line);
  margin: 0 auto;
}

/* ── Columns ── */
.asp-structura__cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.asp-structura__col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.asp-structura__drop {
  width: 2px;
  background: var(--structura-line);
  align-self: center;
}

.asp-structura__drop--head {
  height: 24px;
}

.asp-structura__drop--mid {
  height: 18px;
}

.asp-structura__drop--center {
  height: 94px; /* keeps all three panels top-aligned */
}

.asp-structura__node--adjunct {
  background: var(--color-brand-primary);
  color: #fff;
  font-weight: 600;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 0 18px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-radius: var(--structura-radius);
}

.asp-structura__panel {
  background: var(--structura-panel);
  border: 1px solid var(--structura-panel-border);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
}

.asp-structura__unit {
  background: #fff;
  border: 1px solid var(--structura-card-border);
  border-radius: var(--structura-radius);
  color: var(--color-brand-primary);
  font-weight: 500;
  font-size: 15px;
  line-height: 1.4;
  text-align: center;
  padding: 14px 16px;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.asp-structura__unit:hover {
  border-color: var(--structura-action);
  box-shadow: 0 0 .5px rgba(0, 0, 0, .15), 0 1px 3px rgba(0, 0, 0, .08), 0 5px 12px rgba(0, 0, 0, .08);
  transform: translateY(-1px);
}
