.contact-page {
    background: #fff;
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 460fr) minmax(0, 740fr);
    gap: 5.00002vw;
    align-items: start;
}

.contact-eyebrow::before {
    content: '';
    background: #05b256;
    width: 2.49996vw;
    height: 0.12498vw;
}

.contact-info h1 {
    font-size: max(var(--compact-h1-font, 0vw), 2.875vw);
    line-height: 1.15;
    margin-top: 1.24998vw;
}

.contact-directory {
    margin-top: 5.31252vw;
}

.contact-directory-item:first-child {
    padding-top: 0;
}

.contact-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 2.99997vw;
    height: 2.99997vw;
    border-radius: 0.74997vw;
    background: #edf7f1;
}

.contact-icon img {
    width: 1.37496vw;
    height: 1.37496vw;
}

.contact-directory-item > div {
    display: flex;
    flex-direction: column;
    gap: 0.50001vw;
    min-width: 0;
}

.contact-directory address {
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
    line-height: max(var(--compact-body-line, 0vw), 1.37496vw);
    color: #607068;
}

.enquiry-heading {
    margin-bottom: 2.25001vw;
}

#enquiry-form {
    display: flex;
    flex-direction: column;
    gap: 1.50004vw;
}

.enquiry-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.50004vw 1.00002vw;
}

.enquiry-field {
    display: flex;
    flex-direction: column;
    gap: 0.50001vw;
    min-width: 0;
}

.enquiry-field input {
    width: 100%;
    min-width: 0;
    border: 0.0625vw solid #dbe4de;
    border-radius: 0.74997vw;
    background: #fff;
    color: #0c1712;
    padding: 1.00002vw;
    font-family: I-R;
    font-size: max(var(--compact-body-font, 0vw), 0.93749vw);
    line-height: 1.5;
    height: 3.37501vw;
}

.enquiry-field textarea {
    width: 100%;
    min-width: 0;
    border: 0.0625vw solid #dbe4de;
    border-radius: 0.74997vw;
    background: #fff;
    color: #0c1712;
    padding: 1.00002vw;
    font-family: I-R;
    font-size: max(var(--compact-body-font, 0vw), 0.93749vw);
    line-height: 1.5;
    height: 10.00005vw;
    resize: vertical;
}

.enquiry-field :is(input, textarea)::placeholder {
    color: #607068;
    opacity: 1;
}

.enquiry-field :is(input, textarea):focus {
    border-color: #05b256;
    outline: 0.06254vw solid #05b256;
    box-shadow: 0 0.24996vw 0.37503vw #05b25614;
}

.enquiry-services {
    min-width: 0;
    border: 0;
}

.service-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.50001vw;
}

.service-pills label {
    position: relative;
    cursor: pointer;
    max-width: 100%;
}

.service-pills input {
    position: absolute;
    width: 0.06254vw;
    height: 0.06254vw;
    opacity: 0;
}

.service-pills input:focus-visible + span {
    outline: 0.12498vw solid #05b256;
    outline-offset: 0.18752vw;
}

.enquiry-submit img {
    width: 1.00002vw;
    height: 1.00002vw;
}

.enquiry-submit:disabled {
    opacity: .65;
    cursor: wait;
}

.contact-main .field-error {
    font-size: max(var(--compact-small-font, 0vw), 0.74997vw);
    line-height: 1.5;
    color: #a12727;
}

.enquiry-services .field-error {
    margin-top: 0.50001vw;
}

.enquiry-field [aria-invalid="true"] {
    border-color: #a12727;
}

.enquiry-status {
    padding: 1.00002vw;
    border: 0.0625vw solid #e2bbbb;
    border-radius: 0.74997vw;
    background: #fff7f7;
    color: #792727;
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
    line-height: 1.6;
}

.enquiry-status.success {
    color: #12613c;
    background: #edf7f1;
    border-color: #b8ddc7;
}

.contact-main [hidden] {
    display: none;
}

#enquiry-form :is(a,button):focus-visible {
    outline: 0.12498vw solid #05b256;
    outline-offset: 0.24996vw;
}

.contact-location {
    display: grid;
    grid-template-columns: minmax(0, 830fr) minmax(0, 120fr) minmax(0, 330fr);
    align-items: stretch;
    margin-top: 4.81251vw;
    scroll-margin-top: 1.50004vw;
}

.office-panel > * {
    position: relative;
}

