/* iOS-подобная физика: пружина, плавные переходы, лёгкая нагрузка */

:root {
  --ease-spring: cubic-bezier(0.34, 1.45, 0.64, 1);
  --ease-spring-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out-ios: cubic-bezier(0.25, 0.46, 0.15, 0.99);
  --ease-in-out-ios: cubic-bezier(0.45, 0, 0.15, 1);
  --motion-fast: 0.28s;
  --motion-medium: 0.42s;
  --motion-slow: 0.62s;
  --spring-press: 0.96;
  --spring-lift: -2px;

  /* Расширенная праздничная палитра */
  --ny-pine: #0c4d2e;
  --ny-pine-soft: rgba(12, 77, 46, 0.12);
  --ny-gold: #c9923a;
  --ny-gold-light: #f5e6c8;
  --ny-gold-glow: rgba(212, 168, 92, 0.35);
  --ny-ruby: #8f2b29;
  --ny-night: #1a1210;
  --ny-frost: rgba(255, 252, 248, 0.78);
  --ny-berry: #6a211f;
}

/* --- Glass / premium surfaces (AlphaPegas-style) --- */
.glass {
  background: color-mix(in srgb, #fffdf8 72%, transparent);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
}

.premium-card {
  transition:
    transform 0.32s cubic-bezier(0.25, 0.1, 0.25, 1),
    box-shadow 0.32s cubic-bezier(0.25, 0.1, 0.25, 1),
    border-color 0.22s cubic-bezier(0.23, 1, 0.32, 1);
}

@media (hover: hover) and (pointer: fine) {
  .premium-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 32px -14px rgba(43, 20, 12, 0.22);
  }
}

.ios-press {
  transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}

.ios-press:active {
  transform: scale(0.98);
}

/* Quick view modal — fallback when Framer reduced-motion path uses plain div */
@media (prefers-reduced-motion: no-preference) {
  .product-quick-view-overlay:not([data-framer]) {
    animation: modal-overlay-in 180ms ease-out both;
  }

  .product-quick-view-overlay:not([data-framer]) .product-quick-view {
    animation: modal-panel-in 240ms cubic-bezier(0.23, 1, 0.32, 1) both;
  }
}

@keyframes modal-overlay-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes modal-panel-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* --- Пружинящие интерактивные элементы (везде) --- */
button:not(:disabled),
input[type="submit"]:not(:disabled),
input[type="button"]:not(:disabled),
.primary-btn:not(:disabled),
.btn-fill-gold:not(:disabled),
.review-nav,
.brands-carousel__nav,
.hits-carousel__nav,
.pack-card__cta,
.floating-btn,
.hits-catalog-btn,
.view-more-btn,
.delivery-order-tab,
.about-blog-more,
.about-story__catalog-btn,
.magic-catalog__submit,
.channel-btn,
.home-faq-item__trigger,
a.home-promo-strip__inner,
a.catalog-trust-strip__cta,
.catalog-trust-strip__cta,
.saved-action-btn,
.saved-line__remove,
.ghost-link,
.fav-btn {
  transition:
    transform var(--motion-fast) var(--ease-spring),
    box-shadow var(--motion-medium) var(--ease-spring-soft),
    filter var(--motion-fast) var(--ease-out-ios),
    background-color var(--motion-medium) var(--ease-out-ios),
    color var(--motion-fast) var(--ease-out-ios),
    border-color var(--motion-medium) var(--ease-out-ios);
}

button:not(:disabled):hover,
input[type="submit"]:not(:disabled):hover,
.primary-btn:not(:disabled):hover,
.btn-fill-gold:not(:disabled):hover,
.review-nav:hover,
.brands-carousel__nav:hover,
.hits-carousel__nav:hover,
.pack-card__cta:hover,
.floating-btn:hover,
.channel-btn:hover,
a.home-promo-strip__inner:hover,
a.catalog-trust-strip__cta:hover,
.saved-action-btn:hover,
.ghost-link:hover,
.fav-btn:hover {
  transform: translateY(var(--spring-lift));
}

.hero-nav:hover {
  transform: translateY(-50%);
}

