/**
 * Public Drupal pages, login, and team formation on 26–27 theme.
 * Flat grid + wave + runners from theme-2627.css and grid-lights-path.js.
 */

/* Shared header/footer shell — hide legacy Ygency chrome */
body.sc-site-shell .preloader,
body.sc-site-shell .scroll-top.scroll-to-target {
  display: none !important;
}

body.sc-site-shell .sc-landing-header__inner,
body.sc-site-shell .sc-landing-footer__inner,
body.sc-site-shell .sc-landing-footer__bottom {
  padding-inline: var(--sc-landing-pad);
}

body.sc-site-shell.sc-registration-page .sc-registration-wrap,
body.sc-public-page .sc-public-wrap,
body.sc-team-formation-page .sc-public-wrap {
  min-height: 50vh;
}

/* Horizontal gutters: masthead/document (fidelity) or registration document — not the wrap. */
body.sc-public-page .sc-public-wrap__main,
body.sc-registration-page .sc-registration-wrap__main,
body.sc-team-formation-page .sc-public-wrap__main {
  padding-inline: 0;
  padding-block: 0 0;
  box-sizing: border-box;
}

/* Bootstrap .row negative margins bleed past gutters on public pages.
   Rail width lives on masthead/document — do not re-center .container-remo
   (that inset the masthead H1 vs registration forms). */
body.sc-public-page .sc-public-wrap__main .container-remo,
body.sc-registration-page .sc-registration-wrap__main .container-remo,
body.sc-team-formation-page .sc-public-wrap__main .container-remo {
  padding-inline: 0;
  max-width: 100%;
  margin-inline: 0;
  width: 100%;
  box-sizing: border-box;
}

body.sc-public-page .sc-public-wrap__main .container-remo > .row,
body.sc-registration-page .sc-registration-wrap__main .container-remo > .row,
body.sc-team-formation-page .sc-public-wrap__main .container-remo > .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  --bs-gutter-x: 0;
}

body.sc-public-page .sc-public-wrap__messages,
body.sc-public-page .sc-public-wrap__help,
body.sc-registration-page .sc-registration-wrap__messages {
  max-width: var(--sc-landing-max);
  margin: 0 auto;
  padding: 0;
}

/* Search results */
body.sc-public-page :is(.search-form, form.search-form) {
  max-width: var(--sc-page-content-max);
  margin: var(--sc-band-sm) auto 1.5rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background: var(--sc-surface-card-bg);
  border: 1px solid var(--sc-surface-card-border);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
  box-shadow: var(--sc-surface-card-shadow);
}

body.sc-public-page :is(.search-results, ol.search-results) {
  max-width: var(--sc-page-content-max);
  margin: 0 auto var(--sc-band-lg);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--sc-surface-card-bg);
  border: 1px solid var(--sc-surface-card-border);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-lg);
  box-shadow: var(--sc-surface-card-shadow);
  color: var(--sc-text-muted);
}

body.sc-public-page .search-results :is(h2, h3, a) {
  color: var(--sc-brand-yellow);
}

body.sc-public-page .search-form :is(label, .form-control) {
  color: #ffffff;
}

body.sc-public-page .search-form .form-control {
  background-color: rgba(13, 13, 25, 0.85) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}

body.sc-public-page .search-form .form-submit,
body.sc-public-page .search-form button[type="submit"] {
  background: var(--sc-brand-gradient) !important;
  border: none !important;
  color: var(--sc-bg-deep) !important;
  font-weight: 600;
  padding: 0.65rem 1.25rem;
  border-radius: var(--sc-radius-md);
}

body.sc-public-page .search-help-link {
  display: inline-block;
  margin-top: 0.75rem;
  color: var(--sc-text-muted);
  font-size: 0.9rem;
}

body.sc-public-page .search-help-link:hover {
  color: var(--sc-brand-yellow);
}

body.sc-public-page .sc-public-wrap__main .item-list,
body.sc-public-page .sc-public-wrap__main ol.search-results {
  max-width: var(--sc-page-content-max);
  margin: 0 auto var(--sc-band-lg);
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--sc-surface-card-bg);
  border: 1px solid var(--sc-surface-card-border);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-lg);
  box-shadow: var(--sc-surface-card-shadow);
  color: var(--ygency-body-color);
  list-style: none;
}

body.sc-public-page .sc-public-wrap__main .item-list li,
body.sc-public-page .sc-public-wrap__main ol.search-results li {
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  line-height: 1.5;
}

body.sc-public-page .sc-public-wrap__main .item-list li:last-child,
body.sc-public-page .sc-public-wrap__main ol.search-results li:last-child {
  border-bottom: 0;
}

body.sc-public-page .sc-public-wrap__main .item-list a,
body.sc-public-page .sc-public-wrap__main ol.search-results a {
  color: var(--sc-brand-yellow);
  font-weight: 600;
}

body.sc-public-page .sc-public-wrap__main .item-list a:hover,
body.sc-public-page .sc-public-wrap__main ol.search-results a:hover {
  color: var(--sc-brand-orange);
}

body.sc-public-page.path-search h1,
body.sc-public-page.path-search .page-title {
  max-width: var(--sc-page-content-max);
  margin: var(--sc-band-sm) auto 0;
  color: #ffffff;
  font-family: var(--sc-font-sans);
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-align: center;
}

body:is(.sc-public-page, .sc-login-page, .sc-team-formation-page)::before {
  opacity: 0.65;
}

body:is(.sc-public-page, .sc-login-page, .sc-team-formation-page)
  :is(.page-wrapper, .layout-content, .region-content, main) {
  background: transparent !important;
}

/* style.css hides page title block globally — restore on 2627 shell pages.
   Public H1 typography lives in sc-public-fidelity.css (.sc-public-masthead). */
body:is(.sc-public-page, .sc-registration-page) #block-supercomputing-challenge-page-title {
  display: block !important;
}

body.sc-team-formation-page .sc-public-masthead--compact .sc-page-stage {
  justify-content: flex-start;
}

body.sc-team-formation-page .sc-public-masthead--compact .sc-public-masthead__title {
  margin-top: 0.15rem;
}

/* Team Registration uses the masthead H1 (compact workspace header). */
body.sc-team-formation-page #block-supercomputing-challenge-page-title {
  display: block !important;
}

/* Expo is an event destination: put the date, registration path, and schedule
   in view sooner than the slower editorial rhythm used by long-form pages. */
body.sc-expo-page .sc-page-lede {
  margin-bottom: clamp(1.75rem, 3vw, 2.75rem);
}

/* Non-prose public bodies (press, plain pages): one surface card.
   Long-form .sc-prose pages stay open — see sc-public-fidelity.css. */
body.sc-public-page :is(
    .node--type-page .field--name-body,
    article.page .field--name-body,
    .node--type-page .node__content,
    article.page .node__content,
    .node--type-press-releases .node__content,
    article.node--type-press-releases .node__content
  ) {
  width: 100%;
  max-width: min(var(--sc-page-content-max), 100%);
  margin-top: clamp(1.25rem, 3vw, 1.75rem) !important;
  margin-bottom: var(--sc-band-lg) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: clamp(1.75rem, 4vw, 2.75rem);
  background: var(--sc-surface-card-bg) !important;
  border: 1px solid rgba(116, 170, 227, 0.18);
  border-radius: 10px;
  clip-path: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045), 0 26px 70px -48px rgba(0, 0, 0, 0.95);
  color: var(--sc-text-muted);
  box-sizing: border-box;
}

body.sc-public-page :is(.search-form, form.search-form, .search-results, ol.search-results) {
  border: 1px solid rgba(116, 170, 227, 0.18);
  border-radius: 10px;
  clip-path: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045), 0 26px 70px -48px rgba(0, 0, 0, 0.95);
}

/* Center page nodes inside Bootstrap .row (update.css zeros .node__content margin) */
body.sc-public-page .sc-public-wrap__main .container-remo > .row > :is(article.node--type-page, article.page, article.node--type-press-releases) {
  width: 100%;
  max-width: min(var(--sc-page-content-max), 100%);
  margin-inline: auto;
  float: none;
}

