/*
 * BD Form Polish
 * Safe frontend styling for Bakers Delights forms.
 */

:root {
  --bd-navy: #062763;
  --bd-navy-deep: #041b46;
  --bd-gold: #c99a3b;
  --bd-gold-deep: #9a6421;
  --bd-cream: #fff8ec;
  --bd-cream-soft: #fffdf8;
  --bd-pink: #e9788f;
  --bd-ink: #241638;
  --bd-muted: #65566e;
  --bd-line: rgba(154, 100, 33, 0.25);
  --bd-focus: rgba(201, 154, 59, 0.42);
  --bd-shadow: 0 22px 70px rgba(0, 0, 0, 0.20);
}

/* Main dark page background sections */
body.bd-bakeri-basics-active main,
body.bd-bakeri-basics-active .entry-content {
  background: var(--bd-navy);
}

/* Page heading area */
body.bd-bakeri-basics-active main > h1,
body.bd-bakeri-basics-active .entry-content > h1,
body.bd-bakeri-basics-active main .wp-block-post-title,
body.bd-bakeri-basics-active .entry-content > p {
  color: #fff;
}

body.bd-bakeri-basics-active main > h1,
body.bd-bakeri-basics-active .entry-content > h1,
body.bd-bakeri-basics-active main .wp-block-post-title {
  max-width: 1180px;
  margin: 0 auto 1rem;
  padding: 4rem 1.5rem 0;
  font-size: clamp(2.2rem, 4vw, 4.8rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
}

body.bd-bakeri-basics-active .entry-content > p,
body.bd-bakeri-basics-active main > p {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  color: rgba(255,255,255,0.92);
  font-size: clamp(1rem, 1.2vw, 1.15rem);
}

/* Generic form wrappers: WP Forms, Gravity, Contact Form 7, Formidable, Fluent, Ninja, Forminator, raw shortcode forms */
body.bd-bakeri-basics-active .wpforms-container,
body.bd-bakeri-basics-active .gform_wrapper,
body.bd-bakeri-basics-active .wpcf7,
body.bd-bakeri-basics-active .frm_forms,
body.bd-bakeri-basics-active .ff-default,
body.bd-bakeri-basics-active .nf-form-cont,
body.bd-bakeri-basics-active .forminator-ui,
body.bd-bakeri-basics-active main form:not(.woocommerce-cart-form):not(.checkout):not(.search-form):not(.wp-block-search) {
  width: min(1180px, calc(100vw - 48px));
  margin: clamp(1.5rem, 4vw, 3rem) auto clamp(3rem, 6vw, 5rem) !important;
  padding: clamp(1.25rem, 3vw, 2.5rem) !important;
  border: 1px solid rgba(201,154,59,0.48) !important;
  border-radius: 26px !important;
  background:
    radial-gradient(circle at 92% 8%, rgba(233,120,143,0.16), transparent 26%),
    radial-gradient(circle at 8% 12%, rgba(201,154,59,0.12), transparent 28%),
    linear-gradient(180deg, var(--bd-cream-soft), var(--bd-cream)) !important;
  box-shadow: var(--bd-shadow) !important;
  color: var(--bd-ink) !important;
  position: relative;
  overflow: hidden;
}

/* Sparkle trim */
body.bd-bakeri-basics-active .wpforms-container::before,
body.bd-bakeri-basics-active .gform_wrapper::before,
body.bd-bakeri-basics-active .wpcf7::before,
body.bd-bakeri-basics-active .frm_forms::before,
body.bd-bakeri-basics-active .ff-default::before,
body.bd-bakeri-basics-active .nf-form-cont::before,
body.bd-bakeri-basics-active .forminator-ui::before,
body.bd-bakeri-basics-active main form:not(.woocommerce-cart-form):not(.checkout):not(.search-form):not(.wp-block-search)::before {
  content: "✨";
  position: absolute;
  top: 1rem;
  right: 1.25rem;
  font-size: 1.6rem;
  opacity: 0.82;
  animation: bdSparkle 2.4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes bdSparkle {
  0%, 100% { transform: rotate(-8deg) scale(1); opacity: 0.45; }
  50% { transform: rotate(8deg) scale(1.16); opacity: 1; }
}

/* Inner form title text */
body.bd-bakeri-basics-active .wpforms-title,
body.bd-bakeri-basics-active .gform_title,
body.bd-bakeri-basics-active .forminator-title,
body.bd-bakeri-basics-active form h2,
body.bd-bakeri-basics-active form h3 {
  color: var(--bd-navy) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.08;
  margin: 0 0 0.75rem !important;
}

body.bd-bakeri-basics-active .wpforms-description,
body.bd-bakeri-basics-active .gform_description,
body.bd-bakeri-basics-active .forminator-description,
body.bd-bakeri-basics-active form p {
  color: var(--bd-muted) !important;
}

/* Labels must be dark on cream */
body.bd-bakeri-basics-active label,
body.bd-bakeri-basics-active legend,
body.bd-bakeri-basics-active .wpforms-field-label,
body.bd-bakeri-basics-active .gfield_label,
body.bd-bakeri-basics-active .frm_primary_label,
body.bd-bakeri-basics-active .ff-el-form-control-label,
body.bd-bakeri-basics-active .nf-field-label label,
body.bd-bakeri-basics-active .forminator-label {
  color: var(--bd-ink) !important;
  font-weight: 800 !important;
  font-size: 0.98rem !important;
  line-height: 1.3 !important;
  margin-bottom: 0.38rem !important;
}

/* Required stars */
body.bd-bakeri-basics-active .gfield_required,
body.bd-bakeri-basics-active .wpforms-required-label,
body.bd-bakeri-basics-active .frm_required,
body.bd-bakeri-basics-active .ff-el-is-required,
body.bd-bakeri-basics-active .ninja-forms-req-symbol,
body.bd-bakeri-basics-active .forminator-required {
  color: var(--bd-pink) !important;
  font-weight: 900 !important;
}

/* Inputs */
body.bd-bakeri-basics-active input[type="text"],
body.bd-bakeri-basics-active input[type="email"],
body.bd-bakeri-basics-active input[type="tel"],
body.bd-bakeri-basics-active input[type="url"],
body.bd-bakeri-basics-active input[type="number"],
body.bd-bakeri-basics-active input[type="date"],
body.bd-bakeri-basics-active input[type="password"],
body.bd-bakeri-basics-active textarea,
body.bd-bakeri-basics-active select,
body.bd-bakeri-basics-active .wpforms-field input,
body.bd-bakeri-basics-active .wpforms-field textarea,
body.bd-bakeri-basics-active .ginput_container input,
body.bd-bakeri-basics-active .ginput_container textarea,
body.bd-bakeri-basics-active .frm_form_field input,
body.bd-bakeri-basics-active .frm_form_field textarea,
body.bd-bakeri-basics-active .ff-el-form-control,
body.bd-bakeri-basics-active .nf-field-element input,
body.bd-bakeri-basics-active .nf-field-element textarea,
body.bd-bakeri-basics-active .forminator-input,
body.bd-bakeri-basics-active .forminator-textarea {
  width: 100% !important;
  min-height: 48px !important;
  border: 1px solid rgba(154,100,33,0.34) !important;
  border-radius: 15px !important;
  background: #fff !important;
  color: var(--bd-ink) !important;
  padding: 0.82rem 1rem !important;
  font-size: 1rem !important;
  line-height: 1.4 !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.85), 0 8px 20px rgba(36,22,56,0.04) !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

body.bd-bakeri-basics-active textarea,
body.bd-bakeri-basics-active .forminator-textarea {
  min-height: 120px !important;
  resize: vertical;
}

body.bd-bakeri-basics-active input:focus,
body.bd-bakeri-basics-active textarea:focus,
body.bd-bakeri-basics-active select:focus {
  outline: none !important;
  border-color: var(--bd-gold) !important;
  box-shadow: 0 0 0 4px var(--bd-focus), 0 12px 28px rgba(36,22,56,0.08) !important;
  transform: translateY(-1px);
}

body.bd-bakeri-basics-active input::placeholder,
body.bd-bakeri-basics-active textarea::placeholder {
  color: rgba(101,86,110,0.58) !important;
}

/* Field spacing */
body.bd-bakeri-basics-active .wpforms-field,
body.bd-bakeri-basics-active .gfield,
body.bd-bakeri-basics-active .frm_form_field,
body.bd-bakeri-basics-active .ff-el-group,
body.bd-bakeri-basics-active .nf-field-container,
body.bd-bakeri-basics-active .forminator-row,
body.bd-bakeri-basics-active form p {
  margin-bottom: 1.05rem !important;
}

/* Checkbox/radio rows */
body.bd-bakeri-basics-active input[type="checkbox"],
body.bd-bakeri-basics-active input[type="radio"] {
  width: 20px !important;
  height: 20px !important;
  min-height: 20px !important;
  margin: 0 0.65rem 0 0 !important;
  accent-color: var(--bd-gold-deep);
  vertical-align: middle;
}

body.bd-bakeri-basics-active .wpforms-field-checkbox ul,
body.bd-bakeri-basics-active .wpforms-field-radio ul,
body.bd-bakeri-basics-active .gfield_checkbox,
body.bd-bakeri-basics-active .gfield_radio,
body.bd-bakeri-basics-active .frm_checkbox,
body.bd-bakeri-basics-active .frm_radio {
  display: grid !important;
  gap: 0.65rem !important;
  margin: 0.65rem 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.bd-bakeri-basics-active .wpforms-field-checkbox li,
body.bd-bakeri-basics-active .wpforms-field-radio li,
body.bd-bakeri-basics-active .gfield_checkbox .gchoice,
body.bd-bakeri-basics-active .gfield_radio .gchoice,
body.bd-bakeri-basics-active .frm_checkbox label,
body.bd-bakeri-basics-active .frm_radio label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.4rem !important;
  padding: 0.72rem 0.85rem !important;
  border: 1px solid rgba(154,100,33,0.18) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,0.68) !important;
  color: var(--bd-ink) !important;
}

/* Help text / legal text */
body.bd-bakeri-basics-active .wpforms-field-description,
body.bd-bakeri-basics-active .gfield_description,
body.bd-bakeri-basics-active .frm_description,
body.bd-bakeri-basics-active .ff-el-help-message,
body.bd-bakeri-basics-active .nf-field-description,
body.bd-bakeri-basics-active .forminator-description,
body.bd-bakeri-basics-active small {
  color: var(--bd-muted) !important;
  font-size: 0.88rem !important;
  line-height: 1.5 !important;
}

/* Submit button */
body.bd-bakeri-basics-active button[type="submit"],
body.bd-bakeri-basics-active input[type="submit"],
body.bd-bakeri-basics-active .wpforms-submit,
body.bd-bakeri-basics-active .gform_button,
body.bd-bakeri-basics-active .frm_button_submit,
body.bd-bakeri-basics-active .ff-btn-submit,
body.bd-bakeri-basics-active .nf-form-content button,
body.bd-bakeri-basics-active .forminator-button-submit {
  width: 100% !important;
  min-height: 54px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background:
    linear-gradient(135deg, var(--bd-gold-deep), var(--bd-gold)) !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  box-shadow: 0 16px 36px rgba(154,100,33,0.34) !important;
  cursor: pointer !important;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

body.bd-bakeri-basics-active button[type="submit"]:hover,
body.bd-bakeri-basics-active input[type="submit"]:hover,
body.bd-bakeri-basics-active .wpforms-submit:hover,
body.bd-bakeri-basics-active .gform_button:hover,
body.bd-bakeri-basics-active .frm_button_submit:hover,
body.bd-bakeri-basics-active .ff-btn-submit:hover,
body.bd-bakeri-basics-active .nf-form-content button:hover,
body.bd-bakeri-basics-active .forminator-button-submit:hover {
  transform: translateY(-2px);
  filter: saturate(1.12) brightness(1.04);
  box-shadow: 0 22px 48px rgba(154,100,33,0.42) !important;
}

/* Validation and messages */
body.bd-bakeri-basics-active .wpforms-error,
body.bd-bakeri-basics-active .gfield_validation_message,
body.bd-bakeri-basics-active .validation_message,
body.bd-bakeri-basics-active .frm_error,
body.bd-bakeri-basics-active .ff-el-is-error,
body.bd-bakeri-basics-active .nf-error-msg,
body.bd-bakeri-basics-active .forminator-error-message {
  color: #a4142d !important;
  font-weight: 800 !important;
}

body.bd-bakeri-basics-active .wpforms-confirmation-container-full,
body.bd-bakeri-basics-active .gform_confirmation_message,
body.bd-bakeri-basics-active .frm_message,
body.bd-bakeri-basics-active .ff-message-success,
body.bd-bakeri-basics-active .nf-response-msg,
body.bd-bakeri-basics-active .forminator-response-message {
  border: 1px solid rgba(201,154,59,0.42) !important;
  border-radius: 18px !important;
  background: #fff !important;
  color: var(--bd-ink) !important;
  padding: 1rem 1.2rem !important;
  box-shadow: 0 12px 30px rgba(36,22,56,0.08) !important;
}

/* Optional SEO/service hook cards if headings/paragraphs are present below the form */
body.bd-bakeri-basics-active .bd-seo-hooks {
  width: min(1180px, calc(100vw - 48px));
  margin: 0 auto 5rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

body.bd-bakeri-basics-active .bd-seo-hook {
  border: 1px solid rgba(201,154,59,0.38);
  border-radius: 20px;
  background: rgba(255,248,236,0.96);
  color: var(--bd-ink);
  padding: 1.1rem;
  box-shadow: 0 12px 28px rgba(0,0,0,0.12);
}

body.bd-bakeri-basics-active .bd-seo-hook strong {
  display: block;
  color: var(--bd-navy);
  font-size: 1.02rem;
  margin-bottom: 0.35rem;
}

body.bd-bakeri-basics-active .bd-seo-hook span {
  color: var(--bd-muted);
  font-size: 0.92rem;
  line-height: 1.45;
}

/* Motion polish */
body.bd-bakeri-basics-active .wpforms-container,
body.bd-bakeri-basics-active .gform_wrapper,
body.bd-bakeri-basics-active .wpcf7,
body.bd-bakeri-basics-active .frm_forms,
body.bd-bakeri-basics-active .ff-default,
body.bd-bakeri-basics-active .nf-form-cont,
body.bd-bakeri-basics-active .forminator-ui,
body.bd-bakeri-basics-active main form:not(.woocommerce-cart-form):not(.checkout):not(.search-form):not(.wp-block-search) {
  animation: bdFormRise 420ms ease both;
}

@keyframes bdFormRise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  body.bd-bakeri-basics-active *,
  body.bd-bakeri-basics-active *::before,
  body.bd-bakeri-basics-active *::after {
    animation: none !important;
    transition: none !important;
  }
}

@media (max-width: 900px) {
  body.bd-bakeri-basics-active .bd-seo-hooks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  body.bd-bakeri-basics-active .wpforms-container,
  body.bd-bakeri-basics-active .gform_wrapper,
  body.bd-bakeri-basics-active .wpcf7,
  body.bd-bakeri-basics-active .frm_forms,
  body.bd-bakeri-basics-active .ff-default,
  body.bd-bakeri-basics-active .nf-form-cont,
  body.bd-bakeri-basics-active .forminator-ui,
  body.bd-bakeri-basics-active main form:not(.woocommerce-cart-form):not(.checkout):not(.search-form):not(.wp-block-search) {
    width: min(100% - 28px, 1180px);
    border-radius: 20px !important;
    padding: 1.15rem !important;
  }

  body.bd-bakeri-basics-active main > h1,
  body.bd-bakeri-basics-active .entry-content > h1,
  body.bd-bakeri-basics-active main .wp-block-post-title {
    padding-top: 2.5rem;
  }

  body.bd-bakeri-basics-active .bd-seo-hooks {
    width: min(100% - 28px, 1180px);
    grid-template-columns: 1fr;
  }
}
