/* =========================================================
   DejPět – vizuální systém (bílá + modrá)
   ========================================================= */

:root {
  --bg: #FFFFFF;
  --bg-soft: #F5F8FD;
  --bg-blue: #EAF1FF;
  --ink: #0B1530;
  --ink-2: #29344F;
  --muted: #5A6580;
  --blue: #1F5BFF;
  --blue-hover: #174BE0;
  --blue-deep: #1442C9;
  --blue-soft: #DCE7FF;
  --navy: #0A1633;
  --navy-2: #13224A;
  --line: #E2E8F2;
  --line-strong: #CBD5E5;
  --line-light: rgba(255, 255, 255, .16);
  --ok: #10804A;
  --error: #C02617;
  --todo-bg: #FFF2B3;

  --font: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ios: -apple-system, 'SF Pro Text', 'SF Pro Display', system-ui, 'Segoe UI', sans-serif;

  --r-sm: 10px;
  --r: 16px;
  --r-lg: 24px;
  --r-xl: 32px;
  --wrap: 1220px;
  --gutter: clamp(16px, 4vw, 40px);
  --header-h: 68px;
  --ease: cubic-bezier(.2, .7, .1, 1);
  --ease-back: cubic-bezier(.3, 1.35, .5, 1);
  --shadow: 0 1px 2px rgba(11,21,48,.06), 0 8px 24px -8px rgba(11,21,48,.12);
  --shadow-lg: 0 2px 4px rgba(11,21,48,.05), 0 24px 48px -16px rgba(11,21,48,.22);
  --pf: var(--blue);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font); font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4 { margin: 0; font-weight: 750; line-height: 1.08; letter-spacing: -.03em; text-wrap: balance; }
p { margin: 0 0 1em; text-wrap: pretty; }
em { font-style: normal; color: var(--blue); }
code { font-size: .9em; background: rgba(11,21,48,.07); padding: .1em .35em; border-radius: 4px; }
ul, ol { margin: 0; padding: 0; list-style: none; }
dl, dd { margin: 0; }
[hidden] { display: none !important; }

:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 8px; }
.scrolly :focus-visible, .final :focus-visible, .perks :focus-visible, .site-footer :focus-visible, .cat-bundle :focus-visible, .summary :focus-visible { outline-color: #9DB8FF; }

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 999px; font-weight: 600; }
.skip-link:focus { top: 12px; }
.todo { background: var(--todo-bg); color: #4A3B00; padding: .05em .45em; border-radius: 5px; font-size: .88em; font-weight: 600; }
.todo::before { content: '⚑ '; }

.tag { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 6px 12px; border-radius: 999px; background: var(--bg-blue); color: var(--blue-deep); font-size: 13.5px; font-weight: 700; letter-spacing: .01em; }
.tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); }
.tag--dark { background: rgba(255,255,255,.1); color: #C9D8FF; }
.tag--dark::before { background: #6F97FF; }
.h1 { font-size: clamp(40px, 6vw, 76px); letter-spacing: -.04em; }
.h2 { font-size: clamp(32px, 4.2vw, 54px); letter-spacing: -.035em; }
.h3 { font-size: clamp(21px, 2vw, 26px); }
.lead { font-size: clamp(17.5px, 1.5vw, 20px); color: var(--muted); max-width: 38em; }
.fine { font-size: 14px; color: var(--muted); }

/* ---------- Tlačítka ---------- */
.btn {
  --bg: var(--ink); --fg: #fff; --bd: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px;
  background: var(--bg); color: var(--fg); border: 1.5px solid var(--bd);
  border-radius: 999px; font-weight: 650; font-size: 16px; line-height: 1.1; text-decoration: none;
  transition: transform .18s var(--ease), background-color .2s, color .2s, border-color .2s, box-shadow .2s;
  white-space: nowrap; -webkit-tap-highlight-color: transparent;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: scale(.97); transition-duration: .06s; }
.btn[disabled] { opacity: .7; cursor: progress; transform: none; }
.btn-arrow { transition: transform .25s var(--ease); }
.btn:hover .btn-arrow { transform: translateX(4px); }
.btn--lg { min-height: 56px; padding: 16px 28px; font-size: 17px; }
.btn--sm { min-height: 40px; padding: 8px 16px; font-size: 15px; }
.btn--block { width: 100%; }
.btn--primary { --bg: var(--blue); --fg: #fff; box-shadow: 0 8px 20px -8px rgba(31,91,255,.6); }
.btn--primary:hover { --bg: var(--blue-hover); box-shadow: 0 12px 24px -8px rgba(31,91,255,.6); }
.btn--dark { --bg: var(--ink); --fg: #fff; }
.btn--dark:hover { --bg: #1C2747; }
.btn--soft { --bg: var(--bg-blue); --fg: var(--blue-deep); }
.btn--soft:hover { --bg: var(--blue-soft); }
.btn--white { --bg: #fff; --fg: var(--ink); }
.btn--outline { --bg: #fff; --fg: var(--ink); --bd: var(--line-strong); }
.btn--outline:hover { --bd: var(--ink); }
.btn--outline-light { --bg: transparent; --fg: #fff; --bd: rgba(255,255,255,.35); }
.btn--outline-light:hover { --bd: #fff; }
.btn.is-added { --bg: var(--ok); --fg: #fff; box-shadow: none; }
.btn.is-added .btn-label::before { content: '✓ '; }
.btn.is-loading .btn-arrow { animation: nudge .8s var(--ease) infinite alternate; }
@keyframes nudge { to { transform: translateX(6px); } }

.pill { display: inline-block; background: var(--blue); color: #fff; font-weight: 700; font-size: 13px; padding: 3px 10px; border-radius: 999px; vertical-align: middle; }
.pill--sm { font-size: 11.5px; padding: 2px 8px; }

/* ---------- Hlavička ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.85); backdrop-filter: saturate(1.6) blur(14px); -webkit-backdrop-filter: saturate(1.6) blur(14px); border-bottom: 1px solid transparent; transition: border-color .25s; }
.lite .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; }
.site-header.is-scrolled { border-bottom-color: var(--line); }
.site-header__in { height: var(--header-h); display: flex; align-items: center; gap: 24px; }
/* Logo: lineární plácnutí + nápis dejpět */
.logo { --lg-l: var(--ink); --lg-r: var(--blue); --lg-b: var(--blue); --lg-bg: #fff; display: inline-flex; align-items: center; gap: 11px; text-decoration: none; font-size: 25px; font-weight: 800; letter-spacing: -.045em; line-height: 1; color: var(--ink); }
.logo b { font-weight: 800; color: var(--blue); }
.logo__mark { width: 26px; height: 35px; flex: none; overflow: visible; }
.logo__mark * { fill: none; stroke-width: 12; stroke-linecap: round; }
.logo__mark .lg-b { stroke: var(--lg-b); }
.logo__mark .lg-r { stroke: var(--lg-r); }
.logo__mark .lg-l { stroke: var(--lg-l); fill: var(--lg-bg); }
.logo__word { padding-bottom: 2px; }
.logo:hover .lg-b { animation: lg-burst .6s var(--ease); }
@keyframes lg-burst { 0% { opacity: 0; transform: translateY(14px); } 100% { opacity: 1; transform: none; } }
.logo--dark { --lg-l: #FFFFFF; --lg-r: #7FA4FF; --lg-b: #7FA4FF; --lg-bg: #060D20; color: #fff; margin-bottom: 26px; font-size: 30px; }
.logo--dark b { color: #7FA4FF; }
.logo--dark .logo__mark { width: 31px; height: 42px; }
.nav { margin-left: auto; }
.nav__list { display: flex; gap: 2px; }
.nav__list a { display: block; padding: 8px 14px; border-radius: 999px; text-decoration: none; font-weight: 550; font-size: 15px; color: var(--ink-2); }
.nav__list a:hover, .nav__list a[aria-current="page"] { background: var(--bg-soft); color: var(--ink); }
.nav__toggle { display: none; }
.cart-link { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px 8px 12px; border-radius: 999px; background: var(--ink); color: #fff; text-decoration: none; font-weight: 600; font-size: 15px; }
.cart-link svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cart-link__count { min-width: 22px; height: 22px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--blue); color: #fff; font-size: 13px; font-weight: 800; }
.cart-link__count.is-bump { animation: bump .5s var(--ease-back); }
@keyframes bump { 40% { transform: scale(1.45); } }

@media (max-width: 880px) {
  .nav { order: 3; margin-left: 0; }
  .cart-link { margin-left: auto; }
  .cart-link__label { display: none; }
  .nav__toggle { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; }
  .nav__burger, .nav__burger::before, .nav__burger::after { display: block; width: 18px; height: 2px; background: var(--ink); border-radius: 2px; transition: transform .25s var(--ease); }
  .nav__burger { position: relative; }
  .nav__burger::before, .nav__burger::after { content: ''; position: absolute; left: 0; }
  .nav__burger::before { top: -6px; } .nav__burger::after { top: 6px; }
  .nav-open .nav__burger { background: transparent; }
  .nav-open .nav__burger::before { transform: translateY(6px) rotate(45deg); }
  .nav-open .nav__burger::after { transform: translateY(-6px) rotate(-45deg); }
  .nav__list { position: fixed; inset: var(--header-h) 0 auto 0; flex-direction: column; gap: 0; padding: 8px var(--gutter) 24px; background: #fff; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-lg); transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .2s, transform .25s var(--ease), visibility 0s .25s; }
  .nav-open .nav__list { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
  .nav__list a { font-size: 22px; font-weight: 700; padding: 14px 4px; border-radius: 0; border-bottom: 1px solid var(--line); }
}

/* =========================================================
   iPhone (model ve stylu iPhonu 17)
   ========================================================= */
.iphone { --pw: 230px; position: relative; width: var(--pw); aspect-ratio: 71.5 / 149.6; font-size: calc(var(--pw) / 18.5); flex: none; }
.iphone--sm { --pw: 170px; }
.iphone__body {
  position: absolute; inset: 0; border-radius: calc(var(--pw) * .178); padding: calc(var(--pw) * .013);
  background: linear-gradient(140deg, #D9E1EC 0%, #9AA8BC 18%, #EEF2F7 38%, #A3B0C3 62%, #E3E9F1 80%, #8C99AE 100%);
  box-shadow: 0 50px 70px -35px rgba(10,22,51,.55), 0 18px 30px -18px rgba(10,22,51,.35), inset 0 0 0 1px rgba(255,255,255,.5);
}
.iphone__display { position: relative; height: 100%; border-radius: calc(var(--pw) * .165); background: #05070C; overflow: hidden; box-shadow: inset 0 0 0 calc(var(--pw) * .03) #05070C; }
.iphone__lock, .iphone__app { position: absolute; inset: calc(var(--pw) * .03); border-radius: calc(var(--pw) * .137); overflow: hidden; }
.iphone__app { opacity: 0; transform: scale(.96); transition: opacity .45s var(--ease), transform .5s var(--ease); background: #fff; }
.iphone__island { position: absolute; top: calc(var(--pw) * .058); left: 50%; width: 31%; height: calc(var(--pw) * .088); transform: translateX(-50%); border-radius: 999px; background: #000; z-index: 4; }
.iphone__island::after { content: ''; position: absolute; right: 16%; top: 50%; width: calc(var(--pw) * .032); aspect-ratio: 1; border-radius: 50%; transform: translateY(-50%); background: radial-gradient(circle at 35% 35%, #2A3550, #0A0D16 60%); }
.iphone__glare { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 5; background: linear-gradient(125deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 28%, rgba(255,255,255,0) 70%, rgba(255,255,255,.05) 100%); }
.iphone__btn { position: absolute; width: calc(var(--pw) * .014); background: linear-gradient(90deg, #7E8BA0, #CDD5E1 50%, #8996AA); border-radius: 2px; }
.iphone__btn--action { left: calc(var(--pw) * -.01); top: 18%; height: 4.5%; }
.iphone__btn--vol-up { left: calc(var(--pw) * -.01); top: 26%; height: 8.5%; }
.iphone__btn--vol-down { left: calc(var(--pw) * -.01); top: 37%; height: 8.5%; }
.iphone__btn--power { right: calc(var(--pw) * -.01); top: 29%; height: 13%; }
.iphone__btn--camera { right: calc(var(--pw) * -.006); top: 58%; height: 7%; width: calc(var(--pw) * .01); background: linear-gradient(90deg, #5D6A80, #9AA6B8); }

/* iOS stavový řádek a zamčená obrazovka */
.ios-status { position: absolute; top: 0; left: 0; right: 0; height: 2.6em; display: flex; justify-content: space-between; align-items: center; padding: .55em 1.45em 0 1.65em; font-family: var(--ios); font-size: .64em; font-weight: 600; z-index: 3; letter-spacing: -.01em; }
.ios-status__icons { display: flex; gap: .35em; align-items: center; }
.ios-status__icons svg { height: .8em; width: auto; fill: currentColor; }
.ios-status__icons svg:last-child { height: .9em; }
.ios-lock { position: relative; height: 100%; color: #fff; font-family: var(--ios); text-align: center;
  background:
    radial-gradient(90% 55% at 15% 85%, #4E8BFF 0%, transparent 60%),
    radial-gradient(80% 60% at 90% 20%, #7AA7FF 0%, transparent 55%),
    linear-gradient(170deg, #0E2A7A 0%, #1F5BFF 55%, #8DB4FF 100%); }
.ios-lock .ios-status { color: #fff; }
.ios-lock__date { margin: 0; padding-top: 4.1em; font-size: .78em; font-weight: 600; opacity: .9; }
.ios-lock__time { margin: -.05em 0 0; font-size: 3.9em; font-weight: 700; letter-spacing: -.03em; line-height: 1; }
.ios-lock__nfc { position: absolute; left: 50%; bottom: 3.2em; transform: translateX(-50%); display: flex; align-items: center; gap: .5em; padding: .55em .95em; border-radius: 999px; background: rgba(255,255,255,.2); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); font-size: .62em; font-weight: 600; white-space: nowrap; }
.ios-lock__ring { width: 1.2em; height: 1.2em; border-radius: 50%; border: .18em solid #fff; }
.ios-home { position: absolute; left: 50%; bottom: .45em; width: 36%; height: .22em; border-radius: 999px; background: #fff; transform: translateX(-50%); z-index: 3; }
.ios-home--dark { background: #111; }

/* Obrazovky aplikací (ilustrační) */
.app { position: relative; height: 100%; background: #fff; color: #111; font-family: var(--ios); line-height: 1.25; overflow: hidden; }
.app .ios-status { color: #111; }
.app-title { margin: 0; font-size: 1em; font-weight: 700; letter-spacing: -.01em; }
.app-title--sm { font-size: .82em; margin-top: .5em; }
.app-sub { margin: .15em 0 0; font-size: .62em; color: #6B7280; }
.app-map { position: absolute; inset: 0 0 45% 0; background: #E9EEF2; overflow: hidden; }
.app-map__road { position: absolute; background: #fff; box-shadow: 0 0 0 .08em #D9DFE5; }
.app-map__road--a { left: -10%; right: -10%; top: 46%; height: .55em; transform: rotate(-12deg); }
.app-map__road--b { top: -10%; bottom: -10%; left: 58%; width: .5em; transform: rotate(8deg); }
.app-map__road--c { left: -10%; right: 30%; top: 74%; height: .35em; transform: rotate(18deg); }
.app-map__park { position: absolute; left: 8%; top: 12%; width: 34%; height: 26%; border-radius: .6em; background: #CFE8D2; }
.app-map__pin { position: absolute; left: 50%; top: 48%; width: 1.5em; height: 1.5em; border-radius: 50% 50% 50% 0; background: var(--pf); transform: translate(-50%, -100%) rotate(-45deg); box-shadow: 0 .2em .4em rgba(0,0,0,.25); }
.app-map__pin::after { content: ''; position: absolute; inset: 32%; border-radius: 50%; background: #fff; }
.app-sheet { position: absolute; left: 0; right: 0; bottom: 0; top: 47%; background: #fff; border-radius: 1em 1em 0 0; padding: .55em 1.1em 1em; box-shadow: 0 -.3em 1em rgba(0,0,0,.08); }
.app-sheet__grab { display: block; width: 2.2em; height: .22em; border-radius: 999px; background: #D5D9DF; margin: 0 auto .6em; }
.app-chips { display: flex; gap: .35em; margin-top: .6em; }
.app-chips span { padding: .38em .7em; border-radius: 999px; font-size: .56em; font-weight: 600; background: #EEF2F7; color: #1F2937; }
.app-chips .is-primary { background: var(--pf); color: #fff; }
.app-review { margin-top: .7em; padding: .6em .7em; border-radius: .7em; border: .08em solid #E5E7EB; }
.app-review p { margin: 0 0 .35em; font-size: .6em; font-weight: 600; }
.app-stars { display: flex; gap: .3em; }
.app-stars i { width: 1.25em; height: 1.25em; background: #CBD2DC; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.app-lines { display: grid; gap: .35em; margin-top: .7em; }
.app-lines i, .app-fb__post i { display: block; height: .42em; border-radius: 4px; background: #EEF0F3; }
.app-lines i:nth-child(2), .app-fb__post i:nth-child(2) { width: 75%; }
.app-fb__post i:nth-child(3) { width: 55%; }

.app-ig { padding: 2.7em 1em 0; }
.app-ig__user { margin: 0 0 .6em; font-size: .78em; font-weight: 700; }
.app-ig__head { display: flex; align-items: center; gap: .8em; }
.app-ig__avatar { width: 3.3em; height: 3.3em; border-radius: 50%; padding: .17em; background: conic-gradient(from 200deg, #FEDA75, #FA7E1E, #D62976, #962FBF, #4F5BD5, #FEDA75); flex: none; }
.app-ig__avatar span { display: block; height: 100%; border-radius: 50%; border: .16em solid #fff; background: url(/img/kavarna/latte.jpg) center / 170% no-repeat #6B4A33; }
.app-ig__counts { display: flex; flex: 1; justify-content: space-between; text-align: center; }
.app-ig__counts span { display: grid; gap: .25em; font-size: .5em; color: #374151; justify-items: center; }
.app-ig__counts i { width: 2em; height: .9em; border-radius: 3px; background: #E5E7EB; }
.app-ig__btns, .app-fb__btns { display: flex; gap: .35em; margin-top: .7em; }
.app-ig__btns span, .app-fb__btns span { flex: 1; text-align: center; padding: .5em 0; border-radius: .55em; font-size: .6em; font-weight: 700; background: #EFEFEF; }
.app-ig__btns .is-primary { background: #0095F6; color: #fff; }
.app-ig__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .12em; margin: .8em -1em 0; }
.app-ig__grid i { aspect-ratio: 1; background-color: #C9A27A; }
.app-fb { padding: 0 1em; }
.app-fb__cover { height: 6.6em; margin: 0 -1em; background-color: #8A5A38; }
.app-fb__avatar { display: block; width: 3.4em; height: 3.4em; margin-top: -1.9em; border-radius: 50%; border: .2em solid #fff; background: url(/img/kavarna/latte.jpg) center / 170% no-repeat #6B4A33; }
.app-fb .app-title { margin-top: .4em; }
.app-fb__btns .is-primary { background: #0866FF; color: #fff; }
.app-fb__tabs { display: flex; gap: .9em; margin: .8em 0 .6em; border-bottom: .08em solid #E5E7EB; font-size: .58em; font-weight: 600; color: #6B7280; }
.app-fb__tabs span { padding-bottom: .5em; }
.app-fb__tabs .is-on { color: #0866FF; box-shadow: inset 0 -.18em 0 #0866FF; }
.app-fb__post { display: grid; gap: .35em; }

/* Google Mapy – profil podniku */
.gm { color: #202124; }
.gm .ios-status { color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.gm-photos { display: grid; grid-template-columns: 1.6fr 1fr; grid-template-rows: 1fr 1fr; gap: .12em; height: 9.4em; }
.gm-ph { display: block; }
/* Ilustrační fotky kavárny (Unsplash) */
.ph-interier { background: url(/img/kavarna/interier.jpg) center 35% / cover no-repeat #6B4A33; }
.ph-pult { background: url(/img/kavarna/pult.jpg) center 60% / cover no-repeat #C9A27A; }
.ph-latte { background: url(/img/kavarna/latte.jpg) center / cover no-repeat #4A2E1C; }
.ph-croissanty { background: url(/img/kavarna/croissanty.jpg) center / cover no-repeat #B07A3E; }
.ph-interier.ig-6 { background-position: center 80%; }
.ph-latte.ig-4 { background-size: 260%; }
.ph-croissanty.ig-5 { background-position: 20% 50%; }
.ph-pult.ig-7 { background-position: 85% 50%; }
.gm-photos .ph-interier { grid-row: span 2; }
.gm-top { position: absolute; top: 2.5em; left: .7em; right: .7em; display: flex; justify-content: space-between; }
.gm-round { display: grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: 50%; background: #fff; color: #3C4043; box-shadow: 0 .1em .3em rgba(0,0,0,.25); }
.gm-round svg { width: 58%; height: 58%; }
.gm-body { position: relative; margin-top: -.6em; padding: .8em 1em 0; background: #fff; border-radius: .7em .7em 0 0; }
.gm-name { margin: 0; font-size: 1.12em; font-weight: 500; letter-spacing: -.01em; font-family: 'Google Sans', var(--ios); }
.gm-meta { margin: .2em 0 0; font-size: .6em; color: #5F6368; }
.gm-open { margin: .15em 0 0; font-size: .6em; color: #5F6368; }
.gm-open b { color: #188038; font-weight: 600; }
.gm-actions { display: flex; justify-content: space-between; margin: .75em -.2em 0; }
.gm-act { display: grid; justify-items: center; gap: .3em; font-size: .5em; font-weight: 600; color: #1A73E8; flex: 1; }
.gm-act i { display: grid; place-items: center; width: 3.9em; height: 3.9em; border-radius: 50%; border: .12em solid #DADCE0; color: #1A73E8; }
.gm-act svg { width: 46%; height: 46%; }
.gm-act.is-primary i { background: #1A73E8; border-color: #1A73E8; color: #fff; }
.gm-act.is-primary svg path:first-child { fill: #fff; }
.gm-act.is-primary svg path:last-child { stroke: #1A73E8; }
.gm-tabs { display: flex; margin: .8em -1em 0; border-bottom: .07em solid #E8EAED; font-size: .58em; font-weight: 600; color: #5F6368; }
.gm-tabs span { flex: 1; text-align: center; padding: .7em 0 .65em; }
.gm-tabs .is-on { color: #1A73E8; box-shadow: inset 0 -.25em 0 #1A73E8; }
.gm-rate { padding: .8em 0 0; }
.gm-rate__h { margin: 0 0 .55em; font-size: .7em; font-weight: 600; }
.gm-rate__row { display: flex; align-items: center; gap: .6em; }
.gm-avatar { display: grid; place-items: center; width: 1.9em; height: 1.9em; border-radius: 50%; background: #7E57C2; color: #fff; font-size: .7em; font-weight: 600; flex: none; }
.gm-stars { display: flex; gap: .2em; color: #80868B; }
.gm-stars svg { width: 1.45em; height: 1.45em; }
.gm-sec { margin: 1em 0 .45em; font-size: .7em; font-weight: 600; }
.gm-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: .25em; height: 3.6em; }
.gm-strip .gm-ph { grid-row: auto; border-radius: .45em; }
.gm-info { margin-top: .7em; }
.gm-info li { display: flex; align-items: center; gap: .9em; padding: .55em 0; border-top: .07em solid #E8EAED; font-size: .6em; color: #3C4043; }
.gm-info b { color: #188038; font-weight: 600; }
.gm-i { width: 1.5em; height: 1.5em; flex: none; color: #1A73E8; }
.gm-i svg { width: 100%; height: 100%; }

/* ---------- Fotky plaket ---------- */
.plaque-img { width: 100%; height: auto; filter: drop-shadow(0 28px 28px rgba(11,21,48,.16)) drop-shadow(0 6px 8px rgba(11,21,48,.08)); user-select: none; -webkit-user-drag: none; }
.lite .plaque-img { filter: drop-shadow(0 16px 18px rgba(11,21,48,.14)); }

.tilt { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .6s var(--ease); will-change: transform; }
.tilt.is-tilting { transition: transform .1s linear; }

.thumb { --s: 48px; display: inline-grid; place-items: center; width: var(--s); height: var(--s); border-radius: 12px; background: var(--bg-soft); border: 1px solid var(--line); flex: none; overflow: hidden; }
.thumb img { width: 88%; height: 88%; object-fit: contain; }
.thumb--bundle { width: auto; min-width: calc(var(--s) * 1.5); display: inline-flex; padding: 0 4px; }
.thumb--bundle img { width: calc(var(--s) * .62); height: calc(var(--s) * .62); margin-left: calc(var(--s) * -.2); }
.thumb--bundle img:first-child { margin-left: 0; }

.bundle-stack { position: relative; display: grid; place-items: center; padding: 0 16%; }
.bundle-stack__item { grid-area: 1 / 1; width: 100%; transition: transform .7s var(--ease); }
.bundle-stack__item--0 { transform: translateX(-42%) rotate(-7deg) scale(.82); }
.bundle-stack__item--1 { z-index: 2; }
.bundle-stack__item--2 { transform: translateX(42%) rotate(7deg) scale(.82); }

/* ---------- Úvod ---------- */
.hero { position: relative; padding: clamp(28px, 5vw, 64px) 0 clamp(40px, 5vw, 64px); overflow-x: clip;
  background: linear-gradient(180deg, #fff 0%, var(--bg-soft) 100%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; }
.hero__title { font-size: clamp(38px, 5vw, 66px); line-height: 1.04; letter-spacing: -.045em; margin-bottom: 24px; }
.hero__lead b { color: var(--ink); font-weight: 700; white-space: nowrap; }
.hero__title span { display: block; color: var(--blue); }
.hero__lead { font-size: clamp(17.5px, 1.45vw, 20px); max-width: 32em; color: var(--ink-2); margin-bottom: 30px; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__facts { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 30px; font-size: 15px; color: var(--muted); }
.hero__facts li { display: flex; align-items: center; gap: 8px; }
.hero__facts li::before { content: '✓'; color: var(--blue); font-weight: 800; }
.hero__facts b { color: var(--ink); }
@media (prefers-reduced-motion: no-preference) {
  .hero__copy > * { animation: fade .7s var(--ease) both; }
  .hero__copy > :nth-child(2) { animation-delay: .05s; }
  .hero__copy > :nth-child(3) { animation-delay: .12s; }
  .hero__copy > :nth-child(4) { animation-delay: .18s; }
  .hero__copy > :nth-child(5) { animation-delay: .24s; }
}
@keyframes fade { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.hero__stage { position: relative; margin: 0; aspect-ratio: 1 / 1; container-type: inline-size; }
.hero__glow { position: absolute; left: 6%; top: 12%; width: 84%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(31,91,255,.16) 0%, rgba(31,91,255,0) 65%); }
.stage-plaque { position: absolute; left: 0; bottom: 3%; width: 66%; z-index: 1; }
.stage-pulse { position: absolute; left: 32%; top: 62%; width: 52%; aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none; z-index: 4; }
.stage-pulse span { position: absolute; inset: 0; border-radius: 50%; border: 3px solid var(--blue); opacity: 0; }
.stage-phone { position: absolute; right: 4%; top: 0; z-index: 3; transform: rotate(8deg); transform-origin: 50% 70%; }
.stage-phone .iphone { --pw: 36cqw; }
.stage-phone .iphone__app { opacity: 1; transform: none; }
.stage-cap { position: absolute; right: 0; bottom: 0; z-index: 4; }
.replay { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 650; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line-strong); background: #fff; box-shadow: var(--shadow); }
.replay svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; transition: transform .6s var(--ease); }
.replay:hover { border-color: var(--ink); }
.replay:hover svg { transform: rotate(-200deg); }

.hero__stage.is-playing .stage-phone { animation: hero-phone 3.8s var(--ease) both; }
.hero__stage.is-playing .stage-phone .iphone__app { animation: hero-app 3.8s var(--ease) both; }
.hero__stage.is-playing .stage-pulse span { animation: pulse 1.3s 1.3s ease-out both; }
.hero__stage.is-playing .stage-pulse span:nth-child(2) { animation-delay: 1.5s; }
.hero__stage.is-playing .stage-pulse span:nth-child(3) { animation-delay: 1.7s; }
@keyframes hero-phone {
  0%   { transform: translate(8cqw, -10cqw) rotate(18deg); opacity: 0; }
  10%  { opacity: 1; }
  34%  { transform: translate(-44cqw, 22cqw) rotate(-8deg); }
  50%  { transform: translate(-44cqw, 23cqw) rotate(-8deg); }
  76%, 100% { transform: rotate(8deg); }
}
@keyframes hero-app { 0%, 46% { opacity: 0; transform: scale(.96); } 60%, 100% { opacity: 1; transform: none; } }
@keyframes pulse { 0% { opacity: .9; transform: scale(.35); } 100% { opacity: 0; transform: scale(1.8); } }

.hero__strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: clamp(28px, 4vw, 48px); }
.hero__strip a { display: flex; align-items: center; gap: 12px; padding: 10px 14px 10px 10px; border-radius: var(--r); background: #fff; border: 1px solid var(--line); text-decoration: none; font-weight: 650; font-size: 15px; transition: border-color .2s, box-shadow .2s, transform .2s var(--ease); }
.hero__strip a:hover { border-color: var(--blue); box-shadow: var(--shadow); transform: translateY(-2px); }
.hero__strip span { width: 54px; flex: none; }
.hero__strip .plaque-img { filter: drop-shadow(0 6px 6px rgba(11,21,48,.14)); }

/* ---------- Scroll scéna ---------- */
.scrolly { background: var(--navy); color: #fff; padding: clamp(64px, 9vw, 120px) 0; }
.scrolly__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.scrolly__stage { position: sticky; top: calc(var(--header-h) + 4vh); height: min(80vh, 660px); order: 2; }
.scrolly__frame { position: relative; height: 100%; border-radius: var(--r-xl); background: radial-gradient(80% 60% at 50% 30%, #1B3A8C 0%, var(--navy-2) 70%); overflow: hidden; container-type: size; }
.sc-counter { position: absolute; left: 0; right: 0; bottom: 0; height: 24%; background: linear-gradient(180deg, #E9EEF6, #CBD5E5); }
.sc-plaque { position: absolute; left: 50%; bottom: 13%; width: min(52cqw, 44cqh); transform: translate(-50%, 20%) scale(.8); opacity: 0; transition: transform .8s var(--ease-back), opacity .5s; }
.sc-hand { position: absolute; left: 50%; top: 3%; transform: translate(-50%, -130%) rotate(14deg); transition: transform 1s var(--ease); z-index: 2; }
.sc-hand .iphone { --pw: min(34cqw, 24cqh); }
.sc-ping { position: absolute; left: 50%; bottom: 22%; width: 26cqw; aspect-ratio: 1; transform: translateX(-50%); pointer-events: none; }
.sc-ping span { position: absolute; inset: 0; border-radius: 50%; border: 3px solid #7FA4FF; opacity: 0; }
.sc-progress { position: absolute; left: 22px; right: 22px; top: 20px; height: 3px; background: rgba(255,255,255,.14); border-radius: 3px; overflow: hidden; z-index: 3; }
.sc-progress i { display: block; height: 100%; background: #7FA4FF; transform-origin: 0 50%; transform: scaleX(0); }
.scrolly[data-step] .sc-plaque { opacity: 1; transform: translate(-50%, 0) scale(1); }
.scrolly[data-step="2"] .sc-hand { transform: translate(-56%, 26%) rotate(-10deg); }
.scrolly[data-step="2"] .sc-ping span { animation: pulse 1.4s ease-out 2 both; }
.scrolly[data-step="2"] .sc-ping span:nth-child(2) { animation-delay: .35s; }
.scrolly[data-step="3"] .sc-hand { transform: translate(2%, 2%) rotate(5deg); }
.scrolly[data-step="3"] .sc-plaque { transform: translate(-112%, 4%) scale(.82); }
.scrolly[data-step="3"] .iphone__app { opacity: 1; transform: none; }
.scrolly__text { order: 1; }
.scrolly__text .h2 { margin-bottom: 6vh; }
.sc-step { min-height: 52vh; padding: 24px 0 24px 28px; border-left: 2px solid var(--line-light); opacity: .4; transition: opacity .4s, border-color .4s; }
.sc-step.is-active { opacity: 1; border-left-color: #7FA4FF; }
.sc-step__n { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.1); font-weight: 800; font-size: 15px; }
.sc-step.is-active .sc-step__n { background: var(--blue); }
.sc-step h3 { font-size: clamp(26px, 2.8vw, 38px); margin: 14px 0 12px; }
.sc-step p { color: rgba(255,255,255,.75); max-width: 28em; font-size: 18px; }
.sc-step:last-child { min-height: 40vh; }

/* ---------- Demo ---------- */
.demo { padding: clamp(72px, 10vw, 130px) 0; }
.demo__head { max-width: 640px; margin-bottom: 28px; }
.demo__head .h2 { margin-bottom: 14px; }
.demo__tabs { display: inline-flex; gap: 4px; padding: 5px; border-radius: 999px; background: var(--bg-soft); border: 1px solid var(--line); margin-bottom: 20px; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.demo__tabs button { flex: none; padding: 10px 20px; border-radius: 999px; border: 0; background: transparent; font-weight: 650; font-size: 15.5px; color: var(--ink-2); transition: background .2s, color .2s, box-shadow .2s; }
.demo__tabs button:hover { color: var(--ink); background: rgba(11,21,48,.04); }
.demo__tabs button[aria-selected="true"] { background: #fff; color: var(--ink); box-shadow: var(--shadow); }
.demo__panel { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 64px); align-items: center; padding: clamp(24px, 4vw, 56px); border-radius: var(--r-xl); background: linear-gradient(160deg, var(--bg-soft), #fff 70%); border: 1px solid var(--line); position: relative; overflow: hidden; }
.demo__panel::before { content: ''; position: absolute; left: -10%; top: -20%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--pf) 18%, transparent), transparent 65%); transition: background .5s; pointer-events: none; }
.demo__visual { position: relative; display: flex; align-items: center; justify-content: center; gap: clamp(8px, 2vw, 28px); }
.demo__plaque { width: 54%; max-width: 300px; transition: transform .5s var(--ease), opacity .25s; }
.demo__phone .iphone { --pw: clamp(140px, 15vw, 210px); }
.demo__phone .iphone__app { opacity: 1; transform: none; transition: opacity .25s, transform .4s var(--ease); }
.demo.is-switching .demo__plaque { opacity: 0; transform: translateY(12px) scale(.95); }
.demo.is-switching .demo__phone .iphone__app { opacity: 0; transform: scale(.97); }
.demo.is-switching .demo__explain > * { opacity: 0; transform: translateY(6px); }
.demo__explain > * { transition: opacity .25s, transform .3s var(--ease); }
.demo__kicker { font-size: 13.5px; font-weight: 700; color: var(--blue-deep); margin-bottom: 8px; }
.demo__result { font-size: clamp(25px, 2.4vw, 34px); margin-bottom: 12px; }
.demo__explain p { color: var(--ink-2); }
.demo__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 18px 0 22px; }
.demo__price span { font-size: 30px; font-weight: 800; letter-spacing: -.03em; }
.demo__price small { color: var(--muted); font-size: 14px; }
.demo__note { margin: 14px 0 0; font-size: 13px; color: var(--muted) !important; }

/* ---------- Cíle ---------- */
.goals { padding: 0 0 clamp(72px, 10vw, 130px); }
.goals__title { margin-bottom: 32px; }
.goals__grid { display: grid; grid-template-columns: 1.2fr 1fr; grid-template-rows: auto auto; gap: 16px; }
.goal { position: relative; display: flex; flex-direction: column; gap: 8px; padding: clamp(24px, 3vw, 36px); border-radius: var(--r-xl); text-decoration: none; overflow: hidden; transition: transform .35s var(--ease), box-shadow .3s; border: 1px solid var(--line); background: var(--bg-soft); min-height: 230px; }
.goal:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.goal__imgs { display: flex; margin-bottom: 8px; }
.goal__imgs img { width: 110px; margin-right: -26px; }
.goal__imgs img:nth-child(2) { transform: rotate(6deg) translateY(4px); }
.goal__imgs img:nth-child(3) { transform: rotate(12deg) translateY(8px); }
.goal--reviews { grid-row: span 2; background: linear-gradient(170deg, #fff 0%, var(--bg-blue) 100%); }
.goal--reviews .goal__imgs { margin: 4px 0 auto; padding-bottom: 20px; }
.goal--reviews .goal__imgs img { width: clamp(150px, 17vw, 230px); margin-right: -56px; }
.goal--social { background: var(--navy); color: #fff; border-color: var(--navy); }
.goal--bundle { background: var(--blue); color: #fff; border-color: var(--blue); }
.goal__h { font-size: clamp(30px, 3.2vw, 44px); font-weight: 800; letter-spacing: -.035em; line-height: 1.05; }
.goal__p { max-width: 26em; }
.goal--social .goal__p, .goal--bundle .goal__p { color: rgba(255,255,255,.82); }
.goal--reviews .goal__p { color: var(--ink-2); }
.goal__go { margin-top: auto; padding-top: 8px; font-weight: 700; display: inline-flex; gap: 8px; }
.goal__go span { transition: transform .25s var(--ease); }
.goal:hover .goal__go span { transform: translateX(6px); }
.goal--reviews .goal__go { color: var(--blue); }
.goal__badge { position: absolute; right: 20px; top: 20px; background: #fff; color: var(--blue-deep); font-size: 12.5px; font-weight: 800; padding: 5px 11px; border-radius: 999px; }

/* ---------- Ceník ---------- */
.offer { padding: clamp(64px, 9vw, 120px) 0; background: var(--bg-soft); }
.offer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: start; }
.offer__main .h2 { margin-bottom: 28px; }
.menu { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 6px 22px; }
.menu__row { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.menu__row:first-child { border-top: 0; }
.menu__name { display: flex; align-items: center; gap: 14px; text-decoration: none; font-size: 18px; font-weight: 700; letter-spacing: -.015em; line-height: 1.2; }
.menu__name .thumb { --s: 56px; }
.menu__name small { display: block; font-size: 14px; font-weight: 450; letter-spacing: 0; color: var(--muted); margin-top: 2px; }
.menu__name:hover > span { color: var(--blue); }
.menu__dots { display: none; }
.menu__price { text-align: right; font-size: 21px; font-weight: 800; line-height: 1.1; white-space: nowrap; letter-spacing: -.02em; }
.menu__price small { display: block; font-size: 12.5px; font-weight: 600; color: var(--blue-deep); letter-spacing: 0; }
.menu__row--bundle { margin: 6px -14px; padding: 14px; border-radius: var(--r); background: var(--bg-blue); border-top: 0; }
.offer__note { margin: 16px 0 0; color: var(--muted); font-size: 15px; }
.pricebox { position: sticky; top: calc(var(--header-h) + 20px); background: #fff; border-radius: var(--r-lg); padding: 28px; box-shadow: var(--shadow-lg); border: 1px solid var(--line); }
.pricebox__h { font-size: 24px; }
.pricebox__sub { color: var(--muted); font-size: 14px; margin: 4px 0 14px; }
.pricebox__table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pricebox__table th, .pricebox__table td { padding: 12px 0; border-top: 1px solid var(--line); text-align: left; vertical-align: top; }
.pricebox__table th { font-weight: 700; padding-right: 10px; white-space: nowrap; }
.pricebox__table td { color: var(--muted); font-size: 13.5px; }
.pricebox__table td.num { text-align: right; color: var(--ink); font-size: 17px; font-weight: 800; white-space: nowrap; padding-left: 10px; }
.pricebox__hl th, .pricebox__hl td.num { color: var(--blue); }
.pricebox__save { margin: 14px 0 0; padding: 12px 14px; background: var(--bg-blue); color: var(--blue-deep); border-radius: var(--r-sm); font-size: 14.5px; }

/* ---------- Ceník: tři karty ---------- */
.offer__head { text-align: center; max-width: 720px; margin: 0 auto 40px; }
.offer__head .tag { margin-left: auto; margin-right: auto; }
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: stretch; max-width: 1040px; margin: 0 auto; }
.plan { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px 24px 26px; border-radius: var(--r-xl); background: #fff; border: 1px solid var(--line); transition: transform .3s var(--ease), box-shadow .3s; }
.plan:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.plan__imgs { display: flex; justify-content: center; height: 110px; margin-bottom: 18px; }
.plan__imgs img { width: 104px; height: 104px; margin: 0 -18px; }
.plan__imgs img:nth-child(1):not(:only-child) { transform: rotate(-8deg); }
.plan__imgs img:nth-child(2) { position: relative; z-index: 1; }
.plan__imgs img:nth-child(3) { transform: rotate(8deg); }
.plan__imgs img:only-child { width: 110px; height: 110px; margin: 0; }
.plan__name { font-size: 18px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 6px; }
.plan__price { font-size: 46px; font-weight: 800; letter-spacing: -.045em; line-height: 1; margin: 0 0 8px; }
.plan__price small { font-size: 18px; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.plan__note { color: var(--muted); font-size: 15px; margin: 0 0 22px; }
.plan__btn { margin-top: auto; width: 100%; }
.plan--hl { background: var(--blue); border-color: var(--blue); color: #fff; box-shadow: 0 24px 48px -20px rgba(31,91,255,.6); }
.plan--hl .plan__note, .plan--hl .plan__price small { color: rgba(255,255,255,.82); }
.plan--hl .plan__imgs img { filter: drop-shadow(0 14px 16px rgba(5,20,70,.35)); }
.plan__badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: 5px 12px; border-radius: 999px; background: var(--navy); color: #fff; font-size: 12.5px; font-weight: 800; box-shadow: 0 6px 14px -6px rgba(10,22,51,.5); }
.plan--rec { border: 2px solid var(--blue); }
.plan__badge--rec { background: var(--blue); box-shadow: 0 6px 14px -6px rgba(31,91,255,.6); }
.offer__note { text-align: center; margin: 22px 0 0; color: var(--muted); font-size: 15px; }
.js-reveal .plans.reveal .plan { opacity: 0; transform: translateY(24px); transition: opacity .5s, transform .6s var(--ease), box-shadow .3s; }
.js-reveal .plans.reveal.is-in .plan { opacity: 1; transform: none; }
.js-reveal .plans.reveal .plan:nth-child(2) { transition-delay: .08s; } .js-reveal .plans.reveal .plan:nth-child(3) { transition-delay: .16s; }
@media (max-width: 860px) { .plans { grid-template-columns: 1fr; max-width: 420px; } .plan--hl { order: -1; } }

/* ---------- Po objednávce ---------- */
.after { padding: clamp(72px, 10vw, 120px) 0 0; }
.after__head { max-width: 720px; margin-bottom: 36px; }
.after__head .h2 { margin-bottom: 14px; }
.after__steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; counter-reset: a; position: relative; }
.after__steps li { position: relative; padding: 22px; border-radius: var(--r-lg); background: var(--bg-soft); border: 1px solid var(--line); }
.after__steps li:nth-child(3) { background: var(--bg-blue); border-color: var(--blue-soft); }
.after__n { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; margin-bottom: 14px; }
.after__steps h3 { font-size: 19px; margin-bottom: 6px; }
.after__steps p { margin: 0; color: var(--muted); font-size: 15px; }
.js-reveal .after__steps.reveal li { opacity: 0; transform: translateY(20px); transition: opacity .5s, transform .6s var(--ease); }
.js-reveal .after__steps.reveal.is-in li { opacity: 1; transform: none; }
.js-reveal .after__steps.reveal li:nth-child(2) { transition-delay: .08s; } .js-reveal .after__steps.reveal li:nth-child(3) { transition-delay: .16s; } .js-reveal .after__steps.reveal li:nth-child(4) { transition-delay: .24s; }
@media (max-width: 1000px) { .after__steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .after__steps { grid-template-columns: 1fr; } }
.contact__small { font-size: 16px !important; font-weight: 600 !important; line-height: 1.5; }
.contact__who { font-size: 15px; color: var(--ink-2); margin-top: -4px; }
.summary__trust { display: grid; gap: 4px; margin: 14px 0 0; font-size: 13.5px; color: rgba(255,255,255,.85); }
.summary__trust li::before { content: '✓ '; color: #8EE0B4; font-weight: 800; }

/* Pevné tlačítko na mobilu */
.sticky-cta { display: none; }
@media (max-width: 760px) {
  .sticky-cta { display: flex; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 60; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 20px; background: rgba(11,21,48,.94); color: #fff; box-shadow: 0 16px 36px -12px rgba(11,21,48,.55); transform: translateY(140%); transition: transform .4s var(--ease); }
  .lite .sticky-cta { background: var(--navy); }
  .sticky-cta.is-on { transform: none; }
  .sticky-cta__txt { display: grid; line-height: 1.2; }
  .sticky-cta__txt b { font-size: 17px; }
  .sticky-cta__txt span { font-size: 12px; color: rgba(255,255,255,.7); }
  .sticky-cta .btn { min-height: 44px; padding: 10px 18px; box-shadow: none; }
  .page-home .toast { bottom: 84px; }
}

/* ---------- Místa ---------- */
.places { padding: clamp(72px, 10vw, 130px) 0; }
.places__grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px clamp(32px, 6vw, 96px); align-items: start; }
.places__head { position: sticky; top: calc(var(--header-h) + 24px); }
.places__list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.place { padding: 22px; border-radius: var(--r-lg); border: 1px solid var(--line); background: #fff; transition: border-color .2s, box-shadow .2s; }
.place:hover { border-color: var(--blue-soft); box-shadow: var(--shadow); }
.place__name { font-size: 22px; letter-spacing: -.02em; margin-bottom: 10px; }
.place__spot { margin: 0 0 4px; font-weight: 700; color: var(--blue-deep); font-size: 15px; display: flex; gap: 8px; align-items: center; }
.place__spot::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--blue); flex: none; }
.place__why { margin: 0; color: var(--muted); font-size: 15px; }

/* ---------- Výhody ---------- */
.perks { background: var(--blue); color: #fff; padding: clamp(72px, 10vw, 120px) 0; }
.perks__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 32px clamp(32px, 6vw, 96px); }
.perks__title { font-size: clamp(38px, 5vw, 66px); letter-spacing: -.045em; }
.perks__list { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.perk { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: var(--r-lg); padding: 20px; }
.perk dt { font-size: 19px; font-weight: 800; letter-spacing: -.02em; margin-bottom: 6px; }
.perk dd { font-size: 15px; color: rgba(255,255,255,.85); }
.perk--big { grid-column: span 3; background: #fff; color: var(--ink); border-color: #fff; padding: 26px; }
.perk--big dt { font-size: clamp(24px, 2.6vw, 32px); color: var(--blue); }
.perk--big dd { color: var(--ink-2); font-size: 16.5px; }
.perks__fine { grid-column: 2; margin: 0; font-size: 14.5px; color: rgba(255,255,255,.85); }

/* ---------- Otázky ---------- */
.faq { padding: clamp(72px, 10vw, 130px) 0; }
.faq__grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 32px clamp(32px, 6vw, 96px); align-items: start; }
.faq__grid > .h2 { position: sticky; top: calc(var(--header-h) + 24px); }
.faq__list details { border-bottom: 1px solid var(--line); }
.faq__list details:first-child { border-top: 1px solid var(--line); }
.faq__list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 0; font-size: clamp(17.5px, 1.6vw, 20px); font-weight: 700; letter-spacing: -.015em; }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::after { content: ''; flex: none; width: 34px; height: 34px; border-radius: 50%; background-color: var(--bg-blue); background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor); background-position: center; background-size: 12px 2px, 2px 12px; background-repeat: no-repeat; color: var(--blue); transition: transform .3s var(--ease), background-color .2s, color .2s; }
.faq__list details[open] summary::after { transform: rotate(45deg); background-color: var(--blue); color: #fff; }
.faq__list details p { padding: 0 54px 20px 0; color: var(--ink-2); max-width: 40em; }

/* ---------- Závěr ---------- */
.final { background: var(--navy); color: #fff; padding: clamp(72px, 10vw, 120px) 0; overflow: hidden; }
.final__in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 32px clamp(32px, 5vw, 80px); align-items: center; }
.final__visual { max-width: 480px; width: 100%; justify-self: end; }
.final__title { font-size: clamp(36px, 5vw, 64px); letter-spacing: -.045em; margin-bottom: 16px; }
.final__copy p { color: rgba(255,255,255,.75); font-size: 19px; margin-bottom: 28px; }

/* ---------- Patička ---------- */
.site-footer { background: #060D20; color: #fff; padding: 64px 0 28px; }
.site-footer__in { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--line-light); }
.site-footer__claim { font-size: clamp(24px, 2.6vw, 34px); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; margin-bottom: 22px; }
.site-footer__claim em { color: #7FA4FF; }
.site-footer__h { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 14px; font-weight: 700; }
.site-footer__nav li { margin-bottom: 8px; }
.site-footer__nav a { text-decoration: none; color: rgba(255,255,255,.88); }
.site-footer__nav a:hover { color: #fff; text-decoration: underline; }
.site-footer__legal { padding-top: 22px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; font-size: 13.5px; color: rgba(255,255,255,.55); }
.site-footer__legal p { margin: 0; }
.social-links { display: flex; flex-wrap: wrap; gap: 10px; }
.social-links__link { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 14px; font-weight: 700; line-height: 1.3; white-space: nowrap; text-decoration: none; }
.social-links__link svg { flex: 0 0 20px; }
.social-links__link:hover { color: var(--blue); border-color: var(--blue); background: var(--bg-blue); }
.site-footer .social-links { margin-top: 24px; }
.site-footer .social-links__link { border-color: rgba(255,255,255,.3); color: rgba(255,255,255,.88); }
.site-footer .social-links__link:hover { border-color: #9DB8FF; background: rgba(255,255,255,.08); color: #fff; }

/* ---------- Katalog ---------- */
.cat-hero { padding: clamp(32px, 6vw, 72px) 0 16px; background: linear-gradient(180deg, #fff, var(--bg-soft)); }
.cat-hero__in { display: grid; grid-template-columns: auto 1fr; gap: 12px 48px; align-items: end; padding-bottom: 16px; }
.cat-hero .h1 { grid-row: span 2; }
.cat-hero .lead { margin: 0; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 9px 18px; border-radius: 999px; border: 1px solid var(--line-strong); background: #fff; font-weight: 650; font-size: 15px; transition: background .2s, color .2s, border-color .2s; }
.chip:hover { border-color: var(--ink); }
.chip[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.cat-list { padding-top: 24px; padding-bottom: 64px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cat-item { display: grid; grid-template-rows: auto 1fr; border-radius: var(--r-xl); border: 1px solid var(--line); background: #fff; overflow: hidden; transition: box-shadow .3s, transform .3s var(--ease); }
.cat-item:hover { box-shadow: var(--shadow-lg); }
.cat-item__visual { display: block; padding: 8% 20% 4%; background: linear-gradient(180deg, color-mix(in srgb, var(--pf) 10%, #fff), #fff); }
.cat-item__body { padding: 8px 28px 28px; }
.cat-item__goal { font-size: 13px; font-weight: 700; color: var(--blue-deep); margin-bottom: 6px; }
.cat-item__h { font-size: clamp(24px, 2.4vw, 32px); margin-bottom: 10px; }
.cat-item__h a { text-decoration: none; }
.cat-item__h a:hover { color: var(--blue); }
.cat-item__p { color: var(--ink-2); max-width: 30em; font-size: 16px; }
.cat-item__price { display: flex; align-items: baseline; gap: 12px; margin: 14px 0 18px; }
.cat-item__price b { font-size: 30px; font-weight: 800; letter-spacing: -.03em; }
.cat-item__price span { color: var(--muted); font-size: 15px; }
.cat-item__ctas { display: flex; flex-wrap: wrap; gap: 10px; }
.cat-bundle { background: var(--navy); color: #fff; padding: clamp(64px, 9vw, 110px) 0; }
.cat-bundle__in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px clamp(32px, 6vw, 96px); align-items: center; }
.cat-bundle__visual { max-width: 540px; }
.cat-bundle__copy .h2 { margin-bottom: 16px; }
.cat-bundle__copy > p { color: rgba(255,255,255,.82); font-size: 18px; }
.cat-bundle__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin-top: 18px; }
.cat-bundle__price b { font-size: 44px; font-weight: 800; color: #fff; letter-spacing: -.03em; }
.cat-bundle__price s { color: rgba(255,255,255,.5); font-size: 20px; }
.cat-bundle__fine { font-size: 14px !important; color: rgba(255,255,255,.6) !important; margin-bottom: 24px; }

/* ---------- Detail produktu ---------- */
.crumbs { padding: 18px 0 0; font-size: 14px; color: var(--muted); }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs li + li::before { content: '/'; margin-right: 6px; opacity: .5; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.pd { padding: 20px 0 clamp(48px, 7vw, 96px); }
.pd__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 32px clamp(32px, 6vw, 88px); align-items: center; }
.pd__visual { position: relative; padding: 10% 12%; border-radius: var(--r-xl); background: radial-gradient(70% 60% at 50% 45%, color-mix(in srgb, var(--pf) 14%, #fff) 0%, var(--bg-soft) 100%); border: 1px solid var(--line); }
.pd__object { position: relative; max-width: 420px; margin: 0 auto; }
.pd--bundle .pd__object { max-width: 560px; }
.pd__title { font-size: clamp(36px, 4.6vw, 60px); letter-spacing: -.04em; margin-bottom: 10px; }
.pd__tagline { font-size: clamp(19px, 1.8vw, 23px); font-weight: 650; letter-spacing: -.02em; color: var(--blue); margin-bottom: 12px; }
.pd__result { font-size: 17.5px; color: var(--ink-2); max-width: 32em; }
.pd__buy { margin-top: 24px; padding: 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
.price-big { font-size: 44px; font-weight: 800; letter-spacing: -.035em; line-height: 1; margin: 0 0 6px; }
.price-big small { font-size: 18px; font-weight: 600; color: var(--muted); letter-spacing: 0; }
.price-sub { color: var(--muted); font-size: 15px; margin-bottom: 6px; }
.price-diff { font-size: 14.5px; margin: 8px 0 0; padding: 8px 12px; background: var(--bg-blue); color: var(--blue-deep); border-radius: var(--r-sm); display: inline-block; }
.pd__row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.pd__add { flex: 1; min-width: 200px; }
.pd__incart { margin: 12px 0 0; font-size: 15px; }
.pd__incart a { font-weight: 700; color: var(--blue); }
.pd__facts { margin-top: 18px; display: grid; gap: 6px; font-size: 15px; color: var(--ink-2); }
.pd__facts li { display: flex; gap: 10px; align-items: baseline; }
.pd__facts li::before { content: '✓'; color: var(--blue); font-weight: 800; }

.qty { display: inline-flex; align-items: center; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; height: 56px; }
.qty--sm { height: 44px; }
.qty__btn { width: 48px; height: 100%; border: 0; background: transparent; font-size: 22px; font-weight: 500; border-radius: 999px; }
.qty--sm .qty__btn { width: 38px; font-size: 19px; }
.qty__btn:hover { background: var(--bg-soft); }
.qty__input { width: 46px; border: 0; background: transparent; text-align: center; font-weight: 700; font-size: 18px; -moz-appearance: textfield; appearance: textfield; }
.qty__input::-webkit-outer-spin-button, .qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.pd-upsell { padding: 0 0 clamp(48px, 7vw, 96px); }
.pd-upsell .h3 { margin-bottom: 18px; }
.upsell-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; }
.up-card { display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); }
.up-card .thumb { --s: 64px; }
.up-card--accent { background: var(--navy); color: #fff; border-color: var(--navy); }
.up-card--accent .thumb { background: rgba(255,255,255,.08); border-color: transparent; }
.up-card__h { font-size: 19px; margin-bottom: 6px; }
.up-card__p { font-size: 15px; color: var(--muted); margin-bottom: 6px; }
.up-card--accent .up-card__p { color: rgba(255,255,255,.75); }
.up-card__price { font-size: 13.5px; font-weight: 650; margin: 0; color: var(--blue-deep); }
.up-card__act { margin-top: auto; display: flex; align-items: center; gap: 14px; }
.up-card__more { font-size: 14.5px; font-weight: 600; }

.pd-more { background: var(--bg-soft); padding: clamp(56px, 8vw, 96px) 0; }
.pd-more__grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 24px clamp(24px, 4vw, 56px); }
.pd-more__block .h3 { margin-bottom: 16px; }
.pd-more__extra { color: var(--muted); font-size: 15px; }
.checklist li { position: relative; padding: 0 0 10px 26px; font-size: 15.5px; }
.checklist li::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--blue); font-weight: 800; }
.mini-steps { counter-reset: s; }
.mini-steps li { counter-increment: s; display: grid; grid-template-columns: 34px 1fr; gap: 10px; padding-bottom: 14px; }
.mini-steps li::before { content: counter(s); width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 14px; }
.contents li { display: flex; gap: 14px; align-items: flex-start; padding-bottom: 14px; font-size: 15px; }
.contents .thumb { --s: 56px; }
.compare { margin: 10px 0 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); }
.compare p { display: flex; justify-content: space-between; gap: 12px; margin: 0; padding: 6px 0; }
.compare s { color: var(--muted); }
.compare__hl { font-weight: 700; font-size: 18px; }
.compare__save { color: var(--blue); font-weight: 700; border-top: 1px dashed var(--line-strong); margin-top: 4px !important; padding-top: 10px !important; }

/* ---------- Košík ---------- */
.page-cart main { padding-bottom: clamp(56px, 8vw, 100px); background: var(--bg-soft); min-height: 70vh; }
.cart-head { display: flex; align-items: baseline; gap: 18px; padding: clamp(28px, 5vw, 52px) 0 22px; }
.cart-head__count { color: var(--muted); margin: 0; font-weight: 600; }
.proto-banner { margin-bottom: 22px; padding: 14px 18px; border-radius: var(--r); background: var(--todo-bg); color: #3D3200; font-size: 15px; border: 1px dashed #B79B00; }
.cart-empty { display: grid; justify-items: start; gap: 6px; padding: 16px 0 40px; max-width: 640px; }
.cart-empty__visual { width: 280px; margin-bottom: 18px; }
.cart-empty .h2 { margin-bottom: 8px; }
.cart-empty p { color: var(--muted); margin-bottom: 18px; }
.cart-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(320px, 1fr); gap: 24px; align-items: start; }
.cart-side { position: sticky; top: calc(var(--header-h) + 16px); display: grid; gap: 14px; }
.cart-items { display: grid; gap: 14px; }
.ci { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; transition: opacity .25s, transform .25s var(--ease); }
.ci.is-leaving { opacity: 0; transform: translateX(-20px); }
.ci.is-arrived { animation: arrive 1.1s var(--ease); }
@keyframes arrive { 30% { box-shadow: 0 0 0 5px var(--blue-soft); } }
.ci__top { display: grid; grid-template-columns: auto 1fr auto auto auto; align-items: center; gap: 16px; }
.ci__thumb .thumb { --s: 64px; }
.ci__name { font-size: 19px; letter-spacing: -.02em; }
.ci__name a { text-decoration: none; }
.ci__name a:hover { color: var(--blue); }
.ci__unit { margin: 4px 0 0; font-size: 14px; color: var(--muted); }
.ci__total { margin: 0; min-width: 92px; text-align: right; font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.ci__remove { border: 0; background: transparent; font-size: 14px; font-weight: 600; color: var(--muted); text-decoration: underline; padding: 8px 4px; }
.ci__remove:hover { color: var(--error); }
.is-flash { animation: flash .6s var(--ease); }
@keyframes flash { 0% { color: var(--blue); transform: translateY(-2px); } }

.ci__setup { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.setup-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin-bottom: 12px; }
.setup-head__h { font-size: 15px; font-weight: 750; letter-spacing: 0; }
.setup-head__p { margin: 0; font-size: 14px; color: var(--muted); }
.seg { display: inline-flex; border: 0; padding: 4px; margin: 0 0 14px; background: var(--bg-soft); border-radius: 999px; }
.seg label { position: relative; }
.seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.seg span { display: block; padding: 8px 16px; border-radius: 999px; font-size: 14.5px; font-weight: 650; }
.seg input:checked + span { background: #fff; box-shadow: var(--shadow); }
.seg input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 2px; }
.setup-unit { display: grid; gap: 12px; }
.setup-unit + .setup-unit { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.setup-unit__h { margin: 0; font-weight: 750; font-size: 14px; }
.pf-group { border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px 10px; margin: 0; background: var(--bg-soft); transition: border-color .2s; }
.pf-group.is-invalid { border-color: var(--error); background: #FFF6F5; }
.pf-group__legend { padding: 0 6px; font-weight: 700; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; }
.pf-group__legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--pf); }
.pf-group__hint { margin: 0 0 10px; font-size: 13.5px; color: var(--muted); }
.pf-group__fields--either { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.pf-group__fields--either .field--url { grid-column: span 2; }
.pf-group__fields--either .or { grid-column: span 2; display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.pf-group__fields--either .or::before, .pf-group__fields--either .or::after { content: ''; flex: 1; height: 1px; background: var(--line-strong); }
.field label { display: block; font-size: 13.5px; font-weight: 650; margin-bottom: 4px; }
.field input { width: 100%; min-height: 46px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--line-strong); background: #fff; font-size: 16px; transition: border-color .2s, box-shadow .2s; }
.field input::placeholder { color: #94A0B5; }
.field input:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 4px rgba(31,91,255,.18); }
.field input[aria-invalid="true"] { border-color: var(--error); }
.pf-group__err { margin: 6px 0 4px; font-size: 13.5px; font-weight: 650; color: var(--error); }
.pf-group__err:empty { display: none; }

.summary { background: var(--navy); color: #fff; border-radius: var(--r-lg); padding: 24px; }
.summary__h { font-size: 22px; margin-bottom: 14px; }
.summary__perks { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.summary__perks:empty { display: none; }
.perk-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px; background: rgba(127,164,255,.18); color: #BFD1FF; font-size: 13px; font-weight: 700; }
.perk-chip::before { content: '✓'; }
.perk-chip--hint { background: rgba(255,255,255,.08); color: rgba(255,255,255,.8); }
.perk-chip--hint::before { content: '→'; }
.perk-chip.is-new { animation: perk-in .9s var(--ease-back); }
@keyframes perk-in { 0% { transform: scale(.6); background: var(--blue); color: #fff; } 60% { transform: scale(1.08); background: var(--blue); color: #fff; } }
.summary__lines .sl { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line-light); font-size: 15px; }
.summary__lines dt span { color: rgba(255,255,255,.6); }
.sl--save dd, .sl--save dt { color: #BFD1FF; }
.free { color: #8EE0B4; }
.summary__total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0 6px; }
.summary__total span { font-weight: 650; }
.summary__total strong { font-size: 36px; font-weight: 800; letter-spacing: -.035em; }
.summary__vat { font-size: 13px; margin-bottom: 14px; }
.summary__errors { background: #FFE9E6; color: #6B1208; border-radius: var(--r-sm); padding: 12px 14px; margin-bottom: 12px; font-size: 14.5px; }
.summary__errors p { margin: 0 0 4px; }
.summary__errors ul { padding-left: 18px; list-style: disc; }
.summary__errors a { font-weight: 650; }
.summary .btn--primary { box-shadow: none; }
.summary__stripe { margin: 12px 0 0; font-size: 13.5px; color: rgba(255,255,255,.7); }

/* Platební krok s vloženým formulářem Stripe */
.pay { padding-bottom: 24px; }
.pay__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); gap: 24px; align-items: start; }
.pay__main { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(18px, 3vw, 32px); }
.pay__back { border: 0; background: transparent; color: var(--blue); font-weight: 650; font-size: 15px; padding: 4px 0; margin-bottom: 12px; }
.pay__back:hover { text-decoration: underline; }
.pay__main .h2 { font-size: clamp(26px, 3vw, 34px); margin-bottom: 8px; }
.pay__lead { color: var(--muted); font-size: 15px; margin-bottom: 20px; }
.pay__form { min-height: 220px; }
.pay__loading { color: var(--muted); font-size: 15px; }
.pay__error { margin-top: 14px; }
.pay__side { position: sticky; top: calc(var(--header-h) + 16px); }
@media (max-width: 900px) { .pay__grid { grid-template-columns: 1fr; } .pay__side { position: static; order: -1; } }

.upm { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; box-shadow: var(--shadow); }
.upm + .upm { margin-top: 12px; }
.upm--starter { background: var(--bg-blue); border-color: var(--blue-soft); }
.upm--quiet { box-shadow: none; }
.upm__close { position: absolute; right: 10px; top: 10px; width: 34px; height: 34px; border-radius: 50%; border: 0; background: transparent; font-size: 20px; color: var(--muted); }
.upm__close:hover { background: rgba(11,21,48,.06); color: var(--ink); }
.upm__h { font-size: 17px; line-height: 1.3; letter-spacing: -.015em; padding-right: 30px; margin-bottom: 12px; }
.upm__h--sm { font-size: 16px; margin-bottom: 4px; }
.upm__thumbs { margin-bottom: 10px; }
.upm__thumbs .thumb { --s: 56px; background: #fff; }
.upm__row { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 12px; padding-right: 26px; }
.upm__compare { display: grid; gap: 6px; margin-bottom: 10px; }
.upm__compare p { display: flex; justify-content: space-between; gap: 10px; margin: 0; padding: 8px 12px; border-radius: 10px; background: var(--bg-soft); font-size: 14.5px; }
.upm__compare-hl { background: var(--blue) !important; color: #fff; }
.upm__compare b { font-size: 16px; font-weight: 800; }
.upm__fine { font-size: 14px; color: var(--ink-2); margin-bottom: 12px; }
.chooser { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.chooser__btn { width: 100%; display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 14px; border: 1px solid var(--line); background: #fff; text-align: left; transition: border-color .2s, transform .15s; }
.chooser__btn .thumb { --s: 42px; }
.chooser__btn b { display: block; font-size: 14.5px; }
.chooser__btn small { display: block; font-size: 12px; color: var(--muted); }
.chooser__btn:hover { border-color: var(--blue); }
.chooser__btn:active { transform: scale(.97); }
.chooser__plus { margin-left: auto; width: 24px; height: 24px; border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; flex: none; }

.switch-dialog { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 32px); border: 0; padding: 0; border-radius: var(--r-lg); background: #fff; color: var(--ink); box-shadow: 0 40px 80px -20px rgba(11,21,48,.45); }
.switch-dialog::backdrop { background: rgba(11,21,48,.5); }
.switch-dialog[open] { animation: dlg .35s var(--ease); }
@keyframes dlg { from { opacity: 0; transform: translateY(16px) scale(.98); } }
.switch-dialog__in { padding: 26px; }
.switch-dialog .h3 { margin-bottom: 18px; }
.sw { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: start; }
.sw__col { padding: 14px; border-radius: var(--r); background: var(--bg-soft); }
.sw__col--new { background: var(--bg-blue); }
.sw__h { font-size: 12.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 10px; color: var(--muted); }
.sw__col li { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: 14.5px; font-weight: 600; }
.sw__col li .thumb { --s: 38px; border-radius: 10px; background: #fff; }
.sw__col li > span:not(.thumb) { margin-left: auto; font-weight: 500; opacity: .7; }
.sw__col--new .pill { margin-left: auto; }
.sw__arrow { align-self: center; font-size: 22px; font-weight: 800; color: var(--blue); }
.sw__note { font-size: 14.5px; margin: 14px 0 0; padding-left: 14px; border-left: 3px solid var(--blue); }
.sw__price { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 18px; }
.sw__price div { padding: 12px; border-radius: 14px; background: var(--bg-soft); }
.sw__price dt { font-size: 12.5px; color: var(--muted); font-weight: 650; }
.sw__price dd { font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.sw__diff { background: var(--bg-blue) !important; }
.sw__diff .save { color: var(--blue); }
.sw__fine { font-size: 13px; color: var(--muted); margin: 10px 0 0; }
.switch-dialog__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

/* ---------- Toast a let do košíku ---------- */
.toast { position: fixed; left: 50%; bottom: 20px; z-index: 80; display: flex; align-items: center; gap: 14px; width: max-content; max-width: calc(100vw - 32px); padding: 10px 14px 10px 10px; border-radius: 18px; background: var(--ink); color: #fff; box-shadow: 0 20px 40px -10px rgba(11,21,48,.45); transform: translate(-50%, 140%); opacity: 0; transition: transform .45s var(--ease-back), opacity .25s; font-size: 15px; pointer-events: none; }
.toast.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.toast-thumb .thumb { background: #fff; }
.toast-text { display: flex; flex-direction: column; gap: 4px; }
.toast-perks { display: flex; flex-wrap: wrap; gap: 6px; }
.toast-perk { font-size: 12.5px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--blue); color: #fff; }
.toast-link { color: #9DB8FF; font-weight: 700; white-space: nowrap; padding: 6px 4px; }
.fly-token { position: fixed; z-index: 90; pointer-events: none; }
.fly-token .thumb { background: #fff; box-shadow: 0 10px 24px -6px rgba(11,21,48,.4); }

/* ---------- Kontakt a návratové stránky ---------- */
.contact { padding: clamp(40px, 7vw, 96px) 0; background: linear-gradient(180deg, #fff, var(--bg-soft)); }
.contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px clamp(32px, 6vw, 96px); align-items: end; }
.contact__intro .h1 { margin-bottom: 20px; }
.contact__cards { display: grid; gap: 12px; }
.contact__card { padding: 20px 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); }
.contact__card--coral { background: var(--blue); border-color: var(--blue); color: #fff; }
.contact__card dt { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 6px; opacity: .8; }
.contact__card dd { font-size: 22px; font-weight: 700; }
.legal { padding: clamp(48px, 7vw, 90px) 0; }
.legal__grid { display: grid; grid-template-columns: .6fr 1.4fr; gap: 24px 64px; }
.legal__list div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.legal__list dt { font-weight: 650; }
.ret { padding: clamp(48px, 9vw, 120px) var(--gutter); min-height: 60vh; }
.ret__state { max-width: 720px; }
.ret__state .h1 { margin-bottom: 20px; }
.ret__state .lead { margin-bottom: 28px; }
.ret__visual { width: min(360px, 80%); margin-bottom: 28px; }
.ret__order { padding: 20px 22px; border-radius: var(--r-lg); background: var(--bg-soft); border: 1px solid var(--line); margin-bottom: 20px; }
.ret__order ul { margin: 8px 0; display: grid; gap: 4px; color: var(--ink-2); }
.ret__total { margin: 0; font-size: 18px; }
.ret__spinner { width: 44px; height: 44px; border-radius: 50%; border: 4px solid var(--bg-blue); border-top-color: var(--blue); margin-bottom: 22px; animation: spin .9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Právní dokumenty ---------- */
.doc { max-width: 820px; padding-top: clamp(32px, 6vw, 72px); padding-bottom: clamp(56px, 8vw, 100px); }
.doc__head { margin-bottom: 36px; }
.doc__head .h1 { font-size: clamp(34px, 5vw, 56px); margin-bottom: 10px; }
.doc__meta { color: var(--muted); font-size: 15px; }
.doc__nav { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.doc__nav a { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line-strong); text-decoration: none; font-size: 14.5px; font-weight: 600; }
.doc__nav a:hover { border-color: var(--ink); }
.doc__nav a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.doc section { padding: 26px 0; border-top: 1px solid var(--line); }
.doc h2 { font-size: 22px; letter-spacing: -.02em; margin-bottom: 14px; }
.doc ol, .doc ul { padding-left: 22px; display: grid; gap: 10px; color: var(--ink-2); }
.doc ol { list-style: decimal; }
.doc ul { list-style: disc; }
.doc p { color: var(--ink-2); }
.doc a { color: var(--blue); font-weight: 600; }
.doc__card { display: grid; gap: 0; padding: 6px 20px; border-radius: var(--r-lg); background: var(--bg-soft); border: 1px solid var(--line); margin-bottom: 14px; }
.doc__card > div { display: grid; grid-template-columns: 120px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.doc__card > div:last-child { border-bottom: 0; }
.doc__card dt { font-weight: 700; }
.doc__card--form { padding: 20px; }
.doc__card--form p { margin-bottom: 12px; }
.doc__lead { background: var(--bg-blue); border-radius: var(--r-lg); padding: 20px 22px !important; border-top: 0 !important; margin-bottom: 8px; }
.doc__lead p { margin: 0; color: var(--blue-deep); }
.summary__stripe a { color: #BFD1FF; }
@media (max-width: 560px) { .doc__card > div { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- Odhalování sekcí ---------- */
.js-reveal .reveal { transition: opacity .7s var(--ease), transform .8s var(--ease); }
.js-reveal .goals__grid.reveal > * { opacity: 0; transform: translateY(32px); transition: opacity .6s var(--ease), transform .7s var(--ease), box-shadow .3s; }
.js-reveal .goals__grid.reveal > :nth-child(2) { transition-delay: .08s; }
.js-reveal .goals__grid.reveal > :nth-child(3) { transition-delay: .16s; }
.js-reveal .goals__grid.reveal.is-in > * { opacity: 1; transform: none; }
.js-reveal .menu.reveal .menu__row { opacity: 0; transform: translateX(-16px); transition: opacity .5s, transform .6s var(--ease); }
.js-reveal .menu.reveal.is-in .menu__row { opacity: 1; transform: none; }
.js-reveal .menu.reveal .menu__row:nth-child(2) { transition-delay: .05s; } .js-reveal .menu.reveal .menu__row:nth-child(3) { transition-delay: .1s; }
.js-reveal .menu.reveal .menu__row:nth-child(4) { transition-delay: .15s; } .js-reveal .menu.reveal .menu__row:nth-child(5) { transition-delay: .2s; }
.js-reveal .pricebox.reveal { opacity: 0; transform: translateY(24px) scale(.98); }
.js-reveal .pricebox.reveal.is-in { opacity: 1; transform: none; transition-delay: .15s; }
.js-reveal .places__list.reveal .place { opacity: 0; transform: translateY(20px); transition: opacity .5s, transform .6s var(--ease), border-color .2s, box-shadow .2s; }
.js-reveal .places__list.reveal.is-in .place { opacity: 1; transform: none; }
.js-reveal .places__list.reveal .place:nth-child(2n) { transition-delay: .08s; }
.js-reveal .places__list.reveal .place:nth-child(n+3) { transition-delay: .12s; }
.js-reveal .places__list.reveal .place:nth-child(n+5) { transition-delay: .2s; }
.js-reveal .perks__list.reveal .perk { opacity: 0; transform: scale(.95); transition: opacity .5s, transform .6s var(--ease-back); }
.js-reveal .perks__list.reveal.is-in .perk { opacity: 1; transform: none; }
.js-reveal .perks__list.reveal .perk:nth-child(2) { transition-delay: .08s; } .js-reveal .perks__list.reveal .perk:nth-child(3) { transition-delay: .14s; } .js-reveal .perks__list.reveal .perk:nth-child(4) { transition-delay: .2s; }
.js-reveal .faq__list.reveal { opacity: 0; }
.js-reveal .faq__list.reveal.is-in { opacity: 1; }
.js-reveal .final__in.reveal .final__visual { opacity: 0; transform: translateY(50px); transition: opacity .7s, transform 1s var(--ease-back); }
.js-reveal .final__in.reveal.is-in .final__visual { opacity: 1; transform: none; }
.js-reveal .cat-item.reveal { opacity: 0; transform: translateY(24px); }
.js-reveal .cat-item.reveal.is-in { opacity: 1; transform: none; }
.js-reveal .cat-bundle.reveal .bundle-stack__item--0, .js-reveal .cat-bundle.reveal .bundle-stack__item--2 { transform: translateX(0) rotate(0) scale(.82); }
.js-reveal .cat-bundle.reveal.is-in .bundle-stack__item--0 { transform: translateX(-42%) rotate(-7deg) scale(.82); transition-delay: .15s; }
.js-reveal .cat-bundle.reveal.is-in .bundle-stack__item--2 { transform: translateX(42%) rotate(7deg) scale(.82); transition-delay: .15s; }

/* ---------- Responzivita ---------- */
@media (max-width: 1080px) {
  .cart-grid { grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr); }
  .ci__top { grid-template-columns: auto 1fr auto; }
  .ci__top .qty { grid-column: 2; justify-self: start; }
  .ci__total { grid-column: 3; grid-row: 1; }
  .ci__remove { grid-column: 3; grid-row: 2; justify-self: end; }
  .perks__list { grid-template-columns: 1fr 1fr; }
  .perk--big { grid-column: span 2; }
}
@media (max-width: 900px) {
  body { font-size: 16.5px; }
  .hero__grid { grid-template-columns: 1fr; }
  .hero__stage { max-width: 500px; width: 100%; margin: 0 auto; }
  .hero__strip { grid-template-columns: 1fr 1fr; }
  /* Na mobilu bez scrollované scény – jen statický seznam kroků */
  .scrolly__grid { grid-template-columns: 1fr; gap: 0; }
  .scrolly__stage { display: none; }
  .scrolly__text .h2 { margin-bottom: 28px; }
  .scrolly__steps { display: grid; gap: 12px; }
  .sc-step, .sc-step:last-child { min-height: 0; opacity: 1; padding: 20px; border: 1px solid var(--line-light); border-radius: var(--r-lg); background: rgba(255,255,255,.05); }
  .sc-step.is-active { border-color: var(--line-light); }
  .sc-step .sc-step__n, .sc-step.is-active .sc-step__n { background: var(--blue); }
  .sc-step h3 { margin: 12px 0 8px; font-size: 22px; }
  .sc-step p { margin: 0; font-size: 16px; }
  .demo__panel { grid-template-columns: 1fr; }
  .goals__grid { grid-template-columns: 1fr; }
  .goal--reviews { grid-row: auto; min-height: 360px; }
  .offer__grid { grid-template-columns: 1fr; }
  .pricebox { position: static; }
  .places__grid { grid-template-columns: 1fr; }
  .places__head { position: static; }
  .perks__grid { grid-template-columns: 1fr; }
  .perks__fine { grid-column: 1; }
  .faq__grid { grid-template-columns: 1fr; }
  .faq__grid > .h2 { position: static; }
  .final__in { grid-template-columns: 1fr; }
  .final__visual { max-width: 380px; justify-self: center; }
  .site-footer__in { grid-template-columns: 1fr 1fr; }
  .site-footer__brand { grid-column: span 2; }
  .cat-hero__in { grid-template-columns: 1fr; }
  .cat-hero .h1 { grid-row: auto; }
  .cat-list { grid-template-columns: 1fr; }
  .cat-bundle__in { grid-template-columns: 1fr; }
  .pd__grid { grid-template-columns: 1fr; }
  .pd-more__grid { grid-template-columns: 1fr; }
  .cart-grid { grid-template-columns: 1fr; }
  .cart-side { position: static; }
  .contact__grid, .legal__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  :root { --header-h: 62px; }
  .logo { font-size: 20px; }
  .hero__title { font-size: clamp(34px, 10vw, 46px); }
  .hero__ctas .btn { width: 100%; }
  .hero__strip a { font-size: 14px; padding: 8px 10px 8px 8px; gap: 8px; }
  .hero__strip span { width: 44px; }
  .stage-cap { bottom: auto; top: 0; right: auto; left: 0; }
  .menu { padding: 4px 16px; }
  .menu__row { grid-template-columns: 1fr auto; gap: 10px 12px; }
  .menu__row .btn { grid-column: span 2; justify-self: stretch; }
  .menu__row--bundle { margin: 6px -8px; padding: 12px 8px; }
  .demo__tabs { display: flex; }
  .demo__plaque { width: 50%; }
  .demo__phone .iphone { --pw: 132px; }
  .goal--reviews .goal__imgs img { width: 130px; margin-right: -50px; }
  .places__list { grid-template-columns: 1fr; }
  .perks__list { grid-template-columns: 1fr; }
  .perk--big { grid-column: auto; }
  .faq__list details p { padding-right: 0; }
  .site-footer__in { grid-template-columns: 1fr; }
  .site-footer__brand { grid-column: auto; }
  .site-footer__legal { flex-direction: column; }
  .cat-item__body { padding: 4px 20px 22px; }
  .ci { padding: 16px; }
  .ci__top { grid-template-columns: auto 1fr; gap: 12px; position: relative; }
  .ci__info { padding-right: 70px; }
  .ci__top .qty { grid-column: 1 / span 2; grid-row: 2; justify-self: start; }
  .ci__total { grid-column: 2; grid-row: 2; align-self: center; }
  .ci__remove { position: absolute; right: 0; top: 0; }
  .pf-group__fields--either { grid-template-columns: 1fr; }
  .pf-group__fields--either .field--url, .pf-group__fields--either .or { grid-column: auto; }
  .chooser { grid-template-columns: 1fr; }
  .sw { grid-template-columns: 1fr; }
  .sw__arrow { transform: rotate(90deg); justify-self: center; }
  .sw__price { grid-template-columns: 1fr 1fr; }
  .sw__diff { grid-column: span 2; }
  .switch-dialog__actions .btn { width: 100%; }
  .toast { bottom: 12px; flex-wrap: wrap; }
  .legal__list div { flex-direction: column; gap: 2px; }
}

/* ---------- Omezený pohyb ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .tilt { transform: none !important; }
}
