/* Specialists directory — matches secondread Specialists.dc.html */

.sor-specialists {
  --sor-ink: #0a1f2c;
  --sor-ink-2: #173b4f;
  --sor-muted: #4a5c68;
  --sor-muted-2: #5a6b77;
  --sor-teal: #0d6e70;
  --sor-teal-deep: #095458;
  --sor-teal-ink: #06313a;
  --sor-mint: #e4f2f2;
  --sor-mint-2: #eef7f7;
  --sor-line: #e2e9ec;
  --sor-line-2: #d4dde0;
  --sor-line-3: #c3e0de;
  --sor-photo-bg: #d7f2f3;
  --sor-white: #ffffff;
  --sor-page: #f4f7f8;
  --sor-radius: 18px;
  --sor-font: "Inter", system-ui, sans-serif;
  --sor-display: "Montserrat", "Inter", system-ui, sans-serif;

  display: grid;
  grid-template-columns: 268px 1fr;
  gap: 32px;
  align-items: start;
  font-family: var(--sor-font);
  color: var(--sor-ink-2);
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.sor-specialists *,
.sor-specialists *::before,
.sor-specialists *::after {
  box-sizing: border-box;
}

/* —— Filters —— */
.sor-specialists__filters {
  position: sticky;
  top: 96px;
  background: var(--sor-white);
  border: 1px solid var(--sor-line);
  border-radius: var(--sor-radius);
  padding: 26px 24px;
  box-shadow: 0 2px 8px rgba(10, 31, 44, 0.06);
}

.sor-specialists__filter-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
}

.sor-specialists__filter-title {
  margin: 0;
  font-family: var(--sor-display);
  font-size: 15px;
  font-weight: 700;
  color: var(--sor-ink);
  line-height: 1.3;
}

.sor-specialists__filter-title--mod {
  margin: 0 0 14px;
}

.sor-specialists__reset {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  font-family: var(--sor-font);
  font-size: 12px;
  font-weight: 600;
  color: var(--sor-muted-2);
  cursor: pointer;
  transition: color 140ms ease-out;
}

.sor-specialists__reset:hover {
  color: var(--sor-teal);
}

.sor-specialists__area-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 0;
}

.sor-specialists__area {
  appearance: none;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border: none;
  border-radius: 10px;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font-family: var(--sor-font);
  transition: background 140ms ease-out;
  outline: none;
  box-shadow: none;
}

/* Kill Elementor/theme pink focus/active flash on filter chips */
.sor-specialists button:focus,
.sor-specialists button:focus-visible,
.sor-specialists button:active,
.sor-specialists a:focus,
.sor-specialists a:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.sor-specialists .sor-specialists__area:hover {
  background: var(--sor-mint-2) !important;
  color: inherit !important;
  border-color: transparent !important;
}

.sor-specialists .sor-specialists__area:focus,
.sor-specialists .sor-specialists__area:focus-visible,
.sor-specialists .sor-specialists__area:active {
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.sor-specialists .sor-specialists__area.is-active,
.sor-specialists .sor-specialists__area.is-active:hover,
.sor-specialists .sor-specialists__area.is-active:focus,
.sor-specialists .sor-specialists__area.is-active:focus-visible,
.sor-specialists .sor-specialists__area.is-active:active {
  background: var(--sor-mint) !important;
  color: inherit !important;
  outline: none !important;
  box-shadow: none !important;
}

.sor-specialists__check {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 1.5px solid var(--sor-line-2);
  background: var(--sor-white);
  color: var(--sor-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

.sor-specialists__area.is-active .sor-specialists__check {
  border-color: var(--sor-teal);
  background: var(--sor-teal);
}

.sor-specialists__tick {
  display: none;
}

.sor-specialists__area.is-active .sor-specialists__tick {
  display: block;
}

.sor-specialists__area-label {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  color: var(--sor-ink-2);
}

.sor-specialists__area.is-active .sor-specialists__area-label {
  font-weight: 600;
  color: var(--sor-teal-ink);
}

.sor-specialists__area-count {
  font-size: 12px;
  color: var(--sor-muted-2);
}

.sor-specialists__mod-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sor-specialists__mod {
  appearance: none;
  padding: 8px 15px;
  border-radius: 999px;
  border: 1.5px solid var(--sor-line-2);
  background: var(--sor-white);
  color: var(--sor-ink-2);
  font-family: var(--sor-font);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 140ms ease-out, color 140ms ease-out, border-color 140ms ease-out;
}

/* Force prototype teal — Elementor/theme button states often paint pink/brand colors */
.sor-specialists .sor-specialists__mod:hover,
.sor-specialists .sor-specialists__mod:focus,
.sor-specialists .sor-specialists__mod:focus-visible,
.sor-specialists .sor-specialists__mod:active {
  border-color: var(--sor-teal) !important;
  background: var(--sor-white) !important;
  color: var(--sor-ink-2) !important;
  outline: none !important;
  box-shadow: none !important;
}

.sor-specialists .sor-specialists__mod.is-active,
.sor-specialists .sor-specialists__mod.is-active:hover,
.sor-specialists .sor-specialists__mod.is-active:focus,
.sor-specialists .sor-specialists__mod.is-active:focus-visible,
.sor-specialists .sor-specialists__mod.is-active:active {
  background: var(--sor-teal) !important;
  border-color: var(--sor-teal) !important;
  color: var(--sor-white) !important;
  outline: none !important;
  box-shadow: none !important;
}

/* —— Results —— */
.sor-specialists__results-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}

.sor-specialists__heading {
  margin: 0;
  font-family: var(--sor-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--sor-ink);
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.sor-specialists__sort {
  font-size: 13px;
  color: var(--sor-muted-2);
}

.sor-specialists__cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sor-specialists__card {
  background: var(--sor-white);
  border: 1px solid var(--sor-line);
  border-radius: var(--sor-radius);
  padding: 24px;
  box-shadow: 0 2px 8px rgba(10, 31, 44, 0.06);
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 24px;
  align-items: start;
  transition: transform 220ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 220ms ease-out, border-color 220ms ease-out;
}

.sor-specialists__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(10, 31, 44, 0.13);
  border-color: var(--sor-line-3);
}

.sor-specialists__card.is-requested {
  border-color: var(--sor-teal);
}

.sor-specialists__card[hidden] {
  display: none !important;
}

.sor-specialists__photo {
  width: 132px;
  height: 156px;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sor-photo-bg);
  flex-shrink: 0;
}

.sor-specialists__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  display: block;
}

