/* ============================================================
   RITHI'S UPASANA PRODUCER COMPANY LTD — Design System
   ============================================================ */

:root{
  --green-950:#0d2415;
  --green-900:#13331d;
  --green-800:#1a4227;
  --green-700:#1f4e2c;
  --green-600:#296139;
  --green-500:#357a4a;
  --gold-600:#a9821f;
  --gold-500:#c9a227;
  --gold-400:#d9b84a;
  --gold-300:#e6cd7b;
  --cream-50:#fbf8f0;
  --cream-100:#f5eed9;
  --cream-200:#ece0c2;
  --ink-900:#15211a;
  --ink-700:#33403a;
  --ink-500:#5b6b62;
  --white:#ffffff;

  --font-display:'Fraunces', ui-serif, Georgia, serif;
  --font-body:'Manrope', ui-sans-serif, system-ui, sans-serif;

  --container:1220px;
  --radius:14px;
  --ease:cubic-bezier(.16,.8,.3,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Lenis smooth scroll (drives the page instead of native smooth-scroll) */
html.lenis,html.lenis body{height:auto;scroll-behavior:auto;}
.lenis.lenis-stopped{overflow:clip;}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--cream-50);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;line-height:1.08;font-weight:600;}
p{margin:0;line-height:1.7;}
button{font-family:inherit;cursor:pointer;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.container{max-width:var(--container);margin:0 auto;padding:0 28px;}

::selection{background:var(--gold-400);color:var(--green-950);}

/* ---------- utility ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-600);font-weight:700;margin-bottom:14px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold-500);display:inline-block;}
.section{padding:104px 0;}
.section-tight{padding:64px 0;}
.section-title{font-size:clamp(2rem,3.6vw,3.1rem);max-width:640px;}
.section-title.center{margin:0 auto;text-align:center;}
.section-lede{max-width:560px;color:var(--ink-700);font-size:1.08rem;margin-top:18px;}
.section-lede.center{margin-left:auto;margin-right:auto;text-align:center;}
.text-gold{color:var(--gold-600);}
.bg-green{background:var(--green-900);color:var(--cream-100);}
.bg-cream2{background:var(--cream-100);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;border-radius:100px;font-weight:700;font-size:.92rem;
  border:1px solid transparent;transition:transform .45s var(--ease),background .3s,color .3s,border-color .3s;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--green-700);color:var(--cream-50);}
.btn-primary:hover{background:var(--green-800);}
.btn-gold{background:var(--gold-500);color:var(--green-950);}
.btn-gold:hover{background:var(--gold-400);}
.btn-outline{border-color:currentColor;color:var(--green-900);background:transparent;}
.btn-outline:hover{background:var(--green-900);color:var(--cream-50);}
.btn-outline.on-dark{color:var(--cream-100);}
.btn-outline.on-dark:hover{background:var(--cream-50);color:var(--green-950);}
.btn-arrow{transition:transform .35s var(--ease);}
.btn:hover .btn-arrow{transform:translateX(4px);}

/* ---------- marquee ---------- */
.marquee{
  background:var(--green-950);color:var(--gold-300);
  overflow:hidden;white-space:nowrap;padding:13px 0;
  border-top:1px solid rgba(230,205,123,.18);
  border-bottom:1px solid rgba(230,205,123,.18);
}
.marquee__track{display:inline-flex;animation:marquee 32s linear infinite;}
.marquee__track span{
  font-family:var(--font-display);font-size:1rem;letter-spacing:.02em;
  padding:0 28px;display:inline-flex;align-items:center;gap:28px;
}
.marquee__track span::after{content:"✦";color:var(--gold-500);font-size:.8rem;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------- header / nav ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:10px 0;transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease),transform .9s cubic-bezier(.16,1,.3,1);
}
/* logo on the left, the links in the centre, the member button on the right */
.site-header .container{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(28px,4.5vw,64px);}
/* a soft dark shade behind the bar so it stays readable over the moving video */
.site-header::before{
  content:"";position:absolute;left:0;right:0;top:0;height:170%;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,22,13,.55) 0,rgba(8,22,13,.3) 55%,transparent 100%);
  opacity:0;transition:opacity .4s var(--ease);
}
.dark-top .site-header::before{opacity:1;}
/* once scrolled: stays transparent, no bar */
.site-header.is-scrolled{background:transparent;box-shadow:none;}
.site-header.is-scrolled::before{opacity:0;}
/* slides up while scrolling, comes back once scrolling stops (js/main.js) */
.site-header.is-hidden{transform:translateY(-100%) !important;}

/* scroll-to-top button (home page) */
.to-top{
  position:fixed;right:clamp(16px,2.4vw,32px);bottom:clamp(16px,2.4vw,32px);z-index:90;
  width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;color:var(--gold-300);
  background:rgba(251,248,240,.18);
  -webkit-backdrop-filter:blur(28px) saturate(160%);backdrop-filter:blur(28px) saturate(160%);
  box-shadow:0 10px 24px -8px rgba(8,22,13,.4);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .3s,visibility .3s,transform .3s,background .3s,color .3s;
}
.to-top.is-visible{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--gold-300);color:var(--green-900);}
.brand{justify-self:start;display:flex;align-items:center;}
.brand img{height:110px;width:110px;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(8,22,13,.45));transition:height .4s var(--ease),width .4s var(--ease);}
.nav-links{display:flex;align-items:center;gap:clamp(24px,3.4vw,48px);}
.nav-links a{
  padding:4px 0;font-size:.84rem;font-weight:500;color:var(--green-900);transition:color .3s;
}
/* hover and the current page: the text turns gold */
.nav-links a:hover,.nav-links a.active{color:var(--gold-600);}
.nav-right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:16px;}
/* member button: deep green pill, gold leaf */
.nav-cta{
  margin-left:auto;display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
  padding:11px 22px;border-radius:100px;background:rgba(19,51,29,.9);color:var(--cream-50);
  border:1px solid rgba(230,205,123,.28);font-size:.8rem;font-weight:600;
  box-shadow:0 8px 24px rgba(8,22,13,.22);transition:background .3s,color .3s,transform .3s var(--ease);
}
.nav-cta svg{color:var(--gold-300);transition:color .3s;}
.nav-cta:hover{background:var(--gold-300);color:var(--green-950);transform:translateY(-1px);}
.nav-cta:hover svg{color:var(--green-800);}
.nav-toggle{display:none;background:none;border:0;padding:6px;margin-left:auto;}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--green-900);margin:6px 0;transition:transform .3s,opacity .3s;}
/* light text whenever the bar sits on something dark (photo, video, dark section); dark text on light sections */
:is(.dark-top .site-header:not(.is-scrolled), .site-header.on-dark) .nav-links a{color:var(--cream-50);text-shadow:0 1px 3px rgba(8,22,13,.55),0 2px 14px rgba(8,22,13,.45);}
:is(.dark-top .site-header:not(.is-scrolled), .site-header.on-dark) .nav-links a:hover,
:is(.dark-top .site-header:not(.is-scrolled), .site-header.on-dark) .nav-links a.active{color:var(--gold-300);}
:is(.dark-top .site-header:not(.is-scrolled), .site-header.on-dark) .nav-toggle span{background:var(--cream-50);}

/* ---------- home: looping video hero + journey ----------
   Three clips are stacked; js/main.js plays one at a time and fades the next
   in over the last moments of the current one (the last fades back into the
   first), so the loop reads as one continuous film. The content sections
   below sit on solid green. */
.journey{position:relative;isolation:isolate;background:var(--green-950);}

.jhero{
  position:relative;overflow:hidden;min-height:100svh;background:var(--green-950);
  display:flex;flex-direction:column;justify-content:space-between;
}
.jhero__media{position:absolute;inset:0;z-index:0;pointer-events:none;}
.jhero__video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.06);
}
/* the incoming clip dissolves in on top (while easing out of a slight zoom);
   the outgoing one stays fully visible underneath until the dissolve is done.
   Keep the 1.6s in step with FADE in js/main.js. */
.jhero__video.is-active{
  opacity:1;transform:scale(1);z-index:2;
  transition:opacity 1.6s ease-in-out,transform 9s cubic-bezier(.16,1,.3,1);
}
.jhero__video.is-leaving{opacity:1;transform:scale(1);z-index:1;}
@media (prefers-reduced-motion:reduce){.jhero__video{transform:none!important;}}
/* shade: a wash behind the title for legibility, and a fade into green at the bottom */
.jhero::before,.jhero::after{content:"";position:absolute;inset:0;pointer-events:none;}
.jhero::before{
  z-index:1;
  background:linear-gradient(180deg,rgba(8,22,13,.5) 0,rgba(8,22,13,.22) 30%,rgba(8,22,13,.08) 42%,rgba(8,22,13,.08) 55%,rgba(8,22,13,.3) 75%,transparent 100%);
}
.jhero::after{
  z-index:5;
  background:linear-gradient(180deg,
    transparent 68%,
    rgba(13,36,21,.35) 80%,
    rgba(13,36,21,.85) 93%,
    var(--green-950) 100%);
}
/* main area: display title on the left (vertically centred), heading +
   actions on the right, sitting lower */
.jhero__body{
  position:absolute;inset:0;z-index:6;margin:0 auto;
  display:flex;align-items:center;pointer-events:none;
}
.jhero__brand{pointer-events:auto;}
.jhero__foot{margin-top:auto;}
.jhero__display{
  margin:0;display:flex;flex-direction:column;
  font:500 clamp(2.5rem,6.4vw,6.4rem)/.92 var(--font-display);letter-spacing:.01em;text-transform:uppercase;
  color:var(--cream-50);text-shadow:0 8px 48px rgba(8,22,13,.5);
}
.jhero__display-gold{position:relative;align-self:flex-start;color:var(--gold-300);}
.jhero__leaf{
  position:absolute;left:100%;top:-.22em;width:.5em;height:.5em;margin-left:-.08em;
  color:var(--gold-300);filter:drop-shadow(0 4px 14px rgba(8,22,13,.4));
}
.jhero__tagline{
  display:flex;align-items:center;flex-wrap:wrap;gap:0 .9em;margin:clamp(18px,3vh,30px) 0 0;
  font-size:clamp(.6rem,.75vw,.72rem);font-weight:600;letter-spacing:.34em;text-transform:uppercase;
  color:rgba(251,248,240,.9);text-shadow:0 1px 10px rgba(8,22,13,.6);
}
.jhero__tagline i{font-style:normal;color:var(--gold-300);letter-spacing:0;margin-left:-.34em;}

.jhero__title{max-width:400px;color:var(--cream-50);}
.jhero h1{
  font-size:clamp(1.35rem,1.8vw,1.8rem);line-height:1.1;letter-spacing:-.005em;
  font-weight:500;color:var(--cream-50);margin:0;text-shadow:0 6px 40px rgba(8,22,13,.45);
}
.jhero h1::after{content:"";display:block;width:30px;height:2px;margin-top:11px;background:var(--gold-300);}
.jhero__lede{
  margin:11px 0 0;font-size:.78rem;line-height:1.6;font-weight:500;
  color:rgba(251,248,240,.9);text-shadow:0 1px 12px rgba(8,22,13,.6);
}
.jhero__cta{display:flex;gap:14px 22px;align-items:center;flex-wrap:wrap;margin-top:18px;}
.jhero__btn{
  display:inline-flex;align-items:center;gap:14px;padding:9px 16px;border-radius:10px;
  background:var(--gold-300);color:var(--green-950);font-size:.76rem;font-weight:700;
  box-shadow:0 8px 24px rgba(8,22,13,.25);transition:background .3s,transform .3s;
}
.jhero__btn svg{transition:transform .35s var(--ease);}
.jhero__btn:hover{background:var(--cream-50);transform:translateY(-1px);}
.jhero__btn:hover svg{transform:translateX(3px);}
.jhero__link{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.76rem;font-weight:600;color:var(--cream-50);text-shadow:0 1px 10px rgba(8,22,13,.5);
}
.jhero__play{
  display:grid;place-items:center;width:28px;height:28px;border-radius:50%;
  border:1px solid rgba(251,248,240,.75);transition:background .3s,color .3s,border-color .3s;
}
.jhero__play svg{margin-left:2px;}
.jhero__link:hover .jhero__play{background:var(--cream-50);color:var(--green-950);border-color:var(--cream-50);}

