/* =========================================================
   Contact Page
   ========================================================= */

.contact-container {

    width: min(1280px, calc(100% - 40px));

    margin: 0 auto;

}


/* =========================================================
   Intro
   ========================================================= */

.contact-intro {

    padding: 75px 0 45px;

    background:
        radial-gradient(
            circle at 10% 30%,
            rgba(239,17,17,.07),
            transparent 35%
        ),
        #090910;

}


.contact-intro-content {

    max-width: 720px;

}


.contact-section-eyebrow {

    display: inline-block;

    margin-bottom: 12px;

    color: #ef1111;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 2px;

}


.contact-intro h2 {

    margin: 0;

    color: #ffffff;

    font-size: clamp(34px, 4vw, 52px);

    line-height: 1.08;

    font-weight: 700;

}


.contact-intro h2 span {

    color: #ef1111;

}


.contact-intro p {

    max-width: 650px;

    margin: 20px 0 0;

    color: rgba(255,255,255,.52);

    font-size: 14px;

    line-height: 1.75;

}


/* =========================================================
   Main Contact Section
   ========================================================= */

.contact-main {

    padding: 30px 0 90px;

    background: #090910;

}


.contact-panel {

    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(340px, .65fr);

    overflow: hidden;

    background: #111119;

    border:
        1px solid rgba(255,255,255,.09);

    border-radius: 16px;

}


/* =========================================================
   Form Area
   ========================================================= */

.contact-form-area {

    padding: 45px;

    border-right:
        1px solid rgba(255,255,255,.08);

}


.contact-form-header {

    max-width: 620px;

    margin-bottom: 32px;

}


.contact-form-header h2 {

    margin: 0;

    color: #ffffff;

    font-size: clamp(28px, 3vw, 38px);

    line-height: 1.1;

}


.contact-form-header h2 span {

    color: #ef1111;

}


.contact-form-header p {

    margin: 13px 0 0;

    color: rgba(255,255,255,.45);

    font-size: 13px;

    line-height: 1.65;

}


/* =========================================================
   Form
   ========================================================= */

.contact-form {

    display: flex;

    flex-direction: column;

    gap: 18px;

}


.contact-form-row {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 16px;

}


.contact-field {

    display: flex;

    flex-direction: column;

    gap: 8px;

}


.contact-field label {

    color: rgba(255,255,255,.58);

    font-size: 11px;

    font-weight: 600;

}


.contact-field input,
.contact-field textarea {

    width: 100%;

    box-sizing: border-box;

    border:
        1px solid rgba(255,255,255,.10);

    border-radius: 8px;

    outline: none;

    color: #ffffff;

    background: #0b0b12;

    font-family: inherit;

    font-size: 13px;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;

}


.contact-field input {

    height: 46px;

    padding: 0 14px;

}


.contact-field textarea {

    min-height: 145px;

    padding: 13px 14px;

    resize: vertical;

}


.contact-field input::placeholder,
.contact-field textarea::placeholder {

    color: rgba(255,255,255,.25);

}


.contact-field input:focus,
.contact-field textarea:focus {

    border-color:
        rgba(239,17,17,.65);

    background: #0e0e16;

    box-shadow:
        0 0 0 3px rgba(239,17,17,.06);

}


/* =========================================================
   Submit
   ========================================================= */

.contact-submit {

    width: fit-content;

    min-width: 170px;

    height: 45px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

    margin-top: 3px;

    padding: 0 20px;

    border: 1px solid #ef1111;

    border-radius: 8px;

    color: #ffffff;

    background: #ef1111;

    cursor: pointer;

    font-family: inherit;

    font-size: 12px;

    font-weight: 600;

    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;

}


.contact-submit span {

    font-size: 16px;

}


.contact-submit:hover {

    background: #d90e0e;

    border-color: #d90e0e;

    transform: translateY(-2px);

}


/* =========================================================
   Contact Information
   ========================================================= */

.contact-info {

    padding: 45px 38px;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(239,17,17,.08),
            transparent 38%
        ),
        #0d0d15;

}


