/*!
 * Villa Nav 1.1.0 — mega navigation for Elementor
 * Everything is scoped to .vn-root so it cannot leak into, or be overridden by, the theme.
 * Brand tokens arrive as inline custom properties on .vn-root (from the JSON config).
 * Logo geometry arrives as --lg-* custom properties on the logo <svg> (assets/svg/logo.svg).
 */

/* ============ tokens ============ */
.vn-root{
  --vn-gold:#C6B259; --vn-gold-light:#E2C675; --vn-gold-deep:#8B7D3D; --vn-teal:#0D3D49;
  --vn-ink:#222222; --vn-ink-strong:#252525; --vn-paper:#FFFFFF; --vn-stone:#ECE8E0;
  --vn-logo-ink:#414042;
  --vn-container:1680px; --vn-blur:14px; --vn-radius:0px; --vn-z:9990; --vn-top:0px;

  --vn-bar-bg:var(--vn-paper);
  --vn-panel-bg:var(--vn-paper);
  --vn-text:var(--vn-ink);
  --vn-text-dim:#5F5A52;
  --vn-text-quiet:#6B655C;
  --vn-hairline:rgba(34,34,34,.10);
  --vn-hairline-soft:rgba(34,34,34,.08);
  --vn-rail-active:#F8F6F1;
  --vn-scrim:rgba(255,255,255,.45);
  --vn-shadow:0 28px 54px rgba(13,61,73,.14);
  --vn-shadow-bar:0 10px 24px rgba(13,61,73,.07);
  --vn-ph-bg:var(--vn-stone);
  --vn-ph-text:#6E685E;
  --vn-accent-link:var(--vn-teal);

  --vn-serif:Baskervville,"Libre Baskerville",Georgia,serif;
  --vn-sans:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
  --vn-ease:cubic-bezier(.22,.61,.36,1);
  --vn-spring:cubic-bezier(.16,1,.3,1);
  --vn-overshoot:cubic-bezier(.34,1.42,.64,1);

  font-family:var(--vn-sans);font-weight:300;font-size:16px;line-height:1.5;
  color:var(--vn-text);text-align:left;letter-spacing:normal;text-transform:none;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
.vn-root[data-theme="dark"]{
  --vn-bar-bg:#0D0D0D; --vn-panel-bg:#141414; --vn-text:#FFFFFF;
  --vn-text-dim:#A8A49C; --vn-text-quiet:#A8A49C;
  --vn-hairline:rgba(255,255,255,.14); --vn-hairline-soft:rgba(255,255,255,.10);
  --vn-rail-active:rgba(198,178,89,.12);
  --vn-scrim:rgba(8,8,8,.55);
  --vn-shadow:0 34px 60px rgba(0,0,0,.55);
  --vn-shadow-bar:0 10px 26px rgba(0,0,0,.45);
  --vn-ph-bg:#252525; --vn-ph-text:#8E8A82;
  --vn-accent-link:var(--vn-gold);
  --vn-logo-ink:#FFFFFF;
}

/* ============ resets against theme styles ============ */
.vn-root,.vn-root *,.vn-root *::before,.vn-root *::after{box-sizing:border-box}
.vn-root a,.vn-root a:hover,.vn-root a:focus,.vn-root a:active,.vn-root a:visited{
  color:inherit;text-decoration:none!important;box-shadow:none;border-bottom-width:0;background-color:transparent}
.vn-root button,.vn-root button:hover,.vn-root button:focus,.vn-root button:active{
  -webkit-appearance:none;appearance:none;background:none;border:0;border-radius:0;margin:0;padding:0;
  box-shadow:none;font:inherit;color:inherit;letter-spacing:inherit;text-transform:none;line-height:inherit;
  min-height:0;min-width:0;width:auto;height:auto;cursor:pointer;text-shadow:none;outline:none}
.vn-root h2,.vn-root p,.vn-root nav,.vn-root header{
  margin:0;padding:0;border:0;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;
  text-transform:none;color:inherit;background:none;font-family:inherit}
.vn-root svg{max-width:none;max-height:none;overflow:visible}
.vn-root b,.vn-root em{font-weight:inherit}
.vn-root :focus-visible{outline:2px solid var(--vn-gold)!important;outline-offset:3px}
.vn-spacer{display:block;height:0;margin:0;padding:0;pointer-events:none}
/* Reserve the header's resting height in CSS so nothing shifts before JS measures it. */
.vn-spacer.vn-push{--sp-bar:var(--cfg-sp-bar,120px);--sp-util:40px;height:calc(var(--sp-bar) + var(--sp-util) + 3px)}

/* ============ header shell ============ */
.vn-root .vn{
  --vn-bar-h:var(--cfg-bar-h,120px); --vn-bar-h-stuck:var(--cfg-bar-h-stuck,90px); --vn-util-h:40px;
  /* One logo size drives every state. Rest is capped so it always fits the bar. */
  --vn-logo:var(--cfg-logo,100px);
  --logo-w:min(var(--vn-logo),calc(var(--vn-bar-h) - 12px)); --logo-h:var(--logo-w);
  position:fixed;top:var(--vn-top);left:0;right:0;z-index:var(--vn-z);
  display:block;width:100%;background:var(--vn-bar-bg);
  transform:translate3d(0,var(--vn-y,0),0);
  transition:transform .46s var(--vn-overshoot),box-shadow .3s var(--vn-ease),background .3s var(--vn-ease);
  padding-top:env(safe-area-inset-top,0px);
}
.vn-root.is-static .vn{position:relative;top:auto}
.vn-root .vn.is-stuck{box-shadow:var(--vn-shadow-bar)}
.vn-root .vn.is-hidden{--vn-y:calc(-100% - 10px - var(--vn-top))}
.vn-root .vn-wrap{width:100%;max-width:var(--vn-container);margin:0 auto;padding-inline:clamp(20px,4vw,72px)}
.vn-root .vn-shell{position:relative}

/* utility strip */
.vn-root .vn-util{
  background:var(--vn-teal);color:rgba(255,255,255,.88);
  height:var(--vn-util-h);overflow:hidden;font-size:12.5px;letter-spacing:.04em;
  transition:height .5s var(--vn-spring),opacity .3s var(--vn-ease);
}
.vn-root .vn-util-in{height:var(--vn-util-h);display:flex;align-items:center;justify-content:space-between;gap:20px}
.vn-root .vn-util a{transition:color .2s var(--vn-ease)}
.vn-root .vn-util a:hover{color:var(--vn-gold)}
.vn-root .vn-util-right{display:flex;align-items:center;gap:18px}
.vn-root .vn-util-sep{width:1px;height:14px;background:rgba(198,178,89,.6)}
.vn-root .vn-util .vn-util-cta{font-family:var(--vn-serif);font-weight:700;font-size:14px;letter-spacing:.06em;color:#fff}
.vn-root .vn.is-stuck .vn-util{height:0;opacity:0}

/* bar */
.vn-root .vn-bar{
  height:var(--vn-bar-h);display:flex;align-items:center;justify-content:space-between;gap:28px;
  border-bottom:var(--vn-bar-border-w,1px) var(--vn-bar-border-s,solid) var(--vn-bar-border-c,var(--vn-hairline));
  transition:height .5s var(--vn-spring),border-color .3s var(--vn-ease);
}
.vn-root .vn.is-stuck .vn-bar{height:var(--vn-bar-h-stuck);border-bottom-color:var(--vn-bar-border-c-stuck,rgba(198,178,89,.55))}
.vn-root .vn-actions{display:flex;align-items:center;gap:10px;flex:none}

/* ============ logo ============ */
.vn-root .vn-brand{flex:none;display:flex;align-items:center;color:var(--vn-text)}
.vn-root .vn-logo{
  display:block;width:var(--logo-w)!important;height:var(--logo-h)!important;overflow:hidden;
  transition:width .6s var(--vn-spring),height .6s var(--vn-spring);
}
.vn-root .vn-logo .g0{fill:none}
.vn-root .vn-logo .g1{fill:var(--vn-gold)}
.vn-root .vn-logo .g2{fill:var(--vn-gold-light)}
.vn-root .vn-logo .ink{fill:var(--vn-logo-ink)}

.vn-root .vn-lockup,.vn-root .lineframe{transform-origin:var(--lg-cx) var(--lg-cy)}
.vn-root .vmark{transform-origin:var(--lg-cx) var(--lg-vm-cy)}
.vn-root .thevillamark{transform-origin:var(--lg-cx) var(--lg-tv-cy)}
.vn-root .nervalmark{transform-origin:var(--lg-cx) var(--lg-nv-cy)}
.vn-root .rule-l{transform-origin:var(--lg-rule-l-x) var(--lg-rule-y)}
.vn-root .rule-r{transform-origin:var(--lg-rule-r-x) var(--lg-rule-y)}

/* rest */
.vn-root .vn-lockup{transform:scale(var(--lg-rest-s));transition:transform .6s var(--vn-spring)}
.vn-root .lineframe{opacity:0;transition:opacity .45s var(--vn-ease),transform .6s var(--vn-spring)}
.vn-root .vmark,.vn-root .thevillamark,.vn-root .nervalmark{transition:opacity .4s var(--vn-ease),transform .55s var(--vn-spring)}
.vn-root[data-frame="always"] .vn-lockup{transform:none}
.vn-root[data-frame="always"] .lineframe{opacity:1}

/* scroll: V mark only */
.vn-root .vn.is-stuck[data-stuck-logo="vmark"]{--logo-w:calc(var(--vn-logo) * .84);--logo-h:calc(var(--vn-logo) * .44)}
.vn-root .vn.is-stuck[data-stuck-logo="vmark"] .vn-lockup{transform:scale(var(--lg-vm-s)) translate(var(--lg-vm-tx),var(--lg-vm-t))}
.vn-root .vn.is-stuck[data-stuck-logo="vmark"] .lineframe{opacity:0}
.vn-root .vn.is-stuck[data-stuck-logo="vmark"] .thevillamark,
.vn-root .vn.is-stuck[data-stuck-logo="vmark"] .nervalmark{opacity:0;transform:translateY(-36px)}
.vn-root[data-frame="always"] .vn.is-stuck[data-stuck-logo="vmark"]{--logo-w:min(calc(var(--vn-logo) * .6),calc(var(--vn-bar-h-stuck) - 8px));--logo-h:var(--logo-w)}
.vn-root[data-frame="always"] .vn.is-stuck[data-stuck-logo="vmark"] .vn-lockup{transform:scale(var(--lg-vmf-s)) translate(var(--lg-vm-tx),var(--lg-vm-t))}
.vn-root[data-frame="always"] .vn.is-stuck[data-stuck-logo="vmark"] .lineframe{opacity:1}

/* scroll: THE VILLA only */
.vn-root .vn.is-stuck[data-stuck-logo="wordmark"]{--logo-w:calc(var(--vn-logo) * 1.5);--logo-h:calc(var(--vn-logo) * .58)}
.vn-root .vn.is-stuck[data-stuck-logo="wordmark"] .vn-lockup{transform:scale(var(--lg-wm-s)) translate(var(--lg-wm-tx),var(--lg-wm-t))}
.vn-root .vn.is-stuck[data-stuck-logo="wordmark"] .lineframe{opacity:0}
.vn-root .vn.is-stuck[data-stuck-logo="wordmark"] .vmark{opacity:0;transform:translateY(-40px) scale(.9)}
.vn-root .vn.is-stuck[data-stuck-logo="wordmark"] .nervalmark{opacity:0;transform:translateY(20px)}

/* scroll: full lockup, smaller */
.vn-root .vn.is-stuck[data-stuck-logo="full"]{--logo-w:min(calc(var(--vn-logo) * .72),calc(var(--vn-bar-h-stuck) - 8px));--logo-h:var(--logo-w)}

/* intro */
.vn-root .vn-logo.is-intro .vmark{animation:vnVmIn .8s var(--vn-spring) .12s both}
.vn-root .vn-logo.is-intro .rule-l,
.vn-root .vn-logo.is-intro .rule-r{animation:vnRuleIn .7s var(--vn-spring) .38s both}
.vn-root .vn-logo.is-intro .thevillamark{animation:vnTvIn .8s var(--vn-spring) .3s both}
.vn-root .vn-logo.is-intro .nervalmark{animation:vnNvIn .9s var(--vn-spring) .55s both}
.vn-root[data-frame="intro"] .vn-logo.is-intro .lineframe{animation:vnFrameIO 2.4s var(--vn-ease) both}
.vn-root[data-frame="intro"] .vn-logo.is-intro .vn-lockup{animation:vnLockZoom 2.4s both}
.vn-root[data-frame="always"] .vn-logo.is-intro .lineframe{animation:vnFrameIn .9s var(--vn-spring) both}
@keyframes vnVmIn{from{opacity:0;transform:translateY(-34px) scale(.84)}to{opacity:1;transform:none}}
@keyframes vnRuleIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes vnTvIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes vnNvIn{from{opacity:0;transform:scaleX(1.22)}to{opacity:1;transform:none}}
@keyframes vnFrameIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes vnFrameIO{
  0%{opacity:0;transform:scale(.9)}
  18%{opacity:1;transform:none}
  64%{opacity:1;transform:none;animation-timing-function:cubic-bezier(.16,1,.3,1)}
  100%{opacity:0;transform:scale(1.08)}
}
@keyframes vnLockZoom{
  0%,64%{transform:scale(1);animation-timing-function:cubic-bezier(.16,1,.3,1)}
  100%{transform:scale(var(--lg-rest-s))}
}

/* ============ links ============ */
.vn-root .vn-nav{display:flex;align-items:center;gap:clamp(16px,1.9vw,32px)}
.vn-root .vn-link,.vn-root button.vn-link{
  position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 0;
  font-family:var(--vn-serif);font-size:17px;font-weight:400;letter-spacing:.03em;color:var(--vn-text);
  transition:color .2s var(--vn-ease);
}
.vn-root .vn-link::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--vn-gold);
  transform:scaleX(0);transform-origin:left center;transition:transform .26s var(--vn-ease)}
