
/* Contact form custom styles */
.wpcf7-form-control {
    border: 1px solid #9FA3B9 !important;
    border-radius: 8px !important;
    margin-top: 10px !important;
}

.wpcf7-text {
    height: 42px !important;
}

.wpcf7-textarea {
    height: 150px !important;
}

.wpcf7-form {
    p {
        margin-bottom: 20px !important;
    }
}

.wpcf7-submit {
    font-size: 14px !important;
    line-height: 17px !important;
    font-weight: 600 !important;
    padding: 13px 29px !important;
    margin-top: 30px !important;
    border: none !important;
    border-radius: 4px 4px 4px 4px !important;
    @media screen and (max-width: 640px) {
        width: 100% !important;
    }
}

.wpcf7-spinner {
    top: 22px;
}

.wpcf7-text, .wpcf7-textarea {
    color: #101851 !important;
    font-size: 16px !important;
}

/* *********** Kontakt form *********** */

.contact-form-wrap label input {
    padding: 0 15px;
    background-color: var(--form_bg_color);
    outline: 0;
    font-size: 15px;
    height: 38px;
    color: #101851;
    border: 1px solid #b2b5c6;
    border-radius: 8px;
    margin-top: 5px;
  }

  .label {
    font-weight: 500;
  }

  .contact-form-wrap textarea {
    width: 100%;
    padding: 8px 15px;
    box-sizing: border-box;
    margin-right: 0;
    background-color: var(--form_bg_color);
    color: #101851 !important;
    font-size: 15px !important;
    height: 150px !important;
    border: 1px solid #9fa3b9 !important;
    border-radius: 8px !important;
    margin-top: 10px !important;
    resize: none;
  }

  /* font-weight is set explicitly: the .error-message span (the one following the
     textarea) otherwise inherits a 700 from elsewhere and renders bold while the
     other three field errors render normal. */
  .contact-form-wrap .error {
    color: #dc3232;
    font-size: 13px;
    font-weight: 400;
    display: inline;
  }

  /* The submit is a plain <input type="submit"> with no Avada button class,
     so without this it falls back to the browser's default grey button. */
  .contact-form-wrap input[type="submit"] {
    margin-top: 10px;
    padding: 13px 29px;
    border: none;
    border-radius: 8px;
    background-color: var(--button_gradient_top_color, #163BFB);
    color: var(--button_accent_color, #fff);
    font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s;
  }

  .contact-form-wrap input[type="submit"]:hover,
  .contact-form-wrap input[type="submit"]:focus {
    background-color: var(--button_gradient_top_color_hover, #072ADE);
    color: var(--button_accent_hover_color, #fff);
  }

  .contact-form-wrap input[type="submit"]:active {
    transform: translateY(1px);
  }

  .contact-form-wrap input[type="submit"]:disabled {
    opacity: 0.6;
    cursor: not-allowed;
  }

  /* Shown only while the request is in flight (see setBusy() in fv-crm.js), so the
     disabled button reads as "sending" rather than "broken". */
  .contact-form-wrap .fv-form-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-left: 12px;
    vertical-align: middle;
    border: 2px solid rgba(22, 59, 251, 0.25);
    border-top-color: var(--button_gradient_top_color, #163BFB);
    border-radius: 50%;
    animation: fv-form-spin 0.7s linear infinite;
  }

  .contact-form-wrap .fv-form-spinner[hidden] {
    display: none;
  }

  @keyframes fv-form-spin {
    to { transform: rotate(360deg); }
  }

  @media (prefers-reduced-motion: reduce) {
    .contact-form-wrap .fv-form-spinner {
      animation-duration: 2.4s;
    }
  }

  .contact-form-wrap .kontakt-form-response, .consultancy-form-wrap .kontakt-form-response {
    background-color: #dff0d8;
    border: 1px solid #5ca340;
    color: #5ca340;
    border-radius: 0px 0px 0px 0px;
    padding: 25px;
    text-transform: uppercase;
    text-align: center;
  }

  /* *********** end of Kontakt form *********** */

/* *********** Consultancy form (Beratungsanfrage) *********** */

.fv-consult {
    /* Site design tokens (Avada global palette fallbacks) */
    --fvc-navy: var(--neutral-dark-blue-100, #101851);
    --fvc-body: var(--neutral-dark-blue-60, #707497);
    --fvc-label: var(--neutral-dark-blue-80, #404674);
    --fvc-blue: var(--primary-kings-blue-100, #163BFB);
    --fvc-blue-dark: #072ADE;
    --fvc-blue-bg: #E0EDFF;
    --fvc-blue-selected: #F0F6FE;
    --fvc-border: var(--neutral-dark-blue-20, #CFD1DC);
    --fvc-muted: var(--neutral-dark-blue-60, #707497);
    --fvc-cta: var(--accent-green-dark, #169C65);
    --fvc-cta-hover: #0F8654;
    --fvc-font-head: 'Montserrat', sans-serif;
    --fvc-font-body: 'Open Sans', Arial, sans-serif;
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 48px 64px;
    align-items: start;
    background: #F0F6FE;
    border-radius: 28px;
    padding: 48px;
    font-family: 'montserrat', sans-serif;
    color: var(--fvc-body);
}

.fv-consult--no-hero {
    grid-template-columns: minmax(0, 1fr);
    max-width: 760px;
}

/* ---- Hero column ---- */

.fv-consult-hero {
    display: flex;
    flex-direction: column;
    gap: 26px;
    min-width: 0;
    align-self: stretch;
}

.fv-consult-badge {
    display: inline-flex;
    align-self: flex-start;
    align-items: center;
    gap: 8px;
    background: var(--fvc-blue-bg);
    border: 1px solid #CCE0FF;
    color: var(--fvc-blue);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 7px 14px;
    border-radius: 999px;
    /* The badge is now a three-part scope line — keep it on one line where it fits and
       let it wrap inside the text span (not between dot and text) where it does not. */
    max-width: 100%;
}

.fv-consult-badge-text {
    min-width: 0;
    line-height: 1.4;
}

.fv-consult-badge-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--fvc-blue);
    box-sizing: border-box;
    flex-shrink: 0;
}

.fv-consult h2.fv-consult-headline {
    margin: 0;
    font-family: var(--fvc-font-head);
    font-size: clamp(26px, 2.3vw, 32px);
    line-height: 1.22;
    font-weight: 700;
    color: var(--fvc-navy);
    letter-spacing: -0.5px;
    text-wrap: balance;
}

.fv-consult-headline span {
    color: var(--fvc-blue);
}

.fv-consult-intro {
    margin: 0;
    font-size: 17px;
    line-height: 1.6;
    color: var(--fvc-body);
}

.fv-consult-benefits {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 6px;
}

.fv-consult-benefit {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.fv-consult-benefit-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--fvc-blue-bg);
    color: var(--fvc-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.fv-consult-benefit-icon svg {
    width: 24px;
    height: 24px;
    display: block;
}

.fv-consult-benefit-title {
    font-weight: 700;
    font-size: 16px;
    color: var(--fvc-navy);
}

.fv-consult-benefit-text {
    font-size: 14px;
    color: var(--fvc-body);
    margin-top: 3px;
    line-height: 1.5;
}

.fv-consult-steps {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(16, 36, 63, 0.08);
    padding: 22px 24px;
}

.fv-consult-steps-title {
    font-family: var(--fvc-font-head);
    font-weight: 700;
    font-size: 15px;
    color: var(--fvc-navy);
    margin-bottom: 16px;
}

.fv-consult-steps-row {
    display: flex;
    align-items: flex-start;
}

.fv-consult-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex: 1;
}

.fv-consult-step-num {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--fvc-blue-bg);
    color: var(--fvc-blue);
    font-weight: 700;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fv-consult-step-num.is-active {
    background: var(--fvc-blue);
    color: #fff;
}

.fv-consult-step-label {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--fvc-label);
    text-align: center;
    line-height: 1.3;
    text-wrap: balance;
    max-width: 110px;
}

.fv-consult-step-sub {
    font-size: 11.5px;
    font-weight: 400;
    color: var(--fvc-muted);
    text-align: center;
    line-height: 1.35;
    text-wrap: balance;
    max-width: 120px;
    margin-top: -4px; /* tightens against the label inside the 8px row gap */
}

.fv-consult-step-arrow {
    flex: 0.5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fvc-blue);
    opacity: 0.35;
    margin-top: 7px; /* centers on the 34px circles */
}

.fv-consult-step-arrow svg {
    width: 20px;
    height: 20px;
    display: block;
}

/* ---- Consultation photo (transparent cutout on the backdrop) ---- */

.fv-consult-photo {
    position: relative;
    margin-top: auto;
    padding-top: 8px;
    margin-bottom: -48px; /* sit flush on the backdrop's bottom edge */
    line-height: 0;
}

.fv-consult-photo img {
    width: 100%;
    height: auto;
    display: block;
    border: 0;
}

/* ---- Form card ---- */

.fv-consult-card {
    background: #fff;
    border: 1px solid #CCE0FF;
    border-radius: 20px;
    box-shadow: 0px 0px 15px 2px rgba(58, 76, 82, 0.12);
    padding: 48px 52px;
    min-width: 0;
}

.fv-consult-card-head {
    text-align: center;
    margin-bottom: 24px;
}

.fv-consult h3.fv-consult-card-title {
    margin: 0;
    font-family: var(--fvc-font-head);
    font-size: 30px;
    font-weight: 700;
    color: var(--fvc-navy);
}

.fv-consult-card-sub {
    margin: 8px 0 0;
    font-size: 15px;
    color: var(--fvc-body);
    line-height: 35px;
}

.fv-consult .consultancy-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.fv-consult-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.fv-consult-section-title {
    font-family: var(--fvc-font-head);
    font-weight: 700;
    font-size: 16px;
    color: var(--fvc-navy);
}

.fv-consult-section-sub {
    font-size: 13.5px;
    color: var(--fvc-body);
    margin-top: 4px;
}

.fv-consult-row-name {
    display: grid;
    grid-template-columns: 150px 1fr 1fr;
    gap: 16px;
}

.fv-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.fv-consult .label {
    font-size: 13px;
    font-weight: 600;
    color: var(--fvc-label);
}

.fv-consult input[type="text"],
.fv-consult input[type="email"],
.fv-consult input[type="tel"],
.fv-consult select {
    height: 50px;
    width: 100%;
    border: 1.5px solid var(--fvc-border);
    border-radius: 10px;
    padding: 0 14px;
    font-size: 15px;
    color: var(--fvc-navy);
    background: #fff;
    font-family: inherit;
    box-sizing: border-box;
    outline: 0;
    margin: 0;
}

.fv-consult input::placeholder,
.fv-consult textarea::placeholder {
    color: #9A9EBB;
}

.fv-consult input[type="text"]:focus,
.fv-consult input[type="email"]:focus,
.fv-consult input[type="tel"]:focus,
.fv-consult select:focus,
.fv-consult textarea:focus {
    border-color: var(--fvc-blue);
    box-shadow: none;
}

.fv-consult-phone {
    display: flex;
    gap: 10px;
}

.fv-consult-phone select {
    width: auto;
    flex-shrink: 0;
    background: #F0F6FE;
    color: var(--fvc-label);
    font-weight: 600;
}

.fv-consult-phone input {
    flex: 1;
    min-width: 0;
}

/* ---- Topic tiles (multi-select) ---- */

.fv-consult-topics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    grid-auto-rows: 1fr;
    gap: 14px;
}

.fv-topic {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-radius: 14px;
    cursor: pointer;
    border: 1.5px solid var(--fvc-border);
    background: #fff;
    box-sizing: border-box;
    margin: 0;
}

.fv-topic input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
}

.fv-topic-badge {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fv-topic-badge svg {
    width: 26px;
    height: 26px;
    display: block;
}

.fv-topic-badge--zins       { color: #4697F7; }
.fv-topic-badge--anlage     { color: #169C65; }
.fv-topic-badge--optimieren { color: #F59E0B; }
.fv-topic-badge--vorsorge   { color: #EC4899; }
.fv-topic-badge--sonstiges  { color: #707497; }

.fv-topic-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
}

.fv-topic-title {
    font-weight: 700;
    font-size: 15px;
    color: var(--fvc-navy);
}

.fv-topic-sub {
    font-size: 13px;
    color: var(--fvc-body);
    line-height: 1.35;
}

.fv-topic:hover {
    border-color: #CCE0FF;
    background: #FAFCFF;
}

.fv-topic:has(input:checked) {
    border-color: var(--fvc-blue);
    background: var(--fvc-blue-selected);
    box-shadow: 0 0 0 0.5px var(--fvc-blue), 0 4px 12px rgba(27, 107, 224, 0.14);
}

.fv-topic:has(input:focus-visible) {
    outline: 2px solid var(--fvc-blue);
    outline-offset: 2px;
}

/* Scope note under the topics — filters debt/payment enquiries before the form is filled in. */

.fv-consult-scope-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--fvc-blue-selected);
    border: 1px solid #CCE0FF;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--fvc-body);
}

.fv-consult-scope-note strong {
    color: var(--fvc-navy);
    font-weight: 700;
}

.fv-consult-scope-note-icon {
    flex-shrink: 0;
    color: var(--fvc-blue);
    margin-top: 1px;
}

.fv-consult-scope-note-icon svg {
    width: 17px;
    height: 17px;
    display: block;
}

.fv-consult .sonstiges-text-wrap textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1.5px solid var(--fvc-border);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 15px;
    color: var(--fvc-navy);
    font-family: inherit;
    margin-top: 8px;
    outline: 0;
}

/* ---- Consents + submit ---- */

.fv-consult-consents {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.consent-wrap {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    cursor: pointer;
    font-size: 13px;
    line-height: 1.55;
    color: var(--fvc-body, #5B6B80);
    margin: 0;
    font-weight: 400;
}

.consent-wrap input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex-shrink: 0;
    accent-color: #163BFB;
    cursor: pointer;
}

.consent-wrap span a {
    color: #163BFB;
    text-decoration: underline;
}

.consent-wrap span a:hover {
    color: #072ADE;
    text-decoration: underline;
}

.fv-consult-submit {
    min-height: 56px;
    padding: 10px 24px;
    width: 100%;
    border: none;
    border-radius: 10px;
    background: #163bfb;
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    font-family: var(--fvc-font-head);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0px 4px 12px rgba(22, 59, 251, 0.30);
    transition: background 0.2s, box-shadow 0.2s;
}

.fv-consult-submit:hover {
    background: #0A2DCA;
    box-shadow: 0px 6px 16px rgba(22, 59, 251, 0.40);
}

.fv-consult-submit:active {
    transform: translateY(1px);
}

.fv-consult-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.fv-consult-submit-arrow {
    font-size: 20px;
    line-height: 1;
}

/* Trust block directly under the submit button (replaces the single privacy line). */

.fv-consult-privacy {
    text-align: center;
    font-size: 12.5px;
    color: var(--fvc-muted);
    margin-top: -8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fv-consult-privacy-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-weight: 700;
    font-size: 13px;
    line-height: 1.4;
    color: var(--fvc-navy);
}

.fv-consult-privacy-icon {
    flex-shrink: 0;
    color: var(--fvc-cta);
    display: flex;
}

.fv-consult-privacy-icon svg {
    width: 15px;
    height: 15px;
    display: block;
}

.fv-consult-privacy-sub {
    font-size: 12px;
    line-height: 1.45;
    color: var(--fvc-muted);
}

/* ---- Errors ---- */

.consultancy-form-wrap .error {
    color: #DC2626;
    font-size: 13px;
    display: none;
}

.consultancy-form-wrap .input-error {
    border-color: #DC2626 !important;
}

.fv-consult .fv-consult-consents .error {
    margin-top: -6px;
    margin-left: 28px;
}

/* ---- Advisor vetting section (between the form and the trust bar) ---- */

/* Rendered outside .fv-consult: Avada globals with hex fallbacks. Kept on the page
   background with column rules instead of a light-blue band, so it reads as a distinct
   section rather than a second copy of the trust bar. */

.fv-consult-advisors {
    margin-top: 44px;
    font-family: 'montserrat', sans-serif;
    text-align: center;
}

.fv-consult-advisors h3.fv-consult-advisors-title {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--neutral-dark-blue-100, #101851);
}

.fv-consult-advisors-sub {
    margin: 12px 0 0;
    font-size: 16px;
    line-height: 1.5;
    color: var(--neutral-dark-blue-60, #707497);
}

.fv-consult-advisors-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 36px;
    text-align: left;
}

.fv-consult-advisor {
    padding: 4px 28px;
}

/* Rules between columns only — never before the first item in a row. */
.fv-consult-advisor + .fv-consult-advisor {
    border-left: 1px solid var(--neutral-dark-blue-20, #CFD1DC);
}

.fv-consult-advisor-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.fv-consult-advisor-icon {
    flex-shrink: 0;
    display: flex;
    color: var(--primary-kings-blue-100, #163BFB);
}

.fv-consult-advisor-icon svg {
    width: 26px;
    height: 26px;
    display: block;
}

.fv-consult-advisor-title {
    font-weight: 700;
    font-size: 15px;
    line-height: 1.3;
    color: var(--neutral-dark-blue-100, #101851);
}

.fv-consult-advisor-text {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--neutral-dark-blue-60, #707497);
}

/* ---- Trust bar (below the template) ---- */

.fv-consult-trust {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px 48px;
    background: #F0F6FE;
    border-radius: 28px;
    padding: 32px 40px;
    margin-top: 24px;
    font-family: 'montserrat', sans-serif;
}

.fv-consult-trust-item {
    display: block;
    text-align: center;
}

.fv-consult-trust-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #fff;
    color: var(--primary-kings-blue-100, #163BFB);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(16, 24, 81, 0.06);
    align-self: center;
}

.fv-consult-trust-icon svg {
    width: 26px;
    height: 26px;
    display: block;
}

.fv-consult-trust-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-bottom: 8px;
}

.fv-consult-trust-title {
    font-weight: 700;
    font-size: 15px;
    line-height: 1.35;
    color: var(--neutral-dark-blue-100, #101851);
}

.fv-consult-trust-text {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--neutral-dark-blue-60, #707497);
}

/* ---- Mobile early CTA ---- */

/* Desktop-hidden: above the layout breakpoint the form already sits next to the hero, so
   there is nothing to scroll to. Switched on in the 1099px block below. */

.fv-consult-early-cta {
    display: none;
}

.fv-consult-jump {
    min-height: 54px;
    padding: 10px 22px;
    width: 100%;
    border: none;
    border-radius: 10px;
    background: var(--primary-kings-blue-100, #163BFB);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    font-family: 'Montserrat', sans-serif;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-shadow: 0 4px 12px rgba(22, 59, 251, 0.30);
    transition: background 0.2s, box-shadow 0.2s;
}

.fv-consult-jump:hover {
    background: #0A2DCA;
    box-shadow: 0 6px 16px rgba(22, 59, 251, 0.40);
}

.fv-consult-jump:active {
    transform: translateY(1px);
}

.fv-consult-early-cta-note {
    text-align: center;
    font-size: 12.5px;
    color: var(--neutral-dark-blue-60, #707497);
    margin-top: 8px;
}

/* ---- Responsive ---- */

@media screen and (max-width: 1099px) {
    .fv-consult {
        grid-template-columns: minmax(0, 1fr);
    }
    .fv-consult-hero {
        padding-top: 0;
    }
    .fv-consult-photo {
        margin-top: 12px;
        margin-bottom: 0;
        display: none;
    }
    .fv-consult-trust {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    /* Two columns: the rule belongs between the pair, so clear it on every row start. */
    .fv-consult-advisors-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 32px;
    }
    .fv-consult-advisor:nth-child(2n + 1) {
        border-left: none;
        padding-left: 0;
    }
    .fv-consult-advisors h3.fv-consult-advisors-title {
        font-size: 24px;
    }

    .fv-consult-early-cta {
        display: block;
    }
}


@media screen and (max-width: 640px) {
    .fv-consult {
        padding: 20px 16px;
        border-radius: 20px;
    }
    .fv-consult-trust {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        padding: 24px 20px;
        border-radius: 20px;
        margin-top: 16px;
    }
    /* Single column: no vertical rules at all, separate with spacing instead. */
    .fv-consult-advisors {
        margin-top: 32px;
    }
    .fv-consult-advisors h3.fv-consult-advisors-title {
        font-size: 22px;
    }
    .fv-consult-advisors-sub {
        font-size: 15px;
    }
    .fv-consult-advisors-row {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 26px;
        margin-top: 28px;
    }
    /* Must match the base rule's specificity to clear it. */
    .fv-consult-advisor,
    .fv-consult-advisor + .fv-consult-advisor {
        padding: 0;
        border-left: none;
    }
    .fv-consult-card {
        padding: 28px 20px;
        border-radius: 18px;
    }
    .fv-consult h3.fv-consult-card-title {
        font-size: 26px;
    }
    .fv-consult-row-name {
        grid-template-columns: 1fr;
    }
    .fv-consult-badge {
        font-size: 11px;
        letter-spacing: 0.4px;
        line-height: 1.4;
    }
    /* Keep the arrows on mobile, but buy back the width the sublines need: tighter card
       padding, no row gap, and arrows on a fixed narrow track instead of flex: 0.5 (which
       would hand them ~13% of the row each). That leaves the three labels ~96px apiece. */
    .fv-consult-steps {
        padding: 20px 16px;
    }
    .fv-consult-steps-row {
        gap: 0;
    }
    .fv-consult-step-arrow {
        flex: 0 0 18px;
        margin-top: 10px; /* re-centres the smaller glyph on the 34px circles */
    }
    .fv-consult-step-arrow svg {
        width: 14px;
        height: 14px;
    }
    .fv-consult-step-label {
        font-size: 12px;
    }
    .fv-consult-step-sub {
        font-size: 11px;
    }
}

/* *********** end of Consultancy form *********** */

/* *********** newsletter *********** */
@media screen and (max-width: 640px) {
    .fusion-footer .fusion-column-last { /* newsletter order = second */
        order: -1;
    }
    .fusion-footer .fusion-column:nth-child(1) { /* about us order = first */
        order: -2;
    }
}

.fusion-footer .fusion-footer-widget-area .fusion-row .fusion-columns {
    display: flex; /* Set order for the newsletter */
}

.newsletter-wrapper p {
    margin-top: 10px;
    margin-bottom: 10px;
}

.newsletter-wrapper .email-button-group {
    display: flex;
    flex-direction: row;
    align-items: center;
    position: relative;
    margin-bottom: 10px;
}

.email-button-group input.newsletter-email {
    padding: 20px;
    margin-top: 0px;
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
    border: none;
    color: #676767;
}

.email-button-group p.sib-email-area {
    margin: 0px;
    flex: 1;
}

.sib-default-btn {
    padding: 12px !important;
    border-top-right-radius: 10px !important;
    border-bottom-right-radius: 10px !important;
    margin: 0px ;
    color: #fff !important;
    border: none !important;
}

.newsletter-acceptance {
    font-size: 12px;
}

.sib-acceptance a {
    display: inline-block;
    text-decoration: underline;
}

.sib-acceptance input[type="checkbox"] {
    margin-left: 0px;
}

form#sib_signup_form_1 {
    padding: 0px;
}

.newsletter-wrapper .wpcf7-form-control {
    margin: 0 !important;
    border: none !important;
}

.newsletter-wrapper input[data-form-type="email"] {
    border-top-right-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
    position: relative;
    width: calc(100% + 20px) !important;
    right: -5px;
    left: 0px;
    font-size: 14px !important;
    font-weight: 400;
}

.newsletter-wrapper p:nth-of-type(2) {
    display: flex;
    position: relative;
}

.newsletter-accordion-toggle {
    font-size: 12px;
    margin: 0px !important;
    opacity: 0.6;
    color: white;
}

.newsletter-accordion-toggle:hover {
    opacity: 1;
    cursor: pointer;
}

.newsletter-accordion-toggle i {
    margin-right: 8px;
}

.newsletter-accordion-content {
    font-size: 11px;
    line-height: 16px;
}

.newsletter-accordion-content a {
    display: inline-block;
    max-height: 15px;
    text-decoration: underline;
}

.newsletter-form-response {
    font-size: 12px;
    line-height: 16px;
    display: none;
}

.newsletter-form-response strong {
  color: white;
}

.inline-newsletter-wrapper .newsletter-form-response strong {
  color: #101851;
}

#newsletter_submit.disabled, #inline_newsletter_submit.disabled, #header_newsletter_submit.disabled {
  background-color: #9ea0b5;
  cursor: not-allowed;
}

#newsletter_submit.active, #inline_newsletter_submit.active, #header_newsletter_submit.active {
  background-color: blue;
  cursor: pointer;
}

/* *********** end of newsletter *********** */

/* *********** inline and header newsletter *********** */

.inline-newsletter-form-response, .header-newsletter-form-response {
    display: none;
    font-size: 13px;
}

.inline-newsletter-title, .header-newsletter-title {
    font-weight: 700;
    line-height: 19.5px;
    font-size: 16px;
    margin-bottom: 5px !important;
}

.inline-newsletter-subtitle, .header-newsletter-subtitle {
    line-height: 15px;
    font-size: 12px;
    margin-bottom: 15px !important;
}

.inline-newsletter-email[type="email"], .header-newsletter-email[type="email"] {
    border-radius: 4px;
    height: 40px;
    margin-bottom: 10px;
    color: #101851;
}

.inline-newsletter-acceptance, .header-newsletter-acceptance {
    font-size: 12px;
    line-height: 15px;
}

.inline-newsletter-acceptance a, .header-newsletter-acceptance a {
    color: #101851 !important;
    text-decoration: underline;
}

.inline-newsletter-acceptance input[type="checkbox"], .header-newsletter-acceptance input[type="checkbox"] {
    margin-left: 0px;
}

.inline-newsletter-accordion-toggle, .header-newsletter-accordion-toggle {
    font-size: 12px;
    margin: 0px !important;
    color: #000731;
    opacity: 0.7;
}

.inline-newsletter-accordion-toggle:hover, .header-newsletter-accordion-toggle:hover  {
    opacity: 1;
    cursor: pointer;
}

.inline-newsletter-accordion-toggle i, .header-newsletter-accordion-toggle i {
    margin-right: 8px;
}

.inline-newsletter-accordion-content, .header-newsletter-accordion-content  {
    font-size: 11px;
    line-height: 16px;
}

.inline-newsletter-accordion-content a, .header-newsletter-accordion-content a {
    display: inline-block;
    max-height: 15px;
    text-decoration: underline;
    color: #101851;
}

.inline-newsletter-btn, .header-newsletter-btn {
    border-radius: 4px !important;
    color: white;
    width: 100%;
    border: none;
    padding: 12px 29px;
    margin-top: 15px;
}

.full-opacity {
    opacity: 1;
}


/* *********** end of inline newsletter *********** */

/* Global site styles (search page, buttons, blog, accordion/FAQ, header fix)
   that used to live here were moved back to the child theme's style.css:
   this file only loads when a CRM shortcode renders, which left pages
   without one (e.g. DLPs) unstyled. */

@media screen and (max-width: 640px) {
    .contact-form-wrap {
      padding: 0 15px 0 0;
    }

    .contact-form-wrap input[type="submit"] {
      width: 100%;
    }
}
