/* site overrides — put slider / contact-form / tweak CSS here (keep it out of the pages) */

/* Betheme equal-height valign-middle pulls columns up via translateY(-50%),
   overlapping the previous section/hero when the theme's equalize JS is absent.
   Neutralize the transform at all widths (matches Betheme's own responsive reset). */
.equal-height-wrap .mcb-wrap .mcb-wrap-inner{top:0!important;transform:none!important;-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;-o-transform:none!important}

/* mfn-mobile-menu-fix (v5) — Betheme's own jQuery opens the mobile menu.
   In a frozen build that JS is sometimes missing (tap does nothing) and
   sometimes alive (tap runs BOTH handlers and the menu can never be closed).
   The script below takes the tap in the capture phase and stops the theme's
   handler, so exactly one implementation owns the menu.

   The state class goes on <body>, NOT on #Header_wrapper. On a site where
   sharedify cut the shared header just before <nav id="menu">, the nav ends
   up OUTSIDE #Header_wrapper — and every rule scoped to that ancestor then
   matches nothing, which is exactly how a menu can look dead while the
   class is being applied correctly. Scoping on <body> cannot miss.

   The panel is position:fixed under the bar rather than in flow, because
   Betheme has two shapes: the default drops a block under the bar, while
   `mobile-side-slide` parks a ~250px sheet at left:100% that is already
   display:block and visible, just outside the viewport. Fixed positioning
   is the one treatment that brings both on screen.

   Colours and the offset come from the theme via the custom properties the
   script measures — hardcoding white broke every dark header. */
body.mfn-mobile-open #menu{display:block!important;position:fixed!important;left:0!important;right:0!important;top:var(--mfn-mm-top,56px)!important;bottom:auto!important;width:auto!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important;transform:none!important;visibility:visible!important;opacity:1!important;background:var(--mfn-mm-bg,#fff)!important;max-height:calc(100vh - var(--mfn-mm-top,56px));overflow:auto;z-index:100000!important;box-shadow:0 16px 34px rgba(0,0,0,.2)}
body.mfn-mobile-open #menu>ul.menu{display:block!important;width:100%!important;margin:0!important;padding:0!important}
body.mfn-mobile-open #menu ul.menu>li{display:block!important;float:none!important;width:100%!important;margin:0!important;height:auto!important;min-height:0!important;border-bottom:1px solid rgba(127,127,127,.25)}
body.mfn-mobile-open #menu ul.menu li a{display:block!important;padding:14px 22px!important;color:var(--mfn-mm-fg,#222)!important;line-height:1.3!important;height:auto!important;min-height:0!important}
body.mfn-mobile-open #menu ul.menu li a span{line-height:1.3!important}
body.mfn-mobile-open #menu ul.sub-menu{position:static!important;display:none;left:auto;top:auto;box-shadow:none;min-width:0;width:100%!important;background:rgba(127,127,127,.12)}
body.mfn-mobile-open #menu li.mfn-sub-open>ul.sub-menu{display:block!important}
body.mfn-mobile-open #menu ul.sub-menu li a{padding-left:42px!important}
/* the hamburger is absolutely positioned inside a bar that grows when the
   panel opens; without this it slides down into the menu and the second tap
   lands on a menu item instead of closing. */
body.mfn-mobile-open .responsive-menu-toggle{top:var(--mfn-mm-tgl,0)!important;margin-top:0!important;transform:none!important;z-index:100001!important}
.responsive-menu-toggle{cursor:pointer}

/* live session captcha, styled to match the form's existing fields */
.cf-cap-q{display:inline-block;font-size:17px;font-weight:700;letter-spacing:2px;
  background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.15);border-radius:4px;
  padding:8px 14px;white-space:nowrap;user-select:none;margin:0 10px 6px 0;vertical-align:middle}
.cf-cap-a{max-width:160px;display:inline-block;vertical-align:middle}

.site-credit{display:inline-block;margin-top:6px;font-size:inherit;opacity:.9}
.site-credit a{color:inherit;text-decoration:underline}

/* ---- dpdp-v1 ---------------------------------------------------------- */
/* The consent line always takes a row of its own, above the captcha, so the
   captcha and the send button can sit together underneath. Themes lay the
   bottom of a form out with floats (Divi's .et_contact_bottom_container) or
   flex, so the width and clearing have to be forced or the line gets squeezed
   into the narrow captcha column. */
.dpdp-consent { display: block !important; float: none !important; clear: both !important;
  width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important;
  box-sizing: border-box; margin: 4px 0 16px !important; padding: 0 !important;
  text-align: left !important; }
.dpdp-consent label { display: flex !important; align-items: flex-start; gap: 10px;
  width: 100%; font-size: 14px; line-height: 1.55; cursor: pointer;
  font-weight: 400 !important; text-align: left !important; margin: 0 !important;
  padding: 0 !important; text-transform: none !important; letter-spacing: normal !important;
  color: inherit; }
/* themes (Divi's mobile sheet especially) strip a checkbox down to
   appearance:none with no background or border — it is then present but
   completely invisible.  Force a real, visible control. */
