/* zl-header.css - generated 20260815-142435 from template 2231 */


:root{--ink:#0a0a0a;--paper:#ffffff;--warm:#f2f1ee;--accent:#0095cd;--muted:#6e6e73;--line:#e6e5e1;
 --pad:clamp(22px,4.2vw,60px);--maxw:1400px;
 --g-bg:rgba(255,255,255,.55);--g-bd:rgba(255,255,255,.75);--g-sh:0 10px 34px rgba(0,0,0,.10);--g-hi:rgba(255,255,255,.9);}
body.is-dark{--g-bg:rgba(255,255,255,.07);--g-bd:rgba(255,255,255,.14);--g-sh:0 12px 40px rgba(0,0,0,.55);--g-hi:rgba(255,255,255,.28);}
body{background:var(--paper);}
#z-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--paper);}
#z-noise{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
body.is-dark #z-noise{mix-blend-mode:screen;opacity:.045;}
#z-blob{position:fixed;z-index:0;pointer-events:none;width:52vw;height:52vw;border-radius:50%;
 filter:blur(90px);opacity:.2;background:radial-gradient(circle at 35% 35%,var(--accent),transparent 62%);will-change:transform;}
.elementor-element{position:relative;z-index:2;}
.glass{position:relative;background:var(--g-bg);
 -webkit-backdrop-filter:blur(22px) saturate(185%);backdrop-filter:blur(22px) saturate(185%);
 border:1px solid var(--g-bd);box-shadow:var(--g-sh),inset 0 1px 0 var(--g-hi);border-radius:22px;overflow:hidden;
 transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);}
.glass::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
 background:linear-gradient(160deg,rgba(255,255,255,.30) 0%,rgba(255,255,255,0) 42%);}

/* ================= INTRO : dot -> i, line out of dot, then fly to header ================= */
#z-intro{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;}
#z-intro .veil{position:absolute;inset:0;background:#fff;transition:opacity .85s ease;}
#z-intro .wrap{position:relative;width:min(46vw,520px);transform-origin:0 0;will-change:transform;}
#z-intro svg{width:100%;height:auto;display:block;overflow:visible;}
#z-intro.flying .veil{opacity:0;}
#z-intro.gone{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s;}
/* letters first */
#z-intro .zl-ltr{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(16px);}
@keyframes zl-in{to{opacity:1;clip-path:inset(0 0 0 0);transform:none;}}
#z-intro.play .zl-ltr{animation:zl-in .46s cubic-bezier(.2,.7,.2,1) both;}
#z-intro.play .zl-ltr:nth-of-type(3){animation-delay:.10s}
#z-intro.play .zl-ltr:nth-of-type(4){animation-delay:.17s}
#z-intro.play .zl-ltr:nth-of-type(5){animation-delay:.24s}
#z-intro.play .zl-ltr:nth-of-type(6){animation-delay:.31s}
#z-intro.play .zl-ltr:nth-of-type(7){animation-delay:.38s}
#z-intro.play .zl-ltr:nth-of-type(8){animation-delay:.45s}
#z-intro.play .zl-ltr:nth-of-type(9){animation-delay:.52s}
/* dot JUMPS up onto the i */
#z-intro .zl-dot{transform-box:fill-box;transform-origin:center;opacity:0;transform:translateY(150px) scale(.5);}
@keyframes zl-jump{
 0%{opacity:0;transform:translateY(150px) scale(.5);}
 45%{opacity:1;transform:translateY(-26px) scale(1.18);}
 70%{transform:translateY(6px) scale(.94);}
 88%{transform:translateY(-3px) scale(1.03);}
 100%{opacity:1;transform:translateY(0) scale(1);}
}
#z-intro.play .zl-dot{animation:zl-jump .95s cubic-bezier(.3,.7,.3,1) .72s both;}
/* the line grows OUT OF the dot : right -> left */
#z-intro .zl-arc{clip-path:inset(0 0 0 100%);}
@keyframes zl-arc{to{clip-path:inset(0 0 0 0);}}
#z-intro.play .zl-arc{animation:zl-arc 1.0s cubic-bezier(.25,.75,.25,1) 1.5s both;}
#z-intro .bar{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--accent);transition:width 2.6s cubic-bezier(.3,.8,.3,1);z-index:2;}
#z-intro.play .bar{width:100%;}
/* scroll-to-explore cursor hint */
#z-hint{position:fixed;z-index:1200;pointer-events:none;left:0;top:0;
 font:500 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.2px;text-transform:uppercase;
 color:var(--ink);background:var(--g-bg);border:1px solid var(--g-bd);
 -webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);
 padding:11px 16px;border-radius:30px;box-shadow:var(--g-sh);
 opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .45s ease,transform .45s cubic-bezier(.2,.7,.2,1);}
