/* Application components only. Existing vacancy design, theme and content remain authoritative. */
.em-contact-actions { gap: .65rem; }
.em-contact-actions .em-cta { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .65rem; text-align: center; text-decoration: none; box-sizing: border-box; overflow-wrap: anywhere; }
.em-contact-actions--intro { display: flex; flex-wrap: wrap; margin-block: 1rem 0; }
.em-contact-actions--intro .em-cta { padding: .75rem 1.25rem; }
.em-contact-actions--sidebar { display: grid; margin-block: 1.1rem; }
.em-contact-actions--sidebar .em-contact-text-link { text-align: center; font-size: .9rem; }
.em-contact-phone { display: inline-flex; gap: .5rem; align-items: center; min-height: 44px; text-decoration: none; font-weight: 650; }
.em-contact-phone bdi { direction: ltr; unicode-bidi: isolate; white-space: nowrap; }
.em-contact-phone--header { font-size: .95rem; }
.em-global-contact { max-width: var(--wp--style--global--wide-size, 1200px); margin-inline: auto; padding-inline: var(--wp--preset--spacing--40, 24px); box-sizing: border-box; }
.em-global-contact--header { display: none; justify-content: flex-end; padding-block: 0 .35rem; }
.em-global-contact--footer { padding-block: 0 1rem; }
.em-application-panel { padding: clamp(1.15rem, 3vw, 2rem); margin-block-start: 1.25rem; scroll-margin-block: 1.5rem; }
.em-application-panel h2 { margin: 0 0 .5rem; font-size: clamp(1.4rem, 3vw, 1.85rem); line-height: 1.2; }
.em-application-intro p { margin-block: .5rem 1rem; }
.em-application-job { font-weight: 650; overflow-wrap: anywhere; }
.em-application-form, .em-application-fields, .em-form-field { min-width: 0; }
.em-application-fields { margin: 0; padding: 0; border: 0; display: grid; gap: 1rem; }
.em-name-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.em-form-field { display: grid; gap: .4rem; }
.em-form-field label { font-weight: 650; }
.em-form-field input, .em-form-field textarea { width: 100%; min-height: 48px; box-sizing: border-box; font: inherit; font-size: 16px; line-height: 1.5; padding: .7rem .85rem; border: 1px solid currentColor; border-radius: .7rem; color: inherit; background: transparent; }
.em-form-field textarea { resize: vertical; min-height: 100px; max-height: 500px; }
.em-form-field small, .em-required-note, .em-application-privacy { font-size: .9rem; line-height: 1.5; }
.em-form-field [aria-invalid="true"] { border-width: 2px; }
.em-field-error:not(:empty) { font-size: .875rem; font-weight: 650; }
.em-application-privacy, .em-required-note { margin: 0; }
.em-application-privacy a { text-decoration: underline; text-underline-offset: .2em; }
.em-form-submit { width: 100%; min-height: 50px; font: inherit; font-weight: 750; cursor: pointer; }
.em-form-submit:disabled { opacity: .65; cursor: default; }
.em-form-status { margin: .9rem 0 0; line-height: 1.5; }
.em-form-status:empty { display: none; }
.em-form-status:not(:empty), .em-application-preview-note { padding: .8rem 1rem; border: 1px solid currentColor; border-radius: .75rem; }
.em-application-alternative { margin-top: .5rem; text-align: center; }
.em-form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.em-contact-actions a:focus-visible, .em-contact-phone:focus-visible, .em-application-panel :is(input,textarea,button,a):focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.em-application-panel h2:focus-visible, .em-form-status:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.em-contact-actions--mobile { display: none; }
.em-contact-actions--mobile[hidden] { display: none !important; }
@media (max-width: 1023px) {
 .em-vacancy-page .em-summary-column { display: none; }
 .em-vacancy-page .em-main-column { flex-basis: 100% !important; }
 .em-vacancy-page .em-vacancy-columns { display: block; }
 .em-contact-actions--mobile { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0,1fr); position: fixed; inset-inline: 0; bottom: 0; width: auto; margin: 0; padding: 10px max(12px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); z-index: 50; box-sizing: border-box; border-top: 1px solid currentColor; background: var(--wp--preset--color--base, Canvas); color: var(--wp--preset--color--contrast, CanvasText); }
 .em-contact-actions--mobile .em-apply-link { flex: 2; }
 .em-contact-actions--mobile:has(.em-apply-link):has(.em-call-link) { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); }
 .em-contact-actions--mobile .em-cta { font-size: .92rem; line-height: 1.25; padding: .65rem .55rem; min-height: 48px; }
 html.em-has-mobile-contact { scroll-padding-bottom: calc(var(--em-contact-bar-height, 92px) + 16px); }
 html.em-has-mobile-contact body { padding-bottom: var(--em-contact-bar-height, 92px); }
 .em-contact-actions--intro { margin-top: 1rem; }
}
@media (max-width: 540px) {
 .em-global-contact--header { justify-content: center; }
 .em-name-row { grid-template-columns: minmax(0,1fr); gap: 1rem; }
 .em-contact-actions--intro .em-apply-link { flex: 1 1 auto; }
 .em-contact-actions--intro .em-call-link { flex: 0 1 auto; }
}
@media (prefers-reduced-motion: reduce) { .em-application-panel, .em-contact-actions { scroll-behavior: auto; transition: none; } }
@media print { .em-contact-actions, .em-global-contact, .em-application-panel { display:none; } }