.office-eyebrow {
    color: #7fd6a7;
    font-family: I-M;
    font-size: max(var(--compact-small-font, 0vw), 0.68753vw);
    margin-bottom: 0.87505vw;
}

.office-eyebrow::before {
    content: '';
    display: block;
    width: 1.87497vw;
    height: 0.12498vw;
    background: #05b256;
    margin-bottom: 0.50001vw;
}

.office-panel h2 {
    color: #fff;
    font-size: max(var(--compact-h2-font, 0vw), 2.25001vw);
    line-height: 1.15;
}

.office-panel address {
    color: #ffffffcc;
    font-size: max(var(--compact-body-font, 0vw), 0.93749vw);
    line-height: 1.6;
}

.office-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.00002vw;
    padding-top: 1.50004vw;
    border-top: 0.0625vw solid #ffffff26;
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
}

.office-meta span {
    display: block;
    color: #7fd6a7;
    font-family: I-M;
    font-size: max(var(--compact-small-font, 0vw), 0.68753vw);
    text-transform: uppercase;
    margin-bottom: 0.24996vw;
}

.office-directions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.50001vw;
    height: 2.875vw;
    flex-shrink: 0;
    border: 0.0625vw solid #ffffff40;
    border-radius: 6.25vw;
    color: #fff;
    font-family: I-SB;
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
}

.office-directions img {
    width: 1.00002vw;
    height: 1.00002vw;
}

/* Refinements from the 1600px Contact design. */

.contact-main {
    width: 79.99997vw;
    margin: auto;
    padding: 11.06251vw 0 7.25003vw;
    position: relative;
    isolation: isolate;
    padding-bottom: 7.3125vw;
}

.contact-main::before {
    content: '';
    position: absolute;
    pointer-events: none;
    z-index: -1;
    top: -0.3125vw;
    width: 100.5625vw;
    height: 67.0625vw;
    background: url('../assets/optimized/about-latest-background.webp') left top / 100% 100% no-repeat;
    left: -10vw;
}

.contact-main::after {
    content: '';
    position: absolute;
    pointer-events: none;
    z-index: -1;
    top: 49.8125vw;
    height: 19.625vw;
    background: url('../assets/contact/bottom-fade.png') left top / 100% 100% no-repeat;
    transform: scaleY(-1);
    left: -10vw;
    width: 100vw;
}

.contact-page header:not(.scrolled) {
    height: 6.375vw;
}

.contact-info {
    padding: 2.49996vw 0;
    position: relative;
}

.contact-info::before {
    content: '';
    position: absolute;
    top: 13.75vw;
    left: 1.5vw;
    width: 0.0625vw;
    height: 32.5vw;
    background: #05b256;
    opacity: .05;
    pointer-events: none;
}

.contact-eyebrow {
    display: flex;
    align-items: center;
    gap: 0.74997vw;
    font-family: I-M;
    font-size: max(var(--compact-small-font, 0vw), 0.74997vw);
    line-height: max(var(--compact-h2-line, 0vw), .9375vw);
}

.contact-directory h2 {
    font-family: I-SB;
    font-size: max(var(--compact-small-font, 0vw), 0.74997vw);
    color: #007d49;
    text-transform: uppercase;
    line-height: max(var(--compact-h2-line, 0vw), .9375vw);
}

.contact-directory strong {
    font-family: M-B;
    font-size: max(var(--compact-body-font, 0vw), 1.125vw);
    color: #0c1712;
    line-height: max(var(--compact-body-line, 0vw), 1.5625vw);
}

.contact-phone {
    font-family: M-B;
    font-size: max(var(--compact-body-font, 0vw), 1.125vw);
    color: #0c1712;
    line-height: max(var(--compact-body-line, 0vw), 1.5625vw);
}

.contact-location-link {
    color: #007d49;
    font-family: I-M;
    font-size: max(var(--compact-small-font, 0vw), 0.81251vw);
    line-height: max(var(--compact-body-line, 0vw), 1vw);
}

.contact-directory-item {
    display: flex;
    align-items: start;
    gap: 1.50004vw;
    padding: 2.49996vw 0;
    border-bottom: 0;
    box-shadow: 0 0.0625vw #dbe4de;
}

.contact-directory-item:last-child {
    border: 0;
    padding-bottom: 0;
    box-shadow: none;
}