#z-hint.on{opacity:1;transform:translate(-50%,-50%) scale(1);}
body.is-dark #z-hint{color:#fff;}

/* ================= HEADER ================= */
#z-head{position:fixed;top:22px;inset-inline-start:var(--pad);z-index:1000;opacity:0;transition:opacity .5s ease;}
#z-head.ready{opacity:1;}
#z-head .z-brand{display:inline-flex;align-items:center;height:52px;padding:0 22px;border-radius:26px;text-decoration:none;}
#z-head .z-brand svg{height:24px;width:auto;display:block;overflow:visible;}
#z-head .z-brand svg path{fill:var(--ink);transition:fill .5s ease;}
#z-head .z-brand svg path.zl-arc,#z-head .z-brand svg path.zl-dot{fill:var(--accent);}
body.is-dark #z-head .z-brand svg path{fill:#fff;}
body.is-dark #z-head .z-brand svg path.zl-arc,body.is-dark #z-head .z-brand svg path.zl-dot{fill:var(--accent);}
#z-head .z-brand:hover{transform:translateY(-2px);}
#z-menubtn{position:fixed;top:22px;inset-inline-end:var(--pad);z-index:1000;height:52px;padding:0 24px;
 display:inline-flex;align-items:center;gap:11px;border:1px solid var(--g-bd);border-radius:26px;cursor:pointer;
 background:var(--g-bg);-webkit-backdrop-filter:blur(22px) saturate(185%);backdrop-filter:blur(22px) saturate(185%);
 box-shadow:var(--g-sh),inset 0 1px 0 var(--g-hi);opacity:0;
 font-family:inherit;font-weight:700;font-size:15.5px;letter-spacing:-.3px;line-height:1;color:var(--ink);
 transition:all .5s cubic-bezier(.2,.7,.2,1);-webkit-appearance:none;appearance:none;}
#z-menubtn.ready{opacity:1;}
body.is-dark #z-menubtn{color:#fff;}
#z-menubtn:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 14px 40px rgba(0,149,205,.30),inset 0 1px 0 var(--g-hi);}
#z-menubtn .bars{display:inline-flex;flex-direction:column;gap:4px;}
#z-menubtn .bars i{width:17px;height:1.8px;background:currentColor;border-radius:2px;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .3s;}
#z-menubtn.open .bars i:nth-child(1){transform:translateY(5.8px) rotate(45deg);}
#z-menubtn.open .bars i:nth-child(2){opacity:0;}
#z-menubtn.open .bars i:nth-child(3){transform:translateY(-5.8px) rotate(-45deg);}
.admin-bar #z-head,.admin-bar #z-menubtn{top:54px;}

/* ================= MENU : solid black, aligned to content ================= */
#z-overlay{position:fixed;inset:0;z-index:999;background:#000;clip-path:inset(0 0 100% 0);visibility:hidden;
 transition:clip-path .85s cubic-bezier(.76,0,.24,1),visibility .85s;overflow-y:auto;}
