/* Approved offices-first contact page. Every rule is scoped to this page. */
#grh-contact {
  --contact-ink: var(--ink, #f5f5f7);
  --contact-muted: var(--muted, #bcbcc2);
  --contact-panel: var(--surface-solid, #242424);
  --contact-line: var(--line, #ffffff1c);
  --contact-accent: #d61f3e;
  --contact-active: #3b2026;
  --contact-field: #0000000d;
  display: block;
  width: 100%;
  max-width: 1440px;
  min-width: 0;
  margin: 0 auto;
  padding: 32px clamp(20px, 3vw, 48px) 72px;
  color: var(--contact-ink);
  background: transparent;
}
[data-theme="light"] #grh-contact {
  --contact-panel: var(--surface-solid, #fff);
  --contact-active: #fff1f3;
  --contact-field: #00000003;
}
#grh-contact *,
#grh-contact *::before,
#grh-contact *::after { box-sizing: border-box; }
#grh-contact a { color: inherit; }
#grh-contact a:focus-visible,
#grh-contact button:focus-visible,
#grh-contact input:focus-visible,
#grh-contact select:focus-visible,
#grh-contact textarea:focus-visible { outline: 3px solid var(--contact-accent); outline-offset: 4px; }
#grh-contact .grh-contact__breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 24px;
  padding: 0;
  color: var(--contact-muted);
  font-size: 15px;
  line-height: 1.5;
}
#grh-contact .grh-contact__breadcrumb a { text-decoration: none; }
#grh-contact .grh-contact__breadcrumb a:hover { text-decoration: underline; text-underline-offset: 4px; }
#grh-contact .grh-contact__hero { margin: 0; padding: 0; text-align: center; }
#grh-contact .grh-contact__hero h1 {
  margin: 0;
  padding: 0;
  color: var(--contact-ink);
  font-size: clamp(38px, 4.7vw, 64px);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.045em;
  text-transform: none;
}
#grh-contact .grh-contact__hero h1 span { display: block; color: var(--contact-accent); }
#grh-contact .grh-contact__map {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 1220px;
  margin: 24px auto 12px;
  padding: 0;
  line-height: 0;
}
#grh-contact .grh-contact__map > img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
}
#grh-contact .grh-contact__pin {
  position: absolute;
  z-index: 2;
  top: var(--pin-y);
  left: var(--pin-x);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  transform: translate(-50%, -50%);
  color: #fff;
  line-height: 1;
  text-decoration: none;
}
#grh-contact .grh-contact__pin::before {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid var(--contact-accent);
  border-radius: 50%;
  background: var(--contact-accent);
  box-shadow: 0 0 0 5px #d61f3e00;
  transition: box-shadow .2s ease, transform .2s ease;
}
#grh-contact .grh-contact__pin::after {
  position: absolute;
  inset: 7px;
  content: "";
  border: 1px solid var(--contact-accent);
  border-radius: 50%;
  opacity: 0;
  transform: scale(.7);
  transition: opacity .2s ease, transform .2s ease;
}
#grh-contact .grh-contact__pin.is-active { z-index: 3; }
#grh-contact .grh-contact__pin:is(:hover, :focus-visible, .is-active)::before { box-shadow: 0 0 0 5px #d61f3e20; transform: scale(1.12); }
#grh-contact .grh-contact__pin:is(:hover, :focus-visible, .is-active)::after { opacity: 1; transform: scale(1); }
#grh-contact .grh-contact__tooltip {
  position: absolute;
  bottom: calc(100% + 2px);
  left: 50%;
  width: max-content;
  max-width: 180px;
  padding: 9px 15px;
  border-radius: 8px;
  background: #b71b34;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 4px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
