/* =========================================================
   Hochzeitselite – B2B Partneranfrage
   Replicates B2B_Formular.html
   Form widget ID: b74b843
   Card + header: give the OUTER Elementor container the CSS class  bp-b2b-card
   ========================================================= */
:root {
  --b2b-bg:      #FAF8F5;
  --b2b-card:    #FFFFFF;
  --b2b-text:    #1A1918;
  --b2b-muted:   #666666;
  --b2b-gold:    #B89D63;
  --b2b-border:  #E5E0D8;
  --b2b-serif:   "Playfair Display", Georgia, serif;
  --b2b-sans:    "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ---------- Card (outer container) ---------- */
.bp-b2b-card {
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  background: var(--b2b-card) !important;
  border: 1px solid var(--b2b-border) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .02) !important;
  border-radius: 0 !important;
  padding: 30px 20px !important;
  font-family: var(--b2b-sans);
  color: var(--b2b-text);
}
@media (min-width: 641px) { .bp-b2b-card { padding: 50px 60px !important; } }

/* ---------- Header helpers (CSS classes for Elementor widgets) ---------- */
.bp-b2b-logo,
.bp-b2b-logo .elementor-heading-title {
  font-family: var(--b2b-serif) !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  letter-spacing: 4px !important;
  text-transform: uppercase;
  text-align: center;
  color: var(--b2b-text) !important;
  margin: 0 0 24px;
}
.bp-b2b-title,
.bp-b2b-title .elementor-heading-title {
  font-family: var(--b2b-serif) !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  letter-spacing: 1px !important;
  line-height: 1.3 !important;
  text-transform: uppercase;
  text-align: center;
  color: var(--b2b-text) !important;
  margin: 0 0 12px;
}
.bp-b2b-sub,
.bp-b2b-sub p {
  font-family: var(--b2b-sans);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.6;
  text-align: center;
  color: var(--b2b-muted);
  max-width: 580px;
  margin: 0 auto 30px;
}
@media (max-width: 640px) {
  .bp-b2b-title, .bp-b2b-title .elementor-heading-title { font-size: 24px !important; }
}

/* ---------- Form base ---------- */
.elementor-element-b74b843 > .elementor-widget-container { padding: 0; background: transparent; border: 0; box-shadow: none; }
.elementor-element-b74b843 form,
.elementor-element-b74b843 input,
.elementor-element-b74b843 textarea,
.elementor-element-b74b843 button,
.elementor-element-b74b843 label { font-family: var(--b2b-sans); }

.elementor-element-b74b843 .elementor-form-fields-wrapper { row-gap: 20px; }
.elementor-element-b74b843 .elementor-field-group { margin-bottom: 0; }

/* ---------- Step indicator: only the active label, gold, centered ---------- */
.elementor-element-b74b843 .e-form__indicators {
  display: block;
  margin: 0 0 30px;
  text-align: center;
}
.elementor-element-b74b843 .e-form__indicators__indicator__number,
.elementor-element-b74b843 .e-form__indicators__indicator__separator { display: none !important; }
.elementor-element-b74b843 .e-form__indicators__indicator:not(.e-form__indicators__indicator--state-active) { display: none; }
.elementor-element-b74b843 .e-form__indicators__indicator { display: block; padding: 0; }
.elementor-element-b74b843 .e-form__indicators__indicator__label {
  margin: 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--b2b-gold);
}

/* ---------- Labels ---------- */
.elementor-element-b74b843 .elementor-field-label {
  display: block;
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--b2b-text);
}
/* asterisk for required fields (not when Elementor's own "Required Mark" is on, not on the category group) */
.elementor-element-b74b843 .elementor-field-required:not(.elementor-mark-required):not(.elementor-field-type-radio):not(.elementor-field-type-checkbox) > .elementor-field-label::after {
  content: " *";
}
/* category heading */
.elementor-element-b74b843 .elementor-field-type-radio > .elementor-field-label,
.elementor-element-b74b843 .elementor-field-type-checkbox > .elementor-field-label {
  margin-bottom: 16px;
  font-size: 12px;
  font-weight: 600;
}
.elementor-element-b74b843 .elementor-field-type-radio,
.elementor-element-b74b843 .elementor-field-type-checkbox { margin-bottom: 15px; }

