/* =========================================================
   SIMRAN — v2 homepage layer (loads after styles.css)
   Elevated art direction: editorial-premium, grain, kinetic type
   ========================================================= */

:root{
  --fz-display:clamp(52px,9vw,128px);
}

/* ---------- grain overlay ---------- */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:90;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 7s steps(10) infinite;}
@keyframes grain{
  0%,100%{transform:translate(0,0)}10%{transform:translate(-3%,-5%)}20%{transform:translate(-7%,3%)}
  30%{transform:translate(4%,-9%)}40%{transform:translate(-3%,11%)}50%{transform:translate(-7%,-5%)}
  60%{transform:translate(8%,0)}70%{transform:translate(0,7%)}80%{transform:translate(2%,12%)}90%{transform:translate(-5%,4%)}}

/* ---------- hero v2 ---------- */
.hero2{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--bg);}
.hero2 .bg{position:absolute;inset:-6% 0;}
.hero2 .bg img{width:100%;height:100%;object-fit:cover;will-change:transform;}
.hero2 .bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.4s ease;
  filter:brightness(.82) contrast(1.05) saturate(1.06) sepia(.05);
  animation:heroken 28s ease-in-out infinite alternate;}
.hero2 .bg video.on{opacity:1;}
@keyframes heroken{0%{transform:scale(1.02)}100%{transform:scale(1.1)}}

/* ---------- cinematic Ken Burns on feature stills ---------- */
@keyframes kenburns{0%{transform:scale(1.001) translate3d(0,0,0);}100%{transform:scale(1.085) translate3d(-1.4%,-1.1%,0);}}
@media (prefers-reduced-motion:no-preference){
  .detail .media img,
  .biz img,
  .state2 .v-wrap .ph img,
  .rest2 .bg img,
  .rest-hero .bg img,
  .hero .bg img,
  .client-card .ph img,
  .rgal figure img,
  .hero2 .bg img{animation:kenburns 24s ease-in-out infinite alternate;will-change:transform;}
  .detail.flip .media img,
  .biz.food img{animation-direction:alternate-reverse;animation-duration:28s;}
}
@media (prefers-reduced-motion:reduce){
  .hero2 .bg video,.detail .media img,.biz img,.state2 .v-wrap .ph img,
  .rest2 .bg img,.hero2 .bg img,.rest-hero .bg img,.hero .bg img,.client-card .ph img,
  .rgal figure img{animation:none;}
}

/* ---------- client / hotel list (About) ---------- */
.clients-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:8px;}
.clients-head .lead-min{font-family:var(--font-min);font-size:clamp(18px,2vw,24px);color:#fff;line-height:1.9;max-width:620px;}
.client-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:18px;}
.client-list .ci{display:flex;align-items:baseline;gap:20px;padding:clamp(18px,2.4vw,26px) 8px;
  border-bottom:1px solid var(--line);position:relative;transition:background .3s;}
.client-list .ci:nth-child(odd){border-right:1px solid var(--line);padding-right:28px;}
.client-list .ci:nth-child(even){padding-left:28px;}
.client-list .ci:hover{background:linear-gradient(90deg,rgba(201,162,75,.06),transparent);}
.client-list .n{font-family:var(--font-lat);font-size:13px;color:var(--gold);letter-spacing:.08em;
  min-width:30px;flex:none;}
