/**
 * /assets/css/pages/contact.css
 *
 * Contact-only styles.
 * Shared hero, hero mark, buttons, typography, sections and design tokens
 * belong in core.css/components.css.
 */

/* ============================================================
   CONTACT HERO ART
============================================================ */

.page-contact {
    --hero-accent-x: 78%;
    --hero-accent-y: 36%;
    --hero-accent-alpha: .17;
}

.contact-hero-art {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 78% 36%, rgba(189,0,0,.17), transparent 34%),
        radial-gradient(circle at 23% 74%, rgba(189,0,0,.08), transparent 31%),
        linear-gradient(115deg, #050505 0%, #0c0c0c 54%, #070707 100%);
}

/* ============================================================
   CONTACT ROUTING STRIP
============================================================ */

.contact-routing-strip {
    border-bottom: 1px solid var(--border);
}

.contact-routing-inner {
    display: grid;
    grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
    gap: 72px;
    align-items: center;
    padding: 62px 0;
}

.contact-routing-title {
    max-width: 620px;
    margin: 0;
    color: #fff;
    font-size: clamp(1.8rem,3.2vw,3rem);
    font-weight: 850;
    line-height: 1.08;
    letter-spacing: -.035em;
}

.contact-routing-copy {
    max-width: 620px;
    margin: 18px 0 0;
    color: var(--muted);
    font-size: .84rem;
    line-height: 1.75;
}

.contact-routing-list {
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}

.contact-routing-item {
    display: grid;
    grid-template-columns: 28px minmax(0,1fr);
    gap: 12px;
    align-items: center;
    min-height: 58px;
    padding: 9px 0;
    border-bottom: 1px solid var(--border-soft);
}

.contact-routing-item:last-child { border-bottom: 0; }
.contact-routing-item i { color: var(--red-bright); font-size: .82rem; }
.contact-routing-item span {
    color: rgba(255,255,255,.43);
    font-size: .68rem;
    line-height: 1.55;
}

@media (max-width: 991.98px) {
    .contact-routing-inner {
        grid-template-columns: 1fr;
        gap: 36px;
    }
}

@media (max-width: 767.98px) {
    .contact-routing-inner { padding: 48px 0; }
}

/* =====================================================
   CONTACT OPTIONS
===================================================== */

.contact-option-grid {

    display: grid;

    grid-template-columns:
        repeat(4,minmax(0,1fr));

    gap: 1px;

    margin-top: 48px;

    border:
        1px solid
        var(--border-soft);

    background:
        var(--border-soft);

}


.contact-option {

    min-height: 235px;

    padding: 29px;

    background:
        #0d0d0d;

    transition:
        background .18s ease,
        transform .18s ease;

}


.contact-option:hover {

    transform:
        translateY(-3px);

    background:
        linear-gradient(
            145deg,
            rgba(189,0,0,.055),
            #0d0d0d
        );

}


.contact-option-icon {

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid
        var(--red-border);

    color:
        var(--red-bright);

    background:
        var(--red-soft);

}


.contact-option-title {

    margin-top: 26px;

    color: #fff;

    font-size: .91rem;

    font-weight: 800;

}


.contact-option-copy {

    margin-top: 9px;

    color:
        rgba(255,255,255,.34);

    font-size: .74rem;

    line-height: 1.68;

}


/* =====================================================
   CONTACT FORM SECTION
===================================================== */

.contact-layout {

    display: grid;

    grid-template-columns:
        minmax(0,.72fr)
        minmax(0,1.28fr);

    gap: 80px;

    align-items: start;

}


.contact-intro {

    position: sticky;

    top: 115px;

}


.contact-intro-note {

    margin-top: 34px;

    padding:
        24px
        0
        24px
        24px;

    border-left:
        1px solid
        var(--red-border);

    color:
        rgba(255,255,255,.38);

    font-size: .76rem;

    line-height: 1.72;

}


.contact-intro-note strong {

    display: block;

    margin-bottom: 7px;

    color: #fff;

    font-size: .70rem;

    font-weight: 800;

    letter-spacing: .08em;

    text-transform: uppercase;

}


/* =====================================================
   FORM
===================================================== */

.contact-form {

    border:
        1px solid
        var(--border);

    background:
        #0d0d0d;

}


.contact-form-header {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    min-height: 74px;

    padding:
        0
        28px;

    border-bottom:
        1px solid
        var(--border);

    background:
        linear-gradient(
            to right,
            rgba(189,0,0,.06),
            transparent 58%
        );

}


