/* Kebun Bistro master CTA kit. All frontend action buttons use this owner. */
:root{
  --kbn-btn-font:var(--font-display);
  --kbn-btn-size:15px;
  --kbn-btn-height:58px;
  --kbn-btn-pad:clamp(42px,3vw,52px);
  --kbn-btn-letter:.018em;
  --kbn-btn-ease:cubic-bezier(.2,.72,.2,1);
}

/* Geometry is intentionally authoritative. :is() supplies normal specificity and
 * !important protects the shared dimensions from stale/minified legacy .btn rules.
 * Variant geometry must stay in this file so there is still only one owner. */
:is(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button){
  min-height:var(--kbn-btn-height)!important;
  padding-block:0!important;
  padding-inline:var(--kbn-btn-pad)!important;
}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button){
  --kbn-btn-bg-top:#d6b36b;
  --kbn-btn-bg-bottom:#bd9250;
  --kbn-btn-bg-hover-top:#e0c17b;
  --kbn-btn-bg-hover-bottom:#c69a54;
  --kbn-btn-border:rgba(233,202,139,.88);
  --kbn-btn-border-hover:#f0d899;
  --kbn-btn-text:#171108;
  --kbn-btn-text-hover:#0d0a05;
  --kbn-btn-inner:rgba(69,43,17,.20);
  --kbn-btn-inner-light:rgba(255,240,195,.12);
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:0;
  overflow:hidden;
  border:1px solid var(--kbn-btn-border)!important;
  border-radius:0!important;
  background:linear-gradient(180deg,var(--kbn-btn-bg-top),var(--kbn-btn-bg-bottom))!important;
  color:var(--kbn-btn-text)!important;
  font-family:var(--kbn-btn-font)!important;
  font-size:var(--kbn-btn-size)!important;
  font-weight:400!important;
  font-style:normal;
  font-synthesis:none;
  line-height:1.05;
  letter-spacing:var(--kbn-btn-letter)!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  white-space:nowrap;
  text-shadow:0 1px 0 rgba(255,245,214,.30);
  box-shadow:
    inset 0 0 0 5px var(--kbn-btn-inner),
    inset 0 0 0 6px var(--kbn-btn-inner-light),
    inset 0 1px 0 rgba(255,248,221,.42),
    inset 0 -4px 0 rgba(91,60,24,.20),
    0 13px 28px rgba(0,0,0,.28)!important;
  cursor:pointer;
  transition:border-color .24s ease,box-shadow .24s ease,color .24s ease,background .24s ease,filter .24s ease;
  -webkit-tap-highlight-color:transparent;
}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button)::after{
  content:"";
  position:absolute;
  top:-55%;
  bottom:-55%;
  left:-38%;
  width:30%;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,245,214,.34),transparent);
  transform:rotate(14deg) translateX(-180%);
  transition:transform .62s var(--kbn-btn-ease);
}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button):hover,
:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button):focus-visible{
  transform:none!important;
  border-color:var(--kbn-btn-border-hover)!important;
  background:linear-gradient(180deg,var(--kbn-btn-bg-hover-top),var(--kbn-btn-bg-hover-bottom))!important;
  color:var(--kbn-btn-text-hover)!important;
  box-shadow:
    inset 0 0 0 5px rgba(94,63,25,.16),
    inset 0 0 0 6px rgba(255,240,195,.18),
    inset 0 1px 0 rgba(255,250,231,.55),
    inset 0 -4px 0 rgba(91,60,24,.16),
    0 17px 34px rgba(0,0,0,.34),
    0 0 0 1px rgba(198,161,93,.14)!important;
}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button):hover::after,
:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button):focus-visible::after{
  transform:rotate(14deg) translateX(520%);
}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button):focus-visible{
  outline:2px solid rgba(230,200,138,.86)!important;
  outline-offset:4px;
}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button):active{
  filter:saturate(.92) brightness(.96);
}