.contact-info-header {

    margin-bottom: 30px;

}


.contact-info-header h3 {

    margin: 0;

    color: #ffffff;

    font-size: 26px;

}


.contact-info-header h3 span {

    color: #ef1111;

}


/* =========================================================
   Info Items
   ========================================================= */

.contact-info-item {

    display: flex;

    gap: 16px;

    padding: 20px 0;

    border-bottom:
        1px solid rgba(255,255,255,.07);

}


.contact-info-number {

    flex: 0 0 28px;

    color: #ef1111;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1px;

}


.contact-info-content {

    min-width: 0;

}


.contact-info-label {

    display: block;

    margin-bottom: 6px;

    color: rgba(255,255,255,.35);

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1.5px;

}


.contact-info-content strong {

    display: block;

    color: #ffffff;

    font-size: 13px;

    font-weight: 600;

}


.contact-info-content p {

    margin: 7px 0 0;

    color: rgba(255,255,255,.48);

    font-size: 12px;

    line-height: 1.6;

}


.contact-info-content a {

    display: inline-block;

    margin-top: 7px;

    color: rgba(255,255,255,.58);

    text-decoration: none;

    font-size: 12px;

    transition: color .2s ease;

}


.contact-info-content a:hover {

    color: #ef1111;

}


/* =========================================================
   Working Hours
   ========================================================= */

.contact-hours {

    margin-top: 28px;

    padding: 18px;

    border:
        1px solid rgba(255,255,255,.08);

    border-radius: 9px;

    background: rgba(255,255,255,.02);

}


.contact-hours-row {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 15px;

    padding: 8px 0;

    color: rgba(255,255,255,.45);

    font-size: 11px;

}


.contact-hours-row + .contact-hours-row {

    border-top:
        1px solid rgba(255,255,255,.05);

}


.contact-hours-row strong {

    color: #ffffff;

    font-size: 11px;

    font-weight: 600;

}


.contact-hours-row .contact-closed {

    color: #ef1111;

}


/* =========================================================
   Map
   ========================================================= */

.contact-map {

    padding: 0 0 90px;

    background: #090910;

}


.contact-map-header {

    margin-bottom: 25px;

}


.contact-map-header h2 {

    margin: 0;

    color: #ffffff;

    font-size: 32px;

}


.contact-map-header h2 span {

    color: #ef1111;

}


.contact-map-header p {

    margin: 10px 0 0;

    color: rgba(255,255,255,.42);

    font-size: 13px;

}


.contact-map-wrapper {

    overflow: hidden;

    height: 430px;

    border:
        1px solid rgba(255,255,255,.09);

    border-radius: 14px;

    background: #111119;

}


.contact-map-wrapper iframe {

    display: block;

    width: 100%;

    height: 100%;

    filter:
        grayscale(.85)
        brightness(.72)
        contrast(1.1);

}


/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 900px) {

    .contact-panel {

        grid-template-columns: 1fr;

    }


    .contact-form-area {

        border-right: 0;

        border-bottom:
            1px solid rgba(255,255,255,.08);

    }

}


@media (max-width: 600px) {

    .contact-container {

        width: min(100% - 30px, 1280px);

    }


    .contact-intro {

        padding: 55px 0 35px;

    }


    .contact-main {

        padding-bottom: 65px;

    }


    .contact-form-area,
    .contact-info {

        padding: 30px 22px;

    }


    .contact-form-row {

        grid-template-columns: 1fr;

    }


    .contact-submit {

        width: 100%;

    }


    .contact-map {

        padding-bottom: 65px;

    }


    .contact-map-wrapper {

        height: 320px;

    }

}

.contact-honeypot-wrapper {

    position: absolute !important;

    left: -9999px !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;

    opacity: 0 !important;

    pointer-events: none !important;

}


.contact-security {

    margin-top: 4px;

}

/* =========================================================
   Contact Toast
   ========================================================= */

