/* ==========================================================
   Contact page
   Photo banner hero → navy section with white form card
   ========================================================== */

/* ---------- Photo banner ----------
   Phones: cropped photo on top, text below.
   Tablet/desktop: full-width photo, text over the empty wall on the left
   (a soft cream fade keeps it readable when the photo is cropped). */

.contact-hero {
    --wall: #ece5da; /* matches the wall in the photo */
    position: relative;
    overflow: hidden;
    padding-top: var(--header-h);
    background: var(--wall);
}

.contact-hero-media {
    display: block;
    overflow: hidden;
}
    /* Phones: crop the wide photo to the two people on the right */
    .contact-hero-media img {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 10;
        object-fit: cover;
        object-position: 80% center;
        /* slow zoom, like the home page banner */
        transform-origin: 72% 50%;
        animation: contact-kenburns 20s ease-in-out infinite alternate;
        will-change: transform;
    }

@keyframes contact-kenburns {
    from {
        transform: scale(1.02);
    }

    to {
        transform: scale(1.12) translate(-1.5%, -1%);
    }
}

.contact-hero-inner {
    position: relative;
    z-index: 1;
    padding-top: 2.5rem;
    padding-bottom: 3.5rem;
}

.contact-hero-intro {
    max-width: 32rem;
    font-size: 1.1rem;
    line-height: 1.7;
    color: var(--fg-dim);
}

.contact-hero-btn {
    padding: 1rem 1.5rem;
    background: var(--bg-darker);
    color: var(--white);
    font-family: var(--font-heading);
    font-size: 0.8rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: background 0.3s, color 0.3s;
}

    .contact-hero-btn:hover,
    .contact-hero-btn:focus-visible {
        background: var(--fg-on-light);
        color: var(--white);
    }

    .contact-hero-btn i {
        transition: transform 0.3s;
    }

    .contact-hero-btn:hover i {
        transform: translateY(3px);
    }

.contact-hero-phone {
    font-size: 0.95rem;
    color: var(--fg-dim);
}

    .contact-hero-phone i {
        color: var(--gold-ink);
    }

    .contact-hero-phone strong {
        font-weight: 600;
        border-bottom: 1px solid color-mix(in srgb, var(--fg-dim) 30%, transparent);
    }

    .contact-hero-phone:hover {
        color: var(--fg-dim);
    }

        .contact-hero-phone:hover strong {
            border-bottom-color: var(--gold-ink);
        }

@media (min-width: 768px) {
    .contact-hero {
        display: flex;
        align-items: center;
        min-height: clamp(560px, 46vw, 780px);
    }

    .contact-hero-media {
        position: absolute;
        inset: 0;
    }

        .contact-hero-media img {
            height: 100%;
            aspect-ratio: auto;
            object-fit: cover;
            object-position: 72% center;
        }

        .contact-hero-media::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient( 90deg, color-mix(in srgb, var(--wall) 96%, transparent) 0%, color-mix(in srgb, var(--wall) 88%, transparent) 40%, transparent 68% );
        }

    .contact-hero-inner {
        width: 100%;
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .contact-hero-content {
        max-width: 30rem;
    }
}

@media (min-width: 1200px) {
    .contact-hero-media::after {
        background: linear-gradient( 90deg, color-mix(in srgb, var(--wall) 92%, transparent) 0%, color-mix(in srgb, var(--wall) 70%, transparent) 30%, transparent 50% );
    }

    .contact-hero-content {
        max-width: 36rem;
    }
}

/* ---------- Consultation form ----------
   Navy section, white form card, black submit button */