button:not(:disabled):active,
input[type="submit"]:not(:disabled):active,
.primary-btn:not(:disabled):active,
.btn-fill-gold:not(:disabled):active,
.review-nav:active,
.brands-carousel__nav:active,
.hits-carousel__nav:active,
.pack-card__cta:active,
.floating-btn:active,
.hits-catalog-btn:active,
.channel-btn:active,
.saved-action-btn:active,
.saved-line__remove:active,
.fav-btn:active {
  transform: scale(var(--spring-press)) translateY(0) !important;
  transition-duration: 0.12s;
  transition-timing-function: var(--ease-spring);
}

.hero-nav:active {
  transform: translateY(-50%) !important;
  transition-duration: 0.1s;
}

/* Карточки — лёгкий подъём */
.pack-card,
.product-card,
.benefit-feature,
.brand-item,
.client-item,
.home-faq__item,
.saved-line,
.about-blog-card,
.delivery-extra-card {
  transition:
    transform var(--motion-medium) var(--ease-spring-soft),
    box-shadow var(--motion-medium) var(--ease-spring-soft);
}

.pack-card:hover,
.product-card:hover,
.benefit-feature:hover,
.brand-item:hover,
.client-item:hover,
.saved-line:hover,
.about-blog-card:hover,
.delivery-extra-card:hover {
  transform: translateY(-4px);
}

.benefit-feature:active {
  transform: scale(0.99) translateY(-1px);
}

.benefit-feature__toggle {
  transition:
    color var(--motion-fast) var(--ease-out-ios),
    transform var(--motion-fast) var(--ease-spring-soft);
}

.benefit-feature__toggle:active {
  transform: scale(0.97);
}

.home-faq-item__trigger {
  transition:
    background-color var(--motion-medium) var(--ease-out-ios),
    transform var(--motion-fast) var(--ease-spring-soft);
}

/* Появление секций */
.section-reveal {
  opacity: 0;
  transform: translate3d(0, 32px, 0);
  transition:
    opacity var(--motion-slow) var(--ease-out-ios),
    transform var(--motion-slow) var(--ease-spring-soft);
}

.section-reveal.visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.section-reveal--instant {
  opacity: 1;
  transform: none;
  transition: none;
}

.section-reveal-stagger > * {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity var(--motion-medium) var(--ease-out-ios),
    transform var(--motion-medium) var(--ease-spring-soft);
}

.section-reveal.visible .section-reveal-stagger > * {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.section-reveal.visible .section-reveal-stagger > *:nth-child(1) { transition-delay: 0.04s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(2) { transition-delay: 0.1s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(3) { transition-delay: 0.16s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(4) { transition-delay: 0.22s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(5) { transition-delay: 0.28s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(6) { transition-delay: 0.34s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(7) { transition-delay: 0.4s; }
.section-reveal.visible .section-reveal-stagger > *:nth-child(8) { transition-delay: 0.46s; }

/* Stagger внутри FadeInSection — не зависит от .section-reveal.visible */
.fade-in-section--shown .section-reveal-stagger > * {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.fade-in-section--shown .section-reveal-stagger > *:nth-child(1) { transition-delay: 0.04s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(2) { transition-delay: 0.1s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(3) { transition-delay: 0.16s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(4) { transition-delay: 0.22s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(5) { transition-delay: 0.28s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(6) { transition-delay: 0.34s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(7) { transition-delay: 0.4s; }
.fade-in-section--shown .section-reveal-stagger > *:nth-child(8) { transition-delay: 0.46s; }

/* Ссылки-полоски */
a.home-promo-strip__inner:active {
  transform: scale(0.99);
}

@media (prefers-reduced-motion: reduce) {
  .section-reveal,
  .section-reveal-stagger > *,
  .fade-in-section .section-reveal-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  button:not(:disabled),
  .btn-fill-gold,
  .pack-card,
  .product-card,
  .premium-card {
    transition: none !important;
  }

  .premium-card:hover {
    transform: none !important;
  }

  .product-quick-view-overlay,
  .product-quick-view {
    animation: none !important;
  }
}

/* --- Оптимизации рендеринга --- */
.brands-carousel__track,
.hits-carousel__track,
.hits-carousel__viewport {
  contain: layout paint;
}

/* contain:layout/paint на .product-card ломал сетку каталога (пустые ячейки / «обрывки» цены). */
.pack-card,
.saved-line {
  contain: layout paint;
}

body.home-festive .home-festive__main::before,
body.home-festive .home-festive__main::after,
body.home-festive .festive-page::before,
body.home-festive .festive-page::after {
  transform: translateZ(0);
  backface-visibility: hidden;
}
