/* =========================================================
   AMCOS — CONTACT US
   /assets/css/contact.css
========================================================= */


/* Base */

.amcos-contact-page,
.amcos-contact-page * {
    box-sizing: border-box;
}

.amcos-contact-page {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    overflow: hidden;
    color: #163a25;
    font-family: Montserrat, Arial, sans-serif;
}

.amcos-contact-shell {
    width: min(1380px, calc(100% - 80px));
    margin: 0 auto;
}


/* Hero */

.amcos-contact-hero {
    background:
        radial-gradient(
            circle at 87% 18%,
            rgba(217, 169, 0, .12),
            transparent 25%
        ),
        radial-gradient(
            circle at 73% 80%,
            rgba(7, 91, 39, .09),
            transparent 27%
        ),
        linear-gradient(135deg, #fbfaf5, #f5f3e9);
}

.contact-hero-grid {
    min-height: 620px;
    display: grid;
    grid-template-columns: 1fr .92fr;
    gap: 65px;
    align-items: center;
    padding: 70px 0;
}

.contact-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 23px;
    color: #8e7000;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 2.2px;
}

.contact-eyebrow span {
    width: 39px;
    height: 2px;
    background: #d9a900;
}

.contact-hero-copy h1 {
    margin: 0;
    max-width: 720px;
    color: #163a25;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(55px, 5.2vw, 79px);
    line-height: .98;
    letter-spacing: -1.7px;
}

.contact-hero-copy h1 span {
    display: block;
    color: #075b27;
}

.contact-hero-copy > p {
    max-width: 640px;
    margin: 25px 0 0;
    color: #69736c;
    font-size: 13px;
    line-height: 1.85;
}

.contact-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 31px;
}

.contact-main-btn {
    display: flex;
    align-items: center;
    gap: 27px;
    padding: 16px 20px;
    background: #075b27;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 9px;
    font-weight: 800;
}

.contact-main-btn span {
    color: #efd05b;
    font-size: 16px;
}

.contact-text-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    color: #075b27 !important;
    text-decoration: none !important;
    font-size: 9px;
    font-weight: 800;
}

.contact-text-btn span {
    font-size: 16px;
    transition: .25s;
}

.contact-text-btn:hover span {
    transform: translateX(5px);
}


/* Hero Visual */

.contact-hero-visual {
    position: relative;
    width: min(100%, 540px);
    height: 470px;
    margin-left: auto;
}

.contact-orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.orbit-one {
    width: 350px;
    height: 350px;
    border: 1px solid rgba(7, 91, 39, .13);
}

.orbit-two {
    width: 450px;
    height: 450px;
    border: 1px dashed rgba(217, 169, 0, .24);
    animation: contactRotate 35s linear infinite;
}

