/* Small overrides for the static export. The original layout styles live in assets/vendor. */
.elementor-menu-toggle { cursor: pointer; border: 0; }
.elementor-nav-menu--main li.menu-item-has-children:hover > .sub-menu,
.elementor-nav-menu--main li.menu-item-has-children:focus-within > .sub-menu { display: block !important; visibility: visible !important; opacity: 1 !important; }
.elementor-nav-menu--main li.menu-item-has-children { position: relative; }
/* Elementor's CSS fixes dropdowns at 12em and relied on SmartMenus JS to widen them to fit;
   without that script, size the panel to its longest item (bounded so it stays on screen). */
.elementor-nav-menu--main li.menu-item-has-children > .sub-menu { position: absolute; z-index: 100; width: max-content; min-width: 100%; max-width: min(40em, calc(100vw - 2rem)); }
.elementor-nav-menu--main li.menu-item-has-children > .sub-menu a { white-space: normal; }
/* Keep the last top-level dropdown inside the viewport. */
.elementor-nav-menu--main li.menu-item-has-children:last-child > .sub-menu { left: auto; right: 0; }
.elementor-menu-toggle:focus-visible, .elementor-nav-menu a:focus-visible,
.static-contact-card a:focus-visible { outline: 3px solid #387cc4; outline-offset: 3px; }
.avmet-video { width: 100%; height: auto; display: block; }
.static-contact-card { padding: 1.5rem; border: 1px solid #d8e3ef; background: #f5f9fd; text-align: center; }
.static-contact-card p { margin-bottom: .5rem; }
.static-contact-card a { font-size: 1.25rem; font-weight: 700; }

/* Contact Us form (posts to /api/contact). Colors follow the Elementor globals used on the page. */
.contact-form { padding: 1.5rem; border: 1px solid #d8e3ef; background: #f5f9fd; text-align: left; }
.contact-form__intro { margin: 0 0 1.25rem; }
.contact-form__row { display: flex; gap: 1rem; }
.contact-form__row .contact-form__field { flex: 1 1 0; }
.contact-form__field { display: flex; flex-direction: column; margin-bottom: 1rem; }
.contact-form__field label { font-weight: 600; margin-bottom: .35rem; color: #54595f; }
.contact-form__field label span { color: #c0392b; }
.contact-form__field input, .contact-form__field textarea {
  font: inherit; padding: .6rem .75rem; border: 1px solid #b9c9d9; border-radius: 3px; background: #fff; color: #222; width: 100%; box-sizing: border-box;
}
.contact-form__field textarea { resize: vertical; min-height: 8rem; }
.contact-form__field input:focus, .contact-form__field textarea:focus { outline: 3px solid #387cc4; outline-offset: 1px; border-color: #387cc4; }
.contact-form__field.has-error input, .contact-form__field.has-error textarea { border-color: #c0392b; }
.contact-form__field-error { color: #c0392b; font-size: .9em; margin-top: .3rem; }
.contact-form__trap { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.contact-form__actions { margin-top: .25rem; }
.contact-form .elementor-button, .elementor-widget-form .contact-form .elementor-button[type="submit"] { background-color: #387cc4; color: #fff; border: 0; border-radius: 3px; padding: .8rem 1.5rem; font-weight: 600; cursor: pointer; width: 100%; }
.contact-form .elementor-button:hover, .contact-form .elementor-button:focus-visible, .elementor-widget-form .contact-form .elementor-button[type="submit"]:hover { background-color: #2f6aa8; color: #fff; }
.contact-form .elementor-button[disabled] { opacity: .7; cursor: default; }
.contact-form__status { margin: .75rem 0 0; min-height: 1.2em; }
.contact-form__status--error { color: #c0392b; }
.contact-form__banner { display: none; margin: 1rem 0 0; padding: .9rem 1rem; border-radius: 3px; }
.contact-form__banner.is-visible, .contact-form__banner:target { display: block; }
.contact-form__banner--ok { background: #e6f4ea; border: 1px solid #b7dfc2; color: #1e6b3a; }
.contact-form__banner--error { background: #fdecea; border: 1px solid #f5c2bd; color: #8a1c12; }
.contact-form.is-sent .contact-form__row, .contact-form.is-sent .contact-form__field, .contact-form.is-sent .contact-form__actions, .contact-form.is-sent .contact-form__intro { display: none; }
.contact-form__legal { margin: 1rem 0 0; font-size: .8em; color: #7a7a7a; }
.contact-form__legal a { color: inherit; text-decoration: underline; }
.grecaptcha-badge { visibility: hidden; }
@media (max-width: 767px) { .contact-form__row { display: block; } }
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown .sub-menu { display: block !important; position: static !important; visibility: visible !important; opacity: 1 !important; padding-left: 1rem; }
  .elementor-nav-menu--dropdown .elementor-nav-menu__container { overflow-y: auto; }
}
/* What We Do tiles (page 510): each heading is pulled up over a linked image with a negative margin.
   The heading text is now a link to the same page; let the rest of the heading box pass clicks
   through to the picture, and give both a light hover cue. */
.elementor-510 .elementor-inner-column .elementor-widget-heading { pointer-events: none; }
.elementor-510 .elementor-inner-column .elementor-widget-heading .elementor-heading-title > a { pointer-events: auto; }
.elementor-510 .elementor-inner-column .elementor-heading-title > a:hover,
.elementor-510 .elementor-inner-column .elementor-heading-title > a:focus-visible { text-decoration: underline; text-underline-offset: .15em; }
.elementor-510 .elementor-inner-column .elementor-widget-image img { transition: filter .2s ease; }
.elementor-510 .elementor-inner-column:has(a:hover) .elementor-widget-image img { filter: brightness(1.12); }