/* bottom row: address on the left, heading + actions on the right, sharing one baseline */
.jhero__foot{
  position:relative;z-index:6;width:100%;padding-bottom:clamp(20px,3.5vh,34px);
  display:flex;align-items:flex-end;justify-content:space-between;gap:40px;
}
.jhero__meta{
  margin:0;font-size:.74rem;line-height:1.5;font-weight:600;color:rgba(251,248,240,.88);
  text-shadow:0 1px 10px rgba(8,22,13,.5);
}

/* key facts strip under the hero */
.jstats{position:relative;z-index:3;padding:8px 0 0;color:var(--cream-50);}
.jstats .hero__stats{margin-top:0;border-top:0;}

.jsection{position:relative;z-index:3;padding:16vh 0;}
.jsection--end{padding-bottom:18vh;}

/* ---------- home: WHO WE ARE (full-screen, same height as the hero) ----------
   Light sage panel: story left, tall video card centre, facts right.
   Columns rise in turn when the section is reached (js/main.js adds .is-in);
   the video card also drifts slightly with scroll (--py). */
.jwho{
  position:relative;z-index:3;min-height:100svh;overflow:hidden;
  display:flex;align-items:center;background:#eef2ea;color:var(--ink-900);
  padding:clamp(120px,16vh,150px) 0 clamp(70px,10vh,110px);
}
.jwho__grid{
  display:grid;grid-template-columns:1fr 1.05fr 1fr;gap:clamp(20px,2.4vw,36px);
  align-items:stretch;width:100%;height:min(calc(100svh - 280px),660px);min-height:480px;
}
.jwho__copy{display:flex;flex-direction:column;align-self:center;}
.jwho__eyebrow{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--ink-500);}
.jwho__eyebrow::before{content:"›";font-size:1rem;line-height:1;color:var(--green-700);}
.jwho__title{margin:16px 0 0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,2.7vw,2.4rem);line-height:1.15;color:var(--green-900);}
.jwho__lede{margin:18px 0 0;font-size:.84rem;line-height:1.7;color:var(--ink-700);max-width:360px;}
.jwho__btn{
  align-self:flex-start;margin-top:22px;padding:10px 18px;border-radius:6px;
  background:var(--green-700);color:var(--cream-50);font-size:.78rem;font-weight:600;
  transition:background .3s,transform .3s var(--ease);
}
.jwho__btn:hover{background:var(--green-900);transform:translateY(-2px);}

.jwho__media{position:relative;border-radius:16px;overflow:hidden;background:var(--green-900);box-shadow:0 30px 60px -30px rgba(13,36,21,.5);}
.jwho__video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 50%;
}

.jwho__side{display:flex;flex-direction:column;gap:18px;}
.jwho__stats{margin:0;}
.jwho__stats div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:13px 0;border-bottom:1px solid rgba(21,33,26,.14);}
.jwho__stats dt{font-size:.74rem;color:var(--ink-500);}
.jwho__stats dd{margin:0;font-size:.9rem;font-weight:600;color:var(--green-900);}
.jwho__card{flex:1;padding:22px;border-radius:14px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.8);}
.jwho__card h3{margin:0;font-family:var(--font-display);font-weight:400;font-size:1.1rem;color:var(--green-900);}
.jwho__card ul{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:12px;}
.jwho__card li{position:relative;padding-left:18px;font-size:.78rem;line-height:1.55;color:var(--ink-700);}
.jwho__card li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--gold-500);}

/* entrance: copy rises and un-blurs, the title's words slide up out of masks,
   the photo card opens from a clipped strip while the image settles from a zoom,
   and the stat rules draw in from the left */
.wreveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;}
.jwho.is-in .wreveal{opacity:1;transform:none;filter:none;}
.jwho__title.wreveal{opacity:1;transform:none;filter:none;}
.jwho__word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em;}
.jwho__word>span{display:inline-block;transform:translateY(105%) rotate(4deg);transform-origin:left bottom;transition:transform .75s cubic-bezier(.22,1,.36,1);will-change:transform;}
.jwho.is-in .jwho__word>span{transform:none;}
.jwho__media.wreveal{transform:none;filter:none;clip-path:inset(45% 12% 45% 12% round 16px);transition:opacity .4s,clip-path .95s cubic-bezier(.65,0,.25,1);will-change:clip-path;}
.jwho.is-in .jwho__media{clip-path:inset(0 0 0 0 round 16px);}
.jwho__media .jwho__video{scale:1.2;filter:saturate(.6) brightness(.85);transition:scale 1.3s cubic-bezier(.22,1,.36,1),filter 1s ease-out;will-change:scale;}
.jwho.is-in .jwho__media .jwho__video{scale:1;filter:none;transition-delay:.05s;}
.jwho__stats div{position:relative;border-bottom-color:transparent;}
.jwho__stats div::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:rgba(21,33,26,.14);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.22,1,.36,1);}
.jwho.is-in .jwho__stats div::after{transform:scaleX(1);transition-delay:inherit;}
.jwho.is-in .jwho__eyebrow{transition-delay:0s}
.jwho.is-in .jwho__lede{transition-delay:.3s}
.jwho.is-in .jwho__btn{transition-delay:.4s}
.jwho.is-in .jwho__media{transition-delay:.05s}
.jwho.is-in .jwho__stats div:nth-child(1){transition-delay:.2s}
.jwho.is-in .jwho__stats div:nth-child(2){transition-delay:.26s}
.jwho.is-in .jwho__stats div:nth-child(3){transition-delay:.32s}
.jwho.is-in .jwho__stats div:nth-child(4){transition-delay:.38s}
.jwho.is-in .jwho__card{transition-delay:.45s}
@media (max-width:960px){
  .jwho{min-height:100svh;padding:14vh 0 10vh;}
  .jwho__grid{grid-template-columns:1fr;height:auto;min-height:0;}
  .jwho__media{height:60vh;}
}
@media (prefers-reduced-motion:reduce){
  .jwho__video{translate:none!important;}
  .jwho__word>span,.jwho__media .jwho__video,.jwho__stats div::after{transition:none!important;transform:none!important;scale:1!important;}
}


/* ---------- home: WHAT WE OFFER (full-screen photo card, same height as Who We Are) ----------
   The card fills the section with only a thin rounded frame. The four offers sit
   on frosted-glass cards along the bottom; the highlight moves card to card every
   5s (js/main.js sets .is-active) over the still photo. */
.joffer{position:relative;z-index:3;background:#eef2ea;
  /* inner side offset: lines the text up with the other sections' content (site gutter minus the card's inset) */
  --jx:calc(max(24px,calc((100vw - var(--container))/2 + 24px)) - clamp(10px,1.2vw,18px));}
.joffer__pin{height:100svh;min-height:600px;padding:clamp(10px,1.2vw,18px);}
.joffer__card{
  position:relative;overflow:hidden;border-radius:clamp(16px,1.8vw,26px);background:var(--green-900);color:var(--cream-50);
  width:100%;height:100%;
}
/* entrance "focus pull": the photo starts soft and pushed in, then settles sharp;
   while on screen it drifts a little with scroll (--py) */
.joffer__bg{position:absolute;inset:-6% 0;translate:0 var(--py,0px);scale:1.18;filter:blur(14px) saturate(.5);
  transition:scale 1.8s cubic-bezier(.22,1,.36,1),filter 1.3s ease-out;}
.joffer.is-in .joffer__bg{scale:1;filter:none;}
.joffer__layer{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.joffer__bg::after{z-index:3;
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(13,36,21,.55) 0%,rgba(13,36,21,0) 34%,rgba(13,36,21,0) 50%,rgba(13,36,21,.55) 100%),
    linear-gradient(90deg,rgba(13,36,21,.3),rgba(13,36,21,0) 55%);
}

.joffer__head{position:absolute;top:clamp(84px,11vh,110px);left:max(clamp(24px,3.4vw,40px),var(--jx));max-width:460px;}
.joffer__eyebrow{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--gold-300);letter-spacing:.04em;}
.joffer__eyebrow::before{content:"›";font-size:1rem;line-height:1;}
.joffer__title{margin:12px 0 0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.6rem);line-height:1.12;}
.joffer__lede{margin:12px 0 0;font-size:.82rem;line-height:1.65;color:rgba(247,243,232,.85);max-width:380px;}
.joffer__head>*{opacity:0;transform:translate3d(0,20px,0);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);}
.joffer.is-in .joffer__head>*{opacity:1;transform:none;}
.joffer.is-in .joffer__title{transition-delay:.12s}
.joffer.is-in .joffer__lede{transition-delay:.22s}

.joffer__foot{position:absolute;top:clamp(84px,11vh,110px);right:max(clamp(24px,3.4vw,40px),var(--jx));display:flex;align-items:center;gap:16px;
  opacity:0;transform:translate3d(0,20px,0);transition:opacity .8s ease .3s,transform 1s cubic-bezier(.22,1,.36,1) .3s;}
.joffer.is-in .joffer__foot{opacity:1;transform:none;}
.joffer__count{font-size:.8rem;color:rgba(247,243,232,.7);}
.joffer__count b{color:var(--cream-50);font-weight:600;}
.joffer__nav{display:flex;gap:10px;}
.joffer__btn{
  display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);cursor:pointer;
  background:rgba(255,255,255,.14);color:var(--cream-50);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:background .3s,transform .3s var(--ease);
}
.joffer__btn--next{background:#c8e64a;border-color:#c8e64a;color:var(--green-950);}
.joffer__btn:hover{transform:scale(1.08);}

/* frosted-glass offer cards: one at a time, bottom-right. Each new card slides in
   from the right edge of the photo while the previous one is thrown off to the left. */
.joffer__cards{
  position:absolute;right:max(clamp(20px,2.6vw,36px),var(--jx));bottom:clamp(20px,2.6vw,36px);width:min(500px,calc(100% - 40px));
  display:grid;
  /* no opacity here: an ancestor with opacity<1 becomes the backdrop root, so the
     cards' backdrop-filter would blur nothing until the fade finished, then snap */
  transform:translate3d(0,60px,0);
  transition:transform 1.1s cubic-bezier(.22,1,.36,1) .35s;
}
.joffer.is-in .joffer__cards{transform:none;}
.joffer:not(.is-in) .joffer__slide{opacity:0;}
.joffer__slide{
  grid-area:1/1;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;
  padding:clamp(20px,2vw,26px) clamp(22px,2.4vw,32px) clamp(24px,2.4vw,32px);border-radius:22px;
  background:rgba(255,255,255,.06);
  border:0;box-shadow:0 20px 40px -24px rgba(0,0,0,.45);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  /* waiting off to the right, just past the photo's edge */
  translate:calc(100% + 60px) 0;rotate:6deg;opacity:0;
  transition:translate .8s cubic-bezier(.22,1,.36,1),rotate .8s cubic-bezier(.22,1,.36,1),opacity .5s ease,scale .8s cubic-bezier(.22,1,.36,1),background .5s;
}
.joffer__slide.is-active{translate:0 0;rotate:0deg;opacity:1;z-index:2;}
.joffer__slide>*{opacity:0;translate:40px 0;transition:opacity .3s,translate .3s;}
.joffer__slide.is-active>*{opacity:1;translate:0 0;transition:opacity .5s ease .3s,translate .7s cubic-bezier(.22,1,.36,1) .3s;}
.joffer__slide.is-active .joffer__top{transition-delay:.38s;}
.joffer__slide.is-active p{transition-delay:.46s;}
/* the card that was just showing: pushed off to the left and shrinks away */
.joffer__slide.is-out{translate:-60% 0;rotate:-5deg;scale:.85;opacity:0;z-index:1;}
.joffer__slide.is-back{transition:none;}
/* active card: brightens */
.joffer__slide.is-active{background:rgba(255,255,255,.08);}
/* a light sheen sweeps across the card as it becomes active */
.joffer__slide::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%);transform:translateX(-120%);
}
.joffer__slide.is-active::after{animation:joffer-sheen 1.2s cubic-bezier(.65,0,.35,1) .1s;}
@keyframes joffer-sheen{to{transform:translateX(120%);}}

