/* Immersive layer (all pages, loaded from header.php). Only active when the inline script adds html.im. */
:root{--im-green:#152111;--im-green-2:#2d4b24;--im-gold:#f1c50e;--im-plum:#27031c;--im-cream:#fef6e4}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}

.im-loader,.im-curtain,.im-progress,.im-cursor,.im-cursor-dot,.im-spot,.im-top,.im-marquee,.im-cue{display:none}

/* Loader (first page of a visit) */
.im.im-first .im-loader{
  position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(20px,4vw,48px);background:var(--im-green);color:var(--im-cream);font-family:Montserrat,sans-serif;
  animation:imSafety 0s 2.5s forwards;
}
.im-loader .l-top,.im-loader .l-foot{display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:rgba(254,246,228,.65)}
.im-loader .l-mid{display:flex;align-items:center;gap:clamp(16px,3vw,40px)}
.im-loader .l-logo{width:clamp(80px,12vw,170px);height:auto;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(241,197,14,.25)}
.im-loader .l-name{font-weight:900;font-size:clamp(64px,15vw,240px);line-height:.85;letter-spacing:-.04em;color:var(--im-gold)}
.im-loader .l-count{font-weight:800;font-size:clamp(28px,4vw,56px);color:var(--im-gold);letter-spacing:0}
.im-loader .l-bar{position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--im-gold);transform:scaleX(0);transform-origin:left}
@keyframes imSafety{to{visibility:hidden;opacity:0;pointer-events:none}}

/* Page transition curtain */
.im .im-curtain{display:flex;align-items:center;justify-content:center;position:fixed;inset:0;z-index:99999;pointer-events:none;
  background:var(--im-green);clip-path:inset(0 0 100% 0)}
.im .im-curtain img{width:96px;height:96px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px rgba(241,197,14,.35)}
.im.im-enter .im-curtain{clip-path:inset(0);animation:imSafety 0s 2.5s forwards}
.im .im-curtain.is-on{animation:none!important;visibility:visible!important;opacity:1!important;pointer-events:all}

/* Scroll progress */
.im .im-progress{display:block;position:fixed;top:0;left:0;right:0;height:4px;z-index:2000;pointer-events:none;
  background:linear-gradient(90deg,var(--im-gold),#ffe36b 60%,var(--im-gold));transform:scaleX(0);transform-origin:left}

/* Header: always visible, turns to glass when scrolled */
.im header.u-header{transition:padding .3s ease,box-shadow .3s ease,background-color .3s ease}
.im header.u-header.im-glass{background-color:rgba(255,255,255,.86)!important;-webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5)}
.im.im-in header.u-header{animation:imHeaderIn 1s cubic-bezier(.16,1,.3,1) both}
@keyframes imHeaderIn{from{translate:0 -100%;opacity:0}}
.im .u-nav-1>.u-nav-item>.u-nav-link{background-image:linear-gradient(var(--im-gold),var(--im-gold));background-repeat:no-repeat;
  background-position:50% 100%;background-size:0 3px;transition:background-size .35s cubic-bezier(.2,.7,.2,1),color .25s}
.im .u-nav-1>.u-nav-item>.u-nav-link:hover,.im .u-nav-1>.u-nav-item>.u-nav-link.active{background-size:70% 3px}
.im .u-nav-popup{border-radius:10px;overflow:hidden;box-shadow:0 18px 40px rgba(21,33,17,.18)}

/* Split text */
.im .im-mask .w{display:inline-block;white-space:nowrap;overflow:hidden;vertical-align:top;padding:0 .02em .1em;margin:0 -.02em -.1em}
.im .im-mask .w.sp{margin-right:.26em}
.im .im-mask .c{display:inline-block;will-change:transform}
.im .im-scrub .w{display:inline;opacity:.25}

/* Cards: 3D tilt + glare */
.im .im-card{position:relative;transform-style:preserve-3d;will-change:transform;transition:box-shadow .4s ease}
.im .im-card:hover{box-shadow:0 28px 50px -18px rgba(21,33,17,.45)}
.im .im-glare{position:absolute;inset:0;z-index:5;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .4s;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),transparent 45%);mix-blend-mode:soft-light}
.im .im-card:hover .im-glare{opacity:1}
.im .im-card img,.im .im-card .u-back-image{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}
.im .im-card:hover img.u-image,.im .im-card:hover .u-back-image{transform:scale(1.06)}

