/* ivital.cz: hlavní styly. Barvy, písma a typografická škála jsou ze SPEC.md (artefakt IVital Workspace).
   Velikosti písma se berou jen z proměnných --<role>-fs a --<role>-lh. Žádné vlastní velikosti mimo škálu. */

/* ===== Písma (vlastní, bez Google Fonts) ===== */
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600.woff2) format("woff2")}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/montserrat-400.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/montserrat-500.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/montserrat-600.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/montserrat-700.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic.woff2) format("woff2")}

/* ===== Proměnné: barvy značky, písma, škála ===== */
:root{
  --ginko:#D9E8C5; --mana:#0C99A7; --rain-drop:#7FCAD7; --lila:#DBDAEE; --off-white:#EEEEEF;
  --green-root:#34635F; --sun:#F3996A; --dandelion:#E1D046; --fuchsia:#BF7BB2; --pink:#F08DA5;
  --ink:#222; --ink-article:#333; --bg-light:#F9F9F9; --white:#fff;
  --font-head:"Space Grotesk",system-ui,sans-serif; --font-body:"Montserrat",system-ui,sans-serif; --font-accent:"Instrument Serif",Georgia,serif;
  /* typografie: desktop */
  --h1-fs:55px; --h1-lh:66px; --h2-fs:45px; --h2-lh:54px; --h3-fs:35px; --h3-lh:42px; --h4-fs:27px; --h4-lh:32.4px;
  --serif-fs:50px; --serif-lh:60px; --serif-ls:normal; --lead-fs:27px; --lead-lh:32.4px;
  --card-fs:21px; --card-lh:25.2px; --step-fs:21px; --step-lh:25.2px; --num-fs:27px; --num-lh:27px;
  --price-fs:27px; --price-lh:32.4px; --mini-fs:18px; --mini-lh:21.6px; --body-fs:17px; --body-lh:25.5px;
  --contact-fs:21px; --contact-lh:31.5px; --label-fs:16px; --label-lh:19.2px; --nav-fs:15px; --nav-lh:18px;
  --menu-fs:21px; --menu-lh:25.2px; --sub-fs:18px; --sub-lh:21.6px; --btn-fs:18px; --btn-lh:21.6px; --foot-fs:14px; --foot-lh:21px;
  /* mezery */
  --px:48px; --py:96px; --gap:40px; --card-pad:48px; --hero-h:60vh; --hdr-h:62px;
}
@media (max-width:1024px){:root{
  --h1-fs:45px; --h1-lh:54px; --h2-fs:35px; --h2-lh:42px; --h3-fs:30px; --h3-lh:36px; --h4-fs:24px; --h4-lh:28.8px;
  --serif-fs:40px; --serif-lh:48px; --serif-ls:-1px; --lead-fs:24px; --lead-lh:28.8px; --num-fs:24px; --num-lh:24px;
  --price-fs:24px; --price-lh:28.8px; --label-fs:18px; --label-lh:21.6px; --foot-fs:15px; --foot-lh:22.5px;
  --px:32px; --py:64px; --card-pad:32px; --hdr-h:70px;
}}
@media (max-width:767px){:root{
  --h1-fs:35px; --h1-lh:42px; --h2-fs:30px; --h2-lh:36px; --h3-fs:27px; --h3-lh:32.4px;
  --serif-fs:30px; --serif-lh:36px; --px:16px; --py:32px; --card-pad:24px; --hero-h:70vh;
}}

