/*
 * Zala Springs MAIN fullscreen navigation
 * Content Manager 0.27.0
 *
 * Canonical breakpoints: 1366 / 1200 / 1024 / 880 / 767.
 * The single 782px query below is a WordPress admin-bar compatibility fix:
 * WordPress changes the admin-bar height exactly at 782px.
 */

:root{
  --zsfh-ink:var(--zs-brand-midnight,#26352c);
  --zsfh-forest:var(--zs-brand-forest,#394a40);
  --zsfh-gold:var(--zs-brand-gold,#c2a22f);
  --zsfh-paper:#fbfaf6;
  --zsfh-cream:#f3f0e8;
  --zsfh-muted:#707a73;
  --zsfh-line:rgba(38,53,44,.105);

  --zsfh-page-top:0px;
  --zsfh-safe-top:env(safe-area-inset-top,0px);
  --zsfh-safe-bottom:env(safe-area-inset-bottom,0px);
  --zsfh-bar-h:72px;

  /* Three open desktop panels must never consume the whole viewport. */
  --zsfh-root-w:clamp(350px,22vw,430px);
  --zsfh-l2-w:clamp(360px,23vw,450px);
  --zsfh-l3-w:clamp(300px,18vw,350px);

  --zsfh-space-1:8px;
  --zsfh-space-2:16px;
  --zsfh-space-3:24px;
  --zsfh-space-4:32px;
  --zsfh-space-5:40px;
  --zsfh-space-6:48px;
}

body.admin-bar{--zsfh-page-top:32px}

/* WordPress itself changes the admin bar to 46px at 782px. */
@media(max-width:782px){
  body.admin-bar{--zsfh-page-top:46px}
}

.zsfh-shell,
.zsfh-shell *,
.zsfh-shell *::before,
.zsfh-shell *::after,
.zsfh-overlay,
.zsfh-overlay *,
.zsfh-overlay *::before,
.zsfh-overlay *::after{
  box-sizing:border-box;
  font-family:"Brandon book",Arial,Helvetica,sans-serif!important;
}

.zsfh-shell{
  position:fixed;
  top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 16px);
  right:0;
  left:0;
  z-index:99990;
  pointer-events:none;
}

.zsfh-bar{
  position:relative;
  width:min(calc(100% - 32px),1536px);
  min-height:var(--zsfh-bar-h);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:var(--zsfh-space-2);
  padding:8px 10px;
  border:1px solid rgba(38,53,44,.085);
  border-radius:24px;
  background:rgba(250,249,244,.955);
  color:var(--zsfh-ink);
  box-shadow:
    0 18px 46px rgba(20,34,25,.115),
    inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter:blur(22px) saturate(118%);
  -webkit-backdrop-filter:blur(22px) saturate(118%);
  pointer-events:auto;
  transition:
    background .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    border-radius .22s ease;
}

.zsfh-shell.is-open .zsfh-bar{
  background:rgba(251,250,246,.985);
  border-color:rgba(38,53,44,.10);
  border-radius:20px;
  box-shadow:
    0 10px 28px rgba(20,34,25,.085),
    inset 0 1px 0 rgba(255,255,255,.96);
}

.zsfh-burger{
  width:48px;
  height:48px;
  position:relative;
  justify-self:start;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:14px;
  background:transparent;
  color:var(--zsfh-ink);
  cursor:pointer;
  transition:background .18s ease,color .18s ease;
}

.zsfh-burger span{
  position:absolute;
  left:13px;
  width:22px;
  height:1.5px;
  border-radius:999px;
  background:currentColor;
  transition:
    top .2s cubic-bezier(.2,.7,.2,1),
    transform .2s cubic-bezier(.2,.7,.2,1),
    width .2s ease;
}

.zsfh-burger span:first-child{top:19px}
.zsfh-burger span:last-child{top:28px;width:16px}

.zsfh-shell.is-open .zsfh-burger span:first-child{
  top:24px;
  width:22px;
  transform:rotate(45deg);
}

.zsfh-shell.is-open .zsfh-burger span:last-child{
  top:24px;
  width:22px;
  transform:rotate(-45deg);
}

.zsfh-logo{
  display:flex!important;
  align-items:center;
  justify-content:center;
  text-decoration:none!important;
  line-height:0;
}

.zsfh-logo img{
  display:block;
  width:166px;
  max-width:166px;
  height:48px;
  object-fit:contain;
}

.zsfh-shell.is-open .zsfh-logo img{
  width:172px;
  max-width:172px;
  transition:width .22s ease,max-width .22s ease;
}

.zsfh-bar__right{
  justify-self:end;
  display:flex;
  align-items:center;
  min-width:52px;
}

.zsfh-icon{
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Language */
.zsfh-lang{position:relative}

.zsfh-lang__trigger{
  width:54px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0;
  border:0;
  border-radius:12px;
  background:transparent;
  color:var(--zsfh-ink);
  cursor:pointer;
  transition:background .18s ease;
}

.zsfh-lang__trigger span{
  font-size:11px;
  font-weight:700;
  letter-spacing:.09em;
}

.zsfh-lang__trigger .zsfh-icon{
  width:11px;
  height:11px;
  color:#727b75;
  transition:transform .18s ease;
}

.zsfh-lang.is-open .zsfh-lang__trigger .zsfh-icon{
  transform:rotate(180deg);
}

.zsfh-lang__panel{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  width:184px;
  padding:7px;
  border:1px solid var(--zsfh-line);
  border-radius:16px;
  background:rgba(251,250,246,.995);
  box-shadow:0 22px 54px rgba(20,34,25,.17);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(7px) scale(.985);
  transform-origin:top right;
  transition:
    opacity .17s ease,
    visibility .17s ease,
    transform .2s cubic-bezier(.16,.74,.2,1);
}

.zsfh-lang.is-open .zsfh-lang__panel{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}

.zsfh-lang__option{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--zsfh-space-2);
  padding:0 10px;
  border-radius:10px;
  color:var(--zsfh-ink)!important;
  text-decoration:none!important;
  transition:background .16s ease,color .16s ease;
}

.zsfh-lang__option span{
  font-size:13px;
  font-weight:400;
}

.zsfh-lang__option small{
  color:#927b2b;
  font-size:9px;
  font-weight:700;
  letter-spacing:.09em;
}

.zsfh-lang__option.is-active{
  background:var(--zsfh-ink);
  color:#fff!important;
}

.zsfh-lang__option.is-active small{color:#e2ce78}

/* Consistent keyboard focus */
.zsfh-burger:focus-visible,
.zsfh-lang__trigger:focus-visible,
.zsfh-lang__option:focus-visible,
.zsfh-root-link:focus-visible,
.zsfh-branch:focus-visible,
.zsfh-back:focus-visible,
.zsfh-panel-title-link:focus-visible,
.zsfh-sub-link:focus-visible,
.zsfh-tertiary-link:focus-visible{
  outline:2px solid rgba(194,162,47,.78);
  outline-offset:3px;
}

/* Overlay stays below WP admin bar but above the site. */
.zsfh-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:99980!important;
  display:none!important;
  overflow:hidden;
  background:transparent;
  color:var(--zsfh-ink);
  pointer-events:none!important;
}

.zsfh-overlay.is-open,
.zsfh-overlay.is-closing{
  display:block!important;
}

.zsfh-overlay.is-open{
  pointer-events:auto!important;
  animation:zsfh-overlay-in .28s ease both;
}

.zsfh-overlay.is-closing{
  pointer-events:none!important;
  animation:zsfh-overlay-out .20s ease both;
}

@keyframes zsfh-overlay-in{
  from{opacity:0}
  to{opacity:1}
}

@keyframes zsfh-overlay-out{
  from{opacity:1}
  to{opacity:0}
}

/* Visual / fallback field */
.zsfh-visual{
  position:absolute;
  inset:0 0 0 var(--zsfh-root-w);
  overflow:hidden;
  background:rgba(25,51,36,.62);
  backdrop-filter:blur(3px) saturate(90%);
  -webkit-backdrop-filter:blur(3px) saturate(90%);
}

.zsfh-visual__layer{
  position:absolute;
  inset:-2%;
  background-position:center;
  background-size:cover;
  opacity:0;
  transform:scale(1.025);
  transition:
    opacity .72s ease,
    transform 7s cubic-bezier(.2,.7,.2,1);
  will-change:opacity,transform;
}

.zsfh-visual__layer.is-current{
  opacity:.68;
  transform:scale(1);
}

.zsfh-visual__veil{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(18,39,27,.20),rgba(18,39,27,.035) 47%,rgba(18,39,27,.10)),
    linear-gradient(0deg,rgba(16,34,24,.14),transparent 52%);
}

.zsfh-visual__fallback{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:rgba(255,255,255,.055);
  text-align:center;
  pointer-events:none;
}

.zsfh-visual__fallback span{
  font-size:clamp(54px,7vw,124px);
  font-weight:400;
  letter-spacing:.14em;
}

.zsfh-visual__fallback small{
  font-size:10px;
  font-weight:600;
  letter-spacing:.33em;
}

.zsfh-visual__caption{
  position:absolute;
  right:40px;
  bottom:calc(34px + var(--zsfh-safe-bottom));
  display:flex;
  align-items:center;
  gap:11px;
  color:rgba(255,255,255,.62);
  font-size:8px;
  letter-spacing:.19em;
}

.zsfh-visual__caption i{
  width:34px;
  height:1px;
  background:rgba(194,162,47,.72);
}

.zsfh-visual__caption small{
  font-size:8px;
  letter-spacing:.19em;
}

/* Ambient motion */
.zsfh-ambient{
  position:absolute;
  inset:0;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
}

.zsfh-orb{
  position:absolute;
  border:1px solid rgba(194,162,47,.055);
  border-radius:50%;
  animation:zsfh-orbit 34s ease-in-out infinite alternate;
  will-change:transform;
}

.zsfh-orb--1{
  width:min(44vw,720px);
  height:min(44vw,720px);
  right:1%;
  top:-24%;
}

.zsfh-orb--2{
  width:min(27vw,430px);
  height:min(27vw,430px);
  right:31%;
  bottom:-16%;
  animation-duration:42s;
}

.zsfh-orb--3{
  width:min(13vw,210px);
  height:min(13vw,210px);
  right:16%;
  top:43%;
  animation-duration:29s;
}

@keyframes zsfh-orbit{
  from{transform:translate3d(-10px,-7px,0) scale(.985)}
  to{transform:translate3d(18px,14px,0) scale(1.035)}
}

/* Panels */
.zsfh-panel{
  position:absolute;
  top:0;
  bottom:0;
  z-index:4;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(38,53,44,.18) transparent;
  background:rgba(251,250,246,.976);
  box-shadow:14px 0 36px rgba(20,34,25,.065);
  opacity:0;
  pointer-events:none;
  transform:translateX(-36px);
  transition:
    transform .42s cubic-bezier(.16,.74,.2,1),
    opacity .26s ease;
}

.zsfh-panel::-webkit-scrollbar{width:7px}
.zsfh-panel::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(38,53,44,.16);
}