.joffer__pill{
  align-self:center;padding:4px 12px;border-radius:99px;font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(255,255,255,.18);color:#fff;transition:background .5s,color .5s;
}
.joffer__slide.is-active .joffer__pill{background:rgba(255,255,255,.9);color:var(--green-800);}
.joffer__top{display:flex;align-items:center;gap:14px;margin-top:20px;}
.joffer__top h3{font-family:var(--font-display);font-weight:400;font-size:clamp(1.35rem,1.9vw,1.8rem);line-height:1.12;color:#fff;}
.joffer__icon{
  position:relative;flex:none;display:grid;place-items:center;width:52px;height:52px;border-radius:14px;
  background:rgba(255,255,255,.2);color:#fff;transition:background .5s,color .5s;
}
.joffer__icon svg{width:24px;height:24px;}
.joffer__slide.is-active .joffer__icon{background:rgba(255,255,255,.92);color:var(--green-700);}
/* the active icon redraws its strokes and sends out a ring */
.joffer__slide.is-active .joffer__icon path,.joffer__slide.is-active .joffer__icon rect{animation:joffer-draw 1.2s cubic-bezier(.65,0,.35,1) .2s both;}
@keyframes joffer-draw{from{stroke-dasharray:1;stroke-dashoffset:1;}to{stroke-dasharray:1;stroke-dashoffset:0;}}
.joffer__icon::after{content:"";position:absolute;inset:-6px;border-radius:18px;border:1px solid rgba(255,255,255,.6);opacity:0;}
.joffer__slide.is-active .joffer__icon::after{animation:joffer-ping 1.6s ease-out .4s;}
@keyframes joffer-ping{0%{opacity:1;transform:scale(.8);}100%{opacity:0;transform:scale(1.5);}}
.joffer__slide p{margin:16px 0 0;font-size:.88rem;line-height:1.7;color:rgba(255,255,255,.86);}

@media (max-width:960px){
  .joffer__pin{min-height:620px;}
  .joffer__lede{display:none;}
  .joffer__head{right:24px;}
  .joffer__foot{top:auto;bottom:clamp(20px,2.6vw,36px);right:20px;}
  .joffer__cards{right:16px;left:16px;width:auto;bottom:76px;}
}
@media (prefers-reduced-motion:reduce){
  .joffer__bg{scale:1;filter:none;translate:none;transition:none;}
  .joffer__head>*,.joffer__foot,.joffer__cards,.joffer__slide{transform:none;filter:none;transition:none!important;}
  .joffer__head>*,.joffer__foot,.joffer__cards{opacity:1;}
  .joffer__slide::after,.joffer__icon *,.joffer__icon::after{animation:none!important;}
}

/* glass panels: readable content floating over the landscape */
.glass{
  max-width:600px;padding:48px;border-radius:24px;color:var(--cream-50);position:relative;
  background:rgba(13,36,21,.70);
  -webkit-backdrop-filter:blur(14px) saturate(1.15);backdrop-filter:blur(14px) saturate(1.15);
  border:1px solid rgba(230,205,123,.22);
  box-shadow:0 30px 60px rgba(8,22,13,.35);
}
.glass--right{margin-left:auto;}
.glass--wide{max-width:none;}
.glass .eyebrow{color:var(--gold-300);}
.glass .section-title{color:var(--cream-50);}
.glass .section-lede{color:rgba(251,248,240,.84);}
.glass__head{text-align:center;margin-bottom:44px;}
.glass__head .eyebrow{justify-content:center;}
.glass__head--left{text-align:left;}
.glass__head--left .eyebrow{justify-content:flex-start;}
.glass__list{margin-top:26px;display:flex;flex-direction:column;gap:14px;}
.glass__list li{display:flex;gap:12px;align-items:flex-start;color:rgba(251,248,240,.9);}
.glass__list svg{flex:none;margin-top:3px;color:var(--gold-300);}
.glass__btn{margin-top:30px;}
.glass__badge{
  position:absolute;top:-26px;right:34px;background:var(--gold-500);color:var(--green-950);
  padding:16px 22px;border-radius:14px;box-shadow:0 18px 36px rgba(8,22,13,.3);font-family:var(--font-display);
}
.glass__badge strong{display:block;font-size:1.8rem;line-height:1;}
.glass__badge span{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-body);font-weight:800;}
.glass-card{
  position:relative;padding:30px 26px;border-radius:16px;
  background:rgba(251,248,240,.06);border:1px solid rgba(251,248,240,.14);
  transition:transform .45s var(--ease),background .45s var(--ease);
}
.glass-card:hover{transform:translateY(-6px);background:rgba(251,248,240,.1);}
.glass-card .card__icon{background:var(--gold-500);color:var(--green-950);}
.glass-card h3{font-size:1.2rem;margin-bottom:10px;color:var(--cream-50);}
.glass-card p{font-size:.94rem;color:rgba(251,248,240,.78);}
.glass-card .card__tag{top:18px;right:18px;}
.glass .steps{gap:30px;}
.glass .step::before{color:var(--gold-400);opacity:.9;}
.glass .step h4{color:var(--cream-50);}
.glass .step p{color:rgba(251,248,240,.78);}

.jcta{text-align:center;color:var(--cream-50);max-width:760px;margin:0 auto;}
.jcta h2{font-size:clamp(2rem,4vw,3.3rem);text-shadow:0 4px 30px rgba(8,22,13,.6);}
.jcta p{color:rgba(251,248,240,.86);margin-top:16px;font-size:1.08rem;}
.jcta__buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:30px;}

.hero__kicker{
  display:inline-flex;align-items:center;gap:10px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-300);font-weight:700;margin-bottom:22px;
}
.hero__kicker::before{content:"";width:34px;height:2px;background:var(--gold-400);}
.hero__stats{display:flex;gap:46px;margin-top:64px;flex-wrap:wrap;border-top:1px solid rgba(251,248,240,.18);padding-top:28px;}
.stat-num{font-family:var(--font-display);font-size:2.1rem;color:var(--gold-300);display:block;}
.stat-label{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(251,248,240,.7);margin-top:4px;display:block;}
.scroll-cue{
  position:absolute;right:28px;bottom:26px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;
  color:rgba(251,248,240,.75);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
}
.scroll-cue__line{width:1px;height:44px;background:linear-gradient(180deg,var(--gold-400),transparent);animation:cue 2s ease-in-out infinite;}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}51%{transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

/* ---------- inner page hero ---------- */
.page-hero{
  position:relative;color:var(--cream-50);background:var(--green-950);
  padding:196px 0 90px;overflow:hidden;
}
.page-hero__bg{position:absolute;inset:0;z-index:0;}
.page-hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.42;}
.page-hero::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(13,36,21,.55),rgba(13,36,21,.92));
}
.page-hero .container{position:relative;z-index:1;}
.page-hero h1{font-size:clamp(2.4rem,5vw,4.2rem);max-width:16ch;}
.breadcrumb{display:flex;gap:8px;align-items:center;font-size:.82rem;color:rgba(251,248,240,.7);margin-top:18px;}
.breadcrumb a:hover{color:var(--gold-300);}

/* ---------- cards / grid ---------- */
.grid{display:grid;gap:26px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}

.card{
  background:var(--white);border-radius:var(--radius);padding:36px 30px;
  border:1px solid rgba(19,51,29,.08);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s;
  position:relative;
}
.card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(19,51,29,.12);border-color:transparent;}
.card__icon{
  width:52px;height:52px;border-radius:14px;background:var(--green-900);color:var(--gold-300);
  display:flex;align-items:center;justify-content:center;margin-bottom:22px;font-size:1.4rem;
}
.card h3{font-size:1.25rem;margin-bottom:12px;color:var(--ink-900);}
.card p{color:var(--ink-700);font-size:.96rem;}
.card__tag{
  position:absolute;top:24px;right:24px;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;
  background:var(--gold-500);color:var(--green-950);padding:5px 11px;border-radius:100px;font-weight:800;
}

/* ---------- split section ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.split__media{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/5;}
.split__media img{width:100%;height:100%;object-fit:cover;}
.split__media .frame{
  position:absolute;inset:18px;border:1px solid rgba(251,248,240,.5);border-radius:12px;pointer-events:none;
}
.split__badge{
  position:absolute;left:-24px;bottom:-24px;background:var(--gold-500);color:var(--green-950);
  padding:20px 24px;border-radius:14px;box-shadow:0 18px 36px rgba(19,51,29,.22);
  font-family:var(--font-display);
}
.split__badge strong{display:block;font-size:1.9rem;}
.split__badge span{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;font-family:var(--font-body);font-weight:700;}
.split__body ul{margin-top:26px;display:flex;flex-direction:column;gap:14px;}
.split__body li{display:flex;gap:12px;align-items:flex-start;color:var(--ink-700);}
.split__body li svg{flex:none;margin-top:3px;color:var(--gold-600);}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--green-900);color:var(--cream-50);border-radius:24px;
  padding:64px 56px;display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;
  position:relative;overflow:hidden;
}
.cta-band::before{
  content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,162,39,.28),transparent 70%);
}
.cta-band h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:520px;}
.cta-band p{color:rgba(251,248,240,.78);margin-top:12px;max-width:480px;}

/* ---------- mini steps (deposit funnel) ---------- */
.mini-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.mini-step{background:rgba(251,248,240,.06);border:1px solid rgba(251,248,240,.16);border-radius:14px;padding:24px;}
.mini-step__num{
  display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;
  background:var(--gold-500);color:var(--green-950);font-family:var(--font-display);font-weight:700;margin-bottom:14px;
}
.mini-step h4{color:var(--cream-50);font-size:1.05rem;margin-bottom:8px;font-family:var(--font-display);font-weight:600;}
.mini-step p{color:rgba(251,248,240,.78);font-size:.92rem;}
@media (max-width:860px){.mini-steps{grid-template-columns:1fr;}}

/* ---------- disclaimer box ---------- */
.disclaimer{
  background:var(--cream-100);border:1px solid var(--cream-200);border-left:4px solid var(--gold-500);
  border-radius:10px;padding:22px 26px;font-size:.86rem;color:var(--ink-700);display:flex;gap:14px;
}
.disclaimer svg{flex:none;color:var(--gold-600);margin-top:2px;}
.disclaimer strong{color:var(--ink-900);}

/* ---------- timeline ---------- */
.timeline{position:relative;padding-left:34px;border-left:2px solid var(--cream-200);display:flex;flex-direction:column;gap:40px;}
.timeline__item{position:relative;}
.timeline__item::before{
  content:"";position:absolute;left:-42px;top:2px;width:16px;height:16px;border-radius:50%;
  background:var(--gold-500);border:3px solid var(--cream-50);box-shadow:0 0 0 2px var(--gold-500);
}
.timeline__year{font-family:var(--font-display);color:var(--gold-600);font-size:1.2rem;}