/* Hero (Home) */
.im .im-cue{display:flex;position:absolute;left:50%;bottom:110px;z-index:3;transform:translateX(-50%);flex-direction:column;align-items:center;gap:10px;
  color:#fff;font:600 11px/1 Montserrat,sans-serif;letter-spacing:.3em;text-transform:uppercase;pointer-events:none}
.im .im-cue i{position:relative;display:block;width:2px;height:46px;background:rgba(255,255,255,.3);overflow:hidden}
.im .im-cue i::after{content:"";position:absolute;left:0;top:-50%;width:2px;height:50%;background:var(--im-gold);animation:imCue 1.8s cubic-bezier(.6,0,.3,1) infinite}
@keyframes imCue{to{top:110%}}

/* Marquee band above the footer */
.im .im-marquee{display:block;overflow:hidden;background:var(--im-green);color:var(--im-gold);padding:clamp(14px,2.4vw,28px) 0;border-top:4px solid var(--im-gold);position:relative;z-index:1}
.im-marquee .track{display:flex;width:max-content;align-items:center;white-space:nowrap;will-change:transform}
.im-marquee span{font:900 clamp(30px,5.5vw,84px)/1 Montserrat,sans-serif;letter-spacing:-.02em;text-transform:uppercase;padding:0 .35em}
.im-marquee span:nth-of-type(even){font-family:Raleway,sans-serif;font-weight:800;font-style:italic;letter-spacing:.03em;color:var(--im-green);-webkit-text-stroke:0;text-shadow:.026em 0em 0 var(--im-cream),-.026em 0em 0 var(--im-cream),0em .026em 0 var(--im-cream),0em -.026em 0 var(--im-cream),.0195em .0195em 0 var(--im-cream),-.0195em .0195em 0 var(--im-cream),.0195em -.0195em 0 var(--im-cream),-.0195em -.0195em 0 var(--im-cream),.013em .0234em 0 var(--im-cream),-.013em .0234em 0 var(--im-cream),.013em -.0234em 0 var(--im-cream),-.013em -.0234em 0 var(--im-cream),.0234em .013em 0 var(--im-cream),-.0234em .013em 0 var(--im-cream),.0234em -.013em 0 var(--im-cream),-.0234em -.013em 0 var(--im-cream)}
.im-marquee i{font-style:normal;font-size:clamp(20px,3vw,44px);color:var(--im-cream)}

/* Back to top */
.im .im-top{display:flex;align-items:center;justify-content:center;position:fixed;right:22px;bottom:22px;z-index:1500;width:56px;height:56px;border:0;border-radius:50%;
  background:var(--im-green);color:var(--im-gold);cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;scale:.6;pointer-events:none;transition:opacity .3s,scale .4s cubic-bezier(.3,1.6,.5,1)}
.im .im-top.is-on{opacity:1;scale:1;pointer-events:auto}
.im-top svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.im-top circle{fill:none;stroke:var(--im-gold);stroke-width:3;stroke-dasharray:157;stroke-dashoffset:157}
.im-top b{font-size:20px;line-height:1}

/* Cursor + spotlight (fine pointers only) */
@media (hover:hover) and (pointer:fine){
  .im .im-cursor,.im .im-cursor-dot{display:flex;position:fixed;top:0;left:0;z-index:100001;pointer-events:none;border-radius:50%}
  .im .im-cursor{width:42px;height:42px;margin:-21px 0 0 -21px;border:2px solid var(--im-gold);align-items:center;justify-content:center;
    font:700 11px/1 Montserrat,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--im-green);mix-blend-mode:normal;
    transition:width .35s cubic-bezier(.2,.7,.2,1),height .35s cubic-bezier(.2,.7,.2,1),margin .35s cubic-bezier(.2,.7,.2,1),background .3s,border-color .3s,opacity .3s}
  .im .im-cursor span{opacity:0;transition:opacity .2s}
  .im .im-cursor.is-hover{width:66px;height:66px;margin:-33px 0 0 -33px;background:rgba(241,197,14,.18)}
  .im .im-cursor.is-label{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--im-gold);border-color:var(--im-gold)}
  .im .im-cursor.is-label span{opacity:1}
  .im .im-cursor.is-out,.im .im-cursor.is-out+.im-cursor-dot{opacity:0}
  .im .im-cursor-dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--im-green);box-shadow:0 0 0 2px var(--im-gold)}
  .im .im-spot{display:block;position:fixed;inset:0;z-index:900;pointer-events:none;mix-blend-mode:soft-light;
    background:radial-gradient(560px circle at var(--sx,50%) var(--sy,50%),rgba(241,197,14,.35),transparent 60%)}
}

@media (prefers-reduced-motion:reduce){
  .im-loader,.im-curtain,.im-progress,.im-cursor,.im-cursor-dot,.im-spot,.im-marquee,.im-cue{display:none!important}
}
