/* AP Portal 3.1.1 — private Form 29 only.
 * Native single-file upload, with optional local JS enhancement.
 * No Bricks %root% selectors and no site-wide Gravity Forms overrides.
 */
.ap-portal-upload {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  color: var(--primary-dark, #073d34);
  font-family: inherit;
  line-height: 1.5;
  --ap-upload-border: var(--accent-medium, #a9c8b1);
  --ap-upload-surface: var(--white, #fff);
  --ap-upload-soft: var(--primary-ultra-light, #edf6f1);
}
.ap-portal-upload,
.ap-portal-upload *,
.ap-portal-upload *::before,
.ap-portal-upload *::after { box-sizing: border-box; }
.ap-portal-upload * {
  -webkit-user-select: auto !important;
  user-select: auto !important;
  -webkit-touch-callout: default !important;
}
.ap-portal-upload [hidden] { display: none !important; }
.ap-portal-upload .ap-upload-header {
  display: grid;
  gap: var(--space-s, 1rem);
  margin-bottom: var(--space-m, 1.5rem);
}
.ap-portal-upload .ap-upload-header h2,
.ap-portal-upload .ap-upload-header p { margin: 0; color: inherit; }
.ap-portal-upload .ap-upload-context {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--space-xs, .65rem);
  padding: var(--space-s, 1rem);
  border: 1px solid var(--ap-upload-border);
  border-radius: var(--radius-s, .5rem);
  background: var(--ap-upload-soft);
  overflow-wrap: anywhere;
}
.ap-portal-upload .ap-upload-context strong { color: var(--primary-ultra-dark, #003a31); }
.ap-portal-upload .ap-upload-context-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: var(--space-s, 1rem);
  margin: 0 0 var(--space-m, 1.5rem);
  padding: 0;
  list-style: none;
}
.ap-portal-upload .ap-upload-context-list li { min-width: 0; margin: 0; }
.ap-portal-upload .ap-upload-context-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-s, 1rem);
  height: 100%;
  min-height: 64px;
  padding: var(--space-s, 1rem) var(--space-m, 1.5rem);
  border: 2px solid var(--primary, #086b59);
  border-radius: var(--radius-l, 1rem);
  background: var(--primary, #086b59);
  color: var(--white, #fff) !important;
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: background-color .2s ease, color .2s ease;
}
.ap-portal-upload .ap-upload-context-list a:hover {
  background: var(--primary-ultra-light, #edf6f1);
  color: var(--primary-ultra-dark, #003a31) !important;
}

/* GF theme variables & local form structure. Keep GF conditional/honeypot hiding. */
.ap-portal-upload #gform_wrapper_29 {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  font-family: inherit;
  --gf-ctrl-font-family: inherit;
  --gf-ctrl-font-size: 1rem;
  --gf-ctrl-color: var(--primary-dark, #073d34);
  --gf-ctrl-bg-color: var(--white, #fff);
  --gf-ctrl-border-color: var(--ap-upload-border);
  --gf-ctrl-border-width: 2px;
  --gf-ctrl-radius: var(--radius-l, 1rem);
  --gf-ctrl-shadow: none;
  --gf-ctrl-desc-color: var(--primary-dark, #073d34);
  --gf-ctrl-label-color-primary: var(--primary-dark, #073d34);
}
.ap-portal-upload #gform_29 {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
}
.ap-portal-upload #gform_29 input,
.ap-portal-upload #gform_29 select,
.ap-portal-upload #gform_29 textarea,
.ap-portal-upload #gform_29 button,
.ap-portal-upload #gform_29 label,
.ap-portal-upload #gform_29 .gfield_description,
.ap-portal-upload #gform_29 .gsection_title,
.ap-portal-upload #gform_29 .gsection_description { font-family: inherit !important; }
.ap-portal-upload #gform_29 .gform_fields { gap: var(--space-m, 1.5rem); }
.ap-portal-upload #gform_29 .gfield { min-width: 0; }
.ap-portal-upload #gform_29 .gfield_label,
.ap-portal-upload #gform_29 .gform-field-label,
.ap-portal-upload #gform_29 .gsection_title,
.ap-portal-upload #gform_29 .gsection_description,
.ap-portal-upload #gform_29 .gfield_description {
  color: var(--primary-dark, #073d34);
  overflow-wrap: anywhere;
}
.ap-portal-upload #gform_29 .gfield_label,
.ap-portal-upload #gform_29 .gform-field-label { font-weight: 700; line-height: 1.3; }
.ap-portal-upload #gform_29 .gsection {
  margin-block: var(--space-xs, .65rem);
  padding-bottom: var(--space-s, 1rem);
  border-bottom: 1px solid var(--ap-upload-border);
}
.ap-portal-upload #gform_29 .gfield_required {
  color: var(--danger, #a51b28);
  font-size: .85em;
}
.ap-portal-upload #gform_29 input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="submit"]):not([type="button"]),
.ap-portal-upload #gform_29 select,
.ap-portal-upload #gform_29 textarea {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  min-height: 52px;
  margin: 0;
  padding: var(--space-s, 1rem) var(--space-m, 1.5rem);
  border: 2px solid var(--ap-upload-border);
  border-radius: var(--radius-l, 1rem);
  background-color: var(--ap-upload-surface);
  color: var(--primary-dark, #073d34);
  font: inherit;
  font-size: max(1rem, 16px);
  line-height: 1.4;
  box-shadow: none;
}
.ap-portal-upload #gform_29 textarea { min-height: 9rem; resize: vertical; }
.ap-portal-upload #gform_29 input::placeholder,
.ap-portal-upload #gform_29 textarea::placeholder { color: #5a736a; opacity: 1; }
.ap-portal-upload #gform_29 .ginput_complex {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
  gap: var(--space-s, 1rem);
  min-width: 0;
}
.ap-portal-upload #gform_29 .ginput_complex > span,
.ap-portal-upload #gform_29 .ginput_complex > div {
  width: 100% !important;
  min-width: 0;
  margin: 0;
  padding: 0;
  float: none;
}
.ap-portal-upload #gform_29 .ginput_complex label { margin-top: var(--space-xs, .65rem); }
.ap-portal-upload #gform_29 .ap-upload-privacy {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-s, 1rem);
  margin-bottom: var(--space-m, 1.5rem);
  padding: var(--space-m, 1.5rem);
  border: 1px solid var(--ap-upload-border);
  border-radius: var(--radius-l, 1rem);
  background: var(--ap-upload-soft);
}
.ap-portal-upload #gform_29 .ap-upload-category,
.ap-portal-upload #gform_29 [data-ap-private-recipient] {
  display: grid;
  min-width: 0;
  gap: var(--space-xs, .65rem);
}
.ap-portal-upload #gform_29 .ap-upload-privacy label { margin: 0; font-weight: 700; }
.ap-portal-upload .ap-upload-help { margin: 0; font-size: .95em; line-height: 1.5; }

/* Replace the former mobile label overlay with a normal, accessible GF label. */
.ap-portal-upload #gform_29 #field_29_4 > .gfield_label,
.ap-portal-upload #gform_29 #field_29_4 > .gform-field-label {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 var(--space-xs, .65rem) !important;
  padding: 0 !important;
  opacity: 1 !important;
  color: var(--primary-dark, #073d34) !important;
  background: transparent !important;
  pointer-events: auto !important;
}
.ap-portal-upload #gform_29 #field_29_4 { margin-block: var(--space-s, 1rem); }
.ap-portal-upload .ap-upload-card { min-width: 0; }
.ap-portal-upload .ap-upload-dropzone {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs, .65rem);
  min-height: 260px;
  width: 100%;
  padding: var(--space-xl, 3rem) var(--space-l, 2rem);
  border: 2px dashed var(--primary, #086b59);
  border-radius: var(--radius-l, 1rem);
  background: var(--primary-ultra-light, #edf6f1);
  background: color-mix(in srgb, var(--primary-light, #c7e5d8) 45%, var(--white, #fff));
  color: var(--primary-dark, #073d34);
  text-align: center;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.ap-portal-upload .ap-upload-icon {
  display: block;
  flex: 0 0 auto;
  width: 56px;
  height: 56px;
  margin-bottom: var(--space-xs, .65rem);
  color: var(--primary, #086b59);
  pointer-events: none;
}
.ap-portal-upload .ap-upload-prompt { font-size: 1.15em; font-weight: 700; line-height: 1.3; pointer-events: none; }
.ap-portal-upload .ap-upload-drop-text { font-size: 1rem; font-weight: 600; pointer-events: none; }
.ap-portal-upload .ap-upload-touch { display: none; }
.ap-portal-upload #gform_29 .ap-upload-choose {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 56px;
  margin-top: var(--space-s, 1rem);
  padding: var(--space-s, 1rem) var(--space-m, 1.5rem);
  border: 2px solid var(--primary, #086b59);
  border-radius: var(--radius-l, 1rem);
  background: var(--primary, #086b59);
  color: var(--white, #fff);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
}
.ap-portal-upload #gform_29 .ap-upload-choose:hover {
  background: var(--primary-ultra-light, #edf6f1);
  color: var(--primary-ultra-dark, #003a31);
}
.ap-portal-upload .ap-upload-dropzone:focus-within,
.ap-portal-upload .ap-upload-dropzone.ap-upload-keyboard-focus {
  outline: 2px solid var(--primary-dark, #073d34);
  outline-offset: 4px;
}
.ap-portal-upload .ap-upload-dropzone.ap-upload-dragging {
  border-style: solid;
  border-color: var(--success, #087444);
  background: var(--success-ultra-light, #eaf8ef);
  box-shadow: inset 0 0 0 2px var(--success-light, #cdecd9);
}
.ap-portal-upload .ap-upload-dropzone.ap-upload-has-file { border-color: var(--success-dark, #075f3d); }
.ap-portal-upload .ap-upload-has-error .ap-upload-dropzone { border-color: var(--danger, #a51b28); }
.ap-portal-upload #gform_29 .ap-upload-native-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}
.ap-portal-upload #gform_29 #input_29_4:not(.ap-upload-native-input) {
  display: block;
  max-width: 100%;
  width: 100%;
  min-height: 56px;
  padding: var(--space-s, 1rem);
  border: 2px dashed var(--primary, #086b59);
  border-radius: var(--radius-l, 1rem);
  font: inherit;
  background: var(--ap-upload-soft);
  color: var(--primary-dark, #073d34);
}
.ap-portal-upload #gform_29 #input_29_4::file-selector-button {
  margin-right: var(--space-s, 1rem);
  padding: .6em 1em;
  border: 2px solid var(--primary, #086b59);
  border-radius: var(--radius-s, .5rem);
  background: var(--primary, #086b59);
  color: var(--white, #fff);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.ap-portal-upload .ap-upload-rules,
.ap-portal-upload .ap-upload-state {
  margin: var(--space-s, 1rem) 0 0;
  color: var(--primary-dark, #073d34);
  font-size: .95em;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.ap-portal-upload #gform_29 .ap-upload-enhanced .gform_fileupload_rules { display: none; }
.ap-portal-upload .ap-upload-selection {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-s, 1rem);
  margin-top: var(--space-s, 1rem);
  padding: var(--space-s, 1rem);
  border: 1px solid var(--ap-upload-border);
  border-radius: var(--radius-s, .5rem);
  background: var(--ap-upload-soft);
  color: var(--primary-dark, #073d34);
}
.ap-portal-upload .ap-upload-file-details { display: grid; gap: .25rem; min-width: 0; flex: 1 1 12rem; }
.ap-portal-upload .ap-upload-filename { overflow-wrap: anywhere; font-weight: 700; }
.ap-portal-upload .ap-upload-filesize { font-size: .9em; }
.ap-portal-upload #gform_29 .ap-upload-remove {
  min-height: 44px;
  padding: .5em .8em;
  border: 2px solid var(--accent, #227553);
  border-radius: var(--radius-s, .5rem);
  background: transparent;
  color: var(--primary-dark, #073d34);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
}
.ap-portal-upload #gform_29 .ap-upload-remove:hover { background: var(--accent-light, #e1f2e8); }

/* Accent submit button, matching the supplied original button states. */
.ap-portal-upload #gform_29 .gform_footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-s, 1rem);
  width: 100%;
  margin-top: var(--space-m, 1.5rem);
  padding: 0;
}
.ap-portal-upload #gform_29 #gform_submit_button_29 {
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: var(--space-s, 1rem) var(--space-m, 1.5rem) !important;
  border: 2px solid var(--accent, #227553) !important;
  border-radius: var(--radius-l, 1rem) !important;
  background: var(--accent, #227553) !important;
  color: var(--white, #fff) !important;
  font: inherit !important;
  font-size: 1.1em !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transform: none !important;
  filter: none !important;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease !important;
}
.ap-portal-upload #gform_29 #gform_submit_button_29:not([hidden]):not([style*="display: none"]):not([style*="display:none"]) { display: inline-flex !important; }
.ap-portal-upload #gform_29 #gform_submit_button_29:hover,
.ap-portal-upload #gform_29 #gform_submit_button_29:focus {
  border-color: var(--accent, #227553) !important;
  background: var(--accent-light, #e1f2e8) !important;
  color: var(--accent, #227553) !important;
}
.ap-portal-upload #gform_29 #gform_submit_button_29:active {
  background: var(--accent, #227553) !important;
  color: var(--white, #fff) !important;
}
.ap-portal-upload #gform_29 #gform_submit_button_29:disabled { cursor: wait !important; opacity: .7; }
.ap-portal-upload #gform_29 .gform_ajax_spinner { align-self: center; }

/* Optional existing radio/checkbox card classes, restricted to this form. */
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) :is(.gfield_radio, .gfield_checkbox) {
  display: grid !important;
  gap: var(--space-xs, .65rem);
  width: 100%;
  margin-block: var(--space-s, 1rem);
  padding: var(--space-xs, .65rem);
}
.ap-portal-upload #gform_29 .gf-choice-card-grid-2 :is(.gfield_radio, .gfield_checkbox) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ap-portal-upload #gform_29 .gf-choice-card-grid-3 :is(.gfield_radio, .gfield_checkbox) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gchoice { position: relative; display: flex; min-width: 0; }
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gfield-choice-input {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gchoice label {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 48px;
  padding: var(--space-s, 1rem) var(--space-m, 1.5rem);
  border: 2px solid var(--white, #fff);
  border-radius: var(--radius-l, 1rem);
  background: var(--primary, #086b59);
  color: var(--white, #fff);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gchoice label::before { content: none !important; display: none !important; }
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gfield-choice-input:checked + label {
  background: var(--secondary, #00534b);
  color: var(--white, #fff);
  border-color: var(--primary-ultra-dark, #003a31);
}
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gchoice:hover label {
  background: var(--primary-ultra-light, #edf6f1);
  color: var(--primary-ultra-dark, #003a31);
  border-color: var(--primary-ultra-dark, #003a31);
}
.ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) .gfield-choice-input:focus-visible + label { outline: 2px solid var(--primary-dark, #073d34); outline-offset: 3px; }

/* Consent card: only GF's consent input, retaining the real checkbox & label. */
.ap-portal-upload #gform_29 .ginput_container_consent { position: relative; margin-block: var(--space-s, 1rem); }
.ap-portal-upload #gform_29 .ginput_container_consent input[type="checkbox"] {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  opacity: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
}
.ap-portal-upload #gform_29 .gfield_consent_label {
  display: flex !important;
  align-items: center;
  gap: var(--space-s, 1rem);
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: var(--space-s, 1rem) var(--space-m, 1.5rem);
  border: 2px solid var(--accent, #227553);
  border-radius: var(--radius-l, 1rem);
  background: var(--accent, #227553);
  color: var(--white, #fff) !important;
  font-size: 1.1em;
  font-weight: 400;
  line-height: 1.3;
  cursor: pointer;
  overflow-wrap: anywhere;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.ap-portal-upload #gform_29 .gfield_consent_label::before {
  content: "" !important;
  display: block !important;
  position: static;
  flex: 0 0 2.25em;
  width: 2.25em;
  height: 2.25em;
  border: 2px solid var(--white, #fff);
  border-radius: 50%;
  background: transparent;
}
.ap-portal-upload #gform_29 .gfield_consent_label:hover {
  background: var(--accent-light, #e1f2e8);
  color: var(--accent, #227553) !important;
}
.ap-portal-upload #gform_29 .gfield_consent_label:hover::before { border-color: var(--accent, #227553); box-shadow: inset 0 0 0 4px var(--white, #fff); }
.ap-portal-upload #gform_29 .ginput_container_consent input:checked + .gfield_consent_label { background: var(--action, #087a57); color: var(--white, #fff) !important; }
.ap-portal-upload #gform_29 .ginput_container_consent input:checked + .gfield_consent_label::before {
  border-color: var(--white, #fff);
  background-color: var(--action, #087a57);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M20.285 6.707l-11.4 11.4-5.657-5.657 1.414-1.414 4.243 4.243 9.986-9.986z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 68% 68%;
}
.ap-portal-upload #gform_29 .ginput_container_consent input:focus-visible + .gfield_consent_label { outline: 2px solid var(--primary-dark, #073d34); outline-offset: 3px; }
.ap-portal-upload #gform_29 .gfield_consent_description { margin-top: var(--space-s, 1rem); color: var(--primary-dark, #073d34); }
.ap-portal-upload #gform_29 .gfield_consent_label::after { content: none !important; }

/* Clear validation & receipt feedback. */
.ap-portal-upload .ap-upload-error,
.ap-portal-upload #gform_29 .gfield_validation_message,
.ap-portal-upload #gform_wrapper_29 .gform_validation_errors,
.ap-portal-upload #gform_wrapper_29 .validation_error {
  margin-block: var(--space-s, 1rem);
  padding: var(--space-s, 1rem);
  border: 1px solid var(--danger, #a51b28);
  border-radius: var(--radius-s, .5rem);
  background: var(--danger-ultra-light, #fff1f1);
  color: var(--danger-dark, #8f1823);
  font: inherit;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.ap-portal-upload #gform_wrapper_29 .gform_validation_errors h2 { margin: 0; color: inherit; font-size: 1.1em; }
.ap-portal-upload .ap-upload-confirmation {
  display: grid;
  gap: var(--space-s, 1rem);
  padding: var(--space-m, 1.5rem);
  border: 1px solid var(--success-dark, #075f3d);
  border-radius: var(--radius-l, 1rem);
  background: var(--success-ultra-light, #eaf8ef);
  color: var(--primary-dark, #073d34);
}
.ap-portal-upload .ap-upload-confirmation h3,
.ap-portal-upload .ap-upload-confirmation p { margin: 0; }
.ap-portal-upload :is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--primary-dark, #073d34); outline-offset: 3px; }

/* Desktop: invisible full-card button + a mouse-following hint & ripple.
 * It is still a real keyboard-focusable button. Mobile never uses label overlays.
 */
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
  .ap-portal-upload #gform_29 .ap-upload-choose {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    opacity: 0 !important;
    background: transparent !important;
  }
}
@media (min-width: 992px) and (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .ap-portal-upload .ap-upload-dropzone.ap-upload-hint-active,
  .ap-portal-upload #gform_29 .ap-upload-hint-active .ap-upload-choose { cursor: none !important; }
  .ap-portal-upload .ap-upload-hint-active::before {
    content: attr(data-ap-hint);
    position: absolute;
    left: var(--ap-hint-x, 50%);
    top: var(--ap-hint-y, 50%);
    z-index: 4;
    width: 110px;
    transform: translate(-50%, 22px);
    color: var(--primary-ultra-dark, #003a31);
    font: inherit;
    font-size: .9em;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    pointer-events: none;
  }
  .ap-portal-upload .ap-upload-hint-active::after {
    content: "";
    position: absolute;
    left: var(--ap-click-x, 50%);
    top: var(--ap-click-y, 50%);
    z-index: 3;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: var(--accent, #227553);
    pointer-events: none;
    animation: ap-upload-clickable-ripple .9s ease-out infinite;
  }
}
@keyframes ap-upload-clickable-ripple {
  0% { transform: translate(-50%, -50%) scale(.1); opacity: .9; }
  100% { transform: translate(-50%, -50%) scale(7); opacity: 0; }
}
@media (max-width: 991px), (hover: none) {
  .ap-portal-upload .ap-upload-dropzone { min-height: 240px; padding: var(--space-l, 2rem) var(--space-m, 1.5rem); }
  .ap-portal-upload .ap-upload-desktop { display: none; }
  .ap-portal-upload .ap-upload-touch { display: inline; }
  .ap-portal-upload .ap-upload-drop-text { font-weight: 400; }
}
@media (max-width: 767px) {
  .ap-portal-upload #gform_29 .ap-upload-privacy { padding: var(--space-s, 1rem); }
  .ap-portal-upload #gform_29 .ginput_complex { grid-template-columns: 1fr; }
  .ap-portal-upload #gform_29 :is(.gf-choice-card-grid-2, .gf-choice-card-grid-3) :is(.gfield_radio, .gfield_checkbox) { grid-template-columns: 1fr; }
  .ap-portal-upload #gform_29 .gfield_consent_label { font-size: 1em; padding: var(--space-s, 1rem); }
  .ap-portal-upload #gform_29 .gfield_consent_label::before { flex-basis: 2em; width: 2em; height: 2em; }
}
@media (prefers-reduced-motion: reduce) {
  .ap-portal-upload *,
  .ap-portal-upload *::before,
  .ap-portal-upload *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .ap-portal-upload .ap-upload-dropzone,
  .ap-portal-upload #gform_29 .ap-upload-choose { cursor: pointer !important; }
}
