/* ===== ДУБ БАНЯ — fx layer (preloader, elite hero slideshow, polish) ===== */

/* ---------- Preloader ---------- */
.pl{position:fixed;inset:0;z-index:200;display:grid;place-items:center;
  background:radial-gradient(62% 52% at 50% 44%,#0d0a07,#060504 72%);
  animation:plOut 1s ease 2.5s forwards}
html.pl-done .pl{display:none}
@keyframes plOut{to{opacity:0;visibility:hidden}}
.pl-in{position:relative;display:flex;flex-direction:column;align-items:center;gap:20px}
.pl-mark{width:min(188px,44vw);aspect-ratio:1380/1725;display:block;position:relative;
  -webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;
  background:var(--foil);animation:plIn 1s cubic-bezier(.2,.7,.2,1) .1s both}
@keyframes plIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.pl-mark::before{content:"";position:absolute;inset:0;background:#070604;transform-origin:bottom;
  animation:plFill 1.25s cubic-bezier(.4,0,.2,1) .4s forwards}
@keyframes plFill{from{transform:scaleY(1)}to{transform:scaleY(0)}}
.pl-mark::after{content:"";position:absolute;inset:0;mix-blend-mode:screen;transform:translateX(-130%);
  background:linear-gradient(105deg,transparent 42%,rgba(255,246,208,.8) 50%,transparent 58%);
  animation:plGlint 1.15s ease 1.45s forwards}
@keyframes plGlint{to{transform:translateX(130%)}}
.pl-line{width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:plLine 1.2s cubic-bezier(.2,.7,.2,1) .75s forwards}
@keyframes plLine{to{width:min(268px,62vw)}}
.pl-sub{font:500 .7rem/1 var(--sans,'Jost');letter-spacing:.44em;text-transform:uppercase;color:var(--muted);
  opacity:0;animation:plSub .9s ease 1.05s forwards}
@keyframes plSub{to{opacity:.82}}
body.pl-lock{overflow:hidden}


/* ---------- Elite hero (contained slideshow, not full-bleed) ---------- */
.hhero{position:relative;padding:calc(var(--head) + 52px) 0 36px;text-align:center;overflow:hidden}
.hhero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(70% 55% at 50% 20%,rgba(201,162,78,.06),transparent 60%)}
.hhero .wrap{display:flex;flex-direction:column;align-items:center;gap:15px}
.hhero .logo-big{width:min(300px,62vw);margin:0 auto}
.hhero .slogan{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.5rem,3.1vw,2.2rem);margin:0;line-height:1.22}
.hhero .hours{color:var(--muted);font-size:.95rem;margin:0;letter-spacing:.03em}
.hhero-acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}

.hshow{position:relative;width:min(1180px,100% - 40px);margin:42px auto 0;aspect-ratio:16/7.6;
  border-radius:5px;overflow:hidden;background:#000;box-shadow:0 55px 120px -60px #000,0 0 0 1px var(--line) inset}
@media(max-width:700px){.hshow{aspect-ratio:4/5;margin-top:34px}}
.hshow .sl{position:absolute;inset:0;background:center/cover no-repeat;opacity:0;transition:opacity 1.6s ease;will-change:opacity}
.hshow .sl.on{opacity:1;animation:kb 8s ease-out both}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.hshow::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:linear-gradient(180deg,rgba(6,5,4,.22),transparent 28%,transparent 60%,rgba(6,5,4,.74))}
.hshow-fr{position:absolute;inset:11px;z-index:3;border:1px solid rgba(201,162,78,.4);border-radius:3px;pointer-events:none}
.hshow-cap{position:absolute;left:24px;bottom:19px;z-index:4;font:500 .7rem/1 var(--sans,'Jost');letter-spacing:.26em;text-transform:uppercase;color:#f3ecd9;text-shadow:0 2px 12px #000;transition:opacity .5s}
.hshow-dots{position:absolute;right:22px;bottom:17px;z-index:4;display:flex;gap:9px}
.hshow-dots button{width:8px;height:8px;padding:0;border-radius:50%;border:1px solid rgba(243,236,217,.6);background:transparent;cursor:pointer;transition:background .3s,transform .3s,border-color .3s}
.hshow-dots button.on{background:var(--gold);border-color:var(--gold);transform:scale(1.18)}

/* ---------- Polish: button sheen + foil shimmer ---------- */
.btn-gold{position:relative;overflow:hidden}
.btn-gold::after{content:"";position:absolute;top:0;left:-85%;width:46%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);transition:left .8s ease}
.btn-gold:hover::after{left:140%}
.price.foil{background-size:220% 100%;animation:foilShim 7s linear infinite}
@keyframes foilShim{0%{background-position:170% 0}100%{background-position:-70% 0}}

