/* Contact form section (home.contact_form) — style variants */

.tf-contact-form__panel {
    position: relative;
    overflow: hidden;
    min-height: 320px;
}

.tf-contact-form__panel-img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.tf-contact-form__panel-inner {
    position: relative;
    z-index: 1;
    width: 100%;
}

.tf-contact-form__panel--image::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(180deg, rgba(18, 18, 18, 0.08), rgba(18, 18, 18, 0.28));
    pointer-events: none;
}

.tf-contact-form__copy,
.tf-contact-form__copy .s-title,
.tf-contact-form__copy .s-desc,
.tf-contact-form__copy .eyebrow-label,
.tf-contact-form__copy .eyebrow-label span {
    color: inherit;
}

.tf-contact-form__copy.is-empty,
.tf-contact-form__copy[data-tf-empty="1"],
.tf-contact-form-style--2__intro.is-empty,
.tf-contact-form-style--2__intro[data-tf-empty="1"],
.tf-contact-form-style--3__copy.is-empty,
.tf-contact-form-style--3__copy[data-tf-empty="1"] {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    min-height: 0 !important;
}

.tf-contact-form__copy .s-title[data-tf-empty="1"],
.tf-contact-form__copy .s-desc[data-tf-empty="1"],
.tf-contact-form__copy .s-title.d-none,
.tf-contact-form__copy .s-desc.d-none,
.tf-contact-form__card-title[data-tf-empty="1"],
.tf-contact-form__card-title.d-none {
    display: none !important;
    margin: 0 !important;
}

.tf-contact-form__card--no-title .tf-contact-form__card-title {
    display: none !important;
    margin: 0 !important;
}