.contact-form-header-title {

    color: #fff;

    font-size: .74rem;

    font-weight: 800;

    letter-spacing: .12em;

    text-transform: uppercase;

}


.contact-form-status {

    display: inline-flex;

    align-items: center;

    gap: 7px;

    color:
        rgba(255,255,255,.28);

    font-size: .53rem;

    font-weight: 800;

    letter-spacing: .10em;

    text-transform: uppercase;

}


.contact-form-status::before {

    content: "";

    width: 6px;
    height: 6px;

    border-radius: 50%;

    background:
        var(--red-bright);

    box-shadow:
        0 0 9px
        rgba(224,0,0,.48);

}


.contact-form-body {

    padding: 30px;

}


.form-grid {

    display: grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap: 21px;

}


.form-field {

    min-width: 0;

}


.form-field.full {

    grid-column:
        1 / -1;

}


.form-label {

    display: block;

    margin-bottom: 9px;

    color:
        rgba(255,255,255,.48);

    font-size: .57rem;

    font-weight: 800;

    letter-spacing: .12em;

    text-transform: uppercase;

}


.form-label .required {

    margin-left: 3px;

    color:
        var(--red-bright);

}


.form-control-rs,
.form-select-rs {

    width: 100%;

    min-height: 50px;

    padding:
        0
        15px;

    border:
        1px solid
        rgba(255,255,255,.09);

    border-radius: 0;

    outline: none;

    color:
        rgba(255,255,255,.88);

    background:
        #090909;

    font-size: .78rem;

    transition:
        border-color .18s ease,
        background .18s ease,
        box-shadow .18s ease;

}


.form-control-rs::placeholder {

    color:
        rgba(255,255,255,.20);

}


.form-control-rs:hover,
.form-select-rs:hover {

    border-color:
        rgba(255,255,255,.15);

}


.form-control-rs:focus,
.form-select-rs:focus {

    border-color:
        var(--red-border);

    background:
        #0a0a0a;

    box-shadow:
        0 0 0 3px
        rgba(189,0,0,.055);

}


.form-select-rs {

    appearance: none;

    cursor: pointer;

    background-image:

        linear-gradient(
            45deg,
            transparent 50%,
            rgba(255,255,255,.38) 50%
        ),

        linear-gradient(
            135deg,
            rgba(255,255,255,.38) 50%,
            transparent 50%
        );

    background-position:

        calc(100% - 18px)
        21px,

        calc(100% - 13px)
        21px;

    background-size:
        5px
        5px;

    background-repeat:
        no-repeat;

}


.form-select-rs option {

    color: #fff;

    background:
        #0b0b0b;

}


textarea.form-control-rs {

    min-height: 190px;

    padding:
        15px;

    line-height: 1.7;

    resize: vertical;

}


.form-help {

    margin-top: 7px;

    color:
        rgba(255,255,255,.20);

    font-size: .57rem;

    line-height: 1.55;

}


/* =====================================================
   HONEYPOT
===================================================== */

.contact-honeypot {

    position: absolute !important;

    left: -9999px !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;

    opacity: 0 !important;

    pointer-events: none !important;

}


/* =====================================================
   FORM FOOTER
===================================================== */

.contact-form-footer {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    margin-top: 28px;

    padding-top: 25px;

    border-top:
        1px solid
        var(--border-soft);

}


.contact-form-privacy {

    max-width: 500px;

    color:
        rgba(255,255,255,.24);

    font-size: .57rem;

    line-height: 1.6;

}


.contact-submit {

    flex: 0 0 auto;

}


/* =====================================================
   FRONT-END PLACEHOLDER MESSAGE
===================================================== */

.contact-placeholder-message {

    display: none;

    margin-bottom: 24px;

    padding:
        16px
        18px;

    border:
        1px solid
        var(--red-border);

    color:
        rgba(255,255,255,.70);

    background:
        rgba(189,0,0,.06);

    font-size: .71rem;

    line-height: 1.6;

}


.contact-placeholder-message.show {

    display: block;

}


.contact-placeholder-message.success {

    border-color:
        rgba(38,177,91,.42);

    background:
        rgba(38,177,91,.08);

    color:
        rgba(255,255,255,.82);

}


.contact-placeholder-message.error {

    border-color:
        var(--red-border);

    background:
        rgba(189,0,0,.08);

    color:
        rgba(255,255,255,.78);

}


/* =====================================================
   OTHER CONTACT ROUTES
===================================================== */

.route-list {

    margin-top: 46px;

    border-top:
        1px solid
        var(--border);

}


