/* v3 — miękkie przejścia (wzór: makieta KOUZI). Tylko ruch: bez zmian układu.
   Ładowane na wszystkich stronach po stylach strony. Wyłącza się przy prefers-reduced-motion. */
:root{--ease:cubic-bezier(.2,.7,.2,1);--ease-io:cubic-bezier(.7,0,.2,1);}
html{scroll-behavior:smooth;}

/* wejście strony */
@keyframes mv-in{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@keyframes mv-fade{from{opacity:0;}to{opacity:1;}}
@keyframes mv-zoom{from{transform:scale(1.07);}to{transform:none;}}
html.mv .hero-copy>*,html.mv .page-head .wrap>*,html.mv .page-head .inner>*{animation:mv-in .8s var(--ease) both;}
html.mv .hero-copy>:nth-child(2),html.mv .page-head .inner>:nth-child(2){animation-delay:.08s;}
html.mv .hero-copy>:nth-child(3),html.mv .page-head .inner>:nth-child(3){animation-delay:.16s;}
html.mv .hero-copy>:nth-child(4),html.mv .page-head .inner>:nth-child(4){animation-delay:.24s;}
html.mv .hero-copy>:nth-child(n+5),html.mv .page-head .inner>:nth-child(n+5){animation-delay:.32s;}
html.mv .hero-media,html.mv .page-head .media{animation:mv-fade 1.2s ease both,mv-zoom 6s var(--ease) both;transform-origin:60% 50%;}

/* odsłanianie przy przewijaniu */
html.mv .rv{transition:opacity .8s var(--ease),transform .8s var(--ease);}
html.mv .rv:not(.in){opacity:0;transform:translateY(26px);}

/* nawigacja: podkreślenie wysuwane od lewej, cień po przewinięciu */
nav{transition:box-shadow .35s var(--ease),background .35s var(--ease);}
nav.sc{box-shadow:0 10px 28px -18px rgba(35,35,35,.35);}
.nav-links a:not(.nav-cta){position:relative;transition:color .25s var(--ease);}
.nav-links a:not(.nav-cta)::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);}
.nav-links a:not(.nav-cta):hover::after,.nav-links a[aria-current]:not(.nav-cta)::after{transform:scaleX(1);}
.nav-cta,.lang-switch a{transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 10px 20px -12px rgba(53,80,47,.6);}
@keyframes mv-drop{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:none;}}
.nav-links.open{animation:mv-drop .45s var(--ease) both;}
.nav-toggle span{transition:transform .35s var(--ease),opacity .25s;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* przyciski i linki tekstowe */
.btn,.submenu-cta{transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease);}
.btn:hover,.submenu-cta:hover{transform:translateY(-2px);box-shadow:0 14px 26px -16px rgba(35,35,35,.55);}
.btn:active{transform:translateY(0);transition-duration:.1s;}
.btn svg,.tlink svg,.link svg,.case-meta svg,.arrow{transition:transform .35s var(--ease);}
.btn:hover svg,.tlink:hover svg,.link:hover svg,a.case:hover .case-meta svg{transform:translateX(4px);}
.tlink,.link,.crumbs a,.foot-col a,footer a{transition:color .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease);}
.chips a{transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);}
.chips a:hover{transform:translateY(-1px);}

/* karty: uniesienie, cień, obramowanie w kolorze brandu */
.path,.prod,.case,.pcard,.principle,.care-tile,.panel,.stage,.step,.svc-cols>*,.feat>a,.post-card,.mod-card,.price-card,.vcard{transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease),background .45s var(--ease);}
.path:hover,a.prod:hover,a.case:hover,.pcard:hover,.principle:hover,.care-tile:hover,.post-card:hover,.price-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px -26px rgba(35,35,35,.38);border-color:#94AC8B;}
.mod-card:hover{transform:translateY(-4px);}
.path svg,.ico,.ico svg,.exp-facts svg,.feat .ico{transition:transform .5s var(--ease),background .4s var(--ease),color .4s var(--ease);}
.path:hover>svg,.feat>a:hover .ico svg{transform:rotate(-6deg) scale(1.08);}
.feat>a:hover .ico{background:#35502F;color:#fff;}
.feat>a h3,.feat>a .price{transition:color .3s var(--ease);}

/* zdjęcia: powolny zoom po najechaniu, łagodne pojawienie po wczytaniu */
.case-img,.firms .fi{overflow:hidden;}
.case-bg,.firms img{transition:transform .9s var(--ease),opacity .6s ease;}
a.case:hover .case-bg,.case-full:hover .case-bg,.firms li:hover img{transform:scale(1.06);}
.case-img .pill{transition:transform .45s var(--ease);}
a.case:hover .pill{transform:translateY(-2px);}
html.mv img.mv-lazy{opacity:0;}
html.mv img.mv-lazy.mv-ok{opacity:1;transition:opacity .7s ease;}

/* FAQ: miękkie rozwinięcie */
.faq details p,.faq details>div{animation:none;}
.faq details[open]>:not(summary){animation:mv-in .45s var(--ease) both;}
.faq summary::after{transition:transform .35s var(--ease);}
.faq details[open] summary::after{transform:rotate(180deg);}
.faq-q .plus{transition:transform .4s var(--ease)!important;}
.faq-a{transition:max-height .5s var(--ease)!important;}

/* formularze */
input,textarea,select{transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease);}
.cform input:focus,.cform textarea:focus{box-shadow:0 0 0 3px rgba(255,255,255,.14);}
.cform .f span{transition:color .25s var(--ease);}

/* przycisk „do góry” i stopka */
.to-top{transition:opacity .4s var(--ease),transform .4s var(--ease),background .25s,color .25s!important;}
.foot-social a{transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)!important;}
.foot-social a:hover{transform:scale(1.08);}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  html.mv .rv:not(.in){opacity:1;transform:none;}
  html.mv img.mv-lazy{opacity:1;}
}