.vn-root .vn-link:hover,.vn-root .vn-link[aria-expanded="true"]{color:var(--vn-gold-deep)}
.vn-root[data-theme="dark"] .vn-link:hover,.vn-root[data-theme="dark"] .vn-link[aria-expanded="true"]{color:var(--vn-gold)}
.vn-root .vn-link:hover::after,.vn-root .vn-link[aria-expanded="true"]::after{transform:scaleX(1)}
.vn-root .vn-chev{width:9px;height:6px;flex:none;transition:transform .3s var(--vn-ease)}
.vn-root .vn-link[aria-expanded="true"] .vn-chev{transform:rotate(180deg)}

/* ============ buttons ============ */
.vn-root .vn-cta,.vn-root a.vn-cta:visited{
  flex:none;display:inline-block;font-family:var(--vn-serif);font-weight:400;
  background:var(--vn-teal);color:var(--vn-paper);
  padding:15px 28px;font-size:16px;line-height:1.2;letter-spacing:.05em;text-align:center;
  border-radius:var(--vn-radius);
  transition:background .25s var(--vn-ease),color .25s var(--vn-ease),transform .25s var(--vn-overshoot);
}
.vn-root .vn-cta:hover,.vn-root .vn-cta:focus{background:var(--vn-gold);color:var(--vn-ink-strong);transform:translateY(-1px)}
.vn-root .vn.is-stuck .vn-cta{padding:12px 22px;font-size:15px}
.vn-root .vn-ghost{
  display:inline-block;font-family:var(--vn-serif);border:1px solid var(--vn-accent-link);color:var(--vn-accent-link);
  padding:14px 24px;font-size:16px;line-height:1.2;letter-spacing:.05em;text-align:center;border-radius:var(--vn-radius);
  transition:background .25s var(--vn-ease),color .25s var(--vn-ease);
}
.vn-root .vn-ghost:hover{background:var(--vn-accent-link);color:var(--vn-bar-bg)}
.vn-root .vn-quiet{font-size:13.5px;letter-spacing:.04em;color:var(--vn-accent-link);
  border-bottom:1px solid var(--vn-gold)!important;padding-bottom:3px;
  transition:color .2s var(--vn-ease),border-color .2s var(--vn-ease)}
