/* Contact Us — page-scoped styles. Shared tokens, nav, and footer styles
   live in /public/css/new/global-2026.css. */

/* Page-scoped reset / typography helpers (don't disturb other pages) */
.contact-us-page, .contact-us-page *, .contact-us-page *::before, .contact-us-page *::after { box-sizing: border-box; }
.contact-us-page img { display: block; max-width: 100%; }
.contact-us-page a { color: inherit; text-decoration: none; }
.contact-us-page ul { list-style: none; padding: 0; margin: 0; }

.contact-us-page .container {
  width: 1320px;
  max-width: 1320px;
  padding-left: 12px;
  padding-right: 12px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
}

/* Sticky-footer pattern: body fills viewport, footer sits at the bottom
   even on short pages. */
body.page-contact {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
/* The @yield('content') is wrapped in a .contact-us-page div, which sat between
   <body> (the flex column) and .contact-main and broke the sticky-footer flex
   chain — so on a short page at a tall/zoomed-out viewport the footer floated up
   and left an empty band below it. Make the wrapper a growing flex column so
   .contact-main's flex:1 + the footer's margin-top:auto reach the bottom again. */
body.page-contact > .contact-us-page {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
}
body.page-contact .contact-main {
  flex: 1 0 auto;
  display: flex;
  flex-direction: column;
  padding-top: 132px;
  padding-bottom: 0;
}
.page-contact .contact-main > div.container:first-of-type {
  margin-bottom: 64px;
}
.page-contact .contact-main > .footer-2026 {
  margin-top: auto;
  margin-bottom: 30px;
}

/* ---------- Eyebrow ----------
   Uses the global .page-eyebrow class (global-2026.css) — no local rule.
   That one class is the single source for the eyebrow on every 2026 page. */

/* ---------- HERO ---------- */
.contact-hero {
  display: flex;
  align-items: stretch;
  gap: 134px;
  margin-bottom: 51px;
}
.contact-hero__left {
  flex: 0 0 638px;
  display: flex;
  flex-direction: column;
}
.contact-hero__title {
  margin: 0 0 5px;
}
.contact-hero__sub {
  margin: 0 0 48px;
  font-family: var(--font-family-body);
  font-weight: 400;
  font-size: var(--fs-body-large);
  line-height: 1.5;
  color: var(--color-neutral-400);
}

/* HQ card (Headquarter) */
.hq-card {
  background: var(--bg-secondary);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 430px;
  max-width: 100%;
  backdrop-filter: blur(3.4px);
  -webkit-backdrop-filter: blur(3.4px);
}
.hq-card__top {
  display: flex;
  align-items: center;
  gap: 20px;
  width: 100%;
}
.hq-card__icon {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hq-card__icon img { width: 100%; height: 100%; object-fit: cover; }
.hq-card__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 0; }
.hq-card__country {
  font-family: var(--font-family-body);
  font-weight: 700;
  font-size: var(--fs-body-large);
  line-height: 1.25;
  color: var(--color-neutral-1000);
}
.hq-card__email {
  font-family: var(--font-family-body);
  font-weight: 400;
  font-size: var(--fs-body-large);
  line-height: 1.25;
  color: var(--color-neutral-1000);
  word-break: break-word;
  overflow-wrap: anywhere;
}
.hq-card__email:hover { color: var(--color-blue-400); }
.hq-card__address {
  width: 100%;
  background: var(--color-neutral-0);
  border-radius: 8px;
  padding: 12px;
  font-family: var(--font-family-body);
  font-weight: 400;
  font-size: var(--fs-body-medium);
  line-height: 1.4;
  color: var(--color-neutral-1000);
}

/* ---------- FORM CARD ---------- */
.contact-hero__right { flex: 0 0 525px; }
.contact-form-card {
  background: var(--bg-secondary);
  border-radius: 16px;
  padding: 32px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
  box-shadow: 0px 24px 24px rgba(0, 0, 0, 0.18);
}
/* Honeypot field — hidden from real users; bots that fill it are rejected by sendNew(). */
.contact-form-card input[name="surname"] { display: none; }
.contact-form-card__title {
  margin: 0;
  font-family: var(--font-family-body);
  font-weight: 500;
  font-size: 20px;
  line-height: 1.6;
  color: var(--color-neutral-1000);
}
.cf-fields { display: flex; flex-direction: column; gap: 24px; }
.cf-field { display: flex; flex-direction: column; gap: 4px; }
.cf-label {
  font-family: var(--font-family-body);
  font-weight: 500;
  font-size: var(--fs-body-extra-small);
  line-height: 1.4;
  color: #0a0a0a;
}
.cf-input {
  width: 100%;
  min-height: 36px;
  padding: 7.5px 12px;
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  font-family: var(--font-family-body);
  font-weight: 400;
  font-size: var(--fs-body-extra-small);
  line-height: 1.4;
  color: #0a0a0a;
  box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.cf-input::placeholder { color: #737373; }
.cf-input:focus {
  border-color: var(--color-blue-300);
  box-shadow: 0 0 0 3px rgba(106, 102, 228, 0.15);
}
.cf-input:invalid:not(:placeholder-shown) {
  border-color: var(--color-red-400);
  box-shadow: 0 0 0 3px rgba(228, 37, 33, 0.10);
}

/* Checkbox */
.cf-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
  user-select: none;
}
.cf-checkbox input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cf-checkbox__box {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  border: 1px solid #d4d4d4;
  border-radius: 4px;
  background: #ffffff;
  box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
  transition: background 0.15s, border-color 0.15s;
}
.cf-checkbox input:checked + .cf-checkbox__box {
  background: #171717;
  border-color: #171717;
}
.cf-checkbox input:checked + .cf-checkbox__box::after {
  content: "";
  display: block;
  width: 9px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(0, -1px);
}
.cf-checkbox__label {
  font-family: var(--font-family-body);
  font-weight: 400;
  font-size: var(--fs-body-extra-small);
  line-height: 1.4;
  color: #404040;
}

/* Submit */
.cf-submit {
  width: 100%;
  min-height: 36px;
  padding: 8px 16px;
  background: #171717;
  color: #fafafa;
  border: 0;
  border-radius: 8px;
  font-family: var(--font-family-body);
  font-weight: 500;
  font-size: var(--fs-body-extra-small);
  line-height: 1.4;
  cursor: pointer;
  transition: opacity 0.15s, transform 0.05s;
}
.cf-submit:hover { opacity: 0.9; }
.cf-submit:active { transform: scale(0.99); }
.cf-submit:disabled { opacity: 0.5; cursor: not-allowed; }

/* Submit feedback */
.cf-input.is-invalid { border-color: #e5484d; }
.cf-checkbox.is-invalid .cf-checkbox__box { border-color: #e5484d; }
/* Success message now uses the shared `.form-success-msg` standard component
   (global-2026.css), revealed by `.is-success` on #contactForm. */

/* ---------- OFFICES GRID ---------- */
.offices-section { margin-top: 51px; }
.offices-grid {
  background: var(--bg-secondary);
  border-radius: 32px;
  padding: 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 60px 57px;
  backdrop-filter: blur(5.2px);
  -webkit-backdrop-filter: blur(5.2px);
}
.office-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.office-card__flag {
  width: 49px;
  height: auto;
  display: block;
  border-radius: 4px;
}
.office-card__country {
  font-family: var(--font-family-body);
  font-weight: 700;
  font-size: var(--fs-body-medium);
  line-height: 1.4;
  color: var(--color-neutral-1000);
}
.office-card__email {
  font-family: var(--font-family-body);
  font-weight: 400;
  font-size: var(--fs-body-medium);
  line-height: 1.4;
  color: var(--color-neutral-1000);
  word-break: break-word;
}
.office-card__email:hover { color: var(--color-blue-400); }

/* =========================================================================
   TABLET — 768 .. 1023
   ========================================================================= */
@media (max-width: 1023px) {
  .contact-us-page .container {
    width: 100%;
    max-width: 100%;
    padding-left: 32px;
    padding-right: 32px;
  }

  body.page-contact .contact-main { padding-top: 110px; padding-bottom: 0; }
  .page-contact .contact-main > div.container:first-of-type { margin-bottom: 48px; }

  .contact-hero {
    gap: 24px;
    align-items: flex-start;
  }
  .contact-hero__left  { flex: 1 1 0; min-width: 0; }
  .contact-hero__right { flex: 0 0 374px; max-width: 50%; }

  .contact-hero__sub { font-size: var(--fs-body-medium); margin-bottom: 32px; }
  .hq-card { width: 100%; }
  .hq-card__country { font-size: var(--fs-body-medium); }
  .hq-card__email   { font-size: var(--fs-body-medium); }
  .hq-card__address { font-size: var(--fs-body-small); }

  .offices-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 40px;
    padding: 32px;
  }
}

/* =========================================================================
   MOBILE — <768
   ========================================================================= */
@media (max-width: 767px) {
  .contact-us-page .container { padding-left: 16px; padding-right: 16px; }

  body.page-contact .contact-main {
    padding-top: 100px;
    padding-bottom: 0;
  }
  .page-contact .contact-main > div.container:first-of-type { margin-bottom: 32px; }

  .contact-hero {
    flex-direction: column;
    gap: 32px;
    margin-bottom: 32px;
  }
  .contact-hero__left,
  .contact-hero__right { flex: 1 1 100%; width: 100%; max-width: 100%; }

  .contact-hero__title {
    margin-bottom: 0;
  }
  /* Tighten title→sub gap on mobile to 8px (design spec). The parent
     .contact-hero has flex gap: 32px, so a -24px margin-top here lands the
     effective gap at 0 + 32 + (-24) = 8px. */
  .contact-hero__sub {
    font-size: var(--fs-body-small);
    margin-top: -24px;
    margin-bottom: 0;
  }

  /* HQ card moves AFTER the form on mobile */
  .contact-hero__left { display: contents; }
  .contact-hero__left .contact-hero__title { order: 1; }
  .contact-hero__left .contact-hero__sub { order: 2; }
  .contact-hero__left .hq-card { order: 4; width: 100%; }
  .contact-hero__right { order: 3; }

  .hq-card__country { font-size: var(--fs-body-medium); }
  .hq-card__email { font-size: var(--fs-body-medium); }
  .hq-card__address { font-size: var(--fs-body-small); }

  .contact-form-card { padding: 24px; }
  .contact-form-card__title { font-size: 18px; }

  .offices-section { margin-top: 32px; }
  .offices-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 12px;
    padding: 20px;
    border-radius: 20px;
  }
  .office-card__country { font-size: var(--fs-body-small); }
  .office-card__email { font-size: var(--fs-body-extra-small); }
}
