.mshf-scope,
.mshf-scope * { box-sizing: border-box; }

:where(.mshf-scope) {
  --mshf-accent: #2e8218;
  --mshf-accent-hover: #176b24;
  --mshf-accent-end: #59a913;
  --mshf-accent-soft: #eff8e9;
  --mshf-menu-text: #10251a;
  --mshf-menu-normal-bg: transparent;
  --mshf-menu-hover-text: #176b24;
  --mshf-menu-hover-bg: #eff8e9;
  --mshf-menu-active-text: #ffffff;
  --mshf-menu-indicator: #9bdd27;
  --mshf-dropdown-text: #173426;
  --mshf-dropdown-hover-text: #176b24;
  --mshf-dropdown-hover-bg: #eff8e9;
  --mshf-cta-hover-text: #ffffff;
  --mshf-footer-accent: #66b34e;
  --mshf-menu-cut: 11px;
  --mshf-active-radius: 5px;
  font-family: inherit;
}

.mshf-scope a,
.mshf-scope a:hover,
.mshf-scope a:focus,
.mshf-scope a:active,
.mshf-scope button,
.mshf-scope button:hover,
.mshf-scope button:focus,
.mshf-scope button:active {
  text-decoration: none;
  outline-color: transparent;
}

/* No inherited Elementor/theme pink/red states inside this plugin. */
.mshf-scope a:focus-visible,
.mshf-scope button:focus-visible {
  outline: 3px solid rgba(46,130,24,.25) !important;
  outline-offset: 3px;
}

/* Hard-remove the legacy top message strip, even if stale markup survives cache. */
.mshf-header__topbar,
.mshf-header .mshf-header__topbar {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

.mshf-header {
  --mshf-css-loaded: 1;
  position: relative;
  width: 100%;
  z-index: 9990;
  color: #10251a;
  background: #fff;
  isolation: isolate;
}

.mshf-header--sticky { position: relative; }
.mshf-header-nav-placeholder { width: 100%; height: 0; margin: 0; padding: 0; border: 0; pointer-events: none; }
/* v1.0.10: the logo/contact row is NEVER fixed. Only the desktop menu row sticks. */
.mshf-header--sticky.is-stuck .mshf-header__nav-row {
  position: fixed;
  top: var(--mshf-sticky-top, 0px);
  left: 0;
  right: 0;
  width: 100%;
  z-index: 2147482000;
  animation: mshfNavStickyIn .34s cubic-bezier(.2,.75,.2,1) both;
}
@keyframes mshfNavStickyIn {
  from { transform: translateY(-12px); opacity: .92; }
  to { transform: translateY(0); opacity: 1; }
}
body.admin-bar .mshf-header--sticky.is-stuck .mshf-header__nav-row {
  top: calc(var(--mshf-sticky-top, 0px) + 32px);
}

.mshf-header__container,
.mshf-footer__container {
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
}

.mshf-header__brand-row,
.mshf-header__nav-row {
  transition: padding .32s cubic-bezier(.2,.72,.2,1), background-color .32s ease, box-shadow .32s ease, border-color .32s ease;
}

/* ===== Brand/contact row ===== */
.mshf-header__brand-row {
  position: relative;
  z-index: 3;
  padding: 17px 24px 15px;
  background: #fff;
}
.mshf-header__brand-row-inner {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  /* v1.0.15: keep the logo at the LEFT EDGE OF THE SHARED HEADER CONTENT
     CONTAINER (the same centered container used by the navigation), not at
     the full browser/page edge. */
  width: 100%;
  max-width: 1360px;
  margin-left: auto !important;
  margin-right: auto !important;
}
.mshf-header__brand {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  color: inherit !important;
  min-width: 0;
  max-width: 58%;
  margin-left: 0 !important;
  margin-right: auto;
  text-align: left;
}
.mshf-header__logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  margin-left: 0 !important;
  text-align: left;
}
.mshf-header__logo img {
  width: 300px;
  height: auto;
  max-width: min(100%, 580px);
  max-height: 86px;
  object-fit: contain;
  object-position: left center;
  display: block;
  transition: max-height .3s ease, transform .3s ease;
}