/* ---------- steps ---------- */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.step{position:relative;padding-top:12px;}
.step::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:var(--font-display);font-size:2.6rem;color:var(--cream-200);display:block;margin-bottom:10px;
}
.step h4{font-size:1.05rem;margin-bottom:8px;}
.step p{color:var(--ink-700);font-size:.92rem;}

/* ---------- process card (image + timeline) ---------- */
.jsection.jsection--process{background:var(--white);padding:0;}
.process-wrap{padding:0;}
.process{
  position:relative;overflow:hidden;border-radius:0;color:var(--cream-50);
  padding:clamp(56px,8vh,96px) max(24px,calc((100vw - var(--container))/2 + 24px));min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;gap:48px;
  background:var(--green-950);
}
.process__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.process::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,36,21,.35) 0%,rgba(13,36,21,.05) 40%,rgba(13,36,21,.55) 100%);
}
.process > *:not(.process__bg){position:relative;z-index:1;}
.process__head{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;}
.process .eyebrow{color:var(--gold-300);font-size:.95rem;}
.process__title{
  font-family:var(--font-display);font-weight:400;color:var(--cream-50);
  font-size:clamp(2.4rem,5.2vw,4.4rem);line-height:1.05;margin:10px 0 0;
}
.process__stat{display:flex;align-items:center;gap:14px;text-align:left;}
.process__stat strong{font-family:var(--font-display);font-weight:400;font-size:clamp(2.8rem,5.5vw,4.4rem);line-height:1;color:var(--cream-50);}
.process__stat span{font-size:1.05rem;line-height:1.35;color:rgba(251,248,240,.82);}

.process__track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.process__step{position:relative;text-align:center;padding:0 12px;}
/* connector line + arrow between circles */
.process__step:not(:last-child)::before{
  content:"";position:absolute;top:32px;left:calc(50% + 40px);right:calc(-50% + 40px);
  height:1px;background:rgba(251,248,240,.55);
}
.process__step:not(:last-child)::after{
  content:"";position:absolute;top:28px;right:calc(-50% + 40px);
  width:8px;height:8px;border-top:1px solid rgba(251,248,240,.75);border-right:1px solid rgba(251,248,240,.75);
  transform:rotate(45deg);
}
.process__icon{
  width:64px;height:64px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream-50);color:var(--green-900);box-shadow:0 8px 24px rgba(8,22,13,.35);
}
.process__icon svg{width:26px;height:26px;}
.process__step h4{font-size:1.3rem;font-weight:500;color:var(--cream-50);margin:0 0 8px;}
.process__step p{font-size:1.02rem;line-height:1.5;color:rgba(251,248,240,.8);max-width:260px;margin:0 auto;}

@media (max-width:860px){
  .process{padding:40px 28px 44px;min-height:0;}
  .process__head{flex-direction:column;}
  .process__track{grid-template-columns:1fr;gap:28px;}
  .process__step{display:grid;grid-template-columns:56px 1fr;column-gap:16px;text-align:left;padding:0;}
  .process__icon{width:56px;height:56px;margin:0;grid-row:span 2;}
  .process__step p{margin:0;max-width:none;}
  .process__step:not(:last-child)::before{top:64px;bottom:-24px;left:28px;right:auto;width:1px;height:auto;}
  .process__step:not(:last-child)::after{display:none;}
}

/* process: scroll-in animation (head + track get .is-in via JS) */
.process__bg{transform:scale(1.12);transition:transform 2.4s cubic-bezier(.22,1,.36,1);}
.process.is-in .process__bg{transform:scale(1);}
.process__title .pline{display:block;overflow:hidden;padding-bottom:.08em;}
.process__title .pline > span{display:block;transform:translateY(105%);transition:transform 1s cubic-bezier(.22,1,.36,1);}
.process__title .pline:nth-child(2) > span{transition-delay:.12s;}
.process .eyebrow,.process__stat{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .9s cubic-bezier(.22,1,.36,1);}
.process__stat{transition-delay:.3s;}
.process__head.is-in .pline > span{transform:none;}
.process__head.is-in .eyebrow,.process__head.is-in .process__stat{opacity:1;transform:none;}

.process__step:nth-child(1){--i:0;}
.process__step:nth-child(2){--i:1;}
.process__step:nth-child(3){--i:2;}
.process__step:nth-child(4){--i:3;}
.process__icon{opacity:0;transform:scale(.4) rotate(-25deg);transition:opacity .5s ease,transform .8s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i) * .45s);}
.process__step h4,.process__step p{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .8s cubic-bezier(.22,1,.36,1);}
.process__step h4{transition-delay:calc(var(--i) * .45s + .15s);}
.process__step p{transition-delay:calc(var(--i) * .45s + .25s);}
.process__step:not(:last-child)::before{transform:scaleX(0);transform-origin:left center;transition:transform .5s cubic-bezier(.65,0,.35,1);transition-delay:calc(var(--i) * .45s + .3s);}
.process__step:not(:last-child)::after{opacity:0;transition:opacity .3s ease;transition-delay:calc(var(--i) * .45s + .7s);}
.process__track.is-in .process__icon{opacity:1;transform:none;}
.process__track.is-in h4,.process__track.is-in p{opacity:1;transform:none;}
.process__track.is-in .process__step:not(:last-child)::before{transform:scaleX(1);}
.process__track.is-in .process__step:not(:last-child)::after{opacity:1;}
@media (max-width:860px){
  .process__step:not(:last-child)::before{transform:scaleY(0);transform-origin:center top;}
  .process__track.is-in .process__step:not(:last-child)::before{transform:scaleY(1);}
}
@media (prefers-reduced-motion:reduce){
  .process__bg,.process__title .pline > span,.process .eyebrow,.process__stat,
  .process__icon,.process__step h4,.process__step p,
  .process__step::before,.process__step::after{transition:none !important;transform:none !important;opacity:1 !important;}
  .process__step:not(:last-child)::after{transform:rotate(45deg) !important;}
}