.client-list .nm{font-family:var(--font-min);font-weight:600;font-size:clamp(16px,1.7vw,20px);
  color:#fff;line-height:1.55;}
.client-note{margin-top:18px;font-size:13px;color:var(--muted);letter-spacing:.02em;}

/* ---------- restaurant gallery ---------- */
.rgal{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(120px,15vw,200px);gap:14px;margin-top:8px;}
.rgal figure{margin:0;overflow:hidden;border-radius:14px;border:1px solid var(--line);position:relative;}
.rgal figure img{width:100%;height:100%;object-fit:cover;}
.rgal figure figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;
  background:linear-gradient(0deg,rgba(20,7,2,.82),transparent);
  font-family:var(--font-min);color:#fff6ea;font-size:15px;}
.rgal .big{grid-column:span 7;grid-row:span 2;}
.rgal .tall{grid-column:span 5;grid-row:span 2;}
.rgal .wide{grid-column:span 5;}
.rgal .sq{grid-column:span 4;}
@media(max-width:760px){
  .client-list{grid-template-columns:1fr;}
  .client-list .ci:nth-child(odd){border-right:0;padding-right:8px;}
  .client-list .ci:nth-child(even){padding-left:8px;}
  .rgal{grid-template-columns:1fr 1fr;grid-auto-rows:140px;}
  .rgal .big,.rgal .tall,.rgal .wide,.rgal .sq{grid-column:span 2;grid-row:span 1;}
}

/* ---------- full-bleed photo band ---------- */
.photo-band{position:relative;height:clamp(300px,46vw,520px);overflow:hidden;}
.photo-band img{width:100%;height:108%;object-fit:cover;}
.photo-band .pb-scrim{position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(20,7,2,.86),rgba(20,7,2,.12) 55%,transparent),
    linear-gradient(90deg,rgba(20,7,2,.5),transparent 60%);}
.photo-band .pb-cap{position:absolute;left:0;right:0;bottom:clamp(26px,5vw,52px);}
.photo-band .pb-cap p{font-family:var(--font-min);color:#fff6ea;
  font-size:clamp(24px,3.4vw,42px);line-height:1.5;margin-top:10px;max-width:18ch;}
.map-embed{border-radius:16px;overflow:hidden;border:1px solid var(--line);
  aspect-ratio:4/3;background:var(--panel);}
.map-embed iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.2) contrast(1.02);}
.hero2 .scrim{position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(8,14,18,.94) 8%,rgba(8,14,18,.62) 48%,rgba(8,14,18,.30) 100%),
  linear-gradient(0deg,var(--bg) 0%,transparent 26%);}
.hero2-body{position:relative;width:100%;padding-top:90px;}
.hero2 .kicker{display:flex;align-items:center;gap:16px;margin-bottom:34px;
  font-family:var(--font-lat);font-size:12px;letter-spacing:.3em;color:var(--gold);}
.hero2 .kicker::before{content:'';width:48px;height:1px;background:var(--gold);}
.hero2 h1{font-family:var(--font-min);font-weight:800;font-size:var(--fz-display);
  line-height:1.16;letter-spacing:.02em;color:#fff;margin:0;}
.hero2 h1 .l{display:inline-block;opacity:1;transform:none;
  transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--d,0s);}
.hero2.pre h1 .l{opacity:0;transform:translateY(.6em) rotate(2deg);transition:none;}
.hero2 h1 .gold{color:var(--gold-2);}
.hero2 .lead{font-size:clamp(15px,1.4vw,17px);color:var(--ink-2);max-width:520px;
  margin-top:34px;line-height:2.1;transition:opacity 1s ease .9s,transform 1s ease .9s;}
.hero2.pre .lead{opacity:0;transform:translateY(18px);transition:none;}
.hero2 .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:42px;
  transition:opacity 1s ease 1.1s,transform 1s ease 1.1s;}
.hero2.pre .actions{opacity:0;transform:translateY(18px);transition:none;}
/* vertical side text */
.hero2 .vside{position:absolute;top:50%;right:var(--pad);transform:translateY(-50%);
  writing-mode:vertical-rl;font-family:var(--font-min);font-size:15px;letter-spacing:.42em;
  color:rgba(255,255,255,.62);display:flex;gap:22px;align-items:center;white-space:nowrap;max-height:72vh;}
.hero2 .vside::after{content:'';width:1px;height:74px;background:linear-gradient(var(--gold),transparent);}
/* watermark */
.hero2 .wm{position:absolute;left:0;right:0;bottom:-.14em;pointer-events:none;overflow:hidden;line-height:1;}
.hero2 .wm span{display:block;font-family:var(--font-lat);font-weight:700;font-size:clamp(120px,21vw,300px);
  letter-spacing:.06em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);white-space:nowrap;}
.hero2 .meta{position:absolute;bottom:36px;left:var(--pad);display:flex;gap:34px;
  font-family:var(--font-lat);font-size:11px;letter-spacing:.18em;color:var(--muted);}