.mshf-header__contact {
  margin-left: auto;
  display: grid;
  grid-template-columns: 50px auto auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 10px;
  row-gap: 1px;
  min-width: 0;
}
.mshf-header__phone-badge {
  grid-row: 1 / 3;
  width: 50px;
  height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: linear-gradient(135deg,var(--mshf-accent-end),var(--mshf-accent));
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(42,125,28,.17);
}
.mshf-header__phone-badge svg { width: 30px; height: 30px; }
.mshf-header__contact-main { display: grid; align-content: center; gap: 2px; }
.mshf-header__phone {
  display: inline-flex;
  align-items: center;
  color: var(--mshf-accent) !important;
  font-size: clamp(18px,1.7vw,28px);
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.025em;
  white-space: nowrap;
  transition: color .18s ease, transform .18s ease;
}
.mshf-header__phone:hover { color: var(--mshf-accent-hover) !important; transform: translateY(-1px); }
.mshf-header__meta {
  font-size: 10px;
  line-height: 1.25;
  font-weight: 600;
  color: #69776f;
  white-space: nowrap;
}
.mshf-header__fax {
  grid-row: 1 / 3;
  align-self: center;
  padding-left: 10px;
  border-left: 1px solid #dfe8e1;
  color: #17231d;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 750;
  white-space: nowrap;
}

/* WordPress/theme list-style firewall for navigation. Prevents bullets/indentation
   in Elementor mobile/tablet preview and on the frontend. */
.mshf-header__menu,
.mshf-header__menu ul,
.mshf-header__mobile-menu,
.mshf-header__mobile-menu ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.mshf-header__menu li,
.mshf-header__mobile-menu li {
  list-style: none !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}
.mshf-header__menu li::marker,
.mshf-header__mobile-menu li::marker {
  content: "" !important;
  font-size: 0 !important;
}

/* ===== Reference-style navigation bar ===== */
.mshf-header__nav-row {
  position: relative;
  z-index: 2;
  padding: 0 20px;
  background: #fff;
  border: 1px solid #e7eee8;
  border-width: 1px 0 0;
  box-shadow: 0 3px 15px rgba(12,40,22,.035);
}
.mshf-header__nav-row::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: #69a91c;
  pointer-events: none;
  z-index: 5;
}
.mshf-header__nav-inner {
  display: flex;
  align-items: stretch;
  gap: 18px;
  min-height: 0;
}
.mshf-header__nav { flex: 1 1 auto; min-width: 0; }
.mshf-header__menu,
.mshf-header__menu ul {
  display: flex;
  align-items: stretch;
  gap: 0;
  flex-wrap: nowrap;
  min-height: 0;
}
.mshf-header__menu > li {
  position: relative;
  display: flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
}
 .mshf-header__menu > li > a {
  position: relative;
  z-index: 0;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 16px 20px;
  border-style: solid;
  border-width: 0;
  border-color: transparent;
  border-radius: var(--mshf-active-radius);
  background: var(--mshf-menu-normal-bg) !important;
  background-image: none !important;
  color: var(--mshf-menu-text) !important;
  clip-path: polygon(var(--mshf-menu-cut) 0, 100% 0, calc(100% - var(--mshf-menu-cut)) 100%, 0 100%);
  font-size: 13px;
  line-height: 1;
  font-weight: 750;
  white-space: nowrap;
  overflow: hidden;
  box-shadow: none;
  transition: color .18s ease, background-color .18s ease, background-image .18s ease, transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
/* v1.0.21: the visible state is painted on the actual anchor. No pseudo-layer can
   get stuck above Elementor's live CSS, and theme current-menu classes cannot
   accidentally make every item look active. */
.mshf-header__menu > li > a::before { content: none !important; display: none !important; }

/* NORMAL: every non-current item always uses the user's Normal controls, even if
   WordPress/theme adds current-menu-parent/current-menu-ancestor classes. */
.mshf-header__menu > li:not(.mshf-current) > a,
.mshf-header__menu > li.current-menu-item:not(.mshf-current) > a,
.mshf-header__menu > li.current-menu-parent:not(.mshf-current) > a,
.mshf-header__menu > li.current-menu-ancestor:not(.mshf-current) > a,
.mshf-header__menu > li.current_page_item:not(.mshf-current) > a {
  color: var(--mshf-menu-text) !important;
  background: var(--mshf-menu-normal-bg) !important;
  background-image: none !important;
}

/* HOVER: only non-current items take the hover palette. */
.mshf-header__menu > li:not(.mshf-current) > a:hover,
.mshf-header__menu > li:not(.mshf-current):hover > a,
.mshf-header__menu > li:not(.mshf-current) > a:focus-visible {
  color: var(--mshf-menu-hover-text) !important;
  background: var(--mshf-menu-hover-bg) !important;
  background-image: none !important;
  /* v1.0.22: inset fill is a visual fallback when a theme applies its own background shorthand. */
  box-shadow: inset 0 0 0 100vmax var(--mshf-menu-hover-bg) !important;
  transform: translateY(-1px);
}

/* ACTIVE/CURRENT: exactly one matching item in each rendered menu receives
   .mshf-current from JS and therefore gets the Active controls. */
.mshf-header__menu > li.mshf-current > a {
  color: var(--mshf-menu-active-text) !important;
  background: var(--mshf-accent) !important;
  background-image: none !important;
  box-shadow: 0 8px 20px color-mix(in srgb, var(--mshf-accent) 24%, transparent), inset 0 1px rgba(255,255,255,.16);
}
.mshf-header.mshf-active-gradient .mshf-header__menu > li.mshf-current > a {
  background-color: var(--mshf-accent) !important;
  background-image: linear-gradient(135deg,var(--mshf-accent-hover) 0%,var(--mshf-accent) 52%,var(--mshf-accent-end) 100%) !important;
}
.mshf-header__menu > li.mshf-current::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 28px;
  height: 3px;
  transform: translateX(-50%);
  border-radius: 3px 3px 0 0;
  background: var(--mshf-menu-indicator);
  z-index: 4;
}

