/* Буревестник — «дорогие» детали */
:root { --lux-navy: #1b2a4d; --lux-gold: #c8a46a; --lux-ivory: #f3f0e7; --lux-ease: cubic-bezier(.2,.8,.2,1); }

/* прогресс прокрутки */
.lux-progress { position: fixed; z-index: 2147483000; left: 0; top: 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--lux-gold), #e6cf9f); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* лёгкое плёночное зерно — статичное, без анимации */
html.lux-on body::after { content: ""; position: fixed; inset: 0; z-index: 2147482000; pointer-events: none; opacity: .035;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

/* раскрытие фото шторкой */
html.lux-on .lux-rv { clip-path: inset(14% 0 14% 0); transition: clip-path 1.25s var(--lux-ease), opacity 1.25s var(--lux-ease) !important; opacity: 1 !important; }
html.lux-on .lux-rv img { transform: scale(1.12); transition: transform 1.6s var(--lux-ease) !important; }
html.lux-on .lux-rv.lux-in { clip-path: inset(0 0 0 0); }
html.lux-on .lux-rv.lux-in img { transform: scale(1); }
html.lux-on .lux-rv.lux-in:hover img { transform: scale(1.04); }

/* фото, которые можно открыть */
img.lux-zoomable { cursor: zoom-in; }
.lux-zoom-box { position: relative; }
.lux-zoom-box::after { content: ""; position: absolute; right: 14px; bottom: 14px; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,.92) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231b2a4d' stroke-width='1.6' stroke-linecap='round'><path d='M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7'/></svg>") center/18px no-repeat;
  box-shadow: 0 8px 24px -8px rgba(0,0,0,.35); opacity: 0; transform: translateY(6px) scale(.9); transition: opacity .35s ease, transform .45s var(--lux-ease); pointer-events: none; z-index: 2; }
.lux-zoom-box:hover::after { opacity: 1; transform: none; }
@media (hover: none) { .lux-zoom-box::after { opacity: .9; transform: none; width: 32px; height: 32px; right: 10px; bottom: 10px; background-size: 15px; } }

/* лайтбокс */
html.lux-lock, html.lux-lock body { overflow: hidden !important; }
.lux-lb { position: fixed; inset: 0; z-index: 2147483100; display: grid; place-items: center; visibility: hidden; pointer-events: none; --lux-bg: 1; }
.lux-lb.is-open { visibility: visible; pointer-events: auto; }
.lux-lb-bg { position: absolute; inset: 0; background: rgba(12,18,34,.94); opacity: 0; transition: opacity .45s ease; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.lux-lb.is-open .lux-lb-bg { opacity: var(--lux-bg); }
.lux-lb-stage { position: relative; margin: 0; max-width: min(92vw, 1600px); max-height: 86vh; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.lux-lb-img { display: block; max-width: min(92vw, 1600px); max-height: calc(86vh - 40px); width: auto; height: auto; object-fit: contain; box-shadow: 0 40px 120px -40px rgba(0,0,0,.7); transition: transform .45s var(--lux-ease), opacity .35s ease; will-change: transform; user-select: none; -webkit-user-drag: none; }
.lux-lb-cap { color: rgba(243,240,231,.85); font: 400 14px/1.4 var(--bv-reference-body-font, sans-serif); letter-spacing: .04em; text-align: center; min-height: 1.4em; opacity: 0; transition: opacity .5s ease .2s; }
.lux-lb.is-open .lux-lb-cap { opacity: 1; }
.lux-lb-count { position: absolute; left: 28px; top: 26px; color: var(--lux-gold); font: 500 12px/1 var(--bv-mono, monospace); letter-spacing: .22em; opacity: 0; transition: opacity .4s ease .15s; }
.lux-lb.is-open .lux-lb-count { opacity: 1; }
.lux-lb-close { position: absolute; right: 22px; top: 18px; width: 48px; height: 48px; border: 0; background: transparent; cursor: pointer; opacity: 0; transition: opacity .4s ease .15s, transform .4s var(--lux-ease); }
.lux-lb.is-open .lux-lb-close { opacity: 1; }
.lux-lb-close span { position: absolute; left: 12px; right: 12px; top: 50%; height: 1.5px; background: #fff; }
.lux-lb-close span:first-child { transform: rotate(45deg); } .lux-lb-close span:last-child { transform: rotate(-45deg); }
.lux-lb-close:hover { transform: rotate(90deg); }
.lux-lb-nav { position: absolute; top: 50%; width: 56px; height: 56px; margin-top: -28px; border-radius: 50%; border: 1px solid rgba(243,240,231,.35); background: rgba(12,18,34,.35); cursor: pointer; opacity: 0; transition: opacity .4s ease .2s, background .3s, border-color .3s; }
.lux-lb.is-open .lux-lb-nav { opacity: 1; }
.lux-lb-nav:hover { background: var(--lux-gold); border-color: var(--lux-gold); }
.lux-lb-nav i { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; border-top: 1.5px solid #fff; border-right: 1.5px solid #fff; }
.lux-lb-prev { left: 24px; } .lux-lb-prev i { transform: translate(-30%, -50%) rotate(-135deg); }
.lux-lb-next { right: 24px; } .lux-lb-next i { transform: translate(-70%, -50%) rotate(45deg); }
.lux-lb-nav[hidden] { display: none; }
@media (max-width: 760px) {
  .lux-lb-nav { display: none; }
  .lux-lb-stage, .lux-lb-img { max-width: 100vw; }
  .lux-lb-img { max-height: calc(86vh - 40px); box-shadow: none; }
  .lux-lb-cap { padding: 0 20px; font-size: 13px; }
  .lux-lb-count { left: 20px; top: 24px; }
  .lux-lb-close { right: 10px; top: 10px; }
}

/* аккуратные анимированные подчёркивания у ссылок в тексте и меню */
.bv-header-nav a span, .fx-reviews-head a, .bv-footer a { background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size .45s var(--lux-ease); }
.bv-header-nav a:hover span, .fx-reviews-head a:hover, .bv-footer a:hover { background-size: 100% 1px; }

/* кнопки: мягкий «блик» при наведении */
.fx-season-book, .fx-ny-book, .fx-cta, .bv-reserve-link { position: relative; overflow: hidden; }
.fx-season-book::after, .fx-ny-book::after, .fx-cta::after, .bv-reserve-link::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform: skewX(-18deg); transition: left .8s var(--lux-ease); pointer-events: none; }
.fx-season-book:hover::after, .fx-ny-book:hover::after, .fx-cta:hover::after, .bv-reserve-link:hover::after { left: 130%; }

@media (prefers-reduced-motion: reduce) {
  html.lux-on .lux-rv, html.lux-on .lux-rv img { clip-path: none !important; transform: none !important; transition: none !important; }
  .lux-lb-img, .lux-lb-bg { transition: none !important; }
}
@media (max-width: 760px), (hover: none) { html.lux-on body::after { display: none; } }
.lux-lb button:focus { outline: none; }
.lux-lb button:focus-visible { outline: 1px solid var(--lux-gold); outline-offset: 4px; border-radius: 50%; }
