/* ==========================================================================
   Feta & Olive — shell
   Preloader, header, mobile menu, inner-page banner, unified footer,
   custom cursor, back-to-top, WhatsApp button, 404. Loaded on every view.
   ========================================================================== */

/* ---------------------------------------------------------------- Preloader
   0–2.6s  logo draws, tagline writes, counter runs 000→100 along a gold line
   2.7s    content lifts away
   2.85s   cream curtain rises (curved hem) → green curtain follows at 3.05s
   Repeat views in the same session: a 1.2s curtain only. */
.fno-preloader{position:fixed;inset:0;z-index:10000;pointer-events:auto;animation:fnoLdGone 0s linear 4.1s both}
.fno-preloader__layer,.fno-preloader__stage{position:absolute;inset:0;will-change:transform}
.fno-preloader__layer{background:var(--fno-primary);animation:fnoLdLift 1.05s cubic-bezier(.76,0,.24,1) 3.05s both}
.fno-preloader__stage{
  display:flex;align-items:center;justify-content:center;background:var(--fno-bg);
  animation:fnoLdLift 1.05s cubic-bezier(.76,0,.24,1) 2.85s both;
}
.fno-preloader__layer::after,.fno-preloader__stage::after{
  content:"";position:absolute;inset-block-start:calc(100% - 1px);inset-inline-start:-20%;inline-size:140%;block-size:18vh;
  border-radius:0 0 50% 50%;background:inherit;
}
.fno-preloader__stage::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(ellipse at center,rgba(var(--fno-gold-rgb),.14),transparent 60%);
}
.fno-preloader__inner{position:relative;display:flex;flex-direction:column;align-items:center;animation:fnoLdUp .6s cubic-bezier(.7,0,.3,1) 2.65s both}
.fno-preloader__mark{inline-size:min(200px,44vw)}
.fno-preloader__tag{margin:26px 0 0;font-family:var(--fno-font-accent);font-style:italic;font-size:clamp(20px,1.2rem + .6vw,26px);color:var(--fno-brass);white-space:nowrap}
.fno-preloader__tag span{display:inline-block;animation:fnoLgLet .55s var(--fno-ease) both;animation-delay:calc(1.55s + var(--i) * 28ms)}
.fno-preloader__foot{
  position:absolute;inset-inline:clamp(20px,4vw,56px);inset-block-end:clamp(22px,4vh,40px);
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--fno-brass);
  animation:fnoLgLet .8s var(--fno-ease) .4s both;
}
.fno-preloader__count{font-family:var(--fno-font-display);font-size:clamp(34px,2rem + 1.5vw,56px);font-weight:400;letter-spacing:.02em;line-height:1;color:var(--fno-primary);font-variant-numeric:tabular-nums}
.fno-preloader__bar{
  position:absolute;inset-inline:0;inset-block-end:0;block-size:2px;background:var(--fno-gold);
  transform-origin:left center;transform:scaleX(0);animation:fnoLdBar 2.6s cubic-bezier(.6,0,.25,1) .1s both;
}
.fno-preloader.is-seen .fno-preloader__layer{animation-delay:.4s}
.fno-preloader.is-seen .fno-preloader__stage{animation-delay:.22s}
.fno-preloader.is-seen{animation-delay:1.5s}
.fno-preloader.is-seen .fno-preloader__inner{animation:fnoLdUp .4s cubic-bezier(.7,0,.3,1) .1s both}
.fno-preloader.is-seen .fno-preloader__tag,.fno-preloader.is-seen .fno-preloader__foot,.fno-preloader.is-seen .fno-preloader__bar{display:none}
.fno-preloader.is-seen .fno-lmark *{animation:none!important}
.fno-preloader.is-done,.fno-preloader.is-done *{animation:none!important}
.fno-preloader.is-done{opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}
@keyframes fnoLdLift{to{transform:translateY(calc(-100% - 19vh))}}
@keyframes fnoLdUp{to{transform:translateY(-6vh) scale(.94);opacity:0}}
@keyframes fnoLdBar{to{transform:scaleX(1)}}
@keyframes fnoLdGone{to{visibility:hidden;pointer-events:none}}
.fno-lmark{inline-size:100%;block-size:auto;overflow:visible}
.fno-lmark .lg-disc{transform-box:fill-box;transform-origin:center;animation:fnoLgPop 1s var(--fno-ease) both}
.fno-lmark .lg-ring,.fno-lmark .lg-inner{transform-box:fill-box;transform-origin:center;animation:fnoLgPop .9s var(--fno-ease) .35s both}
.fno-lmark .lg-trunk{animation:fnoLgGrow 1s cubic-bezier(.6,0,.2,1) .7s both}
.fno-lmark .lg-leaf{transform-box:fill-box;transform-origin:center bottom;animation:fnoLgLeaf .7s var(--fno-ease) both;animation-delay:calc(1s + var(--i) * 35ms)}
.fno-lmark .lg-let{animation:fnoLgLet .6s var(--fno-ease) both;animation-delay:calc(1.3s + var(--i) * 40ms)}
.fno-lmark .lg-dot{animation:fnoLgLet .5s var(--fno-ease) 2.4s both}
@keyframes fnoLgPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes fnoLgGrow{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes fnoLgLeaf{from{transform:scale(0) rotate(-40deg);opacity:0}to{transform:none;opacity:1}}
@keyframes fnoLgLet{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
body.fno-lock{overflow:hidden}

/* ------------------------------------------------------------------- Header
   Option B — two tiers: deep-green utility strip + main row.
   Over the hero/banner the main row is transparent with a gold hairline;
   scrolled, the strip folds away and the row becomes a cream bar. */
.fno-header{
  position:absolute;inset-inline:0;inset-block-start:0;z-index:100;
  color:var(--fno-primary);
  transition:transform .6s var(--fno-ease),background-color .5s,box-shadow .5s,color .4s;
}
body.fno-header-over .fno-header{color:var(--fno-bg)}

/* Utility strip */
.fno-topbar{
  block-size:var(--fno-topbar-h);overflow:hidden;
  background:var(--fno-primary-dark,#002624);color:rgba(var(--fno-bg-rgb),.8);
  font-size:13px;letter-spacing:.02em;
  border-block-end:1px solid rgba(233,207,148,.14);
}
.fno-topbar__inner{
  block-size:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding-inline:clamp(20px,3.9vw,56px);max-inline-size:1440px;margin-inline:auto;
}
.fno-topbar__start,.fno-topbar__end{display:flex;align-items:center;gap:16px;min-inline-size:0}
.fno-topbar__sep{inline-size:1px;block-size:16px;background:rgba(var(--fno-bg-rgb),.2)}
.fno-topbar__link{display:inline-flex;align-items:center;gap:8px;color:inherit;white-space:nowrap;transition:color .3s}
.fno-topbar__link svg{color:var(--fno-gold-light);flex:none}
a.fno-topbar__link:hover{color:var(--fno-gold-light)}
.fno-topbar .fno-status{background:rgba(var(--fno-bg-rgb),.08);color:var(--fno-bg);padding-block:5px;font-size:12px}
.fno-social--top{gap:6px;margin-inline-start:6px}
.fno-social--top .fno-social__link{inline-size:28px;block-size:28px;box-shadow:inset 0 0 0 1px rgba(var(--fno-bg-rgb),.22)}
.fno-social--top .fno-social__link svg{inline-size:14px;block-size:14px}
.fno-social--top .fno-social__link:hover{transform:translateY(-2px)}

/* Main row */
.fno-header__main{border-block-end:1px solid rgba(233,207,148,.3);transition:border-color .4s}
body.fno-header-solid .fno-header__main{border-block-end-color:var(--fno-line)}
body.fno-has-banner .fno-header:not(.is-fixed) .fno-header__main{
  margin-block-start:20px;margin-inline:20px;border-block-end-color:transparent;
}
.fno-header__inner{
  block-size:var(--fno-main-h);
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;
  padding-inline:clamp(20px,3.9vw,56px);
  max-inline-size:1440px;margin-inline:auto;
  transition:block-size .5s var(--fno-ease);
}

/* Nav — centred, gold diamonds between items */
.fno-header__nav .fno-menu{display:flex;align-items:center;gap:clamp(14px,1.5vw,22px);margin:0;padding:0;list-style:none}
.fno-header__nav .fno-menu > li{display:flex;align-items:center;gap:clamp(14px,1.5vw,22px)}
.fno-header__nav .fno-menu > li + li::before{
  content:"";inline-size:5px;block-size:5px;transform:rotate(45deg);
  background:var(--fno-gold);opacity:.75;flex:none;
}
.fno-header__nav .fno-menu a{
  display:inline-block;padding-block:8px;
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  color:inherit;
  background:linear-gradient(var(--fno-gold),var(--fno-gold)) center bottom/0% 1px no-repeat;
  transition:background-size .5s var(--fno-ease),color .3s;
}
.fno-header__nav .fno-menu a:hover,
.fno-header__nav .current-menu-item > a,
.fno-header__nav .current_page_item > a{background-size:100% 1px}
.fno-header__nav .fno-menu a:hover{color:var(--fno-brass)}
body.fno-header-over .fno-header:not(.is-fixed) .fno-menu a:hover{color:var(--fno-gold-light)}

/* Logo — left; both tones printed, the header state picks one */
.fno-header__brand{display:flex;justify-content:flex-start}
.fno-logo{position:relative;display:block;inline-size:var(--fno-logo-h);block-size:var(--fno-logo-h);transition:transform .6s var(--fno-ease),inline-size .5s var(--fno-ease),block-size .5s var(--fno-ease)}
.fno-logo img{position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:contain;transition:opacity .4s}
.fno-logo:hover{transform:rotate(-8deg) scale(1.04)}
.fno-logo__light{opacity:0}
body.fno-header-over .fno-header:not(.is-fixed) .fno-logo__dark{opacity:0}
body.fno-header-over .fno-header:not(.is-fixed) .fno-logo__light{opacity:1}

/* Actions — one button; the status pill joins only in the fixed bar */
.fno-header__actions{display:flex;justify-content:flex-end;align-items:center;gap:14px}
.fno-header .fno-header__status{display:none;background:rgba(var(--fno-primary-rgb),.06)}
.fno-header.is-fixed .fno-header__status,
.fno-header:not(.has-topbar) .fno-header__status{display:inline-flex}
body.fno-header-over .fno-header:not(.is-fixed) .fno-header__status{background:rgba(var(--fno-bg-rgb),.1)}
.fno-header__cta{--btn-bg:var(--fno-primary);--btn-fg:var(--fno-bg);--btn-ring:transparent;--btn-fill:var(--fno-gold);--btn-hover-fg:#1E1606}
body.fno-header-over .fno-header:not(.is-fixed) .fno-header__cta{--btn-bg:var(--fno-bg);--btn-fg:var(--fno-primary)}

/* Sticky state: strip folds away, soft cream bar */
body .fno-header.is-fixed{
  position:fixed;inset-block-start:0;
  color:var(--fno-primary);
  background:rgba(var(--fno-bg-rgb),.9);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
  box-shadow:0 20px 40px -34px rgba(var(--fno-primary-dark-rgb),.5);
  animation:fnoDrop .7s var(--fno-ease) both;
}
.fno-header.is-fixed .fno-topbar{display:none}
.fno-header.is-fixed .fno-header__main{border-block-end-color:var(--fno-line)}
.fno-header.is-fixed .fno-header__inner{block-size:var(--fno-sticky-h)}
.fno-header.is-fixed .fno-logo{inline-size:60px;block-size:60px}
.fno-header.is-hidden{translate:0 -110%;transition:translate .6s var(--fno-ease),background-color .5s,box-shadow .5s}
.fno-header{transition:translate .6s var(--fno-ease),transform .6s var(--fno-ease),background-color .5s,box-shadow .5s,color .4s}
@keyframes fnoDrop{from{transform:translateY(-100%)}to{transform:none}}

/* Burger */
.fno-burger{display:none;flex:none;position:relative;inline-size:48px;block-size:48px;border-radius:50%;box-shadow:inset 0 0 0 1px currentColor}
.fno-burger span{position:absolute;inset-inline-start:15px;inline-size:18px;block-size:1.5px;background:currentColor;transition:transform .4s var(--fno-ease)}
.fno-burger span:first-child{inset-block-start:19px}.fno-burger span:last-child{inset-block-start:27px;inline-size:12px}
.fno-burger:hover span:last-child{inline-size:18px}

@media (max-width:1320px){.fno-topbar__start .fno-topbar__link span{max-inline-size:360px;overflow:hidden;text-overflow:ellipsis}}
@media (max-width:1180px){
  .fno-topbar{display:none}
  .fno-header__nav,.fno-header__cta{display:none}
  .fno-burger{display:inline-block}
  .fno-header__inner{grid-template-columns:auto minmax(0,1fr) auto}
  .fno-logo{inline-size:var(--fno-logo-h-m);block-size:var(--fno-logo-h-m)}
  .fno-header .fno-header__status,.fno-header.is-fixed .fno-header__status{display:none}
  .fno-header.is-fixed .fno-logo{inline-size:52px;block-size:52px}
  body.fno-has-banner .fno-header:not(.is-fixed) .fno-header__main{margin:12px 12px 0}
}
@media (min-width:700px) and (max-width:1180px){.fno-header .fno-header__status,.fno-header.is-fixed .fno-header__status{display:inline-flex}}

/* ---------------------------------------------------------------- Mobile */
.fno-mobile{
  position:fixed;inset:0;z-index:200;visibility:hidden;
  background:var(--fno-primary);color:var(--fno-bg);
  clip-path:circle(0% at calc(100% - 48px) 44px);
  transition:clip-path .9s var(--fno-curtain),visibility 0s linear .9s;
}
.fno-mobile.is-open{visibility:visible;clip-path:circle(150% at calc(100% - 48px) 44px);transition:clip-path .9s var(--fno-curtain)}
.fno-mobile .fno-stars{opacity:1}
.fno-mobile__panel{position:relative;block-size:100%;overflow:auto;display:flex;flex-direction:column;padding:22px clamp(20px,5vw,40px) 34px}
.fno-mobile__top{display:flex;align-items:center;justify-content:space-between}
.fno-mobile__top .fno-logo{inline-size:64px;block-size:64px}
.fno-mobile__top .fno-logo__light{opacity:1}
.fno-mobile__close{color:var(--fno-bg);box-shadow:inset 0 0 0 1px rgba(var(--fno-bg-rgb),.4)}
.fno-mobile__close:hover{background:var(--fno-bg);color:var(--fno-primary)}
.fno-mobile__status{margin-block-start:26px;align-self:flex-start;background:rgba(var(--fno-bg-rgb),.1)}
.fno-mobile__nav{margin-block:34px auto}
.fno-menu--mobile{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.fno-menu--mobile a{
  display:block;padding-block:8px;
  font-family:var(--fno-font-display);font-size:clamp(2rem,9vw,2.8rem);line-height:1.15;color:var(--fno-bg);
  transform:translateY(24px);opacity:0;transition:transform .8s var(--fno-ease),opacity .6s,color .3s;
}
.fno-mobile.is-open .fno-menu--mobile a{transform:none;opacity:1}
.fno-mobile.is-open .fno-menu--mobile li:nth-child(2) a{transition-delay:.06s}
.fno-mobile.is-open .fno-menu--mobile li:nth-child(3) a{transition-delay:.12s}
.fno-mobile.is-open .fno-menu--mobile li:nth-child(4) a{transition-delay:.18s}
.fno-mobile.is-open .fno-menu--mobile li:nth-child(5) a{transition-delay:.24s}
.fno-mobile.is-open .fno-menu--mobile li:nth-child(6) a{transition-delay:.3s}
.fno-menu--mobile a:hover,.fno-menu--mobile .current-menu-item > a{color:var(--fno-gold-light)}
.fno-mobile__foot{display:grid;gap:22px}
.fno-mobile__contact{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:15px;color:rgba(var(--fno-bg-rgb),.8)}
.fno-mobile__contact li{display:flex;gap:12px;align-items:flex-start}
.fno-mobile__contact svg{color:var(--fno-gold-light);margin-block-start:4px}

/* Social icons */
.fno-social{display:flex;gap:10px;margin:0;padding:0;list-style:none}
.fno-social__link{
  inline-size:42px;block-size:42px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 0 1px rgba(var(--fno-bg-rgb),.3);color:var(--fno-bg);
  transition:background-color .4s,color .4s,transform .4s var(--fno-ease);
}
.fno-social__link:hover{background:var(--fno-bg);color:var(--fno-primary);transform:translateY(-3px)}

/* ---------------------------------------------------------------- Banner */
.fno-banner{position:relative;padding:calc(var(--fno-topbar-h) + 20px) 20px 0;background:var(--fno-bg)}
.fno-banner__panel{
  position:relative;overflow:hidden;isolation:isolate;
  min-block-size:420px;border-radius:40px;
  display:flex;align-items:center;justify-content:center;
  padding:calc(var(--fno-main-h) + 18px) var(--fno-gutter) 70px;
  background:var(--fno-primary);color:var(--fno-bg);
  box-shadow:var(--fno-shadow-l);
}
.fno-banner__art{position:absolute;inset:0;inline-size:100%;block-size:100%;z-index:-1}
.fno-banner__wm{position:absolute;z-index:-1;inline-size:440px;block-size:440px;object-fit:contain;opacity:.07;pointer-events:none}
.fno-banner__wm--a{inset-inline-start:-150px;inset-block-start:70px}
.fno-banner__wm--b{inset-inline-end:-150px;inset-block-start:-90px}
.fno-banner__inner{text-align:center;max-inline-size:900px}
.fno-banner__crumbs{display:inline-flex;align-items:center;gap:14px;color:var(--fno-gold-light)}
.fno-crumbs ol{display:flex;align-items:center;gap:10px;margin:0;padding:0;list-style:none;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.fno-crumbs a{color:rgba(var(--fno-bg-rgb),.7);transition:color .3s}
.fno-crumbs a:hover{color:var(--fno-bg)}
.fno-crumbs__sep{color:var(--fno-gold)}
.fno-crumbs [aria-current] span{color:var(--fno-gold-light)}
.fno-banner__title{margin:18px 0 0;font-size:clamp(2.4rem,1.5rem + 3vw,3.8rem);line-height:1;color:var(--fno-bg)}
.fno-banner__title .fno-accent{color:var(--fno-gold-light);font-size:1.16em}
.fno-banner__sub{margin:16px auto 0;max-inline-size:600px;font-size:16px;line-height:1.7;color:rgba(var(--fno-bg-rgb),.75)}
@media (max-width:767px){
  .fno-banner{padding:12px 12px 0}
  .fno-banner__panel{min-block-size:360px;border-radius:30px;padding-block-end:56px}
  .fno-banner__wm{inline-size:260px;block-size:260px}
}

/* ------------------------------------------------------------------ Footer */
.fno-footer{position:relative;isolation:isolate;color:var(--fno-bg);padding-block-start:clamp(18px,3vw,40px)}
.fno-footer__shape{position:absolute;inset:0;inline-size:100%;block-size:100%;z-index:-2}
.fno-footer__stars{
  position:absolute;inset:clamp(40px,6vw,100px) 0 0;z-index:-1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Cg fill='none' stroke='%23F7F1E1' stroke-opacity='.05'%3E%3Crect x='22' y='22' width='28' height='28'/%3E%3Crect x='22' y='22' width='28' height='28' transform='rotate(45 36 36)'/%3E%3C/g%3E%3C/svg%3E");
}
.fno-footer__inner{max-inline-size:1200px;margin-inline:auto;padding-inline:var(--fno-gutter);text-align:center}
.fno-footer__logo{display:inline-block;inline-size:150px;block-size:150px;transition:transform .9s var(--fno-ease)}
.fno-footer__logo:hover{transform:rotate(-10deg) scale(1.04)}
.fno-footer__logo img{inline-size:100%;block-size:100%;object-fit:contain}
.fno-footer__tagline{margin:10px 0 0;font-family:var(--fno-font-accent);font-style:italic;font-weight:500;font-size:30px;line-height:1.2;color:var(--fno-gold-light)}
.fno-footer__nav{margin-block-start:28px}
.fno-footnav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 26px;margin:0;padding:0;list-style:none;font-family:var(--fno-font-display);font-size:19px}
.fno-footnav li{display:inline-flex;align-items:center;gap:26px}
.fno-footnav li + li::before{content:"";inline-size:4px;block-size:4px;background:var(--fno-gold);transform:rotate(45deg);margin-inline-end:0}
.fno-footnav a,.fno-legalnav a,.fno-footer__col a{opacity:.8;transition:opacity .3s,padding .4s var(--fno-ease),color .3s}
.fno-footnav a:hover{opacity:1;color:var(--fno-gold-light)}
.fno-footer__cols{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;
  margin:34px auto 0;max-inline-size:1040px;padding-block-start:40px;
  border-block-start:1px solid var(--fno-line-light);
}
.fno-footer__label{margin:0;font:600 11px var(--fno-font-body);letter-spacing:.26em;text-transform:uppercase;color:var(--fno-sage)}
.fno-footer__col p,.fno-footer__hours{margin:14px 0 0;padding:0;list-style:none;font-size:15.5px;line-height:1.75;color:rgba(var(--fno-bg-rgb),.8)}
.fno-footer__col a:hover{opacity:1;color:var(--fno-gold-light)}
.fno-footer__hours li.is-today{color:var(--fno-gold-light)}
.fno-footer__hours li.is-today::after{content:" · today";opacity:.8}
.fno-footer__more{display:inline-block;margin-block-start:10px;font-size:13.5px;color:var(--fno-gold-light)!important;opacity:1!important;border-block-end:1px solid rgba(var(--fno-gold-rgb),.45);padding-block-end:2px}
.fno-social--footer{justify-content:center;margin-block-start:14px}
.fno-footer__legal{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;
  margin-block-start:48px;padding-block:22px 30px;
  border-block-start:1px solid rgba(var(--fno-bg-rgb),.1);
  font-size:13px;color:rgba(var(--fno-bg-rgb),.5);
}
.fno-legalnav{display:flex;gap:24px;margin:0;padding:0;list-style:none}
.fno-footer__credit a{color:rgba(var(--fno-bg-rgb),.7)}
.fno-footer__credit a:hover{color:var(--fno-gold-light)}
@media (max-width:860px){
  .fno-footer__cols{grid-template-columns:1fr;gap:30px}
  .fno-footer__legal{justify-content:center;text-align:center}
  .fno-footnav{font-size:17px;gap:10px 18px}
  .fno-footnav li{gap:18px}
}

/* ----------------------------------------------------------- Custom cursor
   Two parts: a precise dot that sits exactly on the pointer (green with a
   cream halo, so it reads on cream, green and photos alike) and a soft gold
   ring that trails it. On links the ring opens up and tints gold — the dot
   never disappears. [data-cur] swaps the ring for a labelled gold disc. */
.fno-cursor,.fno-cursor-dot{position:fixed;inset-inline-start:0;inset-block-start:0;z-index:9999;inline-size:0;block-size:0;pointer-events:none;opacity:0;transition:opacity .3s}
.fno-cursor.is-on,.fno-cursor-dot.is-on{opacity:1}
.fno-cursor-dot{z-index:10000}
.fno-cursor-dot::before{
  content:"";position:absolute;left:-4px;top:-4px;inline-size:8px;block-size:8px;border-radius:50%;
  background:var(--fno-primary);box-shadow:0 0 0 2px rgba(247,241,225,.95),0 2px 8px rgba(0,0,0,.25);
  transition:transform .35s var(--fno-ease),background-color .3s;
}
.fno-cursor-dot.is-link::before{transform:scale(.75);background:var(--fno-brass)}
.fno-cursor-dot.is-big::before{transform:scale(0)}
.fno-cursor-dot.is-down::before{transform:scale(1.4)}
.fno-cursor__ring{
  position:absolute;left:-19px;top:-19px;inline-size:38px;block-size:38px;border-radius:50%;
  box-shadow:inset 0 0 0 1.5px rgba(var(--fno-gold-rgb),.85),0 0 0 1px rgba(247,241,225,.25);
  transition:left .45s var(--fno-ease),top .45s var(--fno-ease),width .45s var(--fno-ease),height .45s var(--fno-ease),background-color .4s,box-shadow .4s,transform .3s var(--fno-ease),opacity .3s;
}
.fno-cursor.is-link .fno-cursor__ring{left:-30px;top:-30px;inline-size:60px;block-size:60px;background:rgba(var(--fno-gold-rgb),.16);box-shadow:inset 0 0 0 1.5px var(--fno-gold)}
.fno-cursor.is-down .fno-cursor__ring{transform:scale(.82)}
.fno-cursor.is-text .fno-cursor__ring,.fno-cursor-dot.is-text::before{opacity:0;transform:scale(.4)}
.fno-cursor__lbl{position:absolute;left:-46px;top:-46px;inline-size:92px;block-size:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:600 11px/1.2 var(--fno-font-body);letter-spacing:.14em;text-transform:uppercase;color:#1E1606;background:var(--fno-gold);opacity:0;transform:scale(.3);transition:opacity .35s,transform .45s var(--fno-ease)}
.fno-cursor.is-big .fno-cursor__ring{opacity:0;transform:scale(1.6)}
.fno-cursor.is-big .fno-cursor__lbl{opacity:1;transform:scale(1)}
@media (hover:hover) and (pointer:fine){
  body.fno-cursor-ready,body.fno-cursor-ready a,body.fno-cursor-ready button,body.fno-cursor-ready label,body.fno-cursor-ready [data-cur]{cursor:none}
  body.fno-cursor-ready input,body.fno-cursor-ready textarea,body.fno-cursor-ready select,body.fno-cursor-ready [contenteditable]{cursor:auto}
}
@media (hover:none),(pointer:coarse){.fno-cursor,.fno-cursor-dot{display:none}}

/* ------------------------------------------------------------- Back to top */
.fno-totop{
  position:fixed;inset-inline-end:24px;inset-block-end:24px;z-index:90;
  inline-size:48px;block-size:48px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--fno-primary);background:var(--fno-bg);
  box-shadow:var(--fno-shadow-m);
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .4s,transform .5s var(--fno-ease),background-color .3s,color .3s;
}
.fno-totop.is-visible{opacity:1;transform:none;pointer-events:auto}
.fno-totop:hover{background:var(--fno-primary);color:var(--fno-bg)}
.fno-totop__ring{position:absolute;inset:0;inline-size:100%;block-size:100%;transform:rotate(-90deg)}
.fno-totop__ring circle{fill:none;stroke:var(--fno-gold);stroke-width:1.5;stroke-dasharray:126;stroke-dashoffset:var(--fno-progress,126)}

/* --------------------------------------------------------------- WhatsApp */
.fno-wa{
  position:fixed;inset-inline-end:24px;inset-block-end:86px;z-index:90;
  inline-size:58px;block-size:58px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--fno-bg);background:var(--fno-primary);
  box-shadow:0 0 0 6px rgba(var(--fno-primary-rgb),.12),var(--fno-shadow-m);
  transition:transform .5s var(--fno-ease),background-color .3s;
}
.fno-wa:hover{transform:scale(1.1) rotate(-8deg);color:#1E1606;background:var(--fno-gold)}

/* --------------------------------------------------------------------- 404 */
.fno-404{min-block-size:100vh;display:flex;align-items:center;padding:calc(var(--fno-header-h) + 40px) var(--fno-gutter) 120px;background:var(--fno-bg)}
.fno-404__inner{inline-size:100%;max-inline-size:var(--fno-container);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:60px;align-items:center}
.fno-404__title{font-size:clamp(2.6rem,1.4rem + 4vw,4.6rem);margin:0}
.fno-404__lead{margin:24px 0 0;max-inline-size:520px;font-size:18px}
.fno-404__actions{display:flex;flex-wrap:wrap;gap:14px;margin-block-start:34px}
.fno-404__plate{position:relative;justify-self:center;inline-size:min(420px,80vw);aspect-ratio:1;border-radius:50%;background:var(--fno-card);box-shadow:0 0 0 14px var(--fno-bg-soft),0 0 0 15px rgba(var(--fno-gold-rgb),.4),var(--fno-shadow-l);display:flex;align-items:center;justify-content:center}
.fno-404__ring{position:absolute;inset:6%;inline-size:88%;block-size:88%}
.fno-404__ring text{font:600 9px var(--fno-font-body);fill:var(--fno-brass)}
.fno-404__num{font-family:var(--fno-font-accent);font-style:italic;font-size:clamp(5rem,12vw,8.5rem);color:var(--fno-primary);line-height:1}
@media (max-width:860px){.fno-404__inner{grid-template-columns:1fr;text-align:center}.fno-404__actions{justify-content:center}.fno-404__lead{margin-inline:auto}}

/* ======================================================= V2 · Motion chrome */
/* Page transition veil: rises on leaving; the next page lifts it (preloader
   "nav" mode). */
.fno-veil{
  position:fixed;inset:0;z-index:10001;display:grid;place-items:center;pointer-events:none;
  background:var(--fno-primary);transform:translateY(110%);visibility:hidden;
}
.fno-veil::before{content:"";position:absolute;inset-inline:-20%;inset-block-end:calc(100% - 1px);block-size:18vh;border-radius:50% 50% 0 0;background:inherit}
.fno-veil__mark{inline-size:84px;block-size:84px;opacity:0;transform:scale(.8);transition:opacity .3s .25s,transform .5s var(--fno-ease) .2s}
body.fno-leaving .fno-veil{visibility:visible;transform:translateY(0);transition:transform .56s cubic-bezier(.76,0,.24,1);pointer-events:auto}
body.fno-leaving .fno-veil__mark{opacity:1;transform:none}
.fno-preloader.is-nav{animation:fnoLdGone 0s linear 1s both}
.fno-preloader.is-nav .fno-preloader__stage{display:none}
.fno-preloader.is-nav .fno-preloader__layer{display:grid;place-items:center;animation:fnoLdLift .9s cubic-bezier(.76,0,.24,1) .08s both}
.fno-preloader__navmark{display:none}
.fno-preloader.is-nav .fno-preloader__navmark{display:block;inline-size:84px;block-size:84px;animation:fnoNavMark .35s ease-in both}
@keyframes fnoNavMark{to{opacity:0;transform:scale(.9) translateY(-10px)}}
.fno-preloader.is-nav .fno-preloader__layer::after{background:var(--fno-primary)}

/* Scroll progress along the bottom of the fixed header */
.fno-header__progress{position:absolute;inset-inline:0;inset-block-end:-1px;block-size:2px;background:var(--fno-gold);transform-origin:0 50%;transform:scaleX(0);opacity:0;transition:opacity .4s;pointer-events:none}
.fno-header.is-fixed .fno-header__progress{opacity:1}

/* ======================================================= V2 · Mobile dock */
.fno-dock{display:none}
@media (max-width:1024px){
  .fno-dock{
    position:fixed;inset-inline:12px;inset-block-end:calc(12px + env(safe-area-inset-bottom));z-index:95;
    display:grid;grid-template-columns:repeat(var(--n),1fr);gap:4px;padding:6px;border-radius:24px;
    background:rgba(0,38,36,.92);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);
    box-shadow:0 0 0 1px rgba(var(--fno-gold-rgb),.18),0 20px 40px -18px rgba(0,0,0,.55);
    transition:transform .55s var(--fno-ease),opacity .4s;
  }
  .fno-dock.is-away,body.fno-menu-open .fno-dock,body.fno-lock .fno-dock{transform:translateY(calc(100% + 24px));opacity:0}
  .fno-dock__a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-block-size:54px;border-radius:18px;color:rgba(var(--fno-bg-rgb),.85);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;-webkit-tap-highlight-color:transparent;transition:background-color .3s,color .3s}
  .fno-dock__a:active{background:rgba(var(--fno-bg-rgb),.1)}
  .fno-dock__a.is-menu{background:var(--fno-bg);color:var(--fno-primary)}
  .fno-dock__a.is-current:not(.is-menu){color:var(--fno-gold-light)}
  .fno-dock__ic{display:grid;place-items:center;block-size:22px}
  .fno-dock__live{position:absolute;inset-block-start:9px;inset-inline-end:calc(50% - 20px)}
  body.fno-has-dock .fno-wa{display:none}
  body.fno-has-dock .fno-totop{inset-block-end:calc(90px + env(safe-area-inset-bottom));inset-inline-end:16px;inline-size:42px;block-size:42px}
  body.fno-has-dock .fno-footer{padding-block-end:calc(84px + env(safe-area-inset-bottom))}
}

/* ================================================== V2 · Mobile menu polish */
.fno-menu--mobile{counter-reset:fnom}
.fno-menu--mobile > li{counter-increment:fnom}
.fno-menu--mobile a{display:flex;align-items:baseline;gap:14px;border-block-end:1px solid rgba(var(--fno-bg-rgb),.1);padding-block:12px}
.fno-menu--mobile a::before{content:counter(fnom,decimal-leading-zero);font-family:var(--fno-font-accent);font-style:italic;font-size:17px;color:var(--fno-gold);min-inline-size:24px}
.fno-menu--mobile .current-menu-item > a::after,.fno-menu--mobile .current_page_item > a::after{content:"";inline-size:7px;block-size:7px;margin-inline-start:auto;align-self:center;transform:rotate(45deg);background:var(--fno-gold)}
.fno-mobile__quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fno-mobile__q{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border-radius:18px;color:var(--fno-bg);font-size:12px;font-weight:600;letter-spacing:.06em;box-shadow:inset 0 0 0 1px rgba(var(--fno-bg-rgb),.2);transition:background-color .3s,color .3s}
.fno-mobile__q svg{color:var(--fno-gold-light)}
.fno-mobile__q:active,.fno-mobile__q:hover{background:rgba(var(--fno-bg-rgb),.08)}
.fno-mobile__addr{margin:0;font-size:14px;line-height:1.6;color:rgba(var(--fno-bg-rgb),.65)}
.fno-mobile .fno-btn--block{opacity:0;transform:translateY(16px);transition:opacity .6s .3s,transform .8s var(--fno-ease) .3s}
.fno-mobile.is-open .fno-btn--block{opacity:1;transform:none}
.fno-mobile__quick,.fno-mobile__addr,.fno-mobile .fno-social{opacity:0;transform:translateY(16px);transition:opacity .6s .38s,transform .8s var(--fno-ease) .38s}
.fno-mobile.is-open .fno-mobile__quick,.fno-mobile.is-open .fno-mobile__addr,.fno-mobile.is-open .fno-social{opacity:1;transform:none}

/* ======================================================= V2 · Mobile chrome */
@media (max-width:767px){
  .fno-banner__crumbs{gap:10px;white-space:nowrap;font-size:11px}
  .fno-banner__crumbs .fno-branch{inline-size:40px}
  .fno-crumbs ol{flex-wrap:nowrap}
  .fno-crumbs li:not([aria-current]),.fno-crumbs__sep{display:none}
  .fno-banner__title{font-size:clamp(2.2rem,1.6rem + 3vw,2.8rem)}
  .fno-banner__panel{min-block-size:300px;padding-block-end:48px}
}
@media (hover:none){
  .fno-cursor,.fno-cursor-dot{display:none!important}
}
@media (prefers-reduced-motion:reduce){.fno-veil{display:none}}

/* Header CTA never squeezes: the button keeps its size, the fixed bar lays out
   logo | centred nav | actions, and the status pill steps aside when space is short. */
.fno-header__cta{flex:none;white-space:nowrap;padding-inline:24px;min-block-size:46px}
.fno-header__actions{flex-wrap:nowrap;min-inline-size:0}
.fno-header.is-fixed .fno-header__inner{grid-template-columns:auto minmax(0,1fr) auto;gap:32px}
.fno-header.is-fixed .fno-header__nav{justify-self:center}
.fno-header__status{flex:0 1 auto;min-inline-size:0;overflow:hidden}
.fno-header__status .fno-status__text{overflow:hidden;text-overflow:ellipsis}
@media (max-width:1439px) and (min-width:1181px){.fno-header.is-fixed .fno-header__status{display:none}}
