/* CIRIKA – bendra animacijų sistema (visiems puslapiams) */

/* Smooth scroll visiems anchor linkams */
html { scroll-behavior: smooth; }

/* ───────────────────────────────────────────────
   „Našlaičių" vengimas – kad viena raidė/žodis
   nenukristų vienas į paskutinę eilutę.
   balance = antraštės dalinamos tolygiai;
   pretty  = pastraipose paskutinis žodis nelieka vienas.
   Senesnės naršyklės šią eilutę tiesiog ignoruoja.
   ─────────────────────────────────────────────── */
h1, h2, h3, h4, .text-display-xl, .text-display-lg, .text-headline-md {
  text-wrap: balance;
}
p, li, blockquote {
  text-wrap: pretty;
}

/* Navigacijos dropdown (bendros taisyklės visiems puslapiams) */
.nav-dropdown { padding-top: 12px; }
.nav-group .nav-dropdown { visibility: hidden; opacity: 0; transform: translate(-50%, 4px); transition: all .15s ease; }
.nav-group:hover .nav-dropdown,
.nav-group:focus-within .nav-dropdown { visibility: visible; opacity: 1; transform: translate(-50%, 0); }

/* Page transition – švelnus fade-in kraunant naują puslapį */
@media (prefers-reduced-motion: no-preference) {
  body {
    animation: pageFadeIn 0.35s cubic-bezier(.21,1.02,.73,1);
  }
  @keyframes pageFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
  }
  /* Subtilesnis fade-out kai paspaudžiama vidaus nuoroda */
  body.page-leaving {
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 0.2s ease, transform 0.2s ease;
  }
}

@media (prefers-reduced-motion: no-preference) {

  /* Pradinė būsena – paslėpta + truputį žemyn */
  .anim-init {
    opacity: 0;
    transform: translateY(24px);
    transition:
      opacity 0.7s cubic-bezier(.21,1.02,.73,1),
      transform 0.7s cubic-bezier(.21,1.02,.73,1);
    will-change: opacity, transform;
  }
  .anim-init.anim-visible {
    opacity: 1;
    transform: translateY(0);
  }

  /* Subtilus hero foto zoom efektas (Ken Burns) */
  .hero-bg-zoom,
  header section > div.absolute > img,
  header.h-\[400px\] img.absolute,
  header.relative img.absolute {
    animation: heroBgZoom 25s ease-in-out infinite alternate;
  }
  @keyframes heroBgZoom {
    from { transform: scale(1); }
    to { transform: scale(1.07); }
  }

  /* Naujų nuotraukų fade-in užkrovus */
  img.multi-ext,
  img[data-base] {
    transition: opacity 0.4s ease;
  }
  img.multi-ext:not([src]) {
    opacity: 0;
  }

  /* Hover lift efektas kortelėms */
  .hover-lift {
    transition: transform 0.3s cubic-bezier(.21,1.02,.73,1), box-shadow 0.3s ease;
  }
  .hover-lift:hover {
    transform: translateY(-4px);
  }

  /* Mygtukų ripple/pulse */
  .btn-pulse {
    position: relative;
    overflow: hidden;
  }
  .btn-pulse::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255,255,255,0.3);
    transform: translate(-50%, -50%);
    transition: width 0.5s ease, height 0.5s ease;
  }
  .btn-pulse:hover::before {
    width: 300px;
    height: 300px;
  }

  /* Number count-up – pradžioje nematomos */
  .count-up { display: inline-block; }

  /* Modal atsiradimas */
  #grindys-modal:not(.hidden) > div {
    animation: modalIn 0.3s cubic-bezier(.21,1.02,.73,1);
  }
  @keyframes modalIn {
    from { opacity: 0; transform: scale(0.95) translateY(20px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
  }

  /* Lightbox fade */
  #lightbox:not(.hidden),
  #vidaus-lightbox:not(.hidden),
  #ad-lightbox:not(.hidden) {
    animation: lightboxIn 0.25s ease;
  }
  @keyframes lightboxIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  /* Filter tabs / nav switch */
  .filter-tab {
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.15s ease;
  }
  .filter-tab:active {
    transform: scale(0.96);
  }

  /* Image hint – fade-in kai įkelta */
  img[loading="lazy"] {
    transition: opacity 0.3s ease;
  }
}

/* ───────────────────────────────────────────────────────────
   Mobile 2-stulpelių kortelių pataisymas (≤639px)
   Kai korteles sudėjom po 2 telefone, tekstas ir ženkliukai
   lindo per kortelės kraštą, nes vidinis tarpas (p-6/p-5) buvo
   per didelis siaurame stulpelyje. Čia: sumažinam tarpą,
   leidžiam antraštės ženkliukui nukristi žemiau ir ilgiems
   žodžiams lūžti. Veikia tik telefone – kompiuteryje nieko nekeičia.
   ─────────────────────────────────────────────────────────── */
@media (max-width: 639px) {
  /* Per didelis kortelės vidinis tarpas → mažesnis, kad tilptų tekstas */
  [class*="grid-cols-2"] > [class*="rounded"][class*="p-8"],
  [class*="grid-cols-2"] > [class*="rounded"][class*="p-7"],
  [class*="grid-cols-2"] > [class*="rounded"][class*="p-6"],
  [class*="grid-cols-2"] > [class*="rounded"][class*="p-5"] {
    padding: 0.875rem !important;
  }

  /* Antraštė + ženkliukas vienoje eilutėje: jei netelpa – ženkliukas eina žemiau */
  [class*="grid-cols-2"] .justify-between {
    flex-wrap: wrap;
    gap: 0.375rem;
  }

  /* Ilgi žodžiai lūžta vietoj lindimo per kraštą; vaikai gali susitraukti */
  [class*="grid-cols-2"] {
    overflow-wrap: break-word;
    word-break: break-word;
  }
  [class*="grid-cols-2"] > * {
    min-width: 0;
  }
}

/* Reduced motion – pilnai išjungti animacijas */
@media (prefers-reduced-motion: reduce) {
  .anim-init {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