/* ---------- gallery ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;grid-auto-flow:dense;gap:16px;}
.gallery-item{
  position:relative;border-radius:14px;overflow:hidden;background:var(--green-900);
}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.gallery-item:hover img{transform:scale(1.08);}
.gallery-item.big{grid-column:span 2;grid-row:span 2;}
.gallery-item.wide{grid-column:span 2;}
.gallery-item.tall{grid-row:span 2;}
.gallery-item__caption{
  position:absolute;left:0;right:0;bottom:0;padding:18px;
  background:linear-gradient(180deg,transparent,rgba(13,36,21,.85));
  color:var(--cream-100);font-size:.82rem;font-weight:700;letter-spacing:.02em;
  opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.gallery-item:hover .gallery-item__caption{opacity:1;transform:translateY(0);}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;}
.contact-card{
  background:var(--green-900);color:var(--cream-100);border-radius:20px;padding:44px;
  display:flex;flex-direction:column;gap:26px;
}
.contact-item{display:flex;gap:16px;align-items:flex-start;}
.contact-item__icon{
  width:42px;height:42px;border-radius:10px;background:rgba(251,248,240,.1);color:var(--gold-300);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.contact-item h4{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-300);margin-bottom:6px;font-family:var(--font-body);font-weight:700;}
.contact-item p{font-size:.98rem;color:rgba(251,248,240,.9);}
.contact-item a:hover{color:var(--gold-300);}

.form-card{background:var(--white);border-radius:20px;padding:44px;border:1px solid rgba(19,51,29,.08);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-group{margin-bottom:18px;display:flex;flex-direction:column;gap:8px;}
.form-group label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-700);}
.form-group input,.form-group select,.form-group textarea{
  border:1px solid var(--cream-200);background:var(--cream-50);border-radius:10px;padding:13px 16px;
  font-family:inherit;font-size:.95rem;color:var(--ink-900);transition:border-color .3s,box-shadow .3s;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--gold-500);box-shadow:0 0 0 3px rgba(201,162,39,.15);
}
.map-embed{border-radius:20px;overflow:hidden;border:1px solid rgba(19,51,29,.08);margin-top:26px;}
.map-embed iframe{width:100%;height:320px;border:0;display:block;}

/* ---------- footer (video backdrop) ---------- */
.site-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--green-950);color:rgba(251,248,240,.8);}
.footer-media{position:absolute;inset:0;z-index:-1;}
.footer-video{width:100%;height:100%;object-fit:cover;display:block;}
.footer-media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(8,22,13,.7) 0%,rgba(8,22,13,.25) 40%,rgba(8,22,13,.3) 70%,rgba(8,22,13,.85) 100%),
    linear-gradient(90deg,rgba(8,22,13,.55) 0%,transparent 65%);
}
.footer-inner{padding-top:clamp(36px,5vh,56px);}
.footer-top{
  display:flex;justify-content:space-between;align-items:center;gap:30px;
  padding-bottom:26px;border-bottom:1px solid rgba(251,248,240,.16);
}
.footer-cta h2{color:var(--cream-50);font-size:clamp(1.3rem,1.9vw,1.75rem);max-width:520px;text-shadow:0 4px 30px rgba(8,22,13,.5);}
.footer-cta__accent{color:var(--gold-400);}
.footer-cta p{color:rgba(251,248,240,.84);margin-top:10px;font-size:.82rem;}
.footer-cta__buttons{display:flex;gap:14px;flex-wrap:wrap;flex:none;}
.footer-cta__buttons .btn{padding:10px 22px;font-size:.8rem;}
.footer-main{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.75fr) minmax(0,.9fr) minmax(0,1.05fr);
  gap:36px;padding-top:28px;align-items:start;
}
.footer-main > *{min-width:0;}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.footer-brand img{height:68px;}
.footer-brand strong{font-family:var(--font-display);color:var(--cream-50);font-size:.95rem;}
.site-footer p{font-size:.8rem;}
.footer-about p{max-width:330px;}
.footer-col h5{color:var(--gold-300);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;}
.footer-col ul{display:flex;flex-direction:column;gap:7px;font-size:.78rem;}
.footer-col a{transition:color .3s;}
.footer-col a:hover{color:var(--gold-300);}
.footer-reach{padding-left:36px;}
.footer-reach li{display:flex;gap:10px;align-items:flex-start;}
.footer-reach li svg{flex:none;margin-top:2px;color:var(--cream-100);}
.footer-reach .social-row{margin-top:16px;}
.footer-reach .social-row a{width:32px;height:32px;}
.footer-word{
  font-family:var(--font-display);font-weight:600;white-space:nowrap;
  font-size:clamp(3.4rem,15vw,15rem);line-height:.86;letter-spacing:0;
  margin:14px 0 0;user-select:none;pointer-events:none;
  background:linear-gradient(180deg,rgba(251,248,240,.92) 0%,rgba(230,205,123,.6) 55%,rgba(251,248,240,.18) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.footer-word span{display:inline-block;}
.footer-legal{
  padding:14px 0 18px;display:flex;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;
  border-top:1px solid rgba(251,248,240,.16);font-size:.66rem;color:rgba(251,248,240,.6);
}
.footer-legal strong{color:rgba(251,248,240,.85);}
.footer-legal__sep{margin:0 10px;}
.social-row{display:flex;gap:12px;margin-top:20px;}
.social-row a{
  width:38px;height:38px;border-radius:50%;border:1px solid rgba(251,248,240,.25);
  display:flex;align-items:center;justify-content:center;transition:background .3s,border-color .3s;
}
.social-row a:hover{background:var(--gold-500);border-color:var(--gold-500);color:var(--green-950);}

/* ---------- reveal animation ---------- */
/* ===== Membership: white editorial section ===== */
/* type scale follows .joffer (title ≤2.6rem, small body copy) */
.mship{position:relative;z-index:3;background:#fff;color:var(--ink-900);padding:clamp(64px,10vh,110px) 0 0;overflow:hidden;}
.mship__top{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(21,33,26,.12);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-500);}
.mship__index{font-family:var(--font-display);font-weight:400;letter-spacing:0;font-size:.85rem;color:var(--gold-600);}
.mship__eyebrow{color:var(--green-900);}
.mship__title{margin:clamp(24px,4vh,40px) 0 clamp(28px,5vh,52px);font-family:var(--font-display);font-weight:400;font-size:clamp(2.2rem,4.8vw,4.6rem);line-height:1.04;letter-spacing:-.03em;color:var(--green-950);}
.mship__row{display:flex;flex-wrap:wrap;align-items:center;gap:.24em;overflow:hidden;padding:.04em 0 .08em;}
.mship__row--indent{padding-left:clamp(0px,4vw,64px);}
.mship__title em{font-style:italic;font-weight:300;}
.mship__word{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease);}
.mship__word--gold{color:var(--gold-600);}
.mship__pill{display:inline-block;width:1.9em;height:.82em;border-radius:999px;overflow:hidden;clip-path:inset(0 50% 0 50% round 999px);transition:clip-path 1.2s var(--ease) .35s;}
.mship__pill--round{width:.82em;}
.mship__pill img{width:100%;height:100%;object-fit:cover;transform:scale(1.35);transition:transform 1.6s var(--ease) .35s;}
.mship__row:nth-child(2) .mship__word{transition-delay:.08s;}
.mship__row:nth-child(3) .mship__word{transition-delay:.16s;}
.mship.is-in .mship__word{transform:none;}
.mship.is-in .mship__pill{clip-path:inset(0 0 0 0 round 999px);}
.mship.is-in .mship__pill img{transform:scale(1);}

.mship__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center;}
.mship__media{position:relative;margin:0;}
.mship__frame{position:relative;aspect-ratio:5/4;max-height:62vh;border-radius:20px;overflow:hidden;background:var(--cream-100);clip-path:inset(calc((1 - var(--mp,1)) * 14%) round 20px);will-change:clip-path;}
.mship__frame video{width:100%;height:100%;object-fit:cover;transform:scale(calc(1.25 - var(--mp,1)*.25));}
.mship__price{position:absolute;left:clamp(14px,2vw,24px);bottom:clamp(14px,2vw,24px);background:#fff;border-radius:14px;padding:12px 18px 14px;box-shadow:0 24px 48px -20px rgba(13,36,21,.35);}
.mship__price-label,.mship__price-note{display:block;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-500);}
.mship__price strong{display:block;font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3vw,2.6rem);line-height:1;letter-spacing:-.03em;color:var(--green-950);margin:4px 0 6px;}
.mship__price sup{font-size:.4em;vertical-align:.95em;margin-right:3px;color:var(--gold-600);}
.mship__price-note{color:var(--gold-600);letter-spacing:.04em;text-transform:none;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:.82rem;}
.mship__orb{position:absolute;top:-32px;right:-32px;width:100px;height:100px;border-radius:50%;background:var(--green-950);color:#fff;display:grid;place-items:center;transition:transform .6s var(--ease),background .4s;}
.mship__orb:hover{transform:scale(1.08);background:var(--gold-600);}
.mship__orb-text{position:absolute;inset:0;width:100%;height:100%;animation:mshipSpin 16s linear infinite;}
.mship__orb-text text{fill:currentColor;font:700 10.5px var(--font-body);letter-spacing:.2em;text-transform:uppercase;}
.mship__orb-arrow{transition:transform .5s var(--ease);}
.mship__orb:hover .mship__orb-arrow{transform:rotate(45deg);}
@keyframes mshipSpin{to{transform:rotate(360deg);}}

.mship__lede{margin:0 0 clamp(20px,3vh,32px);font-size:.88rem;line-height:1.7;color:var(--ink-700);max-width:44ch;}
.mship__list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(21,33,26,.12);}
.mship__list li{display:grid;grid-template-columns:44px 1fr;gap:10px;padding:16px 0;border-bottom:1px solid rgba(21,33,26,.12);position:relative;transition:padding-left .5s var(--ease);}
.mship__list li::before{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--green-900);transition:width .7s var(--ease);}
.mship__list li:hover{padding-left:10px;}
.mship__list li:hover::before{width:100%;}
.mship__num{font-family:var(--font-display);font-size:.85rem;color:var(--gold-600);padding-top:3px;}
.mship__list h3{font-family:var(--font-display);font-weight:400;font-size:clamp(1.05rem,1.35vw,1.3rem);letter-spacing:-.01em;color:var(--green-950);margin-bottom:3px;}
.mship__list p{margin:0;color:var(--ink-500);font-size:.84rem;line-height:1.55;}
.mship__cta{display:inline-flex;align-items:center;gap:14px;margin-top:clamp(20px,3.4vh,32px);padding:6px 6px 6px 22px;border-radius:999px;background:var(--green-950);color:#fff;font-weight:700;font-size:.85rem;transition:background .4s,gap .5s var(--ease);}
.mship__cta-icon{width:38px;height:38px;border-radius:50%;background:var(--gold-500);color:var(--green-950);display:grid;place-items:center;transition:transform .5s var(--ease);}
.mship__cta:hover{background:var(--green-800);gap:20px;}
.mship__cta:hover .mship__cta-icon{transform:rotate(-45deg);}

.mship__marquee{margin-top:clamp(56px,9vh,96px);border-top:1px solid rgba(21,33,26,.12);padding:clamp(14px,2.2vh,22px) 0;overflow:hidden;}
.mship__track{display:flex;width:max-content;align-items:center;gap:clamp(20px,2.6vw,40px);animation:mshipMarquee 36s linear infinite;font-family:var(--font-display);font-size:clamp(1.3rem,2.4vw,2.2rem);font-weight:300;letter-spacing:-.02em;color:var(--green-950);white-space:nowrap;}
.mship__track span:nth-of-type(even){font-style:italic;color:var(--gold-600);}
.mship__track i{font-style:normal;font-size:.45em;color:var(--gold-500);}
@keyframes mshipMarquee{to{transform:translateX(-50%);}}

@media (max-width:900px){
  .mship__top{grid-template-columns:auto 1fr;}
  .mship__meta{display:none;}
  .mship__grid{grid-template-columns:1fr;}
  .mship__orb{width:88px;height:88px;top:-24px;right:12px;}
  .mship__lede{max-width:none;}
}
@media (max-width:560px){
  .mship__row--indent{padding-left:0;}
  .mship__price{padding:10px 14px 12px;}
}
@media (prefers-reduced-motion:reduce){
  .mship__word,.mship__pill,.mship__pill img{transform:none;clip-path:none;transition:none;}
  .mship__frame{clip-path:inset(0 round 20px);}
  .mship__frame video{transform:none;}
  .mship__orb-text,.mship__track{animation:none;}
}

.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-delay-1{transition-delay:.1s;}
.reveal-delay-2{transition-delay:.2s;}
.reveal-delay-3{transition-delay:.3s;}

/* ---------- flex/grid overflow guard ----------
   grid/flex items default to min-width:auto (their content's min-content),
   which can force the whole layout wider than the viewport on long text. */
.grid > *, .contact-grid > *, .split > *, .form-row > *,
.contact-item > div, .cta-band > *, .steps > *, .mini-steps > * {
  min-width: 0;
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .footer-main{grid-template-columns:1fr 1fr;gap:28px 36px;}
  .footer-reach{border-left:0;padding-left:0;}
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:860px){
  .nav-links,.nav-cta{display:none;}
  .nav-toggle{display:block;}
  .site-header .container{gap:16px;}
  .brand img{height:82px;width:82px;}
  .split,.contact-grid{grid-template-columns:1fr;}
  .split__media{order:-1;}
  .grid-2{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .glass{padding:36px 28px;}
  .glass__badge{right:22px;}
  .jsection{padding:9vh 0;}
  .jhero__body{position:relative;inset:auto;flex:1;padding-top:120px;padding-bottom:24px;}
  .jhero__cta{gap:16px 22px;margin-top:20px;}
  .jhero__foot{flex-direction:column-reverse;align-items:flex-start;gap:28px;padding-bottom:28px;}
  .jstats .hero__stats{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px;padding-top:20px;}
  .jstats .stat-num{font-size:1.6rem;}
  .cta-band{flex-direction:column;text-align:left;padding:44px 28px;}
}
@media (max-width:640px){
  .footer-top{flex-direction:column;align-items:stretch;gap:18px;padding-bottom:22px;}
  .footer-cta h2{font-size:1.3rem;}
  .footer-cta__buttons{gap:10px;}
  .footer-cta__buttons .btn{flex:1 1 0;justify-content:center;padding-left:14px;padding-right:14px;white-space:nowrap;}
  .footer-main{grid-template-columns:1fr 1fr;gap:24px 20px;padding-top:22px;}
  .footer-about,.footer-reach{grid-column:1 / -1;}
  .footer-legal{flex-direction:column;gap:6px;font-size:.62rem;}
  .section{padding:72px 0;}
  .grid-3,.grid-4{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}
  .gallery-item.big{grid-column:span 2;grid-row:span 1;}
  .split__badge{left:12px;bottom:-18px;padding:14px 18px;}
  .hero__stats{gap:28px;}
}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .marquee__track,.scroll-cue__line{animation:none;}
}

/* ---------- mobile nav drawer ---------- */
.mobile-drawer{
  position:fixed;inset:0;z-index:99;background:var(--green-950);color:var(--cream-50);
  display:flex;flex-direction:column;justify-content:center;gap:8px;padding:40px;
  transform:translateY(-100%);transition:transform .5s var(--ease);overflow-y:auto;
}
.mobile-drawer.is-open{transform:translateY(0);}
.mobile-drawer a{font-family:var(--font-display);font-size:2.1rem;padding:12px 0;border-bottom:1px solid rgba(251,248,240,.12);}
.mobile-drawer .btn{margin-top:24px;align-self:flex-start;}

/* ============================================================
   PRELOADER — "UPASANA" set large on cream, with the paddy field
   showing through the letters (a cream veil in screen blend: cream
   stays cream, the black letters let the image through). When the
   page is ready the word zooms through the stem of the P until the
   field fills the screen, then fades into the live page. Driven by
   classes on <html>: .has-preloader (set in <head>), .preloader-quick
   (repeat visit this session), .is-ready (set by main.js to leave).
   ============================================================ */
.preloader{display:none;}
.has-preloader .preloader{
  --s:1; /* animation speed multiplier; quick mode shortens everything */
  --p:0; /* load progress 0..1, set by main.js (drives the hairline) */
  display:block;position:fixed;inset:0;z-index:1000;overflow:hidden;background:var(--green-950);
  transition:opacity calc(.7s * var(--s)) cubic-bezier(.4,0,.2,1) calc(1.15s * var(--s));
}
.has-preloader:not(.is-ready){overflow:hidden;}
.preloader-quick .preloader{--s:.65;}

.preloader__media{
  position:absolute;inset:0;background:url(../assets/images/videos/hero-poster.webp) center/cover no-repeat;
  transform:scale(1.25);will-change:transform;
  animation:pl-drift 10s cubic-bezier(.16,.7,.3,1) forwards;
}
.preloader__veil{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:#fff;mix-blend-mode:screen;
}
/* white x cream = flat cream, so no trace of the image shows around the letters */
.preloader__tint{position:absolute;inset:0;background:var(--cream-50);mix-blend-mode:multiply;pointer-events:none;}
.preloader__word{
  display:flex;margin:0;overflow:hidden;padding:.02em .04em;
  font:700 clamp(3.4rem,15.5vw,15rem)/.86 var(--font-display);letter-spacing:-.015em;color:#000;
  will-change:transform;
  /* a slow "breath" while loading (uses `scale`, so it composes with the exit zoom on `transform`) */
  animation:pl-breathe 9s cubic-bezier(.3,0,.2,1) forwards;
}
.preloader__word span{
  display:block;transform:translateY(110%);opacity:0;filter:blur(10px);
  animation:pl-rise calc(1.5s * var(--s)) cubic-bezier(.16,1,.3,1) forwards;
}
.preloader__word span:nth-child(1){animation-delay:calc(.2s * var(--s));}
.preloader__word span:nth-child(2){animation-delay:calc(.3s * var(--s));}
.preloader__word span:nth-child(3){animation-delay:calc(.4s * var(--s));}
.preloader__word span:nth-child(4){animation-delay:calc(.5s * var(--s));}
.preloader__word span:nth-child(5){animation-delay:calc(.6s * var(--s));}
.preloader__word span:nth-child(6){animation-delay:calc(.7s * var(--s));}
.preloader__word span:nth-child(7){animation-delay:calc(.8s * var(--s));}

.preloader__meta{
  position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;
  padding:0 clamp(20px,4vw,48px) clamp(20px,4vh,36px);
  font-size:.68rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--green-900);
  opacity:0;transform:translateY(10px);
  animation:pl-meta calc(1.2s * var(--s)) cubic-bezier(.16,1,.3,1) calc(1s * var(--s)) forwards;
  transition:opacity calc(.5s * var(--s)) ease,transform calc(.6s * var(--s)) cubic-bezier(.7,0,.84,0);
}
/* hairline progress that fills with the counter */
.preloader__meta::after{
  content:"";position:absolute;left:clamp(20px,4vw,48px);right:clamp(20px,4vw,48px);bottom:calc(clamp(20px,4vh,36px) - 12px);
  height:1px;background:var(--gold-600);opacity:.55;
  transform:scaleX(var(--p));transform-origin:left;
}
/* the full company name framing the word: its own layer above the cream (so it
   never shows the field through it). The hidden gap copies the word's metrics
   and breathes with it, so the lines hug the letters at any width. */
