/* alex-ashby-board.css
   Minimal theme aligned with alex.com
   - DM Sans only
   - Background: #F9FBF5
   - Surfaces: #EEF0E6 / white
   - Text: #082900 (primary) / #6B7F66 (muted)
   - Lines/borders: 1px #082900
   - No drop shadows, no blur, no gradients
   -------------------------------------------------- */

/* DM Sans (only font) */
@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap");

:root {
  /* Colors */
  --alex-bg: #F9FBF5;
  --alex-surface: #EEF0E6;
  --alex-surface-alt: #FFFFFF;

  --alex-text: #082900;
  --alex-text-muted: #6B7F66;

  --alex-line: #082900;

  /* Typography */
  --alex-font: "DM Sans", sans-serif;

  /* Layout */
  --alex-radius-lg: 0px;
  --alex-radius-md: 0px;
  --alex-radius-sm: 0px;

  --alex-max-width: 1200px;
}

/* Hard reset for Ashby embed */
html, body {
  margin: 0;
  padding: 0;
  background: var(--alex-bg) !important;
  color: var(--alex-text) !important;
  font-family: var(--alex-font) !important;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

/* Safari fix */
html, body {
  height: auto;
  min-height: 100%;
}

body {
  display: block;
  position: static;
  isolation: isolate;
}

*,
*::before,
*::after {
  font-family: var(--alex-font) !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Remove any embedded font fallbacks Ashby might set */
body * {
  font-family: var(--alex-font) !important;
}

/* Width / centering for Ashby containers */
div[class*="_container_"],
div[class*="_sticky_"] {
  max-width: var(--alex-max-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Links */
a {
  color: var(--alex-text) !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
a:hover { color: var(--alex-text) !important; }
a:focus-visible {
  outline: 2px solid var(--alex-line);
  outline-offset: 3px;
}

/* Headings */
.ashby-job-board-heading,
.ashby-job-posting-heading,
.ashby-department-heading,
.ashby-department-heading-level,
.ashby-job-posting-brief-title {
  color: var(--alex-text) !important;
  font-family: var(--alex-font) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
}

/* Muted / meta text */
.ashby-job-board-heading-count,
.ashby-job-posting-header p,
.ashby-job-posting-brief-details,
.ashby-job-posting-left-pane h3,
.ashby-job-posting-left-pane h4,
.ashby-application-form-question-description {
  color: var(--alex-text-muted) !important;
}

/* Section wrappers (job posting panes wrapper) */
div:has(> .ashby-job-posting-left-pane),
div:has(> .ashby-job-posting-right-pane) {
  margin: 24px 0 60px;
  padding: 0;
  display: flex;
  gap: 20px;
  background: transparent;
  border: none;
  align-items: flex-start;
}

/* Panes: clean surfaces with 1px line */
.ashby-job-posting-left-pane,
.ashby-job-posting-right-pane {
  border-radius: var(--alex-radius-lg) !important;
  background: var(--alex-surface-alt) !important;
  border: 1px solid var(--alex-line) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  isolation: isolate;
}

.ashby-job-posting-left-pane {
  min-width: 280px;
  width: 280px;
  flex-shrink: 0;
  padding: 28px 24px !important;
}

.ashby-job-posting-right-pane {
  flex: 1;
  min-width: 0;
  padding: 32px 32px !important;
}

/* Job board list container (after heading) */
.ashby-job-board-heading + div {
  margin: 24px 0 60px;
  padding: 0;
  background: transparent;
  border: none;
}

/* Filters */
.ashby-job-board-filters-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: var(--alex-text-muted) !important;
  margin-bottom: 8px;
}

.ashby-job-board-filter {
  border-radius: var(--alex-radius-sm);
  border: 1px solid var(--alex-line);
  padding: 10px 14px;
  font-size: 0.95rem;
  background: var(--alex-surface-alt);
  color: var(--alex-text);
  min-width: 180px;
}
.ashby-job-board-filter:hover {
  background: var(--alex-surface);
}
.ashby-job-board-filter:focus {
  outline: 2px solid var(--alex-line);
  outline-offset: 2px;
}

/* Back to jobs button */
.ashby-job-board-back-to-all-jobs-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: var(--alex-radius-md);
  border: 1px solid var(--alex-line);
  padding: 10px 14px;
  font-size: 0.95rem;
  color: var(--alex-text) !important;
  background: var(--alex-surface-alt);
  cursor: pointer;
  transition: background 150ms ease;
  font-weight: 600;
  text-decoration: none !important;
  margin-bottom: 24px;
}
.ashby-job-board-back-to-all-jobs-button:hover {
  background: var(--alex-surface);
  transform: none;
}
.ashby-job-board-back-to-all-jobs-button svg,
.ashby-job-board-back-to-all-jobs-button path,
.ashby-job-board-back-to-all-jobs-button * {
  color: inherit !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* Job cards list */
.ashby-job-posting-brief-list {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Job card */
.ashby-job-posting-brief {
  margin-bottom: 0;
  background: var(--alex-surface-alt);
  border-radius: var(--alex-radius-lg);
  border: none;
  box-shadow: none;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  cursor: pointer;
  transition: background 150ms ease;
}
.ashby-job-posting-brief:hover {
  background: var(--alex-surface);
  transform: none;
}
.ashby-job-posting-brief:hover .ashby-job-posting-brief-title {
  color: var(--alex-text) !important;
}

/* Inline metadata row */
.ashby-job-posting-brief-details {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin-top: 4px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 0.9rem;
  opacity: 1;
  cursor: default;
}
.ashby-job-posting-brief-details > * {
  display: inline-flex;
  align-items: center;
}
.ashby-job-posting-brief-details > * + *::before {
  content: "•";
  margin-right: 6px;
  opacity: 0.7;
}

/* Tabs */
.ashby-job-posting-right-pane-overview-tab,
.ashby-job-posting-right-pane-application-tab {
  font-size: 1rem;
  text-transform: none;
  letter-spacing: 0;
  padding: 14px 0;
  margin-right: 32px;
  border: none;
  background: transparent;
  cursor: pointer;
  position: relative;
  color: var(--alex-text-muted);
  font-weight: 600;
}
.ashby-job-posting-right-pane-overview-tab:hover,
.ashby-job-posting-right-pane-application-tab:hover {
  color: var(--alex-text) !important;
}
.ashby-job-posting-right-pane-tab-slider {
  height: 2px;
  border-radius: 0;
  background: var(--alex-line);
  margin-top: 2px;
  box-shadow: none !important;
}

/* Left pane section labels */
.ashby-job-posting-left-pane h3,
.ashby-job-posting-left-pane h4 {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-bottom: 10px;
}
.ashby-job-posting-left-pane p {
  font-size: 0.95rem;
  color: var(--alex-text) !important;
  margin: 0;
  line-height: 1.5;
}

/* Right pane content */
.ashby-job-posting-right-pane h2,
.ashby-job-posting-right-pane h3 {
  font-weight: 700;
  color: var(--alex-text) !important;
  margin-top: 28px;
  margin-bottom: 12px;
  line-height: 1.35;
}
.ashby-job-posting-right-pane h2 { font-size: 1.35rem; }
.ashby-job-posting-right-pane h3 { font-size: 1.1rem; }

.ashby-job-posting-right-pane p,
.ashby-job-posting-right-pane li {
  color: var(--alex-text) !important;
}
.ashby-job-posting-right-pane ul,
.ashby-job-posting-right-pane ol {
  margin-bottom: 18px;
  padding-left: 22px;
}

/* Forms */
form label,
.ashby-application-form-question-title {
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--alex-text) !important;
  display: block;
  margin-bottom: 10px;
}

/* Inputs */
.ashby-application-form-field-entry input,
.ashby-application-form-field-entry select,
.ashby-application-form-field-entry textarea {
  border-radius: var(--alex-radius-md);
  border: 1px solid var(--alex-line);
  padding: 12px 14px;
  font-size: 0.95rem;
  background: var(--alex-surface-alt);
  color: var(--alex-text);
  transition: background 150ms ease;
  width: 100%;
  box-sizing: border-box;
}
.ashby-application-form-field-entry input:hover,
.ashby-application-form-field-entry select:hover,
.ashby-application-form-field-entry textarea:hover {
  background: var(--alex-surface);
}
.ashby-application-form-field-entry input:focus,
.ashby-application-form-field-entry select:focus,
.ashby-application-form-field-entry textarea:focus {
  outline: 2px solid var(--alex-line);
  outline-offset: 2px;
}

/* Autofill container */
div[class*="autofill"] {
  background: var(--alex-surface) !important;
  border: 1px solid var(--alex-line) !important;
  border-radius: var(--alex-radius-lg) !important;
  padding: 20px !important;
  margin-bottom: 28px !important;
}
div[class*="autofill"] > div,
div[class*="autofill"] > div > div,
div[class*="autofill"] > div > div > div {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}
div[class*="autofill"] h2,
div[class*="autofill"] h3 {
  color: var(--alex-text) !important;
  font-size: 1.15rem !important;
  font-weight: 700 !important;
  margin: 0 0 8px 0 !important;
}
div[class*="autofill"] p {
  color: var(--alex-text-muted) !important;
  font-size: 0.95rem !important;
  margin: 0 !important;
}

/* Upload buttons (keep minimal) */
button[class*="upload" i],
button[class*="Upload"],
div[class*="dropzone"] button,
div[class*="upload-area"] button {
  background: var(--alex-text) !important;
  color: var(--alex-bg) !important;
  border: 1px solid var(--alex-line) !important;
  border-radius: 999px !important;
  padding: 10px 18px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background 150ms ease !important;
}
button[class*="upload" i]:hover,
button[class*="Upload"]:hover,
div[class*="dropzone"] button:hover,
div[class*="upload-area"] button:hover {
  background: var(--alex-text) !important;
  filter: none !important;
}

/* Dropzone container */
.ashby-application-form-field-entry div[role="presentation"],
.ashby-application-form-field-entry div[class*="_container_"] {
  padding: 32px 20px !important;
  background: var(--alex-surface-alt) !important;
  border: 1px dashed var(--alex-line) !important;
  cursor: pointer !important;
  border-radius: var(--alex-radius-lg) !important;
  text-align: center !important;
  min-height: 120px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Submit */
.ashby-application-form-submit-button {
  border-radius: var(--alex-radius-md);
  background: var(--alex-text);
  color: var(--alex-bg);
  padding: 14px 22px;
  font-size: 1rem;
  font-weight: 700;
  border: 1px solid var(--alex-line);
  cursor: pointer;
  transition: background 150ms ease;
  box-shadow: none !important;
  margin-top: 24px;
  display: inline-block;
}
.ashby-application-form-submit-button:hover {
  background: var(--alex-text);
  transform: none;
}

/* Success container */
.ashby-application-form-success-container {
  background: var(--alex-surface-alt) !important;
  border: 1px solid var(--alex-line) !important;
  border-radius: var(--alex-radius-lg) !important;
  padding: 24px !important;
  box-shadow: none !important;
}
.ashby-application-form-success-container h2 {
  color: var(--alex-text) !important;
  font-weight: 700 !important;
}
.ashby-application-form-success-container p {
  color: var(--alex-text-muted) !important;
}

/* Mobile */
@media (max-width: 768px) {
  div[class*="_container_"],
  div[class*="_sticky_"] {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  div:has(> .ashby-job-posting-left-pane),
  div:has(> .ashby-job-posting-right-pane) {
    flex-direction: column !important;
    gap: 16px !important;
    margin: 16px 0 40px !important;
  }

  .ashby-job-posting-left-pane,
  .ashby-job-posting-right-pane {
    width: 100% !important;
    min-width: 100% !important;
    padding: 20px !important;
  }

  .ashby-job-board-filter {
    min-width: 100%;
    width: 100%;
  }

  .ashby-application-form-submit-button {
    width: 100%;
  }
}


/* --- Additional overrides (Jan 2026 request) --- */
/* Make top bar (sticky header) match main background */
div[class*="_sticky_"],
div[class*="sticky"],
header,
header[role="banner"] {
  background: var(--alex-bg) !important;
  border-bottom: 1px solid var(--alex-bg) !important; /* visually disappears */
  box-shadow: none !important;
}

/* Remove rounded corners everywhere */
.ashby-job-posting-brief,
.ashby-job-posting-left-pane,
.ashby-job-posting-right-pane,
.ashby-job-board-filter,
.ashby-job-board-back-to-all-jobs-button,
.ashby-application-form-field-entry input,
.ashby-application-form-field-entry select,
.ashby-application-form-field-entry textarea,
.ashby-application-form-submit-button,
.ashby-application-form-success-container,
div[class*="autofill"] {
  border-radius: 0 !important;
}