.form-select-dark {
    background: var(--bg-card, #16181c);
    color: var(--fg, #f2f2f2);
    border: 1px solid var(--border-light, #2a2d33);
    border-radius: 4px;
    padding: 0.85rem 1rem;
    width: 100%;
    font-family: "Archivo", sans-serif;
}

    .form-select-dark:focus {
        outline: none;
        border-color: var(--accent, #c9a227);
    }

.check-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem 1.25rem;
}

@media (max-width: 575.98px) {
    .check-grid {
        grid-template-columns: 1fr;
    }
}

.check-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--border-light, #2a2d33);
    border-radius: 4px;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease;
    font-size: 0.85rem;
}

    .check-item:hover {
        border-color: var(--accent, #c9a227);
    }

    .check-item input {
        accent-color: var(--accent, #c9a227);
        width: 16px;
        height: 16px;
        flex-shrink: 0;
    }

        .check-item input:checked ~ span {
            color: var(--accent, #c9a227);
        }

.req-mark {
    color: var(--accent, #c9a227);
}

/* White form card inside the navy section */
.consult-frame {
    background: #ffffff !important;
}

    .consult-frame::before,
    .consult-frame::after {
        border-color: var(--accent-bright);
    }

    .consult-frame .label:not(.accent) {
        color: #6a6a6a;
    }

    .consult-frame .label.accent {
        color: var(--gold-ink);
    }

    .consult-frame h3 {
        color: #16182a;
    }

    .consult-frame .text-fg-dim {
        color: #55586a !important;
    }

    .consult-frame .form-input {
        color: #16182a;
        border-bottom-color: #d8d8d8;
    }

        .consult-frame .form-input::placeholder {
            color: #9a9a9a;
        }

        .consult-frame .form-input:focus {
            border-color: var(--accent-bright);
        }

    .consult-frame .form-select-dark {
        background: #ffffff;
        color: #16182a;
        border-color: #d8d8d8;
    }

        .consult-frame .form-select-dark:focus {
            border-color: var(--accent-bright);
        }

    .consult-frame .check-item {
        background: #ffffff;
        border-color: #d8d8d8;
        color: #16182a;
    }

        .consult-frame .check-item:hover {
            border-color: var(--accent-bright);
        }

        .consult-frame .check-item input:checked ~ span {
            color: var(--accent-bright);
        }

    .consult-frame .req-mark {
        color: var(--accent-bright);
    }

.btn-black {
    --bs-btn-bg: #000000;
    --bs-btn-border-color: #000000;
    --bs-btn-color: #ffffff;
    --bs-btn-hover-bg: #1a1a1a;
    --bs-btn-hover-border-color: #1a1a1a;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-active-bg: #000000;
    --bs-btn-active-border-color: #000000;
    --bs-btn-active-color: #ffffff;
}

    .btn-black:disabled {
        opacity: 0.6;
    }

/* ---------- Validation ---------- */
.field-error {
    display: block;
    margin-top: 0.4rem;
    font-size: 0.8rem;
    color: #b3261e;
}

.consult-frame .form-input.input-validation-error,
.consult-frame .form-select-dark.input-validation-error {
    border-color: #b3261e;
}

.form-alert {
    border-left: 3px solid #b3261e;
    background: #fdecea;
    color: #5f1510;
    padding: 0.85rem 1rem;
    font-size: 0.9rem;
}

    .form-alert ul {
        margin: 0;
    }

    .form-alert.validation-summary-valid {
        display: none;
    }

/* Honeypot — kept off-screen, not display:none (some bots skip hidden fields) */
.hp-field {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Notes under the message box and the submit button */
.form-note {
    margin-top: 0.5rem;
    font-size: 0.8rem;
    line-height: 1.5;
    color: #55586a;
}

    .form-note i {
        margin-right: 0.35rem;
        color: var(--gold-ink);
    }

.form-consent {
    font-size: 0.8rem;
    line-height: 1.5;
    text-align: center;
    color: #55586a;
}

    .form-consent a {
        color: var(--gold-ink);
        text-decoration: underline;
        text-underline-offset: 3px;
    }

@media (prefers-reduced-motion: reduce) {
    .contact-hero-media img {
        animation: none;
    }

    .contact-hero-btn,
    .contact-hero-btn i {
        transition: none;
    }
}