.zsfh-panel.is-active{
  opacity:1;
  pointer-events:auto;
  transform:none;
}

.zsfh-panel--root{
  left:0;
  width:var(--zsfh-root-w);
  z-index:7;
  background:rgba(251,250,246,.988);
  transform:translateX(-42px);
}

.zsfh-overlay.is-open .zsfh-panel--root{
  opacity:1;
  pointer-events:auto;
  transform:none;
  transition-delay:.04s;
}

.zsfh-overlay.is-closing .zsfh-panel--root{
  opacity:0;
  transform:translateX(-24px);
  transition-duration:.18s;
}

.zsfh-panel--level2{
  left:var(--zsfh-root-w);
  width:var(--zsfh-l2-w);
  z-index:6;
  background:rgba(246,248,244,.975);
}

.zsfh-panel--level3{
  left:calc(var(--zsfh-root-w) + var(--zsfh-l2-w));
  width:var(--zsfh-l3-w);
  z-index:5;
  background:rgba(250,248,242,.965);
  box-shadow:12px 0 30px rgba(20,34,25,.052);
}

.zsfh-panel__inner{
  min-height:100%;
  padding:
    calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + var(--zsfh-bar-h) + 46px)
    clamp(28px,2.35vw,42px)
    calc(40px + var(--zsfh-safe-bottom));
}