body.sc-public-page :is(.node--type-page, article.page) :is(h1, h2),
body.sc-public-page :is(.node--type-page, article.page) .node__content h2 {
  color: #ffffff;
}

body.sc-public-page :is(
    .node--type-page a,
    article.page a,
    .node--type-press-releases a,
    article.node--type-press-releases a
  ) {
  color: var(--sc-brand-yellow);
}

body.sc-public-page :is(
    .node--type-page a:hover,
    article.page a:hover,
    .node--type-press-releases a:hover,
    article.node--type-press-releases a:hover
  ) {
  color: var(--sc-brand-orange);
}

body.sc-public-page .sc-placeholder-note {
  padding: 0.75rem 1rem;
  margin: 1rem 0;
  border-left: 3px solid var(--sc-brand-yellow);
  background: rgba(251, 187, 15, 0.08);
  color: var(--sc-text-muted);
  font-size: 0.9rem;
}

/* ------------------------------------------------------------------ */
/* Role hubs: student/teacher timelines and judge workflow content.    */
/* ------------------------------------------------------------------ */

body.sc-role-hub-page .sc-public-wrap__main {
  max-width: var(--sc-landing-max, 1200px);
  margin-inline: auto;
}

/* Role hubs: denser document band so season path starts sooner. */
body.sc-role-hub-page.sc-public-page .sc-public-document {
  padding-top: clamp(1rem, 2.5vw, 1.75rem);
}

/* Role hubs: keep masthead compact so season path starts above the fold. */
body.sc-role-hub-page.sc-public-page .sc-public-masthead__inner {
  padding-block: 0.55rem 0.7rem;
}

body.sc-role-hub-page.sc-public-page .sc-public-masthead__title #block-supercomputing-challenge-page-title :is(h1, h1.title) {
  font-size: clamp(1.5rem, 2.8vw, 2.15rem);
  max-width: none;
}

body.sc-role-hub-page.sc-public-page .sc-public-masthead__coordinate {
  display: none;
}

body.sc-role-hub-page .sc-public-wrap__main > .block-page-title-block {
  max-width: none;
  margin-top: 0 !important;
}

body.sc-role-hub-page.sc-public-page .sc-public-wrap__main .container-remo > .row > article.node--type-page {
  max-width: 100%;
}

/* Align hub title with content rail — no nested max-width / auto centering */
body.sc-role-hub-page.sc-public-page #block-supercomputing-challenge-page-title {
  max-width: none;
  width: 100%;
  margin: 0 0 1rem;
  padding-inline: 0;
}

body.sc-role-hub-page.sc-public-page #block-supercomputing-challenge-page-title .container-remo {
  max-width: none;
  margin: 0;
  padding-inline: 0;
  width: 100%;
}

/* Hub H1 type is owned by the fidelity masthead; keep layout rail only. */
body.sc-role-hub-page.sc-public-page #block-supercomputing-challenge-page-title :is(h1, h1.title) {
  margin: 0;
  padding: 0;
}

body.sc-role-hub-page {
  --sc-hub-surface: var(--sc-ops-surface);
  --sc-hub-surface-raised: var(--sc-ops-surface-raised);
  --sc-hub-border: var(--sc-ops-border-strong);
  --sc-hub-muted: var(--sc-ops-muted);
}

body.sc-role-hub-page.sc-public-page :is(
    .node--type-page .field--name-body,
    article.page .field--name-body,
    .node--type-page .node__content,
    article.page .node__content
  ) {
  max-width: none;
  padding: 1.5rem;
  background: var(--sc-hub-surface) !important;
  border: 1px solid var(--sc-hub-border);
  border-radius: 6px;
  clip-path: none;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), 0 18px 44px -28px rgba(0, 0, 0, 0.85);
}

body.sc-role-hub-page .node__content {
  color: var(--sc-ops-muted);
  font-size: 0.95rem;
  line-height: 1.65;
}

body.sc-role-hub-page .node__content > .sc-hub > p:first-of-type,
body.sc-role-hub-page .node__content > p:first-of-type {
  margin: 0 0 0.55rem;
  color: var(--sc-ops-ink);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.5;
}

body.sc-role-hub-page .node__content > .sc-hub > p:not(:first-of-type):not(:has(+ ul)),
body.sc-role-hub-page .node__content > p:not(:first-of-type):not(:has(+ ul)) {
  max-width: 76rem;
  margin-bottom: 0.8rem;
  color: var(--sc-hub-muted);
}

body.sc-role-hub-page .node__content > .sc-hub > p:has(+ ul),
body.sc-role-hub-page .node__content > p:has(+ ul) {
  margin: 1.75rem 0 0;
  padding: 1rem 1.1rem 0.85rem;
  color: var(--sc-ops-ink);
  background: var(--sc-hub-surface-raised);
  border: 1px solid var(--sc-hub-border);
  border-bottom: 0;
  border-radius: 6px 6px 0 0;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0;
}

body.sc-role-hub-page .node__content > .sc-hub > p a,
body.sc-role-hub-page .node__content > p a {
  color: var(--sc-ops-ink) !important;
  font-weight: 600;
  text-decoration-color: color-mix(in srgb, var(--sc-ops-highlight) 55%, transparent);
  text-underline-offset: 0.15em;
}

body.sc-role-hub-page .node__content > .sc-hub > p a:hover,
body.sc-role-hub-page .node__content > .sc-hub > p a:focus-visible,
body.sc-role-hub-page .node__content > p a:hover,
body.sc-role-hub-page .node__content > p a:focus-visible {
  color: var(--sc-ops-highlight) !important;
}

body.sc-role-hub-page .node__content > .sc-hub > ul,
body.sc-role-hub-page .node__content > ul {
  counter-reset: sc-hub-step;
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0.25rem 1.1rem 0.5rem;
  overflow: hidden;
  background: var(--sc-hub-surface-raised);
  border: 1px solid var(--sc-hub-border);
  border-radius: 0 0 6px 6px;
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li,
body.sc-role-hub-page .node__content > ul > li {
  counter-increment: sc-hub-step;
  position: relative;
  display: grid;
  grid-template-columns: minmax(11rem, 0.42fr) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: center;
  min-height: 3.55rem;
  margin: 0;
  padding: 0.7rem 0.75rem 0.7rem 3rem;
  color: var(--sc-hub-muted);
  border-top: 1px solid var(--sc-hub-border);
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li:first-child,
body.sc-role-hub-page .node__content > ul > li:first-child {
  border-top: 0;
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li::before,
body.sc-role-hub-page .node__content > ul > li::before {
  content: counter(sc-hub-step, decimal-leading-zero);
  position: absolute;
  left: 0.4rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border: 1px solid var(--sc-ops-accent-border);
  border-radius: 50%;
  color: var(--sc-ops-accent);
  background: var(--sc-ops-accent-soft);
  font-family: var(--sc-font-mono);
  font-size: 0.65rem;
  font-weight: 600;
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li > a,
body.sc-role-hub-page .node__content > ul > li > a {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  color: var(--sc-ops-ink) !important;
  font-weight: 600;
  text-decoration: none;
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li > a::after,
body.sc-role-hub-page .node__content > ul > li > a::after {
  content: "\2192";
  margin-left: 0.45rem;
  color: var(--sc-ops-highlight);
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li > a:hover,
body.sc-role-hub-page .node__content > .sc-hub > ul > li > a:hover,
body.sc-role-hub-page .node__content > .sc-hub > ul > li > a:focus-visible,
body.sc-role-hub-page .node__content > ul > li > a:focus-visible {
  color: var(--sc-ops-highlight) !important;
}

body.sc-role-hub-page .node__content > .sc-hub > ul > li > strong,
body.sc-role-hub-page .node__content > ul > li > strong {
  color: color-mix(in srgb, var(--sc-ops-ink) 78%, var(--sc-ops-muted));
  font-weight: 500;
}

/* ------------------------------------------------------------------ */
/* Role hub flowchart (student / teacher)                             */
/* ------------------------------------------------------------------ */

body.sc-role-hub-page .sc-hub--flow {
  display: flex;
  flex-direction: column;
  gap: 0;
}

body.sc-role-hub-page .sc-hub-flow__lede {
  margin: 0 0 0.35rem !important;
  max-width: 42rem;
  color: var(--sc-ops-ink) !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  line-height: 1.45 !important;
}

body.sc-role-hub-page .sc-hub-flow__label {
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-family: var(--sc-font-mono);
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sc-ops-accent) !important;
}

body.sc-role-hub-page .sc-hub-flow {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: sc-hub-flow;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  max-width: 40rem;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

body.sc-role-hub-page .sc-hub-flow__step {
  counter-increment: sc-hub-flow;
  position: relative;
  display: grid !important;
  grid-template-columns: 2.5rem minmax(0, 1fr) !important;
  gap: 0.85rem 1rem !important;
  align-items: stretch !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 0 1.75rem !important;
  border: 0 !important;
  color: inherit !important;
}

body.sc-role-hub-page .sc-hub-flow__step:last-child {
  padding-bottom: 0 !important;
}

/* Vertical rail + arrow between steps */
body.sc-role-hub-page .sc-hub-flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 1.05rem;
  top: 2.5rem;
  bottom: 0.35rem;
  width: 2px;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--sc-ops-accent) 55%, transparent) 0%,
    color-mix(in srgb, var(--sc-ops-highlight) 35%, transparent) 100%
  );
  pointer-events: none;
}

body.sc-role-hub-page .sc-hub-flow__step:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 0.72rem;
  bottom: 0.15rem;
  z-index: 1;
  width: 0;
  height: 0;
  border-left: 0.45rem solid transparent;
  border-right: 0.45rem solid transparent;
  border-top: 0.55rem solid var(--sc-ops-highlight);
  pointer-events: none;
}

body.sc-role-hub-page .sc-hub-flow__marker {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  margin-top: 0.85rem;
  font-family: var(--sc-font-mono);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--sc-ops-accent);
  border: 1px solid var(--sc-ops-accent-border);
  background: var(--sc-ops-accent-deep-soft);
  clip-path: var(--sc-chamfer-clip-sm, none);
  border-radius: 4px;
}

