/* MCL Taxo – Demo 2: decentní hover efekty a animace (načítá se navíc ke style.css) */
:root{--ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1)}

/* ---------- logo v hlavičce ---------- */
.brand .lg{height:46px;width:auto;display:block;overflow:visible}
.brand .lg-leaf{transform-box:fill-box;transform-origin:30% 95%;transition:transform .6s var(--ease-out)}
.brand:hover .lg-leaf{transform:rotate(-7deg)}
@media (max-width:900px){.brand .lg{height:42px}}

/* ---------- hlavička se po posunu zmenší ---------- */
.top .wrap{transition:height .35s var(--ease)}
.top.scrolled .wrap{height:68px}
.top.scrolled .brand .lg{height:40px}
.brand .lg{transition:height .35s var(--ease)}
@media (max-width:900px){.top.scrolled .wrap{height:84px}.top.scrolled .brand .lg{height:42px}}

/* ---------- menu: podtržení vyjíždí zleva ---------- */
@media (min-width:901px){
  .nav a{position:relative;transition:color .2s}
  .nav a:hover{background:none}
  .nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:var(--leaf);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
  .nav a:hover::after{transform:scaleX(1)}
  .nav a[aria-current=page]{box-shadow:none}
  .nav a[aria-current=page]::after{transform:scaleX(1);height:3px}
}

/* ---------- tlačítka ---------- */
.btn{transition:background-color .25s,color .25s,border-color .25s,box-shadow .3s var(--ease),transform .3s var(--ease)}
.btn svg{transition:transform .35s var(--ease)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -12px rgba(22,59,44,.55)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn:hover svg.arr{transform:translateX(4px)}
.btn:hover svg.ic-tel{animation:ring .6s ease-in-out}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-14deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}}
.btn-ghost{background-image:linear-gradient(var(--pine),var(--pine));background-repeat:no-repeat;background-size:0% 100%;background-position:left;transition:background-size .4s var(--ease),color .25s,transform .3s var(--ease),box-shadow .3s var(--ease)}
.btn-ghost:hover{background-color:transparent;background-image:linear-gradient(var(--pine),var(--pine));background-size:100% 100%;color:#fff}
.btn-sun:hover{box-shadow:0 10px 24px -12px rgba(110,90,6,.6)}

/* ---------- odkazy v textu a patičce ---------- */
.foot a,.cta .mail,.cal-foot a{text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/0% 1px no-repeat;transition:background-size .35s var(--ease)}
.foot a:hover,.cta .mail:hover,.cal-foot a:hover{background-size:100% 1px;text-decoration:none}
.cal-foot a{background-size:100% 1px}
.cal-foot a:hover{background-size:0% 1px;background-position:right bottom}
.cta .big{transition:color .2s}
.cta .big:hover{text-decoration:none;color:var(--green)}

/* ---------- služby: světlý pruh a posun ---------- */
.svc a{position:relative;isolation:isolate}
.svc a::before{content:"";position:absolute;inset:0 -16px;z-index:-1;border-radius:12px;background:var(--mist);transform:scaleX(.96);opacity:0;transition:opacity .3s,transform .4s var(--ease)}
.svc a:hover::before{opacity:1;transform:none}
.svc a>span:nth-child(2){transition:transform .4s var(--ease)}
.svc a:hover>span:nth-child(2){transform:translateX(6px)}
.svc .ico{transition:background .3s,color .3s,transform .4s var(--ease)}
.svc a:hover .ico{background:var(--pine);color:var(--blossom);transform:rotate(-6deg)}
.svc a:hover h3{text-decoration:none}
.svc .price{transition:color .3s}
.svc a:hover .price{color:var(--green)}
@media (hover:none){.svc a::before{display:none}}

/* ---------- pro koho: pruh nahoře se vyplní ---------- */
.who article{position:relative}
.who article::before{content:"";position:absolute;left:0;top:-4px;height:4px;width:100%;background:var(--pine);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.who article:hover::before{transform:scaleX(1)}
.who li::before{transition:transform .3s var(--ease)}
.who article:hover li::before{transform:rotate(-45deg) translateY(-4px) scale(1.15)}

/* ---------- stolní kalendář ---------- */
.desk{transition:transform .6s var(--ease-out);transform-style:preserve-3d}
.cal{transition:box-shadow .4s}
.desk:hover .cal{box-shadow:0 40px 70px -32px rgba(22,59,44,.45)}
.cal-list li{transition:background .25s}
.cal-list li:hover{background:#F6F9F5}
.cal-date{transition:transform .3s var(--ease),color .25s}
.cal-list li:hover .cal-date{transform:translateX(3px);color:var(--green)}
.cal-count{position:relative}
.anim .cal-count::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 0 rgba(235,215,122,.55);animation:pulse 2.4s 1.4s 2 ease-out}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(235,215,122,.55)}100%{box-shadow:0 0 0 12px rgba(235,215,122,0)}}
.cal-rings i{transition:transform .5s var(--ease-out)}
.desk:hover .cal-rings i{transform:translateY(-2px)}

/* ---------- postup: čísla se vyplní ---------- */
.steps li::before{transition:background .3s,color .3s,transform .4s var(--ease)}
.steps li:hover::before{background:var(--pine);color:var(--blossom);transform:scale(1.08)}

