/* Patička: karta s nadpisem, tlačítkem a běžícím řádkem služeb. Předpona pat-, protože sv- patří stránkám služeb. */
.pat-footer{
  --pat-ink:#161817;
  --pat-grey:#5a615e;
  --pat-line:rgba(22,24,23,.09);
  --pat-mint:#14cf93;
  --pat-focus:#0a845d;
  --pat-on-mint:#06150f;
  --pat-ease:cubic-bezier(.16,1,.3,1);
  --pat-u:min(1vw,13.4px); /* 1 % šířky karty, nad její maximální šířkou rozměry uvnitř už nerostou */
  --pat-pad:max(22px,calc(var(--pat-u)*5));
  --pat-pb:max(30px,calc(var(--pat-u)*3.6));
  --pat-h:max(29px,calc(var(--pat-u)*5.42));
  --pat-radius:max(26px,calc(var(--pat-u)*3));
  position:relative; /* bez overflow:hidden: ořez na téhle sekci dělal při plynulém scrollu na její horní hraně 1px proužek */
  padding:clamp(48px,7vw,104px) clamp(10px,1.7vw,24px) clamp(10px,1.7vw,24px);
  /* Záře za kartou jako v hero, jedno malované pozadí bez další vrstvy a animace.
     Odshora: přechod do bílé (stránky končí bílou, takže bez hrany), zelená, modrá, podklad.
     Na širokém monitoru se světla drží karty, jinak by zůstala viset vedle ní. */
  background:
    linear-gradient(#fff,rgba(255,255,255,0) clamp(64px,8vw,130px)),
    radial-gradient(closest-side,rgba(20,207,147,.3),transparent) right max(-6vw,calc(50vw - 843px)) top -250px/min(1120px,130vw) min(1120px,130vw) no-repeat,
    radial-gradient(closest-side,rgba(108,182,255,.15),transparent) left max(-12vw,calc(50vw - 958px)) bottom -380px/min(820px,100vw) min(820px,100vw) no-repeat,
    linear-gradient(#fff,#f5f7f9 70%);
  color:var(--pat-ink);
  font-family:"Geist",ui-sans-serif,system-ui,sans-serif;
  font-size:16px;
  line-height:1.5;
}
.pat-footer ul{margin:0;padding:0;list-style:none}
.pat-footer p{margin:0;color:inherit;font:inherit}
.pat-footer a{color:inherit;text-decoration:none}
.pat-footer :focus-visible{outline:2px solid var(--pat-focus);outline-offset:3px;border-radius:8px}

/* karta */
.pat-card{
  --pat-rest-x:78%;
  --pat-rest-y:37%;  /* % karty */
  --pat-rest-dy:58%; /* % horní části, v ní jsou tečky */
  position:relative;
  max-width:1296px; /* stejně široká jako obsah stránky */
  margin:0 auto;
  border-radius:var(--pat-radius);
  background:#fff;
  box-shadow:0 0 0 1px var(--pat-line),0 34px 80px -52px rgba(14,32,24,.3),0 14px 34px -26px rgba(14,32,24,.14);
}

/* světlo na kartě: záře, tečky pod ní a odlesk na hraně. Všechny vrstvy se hýbou jen přes transform,
   klidová poloha je za tlačítkem, takže bez JS i bez pohybu je záře tam, kde má být.
   Tečky mají dvě úrovně: široká jemná a užší výraznější uprostřed, takže pod světlem jakoby nabobtnají.
   Jsou jen v horní části a vynechávají telefon a e-mail: pod drobným textem by dělaly mžitky. */
.pat-light,.pat-rim{position:absolute;inset:0;border-radius:inherit;overflow:hidden;isolation:isolate;pointer-events:none}
.pat-light__glow,.pat-light__dots,.pat-rim i{
  position:absolute;
  left:var(--pat-rest-x);
  top:var(--pat-rest-y);
  aspect-ratio:1;
  translate:-50% -50%;
}
.pat-light__glow{
  width:min(1080px,150vw);
  border-radius:50%;
  background:radial-gradient(closest-side,rgba(20,207,147,.3),rgba(20,207,147,.13) 46%,transparent);
}
.pat-dots{
  --pat-no-dots:linear-gradient(#000 calc(100% - var(--pat-pb) - 64px),transparent calc(100% - var(--pat-pb) - 46px));
  position:absolute;
  inset:0;
  overflow:hidden;
  isolation:isolate;
  border-radius:var(--pat-radius) var(--pat-radius) 0 0;
  -webkit-mask-image:var(--pat-no-dots);
  mask-image:var(--pat-no-dots);
  pointer-events:none;
}
.pat-light__dots{
  top:var(--pat-rest-dy);
  width:min(660px,130vw);
  overflow:hidden;
  -webkit-mask-image:radial-gradient(closest-side,#000 22%,transparent);
  mask-image:radial-gradient(closest-side,#000 22%,transparent);
}
.pat-light__dots i{
  position:absolute;
  inset:-130%;
  background-image:radial-gradient(rgba(10,132,93,.4) 1.2px,transparent 1.7px);
  background-size:26px 26px;
}
.pat-light__dots--hot{
  display:none; /* bez JS by nelícovala s širokou vrstvou */
  width:min(380px,92vw);
  -webkit-mask-image:radial-gradient(closest-side,#000 6%,transparent);
  mask-image:radial-gradient(closest-side,#000 6%,transparent);
}
.pat-card.is-lit .pat-light__dots--hot{display:block}
.pat-light__dots--hot i{background-image:radial-gradient(rgba(10,132,93,.72) 1.9px,transparent 2.4px)}
.pat-rim{
  padding:1.5px;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
}
.pat-rim i{
  width:min(620px,130vw);
  border-radius:50%;
  background:radial-gradient(closest-side,var(--pat-mint),transparent);
}

/* nadpis a tlačítko */
.pat-top{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) max(390px,calc(var(--pat-u)*33));
  padding:var(--pat-pad) var(--pat-pad) var(--pat-pb);
}
.pat-footer .pat-title{
  position:relative;
  grid-column:1/-1;
  grid-row:1;
  margin:0;
  color:var(--pat-ink);
  font-family:"Mona Sans",ui-sans-serif,system-ui,sans-serif;
  font-stretch:125%;
  font-size:var(--pat-h);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.022em;
}
.pat-title span{display:block}
.pat-footer .pat-title__mark{position:relative;width:fit-content;isolation:isolate}
.pat-title__line{
  position:absolute;
  z-index:-1;
  left:-.05em;
  right:-.09em;
  bottom:.05em;
  height:.38em;
  background:rgba(20,207,147,.34);
  transform-origin:0 50%;
}
.pat-action{
  grid-column:2;
  grid-row:1;
  position:relative;
  margin-top:calc(var(--pat-h)*1.08 + max(12px,calc(var(--pat-u)*1.7)));
}

/* hlavní tlačítko */
.pat-cta{--pat-disc:max(52px,calc(var(--pat-u)*4.2));position:relative;display:block}
.pat-cta__halo{
  position:absolute;
  inset:-62% -13%;
  border-radius:50%;
  background:radial-gradient(closest-side,rgba(20,207,147,.5),rgba(20,207,147,.2) 58%,transparent);
  opacity:.9;
  pointer-events:none;
  transition:opacity .3s ease;
  animation:patBreath 4.8s ease-in-out infinite alternate;
}
.pat-cta__btn{
  position:relative;
  isolation:isolate; /* Safari jinak při rozrůstání výplně na chvíli neořízne kulaté rohy */
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:max(70px,calc(var(--pat-u)*5.8));
  padding:0 max(9px,calc(var(--pat-u)*.85)) 0 max(24px,calc(var(--pat-u)*2.5));
  overflow:hidden;
  border-radius:999px;
  background:var(--pat-mint);
  box-shadow:0 20px 42px -22px rgba(20,207,147,.8);
  color:var(--pat-on-mint);
  font-size:max(18px,calc(var(--pat-u)*1.62));
  font-weight:600;
  line-height:1.2;
  letter-spacing:-.005em;
  transition:color .13s ease .07s; /* barva se mění, až když k textu dorazí tmavá výplň */
}
.pat-footer a.pat-cta__btn{color:var(--pat-on-mint)}
.pat-footer .pat-cta__btn:focus-visible{outline-width:3px;outline-offset:4px;border-radius:999px}
.pat-cta__fill{
  position:absolute;
  right:max(9px,calc(var(--pat-u)*.85));
  top:50%;
  width:var(--pat-disc);
  height:var(--pat-disc);
  margin-top:calc(var(--pat-disc)/-2);
  border-radius:50%;
  background:var(--pat-ink);
  transition:transform .3s cubic-bezier(.33,0,.2,1);
}
.pat-cta__label{position:relative;white-space:nowrap}
.pat-cta__disc{
  position:relative;
  flex:none;
  width:var(--pat-disc);
  height:var(--pat-disc);
  overflow:hidden;
  border-radius:50%;
  color:#fff;
  transition:background-color .22s ease,color .22s ease;
}
.pat-cta__disc svg{
  position:absolute;
  inset:0;
  width:42%;
  height:42%;
  margin:auto;
  transition:transform .34s var(--pat-ease);
}
.pat-cta__disc svg+svg{transform:translateX(-170%)}

/* najetí: tmavá výplň se rozroste z kolečka a tlačítko se změní na to z hero. Dotyk a klávesnice totéž. */
@media (hover:hover){
  .pat-footer a.pat-cta__btn:hover{color:#fff}
  .pat-cta__btn:hover .pat-cta__fill{transform:scale(20)}
  .pat-cta__btn:hover .pat-cta__disc{background:var(--pat-mint);color:var(--pat-on-mint)}
  .pat-cta__btn:hover .pat-cta__disc svg:first-child{transform:translateX(170%)}
  .pat-cta__btn:hover .pat-cta__disc svg+svg{transform:none}
  .pat-cta:hover .pat-cta__halo{opacity:1}
}
.pat-footer a.pat-cta__btn:active,.pat-footer a.pat-cta__btn:focus-visible{color:#fff}
.pat-cta__btn:active .pat-cta__fill,.pat-cta__btn:focus-visible .pat-cta__fill{transform:scale(20)}
.pat-cta__btn:active .pat-cta__disc,.pat-cta__btn:focus-visible .pat-cta__disc{background:var(--pat-mint);color:var(--pat-on-mint)}
.pat-cta__btn:active .pat-cta__disc svg:first-child,.pat-cta__btn:focus-visible .pat-cta__disc svg:first-child{transform:translateX(170%)}
.pat-cta__btn:active .pat-cta__disc svg+svg,.pat-cta__btn:focus-visible .pat-cta__disc svg+svg{transform:none}

/* telefon a e-mail */
.pat-footer .pat-reach{
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:6px 14px;
  margin-top:max(12px,calc(var(--pat-u)*1.25));
  padding:0 max(6px,calc(var(--pat-u)*.8));
}
.pat-reach a{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  font-size:max(15px,calc(var(--pat-u)*1.14));
  font-weight:500;
  white-space:nowrap;
}
.pat-reach__ico{
  display:grid;
  place-items:center;
  flex:none;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(22,24,23,.12);
  transition:background-color .2s ease;
}
.pat-reach__ico svg{width:17px;height:17px}
@media (hover:hover){
  .pat-reach a:hover .pat-reach__ico{background:var(--pat-mint)}
}
.pat-reach a:active .pat-reach__ico,.pat-reach a:focus-visible .pat-reach__ico{background:var(--pat-mint)}

/* běžící řádek služeb */
.pat-run{
  position:relative;
  display:flex;
  align-items:center;
  height:50px;
  overflow:hidden;
  border-block:1px solid var(--pat-line);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.pat-run__track{
  display:flex;
  flex:none;
  width:max-content;
  animation:patRun 66s linear infinite;
}
.pat-run ul{display:flex;flex:none}
.pat-run li{
  display:flex;
  align-items:center;
  color:var(--pat-grey);
  font-size:13px;
  font-weight:500;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}
.pat-run li::after{
  content:"";
  flex:none;
  width:7px;
  height:7px;
  margin:0 max(22px,calc(var(--pat-u)*2.2));
  border-radius:50%;
  background:var(--pat-mint);
}
@media (hover:hover){
  .pat-run:hover .pat-run__track{animation-play-state:paused}
}
.pat-run:active .pat-run__track{animation-play-state:paused}

/* logo a odkazy */
.pat-base{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:16px max(28px,calc(var(--pat-u)*4.4));
  padding:max(22px,calc(var(--pat-u)*2.6)) var(--pat-pad);
}
.pat-logo{display:flex;align-items:center;min-height:44px}
.pat-logo img{display:block;width:max(104px,calc(var(--pat-u)*8.4));height:auto;aspect-ratio:762/246.5}
.pat-nav{justify-self:end}
.pat-nav ul{display:flex;flex-wrap:wrap;gap:0 max(18px,calc(var(--pat-u)*2.5))}
.pat-nav a,.pat-legal a{position:relative;display:inline-flex;align-items:center;min-height:44px}
.pat-nav a{justify-content:center;min-width:44px;font-weight:500}
.pat-nav a::after,.pat-legal a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:9px;
  height:2px;
  background:var(--pat-mint);
  transform:scaleX(0);
  transform-origin:0 50%;
  transition:transform .28s var(--pat-ease);
}
@media (hover:hover){
  .pat-nav a:hover::after,.pat-legal a:hover::after{transform:scaleX(1)}
}
.pat-nav a:active::after,.pat-nav a:focus-visible::after,
.pat-legal a:active::after,.pat-legal a:focus-visible::after{transform:scaleX(1)}

.pat-legal{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 32px; /* zleva: pravý dolní roh patří tlačítku nahoru z progress.twig, jinak překrývá odkaz */
  margin:0 var(--pat-pad);
  padding:6px 0 10px;
  border-top:1px solid var(--pat-line);
  color:var(--pat-grey);
  font-size:14px;
}
.pat-legal .souhlas-odkaz:not([hidden]){display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.pat-legal p span{display:inline}
.pat-legal .nowrap{white-space:nowrap}

@keyframes patRun{to{transform:translate3d(-50%,0,0)}}
@keyframes patBreath{from{transform:scale(.95)}to{transform:scale(1.07)}}

/* mimo obrazovku se nic nehýbe */
.pat-footer.is-off *{animation-play-state:paused!important}

/* menší notebook: obsah stránky je užší, karta s ním */
@media (max-width:1399.98px){
  .pat-footer{--pat-u:min(1vw,11.6px)}
  .pat-card{max-width:1116px}
}

/* tablet: tlačítko pod nadpisem */
@media (max-width:1099.98px){
  .pat-footer{--pat-h:6.9vw;--pat-cta-w:clamp(330px,50vw,520px)}
  .pat-card{--pat-rest-x:31%;--pat-rest-y:43%;--pat-rest-dy:75%}
  .pat-dots{--pat-no-dots:linear-gradient(90deg,#000 calc(var(--pat-pad) + var(--pat-cta-w) - 6px),transparent calc(var(--pat-pad) + var(--pat-cta-w) + 22px))}
  .pat-top{grid-template-columns:minmax(0,1fr)}
  .pat-action{
    grid-column:1;
    grid-row:2;
    display:flex;
    align-items:center;
    gap:12px clamp(24px,4vw,44px);
    margin-top:clamp(26px,4vw,40px);
  }
  .pat-cta{flex:0 1 var(--pat-cta-w)}
  .pat-cta__halo{inset:-62% -6%}
  .pat-cta__btn{font-size:clamp(18px,2.2vw,22px)}
  .pat-light__glow{width:min(860px,112vw)}
  .pat-footer .pat-reach{flex-direction:column;margin:0;padding:0}
}

/* telefon */
@media (max-width:639.98px){
  .pat-footer{--pat-h:clamp(34px,9.4vw,56px)}
  .pat-card{--pat-rest-x:50%;--pat-rest-y:26%;--pat-rest-dy:54%}
  .pat-dots{--pat-no-dots:linear-gradient(#000 calc(100% - var(--pat-pb) - 150px),transparent calc(100% - var(--pat-pb) - 110px))}
  .pat-action{display:block}
  .pat-cta__halo{inset:-56% -3%} /* patička nic neořezává: užší, ať se ani s dýcháním nevejde mimo obrazovku */
  .pat-cta__btn{min-height:72px;font-size:18px}
  .pat-cta__label{white-space:normal}
  .pat-footer .pat-reach{gap:6px;margin-top:14px}
  .pat-reach a{display:flex;min-height:50px;font-size:17px}
  .pat-run{height:46px}
  .pat-run li{font-size:12px}
  .pat-base{grid-template-columns:minmax(0,1fr);gap:18px}
  .pat-logo{display:none}
  .pat-nav{justify-self:start}
  .pat-nav ul{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:0 34px}
  .pat-nav a{display:flex;justify-content:flex-start;width:fit-content}
  .pat-legal{flex-direction:column;align-items:flex-start;padding:12px 0 12px;line-height:1.45}
  .pat-legal p span{display:block}
  .pat-legal__sep{display:none!important}
}

/* na dotyku odlesk na hraně skoro není vidět, ušetří se jedna maska */
@media (hover:none){
  .pat-rim{display:none}
}

/* omezený pohyb: nic se nehýbe, vše je vidět */
@media (prefers-reduced-motion:reduce){
  .pat-footer *,.pat-footer *::before,.pat-footer *::after{animation:none!important;transition:none!important}
  .pat-run{height:auto;padding:12px var(--pat-pad);-webkit-mask-image:none;mask-image:none}
  .pat-run__track{width:100%;justify-content:center}
  .pat-run ul{flex:0 1 auto;flex-wrap:wrap;justify-content:center;gap:8px 0}
  .pat-run [aria-hidden]{display:none}
  .pat-run li:nth-child(4)::after{display:none}
}
@media (prefers-reduced-motion:reduce) and (max-width:767.98px){
  .pat-run ul{gap:6px 22px}
  .pat-run li::after{display:none}
}