.zsfh-panel--root .zsfh-panel__inner{
  display:flex;
  flex-direction:column;
}

.zsfh-eyebrow{
  display:flex;
  align-items:center;
  gap:9px;
  color:#907929;
  font-size:8px;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
}

.zsfh-eyebrow::before{
  content:"";
  width:28px;
  height:1px;
  background:var(--zsfh-gold);
}

.zsfh-root-head{
  margin-bottom:20px;
}

.zsfh-root-head p{
  max-width:295px;
  margin:11px 0 0;
  color:#657169;
  font-size:13px;
  line-height:1.55;
}

/* Root menu */
.zsfh-root-nav{display:grid}

.zsfh-root-item{
  position:relative;
  min-height:70px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:center;
  border-radius:8px;
  opacity:0;
  transform:translateX(-20px);
  transition:background .18s ease;
}

.zsfh-root-item::after{
  content:"";
  position:absolute;
  right:8px;
  bottom:0;
  left:0;
  height:1px;
  background:rgba(38,53,44,.085);
}

.zsfh-overlay.is-open .zsfh-root-item{
  animation:zsfh-item-in .48s cubic-bezier(.16,.74,.2,1) forwards;
  animation-delay:calc(.11s + var(--zsfh-i)*.052s);
}

@keyframes zsfh-item-in{
  to{opacity:1;transform:none}
}