body.sc-role-hub-page .sc-hub-flow__marker::before {
  content: counter(sc-hub-flow);
}

body.sc-role-hub-page .sc-hub-flow__card {
  padding: 0.95rem 1.1rem 1.05rem;
  border: 1px solid var(--sc-ops-border);
  background: var(--sc-ops-field);
  clip-path: var(--sc-chamfer-clip-md, none);
  border-radius: 6px;
}

body.sc-role-hub-page .sc-hub-flow__when {
  margin: 0 0 0.3rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  font-family: var(--sc-font-mono);
  font-size: 0.6875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sc-ops-muted) !important;
}

body.sc-role-hub-page .sc-hub-flow__title {
  margin: 0 0 0.4rem !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 1.125rem !important;
  font-weight: 700;
  line-height: 1.25 !important;
  color: var(--sc-ops-ink) !important;
}

body.sc-role-hub-page .sc-hub-flow__title a {
  color: var(--sc-ops-ink) !important;
  text-decoration: none;
}

body.sc-role-hub-page .sc-hub-flow__title a:hover,
body.sc-role-hub-page .sc-hub-flow__title a:focus-visible {
  color: var(--sc-ops-highlight) !important;
}

body.sc-role-hub-page .sc-hub-flow__title a::after {
  content: " \2192";
  color: var(--sc-ops-highlight);
  font-weight: 600;
}

body.sc-role-hub-page .sc-hub-flow__desc {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  max-width: none !important;
  color: var(--sc-hub-muted) !important;
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

body.sc-role-hub-page .sc-hub-flow__footer {
  margin: 1.75rem 0 0 !important;
  max-width: 40rem;
  color: var(--sc-hub-muted) !important;
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
}

body.sc-role-hub-page .sc-hub-flow__footer a {
  color: var(--sc-ops-highlight) !important;
  font-weight: 600;
}

@media (min-width: 900px) {
  body.sc-role-hub-page .sc-hub-flow {
    max-width: 46rem;
  }

  body.sc-role-hub-page .sc-hub-flow__step {
    grid-template-columns: 2.75rem minmax(0, 1fr) !important;
  }
}

/* Judge and reviewer pages are long-form workflows rather than timelines. */
body.sc-role-hub-page .node__content :is(h2, h3, h4) {
  margin: 2rem 0 0.75rem;
  padding-top: 1.25rem;
  color: var(--sc-ops-ink);
  border-top: 1px solid var(--sc-hub-border);
  font-size: 1.35rem;
  line-height: 1.3;
}

body.sc-role-hub-page .node__content h3:has(> a) {
  padding-top: 0;
  border-top: 0;
}

body.sc-role-hub-page .node__content h3 > a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding: 0.65rem 0.9rem;
  color: var(--sc-bg-deep) !important;
  background: var(--sc-ops-highlight);
  border-radius: 6px;
  font-size: 0.9rem;
  text-decoration: none;
}

body.sc-role-hub-page .node__content h5,
body.sc-role-hub-page .node__content h6 {
  max-width: 75rem;
  margin: 0.75rem 0 1rem;
  color: var(--sc-hub-muted);
  font-size: 0.92rem;
  font-weight: 500;
  line-height: 1.65;
}

body.sc-role-hub-page .node__content :is(h2, h3, h4, h5, h6, p):empty {
  display: none;
}

/* Legacy judge copy starts with non-breaking-space placeholders. */
body.sc-role-hub-page .node__content > .sc-hub > h3:first-child,
body.sc-role-hub-page .node__content > .sc-hub > h3:first-child + p {
  display: none;
}

body.sc-role-hub-page .node__content :is(h3, h4, h5, h6) + ul:not(:where(.sc-hub > ul)) {
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem 1rem 2.5rem;
  background: var(--sc-hub-surface-raised);
  border: 1px solid var(--sc-hub-border);
  border-radius: 6px;
}

body.sc-role-hub-page .node__content li:not(:has(> a)) {
  margin-bottom: 0.45rem;
  color: color-mix(in srgb, var(--sc-ops-ink) 78%, var(--sc-ops-muted));
}

body.sc-role-hub-page.sc-public-page :is(.node--type-page a, article.page a) {
  color: inherit;
}

@media (max-width: 767px) {
  body.sc-role-hub-page .sc-hub-flow__lede {
    font-size: 0.95rem;
    margin-bottom: 1rem;
  }

  body.sc-role-hub-page .sc-hub-flow__step {
    gap: 0.65rem;
    padding-bottom: 1rem;
  }

  body.sc-role-hub-page .sc-hub-flow__title {
    font-size: 1.05rem;
  }

  body.sc-role-hub-page .sc-hub-flow__desc {
    font-size: 0.9rem;
  }

  body.sc-role-hub-page .node__content > .sc-hub > ul > li,
  body.sc-role-hub-page .node__content > ul > li {
    grid-template-columns: 1fr;
    gap: 0.25rem;
    padding: 0.85rem 0.9rem 0.85rem 3rem;
  }

  body.sc-role-hub-page.sc-public-page .sc-public-document {
    padding-top: 0.85rem;
  }

  body.sc-role-hub-page.sc-public-page :is(
      .node--type-page .node__content,
      article.page .node__content
    ) {
    padding: 1rem;
  }
}

/* ------------------------------------------------------------------ */
/* Informational page prose (About, Rules, Dates, etc.)               */
/* ------------------------------------------------------------------ */

body.sc-public-page .sc-prose {
  font-size: 1rem;
  line-height: 1.7;
}

body.sc-public-page .sc-prose :is(p, li, dd) {
  max-width: 70ch;
}

body.sc-public-page .sc-prose > p,
body.sc-public-page .sc-prose .sc-page-section > p,
body.sc-public-page .sc-prose .sc-page-section > ul,
body.sc-public-page .sc-prose .sc-page-section > ol,
body.sc-public-page .sc-prose .sc-page-section > address {
  margin: 0 0 1.15rem;
}