.contact-toast {

    position: fixed;

    top: 75px;
    right: 25px;

    z-index: 99999;

    width: min(380px, calc(100vw - 30px));

    display: flex;

    align-items: center;

    gap: 13px;

    padding: 15px 16px;

    background: #111119;

    border: 1px solid rgba(255,255,255,.10);

    border-radius: 10px;

    box-shadow:
        0 15px 45px rgba(0,0,0,.45);

    backdrop-filter: blur(12px);

    -webkit-backdrop-filter: blur(12px);

    animation:
        contactToastIn .35s ease forwards;

}


/* =========================================================
   Icon
   ========================================================= */

.contact-toast-icon {

    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    font-size: 16px;

    font-weight: 700;

}


.contact-toast-success {

    border-color:
        rgba(13,240,0,.25);

}


.contact-toast-success .contact-toast-icon {

    color: #0df000;

    background:
        rgba(13,240,0,.10);

}


.contact-toast-error {

    border-color:
        rgba(239,17,17,.30);

}


.contact-toast-error .contact-toast-icon {

    color: #ef1111;

    background:
        rgba(239,17,17,.10);

}


/* =========================================================
   Content
   ========================================================= */

.contact-toast-content {

    min-width: 0;

    display: flex;

    flex-direction: column;

    gap: 3px;

    flex: 1;

}


.contact-toast-content strong {

    color: #ffffff;

    font-size: 12px;

    font-weight: 600;

}


.contact-toast-content span {

    overflow: hidden;

    color: rgba(255,255,255,.48);

    font-size: 11px;

    line-height: 1.4;

    text-overflow: ellipsis;

    white-space: nowrap;

}


/* =========================================================
   Close
   ========================================================= */

.contact-toast-close {

    width: 26px;
    height: 26px;

    flex: 0 0 26px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;

    background: transparent;

    color: rgba(255,255,255,.35);

    cursor: pointer;

    font-size: 19px;

    line-height: 1;

    transition:
        color .2s ease;

}


.contact-toast-close:hover {

    color: #ffffff;

}


/* =========================================================
   Animation
   ========================================================= */

@keyframes contactToastIn {

    from {

        opacity: 0;

        transform:
            translateX(30px)
            translateY(-5px);

    }

    to {

        opacity: 1;

        transform:
            translateX(0)
            translateY(0);

    }

}


.contact-toast.contact-toast-hide {

    animation:
        contactToastOut .3s ease forwards;

}


@keyframes contactToastOut {

    from {

        opacity: 1;

        transform:
            translateX(0);

    }

    to {

        opacity: 0;

        transform:
            translateX(30px);

    }

}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 600px) {

    .contact-toast {

        top: 65px;

        right: 15px;
        left: 15px;

        width: auto;

    }

}

/* =========================================================
   Contact Intro Layout
   ========================================================= */

.contact-intro .contact-container {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        330px;

    align-items: center;

    gap: 70px;

}


/* =========================================================
   Local Time Card
   ========================================================= */

.contact-local-time {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 25px;

    padding: 26px 28px;

    background:
        linear-gradient(
            145deg,
            rgba(239,17,17,.07),
            rgba(5,5,13,.45)
        );

    border:
        1px solid rgba(255,255,255,.10);

    border-radius: 14px;

    box-shadow:
        0 18px 45px rgba(0,0,0,.18);

}


.contact-local-time-content {

    min-width: 0;

}


/* =========================================================
   Text
   ========================================================= */

.contact-local-time-eyebrow {

    display: block;

    margin-bottom: 10px;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 2px;

    transition:
        color .25s ease;

}


/* =========================================================
   Office Status
   ========================================================= */

.contact-status-open {

    color: #0df000;

}


.contact-status-closed {

    color: #ef1111;

}


/* =========================================================
   Status Dot
   ========================================================= */

.contact-local-time-dot {

    width: 6px;
    height: 6px;

    flex: 0 0 6px;

    border-radius: 50%;

    transition:
        background .25s ease,
        box-shadow .25s ease;

}