.em-site-nav { display: flex; align-items: center; gap: 1rem; }
@media (max-width: 1023px) { .em-global-contact--header { display: flex; } .em-site-nav .em-contact-phone--header-desktop { display: none; } }

/* Secondary channels stay out of the two-action mobile bar. */
.em-secondary-contacts { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.35rem 1rem; margin-block:.5rem; }
.em-secondary-contacts a { min-height:44px; display:inline-flex; align-items:center; overflow-wrap:anywhere; text-decoration:underline; text-underline-offset:.2em; }
.em-viber-fallback { font-size:.875rem; line-height:1.5; margin-block:.5rem; }
.em-viber-fallback summary { cursor:pointer; min-height:44px; align-content:center; }
.em-viber-fallback p { margin-block:.5rem; }
.em-copy-phone { min-height:44px; border:1px solid currentColor; border-radius:.5rem; padding:.45rem .75rem; color:inherit; background:transparent; font:inherit; cursor:pointer; }
.em-copy-phone[hidden] { display:none; }
.em-copy-status { display:block; margin-block:.4rem; }
.em-secondary-contacts a:focus-visible,.em-copy-phone:focus-visible,.em-viber-fallback summary:focus-visible { outline:3px solid currentColor; outline-offset:3px; }
.em-contact-panel { margin-block-start:1.25rem; padding:clamp(1.15rem,3vw,2rem); }
.em-contact-panel h2 { margin-block:0 .65rem; }
.em-global-contact--footer .em-secondary-contacts { justify-content:flex-start; }

/* rc3: visually scannable messaging channels. */
.em-secondary-contacts { gap: .55rem; }
.em-secondary-contacts .em-contact-channel {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .48rem;
  padding: .5rem .78rem;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
  border-radius: .72rem;
  text-decoration: none;
  font-weight: 650;
  line-height: 1.15;
  white-space: nowrap;
  box-sizing: border-box;
}
.em-secondary-contacts .em-contact-channel:hover { border-color: currentColor; }
.em-channel-icon { flex: 0 0 auto; }
.em-secondary-contacts--sidebar .em-contact-channel { flex: 1 1 9rem; }
.em-secondary-contacts--footer { justify-content: flex-start; }
.em-secondary-contacts--footer .em-contact-channel { flex: 0 0 auto; }
.em-viber-fallback { margin-inline: auto; max-width: 30rem; opacity: .92; }