/* ---------- osoba, štítky, karty ---------- */
.portrait{transition:transform .6s var(--ease)}
.portrait figcaption{transition:transform .5s var(--ease)}
.person:hover .portrait figcaption{transform:translateY(-6px)}
.badges li{transition:border-color .25s,background .25s,transform .3s var(--ease)}
.badges li:hover{border-color:var(--green);background:var(--mist);transform:translateY(-2px)}
.lcard{transition:transform .4s var(--ease),box-shadow .4s}
.lcard:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(22,59,44,.45)}
.lcard .stage img{transition:transform .5s var(--ease)}
.lcard:hover .stage img{transform:scale(1.04)}
.sw i{transition:transform .4s var(--ease)}
.sw:hover i{transform:scaleY(1.06)}

/* ---------- tabulky, dotazy, obsah, filtry, formulář ---------- */
.ptab tbody tr{transition:background .2s,box-shadow .25s}
.ptab tbody tr:hover{box-shadow:inset 3px 0 0 var(--leaf)}
.faq summary{transition:color .2s,padding-left .3s var(--ease)}
.faq summary:hover{color:var(--green);padding-left:6px}
.faq details[open] p{animation:open .4s var(--ease)}
@keyframes open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.toc a{transition:color .2s,border-color .25s,padding-left .3s var(--ease)}
.toc a:hover{padding-left:20px}
@media (max-width:900px){.toc a:hover{padding-left:14px}}
.filters button{transition:border-color .2s,background .25s,color .25s,transform .2s}
.filters button:hover{border-color:var(--pine)}
.filters button:active{transform:scale(.96)}
.seg span{transition:border-color .2s,background .2s}
.seg label:hover span{border-color:var(--green)}
.form input,.form select,.form textarea{transition:border-color .2s,box-shadow .25s}
.form input:hover,.form select:hover,.form textarea:hover{border-color:#8FA894}
.ev li{transition:background .2s}
.ev li:hover{background:#F6F9F5}
.block h2 .ico{transition:transform .5s var(--ease)}
.block:hover h2 .ico{transform:rotate(-6deg)}
.pricebox{transition:background .3s}
.block:hover .pricebox{background:var(--leaf-soft)}
.range output{transition:color .2s}
.calc-out .sum{display:inline-block;transition:transform .25s var(--ease)}
.calc-out .sum.bump{transform:scale(1.04)}

/* ---------- záhlaví podstránek: list se při posunu pootočí ---------- */
.ph::after{transform:translateY(calc(var(--sy,0) * .25px)) rotate(calc(-10deg + var(--sy,0) * .03deg));transition:transform .1s linear}

/* =================== animace jen při povoleném pohybu =================== */
@media (prefers-reduced-motion:no-preference){
  /* logo: fajfka se nakreslí */
  .js-anim .brand .lg-check{stroke-dasharray:1;stroke-dashoffset:1;animation:draw .8s .35s var(--ease-out) forwards}
  .js-anim .brand .lg-leaf{animation:leafIn .8s var(--ease-out) both}
  @keyframes draw{to{stroke-dashoffset:0}}
  @keyframes leafIn{from{opacity:0;transform:rotate(-18deg) scale(.85)}to{opacity:1;transform:none}}

  /* úvod: text najíždí postupně */
  .js-anim .hero .place,.js-anim .hero h1,.js-anim .hero .lead,.js-anim .hero .actions,.js-anim .hero .facts{animation:up .9s var(--ease-out) both}
  .js-anim .hero h1{animation-delay:.08s}
  .js-anim .hero .lead{animation-delay:.18s}
  .js-anim .hero .actions{animation-delay:.28s}
  .js-anim .hero .facts{animation-delay:.38s}
  .js-anim .hero .desk{animation:fade 1s .15s both}
  .js-anim .ph h1,.js-anim .ph .lead,.js-anim .ph .crumbs{animation:up .8s var(--ease-out) both}
  .js-anim .ph h1{animation-delay:.06s}.js-anim .ph .lead{animation-delay:.14s}
  @keyframes up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes fade{from{opacity:0}to{opacity:1}}

  /* odhalování při posunu */
  .js-anim [data-reveal]{opacity:0;transform:translateY(16px)}
  .js-anim [data-reveal].is-in{opacity:1;transform:none;transition:opacity .7s var(--ease) calc(var(--d,0) * 80ms),transform .8s var(--ease-out) calc(var(--d,0) * 80ms)}

  /* postup: čára mezi kroky se vykreslí */
  .js-anim .steps li::after{transform:scaleX(0);transform-origin:left}
  .js-anim .steps.is-in li::after{transform:none;transition:transform .7s var(--ease) calc(.3s + var(--d,0) * 220ms)}
  .js-anim .steps li::before{opacity:0;transform:scale(.6)}
  .js-anim .steps.is-in li::before{opacity:1;transform:none;transition:opacity .4s calc(var(--d,0) * 220ms),transform .5s var(--ease-out) calc(var(--d,0) * 220ms),background .3s,color .3s}
  .js-anim .steps.is-in li:hover::before{transform:scale(1.08)}
  @media (max-width:860px){.js-anim .steps li::after{transform:scaleY(0);transform-origin:top}}

  /* filtr kalendáře: položky se znovu ukážou */
  .ev li.flash{animation:up .45s var(--ease-out) both;animation-delay:calc(var(--d,0) * 25ms)}
}
@media (prefers-reduced-motion:reduce){
  .btn:hover,.lcard:hover,.badges li:hover{transform:none}
  .ph::after{transform:rotate(-10deg)}
}
