/* ============================================================
   HEALF - ASHBY JOB BOARD
   White theme. Avenir throughout.
   Built against Ashby's official variable + class list.
   ============================================================ */

:root {
  /* Background colour of the application */
  --colorAppBackground: #ffffff;

  /* Brand colours - also set these in Admin > Theme to match */
  --colorPrimary900: #000000;
  --colorPrimary600: #333333;

  /* Widths - both needed to widen the embedded board */
  --widthMaxContent: 1100px;
  --widthMaxJobBoard: 1100px;
  --widthMaxSubscriptionPreferences: 600px;

  /* Radii */
  --borderRadiusContainer: 6px;
  --borderRadiusControl: 4px;
  --borderRadiusButton: 4px;

  /* Typeface */
  --fontFamily: Avenir, "Avenir Next", "Avenir Next LT Pro", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Helvetica", "Arial", sans-serif;
}

/* ------------------------------------------------------------
   PALETTE (internal use only, not Ashby variables)
   ------------------------------------------------------------ */
:root {
  --h-bg: #ffffff;
  --h-card: #f6f6f6;
  --h-card-hover: #ededed;
  --h-border: #e2e2e2;
  --h-line: #e2e2e2;
  --h-text: #000000;
  --h-text-soft: #555555;
  --h-text-muted: #7a7a7a;
}

/* ------------------------------------------------------------
   BASE
   ------------------------------------------------------------ */
body {
  background-color: var(--h-bg) !important;
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
  -webkit-font-smoothing: antialiased;
}

p, li, td {
  color: var(--h-text-soft) !important;
  font-family: var(--fontFamily) !important;
}

h1, h2, h3, h4, h5, h6 {
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
}

a {
  color: var(--h-text) !important;
  text-decoration: none !important;
}

a:hover {
  color: var(--h-text-soft) !important;
}

/* ------------------------------------------------------------
   JOB BOARD - LIST PAGE
   ------------------------------------------------------------ */

/* Main board heading, e.g. "Open Positions" */
.ashby-job-board-heading {
  font-family: var(--fontFamily) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  line-height: 1.1 !important;
  border-top: 1px solid var(--h-line) !important;
  padding-top: 24px !important;
  margin-top: 24px !important;
}

/* Job count next to the heading */
.ashby-job-board-heading-count {
  font-family: var(--fontFamily) !important;
  font-size: 0.78rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  color: var(--h-text-muted) !important;
}

/* "Filters:" label */
.ashby-job-board-filters-label {
  font-family: var(--fontFamily) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--h-text-muted) !important;
}

/* "Reset filters" label */
.ashby-job-board-reset-filters-label {
  font-family: var(--fontFamily) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  cursor: pointer !important;
}

/* Filter select boxes */
.ashby-job-board-filter {
  background-color: var(--h-bg) !important;
  border: 1px solid #cccccc !important;
  border-radius: 4px !important;
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
  padding: 10px 14px !important;
  transition: border-color 0.2s !important;
}

.ashby-job-board-filter:hover,
.ashby-job-board-filter:focus {
  border-color: var(--h-text) !important;
  outline: none !important;
}

/* ------------------------------------------------------------
   DEPARTMENT / TEAM HEADINGS
   ------------------------------------------------------------ */

.ashby-department-heading {
  font-family: var(--fontFamily) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  color: var(--h-text-muted) !important;
  margin-top: 28px !important;
  margin-bottom: 10px !important;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

.ashby-department-heading-level {
  font-family: var(--fontFamily) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--h-text-muted) !important;
  margin-top: 20px !important;
  margin-bottom: 8px !important;
  border-bottom: none !important;
}

/* ------------------------------------------------------------
   JOB POSTING CARDS
   ------------------------------------------------------------ */

.ashby-job-posting-brief-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.ashby-job-posting-brief {
  background-color: var(--h-card) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 6px !important;
  padding: 18px 22px !important;
  margin-bottom: 0 !important;
  cursor: pointer !important;
  transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.14s ease !important;
}

