/* ==========================================================================
   Block: Contact Section — Figma node 4500:10090
   Background: #c8bbab (Stone)
   Layout: flex row, justify-between, items-start
           Left: detail 538px · Right: form 650px
   Padding: 80px 60px
   ========================================================================== */

.contact-section {
    background-color: #c8bbab;              /* Stone — Figma Secondary/Stone */
    padding: 80px 60px;
}

/* ── Inner wrapper — flex row ─────────────────────────────────────────────── */
.contact-section__inner {
    max-width: var(--max-width);
    margin-inline: auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 40px;
}

/* ── LEFT column: detail ──────────────────────────────────────────────────── */
.contact-section__detail {
    flex: 0 1 538px;
    display: flex;
    flex-direction: column;
    gap: 30px;                              /* gap between text block + addresses */
}

/* Text block: label → H2 → description, gap 28px */
.contact-section__text {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

/* Label: 14px Geist Medium, uppercase */
.contact-section__label {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0;
    text-transform: uppercase;
    color: var(--color-dark);
}

/* H2: 40px Freight Neo Book, lh 1.15 */
.contact-section__heading {
    font-family: var(--font-heading);
    font-size: clamp(2rem, 3.5vw, 2.5rem);
    font-weight: 400;
    line-height: 1.15;
    color: var(--color-dark);
}

/* Description: 16px Geist Light, lh 1.39 */
.contact-section__description {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 300;
    line-height: 1.39;
    color: var(--color-dark);
}

/* ── Address container: gap 25px ──────────────────────────────────────────── */
.contact-section__addresses {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Address block: state name + lines */
.contact-section__address-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.contact-section__address-state {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;                       /* Geist Bold */
    line-height: 1.3;
    color: var(--color-dark);
}

.contact-section__address-lines {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;                       /* Geist Light */
    line-height: 1.3;
    color: var(--color-dark);
}

.contact-section__address-lines p {
    margin: 0;
}

/* Phone / email — underline link style */
.contact-section__link {
    display: inline-flex;
    align-self: flex-start;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0.14px;
    color: var(--color-dark);
    text-decoration: none;
    border-bottom: 0.5px solid var(--color-dark);
    padding-bottom: 1px;
    transition: opacity 0.2s;
}

.contact-section__link:hover {
    opacity: 0.65;
}

/* ── Social icons row ─────────────────────────────────────────────────────── */
.contact-section__social {
    display: flex;
    gap: 14px;
    align-items: center;
}

.contact-section__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-dark);
    text-decoration: none;
    transition: opacity 0.2s;
    flex-shrink: 0;
}

.contact-section__social-link:hover {
    opacity: 0.55;
}

.contact-section__social-link svg {
    display: block;
    width: 18px;
    height: 18px;
}

/* ── RIGHT column: form ───────────────────────────────────────────────────── */
.contact-section__form {
    flex: 0 1 650px;
}

.contact-section__form-note {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    opacity: 0.6;
    font-style: italic;
    color: var(--color-dark);
}

/* ==========================================================================
   Gravity Forms overrides — bottom-border style matching Figma
   ========================================================================== */

/* ── Reset GF wrapper ─────────────────────────────────────────────────────── */
.contact-section .gform_wrapper,
.contact-section .gform_wrapper.gravity-theme {
    font-family: var(--font-body);
}

/* ── Fields list — gap 16px ──────────────────────────────────────────────── */
.contact-section .gform_wrapper .gform_fields,
.contact-section .gform_wrapper.gravity-theme .gform_fields {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.contact-section .gform_wrapper .gfield,
.contact-section .gform_wrapper.gravity-theme .gfield {
    padding: 0 !important;
    margin: 0 0 16px 0 !important;
}

.contact-section .gform_wrapper .gfield:last-child,
.contact-section .gform_wrapper.gravity-theme .gfield:last-child {
    margin-bottom: 0 !important;
}

/* ── Hide GF labels (using placeholders instead) ──────────────────────────── */
.contact-section .gform_wrapper .gfield_label,
.contact-section .gform_wrapper.gravity-theme .gfield_label {
    display: none !important;
}

/* ── Input / textarea — bottom border only ────────────────────────────────── */
.contact-section .gform_wrapper input[type="text"],
.contact-section .gform_wrapper input[type="email"],
.contact-section .gform_wrapper input[type="tel"],
.contact-section .gform_wrapper input[type="number"],
.contact-section .gform_wrapper textarea,
.contact-section .gform_wrapper.gravity-theme input[type="text"],
.contact-section .gform_wrapper.gravity-theme input[type="email"],
.contact-section .gform_wrapper.gravity-theme input[type="tel"],
.contact-section .gform_wrapper.gravity-theme input[type="number"],
.contact-section .gform_wrapper.gravity-theme textarea {
    width: 100% !important;
    padding: 14px 0 !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    color: var(--color-dark) !important;
    background-color: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--color-dark) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    outline: none !important;
    transition: border-color 0.2s !important;
}

