/** Native Elementor contact forms, shared and Partnership templates. */
.manu-native-form-panel {
  --manu-form-cut: 15px;
  --manu-field-cut: 10px;
  --manu-focus: var(--ink);
  position: relative;
  isolation: isolate;
  /* Cut the painted panel rather than its contents (focus, CAPTCHA, messages). */
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 22px clamp(18px, 2.2vw, 26px) 20px !important;
  filter: var(--drop-md);
}
.manu-native-form-panel::before,
.manu-native-form-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  clip-path: polygon(0 0, calc(100% - var(--manu-form-cut)) 0, 100% var(--manu-form-cut), 100% 100%, 0 100%);
}
.manu-native-form-panel::before { background: var(--edge); }
.manu-native-form-panel::after {
  inset: 1px;
  --manu-form-cut: 14.4px;
  background: var(--surface);
}
.manu-native-form-panel .elementor-widget-template,
.manu-native-form-panel .elementor-widget-form,
.manu-native-form-panel .elementor-form {
  min-width: 0;
  width: 100%;
}
.manu-native-form-panel .elementor-form *,
.manu-native-form-panel .elementor-form *::before,
.manu-native-form-panel .elementor-form *::after { box-sizing: border-box; }

.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-label {
  font-family: var(--font-body);
  font-size: 10px;
  line-height: 1.5;
  font-weight: 400;
  color: var(--ink-mute);
  text-transform: uppercase;
  padding-bottom: 5px;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-textual:not([type="hidden"]) {
  min-width: 0;
  width: 100%;
  min-height: 41px;
  padding: 9px 11px;
  border: 1px solid var(--edge-strong);
  border-radius: 0;
  color: var(--ink);
  background-color: var(--page-tint);
  font-family: var(--font-body);
  font-size: 13.5px;
  line-height: 1.55;
  box-shadow: none;
  /* Paint a diagonal while leaving native controls and focus unclipped. */
  background-image: linear-gradient(45deg, transparent calc(50% - .5px), var(--edge-strong) 50%, transparent calc(50% + .5px));
  background-position: right top;
  background-size: var(--manu-field-cut) var(--manu-field-cut);
  background-repeat: no-repeat;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form textarea.elementor-field-textual {
  min-height: 104px;
  resize: vertical;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-textual::placeholder { color: var(--ink-mute); opacity: 1; }
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-textual:focus {
  border-color: var(--manu-focus);
  background-color: var(--surface);
  outline: 2px solid var(--manu-focus);
  outline-offset: 2px;
  box-shadow: none;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-type-acceptance {
  color: var(--ink-mute);
  font-family: var(--font-body);
  font-size: 12px;
  line-height: 1.6;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-type-acceptance .elementor-field-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-acceptance-field {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 3px 0 0;
  accent-color: var(--ink);
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-type-acceptance label { color: var(--ink-mute); }
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-type-acceptance a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button {
  min-height: 44px;
  padding: 10px 17px;
  border: 0;
  border-radius: 0;
  color: var(--page);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  /* A painted cut keeps the keyboard outline outside the button intact. */
  background: linear-gradient(45deg, var(--ink) calc(100% - 7.1px), transparent 0);
  background-color: transparent;
  transition: transform 160ms ease;
}
@media (hover: hover) {
  .manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button:hover:not(:disabled) {
    color: var(--page);
    background-color: transparent;
    transform: translateY(-1px);
  }
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button:focus,
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button:focus-visible,
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-acceptance-field:focus-visible,
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-type-acceptance a:focus-visible {
  outline: 2px solid var(--manu-focus);
  outline-offset: 3px;
}
.manu-native-form-panel .elementor-form-waiting .elementor-button,
.manu-native-form-panel .elementor-button:disabled { cursor: wait; }
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-message {
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-message.elementor-message-danger,
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-error { color: var(--danger); }
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-message.elementor-message-success { color: var(--ink); }
.manu-native-form-panel .elementor-widget-template .elementor-widget-text-editor.elementor-element {
  color: var(--ink-mute);
  font-size: 10px;
  line-height: 1.6;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-turnstile-field { flex: 0 0 100%; min-width: 0; }
@media (max-width: 767px) {
  .manu-native-form-panel { padding: 20px 18px !important; }
  .manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-textual:not([type="hidden"]) { min-height: 46px; }
  .manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form textarea.elementor-field-textual { min-height: 104px; }
  .manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button { min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .manu-native-form-panel .elementor-form .elementor-button,
  .manu-native-form-panel .elementor-form .elementor-field-textual { transition: none; }
  .manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button:hover:not(:disabled) { transform: none; }
}

/* The adjacent copy stays in the page, outside the saved form templates. */
#contact:has(.manu-native-form-panel) .elementor-widget-heading h2.elementor-heading-title {
  font-family: var(--font-display);
  font-size: clamp(24px, 2.3vw, 33px);
  font-weight: 700;
  line-height: 1.15;
}

.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-field-textual[aria-invalid="true"] {
  border-color: var(--danger);
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form .elementor-button svg * {
  fill: currentColor;
}

/* Elementor's content width excludes the outer section padding, whereas
   the header's --shell includes its gutters. Match the header content edges
   on desktop; keep the separately configured mobile/tablet spacing. */
@media (min-width: 1041px) {
  #contact.e-con:has(.manu-native-form-panel) {
    --padding-left: var(--gutter);
    --padding-right: var(--gutter);
  }
  #contact.e-con:has(.manu-native-form-panel) > .e-con-inner {
    max-width: calc(var(--shell) - var(--gutter) - var(--gutter));
  }
}

/* Match the old CTA columns without depending on generated Elementor IDs. */
#contact.e-con:has(> .manu-native-form-panel),
#contact .e-con:has(> .manu-native-form-panel),
#contact .e-con-inner:has(> .manu-native-form-panel) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 600px);
  gap: clamp(26px, 3.4vw, 52px);
  align-items: start;
}
#contact :is(.e-con, .e-con-inner):has(> .manu-native-form-panel) > .e-con,
#contact.e-con:has(> .manu-native-form-panel) > .e-con {
  width: 100%;
  min-width: 0;
}
@media (max-width: 1040px) {
  #contact.e-con:has(> .manu-native-form-panel),
  #contact .e-con:has(> .manu-native-form-panel),
  #contact .e-con-inner:has(> .manu-native-form-panel) {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Native copy retains Elementor content; decorations use the theme vocabulary. */
#contact.manu-native-contact {
  position: relative;
  isolation: isolate;
}
#contact.manu-native-contact > .manu-contact-field { z-index: -1; }
#contact .manu-native-contact-copy .manu-contact-rule {
  width: 44px;
  height: 2px;
  margin: 0 0 16px;
}
#contact .manu-native-contact-copy .manu-contact-eyebrow {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--ink-mute);
}
#contact .manu-native-contact-copy .manu-contact-statement .clipline {
  padding-bottom: .08em;
  margin-bottom: -.08em;
}
/* Paint away the square corner, without clipping the control or its outline.
   Labels are 15px high + 5px spacing; template columns have 5px gutters. */
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form
.elementor-field-group:is(.elementor-field-type-text, .elementor-field-type-email, .elementor-field-type-textarea, .elementor-field-type-select):has(> .elementor-field-label)::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 5px;
  width: 10px;
  height: 10px;
  background: linear-gradient(45deg, transparent calc(50% - .5px), var(--edge-strong) 50%, var(--surface) calc(50% + .5px));
  pointer-events: none;
}
.manu-native-form-panel .manu-native-form.elementor-widget-form form.elementor-form
.elementor-field-group:focus-within::after { display: none; }
@media (prefers-reduced-motion: reduce) {
  #contact.manu-native-contact [data-reveal],
  #contact.manu-native-contact [data-reveal] .clipline > * {
    opacity: 1;
    transform: none;
    transition: none;
  }
  #contact.manu-native-contact > .manu-contact-field { opacity: .08; }
}