.ashby-job-posting-brief:hover {
  background-color: var(--h-card-hover) !important;
  border-color: #cccccc !important;
  transform: translateY(-1px) !important;
}

.ashby-job-posting-brief-title {
  font-family: var(--fontFamily) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--h-text) !important;
  margin-bottom: 6px !important;
}

.ashby-job-posting-brief-details {
  font-family: var(--fontFamily) !important;
  font-size: 0.8rem !important;
  font-weight: 400 !important;
  color: var(--h-text-muted) !important;
  margin-top: 4px !important;
}

.ashby-job-posting-brief-department-heading {
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--h-text-muted) !important;
  margin-bottom: 4px !important;
}

.ashby-job-posting-brief-department-heading-level {
  font-size: 0.68rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--h-text-muted) !important;
  margin-bottom: 4px !important;
}

/* ------------------------------------------------------------
   JOB POSTING - DETAIL PAGE
   ------------------------------------------------------------ */

.ashby-job-posting-header {
  background-color: var(--h-bg) !important;
  border-bottom: 1px solid var(--h-line) !important;
  padding: 32px !important;
}

.ashby-job-posting-heading {
  font-family: var(--fontFamily) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  line-height: 1.1 !important;
}

.ashby-job-posting-left-pane {
  background-color: var(--h-bg) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 6px !important;
  padding: 28px !important;
  color: var(--h-text-soft) !important;
  font-size: 0.92rem !important;
  line-height: 1.75 !important;
}

.ashby-job-posting-right-pane {
  background-color: var(--h-bg) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
}

.ashby-job-posting-right-pane-tab-slider {
  border-bottom: 1px solid var(--h-line) !important;
  margin-bottom: 24px !important;
}

.ashby-job-posting-right-pane-overview-tab,
.ashby-job-posting-right-pane-application-tab {
  font-family: var(--fontFamily) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--h-text-muted) !important;
  padding-bottom: 12px !important;
  text-decoration: none !important;
  transition: color 0.2s !important;
}

.ashby-job-posting-right-pane-overview-tab:hover,
.ashby-job-posting-right-pane-application-tab:hover {
  color: var(--h-text) !important;
  text-decoration: none !important;
}

/* Rich text job description */
.ashby-job-posting-description {
  color: var(--h-text-soft) !important;
  font-family: var(--fontFamily) !important;
}

.ashby-job-posting-description h2 {
  border-top: 1px solid var(--h-line) !important;
  padding-top: 28px !important;
  margin-top: 28px !important;
}

.ashby-job-posting-description-container {
  background-color: var(--h-bg) !important;
}

/* Back to all jobs button */
.ashby-job-board-back-to-all-jobs-button {
  background-color: var(--h-card) !important;
  border: 1px solid #cccccc !important;
  border-radius: 4px !important;
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 9px 14px !important;
  cursor: pointer !important;
  transition: background-color 0.2s, border-color 0.2s !important;
}

.ashby-job-board-back-to-all-jobs-button:hover {
  background-color: var(--h-card-hover) !important;
  border-color: var(--h-text) !important;
}

.ashby-job-board-back-to-all-jobs-button svg {
  fill: var(--h-text) !important;
}

/* ------------------------------------------------------------
   APPLICATION FORM
   ------------------------------------------------------------ */

.ashby-application-form-container {
  background-color: transparent !important;
}

.ashby-application-form-section-container {
  background-color: transparent !important;
}

.ashby-application-form-section-header-title {
  font-family: var(--fontFamily) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  margin-bottom: 4px !important;
}

.ashby-application-form-section-header-description {
  font-size: 0.82rem !important;
  color: var(--h-text-muted) !important;
  line-height: 1.6 !important;
}

.ashby-application-form-question-title {
  font-family: var(--fontFamily) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  margin-bottom: 5px !important;
}