.dpdp-consent input[type="checkbox"] { appearance: auto !important;
  -webkit-appearance: checkbox !important; -moz-appearance: checkbox !important;
  width: 17px !important; height: 17px !important; min-width: 17px !important;
  max-width: 17px !important; min-height: 17px !important;
  margin: 3px 0 0 !important; padding: 0 !important; flex: 0 0 auto;
  position: static !important; opacity: 1 !important; visibility: visible !important;
  border: 1px solid #8a8f98 !important; border-radius: 3px !important;
  background: #fff !important; background-image: none !important;
  box-shadow: none !important; outline: none !important; float: none !important;
  display: inline-block !important; accent-color: #1f7a3d; cursor: pointer; }
.dpdp-consent span { flex: 1 1 auto; }
/* Some themes leave the captcha answer box transparent, which on a dark
   section makes it invisible even though the rest of the fields are light. */
form[action="/send.php"] input[name="captcha"] {
  background: #fff !important; color: #14181c !important;
  border: 1px solid #8a8f98 !important; border-radius: 4px !important;
  -webkit-text-fill-color: #14181c !important; opacity: 1 !important; }
.dpdp-consent a { text-decoration: underline; }
/* Divi: the bottom row is a flex/float container — give the consent its own line */
.et_contact_bottom_container { flex-wrap: wrap; }
.et_contact_bottom_container .dpdp-consent { margin-bottom: 12px !important; }
/* Divi's bottom row is float:right with a negative top margin that would ride
   up over the consent line now sitting above it. */
.dpdp-consent + .et_contact_bottom_container { margin-top: 0 !important; }
.et_pb_contact .dpdp-consent { clear: both !important; }
/* CF7: the captcha <p> follows the consent, so it must start a fresh row. */
.dpdp-consent + p { clear: both; }

.dpdp-footer-line { display: block; margin-top: 8px; font-size: 13px; opacity: .92; }
.dpdp-footer-line a { text-decoration: underline; }

.dpdp-standalone { max-width: 62rem; margin: 0 auto; padding: 28px 20px 56px; }
.dpdp-back { margin: 0 0 18px; font-size: 14px; }
.dpdp-back a { text-decoration: underline; }
.dpdp-doc { max-width: 60rem; margin: 0 auto; padding: 8px 20px 40px; }
.dpdp-doc h2 { font-size: clamp(19px, 2.2vw, 24px); line-height: 1.3; margin: 32px 0 10px; }
.dpdp-doc p, .dpdp-doc li { font-size: 16px; line-height: 1.75; }
.dpdp-doc ul { margin: 0 0 16px 22px; list-style: disc !important; }
.dpdp-doc ul li { list-style: disc !important; }
.dpdp-doc li { margin: 4px 0; }
.dpdp-meta { font-size: 13px; text-transform: uppercase; letter-spacing: .1em; opacity: .7; }

.dpdp-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 99999;
  max-width: 640px; margin: 0 auto; background: #14181c; color: #fff;
  border-radius: 12px; padding: 18px 20px; box-shadow: 0 16px 44px rgba(0,0,0,.34);
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.dpdp-banner[hidden] { display: none; }
.dpdp-banner p { margin: 0; flex: 1 1 260px; font-size: 14px; line-height: 1.6; color: #fff; }
.dpdp-banner a { color: #8fd0ff; text-decoration: underline; }
.dpdp-banner__btns { display: flex; gap: 10px; flex: 0 0 auto; }
/* themes set a global button{} with their own padding, colour and box model —
   beat it, or the two buttons come out as tan pills the wrong size */
.dpdp-banner .dpdp-btn {
  appearance: none !important; -webkit-appearance: none !important;
  box-sizing: border-box !important; border: 0 !important; border-radius: 8px !important;
  padding: 11px 20px !important; margin: 0 !important; min-width: 0 !important;
  width: auto !important; height: auto !important; line-height: 1.2 !important;
  font-size: 14px !important; font-weight: 700 !important; letter-spacing: 0 !important;
  text-transform: none !important; cursor: pointer;
  background: #fff !important; color: #14181c !important; box-shadow: none !important; }
.dpdp-banner .dpdp-btn:hover { background: #e9edf2 !important; color: #14181c !important; }
.dpdp-banner .dpdp-btn--ghost,
.dpdp-banner .dpdp-btn--ghost:hover {
  background: transparent !important; color: #fff !important;
  border: 1px solid rgba(255,255,255,.5) !important; }
.dpdp-consent { -webkit-tap-highlight-color: transparent; }
@media (max-width: 767px) {
  .dpdp-consent { margin: 6px 0 14px !important; }
  .dpdp-consent label { font-size: 13.5px; line-height: 1.5; }
}
@media (max-width: 560px) {
  .dpdp-banner { left: 10px; right: 10px; bottom: 10px; padding: 16px; }
  .dpdp-banner__btns { width: 100%; }
  .dpdp-banner .dpdp-btn { flex: 1 1 0; }
}