.contact-dot-open {

    background: #0df000;

    box-shadow:
        0 0 8px rgba(13,240,0,.65);

}


.contact-dot-closed {

    background: #ef1111;

    box-shadow:
        0 0 8px rgba(239,17,17,.65);

}


.contact-local-time-city {

    color: #ffffff;

    font-size: 14px;

    font-weight: 600;

    letter-spacing: 1.5px;

}


.contact-local-time-clock {

    margin-top: 7px;

    color: #ffffff;

    font-size: 34px;

    font-weight: 700;

    line-height: 1;

    letter-spacing: 1px;

    font-variant-numeric: tabular-nums;

}


.contact-local-time-zone {

    display: flex;

    align-items: center;

    gap: 7px;

    margin-top: 10px;

    color: rgba(255,255,255,.42);

    font-size: 11px;

}


.contact-local-time-zone span {

    color: #ef1111;

}


.contact-local-time-status {

    display: flex;

    align-items: center;

    gap: 7px;

    margin-top: 18px;

    color: rgba(255,255,255,.50);

    font-size: 11px;

}




/* =========================================================
   Analog Clock
   ========================================================= */

.contact-analog-clock {

    width: 120px;
    height: 120px;

    flex: 0 0 120px;

    display: flex;

    align-items: center;
    justify-content: center;

}


.analog-clock-face {

    position: relative;

    width: 110px;
    height: 110px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle at center,
            #15151e 0%,
            #0b0b12 70%,
            #08080e 100%
        );

    border:
        1px solid rgba(255,255,255,.18);

    box-shadow:
        0 0 0 5px rgba(255,255,255,.025),
        0 10px 30px rgba(0,0,0,.45),
        inset 0 0 25px rgba(0,0,0,.6);

}


/* =========================================================
   Clock Numbers
   ========================================================= */

.clock-number {

    position: absolute;

    color: rgba(255,255,255,.65);

    font-size: 9px;

    font-weight: 600;

}


.clock-12 {

    top: 8px;

    left: 50%;

    transform: translateX(-50%);

}


.clock-3 {

    top: 50%;

    right: 9px;

    transform: translateY(-50%);

}


.clock-6 {

    bottom: 8px;

    left: 50%;

    transform: translateX(-50%);

}


.clock-9 {

    top: 50%;

    left: 9px;

    transform: translateY(-50%);

}


/* =========================================================
   Clock Hands
   ========================================================= */

.clock-hand {

    position: absolute;

    left: 50%;
    bottom: 50%;

    transform-origin: 50% 100%;

    border-radius: 10px;

}


.clock-hour {

    width: 4px;
    height: 27px;

    margin-left: -2px;

    background: #ffffff;

}


.clock-minute {

    width: 3px;
    height: 36px;

    margin-left: -1.5px;

    background: #ffffff;

}


.clock-second {

    width: 1px;
    height: 42px;

    margin-left: -.5px;

    background: #ef1111;

}


.clock-center {

    position: absolute;

    top: 50%;
    left: 50%;

    width: 7px;
    height: 7px;

    transform: translate(-50%, -50%);

    border-radius: 50%;

    background: #ef1111;

    box-shadow:
        0 0 8px rgba(239,17,17,.5);

}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 800px) {

    .contact-intro .contact-container {

        display: flex;

        flex-direction: column;

        gap: 35px;

    }


    .contact-local-time {

        order: 1;

        width: 100%;

        box-sizing: border-box;

    }


    .contact-intro-content {

        order: 2;

    }

}

@media (max-width: 500px) {

    .contact-local-time {

        gap: 15px;

        padding: 22px;

    }


    .contact-local-time-clock {

        font-size: 29px;

    }


    .contact-analog-clock {

        width: 95px;
        height: 95px;

        flex-basis: 95px;

    }


    .analog-clock-face {

        width: 88px;
        height: 88px;

    }


    .clock-hour {
        height: 22px;
    }


    .clock-minute {
        height: 29px;
    }


    .clock-second {
        height: 34px;
    }

}