._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_18ztw_2 {
  display: block;
  color: var(--secondaryText);
  font-size: 0.875rem;
}

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

._blockClicksScope_18ztw_15 {
  position: relative;
}

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

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

/* ------------------------------------------------------------------ tabs */
._tabList_18ztw_35 {
  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_18ztw_35::-webkit-scrollbar {
  display: none;
}

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

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

._tabButton_18ztw_62 {
  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_18ztw_74 {
  min-height: 2rem;
}

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

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

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

._faqTrigger_18ztw_103 {
  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_18ztw_118 {
  flex: none;
  color: var(--secondaryText);
  transition: transform 0.25s ease;
}

._chevronOpen_18ztw_124 {
  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_18ztw_133 {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.25s ease;
}

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

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

@media (prefers-reduced-motion: reduce) {
  ._faqAnswer_18ztw_133,
  ._faqAnswerOpen_18ztw_139,
  ._chevron_18ztw_118,
  ._chevronOpen_18ztw_124 {
    transition: none;
  }
}
/* -------------------------------------------------------------- countdown */
._countdown_18ztw_161 {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-md);
  justify-content: center;
}

._countdownTile_18ztw_168 {
  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_18ztw_168 {
    min-width: 0;
    flex: 1;
    padding: var(--spacing-sm);
  }
}

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

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

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

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

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

/* -------------------------------------------------------------------- cta */
._cta_18ztw_225 {
  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_18ztw_237 {
  margin: 0;
  color: #fff;
}

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

._ctaButton_18ztw_248 {
  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_18ztw_258 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--spacing-sm);
  width: 100%;
  max-width: 480px;
}

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

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

._dividerLabel_18ztw_275 {
  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_18ztw_299 {
  flex: 1;
  min-width: 0;
}
._imageTextMedia_18ztw_299 img {
  width: 100%;
  border-radius: var(--radius-md);
}

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

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

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

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

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

._iconGrid_18ztw_328 ._card_18ztw_25 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_18ztw_359 {
  columns: 3 220px;
  column-gap: var(--spacing-md);
}
@media (max-width: 600px) {
  ._masonry_18ztw_359 {
    columns: 2 140px;
  }
}

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

/* --------------------------------------------------------------- sponsors */
._sponsorGrid_18ztw_381 {
  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_18ztw_381 {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
  padding: var(--spacing-md);
  border-radius: var(--radius-md);
  background: #fff;
}
._sponsor_18ztw_381 a {
  text-decoration: none;
}
._sponsor_18ztw_381 img {
  width: 100%;
  max-height: 90px;
  object-fit: contain;
}

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

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

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

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

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

._carouselPrev_18ztw_456,
._carouselNext_18ztw_457 {
  position: absolute;
  top: 40%;
  z-index: 2;
}

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

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

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

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

._dotActive_18ztw_491 {
  background: #fff;
}

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

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

._embedPlaceholder_18ztw_509 {
  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_18ztw_523 {
  margin-top: var(--spacing-sm);
}

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

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

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

._spotsName_18ztw_551 {
  font-weight: 600;
}

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

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

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

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

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

._spotsWaitlist_18ztw_587 {
  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_18ztw_529 {
  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_18ztw_612 {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
}
@media (max-width: 600px) {
  ._divisionHeader_18ztw_612 {
    gap: var(--spacing-sm);
  }
}

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

/** The facts about the division, as a subtitle under its name. */
._divisionMeta_18ztw_633 {
  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_18ztw_644 {
  color: var(--darker);
  font-weight: 600;
}

._divisionActions_18ztw_649 {
  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_18ztw_657 {
  font-weight: 600;
  color: var(--darker);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 16ch;
}

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

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

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

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

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

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

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

._slideRow_18ztw_702 {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-sm);
}
._slideRow_18ztw_702 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_18ztw_225 input:focus,
._cta_18ztw_225 textarea:focus {
  background: rgba(255, 255, 255, 0.14);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.14);
}
._cta_18ztw_225 input::placeholder,
._cta_18ztw_225 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_18ztw_736 {
}
/**
 * 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_x6zub_8 {
  position: relative;
  word-break: break-word;
}

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

._staffingSection_x6zub_20 {
  text-align: left;
}

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

._staffingItem_x6zub_31 {
  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_x6zub_31 {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-md);
  }
}

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

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

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

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

._staffingRoleSeparator_x6zub_79 {
  opacity: 0.5;
}

._staffingRoleDates_x6zub_83 {
  opacity: 0.85;
}

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

._staffingApply_x6zub_93 {
  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_x6zub_93: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;
}
