/* ═══════════════════════════════════════════════════
   Section: CTA + Form
   ═══════════════════════════════════════════════════ */

/* ─── Section wrapper ─── */
.sw-cta-form {
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Overlay removed – baked into footer.png */
.sw-cta-form__overlay {
    display: none;
}

/* ─── Inner container ─── */
.sw-cta-form__inner {
    position: relative;
    z-index: 2;
    max-width: 1240px;
    margin: 0 auto;
    display: flex;
    gap: 80px;
    align-items: center;
    padding: 80px 0 60px;
}

/* ─── Left Column ─── */
.sw-cta-form__left {
    flex: 1 0 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.sw-cta-form__heading {
    font-family: 'Instrument Serif', serif;
    font-weight: 400;
    font-size: 54px;
    line-height: 1.003;
    color: #faf8f0;
    margin: 0;
    text-transform: capitalize;
}

.sw-cta-form__heading em {
    font-family: 'Instrument Serif', serif;
    font-style: italic;
}

.sw-cta-form__description {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 28px;
    color: #faf8f0;
    margin: 0;
    max-width: 536px;
}

/* ─── CTA Buttons ─── */
.sw-cta-form__buttons {
    display: flex;
    gap: 14px;
    align-items: center;
}

.sw-cta-form__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 20px;
    border-radius: 79px;
    text-decoration: none;
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 3.3px;
    line-height: 15.84px;
    text-transform: uppercase;
    white-space: nowrap;
    transition: opacity 0.2s ease;
}

.sw-cta-form__btn:hover {
    opacity: 0.85;
}

.sw-cta-form__btn img {
    flex-shrink: 0;
}

.sw-cta-form__btn--primary {
    background-color: #faf8f0;
    color: #2b2722;
    width: 309px;
}

.sw-cta-form__btn--secondary {
    background-color: rgba(250, 248, 240, 0.41);
    color: #ffffff;
    width: 211px;
    padding-left: 38px;
    padding-right: 26px;
}

/* ─── Phone ─── */
.sw-cta-form__phone {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 15px;
    line-height: 22px;
    color: #faf8f0;
    margin: 0;
}

.sw-cta-form__phone strong {
    font-weight: 600;
}

.sw-cta-form__phone a {
    color: #faf8f0;
    text-decoration: none;
}

.sw-cta-form__phone a:hover {
    opacity: 0.8;
}

/* ─── Trust Badges ─── */
.sw-cta-form__badges {
    display: flex;
    align-items: center;
    gap: 40px;
    width: 100%;
}

.sw-cta-form__badge {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sw-cta-form__badge img {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}

.sw-cta-form__badge span {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 25px;
    color: #faf8f0;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════
   Right Column: Form Card
   ═══════════════════════════════════════════════════ */
.sw-cta-form__card {
    flex-shrink: 0;
    width: 480px;
    padding: 40px 36px;
    background: rgba(250, 248, 240, 0.06);
    backdrop-filter: blur(11px);
    -webkit-backdrop-filter: blur(11px);
    border: 1px solid rgba(250, 248, 240, 0.12);
}

.sw-cta-form__card-heading {
    font-family: 'Instrument Serif', serif;
    font-weight: 400;
    font-size: 28px;
    line-height: 34px;
    color: #faf8f0;
    margin: 0;
}

.sw-cta-form__card-heading em {
    font-family: 'Instrument Serif', serif;
    font-style: italic;
    color: #b4a38b;
}

.sw-cta-form__card-subtitle {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 13px;
    line-height: 20px;
    color: rgba(250, 248, 240, 0.5);
    margin: 0;
}

.sw-cta-form__card-divider {
    display: block;
    width: 100%;
    height: 1px;
    background: rgba(250, 248, 240, 0.15);
    margin: 20px 0;
}

/* ─── Placeholder form (before GF is configured) ─── */
.sw-cta-form__placeholder-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sw-cta-form__field-row {
    display: flex;
    gap: 12px;
}

.sw-cta-form__field {
    width: 100%;
    background: #faf8f0;
    border: none;
    border-radius: 8px;
    padding: 14px 18px;
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: #2b2722;
    outline: none;
}

.sw-cta-form__field::placeholder {
    color: #9e9589;
}

.sw-cta-form__field--half {
    flex: 1 0 0;
    min-width: 0;
}

.sw-cta-form__field--textarea {
    height: 110px;
    resize: none;
}

.sw-cta-form__submit {
    width: 100%;
    padding: 16px;
    border: none;
    border-radius: 79px;
    background: linear-gradient(to right, #b4a38b, #9a8b76);
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 3.3px;
    color: #2b2722;
    cursor: pointer;
    text-align: center;
    margin-top: 8px;
}

/* ─── Gravity Forms overrides (when GF is active) ─── */
.sw-cta-form__gf-wrap .gform_wrapper {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .gform_body .gform_fields,
.sw-cta-form__gf-wrap .gform_wrapper .gform-body .gform_fields {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    grid-gap: 0 !important;
    grid-column-gap: 0 !important;
    grid-row-gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .gfield,
.sw-cta-form__gf-wrap .gform_wrapper .gfield--type-name,
.sw-cta-form__gf-wrap .gform_wrapper .gfield--type-email,
.sw-cta-form__gf-wrap .gform_wrapper .gfield--type-phone,
.sw-cta-form__gf-wrap .gform_wrapper .gfield--type-textarea {
    margin: 0 0 14px 0 !important;
    padding: 0 !important;
    grid-column: span 12 !important;
    width: 100% !important;
}

/* Remove bottom margin from last field */
.sw-cta-form__gf-wrap .gform_wrapper .gfield:last-child {
    margin-bottom: 0 !important;
}

.sw-cta-form__gf-wrap .gform_wrapper input[type="text"],
.sw-cta-form__gf-wrap .gform_wrapper input[type="email"],
.sw-cta-form__gf-wrap .gform_wrapper input[type="tel"],
.sw-cta-form__gf-wrap .gform_wrapper textarea,
.sw-cta-form__gf-wrap .gform_wrapper select {
    width: 100% !important;
    background: #faf8f0 !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 14px 18px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    color: #2b2722 !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
}

.sw-cta-form__gf-wrap .gform_wrapper textarea {
    height: 110px !important;
    resize: none !important;
    padding: 16px 18px !important;
}

.sw-cta-form__gf-wrap .gform_wrapper input::placeholder,
.sw-cta-form__gf-wrap .gform_wrapper textarea::placeholder {
    color: #9e9589 !important;
    opacity: 1 !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .gfield_label,
.sw-cta-form__gf-wrap .gform_wrapper .hidden_label .gfield_label,
.sw-cta-form__gf-wrap .gform_wrapper .gform-field-label {
    display: none !important;
}

/* Hide GF descriptions and validation container when not needed */
.sw-cta-form__gf-wrap .gform_wrapper .gfield_description {
    display: none !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .gform_footer,
.sw-cta-form__gf-wrap .gform_wrapper .gform_page_footer,
.sw-cta-form__gf-wrap .gform_wrapper .gform-footer {
    margin: 8px 0 0 !important;
    padding: 0 !important;
}

.sw-cta-form__gf-wrap .gform_wrapper input[type="submit"],
.sw-cta-form__gf-wrap .gform_wrapper button[type="submit"],
.sw-cta-form__gf-wrap .gform_wrapper .gform_button {
    width: 100% !important;
    padding: 16px !important;
    border: none !important;
    border-radius: 79px !important;
    background: linear-gradient(to right, #b4a38b, #9a8b76) !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 12px !important;
    letter-spacing: 3.3px !important;
    color: #2b2722 !important;
    cursor: pointer !important;
    text-transform: uppercase !important;
    line-height: normal !important;
    box-shadow: none !important;
    transition: opacity 0.2s ease !important;
}

.sw-cta-form__gf-wrap .gform_wrapper input[type="submit"]:hover,
.sw-cta-form__gf-wrap .gform_wrapper button[type="submit"]:hover,
.sw-cta-form__gf-wrap .gform_wrapper .gform_button:hover {
    opacity: 0.85 !important;
}

/* ── Name fields: side-by-side via custom CSS classes ── */
.sw-cta-form__gf-wrap .gform_wrapper .gfield.sw-gf-half {
    width: calc(50% - 7px) !important;
    flex: 0 0 calc(50% - 7px) !important;
    margin-bottom: 14px !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .gfield.sw-gf-half--left {
    margin-right: 14px !important;
}

/* Also support complex name field if used */
.sw-cta-form__gf-wrap .gform_wrapper .ginput_complex,
.sw-cta-form__gf-wrap .gform_wrapper .ginput_container_name {
    display: flex !important;
    gap: 12px !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .ginput_complex span,
.sw-cta-form__gf-wrap .gform_wrapper .ginput_container_name span {
    flex: 1 !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .ginput_complex label,
.sw-cta-form__gf-wrap .gform_wrapper .ginput_container_name label,
.sw-cta-form__gf-wrap .gform_wrapper .name_first label,
.sw-cta-form__gf-wrap .gform_wrapper .name_last label {
    display: none !important;
}

/* ── Validation styling ── */
.sw-cta-form__gf-wrap .gform_wrapper .gfield_error input,
.sw-cta-form__gf-wrap .gform_wrapper .gfield_error textarea {
    border: 1px solid rgba(209, 33, 33, 0.4) !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .validation_message,
.sw-cta-form__gf-wrap .gform_wrapper .gfield_validation_message {
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    color: #d12121 !important;
    margin-top: 4px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}

.sw-cta-form__gf-wrap .gform_wrapper .gform_validation_errors,
.sw-cta-form__gf-wrap .gform_wrapper .validation_error {
    display: none !important;
}

/* ── GF Spinner ── */
.sw-cta-form__gf-wrap .gform_wrapper .gform_ajax_spinner {
    display: none !important;
}

/* ─── Thank You Confirmation ─── */
.sw-cta-form__gf-wrap .gform_confirmation_wrapper,
.sw-cta-form__gf-wrap .gform_confirmation_message {
    text-align: center;
    padding: 30px 20px;
}

.sw-gf-thankyou {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 20px 0;
}

.sw-gf-thankyou h3 {
    font-family: 'Instrument Serif', serif;
    font-weight: 400;
    font-size: 32px;
    line-height: 1.2;
    color: #faf8f0;
    margin: 0;
}

.sw-gf-thankyou p {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 22px;
    color: rgba(250, 248, 240, 0.7);
    margin: 0;
    max-width: 360px;
}

/* ═══════════════════════════════════════════════════
   Footer (inside CTA section, shared background)
   ═══════════════════════════════════════════════════ */
.sw-footer {
    position: relative;
    z-index: 2;
}

.sw-footer__inner {
    max-width: 1240px;
    margin: 0 auto;
}

/* ─── Main row ─── */
.sw-footer__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
}

.sw-footer__brand {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex-shrink: 0;
}

.sw-footer__brand-logo {
    display: block;
    height: 24px;
    width: 181px;
}

.sw-footer__tagline {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 20px;
    color: rgba(250, 248, 240, 0.6);
    margin: 0;
}

/* ─── Social ─── */
.sw-footer__social {
    display: flex;
    gap: 16px;
    flex-shrink: 0;
}

.sw-footer__social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    transition: opacity 0.2s ease;
}

.sw-footer__social a:hover {
    opacity: 0.7;
}

.sw-footer__social img {
    width: 20px;
    height: 20px;
}

/* ─── Divider ─── */
.sw-footer__divider {
    display: block;
    width: 100%;
    height: 1px;
    background: rgba(250, 248, 240, 0.1);
}

/* ─── Legal row ─── */
.sw-footer__legal {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 0;
}

.sw-footer__copyright {
    font-family: 'Inter', sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: normal;
    color: rgba(250, 248, 240, 0.5);
    margin: 0;
    text-align: center;
}

/* ═══════════════════════════════════════════════════
   Responsive
   ═══════════════════════════════════════════════════ */
@media (max-width: 1240px) {
    .sw-cta-form__inner {
        padding: 80px 32px 60px;
        gap: 50px;
    }

    .sw-cta-form__btn--primary {
        width: auto;
    }

    .sw-cta-form__btn--secondary {
        width: auto;
    }

    .sw-footer__inner {
        padding: 0 32px;
    }
}

@media (max-width: 960px) {
    /* ── CTA Section ── */
    .sw-cta-form__inner {
        flex-direction: column;
        gap: 36px;
        padding: 40px 20px;
        align-items: center;
    }

    .sw-cta-form__left {
        align-items: center;
        text-align: center;
        gap: 22px;
    }

    .sw-cta-form__heading {
        font-size: 40px;
        line-height: 44px;
    }

    .sw-cta-form__description {
        max-width: 100%;
        line-height: 26px;
    }

    .sw-cta-form__buttons {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 14px;
    }

    .sw-cta-form__btn--primary,
    .sw-cta-form__btn--secondary {
        width: 100%;
    }

    .sw-cta-form__badges {
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }

    .sw-cta-form__badge span {
        font-size: 16px;
        line-height: 25px;
    }

    /* ── Form Card ── */
    .sw-cta-form__card {
        width: 100%;
        padding: 32px 24px;
    }

    .sw-cta-form__card-heading {
        font-size: 26px;
        line-height: 32px;
    }

    .sw-cta-form__field {
        padding: 13px 16px;
    }

    .sw-cta-form__field-row {
        gap: 10px;
    }

    .sw-cta-form__placeholder-form {
        gap: 12px;
    }

    .sw-cta-form__card-divider {
        margin: 18px 0;
    }

    .sw-cta-form__submit {
        margin-top: 8px;
    }

    /* ── GF form mobile overrides ── */
    .sw-cta-form__gf-wrap .gform_wrapper .gfield {
        margin-bottom: 12px !important;
    }

    .sw-cta-form__gf-wrap .gform_wrapper .gfield:last-child {
        margin-bottom: 0 !important;
    }

    .sw-cta-form__gf-wrap .gform_wrapper .gfield.sw-gf-half {
        width: calc(50% - 5px) !important;
        flex: 0 0 calc(50% - 5px) !important;
        margin-bottom: 12px !important;
    }

    .sw-cta-form__gf-wrap .gform_wrapper .gfield.sw-gf-half--left {
        margin-right: 10px !important;
    }

    .sw-cta-form__gf-wrap .gform_wrapper input[type="text"],
    .sw-cta-form__gf-wrap .gform_wrapper input[type="email"],
    .sw-cta-form__gf-wrap .gform_wrapper input[type="tel"],
    .sw-cta-form__gf-wrap .gform_wrapper textarea {
        padding: 13px 16px !important;
        border-radius: 8px !important;
    }

    .sw-cta-form__gf-wrap .gform_wrapper textarea {
        padding: 14px 16px !important;
    }

    /* ── Footer ── */
    .sw-footer__inner {
        padding: 0 20px;
    }

    .sw-footer__main {
        flex-direction: column;
        align-items: center;
        gap: 24px;
        padding: 12px 0;
    }

    .sw-footer__brand {
        align-items: center;
        text-align: center;
    }

    .sw-footer__tagline {
        text-align: center;
        width: 300px;
    }

    .sw-footer__social {
        justify-content: center;
    }

    .sw-footer__legal {
        padding: 12px 0;
    }
}