body.sc-public-page .sc-prose > p:last-child,
body.sc-public-page .sc-prose .sc-page-section > :last-child {
  margin-bottom: 0;
}

body.sc-public-page .sc-page-lede {
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  line-height: 1.65;
  color: var(--sc-text-muted);
  text-align: center;
  max-width: 58ch;
  margin: 0 auto clamp(2.25rem, 5vw, 4rem);
}

body.sc-public-page .sc-page-toc {
  margin: 0 0 2rem;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}

body.sc-public-page .sc-page-toc__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.sc-public-page .sc-page-toc__list li {
  margin: 0;
}

body.sc-public-page .sc-page-toc__list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: 0.45rem 1rem;
  border: 1px solid rgba(251, 187, 15, 0.32);
  border-radius: var(--sc-radius-md);
  background: rgba(1, 60, 145, 0.22);
  color: #e8ecf4;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.3;
  text-decoration: none;
  white-space: nowrap;
  transition:
    color 0.15s ease,
    border-color 0.15s ease,
    background-color 0.15s ease,
    transform 0.15s ease;
}

body.sc-public-page .sc-page-toc__list a:hover,
body.sc-public-page .sc-page-toc__list a:focus-visible {
  color: var(--sc-brand-yellow);
  border-color: rgba(251, 187, 15, 0.65);
  background: rgba(251, 187, 15, 0.1);
  outline: none;
  transform: translateY(-1px);
}

@media (min-width: 1100px) {
  body.sc-public-page:has(.sc-prose) {
    --sc-page-content-max: var(--sc-page-wide-max);
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) {
    display: grid;
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
    column-gap: clamp(2.5rem, 5vw, 4.5rem);
    align-items: start;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) > .sc-page-lede {
    grid-column: 1 / -1;
    max-width: 66ch;
    margin: 0 0 clamp(2.25rem, 4vw, 3.25rem);
    font-size: clamp(1.15rem, 2vw, 1.3rem);
    line-height: 1.6;
    text-align: left;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) > .sc-page-toc {
    grid-column: 1;
    grid-row: 2 / span 100;
    position: sticky;
    top: 1.25rem;
    margin: 0;
    padding: 0 1.5rem 0 0;
    border-right: 1px solid rgba(255, 255, 255, 0.14);
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) > .sc-page-toc::before {
    content: "On this page";
    display: block;
    margin: 0 0 1rem;
    color: var(--sc-peak-green-bright, #2fd6a5);
    font-family: var(--sc-font-mono);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) .sc-page-toc__list {
    flex-direction: column;
    align-items: stretch;
    gap: 0.25rem;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) .sc-page-toc__list a {
    justify-content: flex-start;
    min-height: 0;
    padding: 0.7rem 0.75rem 0.7rem 1rem;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0;
    background: transparent;
    color: var(--sc-text-muted);
    white-space: normal;
    transform: none;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) .sc-page-toc__list a:hover,
  body.sc-public-page .sc-prose:has(> .sc-page-toc) .sc-page-toc__list a:focus-visible {
    border-left-color: var(--sc-peak-green-bright, #2fd6a5);
    background: rgba(47, 214, 165, 0.06);
    color: #ffffff;
    transform: none;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) > :not(.sc-page-lede):not(.sc-page-toc) {
    grid-column: 2;
    min-width: 0;
  }

  body.sc-public-page .sc-prose:has(> .sc-page-toc) .sc-page-section {
    max-width: 72ch;
  }
}

body.sc-public-page .sc-page-callouts {
  display: grid;
  gap: 1rem;
  margin: 0 0 2rem;
}

@media (min-width: 640px) {
  body.sc-public-page .sc-page-callouts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body.sc-public-page .sc-page-callout {
  padding: 1.25rem 1.35rem;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-sm);
  border: 1px solid rgba(47, 214, 165, 0.28);
  background: rgba(1, 60, 145, 0.18);
}

body.sc-public-page .sc-page-callout__title {
  margin: 0 0 0.65rem;
  font-size: 1.15rem;
  line-height: 1.3;
  color: #ffffff;
}

body.sc-public-page .sc-page-callout p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--sc-text-muted);
}

body.sc-public-page .sc-page-section {
  margin: 0 0 var(--sc-head-gap);
  padding-top: 0.25rem;
  scroll-margin-top: 6rem;
}

body.sc-public-page .sc-prose [id] {
  scroll-margin-top: 6rem;
}

body.sc-public-page .sc-page-section:not(:first-of-type) {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: var(--sc-band-sm);
}

/* Field-guide eyebrows live on landing audience forks only. */
body.sc-public-page .sc-page-section__label {
  display: none;
}

body.sc-public-page .sc-prose h2 {
  margin: 0 0 0.85rem;
  font-family: var(--sc-font-sans);
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: #ffffff;
}

body.sc-public-page .sc-prose h3 {
  margin: 1.5rem 0 0.65rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--sc-brand-yellow);
}

body.sc-public-page .sc-prose :is(ul, ol) {
  margin: 0 0 1.15rem;
  padding-inline-start: 1.35rem;
}

body.sc-public-page .sc-prose li {
  margin-bottom: 0.45rem;
}

body.sc-public-page .sc-prose li::marker {
  color: var(--sc-brand-yellow);
}

/* ------------------------------------------------------------------ */
/* /dates — deadlines strip + season flowchart                        */
/* ------------------------------------------------------------------ */

body.sc-public-page .sc-dates-section {
  scroll-margin-top: 6rem;
}

body.sc-public-page .sc-dates-section__intro {
  max-width: 52ch;
  margin: -0.35rem 0 1.35rem;
  color: var(--sc-text-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

body.sc-public-page .sc-prose address {
  font-style: normal;
  margin: 0 0 1.15rem 1rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--sc-teal);
  background: rgba(1, 79, 144, 0.15);
  line-height: 1.55;
  color: #e8ecf4;
}

body.sc-public-page .sc-page-figure {
  margin: 0 0 1.5rem;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
  overflow: hidden;
  border: 1px solid rgba(47, 214, 165, 0.35);
  background: rgba(13, 13, 25, 0.45);
  filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.22));
}

body.sc-public-page .sc-page-figure img {
  display: block;
  width: 100%;
  height: auto;
}

body.sc-public-page .sc-page-figure figcaption {
  padding: 0.65rem 1rem;
  font-size: 0.875rem;
  font-style: italic;
  color: var(--sc-text-muted);
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

body.sc-public-page .sc-page-split {
  display: grid;
  gap: 1.5rem;
  margin: 0 0 2rem;
}

body.sc-public-page .sc-page-topic-grid {
  display: grid;
  gap: 1rem;
  margin: 1.25rem 0 1.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 640px) {
  body.sc-public-page .sc-page-topic-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  body.sc-public-page .sc-page-topic-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

body.sc-public-page .sc-page-topic-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-sm);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(13, 13, 25, 0.45);
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

body.sc-public-page .sc-page-topic-card:hover,
body.sc-public-page .sc-page-topic-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(47, 214, 165, 0.45);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
  outline: none;
}

body.sc-public-page .sc-page-topic-card__media {
  display: block;
  aspect-ratio: 600 / 248;
  overflow: hidden;
}

body.sc-public-page .sc-page-topic-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.sc-public-page .sc-page-topic-card__title {
  padding: 0.65rem 0.75rem 0.75rem;
  font-family: var(--sc-font-sans);
  font-weight: 600;
  font-size: 0.9rem;
  color: #fff;
}

body.sc-public-page .sc-page-topic-ideas {
  display: grid;
  gap: 1rem;
  margin-top: 0.5rem;
}

