._trigger_1er7h_1 {
  display: inline-flex;
}

._item_1er7h_5 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}

._itemIcon_1er7h_11 {
  display: inline-flex;
  align-items: center;
  font-size: 1.15em;
  color: var(--color-text-muted);
}

._danger_1er7h_18 {
  color: var(--color-danger);
}

._danger_1er7h_18 ._itemIcon_1er7h_11 {
  color: var(--color-danger);
}._wrapper_aun8z_1 {
  display: block;
}

/* The passage's own trailing margin sat between it and its mark, so on a heading or a multi-
   paragraph block the mark drifted far enough away to stop reading as attached to anything. Both
   levels are flattened: the block the caller rendered, and the last element inside it, since a
   Markdown body puts its margin on the final <p> rather than on the wrapper. The spacing is then
   reinstated below the mark, so the pair as a whole still separates from what follows. */
._wrapper_aun8z_1 > :not(._mark_aun8z_10),
._wrapper_aun8z_1 > :not(._mark_aun8z_10) > :last-child {
  margin-bottom: 0;
}

/* Below the passage, in the flow, rather than floating over its corner. Overlaying saved a line of
   height and cost readability: on a heading the mark landed on top of the words, and two marks
   near each other could collide. */
._mark_aun8z_10 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  /* Tight to the text above, normal paragraph spacing below. */
  margin: 3px 0 1.35em;
}

/* The same blue chip the editor uses for provenance. A reader and an organizer are being told the
   same fact, and one visual language for it means neither has to learn a second one. It reads as
   quiet at this size without being faded: the earlier opacity made it look disabled and cost
   contrast for anyone who needed it most. */
._chip_aun8z_31 {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  background: #e3f2fd;
  color: #0d47a1;
  font-size: 0.6875rem;
  font-weight: 500;
  line-height: 1.6;
  white-space: nowrap;
}

._toggle_aun8z_44 {
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-text-muted, #6b6b6b);
  font: inherit;
  font-size: 0.6875rem;
  text-decoration: underline;
  cursor: pointer;
  white-space: nowrap;
}

._toggle_aun8z_44:hover {
  color: var(--color-text, #111);
}/**
 * Inline editing controls. They are deliberately invisible: an organizer switching a section into
 * edit mode should see the same page with a caret in it, not a form.
 */
._editing_17s6f_5 {
  position: relative;
}

._input_17s6f_9 {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: inherit;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  border-radius: 2px;
  outline: none;
  resize: none;
  overflow: hidden;
}
._input_17s6f_9:focus {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.06);
  background: rgba(0, 0, 0, 0.04);
}
._input_17s6f_9::placeholder {
  color: var(--secondaryText);
  opacity: 0.6;
}
._input_17s6f_9[data-translating] {
  box-shadow: inset 2px 0 0 var(--darker);
  padding-left: var(--spacing-sm);
}

._body_17s6f_39 {
  display: block;
}
._body_17s6f_39 ul,
._body_17s6f_39 ol {
  padding: 0 0 0 22px;
}
._body_17s6f_39 blockquote {
  margin: var(--spacing-md) 0;
  padding-left: var(--spacing-md);
  border-left: 3px solid var(--border);
  color: var(--secondaryText);
}

._emptyImage_17s6f_53 {
  display: block;
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  background: var(--bgLight);
}
._emptyImage_17s6f_53 svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--secondaryText);
}
._emptyImage_17s6f_53._round_17s6f_69 {
  width: 80px;
  padding-top: 0;
  height: 80px;
  border-radius: 50%;
  margin: 0 auto;
}

._imageEditor_17s6f_77 {
  display: block;
  position: relative;
}
._imageEditor_17s6f_77 img {
  display: block;
}

/** The picture is the button: clicking anywhere on it opens the file dialog. */
._imageButton_17s6f_86 {
  display: block;
  position: relative;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  border-radius: var(--radius-md);
  overflow: hidden;
}
._imageButton_17s6f_86 img {
  display: block;
  width: 100%;
}
._imageButton_17s6f_86:hover ._imageHint_17s6f_101, ._imageButton_17s6f_86:focus-visible ._imageHint_17s6f_101 {
  opacity: 1;
}

/** The upload glyph, centred over whatever the tile currently holds. */
._imageHint_17s6f_101 {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
  color: #fff;
  opacity: 0;
  transition: opacity 0.15s;
}
._imageHint_17s6f_101 svg {
  width: 28px;
  height: 28px;
}
@media (hover: none) {
  ._imageHint_17s6f_101 {
    opacity: 1;
    background: rgba(0, 0, 0, 0.3);
  }
}

