/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties {
  @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))) {

    *,
    :before,
    :after,
    ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-font-weight: initial;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial
    }
  }
}

@layer theme {

  :root,
  :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --color-gray-200: oklch(92.8% .006 264.531);
    --color-gray-600: oklch(44.6% .03 256.802);
    --color-gray-900: oklch(21% .034 264.665);
    --color-white: #fff;
    --spacing: .25rem;
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-brand-cyan: #00b4d8;
    --color-brand-navy: #0d1b2a;
    --color-brand-orange: #ff8b00
  }
}

@layer base {
  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
    ::placeholder {
      color: currentColor
    }

    @supports (color:color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent)
      }
    }
  }

  *,
  :after,
  :before,
  ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0
  }

  html,
  :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit
  }

  b,
  strong {
    font-weight: bolder
  }

  code,
  kbd,
  samp,
  pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em
  }

  small {
    font-size: 80%
  }

  sub,
  sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative
  }

  sub {
    bottom: -.25em
  }

  sup {
    top: -.5em
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse
  }

  :-moz-focusring {
    outline: auto
  }

  progress {
    vertical-align: baseline
  }

  summary {
    display: list-item
  }

  ol,
  ul,
  menu {
    list-style: none
  }

  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    vertical-align: middle;
    display: block
  }

  img,
  video {
    max-width: 100%;
    height: auto
  }

  button,
  input,
  select,
  optgroup,
  textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px
  }

  ::file-selector-button {
    margin-inline-end: 4px
  }

  ::placeholder {
    opacity: 1
  }

  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
    ::placeholder {
      color: currentColor
    }

    @supports (color:color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent)
      }
    }
  }

  textarea {
    resize: vertical
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit
  }

  ::-webkit-datetime-edit {
    display: inline-flex
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0
  }

  ::-webkit-datetime-edit {
    padding-block: 0
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1
  }

  :-moz-ui-invalid {
    box-shadow: none
  }

  button,
  input:where([type=button], [type=reset], [type=submit]) {
    appearance: button
  }

  ::file-selector-button {
    appearance: button
  }

  ::-webkit-inner-spin-button {
    height: auto
  }

  ::-webkit-outer-spin-button {
    height: auto
  }

  [hidden]:where(:not([hidden=until-found])) {
    display: none !important
  }
}

@layer components;

@layer utilities {
  .sr-only {
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden
  }

  .static {
    position: static
  }

  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2)
  }

  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6)
  }

  .contents {
    display: contents
  }

  .flex {
    display: flex
  }

  .hidden {
    display: none
  }

  .min-h-\[50vh\] {
    min-height: 50vh
  }

  .min-h-screen {
    min-height: 100vh
  }

  .transform {
    transform: var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )
  }

  .resize {
    resize: both
  }

  .flex-col {
    flex-direction: column
  }

  .flex-wrap {
    flex-wrap: wrap
  }

  .items-center {
    align-items: center
  }

  .justify-center {
    justify-content: center
  }

  .justify-end {
    justify-content: flex-end
  }

  .gap-3 {
    gap: calc(var(--spacing) * 3)
  }

  .overflow-x-clip {
    overflow-x: clip
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px
  }

  .border-gray-200 {
    border-color: var(--color-gray-200)
  }

  .bg-white {
    background-color: var(--color-white)
  }

  .p-8 {
    padding: calc(var(--spacing) * 8)
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4)
  }

  .py-2 {
    padding-block: calc(var(--spacing) * 2)
  }

  .text-center {
    text-align: center
  }

  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height))
  }

  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height))
  }

  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold)
  }

  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold)
  }

  .text-\[\#009cdc\] {
    color: #009cdc
  }

  .text-brand-cyan {
    color: var(--color-brand-cyan)
  }

  .text-brand-navy {
    color: var(--color-brand-navy)
  }

  .text-gray-600 {
    color: var(--color-gray-600)
  }

  .text-white {
    color: var(--color-white)
  }

  .underline {
    text-decoration-line: underline
  }

  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  .filter {
    filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, )
  }

  @media (hover:hover) {
    .hover\:text-gray-900:hover {
      color: var(--color-gray-900)
    }

    .hover\:underline:hover {
      text-decoration-line: underline
    }
  }
}

.sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

html {
  -webkit-text-size-adjust: 100%;
  line-height: 1.15
}

body {
  margin: 0
}

main {
  display: block
}

h1 {
  margin: .67em 0;
  font-size: 2em
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible
}

pre {
  font-family: monospace;
  font-size: 1em
}

a {
  background-color: #0000
}

abbr[title] {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted
}

b,
strong {
  font-weight: bolder
}

code,
kbd,
samp {
  font-family: monospace;
  font-size: 1em
}

small {
  font-size: 80%
}

sub,
sup {
  vertical-align: baseline;
  font-size: 75%;
  line-height: 0;
  position: relative
}

sub {
  bottom: -.25em
}

sup {
  top: -.5em
}

img {
  border-style: none
}

button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15
}

button,
input {
  overflow: visible
}

button,
select {
  text-transform: none
}

button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button
}

button::-moz-focus-inner {
  border-style: none;
  padding: 0
}

[type=button]::-moz-focus-inner {
  border-style: none;
  padding: 0
}

[type=reset]::-moz-focus-inner {
  border-style: none;
  padding: 0
}

[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0
}

button:-moz-focusring {
  outline: 1px dotted buttontext
}

[type=button]:-moz-focusring {
  outline: 1px dotted buttontext
}

[type=reset]:-moz-focusring {
  outline: 1px dotted buttontext
}

[type=submit]:-moz-focusring {
  outline: 1px dotted buttontext
}

fieldset {
  padding: .35em .75em .625em
}

legend {
  box-sizing: border-box;
  color: inherit;
  white-space: normal;
  max-width: 100%;
  padding: 0;
  display: table
}

progress {
  vertical-align: baseline
}

textarea {
  overflow: auto
}

[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0
}

[type=number]::-webkit-inner-spin-button {
  height: auto
}

[type=number]::-webkit-outer-spin-button {
  height: auto
}

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit
}

details {
  display: block
}

summary {
  display: list-item
}

template,
[hidden] {
  display: none
}

.login-form {
  flex-direction: column;
  gap: 1.25rem;
  display: flex
}

.login-form__fields {
  flex-direction: column;
  gap: 1rem;
  display: flex
}

.login-form__error {
  color: #c53030;
  text-align: center;
  background: #e53e3e14;
  border-radius: .75rem;
  padding: .6rem .85rem;
  font-size: .85rem
}

.login-form__primary,
.login-form__secondary {
  justify-content: center;
  display: flex
}

.login-form__divider {
  border: none;
  border-top: 1px solid #0000001f;
  margin: .25rem 0
}

.login-form__secondary {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: .75rem
}

.login-form__hint {
  color: #2d3748;
  font-size: .95rem
}

.login-form__employer {
  text-align: center;
  color: #2d3748;
  margin-top: .5rem;
  font-size: .9rem
}

.login-form__employer-link {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 600;
  text-decoration: none
}

.login-form__employer-link:hover {
  text-decoration: underline
}

@media (max-width:767px) {
  .login-form__employer {
    margin-top: 4rem
  }
}

.personal-data {
  flex-direction: column;
  gap: 1.25rem;
  display: flex
}

.personal-data__title {
  text-transform: uppercase;
  letter-spacing: .02em;
  color: #1a202c;
  margin: 0;
  font-size: 1.25rem;
  font-weight: 800
}

.personal-data__fields {
  flex-direction: column;
  gap: 1rem;
  display: flex
}

.personal-data__inline-hint {
  color: #4a5568;
  margin: 0;
  font-size: .8rem
}

.personal-data__inline-hint--error {
  color: #c53030
}

.personal-data__row--phone .personal-data__select--lada {
  width: 100%;
  min-width: 0
}

.personal-data__row--phone .personal-data__select--lada .select__control {
  min-height: 2.75rem
}

.personal-data__row {
  flex-direction: column;
  gap: .4rem;
  width: 100%;
  display: flex
}

.personal-data__row-label {
  color: #1a202c;
  font-size: .95rem;
  font-weight: 500
}

.personal-data__row:focus-within .personal-data__row-label {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 700
}

.personal-data__row-inputs {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: .65rem;
  display: grid
}

.personal-data__row-error {
  color: #c53030;
  margin: 0;
  font-size: .8rem
}

.personal-data__row--phone .personal-data__row-inputs {
  grid-template-columns: minmax(0, 30fr) minmax(0, 70fr)
}

.personal-data__row--birth .personal-data__row-inputs {
  grid-template-columns: repeat(3, minmax(0, 1fr))
}

.personal-data__row--place .personal-data__row-inputs {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr)
}

.personal-data__input {
  width: 100%
}

.personal-data__error {
  color: #c53030;
  text-align: center;
  background: #e53e3e14;
  border-radius: .75rem;
  padding: .6rem .85rem;
  font-size: .85rem
}

.personal-data__primary {
  justify-content: center;
  display: flex
}

.personal-data__divider {
  border: none;
  border-top: 1px solid #0000001f;
  margin: .25rem 0
}

.personal-data__employer {
  text-align: center;
  color: #2d3748;
  font-size: .9rem
}

.personal-data__employer-link {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 600;
  text-decoration: none
}

.personal-data__employer-link:hover {
  text-decoration: underline
}

@media (max-width:380px) {
  .personal-data__row-inputs {
    grid-template-columns: 1fr
  }

  .personal-data__row--birth .personal-data__row-inputs {
    grid-template-columns: 1fr 1fr 1fr
  }

  .personal-data__row--place .personal-data__row-inputs {
    grid-template-columns: 1fr
  }

  .personal-data__input--lada {
    width: 100%
  }
}

.register-form {
  flex-direction: column;
  gap: 1.25rem;
  display: flex
}

.register-form__fields {
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 2rem;
  display: flex
}

.register-form__error {
  color: #c53030;
  text-align: center;
  background: #e53e3e14;
  border-radius: .75rem;
  padding: .6rem .85rem;
  font-size: .85rem
}

.register-form__primary {
  justify-content: center;
  display: flex
}

.register-form__divider {
  border: none;
  border-top: 1px solid #0000001f;
  margin: .25rem 0
}

.register-form__employer {
  text-align: center;
  color: #2d3748;
  font-size: .9rem
}

.register-form__employer-link {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 600;
  text-decoration: none
}

.register-form__employer-link:hover {
  text-decoration: underline
}

.terms-text {
  font-size: .75rem
}

.register-modal {
  flex-direction: column;
  min-height: 0;
  display: flex
}

.register-modal__masthead {
  text-align: center;
  flex-direction: column;
  align-items: center;
  width: 100%;
  display: flex
}

.register-modal__main {
  flex-direction: column;
  flex: 1;
  width: 100%;
  min-height: 0;
  display: flex
}

.register-modal__screen-title {
  display: none
}

.modal__card.modal__card--register-personal {
  max-height: min(calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - clamp(.75rem, 2vw, 1.25rem)), calc(100svh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - clamp(.75rem, 2vw, 1.25rem)));
  flex-direction: column;
  padding-top: clamp(.75rem, 2dvh, 1.25rem);
  padding-bottom: clamp(.75rem, 2dvh, 1.25rem);
  display: flex
}

.register-modal--personal {
  flex: 1;
  gap: clamp(.4rem, 1.4dvh, .7rem);
  min-height: 0
}

.register-modal--personal .brand-header {
  gap: .15rem;
  margin-bottom: 0
}

.register-modal--personal .brand-header__logo {
  width: clamp(8.5rem, 42vw, 11rem)
}

.register-modal--personal .personal-data {
  flex-direction: column;
  flex: 1;
  gap: clamp(.45rem, 1.6dvh, .85rem);
  min-height: 0;
  display: flex
}

.register-modal--personal .personal-data__title {
  margin-bottom: 0;
  font-size: clamp(.95rem, 3.5vw, 1.1rem)
}

.register-modal--personal .personal-data__fields {
  gap: clamp(.4rem, 1.5dvh, .7rem)
}

.register-modal--personal .personal-data__row {
  gap: .25rem
}

.register-modal--personal .personal-data__row-label {
  font-size: clamp(.78rem, 2.8vw, .88rem)
}

.register-modal--personal .personal-data__row-inputs {
  gap: clamp(.35rem, 1.5vw, .5rem)
}

.register-modal--personal .personal-data__row-error {
  font-size: .72rem
}

.register-modal--personal .text-field {
  gap: .25rem
}

.register-modal--personal .text-field__label,
.register-modal--personal .select__label {
  font-size: clamp(.78rem, 2.8vw, .88rem)
}

.register-modal--personal .text-field__input,
.register-modal--personal .select__input {
  border-width: 1.5px;
  border-radius: .7rem;
  padding: clamp(.45rem, 1.5dvh, .62rem) clamp(.6rem, 2vw, .8rem);
  font-size: clamp(.85rem, 2.8vw, .94rem)
}

.register-modal--personal .select__input {
  padding-right: 2rem
}

.register-modal--personal .select__chevron {
  right: .7rem
}

.register-modal--personal .personal-data__divider {
  margin: clamp(0, .5dvh, .15rem) 0
}

.register-modal--personal .personal-data__employer {
  font-size: clamp(.74rem, 2.8vw, .84rem);
  line-height: 1.3
}

.register-modal--personal .personal-data__error {
  padding: .4rem .65rem;
  font-size: .78rem
}

.register-modal--personal .ui-button--lg {
  padding: clamp(.6rem, 1.8dvh, .78rem) clamp(1.4rem, 5vw, 1.95rem);
  font-size: clamp(.85rem, 2.8vw, .98rem)
}

@media (max-height:720px) {
  .modal__card.modal__card--register-personal {
    padding-top: clamp(.45rem, 1.4dvh, .85rem);
    padding-bottom: clamp(.45rem, 1.4dvh, .85rem)
  }

  .register-modal--personal .brand-header__logo {
    width: clamp(7rem, 36vw, 9.5rem)
  }

  .register-modal--personal .personal-data__fields {
    gap: clamp(.32rem, 1.2dvh, .5rem)
  }

  .register-modal--personal .text-field__input,
  .register-modal--personal .select__input {
    padding: clamp(.38rem, 1.2dvh, .5rem) clamp(.55rem, 1.8vw, .7rem)
  }

  .register-modal--personal .ui-button--lg {
    padding: clamp(.5rem, 1.4dvh, .62rem) clamp(1.15rem, 4vw, 1.55rem)
  }
}

@media (max-height:600px) {
  .register-modal--personal .personal-data__title {
    font-size: clamp(.85rem, 3vw, .95rem)
  }
}