@media (min-width: 640px) {
  body.sc-public-page .sc-page-topic-ideas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body.sc-public-page .sc-page-topic-idea {
  padding: 1rem 1.1rem;
  border-radius: var(--sc-radius-md);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(13, 13, 25, 0.45);
}

body.sc-public-page .sc-page-topic-idea__title {
  margin: 0 0 0.5rem;
  font-family: var(--sc-font-sans);
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.35;
}

body.sc-public-page .sc-page-topic-idea__text {
  margin: 0;
  color: var(--sc-text-muted);
  line-height: 1.55;
  font-size: 0.95rem;
}

body.sc-public-page .sc-page-example-spotlights {
  display: grid;
  gap: 1.5rem;
  margin-top: 0.5rem;
}

@media (min-width: 768px) {
  body.sc-public-page .sc-page-example-spotlights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

body.sc-public-page .sc-page-example-spotlight {
  display: flex;
  flex-direction: column;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
  overflow: hidden;
  border: 1px solid rgba(47, 214, 165, 0.28);
  background: rgba(13, 13, 25, 0.45);
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.2));
}

body.sc-public-page .sc-page-example-spotlight__figure {
  margin: 0;
}

body.sc-public-page .sc-page-example-spotlight__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

body.sc-public-page .sc-page-example-spotlight__body {
  padding: 1rem 1.1rem 1.15rem;
}

body.sc-public-page .sc-page-example-spotlight__title {
  margin: 0 0 0.5rem;
  font-family: var(--sc-font-sans);
  font-size: 1.125rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.35;
}

body.sc-public-page .sc-page-example-spotlight__text {
  margin: 0;
  color: var(--sc-text-muted);
  line-height: 1.55;
  font-size: 0.95rem;
}

body.sc-public-page .sc-page-example-spotlight__link {
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
}

body.sc-public-page .sc-page-example-spotlight__link a {
  color: var(--sc-peak-green-bright, #2fd6a5);
  text-decoration: none;
  font-weight: 600;
}

body.sc-public-page .sc-page-example-spotlight__link a:hover,
body.sc-public-page .sc-page-example-spotlight__link a:focus-visible {
  text-decoration: underline;
}

body.sc-public-page .sc-page-example-gallery {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
  body.sc-public-page .sc-page-example-gallery {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

body.sc-public-page .sc-page-example-gallery .sc-page-figure {
  margin: 0;
}

body.sc-public-page .sc-page-example-gallery .sc-page-figure img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

body.sc-public-page .sc-page-example-gallery .sc-page-figure figcaption {
  font-size: 0.85rem;
  padding-top: 0.5rem;
}

@media (min-width: 768px) {
  body.sc-public-page .sc-page-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
    align-items: start;
  }
}

body.sc-public-page .sc-page-next-steps {
  margin-top: var(--sc-head-gap);
  padding-top: var(--sc-band-sm);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.sc-public-page .sc-page-next-steps__heading {
  margin: 0 0 1rem;
  font-family: var(--sc-font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sc-peak-green-bright, #2fd6a5);
  text-align: center;
}

body.sc-public-page .sc-page-next-steps__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}

body.sc-public-page .sc-page-next-steps__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 0.6rem 1.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--sc-radius-md);
}

/* Fallback typography for public pages not yet wrapped in .sc-prose */
body.sc-public-page :is(
    .node--type-page .field--name-body,
    article.page .field--name-body
  ):not(:has(.sc-prose)):not(:has(.sc-staff-page)):not(:has(.sc-sponsors-page)) > p {
  margin-bottom: 1.15rem;
  line-height: 1.7;
  max-width: 70ch;
}

body.sc-public-page :is(
    .node--type-page .field--name-body,
    article.page .field--name-body
  ):not(:has(.sc-prose)):not(:has(.sc-staff-page)):not(:has(.sc-sponsors-page)) > h3 {
  margin-top: 2rem;
  margin-bottom: 0.65rem;
}

/* Staff & Volunteers page — team grid.
   Masthead owns the H1; hide the duplicate body title. */
body.sc-staff-page #block-supercomputing-challenge-page-title {
  display: none !important;
}

body.sc-staff-page .sc-public-masthead__title #block-supercomputing-challenge-page-title {
  display: block !important;
}

body.sc-staff-page .sc-staff-page__intro .sc-landing-section-label,
body.sc-staff-page .sc-staff-page__title {
  display: none;
}

/* Beat fidelity's document `margin: 0 / max-width: none` so staff/sponsors
   stay centered with real left/right gutters inside the public shell. */
body:is(.sc-staff-page, .sc-sponsors-page).sc-public-page .sc-public-document :is(
    .node--type-page .field--name-body,
    article.page .field--name-body,
    .node--type-page .node__content,
    article.page .node__content
  ) {
  width: 100%;
  max-width: var(--sc-landing-max);
  margin-top: var(--sc-band-sm) !important;
  margin-bottom: var(--sc-band-lg) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: var(--sc-band-md) var(--sc-landing-pad) var(--sc-band-lg);
  box-sizing: border-box;
  background: var(--sc-surface-card-bg) !important;
}

body:is(.sc-staff-page, .sc-sponsors-page) .sc-public-wrap__main .container-remo > .row > article.node--type-page {
  width: 100%;
  max-width: var(--sc-landing-max);
  margin-inline: auto;
}

body:is(.sc-staff-page, .sc-sponsors-page) .sc-public-document .container-remo {
  max-width: var(--sc-landing-max);
  margin-inline: auto;
  padding-inline: 0;
  width: 100%;
}

.sc-staff-page__intro {
  text-align: center;
  margin-bottom: var(--sc-head-gap);
}

.sc-staff-page__title {
  margin: 0 0 0.85rem;
  font-family: var(--sc-font-sans);
  font-size: clamp(1.875rem, 4vw, 2.5rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.12;
  letter-spacing: -0.02em;
}

.sc-staff-page__title-accent {
  color: var(--sc-brand-yellow);
}

.sc-staff-page__lead {
  max-width: 40rem;
  margin: 0 auto 1rem;
  color: var(--sc-text-muted);
  line-height: 1.65;
  font-size: 1.05rem;
}

.sc-staff-section {
  margin-bottom: var(--sc-head-gap);
}

.sc-staff-section__title {
  margin: 0 0 1.5rem;
  text-align: center;
  font-family: var(--sc-font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--sc-peak-green-bright, #2fd6a5);
}

body.sc-staff-page .node__content h2.sc-staff-section__title {
  color: var(--sc-peak-green-bright, #2fd6a5);
}

.sc-staff-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
}

@media (min-width: 768px) {
  .sc-staff-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sc-staff-grid--team {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-width: var(--sc-landing-max);
    margin-inline: auto;
  }
}

.sc-staff-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.25rem 0.75rem 1.5rem;
}

.sc-staff-card__photo-wrap {
  width: 9.5rem;
  height: 9.5rem;
  margin-bottom: 1.1rem;
  padding: 4px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--sc-brand-yellow), var(--sc-brand-orange));
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

.sc-staff-card__photo {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  background: var(--sc-bg-elevated);
}

.sc-staff-card__name {
  margin: 0 0 0.35rem;
  font-family: var(--sc-font-sans);
  font-size: 1.05rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1.3;
}

.sc-staff-card__role {
  margin: 0 0 0.65rem;
  color: var(--sc-brand-yellow);
  font-size: 0.9rem;
  line-height: 1.4;
  font-weight: 600;
}

.sc-staff-card__bio {
  margin: 0 0 0.85rem;
  color: var(--sc-text-muted);
  font-size: 0.88rem;
  line-height: 1.55;
  text-align: left;
  width: 100%;
}

.sc-staff-card__contact {
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.5;
}

.sc-staff-card__contact a {
  color: var(--sc-brand-yellow);
}

.sc-staff-card__social {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.sc-staff-card__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  transition:
    color 0.2s ease,
    border-color 0.2s ease,
    background-color 0.2s ease,
    transform 0.2s ease;
}

.sc-staff-card__social-link:hover,
.sc-staff-card__social-link:focus-visible {
  color: var(--sc-brand-yellow);
  border-color: rgba(251, 187, 15, 0.55);
  background: rgba(251, 187, 15, 0.1);
  transform: translateY(-1px);
  outline: none;
}

.sc-staff-page__cta {
  margin-top: var(--sc-head-gap);
  padding: clamp(1.5rem, 3vw, 2rem);
  text-align: center;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
  background: var(--sc-surface-card-bg-muted);
  border: 1px solid rgba(47, 214, 165, 0.28);
}