/* ---------- Inputs (square, cream, theme-proof) ---------- */
.elementor-element-b74b843 .elementor-field-textual,
.elementor-element-b74b843 input.elementor-field-textual,
.elementor-element-b74b843 textarea.elementor-field-textual {
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 14px 16px !important;
  background: var(--b2b-bg) !important;
  border: 1px solid var(--b2b-border) !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--b2b-text) !important;
  box-shadow: none !important;
  outline: none !important;
  transition: border-color .2s ease, background-color .2s ease;
}
.elementor-element-b74b843 .elementor-field-textual::placeholder { color: #A09D98; font-weight: 300; opacity: 1; }
.elementor-element-b74b843 .elementor-field-textual:focus {
  background: #fff !important;
  border-color: var(--b2b-text) !important;
}
.elementor-element-b74b843 textarea.elementor-field-textual { resize: vertical; min-height: 96px; }

/* ---------- Category cards: 3 columns, square, icon on top ---------- */
.elementor-element-b74b843 .elementor-field-type-radio .elementor-field-subgroup,
.elementor-element-b74b843 .elementor-field-type-checkbox .elementor-field-subgroup {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
@media (min-width: 641px) {
  .elementor-element-b74b843 .elementor-field-type-radio .elementor-field-subgroup,
  .elementor-element-b74b843 .elementor-field-type-checkbox .elementor-field-subgroup { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option {
  position: relative;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none;
  width: 1px !important;
  height: 1px !important;
}
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option label {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-sizing: border-box;
  width: 100% !important;
  height: 100%;
  margin: 0 !important;
  padding: 24px 12px !important;
  background: var(--b2b-bg) !important;
  border: 1px solid var(--b2b-border) !important;
  border-radius: 0 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: .5px !important;
  text-transform: none !important;
  text-align: center;
  line-height: 1.3;
  color: var(--b2b-text) !important;
  cursor: pointer;
  transition: all .25s ease;
}
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option label:hover { border-color: var(--b2b-text) !important; }
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option input:checked + label {
  background: #fff !important;
  border-color: var(--b2b-text) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, .05);
}
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option input:focus-visible + label {
  outline: 2px solid var(--b2b-gold);
  outline-offset: 2px;
}

/* icon: picked by option VALUE (order-independent) */
.elementor-element-b74b843 .elementor-field-subgroup .elementor-field-option label::before {
  content: "";
  width: 28px;
  height: 28px;
  background-color: var(--b2b-text);
  -webkit-mask: var(--ico) center / contain no-repeat;
          mask: var(--ico) center / contain no-repeat;
}
.elementor-element-b74b843 .elementor-field-option input[value*="Foto"] + label       { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E"); }
.elementor-element-b74b843 .elementor-field-option input[value*="Catering"] + label   { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2a10 10 0 0 0-10 10h20a10 10 0 0 0-10-10z'/%3E%3Cpath d='M2 16h20'/%3E%3Cpath d='M12 16v4'/%3E%3C/svg%3E"); }
.elementor-element-b74b843 .elementor-field-option input[value*="Location"] + label   { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-8-4.5-8-11.8A8 8 0 0 1 12 2a8 8 0 0 1 8 7.2c0 7.3-8 11.8-8 11.8z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.elementor-element-b74b843 .elementor-field-option input[value*="Brautmode"] + label  { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.38 3.46L16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z'/%3E%3C/svg%3E"); }
.elementor-element-b74b843 .elementor-field-option input[value*="Beauty"] + label     { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='6' r='3'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Cpath d='M20 4L8.12 15.88'/%3E%3Cpath d='M14.47 14.48L20 20'/%3E%3Cpath d='M8.12 8.12L12 12'/%3E%3C/svg%3E"); }
.elementor-element-b74b843 .elementor-field-option input[value*="Musik"] + label,
.elementor-element-b74b843 .elementor-field-option input[value*="DJ"] + label         { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18V5l12-2v13'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Ccircle cx='18' cy='16' r='3'/%3E%3C/svg%3E"); }

/* ---------- Buttons ---------- */
.elementor-element-b74b843 .e-form__buttons {
  display: flex;
  gap: 15px;
  margin-top: 20px;
}
.elementor-element-b74b843 .e-form__buttons .elementor-field-group { width: auto; flex: 1 1 auto; margin: 0; }
.elementor-element-b74b843 .e-form__buttons .elementor-field-type-previous { flex: 0 0 30%; }

.elementor-element-b74b843 .elementor-button {
  display: block;
  width: 100%;
  padding: 18px !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 2px !important;
  line-height: 1.4 !important;
  text-transform: uppercase !important;
  text-align: center;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--b2b-text) !important;
  color: #fff !important;
  box-shadow: none !important;
  transition: background-color .3s ease;
}
.elementor-element-b74b843 .elementor-button:hover,
.elementor-element-b74b843 .elementor-button:focus { background: var(--b2b-gold) !important; color: #fff !important; }
.elementor-element-b74b843 .elementor-button .elementor-button-content-wrapper { justify-content: center; }

.elementor-element-b74b843 .e-form__buttons__wrapper__button-previous {
  background: transparent !important;
  border: 1px solid var(--b2b-border) !important;
  color: var(--b2b-text) !important;
}
.elementor-element-b74b843 .e-form__buttons__wrapper__button-previous:hover {
  background: transparent !important;
  border-color: var(--b2b-text) !important;
  color: var(--b2b-text) !important;
}
/* submit locked until the SMS PIN is confirmed */
.elementor-element-b74b843 button[type="submit"]:disabled {
  background: var(--b2b-border) !important;
  color: #A09D98 !important;
  cursor: not-allowed;
}
@media (max-width: 640px) {
  .elementor-element-b74b843 .e-form__buttons { flex-direction: column-reverse; }
  .elementor-element-b74b843 .e-form__buttons .elementor-field-group,
  .elementor-element-b74b843 .e-form__buttons .elementor-field-type-previous { flex: 1 1 auto; width: 100%; }
  .elementor-element-b74b843 .elementor-field-group.elementor-col-50 { width: 100% !important; }
}

/* ---------- SMS box (injected by otp.js, top of step 2) ---------- */
.elementor-element-b74b843 .bp-sms { margin-bottom: 5px; }  /* 20px row-gap + 5px = 25px like the mockup */
.elementor-element-b74b843 .bp-sms__box {
  background: var(--b2b-bg);
  border: 1px solid var(--b2b-border);
  padding: 24px;
  text-align: center;
}
.elementor-element-b74b843 .bp-sms [hidden] { display: none !important; }
.elementor-element-b74b843 .bp-sms__text {
  margin: 0 0 15px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--b2b-muted);
}
.elementor-element-b74b843 .bp-sms__field { max-width: 250px; margin: 0 auto; display: flex; flex-direction: column; text-align: center; }
.elementor-element-b74b843 .bp-sms__label {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--b2b-text);
}
.elementor-element-b74b843 .bp-sms__pin {
  width: 100%;
  padding: 14px 16px !important;
  background: var(--b2b-bg) !important;
  border: 1px solid var(--b2b-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  text-align: center;
  font-size: 20px !important;
  font-weight: 600;
  letter-spacing: 8px;
  color: var(--b2b-text) !important;
}
.elementor-element-b74b843 .bp-sms__pin::placeholder { letter-spacing: 8px; color: #A09D98; font-weight: 300; opacity: 1; }
.elementor-element-b74b843 .bp-sms__pin:focus { background: #fff !important; border-color: var(--b2b-text) !important; }
.elementor-element-b74b843 .bp-sms__msg { margin: 14px 0 0; font-size: 12.5px; color: var(--b2b-muted); }
.elementor-element-b74b843 .bp-sms__msg:empty { display: none; }
.elementor-element-b74b843 .bp-sms__msg.is-error { color: #A33A3A; }
.elementor-element-b74b843 .bp-sms__resend {
  margin: 14px auto 0;
  padding: 0 !important;
  width: auto !important;
  background: none !important;
  border: 0 !important;
  border-bottom: 1px solid var(--b2b-gold) !important;
  border-radius: 0 !important;
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--b2b-text) !important;
  cursor: pointer;
}
.elementor-element-b74b843 .bp-sms__resend:disabled { opacity: .5; cursor: not-allowed; }
.elementor-element-b74b843 .bp-sms.is-verified .bp-sms__box,
.elementor-element-b74b843 .bp-sms__box.is-verified { border-color: var(--b2b-gold); }
.elementor-element-b74b843 .bp-sms__box.is-verified .bp-sms__text { color: var(--b2b-text); }

/* ---------- Messages ---------- */
.elementor-element-b74b843 .elementor-message { font-size: 13px; padding: 14px 16px; border-radius: 0; }
.elementor-element-b74b843 .elementor-message-success { background: #F1F7F3; border: 1px solid #BFDCCB; color: #1F4D37; }
.elementor-element-b74b843 .elementor-message-danger  { background: #FBEFEF; border: 1px solid #EBC5C5; color: #7A2B2B; }