.preloader__name{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  pointer-events:none;font-size:clamp(3.4rem,15.5vw,15rem);
  animation:pl-breathe 9s cubic-bezier(.3,0,.2,1) forwards;
}
.preloader__gap{display:block;visibility:hidden;padding:.02em .04em;font:700 1em/.86 var(--font-display);letter-spacing:-.015em;}
.preloader__line{
  display:flex;align-items:center;gap:1.1em;text-transform:uppercase;white-space:nowrap;
  opacity:0;transform:translateY(60%) rotate(4deg);transform-origin:left bottom;
  /* rises like the UPASANA letters, but with a slight tilt that settles level */
  animation:pl-tilt calc(1.5s * var(--s)) cubic-bezier(.16,1,.3,1) calc(1.3s * var(--s)) both;
  transition:opacity calc(.35s * var(--s)) ease,transform calc(.5s * var(--s)) cubic-bezier(.7,0,.84,0);
}
.preloader__line--top{
  margin-bottom:clamp(.5rem,1.4vw,1.1rem);
  font:500 clamp(1.2rem,2.8vw,2.2rem)/1 var(--font-display);letter-spacing:.04em;text-transform:none;color:var(--gold-600);
}
.preloader__line--bottom{
  margin-top:clamp(.7rem,1.8vw,1.4rem);
  font-size:clamp(.6rem,1.25vw,1rem);font-weight:700;letter-spacing:.32em;text-indent:.32em;gap:.8em;color:var(--green-900);
  animation-delay:calc(1.3s * var(--s));
}
/* hairlines either side of the bottom line */
.preloader__line--bottom::before,.preloader__line--bottom::after{content:"";width:clamp(10px,4vw,64px);height:1px;background:var(--gold-600);opacity:.6;}
.preloader__count{font:500 1.1rem/1 var(--font-display);letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--gold-600);}

/* leaving: zoom through the middle of the word (main.js sets the transform-origin on the S) */
.is-ready .preloader{pointer-events:none;opacity:0;}
.is-ready .preloader__meta{opacity:0;transform:translateY(14px);animation:none;}
.is-ready .preloader__line{opacity:0;transform:translateY(-6px);animation:none;}
.is-ready .preloader__word{
  /* pl-breathe keeps running (same name, same slot); the zoom is keyframed in log space, see pl-zoom */
  animation:pl-breathe 9s cubic-bezier(.3,0,.2,1) forwards,pl-zoom calc(1.8s * var(--s)) linear calc(.1s * var(--s)) both;
}
/* the letters stay the window until the zoom is well under way, then the veil lifts */
.is-ready .preloader__veil,.is-ready .preloader__tint{opacity:0;transition:opacity calc(.55s * var(--s)) cubic-bezier(.4,0,.2,1) calc(1.05s * var(--s));}
.is-ready .preloader__media{transition:transform calc(2.2s * var(--s)) cubic-bezier(.65,0,.35,1);transform:scale(1);animation:none;}
/* reloaded further down the page (.preloader-mid): the letters are filled with the brand green
   instead of the hero field, so the hero never shows before that section. Same zoom. */
.preloader-mid .preloader__media{background:#0f5f2e;}

@keyframes pl-rise{
  0%{transform:translateY(110%);opacity:0;filter:blur(10px);}
  60%{filter:blur(0);}
  100%{transform:translateY(0);opacity:1;filter:blur(0);}
}
@keyframes pl-meta{to{opacity:1;transform:none;}}
@keyframes pl-tilt{
  0%{transform:translateY(60%) rotate(4deg);opacity:0;filter:blur(8px);}
  60%{filter:blur(0);}
  100%{transform:none;opacity:1;filter:blur(0);}
}
@keyframes pl-drift{to{transform:scale(1.06);}}
@keyframes pl-breathe{from{scale:.97;}to{scale:1.02;}}
/* scale = 90^ease(t) with a sine ease-in-out, so the zoom feels like a steady
   glide instead of a slow start followed by a sudden burst at the end */
@keyframes pl-zoom{
  0%{transform:scale(1);}
  10%{transform:scale(1.116);}
  20%{transform:scale(1.537);}
  30%{transform:scale(2.528);}
  40%{transform:scale(4.733);}
  50%{transform:scale(9.487);}
  60%{transform:scale(19.01);}
  70%{transform:scale(35.6);}
  80%{transform:scale(58.55);}
  90%{transform:scale(80.6);}
  100%{transform:scale(90);}
}

/* the page arrives as the field fades into the live page */
.has-preloader .site-header{opacity:0;transform:translateY(-16px);}
.has-preloader .jhero__display > span,
.has-preloader .jhero__tagline,
.has-preloader .jhero__foot > *{opacity:0;transform:translateY(36px);}
.has-preloader.is-ready .site-header,
.has-preloader.is-ready .jhero__display > span,
.has-preloader.is-ready .jhero__tagline,
.has-preloader.is-ready .jhero__foot > *{
  opacity:1;transform:none;
  transition:opacity 1.2s var(--ease) var(--d,1.4s),transform 1.5s cubic-bezier(.16,1,.3,1) var(--d,1.4s);
}
.has-preloader.is-ready .site-header{--d:1.25s;}
.has-preloader.is-ready .jhero__display > span:first-child{--d:.85s;}
.has-preloader.is-ready .jhero__display > span:nth-child(2){--d:.95s;}
.has-preloader.is-ready .jhero__tagline{--d:1.1s;}
.has-preloader.is-ready .jhero__foot > :first-child{--d:1.25s;}
.has-preloader.is-ready .jhero__foot > :last-child{--d:1.35s;}
.preloader-quick.is-ready .site-header,
.preloader-quick.is-ready .jhero__display > span,
.preloader-quick.is-ready .jhero__tagline,
.preloader-quick.is-ready .jhero__foot > *{--d:.55s;}
/* once the entrance has played, the header gets its normal scroll transitions back */
.has-preloader.is-settled .site-header{transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease),transform .9s cubic-bezier(.16,1,.3,1);}

@media (prefers-reduced-motion:reduce){
  .preloader *{animation:none !important;}
  .preloader__media{transform:none;}
  .preloader__word span{transform:none;opacity:1;filter:none;}
  .preloader__word{scale:none;}
  .preloader__meta{opacity:1;transform:none;}
  .preloader__line{opacity:1;transform:none;}
  .preloader__name{scale:none;}
  .is-ready .preloader__word{transform:none;}
  .has-preloader .preloader{transition:opacity .5s ease;}
  .has-preloader .site-header,.has-preloader .jhero__display > span,
  .has-preloader .jhero__tagline,.has-preloader .jhero__foot > *{transform:none;}
}

/* ---------- directors ---------- */
.team{
  position:relative;z-index:3;overflow:hidden;background:var(--white);color:var(--ink-900);
  min-height:100vh;display:flex;align-items:center;
  padding:clamp(80px,11vh,120px) max(24px,calc((100vw - var(--container))/2 + 24px)) clamp(56px,8vh,96px);
}
.team__inner{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:1fr minmax(0,1.05fr) 1fr;gap:clamp(28px,4.5vw,80px);align-items:center;}

/* centre column */
.team__head{text-align:center;display:flex;flex-direction:column;align-items:center;}
.team__eyebrow{font-size:.74rem;letter-spacing:.32em;text-transform:uppercase;font-weight:700;color:var(--gold-600);}
.team__title{font-weight:400;font-size:clamp(2.4rem,4.4vw,4.2rem);line-height:1.02;letter-spacing:-.025em;color:var(--green-950);margin-top:22px;}
.team__title em{font-style:italic;color:var(--gold-600);}
.team__title .pline{display:block;overflow:hidden;padding-bottom:.1em;}
.team__title .pline > span{display:block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.22,1,.36,1) .1s;}
.team__title .pline:nth-child(2) > span{transition-delay:.22s;}
.team__rule{display:flex;align-items:center;gap:14px;margin:30px 0 26px;color:var(--gold-500);font-size:.8rem;}
.team__rule i{height:1px;width:0;background:var(--gold-500);transition:width 1.2s cubic-bezier(.22,1,.36,1) .5s;}
.team__lede{color:var(--ink-700);font-size:1.02rem;line-height:1.75;max-width:380px;}
.team__place{margin-top:26px;font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:var(--ink-500);}
.team__eyebrow,.team__lede,.team__place{opacity:0;transform:translateY(16px);transition:opacity .9s ease .6s,transform 1s cubic-bezier(.22,1,.36,1) .6s;}
.team__eyebrow{transition-delay:0s;}
.team__place{transition-delay:.75s;}

/* portraits: mounted-print frame */
.tcard{--d:0s;}
.tcard--l{transform:translateY(-3vh);}
.tcard--r{--d:.12s;transform:translateY(3vh);}
.tcard__media{
  position:relative;margin:0;
  opacity:0;transform:translateY(40px);transition:opacity .6s ease var(--d),transform .8s cubic-bezier(.22,1,.36,1) var(--d);
}
.tcard__img{position:relative;display:block;overflow:hidden;height:min(58vh,560px);border-radius:2px;
  clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.77,0,.18,1) var(--d);}
.tcard__img img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transform:scale(1.25);
  transition:transform 1.2s cubic-bezier(.22,1,.36,1) var(--d);}
/* soft tonal vignette */
.tcard__img::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(13,36,21,0) 60%,rgba(13,36,21,.28) 100%);
}
.team.is-in .tcard:hover .tcard__img img{transform:scale(1.05);transition-delay:0s;transition-duration:1.2s;}

.tcard__meta{margin-top:22px;text-align:center;opacity:0;transform:translateY(16px);
  transition:opacity .6s ease calc(var(--d) + .4s),transform .7s cubic-bezier(.22,1,.36,1) calc(var(--d) + .4s);}
.tcard__name{font-weight:400;font-size:clamp(1.4rem,1.9vw,1.8rem);line-height:1.15;letter-spacing:-.015em;color:var(--green-950);}
.tcard__name em{font-style:italic;}
.tcard__role{display:inline-block;margin-top:10px;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;font-weight:700;color:var(--ink-500);}