.zsfh-root-link{
  min-width:0;
  width:100%;
  min-height:70px;
  display:flex;
  align-items:center;
  padding:7px 10px 7px 0;
  border:0;
  background:transparent;
  color:var(--zsfh-ink)!important;
  text-align:left;
  text-decoration:none!important;
  cursor:pointer;
}

.zsfh-root-link__text{
  display:-webkit-box;
  max-width:100%;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  text-wrap:balance;
  color:inherit;
  font-size:clamp(27px,2.05vw,36px);
  font-weight:400;
  line-height:1.02;
  transition:
    transform .22s ease,
    color .22s ease;
}

.zsfh-root-item.is-current::before,
.zsfh-root-item.is-ancestor::before,
.zsfh-root-item.is-panel-open::before{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  width:2px;
  height:30px;
  border-radius:999px;
  background:rgba(194,162,47,.92);
  transform:translateY(-50%);
}

.zsfh-root-item.is-current .zsfh-root-link__text,
.zsfh-root-item.is-ancestor .zsfh-root-link__text,
.zsfh-root-item.is-panel-open .zsfh-root-link__text{
  color:#18231d;
}

.zsfh-root-item.is-utility{
  min-height:52px;
}

.zsfh-root-item.is-utility .zsfh-root-link{
  min-height:52px;
}

.zsfh-root-item.is-utility .zsfh-root-link__text{
  font-size:16px;
  color:#6f7872;
}

/* Disclosure / leaf controls */
.zsfh-branch{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  justify-self:end;
  padding:0;
  border:1px solid rgba(194,162,47,.10);
  border-radius:50%;
  background:rgba(194,162,47,.025);
  color:#8f782a;
  cursor:pointer;
  transition:
    background .18s ease,
    border-color .18s ease,
    transform .2s ease,
    color .18s ease;
}

.zsfh-branch .zsfh-icon{
  width:17px;
  height:17px;
  transition:transform .22s ease;
}

.zsfh-root-item.is-panel-open .zsfh-branch,
.zsfh-sub-item.is-panel-open .zsfh-branch{
  border-color:rgba(194,162,47,.24);
  background:rgba(194,162,47,.075);
  color:#6d591a;
}

.zsfh-root-item.is-panel-open .zsfh-branch .zsfh-icon,
.zsfh-sub-item.is-panel-open .zsfh-branch .zsfh-icon{
  transform:translateX(2px);
}

.zsfh-leaf-icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  justify-self:end;
  color:#9a812c;
  opacity:.68;
  pointer-events:none;
}

.zsfh-leaf-icon .zsfh-icon{
  width:15px;
  height:15px;
  transition:transform .2s ease,opacity .2s ease;
}

/* Panel heading */
.zsfh-back{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 0 20px;
  padding:0 8px 0 0;
  border:0;
  background:transparent;
  color:#8b7528;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
}

.zsfh-back .zsfh-icon{
  width:17px;
  height:17px;
  transition:transform .18s ease;
}

.zsfh-panel-title-link{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-top:14px;
  padding-bottom:4px;
  color:var(--zsfh-ink)!important;
  text-decoration:none!important;
}

.zsfh-panel-title-link h2{
  display:-webkit-box;
  min-width:0;
  max-width:100%;
  margin:0;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  text-wrap:balance;
  color:var(--zsfh-ink);
  font-size:clamp(36px,2.8vw,50px);
  font-weight:400;
  line-height:1.02;
}

.zsfh-panel-title-link > span{
  width:34px;
  height:34px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  margin-top:7px;
  border-radius:50%;
  color:#927a2a;
  opacity:.74;
  transition:
    transform .2s ease,
    opacity .2s ease,
    background .2s ease;
}

.zsfh-panel-title-link > span .zsfh-icon{
  width:16px;
  height:16px;
}

.zsfh-panel-title-link.is-static{
  cursor:default;
}

.zsfh-panel--level3 .zsfh-panel-title-link h2{
  font-size:clamp(34px,2.45vw,44px);
}

.zsfh-panel__description{
  max-width:390px;
  margin:12px 0 20px;
  color:#6d7771;
  font-size:14px;
  line-height:1.62;
}

/* Level 2 */
.zsfh-subnav,
.zsfh-tertiary{
  display:grid;
  margin-top:14px;
}

