/*
Theme Name: Quixotifai Divi Child
Template: Divi
Version: 1.0.0
*/

/* Design tokens — mirror quixotifai-website/docs/DESIGN_TOKENS.md §3; keep Divi globals identical. */
:root {
  --qxf-ink: #0c1116;
  --qxf-canvas: #f4f1eb;
  --qxf-primary: #0c5c55;
  --qxf-accent: #c45c1a;
  --qxf-rule: #d9d4cc;
  --qxf-surface: #ffffff;
  --qxf-ink-muted: #4b5561;
  --qxf-max-width: 1140px;
}

/* Accessibility: consistent keyboard focus ring (prefer :focus-visible, keep mouse clicks quiet). */
:where(a, button, input, select, textarea, [role="button"], .et_pb_button):focus-visible {
  outline: 2px solid var(--qxf-primary);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(12, 92, 85, 0.28);
}

:where(a, button, input, select, textarea, [role="button"], .et_pb_button):focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

/* PDA embed: prevent global focus ring styling inside the chatbot UI. */
#qai-chatbot-container :where(input, textarea, [contenteditable="true"]):focus,
#qai-chatbot-container :where(input, textarea, [contenteditable="true"]):focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Optional helper for a highlighted “ai” segment in the wordmark HTML. */
.qai-mark {
  color: var(--qxf-accent);
  font-weight: 650;
}

/* Respect reduced motion preferences. */
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
  }
  :where(a, button, input, select, textarea, [role="button"], .et_pb_button) {
    transition: none !important;
    animation: none !important;
  }
}

/* Contact page polish (staging + live) */
body.qxf-page-contact #main-content {
  background: #f6f7fb;
}

body.qxf-page-contact .et_pb_section {
  padding-left: 16px;
  padding-right: 16px;
}

/* Make the main card feel intentional */
body.qxf-page-contact .et_pb_column_2_3 {
  background: #ffffff;
  border: 1px solid #e6e8ef;
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(2, 48, 71, 0.10);
  box-sizing: border-box;
  /* Inner breathing room so fields and button never hug the card edge */
  padding: 28px 32px 32px 32px !important;
}

body.qxf-page-contact .et_pb_column_2_3 .et_pb_contact_form_container {
  padding: 0;
}

body.qxf-page-contact .et_pb_contact_form_container .input,
body.qxf-page-contact .et_pb_contact_form_container input.text,
body.qxf-page-contact .et_pb_contact_form_container textarea {
  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;
  background: #ffffff !important;
  color: #0f172a !important;
  padding: 12px 14px !important;
  box-shadow: none !important;
}

body.qxf-page-contact .et_pb_contact_form_container .input:focus,
body.qxf-page-contact .et_pb_contact_form_container input.text:focus,
body.qxf-page-contact .et_pb_contact_form_container textarea:focus {
  outline: none !important;
  border-color: #fc8405 !important;
  box-shadow: 0 0 0 4px rgba(252, 132, 5, 0.15) !important;
}

body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_field label,
body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_field_options_title {
  display: block !important;
  color: #334155 !important;
  font-weight: 600 !important;
  margin: 0 0 6px 0 !important;
}

/* Divi default hides labels; override on Contact page */
body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_form_label {
  display: block !important;
  opacity: 1 !important;
  height: auto !important;
  width: auto !important;
  overflow: visible !important;
  position: static !important;
  clip: auto !important;
}