.ashby-application-form-question-description {
  font-size: 0.76rem !important;
  color: var(--h-text-muted) !important;
  margin-bottom: 6px !important;
  line-height: 1.5 !important;
}

.ashby-application-form-field-entry {
  margin-bottom: 18px !important;
}

/* Text / textarea / dropdown inputs */
.ashby-application-form-input-text,
.ashby-application-form-input-textarea,
.ashby-application-form-input-dropdown-select,
.ashby-application-form-input-autocomplete,
.ashby-application-form-input-date {
  background-color: var(--h-bg) !important;
  border: 1px solid #cccccc !important;
  border-radius: 4px !important;
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
  font-size: 0.9rem !important;
  padding: 10px 14px !important;
}

.ashby-application-form-input-text:focus,
.ashby-application-form-input-textarea:focus,
.ashby-application-form-input-dropdown-select:focus {
  border-color: var(--h-text) !important;
  outline: none !important;
}

/* File upload dropzone */
.ashby-application-form-input-file-dropzone {
  background-color: var(--h-card) !important;
  border: 1px dashed #cccccc !important;
  border-radius: 6px !important;
  padding: 20px !important;
}

.ashby-application-form-input-file-dropzone-instructions {
  color: var(--h-text-soft) !important;
  font-size: 0.85rem !important;
}

.ashby-application-form-input-file-dropzone-upload {
  background-color: var(--h-bg) !important;
  border: 1px solid #cccccc !important;
  border-radius: 4px !important;
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  padding: 9px 16px !important;
  cursor: pointer !important;
}

.ashby-application-form-input-file-dropzone-upload:hover {
  background-color: var(--h-card-hover) !important;
  border-color: var(--h-text) !important;
}

.ashby-application-form-input-file-item {
  background-color: var(--h-card) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 4px !important;
}

.ashby-application-form-input-file-item-name {
  color: var(--h-text) !important;
  font-size: 0.85rem !important;
}

/* Yes/No and radio/checkbox groups */
.ashby-application-form-input-yesno-option {
  background-color: var(--h-bg) !important;
  border: 1px solid #cccccc !important;
  color: var(--h-text) !important;
  font-family: var(--fontFamily) !important;
}

.ashby-application-form-input-yesno-option[aria-pressed="true"] {
  background-color: var(--h-text) !important;
  color: var(--h-bg) !important;
  border-color: var(--h-text) !important;
}

.ashby-application-form-input-radio-group-option-label,
.ashby-application-form-input-checkbox-group-option-label {
  color: var(--h-text-soft) !important;
  font-size: 0.88rem !important;
}

/* Submit button */
.ashby-application-form-submit-button {
  background-color: #000000 !important;
  color: #ffffff !important;
  font-family: var(--fontFamily) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 14px 36px !important;
  cursor: pointer !important;
  transition: background-color 0.2s, transform 0.15s !important;
}

.ashby-application-form-submit-button:hover {
  background-color: #333333 !important;
  transform: translateY(-1px) !important;
}

/* Status containers */
.ashby-application-form-success-container {
  background-color: #f4faf5 !important;
  border: 1px solid #cfe3d2 !important;
  border-radius: 6px !important;
  padding: 24px !important;
  color: var(--h-text) !important;
}

.ashby-application-form-failure-container {
  background-color: #fdf4f4 !important;
  border: 1px solid #e8cccc !important;
  border-radius: 6px !important;
  padding: 24px !important;
  color: var(--h-text) !important;
}

.ashby-application-form-blocked-application-container {
  background-color: var(--h-card) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
  color: var(--h-text-soft) !important;
}

.ashby-application-blocking-disclosure {
  color: var(--h-text-muted) !important;
  font-size: 0.78rem !important;
}

.ashby-application-form-texting-consent-description {
  font-size: 0.72rem !important;
  color: var(--h-text-muted) !important;
  line-height: 1.5 !important;
}