#z-overlay.open{clip-path:inset(0 0 0 0);visibility:visible;}
#z-overlay .z-in{max-width:var(--maxw);margin:0 auto;padding:120px var(--pad) 40px;
 min-height:100%;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box;}
#z-overlay .z-nav a{color:#fff;text-decoration:none;display:block;padding:2px 0;
 font-size:clamp(30px,5.4vw,74px);font-weight:500;letter-spacing:-2.4px;line-height:1.16;
 opacity:0;transform:translateY(24px);
 transition:opacity .55s ease,transform .65s cubic-bezier(.2,.7,.2,1),color .3s;}
#z-overlay.open .z-nav a{opacity:1;transform:none;}
#z-overlay.open .z-nav a:nth-child(1){transition-delay:.2s}#z-overlay.open .z-nav a:nth-child(2){transition-delay:.27s}
#z-overlay.open .z-nav a:nth-child(3){transition-delay:.34s}#z-overlay.open .z-nav a:nth-child(4){transition-delay:.41s}
#z-overlay.open .z-nav a:nth-child(5){transition-delay:.48s}
#z-overlay .z-nav a:hover{color:var(--accent);}
#z-foot-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
 margin-top:56px;padding-top:34px;border-top:1px solid rgba(255,255,255,.12);
 opacity:0;transition:opacity .5s ease .55s;}
#z-overlay.open #z-foot-row{opacity:1;}
#z-talk{display:inline-flex;align-items:center;gap:10px;height:58px;padding:0 32px;border-radius:29px;
 background:var(--accent);color:#fff;text-decoration:none;font-weight:700;font-size:17px;letter-spacing:-.3px;
 box-shadow:0 10px 34px rgba(0,149,205,.42),inset 0 1px 0 rgba(255,255,255,.4);
 transition:all .45s cubic-bezier(.2,.7,.2,1);}
#z-talk:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 18px 48px rgba(0,149,205,.6);}
#z-lang{display:flex;gap:8px;}
#z-lang a{font:500 12px/1 ui-monospace,Menlo,monospace;letter-spacing:.5px;padding:11px 17px;border-radius:30px;
 border:1px solid rgba(255,255,255,.2);color:#fff;text-decoration:none;transition:all .4s;}
#z-lang a.on{background:#fff;color:#000;}
#z-lang a:hover{border-color:var(--accent);}
@media(max-width:767px){
 #z-head{top:12px;} #z-menubtn{top:12px;height:46px;padding:0 18px;font-size:14px;}
 #z-head .z-brand{height:46px;padding:0 16px;} #z-head .z-brand svg{height:20px;}
 .admin-bar #z-head,.admin-bar #z-menubtn{top:58px;}
 #z-overlay .z-in{padding:96px var(--pad) 34px;}
 #z-foot-row{flex-direction:column;align-items:flex-start;margin-top:38px;}
 #z-intro .wrap{width:70vw;} #z-hint{display:none;}
}
/* reveals / type / buttons */
.c-rev{opacity:0;filter:blur(13px);transform:translateY(28px);
 transition:opacity 1s cubic-bezier(.2,.7,.2,1),filter 1.05s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);}
.c-rev.in{opacity:1;filter:blur(0);transform:none;}
.z-word{display:inline-block;opacity:.12;filter:blur(6px);transition:opacity .5s ease,filter .5s ease;}
.z-word.lit{opacity:1;filter:blur(0);}
.c-h .elementor-heading-title{font-weight:500!important;}
.c-mono .elementor-heading-title{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;text-transform:uppercase;}
.z-dark .c-line{border-color:#232327!important;}
.c-btn .elementor-button{border-radius:30px!important;position:relative;overflow:hidden;
 transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,background-color .45s ease,color .45s ease!important;}
.c-btn-fill .elementor-button{box-shadow:0 8px 26px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.28);}
.c-btn-fill .elementor-button:hover{background:var(--accent)!important;color:#fff!important;transform:translateY(-4px) scale(1.03);
 box-shadow:0 20px 50px rgba(0,149,205,.55),inset 0 1px 0 rgba(255,255,255,.45);}