.vn-root .vn-quiet:hover{color:var(--vn-gold-deep);border-color:var(--vn-gold-deep)!important}

.vn-root .vn-progress{height:2px;overflow:hidden}
.vn-root .vn-progress i{display:block;height:100%;width:var(--vn-p,0%);background:var(--vn-gold);transition:width .12s linear}

/* ============ panels ============ */
.vn-root .vn-panels{position:absolute;left:0;right:0;top:100%}
.vn-root .vn-panel{
  position:absolute;left:0;right:0;top:0;background:var(--vn-panel-bg);
  border-top:1px solid var(--vn-hairline);box-shadow:var(--vn-shadow);
  opacity:0;visibility:hidden;transform:translate3d(0,-10px,0);
  transition:opacity .16s var(--vn-ease),transform .16s var(--vn-ease),visibility 0s linear .16s;
}
.vn-root .vn-panel.is-open{opacity:1;visibility:visible;transform:none;
  transition:opacity .26s var(--vn-spring),transform .34s var(--vn-spring),visibility 0s}
.vn-root .vn-panel-in{padding:44px 0 34px;display:flex;flex-direction:column;gap:30px}
.vn-root .vn-grid{display:flex;align-items:stretch;gap:clamp(24px,3vw,52px)}
.vn-root .vn-rule{width:1px;background:var(--vn-hairline);flex:none}
.vn-root .vn-eyebrow{font-size:12px;letter-spacing:.1em;color:var(--vn-text-dim)}