/* reveal */
.team.is-in .team__title .pline > span,
.team.is-in .team__eyebrow,.team.is-in .team__lede,.team.is-in .team__place,
.team.is-in .tcard__media,.team.is-in .tcard__meta{opacity:1;transform:none;}
.team.is-in .team__rule i{width:56px;}
.team.is-in .tcard__img{clip-path:inset(0 0 0 0);}
.team.is-in .tcard__img img{transform:scale(1);}

@media (max-width:980px){
  .team{min-height:0;}
  .team__inner{grid-template-columns:1fr 1fr;row-gap:56px;}
  .team__head{grid-column:1 / -1;grid-row:1;}
  .tcard--l,.tcard--r{transform:none;}
  .tcard__img{height:auto;aspect-ratio:4/5;}
}
@media (max-width:560px){
  .team__inner{grid-template-columns:1fr;row-gap:48px;}
}
@media (prefers-reduced-motion:reduce){
  .team *,.team *::before,.team *::after{transition:none !important;}
}

/* ---------- home contact ---------- */
.hcontact{
  position:relative;z-index:3;overflow:hidden;background:var(--white);color:var(--ink-900);
  display:flex;align-items:center;
  padding:clamp(64px,9vh,96px) max(24px,calc((100vw - var(--container))/2 + 24px)) clamp(48px,7vh,80px);
}
.hcontact__inner{flex:1;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(20px,2.4vw,36px);align-items:stretch;}

/* photo panel: title + details */
.hcontact__panel{position:relative;overflow:hidden;border-radius:28px;display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(22px,2.6vw,36px);color:var(--cream-50);isolation:isolate;
  clip-path:inset(100% 0 0 0 round 28px);transition:clip-path 1.1s cubic-bezier(.77,0,.18,1);}
.hcontact__photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transform:scale(1.2);transition:transform 1.6s cubic-bezier(.22,1,.36,1);}
.hcontact__panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,36,21,.35) 0%,rgba(13,36,21,.1) 30%,rgba(13,36,21,.55) 60%,rgba(13,36,21,.94) 100%);}
.hcontact__panel-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.hcontact__chip{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.06em;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.hcontact__chip i{width:7px;height:7px;border-radius:50%;background:#7fe08a;box-shadow:0 0 0 4px rgba(127,224,138,.25);animation:hcPulse 2s ease-in-out infinite;}
@keyframes hcPulse{50%{box-shadow:0 0 0 7px rgba(127,224,138,0);}}
.hcontact__eyebrow{font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;font-weight:700;color:var(--gold-300);}
.hcontact__title{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3.2vw,3.1rem);line-height:1;letter-spacing:-.03em;color:var(--cream-50);margin:0 0 min(24px,2.8vh);}
.hcontact__title em{font-style:italic;color:var(--gold-300);}
.hcontact__title .pline{display:block;overflow:hidden;padding-bottom:.1em;}
.hcontact__title .pline > span{display:block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.22,1,.36,1) .5s;}
.hcontact__title .pline:nth-child(2) > span{transition-delay:.62s;}
.hcontact__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.hcontact__list li{grid-column:1 / -1;display:flex;gap:12px;align-items:center;min-width:0;padding:min(12px,1.4vh) 14px;border-radius:16px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .4s var(--ease);}
.hcontact__list li.hcontact__list-half{grid-column:auto;}
.hcontact__list li:hover{background:rgba(255,255,255,.18);}
.hcontact__list div{min-width:0;}
.hcontact__ico{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--gold-500);color:var(--green-950);}
.hcontact__ico svg{width:16px;height:16px;}
.hcontact__list small{display:block;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--gold-300);}
.hcontact__list div span,.hcontact__list a{display:block;margin-top:3px;font-size:.8rem;line-height:1.45;color:var(--cream-50);text-decoration:none;overflow:hidden;text-overflow:ellipsis;}
.hcontact__list a:hover{color:var(--gold-300);}

/* enquiry card */
.hcontact__form{
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;gap:clamp(14px,2vh,20px);
  padding:clamp(8px,1.5vh,20px) 0 clamp(8px,1.5vh,20px) clamp(8px,2vw,32px);
}
.hcontact__form b{color:var(--gold-600);font-weight:700;}

.hcontact__form-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.hcontact__rule{display:block;width:36px;height:1.5px;background:var(--gold-500);margin-bottom:min(16px,1.8vh);}
.hcontact__form-head h3{margin:0;font-family:var(--font-display);font-weight:500;font-size:clamp(1.6rem,2.2vw,2.1rem);line-height:1.05;letter-spacing:-.03em;color:var(--green-950);}
.hcontact__form-head p{margin:6px 0 0;font-size:.78rem;color:var(--ink-500);}
.hcontact__badge{flex:none;display:flex;align-items:flex-start;gap:6px;font-size:.66rem;line-height:1.3;color:var(--ink-500);}
.hcontact__badge svg{color:var(--green-600);}

.hcontact__topics{border:0;margin:0;padding:0;min-width:0;}
.hcontact__topics legend{padding:0;margin-bottom:10px;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--green-950);}
.hcontact__tiles{display:flex;flex-wrap:wrap;gap:min(10px,1.2vh) 10px;}
.htile{position:relative;cursor:pointer;}
.htile input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;}
.htile span{display:flex;align-items:center;gap:8px;height:34px;padding:0 14px 0 12px;border-radius:999px;
  background:rgba(236,224,194,.45);border:1px solid transparent;font-size:.76rem;font-weight:500;color:var(--ink-700);
  transition:background .3s,color .3s,border-color .3s,box-shadow .3s;}
.htile svg{flex:none;width:15px;height:15px;}
.htile:hover span{background:rgba(236,224,194,.8);}
.htile input:checked + span{background:var(--green-950);color:var(--cream-50);box-shadow:0 10px 22px -14px rgba(13,36,21,.8);}
.htile input:focus-visible + span{outline:2px solid var(--gold-500);outline-offset:2px;}