/* Ensure submit button has breathing room inside the card */
body.qxf-page-contact .et_pb_contact_form_container .et_contact_bottom_container {
  float: none !important;
  text-align: left !important;
  margin-top: 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

body.qxf-page-contact .et_pb_contact_form_container .et_pb_button {
  margin: 0 !important;
  padding: 12px 18px !important;
  border-radius: 5px !important;
  border: 0 !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  box-shadow: none !important;
  position: relative !important;
  overflow: hidden !important;
}

body.qxf-page-contact .et_pb_contact_form_container .et_pb_button:hover {
  transform: none;
  filter: brightness(1.03);
  box-shadow: none !important;
}

/* Divi adds an animated arrow via :after — keep it inside the button or hide */
body.qxf-page-contact .et_pb_contact_form_container .et_pb_button:after,
body.qxf-page-contact .et_pb_contact_form_container .et_pb_button:before {
  display: none !important;
  content: none !important;
}

/* Visible captcha (math question) alignment + spacing */
body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_right {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
}

body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_right p {
  margin: 0 !important;
}

body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_captcha_question {
  color: #334155 !important;
  font-weight: 700 !important;
}

body.qxf-page-contact .et_pb_contact_form_container input.et_pb_contact_captcha {
  max-width: 84px !important;
  padding: 10px 12px !important;
  background: #ffffff !important;
}

/* Make reCAPTCHA area + validation message readable and spaced */
body.qxf-page-contact .et_pb_contact_form_container .g-recaptcha,
body.qxf-page-contact .et_pb_contact_form_container .grecaptcha-badge,
body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_captcha {
  visibility: visible !important;
  opacity: 1 !important;
}

body.qxf-page-contact .et_pb_contact_form_container .et-pb-contact-message,
body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_error {
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 0 14px 0 !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(220, 38, 38, 0.25) !important;
  background: rgba(220, 38, 38, 0.08) !important;
  color: #991b1b !important;
}

/* Hide the (empty) message container on initial load */
body.qxf-page-contact .et_pb_contact_form_container .et-pb-contact-message:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* Improve placeholder contrast so fields don’t feel “invisible” */
body.qxf-page-contact .et_pb_contact_form_container ::placeholder {
  color: rgba(15, 23, 42, 0.55) !important;
}

/* Right column: single “Prefer email?” block */
body.qxf-page-contact .et_pb_column_1_3 h3 {
  margin: 0 0 14px 0;
  letter-spacing: -0.02em;
  font-size: 18px;
  color: #023047;
}

body.qxf-page-contact .et_pb_column_1_3 .quix-contact-email-list,
body.qxf-page-contact .et_pb_column_1_3 ul.quix-contact-email-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.qxf-page-contact .et_pb_column_1_3 .quix-contact-email-list li,
body.qxf-page-contact .et_pb_column_1_3 ul.quix-contact-email-list li {
  margin: 0 0 16px 0;
  padding: 0 0 16px 0;
  border-bottom: 1px solid #e6e8ef;
  line-height: 1.55;
  color: #334155;
}

body.qxf-page-contact .et_pb_column_1_3 .quix-contact-email-list li:last-child,
body.qxf-page-contact .et_pb_column_1_3 ul.quix-contact-email-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}

body.qxf-page-contact .et_pb_column_1_3 .quix-contact-email-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  margin-bottom: 4px;
}

body.qxf-page-contact .et_pb_column_1_3 .quix-contact-email-list a,
body.qxf-page-contact .et_pb_column_1_3 ul.quix-contact-email-list a {
  color: #0f172a !important;
  font-weight: 700;
  text-decoration: none;
}

body.qxf-page-contact .et_pb_column_1_3 .quix-contact-email-list a:hover,
body.qxf-page-contact .et_pb_column_1_3 ul.quix-contact-email-list a:hover {
  text-decoration: underline;
}

/* Mobile: stack captcha + button nicely */
@media (max-width: 980px) {
  body.qxf-page-contact .et_pb_contact_form_container .et_contact_bottom_container {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.qxf-page-contact .et_pb_contact_form_container .et_pb_contact_right {
    justify-content: flex-start !important;
  }
  body.qxf-page-contact .et_pb_contact_form_container .et_pb_button {
    width: 100% !important;
    text-align: center !important;
  }
}

/* Global footer layout polish (Divi Theme Builder) */
.et-l--footer .et_pb_section {
  padding-top: 28px;
  padding-bottom: 28px;
}

.et-l--footer .et_pb_row {
  max-width: 1200px;
  width: 100%;
  padding-left: 16px;
  padding-right: 16px;
  margin-left: auto;
  margin-right: auto;
}

/* Undo Divi column floats so footer items can sit inline */
.et-l--footer .et_pb_column {
  float: none !important;
  width: auto !important;
  display: inline-block !important;
  vertical-align: top;
  margin-right: 0 !important;
  text-align: left !important;
}

.et-l--footer .et_pb_column:last-child {
  display: block !important;
  width: 100% !important;
  margin-top: 10px !important;
}

/* Make footer items feel like one intentional block */
.et-l--footer .et_pb_text {
  display: inline-block;
  margin-bottom: 12px;
}

.et-l--footer a[href*="privacy-policy"],
.et-l--footer a[href*="cookie-policy"] {
  display: inline-block;
  opacity: 0.9;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* Put Privacy · Cookies on one line */
.et-l--footer a[href*="privacy-policy"] {
  margin-right: 0;
}

.et-l--footer a[href*="cookie-policy"] {
  margin-left: 0;
}

/* Keep the company line on its own row (best-effort; layout may vary) */
.et-l--footer .et_pb_text:last-child {
  display: block;
  width: 100%;
  margin-top: 10px;
}

@media (max-width: 980px) {
  .et-l--footer .et_pb_section {
    padding-top: 22px;
    padding-bottom: 22px;
  }
  .et-l--footer .et_pb_text {
    margin-bottom: 10px;
  }
}