.vn-root .vn-rail{width:250px;flex:none;display:flex;flex-direction:column;gap:14px}
.vn-root .vn-rail-list{display:flex;flex-direction:column}
.vn-root .vn-rail-btn,.vn-root button.vn-rail-btn{
  display:block;width:100%;text-align:left;padding:12px 16px;border-left:3px solid transparent;
  font-family:var(--vn-serif);font-size:22px;font-weight:400;letter-spacing:.02em;color:var(--vn-text-quiet);
  transition:background .2s var(--vn-ease),color .2s var(--vn-ease),border-color .2s var(--vn-ease),padding-left .25s var(--vn-ease);
}
.vn-root .vn-rail-btn:hover{color:var(--vn-text)}
.vn-root .vn-rail-btn.is-active,.vn-root button.vn-rail-btn.is-active{background:var(--vn-rail-active);border-left-color:var(--vn-gold);color:var(--vn-text);padding-left:20px}
.vn-root .vn-rail-all{align-self:flex-start;margin-left:16px}

.vn-root .vn-cols{flex:1;min-width:0;min-height:300px}
.vn-root .vn-list{display:flex;flex-direction:column}
.vn-root .vn-list[hidden]{display:none}
.vn-root .vn-list.is-in{animation:vnFade .3s var(--vn-spring) both}
@keyframes vnFade{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}
.vn-root .vn-item{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-bottom:1px solid var(--vn-hairline-soft)!important;
  transition:color .2s var(--vn-ease),padding-left .25s var(--vn-ease)}
