.beca-registry-form,
.beca-registry-result,
.beca-registry-review {
  --beca-primary: #135ad5;
  --beca-accent: #07a5f6;
  --beca-ink: #172033;
  --beca-muted: #64748b;
  font-family: "Open Sans", Arial, sans-serif;
  color: var(--beca-ink);
  box-sizing: border-box;
}

.beca-registry-form *,
.beca-registry-form *::before,
.beca-registry-form *::after {
  box-sizing: border-box;
}

/* Public application form: no decorative outer shell; use the BecA 1240px grid. */
.beca-registry-form {
  width: 100%;
  max-width: 1240px;
  margin: 10rem auto 5rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.beca-registry-intro {
  position: relative;
  padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(1.75rem, 3vw, 2.75rem);
  margin-bottom: 2rem;
  border-bottom: 1px solid #dce5f2;
  background: transparent;
  color: var(--beca-ink);
}

/* Exact BecA Feature Cards header structure and alignment.
 * Typography, eyebrow treatment and brand styling are supplied by beca_base/base,
 * exactly as they are for the beca_feature_cards module. */
.beca-registry-intro .bfc-header {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto 2.5rem;
}

.beca-registry-intro .bfc-header--align-left {
  align-items: flex-start;
  text-align: left;
}

.beca-registry-intro .bfc-header > .bfc-eyebrow {
  display: inline-flex !important;
  width: auto !important;
  max-width: 100%;
  align-items: center;
  text-align: inherit !important;
}

.beca-registry-intro .bfc-header > .bfc-heading {
  display: block;
  width: 100%;
  max-width: none;
  text-align: inherit !important;
}

.beca-registry-intro .bfc-header > .bfc-subheading {
  display: block;
  width: 100%;
  max-width: none;
  text-align: inherit !important;
}

/* Prevent generic form/theme heading rules from overriding the shared BecA styles. */
.beca-registry-intro .bfc-heading,
.beca-registry-intro .bfc-subheading,
.beca-registry-intro .bfc-eyebrow {
  text-align: left !important;
}

.beca-registry-notice {
  margin-top: 1.5rem;
  padding: 1rem 1.15rem;
  border: 1px solid #cfe4fb;
  border-left: 4px solid var(--beca-accent);
  border-radius: 12px;
  background: #f4faff;
  color: #334155;
  line-height: 1.6;
}

.beca-registry-section {
  border: 1px solid #dce5f2 !important;
  border-radius: 20px !important;
  background: #fff;
  box-shadow: 0 12px 35px rgba(15, 35, 70, .06);
  margin: 0 0 1.25rem !important;
  padding: 0 !important;
}

.beca-registry-section > summary {
  padding: 1.35rem 1.5rem;
  font-family: "Open Sans", Arial, sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  color: #17356f;
}

/* Match the section-body content edge exactly to the section-heading edge. */
.beca-registry-section > .details-wrapper,
.beca-registry-section > .details-wrapper.form-wrapper,
.beca-registry-section > div:not(.ajax-progress):not(.throbber) {
  width: 100%;
  padding: .35rem 1.5rem 1.65rem !important;
  margin: 0 !important;
}

.beca-registry-section > .details-wrapper > :first-child,
.beca-registry-section > div:not(.ajax-progress):not(.throbber) > :first-child {
  margin-top: 0;
}

.beca-registry-section > .details-wrapper > :last-child,
.beca-registry-section > div:not(.ajax-progress):not(.throbber) > :last-child {
  margin-bottom: 0;
}

.beca-registry-grid { display: grid; gap: 1rem; }
.beca-registry-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.beca-registry-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.beca-registry-form label {
  font-family: "Open Sans", Arial, sans-serif;
  font-weight: 700;
  color: #26344e;
}

/* Hide the visual required marker while preserving Drupal validation and accessibility. */
.beca-registry-form label.form-required::after,
.beca-registry-form label.js-form-required::after,
.beca-registry-form label.required::after,
.beca-registry-form .form-required::after,
.beca-registry-form .js-form-required::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  background-image: none !important;
  mask: none !important;
  -webkit-mask: none !important;
}

.beca-registry-form input[type="text"],
.beca-registry-form input[type="email"],
.beca-registry-form input[type="tel"],
.beca-registry-form input[type="number"],
.beca-registry-form input[type="date"],
.beca-registry-form select,
.beca-registry-form textarea {
  width: 100%;
  min-height: 48px;
  border: 1px solid #cbd7e7;
  border-radius: 11px;
  background: #fbfdff;
  padding: .8rem .9rem;
  font-family: "Open Sans", Arial, sans-serif;
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}

.beca-registry-form input:focus,
.beca-registry-form select:focus,
.beca-registry-form textarea:focus {
  border-color: var(--beca-accent);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(7, 165, 246, .13);
  outline: none;
}

.beca-service-options {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.beca-service-options .form-item {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin: 0 !important;
  padding: .9rem 1rem;
  border: 1px solid #dce5f2;
  border-radius: 12px;
  background: #f8fbff;
}

/* Keep every checkbox and its label on one aligned line. */
.beca-registry-form .form-type-checkbox,
.beca-registry-form .js-form-type-checkbox {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
}

.beca-registry-form input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: .18rem 0 0 !important;
  accent-color: var(--beca-primary);
}

.beca-registry-form .form-type-checkbox label,
.beca-registry-form .js-form-type-checkbox label,
.beca-service-options label {
  display: inline-block;
  flex: 1 1 auto;
  margin: 0 !important;
  line-height: 1.5;
}

.description {
  color: var(--beca-muted) !important;
  line-height: 1.55;
}

.beca-registry-actions {
  display: flex;
  justify-content: flex-end;
  padding: 1rem 0 .25rem;
}