.c-btn-out .elementor-button{background:var(--g-bg)!important;
 -webkit-backdrop-filter:blur(18px) saturate(180%);backdrop-filter:blur(18px) saturate(180%);
 border-color:var(--g-bd)!important;box-shadow:inset 0 1px 0 var(--g-hi);}
.c-btn-out .elementor-button:hover{border-color:var(--accent)!important;color:var(--accent)!important;transform:translateY(-4px) scale(1.03);
 box-shadow:0 18px 44px rgba(0,149,205,.32),inset 0 1px 0 var(--g-hi);}
.z-dark .c-btn-out .elementor-button{color:#fff!important;}
.z-dark .c-btn-fill .elementor-button{background:#fff!important;color:#0a0a0a!important;}
@media(prefers-reduced-motion:reduce){
 .c-rev,.z-word{opacity:1!important;filter:none!important;transform:none!important;}
 #z-intro{display:none!important;} #z-head,#z-menubtn{opacity:1!important;}
}

/* ===== HEADER BAR : aligned to the same 1400 content grid ===== */
#z-bar{position:fixed;top:22px;left:0;right:0;z-index:1000;padding:0 60px;box-sizing:border-box;pointer-events:none;}
#z-bar .z-barin{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;}
#z-bar>*{pointer-events:auto;}
/* logo : NO pill, just the mark, larger */
#z-head{position:static;opacity:0;transition:opacity .5s ease;}
#z-head.ready{opacity:1;}
#z-head .z-brand{display:inline-flex;align-items:center;padding:0;background:none;border:0;box-shadow:none;
 backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;overflow:visible;text-decoration:none;
 transition:transform .5s cubic-bezier(.2,.7,.2,1);}
#z-head .z-brand::after{display:none;}
#z-head .z-brand svg{height:38px;width:auto;display:block;overflow:visible;}
#z-head .z-brand:hover{transform:translateY(-2px) scale(1.03);}
/* menu bar : SOLID BLACK */
#z-menubtn{position:static;height:52px;padding:0 26px;border:0;border-radius:26px;background:var(--ink);
 backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 10px 30px rgba(0,0,0,.28);color:#fff;}
body.is-dark #z-menubtn{background:#fff;color:var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.5);}
#z-menubtn:hover{transform:translateY(-2px);background:var(--accent);color:#fff;
 box-shadow:0 16px 42px rgba(0,149,205,.45);}
body.is-dark #z-menubtn:hover{background:var(--accent);color:#fff;}
.admin-bar #z-bar{top:54px;}
/* ===== MENU OVERLAY : LIQUID GLASS ===== */
#z-overlay{background:rgba(8,8,10,.55);
 -webkit-backdrop-filter:blur(40px) saturate(190%);backdrop-filter:blur(40px) saturate(190%);}
/* hint must never sit over the bar or an open menu */
#z-hint.hide{opacity:0!important;transform:translate(-50%,-50%) scale(.85)!important;}
@media(max-width:767px){
 #z-bar{top:12px;padding:0 22px;} .admin-bar #z-bar{top:58px;}
 #z-head .z-brand svg{height:30px;}
 #z-menubtn{height:46px;padding:0 20px;font-size:14px;}
}


/* ---- logo swaps to a circular Z icon on scroll ---- */
#z-head .z-brand{position:relative;}
#z-full,#z-icon{display:block;transition:opacity .45s ease,transform .55s cubic-bezier(.2,.7,.2,1);}
#z-full{opacity:1;transform:scale(1);}
#z-icon{position:absolute;inset-inline-start:0;top:50%;opacity:0;transform:translateY(-50%) scale(.7);pointer-events:none;}
body.z-mini #z-full{opacity:0;transform:scale(.72);pointer-events:none;}
body.z-mini #z-icon{opacity:1;transform:translateY(-50%) scale(1);pointer-events:auto;}
/* ---- menu links: hover must be instant, entrance stagger must not delay colour ---- */
#z-overlay .z-nav a{--d:0s;
 transition:opacity .55s ease var(--d),transform .65s cubic-bezier(.2,.7,.2,1) var(--d),color .22s ease 0s!important;}