/**
 * An empty slot has no photo to sit over, so the icon carries no scrim and takes the muted colour
 * of the dashed frame it sits in. It is always visible: there is nothing else in the tile to
 * suggest that clicking it does anything.
 */
._imageButton_17s6f_86 ._emptyImage_17s6f_53 ~ ._imageHint_17s6f_101 {
  opacity: 1;
  background: none;
  color: var(--secondaryText);
}

._imageRemove_17s6f_139 {
  position: absolute;
  top: var(--spacing-sm);
  right: var(--spacing-sm);
  z-index: 2;
}

/** What an unfilled field looks like in the builder: the label, greyed, in the real typography. */
._placeholder_17s6f_147 {
  color: var(--secondaryText);
  opacity: 0.6;
}
/* ---------------------------------------------------------------- shared */
._caption_xidj1_2 {
  display: block;
  color: var(--secondaryText);
  font-size: 0.875rem;
}

._moduleNote_xidj1_8 {
  margin: 0;
  color: var(--secondaryText);
  font-size: 0.8125rem;
  font-style: italic;
}

/** Keeps a read-only preview's own links from navigating while the page is being built. */
._blockClicks_xidj1_16 {
  position: absolute;
  inset: 0;
}

._cardRemove_xidj1_21 {
  position: absolute;
  top: var(--spacing-sm);
  right: var(--spacing-sm);
  z-index: 2;
  background: var(--white);
  border-radius: 50%;
}

/* ------------------------------------------------------------------ tabs */
._tabList_xidj1_31 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  margin: 0 0 var(--spacing-lg);
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  scrollbar-width: none;
}
._tabList_xidj1_31::-webkit-scrollbar {
  display: none;
}

._tab_xidj1_31 {
  display: flex;
  align-items: center;
  flex: none;
  border-bottom: 2px solid transparent;
  color: var(--secondaryText);
}

._tabActive_xidj1_52 {
  border-bottom-color: var(--darker);
  color: var(--mainText);
}

._tabButton_xidj1_58 {
  padding: var(--spacing-sm) var(--spacing-md);
  border: 0;
  background: none;
  font-family: var(--mainFont);
  font-size: 0.9375rem;
  font-weight: 600;
  color: inherit;
  cursor: pointer;
  white-space: nowrap;
}

._tabPanel_xidj1_70 {
  min-height: 2rem;
}

/* ------------------------------------------------------------------- faq */
._faqList_xidj1_75 {
  list-style: none;
  margin: 0;
  padding: 0;
}

._faqItem_xidj1_81 {
  border-bottom: 1px solid var(--border);
}

._faqQuestion_xidj1_85 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
}
._faqQuestion_xidj1_85 h3 {
  margin: 0;
  font-size: 1.0625rem;
}
._faqQuestion_xidj1_85 > *:first-child {
  flex: 1;
  min-width: 0;
}

._faqTrigger_xidj1_99 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-md);
  width: 100%;
  padding: var(--spacing-md) 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: pointer;
  color: inherit;
  font-family: inherit;
}

._chevron_xidj1_114 {
  flex: none;
  color: var(--secondaryText);
  transition: transform 0.25s ease;
}

._chevronOpen_xidj1_120 {
  transform: rotate(180deg);
}

/**
 * Animating `grid-template-rows` from `0fr` to `1fr` opens the panel to exactly its own height
 * without anything having to measure it first, which `max-height` guesswork never gets right.
 */
._faqAnswer_xidj1_129 {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.25s ease;
}

._faqAnswerOpen_xidj1_135 {
  grid-template-rows: 1fr;
}

._faqAnswerInner_xidj1_140 {
  overflow: hidden;
  min-height: 0;
}
._faqAnswerInner_xidj1_140 > * {
  padding-bottom: var(--spacing-md);
}

@media (prefers-reduced-motion: reduce) {
  ._faqAnswer_xidj1_129,
  ._faqAnswerOpen_xidj1_135,
  ._chevron_xidj1_114,
  ._chevronOpen_xidj1_120 {
    transition: none;
  }
}
/* -------------------------------------------------------------- countdown */
._countdown_xidj1_157 {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-md);
  justify-content: center;
}

