/* Kebun Bistro managed media branding. Loaded after hardening.css. */
:root{--kbn-teal-surface-top:#185b57;--kbn-teal-surface-bottom:#0a3734;--kbn-teal-edge:#5d918b;--kbn-page-atmosphere:#070b08}
.brand-logo{display:block;object-fit:contain;filter:grayscale(1) brightness(0) invert(1);opacity:.98}
.header-brand{display:flex!important;align-items:center!important;justify-content:flex-start!important;flex:0 0 auto!important;width:auto!important;height:auto!important;max-width:none!important;margin:0 22px 0 0!important;padding:5px 0!important;gap:11px;color:#f0dfb8;text-transform:uppercase!important;letter-spacing:0!important;overflow:visible!important}
.brand-logo--header{width:48px;height:48px;flex:0 0 48px}
.header-brand-copy{display:grid;gap:2px;min-width:126px;line-height:1}
.header-brand-copy strong{font-family:var(--font-display);font-size:20px;font-weight:400;line-height:1;color:#f0dfb8;letter-spacing:.01em;text-transform:uppercase;white-space:nowrap}
.header-brand-copy small{font-family:var(--font-ui);font-size:7px;font-weight:700;line-height:1.25;letter-spacing:.17em;text-transform:uppercase;color:#9f8d6a;white-space:nowrap}
.header-brand:hover .brand-logo,.header-brand:focus-visible .brand-logo{filter:grayscale(1) brightness(0) invert(1) drop-shadow(0 0 8px rgba(230,200,138,.18))}

/* Primary navigation now belongs to the Campanile display system, not the generic UI font. */
.primary-nav .nav-link,.primary-nav .submenu a{font-family:var(--font-display)!important;font-weight:400!important;font-synthesis:none;text-transform:uppercase!important;letter-spacing:.018em!important}
.primary-nav .nav-link{font-size:15px!important;line-height:1.05}
.primary-nav .submenu a{font-size:15px!important;line-height:1.2;letter-spacing:.012em!important}
.primary-nav .caret,.primary-nav .submenu-toggle{font-family:var(--font-ui)}

.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none;filter:saturate(.78) contrast(1.12) brightness(.77)}
.hero:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(4,5,3,.91) 0%,rgba(4,5,3,.62) 38%,rgba(4,5,3,.22) 68%,rgba(4,5,3,.67) 100%),linear-gradient(180deg,rgba(2,3,2,.05) 0%,rgba(2,3,2,.09) 55%,rgba(5,8,6,.18) 72%,rgba(5,9,7,.48) 84%,rgba(6,10,7,.82) 94%,var(--kbn-page-atmosphere) 100%);box-shadow:inset 0 0 130px rgba(0,0,0,.66),inset 0 -70px 64px rgba(7,11,8,.42)}
.hero-inner{z-index:2}

/* Seamless Hero → Trust Strip handoff. Hero owns the fade; Trust only continues it downward, never back over the video. */
.trust-strip{position:relative;isolation:isolate;margin-top:0}
.trust-strip:before,.trust-strip:after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:100vw;z-index:0;pointer-events:none;top:0}
.trust-strip:before{height:188px;background:linear-gradient(180deg,var(--kbn-page-atmosphere) 0%,rgba(7,11,8,.96) 18%,rgba(7,11,8,.74) 44%,rgba(7,11,8,.34) 70%,rgba(7,11,8,0) 100%)}
.trust-strip:after{height:160px;background:radial-gradient(ellipse at 50% 0%,rgba(23,106,101,.095) 0%,rgba(23,106,101,.055) 34%,rgba(23,106,101,.018) 58%,transparent 78%)}
.trust-strip-inner{position:relative;z-index:1}

.footer-brand-lockup{display:flex;align-items:flex-start;gap:24px;min-width:0}
.brand-logo--footer{width:78px;height:78px;flex:0 0 78px;margin-top:3px}
.footer-brand-lockup .footer-masthead-copy{min-width:0}