.hero2 .meta b{color:var(--gold-2);font-weight:500;}

/* ---------- marquee ---------- */
.marquee{border-block:1px solid var(--line);overflow:hidden;padding:20px 0;background:var(--bg-2);}
.marquee .track{display:flex;gap:0;width:max-content;animation:mq 30s linear infinite;}
.marquee span{color:#5d6e77;white-space:nowrap;padding-right:64px;font-family:var(--font-lat);font-size:15px;letter-spacing:.3em;}
.marquee span i{font-style:normal;color:var(--gold);padding-right:64px;}
@keyframes mq{to{transform:translateX(-50%);}}

/* ---------- statement v2 ---------- */
.state2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,90px);align-items:center;}
.state2 .v-ttl{font-family:var(--font-min);writing-mode:vertical-rl;font-size:clamp(30px,3.6vw,46px);
  font-weight:800;color:#fff;line-height:1.7;letter-spacing:.14em;height:clamp(280px,36vw,420px);}
.state2 .v-ttl em{font-style:normal;color:var(--gold-2);}
.state2 .v-wrap{display:flex;gap:clamp(20px,3vw,44px);justify-content:flex-end;align-items:stretch;}
.state2 .v-wrap .ph{width:clamp(180px,22vw,300px);border-radius:14px;overflow:hidden;border:1px solid var(--line);}
.state2 .v-wrap .ph img{width:100%;height:100%;object-fit:cover;}
.state2 .lead-min{font-family:var(--font-min);font-size:clamp(20px,2.2vw,26px);line-height:2.05;color:#fff;}
.state2 p{color:var(--ink-2);margin-top:22px;font-size:15.5px;}
.figs2{display:flex;margin-top:40px;border-top:1px solid var(--line);}
.figs2 div{flex:1;padding:22px 8px 0;}
.figs2 div + div{border-left:1px solid var(--line);padding-left:26px;}
.figs2 b{font-family:var(--font-lat);font-size:42px;font-weight:500;color:var(--gold-2);display:block;line-height:1.1;}
.figs2 span{font-size:12.5px;color:var(--muted);letter-spacing:.04em;}

/* ---------- services v2 : index rows ---------- */
.srv2{border-top:1px solid var(--line);}
.srv2 a{display:grid;grid-template-columns:110px 1fr 320px 60px;gap:clamp(18px,3vw,44px);
  align-items:center;padding:clamp(26px,4vw,40px) 0;border-bottom:1px solid var(--line);
  position:relative;transition:.3s;}
.srv2 a:hover{background:linear-gradient(90deg,transparent,rgba(201,162,75,.05),transparent);}
.srv2 .n{font-family:var(--font-lat);font-size:clamp(28px,3.4vw,44px);font-weight:500;
  color:transparent;-webkit-text-stroke:1px rgba(201,162,75,.75);transition:.3s;}
.srv2 a:hover .n{color:var(--gold-2);-webkit-text-stroke:0;}
.srv2 h3{font-family:var(--font-min);font-size:clamp(20px,2.4vw,30px);color:#fff;transition:.3s;}
.srv2 p{font-size:13.8px;color:var(--muted);line-height:1.85;}
.srv2 .go{font-family:var(--font-lat);font-size:22px;color:var(--gold-2);justify-self:end;
  transition:transform .3s;}
.srv2 a:hover .go{transform:translateX(8px);}
.srv2 .pic{position:relative;height:120px;border-radius:12px;overflow:hidden;border:1px solid var(--line);}
.srv2 .pic img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.srv2 a:hover .pic img{transform:scale(1.08);}

/* ---------- restaurant v2 ---------- */
.rest2{position:relative;overflow:hidden;}
.rest2 .bg{position:absolute;inset:0;}
.rest2 .bg img{width:100%;height:100%;object-fit:cover;will-change:transform;}
.rest2 .scrim{position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(30,7,2,.96) 16%,rgba(112,28,12,.82) 55%,rgba(190,80,20,.45));}
.rest2 .inner{position:relative;padding-block:clamp(80px,12vw,150px);}
.rest2 .jp-v{position:absolute;top:50%;right:var(--pad);transform:translateY(-50%);
  writing-mode:vertical-rl;font-family:var(--font-min);font-size:clamp(20px,2.4vw,30px);
  color:rgba(255,238,213,.85);letter-spacing:.3em;}
.rest2 .eyebrow{color:#ffce8a;}
.rest2 h2{font-family:var(--font-min);font-size:clamp(34px,4.8vw,58px);color:#fff6ea;
  margin:18px 0 20px;line-height:1.4;}
.rest2 p{color:#ffe6cf;max-width:480px;font-size:15.5px;line-height:2.05;}
.rest2 .actions{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;}
.rest2 .spice-tags{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap;}
.rest2 .spice-tags span{border:1px solid rgba(255,206,138,.4);color:#ffce8a;border-radius:999px;
  padding:8px 18px;font-size:13px;letter-spacing:.06em;}

/* ---------- cta v2 ---------- */
.cta2{position:relative;overflow:hidden;border-top:1px solid var(--line);text-align:center;}
.cta2::before{content:'';position:absolute;inset:0;background:
  radial-gradient(70% 130% at 50% 0%,rgba(201,162,75,.16),transparent 62%);}
.cta2 .inner{position:relative;}
.cta2 .big{font-family:var(--font-min);font-size:clamp(34px,5.4vw,64px);color:#fff;line-height:1.5;}
.cta2 .big em{font-style:normal;color:var(--gold-2);}
.cta2 p{color:var(--ink-2);margin:22px auto 36px;max-width:520px;}
.cta2 .tel{font-family:var(--font-lat);font-size:clamp(22px,3vw,34px);color:var(--gold-soft);
  letter-spacing:.08em;display:inline-block;margin-top:28px;border-bottom:1px solid rgba(233,211,160,.35);
  padding-bottom:6px;}

/* char-stagger reveal for section titles */
.tsplit .l{display:inline-block;opacity:0;transform:translateY(.55em);
  transition:opacity .6s ease,transform .6s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0s);}
.tsplit.in .l{opacity:1;transform:none;}

@media (prefers-reduced-motion:reduce){
  .hero2 h1 .l,.hero2 .lead,.hero2 .actions{transition:none;}
  .hero2.pre h1 .l,.hero2.pre .lead,.hero2.pre .actions{opacity:1;transform:none;}
  .marquee .track{animation:none;}
  .grain{animation:none;}
  .tsplit .l{opacity:1;transform:none;transition:none;}
}

/* ---------- page-hero v2 extras ---------- */
.phero{position:relative;}
.phero .wm2{position:absolute;right:-0.04em;bottom:-0.18em;pointer-events:none;line-height:1;
  font-family:var(--font-lat);font-weight:700;font-size:clamp(80px,13vw,180px);letter-spacing:.04em;
  color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.08);white-space:nowrap;overflow:hidden;max-width:100%;}
.rest-page .phero .wm2,.rest-hero .wm2{-webkit-text-stroke:1px rgba(255,206,138,.14);}
.hero .jp-side{position:absolute;top:50%;right:var(--pad);transform:translateY(-50%);
  writing-mode:vertical-rl;font-family:var(--font-min);font-size:15px;letter-spacing:.4em;
  color:rgba(255,255,255,.65);white-space:nowrap;max-height:70vh;}
.marquee.spice{background:transparent;border-color:rgba(232,133,43,.25);}
.marquee.spice span{color:#8a6a52;}
.marquee.spice span i{color:var(--spice);}

@media(max-height:700px){
  .hero2 .meta{display:none;}
  .hero2 .wm span{font-size:clamp(100px,16vw,200px);}
}

@media(max-width:920px){
  .hero .jp-side{display:none;}
  .phero .wm2{font-size:clamp(60px,16vw,110px);}
  .hero2 .vside{display:none;}
  .state2{grid-template-columns:1fr;}
  .state2 .v-wrap{justify-content:flex-start;}
  .state2 .v-ttl{height:auto;writing-mode:horizontal-tb;letter-spacing:.06em;}
  .srv2 a{grid-template-columns:54px 1fr 50px;}
  .srv2 .pic{display:none;}
  .srv2 p{display:none;}
  .rest2 .jp-v{display:none;}
  .figs2 b{font-size:32px;}
}
