.contact-page {
    --contact-primary: var(--brand-primary, #26B5A6);
    --contact-primary-dark: var(--brand-interactive, #087E74);
    --contact-deep: var(--brand-dark, #052A33);
    --contact-ink: #27444a;
    --contact-muted: #71878b;
    overflow: hidden;
    color: var(--contact-ink);
    background: #fff;
}

/* Inner banner and secondary navigation */
.contact-page .neibanner { position: relative; width: 100%; height: 390px; overflow: hidden; }
.contact-page .neibanner > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.contact-page .neibanner::after { content: ""; position: absolute; top:0;right:0;bottom:0;left:0;inset: 0; background: linear-gradient(90deg, rgba(2,35,42,.78), rgba(2,35,42,.4) 48%, rgba(2,35,42,.08)); pointer-events: none; }
.contact-page .neibannerdesc {
    position: absolute;
    right: 0;
    bottom: 62px;
    left: 0;
    z-index: 2;
    width: 100%;
    margin: auto;
    color: #fff;

}
.contact-page .neibannerdesc-title { margin-bottom: 0; }
.contact-page .neibannerdesc-title p { margin: 0; color: rgba(255,255,255,.88); font-size: 20px; line-height: 1.5; letter-spacing: .18em; }
.contact-page .neibannerdesc-title h2 { margin: 7px 0 0; color: #fff; font-size: 44px; font-weight: 400; line-height: 1.25; }
.contact-page .neinav { display: flex; align-items: center; width: 100%; min-height: 72px; margin: 0; border: 0; border-bottom: 1px solid #e5ebea; background: #f5f7f7; }
.contact-page .neinav .row { min-height: 72px; }
.contact-page .neinav-wrapper { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.contact-page .neinav-wrapper li { position: relative; margin: 0 30px 0 0; padding-right: 31px; }
.contact-page .neinav-wrapper li::after { content: ""; position: absolute; top: 50%; right: 0; width: 1px; height: 16px; background: #cfd9d7; transform: translateY(-50%); }
.contact-page .neinav-wrapper li:last-child { margin-right: 0; padding-right: 0; }
.contact-page .neinav-wrapper li:last-child::after { display: none; }
.contact-page .neinav-wrapper li a { position: relative; display: inline-block; color: #53676b; font-size: 15px; line-height: 72px; text-decoration: none; transition: color .25s ease; }
.contact-page .neinav-wrapper li.active a { padding: 0; color: var(--contact-primary-dark); background: transparent; border-radius: 0; font-weight: 600; }
.contact-page .neinav-wrapper li.active a::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--contact-primary); }
.contact-page .neinav-wrapper li a:hover { color: var(--contact-primary-dark); }
.contact-page .neiposition { color: #819094; white-space: nowrap; }
.contact-page .neiposition i.fa { color: #93a0a3; }
.contact-page .neiposition i.neiposition-icon { margin-right: 5px; }
.contact-page .neiposition a { color: #73868a; font-size: 14px; text-decoration: none; }
.contact-page .neiposition a:hover { color: var(--contact-primary-dark); }

.contact-offices { padding: 96px 0 106px; }
.contact-heading { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.contact-heading__eyebrow { display: inline-flex; align-items: center; grid-gap:11px;gap: 11px; margin-bottom: 14px; color: var(--contact-primary-dark); font-size: 12px; font-weight: 700; letter-spacing: .18em; }
.contact-heading__eyebrow::before { content: ""; width: 34px; height: 2px; background: var(--contact-primary); }
@supports not (font-size: clamp(34px, 3vw, 44px)) {
.contact-heading h1 { font-size: 3vw; }
@media (max-width: 1133.33333px) { .contact-heading h1 { font-size: 34px; } }
@media (min-width: 1466.66667px) { .contact-heading h1 { font-size: 44px; } }
}
.contact-heading h1 { margin: 0 0 15px; color: var(--contact-deep); font-size: clamp(34px, 3vw, 44px); font-weight: 700; line-height: 1.3; }
.contact-heading > p { margin: 0; color: var(--contact-muted); font-size: 16px; line-height: 1.8; }

.contact-office-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap:28px;gap: 28px; }
.contact-office-card { position: relative; padding: 42px 42px 36px; overflow: hidden; border: 1px solid #dce8e6; background: #fff; box-shadow: 0 16px 42px rgba(3,52,60,.07); transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.contact-office-card:hover { border-color: rgba(var(--brand-primary-rgb, 38, 181, 166), .42); box-shadow: 0 24px 58px rgba(3,52,60,.13); transform: translateY(-6px); }
.contact-office-card::before { content: ""; position: absolute; top: 0; left: 0; width: 92px; height: 4px; background: #b8cbc7; }
.contact-office-card--primary::before { background: var(--contact-primary); }
.contact-office-card__top { display: flex; align-items: flex-start; grid-gap:21px;gap: 21px; padding-bottom: 27px; border-bottom: 1px solid #e5edeb; }
.contact-office-card__number { color: #bdd0cc; font-size: 34px; font-weight: 300; line-height: 1; transition: color .3s ease, transform .3s ease; }
.contact-office-card:hover .contact-office-card__number { color: var(--brand-interactive, #087E74); transform: translateY(-2px); }
.contact-office-card__label { display: block; margin-bottom: 7px; color: var(--contact-primary-dark); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.contact-office-card__top h2 { margin: 0; color: var(--contact-deep); font-size: 23px; font-weight: 600; }
.contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap:24px 30px;gap: 24px 30px; margin: 30px 0 0; }
.contact-details > div:first-child, .contact-details__wide { grid-column: 1 / -1; }
.contact-details dt { display: flex; align-items: center; grid-gap:8px;gap: 8px; margin-bottom: 8px; color: #8a9b9e; font-size: 12px; font-weight: 500; }
.contact-details dt i { display: inline-flex; align-items: center; justify-content: center; width: 20px; color: var(--contact-primary); font-size: 15px; }
.contact-details dd { margin: 0; color: var(--contact-ink); font-size: 16px; line-height: 1.8; }
.contact-details a { position: relative; color: var(--contact-ink); text-decoration: none; transition: color .2s ease; }
.contact-details a::after { content: ""; position: absolute; right: 0; bottom: -3px; left: 0; height: 1px; background: var(--contact-primary); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.contact-details a:hover { color: var(--contact-primary-dark); }
.contact-details a:hover::after { transform: scaleX(1); }

.contact-consulting { display: flex; align-items: center; justify-content: space-between; grid-gap:30px;gap: 30px; margin-top: 28px; padding: 28px 36px; color: #fff; background: linear-gradient(105deg, var(--contact-deep), #075963); transition: box-shadow .3s ease, transform .3s ease; }
.contact-consulting:hover { box-shadow: 0 18px 42px rgba(3,52,60,.2); transform: translateY(-3px); }
.contact-consulting span { display: block; margin-bottom: 4px; color: rgba(255,255,255,.58); font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.contact-consulting h2 { margin: 0; color: #fff; font-size: 20px; font-weight: 500; }
@supports not (font-size: clamp(20px, 2vw, 28px)) {
.contact-consulting > a { font-size: 2vw; }
@media (max-width: 1000px) { .contact-consulting > a { font-size: 20px; } }
@media (min-width: 1400px) { .contact-consulting > a { font-size: 28px; } }
}
.contact-consulting > a { color: #fff; font-size: clamp(20px, 2vw, 28px); font-weight: 500; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.contact-consulting > a:hover { color: #6de0cd; transform: translateX(-4px); }

.contact-message { padding: 0; background: var(--contact-deep); }
.contact-message__layout { display: grid; grid-template-columns: 1fr 1fr; min-height: 720px; }
.contact-message__visual { position: relative; min-width: 0; min-height: 720px; margin: 0; overflow: hidden; background: #dfe9e7; }
.contact-message__visual::after { content: ""; position: absolute; top:0;right:0;bottom:0;left:0;inset: 0; background: linear-gradient(90deg, rgba(2,35,42,.12), rgba(2,35,42,.02)); pointer-events: none; }
.contact-message__visual img { display: block; width: 100%; height: 100%; min-height: 720px; object-fit: cover; transition: transform .8s ease; }
.contact-message:hover .contact-message__visual img { transform: scale(1.035); }
@supports not (padding: clamp(58px, 6vw, 108px)) {
.contact-message__panel { padding: 6vw; }
@media (max-width: 966.66667px) { .contact-message__panel { padding: 58px; } }
@media (min-width: 1800px) { .contact-message__panel { padding: 108px; } }
}
.contact-message__panel { display: flex; flex-direction: column; justify-content: center; padding: clamp(58px, 6vw, 108px); background: linear-gradient(135deg, #063b43, #042d35); }
.contact-message__intro { max-width: 680px; margin-bottom: 34px; }
.contact-message__intro .contact-heading__eyebrow { color: #63d6c3; }
@supports not (font-size: clamp(34px, 3vw, 44px)) {
.contact-message__intro h2 { font-size: 3vw; }
@media (max-width: 1133.33333px) { .contact-message__intro h2 { font-size: 34px; } }
@media (min-width: 1466.66667px) { .contact-message__intro h2 { font-size: 44px; } }
}
.contact-message__intro h2 { margin: 2px 0 15px; color: #fff; font-size: clamp(34px, 3vw, 44px); font-weight: 600; }
.contact-message__intro > p { margin: 0; color: rgba(255,255,255,.62); font-size: 15px; line-height: 1.8; }

.contact-form { width: 100%; max-width: 760px; padding: 0; background: transparent; box-shadow: none; }
.contact-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap:24px;gap: 24px; }
.contact-form label { display: block; margin: 0 0 24px; }
.contact-form label > span { display: block; margin-bottom: 9px; color: rgba(255,255,255,.75); font-size: 13px; font-weight: 500; }
.contact-form input, .contact-form textarea { width: 100%; color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); border-radius: 0; outline: 0; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.contact-form input { height: 52px; padding: 0 16px; }
.contact-form textarea { min-height: 132px; padding: 14px 16px; resize: vertical; }
.contact-form input:hover, .contact-form textarea:hover { border-color: rgba(99,214,195,.58); background: rgba(255,255,255,.13); }
.contact-form input:focus, .contact-form textarea:focus { border-color: #63d6c3; background: rgba(255,255,255,.14); box-shadow: 0 0 0 3px rgba(var(--brand-primary-rgb, 38, 181, 166), .16); }
.contact-form input::placeholder, .contact-form textarea::placeholder { color: rgba(255,255,255,.65); }
.contact-form__footer { display: flex; align-items: center; justify-content: flex-start; grid-gap:24px;gap: 24px; }
.contact-form button { display: inline-flex; align-items: center; justify-content: center; grid-gap:17px;gap: 17px; min-width: 154px; height: 50px; padding: 0 24px; color: #fff; background: var(--contact-primary); border: 0; font-size: 15px; transition: background-color .2s ease, transform .2s ease; }
.contact-form button:hover { background: var(--brand-interactive, #087E74); box-shadow: 0 12px 28px rgba(0,0,0,.18); transform: translateY(-2px); }
.contact-form button i { font-size: 20px; font-style: normal; }

@media (max-width: 991px) {
    .contact-page .neibanner { height: 300px; }
    .contact-page .neibannerdesc { bottom: 46px; }
    .contact-offices { padding: 70px 0 78px; }
    .contact-office-grid { grid-template-columns: 1fr; }
    .contact-message__layout { grid-template-columns: 1fr; min-height: 0; }
    .contact-message__visual { min-height: 480px; }
    .contact-message__visual img { min-height: 480px; }
    .contact-message__panel { padding: 64px 48px; }
}

@media (max-width: 767px) {
    .contact-page .neibanner { height: 250px; }
    .contact-page .neibannerdesc-title h2 { font-size: 34px; }
    .contact-page .neibannerdesc-title p { font-size: 15px; }
    .contact-offices { padding: 54px 0 60px; }
    .contact-heading { margin-bottom: 34px; }
    .contact-office-card { padding: 34px 24px 28px; }
    .contact-details { grid-template-columns: 1fr; grid-gap:20px;gap: 20px; }
    .contact-details > div:first-child, .contact-details__wide { grid-column: auto; }
    .contact-consulting { align-items: flex-start; flex-direction: column; padding: 25px 24px; }
    .contact-message__visual, .contact-message__visual img { min-height: 360px; }
    .contact-message__panel { padding: 52px 24px; }
    .contact-form { padding: 0; }
    .contact-form__row { grid-template-columns: 1fr; grid-gap:0;gap: 0; }
    .contact-form__footer { align-items: stretch; flex-direction: column; }
    .contact-form button { width: 100%; }
}