.sc-staff-page__cta-title {
  margin: 0 0 0.65rem;
  font-family: var(--sc-font-sans);
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  color: #ffffff;
}

.sc-staff-page__cta-text {
  margin: 0 auto 1.25rem;
  max-width: 36rem;
  color: var(--sc-text-muted);
  line-height: 1.6;
}

.sc-staff-page__cta-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin: 0;
}

body.sc-sponsors-page :is(
    .node--type-page .field--name-body,
    article.page .field--name-body,
    .node--type-page .node__content,
    article.page .node__content
  ) {
  max-width: var(--sc-landing-max);
  margin-top: clamp(1.25rem, 3vw, 1.75rem) !important;
  margin-bottom: var(--sc-band-lg) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.sc-sponsors-page .sc-sponsors-page__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}

body.sc-sponsors-page .sc-sponsors-page__info,
body.sc-sponsors-page .sc-sponsors-page__partners {
  min-width: 0;
}

body.sc-sponsors-page .sc-sponsors-page__lead {
  font-size: 1.0625rem;
  line-height: 1.55;
  margin: 0 0 1rem;
}

body.sc-sponsors-page .sc-sponsors-page__steps {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}

body.sc-sponsors-page .sc-sponsors-page__steps li + li {
  margin-top: 0.35rem;
}

body.sc-sponsors-page .sc-sponsors-page__address {
  margin: 0 0 1.5rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--sc-teal);
  background: rgba(1, 79, 144, 0.12);
  font-style: normal;
  line-height: 1.5;
}

body.sc-sponsors-page .sc-sponsors-page__section {
  margin-top: 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

body.sc-sponsors-page .sc-sponsors-page__section h2 {
  margin: 0 0 0.75rem;
  font-size: 1.25rem;
}

body.sc-sponsors-page .sc-sponsors-page__levels {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.sc-sponsors-page .sc-sponsors-page__levels li {
  padding: 0.55rem 0.75rem;
  margin-bottom: 0.35rem;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-sm);
  background: var(--sc-surface-card-bg-muted);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

body.sc-sponsors-page .sc-sponsors-page__partners {
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
  background: var(--sc-surface-card-bg-muted);
  border: 1px solid rgba(47, 214, 165, 0.28);
}

body.sc-sponsors-page .sc-sponsors-page__partners-title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.35rem, 2.5vw, 1.65rem);
  color: #ffffff;
}

body.sc-sponsors-page .sc-sponsor-tier {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

body.sc-sponsors-page .sc-sponsor-tier:first-of-type {
  margin-top: 0.75rem;
  padding-top: 0;
  border-top: none;
}

body.sc-sponsors-page .sc-sponsor-tier h3 {
  margin: 0 0 0.65rem;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

body.sc-sponsors-page .sc-sponsor-tier--primary h3 {
  color: var(--sc-brand-yellow);
}

body.sc-sponsors-page .sc-sponsor-tier--platinum h3 {
  color: #e8ecf4;
}

body.sc-sponsors-page .sc-sponsor-tier--gold h3 {
  color: #f4c542;
}

body.sc-sponsors-page .sc-sponsor-tier--silver h3 {
  color: #c5d0e0;
}

body.sc-sponsors-page .sc-sponsor-tier--bronze h3 {
  color: #cd9b6a;
}

body.sc-sponsors-page .sc-sponsor-tier--educational h3 {
  color: var(--sc-peak-green);
}

body.sc-sponsors-page .sc-sponsor-tier--friends h3 {
  color: var(--sc-brand-orange);
}

body.sc-sponsors-page .sc-sponsor-tier ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.sc-sponsors-page .sc-sponsor-tier li {
  padding: 0.35rem 0;
  line-height: 1.45;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

body.sc-sponsors-page .sc-sponsor-tier li:last-child {
  border-bottom: none;
}

body.sc-sponsors-page .sc-sponsor-tier__empty {
  margin: 0;
  color: var(--sc-text-muted);
}

/* Login page shell */
body.sc-login-page .sc-login-wrap {
  min-height: 60vh;
  padding: clamp(1.5rem, 4vw, 3rem) 1rem;
}

body.sc-login-page .sc-login-wrap__inner {
  max-width: 480px;
  margin: 0 auto;
}

body.sc-login-page.sc-login-page--registration-context .sc-login-wrap__inner {
  max-width: 640px;
}

body.sc-login-page .sc-login-wrap__intro {
  margin: 0 0 1.5rem;
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background: var(--sc-surface-card-bg);
  border: 1px solid var(--sc-surface-card-border);
  border-radius: var(--sc-radius-lg);
  box-shadow: var(--sc-surface-card-shadow);
  color: var(--ygency-body-color);
}

body.sc-login-page .sc-login-wrap__intro h1 {
  margin: 0 0 0.75rem;
  color: #ffffff;
  font-size: clamp(1.5rem, 3.5vw, 1.875rem);
  line-height: 1.2;
}

body.sc-login-page .sc-login-wrap__intro ul {
  margin: 0.75rem 0 1rem;
  padding-left: 1.25rem;
}

body.sc-login-page .sc-login-wrap__intro li {
  margin-bottom: 0.35rem;
}

body.sc-login-page .sc-login-wrap__intro-more a {
  color: var(--sc-brand-yellow);
  font-weight: 600;
  text-decoration: none;
}

body.sc-login-page .sc-login-wrap__intro-more a:hover {
  color: var(--sc-brand-orange);
}

body.sc-login-page .sc-login-wrap__intro-signin {
  margin: 0;
  color: var(--sc-text-muted);
  font-size: 0.95rem;
}

body.sc-login-page.sc-login-page--registration-context #block-supercomputing-challenge-page-title {
  display: none !important;
}

body.sc-login-page .sc-login-wrap__back {
  margin: 0 0 1.5rem;
  text-align: center;
}

body.sc-login-page .sc-login-wrap__back a {
  color: var(--sc-brand-yellow);
  text-decoration: none;
  font-weight: 500;
}

body.sc-login-page .sc-login-wrap__back a:hover {
  color: var(--sc-brand-orange);
}

/* Login and password forms */
body.sc-login-page :is(
    #user-login-form,
    form.user-login-form,
    #user-pass,
    form#user-pass,
    #user-pass-reset,
    form#user-pass-reset
  ) {
  max-width: 420px;
  margin: clamp(2rem, 5vw, 3.5rem) auto clamp(3rem, 8vw, 5rem);
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--sc-surface-card-bg) !important;
  border: 1px solid var(--sc-surface-card-border);
  border-radius: var(--sc-radius-lg);
  box-shadow: var(--sc-surface-card-shadow);
}

body.sc-login-page :is(
    #user-login-form,
    form.user-login-form,
    #user-pass,
    form#user-pass,
    #user-pass-reset,
    form#user-pass-reset
  ) label {
  color: #ffffff;
}

body.sc-login-page :is(
    #user-login-form,
    form.user-login-form,
    #user-pass,
    form#user-pass,
    #user-pass-reset,
    form#user-pass-reset
  ) .form-control {
  background-color: rgba(13, 13, 25, 0.85) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}

body.sc-login-page :is(
    #user-login-form,
    form.user-login-form,
    #user-pass,
    form#user-pass,
    #user-pass-reset,
    form#user-pass-reset
  ) .form-control:focus {
  border-color: var(--sc-brand-yellow) !important;
  box-shadow: 0 0 0 2px rgba(251, 187, 15, 0.25);
}

body.sc-login-page :is(
    #user-login-form .button,
    form.user-login-form .button,
    #user-login-form .form-submit,
    form.user-login-form .form-submit,
    #user-pass .form-submit,
    form#user-pass .form-submit,
    #user-pass-reset .form-submit,
    form#user-pass-reset .form-submit
  ) {
  background: var(--sc-brand-gradient) !important;
  border: none !important;
  color: var(--sc-bg-deep) !important;
  font-weight: 600;
}

body.sc-login-page :is(h1, .page-title) {
  color: #ffffff;
  text-align: center;
}

/* Team formation form */
/* Two-column grid — also in challenge/css/team-formation.css (belt + suspenders). */
body.sc-team-formation-page form#team-formation .challenge-team-formation-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) !important;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
  width: 100%;
}