@keyframes contactRotate {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

.contact-center {
    position: absolute;
    z-index: 5;
    top: 50%;
    left: 50%;
    width: 205px;
    height: 205px;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(135deg, #075b27, #043c1a);
    box-shadow: 0 30px 65px rgba(4, 60, 26, .23);
}

.contact-center::before,
.contact-center::after {
    content: "";
    position: absolute;
    inset: -19px;
    border-radius: 50%;
    border: 1px solid rgba(7, 91, 39, .18);
    animation: contactPulse 3s ease-out infinite;
}

.contact-center::after {
    animation-delay: 1.5s;
}

@keyframes contactPulse {
    from {
        transform: scale(.8);
        opacity: .8;
    }

    to {
        transform: scale(1.32);
        opacity: 0;
    }
}

.contact-center-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(239, 208, 91, .12);
    color: #efd05b;
}

.contact-center-icon svg {
    width: 26px;
}

.contact-center small {
    color: #efd05b;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.7px;
}

.contact-center strong {
    margin: 5px 0;
    font-family: "Playfair Display", serif;
    font-size: 25px;
}

.contact-center > span {
    color: rgba(255, 255, 255, .6);
    font-size: 7px;
}


/* Floating Cards */

.contact-float-card {
    position: absolute;
    z-index: 8;
    min-width: 190px;
    padding: 13px 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid rgba(22, 58, 37, .08);
    box-shadow: 0 16px 38px rgba(22, 58, 37, .10);
}

.contact-float-card small {
    display: block;
    margin-bottom: 3px;
    color: #967500;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.contact-float-card strong {
    color: #163a25;
    font-size: 9px;
}

.contact-live {
    width: 8px;
    height: 8px;
    flex: none;
    border-radius: 50%;
    background: #18a052;
    animation: contactLive 1.8s ease-in-out infinite;
}

@keyframes contactLive {
    50% {
        box-shadow: 0 0 0 7px rgba(24, 160, 82, .11);
    }
}

.float-phone {
    top: 42px;
    left: 0;
    animation: floatContactA 4.8s ease-in-out infinite;
}

.float-email {
    top: 145px;
    right: -15px;
    animation: floatContactB 5.3s ease-in-out infinite;
}

.float-location {
    bottom: 40px;
    left: 18px;
    animation: floatContactA 5.6s ease-in-out infinite;
}

@keyframes floatContactA {
    50% {
        transform: translateY(-7px);
    }
}

@keyframes floatContactB {
    50% {
        transform: translateY(7px);
    }
}


/* Quick Contact */

.contact-quick {
    background: #fff;
    border-bottom: 1px solid rgba(22, 58, 37, .08);
}

.contact-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.quick-contact-card {
    position: relative;
    min-height: 175px;
    padding: 31px 30px;
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 18px;
    color: #163a25 !important;
    text-decoration: none !important;
    border-right: 1px solid rgba(22, 58, 37, .10);
    transition: .3s;
}

.quick-contact-card:last-child {
    border-right: 0;
}

a.quick-contact-card:hover {
    background: #f8f6ef;
}

.quick-icon {
    width: 49px;
    height: 49px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(7, 91, 39, .07);
}

.quick-icon svg {
    width: 19px;
    height: 19px;
    fill: #075b27;
}

.quick-contact-card small {
    display: block;
    margin-bottom: 4px;
    color: #997700;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.quick-contact-card h3 {
    margin: 0 0 8px;
    font-family: "Playfair Display", serif;
    font-size: 22px;
}

.quick-contact-card strong {
    display: block;
    color: #075b27;
    font-size: 10px;
}

.quick-contact-card p {
    margin: 3px 0 0;
    color: #737b74;
    font-size: 9px;
}

.quick-arrow {
    position: absolute;
    top: 27px;
    right: 27px;
    color: #d9a900;
    font-size: 16px;
}


/* Message Section */

.contact-message-section {
    padding: 95px 0;
    background: #f4f2eb;
}

.contact-message-grid {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    gap: 90px;
    align-items: start;
}

.contact-section-label {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 17px;
    color: #987600;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 2px;
}

.contact-section-label::before {
    content: "";
    width: 37px;
    height: 2px;
    background: #d9a900;
}

.contact-message-intro h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(44px, 4.2vw, 61px);
    line-height: 1;
}

.contact-message-intro h2 span {
    display: block;
    color: #075b27;
}

.contact-message-intro > p {
    max-width: 520px;
    margin: 21px 0 34px;
    color: #6b756d;
    font-size: 12px;
    line-height: 1.8;
}


/* Help Topics */

.contact-help-topics {
    border-top: 1px solid rgba(22, 58, 37, .12);
}

.contact-help-topics > div {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 16px;
    padding: 17px 0;
    border-bottom: 1px solid rgba(22, 58, 37, .12);
}

.contact-help-topics span {
    color: #a27e00;
    font-family: "Playfair Display", serif;
    font-size: 11px;
}

.contact-help-topics p {
    margin: 0;
    color: #707970;
    font-size: 9px;
    line-height: 1.5;
}

.contact-help-topics strong {
    display: block;
    margin-bottom: 3px;
    color: #163a25;
    font-family: "Playfair Display", serif;
    font-size: 15px;
}


/* Form */