#z-overlay.open .z-nav a:nth-child(1){--d:.20s}
#z-overlay.open .z-nav a:nth-child(2){--d:.27s}
#z-overlay.open .z-nav a:nth-child(3){--d:.34s}
#z-overlay.open .z-nav a:nth-child(4){--d:.41s}
#z-overlay.open .z-nav a:nth-child(5){--d:.48s}



/* ---------- intro morph: wordmark -> circular mark ---------- */
#z-intro .zi-rest{transition:opacity .55s ease,transform .8s cubic-bezier(.6,0,.2,1);transform-origin:center;}
#z-intro .zi-z,#z-intro .zi-mark{transition:transform 1.05s cubic-bezier(.6,0,.2,1);}
#z-intro .zi-ring{opacity:0;transform:scale(.55);transform-origin:532px 196px;
 transition:opacity .6s ease,transform .95s cubic-bezier(.34,1.3,.5,1);}
#z-intro.morph .zi-rest{opacity:0;transform:scale(.86);}
#z-intro.morph .zi-ring{opacity:1;transform:scale(1);}
#z-intro.morph .zi-z{transform:translate(406.4px,4.4px) scale(.8);}
#z-intro.morph .zi-mark{transform:translate(428.6px,87.4px) scale(.268);}
#z-intro.morph .zi-z path{fill:#fff;transition:fill .6s ease;}
#z-intro.morph .zi-mark .zl-arc{fill:var(--accent);}
/* ---------- header icon (built from the real paths) ---------- */
#z-icon svg{height:52px;width:52px;display:block;}
.z-ic-bg{fill:var(--ink);transition:fill .5s ease;}
.z-ic-z{fill:#fff;transition:fill .5s ease;}
.z-ic-arc{fill:var(--accent);}
body.is-dark .z-ic-bg{fill:#fff;}
body.is-dark .z-ic-z{fill:var(--ink);}
@media(max-width:767px){#z-icon svg{height:42px;width:42px;}}


/* icon colours must beat "#z-head .z-brand svg path" */
#z-head .z-brand #z-icon svg .z-ic-bg{fill:var(--ink)!important;}
#z-head .z-brand #z-icon svg .z-ic-arc,#z-head .z-brand #z-icon svg .z-ic-arc path{fill:var(--accent)!important;}
#z-head .z-brand #z-icon svg .z-ic-z{fill:#fff!important;}
body.is-dark #z-head .z-brand #z-icon svg .z-ic-bg{fill:#fff!important;}
body.is-dark #z-head .z-brand #z-icon svg .z-ic-z{fill:var(--ink)!important;}


/* ===== header logo : ONE svg that morphs in place ===== */
#z-head .z-brand{position:relative;display:inline-flex;align-items:center;}
#z-head .z-brand svg{height:64px;width:auto;display:block;overflow:visible;}
#z-icon{display:none!important;}
#z-full{display:block;}
/* pieces */
#zh-ring{opacity:0;transform:scale(.4);transform-origin:269px 196px;
 transition:opacity .5s ease,transform .85s cubic-bezier(.34,1.25,.5,1);}
#zh-mark,#zh-z{transition:transform .85s cubic-bezier(.5,0,.15,1);}
#zh-rest{transform-origin:600px 260px;
 transition:opacity .45s ease,transform .7s cubic-bezier(.5,0,.15,1);}
#zh-ring{fill:var(--ink);}
#zh-mark path{fill:var(--accent)!important;}
#zh-z path,#zh-rest path{fill:var(--ink)!important;transition:fill .5s ease;}
body.is-dark #zh-ring{fill:#fff;}
body.is-dark #zh-z path,body.is-dark #zh-rest path{fill:#fff!important;}
/* ---- collapsed state ---- */
body.z-mini #zh-ring{opacity:1;transform:scale(1);}
body.z-mini #zh-rest{opacity:0;transform:scale(.55);}
body.z-mini #zh-z{transform:translate(124.6px,-26px) scale(.92);}
body.z-mini #zh-mark{transform:translate(131.2px,68.6px) scale(.357);}
body.z-mini #zh-z path{fill:#fff!important;}
body.is-dark.z-mini #zh-z path{fill:var(--ink)!important;}
@media(max-width:767px){#z-head .z-brand svg{height:48px;}}


/* the wordmark wrapper must stay visible - the morph happens inside the svg */
body.z-mini #z-full{opacity:1!important;transform:none!important;pointer-events:auto!important;}
#z-full{opacity:1!important;transform:none!important;}

/* ---- mobile polish ---- */
@media(max-width:767px){
 .c-h .elementor-heading-title{word-break:normal;overflow-wrap:anywhere;}
 .c-t p{overflow-wrap:anywhere;}
 .e-con.e-parent{padding-left:22px!important;padding-right:22px!important;}
 .zc-item{width:132px!important;height:78px!important;}
 #z-overlay .z-nav a{letter-spacing:-1.4px;}
}
@media(max-width:520px){
 .c-h .elementor-heading-title{letter-spacing:-1.4px!important;}
}



header.elementor-location-header + *:not(#z-canvas):not(#z-blob):not(#z-noise):not(#z-hint):not(#z-bar):not(#z-overlay):not(#z-cur){margin-top:110px;}
body.page-template-elementor_header_footer:not(.elementor-page) > h1:first-of-type{margin-top:110px;}

body:not(.home) #z-hint{display:none!important;}

body:not(.is-dark) .c-btn-out .elementor-button{background:rgba(10,10,10,.045)!important;border-color:rgba(10,10,10,.30)!important;color:#0a0a0a!important;box-shadow:none!important;}
body:not(.is-dark) .c-btn-out .elementor-button:hover{background:rgba(10,10,10,.075)!important;border-color:var(--accent)!important;color:var(--accent)!important;}



@media (hover:hover) and (pointer:fine){
 html,body,a,button,.elementor-button{cursor:none!important;}
 #z-cur{position:fixed;left:0;top:0;z-index:2000;pointer-events:none;}
 #z-cur .zc-dot,#z-cur .zc-ring{position:absolute;left:0;top:0;border-radius:50%;
  transform:translate(-50%,-50%);will-change:transform;}
 #z-cur .zc-dot{width:8px;height:8px;background:#0a0a0a;
  transition:width .3s ease,height .3s ease,background-color .3s ease,opacity .3s ease;}
 #z-cur .zc-ring{width:34px;height:34px;border:1.5px solid rgba(10,10,10,.32);
  transition:width .45s cubic-bezier(.2,.7,.2,1),height .45s cubic-bezier(.2,.7,.2,1),
   border-color .35s ease,background-color .45s ease,opacity .35s ease;}
 body.is-dark #z-cur .zc-dot{background:#fff;}
 body.is-dark #z-cur .zc-ring{border-color:rgba(255,255,255,.34);}
 /* over a link/button */
 body.z-hot #z-cur .zc-dot{width:0;height:0;opacity:0;}
 body.z-hot #z-cur .zc-ring{width:64px;height:64px;border-color:#0095cd;
  background:rgba(0,149,205,.14);}
 /* while pressing */
 body.z-press #z-cur .zc-ring{width:26px;height:26px;}
}
@media(prefers-reduced-motion:reduce){#z-cur{display:none;} html,body,a,button{cursor:auto!important;}}