#grh-contact .grh-contact__tooltip::after {
  position: absolute;
  top: 100%;
  left: calc(50% - 5px);
  content: "";
  border: 5px solid transparent;
  border-top-color: #b71b34;
}
#grh-contact .grh-contact__pin:is(:hover, :focus-visible, .is-active) .grh-contact__tooltip { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
#grh-contact .grh-contact__countries { display: none; }
#grh-contact .grh-contact__offices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 20px;
  margin: 0;
  padding: 0;
}
#grh-contact .grh-contact__office {
  min-width: 0;
  margin: 0;
  padding: clamp(24px, 2.6vw, 36px);
  border: 1px solid var(--contact-line);
  border-radius: 18px;
  background: var(--contact-panel);
  box-shadow: none;
  scroll-margin-top: 150px;
  transition: transform .22s ease, border-color .22s ease, background .22s ease, box-shadow .22s ease;
}
#grh-contact .grh-contact__office.is-active {
  border-color: var(--contact-accent);
  background: var(--contact-active);
  transform: translateY(-4px);
  box-shadow: 0 7px 24px #0000000c;
}
#grh-contact .grh-contact__office:focus-visible { outline: 3px solid var(--contact-accent); outline-offset: 4px; }
#grh-contact .grh-contact__office h2 {
  margin: 0 0 12px;
  padding: 0;
  color: var(--contact-ink);
  font-size: clamp(28px, 2.6vw, 36px);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -.035em;
}
#grh-contact .grh-contact__company {
  min-height: 3.1em;
  margin: 0 0 24px;
  color: var(--contact-muted);
  font-size: 18px;
  line-height: 1.55;
}
#grh-contact .grh-contact__details {
  display: grid;
  gap: 17px;
  margin: 0;
  padding: 25px 0 0;
  border-top: 1px solid var(--contact-line);
  list-style: none;
}
#grh-contact .grh-contact__details li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0;
  padding: 0;
  color: var(--contact-muted);
  font-size: 16px;
  line-height: 1.6;
}
#grh-contact .grh-contact__details svg { flex: 0 0 22px; width: 22px; height: 22px; margin-top: 2px; color: var(--contact-muted); }
#grh-contact .grh-contact__details a { min-width: 0; text-decoration: none; overflow-wrap: anywhere; }
#grh-contact .grh-contact__details a:hover { color: var(--contact-ink); text-decoration: underline; text-underline-offset: 4px; }
#grh-contact .grh-contact__details address { margin: 0; padding: 0; color: inherit; font: inherit; overflow-wrap: anywhere; }
#grh-contact .grh-contact__enquiry {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 2.15fr);
  gap: clamp(28px, 3vw, 40px);
  margin: 28px 0 0;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--contact-line);
  border-radius: 18px;
  background: var(--contact-panel);
}
#grh-contact .grh-contact__intro {
  min-width: 0;
  margin: 0;
  padding: 0 clamp(24px, 3vw, 40px) 0 0;
  border-right: 1px solid var(--contact-line);
}
#grh-contact .grh-contact__intro h2 {
  margin: 0 0 26px;
  color: var(--contact-ink);
  font-size: clamp(30px, 3.1vw, 44px);
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.04em;
}
#grh-contact .grh-contact__intro p { margin: 0 0 24px; color: var(--contact-muted); font-size: 18px; line-height: 1.55; }
#grh-contact .grh-contact__intro p:last-child { margin-bottom: 0; font-size: 15px; }
#grh-contact .grh-contact__intro hr { width: 48px; margin: 32px 0; border: 0; border-top: 1px solid var(--contact-line); }
#grh-contact .grh-contact__form,
#grh-contact .grh-contact__form .wpcf7 { min-width: 0; margin: 0; }
#grh-contact .grh-contact__form form { margin: 0; padding: 0; }
#grh-contact .grh-contact__form p { margin: 0; }
#grh-contact .grh-contact__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 28px; }
#grh-contact .grh-contact__field { display: block; min-width: 0; margin: 0; padding: 0; }
#grh-contact .grh-contact__field--full { grid-column: 1 / -1; }
#grh-contact .grh-contact__field label { display: block; margin: 0; color: var(--contact-ink); font-size: 15px; font-weight: 400; line-height: 1.5; }
#grh-contact .grh-contact__field label > br { display: none; }
#grh-contact .grh-contact__field .wpcf7-form-control-wrap { display: block; margin-top: 7px; }
#grh-contact .grh-contact__form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]),
#grh-contact .grh-contact__form select,
#grh-contact .grh-contact__form textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 11px 14px;
  border: 1px solid var(--contact-line);
  border-radius: 7px;
  background: var(--contact-field);
  box-shadow: none;
  color: var(--contact-ink);
  font-family: inherit;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}