/* rc3: one scalable language control instead of one button per language. */
.emplava-language-switcher { position: relative; display: inline-flex; align-items: center; margin: 0; }
.emplava-language-menu { position: relative; }
.emplava-language-menu > summary {
  list-style: none;
  cursor: pointer;
  min-height: 44px;
  min-width: 60px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  padding: .45rem .7rem;
  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
  border-radius: .72rem;
  box-sizing: border-box;
  font-weight: 700;
  user-select: none;
}
.emplava-language-menu > summary::-webkit-details-marker { display: none; }
.emplava-language-menu > summary::marker { content: ''; }
.emplava-language-menu[open] > summary { border-color: currentColor; }
.emplava-language-globe { flex: 0 0 auto; }
.emplava-language-current { font-size: .86rem; letter-spacing: .02em; }
.emplava-language-caret { font-size: .72rem; opacity: .8; transform-origin: center; }
.emplava-language-menu[open] .emplava-language-caret { transform: rotate(180deg); }
.emplava-language-options {
  position: absolute;
  z-index: 100;
  inset-block-start: calc(100% + .45rem);
  inset-inline-end: 0;
  min-width: 13rem;
  padding: .4rem;
  border: 1px solid color-mix(in srgb, currentColor 22%, transparent);
  border-radius: .85rem;
  background: var(--wp--preset--color--base, Canvas);
  color: var(--wp--preset--color--contrast, CanvasText);
  box-shadow: 0 .8rem 2.2rem rgb(0 0 0 / .18);
}
.emplava-language-link {
  display: grid;
  grid-template-columns: 2.4rem 1fr auto;
  align-items: center;
  gap: .6rem;
  min-height: 42px;
  padding: .5rem .65rem;
  border-radius: .55rem;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}
.emplava-language-link:hover,
.emplava-language-link:focus-visible { background: color-mix(in srgb, currentColor 9%, transparent); }
.emplava-language-link.is-current { font-weight: 750; }
.emplava-language-code { font-size: .78rem; opacity: .72; }
.emplava-language-check { font-weight: 800; }
.emplava-language-menu > summary:focus-visible,
.emplava-language-link:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
@media (max-width: 540px) {
  .emplava-language-menu > summary { min-width: 48px; padding-inline: .55rem; }
  .emplava-language-current { display: none; }
  .emplava-language-caret { display: none; }
  .emplava-language-options { position: fixed; inset-inline: 12px; inset-block-start: auto; top: 72px; min-width: 0; max-height: min(70vh, 28rem); overflow: auto; }
  .em-secondary-contacts .em-contact-channel { flex: 1 1 8rem; }
}

/* rc6: one mobile sticky header, two measured rows.
 * The theme header remains the sticky element. The phone lives INSIDE it as
 * row 2, so scrolling can never separate the navigation and phone. */
@media (max-width: 1023px) {
  header.em-header-with-contact {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }
  header.em-header-with-contact > .em-global-contact--header {
    display: flex;
    width: 100%;
    max-width: none;
    min-width: 0;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: .34rem max(16px, env(safe-area-inset-right)) .42rem max(16px, env(safe-area-inset-left));
    border-top: 1px solid color-mix(in srgb, currentColor 16%, transparent);
    box-sizing: border-box;
    position: static !important;
    inset: auto !important;
    z-index: auto;
    overflow: hidden;
  }
  header.em-header-with-contact > .em-global-contact--header .em-contact-phone {
    width: auto;
    max-width: 100%;
    min-width: 0;
    min-height: 34px;
    justify-content: center;
    gap: clamp(.35rem, 1.4vw, .5rem);
    padding: 0 .15rem;
    font-size: clamp(.84rem, 3.55vw, .98rem);
    line-height: 1.2;
    box-sizing: border-box;
  }
  header.em-header-with-contact > .em-global-contact--header .em-contact-phone svg {
    width: clamp(16px, 4vw, 18px);
    height: clamp(16px, 4vw, 18px);
    flex: 0 0 auto;
  }
  header.em-header-with-contact > .em-global-contact--header .em-contact-phone bdi {
    min-width: 0;
    max-width: 100%;
    white-space: nowrap;
  }
}
@media (max-width: 360px) {
  header.em-header-with-contact > .em-global-contact--header {
    padding-inline: max(10px, env(safe-area-inset-left));
  }
  header.em-header-with-contact > .em-global-contact--header .em-contact-phone {
    font-size: clamp(.78rem, 3.9vw, .88rem);
  }
}