.mshf-header__menu .sub-menu {
  position: absolute;
  top: calc(100% + 9px);
  left: 0;
  min-width: 232px;
  padding: 9px;
  background: #fff;
  border: 1px solid rgba(20,55,35,.09);
  border-radius: 12px;
  box-shadow: 0 18px 44px rgba(11,42,32,.14);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
  z-index: 40;
}
.mshf-header__menu .sub-menu .sub-menu { left: calc(100% + 8px); top: -9px; }
.mshf-header__menu li:hover > .sub-menu,
.mshf-header__menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.mshf-header__menu .sub-menu li { position: relative; }
.mshf-header__menu .sub-menu a {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  border-radius: 7px;
  color: var(--mshf-dropdown-text) !important;
  font-size: 13px;
  font-weight: 650;
  transition: background-color .2s ease, color .2s ease, padding-left .2s ease;
}
.mshf-header__menu .sub-menu a:hover,
.mshf-header__menu .sub-menu .current-menu-item > a {
  background: var(--mshf-dropdown-hover-bg) !important;
  color: var(--mshf-dropdown-hover-text) !important;
  padding-left: 16px;
}

/* Optional CTA follows the same angular design language, never a pill. */
.mshf-header__cta,
.mshf-header__cta:visited {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  gap: 8px;
  min-height: 42px;
  padding: 11px 22px;
  border: 0 solid transparent;
  border-radius: 5px;
  clip-path: polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
  background: linear-gradient(135deg,var(--mshf-accent-hover),var(--mshf-accent));
  color: #fff !important;
  font-size: 13px;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(31,100,38,.15);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.mshf-header__cta:hover { color: var(--mshf-cta-hover-text) !important; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(31,100,38,.22); filter: brightness(1.04); }

/* ===== Mobile toggle ===== */
.mshf-header__toggle[hidden] { display: none !important; }
/* The button is rendered with the native hidden attribute to prevent pre-CSS FOUC on reload.
   JavaScript removes hidden only after the configured mobile breakpoint is confirmed. */
.mshf-header__toggle {
  display: none;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  padding: 0;
  border: 0 solid transparent;
  border-radius: 10px;
  background: linear-gradient(135deg,var(--mshf-accent-hover),var(--mshf-accent));
  color: #fff;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  box-shadow: 0 10px 24px rgba(7,70,28,.18);
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.mshf-header__toggle:hover { transform: translateY(-1px); box-shadow: 0 13px 28px rgba(7,70,28,.23); }
.mshf-header__toggle span { width: 20px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s ease, opacity .2s ease; }
.mshf-header__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mshf-header__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.mshf-header__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ===== Genuine left-side off-canvas drawer ===== */
.mshf-header__mobile-panel[hidden] { display: none !important; }
.mshf-header__mobile-panel {
  position: fixed;
  inset: 0;
  z-index: 2147482000;
  display: block;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .26s ease, visibility .26s ease;
}
.mshf-header__mobile-panel.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.mshf-header__mobile-panel.is-open .mshf-header__mobile-panel-inner,
.mshf-header__mobile-panel.is-open .mshf-header__mobile-backdrop { pointer-events: auto; }
.mshf-header__mobile-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(6,28,20,.58);
  opacity: 0;
  cursor: pointer;
  transition: opacity .32s ease;
}
.mshf-header__mobile-panel.is-open .mshf-header__mobile-backdrop { opacity: 1; }
.mshf-header__mobile-panel-inner {
  position: absolute;
  z-index: 2;
  top: var(--mshf-mobile-top, 0px);
  left: 0;
  width: min(88vw,370px);
  max-width: 100%;
  height: calc(100dvh - var(--mshf-mobile-top, 0px));
  max-height: calc(100dvh - var(--mshf-mobile-top, 0px));
  margin: 0;
  padding: 20px 18px 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #fff;
  border-right: 1px solid rgba(25,75,40,.08);
  box-shadow: 26px 0 70px rgba(4,29,16,.24);
  transform: translate3d(-106%,0,0);
  transition: transform .46s cubic-bezier(.22,.82,.2,1);
  will-change: transform;
}
.mshf-header__mobile-panel.is-open .mshf-header__mobile-panel-inner { transform: translate3d(0,0,0); }
/* v1.0.11: no duplicate logo/close header inside the drawer.
   The real header row stays visible above the drawer and its hamburger becomes the close X. */
.mshf-header__mobile-nav { width: 100%; padding-top: 2px; }

.mshf-header__mobile-menu { display: grid; gap: 5px; width: 100%; min-height: 0; list-style: none !important; margin: 0 !important; padding: 0 !important; }
.mshf-header__mobile-menu li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.mshf-header__mobile-menu a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 0;
  padding: 11px 16px;
  border-style: solid;
  border-width: 0;
  border-color: transparent;
  border-radius: var(--mshf-active-radius) !important;
  color: var(--mshf-menu-text) !important;
  background: var(--mshf-menu-normal-bg) !important;
  background-image: none !important;
  clip-path: polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);
  font-weight: 750;
  overflow: hidden;
  transition: color .18s ease, background-color .18s ease, background-image .18s ease, transform .18s ease;
}
.mshf-header__mobile-menu a::before { content: none !important; display: none !important; }
.mshf-header__mobile-menu li:not(.mshf-current) > a,
.mshf-header__mobile-menu li.current-menu-item:not(.mshf-current) > a,
.mshf-header__mobile-menu li.current-menu-parent:not(.mshf-current) > a,
.mshf-header__mobile-menu li.current-menu-ancestor:not(.mshf-current) > a,
.mshf-header__mobile-menu li.current_page_item:not(.mshf-current) > a {
  color: var(--mshf-menu-text) !important;
  background: var(--mshf-menu-normal-bg) !important;
  background-image: none !important;
}
.mshf-header__mobile-menu li:not(.mshf-current) > a:hover,
.mshf-header__mobile-menu li:not(.mshf-current):hover > a,
.mshf-header__mobile-menu li:not(.mshf-current) > a:focus-visible {
  color: var(--mshf-menu-hover-text) !important;
  background: var(--mshf-menu-hover-bg) !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 100vmax var(--mshf-menu-hover-bg) !important;
  transform: translateX(3px);
}
.mshf-header__mobile-menu li.mshf-current > a {
  color: var(--mshf-menu-active-text) !important;
  background-color: var(--mshf-accent) !important;
  background-image: none !important;
}
.mshf-header.mshf-active-gradient .mshf-header__mobile-menu li.mshf-current > a {
  background-color: var(--mshf-accent) !important;
  background-image: linear-gradient(135deg,var(--mshf-accent-hover),var(--mshf-accent),var(--mshf-accent-end)) !important;
}