.contact-email {
    font-family: I-M;
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
    color: #0c1712;
    text-decoration: underline;
    overflow-wrap: anywhere;
    line-height: max(var(--compact-body-line, 0vw), 1.0625vw);
}

.contact-email + .contact-email {
    margin-top: -.125vw;
}

.enquiry-card {
    padding: 2.99997vw;
    background: #fff;
    border-radius: 1.50004vw;
    border: 0;
    outline: 0.0625vw solid #dbe4de;
}

.enquiry-heading p {
    font-family: I-SB;
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
    color: #007d49;
    margin-bottom: 0.50001vw;
    line-height: max(var(--compact-body-line, 0vw), 1.0625vw);
}

.enquiry-heading h2 {
    font-size: max(var(--compact-h2-font, 0vw), 2.12503vw);
    line-height: max(var(--compact-h2-line, 0vw), 2.875vw);
}

.enquiry-field label {
    font-family: I-SB;
    font-size: max(var(--compact-small-font, 0vw), 0.74997vw);
    color: #52605a;
    line-height: max(var(--compact-body-line, 0vw), .9375vw);
}

.enquiry-services legend {
    font-family: I-SB;
    font-size: max(var(--compact-small-font, 0vw), 0.74997vw);
    color: #52605a;
    margin-bottom: 0.74997vw;
    line-height: max(var(--compact-body-line, 0vw), .9375vw);
}

.service-pills span {
    display: block;
    border: 0.0625vw solid #dbe4de;
    border-radius: 62.4375vw;
    font-family: I-M;
    font-size: max(var(--compact-small-font, 0vw), 0.81251vw);
    color: #52605a;
    transition: background .2s ease, color .2s ease;
    padding: .5625vw .9375vw;
    line-height: max(var(--compact-body-line, 0vw), 1vw);
}

.service-pills input:checked + span {
    background: #0c1712;
    border-color: #0c1712;
    color: #fff;
    font-family: I-SB;
}

.enquiry-submit {
    display: inline-flex;
    align-self: start;
    align-items: center;
    gap: 0.62499vw;
    margin-top: 0.74997vw;
    padding: 0.87505vw 1.74999vw;
    background: #007d49;
    color: #fff;
    font-family: I-SB;
    font-size: max(var(--compact-body-font, 0vw), 0.87505vw);
    border-radius: 62.4375vw;
    line-height: max(var(--compact-body-line, 0vw), 1.0625vw);
}

.contact-map {
    grid-column: 1 / 3;
    grid-row: 1;
    height: 28.74996vw;
    object-fit: cover;
    object-position: center;
    border-radius: 1.24998vw;
    position: relative;
    overflow: hidden;
    width: calc(100% - 0.0625vw);
}

.contact-map-embed {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    position: absolute;
    inset: 0;
}

.office-panel {
    grid-column: 2 / 4;
    grid-row: 1;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.50004vw;
    padding: 2.875vw;
    height: 28.74996vw;
    border-radius: 1.37496vw;
    background: #0c1712;
    color: #fff;
    box-shadow: 0 1.00002vw 2.00005vw #02070466;
    overflow: hidden;
    transform: translateX(0.0625vw);
}