._countdownTile_xidj1_164 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-sm);
  min-width: 84px;
  padding: var(--spacing-md);
  border-radius: var(--radius-md);
  background: var(--main);
  color: #fff;
}
@media (max-width: 600px) {
  ._countdownTile_xidj1_164 {
    min-width: 0;
    flex: 1;
    padding: var(--spacing-sm);
  }
}

._countdownValue_xidj1_183 {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 600px) {
  ._countdownValue_xidj1_183 {
    font-size: 1.5rem;
  }
}

._countdownLabel_xidj1_195 {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.7;
}

._countdownExpired_xidj1_202 {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 600;
}

._countdownFields_xidj1_208 {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-md);
  margin: 0 0 var(--spacing-lg);
}

._countdownField_xidj1_208 {
  flex: 1;
  min-width: 180px;
}

/* -------------------------------------------------------------------- cta */
._cta_xidj1_221 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-xl) var(--spacing-lg);
  border-radius: var(--radius-lg);
  background: var(--main);
  color: #fff;
  text-align: center;
}

._ctaHeadline_xidj1_233 {
  margin: 0;
  color: #fff;
}

._ctaSubtext_xidj1_238 {
  margin: 0;
  max-width: 60ch;
  opacity: 0.8;
}

._ctaButton_xidj1_244 {
  display: inline-block;
  padding: var(--spacing-sm) var(--spacing-lg);
  border-radius: 999px;
  background: var(--darker);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

._ctaEditor_xidj1_254 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  width: 100%;
  max-width: 480px;
}

/* ---------------------------------------------------------------- divider */
._divider_xidj1_265 {
  height: 1px;
  background: var(--border);
  margin: var(--spacing-lg) 0;
}

._dividerLabelled_xidj1_271 {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  margin: var(--spacing-lg) 0;
}
._dividerLabelled_xidj1_271::before, ._dividerLabelled_xidj1_271::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

._dividerLabel_xidj1_271 {
  flex: none;
  min-width: 6ch;
  color: var(--secondaryText);
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
}

/* ------------------------------------------------------------ image + text */
._imageTextMedia_xidj1_295 {
  flex: 1;
  min-width: 0;
}
._imageTextMedia_xidj1_295 img {
  width: 100%;
  border-radius: var(--radius-md);
}

._imageTextCopy_xidj1_304 {
  flex: 1;
  min-width: 0;
}

._fullImage_xidj1_309 img {
  width: 100%;
  border-radius: var(--radius-md);
}

/* ---------------------------------------------------------------- columns */
._cardGrid_xidj1_315 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--spacing-lg);
  list-style: none;
  margin: 0;
  padding: 0;
}

._iconGrid_xidj1_324 {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  text-align: center;
}

._card_xidj1_21 {
  position: relative;
  min-width: 0;
}
._card_xidj1_21 img {
  width: 100%;
  border-radius: var(--radius-md);
}
._card_xidj1_21 h3 {
  margin: var(--spacing-md) 0 var(--spacing-sm);
}

._iconGrid_xidj1_324 ._card_xidj1_21 img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto;
}

/* ---------------------------------------------------------------- gallery */
/**
 * CSS columns rather than grid: a masonry wall wants each photo at its own height, and grid would
 * either crop them to a shared row height or leave gaps under the short ones.
 */
._masonry_xidj1_355 {
  columns: 3 220px;
  column-gap: var(--spacing-md);
}
@media (max-width: 600px) {
  ._masonry_xidj1_355 {
    columns: 2 140px;
  }
}

._masonryItem_xidj1_365 {
  position: relative;
  break-inside: avoid;
  margin: 0 0 var(--spacing-md);
}
._masonryItem_xidj1_365 img {
  width: 100%;
  border-radius: var(--radius-md);
  display: block;
}

/* --------------------------------------------------------------- sponsors */
._sponsorGrid_xidj1_377 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--spacing-lg);
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

._sponsor_xidj1_377 {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  border-radius: var(--radius-md);
  background: #fff;
}
._sponsor_xidj1_377 a {
  text-decoration: none;
}
._sponsor_xidj1_377 img {
  width: 100%;
  max-height: 90px;
  object-fit: contain;
}

/* --------------------------------------------------------------- carousel */
._carousel_xidj1_406 {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
}

._carouselTrack_xidj1_412 {
  display: flex;
  transition: transform 0.35s ease;
}
@media (prefers-reduced-motion: reduce) {
  ._carouselTrack_xidj1_412 {
    transition: none;
  }
}

