.elementor-element.elementor-widget-vn-contact-footer {
  --widgets-spacing: 0px 0px;
  margin-block-end: 0 !important;
}

.e-con:has(> .elementor-element.elementor-widget-vn-contact-footer),
.e-con-inner:has(> .elementor-element.elementor-widget-vn-contact-footer) {
  --widgets-spacing: 0px 0px !important;
  --widgets-spacing-row: 0px !important;
  --widgets-spacing-column: 0px !important;
  gap: 0 !important;
}

.vn-contact-footer {
  --vn-contact-footer-bg: #0b0b0b;
  --vn-contact-footer-text: #e3e3e3;
  --vn-contact-footer-accent: #f20046;
  --vn-contact-footer-band-text: rgba(255, 255, 255, .2);
  width: 100%;
  overflow: hidden;
  color: var(--vn-contact-footer-text);
  background: var(--vn-contact-footer-bg);
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
}

.vn-contact-footer a { color: inherit; text-decoration: none; }

.vn-contact-footer__container {
  width: min(calc(100% - 200px), var(--vn-page-container-width, 1000px));
  margin-inline: auto;
}

.vn-contact-footer__cta {
  min-height: 282px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 68px 0 49px;
  border-bottom: 1px solid var(--vn-contact-footer-text);
}

.vn-contact-footer__cta h2 {
  margin: 0;
  color: var(--vn-contact-footer-text);
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
  font-size: 56px;
  font-style: normal;
  font-weight: 500;
  line-height: 90%;
  letter-spacing: -1.16px;
}

.vn-contact-footer__cta-link {
  display: inline-flex;
  align-items: center;
  gap: 43px;
  margin-top: 3px;
  padding: 0 0 2px;
  border-bottom: 6px solid currentColor;
  color: var(--vn-contact-footer-accent) !important;
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
  font-size: 58px;
  font-style: normal;
  font-weight: 500;
  line-height: 90%;
  letter-spacing: -1.8px;
  transition: color .2s ease, opacity .2s ease;
}