#grh-contact .grh-contact__form textarea { min-height: 120px; resize: vertical; }
#grh-contact .grh-contact__form select { padding-right: 34px; }
#grh-contact .grh-contact__form option { background: var(--contact-panel); color: var(--contact-ink); }
#grh-contact .grh-contact__form input::placeholder,
#grh-contact .grh-contact__form textarea::placeholder { color: var(--contact-muted); opacity: .75; }
#grh-contact .grh-contact__upload { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--contact-line); border-radius: 7px; }
#grh-contact .grh-contact__upload label { display: block; color: var(--contact-ink); font-size: 15px; line-height: 1.5; }
#grh-contact .grh-contact__upload svg { width: 20px; height: 20px; margin-right: 8px; vertical-align: middle; }
#grh-contact .grh-contact__upload .wpcf7-form-control-wrap { display: block; min-width: 0; margin-top: 10px; }
#grh-contact .grh-contact__upload input[type="file"] { width: 100%; max-width: 100%; color: var(--contact-muted); font-family: inherit; font-size: 14px; line-height: 1.5; }
#grh-contact .grh-contact__upload input::file-selector-button { margin-right: 12px; padding: 7px 12px; border: 1px solid var(--contact-line); border-radius: 5px; background: var(--contact-field); color: var(--contact-ink); font-family: inherit; cursor: pointer; }
#grh-contact .grh-contact__upload small { display: block; margin-top: 8px; color: var(--contact-muted); font-size: 12px; line-height: 1.5; }
#grh-contact .grh-contact__upload-name { display: block; margin-top: 8px; color: var(--contact-muted); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
#grh-contact .grh-contact__upload-name:empty { display: none; }
#grh-contact .grh-contact__submit { display: flex; align-items: center; justify-content: flex-end; gap: 20px; margin-top: 22px; }
#grh-contact .grh-contact__submit > p { margin: 0; color: var(--contact-muted); font-size: 13px; line-height: 1.6; }
#grh-contact .grh-contact__submit > p:first-child { max-width: 440px; }
#grh-contact .grh-contact__submit a { text-decoration: underline; text-underline-offset: 3px; }
#grh-contact .grh-contact__form input[type="submit"],
#grh-contact .grh-contact__form button[type="submit"] {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin: 0;
  padding: 13px 23px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: #c51b37;
  color: #fff;
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  cursor: pointer;
}
#grh-contact .grh-contact__form :is(input[type="submit"], button[type="submit"]):hover { background: #ac1730; }
#grh-contact .grh-contact__form :is(input[type="submit"], button[type="submit"]):disabled { cursor: wait; opacity: .65; }
#grh-contact .grh-contact__form .wpcf7-spinner { flex: 0 0 24px; margin: 0 8px; }
#grh-contact .grh-contact__form .wpcf7-not-valid-tip { margin-top: 6px; color: #ff8a9b; font-size: 14px; }
[data-theme="light"] #grh-contact .grh-contact__form .wpcf7-not-valid-tip { color: #a9112e; }
#grh-contact .grh-contact__form .wpcf7-response-output { margin: 22px 0 0; padding: 12px 16px; border-radius: 7px; color: var(--contact-ink); font-size: 15px; line-height: 1.6; }
#grh-contact .grh-contact__form .grh-contact__privacy { margin-top: 18px; color: var(--contact-muted); font-size: 13px; line-height: 1.6; }
#grh-contact .grh-contact__privacy a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1040px) {
  #grh-contact .grh-contact__offices { gap: 14px; }
  #grh-contact .grh-contact__office { padding: 24px 20px; }
  #grh-contact .grh-contact__company { font-size: 16px; }
  #grh-contact .grh-contact__details li { gap: 10px; font-size: 15px; }
  #grh-contact .grh-contact__enquiry { grid-template-columns: minmax(0, .9fr) minmax(0, 2.1fr); gap: 24px; }
  #grh-contact .grh-contact__intro { padding-right: 24px; }
  #grh-contact .grh-contact__fields { gap: 18px; }
  #grh-contact .grh-contact__submit { align-items: flex-start; flex-wrap: wrap; }
}
@media (max-width: 767px) {
  #grh-contact { padding: 24px 20px 48px; }
  #grh-contact .grh-contact__breadcrumb { margin-bottom: 30px; font-size: 14px; }
  #grh-contact .grh-contact__hero h1 { font-size: clamp(36px, 7vw, 50px); }
  #grh-contact .grh-contact__map { margin-top: 24px; margin-bottom: 8px; }
  #grh-contact .grh-contact__pin { width: 32px; height: 32px; }
  #grh-contact .grh-contact__pin::before { width: 10px; height: 10px; }
  #grh-contact .grh-contact__pin::after { inset: 4px; }
  #grh-contact .grh-contact__tooltip { max-width: 130px; padding: 6px 10px; font-size: 13px; }
  #grh-contact .grh-contact__countries { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 9px; margin: 8px 0 24px; padding: 0; }
  #grh-contact .grh-contact__countries a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 15px; border: 1px solid var(--contact-line); border-radius: 24px; background: var(--contact-panel); font-size: 14px; line-height: 1.5; text-decoration: none; }
  #grh-contact .grh-contact__countries a:is(:hover, .is-active) { border-color: var(--contact-accent); background: var(--contact-active); }
  #grh-contact .grh-contact__offices { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #grh-contact .grh-contact__office { padding: 26px; border-radius: 16px; scroll-margin-top: 120px; }
  #grh-contact .grh-contact__office h2 { font-size: 30px; }
  #grh-contact .grh-contact__company { min-height: 0; margin-bottom: 20px; font-size: 17px; }
  #grh-contact .grh-contact__details { gap: 14px; padding-top: 20px; }
  #grh-contact .grh-contact__details li { font-size: 16px; }
  #grh-contact .grh-contact__enquiry { grid-template-columns: minmax(0, 1fr); gap: 26px; margin-top: 24px; padding: 26px; border-radius: 16px; }
  #grh-contact .grh-contact__intro { padding: 0 0 24px; border-right: 0; border-bottom: 1px solid var(--contact-line); }
  #grh-contact .grh-contact__intro h2 { margin-bottom: 16px; font-size: 34px; }
  #grh-contact .grh-contact__intro p { margin-bottom: 14px; font-size: 16px; }
  #grh-contact .grh-contact__intro hr { margin: 22px 0; }
}
@media (max-width: 520px) {
  #grh-contact .grh-contact__fields { grid-template-columns: minmax(0, 1fr); }
  #grh-contact .grh-contact__office,
  #grh-contact .grh-contact__enquiry { padding: 22px; }
  #grh-contact .grh-contact__submit { display: block; }
  #grh-contact .grh-contact__submit > p:first-child { margin-bottom: 18px; }
  #grh-contact .grh-contact__submit :is(input[type="submit"], button[type="submit"]) { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  #grh-contact .grh-contact__office,
  #grh-contact .grh-contact__pin::before,
  #grh-contact .grh-contact__pin::after,
  #grh-contact .grh-contact__tooltip { transition: none; }
  #grh-contact .grh-contact__office.is-active { transform: none; }
}

/* Direct enquiry links clear the sticky site header. */
#grh-contact #grh-contact-enquiry-title { scroll-margin-top: 140px; }