.office-panel::after {
    content: '';
    position: absolute;
    top: 1vw;
    left: 1vw;
    right: 1vw;
    height: .25vw;
    background: linear-gradient(#05b256,#05b256) left / .25vw 100% no-repeat, linear-gradient(#05b256,#05b256) right / .25vw 100% no-repeat;
    opacity: .3;
    pointer-events: none;
}

.office-panel::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    background: url('../assets/contact/circuit-trace.svg') 21.25vw top / 0.0625vw 7.5vw no-repeat, repeating-linear-gradient(0deg, transparent 0, transparent 2.8125vw, #ffffff05 2.8125vw, #ffffff05 2.875vw);
}

@media (min-width: 1025px), (hover: hover) {
    .service-pills label:hover span {
        border-color: #05b256;
    }

    .enquiry-submit:hover {
        background: #007d49;
    }

    .office-directions:hover {
        background: #ffffff12;
    }

    .contact-directory a:hover {
        color: #007d49;
    }
}

.enquiry-privacy {
    font-size: max(var(--compact-small-font, 0vw), 0.8125vw);
    line-height: 1.7;
}

.enquiry-privacy a {
    color: #007d49;
    text-decoration: underline;
    text-underline-offset: 0.1875vw;
}

@media (min-width: 1025px), (hover: hover) {
    .enquiry-privacy a:hover {
        color: #0c1712;
    }
}

/* Compact desktop: readable type and spacing from 961px through 1200px. */

@media (max-width: 1200px) {
.contact-icon {
    width: 36px;
    height: 36px;
}

.contact-icon img {
    width: 22px;
    height: 22px;
}

.contact-directory-item {
    gap: 6px;
}

.enquiry-submit img {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.office-directions img {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.enquiry-card {
    padding: 28px;
}

#enquiry-form {
    gap: 24px;
}

.enquiry-fields {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
}

.enquiry-field {
    gap: 8px;
}

.enquiry-field input {
    min-height: 48px;
    padding: 12px 14px;
}

.enquiry-field textarea {
    padding: 12px 14px;
}

.service-pills {
    gap: 8px;
}

.service-pills span {
    min-height: 40px;
    padding: 10px 14px;
    display: flex;
    align-items: center;
}

.enquiry-submit {
    gap: 10px;
    min-height: 44px;
    padding: 12px 20px;
}

.office-panel {
    height: auto;
    min-height: 100%;
    padding: 28px;
    gap: 24px;
}

.contact-map {
    height: auto;
}

.office-directions {
    gap: 10px;
    min-height: 44px;
}
}

@media (max-width: 960px) {
.enquiry-submit img {
    width: 3.72093vw;
    height: 3.72093vw;
    flex-shrink: 0;
}

.office-directions img {
    width: 3.72093vw;
    height: 3.72093vw;
    flex-shrink: 0;
}

.office-panel::before {
    background: url('../assets/contact/circuit-trace.svg') 21.25vw top / 0.23256vw 7.5vw no-repeat, repeating-linear-gradient(0deg, transparent 0, transparent 2.8125vw, #ffffff05 2.8125vw, #ffffff05 2.875vw);
}

.enquiry-privacy {
    font-size: 3.02326vw;
}

.enquiry-privacy a {
    text-underline-offset: 0.69767vw;
}

.contact-page header:not(.scrolled) {
    height: 20.4651vw;
}

.contact-main::before {
    left: -5.5814vw;
    width: calc(100% + 11.16279vw);
    height: 255.81395vw;
    background-size: cover;
}

.contact-main::after {
    left: -5.5814vw;
    width: calc(100% + 11.16279vw);
    top: 186.04651vw;
    height: 73.02326vw;
}

.contact-info::before {
    width: 0.23256vw;
    display: none;
}

.contact-email + .contact-email {
    margin-top: -0.46512vw;
}

.office-panel::after {
    top: 3.72093vw;
    left: 3.72093vw;
    right: 3.72093vw;
    height: 0.93023vw;
    background-size: 0.93023vw 100%;
}

.contact-main {
    width: auto;
    margin: 0 5.5814vw;
    padding: 32.55814vw 0 14.88372vw;
}

.contact-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 9.30233vw;
}

.contact-info {
    padding: 0;
}

.contact-eyebrow {
    line-height: 3.48837vw;
    font-size: 2.7907vw;
    gap: 2.7907vw;
}

.contact-eyebrow::before {
    width: 9.30233vw;
    height: 0.46512vw;
}

.contact-info h1 {
    font-size: 7.44186vw;
    margin-top: 4.65116vw;
    max-width: 125.5814vw;
}

.contact-directory {
    margin-top: 8.37209vw;
}

.contact-directory-item {
    border-bottom: 0.23256vw solid #dbe4de;
    box-shadow: 0 0.23256vw #dbe4de;
    gap: 4.65116vw;
    padding: 5.5814vw 0;
}

.contact-icon {
    width: 11.16279vw;
    height: 11.16279vw;
    border-radius: 2.7907vw;
}

.contact-icon img {
    width: 5.11628vw;
    height: 5.11628vw;
}

.contact-directory-item > div {
    gap: 1.86047vw;
}

.contact-directory h2 {
    line-height: 3.48837vw;
    font-size: 2.7907vw;
}

.contact-directory strong {
    line-height: 5.81395vw;
    font-size: 4.18605vw;
}

.contact-phone {
    line-height: 5.81395vw;
    font-size: 4.18605vw;
}

.contact-directory address {
    font-size: 3.25581vw;
    line-height: 5.11628vw;
}

.contact-location-link {
    line-height: 3.72093vw;
    font-size: 3.02326vw;
}

.contact-email {
    line-height: 3.95349vw;
    font-size: 3.25581vw;
}

.enquiry-card {
    border: 0.23256vw solid #dbe4de;
    outline: 0.23256vw solid #dbe4de;
    padding: 6.51163vw 5.5814vw;
    border-radius: 5.5814vw;
}

.enquiry-heading {
    margin-bottom: 6.51163vw;
}

.enquiry-heading p {
    line-height: 3.48837vw;
    font-size: 2.7907vw;
    margin-bottom: 1.86047vw;
}

.enquiry-heading h2 {
    line-height: 1.35;
    font-size: 6.51163vw;
}

#enquiry-form {
    gap: 5.5814vw;
}

.enquiry-fields {
    grid-template-columns: minmax(0, 1fr);
    gap: 5.5814vw;
}

.enquiry-field {
    gap: 1.86047vw;
}

.enquiry-field label {
    line-height: 3.48837vw;
    font-size: 2.7907vw;
}

.enquiry-field input {
    min-height: 0;
    border: 0.23256vw solid #dbe4de;
    font-size: 3.72093vw;
    padding: 3.25581vw 3.72093vw;
    border-radius: 2.7907vw;
    height: 12.55814vw;
}

.enquiry-field textarea {
    border: 0.23256vw solid #dbe4de;
    font-size: 3.72093vw;
    padding: 3.25581vw 3.72093vw;
    border-radius: 2.7907vw;
    height: 37.2093vw;
}

.enquiry-services legend {
    line-height: 3.48837vw;
    font-size: 2.7907vw;
    margin-bottom: 2.7907vw;
}

.service-pills {
    gap: 1.86047vw;
}

.service-pills input {
    width: 0.23256vw;
    height: 0.23256vw;
}

.service-pills span {
    display: flex;
    align-items: center;
    border: 0.23256vw solid #dbe4de;
    line-height: 3.72093vw;
    padding: 2.7907vw 3.72093vw;
    min-height: 10.23256vw;
    font-size: 3.02326vw;
    border-radius: 232.32558vw;
}

.enquiry-submit {
    line-height: 3.95349vw;
    font-size: 3.25581vw;
    padding: 3.25581vw 6.51163vw;
    min-height: 11.16279vw;
    gap: 2.32558vw;
    margin-top: 0.93023vw;
}

.contact-main .field-error {
    font-size: 2.7907vw;
}

.enquiry-services .field-error {
    margin-top: 1.86047vw;
}

.enquiry-status {
    border: 0.23256vw solid #e2bbbb;
    padding: 3.72093vw;
    border-radius: 2.7907vw;
    font-size: 3.25581vw;
}

.contact-location {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin-top: 11.16279vw;
    scroll-margin-top: 5.5814vw;
}

.contact-map {
    width: 100%;
    grid-column: 1;
    grid-row: 1;
    height: auto;
    aspect-ratio: 1.6;
    border-radius: 4.65116vw 4.65116vw 0 0;
}

.office-panel {
    transform: none;
    grid-column: 1;
    grid-row: 2;
    height: auto;
    min-height: 97.67442vw;
    padding: 7.44186vw 5.5814vw;
    gap: 5.5814vw;
    border-radius: 0 0 4.65116vw 4.65116vw;
}

.office-eyebrow {
    font-size: 2.55814vw;
    margin-bottom: 3.25581vw;
}

.office-eyebrow::before {
    width: 6.97674vw;
    height: 0.46512vw;
    margin-bottom: 1.86047vw;
}

.office-panel h2 {
    font-size: 7.44186vw;
}

.office-panel address {
    font-size: 3.48837vw;
}

.office-meta {
    border-top: 0.23256vw solid #ffffff26;
    gap: 3.72093vw;
    padding-top: 5.5814vw;
    font-size: 3.25581vw;
}

.office-meta span {
    font-size: 2.55814vw;
    margin-bottom: 0.93023vw;
}

.office-directions {
    min-height: 0;
    border: 0.23256vw solid #ffffff40;
    height: 10.69767vw;
    gap: 1.86047vw;
    font-size: 3.25581vw;
    border-radius: 23.25581vw;
}

.contact-page header nav a:not(.active)::after {
    transform: scaleX(0);
}

.contact-page .btn {
    transform: none;
    box-shadow: none;
    background: #007d49;
}

.contact-page .btn.dark {
    background: #0c1712;
}

.contact-page .footer-grid a {
    color: #fff;
}
}