/* ---------- Reveal easing (works with base .fx-reveal .rv) ---------- */
.fx-reveal .rv{transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}

/* ---------- Lightbox safety (in case base lacks it) ---------- */
.lb{position:fixed;inset:0;z-index:150;display:none;place-items:center;background:rgba(6,5,4,.92);backdrop-filter:blur(4px)}
.lb.open{display:grid}
.lb img{max-width:92vw;max-height:86vh;border:1px solid var(--line-2,rgba(201,162,78,.42));border-radius:3px;box-shadow:0 40px 100px -40px #000}
.lb .x{position:absolute;top:20px;right:22px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(201,162,78,.6);background:rgba(10,10,10,.5);color:#f6e6a8;cursor:pointer;font-size:0}
.lb .x::before,.lb .x::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:#f6e6a8}
.lb .x::before{transform:translate(-50%,-50%) rotate(45deg)}.lb .x::after{transform:translate(-50%,-50%) rotate(-45deg)}
.lb .nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(201,162,78,.5);background:rgba(10,10,10,.4);color:#f6e6a8;font-size:1.6rem;cursor:pointer}
.lb .nav.prev{left:20px}.lb .nav.next{right:20px}
@media(max-width:640px){.lb .nav{display:none}}

@media(prefers-reduced-motion:reduce){.hshow .sl.on{animation:none}}

/* ---------- Review expand ---------- */
.gw-card.rv-clamp blockquote{max-height:250px;overflow:hidden;-webkit-mask:linear-gradient(#000 72%,transparent);mask:linear-gradient(#000 72%,transparent)}
.gw-card.rv-open blockquote{max-height:none;-webkit-mask:none;mask:none}
.gw-more{display:inline-block;background:none;border:0;padding:0;margin-top:10px;color:var(--gold-hi);font:500 .92rem var(--sans,'Jost');text-decoration:underline;text-underline-offset:3px;cursor:pointer}

/* ================= Inner pages ================= */
.pgh{position:relative;padding:calc(var(--head) + 76px) 0 10px;text-align:center}
.pgh .kick{font:500 .72rem/1 var(--sans,'Jost');letter-spacing:.34em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.pgh h1{margin:0 0 .3em}
.pgh .lead{max-width:62ch;margin:0 auto}
.pgh::after{content:"";display:block;width:64px;height:2px;margin:26px auto 0;background:var(--foil)}

/* ritual programs */
.prog-block{border-top:1px solid var(--line);padding:clamp(48px,7vw,86px) 0}
.prog-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.prog-top .meta{font:500 .8rem/1 var(--sans,'Jost');letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:.4em 0 0}
.prog-top .pbox{text-align:right}
.prog-top .pbox .big{font-family:var(--serif);font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1}
.prog-top .pbox .wk{display:block;font-size:.86rem;color:var(--muted);margin-top:4px}
.prog-intro{max-width:70ch;margin:18px 0 0;font-size:1.08rem;color:#e6dcc4}
.rit{list-style:none;counter-reset:r;margin:34px 0 0;padding:0;display:grid;gap:0}
.rit li{position:relative;display:grid;grid-template-columns:54px 1fr;gap:22px;padding:22px 0;border-top:1px solid var(--line)}
.rit li:last-child{border-bottom:1px solid var(--line)}
.rit li::before{counter-increment:r;content:counter(r,decimal-leading-zero);font-family:var(--serif);font-size:1.3rem;color:transparent;background:var(--foil);-webkit-background-clip:text;background-clip:text}
.rit h3{margin:.1em 0 .25em;font-size:1.25rem}
.rit p{margin:0;color:#d9ceb5}
.prog-cta{margin-top:30px}

/* masters */
.mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:26px;margin-top:10px}
.mc{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--ink-2);transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s,border-color .4s}
.mc:hover{transform:translateY(-4px);box-shadow:0 30px 70px -36px rgba(201,162,78,.5);border-color:var(--line-2)}
.mc .ph{aspect-ratio:4/5;background:#000 center/cover no-repeat}
.mc .in{padding:20px 22px 24px}
.mc h3{margin:0 0 .3em}
.mc p{margin:0;font-size:.96rem;color:#d4c9b0}

/* faq */
.faqs{max-width:820px;margin:8px auto 0}
.faq-i{border-top:1px solid var(--line)}
.faq-i:last-child{border-bottom:1px solid var(--line)}
.faq-i summary{cursor:pointer;list-style:none;padding:22px 42px 22px 0;position:relative;font-family:var(--serif);font-size:1.22rem;color:#f2e9d3}
.faq-i summary::-webkit-details-marker{display:none}
.faq-i summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--gold);transition:transform .3s}
.faq-i[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-i .a{padding:0 0 22px;color:#d9ceb5;max-width:70ch}
.faq-cat{font:500 .72rem/1 var(--sans,'Jost');letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:40px 0 10px}

/* booking page */
.bookhero{text-align:center}
.bookgrid{display:grid;gap:30px}
@media(min-width:900px){.bookgrid{grid-template-columns:1fr 1fr;gap:54px;align-items:start}}
.bookaside{border:1px solid var(--line);border-radius:4px;padding:26px 28px;background:var(--ink-2)}
.bookaside h3{margin:0 0 .5em}
.bookaside .li{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:.96rem;color:#d9ceb5}
.bookaside .li:first-of-type{border-top:0}
.bookaside .li b{color:var(--gold-hi);font-weight:600;white-space:nowrap}

/* contacts */
.cgrid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:8px}
.ccard{border:1px solid var(--line);border-radius:4px;padding:22px 24px;background:var(--ink-2)}
.ccard .k{font:500 .72rem/1 var(--sans,'Jost');letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.ccard a,.ccard .v{color:#f2e9d3;text-decoration:none;font-size:1.05rem}
.ccard a:hover{color:var(--gold-hi)}
.cmap{margin-top:30px;border:1px solid var(--line);border-radius:4px;overflow:hidden;aspect-ratio:16/7}
.cmap iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}

/* photo gallery */
.pgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:10px}
.pgal .g{position:relative;aspect-ratio:1;overflow:hidden;border-radius:3px;cursor:zoom-in;background:#000}
.pgal .g::after{content:"";position:absolute;inset:0;box-shadow:0 0 0 1px var(--line) inset;transition:box-shadow .4s}
.pgal .g i{position:absolute;inset:0;background:center/cover no-repeat;transition:transform .7s cubic-bezier(.2,.7,.2,1);display:block}
.pgal .g:hover i{transform:scale(1.07)}
.pgal .g:hover::after{box-shadow:0 0 0 1px var(--gold) inset}
.pgal .g.tall{grid-row:span 2;aspect-ratio:1/2}
/* gift tiers */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:10px}
.tier{border:1px solid var(--line);border-radius:4px;padding:26px 24px;text-align:center;background:var(--ink-2);transition:transform .4s,border-color .4s,box-shadow .4s}
.tier:hover{transform:translateY(-4px);border-color:var(--line-2);box-shadow:0 26px 60px -34px rgba(201,162,78,.5)}
.tier .amt{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.2rem);line-height:1}
.tier .lbl{display:block;margin-top:8px;color:var(--muted);font-size:.9rem}