@media (max-width:767px) {
  .modal__backdrop.modal__backdrop--mobile-full .modal__card.modal__card--register-personal {
    min-height: 100dvh;
    max-height: none
  }

  .register-modal:not(.register-modal--success) .register-modal__masthead {
    padding-inline: clamp(.5rem, 3vw, 1rem)
  }

  .register-modal:not(.register-modal--success) .register-modal__masthead .brand-header {
    margin-bottom: 0
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__card.modal__card--register {
    flex-direction: column;
    display: flex
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__card.modal__card--register .register-modal {
    flex: 1;
    min-height: 0
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__card.modal__card--register .modal__close {
    width: 2.75rem;
    height: 2.75rem
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__card.modal__card--register .modal__close svg {
    width: 21px;
    height: 21px
  }

  .register-modal:not(.register-modal--success) .register-modal__masthead .brand-header__logo {
    width: clamp(12rem, 72vw, 19rem);
    max-width: 100%;
    height: auto
  }

  .register-modal:not(.register-modal--success) .register-modal__masthead .register-modal__brand-header {
    margin-bottom: clamp(.45rem, 2vw, 1rem)
  }

  .register-modal__screen-title {
    letter-spacing: .08em;
    color: #111827;
    text-align: center;
    border: none;
    width: 100%;
    margin: 3rem 0 0;
    padding: 0;
    font-size: clamp(1.75rem, 7.25vw, 2.35rem);
    font-weight: 800;
    line-height: 1.15;
    display: block
  }

  .register-modal__screen-subtitle {
    letter-spacing: .08em;
    color: #111827;
    text-align: center;
    margin-block: 2rem;
    font-size: clamp(1.25rem, 5.25vw, 1.75rem);
    line-height: 1.15
  }

  .register-modal--documents .register-modal__main,
  .register-modal--personal .register-modal__main {
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
    flex: 1;
    align-items: center;
    width: 100%;
    min-height: 0;
    margin-inline: auto;
    overflow-y: auto
  }

  .register-modal--documents .register-form {
    align-items: stretch;
    width: min(460px, 100%);
    margin-inline: auto
  }

  .register-modal--personal .register-modal__main {
    width: min(480px, 100%)
  }

  .register-modal--personal .personal-data__title {
    text-align: center;
    width: 100%
  }
}

.register-success {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: clamp(.85rem, 2.5dvh, 1.4rem);
  padding: clamp(.5rem, 1.5dvh, 1rem) clamp(.25rem, 2vw, 1rem);
  display: flex
}

.register-success__title {
  text-transform: uppercase;
  letter-spacing: .02em;
  color: var(--color-brand-cyan, #009cdc);
  margin: 0;
  font-size: clamp(1.25rem, 5vw, 1.85rem);
  font-weight: 800;
  line-height: 1.15
}

.register-success__subtitle {
  text-transform: uppercase;
  letter-spacing: .01em;
  color: #1a202c;
  max-width: 28rem;
  margin: 0;
  font-size: clamp(.9rem, 3vw, 1.05rem);
  font-weight: 700;
  line-height: 1.35
}

.register-success__emoji {
  font-size: clamp(2.4rem, 8vw, 3.4rem);
  line-height: 1;
  display: inline-block
}

.register-success__actions {
  justify-content: center;
  width: 100%;
  margin-top: clamp(.25rem, 1dvh, .5rem);
  display: flex
}

.register-success__close {
  appearance: none;
  cursor: pointer;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .04em;
  background: #d8d8d8;
  border: none;
  border-radius: 999px;
  padding: .7rem 2.4rem;
  font-size: clamp(.85rem, 2.8vw, 1rem);
  font-weight: 700;
  transition: background-color .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 1px #0000000a
}

.register-success__close:hover {
  background: #c8c8c8
}

.register-success__close:active {
  transform: translateY(1px)
}

.register-success__close:focus-visible {
  outline: 2px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 3px
}

.register-success__brand {
  margin-top: clamp(.25rem, 1dvh, .6rem)
}

.candidate-applications__head {
  flex-direction: column;
  align-items: flex-start;
  gap: .5rem;
  width: 100%;
  padding: .25rem 0 .5rem;
  display: flex
}

.candidate-applications__back {
  letter-spacing: .06em;
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  text-transform: uppercase;
  -webkit-tap-highlight-color: transparent;
  background: 0 0;
  border: 0;
  padding: .25rem 0;
  font-size: clamp(.95rem, 1vw + .6rem, 1.05rem);
  font-weight: 800;
  text-decoration: none;
  display: inline-block
}

.candidate-applications__back:hover,
.candidate-applications__back:focus-visible {
  color: #e67e00;
  outline: none
}

.candidate-applications__title {
  letter-spacing: .04em;
  color: #111827;
  text-transform: uppercase;
  margin: 0;
  font-size: clamp(1.4rem, 2vw + .6rem, 2rem);
  font-weight: 900
}

.candidate-cv {
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 1.2rem clamp(1rem, 3vw, 2rem) 3rem
}

.candidate-cv__top {
  justify-items: center;
  gap: .45rem;
  display: grid
}

.candidate-cv__brand {
  margin-bottom: 0
}

.candidate-cv__brand .brand-header__logo {
  width: min(340px, 80vw)
}

.candidate-cv__back {
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  background: 0 0;
  border: 0;
  justify-self: start;
  font-family: inherit;
  font-size: 1.15rem;
  text-decoration: none
}

.candidate-cv__content {
  gap: 1rem;
  margin-top: 1rem;
  display: grid
}

.candidate-cv__heading h1 {
  color: #111827;
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800
}

.candidate-cv__heading p {
  color: #6b7280;
  margin: .35rem 0 0
}

.candidate-cv__grid {
  gap: 1rem;
  display: grid
}

.candidate-cv__slot {
  flex-direction: column;
  gap: .35rem;
  display: flex
}

.candidate-cv__slot-error {
  color: #c53030;
  margin: 0;
  padding-left: .15rem;
  font-size: .82rem
}

.candidate-cv__file {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

.candidate-cv__card {
  text-align: left;
  cursor: pointer;
  background: #f2f2f2;
  border: 1px solid #00000014;
  border-radius: 26px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .9rem;
  width: 100%;
  padding: 1rem 1.1rem;
  display: grid
}

.candidate-cv__card:hover,
.candidate-cv__card:focus-visible {
  border-color: #009cdc59;
  outline: none;
  box-shadow: 0 0 0 3px #009cdc1f
}

.candidate-cv__card--busy {
  opacity: .65;
  pointer-events: none
}

.candidate-cv__pdf-icon {
  background: #fff;
  border: 3px solid #4b4b4b;
  border-radius: 7px;
  justify-content: center;
  align-items: end;
  width: 54px;
  height: 62px;
  padding-bottom: 6px;
  display: flex;
  position: relative
}

.candidate-cv__pdf-corner {
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
  background: #f2f2f2;
  border-bottom: 3px solid #4b4b4b;
  border-left: 3px solid #4b4b4b;
  width: 16px;
  height: 16px;
  position: absolute;
  top: -3px;
  right: -3px
}

.candidate-cv__pdf-tag {
  color: #ef4444;
  letter-spacing: .02em;
  border: 2px solid #ef4444;
  border-radius: 6px;
  padding: .05rem .25rem;
  font-size: .85rem;
  font-weight: 800;
  line-height: 1
}

.candidate-cv__card-text strong {
  color: #4b4b4b;
  margin: 0;
  font-size: clamp(1.6rem, 3.5vw, 2rem);
  line-height: 1;
  display: block
}

.candidate-cv__card-text small {
  color: #525252;
  margin-top: .25rem;
  font-size: clamp(1rem, 2.5vw, 1.55rem);
  line-height: 1.1;
  display: block
}

.candidate-cv__card-edit {
  color: #9ca3af;
  width: 26px;
  height: 26px
}

.candidate-cv__card-edit svg {
  width: 100%;
  height: 100%
}

@media (min-width:1024px) {
  .candidate-cv__content {
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
    align-items: start;
    gap: 1.5rem
  }

  .candidate-cv__heading {
    background: linear-gradient(#fff 0%, #f8fbff 100%);
    border: 1px solid #0000000f;
    border-radius: 22px;
    padding: 1.15rem;
    position: sticky;
    top: 1.4rem
  }

  .candidate-cv__heading h1 {
    font-size: 1.25rem;
    font-weight: 800
  }

  .candidate-cv__grid {
    gap: 1.1rem
  }

  .candidate-cv__card {
    padding: 1.1rem 1.2rem
  }

  .candidate-cv__card-text strong {
    font-size: 2rem
  }

  .candidate-cv__card-text small {
    font-size: 1.4rem
  }
}

.candidate-documents {
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 1.2rem clamp(1rem, 3vw, 2rem) 3rem
}

.candidate-documents__top {
  justify-items: center;
  gap: .45rem;
  display: grid
}

.candidate-documents__brand {
  margin-bottom: 0
}

.candidate-documents__brand .brand-header__logo {
  width: min(340px, 80vw)
}

.candidate-documents__back {
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  background: 0 0;
  border: 0;
  justify-self: start;
  font-family: inherit;
  font-size: 1.15rem;
  text-decoration: none
}

.candidate-documents__content {
  gap: 1rem;
  margin-top: 1rem;
  display: grid
}

.candidate-documents__heading h1 {
  color: #111827;
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800
}

.candidate-documents__heading p {
  color: #6b7280;
  margin: .35rem 0 0
}

.candidate-documents__list {
  gap: .7rem;
  display: grid
}

.candidate-documents__slot {
  flex-direction: column;
  gap: .35rem;
  display: flex
}

.candidate-documents__slot-error {
  color: #c53030;
  margin: 0;
  padding-left: .15rem;
  font-size: .82rem
}

.candidate-documents__file {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

.candidate-documents__item {
  text-align: left;
  cursor: pointer;
  color: #1f2937;
  background: #ebebeb;
  border: 1px solid #00000014;
  border-radius: 14px;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .75rem;
  width: 100%;
  padding: .72rem .8rem;
  transition: background-color .16s, border-color .16s, box-shadow .16s, transform .16s;
  display: grid
}

.candidate-documents__item:hover,
.candidate-documents__item:focus-visible {
  background: #e4f5fb;
  border-color: #009cdc52;
  outline: none;
  box-shadow: 0 0 0 3px #009cdc1f
}

.candidate-documents__item:active {
  transform: translateY(1px)
}

.candidate-documents__item--busy {
  opacity: .65;
  pointer-events: none
}

.candidate-documents__item-icon {
  color: #1f2937;
  width: 36px;
  height: 36px
}

.candidate-documents__item-icon svg {
  width: 100%;
  height: 100%
}

.candidate-documents__item-image-icon {
  object-fit: contain;
  width: 100%;
  height: 100%;
  display: block
}

.candidate-documents__item-label {
  letter-spacing: .01em;
  font-size: .82rem;
  font-weight: 900;
  line-height: 1.15
}

.candidate-documents__item-status {
  color: #0000;
  width: 18px;
  height: 18px
}

.candidate-documents__item-status svg {
  width: 100%;
  height: 100%
}

.candidate-documents__item-status--done {
  color: #00b68a
}

@media (min-width:1024px) {
  .candidate-documents__content {
    grid-template-columns: minmax(300px, 340px) minmax(0, 1fr);
    align-items: start;
    gap: 1.5rem
  }

  .candidate-documents__heading {
    background: linear-gradient(#fff 0%, #f8fbff 100%);
    border: 1px solid #0000000f;
    border-radius: 22px;
    padding: 1.15rem;
    position: sticky;
    top: 1.4rem
  }

  .candidate-documents__heading h1 {
    font-size: 1.25rem;
    font-weight: 800
  }

  .candidate-documents__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem
  }

  .candidate-documents__item {
    border-radius: 16px;
    min-height: 78px
  }

  .candidate-documents__item-label {
    font-size: .85rem
  }
}

.candidate-job-education {
  gap: .9rem;
  width: min(640px, 100%);
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 1.5rem) 2.25rem;
  display: grid
}

.candidate-job-education__top {
  justify-items: center;
  margin-top: 1rem;
  display: grid
}

.candidate-job-education__brand {
  margin-bottom: 0
}

.candidate-job-education__brand .brand-header__logo {
  width: clamp(170px, 58vw, 260px)
}

.candidate-job-education__content h1 {
  text-transform: uppercase;
  color: #111827;
  margin: 0 0 .35rem;
  font-size: clamp(1rem, 3.6vw, 1.2rem);
  font-weight: 800
}

.candidate-job-education__form,
.candidate-job-education__grid {
  gap: .6rem;
  display: grid
}

.candidate-job-education__grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.candidate-job-education__actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
  margin-top: .8rem;
  display: grid
}

.candidate-job-education__actions .ui-button {
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  font-size: .86rem
}

@media (min-width:768px) {
  .candidate-job-education {
    padding-top: 1.3rem
  }

  .candidate-job-education__form {
    gap: .75rem
  }
}

@media (max-width:767px) {
  .candidate-job-education__grid--two .text-field__label {
    white-space: nowrap;
    text-overflow: ellipsis;
    min-height: 1.3em;
    font-size: .76rem;
    display: block;
    overflow: hidden
  }
}

.candidate-job-experience {
  gap: .9rem;
  width: min(640px, 100%);
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 1.5rem) 2.25rem;
  display: grid
}

.candidate-job-experience__top {
  justify-items: center;
  margin-top: 1rem;
  display: grid
}

.candidate-job-experience__brand {
  margin-bottom: 0
}

.candidate-job-experience__brand .brand-header__logo {
  width: clamp(170px, 58vw, 260px)
}

.candidate-job-experience__content h1,
.candidate-job-experience__section-title {
  text-transform: uppercase;
  color: #111827;
  margin: 0 0 .35rem;
  font-size: clamp(1rem, 3.6vw, 1.2rem);
  font-weight: 800
}

.candidate-job-experience__section-title {
  margin-top: 1rem
}

.candidate-job-experience__form,
.candidate-job-experience__grid {
  gap: .6rem;
  display: grid
}

.candidate-job-experience__grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.candidate-job-experience__reference {
  gap: .6rem;
  margin-bottom: .45rem;
  display: grid
}

.candidate-job-experience__actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
  margin-top: .8rem;
  display: grid
}

.candidate-job-experience__actions .ui-button {
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  font-size: .86rem
}

@media (min-width:768px) {
  .candidate-job-experience {
    padding-top: 1.3rem
  }

  .candidate-job-experience__form {
    gap: .75rem
  }
}

@media (max-width:767px) {
  .candidate-job-experience__grid--two .text-field__label {
    white-space: nowrap;
    text-overflow: ellipsis;
    min-height: 1.3em;
    font-size: .76rem;
    display: block;
    overflow: hidden
  }
}

.candidate-job-experience__reference-title {
  color: #111827;
  margin-top: 1rem;
  font-size: .86rem;
  font-weight: 700
}

.candidate-job-housing {
  gap: .9rem;
  width: min(640px, 100%);
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 1.5rem) 2.25rem;
  display: grid
}

.candidate-job-housing__top {
  justify-items: center;
  margin-top: 1rem;
  display: grid
}

.candidate-job-housing__brand {
  margin-bottom: 0
}

.candidate-job-housing__brand .brand-header__logo {
  width: clamp(170px, 58vw, 260px)
}

.candidate-job-housing__content h1 {
  text-transform: uppercase;
  color: #111827;
  margin: 2rem 0 .35rem;
  font-size: clamp(1rem, 3.6vw, 1.2rem);
  font-weight: 800
}

.candidate-job-housing__form {
  gap: .6rem;
  display: grid
}

.candidate-job-housing__error {
  color: #c53030;
  background: #e53e3e14;
  border-radius: .5rem;
  margin: 0;
  padding: .5rem .65rem;
  font-size: .85rem
}

.candidate-job-housing__actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
  margin-top: 2.5rem;
  display: grid
}

.candidate-job-housing__actions .ui-button {
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  font-size: .86rem
}

.candidate-job-housing__success-modal::backdrop {
  -webkit-backdrop-filter: blur(4px);
  background: #0d1b2a8c
}

@media (min-width:768px) {
  .candidate-job-housing {
    padding-top: 1.3rem
  }

  .candidate-job-housing__form {
    gap: .75rem
  }
}

.candidate-job-housing__success-modal {
  box-sizing: border-box;
  background: #fff;
  border: none;
  border-radius: 2.1rem;
  outline: none;
  width: min(440px, 100vw - 2*clamp(.75rem, 3vw, 1.5rem));
  max-width: 440px;
  max-height: calc(100dvh - 2rem);
  margin: 0;
  padding: clamp(1.2rem, 3.6vw, 1.8rem);
  position: fixed;
  top: 50%;
  left: 50%;
  overflow: clip auto;
  transform: translate(-50%, -50%);
  box-shadow: 0 30px 80px -20px #00000059
}

@media (max-width:480px) {
  .candidate-job-housing__success-modal {
    border-radius: 1.5rem;
    width: min(440px, 100vw - 2.5rem);
    padding: 1.5rem 1.25rem
  }
}

.candidate-job-housing__success {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  display: flex
}

.candidate-job-housing__success-title {
  color: #009cdc;
  text-transform: uppercase;
  margin: 0;
  font-size: clamp(1.55rem, 5.2vw, 2rem);
  font-weight: 900;
  line-height: 1.1
}

.candidate-job-housing__success-subtitle {
  color: #111827;
  text-transform: uppercase;
  margin: 0;
  font-size: clamp(1rem, 3.3vw, 1.25rem);
  font-weight: 900;
  line-height: 1.2
}

.candidate-job-housing__success-emoji {
  font-size: clamp(3rem, 8vw, 4.25rem);
  line-height: 1
}

.candidate-job-housing__success-actions {
  margin-top: .35rem
}

.candidate-job-housing__success-close {
  box-shadow: none;
  background: #d3d3d3;
  min-width: 180px
}

.candidate-job-housing__success-close:hover:not(:disabled) {
  background: #c9c9c9
}

.candidate-job-housing__success-brand {
  margin-top: .5rem
}

.candidate-job-application {
  gap: .9rem;
  width: min(640px, 100%);
  margin: 0 auto;
  padding: 1rem clamp(1rem, 4vw, 1.5rem) 2.25rem;
  display: grid
}

.candidate-job-application__top {
  justify-items: center;
  margin-top: 1rem;
  display: grid
}

.candidate-job-application__brand {
  margin-bottom: 0
}

.candidate-job-application__brand .brand-header__logo {
  width: clamp(170px, 58vw, 260px)
}

.candidate-job-application__content h1 {
  text-transform: uppercase;
  color: #111827;
  margin: 0 0 .35rem;
  font-size: clamp(1rem, 3.6vw, 1.2rem);
  font-weight: 800
}

.candidate-job-application__form,
.candidate-job-application__grid {
  gap: .6rem;
  display: grid
}

.candidate-job-application__grid--two {
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.candidate-job-application__actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem;
  margin-top: .8rem;
  display: grid
}

.candidate-job-application__actions .ui-button {
  text-align: center;
  box-sizing: border-box;
  width: 100%;
  font-size: .86rem
}

@media (min-width:768px) {
  .candidate-job-application {
    padding-top: 1.3rem
  }

  .candidate-job-application__form {
    gap: .75rem
  }
}

@media (max-width:767px) {
  .candidate-job-application__grid--two .text-field__label {
    white-space: nowrap;
    text-overflow: ellipsis;
    min-height: 1.3em;
    font-size: .76rem;
    display: block;
    overflow: hidden
  }
}

.candidate-personal-data {
  flex-direction: column;
  gap: 1.1rem;
  width: min(980px, 100%);
  margin: 0 auto;
  padding: 1.25rem clamp(1rem, 3vw, 2rem) 3rem;
  display: flex
}

.candidate-personal-data__top {
  justify-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
  display: grid
}

.candidate-personal-data__logo {
  object-fit: contain;
  width: min(360px, 82vw)
}

.candidate-personal-data__back {
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  background: 0 0;
  border: 0;
  justify-self: start;
  font-size: 1.35rem;
  font-weight: 800;
  text-decoration: none
}

.candidate-personal-data h1 {
  text-transform: uppercase;
  letter-spacing: .02em;
  color: #1a202c;
  margin: 0 0 .8rem;
  font-size: 1.25rem;
  font-weight: 800
}

.candidate-personal-data__form {
  gap: 1rem;
  display: grid
}

.candidate-personal-data__grid {
  gap: .65rem;
  display: grid
}

.candidate-personal-data__field-row {
  gap: .4rem;
  display: grid
}

.candidate-personal-data__field-row-label {
  color: #1a202c;
  font-size: .95rem;
  font-weight: 500
}

.candidate-personal-data__catalog-hint {
  color: #4a5568;
  margin: 0;
  font-size: .8rem
}

.candidate-personal-data__catalog-hint--error {
  color: #c53030
}

.candidate-personal-data__grid--phone,
.candidate-personal-data__grid--two {
  grid-template-columns: 1fr 1fr
}

.candidate-personal-data__grid--phone {
  grid-template-columns: minmax(0, 30%) minmax(0, 70%)
}

.candidate-personal-data__grid--birth {
  grid-template-columns: 1fr
}

.candidate-personal-data__phone-number {
  align-content: end
}

.candidate-personal-data__grid--birth-inputs {
  grid-template-columns: repeat(3, minmax(0, 1fr))
}

.candidate-personal-data__form-actions {
  justify-content: center;
  margin-top: .25rem;
  display: flex
}

.candidate-personal-data__form-actions .ui-button {
  min-width: 180px
}

.candidate-personal-data__save-feedback {
  text-align: center;
  color: #0c8f3d;
  margin: 0;
  font-size: .83rem;
  font-weight: 700
}

.candidate-personal-data__employer {
  text-align: center;
  color: #2d3748;
  margin: 0;
  font-size: .9rem
}

.candidate-personal-data__employer-link {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 600;
  text-decoration: none
}

.candidate-personal-data__employer-link:hover {
  text-decoration: underline
}

@media (max-width:768px) {
  .candidate-personal-data {
    padding: 1rem 1rem 2rem
  }
}

@media (max-width:480px) {
  .candidate-personal-data__grid--two {
    grid-template-columns: 1fr 1fr
  }

  .candidate-personal-data__grid--dependants {
    grid-template-columns: 1fr
  }

  .candidate-personal-data__grid--birth-place {
    grid-template-columns: 1fr 1fr
  }

  .candidate-personal-data__grid--birth-inputs {
    grid-template-columns: repeat(3, minmax(0, 1fr))
  }
}

@media (max-width:380px) {
  .candidate-personal-data__grid--birth-inputs {
    grid-template-columns: 1fr
  }
}

@media (min-width:1024px) {
  .candidate-personal-data__form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1rem
  }

  .candidate-personal-data__grid,
  .candidate-personal-data__field-row,
  .candidate-personal-data__form-actions,
  .candidate-personal-data__employer,
  .candidate-personal-data__save-feedback {
    grid-column: 1/-1
  }
}

.candidate-profile {
  flex-direction: column;
  gap: 1.75rem;
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 1.25rem clamp(.75rem, 3vw, 1.75rem) 3rem;
  display: flex
}

.candidate-profile__board {
  background-image: url(../assets/icono_fondo_2.png), url(../assets/icono_fondo_1.png);
  background-position: 100% 0, 0 0;
  background-repeat: repeat-y, repeat-y;
  background-size: 35%, 45%;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 1.25rem;
  padding: .75rem 0;
  display: grid;
  position: relative
}

.candidate-profile__board-list,
.candidate-profile__board-detail {
  z-index: 1;
  min-width: 0;
  position: relative
}

@media (min-width:1024px) {
  .candidate-profile__board {
    grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
    gap: 1.5rem;
    padding: 1.5rem clamp(.5rem, 2vw, 1.25rem)
  }

  .candidate-profile__board-list {
    min-height: calc(100vh - 3rem)
  }

  .candidate-profile__board-detail {
    align-self: start;
    position: sticky;
    top: 1.5rem
  }
}

@media (max-width:900px) {
  .candidate-profile__board {
    background-color: #fff;
    background-image: none;
    padding: 0
  }
}

@media (max-width:1023px) {
  .candidate-profile__board-detail:not(.candidate-profile__board-detail--sheet-open):has(.vacancy-detail__placeholder) {
    display: none
  }

  .candidate-profile__board-detail--sheet-open {
    z-index: 1100;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    max-width: 100%;
    height: 92svh;
    max-height: 92svh;
    padding-bottom: env(safe-area-inset-bottom, 0);
    background: #fff;
    border-radius: 1.25rem 1.25rem 0 0;
    margin: 0;
    animation: .28s cubic-bezier(.22, 1, .36, 1) both candidate-sheet-slide-up;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden auto;
    box-shadow: 0 -12px 32px #00000038
  }

  .candidate-profile__sheet-backdrop {
    cursor: pointer;
    z-index: 1099;
    background: #0f172a80;
    border: 0;
    margin: 0;
    padding: 0;
    animation: .22s ease-out both candidate-sheet-fade-in;
    position: fixed;
    inset: 0
  }

  .candidate-profile__sheet-close {
    color: #1f2937;
    cursor: pointer;
    z-index: 2;
    -webkit-tap-highlight-color: transparent;
    background: #0f172a14;
    border: 0;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: -1.5rem;
    margin-left: auto;
    margin-right: .75rem;
    font-size: 1.4rem;
    line-height: 1;
    display: inline-flex;
    position: sticky;
    top: .6rem
  }

  .candidate-profile__sheet-close:hover,
  .candidate-profile__sheet-close:focus-visible {
    background: #0f172a29;
    outline: none
  }
}

@keyframes candidate-sheet-slide-up {
  0% {
    transform: translateY(100%)
  }

  to {
    transform: translateY(0)
  }
}

@keyframes candidate-sheet-fade-in {
  0% {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@media (prefers-reduced-motion:reduce) {

  .candidate-profile__board-detail--sheet-open,
  .candidate-profile__sheet-backdrop {
    animation: none
  }
}

.candidate-settings {
  flex-direction: column;
  gap: 1.5rem;
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 1.25rem clamp(1rem, 3vw, 2rem) 3rem;
  display: flex
}

.candidate-settings__top {
  justify-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
  display: grid
}

.candidate-settings__back {
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  background: 0 0;
  border: 0;
  justify-self: start;
  font-size: 1.35rem;
  font-weight: 800;
  text-decoration: none
}

.candidate-settings__logo {
  object-fit: contain;
  width: min(360px, 82vw)
}

.candidate-settings__layout {
  gap: 1.1rem;
  display: grid
}

.candidate-settings__content {
  gap: .95rem;
  display: grid
}

.candidate-settings__profile-card,
.candidate-settings__actions,
.candidate-settings__logout {
  background: #f7f7f7;
  border: 1px solid #0000000d;
  border-radius: 20px
}

.candidate-settings__profile-card {
  gap: 1rem;
  margin-top: 2rem;
  padding: 1.1rem;
  display: grid
}

.candidate-settings__profile-card--active {
  border-color: #009cdc59
}

.candidate-settings__profile-card--clickable {
  cursor: pointer
}

.candidate-settings__profile-card--clickable:hover,
.candidate-settings__profile-card--clickable:focus-visible {
  border-color: #009cdc59;
  outline: none;
  box-shadow: 0 0 0 3px #009cdc1f
}

.candidate-settings__profile-main {
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: .9rem;
  display: grid
}

.candidate-settings__avatar {
  background: #fff;
  border: 4px solid #11a7de;
  border-radius: 999px;
  width: 78px;
  height: 78px;
  overflow: hidden
}

.candidate-settings__avatar img {
  object-fit: cover;
  width: 100%;
  height: 100%
}


.candidate-settings__avatar--uploadable {
  position: relative;
  cursor: pointer;
  outline: none;
}

.candidate-settings__avatar--uploadable:focus-visible {
  box-shadow: 0 0 0 4px #009cdc33;
}

.candidate-settings__avatar-edit {
  position: absolute;
  right: -1px;
  bottom: -1px;
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #11a7de;
  color: #fff;
  font-size: 13px;
  line-height: 1;
  pointer-events: none;
}

.candidate-settings__avatar--uploading {
  cursor: wait;
  opacity: .65;
}

.candidate-settings__profile-main h1 {
  color: #3f3d40;
  margin: 0;
  font-size: 1.25rem
}

.candidate-settings__role {
  color: #505050;
  margin: .1rem 0
}

.candidate-settings__progress {
  color: #6c6c6c;
  margin: 0;
  font-size: .9rem
}

.candidate-settings__progress strong {
  color: #22c55e
}

.candidate-settings__apply-cta {
  color: #ff8b00;
  cursor: pointer;
  text-align: center;
  background: 0 0;
  border: 0;
  font-size: .8rem;
  font-weight: 800;
  text-decoration: none;
  display: block
}

a.candidate-settings__profile-card,
a.candidate-settings__action {
  color: inherit;
  text-decoration: none
}

button.candidate-settings__action:disabled {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none
}

button.candidate-settings__action:disabled:hover,
button.candidate-settings__action:disabled:focus-visible {
  box-shadow: none;
  background: #ececec;
  transform: none
}

.candidate-settings__actions {
  gap: .75rem;
  padding: 1rem;
  display: grid
}

.candidate-settings__actions h2 {
  color: #3f3d40;
  margin: 0 0 .2rem
}

.candidate-settings__action {
  cursor: pointer;
  color: #3f3d40;
  text-align: left;
  background: #ececec;
  border: 0;
  border-radius: 14px;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .95rem 1rem;
  transition: background-color .16s, box-shadow .16s, transform .16s, color .16s;
  display: flex
}

.candidate-settings__action strong {
  font-size: 1.08rem;
  display: block
}

.candidate-settings__action small {
  color: #6b7280;
  margin-top: .15rem;
  font-size: .8rem;
  display: block
}

.candidate-settings__action>span:last-child {
  color: #009cdc;
  font-size: 1.7rem;
  line-height: 1;
  transition: transform .16s, color .16s
}

.candidate-settings__action:hover {
  background: #e4f5fb;
  box-shadow: inset 0 0 0 1px #009cdc38
}

.candidate-settings__action:hover>span:last-child {
  color: #0679ab;
  transform: translate(2px)
}

.candidate-settings__action:focus-visible {
  background: #e4f5fb;
  outline: none;
  box-shadow: 0 0 0 3px #009cdc33
}

.candidate-settings__action:active {
  transform: translateY(1px)
}

.candidate-settings__logout-wrap {
  margin-top: .75rem
}

.candidate-settings__logout {
  color: #3f3d40;
  cursor: pointer;
  border: 1px solid #0000;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1rem 1.2rem;
  font-size: 1.1rem;
  font-weight: 800;
  transition: background-color .16s, border-color .16s, box-shadow .16s, transform .16s, color .16s;
  display: flex
}

.candidate-settings__logout span {
  color: #009cdc;
  font-size: 1.7rem;
  line-height: 1;
  transition: transform .16s, color .16s
}

.candidate-settings__logout:hover {
  color: #7f1d1d;
  background: #fff3f3;
  border-color: #ef444433
}

.candidate-settings__logout:hover span {
  color: #dc2626;
  transform: translate(2px)
}

.candidate-settings__logout:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px #ef444433
}

.candidate-settings__logout:active {
  transform: translateY(1px)
}

@media (min-width:1024px) {
  .candidate-settings__layout {
    grid-template-columns: minmax(320px, 380px) minmax(0, 1fr);
    align-items: start;
    gap: 1.4rem
  }

  .candidate-settings__profile-card {
    position: sticky;
    top: 1.2rem
  }

  .candidate-settings__content {
    gap: 1rem
  }
}

.nearby-map {
  flex-direction: column;
  gap: .75rem;
  width: 100%;
  display: flex;
  position: relative
}

.nearby-map__header {
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0 .25rem;
  display: flex
}

.nearby-map__back {
  letter-spacing: .04em;
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  background: 0 0;
  border: 0;
  align-items: center;
  gap: .4rem;
  padding: 0;
  font-size: .95rem;
  font-weight: 700;
  text-decoration: none;
  display: inline-flex
}

.nearby-map__back:hover,
.nearby-map__back:focus-visible {
  color: #e67e00;
  text-decoration: underline
}

.nearby-map__toggle {
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #1f2937;
  cursor: pointer;
  background: 0 0;
  border: 0;
  padding: .4rem 0;
  font-size: .85rem;
  font-weight: 700
}

.nearby-map__toggle:hover,
.nearby-map__toggle:focus-visible {
  color: #009cdc
}

.nearby-map__shell {
  background: #e5e7eb;
  border: 1px solid #0000000f;
  border-radius: 12px;
  width: 100%;
  height: 50vh;
  min-height: 320px;
  max-height: 640px;
  position: relative;
  overflow: hidden
}

@media (min-width:768px) {
  .nearby-map__shell {
    height: 60vh
  }
}

.nearby-map__container {
  width: 100%;
  height: 100%
}

.nearby-map__state {
  text-align: center;
  background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
  justify-content: center;
  align-items: center;
  padding: 1.5rem;
  display: flex;
  position: absolute;
  inset: 0
}

.nearby-map__state-card {
  color: #1f2937;
  flex-direction: column;
  align-items: center;
  gap: .85rem;
  max-width: 420px;
  display: flex
}

.nearby-map__state-title {
  color: #111827;
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700
}

.nearby-map__state-message {
  color: #4b5563;
  margin: 0;
  font-size: .95rem;
  line-height: 1.45
}

.nearby-map__state-cta {
  color: #fff;
  cursor: pointer;
  background: #009cdc;
  border: 0;
  border-radius: 999px;
  margin-top: .25rem;
  padding: .65rem 1.4rem;
  font-size: .95rem;
  font-weight: 700
}

.nearby-map__state-cta:hover,
.nearby-map__state-cta:focus-visible {
  background: #007ab0
}

.nearby-map__state-cta:disabled {
  cursor: progress;
  background: #9ca3af
}

.nearby-map__count {
  color: #4b5563;
  padding: 0 .25rem;
  font-size: .85rem
}

.nearby-map__error {
  color: #b42318;
  padding: 0 .25rem;
  font-size: .85rem
}

.nearby-map__user-icon span {
  background: #009cdc;
  border: 3px solid #fff;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  display: block;
  box-shadow: 0 0 0 2px #009cdc59
}

.vacancy-card {
  cursor: pointer;
  text-align: left;
  width: 100%;
  font: inherit;
  color: inherit;
  background: #fff;
  border: 2px solid #0f172a1a;
  border-top-right-radius: 18px;
  border-bottom-right-radius: 18px;
  border-bottom-left-radius: 18px;
  grid-template-rows: auto 1fr auto;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .5rem 1rem;
  padding: 1rem 1.1rem;
  transition: transform .12s, border-color .12s, box-shadow .12s;
  display: grid;
  box-shadow: inset 0 1px 2px #0f172a12, 0 3px 6px #0f172a21, 0 12px 32px #0f172a1f
}

.vacancy-card:hover,
.vacancy-card:focus-visible {
  border-color: #009cdc85;
  outline: none;
  transform: translateY(-1px);
  box-shadow: inset 0 1px 2px #0f172a14, 0 3px 8px #0f172a26, 0 20px 42px #0f172a29
}

.vacancy-card--selected {
  border-color: #009cdc;
  box-shadow: 0 0 0 1px #009cdc, inset 0 1px 2px #0f172a14, 0 3px 8px #0f172a24, 0 20px 42px #0f172a2e
}

.vacancy-card__header {
  color: #f08a2c;
  letter-spacing: .01em;
  grid-column: 1/-1;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-size: .85rem;
  font-weight: 700;
  display: flex
}

.vacancy-card__header span {
  white-space: nowrap
}

.vacancy-card__body {
  flex-direction: column;
  gap: .25rem;
  display: flex
}

.vacancy-card__title {
  color: #111827;
  letter-spacing: .01em;
  margin: 0;
  font-size: .8rem;
  font-weight: 800
}

.vacancy-card__rating {
  color: #f08a2c;
  gap: 2px;
  margin: .05rem 0 .2rem;
  display: inline-flex
}

.vacancy-card__rating .vacancy-card__star--off {
  color: #e5e7eb
}

.vacancy-card__company-name,
.vacancy-card__location,
.vacancy-card__salary {
  color: #1f2937;
  margin: 0;
  font-size: .92rem;
  line-height: 1.35
}

.vacancy-card__location {
  text-transform: uppercase;
  letter-spacing: .02em
}

.vacancy-card__brand {
  justify-content: center;
  align-self: center;
  align-items: center;
  width: clamp(72px, 18vw, 110px);
  display: flex
}

.vacancy-card__brand img {
  object-fit: contain;
  max-width: 100%;
  max-height: 70px
}

.vacancy-card__brand-fallback {
  color: #fff;
  background: linear-gradient(135deg, #009cdc 0%, #59b5d9 100%);
  border-radius: 50%;
  place-items: center;
  width: 64px;
  height: 64px;
  font-size: 1.4rem;
  font-weight: 800;
  display: grid
}

.vacancy-card__footer {
  grid-column: 1/-1;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: .25rem;
  display: flex
}

.vacancy-card__distance {
  color: #009cdc;
  margin: 0;
  font-size: .85rem;
  font-weight: 700
}

.vacancy-card__favorite {
  cursor: pointer;
  color: #f08a2c;
  background: 0 0;
  border: 0;
  border-radius: 999px;
  padding: .25rem;
  display: inline-flex
}

.vacancy-card__favorite svg {
  color: #f08a2c;
  transition: fill .12s, stroke .12s
}

.vacancy-card__favorite svg path {
  fill: none;
  stroke: currentColor
}

.vacancy-card__favorite--active svg path {
  fill: currentColor;
  stroke: currentColor
}

.vacancy-card__favorite:hover,
.vacancy-card__favorite:focus-visible {
  background: #f08a2c1f;
  outline: none
}

.vacancy-card__favorite[disabled] {
  cursor: not-allowed;
  opacity: .7
}

.vacancy-card__status {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 700
}

.vacancy-card__status--in-progress {
  color: #009cdc
}

.vacancy-card__status--done {
  color: #f08a2c
}

.vacancy-card__footer--application {
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: .35rem;
  display: grid
}

.vacancy-card__distance--inline {
  color: #009cdc;
  margin: 0;
  font-size: .78rem;
  font-weight: 600
}

.vacancy-card__progress {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .6rem;
  width: 100%;
  display: grid;
  position: relative
}

.vacancy-card__progress:before {
  content: "";
  background: #e5e7eb;
  border-radius: 999px;
  grid-area: 1/1/2/2;
  height: 8px
}

.vacancy-card__progress-bar {
  background: currentColor;
  border-radius: 999px;
  grid-area: 1/1/2/2;
  min-width: 4px;
  max-width: 100%;
  height: 8px;
  transition: width .22s
}

.vacancy-card__progress--in-progress {
  color: #009cdc
}

.vacancy-card__progress--done {
  color: #f08a2c
}

.vacancy-card__progress-value {
  color: currentColor;
  font-size: .85rem;
  font-weight: 800;
  line-height: 1
}

.vacancy-detail {
  background: #fff;
  border: 1px solid #0000000a;
  border-radius: 18px;
  flex-direction: column;
  gap: 1.25rem;
  min-height: 380px;
  padding: 1.5rem clamp(1rem, 3vw, 2rem) 1.25rem;
  display: flex;
  box-shadow: 0 1px 2px #0f172a0f, 0 12px 28px #0f172a12
}

.vacancy-detail__placeholder {
  text-align: center;
  color: #4b5563;
  background: #fff;
  border: 1px dashed #0000001a;
  border-radius: 18px;
  justify-content: center;
  align-items: center;
  min-height: 380px;
  padding: 3rem 1.5rem;
  display: flex
}

.vacancy-detail__loading,
.vacancy-detail__error {
  text-align: center;
  color: #4b5563;
  margin: 0;
  padding: 1.5rem
}

.vacancy-detail__error {
  color: #b42318
}

.vacancy-detail__badges {
  color: #f08a2c;
  letter-spacing: .01em;
  justify-content: space-between;
  align-items: center;
  font-size: .85rem;
  font-weight: 700;
  display: flex
}

.vacancy-detail__head {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem 1.5rem;
  display: grid
}

.vacancy-detail__title {
  color: #111827;
  letter-spacing: .01em;
  margin: 0;
  font-size: 1.15rem;
  font-weight: 800
}

.vacancy-detail__rating {
  color: #f08a2c;
  gap: 2px;
  margin: .25rem 0 .5rem;
  display: inline-flex
}

.vacancy-detail__rating .vacancy-detail__star--off {
  color: #e5e7eb
}

.vacancy-detail__company-line {
  color: #1f2937;
  margin: 0;
  font-size: .95rem;
  line-height: 1.4
}

.vacancy-detail__brand {
  justify-content: center;
  align-self: center;
  align-items: center;
  width: clamp(110px, 22vw, 150px);
  display: flex
}

.vacancy-detail__brand img {
  object-fit: contain;
  max-width: 100%;
  max-height: 90px
}

.vacancy-detail__brand-fallback {
  color: #fff;
  background: linear-gradient(135deg, #009cdc 0%, #59b5d9 100%);
  border-radius: 50%;
  place-items: center;
  width: 88px;
  height: 88px;
  font-size: 1.8rem;
  font-weight: 800;
  display: grid
}

.vacancy-detail__meta {
  color: #1f2937;
  flex-direction: column;
  gap: .45rem;
  font-size: .95rem;
  display: flex
}

.vacancy-detail__meta-row {
  align-items: center;
  gap: .55rem;
  display: inline-flex
}

.vacancy-detail__meta-row svg {
  color: #009cdc;
  flex-shrink: 0
}

.vacancy-detail__tabs {
  flex-wrap: wrap;
  gap: .55rem;
  display: flex
}

.vacancy-detail__tab {
  color: #009cdc;
  cursor: pointer;
  background: 0 0;
  border: 1px solid #009cdc;
  border-radius: 999px;
  padding: .5rem 1.1rem;
  font-size: .9rem;
  font-weight: 700;
  transition: background-color .12s, color .12s
}

.vacancy-detail__tab:hover,
.vacancy-detail__tab:focus-visible {
  background: #009cdc14;
  outline: none
}

.vacancy-detail__tab--active {
  color: #fff;
  background: #009cdc
}

.vacancy-detail__tab--active:hover,
.vacancy-detail__tab--active:focus-visible {
  background: #007ab0
}

.vacancy-detail__sections {
  color: #1f2937;
  flex-direction: column;
  gap: 1rem;
  line-height: 1.5;
  display: flex
}

.vacancy-detail__section h4 {
  color: #111827;
  margin: 0 0 .35rem;
  font-size: 1rem;
  font-weight: 700
}

.vacancy-detail__section p {
  white-space: pre-line;
  margin: 0;
  font-size: .95rem
}

.vacancy-detail__section--empty {
  color: #6b7280;
  font-style: italic
}

.vacancy-detail__benefits,
.vacancy-detail__routes {
  flex-direction: column;
  gap: .85rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex
}

.vacancy-detail__benefit-item,
.vacancy-detail__route-item {
  border-bottom: 1px solid #0000000a;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: start;
  gap: .85rem;
  padding: .65rem .5rem;
  display: grid
}

.vacancy-detail__benefit-item:last-child,
.vacancy-detail__route-item:last-child {
  border-bottom: 0
}

.vacancy-detail__benefit-item--plain {
  border-top: 1px dashed #00000014;
  grid-template-columns: minmax(0, 1fr);
  padding-top: 1rem
}

.vacancy-detail__benefit-icon {
  object-fit: contain;
  filter: drop-shadow(0 1px #0000000a);
  width: 32px;
  height: 32px;
  margin-top: 2px
}

.vacancy-detail__benefit-text {
  color: #1f2937;
  flex-direction: column;
  gap: .2rem;
  font-size: .95rem;
  line-height: 1.4;
  display: flex
}

.vacancy-detail__benefit-text strong {
  color: #111827;
  letter-spacing: .01em;
  font-weight: 800
}

.vacancy-detail__footer {
  border-top: 1px solid #0000000f;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding-top: .5rem;
  display: grid
}

.vacancy-detail__icon-btn {
  cursor: pointer;
  color: #009cdc;
  background: 0 0;
  border: 0;
  border-radius: 999px;
  padding: .45rem;
  display: inline-flex
}

.vacancy-detail__icon-btn:hover,
.vacancy-detail__icon-btn:focus-visible {
  background: #009cdc1a;
  outline: none
}

.vacancy-detail__icon-btn--favorite {
  color: #f08a2c
}

.vacancy-detail__icon-btn--favorite svg {
  color: #f08a2c;
  transition: fill .12s, stroke .12s
}

.vacancy-detail__icon-btn--favorite svg path {
  fill: none;
  stroke: currentColor
}

.vacancy-detail__icon-btn--favorite-active svg path {
  fill: currentColor;
  stroke: currentColor
}

.vacancy-detail__icon-btn--favorite:hover,
.vacancy-detail__icon-btn--favorite:focus-visible {
  background: #f08a2c1f
}

.vacancy-detail__icon-btn[disabled] {
  cursor: not-allowed;
  opacity: .7
}

.vacancy-detail__cta {
  color: #fff;
  letter-spacing: .04em;
  cursor: pointer;
  text-transform: uppercase;
  background: #f08a2c;
  border: 0;
  border-radius: 999px;
  justify-self: center;
  padding: .75rem 2.25rem;
  font-size: .95rem;
  font-weight: 800
}

.vacancy-detail__cta:hover,
.vacancy-detail__cta:focus-visible {
  background: #d97718;
  outline: none
}

.vacancy-detail__cta[disabled] {
  cursor: not-allowed;
  background: #fbbf73
}

.vacancy-detail__share-feedback {
  color: #009cdc;
  text-align: left;
  margin: -.5rem 0 0;
  font-size: .82rem;
  font-weight: 700
}

@media (max-width:1023px) {
  .vacancy-detail__tabs {
    flex-wrap: initial;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .4rem;
    display: grid
  }

  .vacancy-detail__tab {
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
    min-width: 0;
    padding: .5rem .25rem;
    font-size: clamp(.65rem, 2.4vw, .85rem)
  }
}

.vacancy-list {
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  display: flex
}

.vacancy-list__title {
  color: #1f2937;
  letter-spacing: .01em;
  margin: 0;
  padding: 0 .25rem;
  font-size: 1rem;
  font-weight: 700
}

.vacancy-list__empty,
.vacancy-list__loading,
.vacancy-list__error {
  text-align: center;
  color: #4b5563;
  background: #fff;
  border: 1px dashed #0000001a;
  border-radius: 12px;
  margin: 0;
  padding: 1.5rem 1rem
}

.vacancy-list__error {
  color: #b42318;
  background: #fff5f4;
  border-color: #b423184d
}

.vacancy-list__items {
  flex-direction: column;
  gap: .85rem;
  padding-top: 2rem;
  display: flex
}

.employer-recruitment-banner {
  aspect-ratio: 1921/641;
  background-position: top;
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  min-height: 0;
  position: relative;
  overflow: hidden
}

.employer-recruitment-banner__overlay {
  background: 0 0;
  position: absolute;
  inset: 0
}

.employer-recruitment-banner__inner {
  z-index: 1;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2.25rem);
  max-width: 1200px;
  min-height: 100%;
  margin-inline: auto;
  padding: clamp(1.25rem, 2.8vw, 2.25rem) clamp(1rem, 4vw, 3rem);
  display: grid;
  position: relative
}

.employer-recruitment-banner__title {
  color: #fff;
  letter-spacing: .01em;
  text-transform: uppercase;
  text-align: center;
  justify-self: center;
  max-width: 18ch;
  margin: 0;
  font-size: clamp(1.75rem, 2.8vw, 3.35rem);
  font-weight: 800;
  line-height: .98
}

.employer-recruitment-banner__content {
  color: #fff;
  flex-direction: column;
  justify-content: center;
  justify-self: end;
  max-width: 30rem;
  display: flex
}

.employer-recruitment-banner__lead,
.employer-recruitment-banner__highlight {
  margin: 0
}

.employer-recruitment-banner__lead {
  font-size: clamp(1rem, 1.15vw, 1.55rem);
  line-height: 1.2
}

.employer-recruitment-banner__highlight {
  margin-top: clamp(.55rem, 1vw, .95rem);
  font-size: clamp(1.05rem, 1.35vw, 1.9rem);
  font-weight: 500;
  line-height: 1.15
}

.employer-recruitment-banner__cta {
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .01em;
  cursor: pointer;
  background-color: #ff8b00;
  border: none;
  border-radius: .9rem;
  justify-content: center;
  align-items: center;
  margin-top: clamp(.85rem, 1.5vw, 1.4rem);
  padding: clamp(.55rem, .75vw, .8rem) clamp(1.15rem, 1.8vw, 1.75rem);
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 800;
  text-decoration: none;
  display: inline-flex
}

.employer-recruitment-banner__cta:hover {
  opacity: .95
}

.employer-recruitment-banner__cta:focus-visible {
  outline-offset: 4px;
  outline: 3px solid #fff
}

@media (max-width:900px) {
  .employer-recruitment-banner__inner {
    grid-template-columns: 1fr;
    gap: .85rem
  }

  .employer-recruitment-banner__content {
    justify-self: start;
    max-width: 36rem
  }
}

@media (max-width:640px) {
  .employer-recruitment-banner {
    aspect-ratio: auto;
    min-height: 16rem
  }

  .employer-recruitment-banner__overlay {
    background: linear-gradient(90deg, #0098dceb 0% 100%)
  }

  .employer-recruitment-banner__inner {
    align-items: flex-start;
    padding: 1.25rem clamp(.85rem, 4.5vw, 1.15rem) 1.7rem
  }

  .employer-recruitment-banner__title {
    justify-self: center;
    font-size: clamp(1.45rem, 8vw, 2rem);
    line-height: 1.02
  }

  .employer-recruitment-banner__lead {
    text-align: center;
    font-size: clamp(.86rem, 3.6vw, 1rem)
  }

  .employer-recruitment-banner__highlight {
    text-align: center;
    margin-top: .35rem;
    font-size: clamp(.86rem, 4vw, 1.03rem);
    line-height: 1.25
  }

  .employer-recruitment-banner__cta {
    margin-inline: auto;
    border-radius: 9999px;
    width: fit-content;
    max-width: none;
    margin-top: .65rem;
    padding: .6rem 1.25rem;
    font-size: .95rem
  }

  .employer-recruitment-banner__content {
    text-align: center;
    justify-content: flex-start;
    justify-self: center
  }
}

.employer-vacancy {
  isolation: isolate;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: -1rem;
  display: flex;
  position: relative
}

.employer-vacancy__brand {
  text-align: left;
  align-self: flex-start;
  align-items: flex-start;
  margin-bottom: .25rem
}

.employer-vacancy__body {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 1.5rem;
  display: grid
}

.employer-vacancy__content {
  flex-direction: column;
  gap: .85rem;
  min-width: 0;
  display: flex
}

.employer-vacancy__eyebrow {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--color-brand-orange, #ff8b00);
  font-size: clamp(1.05rem, 2.4vw + .3rem, 1.5rem);
  font-weight: 800
}

.employer-vacancy__heading {
  color: #1a202c;
  text-transform: uppercase;
  letter-spacing: .01em;
  margin: 0;
  font-size: clamp(1.5rem, 1.7vw + .5rem, 1.75rem);
  font-weight: 800;
  line-height: 1.1
}

.employer-vacancy__heading-accent {
  color: var(--color-brand-orange, #ff8b00)
}

.employer-vacancy__benefits {
  flex-direction: column;
  gap: .6rem;
  margin: .65rem 0 0;
  padding: 0;
  list-style: none;
  display: flex
}

.employer-vacancy__benefit {
  color: #2d3748;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: .65rem;
  font-size: clamp(.92rem, 1.1vw + .55rem, 1.05rem);
  display: grid
}

.employer-vacancy__check {
  background-color: var(--color-brand-cyan, #00b4d8);
  color: #fff;
  border-radius: 999px;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 1.45rem;
  height: 1.45rem;
  display: inline-flex
}

.employer-vacancy__media {
  z-index: 1;
  border-radius: 1rem;
  min-height: clamp(280px, 40vw, 420px);
  position: relative
}

.employer-vacancy__photo {
  object-fit: contain;
  object-position: center bottom;
  transform-origin: bottom;
  -webkit-user-select: none;
  user-select: none;
  pointer-events: none;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  transform: scale(1.2)
}

.employer-vacancy__publish-pill {
  background-color: var(--color-brand-orange, #ff8b00);
  color: #fff;
  letter-spacing: .02em;
  cursor: pointer;
  white-space: nowrap;
  border: none;
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  padding: .7rem 1.4rem;
  font-family: inherit;
  font-size: clamp(.85rem, .6vw + .7rem, 1rem);
  font-weight: 600;
  transition: transform .15s, box-shadow .15s, background-color .15s;
  display: inline-flex;
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translate(-50%);
  box-shadow: 0 14px 30px #ff8b0052
}

.employer-vacancy__publish-pill:hover {
  background-color: #f57f00;
  transform: translate(-50%)translateY(-1px);
  box-shadow: 0 18px 36px #ff8b0066
}

.employer-vacancy__publish-pill:focus-visible {
  outline: 3px solid var(--color-brand-cyan, #00b4d8);
  outline-offset: 3px
}

.employer-vacancy__cta-fallback {
  justify-content: center;
  display: none
}

.employer-vacancy__bottom-bar {
  z-index: 0;
  background-color: var(--color-brand-cyan, #00b4d8);
  margin-top: 1.5rem;
  height: 1.5rem;
  margin-inline: calc(-1*clamp(1.5rem, 4vw, 2.25rem));
  position: relative;
  transform: translateY(-5rem)
}

@media (max-width:720px) {
  .employer-vacancy__body {
    grid-template-columns: 1fr;
    gap: .75rem
  }

  .employer-vacancy__brand {
    text-align: center;
    align-self: center;
    align-items: center
  }

  .employer-vacancy__content {
    text-align: center;
    align-items: center
  }

  .employer-vacancy__benefits {
    text-align: left;
    align-self: center;
    width: 100%;
    max-width: 22rem
  }

  .employer-vacancy__media {
    min-height: clamp(280px, 75vw, 380px)
  }

  .employer-vacancy__photo {
    transform: scale(1)
  }

  .employer-vacancy__publish-pill {
    padding: .6rem 1.1rem;
    font-size: .9rem;
    bottom: 18%
  }

  .employer-vacancy__cta-fallback {
    display: none
  }

  .employer-vacancy__bottom-bar {
    height: 1rem;
    margin-top: 0;
    transform: translateY(-3rem)
  }
}

@media (max-width:480px) {
  .employer-vacancy__bottom-bar {
    margin-inline: -1.25rem
  }
}

.hero-section {
  background-image: url(../assets/fondo_1.png);
  background-size: cover;
  background-position: center calc(var(--scroll-y, 0) * -.15px);
  box-sizing: border-box;
  z-index: 1;
  background-repeat: no-repeat;
  flex-direction: column;
  justify-content: flex-end;
  width: 100%;
  height: auto;
  min-height: 90vh;
  padding-bottom: calc(clamp(1rem, 3vh, 2.5rem) + clamp(1.25rem, 2.8vh, 2.75rem));
  display: flex;
  position: relative
}

.hero-section-cta {
  transform: translate3d(-50%, calc(50% + var(--scroll-y, 0) * .18px), 0);
  opacity: calc(1 - var(--scroll-y, 0) / 320);
  z-index: 2;
  will-change: transform, opacity;
  box-sizing: border-box;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  text-transform: uppercase;
  letter-spacing: .06em;
  text-align: center;
  background-color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  border: none;
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  width: max-content;
  max-width: min(100% - 2rem, 22rem);
  padding-block: clamp(.55rem, 1.8vw, .95rem);
  padding-inline: clamp(1.75rem, 7vw, 4rem);
  font-family: inherit;
  font-size: clamp(1.05rem, 3.5vw + .5rem, 1.55rem);
  font-weight: 800;
  text-decoration: none;
  display: inline-flex;
  position: absolute;
  bottom: 0;
  left: 50%;
  box-shadow: 0 10px 36px #00000038
}

.hero-section-cta:hover {
  opacity: .94
}

.hero-section-cta:focus-visible {
  outline-offset: 4px;
  outline: 3px solid #fff
}

button.hero-section-cta {
  appearance: none;
  text-align: inherit;
  font-family: inherit;
  font-weight: 800
}

.hero-section-content {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: auto;
  min-height: 67.5vh;
  transform: translate3d(0, calc(var(--scroll-y, 0) * .32px), 0);
  opacity: calc(1 - var(--scroll-y, 0) / 520);
  will-change: transform, opacity;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin-inline: auto;
  display: flex
}

@media (prefers-reduced-motion:reduce) {

  .hero-section,
  .hero-section-content,
  .hero-section-cta {
    opacity: 1 !important;
    background-position: 50% !important;
    transform: none !important
  }
}

.hero-section-content-title {
  box-sizing: border-box;
  width: 50%;
  min-width: 0
}

.hero-section-content-title-heading {
  letter-spacing: .03em;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
  margin-bottom: 2rem;
  margin-left: clamp(1.25rem, 5rem + 5vw, 10rem);
  font-size: clamp(1.85rem, 2.8vw + 1rem, 3.35rem);
  font-weight: 800;
  line-height: 1.06
}

.hero-section-content-title-line {
  width: 50%;
  display: block
}

.hero-section-content-title-callout {
  background-color: var(--color-brand-orange, #ff8b00);
  color: #fff;
  border-top-right-radius: 1rem;
  border-bottom-right-radius: 1rem;
  max-width: 100%;
  padding: clamp(.85rem, 2vw, 1.1rem) clamp(1.1rem, 3vw, 1.75rem);
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.55;
  box-shadow: 0 6px 28px #0000002e
}

.hero-section-content-title-callout-text {
  margin: 0 0 0 clamp(1rem, 2.5rem + 4.5vw, 8rem);
  font-weight: 400
}

.hero-section-content-cards {
  box-sizing: border-box;
  flex-direction: column;
  flex: 0 auto;
  align-self: center;
  align-items: stretch;
  gap: .85rem;
  width: 50%;
  min-width: 0;
  height: auto;
  padding-inline: clamp(1rem, 1.5rem + 9vw, 15rem);
  display: flex
}

@media (min-width:961px) and (max-width:1920px) {
  .hero-section-content-title-heading {
    font-size: clamp(1.45rem, 1.75vw + .72rem, 2.55rem)
  }

  .hero-section-content-title-callout {
    font-size: clamp(1.05rem, .5vw + .82rem, 1.28rem);
    line-height: 1.48
  }

  .hero-section-content-cards .icon-text-pill__text {
    font-size: .98rem
  }

  .hero-section-content-cards .icon-text-pill__icon svg,
  .hero-section-content-cards .icon-text-pill__icon img {
    width: 3.15rem;
    height: 3.15rem
  }
}

@media (min-width:961px) {
  .hero-section-content-cards {
    grid-template-rows: repeat(3, minmax(0, 1fr));
    display: grid
  }

  .hero-section-content-cards .icon-text-pill {
    height: 100%;
    min-height: 0
  }

  .hero-section-content-cards .icon-text-pill__text {
    overflow-wrap: anywhere;
    line-clamp: 4;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden
  }

  .hero-section-cta {
    width: auto;
    max-width: none;
    padding-block: clamp(.65rem, 1.1vh, .95rem);
    padding-inline: clamp(2.25rem, 5vw, 4rem);
    font-size: clamp(1.12rem, 1.25vw + .62rem, 1.55rem)
  }
}

@media (max-width:960px) {
  .hero-section {
    box-sizing: border-box;
    height: auto;
    min-height: min(90dvh, 56rem);
    padding-inline: clamp(1rem, 4vw, 2.5rem);
    padding-bottom: calc(max(clamp(1.5rem, 5vh, 3rem), env(safe-area-inset-bottom, 0)) + max(clamp(1.25rem, 2.8vh, 2.75rem), env(safe-area-inset-bottom, 0)));
    padding-top: calc(clamp(3.5rem, 14vw, 7rem) + env(safe-area-inset-top, 0));
    justify-content: flex-start
  }

  .hero-section-content {
    flex-direction: column;
    flex: 0 auto;
    justify-content: flex-start;
    align-items: stretch;
    gap: clamp(1.25rem, 4vw, 3.5rem);
    height: auto;
    min-height: 0;
    padding-block: clamp(1rem, 3vh, 2rem)
  }

  .hero-section-content-title {
    width: 100%;
    min-width: 0;
    max-width: none
  }

  .hero-section-content-title-heading {
    margin-bottom: clamp(1rem, 3vh, 2rem);
    margin-left: 0;
    margin-right: 0;
    font-size: clamp(1.75rem, 5.2vw + .65rem, 3.35rem)
  }

  .hero-section-content-title-line {
    width: 100%
  }

  .hero-section-content-title-callout {
    box-sizing: border-box;
    border-radius: 1rem;
    max-width: none;
    padding: clamp(.75rem, 2vw, 1.1rem) clamp(1rem, 3vw, 1.75rem);
    font-size: clamp(1rem, 1.5vw + .65rem, 1.6rem);
    line-height: 1.5
  }

  .hero-section-content-title-callout-text {
    margin-left: 0
  }

  .hero-section-content-cards {
    padding-inline: 0;
    flex: auto;
    gap: clamp(.65rem, 1.5vw, .85rem);
    width: 100%;
    min-width: 0;
    height: auto;
    padding-top: clamp(.5rem, 2vh, 1.25rem)
  }

  .hero-section-content-cards .icon-text-pill {
    height: clamp(5rem, 14vw, 6.25rem);
    min-height: clamp(5rem, 14vw, 6.25rem)
  }

  .hero-section-content-cards .icon-text-pill__text {
    line-clamp: 3;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden
  }
}

@media (max-width:640px) {
  .hero-section {
    padding-inline: clamp(.8rem, 4.5vw, 1.15rem)
  }

  .hero-section-content {
    gap: clamp(1rem, 4vw, 1.65rem)
  }

  .hero-section-cta {
    letter-spacing: .04em;
    max-width: calc(100% - 1.25rem);
    font-size: clamp(1rem, 2.5vw + .58rem, 1.15rem)
  }

  .hero-section-content-title-callout {
    box-shadow: none;
    background-color: #0000;
    border-radius: 0
  }
}

@media (max-width:480px) {
  .hero-section-content-title-heading {
    font-size: clamp(1.45rem, 6vw + .5rem, 2.2rem);
    line-height: 1.1
  }

  .hero-section-content-title-callout {
    font-size: clamp(.92rem, 2.2vw + .55rem, 1.05rem)
  }

  .hero-section-content-cards {
    gap: .55rem
  }
}

.home-intro {
  z-index: 99999;
  color: #333;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  will-change: transform;
  background: #ddd;
  place-items: center;
  transition: transform .8s cubic-bezier(.86, 0, .07, 1);
  display: grid;
  position: fixed;
  inset: 0;
  overflow: hidden;
  transform: translateY(0)
}

.home-intro:focus-visible {
  outline: 3px solid var(--color-brand-orange, #ff8b00);
  outline-offset: -8px
}

.home-intro--playing {
  cursor: default;
  transform: translateY(-100%)
}

.home-intro__inner {
  z-index: 1;
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
  display: flex;
  position: relative
}

.home-intro__logo {
  width: clamp(160px, 28vw, 260px);
  height: auto;
  transition: opacity .35s, transform .35s;
  animation: 2.4s ease-in-out infinite home-intro-pulse
}

.home-intro--playing .home-intro__logo {
  opacity: 0;
  animation: none;
  transform: scale(.92)
}

@keyframes home-intro-pulse {

  0%,
  to {
    transform: scale(1)
  }

  50% {
    transform: scale(1.04)
  }
}

.home-intro__hint {
  color: #666;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: .78rem;
  font-weight: 600;
  transition: opacity .3s;
  animation: 2s ease-in-out infinite home-intro-hint
}

.home-intro--playing .home-intro__hint {
  opacity: 0;
  animation: none
}

@keyframes home-intro-hint {

  0%,
  to {
    opacity: .45
  }

  50% {
    opacity: .9
  }
}

@media (max-width:480px) {
  .home-intro__hint {
    letter-spacing: .14em;
    font-size: .72rem
  }
}

@media (prefers-reduced-motion:reduce) {
  .home-intro {
    transition: opacity .22s linear
  }

  .home-intro--playing {
    opacity: 0;
    transform: none
  }

  .home-intro__logo,
  .home-intro__hint {
    animation: none
  }
}

.home-value-section {
  --home-value-pad-x: clamp(1rem, 4vw, 2.5rem);
  padding-top: clamp(2.25rem, 5.5vw, 3.75rem);
  padding-inline: var(--home-value-pad-x);
  background-color: #fff;
  padding-bottom: clamp(6rem, 12vw, 8.5rem);
  position: relative;
  overflow: hidden
}

.home-value-watermarks {
  pointer-events: none;
  z-index: 0;
  position: absolute;
  inset: 0
}

.home-value-watermarks__img {
  object-fit: contain;
  height: auto;
  display: block
}

.home-value-watermarks__img--left {
  width: min(77.5%, 42.5rem);
  max-width: none;
  position: absolute;
  top: auto;
  bottom: 0;
  left: 0;
  transform: translate(-50%, 10%)
}

.home-value-watermarks__clip--right {
  width: min(58%, 28rem);
  max-width: 100%;
  line-height: 0;
  position: absolute;
  top: 18%;
  right: 0;
  overflow: hidden
}

.home-value-watermarks__img--right {
  width: 142.857%;
  max-width: none;
  height: auto;
  display: block;
  position: relative
}

.home-value-section__inner {
  z-index: 1;
  flex-direction: column;
  gap: clamp(2.5rem, 6vw, 4.5rem);
  width: 100%;
  min-width: 0;
  max-width: 72rem;
  margin-inline: auto;
  display: flex;
  position: relative
}

.home-value-pitch {
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(2rem, 5vw, 3.5rem) clamp(1.5rem, 5vw, 10rem);
  width: 100%;
  min-width: 0;
  max-width: 100%;
  display: grid
}

.home-value-pitch__content {
  min-width: 0
}

.home-value-pitch__title {
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--color-brand-orange, #ff8b00);
  margin: 0;
  margin-bottom: clamp(1.5rem, 3.5vw, 2.25rem);
  font-size: clamp(1.35rem, 2.4vw + .65rem, 2.35rem);
  font-weight: 800;
  line-height: 1.12
}

.home-value-pitch__body {
  color: var(--color-brand-orange, #ff8b00);
  max-width: 36rem;
  margin: clamp(.75rem, 2vw, 1.2rem) 0 clamp(1rem, 2.5vw, 1.6rem);
  font-size: clamp(.82rem, .85vw + .6rem, .98rem);
  font-weight: 600;
  line-height: 1.55
}

.home-value-pitch__highlight {
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--color-brand-orange, #ff8b00);
  margin: clamp(1.25rem, 3vw, 1.75rem) 0 clamp(1.75rem, 4vw, 2.75rem);
  font-size: clamp(1rem, 1.2vw + .65rem, 1.25rem);
  font-weight: 800;
  line-height: 1.25
}

.home-value-pitch__cta {
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
  background-color: var(--color-brand-orange, #ff8b00);
  margin-inline: auto;
  border-radius: .65rem;
  width: fit-content;
  max-width: 100%;
  margin-top: 0;
  padding: clamp(.65rem, 1.2vw, .85rem) clamp(1.75rem, 4vw, 2.75rem);
  font-size: clamp(.85rem, .9vw + .65rem, 1rem);
  font-weight: 800;
  text-decoration: none;
  display: block;
  box-shadow: 0 8px 24px #0000001f
}

.home-value-pitch__cta:hover {
  opacity: .94
}

.home-value-pitch__cta:focus-visible {
  outline: 3px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 3px
}

.home-value-pitch__media {
  justify-content: center;
  min-width: 0;
  display: flex
}

.home-value-section .home-value-pitch__img {
  object-fit: cover;
  aspect-ratio: 4/3;
  border-radius: clamp(1rem, 2vw, 1.75rem);
  width: 100%;
  max-width: 32rem;
  height: auto;
  box-shadow: 0 12px 40px #00000024
}

@media (max-width:1023px) {
  .home-value-section .home-value-pitch__img {
    border-radius: 0
  }
}

.home-value-advisor {
  margin-inline: auto;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2rem) clamp(1.5rem, 5vw, 3.5rem);
  width: 100%;
  max-width: 39.2rem;
  margin-top: 4rem;
  display: grid
}

.home-value-advisor__text {
  text-align: center;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  display: flex
}

.home-value-advisor__title {
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--color-brand-orange, #ff8b00);
  margin: 0;
  font-size: clamp(1.15rem, 1.8vw + .55rem, 1.65rem);
  font-weight: 800;
  line-height: 1.2
}

.home-value-advisor__body {
  color: #1a1a1a;
  margin: clamp(.85rem, 2vw, 1.25rem) 0 0;
  font-size: clamp(.9rem, 1vw + .7rem, 1.05rem);
  font-weight: 500;
  line-height: 1.55
}

.home-value-advisor__footer {
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--color-brand-orange, #ff8b00);
  margin: clamp(.85rem, 2vw, 1.25rem) 0 0;
  font-size: clamp(.85rem, 1vw + .55rem, 1rem);
  font-weight: 800
}

.home-value-advisor__wa-wrap {
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: flex
}

.home-value-advisor__wa {
  background-color: var(--color-brand-orange, #ff8b00);
  color: #fff;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  width: clamp(4.5rem, 12vw, 5.75rem);
  height: clamp(4.5rem, 12vw, 5.75rem);
  display: flex;
  box-shadow: 0 10px 28px #00000026
}

.home-value-advisor__wa:hover {
  opacity: .94
}

.home-value-advisor__wa:focus-visible {
  outline: 3px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 4px
}

.home-value-advisor__wa-icon {
  width: 52%;
  height: 52%
}

@media (min-width:961px) and (max-width:1920px) {
  .home-value-pitch__title {
    font-size: clamp(1.2rem, 1.9vw + .5rem, 2.05rem)
  }
}

@media (max-width:900px) {
  .home-value-watermarks {
    display: none
  }

  .home-value-section {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    margin-inline: 0
  }

  .home-value-pitch {
    grid-template-columns: 1fr;
    justify-items: stretch;
    row-gap: clamp(1.5rem, 4vw, 2.25rem);
    width: 100%;
    max-width: 100%
  }

  .home-value-pitch__content {
    text-align: center;
    width: 100%;
    min-width: 0;
    max-width: 100%
  }

  .home-value-pitch__body {
    max-width: none;
    margin-inline: auto
  }

  .home-value-pitch__media {
    width: calc(100% + 2 * var(--home-value-pad-x));
    max-width: none;
    margin-left: calc(-1 * var(--home-value-pad-x));
    margin-right: calc(-1 * var(--home-value-pad-x));
    box-sizing: border-box;
    margin-top: clamp(.25rem, 1.5vw, .75rem);
    display: block
  }

  .home-value-pitch__media picture {
    width: 100%;
    display: block
  }

  .home-value-section .home-value-pitch__img {
    aspect-ratio: auto;
    width: 100%;
    max-width: none;
    box-shadow: none;
    object-fit: cover;
    border-radius: 0;
    display: block
  }

  .home-value-advisor {
    grid-template-columns: 1fr;
    width: 100%;
    max-width: 100%;
    margin-top: clamp(2rem, 5vw, 3rem)
  }

  .home-value-advisor__wa-wrap {
    justify-content: center
  }
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0
}

html {
  scrollbar-width: none;
  -ms-overflow-style: none
}

html::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none
}

body {
  width: 100%;
  max-width: 100vw;
  font-family: Montserrat, system-ui, Segoe UI, Roboto, sans-serif
}

.site-footer {
  color: #111;
  background: #d9d9d9;
  width: 100%
}

.site-footer__inner {
  grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
  align-items: stretch;
  gap: 32px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 24px;
  display: grid
}

.site-footer__col {
  flex-direction: column;
  gap: 14px;
  display: flex;
  position: relative
}

.site-footer__col+.site-footer__col:before {
  content: "";
  background: #b8b8b8;
  width: 1px;
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: -16px
}

.site-footer__col:nth-child(3):before {
  content: none
}

.site-footer__col--legal {
  gap: 18px
}

.site-footer__legal {
  flex-direction: column;
  gap: 6px;
  display: flex
}

.site-footer__legalLink {
  color: #111;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none
}

.site-footer__legalLink:hover {
  color: var(--color-brand-orange, #ff8b00)
}

.site-footer__contact {
  flex-direction: column;
  gap: 10px;
  display: flex
}

.site-footer__row {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: 14px;
  line-height: 1.3;
  display: flex
}

.site-footer__icon {
  color: #111;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 2px
}

.site-footer__icon--pin {
  margin-top: 4px
}

.site-footer__link {
  color: #111;
  font-size: 14px;
  text-decoration: none
}

.site-footer__link:hover {
  color: var(--color-brand-orange, #ff8b00);
  text-underline-offset: 2px;
  text-decoration: underline
}

.site-footer__text {
  color: #111;
  max-width: 260px
}

.site-footer__nav {
  padding-top: 4px
}

.site-footer__heading {
  color: #111;
  letter-spacing: .2px;
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700
}

.site-footer__list {
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex
}

.site-footer__right {
  text-align: center;
  justify-content: center;
  align-items: center;
  gap: 12px
}

.site-footer__logo {
  width: auto;
  max-width: 100%;
  height: 56px
}

.site-footer__copyright {
  color: #111;
  margin: 0;
  font-size: 13px;
  font-weight: 500
}

.site-footer__social {
  display: none
}

.site-footer__socialLabel {
  color: #111;
  font-size: 13px;
  font-weight: 600
}

.site-footer__socialIcons {
  gap: 10px;
  display: flex
}

.site-footer__socialLink {
  color: #111;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  width: 28px;
  height: 28px;
  transition: color .2s, transform .2s;
  display: inline-flex
}

.site-footer__socialLink:hover {
  color: var(--color-brand-orange, #ff8b00);
  transform: translateY(-1px)
}

.site-footer__socialIcon {
  width: 22px;
  height: 22px
}

@media (max-width:900px) {
  .site-footer__inner {
    grid-template-rows: auto auto;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    align-items: start;
    gap: 14px 18px;
    padding: 20px 16px
  }

  .site-footer__col+.site-footer__col:before {
    display: none
  }

  .site-footer__col {
    min-width: 0
  }

  .site-footer__col--legal {
    grid-area: 1/1/span 2;
    gap: 12px
  }

  .site-footer__legalLink {
    font-size: 13px
  }

  .site-footer__row {
    gap: 8px;
    font-size: 12px;
    line-height: 1.25
  }

  .site-footer__icon {
    width: 14px;
    height: 14px
  }

  .site-footer__text {
    word-wrap: break-word;
    max-width: none
  }

  .site-footer__nav {
    display: none
  }

  .site-footer__right {
    text-align: right;
    grid-area: 1/2/span 2;
    align-items: flex-end;
    gap: 12px;
    min-width: 0;
    padding-top: 0
  }

  .site-footer__logo {
    object-fit: contain;
    width: 100%;
    max-width: 180px;
    height: auto
  }

  .site-footer__copyright {
    display: none
  }

  .site-footer__social {
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    margin-top: auto;
    display: flex
  }

  .site-footer__socialLabel {
    font-size: 12px
  }

  .site-footer__socialIcons {
    flex-wrap: nowrap;
    gap: 10px
  }

  .site-footer__socialLink {
    width: auto;
    height: auto
  }

  .site-footer__socialIcon {
    width: 22px;
    height: 22px
  }
}

@media (max-width:480px) {
  .site-footer__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 12px 14px;
    padding: 16px 12px
  }

  .site-footer__legalLink {
    font-size: 12px
  }

  .site-footer__row {
    gap: 6px;
    font-size: 11px
  }

  .site-footer__icon {
    width: 12px;
    height: 12px;
    margin-top: 1px
  }

  .site-footer__icon--pin {
    margin-top: 2px
  }

  .site-footer__link {
    word-break: break-word;
    font-size: 11px
  }

  .site-footer__logo {
    max-width: 140px
  }

  .site-footer__socialLabel {
    font-size: 11px
  }

  .site-footer__socialIcons {
    gap: 8px
  }

  .site-footer__socialIcon {
    width: 18px;
    height: 18px
  }
}

@media (max-width:360px) {
  .site-footer__logo {
    max-width: 110px
  }

  .site-footer__socialIcon {
    width: 16px;
    height: 16px
  }
}

.header {
  z-index: 999;
  box-sizing: border-box;
  width: 100%;
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
  position: absolute;
  top: 0;
  left: 0;
  right: 0
}

.navbar {
  box-sizing: border-box;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding-block: 2rem;
  padding-inline: clamp(1.5rem, 4vw + 1.5rem, 8rem);
  display: flex
}

.navbar>a {
  flex-shrink: 0;
  min-width: 0;
  line-height: 0
}

.navbar img {
  width: clamp(10.5rem, 22vw + 2rem, 19rem);
  max-width: 100%;
  height: auto
}

.login {
  flex-direction: row;
  align-items: center;
  gap: 2rem;
  display: flex
}

.login p {
  color: var(--color-white);
  margin: 0;
  font-weight: 700
}

@media (max-width:960px) {
  .navbar {
    box-sizing: border-box;
    flex-wrap: wrap;
    gap: clamp(.75rem, 3vw, 2rem);
    max-width: 100%;
    padding-block: clamp(1rem, 2.5vw, 2rem);
    padding-inline: clamp(1rem, 5vw, 8rem)
  }

  .navbar img {
    width: clamp(9rem, 28vw, 19rem);
    max-width: 100%
  }

  .login {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: clamp(.5rem, 2vw, 2rem);
    min-width: 0
  }

  .login p {
    display: none
  }
}

@media (max-width:420px) {
  .login {
    flex-direction: column;
    align-items: flex-end
  }
}

.anchor-button {
  background-color: var(--color-brand-orange);
  color: #fff;
  white-space: nowrap;
  cursor: pointer;
  will-change: transform;
  border: none;
  border-radius: 2rem;
  justify-content: center;
  align-items: center;
  padding: .4rem;
  padding-inline: 1.5rem;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color .18s, box-shadow .22s, transform .18s, filter .18s;
  display: inline-flex;
  box-shadow: 0 6px 16px -8px #ff8b008c
}

.anchor-button:hover {
  filter: brightness(1.04);
  background-color: #ff7a00;
  transform: translateY(-1px);
  box-shadow: 0 12px 22px -8px #ff8b00a6
}

.anchor-button:active {
  background-color: #e87a00;
  transform: translateY(0);
  box-shadow: 0 4px 10px -6px #ff8b008c
}

.anchor-button:focus-visible {
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--color-brand-orange, #ff8b00), 0 12px 22px -8px #ff8b00a6;
  outline: 3px solid #fff
}

.anchor-button:disabled,
.anchor-button[aria-disabled=true] {
  opacity: .6;
  cursor: not-allowed;
  filter: none;
  transform: none
}

@media (max-width:960px) {
  .anchor-button {
    font-size: .8rem
  }
}

@media (prefers-reduced-motion:reduce) {
  .anchor-button {
    transition: background-color .12s linear
  }

  .anchor-button:hover,
  .anchor-button:active {
    transform: none
  }
}

.brand-header {
  text-align: center;
  flex-direction: column;
  align-items: center;
  gap: .35rem;
  margin-bottom: 1.5rem;
  display: flex
}

.brand-header__logo {
  -webkit-user-select: none;
  user-select: none;
  pointer-events: none;
  width: clamp(180px, 60%, 240px);
  height: auto
}

.brand-header__tagline {
  color: var(--color-brand-cyan, #00b4d8);
  letter-spacing: .18em;
  font-size: .78rem;
  font-weight: 600
}

.ui-button {
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  white-space: nowrap;
  border: none;
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  font-family: inherit;
  font-weight: 800;
  text-decoration: none;
  transition: background-color .15s, color .15s, box-shadow .15s, transform .15s, opacity .15s;
  display: inline-flex
}

.ui-button:focus-visible {
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--color-brand-orange, #ff8b00);
  outline: 3px solid #fff
}

.ui-button:disabled,
.ui-button.is-loading {
  cursor: not-allowed;
  opacity: .65
}

.ui-button:not(:disabled):active {
  transform: translateY(1px)
}

.ui-button--sm {
  padding: .5rem 1.25rem;
  font-size: .78rem
}

.ui-button--md {
  padding: .7rem 1.75rem;
  font-size: .9rem
}

.ui-button--lg {
  padding: .9rem 2.25rem;
  font-size: 1.05rem
}

.ui-button--full {
  width: 100%
}

.ui-button--primary {
  background-color: var(--color-brand-orange, #ff8b00);
  color: #fff;
  box-shadow: 0 8px 22px -8px #ff8b008c
}

.ui-button--primary:hover:not(:disabled) {
  background-color: #ff7a00
}

.ui-button--secondary {
  background-color: var(--color-brand-cyan, #00b4d8);
  color: #fff;
  box-shadow: 0 8px 22px -8px #00b4d88c
}

.ui-button--secondary:hover:not(:disabled) {
  background-color: #009ec0
}

.ui-button--ghost {
  color: var(--color-brand-orange, #ff8b00);
  background-color: #0000;
  box-shadow: inset 0 0 0 1.5px
}

.ui-button--ghost:hover:not(:disabled) {
  background-color: #ff8b0014
}

.ui-button__spinner {
  border: 2px solid;
  border-right-color: #0000;
  border-radius: 999px;
  width: 1em;
  height: 1em;
  animation: .7s linear infinite ui-button-spin
}

.ui-button.is-loading .ui-button__label {
  opacity: .7
}

@keyframes ui-button-spin {
  to {
    transform: rotate(1turn)
  }
}

@media (prefers-reduced-motion:reduce) {
  .ui-button {
    transition: none
  }

  .ui-button__spinner {
    animation: none
  }
}

.checkbox {
  flex-direction: column;
  gap: .35rem;
  width: 100%;
  display: flex
}

.checkbox__row {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .65rem;
  display: grid
}

.checkbox__input {
  clip: rect(0, 0, 0, 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

.checkbox__indicator {
  border: 1.5px solid var(--color-brand-cyan, #00b4d8);
  color: #0000;
  background-color: #fff;
  border-radius: .3rem;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: .1rem;
  transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
  display: inline-flex
}

.checkbox__indicator>svg {
  opacity: 0;
  transition: opacity .12s, transform .12s;
  transform: scale(.7)
}

.checkbox__row:hover .checkbox__indicator {
  border-color: #009ec0
}

.checkbox__input:focus-visible+.checkbox__indicator {
  border-color: var(--color-brand-orange, #ff8b00);
  box-shadow: 0 0 0 4px #ff8b002e
}

.checkbox__input:checked+.checkbox__indicator {
  background-color: var(--color-brand-orange, #ff8b00);
  border-color: var(--color-brand-orange, #ff8b00);
  color: #fff
}

.checkbox__input:checked+.checkbox__indicator>svg {
  opacity: 1;
  transform: scale(1)
}

.checkbox__input:disabled+.checkbox__indicator {
  cursor: not-allowed;
  background-color: #f7fafc;
  border-color: #e2e8f0
}

.checkbox__label {
  color: #2d3748;
  font-size: .9rem;
  line-height: 1.35
}

.checkbox__label a {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 600;
  text-decoration: none
}

.checkbox__label a:hover {
  text-decoration: underline
}

.checkbox__helper {
  color: #c53030;
  padding-left: 1.8rem;
  font-size: .8rem
}

.checkbox--error .checkbox__indicator {
  border-color: #e53e3e
}

.file-drop-field {
  flex-direction: column;
  gap: .4rem;
  width: 100%;
  display: flex
}

.file-drop-field__card {
  border: 3px solid var(--color-brand-cyan, #00b4d8);
  cursor: pointer;
  background-color: #fff;
  border-radius: .85rem;
  outline: none;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .85rem;
  padding: 2rem 1.8rem;
  transition: border-color .15s, box-shadow .15s, background-color .15s;
  display: grid;
  position: relative
}

.file-drop-field__card:hover {
  background-color: #fafdfe;
  border-color: #009ec0
}

.file-drop-field__card:focus-visible,
.file-drop-field__card.is-dragging {
  border-color: var(--color-brand-orange, #ff8b00);
  background-color: #fffaf2;
  box-shadow: 0 0 0 4px #ff8b002e
}

.file-drop-field__card.has-file {
  background-color: #f3fff6;
  border-style: solid;
  border-color: #35ff5f
}

.file-drop-field__card.has-file .file-drop-field__icon {
  color: #35ff5f
}

.file-drop-field__card.has-error {
  border-color: #e53e3e
}

.file-drop-field__input {
  clip: rect(0, 0, 0, 0);
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

.file-drop-field__icon {
  width: 2.4rem;
  height: 2.8rem;
  color: var(--color-brand-cyan, #00b4d8);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: inline-flex
}

.file-drop-field__icon>svg,
.file-drop-field__icon>img {
  object-fit: contain;
  width: 100%;
  height: 100%;
  display: block
}

.file-drop-field__text {
  flex-direction: column;
  gap: .1rem;
  min-width: 0;
  display: flex
}

.file-drop-field__label {
  color: #4a5568;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.3
}

.file-drop-field__filename {
  color: #1a202c;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .9rem;
  font-weight: 600;
  overflow: hidden
}

.file-drop-field__filesize {
  color: #4a5568;
  font-size: .75rem
}

.file-drop-field__remove {
  color: #4a5568;
  cursor: pointer;
  background: 0 0;
  border: none;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  width: 1.8rem;
  height: 1.8rem;
  transition: background-color .15s, color .15s;
  display: inline-flex
}

.file-drop-field__remove:hover {
  color: #1a202c;
  background-color: #0000000f
}

.file-drop-field__helper {
  color: #4a5568;
  font-size: .8rem
}

.file-drop-field__card.has-error~.file-drop-field__helper {
  color: #c53030
}

.icon-text-pill {
  color: #fff;
  box-sizing: border-box;
  background: 0 0;
  border: 5px solid #fff;
  border-radius: 1.5rem;
  align-items: center;
  gap: 2rem;
  max-width: 100%;
  padding: 1rem;
  display: flex
}

button.icon-text-pill {
  cursor: pointer;
  width: 100%;
  text-align: inherit;
  font: inherit
}

button.icon-text-pill:hover,
button.icon-text-pill:focus-visible {
  background: #ffffff1a
}

button.icon-text-pill:focus-visible {
  outline-offset: 2px;
  outline: 2px solid #fff
}

.icon-text-pill__icon {
  color: #fff;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  margin-block: .35rem;
  display: flex
}

.icon-text-pill__icon svg,
.icon-text-pill__icon img {
  object-fit: contain;
  width: 4rem;
  height: 4rem;
  display: block
}

.icon-text-pill__text {
  text-align: right;
  overflow-wrap: anywhere;
  word-break: break-word;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  font-size: 1.2rem;
  font-weight: 550;
  line-height: 1.45
}

@media (max-width:960px) {
  .icon-text-pill {
    border-width: clamp(2px, .4vw, 5px);
    border-radius: clamp(.85rem, 2vw, 1.5rem);
    gap: clamp(.65rem, 2.5vw, 2rem);
    min-width: 0;
    padding: clamp(.5rem, 1.8vw, 1rem) clamp(.65rem, 2vw, 1rem)
  }

  .icon-text-pill__icon {
    margin-block: clamp(.35rem, 2vw, 2rem)
  }

  .icon-text-pill__icon svg,
  .icon-text-pill__icon img {
    width: clamp(2rem, 5vw + .5rem, 4rem);
    height: clamp(2rem, 5vw + .5rem, 4rem)
  }

  .icon-text-pill__text {
    text-align: left;
    flex: auto;
    min-width: 0;
    font-size: clamp(.8rem, 1.1vw + .65rem, 1.2rem)
  }
}

@media (max-width:640px) {
  .icon-text-pill {
    gap: .65rem;
    padding: .6rem .75rem
  }

  .icon-text-pill__icon {
    margin-block: .2rem
  }

  .icon-text-pill__icon svg,
  .icon-text-pill__icon img {
    width: clamp(1.65rem, 7vw, 2.25rem);
    height: clamp(1.65rem, 7vw, 2.25rem)
  }

  .icon-text-pill__text {
    font-size: clamp(.82rem, 2.1vw + .45rem, .98rem);
    line-height: 1.3
  }
}

@media (max-width:420px) {
  .icon-text-pill {
    border-width: 2px;
    border-radius: .75rem;
    padding: .5rem .65rem
  }

  .icon-text-pill__text {
    font-size: .82rem
  }
}

.modal__backdrop {
  z-index: 10000;
  -webkit-backdrop-filter: blur(4px);
  background: #0d1b2a8c;
  place-items: center;
  padding: clamp(.75rem, 3vw, 1.5rem);
  animation: .18s ease-out both modal-fade-in;
  display: grid;
  position: fixed;
  inset: 0
}

.modal__card {
  background: #fff;
  border-radius: 1.75rem;
  outline: none;
  width: 100%;
  max-height: calc(100dvh - 2rem);
  padding: clamp(1.5rem, 4vw, 2.25rem);
  animation: .22s cubic-bezier(.22, 1, .36, 1) both modal-pop-in;
  position: relative;
  overflow: clip auto;
  box-shadow: 0 30px 80px -20px #00000059
}

.modal__card--sm {
  max-width: 360px
}

.modal__card--md {
  max-width: 440px
}

.modal__card--lg {
  max-width: 640px
}

.modal__card--xl {
  max-width: 880px
}

.modal__close {
  color: #4a5568;
  cursor: pointer;
  background: 0 0;
  border: none;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  width: 2.25rem;
  height: 2.25rem;
  transition: background-color .15s, color .15s;
  display: inline-flex;
  position: absolute;
  top: .75rem;
  right: .75rem
}

.modal__close:hover {
  color: #1a202c;
  background-color: #0000000f
}

.modal__close:focus-visible {
  outline: 2px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 2px
}

@keyframes modal-fade-in {
  0% {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes modal-pop-in {
  0% {
    opacity: 0;
    transform: translateY(8px)scale(.97)
  }

  to {
    opacity: 1;
    transform: translateY(0)scale(1)
  }
}

@media (prefers-reduced-motion:reduce) {

  .modal__backdrop,
  .modal__card {
    animation: none
  }
}

@media (max-width:480px) {
  .modal__card {
    border-radius: 1.5rem;
    padding: 1.5rem 1.25rem
  }
}

@media (max-width:767px) {
  .modal__backdrop.modal__backdrop--mobile-full {
    -webkit-backdrop-filter: none;
    background: #fff;
    flex-direction: column;
    justify-content: stretch;
    align-items: stretch;
    padding: 0;
    animation-duration: .12s;
    display: flex
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__card {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    max-height: none;
    box-shadow: none;
    padding-top: max(1rem, calc(env(safe-area-inset-top, 0px) + 1.75rem));
    padding-bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
    border-radius: 0;
    flex: auto;
    margin: 0;
    padding-inline: clamp(1rem, 5vw, 1.35rem);
    animation: .2s cubic-bezier(.22, 1, .36, 1) both modal-fullscreen-in
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__close {
    top: max(.65rem, env(safe-area-inset-top, 0px));
    right: max(.65rem, env(safe-area-inset-right, 0px))
  }

  .modal__backdrop.modal__backdrop--mobile-full .modal__card.modal__card--login .brand-header {
    margin-bottom: 12rem
  }
}

@keyframes modal-fullscreen-in {
  0% {
    opacity: 0;
    transform: translateY(6px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

.scroll-reveal {
  --sr-distance: 32px;
  --sr-duration: .7s;
  --sr-delay: 0s;
  --sr-easing: cubic-bezier(.22, 1, .36, 1);
  --sr-scale: 1;
  --sr-translate-x: 0;
  --sr-translate-y: var(--sr-distance);
  opacity: 0;
  transform: translate3d(var(--sr-translate-x), var(--sr-translate-y), 0) scale(var(--sr-scale));
  transition: opacity var(--sr-duration) var(--sr-easing) var(--sr-delay), transform var(--sr-duration) var(--sr-easing) var(--sr-delay), filter var(--sr-duration) var(--sr-easing) var(--sr-delay);
  will-change: opacity, transform
}

.scroll-reveal--fade {
  --sr-translate-y: 0;
  --sr-translate-x: 0
}

.scroll-reveal--up {
  --sr-translate-y: var(--sr-distance);
  --sr-translate-x: 0
}

.scroll-reveal--down {
  --sr-translate-y: calc(var(--sr-distance) * -1);
  --sr-translate-x: 0
}

.scroll-reveal--left {
  --sr-translate-x: var(--sr-distance);
  --sr-translate-y: 0
}

.scroll-reveal--right {
  --sr-translate-x: calc(var(--sr-distance) * -1);
  --sr-translate-y: 0
}

.scroll-reveal--zoom {
  --sr-scale: .92;
  --sr-translate-y: 0;
  --sr-translate-x: 0
}

.scroll-reveal--blur {
  filter: blur(8px)
}

.scroll-reveal.is-visible {
  opacity: 1;
  filter: blur();
  transform: translate(0)scale(1)
}

@media (prefers-reduced-motion:reduce) {
  .scroll-reveal {
    opacity: 1;
    filter: none;
    transition: none;
    transform: none
  }
}

.scroll-stack {
  --stack-pin-top: 0px;
  width: 100%;
  position: relative
}

.scroll-stack__panel {
  width: 100%;
  position: relative;
  overflow-x: clip
}

.scroll-stack__inner {
  background: var(--stack-backdrop, transparent);
  width: 100%;
  position: relative
}

.scroll-stack__inner.is-stack-fixed {
  top: var(--stack-pin-top);
  position: fixed;
  left: 0;
  right: 0;
  overflow-x: clip
}

.scroll-stack__content {
  --stack-scale: 1;
  --stack-blur: 0px;
  --stack-opacity: 1;
  --stack-progress: 0;
  transform-origin: 50% 0;
  width: 100%;
  transform: scale(var(--stack-scale));
  filter: blur(var(--stack-blur));
  opacity: var(--stack-opacity);
  will-change: transform, opacity, filter;
  position: relative
}

.scroll-stack__panel--last .scroll-stack__content {
  --stack-scale: 1 !important;
  --stack-blur: 0px !important;
  --stack-opacity: 1 !important
}

.scroll-stack__overlay {
  height: var(--stack-content-height, 100%);
  z-index: 5;
  pointer-events: none;
  position: absolute;
  top: 0;
  left: 0;
  right: 0
}

.scroll-stack__overlay>* {
  pointer-events: auto
}

.scroll-stack__panel+.scroll-stack__panel .scroll-stack__content:before {
  content: "";
  pointer-events: none;
  z-index: 2;
  background: linear-gradient(#00000024, #0000);
  height: 18px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0
}

@media (prefers-reduced-motion:reduce) {
  .scroll-stack__content {
    filter: none;
    opacity: 1;
    transform: none;
    --stack-scale: 1 !important;
    --stack-blur: 0px !important;
    --stack-opacity: 1 !important
  }

  .scroll-stack__inner.is-stack-fixed {
    position: relative;
    top: auto
  }
}

.select {
  flex-direction: column;
  gap: .4rem;
  width: 100%;
  display: flex
}

.select__label {
  color: #1a202c;
  font-size: .95rem;
  font-weight: 500;
  transition: color .15s, font-weight .15s
}

.select:focus-within .select__label {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 700
}

.select--error.select:focus-within .select__label,
.select--error .select__label {
  color: #c53030
}

.select__control {
  align-items: center;
  display: flex;
  position: relative
}

.select__input {
  width: 100%;
  font: inherit;
  color: #1a202c;
  border: 2px solid var(--color-brand-cyan, #00b4d8);
  appearance: none;
  cursor: pointer;
  background-color: #fff;
  border-radius: .85rem;
  outline: none;
  padding: .85rem 2.5rem .85rem 1rem;
  font-size: 1rem;
  transition: border-color .15s, box-shadow .15s
}

.select__input:hover {
  border-color: #009ec0
}

.select__input:focus {
  border-color: var(--color-brand-orange, #ff8b00);
  box-shadow: 0 0 0 4px #ff8b002e
}

.select__input:disabled {
  color: #718096;
  cursor: not-allowed;
  background-color: #f7fafc
}

.select__input:invalid,
.select__input[value=""] {
  color: #a0aec0
}

.select__chevron {
  pointer-events: none;
  color: var(--color-brand-cyan, #00b4d8);
  align-items: center;
  display: inline-flex;
  position: absolute;
  right: 1rem
}

.select:focus-within .select__chevron {
  color: var(--color-brand-orange, #ff8b00)
}

.select__helper {
  color: #4a5568;
  font-size: .8rem
}

.select--error .select__input {
  border-color: #e53e3e
}

.select--error .select__input:focus {
  box-shadow: 0 0 0 4px #e53e3e2e
}

.select--error .select__helper {
  color: #c53030
}

.text-field {
  flex-direction: column;
  gap: .4rem;
  width: 100%;
  display: flex
}

.text-field__label {
  color: #1a202c;
  font-size: .95rem;
  font-weight: 500;
  transition: color .15s, font-weight .15s
}

.text-field:focus-within .text-field__label {
  color: var(--color-brand-orange, #ff8b00);
  font-weight: 700
}

.text-field--error.text-field:focus-within .text-field__label,
.text-field--error .text-field__label {
  color: #c53030
}

.text-field__control {
  align-items: center;
  display: flex;
  position: relative
}

.text-field__input {
  width: 100%;
  font: inherit;
  color: #1a202c;
  border: 2px solid var(--color-brand-cyan, #00b4d8);
  background-color: #fff;
  border-radius: .85rem;
  outline: none;
  padding: .85rem 1rem;
  font-size: 1rem;
  transition: border-color .15s, box-shadow .15s
}

.text-field__input::placeholder {
  color: #a0aec0
}

.text-field__input:hover {
  border-color: #009ec0
}

.text-field__input:focus {
  border-color: var(--color-brand-orange, #ff8b00);
  box-shadow: 0 0 0 4px #ff8b002e
}

.text-field__input:disabled {
  color: #718096;
  cursor: not-allowed;
  background-color: #f7fafc
}

.text-field__adornment {
  color: #4a5568;
  align-items: center;
  display: inline-flex;
  position: absolute;
  right: .75rem
}

.text-field__input:has(+.text-field__adornment),
.text-field__control:has(.text-field__adornment) .text-field__input {
  padding-right: 2.75rem
}

.text-field__helper {
  color: #4a5568;
  font-size: .8rem
}

.text-field--error .text-field__input {
  border-color: #e53e3e
}

.text-field--error .text-field__input:focus {
  box-shadow: 0 0 0 4px #e53e3e2e
}

.text-field--error .text-field__helper {
  color: #c53030
}

.user-navbar {
  box-sizing: border-box;
  background-color: #fff;
  width: 100%
}

.user-navbar__inner {
  box-sizing: border-box;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
  width: 100%;
  max-width: 96rem;
  margin-inline: auto;
  padding-block: clamp(.65rem, 1vw, 1rem);
  padding-inline: clamp(1rem, 3vw, 3rem);
  display: grid
}

.user-navbar__brand {
  flex-shrink: 0;
  align-items: center;
  line-height: 0;
  text-decoration: none;
  display: inline-flex
}

.user-navbar__logo-picture {
  line-height: 0;
  display: block
}

.user-navbar__logo {
  -webkit-user-select: none;
  user-select: none;
  width: clamp(9rem, 14vw, 14rem);
  height: auto;
  display: block
}

.user-navbar__search {
  justify-self: center;
  align-items: center;
  width: 100%;
  max-width: 28rem;
  display: flex;
  position: relative
}

.user-navbar__search-input {
  border: 2px solid var(--color-brand-orange, #ff8b00);
  color: #1a202c;
  background-color: #fff;
  border-radius: 9999px;
  outline: none;
  width: 100%;
  height: 2.5rem;
  padding: 0 2.75rem 0 1.25rem;
  font-family: inherit;
  font-size: .95rem;
  transition: box-shadow .15s, border-color .15s
}

.user-navbar__search-input::placeholder {
  color: #9aa3b2;
  opacity: 1
}

.user-navbar__search-input:focus-visible {
  border-color: var(--color-brand-orange, #ff8b00);
  box-shadow: 0 0 0 3px #ff8b002e
}

.user-navbar__search-input::-webkit-search-decoration {
  -webkit-appearance: none
}

.user-navbar__search-input::-webkit-search-cancel-button {
  -webkit-appearance: none
}

.user-navbar__search-input::-webkit-search-results-button {
  -webkit-appearance: none
}

.user-navbar__search-input::-webkit-search-results-decoration {
  -webkit-appearance: none
}

.user-navbar__search-button {
  width: 1.85rem;
  height: 1.85rem;
  color: var(--color-brand-orange, #ff8b00);
  cursor: pointer;
  background: 0 0;
  border: none;
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  transition: background-color .15s;
  display: inline-flex;
  position: absolute;
  top: 50%;
  right: .4rem;
  transform: translateY(-50%)
}

.user-navbar__search-button:hover {
  background-color: #ff8b001f
}

.user-navbar__search-button:focus-visible {
  outline: 2px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 2px
}

.user-navbar__links {
  align-items: center;
  gap: clamp(1rem, 2vw, 2.5rem);
  display: flex
}

.user-navbar__link {
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #1a202c;
  padding-block: .25rem;
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
  transition: color .15s;
  position: relative
}

.user-navbar__link:hover {
  color: var(--color-brand-orange, #ff8b00)
}

.user-navbar__link:focus-visible {
  outline: 2px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 3px;
  border-radius: .25rem
}

.user-navbar__user {
  color: inherit;
  border-radius: 9999px;
  align-items: center;
  gap: .85rem;
  padding: .25rem .4rem;
  text-decoration: none;
  transition: background-color .15s;
  display: inline-flex
}

.user-navbar__user:hover {
  background-color: #0000000a
}

.user-navbar__user:focus-visible {
  outline: 2px solid var(--color-brand-orange, #ff8b00);
  outline-offset: 2px
}

.user-navbar__user-name {
  color: #1a202c;
  white-space: nowrap;
  min-width: 0;
  font-size: .95rem;
  font-weight: 700
}

.user-navbar__avatar {
  background-color: #f1f5f9;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: 2.4rem;
  height: 2.4rem;
  display: inline-flex;
  overflow: hidden
}

.user-navbar__avatar>img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block
}

.user-navbar .sr-only {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden
}

@media (max-width:960px) {
  .user-navbar__inner {
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "brand.user" "search search search";
    row-gap: .65rem
  }

  .user-navbar__brand {
    grid-area: brand
  }

  .user-navbar__user {
    grid-area: user
  }

  .user-navbar__search {
    grid-area: search;
    justify-self: stretch;
    max-width: none
  }

  .user-navbar__links {
    display: none
  }
}

@media (max-width:767px) {
  .user-navbar__inner {
    grid-template-areas: "brand.user";
    column-gap: .5rem;
    padding-inline: clamp(.65rem, 4vw, 1rem)
  }

  .user-navbar__brand {
    min-width: 0
  }

  .user-navbar__logo-picture {
    max-width: 100%
  }

  .user-navbar__logo {
    width: clamp(1.875rem, 13vw + .625rem, 2.875rem);
    max-width: 100%;
    height: auto
  }

  .user-navbar__search {
    display: none
  }

  .user-navbar__user {
    gap: .5rem;
    min-width: 0;
    max-width: min(100%, 58vw);
    padding-inline: .15rem 0
  }

  .user-navbar__user-name {
    text-overflow: ellipsis;
    max-width: 100%;
    overflow: hidden
  }
}

@property --tw-rotate-x {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-y {
  syntax: "*";
  inherits: false
}

@property --tw-rotate-z {
  syntax: "*";
  inherits: false
}

@property --tw-skew-x {
  syntax: "*";
  inherits: false
}

@property --tw-skew-y {
  syntax: "*";
  inherits: false
}

@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid
}

@property --tw-font-weight {
  syntax: "*";
  inherits: false
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

/* Ajustes integración vacantes Google */
.vacancy-detail__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 1rem 0
}

.vacancy-detail__tab {
  background: #009cdc;
  color: #fff;
  border: 0;
  border-radius: 999px;
  padding: .55rem .95rem;
  font-weight: 700;
  cursor: pointer
}

.vacancy-detail__tab--active {
  background: #0d1b2a
}

.vacancy-detail__sections {
  margin-top: .75rem
}

.vacancy-detail__section[hidden] {
  display: none !important
}

.vacancy-detail__route-image {
  width: 100%;
  max-height: 360px;
  object-fit: contain;
  border-radius: 1rem;
  background: #f3f4f6
}

.vacancy-detail__benefits {
  display: grid;
  gap: .6rem
}

.vacancy-detail__benefits li {
  border: 1px solid #e5e7eb;
  border-radius: .75rem;
  padding: .75rem;
  background: #fff
}

.vacancy-detail__benefits span {
  display: block;
  color: #6b7280;
  font-size: .9rem
}

.map-bubble-image-wrap-custom {
  width: 100%;
  max-height: 120px;
  overflow: hidden;
  border-radius: 12px 12px 0 0;
  background: #f3f4f6
}

.map-bubble-image-custom {
  width: 100%;
  height: 120px;
  object-fit: cover
}

.map-bubble-card-custom {
  max-width: 230px
}

.vacancy-card__distance {
  font-weight: 700;
  color: #009cdc
}

/* Ajustes vacantes: ofrecimientos agrupados y scroll independiente del detalle */
.candidate-profile__board {
  align-items: stretch;
}

.candidate-profile__board-detail {
  max-height: calc(100vh - 120px);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  position: sticky;
  top: 96px;
}

.candidate-profile__detail-slot,
.vacancy-detail {
  min-height: 0;
}

.vacancy-detail__benefit-groups {
  display: grid;
  gap: 1rem;
}

.vacancy-detail__benefit-group {
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  background: #ffffff;
  padding: .85rem;
}

.vacancy-detail__benefit-group-head {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .65rem;
}

.vacancy-detail__benefit-group-head h5 {
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  color: #0d1b2a;
}

.vacancy-detail__benefit-icon {
  width: 2.35rem;
  height: 2.35rem;
  object-fit: contain;
  flex: 0 0 auto;
}

.vacancy-detail__benefit-icon--fallback {
  background: #009cdc;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
}

.vacancy-detail__benefit-group .vacancy-detail__benefits {
  margin: 0;
}

.vacancy-detail__benefit-group .vacancy-detail__benefits li {
  border: 0;
  border-top: 1px solid #eef2f7;
  border-radius: 0;
  padding: .65rem 0 0;
  margin-top: .65rem;
}

.vacancy-detail__benefit-group .vacancy-detail__benefits li:first-child {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}

@media (max-width: 960px) {
  .candidate-profile__board-detail {
    position: relative;
    top: auto;
    max-height: none;
    overflow-y: visible;
  }
}

/* InfoBubble del mapa tomado del sistema base */
.map-bubble-card-custom {
  position: relative;
  width: 280px;
  background: #f2f2f2;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .18)
}

.map-bubble-image-wrap-custom {
  width: 100%;
  height: 120px;
  overflow: hidden
}

.map-bubble-image-custom {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.map-bubble-body-custom {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px
}

.map-bubble-title-custom {
  font-size: 14px;
  font-weight: 800;
  color: #111;
  text-transform: uppercase;
  line-height: 1.2
}

.map-bubble-company-custom {
  font-size: 13px;
  font-weight: 700;
  color: #333;
  text-transform: uppercase
}

.map-bubble-btn-custom {
  margin-top: 8px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 8px 14px;
  background: #0d4e96;
  color: #fff !important;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none !important
}

.map-bubble-close-custom {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 26px;
  height: 26px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, .9);
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  z-index: 10
}

@media (max-width:1023px) {
  .candidate-profile__sheet-lock {
    overflow: hidden !important
  }
}

/* Bottom sheet responsive: restaurado del front nuevo */
@media (max-width:1023px) {
  .candidate-profile__board-detail:not(.candidate-profile__board-detail--sheet-open):has(.vacancy-detail__placeholder) {
    display: none;
  }

  .candidate-profile__board-detail.candidate-profile__board-detail--sheet-open {
    z-index: 1100;
    -webkit-overflow-scrolling: touch;
    width: 100%;
    max-width: 100%;
    height: 92svh;
    max-height: 92svh;
    padding-bottom: env(safe-area-inset-bottom, 0);
    background: #fff;
    border-radius: 1.25rem 1.25rem 0 0;
    margin: 0;
    animation: .28s cubic-bezier(.22, 1, .36, 1) both candidate-sheet-slide-up;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    top: auto;
    overflow: hidden auto;
    box-shadow: 0 -12px 32px #00000038;
  }

  .candidate-profile__sheet-backdrop {
    cursor: pointer;
    z-index: 1099;
    background: #0f172a80;
    border: 0;
    margin: 0;
    padding: 0;
    animation: .22s ease-out both candidate-sheet-fade-in;
    position: fixed;
    inset: 0;
  }

  .candidate-profile__sheet-close {
    color: #1f2937;
    cursor: pointer;
    z-index: 2;
    -webkit-tap-highlight-color: transparent;
    background: #0f172a14;
    border: 0;
    border-radius: 50%;
    justify-content: center;
    align-items: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: -1.5rem;
    margin-left: auto;
    margin-right: .75rem;
    font-size: 1.4rem;
    line-height: 1;
    display: inline-flex;
    position: sticky;
    top: .6rem;
  }

  .candidate-profile__sheet-close:hover,
  .candidate-profile__sheet-close:focus-visible {
    background: #0f172a29;
    outline: none;
  }
}

@keyframes candidate-sheet-slide-up {
  0% {
    transform: translateY(100%)
  }

  to {
    transform: translateY(0)
  }
}

@keyframes candidate-sheet-fade-in {
  0% {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@media (prefers-reduced-motion:reduce) {

  .candidate-profile__board-detail--sheet-open,
  .candidate-profile__sheet-backdrop {
    animation: none !important
  }
}


/* Registro de vacante / reclutador */
.modal-registro-vacante__card {
  width: min(920px, calc(100vw - 24px));
  max-height: calc(100vh - 32px);
  overflow: hidden;
  padding: 0;
  border-radius: 28px;
  background: #fff;
}

.modal-registro-vacante {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 32px);
}

.modal-registro-vacante__header {
  padding: 18px 56px 12px;
  text-align: center;
  background: #f7f8fb;
  border-bottom: 1px solid #edf0f5;
}

.modal-registro-vacante__logo {
  height: 54px;
  width: auto;
  object-fit: contain;
  margin: auto;
}

.modal-registro-vacante__body {
  overflow: auto;
  padding: 22px 26px 10px;
}

.modal-registro-vacante__intro {
  text-align: center;
  margin-bottom: 18px
}

.titulo-naranja {
  color: #f28b00;
  font-weight: 800
}

.mb-0 {
  margin-bottom: 0
}

.mb-1 {
  margin-bottom: .25rem
}

.mb-2 {
  margin-bottom: .5rem
}

.mb-3 {
  margin-bottom: 1rem
}

.mt-2 {
  margin-top: .5rem
}

.mt-3 {
  margin-top: 1rem
}

.mt-4 {
  margin-top: 1.5rem
}

.text-center {
  text-align: center
}

.w-100 {
  width: 100%
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 12px
}

.form-col-12 {
  grid-column: span 12
}

.form-col-6 {
  grid-column: span 6
}

@media(max-width:720px) {
  .form-col-6 {
    grid-column: span 12
  }

  .modal-registro-vacante__body {
    padding: 18px 16px
  }

  .modal-registro-vacante__card {
    border-radius: 22px
  }
}

.input-floating {
  position: relative
}

.input-floating .form-control,
.input-floating .form-select {
  width: 100%;
  height: 54px;
  border-radius: 16px;
  border: 1px solid #d8e0ea;
  background: #fff;
  padding: 19px 14px 7px;
  font: inherit;
  outline: none
}

.input-floating .form-control:focus,
.input-floating .form-select:focus {
  border-color: #009cdc;
  box-shadow: 0 0 0 3px rgba(0, 156, 220, .14)
}

.input-floating label {
  position: absolute;
  left: 14px;
  top: 17px;
  color: #718096;
  font-size: 14px;
  pointer-events: none;
  transition: .15s ease;
  background: #fff;
  padding: 0 4px
}

.input-floating .form-control:focus+label,
.input-floating .form-control:not(:placeholder-shown)+label,
.input-floating.select-active label {
  top: 5px;
  font-size: 11px;
  color: #009cdc;
  font-weight: 700
}

.input-floating .form-select+label {
  top: 5px;
  font-size: 11px;
  color: #009cdc;
  font-weight: 700
}

.vacante-option-wrapper {
  border: 1px solid #e7edf5;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
  overflow: hidden;
  margin-bottom: 14px
}

.vacante-option-btn {
  border: 0;
  background: linear-gradient(135deg, #f7fbff, #eef8ff);
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  cursor: pointer
}

.vacante-option-title {
  font-weight: 800;
  color: #17324d
}

.vacante-option-subtitle {
  font-size: 13px;
  color: #64748b;
  margin-top: 4px
}

.vacante-option-icon {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #009cdc;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 22px;
  flex: 0 0 auto
}

.vacante-option-panel {
  padding: 18px 20px 22px;
  border-top: 1px solid #e7edf5
}

.btn-naranja {
  border: 0;
  border-radius: 999px;
  background: #f28b00;
  color: #fff;
  font-weight: 800;
  padding: 12px 22px;
  box-shadow: 0 10px 24px rgba(242, 139, 0, .28);
  cursor: pointer
}

.btn-naranja:hover {
  filter: brightness(.98);
  transform: translateY(-1px)
}

.btn-naranja:disabled {
  opacity: .65;
  cursor: not-allowed;
  transform: none
}

.upload-dropzone {
  border: 2px dashed #009cdc;
  border-radius: 20px;
  padding: 18px;
  background: #f5fbff;
  cursor: pointer;
  transition: .15s ease
}

.upload-dropzone:hover,
.upload-dropzone.dragover {
  background: #eaf7ff;
  border-color: #007bb0
}

.upload-input-hidden {
  display: none
}

.upload-dropzone-inner {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: center;
  text-align: center
}

.upload-dropzone-icon {
  width: 42px;
  height: 42px;
  object-fit: contain
}

.upload-dropzone-text {
  font-weight: 700;
  color: #17324d
}

.upload-file-list {
  font-size: 13px;
  color: #475569
}

.upload-file-item {
  border-radius: 12px;
  background: #f1f5f9;
  padding: 10px 12px;
  margin-top: 8px
}

.upload-preview-mini {
  display: block;
  max-width: 110px;
  max-height: 70px;
  border-radius: 12px;
  margin-top: 8px;
  object-fit: contain;
  border: 1px solid #e2e8f0
}

.modal-registro-vacante__map {
  width: 100%;
  height: 320px;
  border-radius: 20px;
  overflow: hidden;
  border: 2px solid #009cdc;
  background: #eef5f8
}

.modal-registro-vacante__map-label {
  display: block;
  margin-bottom: 8px;
  font-weight: 800;
  color: #17324d
}

.modal-registro-vacante__help {
  display: block;
  margin-top: 8px;
  color: #64748b
}

.texto-ayuda-flash {
  color: #64748b;
  font-size: 13px
}

.modal-registro-vacante__footer {
  display: flex;
  justify-content: center;
  padding: 14px 20px 20px;
  border-top: 1px solid #edf0f5;
  background: #fff
}

/* Salud - solicitud de empleo */
.candidate-job-application__fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  grid-column: 1 / -1;
}

.candidate-job-application__legend {
  color: #1a202c;
  font-size: .95rem;
  font-weight: 700;
  margin-bottom: .25rem;
}

.candidate-job-application__hint {
  color: #4a5568;
  font-size: .85rem;
  margin: .1rem 0 .8rem;
}

.candidate-job-application__checkbox-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem 1rem;
}

.candidate-job-application__check {
  display: flex;
  align-items: center;
  gap: .55rem;
  border: 2px solid var(--color-brand-cyan, #00b4d8);
  border-radius: .85rem;
  background: #fff;
  padding: .8rem 1rem;
  color: #1a202c;
  font-weight: 600;
  cursor: pointer;
}

.candidate-job-application__check input {
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--color-brand-orange, #ff8b00);
  flex: 0 0 auto;
}

@media (max-width:640px) {
  .candidate-job-application__checkbox-grid {
    grid-template-columns: 1fr;
  }
}

/* Salud: enfermedades crónicas estilo nuevo */
.candidate-job-application__grid--chronic {
  align-items: end;
}

.candidate-job-application__health-checks {
  border: 2px solid rgba(0, 180, 216, .22);
  border-radius: 1.25rem;
  background: linear-gradient(180deg, #ffffff 0%, #f8fdff 100%);
  padding: 1.25rem;
  box-shadow: 0 14px 34px rgba(13, 27, 42, .07);
}

.candidate-job-application__health-checks .candidate-job-application__legend {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: #0d1b2a;
  font-size: 1.05rem;
  font-weight: 800;
  margin-bottom: .15rem;
  padding: 0 .25rem;
}

.candidate-job-application__health-checks .candidate-job-application__legend:before {
  content: "";
  width: .7rem;
  height: .7rem;
  border-radius: 999px;
  background: var(--color-brand-orange, #ff8b00);
  box-shadow: 0 0 0 4px rgba(255, 139, 0, .14);
}

.candidate-job-application__health-checks .candidate-job-application__hint {
  color: #52616f;
  font-size: .92rem;
  margin: .15rem 0 1.1rem;
}

.candidate-job-application__health-checks .candidate-job-application__checkbox-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.15rem;
}

.candidate-job-application__health-checks .candidate-job-application__check {
  position: relative;
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 4.15rem;
  border: 2px solid #d7f3f8;
  border-radius: 1.1rem;
  background: #fff;
  padding: 1rem 1.1rem;
  color: #1a202c;
  font-weight: 800;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .15s, background-color .15s;
  user-select: none;
}

.candidate-job-application__health-checks .candidate-job-application__check:hover {
  border-color: var(--color-brand-cyan, #00b4d8);
  box-shadow: 0 10px 24px rgba(0, 180, 216, .14);
  transform: translateY(-1px);
}

.candidate-job-application__health-checks .candidate-job-application__check:focus-within {
  border-color: var(--color-brand-orange, #ff8b00);
  box-shadow: 0 0 0 4px rgba(255, 139, 0, .14);
}

.candidate-job-application__health-checks .candidate-job-application__check:has(input:checked) {
  border-color: var(--color-brand-orange, #ff8b00);
  background: #fffaf3;
  box-shadow: 0 0 0 4px rgba(255, 139, 0, .12);
}

.candidate-job-application__health-checks .candidate-job-application__check input {
  width: 1.55rem;
  height: 1.55rem;
  accent-color: var(--color-brand-orange, #ff8b00);
  flex: 0 0 auto;
  cursor: pointer;
}

.candidate-job-application__health-checks .candidate-job-application__check span {
  line-height: 1.25;
  font-size: .98rem;
}

@media (max-width:640px) {
  .candidate-job-application__health-checks {
    padding: 1rem;
  }

  .candidate-job-application__health-checks .candidate-job-application__checkbox-grid {
    grid-template-columns: 1fr;
    gap: .85rem;
  }

  .candidate-job-application__health-checks .candidate-job-application__check {
    min-height: 4rem;
    padding: .95rem 1rem;
  }
}


/* Ajuste final: enfermedades crónicas en solicitud de empleo */
.candidate-job-application__form .candidate-job-application__health-checks {
  grid-column: 1 / -1;
  width: 100%;
  border: 2px solid rgba(0, 180, 216, .24) !important;
  border-radius: 1.35rem !important;
  background: linear-gradient(180deg, #fff 0%, #f7fdff 100%) !important;
  padding: 1.25rem !important;
  box-shadow: 0 14px 34px rgba(13, 27, 42, .07) !important;
}

.candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__checkbox-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1rem 1.15rem !important;
  align-items: stretch !important;
}

.candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__check {
  display: flex !important;
  align-items: center !important;
  gap: .9rem !important;
  min-height: 4.4rem !important;
  padding: 1rem 1.15rem !important;
  border: 2px solid #d7f3f8 !important;
  border-radius: 1.1rem !important;
  background: #fff !important;
  color: #1a202c !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  cursor: pointer !important;
  user-select: none !important;
  transition: border-color .15s, box-shadow .15s, transform .15s, background-color .15s !important;
}

.candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__check:hover {
  border-color: var(--color-brand-cyan, #00b4d8) !important;
  box-shadow: 0 10px 24px rgba(0, 180, 216, .14) !important;
  transform: translateY(-1px) !important;
}

.candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__check:has(input:checked) {
  border-color: var(--color-brand-orange, #ff8b00) !important;
  background: #fffaf3 !important;
  box-shadow: 0 0 0 4px rgba(255, 139, 0, .12) !important;
}

.candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__check input {
  width: 1.65rem !important;
  height: 1.65rem !important;
  min-width: 1.65rem !important;
  accent-color: var(--color-brand-orange, #ff8b00) !important;
  cursor: pointer !important;
}

.candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__check span {
  font-size: 1rem !important;
}

@media (max-width:640px) {
  .candidate-job-application__form .candidate-job-application__health-checks .candidate-job-application__checkbox-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Ajustes Mi CV: documentos reales del candidato */
.candidate-cv__empty {
  grid-column: 1/-1;
  color: #4a5568;
  background: #fff;
  border: 2px dashed #00b4d8;
  border-radius: 1rem;
  padding: 1.25rem;
  text-align: center;
  font-weight: 600
}

.candidate-cv__view {
  color: #009cdc;
  font-size: .78rem;
  font-weight: 700;
  text-decoration: underline;
  display: inline-flex;
  margin-top: .25rem
}

.candidate-cv__slot-error--success {
  color: #16803c;
  background: #e7f8ee
}

.candidate-cv__card--busy {
  opacity: .68;
  pointer-events: none
}

.candidate-cv__card-text strong {
  word-break: break-word
}

.candidate-cv__card-text small {
  word-break: break-word
}

.candidate-documents-page .candidate-documents__file-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: .18rem;
  width: 4.1rem;
  height: 4.9rem;
  min-width: 4.1rem;
  border-radius: .85rem;
  background: #f1f5f9;
  color: #009cdc;
  box-shadow: inset 0 0 0 2px rgba(0, 156, 220, .18);
  font-weight: 900;
  letter-spacing: .05em;
  font-size: .78rem;
  line-height: 1
}

.candidate-documents-page .candidate-documents__file-icon svg {
  width: 2rem;
  height: 2rem
}

.candidate-documents-page .candidate-documents__file-icon--pdf {
  background: #fff1f1;
  color: #d62828;
  box-shadow: inset 0 0 0 2px rgba(214, 40, 40, .18)
}

.candidate-documents-page .candidate-documents__file-icon--image {
  background: #eefbf3;
  color: #16803c;
  box-shadow: inset 0 0 0 2px rgba(22, 128, 60, .18)
}

.candidate-documents-page .candidate-documents__file-icon--doc {
  background: #eef6ff;
  color: #006cbf;
  box-shadow: inset 0 0 0 2px rgba(0, 108, 191, .18)
}

.candidate-documents-page .candidate-cv__card {
  align-items: center
}

.candidate-documents-page .candidate-cv__card-text strong {
  word-break: break-word
}

.candidate-documents-page .candidate-cv__card-text small {
  word-break: break-word
}

@media (max-width:575.98px) {
  .candidate-documents-page .candidate-documents__file-icon {
    width: 3.6rem;
    height: 4.3rem;
    min-width: 3.6rem;
    font-size: .7rem
  }

  .candidate-documents-page .candidate-documents__file-icon svg {
    width: 1.75rem;
    height: 1.75rem
  }
}


/* Ajuste home: resaltar pasos del hero con naranja de marca y acercar texto al icono */
.hero-section-content-cards .icon-text-pill {
  gap: clamp(.35rem, 1vw, .75rem);
}

.hero-section-content-cards .icon-text-pill__text {
  margin: 0;
}

.hero-section-content-cards .icon-text-pill__icon {
  flex-shrink: 0;
}

.hero-step-highlight {
  display: inline-block;
  font-size: 1.6em;
  font-weight: 900;
  color: #ffffff;
  background: transparent;
  padding: 0;
  margin-right: 4px;
  line-height: 1.1;
}

/* En desktop, cuando se selecciona una vacante desde el infobubble del mapa,
   el detalle recibe un enfoque visual suave para que el candidato lo note. */
@media (min-width:1024px) {
  .vacancy-detail--desktop-focus {
    animation: vacancy-detail-desktop-focus .62s cubic-bezier(.22, 1, .36, 1) both;
  }
}

@keyframes vacancy-detail-desktop-focus {
  0% {
    opacity: .72;
    transform: translateY(22px);
    box-shadow: 0 24px 54px rgba(0, 156, 220, .22)
  }

  55% {
    opacity: 1;
    transform: translateY(0);
    box-shadow: 0 20px 44px rgba(0, 156, 220, .18)
  }

  100% {
    opacity: 1;
    transform: translateY(0);
    box-shadow: inherit
  }
}

/* InfoBubble Google Maps: evitar scroll interno para que el botón Detalle sea visible desde el inicio. */
.gm-style .gm-style-iw,
.gm-style .gm-style-iw-c {
  max-height: none !important;
  overflow: visible !important;
}

.gm-style .gm-style-iw-d {
  max-height: none !important;
  overflow: visible !important;
}

.gm-style .map-bubble-card-custom {
  width: 280px;
  max-width: 280px;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.gm-style .map-bubble-body-custom {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.gm-style .map-bubble-title-custom,
.gm-style .map-bubble-company-custom {
  overflow-wrap: anywhere;
}

@media (max-width: 480px) {
  .gm-style .map-bubble-card-custom {
    width: 250px;
    max-width: 250px;
  }
}


/* TBE FIX: mostrar secciones Candidato y Empresa en footer móvil.
   Este override conserva los estilos móviles anteriores, pero evita que los navs se oculten. */
@media (max-width:900px) {
  .site-footer__inner {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "legal right"
      "candidate company" !important;
    align-items: start !important;
    gap: 18px 18px !important;
  }

  .site-footer__col--legal {
    grid-area: legal !important;
  }

  .site-footer__nav {
    display: flex !important;
    padding-top: 4px !important;
  }

  .site-footer__nav[aria-label="Candidato"] {
    grid-area: candidate !important;
  }

  .site-footer__nav[aria-label="Empresa"] {
    grid-area: company !important;
  }

  .site-footer__right {
    grid-area: right !important;
    text-align: right !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
  }

  .site-footer__heading {
    margin-bottom: 6px !important;
    font-size: 14px !important;
  }

  .site-footer__list {
    gap: 7px !important;
  }
}

@media (max-width:480px) {
  .site-footer__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "legal right"
      "candidate company" !important;
    gap: 16px 14px !important;
  }

  .site-footer__heading {
    font-size: 13px !important;
  }
}

/* Ajuste registro: INE primero + textos de seguridad */
.register-docs-intro {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .45rem;
  margin: .15rem .5rem .9rem;
  text-align: center;
  color: #1a202c
}

.register-docs-intro__text {
  margin: 0;
  font-size: clamp(.56rem, 2.2vw, .72rem);
  line-height: 1.22;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -.015em
}

.register-docs-intro__checks {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .15rem;
  margin-top: .15rem
}

.register-docs-intro__check {
  display: inline-flex;
  align-items: center;
  gap: .22rem;
  color: #1a202c;
  font-size: clamp(.52rem, 2vw, .66rem);
  line-height: 1;
  font-weight: 800;
  text-transform: uppercase
}

.register-docs-intro__check img {
  width: 1.05rem;
  height: 1.05rem;
  object-fit: contain;
  display: block
}

.register-form__fields--docs {
  gap: .72rem
}

.register-form__fields--docs .file-drop-field__card {
  min-height: 4.7rem;
  padding: .8rem 1rem;
  border-width: 2px
}

.register-form__fields--docs .file-drop-field__icon {
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 2.7rem
}

.register-form__fields--docs .file-drop-field__label {
  font-size: clamp(.54rem, 2vw, .68rem);
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: -.01em
}

.register-form__fields--docs .file-drop-field__label strong {
  font-weight: 900
}

.register-docs-note {
  margin: .1rem .4rem -.1rem;
  color: #1a202c;
  font-size: clamp(.62rem, 2.5vw, .75rem);
  font-weight: 500;
  line-height: 1.25;
  text-align: left
}

.register-docs-note span {
  color: #009cdc;
  font-weight: 700
}

.modal__card--register-documents .terms-checkbox {
  margin-top: .35rem
}

@media (max-width:480px) {
  .register-docs-intro {
    margin-top: 0;
    margin-bottom: .65rem
  }

  .register-docs-intro__checks {
    gap: .12rem
  }

  .register-form__fields--docs {
    gap: .62rem
  }

  .register-form__fields--docs .file-drop-field__card {
    min-height: 4.35rem;
    padding: .68rem .85rem
  }

  .register-form__fields--docs .file-drop-field__icon {
    width: 2.45rem;
    height: 2.45rem;
    flex-basis: 2.45rem
  }

  .register-docs-note {
    margin-inline: .25rem
  }
}

/* Contacto */
.contact-page-body {
  background: linear-gradient(135deg, #8FD9A9 0%, #84D9C1 30%, #71CED9 55%, #59B5D9 80%, #1F80A6 100%);
  min-height: 100vh
}

.contact-page {
  color: #0d1b2a;
  isolation: isolate;
  min-height: 100vh;
  padding: clamp(1rem, 3vw, 2rem);
  position: relative;
  overflow: hidden
}

.contact-page__watermark {
  opacity: .18;
  pointer-events: none;
  position: fixed;
  z-index: -1
}

.contact-page__watermark--left {
  bottom: 4%;
  left: 0;
  width: min(28vw, 260px)
}

.contact-page__watermark--right {
  right: 0;
  top: 10%;
  width: min(30vw, 280px)
}

.contact-header {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-inline: auto;
  max-width: 1180px;
  position: relative;
  z-index: 2
}

.contact-header__brand img {
  height: auto;
  width: clamp(9rem, 16vw, 13rem)
}

.contact-header__nav {
  align-items: center;
  display: flex;
  gap: clamp(.75rem, 2vw, 1.5rem);
  font-weight: 800
}

.contact-header__nav a {
  color: #0d1b2a;
  text-decoration: none
}

.contact-header__nav a:hover {
  color: #ff8b00
}

.contact-header__avatar {
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 12px 28px #0d1b2a26;
  display: inline-flex;
  height: 2.5rem;
  overflow: hidden;
  width: 2.5rem
}

.contact-header__avatar img {
  height: 100%;
  object-fit: cover;
  width: 100%
}

.contact-header__name {
  max-width: 13rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

.contact-hero {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-inline: auto;
  max-width: 1060px;
  min-height: calc(100vh - 190px);
  padding: clamp(2rem, 6vw, 5rem) 0
}

.contact-card {
  backdrop-filter: blur(10px);
  background: #ffffffed;
  border: 1px solid #ffffff99;
  border-radius: 2rem;
  box-shadow: 0 30px 80px #0d1b2a2e;
  padding: clamp(1.4rem, 4vw, 3rem);
  width: min(100%, 920px)
}

.contact-card h1 {
  color: #0d1b2a;
  font-size: clamp(2rem, 5vw, 3.6rem);
  font-weight: 900;
  line-height: 1;
  margin: 0 0 1rem;
  text-align: center
}

.contact-card__subtitle {
  color: #314258;
  font-size: clamp(1rem, 2vw, 1.18rem);
  font-weight: 600;
  line-height: 1.55;
  margin: 0 auto 2rem;
  max-width: 760px;
  text-align: center
}

.contact-form {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr))
}

.contact-form label {
  display: flex;
  flex-direction: column;
  gap: .45rem
}

.contact-form span {
  color: #162335;
  font-size: .9rem;
  font-weight: 800
}

.contact-form em {
  color: #64748b;
  font-style: normal;
  font-weight: 700
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  background: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 1rem;
  color: #0d1b2a;
  outline: none;
  padding: .9rem 1rem;
  transition: border-color .15s, box-shadow .15s, background .15s;
  width: 100%
}

.contact-form textarea {
  resize: vertical
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  background: #fff;
  border-color: #ff8b00;
  box-shadow: 0 0 0 4px #ff8b0026
}

.contact-form__full {
  grid-column: 1/-1
}

.contact-form small {
  align-self: flex-end;
  color: #64748b;
  font-weight: 700
}

.contact-form__submit {
  background: #ff8b00;
  border: 0;
  border-radius: 999px;
  box-shadow: 0 18px 34px #ff8b0040;
  color: #fff;
  cursor: pointer;
  font-weight: 900;
  grid-column: 1/-1;
  justify-self: center;
  min-width: min(100%, 260px);
  padding: 1rem 2rem;
  text-transform: uppercase;
  transition: transform .15s, box-shadow .15s, background .15s
}

.contact-form__submit:hover {
  background: #e97d00;
  box-shadow: 0 22px 40px #ff8b0052;
  transform: translateY(-1px)
}

.contact-form__submit:disabled {
  cursor: not-allowed;
  opacity: .65;
  transform: none
}

.contact-form__message {
  border-radius: 1rem;
  font-size: .95rem;
  font-weight: 800;
  margin-top: 1rem;
  min-height: 1.2rem;
  padding: .8rem 1rem;
  text-align: center
}

.contact-form__message:empty {
  display: none
}

.contact-form__message.is-error {
  background: #fee2e2;
  color: #b91c1c
}

.contact-form__message.is-success {
  background: #dcfce7;
  color: #166534
}

@media(max-width:760px) {
  .contact-page {
    padding: 1rem
  }

  .contact-header {
    align-items: flex-start
  }

  .contact-header__nav {
    flex-wrap: wrap;
    font-size: .88rem;
    justify-content: flex-end
  }

  .contact-header__name {
    max-width: 9rem
  }

  .contact-hero {
    min-height: auto;
    padding: 2rem 0
  }

  .contact-card {
    border-radius: 1.4rem
  }

  .contact-form {
    grid-template-columns: 1fr
  }

  .contact-form__submit {
    width: 100%
  }
}


.password-requirements-hint {
  color: #64748b;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.35;
  margin: .35rem .25rem 0
}

/* Loading visible durante el registro de candidato */
.register-loading-overlay[hidden] {
  display: none !important
}

.register-loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 80;
  background: rgba(13, 27, 42, .62);
  backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  border-radius: inherit
}

.register-loading-overlay__card {
  width: min(100%, 24rem);
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
  padding: 1.5rem;
  text-align: center;
  color: #0d1b2a;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .7rem;
  font-size: 1rem
}

.register-loading-overlay__card strong {
  font-size: 1.15rem;
  font-weight: 900;
  color: #0d1b2a
}

.register-loading-overlay__card span:not(.register-loading-overlay__spinner) {
  color: #4a5568;
  line-height: 1.45
}

.register-loading-overlay__spinner {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  border: .32rem solid rgba(255, 139, 0, .25);
  border-top-color: #ff8b00;
  animation: register-loading-spin .85s linear infinite;
  display: inline-block
}

#register-submit.is-loading {
  cursor: wait;
  opacity: .82
}

@keyframes register-loading-spin {
  to {
    transform: rotate(360deg)
  }
}

@media (max-width:767px) {
  .register-loading-overlay {
    position: fixed;
    border-radius: 0
  }

  .register-loading-overlay__card {
    padding: 1.25rem
  }
}

/* Mobile navbar: keep the vacancy search field visible. */
@media (max-width: 767px) {
  .user-navbar__inner {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "brand user"
      "search search";
    row-gap: .65rem;
  }

  .user-navbar__search {
    display: flex;
    grid-area: search;
    width: 100%;
    max-width: none;
    justify-self: stretch;
  }

  .user-navbar__search-input {
    width: 100%;
    min-width: 0;
  }
}