.zsfh-sub-item{
  position:relative;
  min-height:66px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 44px;
  align-items:center;
  border-radius:7px;
  opacity:0;
  transform:translateX(-16px);
  transition:background .18s ease;
}

.zsfh-sub-item::after{
  content:"";
  position:absolute;
  right:8px;
  bottom:0;
  left:0;
  height:1px;
  background:rgba(38,53,44,.075);
}

.zsfh-panel.is-active .zsfh-sub-item{
  animation:zsfh-item-in .42s cubic-bezier(.16,.74,.2,1) forwards;
  animation-delay:calc(.07s + var(--zsfh-i)*.045s);
}

.zsfh-sub-link{
  min-width:0;
  width:100%;
  min-height:66px;
  display:flex;
  align-items:center;
  padding:8px 12px 8px 0;
  border:0;
  background:transparent;
  color:var(--zsfh-ink)!important;
  text-align:left;
  text-decoration:none!important;
  cursor:pointer;
}

.zsfh-sub-link > span{min-width:0}

.zsfh-sub-link strong{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  text-wrap:balance;
  font-size:19px;
  font-weight:500;
  line-height:1.22;
  transition:transform .2s ease,color .2s ease;
}

.zsfh-sub-link small{
  display:-webkit-box;
  margin-top:5px;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  color:#828b85;
  font-size:11px;
  line-height:1.35;
}

.zsfh-sub-item.is-current::before,
.zsfh-sub-item.is-ancestor::before,
.zsfh-sub-item.is-panel-open::before{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  width:2px;
  height:26px;
  border-radius:999px;
  background:rgba(194,162,47,.78);
  transform:translateY(-50%);
}

.zsfh-sub-item.is-current .zsfh-sub-link strong,
.zsfh-sub-item.is-ancestor .zsfh-sub-link strong,
.zsfh-sub-item.is-panel-open .zsfh-sub-link strong{
  color:#17231c;
}

.zsfh-branch--sub{
  width:38px;
  height:38px;
}

/* Level 3 is intentionally lighter. */
.zsfh-tertiary-link{
  position:relative;
  min-height:60px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  align-items:center;
  gap:12px;
  padding:8px 0;
  color:var(--zsfh-ink)!important;
  font-size:17px;
  line-height:1.25;
  text-decoration:none!important;
  opacity:0;
  transform:translateX(-14px);
}

.zsfh-panel.is-active .zsfh-tertiary-link{
  animation:zsfh-item-in .4s cubic-bezier(.16,.74,.2,1) forwards;
  animation-delay:calc(.06s + var(--zsfh-i)*.042s);
}

.zsfh-tertiary-link span{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  text-wrap:balance;
  transition:transform .2s ease,color .2s ease;
}

.zsfh-tertiary-link i{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  color:#9a812c;
  font-style:normal;
  opacity:.68;
}

.zsfh-tertiary-link i .zsfh-icon{
  width:14px;
  height:14px;
}

.zsfh-tertiary-link::after{
  content:"";
  position:absolute;
  right:6px;
  bottom:0;
  left:0;
  height:1px;
  background:rgba(38,53,44,.07);
}

.zsfh-tertiary-link.is-current::before{
  content:"";
  position:absolute;
  top:50%;
  left:0;
  width:2px;
  height:24px;
  border-radius:999px;
  background:rgba(194,162,47,.74);
  transform:translateY(-50%);
}

body.zsfh-menu-open{
  overscroll-behavior:none;
}

/* Desktop hover */
@media(hover:hover) and (pointer:fine){
  .zsfh-burger:hover,
  .zsfh-lang__trigger:hover{
    background:rgba(38,53,44,.05);
  }

  .zsfh-lang__option:not(.is-active):hover{
    background:rgba(194,162,47,.08);
  }

  .zsfh-root-item:hover,
  .zsfh-sub-item:hover{
    background:rgba(194,162,47,.025);
  }

  .zsfh-root-item:hover .zsfh-root-link__text{
    transform:translateX(4px);
  }

  .zsfh-root-item.has-children:hover .zsfh-branch,
  .zsfh-sub-item.has-children:hover .zsfh-branch{
    border-color:rgba(194,162,47,.20);
    background:rgba(194,162,47,.09);
    transform:translateX(2px);
  }

  .zsfh-root-item.is-leaf:hover .zsfh-leaf-icon .zsfh-icon{
    transform:translate(3px,-3px);
  }

  .zsfh-back:hover .zsfh-icon{
    transform:translateX(-3px);
  }

  .zsfh-panel-title-link:hover > span{
    background:rgba(194,162,47,.08);
    opacity:1;
    transform:translate(2px,-2px);
  }

  .zsfh-sub-item:hover .zsfh-sub-link strong,
  .zsfh-tertiary-link:hover span{
    transform:translateX(4px);
  }

  .zsfh-tertiary-link:hover i{
    opacity:1;
  }
}

