/* Taevaskoja – motion layer. Subtle, fast (150–600ms), GPU-friendly (opacity/transform only), and fully
   disabled for visitors who prefer reduced motion. Overlay entrances for the mobile menu, mega panels,
   side-menu sheet and FAQ already live in the Breakdance CSS (tvk-fade-in/up/down, tvk-sheet-up keyframes);
   this file adds the rest: scroll reveal (assets/js/reveal.js), lightbox and quote-summary sheet entrances,
   and micro-interactions on buttons, chips, cards and controls. */

@keyframes tvk-zoom-in {
  from { opacity: 0; transform: scale(.96); }
  to   { opacity: 1; transform: none; }
}
@keyframes tvk-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.15); }
  100% { transform: scale(1); }
}

/* ---------- scroll reveal ---------- */
html.tvk-reveal [data-tvk-reveal] {
  opacity: 0;
  transform: translateY(.875rem);
  transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1);
  transition-delay: calc(var(--tvk-i, 0) * 70ms);
  will-change: opacity, transform;
}
html.tvk-reveal [data-tvk-reveal].is-visible {
  opacity: 1;
  transform: none;
  will-change: auto;
}

/* ---------- overlays ---------- */
.tvk-lightbox:not([hidden]) {
  animation: tvk-fade-in .2s ease-out both;
}
.tvk-lightbox:not([hidden]) .tvk-lightbox__figure {
  animation: tvk-zoom-in .28s cubic-bezier(.2, .8, .2, 1) both;
}
.enquiry-layout .enquiry--summary.is-open {
  animation: tvk-sheet-up .3s cubic-bezier(.2, .8, .2, 1) both;
}
.enquiry-overlay:not([hidden]) {
  animation: tvk-fade-in .25s ease-out both;
}
.enquiry-bar:not([hidden]) {
  animation: tvk-fade-up .35s cubic-bezier(.2, .8, .2, 1) both;
}
.form-variant:not([hidden]) {
  animation: tvk-fade-up .35s cubic-bezier(.2, .8, .2, 1) both;
}
.form-thanks:not([hidden]) {
  animation: tvk-fade-up .4s cubic-bezier(.2, .8, .2, 1) both;
}

/* ---------- buttons & chips ---------- */
.button,
.filter,
.chip,
.who-option,
.stepper__btn,
.slider-arrow,
.tvk-gallery__arrow,
.tvk-lightbox__btn,
.menu-toggle,
.mobile-nav__close,
.side-bar__toggle,
.enquiry-bar__toggle,
.side-menu__close,
.enquiry__close {
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .15s ease, opacity .2s ease;
}
.button:active,
.filter:active,
.chip:active,
.stepper__btn:active,
.slider-arrow:active,
.side-bar__toggle:active,
.enquiry-bar__toggle:active {
  transform: scale(.97);
}
.menu-toggle:active,
.mobile-nav__close:active,
.side-menu__close:active,
.enquiry__close:active,
.tvk-lightbox__btn:active {
  transform: scale(.9);
}
.button__arrow {
  display: inline-block;
  transition: transform .2s cubic-bezier(.2, .8, .2, 1);
}
.button:hover .button__arrow,
.button:focus-visible .button__arrow {
  transform: translateX(.2rem);
}
.chip.is-selected .chip__check,
.option-card.is-selected .option-card__selected-label img {
  animation: tvk-pop .3s ease-out both;
}
.filter-toggle__chevron,
.chip__chevron {
  transition: transform .2s ease;
}

/* ---------- cards ---------- */
.activity-card,
.post-card,
.audience-card,
.value-card,
.option-card,
.blogi-card,
.team-card {
  transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s ease, border-color .2s ease, background-color .2s ease;
}
@media (hover: hover) {
  .activity-card:hover,
  .post-card:hover,
  .blogi-card:hover {
    transform: translateY(-.25rem);
  }
  .option-card:not(.option-card--disabled):hover {
    transform: translateY(-.125rem);
    box-shadow: 0 .75rem 1.5rem rgba(17, 54, 23, .08);
  }
}
.activity-card__image,
.galerii-item,
.post-card__image-wrap,
.blogi-card__image {
  overflow: hidden;
}
.activity-card__image img,
.galerii-item img,
.gallery-slide__media img,
.photo-gallery__media img,
.meist-split__media img,
.split-card__media img,
.tvk-gallery__frame > img {
  transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}
@media (hover: hover) {
  .activity-card:hover .activity-card__image img,
  .galerii-item:hover img,
  .tvk-gallery__frame:hover > img {
    transform: scale(1.04);
  }
}

/* ---------- navigation & links ---------- */
.nav__link,
.side-menu__link,
.mobile-group__link,
.mobile-list__item,
.mega__link,
.info-block__link,
.error-page__link,
.footer a,
.social-list__item {
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, opacity .2s ease;
}
.nav__chevron,
.mobile-list__chevron {
  transition: transform .2s ease;
}
.nav__item.is-open .nav__chevron {
  transform: rotate(180deg);
}
.menu-toggle img {
  transition: transform .2s ease;
}
.menu-toggle:hover img {
  transform: scale(1.1);
}

/* ---------- form controls ---------- */
.input,
.date-field__input,
.check-item__box,
.who-option__radio {
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.gallery-dot img {
  transition: transform .2s ease, opacity .2s ease;
}
.gallery-dot:hover img {
  transform: scale(1.3);
}

/* ---------- reduced motion: no movement anywhere ---------- */
@media (prefers-reduced-motion: reduce) {
  html.tvk-reveal [data-tvk-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .tvk-lightbox:not([hidden]),
  .tvk-lightbox:not([hidden]) .tvk-lightbox__figure,
  .enquiry-layout .enquiry--summary.is-open,
  .enquiry-overlay:not([hidden]),
  .enquiry-bar:not([hidden]),
  .form-variant:not([hidden]),
  .form-thanks:not([hidden]),
  .chip.is-selected .chip__check,
  .option-card.is-selected .option-card__selected-label img {
    animation: none;
  }
  .button, .filter, .chip, .who-option, .stepper__btn, .slider-arrow, .tvk-gallery__arrow, .tvk-lightbox__btn,
  .menu-toggle, .mobile-nav__close, .side-bar__toggle, .enquiry-bar__toggle, .side-menu__close, .enquiry__close,
  .button__arrow, .activity-card, .post-card, .audience-card, .value-card, .option-card, .blogi-card, .team-card,
  .activity-card__image img, .galerii-item img, .gallery-slide__media img, .photo-gallery__media img,
  .meist-split__media img, .split-card__media img, .tvk-gallery__frame > img, .menu-toggle img, .gallery-dot img {
    transition: none;
    transform: none;
  }
}