/* Form card */
.tf-contact-form__card,
.section-contact .tf-contact-form__card.col-media_inner {
    position: relative;
    z-index: 1;
    padding: 40px;
    border-radius: 8px;
    background: var(--tf-card-bg-color, var(--white, #fff));
    box-shadow: 0 12px 40px rgba(24, 24, 27, 0.08);
    overflow: hidden;
    color: #18181b;
}

.tf-contact-form__card--image,
.section-contact .tf-contact-form__card--image.col-media_inner {
    background-color: transparent;
}

.tf-contact-form__card-body {
    position: relative;
    z-index: 1;
}

.tf-contact-form__card-title,
.tf-contact-form__card .tf-field > label,
.tf-contact-form__card .contact-form-result,
.tf-section[data-tf-type="home.contact_form"] .tf-contact-form__card h5,
.tf-section[data-tf-type="home.contact_form"] .tf-contact-form__card .text-body-xs {
    color: inherit;
}

.tf-contact-form__card-img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.tf-contact-form__card-veil {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(255, 255, 255, 0.78);
    pointer-events: none;
}

.tf-contact-form__card--glass:not(.tf-contact-form__card--image) {
    background: color-mix(in srgb, var(--tf-card-bg-color, #ffffff) 88%, transparent);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.18);
}

.tf-contact-form__card--image.tf-contact-form__card--glass {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-color: rgba(255, 255, 255, 0.35);
}

/* Style 1 & 4 */
.tf-contact-form-style--1 .col-content.tf-contact-form__panel--image,
.tf-contact-form-style--4 .col-content.tf-contact-form__panel--image {
    background-color: transparent !important;
}

.tf-contact-form-style--1 .col-content.is-empty,
.tf-contact-form-style--1 .col-content[data-tf-empty="1"],
.tf-contact-form-style--4 .col-content.is-empty,
.tf-contact-form-style--4 .col-content[data-tf-empty="1"] {
    display: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.tf-contact-form-style--no-copy.section-split,
.tf-contact-form-style--1.tf-contact-form-style--no-copy,
.tf-contact-form-style--4.tf-contact-form-style--no-copy {
    display: block;
}

.tf-contact-form-style--no-copy .col-media {
    width: 100%;
    max-width: 100%;
    padding-top: 40px;
    padding-bottom: 40px;
}

.tf-contact-form-style--1 .col-media.tf-contact-form__panel--color,
.tf-contact-form-style--4 .col-media.tf-contact-form__panel--color {
    background-image: none;
}

.tf-contact-form-style--1 .col-media.tf-contact-form__panel--color > img.tf-input-image,
.tf-contact-form-style--4 .col-media.tf-contact-form__panel--color > img.tf-input-image {
    display: none;
}

/* Style 2 — centered card */
.tf-contact-form-style--2 {
    position: relative;
    isolation: isolate;
    padding: 72px 0;
    overflow: hidden;
}

.tf-contact-form-style--2__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.tf-contact-form-style--2__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tf-contact-form-style--2__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.72);
}

.tf-contact-form-style--2__inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin-inline: auto;
}

.tf-contact-form-style--2__intro {
    margin-bottom: 32px;
}

.tf-contact-form-style--2__intro.is-empty,
.tf-contact-form-style--2__intro[data-tf-empty="1"] {
    margin-bottom: 0 !important;
}

.tf-contact-form-style--2__intro .sect-heading-v2 {
    align-items: center;
    text-align: center;
    margin-bottom: 0;
}

.tf-contact-form-style--2__intro .eyebrow-label {
    justify-content: center;
}

.tf-contact-form-style--2__card {
    margin-inline: auto;
}

/* Style 3 — full-bleed glass */
.tf-contact-form-style--3 {
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: clamp(560px, 72vh, 860px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background-color: #1c1a17;
    box-sizing: border-box;
}

.tf-contact-form-style--3__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.tf-contact-form-style--3__bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
}

.tf-contact-form-style--3__veil {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(105deg, rgba(16, 14, 12, 0.72) 0%, rgba(16, 14, 12, 0.42) 48%, rgba(16, 14, 12, 0.55) 100%);
    pointer-events: none;
}

.tf-contact-form-style--3__inner {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-block: 64px;
    padding-inline: clamp(24px, 5vw, 72px);
    box-sizing: border-box;
}

.tf-contact-form-style--3__grid {
    display: grid;
    gap: 40px;
    align-items: center;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-inline: 0;
    box-sizing: border-box;
}

@media (min-width: 992px) {
    .tf-contact-form-style--3__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
        gap: 64px;
    }
}

.tf-contact-form-style--3__copy {
    min-width: 0;
    max-width: 100%;
}

.tf-contact-form-style--3__grid--form-only {
    grid-template-columns: minmax(0, 1fr) !important;
}

.tf-contact-form-style--3__grid--form-only .tf-contact-form-style--3__card {
    max-width: min(560px, 100%);
    justify-self: center;
}

.tf-contact-form-style--3__copy .s-desc {
    opacity: 0.86;
    max-width: 34ch;
}

.tf-contact-form-style--3__card {
    width: 100%;
    max-width: min(460px, 100%);
    min-width: 0;
    justify-self: end;
    margin-inline: 0;
    box-sizing: border-box;
}

.tf-contact-form-style--3 .tf-contact-form__card,
.tf-contact-form-style--3 .tf-contact-form-fields,
.tf-contact-form-style--3 .tf-field,
.tf-contact-form-style--3 .form-content {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.tf-contact-form-style--3 .tf-contact-form-fields input,
.tf-contact-form-style--3 .tf-contact-form-fields textarea,
.tf-contact-form-style--3 .tf-contact-form-fields .tf-btn {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Style 4 */
.tf-contact-form-style--4 .col-media {
    order: 0;
}

.tf-contact-form-style--4 .col-content {
    order: 1;
}

@media (max-width: 767px) {
    .tf-contact-form__card {
        padding: 28px 20px;
    }

    .tf-contact-form-style--2 {
        padding: 48px 0;
    }

    .tf-contact-form-style--3 {
        min-height: 0;
    }

    .tf-contact-form-style--3__inner {
        padding-block: 48px;
        padding-inline: 16px;
    }

    .tf-contact-form-style--3__grid {
        gap: 28px;
    }

    .tf-contact-form-style--3__card {
        max-width: 100%;
        justify-self: stretch;
    }

    .tf-contact-form-style--3__copy .s-desc {
        max-width: none;
    }
}

/* Theme Studio device toggle — iframe width may not match @media */
html[data-device="mobile"] .tf-contact-form-style--3,
body[data-device="mobile"] .tf-contact-form-style--3 {
    min-height: 0;
    width: 100%;
    max-width: 100%;
}

html[data-device="mobile"] .tf-contact-form-style--3__inner,
body[data-device="mobile"] .tf-contact-form-style--3__inner {
    padding-block: 48px;
    padding-inline: 16px;
}

html[data-device="mobile"] .tf-contact-form-style--3__grid,
body[data-device="mobile"] .tf-contact-form-style--3__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
}

html[data-device="mobile"] .tf-contact-form-style--3__card,
body[data-device="mobile"] .tf-contact-form-style--3__card,
html[data-device="tablet"] .tf-contact-form-style--3__card,
body[data-device="tablet"] .tf-contact-form-style--3__card {
    max-width: 100%;
    justify-self: stretch;
}

html[data-device="mobile"] .tf-contact-form__card,
body[data-device="mobile"] .tf-contact-form__card {
    padding: 28px 20px;
}

html[data-device="tablet"] .tf-contact-form-style--3__grid,
body[data-device="tablet"] .tf-contact-form-style--3__grid {
    grid-template-columns: minmax(0, 1fr);
}