body.sc-team-formation-page form#team-formation .challenge-team-formation-layout > * {
  min-width: 0;
}

body.sc-team-formation-page form#team-formation .challenge-team-formation-layout > .challenge-team-formation-intro {
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(47, 214, 165, 0.22);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
}

body.sc-team-formation-page form#team-formation .challenge-team-formation-layout > .challenge-team-formation-layout__form {
  padding: clamp(1.25rem, 3vw, 1.75rem);
  background: rgba(13, 13, 25, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
}

body.sc-team-formation-page .challenge-team-formation-intro__heading {
  margin: 0 0 1rem;
  font-family: var(--sc-font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sc-peak-green-bright, #2fd6a5);
  font-weight: 500;
  line-height: 1.4;
}

body.sc-team-formation-page h2.challenge-team-formation-intro__heading {
  color: var(--sc-peak-green-bright, #2fd6a5);
}

body.sc-team-formation-page .challenge-team-formation-intro {
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.65;
}

body.sc-team-formation-page .challenge-team-formation-intro :is(ol, ul, .challenge-team-formation-intro__list) {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none !important;
  counter-reset: sc-team-step;
}

body.sc-team-formation-page .challenge-team-formation-intro :is(ol, ul, .challenge-team-formation-intro__list) > li {
  position: relative;
  margin: 0;
  padding-left: 2.15rem;
  list-style: none !important;
  display: list-item;
  counter-increment: sc-team-step;
}

body.sc-team-formation-page .challenge-team-formation-intro :is(ol, ul, .challenge-team-formation-intro__list) > li::before {
  content: counter(sc-team-step);
  position: absolute;
  left: 0;
  top: 0.15em;
  width: 1.4rem;
  height: 1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(47, 214, 165, 0.45);
  border-radius: 999px;
  background: rgba(47, 214, 165, 0.12);
  color: var(--sc-peak-green-bright, #2fd6a5);
  font-family: var(--sc-font-mono, ui-monospace, monospace);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
}

body.sc-team-formation-page .challenge-team-formation-intro li + li {
  margin-top: 0.65rem;
}

body.sc-team-formation-page .challenge-team-formation-intro a {
  color: var(--sc-accent-gold, #fbbb0f);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.sc-team-formation-page .challenge-team-formation-intro kbd {
  display: inline-block;
  padding: 0.1em 0.4em;
  font-size: 0.9em;
  border-radius: var(--sc-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
}

@media (max-width: 900px) {
  body.sc-team-formation-page form#team-formation .challenge-team-formation-layout {
    grid-template-columns: 1fr !important;
  }
}

body.sc-team-formation-page :is(form#team-formation, .team-formation-form) {
  max-width: min(var(--sc-landing-max), 100%);
  margin: var(--sc-band-sm) auto var(--sc-band-lg);
  padding: clamp(1.75rem, 4vw, 2.75rem);
  background: var(--sc-surface-card-bg) !important;
  border: 1px solid var(--sc-surface-card-border);
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-lg);
  box-shadow: var(--sc-surface-card-shadow);
}

body.sc-team-formation-page form label {
  color: #ffffff;
}

body.sc-team-formation-page form :is(.form-control, .form-select, textarea) {
  background-color: rgba(13, 13, 25, 0.85) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}

body.sc-team-formation-page form .form-select option,
body.sc-team-formation-page form .form-select optgroup {
  background-color: #12182a;
  color: #ffffff;
}

body.sc-team-formation-page form .nice-select,
body.sc-team-formation-page form .nice-select .list {
  background-color: #12182a !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
}

body.sc-team-formation-page form .nice-select .option:hover,
body.sc-team-formation-page form .nice-select .option.focus,
body.sc-team-formation-page form .nice-select .option.selected {
  background-color: rgba(251, 187, 15, 0.15) !important;
  color: var(--sc-brand-yellow, #fbbb0f) !important;
}

body.sc-team-formation-page form :is(.form-submit, button[type="submit"]) {
  background: var(--sc-brand-gradient) !important;
  border: none !important;
  color: var(--sc-bg-deep) !important;
  font-weight: 600;
}

body.sc-team-formation-page form#team-formation .form-check,
body.sc-team-formation-page form#team-formation .js-form-type-checkbox.checkbox {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  gap: 0.75rem;
  width: 100%;
  max-width: 100%;
}

body.sc-team-formation-page form#team-formation .form-check-label {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0;
  max-width: 100%;
  line-height: 1.45;
  overflow-wrap: break-word;
  padding-left: 0 !important;
}

body.sc-team-formation-page :is(h1, .page-title) {
  color: #ffffff;
}

/* Team report forms: turn Drupal's node forms into a focused submission tool. */
body.sc-site-shell form.challenge-team-submission-form {
  max-width: 52rem;
  margin: var(--sc-band-sm) auto var(--sc-band-lg);
  padding: clamp(1.5rem, 4vw, 2.75rem);
  background: var(--sc-surface-card-bg, rgba(14, 20, 36, 0.9));
  border: 1px solid rgba(47, 214, 165, 0.22);
  box-shadow: var(--sc-surface-card-shadow);
}

body.sc-site-shell .challenge-team-submission-intro {
  margin: 0 0 2rem;
  padding: 0 0 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.13);
}

body.sc-site-shell .challenge-team-submission-intro h2 {
  margin: 0 0 0.55rem;
  color: #ffffff;
  font-family: var(--sc-font-sans);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 650;
  letter-spacing: 0;
}

body.sc-site-shell .challenge-team-submission-intro p {
  max-width: 44rem;
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.6;
}

body.sc-site-shell form.challenge-team-submission-form .form-item {
  margin-block: 1.25rem;
}

body.sc-site-shell form.challenge-team-submission-form label {
  color: #ffffff;
  font-weight: 600;
}

body.sc-site-shell form.challenge-team-submission-form .description {
  margin-top: 0.4rem;
  color: rgba(255, 255, 255, 0.67);
  line-height: 1.5;
}

body.sc-site-shell form.challenge-team-submission-form :is(input[type="text"], input[type="file"], textarea) {
  max-width: 100%;
}

body.sc-site-shell form.challenge-team-submission-form .form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

body.sc-site-shell form.challenge-team-submission-form .form-actions :is(input[type="submit"], button) {
  min-height: 2.75rem;
  padding-inline: 1.15rem;
}

/* Public View listings (proposals, interims, finals) */
body.sc-public-page .view {
  max-width: 1100px;
  margin: clamp(2rem, 5vw, 3.5rem) auto clamp(3rem, 8vw, 5rem);
  padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--sc-surface-card-bg);
  border: 1px solid var(--sc-surface-card-border);
  border-radius: var(--sc-radius-lg);
  box-shadow: var(--sc-surface-card-shadow);
  color: var(--ygency-body-color);
}

body.sc-public-page .view h2 {
  color: #ffffff;
}

body.sc-public-page .view h3 {
  color: var(--sc-heading-h3-color);
}

body.sc-public-page .view a {
  color: var(--sc-brand-yellow);
}

body.sc-public-page .view table {
  width: 100%;
  border-collapse: collapse;
}