.contact-form-card {
    padding: 42px 45px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(22, 58, 37, .08);
}

.contact-form-heading {
    margin-bottom: 28px;
    padding-bottom: 22px;
    border-bottom: 1px solid rgba(22, 58, 37, .09);
}

.contact-form-heading small {
    color: #9b7800;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.7px;
}

.contact-form-heading h3 {
    margin: 5px 0 7px;
    color: #163a25;
    font-family: "Playfair Display", serif;
    font-size: 31px;
}

.contact-form-heading p {
    margin: 0;
    color: #747d75;
    font-size: 9.5px;
}

.amcos-contact-form {
    display: grid;
    gap: 18px;
}

.contact-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.amcos-contact-form label > span {
    display: block;
    margin-bottom: 7px;
    color: #526057;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.amcos-contact-form input,
.amcos-contact-form select,
.amcos-contact-form textarea {
    width: 100%;
    border: 1px solid #dadbd4;
    border-radius: 0;
    outline: none;
    padding: 14px;
    background: #fafaf7;
    color: #163a25;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 10px;
    transition: .2s;
}

.amcos-contact-form input,
.amcos-contact-form select {
    height: 48px;
}

.amcos-contact-form textarea {
    resize: vertical;
    min-height: 125px;
}

.amcos-contact-form input:focus,
.amcos-contact-form select:focus,
.amcos-contact-form textarea:focus {
    border-color: #075b27;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(7, 91, 39, .05);
}

.amcos-contact-form input[aria-invalid="true"],
.amcos-contact-form select[aria-invalid="true"],
.amcos-contact-form textarea[aria-invalid="true"] {
    border-color: #a52b2b;
    background: #fffafa;
}


/* Honeypot */

.amcos-contact-trap {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    pointer-events: none !important;
}


/* Form Status */

.contact-form-status {
    padding: 12px 14px;
    border-left: 3px solid;
    font-size: 9px;
    line-height: 1.6;
}

.contact-form-status[hidden] {
    display: none !important;
}

.contact-form-status.is-success {
    color: #075b27;
    background: rgba(7, 91, 39, .07);
    border-color: #075b27;
}

.contact-form-status.is-error {
    color: #842626;
    background: rgba(165, 43, 43, .06);
    border-color: #a52b2b;
}

.contact-form-status.is-info {
    color: #665000;
    background: rgba(217, 169, 0, .09);
    border-color: #d9a900;
}


/* Submit Button */

.contact-submit {
    position: relative;
    width: 100%;
    min-height: 52px;
    padding: 0 19px;
    border: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #075b27;
    color: #fff;
    cursor: pointer;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 9px;
    font-weight: 800;
    transition:
        background .2s ease,
        opacity .2s ease,
        transform .2s ease;
}

.contact-submit:hover {
    background: #064c21;
}

.contact-submit:focus-visible {
    outline: 3px solid rgba(217, 169, 0, .35);
    outline-offset: 3px;
}

.contact-submit:active {
    transform: translateY(1px);
}

.contact-submit:disabled {
    cursor: wait;
    opacity: .78;
}

.contact-submit-text {
    color: #fff;
}

.contact-submit-arrow {
    color: #efd05b;
    font-size: 17px;
    transition: transform .2s ease;
}

.contact-submit:not(:disabled):hover .contact-submit-arrow {
    transform: translateX(4px);
}


/* Loading Spinner */

.contact-submit-loader {
    position: absolute;
    right: 19px;
    width: 16px;
    height: 16px;
    display: none;
    border: 2px solid rgba(255, 255, 255, .32);
    border-top-color: #efd05b;
    border-radius: 50%;
    animation: contactSpinner .7s linear infinite;
}

.contact-submit.is-loading .contact-submit-arrow {
    visibility: hidden;
}

.contact-submit.is-loading .contact-submit-loader {
    display: block;
}

@keyframes contactSpinner {
    to {
        transform: rotate(360deg);
    }
}

.contact-form-note {
    margin: 0 !important;
    color: #8a908b !important;
    font-size: 7.5px !important;
    line-height: 1.5 !important;
}


/* Address */

.contact-address-section {
    padding: 90px 0;
    color: #fff;
    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(217, 169, 0, .15),
            transparent 28%
        ),
        linear-gradient(135deg, #043c1a, #075b27);
}

.contact-address-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 95px;
    align-items: center;
}

