/* WINTEEZ — Tokens, fonts, loader, Lenis, container reset, typography, buttons, focus */

:root{
  --wz-ink:#0E0D0C;
  --wz-coal:#1B1A18;
  --wz-bone:#F3F0EA;
  --wz-paper:#FAF8F4;
  --wz-sand:#D8CEBF;
  --wz-stone:#8D867B;
  --wz-line:rgba(14,13,12,.12);
  --wz-line-d:rgba(243,240,234,.16);
  --wz-serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --wz-sans:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wz-ease:cubic-bezier(.16,1,.3,1);
  --wz-pad:clamp(20px,4vw,56px);
  --wz-hh:78px;
  --wz-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 12'%3E%3Cpath d='M0 6h22M17 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E");
}
@media (max-width:767px){:root{--wz-hh:64px}}

body[class]{background:var(--wz-bone);color:var(--wz-ink);font-family:var(--wz-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body [class*="wz-"] a{text-decoration:none}
body[class] ::selection{background:var(--wz-ink);color:var(--wz-bone)}

/* ---------- Loader / preload ---------- */
html.wz-preload body::before{content:"";position:fixed;inset:0;background:var(--wz-ink);z-index:100000;animation:wzFailsafe .01s 6s forwards}
@keyframes wzFailsafe{to{opacity:0;visibility:hidden}}
html.wz-lock,html.wz-lock body{overflow:hidden}
.wz-loader{position:fixed;inset:0;z-index:100001}
.wz-loader-bg{position:absolute;inset:0;background:var(--wz-ink)}
.wz-loader-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px}
.wz-loader-logo{width:min(72vw,760px);height:auto;display:block;overflow:visible;will-change:transform}
.wz-loader-logo path{fill:var(--wz-bone);stroke:var(--wz-bone);stroke-width:1.2;vector-effect:non-scaling-stroke}
.wz-loader-bar{width:min(72vw,760px);height:1px;background:rgba(243,240,234,.14);overflow:hidden}
.wz-loader-bar span{display:block;height:100%;background:var(--wz-bone);transform:scaleX(0);transform-origin:left}

/* Hero content stays hidden until the intro plays; failsafe shows it anyway */
html.wz-js .wz-hero-content{visibility:hidden;animation:wzShow 0s 3.8s forwards}
@keyframes wzShow{to{visibility:visible}}
body.elementor-editor-active .wz-hero-content{visibility:visible!important}

/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* ---------- Container reset for wz-* containers ---------- */
body .e-con[class*="wz-"]{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--widgets-spacing:0px;--kit-widget-spacing:0px;--min-height:0px}
body .e-con[class*="wz-"] > .elementor-widget{margin-block-end:0}

/* ---------- Type system ---------- */
body .wz-eyebrow,body .wz-eyebrow p{font:500 11px/1.4 var(--wz-sans);letter-spacing:.3em;text-transform:uppercase;margin:0}
body .wz-eyebrow p{display:inline-flex;align-items:center;gap:18px}
body .wz-eyebrow p::after{content:"";width:46px;height:1px;background:currentColor;opacity:.55}
body .wz-h2 .elementor-heading-title{font-family:var(--wz-serif);font-weight:500;font-size:clamp(40px,4.6vw,72px);line-height:.94;letter-spacing:.005em;text-transform:uppercase;color:inherit;margin:0}
body .wz-h3 .elementor-heading-title{font-family:var(--wz-serif);font-weight:500;font-size:clamp(26px,2.2vw,36px);line-height:1;letter-spacing:.06em;text-transform:uppercase;color:inherit;margin:0}
body .wz-body,body .wz-body p{font:400 15px/1.65 var(--wz-sans);color:inherit;opacity:.82;margin:0;max-width:44ch}

/* Split-text wrappers (made by JS) */
.wz-line{display:block}
.wz-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.wz-wi{display:inline-block;will-change:transform}

/* ---------- Buttons ---------- */
body .wz-btn .elementor-button{display:inline-flex;align-items:center;gap:14px;background:var(--wz-bone);color:var(--wz-ink);border:1px solid var(--wz-bone);border-radius:0;padding:17px 26px;font:600 11.5px/1 var(--wz-sans);letter-spacing:.18em;text-transform:uppercase;transition:background-color .5s var(--wz-ease),color .5s var(--wz-ease),border-color .5s var(--wz-ease)}
body .wz-btn .elementor-button-text{display:inline-flex;align-items:center;gap:16px}
body .wz-btn .elementor-button-text::after,
body .wz-link .elementor-button-text::after,
body .wz-cat-link .elementor-heading-title::after{content:"";width:22px;height:11px;background:currentColor;-webkit-mask:var(--wz-arrow) center/contain no-repeat;mask:var(--wz-arrow) center/contain no-repeat;transition:transform .6s var(--wz-ease)}
body .wz-btn .elementor-button:hover{background:transparent;color:var(--wz-bone)}
body .wz-btn .elementor-button:hover .elementor-button-text::after,
body .wz-link .elementor-button:hover .elementor-button-text::after{transform:translateX(6px)}
body .wz-btn--ghost .elementor-button{background:transparent;color:var(--wz-bone);border-color:rgba(243,240,234,.55)}
body .wz-btn--ghost .elementor-button:hover{background:var(--wz-bone);color:var(--wz-ink);border-color:var(--wz-bone)}
body .wz-link .elementor-button{background:none;border:0;border-radius:0;padding:0 0 8px;color:inherit;font:600 11.5px/1 var(--wz-sans);letter-spacing:.18em;text-transform:uppercase;position:relative}
body .wz-link .elementor-button-text{display:inline-flex;align-items:center;gap:12px}
body .wz-link .elementor-button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:right;transition:transform .7s var(--wz-ease)}
body .wz-link .elementor-button:hover::after{transform:scaleX(0)}

/* ---------- Focus & motion preferences ---------- */
body [class*="wz-"] a:focus-visible,body [class*="wz-"] button:focus-visible,body [class*="wz-"] input:focus-visible{outline:2px solid var(--wz-sand);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  body [class*="wz-"] *,body [class*="wz-"]{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