.vn-contact-footer__cta-link:hover,
.vn-contact-footer__cta-link:focus-visible { color: #ff2a63 !important; }

.vn-contact-footer__arrow { width: 33px; height: 33px; flex: 0 0 33px; }

.vn-contact-footer__details {
  min-height: 198px;
  display: grid;
  grid-template-columns: 42% 17% 25% 16%;
  align-items: end;
  padding: 55px 0 44px;
}

.vn-contact-footer__nav ul {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 20px 72px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.vn-contact-footer__nav-link {
  color: #fafafa !important;
  font-size: 20px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
  transition: opacity .2s ease;
}

.vn-contact-footer__nav-link:hover,
.vn-contact-footer__nav-link:focus-visible,
.vn-contact-footer__privacy:hover,
.vn-contact-footer__privacy:focus-visible,
.vn-contact-footer__contact-link:hover,
.vn-contact-footer__contact-link:focus-visible { opacity: .62; }

.vn-contact-footer__legal,
.vn-contact-footer__copyright {
  align-self: end;
  margin: 0;
  padding-bottom: 1px;
  color: var(--vn-contact-footer-text);
  font-size: 14px;
  font-style: normal;
  font-weight: 300;
  line-height: .9;
}

.vn-contact-footer__privacy,
.vn-contact-footer__contact-link { transition: opacity .2s ease; }

.vn-contact-footer__contact {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
  color: var(--vn-contact-footer-text);
  font-size: 14px;
  font-style: normal;
  font-weight: 300;
  line-height: .9;
  text-align: right;
}

.vn-contact-footer__socials {
  display: flex;
  width: 166px;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
}

.vn-contact-footer__social-link {
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  transition: opacity .2s ease, transform .2s ease;
}

.vn-contact-footer__social-link:hover,
.vn-contact-footer__social-link:focus-visible { opacity: .65; transform: translateY(-2px); }

.vn-contact-footer__social-link svg {
  width: 25px;
  height: 25px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.vn-contact-footer__social-fill { fill: currentColor; stroke: none; }

.vn-contact-footer__band {
  height: 153px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: var(--vn-contact-footer-band-text);
  background: var(--vn-contact-footer-accent);
}

.vn-contact-footer__band span {
  display: block;
  flex: 0 0 auto;
  color: inherit;
  font-family: "League Spartan", "Spartan", Arial, Helvetica, sans-serif;
  font-size: 132px;
  font-style: normal;
  font-weight: 600;
  line-height: .75;
  letter-spacing: -7.9px;
  white-space: nowrap;
  transform: translateY(7px);
}

.vn-contact-footer__band img {
  display: block;
  width: 1219.06px;
  max-width: none;
  height: auto;
  max-height: 95.76px;
}

@media (max-width: 1024px) {
  .vn-contact-footer__container { width: min(633px, calc(100% - 48px)); }
  .vn-contact-footer__cta { min-height: 282px; padding-top: 64px; padding-bottom: 48px; }
  .vn-contact-footer__cta h2 { font-size: 56px; }
  .vn-contact-footer__cta-link { font-size: 58px; }
  .vn-contact-footer__details {
    min-height: 292px;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 44px 42px;
    align-items: end;
    padding: 52px 0 46px;
  }
  .vn-contact-footer__nav { grid-column: 1; grid-row: 1; }
  .vn-contact-footer__contact { grid-column: 2; grid-row: 1; }
  .vn-contact-footer__legal { grid-column: 1; grid-row: 2; }
  .vn-contact-footer__copyright { grid-column: 2; grid-row: 2; }
  .vn-contact-footer__band { height: 126px; }
  .vn-contact-footer__band span { font-size: 108px; letter-spacing: -6.5px; }
  .vn-contact-footer__band img { width: 1000px; }
}

@media (max-width: 600px) {
  .vn-contact-footer__container { width: min(323px, calc(100% - 32px)); }
  .vn-contact-footer__cta { min-height: 270px; padding-top: 54px; padding-bottom: 44px; }
  .vn-contact-footer__cta h2 { font-size: clamp(42px, 12vw, 48px); letter-spacing: -.96px; }
  .vn-contact-footer__cta-link { gap: 25px; margin-top: 12px; border-bottom-width: 5px; font-size: clamp(44px, 12.5vw, 50px); letter-spacing: -1.4px; }
  .vn-contact-footer__arrow { width: 27px; height: 27px; flex-basis: 27px; }
  .vn-contact-footer__details {
    min-height: 0;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "nav nav"
      "contact contact"
      "copyright legal";
    grid-template-rows: auto auto 1fr;
    gap: 36px 20px;
    align-items: start;
    padding: 48px 0 44px;
  }
  .vn-contact-footer__nav { grid-area: nav; }
  .vn-contact-footer__contact { grid-area: contact; align-items: flex-start; text-align: left; }
  .vn-contact-footer__legal { grid-area: legal; text-align: right; }
  .vn-contact-footer__copyright { grid-area: copyright; text-align: left; }
  .vn-contact-footer__legal,
  .vn-contact-footer__copyright { align-self: end; }
  .vn-contact-footer__nav ul { gap: 16px 45px; }
  .vn-contact-footer__nav-link { font-size: 18px; }
  .vn-contact-footer__socials { margin-bottom: 12px; }
  .vn-contact-footer__band { height: 96px; }
  .vn-contact-footer__band span { font-size: 72px; letter-spacing: -4.3px; transform: translateY(4px); }
  .vn-contact-footer__band img { width: 760px; }
}

@media (prefers-reduced-motion: reduce) {
  .vn-contact-footer a { transition: none; }
}

/* Contact page ----------------------------------------------------------- */
.elementor-element.elementor-widget-vn-contact-page {
  --widgets-spacing: 0px 0px;
  width: 100%;
  margin: 0 !important;
}

.e-con:has(> .elementor-element.elementor-widget-vn-contact-page),
.e-con-inner:has(> .elementor-element.elementor-widget-vn-contact-page) {
  --widgets-spacing: 0px 0px !important;
  --widgets-spacing-row: 0px !important;
  --widgets-spacing-column: 0px !important;
  width: 100% !important;
  max-width: none !important;
  gap: 0 !important;
  padding: 0 !important;
}

.vn-contact-page {
  --vn-contact-page-bg: #fafafa;
  --vn-contact-page-heading: #000;
  --vn-contact-page-text: #8a8a8a;
  --vn-contact-page-accent: #f20046;
  min-height: 902px;
  width: 100%;
  padding: 119px 0 155px;
  color: var(--vn-contact-page-heading);
  background: var(--vn-contact-page-bg);
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
}

.vn-contact-page__inner {
  width: min(var(--vn-page-container-width, 1000px), calc(100% - 48px));
  margin-inline: auto;
  display: grid;
  grid-template-columns: 340px 573.5px;
  grid-template-rows: auto 370.629px;
  column-gap: 86.5px;
  row-gap: 116px;
}

.vn-contact-page h1 {
  position: relative;
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 320px;
  margin: 0;
  color: var(--vn-contact-page-heading);
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
  font-size: 60px;
  font-style: normal;
  font-weight: 700;
  line-height: .9;
  letter-spacing: -1.8px;
}

.vn-contact-page__title-default,
.vn-contact-page__title-tablet { display: block; }
.vn-contact-page__title-tablet { display: none; }
.vn-contact-page__dot {
  position: absolute;
  left: 303px;
  top: 94px;
  width: 10px;
  height: 10px;
  display: block;
  background: var(--vn-contact-page-accent);
  clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%);
}

.vn-contact-page__details {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  grid-template-columns: 242px 232px;
  column-gap: 99.5px;
  row-gap: 30px;
}

.vn-contact-page__item h2 {
  margin: 0 0 8px;
  color: var(--vn-contact-page-heading);
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
  font-size: 24px;
  font-style: normal;
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.25px;
}

.vn-contact-page__item p,
.vn-contact-page__link {
  margin: 0;
  color: var(--vn-contact-page-text);
  font-family: "Futura PT", Arial, Helvetica, sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.2px;
  text-decoration: none;
}

.vn-contact-page__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color .2s ease;
}
.vn-contact-page__link:hover,
.vn-contact-page__link:focus-visible { color: var(--vn-contact-page-heading); }
.vn-contact-page__arrow {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--vn-contact-page-accent);
}