/* ── Select — same base style but height:auto overrides GF's fixed 38px ─────
   GF gravity-theme sets height:38px + box-sizing:border-box on selects.
   Our padding:14px top+bottom = 28px; 38-28 = only 10px content area for
   16px text → text crushed invisible. height:auto lets padding expand it.
   Colour is handled below via JS-toggled classes (.gf-select--empty/filled)
   because GF's own CSS loads after ours and resets colour via !important. */
.contact-section .gform_wrapper select,
.contact-section .gform_wrapper.gravity-theme select {
    width: 100% !important;
    height: auto !important;
    padding: 14px 24px 14px 0 !important;   /* right:24px clears the chevron */
    line-height: 1.2 !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    background-color: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--color-dark) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    outline: none !important;
    transition: border-color 0.2s !important;
    opacity: 1 !important;
    cursor: pointer !important;
}

/* ── Select colour — JS adds .gf-select--empty / .gf-select--filled ──────────
   Using a class on the element itself (specificity 0,3,1) beats GF's own
   gravity-theme selector (0,2,1) even when both use !important. */

/* Placeholder state: matches Figma opacity-50 on all unselected fields */
.contact-section .gform_wrapper select.gf-select--empty {
    color:                   rgba(28, 28, 28, 0.5) !important;
    -webkit-text-fill-color: rgba(28, 28, 28, 0.5) !important;
}

/* Filled state: full dark once a real option is chosen */
.contact-section .gform_wrapper select.gf-select--filled {
    color:                   var(--color-dark) !important;
    -webkit-text-fill-color: var(--color-dark) !important;
}

.contact-section .gform_wrapper input::placeholder,
.contact-section .gform_wrapper textarea::placeholder,
.contact-section .gform_wrapper.gravity-theme input::placeholder,
.contact-section .gform_wrapper.gravity-theme textarea::placeholder {
    color: var(--color-dark) !important;
    opacity: 0.5 !important;
    font-weight: 400 !important;
}

.contact-section .gform_wrapper input:focus,
.contact-section .gform_wrapper textarea:focus,
.contact-section .gform_wrapper select:focus,
.contact-section .gform_wrapper.gravity-theme input:focus,
.contact-section .gform_wrapper.gravity-theme textarea:focus,
.contact-section .gform_wrapper.gravity-theme select:focus {
    border-bottom-color: var(--color-dark) !important;
}

/* ── Select dropdown — strip ALL existing arrows, add one custom arrow ────── */

/* 1. Remove native browser arrow + any GF gravity-theme background arrow */
.contact-section .gform_wrapper select,
.contact-section .gform_wrapper.gravity-theme select,
.contact-section .gform_wrapper .gfield_select,
.contact-section .gform_wrapper.gravity-theme .gfield_select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: none !important;  /* kills GF gravity-theme SVG arrow */
}

/* 2. Remove any ::after arrow that GF gravity-theme injects on its own wrappers */
.contact-section .gform_wrapper .gfield--type-select::after,
.contact-section .gform_wrapper.gravity-theme .gfield--type-select::after,
.contact-section .gform_wrapper .gfield_select::after,
.contact-section .gform_wrapper.gravity-theme .gfield_select::after {
    display: none !important;
    content: none !important;
}

/* 3. Position wrapper so our single custom arrow can sit inside it */
.contact-section .gform_wrapper .ginput_container_select,
.contact-section .gform_wrapper.gravity-theme .ginput_container_select {
    position: relative;
}

/* 4. Our one custom chevron arrow */
.contact-section .gform_wrapper .ginput_container_select::after,
.contact-section .gform_wrapper.gravity-theme .ginput_container_select::after {
    content: '';
    pointer-events: none;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1c1c' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 1;
}

/* Options inside the open dropdown — always full dark (OS renders these) */
.contact-section .gform_wrapper select option {
    color: var(--color-dark);
    background-color: #D9CFC4 !important;
}

/* ── File upload — styled upload area (Figma: rgba(255,255,255,0.2) bg) ───── */
.contact-section .gform_wrapper .gfield--type-fileupload .ginput_container,
.contact-section .gform_wrapper.gravity-theme .gfield--type-fileupload .ginput_container {
    position: relative !important;
    background-color: rgba(255, 255, 255, 0.2) !important; /* Figma exact */
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 17px !important;
    padding: 30px !important;
    border: none !important;
    border-radius: 0 !important;
    text-align: center !important;
    cursor: pointer;
    min-height: 130px !important;
}

/* Upload icon — shown above the label text */
.contact-section .gform_wrapper .gfield--type-fileupload .ginput_container::before,
.contact-section .gform_wrapper.gravity-theme .gfield--type-fileupload .ginput_container::before {
    content: '';
    display: block;
    width: 41px;
    height: 41px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c1c1c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    flex-shrink: 0;
    pointer-events: none;
}