body.sc-public-page .view :is(th, td) {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body.sc-public-page .view th {
  color: #ffffff;
  text-align: left;
}

/* PayPal fees block on registration-fees page */
body.sc-public-page .sc-paypal-fees-wrap {
  margin: 1.5rem 0;
  padding: 1.25rem;
  background: var(--sc-surface-card-bg-muted);
  border-radius: var(--sc-radius-md);
  border: 1px solid var(--sc-surface-card-border);
}

body.sc-public-page .sc-paypal-fees-wrap :is(input, input[type="text"], input[type="number"]) {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background-color: rgba(13, 13, 25, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  padding: 0.65rem 0.85rem;
  border-radius: var(--sc-radius-md);
}

body.sc-public-page .sc-paypal-fees-wrap label {
  display: block;
  margin-bottom: 0.35rem;
  color: #ffffff;
  font-weight: 600;
}

body.sc-public-page .sc-paypal-fees-wrap p {
  margin-bottom: 1rem;
}

body.sc-public-page .sc-paypal-missing {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: var(--sc-radius-md);
  background: rgba(244, 180, 23, 0.12);
  border: 1px solid rgba(244, 180, 23, 0.35);
  color: #ffffff;
}

body.sc-public-page .sc-paypal-missing code {
  color: var(--sc-brand-yellow);
}

body.sc-public-page :is(
    .node--type-page .field--name-body table,
    article.page .field--name-body table,
    .node--type-page .node__content table,
    article.page .node__content table
  ) {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (prefers-reduced-motion: reduce) {
  body:is(.sc-public-page, .sc-login-page, .sc-team-formation-page)::after {
    animation: none;
    opacity: 0.12;
  }
}

/* ------------------------------------------------------------------ */
/* Mobile & small tablet — extra horizontal breathing room            */
/* ------------------------------------------------------------------ */

@media (max-width: 767px) {
  body.sc-site-shell {
    --sc-landing-pad: max(1.75rem, env(safe-area-inset-left, 0px));
  }

  body.sc-site-shell .sc-landing-header__inner,
  body.sc-site-shell .sc-landing-footer__inner,
  body.sc-site-shell .sc-landing-footer__bottom {
    padding-inline: max(1.75rem, env(safe-area-inset-left, 0px))
      max(1.75rem, env(safe-area-inset-right, 0px));
  }

  /* Wrap stays pad-free; --sc-landing-pad above feeds masthead/document gutters. */

  body.sc-login-page .sc-login-wrap {
    padding-inline: max(1.75rem, env(safe-area-inset-left, 0px))
      max(1.75rem, env(safe-area-inset-right, 0px));
  }

  body:is(.sc-public-page, .sc-registration-page, .sc-login-page, .sc-team-formation-page) .page-wrapper {
    overflow-x: hidden;
    overflow-y: visible;
  }

  body.sc-public-page :is(
      .node--type-page .field--name-body,
      article.page .field--name-body,
      .node--type-page .node__content,
      article.page .node__content,
      .view,
      .search-form,
      form.search-form,
      .search-results,
      ol.search-results
    ) {
    margin-inline: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.sc-public-page :is(
      .node--type-page .field--name-body ol,
      .node--type-page .field--name-body ul,
      article.page .field--name-body ol,
      article.page .field--name-body ul,
      .node--type-page .node__content ol,
      .node--type-page .node__content ul,
      article.page .node__content ol,
      article.page .node__content ul
    ) {
    padding-inline-start: 1.25rem;
  }

  body.sc-public-page .sc-page-toc__list a {
    white-space: normal;
    min-width: 8rem;
  }

  body.sc-sponsors-page .sc-sponsors-page__grid {
    grid-template-columns: 1fr;
  }

  .sc-staff-grid {
    grid-template-columns: 1fr;
    max-width: 18rem;
    margin-inline: auto;
  }

  .sc-staff-grid--team {
    max-width: 20rem;
  }
}

/* Press materials listing + detail embeds */
body.sc-public-page .view-press-materials .views-row {
  padding: 1.25rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

body.sc-public-page .view-press-materials .views-row:last-child {
  border-bottom: 0;
}

body.sc-public-page .view-press-materials .node--type-press-releases h2 {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
}

body.sc-public-page .view-press-materials .node--type-press-releases h2 a {
  color: #ffffff;
  text-decoration: none;
}

body.sc-public-page .view-press-materials .node--type-press-releases h2 a:hover {
  color: var(--sc-brand-yellow);
}

body.sc-public-page .sc-press-embed {
  margin: 1.25rem auto;
  max-width: 100%;
}

body.sc-public-page .sc-press-embed--video video {
  display: block;
  width: 100%;
  max-width: 640px;
  height: auto;
  border-radius: var(--sc-radius-md);
  background: #000;
}

body.sc-public-page .sc-press-embed--youtube iframe {
  display: block;
  width: 100%;
  max-width: 560px;
  aspect-ratio: 16 / 9;
  height: auto;
  min-height: 200px;
  border: 0;
  border-radius: var(--sc-radius-md);
}

/* Job posting pages (e.g. /executive-director) */
body.sc-public-page .sc-job-posting__lede {
  font-size: 1.1rem;
  line-height: 1.6;
  margin: 0 0 1.5rem;
}

body.sc-public-page .sc-job-posting__summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.85rem 1.25rem;
  margin: 0 0 2rem;
  padding: 1rem 1.15rem;
  border-radius: 0;
  clip-path: var(--sc-chamfer-clip-md);
  background: var(--sc-surface-card-bg-muted);
  border: 1px solid rgba(47, 214, 165, 0.28);
}

body.sc-public-page .sc-job-posting__summary-item {
  margin: 0;
}

body.sc-public-page .sc-job-posting__summary dt {
  margin: 0 0 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sc-brand-yellow);
}

body.sc-public-page .sc-job-posting__summary dd {
  margin: 0;
  color: #ffffff;
  line-height: 1.45;
}

body.sc-public-page .sc-job-posting__legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin: 0 0 1.25rem;
  font-size: 0.9rem;
  color: var(--sc-text-muted);
}

body.sc-public-page .sc-job-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  margin-right: 0.35rem;
  border-radius: var(--sc-radius-sm);
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
}

body.sc-public-page .sc-job-badge--required {
  color: var(--sc-bg-deep);
  background: var(--sc-brand-yellow);
}

body.sc-public-page .sc-job-badge--desired {
  color: #ffffff;
  background: var(--sc-valley-blue);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

body.sc-public-page .sc-job-posting__list {
  padding-left: 0;
  list-style: none;
}

body.sc-public-page .sc-job-posting__list li {
  position: relative;
  padding-left: 0.15rem;
  margin-bottom: 0.45rem;
  line-height: 1.5;
}

body.sc-public-page .sc-job-posting__note {
  margin-top: 1.5rem;
  padding: 0.85rem 1rem;
  border-left: 3px solid var(--sc-brand-yellow);
  background: rgba(251, 187, 15, 0.08);
}

@media (max-width: 390px) {
  body.sc-site-shell {
    --sc-landing-pad: max(1.5rem, env(safe-area-inset-left, 0px));
  }

  body.sc-site-shell .sc-landing-header__inner,
  body.sc-site-shell .sc-landing-footer__inner,
  body.sc-site-shell .sc-landing-footer__bottom,
  body.sc-login-page .sc-login-wrap {
    padding-inline: max(1.5rem, env(safe-area-inset-left, 0px))
      max(1.5rem, env(safe-area-inset-right, 0px));
  }
}

/* Shared public-page content rhythm (titles: sc-public-fidelity.css). */
body.sc-public-page {
  --sc-page-content-max: 980px;
}

body.sc-public-page :is(.node--type-page, article.page) .node__content {
  color: #bdc9d8;
  font-size: 1rem;
  line-height: 1.72;
}

body.sc-public-page :is(.node--type-page, article.page) .node__content :is(h2, h3) {
  scroll-margin-top: 8rem;
  text-wrap: balance;
}

body.sc-public-page :is(.node--type-page, article.page) .node__content h2 {
  margin-top: clamp(2rem, 4vw, 3rem);
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  letter-spacing: -0.025em;
}

body.sc-public-page :is(.node--type-page, article.page) .node__content a:not(.btn):not(.button) {
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

body.sc-public-page :is(table, .table) {
  border-color: rgba(116, 170, 227, 0.18);
}

body.sc-public-page :is(table, .table) thead th {
  color: #ddecff;
  background: rgba(8, 125, 231, 0.1);
  border-bottom-color: rgba(101, 170, 255, 0.28);
}

@media (max-width: 767px) {
  body.sc-public-page :is(
      .node--type-page .field--name-body,
      article.page .field--name-body,
      .node--type-page .node__content,
      article.page .node__content
    ) {
    padding: 1.4rem;
  }
}
