/* Zemash site search: header button, full width overlay, /search/ results page. Loads after zm-additions.css. Added in patch 2.
   Only new classes (.zm-sx*, .zm-sxb, .zm-sp*, .zm-sc*). !important is used in marked places to beat rules in zm.css that are !important. */

/* ---------- header button (printed inside the main nav) ---------- */
.zm-hd .zm-sxb{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;align-self:center;width:44px;height:44px;margin:0 0 0 4px;padding:0;border:0;border-radius:8px;background:none;box-shadow:none;color:var(--zm-navy-900);cursor:pointer;text-decoration:none;visibility:hidden;transition:background .15s,color .15s}
.zm-js .zm-hd .zm-sxb,.zm-hd .zm-sxb--nojs{visibility:visible}
.zm-hd .zm-sxb:hover,.zm-hd .zm-sxb:focus{background:var(--zm-teal-50);color:var(--zm-teal-700)}
@media(max-width:1100px){
  .zm-mn{display:flex;align-items:center;gap:8px}
  .zm-hd .zm-sxb{order:1;margin:0;border:1px solid var(--zm-line)}
  .zm-mn .zm-mn__tg{order:2}
}
@media(max-width:420px){.zm-hd .zm-sxb{width:44px}.zm-mn{gap:6px}}

/* ---------- overlay ---------- */
.zm-sx{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:rgba(7,18,33,.62);color:#fff;overflow:hidden;z-index:100001}
.zm-sx:not([open]){display:none}
.zm-sx::backdrop{background:transparent}
html.zm-sxopen{overflow:hidden}
.zm-sx__in{position:relative;width:100%;max-height:min(90vh,860px);overflow:auto;overscroll-behavior:contain;background:var(--zm-navy-900);padding:20px 24px 28px;box-shadow:0 24px 60px -20px rgba(0,0,0,.6);border-bottom:1px solid rgba(255,255,255,.14)}
.zm-sx__in::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 120% at 90% 0%,rgba(14,124,134,.38),transparent 65%);pointer-events:none}
.zm-sx__in>*{position:relative;max-width:860px;margin-inline:auto}
.zm-sx__top{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px}
.zm-sx__t{margin:0;font:600 15px/1.2 var(--zm-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--zm-teal-400)}
.zm-sx .zm-sx__x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;border:1px solid rgba(255,255,255,.4);border-radius:8px;background:none;box-shadow:none;color:#fff;cursor:pointer}
.zm-sx .zm-sx__x:hover,.zm-sx .zm-sx__x:focus{background:#fff;color:var(--zm-navy-900)}
.zm-sx__form{display:flex;align-items:center;gap:12px;margin-top:12px;padding:8px 8px 8px 20px;border:1px solid rgba(255,255,255,.6);border-radius:16px;background:rgba(255,255,255,.08);transition:border-color .15s,box-shadow .15s}
.zm-sx__form:focus-within{border-color:var(--zm-teal-400);box-shadow:0 0 0 3px rgba(61,186,196,.35)}
.zm-sx__fi{display:inline-flex;color:var(--zm-teal-400);flex:0 0 auto}
.zm-sx .zm-sx__q{flex:1 1 auto;min-width:0;height:56px;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#fff;font:500 clamp(18px,2.4vw,24px)/1.2 var(--zm-font-head);outline:0}
.zm-sx .zm-sx__q:focus-visible{outline:0!important;box-shadow:none} /* the box around it carries the focus ring; base is !important */
.zm-sx .zm-sx__q::placeholder{color:#BFD3E4;opacity:1}
.zm-sx .zm-sx__q::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.zm-sx .zm-sx__go{flex:0 0 auto;min-height:48px;margin:0;padding:0 24px;border:1px solid var(--zm-teal-600);border-radius:10px;background:var(--zm-teal-600);box-shadow:none;color:#fff;font:600 16px/1.2 var(--zm-font-body);cursor:pointer}
.zm-sx .zm-sx__go:hover,.zm-sx .zm-sx__go:focus{background:var(--zm-teal-700);border-color:var(--zm-teal-700);color:#fff}
.zm-sx a:focus-visible,.zm-sx button:focus-visible{outline-color:var(--zm-teal-400)!important} /* base is !important: a:focus-visible,button:focus-visible{outline:3px solid teal-600!important} */
.zm-sx__st{margin:12px auto 0;min-height:24px;font-size:16px;line-height:1.5;color:#BFD3E4}
.zm-sx__res{margin-top:4px}
.zm-sx__sh{margin:12px 0 10px;font:600 13px/1.2 var(--zm-font-body);letter-spacing:.08em;text-transform:uppercase;color:#9DB6CC}
.zm-sx__chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.zm-sx__chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid rgba(255,255,255,.4);border-radius:999px;color:#fff;font:600 16px/1 var(--zm-font-body);text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.zm-sx__chips a:hover,.zm-sx__chips a:focus{background:#fff;border-color:#fff;color:var(--zm-navy-900)}
.zm-sx__g{margin:0 0 6px}
.zm-sx__gh{display:flex;align-items:center;justify-content:space-between;margin:14px 0 6px;padding:0;font:600 13px/1.2 var(--zm-font-body);letter-spacing:.08em;text-transform:uppercase;color:#9DB6CC}
.zm-sx__gh a{color:var(--zm-teal-400);text-decoration:underline;text-underline-offset:3px;letter-spacing:0;text-transform:none;font-size:15px}
.zm-sx__l{list-style:none;margin:0;padding:0}
.zm-sx__r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;align-items:baseline;padding:12px 14px;border-radius:12px;color:#fff;text-decoration:none;transition:background .12s}
.zm-sx__r:hover,.zm-sx__r:focus{background:rgba(255,255,255,.1);color:#fff}
.zm-sx__rt{font:700 18px/1.3 var(--zm-font-head);color:#fff;letter-spacing:-.005em}
.zm-sx__rb{justify-self:end;font:600 13px/1.2 var(--zm-font-body);letter-spacing:.04em;color:var(--zm-teal-400)}
.zm-sx__rx{grid-column:1/-1;font-size:16px;line-height:1.5;color:#BFD3E4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.zm-sx mark,.zm-sp mark{border-radius:3px;padding:0 2px;color:inherit}
.zm-sx mark{background:rgba(61,186,196,.32);color:#fff}
.zm-sx__more{margin:10px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.14)}
.zm-sx__more a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--zm-teal-400);font:600 16px/1.2 var(--zm-font-body);text-decoration:underline;text-underline-offset:3px}
.zm-sx__none a.zm-sx__cta{display:inline-flex;align-items:center;min-height:48px;margin-top:6px;padding:0 22px;border-radius:8px;background:#fff;color:var(--zm-navy-900);font:600 16px/1 var(--zm-font-body);text-decoration:none}
.zm-sx__none p{margin:0 0 8px;color:#BFD3E4;font-size:16px}
.zm-sx__hint{margin:14px auto 0;font-size:14px;color:#9DB6CC}
.zm-sx__hint kbd{display:inline-block;padding:2px 8px;border:1px solid rgba(255,255,255,.4);border-radius:6px;font:600 13px/1.4 var(--zm-font-body);color:#fff}
@media(prefers-reduced-motion:no-preference){.zm-sx[open] .zm-sx__in{animation:zm-sx-in .22s cubic-bezier(.22,.61,.36,1)}.zm-sx[open]{animation:zm-sx-fade .2s ease-out}}
@keyframes zm-sx-in{from{opacity:0;transform:translate3d(0,-14px,0)}}
@keyframes zm-sx-fade{from{opacity:0}}
@media(max-width:767px){
  .zm-sx__in{padding:12px 16px 20px;max-height:100%}
  .zm-sx__form{padding:6px 6px 6px 14px;gap:8px}
  .zm-sx .zm-sx__q{height:52px}
  .zm-sx .zm-sx__go{padding:0 16px}
  .zm-sx__hint{display:none}
  .zm-sx__r{grid-template-columns:minmax(0,1fr)}.zm-sx__rb{justify-self:start;order:-1}
}

/* ---------- /search/ page ---------- */
.e-con.zm-sec.zm-sec--search{padding:56px 24px 96px!important} /* base is !important: .e-con.zm-sec{padding:96px 24px!important} */
.zm-sp{width:100%;max-width:860px;margin:0 auto}
.zm-sp__lab{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.zm-sp__field{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 22px;border:1px solid var(--zm-slate-600);border-radius:18px;background:#fff;box-shadow:var(--zm-shadow);transition:border-color .15s,box-shadow .15s}
.zm-sp__field:focus-within{border-color:var(--zm-teal-600);box-shadow:var(--zm-focus),var(--zm-shadow)}
.zm-sp__fi{display:inline-flex;color:var(--zm-teal-600);flex:0 0 auto}
.zm-sp .zm-sp__q{flex:1 1 auto;min-width:0;height:64px;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--zm-navy-900);font:500 clamp(18px,2.6vw,26px)/1.2 var(--zm-font-head);outline:0}
.zm-sp .zm-sp__q:focus-visible{outline:0!important;box-shadow:none}
.zm-sp .zm-sp__q::placeholder{color:var(--zm-slate-600);opacity:1}
.zm-sp .zm-sp__go{flex:0 0 auto;min-height:52px;margin:0;padding:0 30px;border:1px solid var(--zm-teal-600);border-radius:12px;background:var(--zm-teal-600);box-shadow:none;color:#fff;font:600 17px/1.2 var(--zm-font-body);cursor:pointer}
.zm-sp .zm-sp__go:hover,.zm-sp .zm-sp__go:focus{background:var(--zm-teal-700);border-color:var(--zm-teal-700);color:#fff}
.zm-sp__bar{display:flex;flex-direction:column;gap:14px;margin:36px 0 20px}
.zm-sp__sum{margin:0;font:700 22px/1.3 var(--zm-font-head);color:var(--zm-navy-900)}
.zm-sp__flt{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.zm-sp__flt a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid var(--zm-slate-600);border-radius:999px;background:#fff;color:var(--zm-navy-900);font:600 16px/1 var(--zm-font-body);text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.zm-sp__flt a span{font-weight:500;color:var(--zm-slate-600)}
.zm-sp__flt a:hover{border-color:var(--zm-navy-900)}
.zm-sp__flt a[aria-current=true]{background:var(--zm-navy-900);border-color:var(--zm-navy-900);color:#fff}
.zm-sp__flt a[aria-current=true] span{color:#BFD3E4}
.zm-sp__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.zm-sc__a{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:24px 28px;border:1px solid var(--zm-line);border-radius:14px;background:#fff;box-shadow:var(--zm-shadow);text-decoration:none;transition:border-color .2s,transform .2s}
.zm-sc__a:hover{border-color:#9FD3D8;transform:translateY(-1px)}
.zm-sc__b{display:inline-flex;align-items:center;min-height:26px;padding:0 12px;border-radius:999px;font:600 13px/1 var(--zm-font-body);letter-spacing:.06em;text-transform:uppercase;background:var(--zm-teal-50);color:var(--zm-teal-700)}
.zm-sc__b--guides{background:#E8EEF5;color:var(--zm-navy-700)}
.zm-sc__b--cases{background:var(--zm-navy-900);color:#fff}
.zm-sc__b--company{background:var(--zm-mist);color:var(--zm-slate-600);box-shadow:inset 0 0 0 1px var(--zm-line)}
.zm-sc__t{font:700 21px/1.3 var(--zm-font-head);letter-spacing:-.01em;color:var(--zm-navy-900)}
.zm-sc__a:hover .zm-sc__t{color:var(--zm-teal-700);text-decoration:underline;text-underline-offset:3px}
.zm-sc__x{font-size:16px;line-height:1.6;color:var(--zm-slate-600)}
.zm-sc__u{font-size:15px;line-height:1.4;color:var(--zm-teal-700);word-break:break-all}
.zm-sp mark{background:rgba(14,124,134,.16)}
.zm-sp__pg{margin-top:32px}
.zm-sp__pg ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.zm-sp__pn{font-size:16px;color:var(--zm-slate-600)}
.zm-sp__pb{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid var(--zm-navy-900);border-radius:8px;background:#fff;color:var(--zm-navy-900);font:600 16px/1 var(--zm-font-body);text-decoration:none}
a.zm-sp__pb:hover{background:var(--zm-navy-900);color:#fff}
.zm-sp__pb.is-off{visibility:hidden}
.zm-sp__start,.zm-sp__none{margin-top:40px}
.zm-sp__sh{margin:28px 0 12px;font:600 13px/1.2 var(--zm-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--zm-slate-600)}
.zm-sp__chips,.zm-sp__links{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.zm-sp__chips a,.zm-sp__links a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:1px solid var(--zm-slate-600);border-radius:999px;background:#fff;color:var(--zm-navy-900);font:600 16px/1 var(--zm-font-body);text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.zm-sp__chips a:hover,.zm-sp__links a:hover{background:var(--zm-navy-900);border-color:var(--zm-navy-900);color:#fff}
.zm-sp__nh{margin:0 0 8px;font:700 26px/1.25 var(--zm-font-head);color:var(--zm-navy-900)}
.zm-sp__none>p{margin:0 0 16px;font-size:17px;line-height:1.6;color:var(--zm-slate-600)}
.zm-sp__cta{margin-top:36px;padding:32px;border:1px solid #CFE8EA;border-radius:16px;background:var(--zm-teal-50)}
.zm-sp__cta p{margin:0 0 16px;font-size:17px;line-height:1.6;color:var(--zm-navy-900)}
.zm-sp__cta .zm-sp__ctab{display:flex;flex-wrap:wrap;gap:12px;margin:0}
.zm-sp__btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1px solid var(--zm-teal-600);border-radius:8px;background:var(--zm-teal-600);color:#fff;font:600 16px/1 var(--zm-font-body);text-decoration:none}
.zm-sp__btn:hover{background:var(--zm-teal-700);border-color:var(--zm-teal-700);color:#fff}
.zm-sp__btn--s{background:#fff;color:var(--zm-navy-900);border-color:var(--zm-navy-900)}
.zm-sp__btn--s:hover{background:var(--zm-navy-900);border-color:var(--zm-navy-900);color:#fff}
.zm-sp__msg{margin:32px 0 0;font-size:17px;color:var(--zm-slate-600)}
@media(max-width:767px){
  .e-con.zm-sec.zm-sec--search{padding:32px 20px 64px!important}
  .zm-sp__field{padding:6px 6px 6px 14px;gap:8px}
  .zm-sp .zm-sp__q{height:54px}
  .zm-sp .zm-sp__go{padding:0 18px;min-height:46px}
  .zm-sc__a{padding:20px}.zm-sc__t{font-size:19px}
  .zm-sp__cta{padding:24px}
}
@media print{.zm-sx,.zm-sxb{display:none}}

/* very narrow phones: the sticky bottom bar already carries "Book a call", so the header gives its room to search and the menu button */
@media(max-width:480px){.zm-hd__btn{display:none}.zm-hd__nav{margin-left:auto}}