.vn-contact-page__image {
  grid-column: 2;
  grid-row: 2;
  width: 573.5px;
  height: 370.629px;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
}
.vn-contact-page__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
}

/* On the contact page the CTA belongs only to the mobile composition. */
body:has(.vn-contact-page) .vn-contact-footer__cta { display: none; }
body:has(.vn-contact-page) .vn-contact-footer__details { min-height: 212px; }

@media (min-width: 601px) and (max-width: 1024px) {
  .vn-contact-page {
    min-height: 978px;
    padding: 100px 0 155px;
  }
  .vn-contact-page__inner {
    width: min(628px, calc(100% - 140px));
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto 351.838px;
    gap: 0;
  }
  .vn-contact-page h1 {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    font-size: 60px;
    line-height: .9;
  }
  .vn-contact-page__title-default { display: none; }
  .vn-contact-page__title-tablet { display: block; }
  .vn-contact-page__dot { left: 253px; top: 39px; }
  .vn-contact-page__details {
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: 234px 304px;
    column-gap: 90px;
    row-gap: 31px;
    margin-top: 56px;
  }
  .vn-contact-page__item h2 { margin-bottom: 10px; font-size: 19px; }
  .vn-contact-page__item p,
  .vn-contact-page__link { font-size: 18px; }
  .vn-contact-page__arrow { width: 15px; height: 15px; flex-basis: 15px; }
  .vn-contact-page__image {
    grid-column: 1;
    grid-row: 3;
    width: 628px;
    height: 351.838px;
    margin-top: 117px;
  }
  .vn-contact-page__image img { object-position: 50% 49%; }

  body:has(.vn-contact-page) .vn-contact-footer__details {
    min-height: 258px;
    padding-top: 34px;
    padding-bottom: 38px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__nav ul {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 600px) {
  .vn-contact-page {
    min-height: 760px;
    padding: 78px 0 94px;
  }
  .vn-contact-page__inner {
    width: min(321px, calc(100% - 72px));
    display: block;
  }
  .vn-contact-page h1 {
    width: 290px;
    font-size: 46px;
    line-height: .95;
    letter-spacing: -1.4px;
  }
  .vn-contact-page__title-default { display: block; }
  .vn-contact-page__title-tablet { display: none; }
  .vn-contact-page__dot { left: 252px; top: 76px; width: 9px; height: 9px; }
  .vn-contact-page__details {
    display: flex;
    flex-direction: column;
    gap: 43px;
    margin-top: 49px;
  }
  .vn-contact-page__item h2 {
    margin-bottom: 17px;
    font-size: 29px;
    line-height: .95;
    letter-spacing: -.5px;
  }
  .vn-contact-page__item p,
  .vn-contact-page__link {
    font-size: 20px;
    line-height: 1;
    letter-spacing: -.2px;
  }
  .vn-contact-page__link { gap: 9px; }
  .vn-contact-page__arrow { width: 17px; height: 17px; flex-basis: 17px; }
  .vn-contact-page__image { display: none; }

  body:has(.vn-contact-page) .vn-contact-footer__cta {
    min-height: 174px;
    display: flex;
    padding: 36px 0 24px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__cta h2 {
    font-size: 38px;
    line-height: .95;
    letter-spacing: -.8px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__cta-link {
    gap: 20px;
    margin-top: 3px;
    border-bottom-width: 4px;
    font-size: 38px;
    line-height: .92;
    letter-spacing: -1px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__arrow {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__container {
    width: min(331px, calc(100% - 62px));
  }
  body:has(.vn-contact-page) .vn-contact-footer__details {
    min-height: 487px;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "nav nav"
      "contact contact"
      "copyright legal";
    grid-template-rows: auto auto 1fr;
    gap: 37px 20px;
    padding: 43px 0 39px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__nav { grid-area: nav; }
  body:has(.vn-contact-page) .vn-contact-footer__contact { grid-area: contact; }
  body:has(.vn-contact-page) .vn-contact-footer__legal { grid-area: legal; }
  body:has(.vn-contact-page) .vn-contact-footer__copyright { grid-area: copyright; }
  body:has(.vn-contact-page) .vn-contact-footer__nav ul {
    grid-template-columns: 1fr;
    gap: 17px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__nav-link { font-size: 17px; }
  body:has(.vn-contact-page) .vn-contact-footer__contact {
    gap: 17px;
    font-size: 13px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__socials {
    width: 182px;
    margin-bottom: 3px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__social-link,
  body:has(.vn-contact-page) .vn-contact-footer__social-link svg {
    width: 31px;
    height: 31px;
  }
  body:has(.vn-contact-page) .vn-contact-footer__legal,
  body:has(.vn-contact-page) .vn-contact-footer__copyright {
    align-self: end;
    font-size: 13px;
    line-height: 1;
  }
  body:has(.vn-contact-page) .vn-contact-footer__band { height: 83px; }
  body:has(.vn-contact-page) .vn-contact-footer__band img { width: 690px; }
}

@media (prefers-reduced-motion: reduce) {
  .vn-contact-page a { transition: none; }
}


/* Final optical alignment against the supplied contact-page layouts. */
body:has(.vn-contact-page) { margin: 0 !important; }

@media (min-width: 1025px) {
  .vn-contact-page__inner { row-gap: 102px; }
}

@media (min-width: 601px) and (max-width: 1024px) {
  .vn-contact-page { padding-top: 110px; }
  .vn-contact-page__inner { grid-template-rows: auto auto auto; }
  .vn-contact-page__image { margin-top: 123px; }
}



/* Contact page: remove Elementor wrapper gutters. */
.e-con:has(.vn-contact-page),
.e-con-inner:has(.vn-contact-page) { padding-inline: 0 !important; }

body:has(.vn-contact-page) .e-con:has(.vn-contact-footer),
body:has(.vn-contact-page) .e-con-inner:has(.vn-contact-footer) {
	  padding-inline: 0 !important;
}

@media (min-width: 1025px) {
	  body:has(.vn-contact-page) .vn-header,
	body:has(.vn-contact-page) .vn-header__inner {
		    height: 49px !important;
		    min-height: 49px !important;
	}
}

@media (min-width: 601px) and (max-width: 1024px) {
	  body:has(.vn-contact-page) .vn-header,
	body:has(.vn-contact-page) .vn-header__inner {
		    height: 60px !important;
		    min-height: 60px !important;
	}
	.vn-contact-page__image {
		    margin-top: 123px !important;
	}
}

@media (max-width: 600px) {
	  body:has(.vn-contact-page) .vn-header,
	body:has(.vn-contact-page) .vn-header__inner {
		    height: 57px !important;
		    min-height: 57px !important;
	}
}

body:has(.vn-contact-page) .e-con:has(.vn-contact-footer) {
	  padding: 0 !important;
}