/* Brand Breathe: transparent scroll chapter integrated into the existing page atmosphere. */
.kbn-brand-breathe{position:relative;height:500vh;background:transparent;contain:layout style}
.kbn-brand-breathe__sticky{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;isolation:isolate;background:transparent}
.kbn-brand-breathe__sticky:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(198,161,93,.05) 0%,rgba(23,106,101,.022) 30%,transparent 68%)}
.kbn-brand-breathe__mark{position:absolute;inset:0;z-index:1;display:grid;place-items:center;pointer-events:none;opacity:1;clip-path:circle(0% at 50% 50%);-webkit-clip-path:circle(0% at 50% 50%);transform:scale(.82);transform-origin:50% 50%;will-change:transform,clip-path}
.kbn-brand-breathe__mark-inner{position:relative;width:min(48vw,620px);aspect-ratio:1;transform:translateZ(0)}
.kbn-brand-breathe__logo-layer{position:absolute;inset:0}
.kbn-brand-breathe__logo-face{background:radial-gradient(circle at 40% 28%,rgba(255,255,255,.035),transparent 40%),linear-gradient(180deg,var(--kbn-teal-surface-top),var(--kbn-teal-surface-bottom));-webkit-mask-image:var(--kbn-brand-logo);mask-image:var(--kbn-brand-logo);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;opacity:1;filter:none}
.kbn-brand-breathe__logo-grain{position:absolute;inset:0;opacity:.07;pointer-events:none;background:radial-gradient(circle at 35% 35%,rgba(255,245,215,.58) 0 .42px,transparent .68px) 0 0/24px 24px,radial-gradient(circle at 64% 62%,rgba(43,26,8,.68) 0 .5px,transparent .78px) 0 0/32px 32px;-webkit-mask-image:var(--kbn-brand-logo);mask-image:var(--kbn-brand-logo);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;mix-blend-mode:soft-light;animation:kbn-logo-grain-loop 8s linear infinite;will-change:background-position}
@keyframes kbn-logo-grain-loop{from{background-position:0 0,0 0}to{background-position:24px 24px,-32px 32px}}
.kbn-brand-breathe__copy{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none}
.kbn-brand-breathe__statement{position:absolute;width:min(1220px,calc(100vw - 72px));margin:0;color:#f0dfb8;text-align:center;font-family:var(--font-display);font-size:clamp(58px,7.9vw,142px);font-weight:400;font-style:normal;font-synthesis:none;line-height:.91;letter-spacing:-.045em;text-transform:uppercase;text-wrap:balance;opacity:0;transform:translate3d(0,64px,0) scale(.66);transform-origin:50% 50%;filter:blur(9px);text-shadow:0 18px 44px rgba(0,0,0,.28);will-change:transform,opacity,filter}
.kbn-brand-breathe__statement span{display:block}
.kbn-brand-breathe__progress{position:absolute;left:50%;bottom:max(30px,env(safe-area-inset-bottom));z-index:5;width:78px;height:1px;transform:translateX(-50%);overflow:hidden;background:rgba(240,223,184,.10);pointer-events:none}
.kbn-brand-breathe__progress i{display:block;width:100%;height:100%;background:rgba(230,200,138,.58);transform:scaleX(0);transform-origin:left center;will-change:transform}

@media (max-width:1320px){
  .header-brand{margin-right:auto!important;padding:5px 0!important;gap:9px}
  .brand-logo--header{width:44px;height:44px;flex-basis:44px}
  .header-brand-copy{min-width:114px}
  .header-brand-copy strong{font-size:18px}
  .header-brand-copy small{font-size:6.5px;letter-spacing:.14em}
  .primary-nav .nav-link{font-size:18px!important;line-height:1.12}
  .primary-nav .submenu a{font-size:16px!important}
}
@media (max-width:1023px){
  .kbn-brand-breathe__mark-inner{width:min(60vw,500px)}
}
@media (max-width:760px){
  .hero{min-height:720px}
  .hero:after{background:linear-gradient(90deg,rgba(4,5,3,.76) 0%,rgba(4,5,3,.43) 48%,rgba(4,5,3,.16) 100%),linear-gradient(180deg,rgba(2,3,2,.03) 0%,rgba(2,3,2,.08) 58%,rgba(6,10,7,.74) 100%);box-shadow:inset 0 0 76px rgba(0,0,0,.42)}
  .hero h1{font-size:clamp(46px,14vw,58px);line-height:.94}
  .hero-copy>p{max-width:31ch;font-size:17px;line-height:1.45}
  .trust-strip:before{height:146px;background:linear-gradient(180deg,var(--kbn-page-atmosphere) 0%,rgba(7,11,8,.94) 20%,rgba(7,11,8,.66) 48%,rgba(7,11,8,.24) 76%,rgba(7,11,8,0) 100%)}
  .trust-strip:after{height:124px;background:radial-gradient(ellipse at 50% 0%,rgba(23,106,101,.075) 0%,rgba(23,106,101,.038) 42%,transparent 78%)}
  .kbn-brand-breathe{display:none}
}
@media (max-width:640px){
  .header-brand{gap:8px;margin-right:auto!important}
  .brand-logo--header{width:40px;height:40px;flex-basis:40px}
  .header-brand-copy{min-width:0}
  .header-brand-copy strong{font-size:17px}
  .header-brand-copy small{display:none}
  .footer-brand-lockup{gap:16px}
  .brand-logo--footer{width:62px;height:62px;flex-basis:62px}
  .primary-nav .nav-link{font-size:17px!important}
  .primary-nav .submenu a{font-size:15px!important}
  .section,.story,.eco-section{padding-top:62px;padding-bottom:62px}
  .section-heading p,.menu-card p,.menu-detailed-desc{display:none}
  .section-heading{margin-bottom:28px}
  .section h2,.story-copy h2,.eco-section h2{font-size:clamp(40px,12vw,48px)}
}
@media (max-width:430px){
  .kbn-brand-breathe__mark-inner{width:min(80vw,360px)}
}
@media (max-width:390px){.header-brand-copy strong{font-size:15px}.brand-logo--header{width:36px;height:36px;flex-basis:36px}.primary-nav .nav-link{font-size:16px!important}}
@media (prefers-reduced-motion:reduce){
  .kbn-brand-breathe{height:auto}
  .kbn-brand-breathe__sticky{position:relative;height:auto;min-height:100svh;padding:100px 20px;display:grid;align-content:center;gap:58px}
  .kbn-brand-breathe__mark{position:relative;inset:auto;opacity:1!important;clip-path:none!important;-webkit-clip-path:none!important;transform:none!important;min-height:38vh}
  .kbn-brand-breathe__mark-inner{width:min(60vw,500px)}
  .kbn-brand-breathe__logo-face{opacity:1}
  .kbn-brand-breathe__logo-grain{animation:none!important}
  .kbn-brand-breathe__copy{position:relative;inset:auto;display:grid;gap:44px}
  .kbn-brand-breathe__statement{position:relative;width:min(900px,100%);opacity:1!important;transform:none!important;filter:none!important;font-size:clamp(44px,9vw,78px)}
  .kbn-brand-breathe__progress{display:none}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){
  .kbn-brand-breathe__mark-inner{width:min(78vw,420px)}
}
@media (max-width:430px) and (prefers-reduced-motion:reduce){
  .kbn-brand-breathe__mark-inner{width:min(80vw,360px)}
}