/* "Upload Document (Max 5GB)" label — Figma: 14px Geist Light, lh 1.3, centered */
.contact-section .gform_wrapper .gfield--type-fileupload .ginput_container::after,
.contact-section .gform_wrapper.gravity-theme .gfield--type-fileupload .ginput_container::after {
    content: 'Upload Document (Max 5GB)';
    display: block;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 300;
    line-height: 1.3;
    color: var(--color-dark);
    text-align: center;
    pointer-events: none;
}

/* File input — stretch to cover the full box so clicking anywhere triggers picker */
.contact-section .gform_wrapper .gfield--type-fileupload input[type="file"],
.contact-section .gform_wrapper.gravity-theme .gfield--type-fileupload input[type="file"] {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    cursor: pointer !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 0 !important;
}

/* ── Checkbox (consent) ───────────────────────────────────────────────────── */
.contact-section .gform_wrapper .gfield--type-checkbox,
.contact-section .gform_wrapper.gravity-theme .gfield--type-checkbox {
    margin-bottom: 0 !important;
}

.contact-section .gform_wrapper .gfield--type-checkbox .gfield_checkbox,
.contact-section .gform_wrapper.gravity-theme .gfield--type-checkbox .gfield_checkbox {
    display: flex !important;
    gap: 10px !important;
    align-items: flex-start !important;
}

.contact-section .gform_wrapper .gfield--type-checkbox input[type="checkbox"],
.contact-section .gform_wrapper.gravity-theme .gfield--type-checkbox input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    border: 1px solid rgba(28, 28, 28, 0.2) !important;
    border-bottom: 1px solid rgba(28, 28, 28, 0.2) !important;
    border-radius: 0 !important;
    background-color: white !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
    padding: 0 !important;
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer;
}

.contact-section .gform_wrapper .gfield--type-checkbox .gfield_label_before_complex,
.contact-section .gform_wrapper .gfield--type-checkbox .gchoice label,
.contact-section .gform_wrapper.gravity-theme .gfield--type-checkbox .gchoice label {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 300 !important;
    line-height: 1.3 !important;
    color: var(--color-dark) !important;
    display: block !important;
}

.contact-section .gform_wrapper .gfield--type-checkbox .gchoice label a,
.contact-section .gform_wrapper.gravity-theme .gfield--type-checkbox .gchoice label a {
    color: var(--color-dark);
    text-decoration: underline;
}

/* ── Submit button — dark pill ────────────────────────────────────────────── */
.contact-section .gform_wrapper .gform_footer,
.contact-section .gform_wrapper .gform_page_footer,
.contact-section .gform_wrapper.gravity-theme .gform_footer,
.contact-section .gform_wrapper.gravity-theme .gform_page_footer {
    margin-top: 40px !important;
    padding: 0 !important;
}

.contact-section .gform_wrapper .gform_button,
.contact-section .gform_wrapper input[type="submit"],
.contact-section .gform_wrapper.gravity-theme .gform_button,
.contact-section .gform_wrapper.gravity-theme input[type="submit"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px 25px !important;
    background-color: var(--color-dark) !important;
    color: var(--color-white) !important;
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    font-weight: 300 !important;
    letter-spacing: 0.16px !important;
    border: 1px solid var(--color-dark) !important;
    border-radius: 1000px !important;
    cursor: pointer !important;
    transition: background-color 0.2s, color 0.2s !important;
    text-transform: capitalize !important;
    appearance: none !important;
}

.contact-section .gform_wrapper .gform_button:hover,
.contact-section .gform_wrapper input[type="submit"]:hover,
.contact-section .gform_wrapper.gravity-theme .gform_button:hover,
.contact-section .gform_wrapper.gravity-theme input[type="submit"]:hover {
    background-color: transparent !important;
    color: var(--color-dark) !important;
}

/* ── Validation messages ──────────────────────────────────────────────────── */
.contact-section .gform_wrapper .gfield_validation_message,
.contact-section .gform_wrapper .validation_message,
.contact-section .gform_wrapper.gravity-theme .gfield_validation_message {
    font-size: 12px !important;
    color: #c0392b !important;
    margin-top: 4px !important;
    border: none !important;
    background: none !important;
    padding: 0 !important;
}

.contact-section .gform_wrapper .gform_validation_errors,
.contact-section .gform_wrapper.gravity-theme .gform_validation_errors {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    margin-bottom: 16px !important;
    font-size: 14px !important;
    color: #c0392b !important;
}

/* ── Confirmation message ─────────────────────────────────────────────────── */
.contact-section .gform_confirmation_wrapper {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 300;
    color: var(--color-dark);
}

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .contact-section {
        padding: 60px 40px;
    }

    .contact-section__inner {
        gap: 48px;
    }
}

@media (max-width: 900px) {
    .contact-section__inner {
        flex-direction: column;
    }

    .contact-section__detail,
    .contact-section__form {
        flex: 0 0 auto;
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .contact-section {
        padding: 80px 16px;
    }
    .contact-section__form input[type="submit"]{
        width:100%!important;
    }
}
