/* Site forms (Contact Form 7 replacement) + WhatsApp secondary CTA */
.static-contact, .qa-form-wrap { margin: 0 0 20px; }
.static-contact p, .qa-form-wrap > p:first-child { margin: 0 0 18px; }
.static-contact__buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.static-contact__buttons .fusion-button { display: inline-flex; align-items: center; gap: 8px; }
#contacto .qa-form-wrap > p:first-child, #contacto .static-contact p { color: #a9aca5; }
.qa-form { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.qa-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) { .qa-form__row { grid-template-columns: 1fr; } }
.qa-form__field label, .qa-form__fieldset legend { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; color: #242833; }
.qa-form__req { color: #92242b; }
.qa-form__field input, .qa-form__field textarea {
  width: 100%; min-height: 44px; padding: 10px 12px; font-size: 16px; line-height: 1.4;
  border: 1px solid #c4c5c7; border-radius: 4px; background: #fff; box-sizing: border-box;
}
.qa-form__field textarea { min-height: 100px; resize: vertical; }
.qa-form__field input:focus, .qa-form__field textarea:focus {
  outline: 2px solid #92242b; outline-offset: 1px; border-color: #92242b;
}
.qa-form__fieldset { border: 0; margin: 0; padding: 0; }
.qa-form__checks { display: flex; flex-direction: column; gap: 8px; }
.qa-form__check { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; font-weight: 400; cursor: pointer; min-height: 44px; }
.qa-form__check input { width: 20px; height: 20px; margin-top: 10px; flex-shrink: 0; }
.qa-form__turnstile { min-height: 65px; margin: 4px 0; }
.qa-form__actions .qa-form__submit { min-height: 44px; cursor: pointer; }
.qa-form__status { margin: 0; font-size: 15px; }
.qa-form__status--error { color: #92242b; }
.qa-form__status--ok { color: #2d6a4f; }
.qa-form__wa-label { margin: 12px 0 8px; font-size: 14px; color: #6b6f76; }
#contacto .qa-form__field label, #contacto .qa-form__fieldset legend { color: #e8e9ea; }
#contacto .qa-form__wa-label { color: #a9aca5; }
.static-joinchat { display: block; position: fixed; z-index: 9000; right: 20px; bottom: 20px; text-decoration: none; }
.static-joinchat.joinchat { opacity: 1; visibility: visible; transform: none; }

/* ---- Mobile / responsive fixes (Avada behaviours that WordPress applied with JS or theme options) ---- */
/* Long buttons (e.g. the e-mail address) must wrap instead of overflowing their box on phones */
.static-contact__buttons .fusion-button { max-width: 100%; white-space: normal; overflow-wrap: break-word; text-align: left; }
@media only screen and (max-width: 640px) { .fusion-body .static-contact .static-contact__buttons a.fusion-button.static-form-btn { padding-left: 18px; padding-right: 18px; }
  /* the grey box padding was sized for the old form; give the text + buttons room on phones */
  main .fusion-column-wrapper:has(> .static-contact) { padding-left: 24px !important; padding-right: 24px !important; } }
.static-contact__buttons .fusion-button .fusion-button-text { min-width: 0; }
/* "100% height" rows are only full-height on desktop (container_hundred_percent_height_mobile = 0) */
@media only screen and (max-width: 1000px) {
  .hundred-percent-height.non-hundred-percent-height-scrolling { height: auto !important; min-height: 0 !important; }
  .hundred-percent-height.non-hundred-percent-height-scrolling .fusion-fullwidth-center-content { height: auto !important; }
}
/* Tablets (641-1024px): WordPress showed no header at all in this range; show the mobile header + menu */
@media only screen and (min-width: 641px) and (max-width: 1024px) {
  .fusion-tb-header .fusion-sticky-container.fusion-no-medium-visibility.fusion-no-large-visibility { display: flex !important; }
}
/* Long words / URLs in content never force horizontal scrolling */
.post-content, .fusion-text, .fusion-title, .entry-title { overflow-wrap: break-word; }
.post-content iframe, .fusion-text iframe, .fusion-text img, .post-content img { max-width: 100%; }

/* Process steps: the numbered arrows (WEB-QUAESTUS-V5-13..17) were exported at 1x1 by the lazy-load port */
.qa-step-arrow { width: 100%; max-width: 267px; height: auto; display: block; }
#construccion-portafolio .fusion-imageframe { display: block; margin-top: 8px; }

/* Avada sliders: arrows appear on hover (original behaviour) and stay reachable on touch */
.flexslider { position: relative; }
.flexslider .flex-direction-nav { display: block !important; position: absolute; left: 0; right: 0; top: 0; bottom: 0; height: auto; margin: 0; padding: 0; list-style: none; pointer-events: none; z-index: 6; }
.flexslider .flex-direction-nav li { list-style: none; margin: 0; padding: 0; }
.flexslider .flex-direction-nav a { pointer-events: auto; position: absolute; top: 50%; transform: translateY(-50%); width: 63px; height: 63px; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.45); color: #fff; text-decoration: none; opacity: 0; transition: opacity .3s ease; }
.flexslider:hover .flex-direction-nav a, .flexslider:focus-within .flex-direction-nav a { opacity: .85; }
.flexslider .flex-direction-nav a:hover, .flexslider .flex-direction-nav a:focus { opacity: 1; outline: 2px solid #fff; outline-offset: -4px; }
.flexslider .flex-direction-nav .flex-prev { left: 0; }
.flexslider .flex-direction-nav .flex-next { right: 0; }
@media (hover: none), (max-width: 1000px) {
  .flexslider .flex-direction-nav a { opacity: .8; width: 44px; height: 44px; }
  /* phones: arrows sit on the dots row (site.js sets --qa-arrow-top) instead of covering the centred text; full-width rows
     overhang the viewport by a few px, so keep them inset */
  .flexslider .flex-direction-nav a { top: var(--qa-arrow-top, auto); bottom: auto; transform: translateY(-50%); width: 40px; height: 40px; }
  .flexslider .flex-direction-nav .flex-prev { left: 14px; }
  .flexslider .flex-direction-nav .flex-next { right: 14px; }
}
/* Mobile process steps slider (paso-1..5.png): show the whole step (number + arrow + text) instead of cropping it */
.fusion-slider-sc-pasos-portafolio .background { background-size: contain !important; background-position: center !important; background-repeat: no-repeat !important; }

/* Productos: the two buttons share the row and stay centred instead of leaving an empty third */
.qa-productos-buttons > .fusion-builder-row { justify-content: center; }

/* Kit newsletter modal ("Tomá mejores decisiones", opens at 20% scroll; same Kit embed as the WordPress site).
   Kit's template inherits Avada's 18px / 1.7 typography, so it rendered ~1230px tall: on a laptop the header or the
   "QUIERO" button sat outside the viewport behind an overlay scrollbar that is easy to miss. Compact the type,
   and centre it with auto margins so a modal taller than the screen starts at the top and scrolls naturally. */
.formkit-overlay { justify-content: flex-start !important; align-items: center !important; padding: 24px 12px !important; overscroll-behavior: contain; }
.formkit-overlay .formkit-modal { margin: auto !important; height: auto !important; max-height: none !important; }
.formkit-form[data-uid="ed2162d293"] { max-width: 720px !important; line-height: 1.4; }
.formkit-form[data-uid="ed2162d293"] .formkit-column { padding: 26px 28px 16px !important; flex: 1 1 auto; }
.formkit-form[data-uid="ed2162d293"] .formkit-background { flex: 0 0 34%; margin: 16px 16px 16px 0 !important; height: auto !important; min-height: 220px; }
.formkit-form[data-uid="ed2162d293"] .formkit-header { font-size: 26px !important; line-height: 1.2 !important; margin-bottom: 10px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-header h2 { font-size: 26px !important; line-height: 1.2 !important; margin: 0 !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-content { margin-bottom: 14px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-content p { font-size: 14px !important; line-height: 1.45 !important; margin: 0 0 6px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-alert:empty { display: none !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-field { margin-bottom: 8px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-input { height: 42px !important; }
.formkit-form[data-uid="ed2162d293"] fieldset legend { font-size: 14px !important; line-height: 1.4 !important; margin: 4px 0 6px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-checkboxes { font-size: 14px !important; line-height: 1.4 !important; margin: 0 0 6px !important; padding: 4px 6px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-checkboxes label { font-size: 14px !important; line-height: 1.4 !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-submit { margin: 6px 0 4px !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-disclaimer p { margin: 6px 0 !important; line-height: 1.4 !important; }
.formkit-form[data-uid="ed2162d293"] .formkit-powered-by-convertkit-container { margin: 6px 0 0 !important; line-height: 1.4 !important; }
@media (max-width: 640px) {
  .formkit-overlay { padding: 12px 10px !important; }
  .formkit-form[data-uid="ed2162d293"] .formkit-background { display: none !important; }
  .formkit-form[data-uid="ed2162d293"] .formkit-column { padding: 44px 18px 14px !important; }
  .formkit-form[data-uid="ed2162d293"] .formkit-header, .formkit-form[data-uid="ed2162d293"] .formkit-header h2 { font-size: 22px !important; }
}

/* Team profiles: every bio justified (Spanish hyphenation; <html lang="es">) */
.tlp-member-detail, .tlp-member-detail p, .tlp-member-detail li { text-align: justify !important; -webkit-hyphens: auto; hyphens: auto; }

/* Team / asesores grids: equal-height cards; position area always reserves 3 lines */
.rt-grid-item .tlp-content .tlp-position { min-height: 72px; line-height: 24px; }