/* Laptop */
@media(max-width:1366px){
  :root{
    --zsfh-root-w:330px;
    --zsfh-l2-w:360px;
    --zsfh-l3-w:290px;
  }

  .zsfh-shell{
    top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 13px);
  }

  .zsfh-bar{
    width:min(calc(100% - 24px),1328px);
    min-height:68px;
  }

  .zsfh-logo img{
    width:146px;
    max-width:146px;
    height:44px;
  }

  .zsfh-root-link__text{
    font-size:28px;
  }

  .zsfh-panel-title-link h2{
    font-size:40px;
  }

  .zsfh-panel--level3 .zsfh-panel-title-link h2{
    font-size:36px;
  }

  .zsfh-panel__inner{
    padding-left:38px;
    padding-right:38px;
  }
}

/* Tablet landscape */
@media(max-width:1200px){
  :root{
    --zsfh-root-w:320px;
    --zsfh-l2-w:350px;
    --zsfh-l3-w:280px;
  }

  .zsfh-bar{
    width:calc(100% - 20px);
  }

  .zsfh-logo img{
    width:136px;
    max-width:136px;
  }

  .zsfh-root-link__text{
    font-size:26px;
  }

  .zsfh-panel-title-link h2{
    font-size:36px;
  }

  .zsfh-panel--level3 .zsfh-panel-title-link h2{
    font-size:33px;
  }

  .zsfh-sub-link strong{
    font-size:17px;
  }

  .zsfh-panel__inner{
    padding-left:32px;
    padding-right:32px;
  }
}

/* Tablet portrait: navigation becomes stacked full-screen panels. */
@media(max-width:1024px){
  :root{
    --zsfh-bar-h:66px;
    --zsfh-root-w:100vw;
    --zsfh-l2-w:100vw;
    --zsfh-l3-w:100vw;
  }

  .zsfh-shell{
    top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 12px);
  }

  .zsfh-bar{
    width:calc(100% - 24px);
    min-height:66px;
    padding:7px 8px;
    border-radius:20px;
  }

  .zsfh-logo img{
    width:132px;
    max-width:132px;
    height:40px;
  }

  .zsfh-burger,
  .zsfh-lang__trigger{
    width:46px;
    height:46px;
  }

  .zsfh-visual{
    display:none;
  }

  .zsfh-ambient{
    background:
      radial-gradient(circle at 90% 8%,rgba(194,162,47,.09),transparent 26%),
      linear-gradient(145deg,rgba(38,53,44,.96),rgba(27,43,33,.96));
  }

  .zsfh-panel{
    left:0!important;
    width:100vw!important;
    background:rgba(251,250,246,.992);
    box-shadow:none;
    transform:translateX(100%);
  }

  .zsfh-panel--root{
    z-index:7;
    transform:translateX(-24px);
  }

  .zsfh-overlay.is-open .zsfh-panel--root{
    transform:none;
  }

  .zsfh-panel--level2{z-index:8}
  .zsfh-panel--level3{z-index:9;background:rgba(248,247,241,.995)}

  .zsfh-panel.is-active{
    transform:none;
  }

  .zsfh-panel__inner{
    padding:
      calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + var(--zsfh-bar-h) + 42px)
      30px
      calc(36px + var(--zsfh-safe-bottom));
  }

  .zsfh-root-item{
    min-height:68px;
    grid-template-columns:minmax(0,1fr) 52px;
  }

  .zsfh-root-link{
    min-height:68px;
  }

  .zsfh-root-link__text{
    font-size:clamp(28px,5vw,36px);
  }

  .zsfh-branch{
    width:48px;
    height:48px;
    border-color:rgba(194,162,47,.13);
    background:rgba(194,162,47,.045);
  }

  .zsfh-branch--sub{
    width:48px;
    height:48px;
  }

  .zsfh-leaf-icon{
    width:48px;
    height:48px;
  }

  .zsfh-panel-title-link h2{
    font-size:clamp(38px,7vw,50px);
  }

  .zsfh-panel--level3 .zsfh-panel-title-link h2{
    font-size:clamp(34px,6.5vw,44px);
  }

  .zsfh-sub-item{
    min-height:68px;
    grid-template-columns:minmax(0,1fr) 52px;
  }

  .zsfh-sub-link{
    min-height:68px;
  }
}