.vn-root .vn-item:last-child{border-bottom:0!important}
.vn-root .vn-item:hover{color:var(--vn-gold-deep);padding-left:6px}
.vn-root[data-theme="dark"] .vn-item:hover{color:var(--vn-gold)}
.vn-root .vn-item b{font-family:var(--vn-serif);font-size:19px;font-weight:400}
.vn-root .vn-item span{font-size:13px;color:var(--vn-text-dim)}
.vn-root .vn-note{margin:18px 0 0;max-width:46ch;font-size:13.5px;line-height:1.7;color:var(--vn-text-dim)}

.vn-root .vn-feature{width:320px;flex:none;display:flex;flex-direction:column;gap:16px}
.vn-root .vn-feature .vn-ph{height:196px}
.vn-root .vn-feature h2{font-family:var(--vn-serif);font-weight:400;font-size:24px;line-height:1.25}
.vn-root .vn-feature p{font-size:13.5px;line-height:1.65;color:var(--vn-text-dim)}
.vn-root .vn-feature .vn-quiet{align-self:flex-start}
.vn-root .vn-ph{background:var(--vn-ph-bg) center/cover no-repeat;display:flex;align-items:center;justify-content:center;
  font-size:11px;letter-spacing:.08em;color:var(--vn-ph-text);text-align:center;padding:8px;border-radius:var(--vn-radius)}