/* Resume autofill */
.ashby-application-form-autofill-pane,
.ashby-application-form-autofill-uploader,
.ashby-application-form-autofill-input-root {
  background-color: var(--h-card) !important;
  border: 1px dashed #cccccc !important;
  border-radius: 6px !important;
  padding: 20px !important;
}

.ashby-application-form-autofill-input-title {
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: var(--h-text) !important;
}

.ashby-application-form-autofill-input-description {
  font-size: 0.78rem !important;
  color: var(--h-text-muted) !important;
}

.ashby-application-form-autofill-input-icon {
  color: var(--h-text) !important;
}

.ashby-application-form-autofill-input-form-alert[data-highlight="positive"] {
  border-color: #cfe3d2 !important;
  background-color: #f4faf5 !important;
}

.ashby-application-form-autofill-input-form-alert[data-highlight="negative"] {
  border-color: #e8cccc !important;
  background-color: #fdf4f4 !important;
}

/* Surveys */
.ashby-survey-form-container {
  background-color: var(--h-card) !important;
  border: 1px solid var(--h-border) !important;
  border-radius: 6px !important;
  padding: 24px !important;
}

/* ------------------------------------------------------------
   TOP & BOTTOM DESCRIPTION
   Ashby exposes no stable class for these, so we match on the
   generated module class name, which always contains the
   substring below.
   ------------------------------------------------------------ */

[class*="_topDescription_"],
[class*="_bottomDescription_"] {
  background-color: var(--h-bg) !important;
  text-align: center !important;
  max-width: 1100px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

[class*="_topDescription_"] {
  padding: 32px 16px 16px !important;
}

[class*="_bottomDescription_"] {
  padding: 0 16px 32px !important;
  border-top: none !important;
  margin-top: 0 !important;
}

/* All description headings match the board heading exactly */
[class*="_topDescription_"] h1,
[class*="_bottomDescription_"] h1 {
  font-family: var(--fontFamily) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  line-height: 1.1 !important;
  text-align: center !important;
  margin: 0 0 14px !important;
}

/* Separator above a second H1 in the top description */
[class*="_topDescription_"] h1 ~ h1 {
  border-top: 1px solid var(--h-line) !important;
  padding-top: 32px !important;
  margin-top: 32px !important;
}

/* Separator above the closing heading in the bottom description */
[class*="_bottomDescription_"] h1 {
  border-top: 1px solid var(--h-line) !important;
  padding-top: 32px !important;
  margin-top: 32px !important;
}

/* Small uppercase labels, e.g. "01 - The Healf Lifestyle" */
[class*="_topDescription_"] h2,
[class*="_bottomDescription_"] h2 {
  font-family: var(--fontFamily) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--h-text) !important;
  text-align: center !important;
  margin: 22px 0 4px !important;
}

[class*="_topDescription_"] h3,
[class*="_bottomDescription_"] h3 {
  font-family: var(--fontFamily) !important;
  font-size: 0.88rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--h-text-muted) !important;
  text-align: center !important;
  margin: 0 0 12px !important;
}

[class*="_topDescription_"] p,
[class*="_bottomDescription_"] p {
  font-family: var(--fontFamily) !important;
  font-size: 0.92rem !important;
  line-height: 1.7 !important;
  color: var(--h-text-soft) !important;
  text-align: center !important;
  max-width: 860px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

[class*="_topDescription_"] img,
[class*="_bottomDescription_"] img {
  border-radius: 8px !important;
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-bottom: 8px !important;
  max-width: 100% !important;
}

/* ------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------ */

@media (max-width: 640px) {
  .ashby-job-posting-brief {
    padding: 14px 16px !important;
  }

  .ashby-job-posting-header {
    padding: 20px 16px !important;
  }

  .ashby-job-posting-left-pane,
  .ashby-job-posting-right-pane {
    padding: 18px 14px !important;
  }

  .ashby-job-board-heading,
  .ashby-job-posting-heading,
  [class*="_topDescription_"] h1,
  [class*="_bottomDescription_"] h1 {
    font-size: 1.2rem !important;
  }
}