/* Mobile landscape */
@media(max-width:880px){
  .zsfh-bar{
    width:calc(100% - 20px);
  }

  .zsfh-panel__inner{
    padding-left:26px;
    padding-right:26px;
  }

  .zsfh-root-link__text{
    font-size:clamp(27px,6vw,34px);
  }
}

/* Mobile portrait */
@media(max-width:767px){
  :root{
    --zsfh-bar-h:60px;
  }

  .zsfh-shell{
    top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 9px);
  }

  .zsfh-bar{
    width:calc(100% - 18px);
    min-height:60px;
    padding:6px 7px;
    border-radius:18px;
  }

  .zsfh-logo img{
    width:122px;
    max-width:122px;
    height:38px;
  }

  .zsfh-burger,
  .zsfh-lang__trigger{
    width:44px;
    height:44px;
  }

  .zsfh-burger span{
    left:11px;
  }

  .zsfh-lang__panel{
    right:-3px;
    width:176px;
  }

  .zsfh-panel__inner{
    padding:
      calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + var(--zsfh-bar-h) + 34px)
      20px
      calc(28px + var(--zsfh-safe-bottom));
  }

  .zsfh-root-head{
    margin-bottom:18px;
  }

  .zsfh-root-head p{
    font-size:12px;
  }

  .zsfh-root-item{
    min-height:64px;
    grid-template-columns:minmax(0,1fr) 52px;
  }

  .zsfh-root-link{
    min-height:64px;
  }

  .zsfh-root-link__text{
    font-size:clamp(25px,7.2vw,32px);
  }

  .zsfh-panel-title-link h2{
    font-size:clamp(38px,10vw,50px);
  }

  .zsfh-panel__description{
    font-size:13px;
  }

  .zsfh-sub-link strong{
    font-size:17px;
  }

  .zsfh-tertiary-link{
    font-size:16px;
  }
}

@media(prefers-reduced-motion:reduce){
  .zsfh-shell *,
  .zsfh-shell *::before,
  .zsfh-shell *::after,
  .zsfh-overlay *,
  .zsfh-overlay *::before,
  .zsfh-overlay *::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}


/* =========================================================
   v0.27.0 stability layer
   ========================================================= */

/* Never allow native mobile tap/focus paint to flash black. */
.zsfh-shell a,
.zsfh-shell button,
.zsfh-overlay a,
.zsfh-overlay button{
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  touch-action:manipulation;
}

.zsfh-root-link,
.zsfh-sub-link,
.zsfh-branch,
.zsfh-back,
.zsfh-menu-close,
.zsfh-lang__trigger{
  -webkit-appearance:none;
  appearance:none;
  font:inherit;
}

.zsfh-root-link:focus:not(:focus-visible),
.zsfh-sub-link:focus:not(:focus-visible),
.zsfh-branch:focus:not(:focus-visible),
.zsfh-back:focus:not(:focus-visible),
.zsfh-menu-close:focus:not(:focus-visible),
.zsfh-lang__trigger:focus:not(:focus-visible){
  outline:none;
}

/* While the fullscreen navigation is open, the floating site bar retires.
   The overlay has its own close control, so the two surfaces no longer look
   vertically disconnected. */
.zsfh-bar{
  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .22s cubic-bezier(.16,.74,.2,1),
    background .22s ease,
    box-shadow .22s ease,
    border-color .22s ease,
    border-radius .22s ease;
}

.zsfh-shell.is-open .zsfh-bar{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px);
}

/* Dedicated close control belongs to the sliding menu surface. */
.zsfh-menu-close{
  position:fixed;
  top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 24px);
  left:clamp(18px,2vw,30px);
  z-index:30;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(38,53,44,.10);
  border-radius:50%;
  background:rgba(251,250,246,.92);
  color:var(--zsfh-ink);
  box-shadow:0 9px 26px rgba(20,34,25,.08);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  cursor:pointer;
  transition:
    background .18s ease,
    border-color .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}

.zsfh-menu-close .zsfh-icon{
  width:19px;
  height:19px;
  stroke-width:1.45;
}

.zsfh-menu-close:focus-visible{
  outline:2px solid rgba(194,162,47,.80);
  outline-offset:3px;
}

@media(hover:hover) and (pointer:fine){
  .zsfh-menu-close:hover{
    border-color:rgba(194,162,47,.28);
    background:rgba(251,250,246,.99);
    box-shadow:0 12px 30px rgba(20,34,25,.11);
    transform:translateY(-1px);
  }
}