/* Exact BecA mega-menu CTA treatment: accent pill, white label and right arrow. */
.beca-registry-actions .beca-mega-menu-cta,
.beca-registry-actions .button,
.beca-registry-actions input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 46px;
  margin: 0;
  border: 0 !important;
  border-radius: 999px !important;
  padding: .78rem 3rem .78rem 1.5rem !important;
  background-color: var(--beca-accent) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 12h13M13 7l5 5-5 5' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1.15rem center !important;
  background-size: 19px 19px !important;
  color: #fff !important;
  font-family: "Open Sans", Arial, sans-serif !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: none !important;
  transform: none !important;
  appearance: none;
  -webkit-appearance: none;
  transition: background-color .22s ease, background-position .22s ease !important;
}

.beca-registry-actions .beca-mega-menu-cta:hover,
.beca-registry-actions .beca-mega-menu-cta:focus,
.beca-registry-actions .button:hover,
.beca-registry-actions .button:focus,
.beca-registry-actions input[type="submit"]:hover,
.beca-registry-actions input[type="submit"]:focus {
  background-color: var(--beca-primary) !important;
  background-position: right .85rem center !important;
  color: #fff !important;
  box-shadow: none !important;
  transform: none !important;
  outline: none;
}

.beca-registry-actions .beca-mega-menu-cta:focus-visible,
.beca-registry-actions .button:focus-visible,
.beca-registry-actions input[type="submit"]:focus-visible {
  outline: 3px solid rgba(7, 165, 246, .28);
  outline-offset: 3px;
}

.beca-registry-smallprint {
  color: var(--beca-muted);
  font-size: .9rem;
  line-height: 1.65;
}

/* Align the Section 6 explanatory note with the consent label text. */
.beca-registry-declaration-note {
  width: auto;
  margin: .6rem 0 0 calc(18px + .65rem) !important;
  padding: 0;
}

.beca-registry-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.beca-registry-result {
  max-width: 780px;
  margin: 5rem auto;
  padding: clamp(2rem, 6vw, 4.5rem);
  text-align: center;
  border: 1px solid #dce5f2;
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 35, 70, .12);
}

.beca-registry-result .beca-registry-eyebrow { justify-content: center; }
.beca-registry-result__icon { width: 72px; height: 72px; display: grid; place-items: center; margin: 0 auto 1.5rem; border-radius: 50%; background: #eaf7ff; color: var(--beca-primary); font-size: 2rem; font-weight: 900; }
.beca-registry-result h1 { font-size: clamp(1.8rem, 4vw, 3rem); color: #142c5b; }
.beca-registry-result p { font-size: 1.05rem; line-height: 1.75; color: #52627b; }
.beca-registry-result--error .beca-registry-result__icon { background: #fff1f2; color: #be123c; }

.beca-review-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0 1.5rem; }
.beca-review-summary > div { padding: 1rem; border: 1px solid #dce5f2; border-radius: 14px; background: #f8fbff; }
.beca-review-summary span { display: block; color: #64748b; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .35rem; }
.beca-status { display: inline-flex; padding: .3rem .65rem; border-radius: 999px; font-size: .78rem; font-weight: 800; background: #e2e8f0; }
.beca-status--submitted { background: #e0f2fe; color: #075985; }
.beca-status--approved { background: #dcfce7; color: #166534; }
.beca-status--declined { background: #ffe4e6; color: #9f1239; }
.beca-status--pending_verification { background: #fef3c7; color: #92400e; }
.beca-review-list { display: grid; gap: .7rem; }
.beca-review-list li { padding: .8rem 1rem; border-radius: 10px; background: #f8fbff; }
.beca-review-list span { color: #64748b; }
.beca-decision-panel { border: 2px solid #bddcff !important; border-radius: 16px; padding: 1rem !important; background: #f7fbff; }
.button--danger { background: #be123c !important; color: #fff !important; }
.beca-admin-filters form { display: flex; align-items: end; gap: 1rem; flex-wrap: wrap; margin: 1rem 0 1.5rem; padding: 1rem; border: 1px solid #dce5f2; border-radius: 12px; background: #f8fbff; }

@media (max-width: 800px) {
  .beca-registry-form {
    width: calc(100% - 1.5rem);
    max-width: 1240px;
    margin-top: 8rem;
    margin-bottom: 3rem;
    padding: 0;
  }

  .beca-registry-grid--2,
  .beca-registry-grid--3,
  .beca-service-options,
  .beca-review-summary { grid-template-columns: 1fr; }

  .beca-registry-intro { padding-top: 1.25rem; }
  .beca-registry-section > .details-wrapper,
  .beca-registry-section > .details-wrapper.form-wrapper,
  .beca-registry-section > div:not(.ajax-progress):not(.throbber) {
    padding: .25rem 1rem 1.15rem !important;
  }
  .beca-registry-actions { justify-content: stretch; }
  .beca-registry-actions .button,
  .beca-registry-actions input[type="submit"] { width: 100%; }
}


/* Remove any marker emitted by the active theme. */
.beca-registry-form .beca-registry-required-label::before,
.beca-registry-form .beca-registry-required-label > abbr,
.beca-registry-form .beca-registry-required-label > span.form-required,
.beca-registry-form .beca-registry-required-label > span.required-marker,
.beca-registry-form abbr.form-required,
.beca-registry-form span.form-required,
.beca-registry-form .required-marker {
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
}

/* Render exactly one module-controlled BecA red required marker. */
.beca-registry-form label.beca-registry-required-label::after {
  content: " *" !important;
  display: inline !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #d3263e !important;
  background: none !important;
  background-image: none !important;
  mask: none !important;
  -webkit-mask: none !important;
  font: inherit !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  vertical-align: baseline !important;
}
