.none-i { display:none !important; }
.none { display:none; }

.w-10 { width:10% !important; }
.w-8 { width:8% !important; }
.w-7 { width:7% !important; }
.w-6 { width:6% !important; }
.w-5 { width:5% !important; }

.fs-7 { font-size:0.875rem; }
.fs-8 { font-size:0.75rem; }


.input-group > .form-control,
.input-group > .form-select,
.input-group > .form-floating {
	position:relative;
	flex:1 1 auto;
}



.wrkshp-typ-link[data-bs-toggle=collapse] {
  display: flex;
  align-items: center;
}
.wrkshp-typ-link[data-bs-toggle=collapse]::after {
  display: inline-block;
  font-size: 1rem;
  margin-right: 0.5rem;
  margin-left: auto;
  content: "";
  font-family: bootstrap-icons;
  font-weight: bold;
  transition: transform 0.15s ease-in-out;
  opacity: 0.5;
}
.wrkshp-typ-link[data-bs-toggle=collapse][aria-expanded=true] {
  color: #3546F5;
}
.wrkshp-typ-link[data-bs-toggle=collapse][aria-expanded=true]::after {
  transform: rotate(180deg);
}
.wrkshp-typ-link[data-bs-toggle=collapse].active {
  color: #3546F5;
}
.wrkshp-typ-link[data-bs-toggle=collapse]:hover {
  color: #3546f5;
}

/* ============================================
   MOBILE STACKED TABLE
   Reflows table rows into stacked cards on small
   screens so no horizontal scrolling is needed.
   ============================================ */
@media (max-width: 767.98px) {

	/* Neutralize the horizontal scroll wrapper */
	.table-responsive:has(.table-stack) {
		overflow-x: visible;
	}

	/* Make every table part behave like a block */
	.table-stack,
	.table-stack tbody,
	.table-stack tr,
	.table-stack td {
		display: block;
		width: 100% !important;
	}

	/* Each row becomes a self-contained card */
	.table-stack tr {
		margin-bottom: 0.75rem;
		border: 1px solid var(--bs-border-color, #dee2e6);
		border-radius: 0.5rem;
		padding: 0.5rem 0.75rem;
	}

	/* Cells: full width, no nowrap, sensible spacing */
	.table-stack td {
		white-space: normal !important;
		text-align: left !important;
		padding: 0.35rem 0;
		border: 0;
	}

	/* Keep the action button cell aligned nicely */
	.table-stack td.text-end {
		text-align: left !important;
	}

	/* Stretch the action button to full width so it's easy to tap */
	.table-stack td .btn {
		display: block;
		width: 100%;
	}

	/* Hide empty cells (e.g. blank status/access cells) so
	   they don't leave awkward gaps in the stack */
	.table-stack td:empty {
		display: none !important;
	}
	
	.table-stack tr:has(td:nth-child(2):empty) td:nth-child(3) {
		width: 100% !important;
	}
	
	.table-stack td:first-child,
	table.table-card.table-stack td:first-child {
		padding-left:0.5rem !important;
	}
	/* Put cells 2 and 3 side by side instead of stacked */
	.table-stack td:nth-child(2),
	.table-stack td:nth-child(3) {
		display: inline-block;
		width: 50% !important;
		vertical-align: middle;
		box-sizing: border-box;
		text-align: center !important;
	}

	/* Small gap between them */
	.table-stack td:nth-child(4),
	.table-stack td:last-child,
	table.table-card.table-stack td:last-child {
		text-align: center !important;
		padding-right:0 !important;
	}
}


/*SPACEX IPO Banner*/
.stx-banner{
  width:100%;
  background:#eadfc7;
  border-bottom:1px solid rgba(120,90,30,.20);
  font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
.stx-banner__inner{
  max-width:1240px;
  margin:0 auto;
  padding:5px 20px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
}
.stx-banner__msg{
  margin:0;
  font-size:14.5px;
  line-height:1.25;
  letter-spacing:.1px;
  color:#0c2340;
  text-align:center;
}
.stx-banner__lead{
  color:#0c2340;
  font-weight:600;
  margin-right:2px;
}
.stx-banner__cta{
  --glow:216,168,60;          /* gold glow (rgb) */
  flex:none;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 15px;
  font-size:13.5px;
  font-weight:600;
  letter-spacing:.2px;
  color:#fbf6ea;             /* button text */
  text-decoration:none;
  white-space:nowrap;
  background:#bd8f2c;         /* button gold */
  border:1px solid #a87c22;
  border-radius:8px;
  transition:transform .18s ease, box-shadow .25s ease, background .2s ease;
  animation:stxGlow 2.8s ease-in-out infinite;
}
.stx-banner__cta span{ transition:transform .18s ease; }
.stx-banner__cta:hover{
  color:#fbf6ea;             /* keep light text on hover */
  background:#c99a33;
  transform:translateY(-1px);
  box-shadow:0 0 0 1px rgba(var(--glow),.6), 0 0 26px 4px rgba(var(--glow),.6);
  animation:none;            /* hold steady on hover */
}
.stx-banner__cta:hover span{ transform:translateX(3px); }

@keyframes stxGlow{
  0%,100%{ box-shadow:0 0 0 1px rgba(var(--glow),.30), 0 0 10px 1px rgba(var(--glow),.30); }
  50%    { box-shadow:0 0 0 1px rgba(var(--glow),.50), 0 0 20px 3px rgba(var(--glow),.50); }
}
@media (prefers-reduced-motion:reduce){
  .stx-banner__cta{ animation:none; }
}
@media (max-width:575.98px){
  .stx-banner__inner{ gap:10px; padding:5px 14px; }
  .stx-banner__msg{ font-size:13px; }
  .stx-banner__cta{ font-size:12.5px; padding:4px 13px; }
}