:root{--beca-primary:#135AD5;--beca-accent:#07A5F6;--beca-ink:#172033;--beca-muted:#667085}
body.beca-contact-popup-open{overflow:hidden}.beca-contact-popup[hidden]{display:none}.beca-contact-popup{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:1.25rem}.beca-contact-popup__backdrop{position:absolute;inset:0;background:rgba(10,20,40,.58);backdrop-filter:blur(7px);animation:becaFade .22s ease-out}.beca-contact-popup__dialog{position:relative;z-index:1;width:min(100%,640px);max-height:calc(100dvh - 2.5rem);overflow:auto;background:rgba(255,255,255,.98);border:1px solid rgba(19,90,213,.12);border-radius:1rem;padding:2rem;box-shadow:0 28px 80px rgba(7,35,80,.28);font-family:"Open Sans",sans-serif;color:var(--beca-ink);animation:becaRise .28s cubic-bezier(.2,.8,.2,1)}.beca-contact-popup__eyebrow{display:flex;align-items:center;gap:.65rem;font-size:.76rem;font-weight:700;letter-spacing:.12em;color:var(--beca-primary);margin-bottom:.55rem}.beca-contact-popup__eyebrow:before{content:"";width:3px;height:1.15rem;border-radius:2px;background:var(--beca-accent)}.beca-contact-popup h2{font-size:clamp(1.55rem,4vw,2rem);line-height:1.15;margin:0 2.5rem .6rem 0;color:var(--beca-primary)}.beca-contact-popup p{margin:0 0 1.4rem;color:var(--beca-muted);line-height:1.65}.beca-contact-popup__close{position:absolute;right:1rem;top:1rem;width:2.5rem;height:2.5rem;border:1px solid rgba(19,90,213,.14);border-radius:50%;background:#fff;color:var(--beca-primary);font-size:1.7rem;line-height:1;cursor:pointer;transition:.25s ease}.beca-contact-popup__close:hover,.beca-contact-popup__close:focus-visible{background:var(--beca-primary);color:#fff;outline:none}.beca-contact-popup .form-item{margin:0 0 1rem}.beca-contact-popup label{display:block;font-size:.88rem;font-weight:650;margin-bottom:.4rem}.beca-contact-popup input[type=text],.beca-contact-popup input[type=email],.beca-contact-popup textarea{box-sizing:border-box;width:100%;border:1px solid #d6dce8;border-radius:.7rem;background:#fff;padding:.82rem .9rem;font:inherit;color:var(--beca-ink);transition:border-color .2s,box-shadow .2s}.beca-contact-popup textarea{resize:vertical;min-height:9rem}.beca-contact-popup input:focus,.beca-contact-popup textarea:focus{border-color:var(--beca-accent);box-shadow:0 0 0 3px rgba(7,165,246,.14);outline:none}.beca-contact-popup__submit{appearance:none;border:0;border-radius:.7rem;background:var(--beca-primary);color:#fff;font:inherit;font-weight:700;padding:.82rem 1.25rem;cursor:pointer;transition:background .25s,box-shadow .25s}.beca-contact-popup__submit:hover,.beca-contact-popup__submit:focus-visible{background:var(--beca-accent);box-shadow:0 8px 24px rgba(19,90,213,.18);outline:none}.beca-contact-popup__submit:disabled{opacity:.7;cursor:wait}.beca-contact-popup__hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.beca-contact-popup .messages{border-radius:.65rem;margin-bottom:1rem}.beca-contact-popup .form-item--error-message{font-size:.8rem;color:#b42318;margin-top:.3rem}@keyframes becaFade{from{opacity:0}to{opacity:1}}@keyframes becaRise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@media(max-width:640px){.beca-contact-popup{padding:.65rem;align-items:end}.beca-contact-popup__dialog{width:100%;max-height:calc(100dvh - .65rem);border-radius:1rem 1rem .25rem .25rem;padding:1.35rem 1.1rem 1.2rem}.beca-contact-popup h2{font-size:1.55rem}.beca-contact-popup textarea{min-height:7rem}}@media(prefers-reduced-motion:reduce){.beca-contact-popup__backdrop,.beca-contact-popup__dialog{animation:none}.beca-contact-popup *{scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* The label already contains a literal asterisk inside span.form-required.
   Suppress theme-generated markers, without altering Form API validation. */
.beca-contact-popup label::before,
.beca-contact-popup label::after,
.beca-contact-popup label .form-required::before,
.beca-contact-popup label .form-required::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
.beca-contact-popup label .form-required {
  display: inline !important;
  color: #d32f2f !important;
  background: none !important;
  background-image: none !important;
  padding: 0 !important;
  margin-left: .2rem;
}

/* Keep server-side validation errors visible when the modal is reopened. */
.beca-contact-popup__errors { margin: 0 0 1rem; }
.beca-contact-popup__errors .messages { margin-bottom: .65rem; }
.beca-contact-popup :is(input,textarea):invalid:not(:placeholder-shown) { border-color: #b42318; }

/* Leave 10rem of clearance above parent-page Drupal validation messages
   when the browser scrolls to them (e.g. beneath the BecA mega header). */
html body [data-drupal-messages] .messages--error,
html body .region-highlighted .messages--error {
  scroll-margin-top: 10rem;
}