._slide_xidj1_422 {
  position: relative;
  flex: 0 0 100%;
  min-width: 0;
}
._slide_xidj1_422 a {
  text-decoration: none;
  color: inherit;
}
._slide_xidj1_422 img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}

._slideControls_xidj1_438 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  padding: var(--spacing-sm);
}

._carouselCaption_xidj1_445 {
  display: block;
  padding: var(--spacing-sm) var(--spacing-md);
  color: var(--secondaryText);
  font-size: 0.875rem;
}

._carouselPrev_xidj1_452,
._carouselNext_xidj1_453 {
  position: absolute;
  top: 40%;
  z-index: 2;
}

._carouselPrev_xidj1_452 {
  left: var(--spacing-sm);
}

._carouselNext_xidj1_453 {
  right: var(--spacing-sm);
}

._carouselDots_xidj1_467 {
  position: absolute;
  bottom: var(--spacing-sm);
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: var(--spacing-sm);
}

._dot_xidj1_477 {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  cursor: pointer;
}

._dotActive_xidj1_487 {
  background: #fff;
}

/* ----------------------------------------------------------------- embeds */
._embed_xidj1_493 {
  position: relative;
}

._embedFrame_xidj1_497 {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  border: 0;
  border-radius: var(--radius-md);
}

._embedPlaceholder_xidj1_505 {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/9;
  margin: 0;
  padding: var(--spacing-lg);
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  background: var(--bgLight);
  color: var(--secondaryText);
  text-align: center;
}

._embedInput_xidj1_519 {
  margin-top: var(--spacing-sm);
}

/* ----------------------------------------------------------- registration */
._spotsList_xidj1_524,
._divisionList_xidj1_525 {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-lg);
}

._spotsRow_xidj1_534 {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}

._spotsHeader_xidj1_540 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--spacing-md);
}

._spotsName_xidj1_547 {
  font-weight: 600;
}

._spotsCount_xidj1_551 {
  color: var(--secondaryText);
  font-size: 0.875rem;
  white-space: nowrap;
}

._spotsCountFull_xidj1_557 {
  color: var(--darker);
  font-weight: 600;
}

._spotsBar_xidj1_563 {
  height: 8px;
  border-radius: 999px;
  background: var(--bgLight);
  overflow: hidden;
}

._spotsFill_xidj1_570 {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--main);
  transition: width 0.3s ease;
}

._spotsFillFull_xidj1_578 {
  background: var(--darker);
}

._spotsWaitlist_xidj1_583 {
  color: var(--secondaryText);
  font-size: 0.8125rem;
}

/**
 * A division you can join, as opposed to the spots-left section's report of how full one is. The
 * button is the point of the row, so it keeps its place at the end on every width.
 */
/**
 * A division you can join, as opposed to the spots-left section's report of how full one is.
 *
 * What you get when you take its control -- the registration flow, or your own team -- opens
 * inside the row rather than under the list, so it stays attached to the division it belongs to.
 */
._division_xidj1_525 {
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  overflow: visible;
}

/**
 * Name over its facts on the left, what you can do about it on the right -- at every width. The
 * controls stay where the eye already is rather than dropping below the card on a phone.
 */
._divisionHeader_xidj1_608 {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
}
@media (max-width: 600px) {
  ._divisionHeader_xidj1_608 {
    gap: var(--spacing-sm);
  }
}

._divisionInfo_xidj1_620 {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/** The facts about the division, as a subtitle under its name. */
._divisionMeta_xidj1_629 {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--spacing-sm);
  color: var(--secondaryText);
  font-size: 0.875rem;
  column-gap: var(--spacing-lg);
}

/** Registration being shut is a fact about the division, so it sits with the other facts. */
._divisionClosed_xidj1_640 {
  color: var(--darker);
  font-weight: 600;
}

._divisionActions_xidj1_645 {
  display: flex;
  align-items: center;
  gap: var(--spacing-sm);
  flex: none;
}

/** What this visitor already has in the division, stated rather than offered as an action. */
._divisionMine_xidj1_653 {
  font-weight: 600;
  color: var(--darker);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 16ch;
}

._divisionPanel_xidj1_662 {
  padding: 0 var(--spacing-md) var(--spacing-md);
  border-top: 1px solid var(--border);
  padding-top: var(--spacing-md);
}

._divisionName_xidj1_668 {
  min-width: 0;
  font-weight: 600;
}

._divisionPrice_xidj1_673 {
  font-variant-numeric: tabular-nums;
}

