:root{
  --cream:#FBF5F3; --cream-2:#F6E8E9; --blush:#F8E2E7; --card:#FFFFFF;
  --plum:#2A0E1B; --berry-bg:#3A0F26; --dark:#1c0a14;
  --ink-2:#6E5159; --ink-3:#A0888F;
  --line:rgba(42,14,27,0.12); --line-2:rgba(42,14,27,0.06);
  --cherry:#E5277E; --cherry-deep:#C71566; --cherry-soft:rgba(229,39,126,0.10);
  --ochre:#C0822B; --ochre-soft:rgba(192,130,43,0.14);
  --display:'Bricolage Grotesque', system-ui, sans-serif;
  --body:'Hanken Grotesk', system-ui, sans-serif;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:74px; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--cream); color:var(--plum); font-family:var(--body); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1,h2,h3,h4{ margin:0; font-weight:700; }
p{ margin:0; text-wrap:pretty; }
a{ color:inherit; text-decoration:none; }
img,video,svg{ display:block; max-width:100%; }
button,input,textarea{ font:inherit; color:inherit; }
::selection{ background:var(--cherry); color:#fff; }

.disp{ font-family:var(--display); font-weight:700; line-height:1.0; letter-spacing:-0.022em; text-wrap:balance; }
.container{ width:100%; max-width:1200px; margin:0 auto; padding:0 28px; }
.section{ padding:88px 28px; }
.section--cream2{ background:var(--cream-2); }
.section--berry{ background:var(--berry-bg); color:var(--cream); position:relative; }

/* Jemné zrno přes tmavé plochy — sundá to z nich plastový vzhled. */
.section--berry::after, .stats-band::after{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:0.5; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.32'/%3E%3C/svg%3E");
}
.stats-band{ position:relative; }
.section--berry > *, .stats-band > *{ position:relative; z-index:1; }

/* Zvlněný předěl mezi světlou a tmavou sekcí.
   Vlna přesahuje o pixel nahoru, jinak na hranici prosvítá vlasová čára.
   Barvu výplně dopočítá app.js podle sekce nad ní — natvrdo se to rozjede,
   jakmile se změní pořadí sekcí. */
.wave{ position:absolute; top:-1px; left:0; right:0; height:61px; line-height:0; z-index:2; pointer-events:none; }
.wave svg{ width:100%; height:100%; display:block; }
.wave path{ fill:var(--cream); }
.section--berry:has(.wave){ padding-top:132px; }

@keyframes tbpz-up{ from{opacity:0; transform:translateY(22px)} to{opacity:1; transform:translateY(0)} }
@keyframes tbpz-fade{ from{opacity:0} to{opacity:1} }
@media (prefers-reduced-motion: reduce){ *{ animation-duration:.001ms !important } }

/* eyebrow */
.eyebrow{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.eyebrow .dot{ width:7px; height:7px; border-radius:999px; background:var(--cherry); }
.eyebrow span.txt{ font-size:12px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--cherry); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:9px; font-weight:600; border-radius:999px; cursor:pointer; border:none; transition:background .2s ease, border-color .2s ease, color .2s ease; }
.btn-cherry{ background:var(--cherry); color:#fff; }
.btn-cherry:hover{ background:var(--cherry-deep); }
.btn-ghost{ background:rgba(255,255,255,0.12); color:#fff; border:1.5px solid rgba(255,255,255,0.4); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.btn-ghost:hover{ background:rgba(255,255,255,0.22); }

/* NAV */
header.nav{ position:fixed; top:0; left:0; right:0; z-index:1000; background:rgba(251,245,243,0.86); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
header.nav nav{ width:100%; max-width:1200px; margin:0 auto; padding:0 28px; height:70px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.wordmark{ display:flex; align-items:baseline; gap:6px; }
.wordmark .a{ font-size:23px; font-weight:800; color:var(--plum); }
.wordmark .b{ font-size:23px; font-weight:800; color:var(--cherry); }
.nav-right{ display:flex; align-items:center; gap:28px; }
.navlinks{ display:flex; align-items:center; gap:26px; font-size:14px; font-weight:600; }
.navlinks a{ color:var(--ink-2); transition:color .2s ease; }
.navlinks a:hover{ color:var(--cherry); }
.nav-cta{ height:42px; padding:0 22px; font-size:14px; }
.nav-burger{ display:none; width:42px; height:42px; align-items:center; justify-content:center; background:none; border:1px solid var(--line); border-radius:12px; cursor:pointer; color:var(--plum); }

/* mobile menu */
.mobile-menu{ display:none; position:fixed; inset:0; z-index:1500; background:var(--cream); padding:90px 28px 28px; flex-direction:column; gap:6px; animation:tbpz-fade .2s ease both; }
.mobile-menu.open{ display:flex; }
.mobile-menu a{ font-family:var(--display); font-size:1.8rem; font-weight:800; color:var(--plum); padding:12px 0; border-bottom:1px solid var(--line); }
.mobile-menu .close{ position:absolute; top:18px; right:24px; width:44px; height:44px; border:1px solid var(--line); border-radius:12px; background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--plum); }

/* HERO */
.hero{ position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; background:var(--dark); }
.hero video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:tbpz-zoom 26s ease-in-out infinite alternate both; }
.hero .scrim{ position:absolute; inset:0; background:radial-gradient(125% 100% at 50% 40%, rgba(28,10,20,0.18) 0%, rgba(28,10,20,0.6) 58%, rgba(28,10,20,0.92) 100%); }
.hero-inner{ position:relative; z-index:2; width:100%; max-width:920px; margin:0 auto; padding:120px 28px 168px; animation:tbpz-up .8s ease both; }
.hero .eyebrow{ justify-content:center; }
.hero .eyebrow span.txt{ color:#fff; letter-spacing:0.18em; }
.hero h1{ font-size:clamp(2.75rem, 6.2vw, 5.4rem); font-weight:800; color:#fff; max-width:17ch; margin:0 auto; }
.hero h1 .hl{ color:var(--cherry); text-shadow:0 0 60px rgba(229,39,126,0.5); }
.hero .lede{ margin:26px auto 0; max-width:52ch; font-size:1.15rem; line-height:1.6; color:rgba(255,255,255,0.85); }
.hero .cta-row{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; justify-content:center; }
.hero .cta-row .btn{ height:58px; padding:0 34px; font-size:15px; }
.hero .cta-row .btn-cherry{ box-shadow:0 14px 40px rgba(229,39,126,0.4); }
.hero .cta-row .btn-ghost{ padding:0 30px; background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.42); }
.hero-bottom{ position:absolute; left:0; right:0; bottom:30px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:18px; padding:0 20px; }
.hero-ticker{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:rgba(255,255,255,0.55); }
.hero-ticker .sep{ color:var(--cherry); }
.hero-scroll{ color:rgba(255,255,255,0.5); animation:tbpz-bob 2.2s ease-in-out infinite; transition:color .2s ease; }
.hero-scroll:hover{ color:#fff; }
@keyframes tbpz-zoom{ from{ transform:scale(1) } to{ transform:scale(1.1) } }
@keyframes tbpz-bob{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(7px) } }
/* stars (color + size; works for <i> placeholder and the svg lucide injects) */
.stars{ display:flex; gap:3px; }
.stars i, .stars svg{ color:var(--cherry); fill:var(--cherry); }
.testimonial .stars i, .testimonial .stars svg{ width:15px; height:15px; }

/* STATS */
.stats-band{ background:var(--berry-bg); color:#fff; padding:0 28px; }
.stats{ width:100%; max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(3, 1fr); }
.stats > div{ padding:40px 28px; border-right:1px solid rgba(255,255,255,0.14); }
.stats > div:last-child{ border-right:none; }
.stats > div{ display:flex; flex-direction:column; }
.stats .stat-row{ display:flex; align-items:center; gap:14px; }
.stats .ic{ display:flex; flex-shrink:0; }
/* Lucide nahradí <i> za <svg>, proto obojí. */
.stats .ic i, .stats .ic svg{ width:36px; height:36px; color:var(--cherry); stroke-width:1.6; }
.stats .num{ font-size:clamp(3rem,6vw,4.6rem); font-weight:800; line-height:0.86; }
.stats .num.cherry{ color:var(--cherry); }
.stats .num.white{ color:#fff; }
.stats .desc{ font-size:14px; font-weight:600; color:rgba(255,255,255,0.85); margin-top:10px; max-width:26ch; }

/* section heads */
.sec-h2{ font-size:clamp(2.5rem,5.4vw,4.2rem); font-weight:800; }
.sec-h2--sm{ font-size:clamp(2.25rem,4.6vw,3.6rem); font-weight:800; }
.sec-intro{ color:var(--ink-2); font-size:1.1rem; max-width:64ch; margin:18px 0 0; }

/* FILTERS */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin:40px 0 24px; }
.filter-btn{ height:40px; padding:0 22px; border-radius:999px; border:1.5px solid var(--line); background:transparent; color:var(--ink-2); font-size:14px; font-weight:600; cursor:pointer; transition:all .2s ease; }
.filter-btn.active{ background:var(--plum); color:var(--cream); border-color:var(--plum); }

/* COURSES */
.courses-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(440px, 1fr)); gap:20px; }
.course{ display:grid; grid-template-columns:1fr 210px; background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 6px 22px rgba(42,14,27,0.05); transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.course:hover{ border-color:var(--cherry); box-shadow:0 16px 40px rgba(42,14,27,0.1); transform:translateY(-3px); }
.course-body{ display:flex; flex-direction:column; padding:28px 30px; }
.course-tags{ display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.course-type{ font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:5px 12px; border-radius:999px; color:#fff; }
.course-freq{ font-size:11px; font-weight:600; color:var(--ink-2); background:var(--cream-2); padding:5px 12px; border-radius:999px; }
.course h3{ font-size:1.4rem; font-weight:700; }
.course-meta{ display:flex; flex-direction:column; gap:9px; margin:16px 0; padding-bottom:18px; border-bottom:1px solid var(--line); }
.course-meta .row{ display:flex; align-items:center; gap:10px; font-size:0.92rem; color:var(--ink-2); }
.course-meta .row i{ width:15px; height:15px; color:var(--ink-3); }
.course-desc{ color:var(--ink-2); font-size:0.9rem; line-height:1.6; margin:0 0 22px; flex:1; }
.course-price-row{ display:flex; align-items:baseline; gap:12px; margin-top:auto; }
.course-price{ font-size:2.1rem; font-weight:800; line-height:0.9; color:var(--plum); }
.course-sessions{ font-size:11px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-3); }
.course-media{ display:flex; flex-direction:column; gap:14px; padding:18px; }
.course-photo{ position:relative; width:100%; aspect-ratio:9 / 16; border-radius:12px; overflow:hidden; background:var(--dark); }
.course-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; cursor:zoom-in; transition:transform .35s cubic-bezier(0.22,1,0.36,1); }
.course-photo img:hover{ transform:scale(1.04); }
.course-media .btn{ display:flex; justify-content:center; height:54px; border-radius:12px; font-size:14px; }

/* SCHEDULE */
.schedule-wrap{ margin-top:40px; background:var(--card); border:1px solid var(--line); border-radius:22px; padding:26px; box-shadow:0 6px 22px rgba(42,14,27,0.05); }
.schedule-head{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:20px; }
.schedule-head .title{ display:flex; align-items:center; flex-wrap:wrap; gap:11px; }
.schedule-head .title i{ width:18px; height:18px; color:var(--cherry); }
.schedule-head .title span{ font-size:1.35rem; font-weight:700; }
.schedule-head .title .sched-od{ font-family:var(--body); font-size:11px; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; color:var(--cherry); background:var(--cherry-soft); border:1px solid rgba(229,39,126,0.28); padding:4px 10px; border-radius:999px; margin-left:10px; white-space:nowrap; }
.schedule-legend{ display:flex; gap:18px; }
.schedule-legend span{ display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--ink-2); }
.schedule-legend .sw{ width:11px; height:11px; border-radius:4px; }
.schedule-scroll{ overflow-x:auto; }
.schedule-grid{ display:grid; grid-template-columns:repeat(7, minmax(110px, 1fr)); gap:9px; min-width:800px; }
.sched-day{ border:1px solid var(--line); border-radius:14px; padding:12px 10px; min-height:142px; }
.sched-day.is-today{ border-color:var(--cherry); box-shadow:0 0 0 3px var(--cherry-soft); }
.sched-day .dname{ display:flex; align-items:center; justify-content:center; gap:7px; font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-3); margin-bottom:11px; }
.sched-day.is-today .dname{ color:var(--cherry); }
.today-tag{ font-size:9px; font-weight:700; letter-spacing:0.06em; padding:2px 7px; border-radius:999px; background:var(--cherry); color:#fff; }
.sched-slots{ display:flex; flex-direction:column; gap:7px; }
.sched-slot{ border-radius:10px; padding:8px 9px; }
.sched-slot .line1{ display:flex; align-items:center; gap:6px; }
.sched-slot .t{ font-size:14px; font-weight:700; color:var(--plum); }
.sched-slot .tr{ font-size:11px; font-weight:700; }
.sched-slot .lbl{ font-size:10px; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--ink-3); margin-top:2px; }
.sched-empty{ text-align:center; color:var(--line); font-size:22px; margin-top:20px; }

/* BENEFITY — číslovaný editorial */
.benefits{ display:grid; grid-template-columns:1fr 1fr; gap:0 56px; margin-top:48px; }
.benefit{ display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:start; padding:30px 0; border-top:1px solid var(--line); }
.benefits .benefit:nth-child(1), .benefits .benefit:nth-child(2){ border-top:none; padding-top:0; }
.benefit-num{ font-size:2.6rem; font-weight:800; line-height:0.9; color:var(--line); transition:color .3s ease; }
.benefit:hover .benefit-num{ color:var(--cherry); }
.benefit-text h3{ font-size:1.32rem; font-weight:700; line-height:1.12; margin:0 0 9px; }
.benefit-text p{ color:var(--ink-2); font-size:0.99rem; line-height:1.62; margin:0; }
.benefit-photo{ grid-column:1 / -1; aspect-ratio:16 / 10; border-radius:16px; overflow:hidden; background:var(--dark); margin-bottom:20px; }
.benefit-photo img{ width:100%; height:100%; object-fit:cover; }

/* ODPOČET DO STARTU KURZU */
.countdown{ display:inline-flex; align-items:center; gap:10px; margin-top:20px; height:40px; padding:0 18px; border-radius:999px; background:var(--cherry-soft); border:1px solid rgba(229,39,126,0.3); font-size:14px; font-weight:600; color:var(--cherry-deep); }
.countdown i, .countdown svg{ width:17px; height:17px; color:var(--cherry); }
.countdown[hidden]{ display:none; }

/* ČASOVÁ OSA — PRVNÍ TRÉNINK */
.timeline{ list-style:none; margin:48px 0 0; padding:0; position:relative; max-width:760px; }
.timeline::before{ content:''; position:absolute; left:23px; top:14px; bottom:14px; width:2px; background:linear-gradient(180deg, var(--cherry) 0%, var(--line) 100%); }
.tl-step{ position:relative; display:grid; grid-template-columns:48px 1fr; gap:22px; padding-bottom:30px; }
.tl-step:last-child{ padding-bottom:0; }
.tl-dot{ position:relative; z-index:1; width:48px; height:48px; border-radius:999px; background:var(--card); border:2px solid var(--cherry); display:flex; align-items:center; justify-content:center; }
.tl-dot i, .tl-dot svg{ width:21px; height:21px; color:var(--cherry); }
.tl-body{ padding-top:3px; }
.tl-time{ font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px; }
.tl-body h3{ font-size:1.3rem; font-weight:700; line-height:1.14; margin:0 0 8px; }
.tl-body p{ color:var(--ink-2); font-size:1rem; line-height:1.62; margin:0; max-width:60ch; }

/* VYPÍCHNUTÁ CITACE */
.quote-hero{ margin:44px 0 0; padding:38px 40px; background:var(--card); border:1px solid var(--line); border-left:4px solid var(--cherry); border-radius:18px; box-shadow:0 10px 34px rgba(42,14,27,0.06); }
.quote-hero blockquote{ margin:0; font-size:clamp(1.3rem, 2.5vw, 1.85rem); font-weight:700; line-height:1.32; color:var(--plum); text-wrap:pretty; }
.quote-hero figcaption{ display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.quote-hero figcaption img{ width:42px; height:42px; border-radius:999px; object-fit:cover; }
.quote-hero figcaption .initial{ width:42px; height:42px; border-radius:999px; background:var(--cherry-soft); display:inline-flex; align-items:center; justify-content:center; font-family:var(--display); font-size:1.1rem; font-weight:700; color:var(--cherry); }
.quote-hero figcaption .name{ font-size:14px; font-weight:600; color:var(--ink-2); }
.quote-hero .stars{ margin-left:4px; }
.quote-hero .stars i, .quote-hero .stars svg{ width:15px; height:15px; }

/* CARD GRIDS (benefits / why) */
.cards-grid{ display:grid; gap:20px; margin-top:48px; }
.cards-grid.cols-320{ grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); }
.cards-grid.cols-280{ grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:22px; }
.icard{ background:var(--card); border:1px solid var(--line); border-radius:20px; padding:32px 30px; box-shadow:0 6px 22px rgba(42,14,27,0.03); }
.icard.lg{ border-radius:22px; padding:34px 30px; box-shadow:0 6px 22px rgba(42,14,27,0.04); }
.icard .tile{ width:50px; height:50px; border-radius:14px; background:var(--cherry-soft); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.icard.lg .tile{ width:52px; height:52px; margin-bottom:22px; }
.icard .tile i{ width:23px; height:23px; color:var(--cherry); }
.icard.lg .tile i{ width:24px; height:24px; }
.icard h3{ font-size:1.4rem; font-weight:700; line-height:1.08; margin:0 0 10px; }
.icard.lg h3{ font-size:1.6rem; margin:0 0 12px; }
.icard p{ color:var(--ink-2); font-size:0.98rem; line-height:1.6; margin:0; }
.icard.lg p{ font-size:1.02rem; line-height:1.62; }

/* KDO JSME / STORY */
.two-col{ display:grid; gap:60px; align-items:center; }
.story-grid{ grid-template-columns:0.85fr 1.15fr; margin-top:44px; }
.story-photo{ position:relative; aspect-ratio:4 / 5; border-radius:22px; overflow:hidden; background:var(--dark); box-shadow:0 26px 60px rgba(0,0,0,0.35); }
.story-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.story-text{ display:flex; flex-direction:column; gap:16px; }
.story-text p{ color:var(--ink-2); font-size:1.08rem; line-height:1.72; margin:0; max-width:66ch; }
/* Světlý text jen tam, kde je pod ním tmavé pozadí. */
.section--berry .story-text p{ color:rgba(251,245,243,0.82); }

/* TRAINERS */
.trainers-block{ margin-top:80px; padding-top:64px; border-top:1px solid rgba(251,245,243,0.16); }
.trainers-list{ display:flex; flex-direction:column; gap:80px; margin-top:56px; }
.trainer{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:52px; align-items:center; }
.trainer-hero{ position:relative; aspect-ratio:4 / 5; border-radius:20px; overflow:hidden; background:var(--dark); border:1px solid rgba(251,245,243,0.14); box-shadow:0 26px 60px rgba(0,0,0,0.4); }
.trainer-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.trainer-tag{ position:absolute; left:18px; bottom:16px; }
.trainer-tag span{ font-size:11px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#fff; background:var(--cherry); padding:6px 14px; border-radius:999px; }
.trainer-thumbs{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; margin-top:10px; }
.trainer-thumbs .th{ position:relative; aspect-ratio:1 / 1; border-radius:12px; overflow:hidden; background:var(--dark); border:1px solid rgba(251,245,243,0.14); }
.trainer-thumbs .th img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.trainer-role{ font-size:12px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--cherry); margin-bottom:12px; }
.trainer h4{ font-size:clamp(2.5rem,4.4vw,3.6rem); font-weight:800; margin:0 0 18px; color:var(--cream); }
.trainer-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.trainer-badges span{ font-size:11px; font-weight:600; letter-spacing:0.02em; padding:7px 14px; border-radius:999px; color:#fff; background:rgba(229,39,126,0.22); border:1px solid rgba(229,39,126,0.4); }
.trainer-bio{ display:flex; flex-direction:column; gap:14px; }
.trainer-bio p{ color:rgba(251,245,243,0.8); font-size:1.08rem; line-height:1.72; margin:0; max-width:58ch; }
.trainer-licence{ display:inline-flex; align-items:center; gap:11px; margin-top:22px; padding:13px 20px 13px 16px; border-radius:14px; background:var(--cherry); box-shadow:0 10px 28px rgba(229,39,126,0.35); }
.trainer-licence i, .trainer-licence svg{ width:20px; height:20px; color:#fff; flex-shrink:0; }
.trainer-licence span{ font-size:15px; font-weight:700; letter-spacing:0.01em; color:#fff; }
.trainer-ig{ display:inline-flex; align-items:center; gap:10px; margin-top:16px; height:46px; padding:0 20px; border:1.5px solid rgba(251,245,243,0.28); border-radius:999px; font-size:14px; font-weight:600; color:var(--cream); transition:all .2s ease; }
.trainer-ig:hover{ border-color:var(--cherry); color:var(--cherry); }

/* TESTIMONIALS */
.testimonials{ columns:330px; column-gap:20px; margin-top:48px; }
.testimonial{ break-inside:avoid; margin-bottom:20px; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:28px; box-shadow:0 6px 22px rgba(42,14,27,0.03); }
.testimonial .stars{ display:flex; gap:3px; margin-bottom:14px; }
.testimonial .stars i{ width:15px; height:15px; color:var(--cherry); fill:var(--cherry); }
.testimonial p{ color:var(--plum); font-size:1.02rem; line-height:1.62; margin:0 0 18px; }
.testimonial .who{ display:flex; align-items:center; gap:11px; }
.testimonial .who img{ width:38px; height:38px; border-radius:999px; object-fit:cover; }
.testimonial .who .initial{ width:38px; height:38px; border-radius:999px; background:var(--cherry-soft); display:inline-flex; align-items:center; justify-content:center; font-size:1.05rem; font-weight:700; color:var(--cherry); font-family:var(--display); }
.testimonial .who .name{ font-size:13px; font-weight:600; color:var(--ink-2); }

/* LADIES KEMP */
.kemp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.kemp-lede{ color:var(--ink-2); font-size:1.12rem; line-height:1.68; margin:20px 0 0; max-width:52ch; }
.kemp-facts{ display:flex; flex-wrap:wrap; gap:34px; margin:32px 0; padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.kemp-facts .k-num{ font-size:1.9rem; font-weight:800; line-height:0.95; color:var(--cherry); }
.kemp-facts .k-lbl{ font-size:12px; font-weight:600; color:var(--ink-3); margin-top:7px; max-width:16ch; }
.kemp-link{ color:var(--cherry); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.kemp-link:hover{ color:var(--cherry-deep); }
.kemp-note{ font-size:0.92rem; color:var(--ink-3); margin:0 0 18px; }
.kemp-cta{ height:54px; padding:0 28px; font-size:15px; }
.kemp-photos{ display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.kemp-ph{ position:relative; border-radius:18px; overflow:hidden; background:var(--dark); box-shadow:0 16px 44px rgba(42,14,27,0.14); }
.kemp-ph img{ width:100%; height:100%; object-fit:cover; display:block; cursor:zoom-in; transition:transform .45s cubic-bezier(0.22,1,0.36,1); }
.kemp-ph img:hover{ transform:scale(1.04); }
.kemp-ph.big{ grid-row:span 2; }
.kemp-photos .kemp-ph:not(.big){ aspect-ratio:4 / 5; margin-top:34px; }
.kemp-strip{ display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:14px; }
.kemp-strip .kemp-ph{ aspect-ratio:3 / 4; }
/* Fotky na šířku dostanou dvojnásobné pole se stejnou výškou řádku. */
.kemp-strip .kemp-ph.wide{ grid-column:span 2; aspect-ratio:3 / 2; }

/* GALLERY */
.gallery{ columns:260px; column-gap:14px; margin-top:44px; }
.gallery .g{ break-inside:avoid; margin-bottom:14px; border-radius:16px; overflow:hidden; background:var(--dark); border:1px solid var(--line); }
.gallery .g img{ width:100%; height:auto; display:block; cursor:zoom-in; }
/* Ať atributy width/height nepřebijí responzivní šířku. */
.gallery .g img[width]{ max-width:100%; }

/* GYM — bento mřížka */
.gym-link{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; color:var(--plum); transition:color .2s ease; }
.gym-link:hover{ color:var(--cherry); }
.gym-link i, .gym-link svg{ width:16px; height:16px; color:var(--cherry); }
.bento{ display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:44px; }
.bento-tile{ border-radius:18px; overflow:hidden; }
.bento-text{ grid-column:span 2; grid-row:span 2; background:var(--card); border:1px solid var(--line); padding:30px 32px; display:flex; flex-direction:column; justify-content:center; }
.bento-text .story-text p{ color:var(--ink-2); font-size:1.02rem; line-height:1.66; }
.bento-photo{ position:relative; background:var(--dark); border:1px solid var(--line); }
.bento-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; cursor:zoom-in; transition:transform .45s cubic-bezier(0.22,1,0.36,1); }
.bento-photo img:hover{ transform:scale(1.05); }
.bento-photo.big{ grid-column:span 2; grid-row:span 2; min-height:340px; }
.bento-photo.wide{ grid-column:span 2; min-height:150px; }
.bento-stat{ background:var(--card); border:1px solid var(--line); padding:24px; display:flex; flex-direction:column; justify-content:center; min-height:150px; }
.bento-stat .num{ font-size:2.6rem; font-weight:800; line-height:0.9; color:var(--plum); }
.bento-stat .lbl{ font-size:12px; font-weight:600; color:var(--ink-3); margin-top:8px; }
.bento-stat--cherry{ background:var(--cherry); border-color:var(--cherry); }
.bento-stat--cherry .num{ color:#fff; }
.bento-stat--cherry .lbl{ color:rgba(255,255,255,0.8); }

/* FAQ */
.faq-wrap{ width:100%; max-width:860px; margin:0 auto; }
.faq-list{ margin-top:40px; border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 4px; background:none; border:none; cursor:pointer; text-align:left; }
.faq-q span{ font-weight:600; font-size:1.12rem; color:var(--plum); }
.faq-q i{ width:20px; height:20px; color:var(--cherry); flex-shrink:0; }
.faq-a{ color:var(--ink-2); font-size:1.04rem; line-height:1.72; margin:0; padding:0 4px 26px; max-width:74ch; }

/* CONTACT */
.contact-grid{ grid-template-columns:1fr 1fr; align-items:start; gap:56px; }
.contact-info-rows{ display:flex; flex-direction:column; gap:16px; margin-bottom:30px; }
.contact-info-rows a{ display:flex; align-items:center; gap:14px; }
.contact-info-rows .ic{ width:44px; height:44px; border-radius:12px; background:rgba(251,245,243,0.08); display:flex; align-items:center; justify-content:center; }
.contact-info-rows .ic i{ width:20px; height:20px; color:var(--cherry); }
.contact-info-rows .val{ color:var(--cream); font-size:1.08rem; font-weight:500; }
.map-frame{ position:relative; height:240px; border-radius:18px; overflow:hidden; background:rgba(255,255,255,0.04); border:1px solid rgba(251,245,243,0.14); margin-bottom:18px; }
.map-frame iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(0.25) contrast(1.05); }
.getto{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.getto-tile{ background:rgba(255,255,255,0.05); border:1px solid rgba(251,245,243,0.14); border-radius:14px; padding:18px; }
.getto-tile > i{ width:20px; height:20px; color:var(--cherry); }
.getto-tile .t{ font-size:14px; font-weight:600; color:var(--cream); margin-top:10px; }
.getto-tile p{ font-size:13px; line-height:1.5; color:rgba(251,245,243,0.62); margin:4px 0 0; }
.contact-card{ background:var(--card); color:var(--plum); border-radius:22px; padding:32px; box-shadow:0 26px 60px rgba(0,0,0,0.28); }
.form-col{ display:flex; flex-direction:column; gap:16px; }
.form-col label{ display:block; font-size:12px; font-weight:600; letter-spacing:0.04em; color:var(--ink-3); margin-bottom:8px; }
.form-col input, .form-col textarea{ width:100%; padding:0 16px; background:var(--cream); border:1px solid var(--line); border-radius:12px; outline:none; }
.form-col input{ height:50px; }
.form-col textarea{ padding:14px 16px; resize:vertical; }
.form-col input:focus, .form-col textarea:focus{ border-color:var(--cherry); box-shadow:0 0 0 3px var(--cherry-soft); }
.form-two{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-submit{ width:100%; height:54px; background:var(--cherry); color:#fff; border:none; font-size:15px; font-weight:600; border-radius:12px; cursor:pointer; transition:background .2s ease; }
.form-submit:hover{ background:var(--cherry-deep); }
.form-fine{ font-size:0.8rem; color:var(--ink-3); margin:0; text-align:center; }
.form-thanks{ padding:44px 8px; text-align:center; }
.form-thanks .big{ font-size:3rem; font-weight:800; color:var(--cherry); line-height:1; }
.form-thanks p{ color:var(--ink-2); margin:14px 0 0; font-size:1.08rem; }

/* FOOTER */
footer.site{ padding:46px 28px; background:var(--berry-bg); color:rgba(251,245,243,0.6); border-top:1px solid rgba(251,245,243,0.1); }
footer.site .inner{ width:100%; max-width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; gap:18px; align-items:baseline; justify-content:space-between; }
footer.site .wm{ font-size:20px; font-weight:800; color:var(--cream); }
footer.site .wm span{ color:var(--cherry); }
footer.site .cp{ font-size:13px; }

/* ODHALOVÁNÍ PŘI SCROLLOVÁNÍ
   Základní varianta řízená skriptem — pro starší prohlížeče. */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .6s cubic-bezier(0.22,1,0.36,1), transform .6s cubic-bezier(0.22,1,0.36,1); transition-delay:var(--d, 0ms); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

/* Pozn.: kinetická typografie (změna řezu nadpisů při scrollování) tu byla
   a je odstraněná záměrně — změna tloušťky písma mění šířku textu a nadpisy
   na hranici zalomení skákaly mezi jedním a dvěma řádky. */

/* STICKY LIŠTA NA MOBILU */
.mobile-cta{ display:none; position:fixed; left:0; right:0; bottom:0; z-index:1200; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); background:rgba(251,245,243,0.92); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-top:1px solid var(--line); transform:translateY(120%); transition:transform .3s cubic-bezier(0.22,1,0.36,1); }
.mobile-cta.show{ transform:translateY(0); }
.mobile-cta a{ display:flex; align-items:center; justify-content:center; gap:9px; height:52px; border-radius:999px; background:var(--cherry); color:#fff; font-size:15px; font-weight:600; box-shadow:0 10px 30px rgba(229,39,126,0.35); }
.mobile-cta a i{ width:17px; height:17px; }

/* LIGHTBOX */
.lightbox{ position:fixed; inset:0; z-index:3000; background:rgba(15,5,10,0.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; padding:40px; cursor:zoom-out; animation:tbpz-fade .22s ease both; }
.lightbox img{ max-width:100%; max-height:100%; width:auto; height:auto; border-radius:10px; box-shadow:0 30px 90px rgba(0,0,0,0.6); }
.lightbox .close{ position:fixed; top:24px; right:24px; width:48px; height:48px; border-radius:999px; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.32); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.lightbox .close:hover{ background:rgba(255,255,255,0.26); }

/* RESPONSIVE */
@media (max-width: 920px){
  .two-col{ grid-template-columns:1fr !important; gap:40px; }
  .navlinks{ display:none; }
  .nav-burger{ display:flex; }
  .nav-cta{ display:none; }
  .trainer{ grid-template-columns:1fr; gap:32px; }
  .trainer-media-col, .trainer-text-col{ order:0 !important; }
  .hero h1{ font-size:11vw; }
  .benefits{ grid-template-columns:1fr; gap:0; }
  .benefits .benefit:nth-child(2){ border-top:1px solid var(--line); padding-top:30px; }
  .mobile-cta{ display:block; }
  /* Aby lišta nepřekrývala konec stránky. */
  footer.site{ padding-bottom:96px; }
  .stats{ grid-template-columns:1fr; }
  .stats > div{ border-right:none; border-bottom:1px solid rgba(255,255,255,0.14); padding:28px 0; }
  .stats > div:last-child{ border-bottom:none; }
}
@media (max-width: 560px){
  .hero-inner{ padding:104px 24px 180px; }
  /* Oddělovače by se při zalomení mohly ocitnout na konci řádku. */
  .hero-ticker{ gap:6px 18px; }
  .hero-ticker .sep{ display:none; }
  .hero .cta-row .btn{ width:100%; justify-content:center; }
  .getto{ grid-template-columns:1fr; }
  .bento{ grid-template-columns:1fr 1fr; }
  .bento-text{ grid-column:span 2; grid-row:auto; }
  .bento-photo.big{ grid-column:span 2; grid-row:auto; min-height:280px; }
  .quote-hero{ padding:28px 24px; }
  .kemp-grid{ grid-template-columns:1fr; gap:36px; }
  .kemp-facts{ gap:24px; }
  .kemp-photos .kemp-ph:not(.big){ margin-top:0; }
  .kemp-strip{ grid-template-columns:1fr 1fr; }
  .tl-step{ grid-template-columns:40px 1fr; gap:16px; }
  .tl-dot{ width:40px; height:40px; }
  .tl-dot i, .tl-dot svg{ width:18px; height:18px; }
  .timeline::before{ left:19px; }
}
@media (max-width: 760px){
  .course{ grid-template-columns:1fr; }
  .course-media{ order:-1; }
  .course-photo{ max-width:240px; width:100%; align-self:center; margin:0 auto; }
}