/* ===== Základ ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:#fff;color:var(--ink);font:400 var(--body-fs)/var(--body-lh) var(--font-body);letter-spacing:-.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video,iframe{max-width:100%}
img{display:block;height:auto}
h1,h2,h3,h4,h5,h6,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button{font:inherit;letter-spacing:inherit;color:inherit}
:focus-visible{outline:3px solid var(--mana);outline-offset:3px;border-radius:4px}
.bg-mana :focus-visible,.hdr :focus-visible{outline-color:#fff}
.skip{position:absolute;left:8px;top:-60px;z-index:300;background:#fff;color:var(--ink);padding:10px 16px;border-radius:10px;text-decoration:none;font-weight:600}
.skip:focus{top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* ===== Typografie podle role ===== */
.t-h1{font:700 var(--h1-fs)/var(--h1-lh) var(--font-head);letter-spacing:-1px}
.t-h2{font:700 var(--h2-fs)/var(--h2-lh) var(--font-head);letter-spacing:-1px;color:var(--mana)}
.t-h3{font:700 var(--h3-fs)/var(--h3-lh) var(--font-head);letter-spacing:-1px;color:var(--mana)}
.t-h4{font:600 var(--h4-fs)/var(--h4-lh) var(--font-head);color:var(--mana)}
.t-serif{font:italic 400 var(--serif-fs)/var(--serif-lh) var(--font-accent);letter-spacing:var(--serif-ls)}
.t-lead{font:400 var(--lead-fs)/var(--lead-lh) var(--font-body)}
.t-card{font:600 var(--card-fs)/var(--card-lh) var(--font-head);color:var(--mana)}
.t-step{font:600 var(--step-fs)/var(--step-lh) var(--font-head);color:var(--mana)}
.t-num{font:600 var(--num-fs)/var(--num-lh) var(--font-head)}
.t-price{font:700 var(--price-fs)/var(--price-lh) var(--font-body);color:var(--mana)}
.t-mini{font:600 var(--mini-fs)/var(--mini-lh) var(--font-head);letter-spacing:-1px}
.t-contact{font:500 var(--contact-fs)/var(--contact-lh) var(--font-body)}
.t-label{font:600 var(--label-fs)/var(--label-lh) var(--font-body);color:var(--mana)}
.c-center{text-align:center}
.c-mana{color:var(--mana)} .c-ginko{color:var(--ginko)} .c-white{color:#fff}

/* rozšířený text (odstavce, seznamy, odkazy) */
.rt{font:400 var(--body-fs)/var(--body-lh) var(--font-body)}
.rt p{margin:0 0 14.4px}
.rt>:last-child{margin-bottom:0}
.rt strong,.rt b{font-weight:700}
.rt a{color:var(--mana);font-weight:700;text-decoration:none}
.rt a:hover{text-decoration:underline}
.rt ul{list-style:none;margin:0 0 14.4px}
.rt ul li{position:relative;padding-left:26px;margin-bottom:7.5px}
.rt ul li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:12px;border-radius:50%;background:var(--mana)}
.rt h2,.rt h3,.rt h4,.rt h5,.rt h6{font:700 var(--card-fs)/var(--card-lh) var(--font-head);letter-spacing:-.5px;color:var(--mana);margin:0 0 10px}
.rt p+h2,.rt p+h3,.rt p+h4,.rt p+h5,.rt p+h6,.rt ul+h5{margin-top:20px}
.rt--w,.rt--w p,.rt--w li{color:#fff}
.rt--w a{color:var(--ginko)}
.rt--w ul li::before{background:var(--ginko)}
.rt--ink{color:var(--ink)}
.rt--art{color:var(--ink-article)}
.rt .mailto,.rt .tel{white-space:nowrap}

/* ===== Rozložení sekcí ===== */
.sec{padding:var(--py) var(--px);position:relative}
.in{max-width:1300px;margin-inline:auto}
.in--narrow{max-width:1040px}
.in--mid{max-width:1100px}
.stack{display:flex;flex-direction:column;gap:20px}
.sec--off{background:var(--off-white);isolation:isolate}
.sec--off::before{content:"";position:absolute;inset:0;background:linear-gradient(275deg,var(--rain-drop) 20%,var(--dandelion) 90%);opacity:.15;z-index:-1}
.sec--light{background:var(--bg-light)}
.sec--white{background:#fff}
.sec--mana{background:var(--mana);color:#fff}
.sec--mana .t-h3,.sec--mana .t-h2{color:#fff}
.sec--tight{padding-block:48px}
@media (max-width:1024px){.sec--tight{padding-block:32px}}

/* ===== Tlačítka ===== */
.btn{display:inline-block;font:600 var(--btn-fs)/var(--btn-lh) var(--font-head);letter-spacing:-.5px;text-align:center;text-decoration:none;padding:12px 35px;border-radius:20px;border:0;cursor:pointer;background:var(--ginko);color:var(--ink);transition:transform .2s,background .3s,color .3s,box-shadow .3s}
.btn:hover{text-decoration:underline}
.btn--mana{background:var(--mana);color:#fff}
.btn--bold{font-weight:700}
.btn--soon{cursor:default;opacity:.85}
.btn--soon:hover{text-decoration:none}
.btn-row{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.btn--block{display:block;width:100%}
@media (max-width:767px){.btn--full-m{display:block;width:100%}}

/* ===== Horní lišta, hlavička a navigace ===== */
.hdr{position:relative;z-index:80}
@media (min-width:1025px){.hdr{position:sticky;top:0}}
.topbar{background:var(--ginko);color:var(--ink);text-align:center;padding:10px;font:400 var(--foot-fs)/var(--foot-lh) var(--font-body);font-size:15px;line-height:22.5px}
.topbar b{font-weight:700}
.topbar a{color:var(--mana);font-weight:700;text-decoration:none;margin-left:10px;white-space:nowrap}
.topbar a:hover{text-decoration:underline}
@media (max-width:1024px){.topbar{padding:8px}}
@media (max-width:767px){.topbar{padding:5px;font-size:14px;line-height:21px}}
.navrow{background:var(--mana);box-shadow:0 0 10px rgba(0,0,0,.5);position:relative;z-index:2}
.navrow__in{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1340px;margin-inline:auto;padding:10px 24px;min-height:var(--hdr-h)}
.logo{display:block;flex:none;line-height:0}
.logo img{width:140px;height:42px}
@media (max-width:767px){.logo img{width:115px;height:35px}}
.nav{display:none}
.nav__list{display:flex;align-items:center;gap:4px}
.nav__list>li{position:relative}
.nav__list a{display:block;font:600 var(--nav-fs)/var(--nav-lh) var(--font-body);color:#fff;text-decoration:none;padding:8px 11px;border-radius:20px;transition:transform .2s;white-space:nowrap}
.nav__list a:hover{transform:scale(1.06);text-decoration:underline}
.nav__list .pill{background:var(--pill-bg,transparent);color:var(--pill-fg,#fff)}
.nav__list .pill--line{box-shadow:inset 0 0 0 2px var(--ginko)}
.nav__list .pill--cta{background:var(--ginko);color:var(--ink)}
.has-sub>a{display:flex;align-items:center;gap:8px}
.has-sub>a svg{width:10px;height:10px;flex:none}
.sub{position:absolute;left:0;top:calc(100% + 6px);min-width:230px;background:var(--mana);border-radius:0 0 10px 10px;box-shadow:0 20px 20px rgba(0,0,0,.17);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s,transform .2s,visibility .2s;z-index:5}
.sub a{border-radius:0;padding:12px 20px}
.sub a:hover{transform:none}
.has-sub:hover>.sub,.has-sub:focus-within>.sub,.has-sub.is-open>.sub{opacity:1;visibility:visible;transform:none}
.burger{flex:none;width:50px;height:50px;border:0;background:none;cursor:pointer;display:block;position:relative;padding:0}
.burger span{position:absolute;left:8px;right:8px;height:3px;border-radius:2px;background:#fff;transition:transform .25s,opacity .2s,top .25s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:24px}.burger span:nth-child(3){top:32px}
.mnav-open .burger span:nth-child(1){top:24px;transform:rotate(45deg)}
.mnav-open .burger span:nth-child(2){opacity:0}
.mnav-open .burger span:nth-child(3){top:24px;transform:rotate(-45deg)}
@media (min-width:1360px){
  .nav{display:block}
  .burger{display:none}
}
@media (max-width:1359px){
  .navrow__in{justify-content:space-around;padding:10px}
}
/* rozbalené menu na celou obrazovku (tablet a mobil) */
.mnav{position:fixed;inset:0;z-index:70;background:var(--mana);display:none;overflow:auto;padding:150px 24px 60px;text-align:center}
.mnav-open .mnav{display:block}
.mnav-open{overflow:hidden}
.mnav ul{display:flex;flex-direction:column;align-items:center;gap:22px}
.mnav a{color:#fff;text-decoration:none;font:600 var(--menu-fs)/var(--menu-lh) var(--font-head);letter-spacing:-.5px;display:inline-block}
.mnav a:hover{text-decoration:underline}
.mnav .msub{gap:14px;margin-top:14px}
.mnav .msub a{font:400 var(--sub-fs)/var(--sub-lh) var(--font-body)}
.mnav .msub[hidden]{display:none}
.mnav .mrow{display:inline-flex;align-items:center;gap:8px}
.mnav .mtoggle{background:none;border:0;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0}
.mnav .mtoggle svg{width:14px;height:9px;transition:transform .2s}
.mnav .mtoggle[aria-expanded=true] svg{transform:rotate(180deg)}
.mnav .msoc{flex-direction:row;justify-content:center;gap:22px;margin-top:34px}
.mnav .msoc svg{width:34px;height:34px;fill:#fff}
.mnav .msoc a{display:block}

/* ===== Hero úvodní stránky ===== */
.hero{position:relative;min-height:var(--hero-h);display:flex;align-items:center;justify-content:center;padding:0 var(--px);overflow:hidden;color:#fff;background:var(--mana)}
.hero__img{position:absolute;inset:0;z-index:0}
.hero__img img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--mana) 60%,rgba(223,241,237,.22) 80%)}
.hero__in{position:relative;z-index:2;width:100%;max-width:1300px;padding:96px 0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.hero__in .t-h1{color:var(--ginko)}
.hero__lead{color:#fff}
@media (max-width:1024px){.hero__in{padding:64px 0}}
@media (max-width:767px){
  .hero{align-items:flex-end}
  .hero::before{background:linear-gradient(340deg,var(--mana) 35%,rgba(223,241,237,.12) 70%);opacity:.75}
  .hero__in{padding:32px 0;gap:20px}
  .hero__in .t-h1{color:#fff}
  .hero__lead{font:400 var(--body-fs)/var(--body-lh) var(--font-body)}
  .hero .btn{display:block;width:100%}
}

/* ===== Hero služeb ===== */
.svc{background:linear-gradient(90deg,var(--mana) 50%,var(--ginko) 100%)}
@media (max-width:767px){.svc{background:linear-gradient(180deg,var(--mana) 70%,var(--ginko) 100%)}}
.svc__in{display:grid;grid-template-columns:minmax(0,65fr) minmax(0,35fr);gap:var(--gap);align-items:center}
.svc__txt{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.svc__txt .t-h1,.svc__txt .t-lead{color:var(--ginko)}
.svc__img{display:flex;justify-content:center}
.svc__img img{width:91%;max-width:402px;height:auto}
.svc .rt{color:#fff}
.svc .rt p,.svc .rt li{color:#fff}
.svc .rt ul li::before{background:var(--ginko)}
.svc .rt a{color:var(--ginko)}
@media (max-width:1024px){.svc__in{grid-template-columns:1fr}.svc__img{justify-content:flex-start}.svc__img img{max-width:300px;width:60%}}
@media (max-width:767px){.svc__img img{width:70%;margin-inline:auto}.svc__img{justify-content:center}}

/* detail infuze: hero na světlém pozadí */
.det__in{display:grid;grid-template-columns:minmax(0,65fr) minmax(0,35fr);gap:var(--gap);align-items:center}
.det__txt{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.det__price{font:400 var(--h4-fs)/var(--h4-lh) var(--font-body);letter-spacing:-.5px;color:var(--mana)}
.det__price strong{font-weight:700}
.det__img{display:flex;justify-content:center}
.det__img img{width:64%;max-width:300px}
@media (max-width:1024px){.det__in{grid-template-columns:1fr}.det__img{justify-content:center}}

/* ===== Karty ===== */
.card-g{background:var(--ginko);border-radius:25px;box-shadow:0 0 20px rgba(0,0,0,.17);padding:var(--card-pad);display:flex;flex-direction:column;gap:20px;position:relative;overflow:hidden}
.card-g--sun{background:linear-gradient(191deg,var(--sun) 0%,var(--dandelion) 100%);color:#fff}
.card-g--sun .t-serif{color:#fff}
.card-g--sun .rt,.card-g--sun .rt p{color:#fff}
.card-g .t-h3{color:var(--mana)}
.card-g--sun .t-h3{color:#fff}
.card-g__deco{position:absolute;right:24px;top:50%;width:150px;transform:translateY(-50%);opacity:.9;pointer-events:none}
@media (max-width:1024px){.card-g__deco{display:none}}

/* ===== Úvodní stránka: oblasti, kroky ===== */
.areas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:10px}
.area{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;gap:0;padding:25px 0;border-radius:25px;min-height:317px;transition:background .3s}
.area:hover{background:var(--off-white)}
.area img{width:200px;max-width:100%;aspect-ratio:1;object-fit:contain;margin-bottom:15px}
.area .t-card{margin:8px 0 5px;padding:3px 0 3.3px}
@media (max-width:767px){.areas{grid-template-columns:1fr}}
.band{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.band .rt strong,.band .rt a{color:var(--ginko)}
.twocol{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,402px);gap:80px;align-items:center}
.twocol--rev{grid-template-columns:minmax(0,402px) minmax(0,1fr)}
.twocol__img img{border-radius:5px;width:100%}
@media (max-width:1024px){.twocol,.twocol--rev{grid-template-columns:1fr;gap:var(--gap)}.twocol__img img{max-width:402px}}
.steps{display:flex;flex-direction:column;gap:36px}
.step{display:grid;grid-template-columns:50px minmax(0,1fr);gap:20px;align-items:start}
.step__n{width:50px;height:50px;border-radius:100px;background:var(--ginko);color:var(--mana);display:flex;align-items:center;justify-content:center}
.step__t{margin-bottom:5px}
.step__d{color:var(--ink)}
.intro{max-width:1020px;margin-inline:auto;text-align:center}
.intro .rt p{margin-bottom:20px}

/* ===== Recenze (Elfsight) a mapa: načtou se až po souhlasu ===== */
.reviews{min-height:380px}
.reviews__ph,.map__ph{background:#fff;border-radius:25px;box-shadow:0 0 20px rgba(0,0,0,.12);padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;min-height:300px}
.reviews__ph{background:var(--off-white);box-shadow:none}
.map{border-radius:25px;overflow:hidden;box-shadow:0 0 20px rgba(0,0,0,.17);min-height:420px;background:#fff}
.map iframe{width:100%;height:420px;border:0;display:block}
.map__ph{box-shadow:none;min-height:420px}
.ph__links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.ph__txt{max-width:46ch}

/* ===== Novinky ===== */
.posts{display:flex;flex-direction:column;gap:20px}
.post{display:flex;flex-direction:column;gap:5px;padding:25px;border-radius:25px;text-decoration:none;transition:background .25s}
.post__t{font:600 var(--card-fs)/var(--card-lh) var(--font-head);letter-spacing:-.5px}
.post__d{font:400 var(--body-fs)/var(--body-lh) var(--font-body);margin-bottom:5px}
.post__date{font:400 var(--foot-fs)/var(--foot-lh) var(--font-body);opacity:.85}
.post--t{background:rgba(255,255,255,.09);color:#fff}
.post--t:hover{background:rgba(255,255,255,.14)}
.post--m{background:var(--mana);color:#fff}
.post--m:hover{background:#0a8794}
.post--g{background:var(--ginko);color:var(--mana)}
.post--g:hover{background:#cde0b6}
.post--g .post__t{color:var(--mana)}
.more{display:flex;justify-content:center;margin-top:var(--gap)}
.news2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:80px;align-items:start}
.news2__col{display:flex;flex-direction:column;gap:20px}
@media (max-width:1024px){.news2{grid-template-columns:1fr}}

/* ===== Akordeon (hlavní benefity) ===== */
.acc{max-width:820px;margin-inline:auto;width:100%}
.acc__item{margin-bottom:25px}
.acc__h{width:100%;display:flex;align-items:center;gap:15px;padding:15px;border:0;border-radius:15px;background:var(--off-white);cursor:pointer;text-align:left;transition:background .3s}
.acc__t{flex:1;font:600 var(--card-fs)/var(--card-lh) var(--font-head);letter-spacing:-.5px;color:var(--mana)}
.acc__i{flex:none;width:25px;height:25px;display:flex;align-items:center;justify-content:center;color:var(--mana)}
.acc__i svg{width:16px;height:16px}
.acc__i .minus{display:none}
.acc__item.is-open .acc__i .plus{display:none}
.acc__item.is-open .acc__i .minus{display:block}
.acc__item:last-child{margin-bottom:0}
.acc__c{padding:10px 20px 0;color:var(--ink)}
.acc__c[hidden]{display:none}
/* varianta na gradientu Tropicana (benefity služeb) */
.benef{position:relative;isolation:isolate;overflow:hidden}
.benef::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 15% 20%,rgba(243,153,106,.9),transparent 55%),radial-gradient(ellipse at 90% 15%,rgba(240,141,165,.95),transparent 50%),radial-gradient(ellipse at 40% 95%,var(--dandelion),transparent 60%),radial-gradient(ellipse at 100% 100%,rgba(243,153,106,.8),transparent 55%),#E6B74F}
.benef .t-serif{color:#fff;text-align:center}
.benef .acc__h{background:rgba(255,255,255,.94)}
.benef .acc__c{color:var(--ink);background:rgba(255,255,255,.94);border-radius:0 0 15px 15px;margin-top:-10px;padding:20px 20px 15px}
.benef .acc__item.is-open .acc__h{border-radius:15px 15px 0 0}
.benef__deco{position:absolute;pointer-events:none;opacity:.55;z-index:-1}

/* ===== Záložky a ceník ===== */
.tabs__bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:var(--gap)}
.tab{font:600 var(--label-fs)/var(--label-lh) var(--font-head);letter-spacing:-.5px;padding:15px 35px;border-radius:20px;border:0;cursor:pointer;background:var(--ginko);color:var(--ink);transition:background .3s,color .3s}
.tab:hover,.tab[aria-selected=true]{background:var(--mana);color:#fff}
@media (max-width:767px){.tabs__bar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.tab{flex:none}}
.tabs__panel{display:flex;flex-direction:column;gap:20px}
.tabs__panel[hidden]{display:none}
.prow{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px;border-bottom:1px solid rgba(0,0,0,.05)}
.prow__n{font:600 var(--card-fs)/var(--card-lh) var(--font-head);letter-spacing:-.5px;color:var(--ink)}
.prow__p{font:600 var(--card-fs)/var(--card-lh) var(--font-head);letter-spacing:-.5px;color:var(--mana);white-space:nowrap;text-align:right}
.prow__p small{display:block;font:400 var(--body-fs)/var(--body-lh) var(--font-body);color:var(--ink)}
.prow--d{align-items:flex-start}
.prow--d .rt{margin-top:6px}
.pnote{padding:10px}
.ptitle{font:600 var(--h4-fs)/var(--h4-lh) var(--font-head);color:var(--mana);margin-top:20px}

/* ===== Přehled infuzí ===== */
.inf-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;padding:10px}
.inf{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0;padding:25px 0;border-radius:25px;background:var(--bg-light);text-decoration:none;transition:background .3s}
.inf:hover{background:var(--off-white)}
.inf img{width:100px;height:auto;margin-bottom:15px}
.inf .t-card{margin:8px 0 5px;padding:7px 0}
.inf__p{color:var(--ink)}
@media (max-width:1024px){.inf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.inf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== Bubliny (vyšetření a programy) ===== */
.bubbles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:20px 0 10px;align-items:start}
@media (max-width:767px){.bubbles{grid-template-columns:1fr}}
.bubble{position:relative}
.bubble__btn{width:100%;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:15px;border-radius:25px;box-shadow:0 0 10px rgba(0,0,0,.12);background:var(--sun);color:var(--ink);transition:transform .2s,box-shadow .2s;text-align:center;position:relative}
.bubble__btn:hover{transform:scale(1.03);box-shadow:0 4px 14px rgba(0,0,0,.2)}
.bubble--prog .bubble__btn{background:var(--dandelion)}
.bubble--prog .bubble__n{font-weight:700}
.bubble__n{font:600 var(--mini-fs)/var(--mini-lh) var(--font-head);letter-spacing:-1px}
.bubble__p{font:600 var(--mini-fs)/var(--mini-lh) var(--font-head);letter-spacing:-1px}
.bubble__sub{font:400 var(--body-fs)/var(--body-lh) var(--font-body);letter-spacing:-.5px}
.bubble__tag{position:absolute;z-index:2;top:-10px;right:14px;background:var(--mana);color:#fff;font:700 13px/1 var(--font-body);letter-spacing:0;padding:6px 10px;border-radius:99px}
.bubble__more{position:absolute;left:0;right:0;top:calc(100% - 10px);z-index:20;padding:26px 20px 18px;border-radius:0 0 25px 25px;background:#fff;box-shadow:0 12px 28px rgba(0,0,0,.2);font:400 var(--foot-fs)/var(--foot-lh) var(--font-body);color:var(--ink);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility .2s}
.bubble:hover .bubble__more,.bubble:focus-within .bubble__more,.bubble.is-open .bubble__more{opacity:1;visibility:visible;transform:none}
.bubble:hover .bubble__btn,.bubble.is-open .bubble__btn{border-radius:25px 25px 0 0}
@media (max-width:767px){.bubble__more{position:static;opacity:1;visibility:visible;transform:none;display:none;border-radius:0 0 25px 25px;box-shadow:none;margin-top:-10px}.bubble.is-open .bubble__more{display:block}}

/* ===== Formuláře ===== */
.form{display:grid;gap:20px}
.form__row{display:grid;gap:20px;grid-template-columns:repeat(var(--cols,1),minmax(0,1fr))}
@media (max-width:767px){.form__row{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column}
.field label{font:600 var(--label-fs)/var(--label-lh) var(--font-body);color:var(--mana);padding-bottom:5px;letter-spacing:-.5px}
.field input,.field select,.field textarea{width:100%;min-height:40px;padding:8px 16px;border:0;border-radius:20px;background:var(--off-white);color:var(--ink);font:400 16px/22px var(--font-body);letter-spacing:0;transition:box-shadow .3s} /* pole formulářů: 16 px podle SPEC (bez zoomu na mobilu) */
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23222' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;box-shadow:0 0 0 3px var(--mana)}
.field[aria-invalid=true] input{box-shadow:0 0 0 2px #b3261e}
.field__err{color:#b3261e;font:500 var(--foot-fs)/var(--foot-lh) var(--font-body);margin-top:4px}
.form__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form__ok,.form__bad{padding:14px 18px;border-radius:15px;font:600 var(--body-fs)/var(--body-lh) var(--font-body)}
.form__ok{background:#e4f3e1;color:#1b5e20}
.form__bad{background:#fde7e7;color:#8a1c14}
.form__note{font:400 var(--foot-fs)/var(--foot-lh) var(--font-body);letter-spacing:-.5px}
.form__note a{color:var(--mana);font-weight:700;text-decoration:none}
.form__note a:hover{text-decoration:underline}
.form .btn{justify-self:stretch}
.form--center .btn{justify-self:center}
.formcard{max-width:1014px;margin-inline:auto;width:100%}

/* ===== Galerie ===== */
.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
@media (max-width:1024px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gal img{width:100%;height:100%;aspect-ratio:3/4;object-fit:cover}
@media (max-width:767px){.gal{grid-template-columns:1fr}}

/* ===== Kontakt ===== */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:center}
.contact__txt{text-align:center;display:flex;flex-direction:column;gap:20px;align-items:center}
.contact__txt a{text-decoration:none}
.contact__txt a:hover{text-decoration:underline}
.contact__soc{display:flex;gap:14px;justify-content:center;margin-top:4px}
.contact__soc a{display:block;width:30px;height:30px;color:var(--mana)}
.contact__soc svg{width:100%;height:100%;fill:currentColor}
@media (max-width:1024px){.contact{grid-template-columns:1fr;gap:var(--gap)}}
.contact__gap{height:20px}

/* ===== Článek ===== */
.article{max-width:920px;margin-inline:auto;width:100%;display:flex;flex-direction:column;gap:20px}
.article__date{color:var(--ink-article)}
.article .btn{align-self:flex-start;margin-top:10px}

/* ===== Patička ===== */
.foot{background:var(--mana);padding:48px var(--px);text-align:center;font:400 var(--foot-fs)/var(--foot-lh) var(--font-body);color:var(--ginko)}
.foot strong,.foot a{font-weight:700;color:var(--ginko);text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot button{background:none;border:0;padding:0;cursor:pointer;font-weight:700;color:var(--ginko)}
.foot button:hover{text-decoration:underline}

/* ===== Bannery (carousel za hero) ===== */
.banners{background:var(--bg-light);padding:24px var(--px)}
.banners__in{max-width:1300px;margin-inline:auto;position:relative}
.banners__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:20px;border-radius:25px}
.banners__track::-webkit-scrollbar{display:none}
.banner{flex:0 0 100%;scroll-snap-align:center;border-radius:25px;overflow:hidden;display:block}
.banner img{width:100%;height:auto}
.banners__dots{display:flex;gap:10px;justify-content:center;margin-top:14px}
.banners__dots button{width:12px;height:12px;padding:0;border:0;border-radius:50%;background:var(--rain-drop);opacity:.5;cursor:pointer}
.banners__dots button[aria-current=true]{background:var(--mana);opacity:1}

/* ===== Přichycené tlačítko rezervace (mobil) ===== */
.fab-rez{display:none}
@media (max-width:767px){
  .fab-rez{display:block;position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:60;box-shadow:0 6px 18px rgba(0,0,0,.28);border-radius:20px;background:var(--ginko);color:var(--ink);text-align:center;text-decoration:none;font:700 var(--btn-fs)/var(--btn-lh) var(--font-head);letter-spacing:-.5px;padding:14px 20px}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  body.no-fab .fab-rez{display:none}
  body.no-fab{padding-bottom:0}
}

/* ===== Právní a prosté stránky ===== */
.legal{max-width:1000px;margin-inline:auto}
.legal .t-h2{margin-bottom:24px}
.legal .rt h5,.legal .rt h4,.legal .rt h3{margin-top:28px}
.legal .rt a{word-break:break-word}
.legal table{border-collapse:collapse;width:100%;font-size:15px;margin:10px 0 20px}
.legal th,.legal td{border:1px solid #d5d5d5;padding:8px 10px;text-align:left;vertical-align:top}
.legal th{background:var(--off-white)}
.tblwrap{overflow-x:auto}

/* ===== Rezervace (Bookio) ===== */
.bookio{max-width:1020px;margin-inline:auto;width:100%;background:#fff;min-height:500px}
.bookio iframe{width:100%;min-height:500px;border:0;display:block}

/* ===== Pomocné ===== */
.mt-s{margin-top:20px}
.mt-m{margin-top:var(--gap)}
.nowrap{white-space:nowrap}
.deco-sticker{width:140px;height:140px;flex:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* ===== Doplňky: navigace ===== */
.pill--root{--pill-bg:var(--green-root)}
.pill--sun{--pill-bg:var(--sun)}
.pill--pink{--pill-bg:var(--pink)}
.pill--rain{--pill-bg:var(--rain-drop)}
.pill--fuchsia{--pill-bg:var(--fuchsia)}
.nav__list a[aria-current=page]{text-decoration:underline;text-underline-offset:4px}

/* ===== Doplňky: sekce a rozložení ===== */
.sec--flat{background:var(--off-white)}
.sec--gal{padding-block:48px}
.sec--nb{padding-bottom:0}
.sec--cenik{min-height:500px}
.stack--20{gap:20px}
.w65{max-width:819px}
@media (max-width:1024px){.w65{max-width:none}}
.t-contact--s{line-height:25.2px}
.acc__hd{margin:0;font:inherit}
.rt li p{margin:0}
.rt u{text-underline-offset:3px}
.rt__b li{font-weight:700}
.svc .rt__b li::before{background:var(--ginko)}
.svc .rt>p{margin-bottom:14.4px}
.tstep{margin-top:8px}
.privnote{border-top:1px solid rgba(0,0,0,.12);padding-top:20px}
.privnote .rt{font:400 var(--foot-fs)/var(--foot-lh) var(--font-body)}
.prow--card{background:rgba(255,255,255,.65);border-radius:15px;border-bottom:0;padding:20px 25px}
.prow--card .rt{margin-top:6px}

/* ===== Doplňky: formulářové karty ===== */
.formcard{background:var(--ginko);border-radius:25px;box-shadow:0 0 20px rgba(0,0,0,.17);padding:var(--card-pad);display:flex;flex-direction:column;gap:20px;max-width:1014px;margin-inline:auto;width:100%}
.formcard--root{background:var(--green-root);color:#fff}
.formcard--root .t-h3{color:var(--ginko)}
.formcard--root .field label{color:#fff}
.formcard--root .btn{background:var(--ginko);color:var(--ink)}
.formcard--root .form__note,.formcard--root .form__note a{color:#fff}
.formcard--root .form__note a{text-decoration:underline}
.form__note--c{text-align:center}
.form--center .btn{justify-self:center}
.form .ts-box{min-height:0}

/* ===== Doplňky: dárkové poukazy ===== */
.twocol--half{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.poukazy{display:flex;flex-direction:column;gap:20px}
.poukazy img,.poukaz-m img{border-radius:5px;box-shadow:0 0 10px rgba(0,0,0,.25);width:100%;height:auto}
.poukaz-m{display:none}
@media (max-width:1024px){.twocol--half{grid-template-columns:1fr}.poukazy{display:none}.poukaz-m{display:block}}

/* ===== Doplňky: Rezervace (Bookio) ===== */
.sec--rez .bookio{background:#fff;border-radius:25px;overflow:hidden;box-shadow:0 0 20px rgba(0,0,0,.12)}

/* ===== Doplňky: odsazení nadřazených sloupců (Elementor má 10 px) a seznamy z ikon ===== */
.pad10{padding-block:10px}
.stack--40{gap:40px}
.svc__img,.det__img,.twocol__img{padding:10px 0}
.w65{padding-block:20px}
.il{margin:0 0 14.4px}
.il li{margin:0;padding-block:7.5px}
.il li::before{top:calc(7.5px + 7px)}
.rt .il:last-child{margin-bottom:0}

@media (max-width:767px){.map,.map__ph{min-height:300px}.map iframe{height:300px}}