.route-item {

    display: grid;

    grid-template-columns:
        52px
        minmax(0,1fr)
        auto;

    gap: 20px;

    align-items: center;

    min-height: 95px;

    padding:
        15px
        4px;

    border-bottom:
        1px solid
        var(--border);

}


.route-icon {

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    border:
        1px solid
        var(--red-border);

    color:
        var(--red-bright);

    background:
        var(--red-soft);

}


.route-title {

    color: #fff;

    font-size: .82rem;

    font-weight: 800;

}


.route-copy {

    margin-top: 5px;

    color:
        rgba(255,255,255,.34);

    font-size: .70rem;

    line-height: 1.6;

}


.route-link {

    color:
        rgba(255,255,255,.36);

    font-size: .56rem;

    font-weight: 800;

    letter-spacing: .10em;

    text-transform: uppercase;

    transition:
        color .18s ease;

}


.route-link:hover {

    color:
        var(--red-bright);

}


/* =====================================================
   RESPONSE EXPECTATIONS
===================================================== */

.response-grid {

    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap: 17px;

    margin-top: 48px;

}


.response-card {

    min-height: 230px;

    padding: 29px;

    border:
        1px solid
        var(--border);

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.014),
            rgba(255,255,255,.003)
        );

}


.response-number {

    color:
        var(--red-bright);

    font-size: .55rem;

    font-weight: 800;

    letter-spacing: .15em;

    text-transform: uppercase;

}


.response-title {

    margin-top: 43px;

    color: #fff;

    font-size: .90rem;

    font-weight: 800;

}


.response-copy {

    margin-top: 9px;

    color:
        rgba(255,255,255,.34);

    font-size: .73rem;

    line-height: 1.67;

}


/* =====================================================
   FINAL CTA
===================================================== */

.contact-cta {

    position: relative;

    overflow: hidden;

    border-top:
        1px solid
        var(--border);

    background:
        #070707;

}


.contact-cta::before {

    content: "";

    position: absolute;

    inset: 0;

    background:

        radial-gradient(
            circle at 18% 50%,
            rgba(189,0,0,.16),
            transparent 38%
        ),

        radial-gradient(
            circle at 84% 35%,
            rgba(255,255,255,.03),
            transparent 28%
        );

}


.contact-cta-inner {

    position: relative;

    z-index: 2;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 50px;

    padding:
        90px
        0;

}


.contact-cta-title {

    margin: 0;

    color: #fff;

    font-size:
        clamp(
            2.5rem,
            5.8vw,
            5.2rem
        );

    font-weight: 900;

    line-height: .92;

    letter-spacing: -.055em;

    text-transform: uppercase;

}


.contact-cta-copy {

    max-width: 700px;

    margin-top: 18px;

    color:
        rgba(255,255,255,.44);

    font-size: .80rem;

    line-height: 1.75;

}


.contact-cta-actions {

    display: flex;

    flex-wrap: wrap;

    gap: 9px;

    flex:
        0
        0
        auto;

}

/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 1199.98px) {

    .contact-option-grid {

        grid-template-columns:
            repeat(2,minmax(0,1fr));

    }

}


@media (max-width: 991.98px) {
.contact-layout {

        grid-template-columns:
            1fr;

        gap: 55px;

    }


    .contact-intro {

        position: static;

    }


    .response-grid {

        grid-template-columns:
            1fr;

    }


    .contact-cta-inner {

        align-items:
            flex-start;

        flex-direction:
            column;

    }

}


@media (max-width: 767.98px) {
.contact-option-grid {

        grid-template-columns:
            1fr;

    }


    .form-grid {

        grid-template-columns:
            1fr;

    }


    .form-field.full {

        grid-column: auto;

    }


    .contact-form-body {

        padding:
            24px;

    }


    .contact-form-footer {

        align-items:
            stretch;

        flex-direction:
            column;

    }


    .contact-submit {

        width: 100%;

    }


    .route-item {

        grid-template-columns:
            46px
            minmax(0,1fr);

    }


    .route-link {

        grid-column:
            2;

        padding-bottom: 7px;

    }


    .contact-cta-inner {

        padding:
            72px
            0;

    }


    .contact-cta-actions {

        width: 100%;

        flex-direction:
            column;

    }


    .contact-cta-actions
    .site-btn {

        width: 100%;

    }

}


@media (max-width: 480px) {

    .contact-form-header {

        padding:
            0
            20px;

    }


    .contact-form-status {

        display: none;

    }
}