._divisionSpots_xidj1_677 {
  color: var(--secondaryText);
  font-size: 0.875rem;
  white-space: nowrap;
}

._registerWidget_xidj1_683 {
  margin-top: var(--spacing-lg);
}

/** The carousel while it is being built: every slide visible, in order, with its own controls. */
._slideEditor_xidj1_688 {
  display: block;
}

._slideList_xidj1_692 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--spacing-lg);
}

._slideRow_xidj1_698 {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}
._slideRow_xidj1_698 img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: var(--radius-md);
}

/**
 * Inline editing inside the call to action.
 *
 * The shared field styles tint a focused input with translucent black, which is invisible against
 * this section's near-black banner; on this one surface the tint is inverted.
 */
._cta_xidj1_221 input:focus,
._cta_xidj1_221 textarea:focus {
  background: rgba(255, 255, 255, 0.14);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.14);
}
._cta_xidj1_221 input::placeholder,
._cta_xidj1_221 textarea::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

/**
 * Canva designs are commonly 16:9 presentations, but a design can be any shape and the embed does
 * not report its own. 16:9 matches what organizers have actually embedded.
 */
._canvaFrame_xidj1_732 {
}
/**
 * The published page's outer wrapper and the staffing module.
 *
 * Sections style themselves -- see `~/components/page-sections`, which the builder and this
 * renderer share. Everything this file used to hold for them, including the twelve-column grid
 * they were placed into, went with that change.
 */
._wrapper_8rkqu_8 {
  z-index: 1;
  position: relative;
  word-break: break-word;
}

._moduleNote_8rkqu_14 {
  margin: 0;
  color: var(--secondaryText);
  font-size: 0.8125rem;
  font-style: italic;
}

._staffingSection_8rkqu_21 {
  text-align: left;
}

._staffingList_8rkqu_25 {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
}

._staffingItem_8rkqu_32 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-xl);
  padding: var(--spacing-lg) 0;
  border-bottom: 1px solid var(--border);
}
@media (max-width: 700px) {
  ._staffingItem_8rkqu_32 {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-md);
  }
}

._staffingItemMain_8rkqu_48 {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

._staffingItemSide_8rkqu_55 {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  flex-shrink: 0;
}

._staffingTitle_8rkqu_62 {
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--main);
  text-decoration: none;
}
._staffingTitle_8rkqu_62:hover {
  text-decoration: underline;
}

._staffingRoles_8rkqu_73 {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--secondaryText);
}

._staffingRoleSeparator_8rkqu_80 {
  opacity: 0.5;
}

._staffingRoleDates_8rkqu_84 {
  opacity: 0.85;
}

._staffingSpots_8rkqu_88 {
  font-size: 0.8125rem;
  color: var(--secondaryText);
  white-space: nowrap;
}

._staffingApply_8rkqu_94 {
  padding: 8px 16px;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--main);
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
._staffingApply_8rkqu_94:hover {
  border-color: var(--darker);
  background: var(--bg);
}
/**
 * Per-type layout for the section wrapper. Sections are full-width and stacked; the twelve-column
 * span they used to be placed in is gone, so the only thing left to vary is how a section arranges
 * its own parts.
 */
._section_3z7hl_6 {
  position: relative;
  scroll-margin-top: var(--spacing-xl);
  padding: var(--spacing-lg) 0;
}
._section_3z7hl_6 h2 {
  margin: 0 0 var(--spacing-md);
}
._section_3z7hl_6 h3 {
  margin: 0 0 var(--spacing-sm);
}
._section_3z7hl_6 img {
  max-width: 100%;
}

._body_3z7hl_21 {
  min-width: 0;
  position: relative;
}

._imageLeft_3z7hl_26,
._imageRight_3z7hl_27 {
  display: flex;
  align-items: center;
  gap: var(--spacing-lg);
}
@media (max-width: 760px) {
  ._imageLeft_3z7hl_26,
  ._imageRight_3z7hl_27 {
    flex-direction: column;
    align-items: stretch;
  }
}

._imageRight_3z7hl_27 {
  flex-direction: row-reverse;
}
@media (max-width: 760px) {
  ._imageRight_3z7hl_27 {
    flex-direction: column;
  }
}

._imageTop_3z7hl_49,
._imageBelow_3z7hl_50 {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-md);
}

._imageBelow_3z7hl_50 {
  flex-direction: column-reverse;
}

._cta_3z7hl_60,
._divider_3z7hl_61 {
  padding: 0;
}
