/* Frontend-only contact preparation: no form submission or persistence. */
.fh-contact-form-panel{padding:96px max(24px,calc((100vw - 1248px)/2));background:var(--fh-mist)}
.fh-contact-form-panel__intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);gap:64px;align-items:end;max-width:1076px;margin:0 auto 56px}
.fh-contact-form-panel__intro .fh-eyebrow{grid-column:1/-1;margin-bottom:-36px}
.fh-contact-form-panel__intro h2{margin:0;font-size:48px;line-height:54px}
.fh-contact-form-panel__intro>p:last-child{margin:0;color:var(--fh-muted);font-size:16px;line-height:25px}
.fh-contact-form,.fh-contact-summary,.fh-contact-form-panel>.fh-form-errors{max-width:1076px;margin-inline:auto}
.fh-contact-form .fh-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}
.fh-contact-form .fh-field{display:flex;min-width:0;flex-direction:column;gap:9px}
.fh-contact-form .fh-field--wide{grid-column:1/-1}
.fh-contact-form .fh-field>span{font:600 11px/16px "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.fh-contact-form .fh-field span strong,.fh-contact-form .fh-consent strong{color:var(--fh-green)}
.fh-contact-form .fh-field span small{font:inherit;color:var(--fh-muted);letter-spacing:0;text-transform:none}
.fh-contact-form input:not([type="checkbox"]),.fh-contact-form select,.fh-contact-form textarea{width:100%;border:1px solid var(--fh-line);border-radius:0;background:var(--fh-white);padding:15px 16px;color:var(--fh-ink);font:400 16px/22px Geist,Arial,sans-serif}
.fh-contact-form input:not([type="checkbox"]),.fh-contact-form select{height:52px}
.fh-contact-form textarea{min-height:128px;resize:vertical}
.fh-contact-form input:focus-visible,.fh-contact-form select:focus-visible,.fh-contact-form textarea:focus-visible,.fh-contact-form button:focus-visible,.fh-contact-summary button:focus-visible,.fh-form-errors a:focus-visible{outline:3px solid var(--fh-green);outline-offset:3px}
.fh-field-error{display:block;min-height:18px;margin-top:0;color:#9b271f!important;font:600 12px/18px Geist,Arial,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.fh-contact-form [aria-invalid="true"]{border-color:#9b271f;box-shadow:0 0 0 1px #9b271f}
.fh-consent-wrap{gap:7px}.fh-consent{display:flex;min-height:44px;gap:12px;align-items:flex-start;padding-block:9px}.fh-consent input{flex:0 0 auto;width:20px;height:20px;margin-top:2px}.fh-consent a{text-decoration:underline;text-underline-offset:3px}
.fh-form-errors{margin-bottom:44px;padding:28px 30px;border-left:4px solid #9b271f;background:var(--fh-white)}
.fh-form-errors h2{margin:0 0 16px;font-size:26px;line-height:32px}.fh-form-errors ul{margin:0;padding-left:22px}.fh-form-errors a{text-decoration:underline;text-underline-offset:3px}
.fh-contact-form__actions{display:flex;justify-content:flex-end;margin-top:38px}.fh-contact-form__actions button{min-width:260px;cursor:pointer}
.fh-contact-summary{padding:48px;background:var(--fh-navy);color:var(--fh-white)}
.fh-contact-summary h2{margin:20px 0 16px;font-size:44px;line-height:50px}.fh-contact-summary>p:not(.fh-eyebrow){max-width:620px;color:#d8e2e7}
.fh-contact-summary dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:38px 0;border-top:1px solid rgba(255,255,255,.2)}
.fh-contact-summary dl div{min-width:0;padding:22px 20px 22px 0;border-bottom:1px solid rgba(255,255,255,.2)}
.fh-contact-summary dt{color:var(--fh-signal);font:600 10px/16px "Geist Mono",monospace;text-transform:uppercase}.fh-contact-summary dd{margin:8px 0 0;overflow-wrap:anywhere}.fh-contact-summary .fh-button-secondary{cursor:pointer;background:transparent}
[hidden]{display:none!important}

/* Contact office cards: hover + keyboard focus + mobile non-hover emphasis (high specificity vs hub grammar). */
body.fh-contact .fh-contact-offices,
body.fh-contact main .fh-contact-offices{
  overflow:visible;
}
body.fh-contact .fh-contact-offices .wp-block-columns,
body.fh-contact main .fh-contact-offices .wp-block-columns{
  align-items:stretch;
  isolation:isolate;
  gap:24px!important;
  border-top:0!important;
  overflow:visible;
  padding-top:8px;
  padding-bottom:12px;
}
body.fh-contact .fh-contact-office,
body.fh-contact main .fh-contact-office{
  position:relative;
  z-index:0;
  box-sizing:border-box;
  min-height:100%;
  margin:0;
  padding:30px 26px 32px!important;
  border:1px solid var(--fh-line)!important;
  border-left:1px solid var(--fh-line)!important;
  background:var(--fh-white);
  border-radius:0;
  transform:scale(1) translateY(0);
  transform-origin:center center;
  transition:transform 200ms ease,box-shadow 200ms ease,background-color 200ms ease,border-color 200ms ease,outline-color 200ms ease;
  outline:3px solid transparent;
  outline-offset:3px;
  will-change:transform;
  cursor:pointer;
}
body.fh-contact .fh-contact-office + .fh-contact-office,
body.fh-contact main .fh-contact-office + .fh-contact-office{
  padding-left:26px!important;
  border-left:1px solid var(--fh-line)!important;
}
body.fh-contact .fh-contact-office:hover,
body.fh-contact .fh-contact-office:focus-within,
body.fh-contact .fh-contact-office.is-emphasized,
body.fh-contact .fh-contact-office:focus-visible,
body.fh-contact main .fh-contact-office:hover,
body.fh-contact main .fh-contact-office:focus-within,
body.fh-contact main .fh-contact-office.is-emphasized,
body.fh-contact main .fh-contact-office:focus-visible{
  z-index:3;
  background:var(--fh-paper,#f3f5f2);
  border-color:var(--fh-green)!important;
  box-shadow:0 28px 60px rgba(11,31,42,.22);
  transform:scale(1.08) translateY(-12px);
  outline-color:var(--fh-green);
}
body.fh-contact .fh-contact-office:focus-visible{outline-style:solid}
body.fh-contact .fh-contact-office a:focus-visible{outline:3px solid var(--fh-green);outline-offset:3px}
body.fh-contact .fh-contact-office.is-emphasized{outline-color:var(--fh-green);outline-style:solid}

/* Contact map: geographic Europe–Asia basemap + branded pins. */
body.fh-contact .fh-contact-map,
.fh-contact-map{
  margin:0;
  padding:0;
  background:var(--fh-navy);
  color:var(--fh-white);
}
body.fh-contact .fh-contact-map__shell,
.fh-contact-map__shell{
  max-width:none;
  margin:0;
  padding:56px max(20px,calc((100vw - 1440px)/2)) 64px;
}
body.fh-contact .fh-contact-map__shell>.fh-eyebrow,
.fh-contact-map__shell>.fh-eyebrow{margin:0 0 14px;color:var(--fh-signal)}
body.fh-contact .fh-contact-map__shell>h2,
.fh-contact-map__shell>h2{
  margin:0 0 32px;
  max-width:920px;
  font-size:48px;
  line-height:54px;
  color:var(--fh-white);
}
body.fh-contact .fh-contact-map__figure,
.fh-contact-map__figure{
  margin:0;
  padding:28px 20px 24px;
  background:rgba(7,30,46,.55);
  border:1px solid rgba(255,255,255,.14);
  color:var(--fh-signal);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}
body.fh-contact .fh-contact-map__figure svg,
.fh-contact-map__figure svg{
  display:block;
  width:100%;
  min-height:560px;
  height:auto;
}
body.fh-contact .fh-contact-map__sea,
.fh-contact-map__sea{fill:#0a2a3c}
body.fh-contact .fh-contact-map__land,
.fh-contact-map__land{
  fill:rgba(243,245,242,.14);
  stroke:rgba(243,245,242,.28);
  stroke-width:1.25;
  stroke-linejoin:round;
}
body.fh-contact .fh-contact-map__coast,
.fh-contact-map__coast{
  stroke:rgba(32,169,130,.22);
  stroke-width:1;
  stroke-linejoin:round;
}
body.fh-contact .fh-contact-map__grid,
.fh-contact-map__grid{
  stroke:rgba(255,255,255,.06);
  stroke-width:1;
  stroke-dasharray:4 10;
}
body.fh-contact .fh-contact-map__marker,
.fh-contact-map__marker{
  cursor:pointer;
}
body.fh-contact .fh-contact-map__pin,
.fh-contact-map__pin{
  fill:var(--fh-signal);
  stroke:var(--fh-white);
  stroke-width:2.5;
  transition:fill 180ms ease,stroke-width 180ms ease,transform 180ms ease;
  transform-box:fill-box;
  transform-origin:center bottom;
}
body.fh-contact .fh-contact-map__pin-core,
.fh-contact-map__pin-core{
  fill:var(--fh-navy);
  stroke:var(--fh-white);
  stroke-width:1.5;
  transition:fill 180ms ease;
}
body.fh-contact .fh-contact-map__code,
.fh-contact-map__code{
  fill:var(--fh-white);
  font:700 22px/1 "Geist Mono",monospace;
  letter-spacing:.04em;
}
body.fh-contact .fh-contact-map__city,
.fh-contact-map__city{
  fill:#c4d1d8;
  font:500 15px/1 Geist,Arial,sans-serif;
}
body.fh-contact .fh-contact-map__marker.is-active .fh-contact-map__pin,
.fh-contact-map__marker.is-active .fh-contact-map__pin{
  fill:var(--fh-green,#007F5F);
  stroke:var(--fh-white);
  stroke-width:3.25;
  transform:scale(1.18);
}
body.fh-contact .fh-contact-map__marker.is-active .fh-contact-map__pin-core,
.fh-contact-map__marker.is-active .fh-contact-map__pin-core{
  fill:var(--fh-paper,#F3F5F2);
}
body.fh-contact .fh-contact-map__marker.is-active .fh-contact-map__code,
.fh-contact-map__marker.is-active .fh-contact-map__code{
  fill:var(--fh-signal);
}
body.fh-contact .fh-contact-map__figure figcaption,
.fh-contact-map__figure figcaption{
  margin-top:18px;
  color:#c4d1d8;
  font:500 13px/20px Geist,Arial,sans-serif;
}

@media(max-width:680px){
  body.fh-contact .fh-contact-map__shell,
  .fh-contact-map__shell{padding:40px 16px 48px}
  body.fh-contact .fh-contact-map__shell>h2,
  .fh-contact-map__shell>h2{font-size:32px;line-height:38px;margin-bottom:20px}
  body.fh-contact .fh-contact-map__figure,
  .fh-contact-map__figure{padding:14px 10px 12px}
  body.fh-contact .fh-contact-map__figure svg,
  .fh-contact-map__figure svg{min-height:300px}
  body.fh-contact .fh-contact-map__code,
  .fh-contact-map__code{font-size:16px}
  body.fh-contact .fh-contact-map__city,
  .fh-contact-map__city{font-size:12px}
  body.fh-contact .fh-contact-map__figure figcaption,
  .fh-contact-map__figure figcaption{font-size:12px;line-height:18px}
}

@media(max-width:680px){

  .fh-contact-form-panel{padding:64px 20px}
  .fh-contact-form-panel__intro{grid-template-columns:1fr;gap:18px;margin-bottom:44px}.fh-contact-form-panel__intro .fh-eyebrow{grid-column:auto;margin-bottom:2px}.fh-contact-form-panel__intro h2{font-size:34px;line-height:40px}
  .fh-contact-form .fh-field-grid{grid-template-columns:1fr;gap:22px}.fh-contact-form .fh-field--wide{grid-column:auto}
  .fh-contact-form__actions{margin-top:30px}.fh-contact-form__actions button{width:100%;min-height:52px}
  .fh-form-errors{padding:24px 20px}.fh-contact-summary{padding:34px 20px}.fh-contact-summary h2{font-size:34px;line-height:40px}.fh-contact-summary dl{grid-template-columns:1fr}.fh-contact-summary .fh-button-secondary{display:inline-flex;width:100%}
  body.fh-contact .fh-contact-offices .wp-block-columns,
  body.fh-contact main .fh-contact-offices .wp-block-columns{gap:16px!important;padding-top:0;padding-bottom:0}
  body.fh-contact .fh-contact-office,
  body.fh-contact main .fh-contact-office,
  body.fh-contact .fh-contact-office + .fh-contact-office,
  body.fh-contact main .fh-contact-office + .fh-contact-office{
    padding:22px 18px!important;
    border-left:1px solid var(--fh-line)!important;
  }
  body.fh-contact .fh-contact-office:hover,
  body.fh-contact .fh-contact-office:focus-within,
  body.fh-contact .fh-contact-office.is-emphasized,
  body.fh-contact .fh-contact-office:focus-visible,
  body.fh-contact main .fh-contact-office:hover,
  body.fh-contact main .fh-contact-office:focus-within,
  body.fh-contact main .fh-contact-office.is-emphasized,
  body.fh-contact main .fh-contact-office:focus-visible{
    transform:scale(1.045) translateY(-6px);
    box-shadow:0 18px 36px rgba(11,31,42,.18);
  }
}