.vn-root .vn-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
.vn-root .vn-card{display:flex;flex-direction:column;gap:12px;transition:transform .35s var(--vn-spring),color .2s var(--vn-ease)}
.vn-root .vn-card:hover{transform:translateY(-5px);color:var(--vn-gold-deep)}
.vn-root[data-theme="dark"] .vn-card:hover{color:var(--vn-gold)}
.vn-root .vn-card .vn-ph{height:210px}
.vn-root .vn-card b{font-family:var(--vn-serif);font-weight:400;font-size:24px}
.vn-root .vn-card em{font-style:normal;font-size:12.5px;letter-spacing:.06em;color:var(--vn-gold-deep)}
.vn-root[data-theme="dark"] .vn-card em{color:var(--vn-gold)}
.vn-root .vn-card span{font-size:13.5px;line-height:1.6;color:var(--vn-text-dim)}

.vn-root .vn-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px}
.vn-root .vn-head .vn-quiet{margin-left:auto}
.vn-root .vn-head h2{font-family:var(--vn-serif);font-weight:400;font-size:26px}
.vn-root .vn-foot{padding-top:18px;border-top:1px solid var(--vn-hairline);display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;color:var(--vn-text-dim)}

.vn-root .vn-drop{position:absolute;top:0;left:0;min-width:260px;background:var(--vn-panel-bg);
  border-top:1px solid var(--vn-hairline);box-shadow:var(--vn-shadow);padding:10px 0;
  opacity:0;visibility:hidden;transform:translate3d(0,-8px,0);
  transition:opacity .16s var(--vn-ease),transform .16s var(--vn-ease),visibility 0s linear .16s}
.vn-root .vn-drop.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .24s var(--vn-spring),transform .3s var(--vn-spring),visibility 0s}
.vn-root .vn-drop a{display:block;padding:11px 24px;font-family:var(--vn-serif);font-size:17px;transition:background .18s var(--vn-ease),padding-left .22s var(--vn-ease)}
.vn-root .vn-drop a:hover{background:var(--vn-rail-active);padding-left:30px}

/* ============ scrim ============ */
.vn-root .vn-scrim{position:fixed;inset:0;z-index:calc(var(--vn-z) - 10);background:var(--vn-scrim);
  -webkit-backdrop-filter:blur(var(--vn-blur)) saturate(1.05);backdrop-filter:blur(var(--vn-blur)) saturate(1.05);
  opacity:0;visibility:hidden;transition:opacity .3s var(--vn-ease),visibility 0s linear .3s}
.vn-root .vn-scrim.is-on{opacity:1;visibility:visible;transition:opacity .3s var(--vn-ease),visibility 0s}