/* Closing starts only after the original page scroll position has already
   been restored behind the still-opaque overlay. */
.zsfh-overlay.is-restoring{
  pointer-events:none!important;
}

/* Base menu items are ALWAYS visible. Entrance motion is progressive
   enhancement only. If an animation fails on mobile Safari/Chrome, content
   remains readable and tappable instead of becoming an invisible hit area. */
.zsfh-root-item,
.zsfh-sub-item,
.zsfh-tertiary-link{
  opacity:1;
  transform:none;
}

@keyframes zsfh-safe-root-in{
  from{opacity:0;transform:translateX(-18px)}
  to{opacity:1;transform:none}
}

@keyframes zsfh-safe-sub-in{
  from{opacity:0;transform:translateX(-14px)}
  to{opacity:1;transform:none}
}

@media(min-width:1025px) and (prefers-reduced-motion:no-preference){
  .zsfh-overlay.is-open .zsfh-root-item{
    animation:zsfh-safe-root-in .46s cubic-bezier(.16,.74,.2,1) both;
    animation-delay:calc(.08s + var(--zsfh-i)*.045s);
  }

  .zsfh-panel.is-active .zsfh-sub-item,
  .zsfh-panel.is-active .zsfh-tertiary-link{
    animation:zsfh-safe-sub-in .38s cubic-bezier(.16,.74,.2,1) both;
    animation-delay:calc(.04s + var(--zsfh-i)*.035s);
  }
}

/* Typography must never clip descenders. The previous line-clamp +
   overflow:hidden combination could cut the bottoms off Brandon glyphs. */
.zsfh-root-link__text,
.zsfh-sub-link strong,
.zsfh-panel-title-link h2,
.zsfh-tertiary-link span{
  display:block;
  overflow:visible;
  -webkit-box-orient:initial;
  -webkit-line-clamp:unset;
  line-clamp:unset;
  text-wrap:balance;
  padding-bottom:.08em;
}

.zsfh-root-link__text{
  line-height:1.12;
}

.zsfh-sub-link strong{
  line-height:1.30;
}

.zsfh-panel-title-link h2{
  line-height:1.08;
}

.zsfh-tertiary-link span{
  line-height:1.30;
}

/* Reserve a dedicated gutter for the gold active marker. The marker and the
   hover movement can no longer collide with the menu text. */
.zsfh-root-link{
  padding-left:14px;
}

.zsfh-sub-link{
  padding-left:14px;
}

.zsfh-root-item::after,
.zsfh-sub-item::after{
  left:14px;
}

.zsfh-root-item.is-current::before,
.zsfh-root-item.is-ancestor::before,
.zsfh-root-item.is-panel-open::before,
.zsfh-sub-item.is-current::before,
.zsfh-sub-item.is-ancestor::before,
.zsfh-sub-item.is-panel-open::before{
  left:2px;
}

/* Avoid native pressed-state text color changes. */
.zsfh-root-link:active,
.zsfh-sub-link:active,
.zsfh-tertiary-link:active,
.zsfh-panel-title-link:active,
.zsfh-back:active,
.zsfh-branch:active,
.zsfh-menu-close:active{
  color:var(--zsfh-ink)!important;
}

/* Touch layouts: no stagger/opacity animation at all. This is deliberate:
   reliability wins over entrance choreography on constrained/mobile engines. */
@media(max-width:1024px){
  .zsfh-overlay.is-open .zsfh-root-item,
  .zsfh-panel.is-active .zsfh-sub-item,
  .zsfh-panel.is-active .zsfh-tertiary-link{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }

  .zsfh-menu-close{
    top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 18px);
    left:18px;
    width:46px;
    height:46px;
    background:rgba(251,250,246,.97);
  }

  .zsfh-root-link__text{
    line-height:1.14;
  }

  .zsfh-sub-link strong,
  .zsfh-tertiary-link span{
    line-height:1.32;
  }
}

@media(max-width:767px){
  .zsfh-menu-close{
    top:calc(var(--zsfh-page-top) + var(--zsfh-safe-top) + 14px);
    left:14px;
    width:44px;
    height:44px;
  }

  .zsfh-root-link{
    padding-top:9px;
    padding-bottom:9px;
  }

  .zsfh-sub-link{
    padding-top:10px;
    padding-bottom:10px;
  }
}

@media(prefers-reduced-motion:reduce){
  .zsfh-root-item,
  .zsfh-sub-item,
  .zsfh-tertiary-link{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
}
