/* Kebun Bistro interaction layer: native SVG cursors + restrained framed-element shimmer. */
@media (pointer:fine) and (hover:hover){
  html,body{cursor:url("../cursors/kebun-cursor-default.svg") 11 1,default}
  :where(a,button,[role="button"],summary,select,label[for],input[type="button"],input[type="submit"],input[type="reset"],input[type="checkbox"],input[type="radio"],.nav-link,.submenu-toggle,.kbn-btn,.wp-element-button,.wp-block-button__link){cursor:url("../cursors/kebun-cursor-pointer.svg?v=4") 15 1,pointer}
  :where(input[type="text"],input[type="email"],input[type="tel"],input[type="search"],input[type="url"],input[type="password"],input[type="number"],textarea,[contenteditable="true"]){cursor:text}
  #wpadminbar,#wpadminbar *{cursor:auto!important}
  #wpadminbar :where(a,button,[role="button"]){cursor:pointer!important}
}

.nav-label{position:relative;display:inline-block;isolation:isolate}
/* Bistro Menus plaque is now handled by .nav-item.menus>.nav-link in hardening.css.
   The ::after overlay is retired — no visual here. */
.nav-label--bistro:after{display:none}

/* One-shot shimmer for custom framed controls. JS only adds the child layer to
   elements that actually use the Kebun plaque/frame language. */
.kbn-frame-shimmer-target{position:relative!important;isolation:isolate}
.kbn-frame-shimmer-target>.kbn-frame-shimmer{
  position:absolute;
  inset:0;
  z-index:2;
  display:block;
  pointer-events:none;
  border-radius:inherit;
  opacity:0;
  background-image:linear-gradient(
    var(--kbn-shimmer-angle,112deg),
    transparent 31%,
    rgba(255,249,228,.018) 39%,
    rgba(240,211,147,.13) 46%,
    rgba(255,246,211,.38) 50%,
    rgba(101,181,188,.11) 54%,
    rgba(233,195,122,.08) 59%,
    transparent 68%
  );
  background-size:260% 260%;
  background-position:var(--kbn-shimmer-from,0% 50%);
  background-repeat:no-repeat;
  mix-blend-mode:screen;
  filter:saturate(.92) blur(.15px);
  transform:translateZ(0);
  backface-visibility:hidden;
}
.kbn-frame-shimmer-target>:not(.kbn-frame-shimmer){position:relative;z-index:3}
.kbn-frame-shimmer-target.is-kbn-shimmering>.kbn-frame-shimmer{
  animation:kbn-frame-shimmer-sweep var(--kbn-shimmer-duration,780ms) cubic-bezier(.22,.61,.36,1) 1 both;
}
/* Homepage promo plaques are non-rectangular, so clip the light to the supplied
   plaque silhouette instead of flashing across the transparent corners. */
.kbn-promo.kbn-frame-shimmer-target>.kbn-frame-shimmer{
  border-radius:0;
  -webkit-mask:url("../images/plaque-card.svg") center/100% 100% no-repeat;
  mask:url("../images/plaque-card.svg") center/100% 100% no-repeat;
}
@keyframes kbn-frame-shimmer-sweep{
  0%{opacity:0;background-position:var(--kbn-shimmer-from,0% 50%)}
  16%{opacity:.08}
  42%{opacity:.58}
  62%{opacity:.78}
  84%{opacity:.16}
  100%{opacity:0;background-position:var(--kbn-shimmer-to,100% 50%)}
}

/* In collapsed navigation Bistro Menus is intentionally a flat row, so the
   framed shimmer stays off. Reserve remains framed and keeps the effect. */
@media(max-width:1024px){
  .nav-item.menus>.nav-link.kbn-frame-shimmer-target>.kbn-frame-shimmer,
  .kbn-nav-plaque--menu>.nav-link.kbn-frame-shimmer-target>.kbn-frame-shimmer{display:none}
}

@media (prefers-reduced-motion:reduce){
  .nav-item.menus>.nav-link{transition:none}
  .kbn-frame-shimmer-target>.kbn-frame-shimmer{display:none!important;animation:none!important}
}