/* ============ mobile ============ */
.vn-root .vn-burger,.vn-root button.vn-burger{display:none;width:44px;height:44px;align-items:center;justify-content:center}
.vn-root .vn-burger-stack{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.vn-root .vn-burger i{display:block;height:1.3px;background:currentColor;transition:width .4s var(--vn-spring)}
.vn-root .vn-burger .b1{width:22px}
.vn-root .vn-burger .b2{width:16px}
.vn-root .vn-burger:hover .b2{width:22px}
.vn-root .vn-icon{width:44px;height:44px;display:none;align-items:center;justify-content:center}

.vn-root .vn-drawer{position:fixed;top:var(--vn-top);left:0;right:0;bottom:0;z-index:calc(var(--vn-z) + 10);
  background:var(--vn-panel-bg);display:flex;flex-direction:column;
  transform:translate3d(100%,0,0);visibility:hidden;
  transition:transform .42s var(--vn-spring),visibility 0s linear .42s;padding-top:env(safe-area-inset-top,0px)}
.vn-root .vn-drawer.is-open{transform:none;visibility:visible;transition:transform .42s var(--vn-spring),visibility 0s}
.vn-root .vn-drawer-top{height:72px;flex:none;display:flex;align-items:center;justify-content:space-between;
  padding-inline:20px 12px;border-bottom:1px solid rgba(198,178,89,.55)}
.vn-root .vn-drawer-top .vn-logo{width:58px!important;height:58px!important}
.vn-root .vn-drawer-close,.vn-root button.vn-drawer-close{display:flex;width:44px;height:44px;align-items:center;justify-content:center}
.vn-root .vn-drawer-body{flex:1;position:relative;overflow:hidden}
.vn-root .vn-track{position:absolute;inset:0;display:flex;transition:transform .36s var(--vn-spring)}
.vn-root .vn-level{width:100%;flex:none;overflow-y:auto;padding:10px 20px 24px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.vn-root .vn-row,.vn-root button.vn-row{
  width:100%;display:flex;align-items:center;justify-content:flex-start;gap:14px;
  padding:17px 0;border-bottom:1px solid var(--vn-hairline)!important;text-align:left;
  font-family:var(--vn-serif);font-size:27px;font-weight:400;color:var(--vn-text);
}
.vn-root .vn-row:hover,.vn-root .vn-row:focus-visible{color:var(--vn-gold-deep)}
.vn-root[data-theme="dark"] .vn-row:hover{color:var(--vn-gold)}
.vn-root .vn-row.sub{font-size:21px;padding:16px 0}
.vn-root .vn-row.leaf{flex-direction:column;align-items:flex-start;gap:4px}
.vn-root .vn-row.leaf b{font-family:var(--vn-serif);font-size:20px;font-weight:400}
.vn-root .vn-row.leaf span{font-family:var(--vn-sans);font-size:13px;color:var(--vn-text-dim)}
.vn-root .vn-row.thumb .vn-ph{width:84px;height:58px;flex:none;font-size:0;padding:0}
.vn-root .vn-row-text{display:flex;flex-direction:column;gap:3px}
.vn-root .vn-row-text b{font-family:var(--vn-serif);font-size:21px;font-weight:400}
.vn-root .vn-row-text span{font-family:var(--vn-sans);font-size:12.5px;color:var(--vn-text-dim)}
.vn-root .vn-back,.vn-root button.vn-back{display:flex;align-items:center;gap:10px;padding:12px 0;
  font-family:var(--vn-sans);font-size:13px;letter-spacing:.06em;color:var(--vn-gold-deep)}
.vn-root[data-theme="dark"] .vn-back{color:var(--vn-gold)}
.vn-root .vn-level h2{margin:4px 0 10px;font-family:var(--vn-serif);font-weight:400;font-size:32px;line-height:1.2}
.vn-root .vn-level .vn-quiet{display:inline-block;margin-top:20px}
.vn-root .vn-drawer-foot{flex:none;display:flex;gap:10px;padding:14px 20px calc(22px + env(safe-area-inset-bottom,0px));
  border-top:1px solid rgba(198,178,89,.55)}
.vn-root .vn-drawer-foot>a{flex:1;padding:15px 0}
.vn-root .vn-contact{margin-top:26px;display:flex;flex-direction:column;gap:7px;font-family:var(--vn-sans);font-size:13.5px;line-height:1.6;color:var(--vn-text-dim)}

/* ============ breakpoints ============ */
@media (max-width:1280px){
  .vn-root .vn-feature{width:260px}
  .vn-root .vn-rail{width:210px}
  .vn-root .vn-link,.vn-root button.vn-link{font-size:16px}
}
@media (max-width:1024px){
  .vn-root .vn-nav,.vn-root .vn-bar .vn-cta.desk,.vn-root .vn-panels{display:none}
  .vn-root .vn-burger,.vn-root button.vn-burger,.vn-root .vn-icon{display:flex}
  .vn-root .vn{--vn-bar-h:var(--cfg-bar-h-m,120px);--vn-bar-h-stuck:68px;--vn-util-h:34px;--vn-logo:var(--cfg-logo-m,88px)}
  .vn-spacer.vn-push{--sp-bar:var(--cfg-sp-bar-m,120px);--sp-util:34px}
}
@media (max-width:640px){
  .vn-root .vn-util-in{justify-content:center}
  .vn-root .vn-util-right{display:none}
  .vn-root .vn{--vn-bar-h-stuck:62px;--vn-util-h:30px}
  .vn-spacer.vn-push{--sp-util:30px}
  .vn-root .vn-row,.vn-root button.vn-row{font-size:24px}
}

.vn-spacer.vn-push.vn-no-util{--sp-util:0px}

/* ============ editor ============ */
.vn-root.is-editor .vn{position:relative;top:auto}
.vn-root.is-editor .vn-panel,.vn-root.is-editor .vn-drop{z-index:20}


/* ============ typography lock ============
   Theme and Elementor Site Settings link styles (e.g. ".elementor-kit-5 a:hover") out-rank
   plain class selectors, so family, style, weight and letter case are pinned with !important.
   Sizes and colours are left alone — those are styled per component above. */
.vn-root .vn-link,.vn-root .vn-cta,.vn-root .vn-ghost,.vn-root .vn-rail-btn,.vn-root .vn-item b,
.vn-root .vn-card b,.vn-root .vn-feature h2,.vn-root .vn-head h2,.vn-root .vn-drop a,.vn-root .vn-row,
.vn-root .vn-row.leaf b,.vn-root .vn-row-text b,.vn-root .vn-level h2,.vn-root .vn-util .vn-util-cta{
  font-family:var(--vn-serif)!important;font-style:normal!important}
.vn-root .vn-link,.vn-root .vn-cta,.vn-root .vn-ghost,.vn-root .vn-rail-btn,.vn-root .vn-item b,.vn-root .vn-card b,
.vn-root .vn-drop a,.vn-root .vn-row,.vn-root .vn-row.leaf b,.vn-root .vn-row-text b,.vn-root .vn-level h2{font-weight:400!important}
.vn-root .vn-util-note,.vn-root .vn-util a,.vn-root .vn-quiet,.vn-root .vn-item span,.vn-root .vn-card em,.vn-root .vn-card span,
.vn-root .vn-eyebrow,.vn-root .vn-note,.vn-root .vn-feature p,.vn-root .vn-foot,.vn-root .vn-foot span,.vn-root .vn-back,.vn-root .vn-contact,
.vn-root .vn-contact a,.vn-root .vn-row.leaf span,.vn-root .vn-row-text span{font-family:var(--vn-sans)!important;font-style:normal!important;font-weight:300!important}
.vn-root .vn-util .vn-util-cta{font-family:var(--vn-serif)!important;font-weight:700!important}
/* wrapper links whose text sits in locked children */
.vn-root .vn-brand,.vn-root .vn-card,.vn-root .vn-item{font-family:var(--vn-sans)!important;font-style:normal!important;font-weight:300!important;text-transform:none!important}

/* letter case — "linkCase" and "buttonCase" in the config */
.vn-root .vn-link,.vn-root .vn-rail-btn,.vn-root .vn-item b,.vn-root .vn-card b,.vn-root .vn-drop a,.vn-root .vn-row,
.vn-root .vn-row.leaf b,.vn-root .vn-row-text b,.vn-root .vn-level h2,.vn-root .vn-quiet,.vn-root .vn-util a,.vn-root .vn-back{
  text-transform:var(--vn-link-case,capitalize)!important}
.vn-root .vn-cta,.vn-root .vn-ghost,.vn-root .vn-util .vn-util-cta{text-transform:var(--vn-btn-case,capitalize)!important}
.vn-root .vn-row.leaf span,.vn-root .vn-row-text span,.vn-root .vn-item span,.vn-root .vn-card span,.vn-root .vn-card em{text-transform:none!important}

@media (prefers-reduced-motion:reduce){
  .vn-root *,.vn-root *::before,.vn-root *::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}
}