.hcontact__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vh,20px) clamp(20px,2.4vw,32px);}
.hfield{position:relative;display:flex;flex-direction:column;gap:4px;}
.hfield--full{grid-column:1 / -1;}
.hfield label{font-size:.66rem;font-weight:600;color:var(--ink-700);}
.hfield input,.hfield textarea,.hfield select{
  width:100%;display:block;border:0;border-bottom:1px solid #d9d2bf;background:transparent;border-radius:0;
  padding:6px 0 7px;font:500 .84rem/1.4 var(--font-body);color:var(--green-950);outline:none;resize:none;
  -moz-appearance:textfield;transition:border-color .3s;
}
.hfield textarea{height:52px;}
.hfield select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:28px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2333403a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 4px center/14px no-repeat;}
.hfield select:invalid{color:#9aa39c;}
.hfield select option{color:var(--ink-900);}
.hfield input::placeholder,.hfield textarea::placeholder{color:#9aa39c;}
.hfield input::-webkit-outer-spin-button,.hfield input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.hfield::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--gold-500);transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease);}
.hfield--full::after{bottom:0;}
.hfield:focus-within::after{transform:scaleX(1);}
.hfield:hover input,.hfield:hover textarea,.hfield:hover select{border-bottom-color:#c4b98f;}
.hfield__count{position:absolute;right:0;bottom:-16px;font-size:.6rem;color:var(--ink-500);}
.hfield.is-invalid::after{transform:scaleX(1);background:#b3422f;}
.hfield.is-invalid label{color:#b3422f;}

.hcontact__consent{position:relative;display:flex;gap:12px;align-items:center;margin-top:6px;font-size:.72rem;line-height:1.45;color:var(--ink-700);cursor:pointer;}
.hcontact__consent input{position:absolute;opacity:0;width:20px;height:20px;margin:0;cursor:pointer;}
.hcontact__check{flex:none;position:relative;width:20px;height:20px;border-radius:50%;border:1.5px solid #8f9a91;transition:border-color .3s,background .3s;}
.hcontact__check::after{content:"";position:absolute;left:6px;top:2.5px;width:5px;height:9px;border:solid var(--cream-50);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .3s var(--ease);}
.hcontact__consent input:checked + .hcontact__check{background:var(--green-900);border-color:var(--green-900);}
.hcontact__consent input:checked + .hcontact__check::after{transform:rotate(45deg) scale(1);}
.hcontact__consent input:focus-visible + .hcontact__check{outline:2px solid var(--gold-500);outline-offset:2px;}
.hcontact__consent.is-invalid{color:#b3422f;}
.hcontact__consent.is-invalid .hcontact__check{border-color:#b3422f;}

.hcontact__actions{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.hcontact__submit{
  position:relative;display:inline-flex;align-items:center;gap:22px;border:0;background:none;cursor:pointer;
  padding:4px 56px 10px 0;font-family:var(--font-display);font-weight:500;font-size:clamp(1.1rem,1.4vw,1.3rem);letter-spacing:-.02em;color:var(--green-950);
}
.hcontact__submit::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--gold-500);transform-origin:0 50%;transition:transform .6s var(--ease);}
.hcontact__submit svg{color:var(--gold-600);transition:transform .5s var(--ease);}
.hcontact__submit:hover svg{transform:translateX(10px);}
.hcontact__submit:hover::after{transform:scaleX(.6);}
.hcontact__submit:focus-visible{outline:2px solid var(--gold-500);outline-offset:4px;}
.hcontact__status{margin:0;font-size:.8rem;color:var(--green-700);}
.hcontact__status.is-error{color:#b3422f;}

/* reveal */
.hcontact__form{opacity:0;transform:translateY(40px);transition:opacity .9s ease .3s,transform 1s cubic-bezier(.22,1,.36,1) .3s;}
.hcontact.is-in .hcontact__panel{clip-path:inset(0 0 0 0 round 28px);}
.hcontact.is-in .hcontact__photo{transform:scale(1);}
.hcontact.is-in .hcontact__title .pline > span,.hcontact.is-in .hcontact__form{opacity:1;transform:none;}

@media (max-width:1180px) and (min-width:981px){
  .htile span{padding:0 12px 0 10px;font-size:.72rem;}
}
@media (max-width:980px){
  .hcontact{min-height:0;}
  .hcontact__inner{grid-template-columns:1fr;height:auto;}
  .hcontact__panel{min-height:480px;}
  .hcontact__grid{grid-template-rows:none;}
  .hfield textarea{height:100px;}
  .hcontact__form{padding:0;}
}
@media (max-width:560px){
  .hcontact__panel,.hcontact__form{border-radius:22px;}
  .hcontact__list{grid-template-columns:1fr;}
  .hcontact__list li.hcontact__list-half{grid-column:1 / -1;}
  .hcontact__grid{grid-template-columns:1fr;}

}
@media (prefers-reduced-motion:reduce){
  .hcontact *,.hcontact *::before,.hcontact *::after{transition:none !important;animation:none !important;}
}

/* ============================================================
   LARGE SCREENS (1600px and up: big desktops, TVs, presentation
   monitors). The layout is drawn for ~1600px. Past that, 1rem grows
   with the viewport (1rem = 1vw, but never more than the height
   allows, so the full-screen sections still fit on ultra-wide
   screens) and the container grows with it; the fixed px sizes of
   the home page are restated in rem below (px / 16) so the whole
   page scales as one piece instead of sitting in a narrow column
   with wide empty margins.
   ============================================================ */
@media (min-width:1600px){
  html{font-size:max(16px,min(1vw,1.7778vh));}
  /* content spans ~90% of the screen (≈5% side margins, like a laptop view) */
  :root{--container:90vw;}
  .container{padding:0 1.75rem;}

  /* header */
  .site-header{padding:.625rem 0;}
  .site-header .container{gap:4rem;}
  .brand img{height:6.875rem;width:6.875rem;}
  .nav-links{gap:3rem;}
  .nav-right{gap:1rem;}
  .nav-cta{gap:.625rem;padding:.6875rem 1.375rem;}
  .nav-cta svg{width:.875rem;height:.875rem;}
  .to-top{width:3rem;height:3rem;right:2rem;bottom:2rem;}
  .to-top svg{width:1.125rem;height:1.125rem;}

  /* hero */
  .jhero__tagline{margin-top:clamp(1.125rem,3vh,1.875rem);}
  .jhero__title{max-width:25rem;}
  .jhero h1::after{width:1.875rem;margin-top:.6875rem;}
  .jhero__lede{margin-top:.6875rem;}
  .jhero__cta{gap:.875rem 1.375rem;margin-top:1.125rem;}
  .jhero__btn{gap:.875rem;padding:.5625rem 1rem;border-radius:.625rem;}
  .jhero__btn svg{width:.875rem;height:.875rem;}
  .jhero__link{gap:.625rem;}
  .jhero__play{width:1.75rem;height:1.75rem;}
  .jhero__play svg{width:.625rem;height:.625rem;}
  .jhero__foot{gap:2.5rem;padding-bottom:clamp(1.25rem,3.5vh,2.125rem);}

  /* who we are */
  .jwho{padding:clamp(7.5rem,16vh,9.375rem) 0 clamp(4.375rem,10vh,6.875rem);}
  .jwho__grid{gap:2.25rem;height:min(calc(100svh - 17.5rem),41.25rem);min-height:30rem;}
  .jwho__eyebrow{gap:.5rem;}
  .jwho__title{margin-top:1rem;}
  .jwho__lede{margin-top:1.125rem;max-width:22.5rem;}
  .jwho__btn{margin-top:1.375rem;padding:.625rem 1.125rem;border-radius:.375rem;}
  .jwho__media{border-radius:1rem;}
  .jwho__media.wreveal{clip-path:inset(45% 12% 45% 12% round 1rem);}
  .jwho.is-in .jwho__media{clip-path:inset(0 0 0 0 round 1rem);}
  .jwho__side{gap:1.125rem;}
  .jwho__stats div{gap:.75rem;padding:.8125rem 0;}
  .jwho__card{padding:1.375rem;border-radius:.875rem;}
  .jwho__card ul{margin-top:1rem;gap:.75rem;}
  .jwho__card li{padding-left:1.125rem;}
  .jwho__card li::before{width:.4375rem;height:.4375rem;}

  /* what we offer */
  .joffer{--jx:calc(max(1.5rem,calc((100vw - var(--container))/2 + 1.5rem)) - 1.125rem);}
  .joffer__pin{min-height:37.5rem;padding:1.125rem;}
  .joffer__card{border-radius:1.625rem;}
  .joffer__head{top:clamp(5.25rem,11vh,6.875rem);left:max(2.5rem,var(--jx));max-width:28.75rem;}
  .joffer__eyebrow{gap:.5rem;}
  .joffer__title,.joffer__lede{margin-top:.75rem;}
  .joffer__lede{max-width:23.75rem;}
  .joffer__foot{top:clamp(5.25rem,11vh,6.875rem);right:max(2.5rem,var(--jx));gap:1rem;}
  .joffer__nav{gap:.625rem;}
  .joffer__btn{width:2.5rem;height:2.5rem;}
  .joffer__btn svg{width:1rem;height:1rem;}
  .joffer__cards{right:max(2.25rem,var(--jx));bottom:2.25rem;width:min(31.25rem,calc(100% - 2.5rem));}
  .joffer__slide{padding:1.625rem 2rem 2rem;border-radius:1.375rem;}
  .joffer__pill{padding:.25rem .75rem;}
  .joffer__top{gap:.875rem;margin-top:1.25rem;}
  .joffer__icon{width:3.25rem;height:3.25rem;border-radius:.875rem;}
  .joffer__icon svg{width:1.5rem;height:1.5rem;}
  .joffer__icon::after{inset:-.375rem;border-radius:1.125rem;}
  .joffer__slide p{margin-top:1rem;}

  /* membership */
  .mship{padding-top:clamp(4rem,10vh,6.875rem);}
  .mship__top{gap:1rem;padding-bottom:.75rem;}
  .mship__title{margin:clamp(1.5rem,4vh,2.5rem) 0 clamp(1.75rem,5vh,3.25rem);}
  .mship__row--indent{padding-left:4rem;}
  .mship__grid{gap:4.5rem;}
  .mship__frame{border-radius:1.25rem;clip-path:inset(calc((1 - var(--mp,1)) * 14%) round 1.25rem);}
  .mship__price{left:1.5rem;bottom:1.5rem;border-radius:.875rem;padding:.75rem 1.125rem .875rem;}
  .mship__price strong{margin:.25rem 0 .375rem;}
  .mship__orb{top:-2rem;right:-2rem;width:6.25rem;height:6.25rem;}
  .mship__orb-arrow{width:1.25rem;height:1.25rem;}
  .mship__lede{margin-bottom:clamp(1.25rem,3vh,2rem);}
  .mship__list li{grid-template-columns:2.75rem 1fr;gap:.625rem;padding:1rem 0;}
  .mship__list li:hover{padding-left:.625rem;}
  .mship__cta{gap:.875rem;margin-top:clamp(1.25rem,3.4vh,2rem);padding:.375rem .375rem .375rem 1.375rem;}
  .mship__cta:hover{gap:1.25rem;}
  .mship__cta-icon{width:2.375rem;height:2.375rem;}
  .mship__cta-icon svg{width:1rem;height:1rem;}
  .mship__marquee{margin-top:clamp(3.5rem,9vh,6rem);padding:clamp(.875rem,2.2vh,1.375rem) 0;}
  .mship__track{gap:2.5rem;}

  /* how to join */
  .process{padding:clamp(3.5rem,8vh,6rem) max(1.5rem,calc((100vw - var(--container))/2 + 1.5rem));gap:3rem;}
  .process__head{gap:2rem;}
  .process__stat{gap:.875rem;}
  .process__step{padding:0 .75rem;}
  .process__step:not(:last-child)::before{top:2rem;left:calc(50% + 2.5rem);right:calc(-50% + 2.5rem);}
  .process__step:not(:last-child)::after{top:1.75rem;right:calc(-50% + 2.5rem);width:.5rem;height:.5rem;}
  .process__icon{width:4rem;height:4rem;margin-bottom:1.125rem;}
  .process__icon svg{width:1.625rem;height:1.625rem;}
  .process__step h4{margin-bottom:.5rem;}
  .process__step p{max-width:16.25rem;}

  /* directors */
  .team{padding:clamp(5rem,11vh,7.5rem) max(1.5rem,calc((100vw - var(--container))/2 + 1.5rem)) clamp(3.5rem,8vh,6rem);}
  .team__inner{gap:5rem;}
  .team__title{margin-top:1.375rem;}
  .team__rule{gap:.875rem;margin:1.875rem 0 1.625rem;}
  .team.is-in .team__rule i{width:3.5rem;}
  .team__lede{max-width:23.75rem;}
  .team__place{margin-top:1.625rem;}
  .tcard__img{height:min(58vh,35rem);}
  .tcard__meta{margin-top:1.375rem;}
  .tcard__role{margin-top:.625rem;}

  /* contact */
  .hcontact{padding:clamp(4rem,9vh,6rem) max(1.5rem,calc((100vw - var(--container))/2 + 1.5rem)) clamp(3rem,7vh,5rem);}
  .hcontact__inner{gap:2.25rem;}
  .hcontact__panel{border-radius:1.75rem;padding:2.25rem;clip-path:inset(100% 0 0 0 round 1.75rem);}
  .hcontact.is-in .hcontact__panel{clip-path:inset(0 0 0 0 round 1.75rem);}
  .hcontact__panel-top{gap:.75rem;}
  .hcontact__chip{gap:.5625rem;padding:.5rem .875rem;}
  .hcontact__chip i{width:.4375rem;height:.4375rem;}
  .hcontact__title{margin-bottom:min(1.5rem,2.8vh);}
  .hcontact__list{gap:.5rem;}
  .hcontact__list li{gap:.75rem;padding:min(.75rem,1.4vh) .875rem;border-radius:1rem;}
  .hcontact__ico{width:2.25rem;height:2.25rem;}
  .hcontact__ico svg{width:1rem;height:1rem;}
  .hcontact__form{gap:clamp(.875rem,2vh,1.25rem);padding:clamp(.5rem,1.5vh,1.25rem) 0 clamp(.5rem,1.5vh,1.25rem) 2rem;}
  .hcontact__form-head{gap:1rem;}
  .hcontact__rule{width:2.25rem;margin-bottom:min(1rem,1.8vh);}
  .hcontact__form-head p{margin-top:.375rem;}
  .hcontact__badge{gap:.375rem;}
  .hcontact__badge svg{width:1.375rem;height:1.375rem;}
  .hcontact__topics legend{margin-bottom:.625rem;}
  .hcontact__tiles{gap:min(.625rem,1.2vh) .625rem;}
  .htile span{gap:.5rem;height:2.125rem;padding:0 .875rem 0 .75rem;}
  .htile svg{width:.9375rem;height:.9375rem;}
  .hcontact__grid{gap:clamp(.875rem,2vh,1.25rem) 2rem;}
  .hfield{gap:.25rem;}
  .hfield input,.hfield textarea,.hfield select{padding:.375rem 0 .4375rem;}
  .hfield select{padding-right:1.75rem;background-size:.875rem;background-position:right .25rem center;}
  .hfield textarea{height:3.25rem;}
  .hfield__count{bottom:-1rem;}
  .hcontact__consent{gap:.75rem;margin-top:.375rem;}
  .hcontact__consent input,.hcontact__check{width:1.25rem;height:1.25rem;}
  .hcontact__check::after{left:.375rem;top:.15625rem;width:.3125rem;height:.5625rem;}
  .hcontact__actions{gap:1.25rem;}
  .hcontact__submit{gap:1.375rem;padding:.25rem 3.5rem .625rem 0;}
  .hcontact__submit svg{width:1.625rem;height:.875rem;}

  /* footer */
  .footer-inner{padding-top:clamp(2.25rem,5vh,3.5rem);}
  .footer-top{gap:1.875rem;padding-bottom:1.625rem;}
  .footer-cta h2{max-width:32.5rem;}
  .footer-cta p{margin-top:.625rem;}
  .footer-cta__buttons{gap:.875rem;}
  .footer-cta__buttons .btn{gap:.625rem;padding:.625rem 1.375rem;}
  .footer-cta__buttons .btn svg{width:1rem;height:1rem;}
  .footer-main{gap:2.25rem;padding-top:1.75rem;}
  .footer-brand{gap:.75rem;margin-bottom:.875rem;}
  .footer-brand img{height:4.25rem;}
  .footer-about p{max-width:20.625rem;}
  .footer-col h5{margin-bottom:.75rem;}
  .footer-col ul{gap:.4375rem;}
  .footer-reach{padding-left:2.25rem;}
  .footer-reach li{gap:.625rem;}
  .footer-reach li svg{width:.875rem;height:.875rem;}
  .social-row{gap:.75rem;}
  .footer-reach .social-row{margin-top:1rem;}
  .footer-reach .social-row a{width:2rem;height:2rem;}
  .social-row svg{width:1rem;height:1rem;}
  .footer-word{margin-top:.875rem;}
  .footer-legal{padding:.875rem 0 1.125rem;}
  .footer-legal__sep{margin:0 .625rem;}

  /* preloader */
  .preloader__meta{padding:0 3rem clamp(1.25rem,4vh,2.25rem);}
  .preloader__meta::after{left:3rem;right:3rem;bottom:calc(clamp(1.25rem,4vh,2.25rem) - .75rem);}
  .preloader__line--bottom::before,.preloader__line--bottom::after{width:4rem;}
}