/* rc9: contact hierarchy cleanup.
 * Mobile shows the actual phone number only in the sticky header. Elsewhere,
 * actions stay actionable but use labels. Vacancy footers do not repeat contacts. */
.em-contact-call-label { display: none; }
.em-channel-number { display: inline; }

/* End-of-content contact panel: one aligned action row instead of a loose phone
 * plus centered messenger row. */
.em-contact-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .65rem;
}
.em-contact-panel > h2 { grid-column: 1 / -1; width: 100%; }
.em-contact-panel .em-contact-phone--form {
  min-height: 42px;
  padding: .5rem .78rem;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
  border-radius: .72rem;
  line-height: 1.15;
  box-sizing: border-box;
}
.em-contact-panel .em-secondary-contacts--form {
  justify-content: flex-start;
  margin: 0;
}

@media (max-width: 1023px) {
  /* The header remains the single visible numeric phone on mobile. */
  .em-contact-phone:not(.em-contact-phone--header) .em-contact-number { display: none; }
  .em-contact-phone:not(.em-contact-phone--header) .em-contact-call-label { display: inline; }
  .em-secondary-contacts .em-channel-number { display: none; }

  .em-contact-panel {
    grid-template-columns: minmax(0, 1fr);
    gap: .6rem;
  }
  .em-contact-panel > h2 { grid-column: auto; }
  .em-contact-panel .em-contact-phone--form { width: 100%; justify-content: center; }
  .em-contact-panel .em-secondary-contacts--form {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
  }
  .em-contact-panel .em-secondary-contacts--form .em-contact-channel { width: 100%; }
}

@media (max-width: 420px) {
  .em-contact-panel .em-secondary-contacts--form { grid-template-columns: minmax(0, 1fr); }
}

/* rc11: denser application form and cleaner contact-number typography. */
.em-application-panel {
  padding: clamp(1rem, 2.1vw, 1.4rem);
}
.em-application-panel h2 {
  margin-bottom: .3rem;
}
.em-application-intro {
  display: grid;
  gap: .28rem;
  margin-bottom: .8rem;
}
.em-application-intro p {
  margin: 0;
}
.em-application-fields {
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: .8rem;
  row-gap: .7rem;
}
.em-name-row,
.em-application-fields > .em-form-field,
.em-application-fields > .em-form-honeypot,
.em-application-fields > .em-form-submit {
  grid-column: 1 / -1;
}
.em-name-row {
  gap: .75rem;
}
.em-form-field {
  gap: .25rem;
}
.em-form-field input,
.em-form-field textarea {
  min-height: 46px;
  padding: .62rem .78rem;
}
.em-form-field textarea {
  min-height: 88px;
}
.em-form-field small,
.em-required-note,
.em-application-privacy {
  line-height: 1.35;
}
.em-application-privacy {
  grid-column: 1;
  align-self: center;
}
.em-required-note {
  grid-column: 2;
  align-self: center;
  text-align: end;
  white-space: nowrap;
}
.em-form-submit {
  min-height: 48px;
  margin-top: .05rem;
}
.em-application-alternative {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  margin-top: .7rem;
  text-align: start;
}
.em-application-alternative .em-secondary-contacts {
  margin: 0;
}
.em-application-alternative .em-contact-phone--form {
  min-height: 42px;
  padding: .5rem .78rem;
  border: 1px solid color-mix(in srgb, currentColor 28%, transparent);
  border-radius: .72rem;
  box-sizing: border-box;
}
.em-channel-number {
  margin-inline-start: .38rem;
}
@media (max-width: 540px) {
  .em-application-panel { padding: 1rem; }
  .em-application-fields { grid-template-columns: minmax(0, 1fr); row-gap: .72rem; }
  .em-application-privacy,
  .em-required-note { grid-column: 1; text-align: start; white-space: normal; }
  .em-required-note { margin-top: -.2rem; }
  .em-application-alternative { display: grid; grid-template-columns: minmax(0,1fr); }
  .em-application-alternative .em-contact-phone--form,
  .em-application-alternative .em-secondary-contacts { width: 100%; }
}