/* Rich-page CTA variants may change paint tokens, never button construction. */
:where(.kbn-pe-button--primary){
  --kbn-btn-bg-top:var(--kbn-page-accent);
  --kbn-btn-bg-bottom:var(--kbn-page-accent);
  --kbn-btn-bg-hover-top:var(--kbn-page-accent);
  --kbn-btn-bg-hover-bottom:var(--kbn-page-accent);
  --kbn-btn-border:var(--kbn-page-accent);
  --kbn-btn-border-hover:var(--kbn-page-accent);
  --kbn-btn-text:#0b0d09;
  --kbn-btn-text-hover:#080906;
}
:where(.kbn-pe-button--secondary){
  --kbn-btn-bg-top:transparent;
  --kbn-btn-bg-bottom:transparent;
  --kbn-btn-bg-hover-top:var(--kbn-page-accent-soft);
  --kbn-btn-bg-hover-bottom:var(--kbn-page-accent-soft);
  --kbn-btn-border:var(--kbn-page-accent);
  --kbn-btn-border-hover:var(--kbn-page-accent);
  --kbn-btn-text:var(--kbn-page-cream);
  --kbn-btn-text-hover:var(--kbn-page-cream);
}

/* Dark/outline variant: same construction and motion language, different material. */
:where(.btn.secondary,.kbn-btn--dark,.wp-block-button.is-style-outline>.wp-block-button__link){
  --kbn-btn-bg-top:#17170f;
  --kbn-btn-bg-bottom:#090a07;
  --kbn-btn-bg-hover-top:#242015;
  --kbn-btn-bg-hover-bottom:#11110b;
  --kbn-btn-border:rgba(198,161,93,.56);
  --kbn-btn-border-hover:rgba(230,200,138,.92);
  --kbn-btn-text:#ead9b4;
  --kbn-btn-text-hover:#fff0c7;
  --kbn-btn-inner:rgba(198,161,93,.13);
  --kbn-btn-inner-light:rgba(255,239,198,.04);
  text-shadow:0 1px 0 rgba(0,0,0,.65);
}

:where(.btn.secondary,.kbn-btn--dark,.wp-block-button.is-style-outline>.wp-block-button__link)::after{
  background:linear-gradient(90deg,transparent,rgba(230,200,138,.18),transparent);
}

/* Footer reservation is a stacked expression of the same dark master kit. */
.footer-reserve.kbn-btn{
  display:flex!important;
  min-width:310px;
  min-height:88px!important;
  padding:17px 62px 17px 24px!important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  text-align:left;
  white-space:normal;
}
.footer-reserve.kbn-btn span{position:relative;z-index:1;color:#a8946c;font-family:var(--font-ui);font-size:8px;font-weight:700;line-height:1.2;letter-spacing:.15em;text-transform:uppercase}
.footer-reserve.kbn-btn strong{position:relative;z-index:1;color:inherit;font-family:var(--font-display);font-size:20px;font-weight:400;line-height:1.05;letter-spacing:.01em}
.footer-reserve.kbn-btn svg{position:absolute;right:22px;top:50%;z-index:1;width:24px;height:24px;transform:translateY(-50%);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button)[disabled],
:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button)[aria-disabled="true"]{
  opacity:.5;
  cursor:not-allowed;
  pointer-events:none;
}

@media (max-width:1320px){:root{--kbn-btn-size:18px}}
@media (max-width:760px){:root{--kbn-btn-height:56px;--kbn-btn-pad:32px}.footer-reserve.kbn-btn{min-width:0;width:100%;min-height:82px!important}}
@media (max-width:640px){:root{--kbn-btn-size:17px}}
@media (max-width:390px){:root{--kbn-btn-size:16px;--kbn-btn-pad:26px}}
@media (prefers-reduced-motion:reduce){:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button),:where(.btn,.kbn-btn,.wp-element-button,.wp-block-button__link,.kbn-form button,.kbn-pe-button)::after{transition:none!important}}