.mshf-header__mobile-menu .sub-menu { margin: 3px 0 5px 14px; padding-left: 10px; border-left: 2px solid var(--mshf-accent-soft); }
.mshf-header__mobile-menu .sub-menu a { min-height: 42px; font-size: 13px; }
.mshf-header__cta--mobile { width: 100%; margin-top: 16px; }
html.mshf-menu-open,
html.mshf-menu-open body { overflow: hidden !important; }
/* Keep the real hamburger button above the drawer so repeated rapid clicks can toggle it open/closed without waiting. */
html.mshf-menu-open .mshf-header { z-index: 2147483000; }
html.mshf-menu-open .mshf-header__toggle { position: relative; z-index: 2147483100; }

/* Sticky styling belongs to the menu row only; the logo/contact row scrolls away untouched. */
.mshf-header.is-stuck .mshf-header__nav-row {
  background: rgba(255,255,255,.97);
  box-shadow: 0 14px 38px rgba(9,38,27,.13);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* JS class support plus CSS media fallbacks so Elementor phone/tablet preview works immediately. */
.mshf-header.mshf-mobile-mode .mshf-header__contact,
.mshf-header.mshf-mobile-mode .mshf-header__nav-row { display: none !important; }
.mshf-header.mshf-mobile-mode .mshf-header__toggle { display: flex !important; }
.mshf-header.mshf-mobile-mode .mshf-header__brand { max-width: calc(100% - 68px); }

@media (max-width:1200px) {
  .mshf-header.mshf-breakpoint-1200 .mshf-header__contact,
  .mshf-header.mshf-breakpoint-1200 .mshf-header__nav-row { display: none !important; }
  .mshf-header.mshf-breakpoint-1200 .mshf-header__toggle { display: flex !important; }
  .mshf-header.mshf-breakpoint-1200 .mshf-header__brand { max-width: calc(100% - 68px); }
}
@media (max-width:1024px) {
  .mshf-header.mshf-breakpoint-1024 .mshf-header__contact,
  .mshf-header.mshf-breakpoint-1024 .mshf-header__nav-row { display: none !important; }
  .mshf-header.mshf-breakpoint-1024 .mshf-header__toggle { display: flex !important; }
  .mshf-header.mshf-breakpoint-1024 .mshf-header__brand { max-width: calc(100% - 68px); }
}
@media (max-width:767px) {
  .mshf-header.mshf-breakpoint-767 .mshf-header__contact,
  .mshf-header.mshf-breakpoint-767 .mshf-header__nav-row { display: none !important; }
  .mshf-header.mshf-breakpoint-767 .mshf-header__toggle { display: flex !important; }
  .mshf-header.mshf-breakpoint-767 .mshf-header__brand { max-width: calc(100% - 64px); }
}

/* Desktop flash firewall: even a restored/bfcached open drawer can never render above its configured breakpoint. */
@media (min-width:1201px) {
  .mshf-header__mobile-panel.mshf-panel-breakpoint-1200 { display:none !important; }
}
@media (min-width:1025px) {
  .mshf-header__mobile-panel.mshf-panel-breakpoint-1024 { display:none !important; }
}
@media (min-width:768px) {
  .mshf-header__mobile-panel.mshf-panel-breakpoint-767 { display:none !important; }
}

/* FOOTER */
/* v1.0.4: the standalone green contact/CTA strip is not part of the requested footer. Hide stale cached markup too. */
.mshf-footer__contact-strip { display: none !important; }
.mshf-footer { width:100%; color:#d9e7de; }
.mshf-footer__main { position:relative; isolation:isolate; overflow:hidden; background-color:#071c15; padding:60px 24px 26px; }
/* v1.0.12: background image lives on its own layer. This avoids Elementor/theme
   background shorthands masking the selected image and keeps the overlay independent. */
.mshf-footer__main::before { content:none !important; display:none !important; }
.mshf-footer__background { display:block; position:absolute; inset:-3%; z-index:0; pointer-events:none; background-position:center center; background-size:cover; background-repeat:no-repeat; background-attachment:scroll; opacity:.30; filter:blur(2px); transform:scale(1.025); transform-origin:center; will-change:transform,filter,opacity; }
.mshf-footer__overlay { display:none; position:absolute; inset:0; z-index:1; pointer-events:none; background:#071c15; opacity:.72; mix-blend-mode:normal; }
.mshf-footer--overlay-enabled .mshf-footer__overlay { display:block; }
.mshf-footer__main > .mshf-footer__container { position:relative; z-index:2; }
.mshf-footer__grid { display:grid; grid-template-columns:minmax(260px,1.35fr) .7fr .7fr 1fr; gap:56px; align-items:start; }
.mshf-footer__brand { display:inline-flex; align-items:center; color:#fff !important; }
.mshf-footer__logo img { width:180px; max-width:100%; max-height:76px; object-fit:contain; object-position:left center; display:block; }
.mshf-footer__brand-title { display:none !important; }
.mshf-footer__description { max-width:380px; margin:18px 0 0; color:inherit; opacity:.78; line-height:1.75; font-size:14px; }
.mshf-footer__title { margin:0 0 16px; font-size:13px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.mshf-footer__list { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.mshf-footer__list-item { margin:0; padding:0; list-style:none; }
.mshf-footer__list-link,
.mshf-footer__list-static { display:flex; align-items:center; width:fit-content; max-width:100%; gap:9px; padding:4px 0; color:#d9e7de !important; font-size:14px; font-weight:600; line-height:1.5; opacity:.9; text-decoration:none !important; transition:color .2s ease, opacity .2s ease, transform .2s ease; }
.mshf-footer__list-static { cursor:default; }
.mshf-footer__list-icon { width:20px; min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; color:var(--mshf-footer-accent); line-height:1; flex:0 0 auto; transition:transform .2s ease, color .2s ease; }
.mshf-footer__list-icon svg { width:15px; height:15px; display:block; overflow:visible; fill:currentColor; }
.mshf-footer__list-icon svg[fill="none"] { fill:none; }
.mshf-footer__list-icon i { width:1em; height:1em; display:inline-flex; align-items:center; justify-content:center; font-size:15px; line-height:1; }
.mshf-footer__list-label { min-width:0; overflow-wrap:anywhere; }
.mshf-footer__list-link:hover,
.mshf-footer__list-link:focus-visible { color:#fff !important; opacity:1; transform:translateX(3px); outline:none; }
.mshf-footer__list-link:hover .mshf-footer__list-icon,
.mshf-footer__list-link:focus-visible .mshf-footer__list-icon { color:var(--mshf-footer-accent); transform:translateX(1px) scale(1.06); }
.mshf-footer__contact-col { display:block; }
.mshf-footer__list--contact .mshf-footer__list-link,
.mshf-footer__list--contact .mshf-footer__list-static { align-items:flex-start; }
.mshf-footer__bottom { margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.10); display:flex; align-items:center; justify-content:space-between; gap:20px; color:rgba(255,255,255,.56); font-size:12px; }
.mshf-footer__backtop { width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,.22); color:#fff !important; display:inline-flex; align-items:center; justify-content:center; transition:background-color .2s ease, transform .2s ease; }
.mshf-footer__backtop:hover { background:var(--mshf-footer-accent); color:#071c15 !important; transform:translateY(-3px); }

@media (max-width:1024px) {
  .mshf-footer__grid { grid-template-columns:1.2fr .8fr .8fr; }
  .mshf-footer__contact-col { grid-column:1 / -1; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); }
  .mshf-footer__list--contact { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:782px) {
  body.admin-bar .mshf-header--sticky.is-stuck .mshf-header__nav-row { top:calc(var(--mshf-sticky-top, 0px) + 46px); }
}
@media (max-width:767px) {
  .mshf-header__brand-row { padding-left:16px; padding-right:16px; }
  .mshf-header__logo img { max-height:58px; }
  .mshf-footer__main { padding-left:18px; padding-right:18px; }
  .mshf-footer__grid { grid-template-columns:1fr 1fr; gap:34px 24px; }
  .mshf-footer__brand-col { grid-column:1 / -1; }
  .mshf-footer__list--contact { grid-template-columns:1fr; }
  .mshf-footer__bottom { align-items:flex-start; }
}
@media (max-width:520px) {
  .mshf-header__toggle { width:44px; height:44px; flex-basis:44px; }
  .mshf-header__mobile-panel-inner { width:min(90vw,340px); padding-left:16px; padding-right:16px; }
  .mshf-footer__grid { grid-template-columns:1fr; }
  .mshf-footer__brand-col,
  .mshf-footer__contact-col { grid-column:auto; }
  .mshf-footer__bottom { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  .mshf-scope *, .mshf-scope *::before, .mshf-scope *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}

/* Detached off-canvas panel firewall: it is moved under <body> while open, so
   these selectors intentionally do not depend on the Elementor wrapper. */
body > .mshf-header__mobile-panel .mshf-header__mobile-menu,
body > .mshf-header__mobile-panel .mshf-header__mobile-menu ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body > .mshf-header__mobile-panel .mshf-header__mobile-menu li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
body > .mshf-header__mobile-panel .mshf-header__mobile-menu li::marker { content: "" !important; font-size: 0 !important; }