.sor-specialists__initials {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sor-photo-bg);
  color: var(--sor-teal);
  font-family: var(--sor-display);
  font-size: 34px;
  font-weight: 700;
}

.sor-specialists__body {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "name profile"
    "meta profile"
    "tags ."
    "bio .";
  column-gap: 16px;
  row-gap: 0;
  align-items: start;
  min-width: 0;
}

.sor-specialists__name {
  grid-area: name;
  margin: 0 0 6px;
  font-family: var(--sor-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--sor-ink);
  line-height: 1.25;
}

.sor-specialists__meta {
  grid-area: meta;
  margin: 0 0 14px;
  font-size: 14px;
  color: var(--sor-muted);
}

.sor-specialists__profile {
  grid-area: profile;
  align-self: start;
  justify-self: end;
  min-height: 44px;
  padding: 11px 24px;
  border-radius: 999px;
  border: 1.5px solid var(--sor-line-2);
  background: var(--sor-white);
  color: var(--sor-ink);
  font-family: var(--sor-font);
  font-size: 14px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-decoration: none;
  white-space: nowrap;
  transition: border-color 140ms ease-out, color 140ms ease-out;
}

.sor-specialists__profile:hover {
  border-color: var(--sor-teal);
  color: var(--sor-teal-deep);
  text-decoration: none;
}

.sor-specialists__tags {
  grid-area: tags;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 14px;
}

.sor-specialists__tag {
  background: var(--sor-page);
  border: 1px solid var(--sor-line);
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 500;
  color: var(--sor-ink-2);
}

.sor-specialists__bio {
  grid-area: bio;
  margin: 0;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--sor-muted);
  max-width: 620px;
}

/* —— Empty / requested —— */
.sor-specialists__empty {
  background: var(--sor-white);
  border: 1px dashed var(--sor-line-2);
  border-radius: var(--sor-radius);
  padding: 44px 32px;
  text-align: center;
}

.sor-specialists__empty[hidden] {
  display: none !important;
}

.sor-specialists__empty-title {
  margin: 0 0 8px;
  font-family: var(--sor-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--sor-ink);
}

.sor-specialists__empty-text {
  margin: 0 0 20px;
  font-size: 14.5px;
  color: var(--sor-muted);
}

.sor-specialists__empty-reset {
  min-height: 44px;
  padding: 11px 24px;
  border-radius: 999px;
  border: 1.5px solid var(--sor-teal);
  background: var(--sor-white);
  color: var(--sor-teal-deep);
  font-family: var(--sor-font);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
}

.sor-specialists__empty-reset:hover {
  background: var(--sor-teal);
  color: var(--sor-white);
}

.sor-specialists__requested {
  margin-top: 24px;
  background: var(--sor-mint);
  border: 1px solid var(--sor-line-3);
  border-radius: var(--sor-radius);
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.sor-specialists__requested[hidden] {
  display: none !important;
}

.sor-specialists__requested-label {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 10.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--sor-teal-deep);
  margin-bottom: 6px;
}

.sor-specialists__requested-name {
  font-family: var(--sor-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--sor-teal-ink);
}

.sor-specialists__continue {
  min-height: 46px;
  padding: 12px 26px;
  border-radius: 999px;
  background: var(--sor-teal);
  color: var(--sor-white);
  font-family: var(--sor-font);
  font-size: 15px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  box-shadow: 0 6px 18px rgba(13, 110, 112, 0.3);
  text-decoration: none;
  transition: background 140ms ease-out;
}

.sor-specialists__continue:hover {
  background: var(--sor-teal-deep);
  color: var(--sor-white);
  text-decoration: none;
}

/* —— Responsive —— */
@media (max-width: 900px) {
  .sor-specialists {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .sor-specialists__filters {
    position: static;
  }

  /* Tablet: body-area chips in columns (matches reference ~768). */
  .sor-specialists__area-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px 8px;
  }
}

@media (max-width: 700px) {
  .sor-specialists__area-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .sor-specialists__card {
    grid-template-columns: 1fr;
    padding: 20px;
    gap: 16px;
  }

  .sor-specialists__photo {
    width: 100%;
    max-width: 220px;
    height: auto;
    aspect-ratio: 132 / 156;
  }

  .sor-specialists__body {
    grid-template-columns: 1fr;
    grid-template-areas:
      "name"
      "meta"
      "profile"
      "tags"
      "bio";
    row-gap: 0;
  }

  .sor-specialists__name {
    margin-bottom: 6px;
    font-size: 18px;
  }

  .sor-specialists__meta {
    margin-bottom: 14px;
  }

  .sor-specialists__profile {
    width: 100%;
    justify-self: stretch;
    margin-bottom: 14px;
  }

  .sor-specialists__area-list {
    grid-template-columns: 1fr;
  }

  .sor-specialists__heading {
    font-size: 18px;
  }
}