.contact-address-title > span {
    display: block;
    margin-bottom: 13px;
    color: #efd05b;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 2px;
}

.contact-address-title h2 {
    margin: 0;
    color: #fff;
    font-family: "Playfair Display", serif;
    font-size: clamp(45px, 4vw, 59px);
    line-height: 1;
}

.contact-address-title h2 em {
    display: block;
    color: #efd05b;
    font-style: normal;
}

.contact-address-title p {
    max-width: 540px;
    margin: 21px 0 0;
    color: rgba(255, 255, 255, .67);
    font-size: 11px;
    line-height: 1.8;
}

.contact-address-panel {
    padding: 33px 36px;
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 10px 18px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .13);
}

.address-pin {
    grid-row: 1 / 4;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(239, 208, 91, .13);
}

.address-pin svg {
    width: 19px;
    fill: #efd05b;
}

.contact-address-panel small {
    color: #efd05b;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.contact-address-panel h3 {
    margin: 5px 0 3px;
    color: #fff;
    font-family: "Playfair Display", serif;
    font-size: 20px;
}

.contact-address-panel p {
    margin: 0;
    color: rgba(255, 255, 255, .62);
    font-size: 9px;
    line-height: 1.7;
}

.address-line {
    grid-column: 2;
    height: 1px;
    margin: 17px 0;
    background: rgba(255, 255, 255, .13);
}


/* Website Strip */

.contact-web-strip {
    padding: 27px 0;
    background: #efd05b;
}

.contact-web-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.contact-web-inner small {
    display: block;
    margin-bottom: 3px;
    color: #745900;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.contact-web-inner strong {
    color: #163a25;
    font-family: "Playfair Display", serif;
    font-size: 20px;
}

.web-strip-mark {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #075b27;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: 1.6px;
}

.web-strip-mark span {
    color: #fff;
}


/* Tablet */

@media (max-width: 1000px) {

    .amcos-contact-shell {
        width: calc(100% - 50px);
    }

    .contact-hero-grid {
        gap: 30px;
    }

    .contact-message-grid {
        gap: 45px;
    }

}


/* Mobile */

@media (max-width: 720px) {

    .amcos-contact-shell {
        width: calc(100% - 36px);
    }

    .contact-hero-grid {
        min-height: auto;
        grid-template-columns: 1fr;
        padding: 50px 0;
    }

    .contact-hero-copy h1 {
        font-size: clamp(46px, 13vw, 60px);
    }

    .contact-hero-visual {
        height: 450px;
        transform: scale(.88);
        transform-origin: center;
    }

    .float-email {
        right: -30px;
    }

    .float-phone {
        left: -25px;
    }

    .contact-quick-grid {
        grid-template-columns: 1fr;
    }

    .quick-contact-card {
        min-height: 145px;
        border-right: 0;
        border-bottom: 1px solid rgba(22, 58, 37, .10);
    }

    .contact-message-section {
        padding: 65px 0;
    }

    .contact-message-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .contact-message-intro h2 {
        font-size: 40px;
    }

    .contact-form-card {
        padding: 30px 24px;
    }

    .contact-form-row {
        grid-template-columns: 1fr;
    }

    .contact-address-section {
        padding: 65px 0;
    }

    .contact-address-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .contact-address-title h2 {
        font-size: 40px;
    }

    .contact-address-panel {
        padding: 28px 22px;
    }

    .contact-web-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .web-strip-mark {
        flex-wrap: wrap;
    }

}


/* Reduced Motion */

@media (prefers-reduced-motion: reduce) {

    .orbit-two,
    .contact-center::before,
    .contact-center::after,
    .contact-live,
    .contact-float-card,
    .contact-submit-loader {
        animation: none !important;
    }

}