/* zubnilekar.net — vzhled podle abczeny.sk (barvy, písmo, tvary) */
:root {
    --radius: 1rem;
    --background: oklch(99.5% .004 350);
    --foreground: oklch(28% .056 355.3);
    --card: oklch(100% 0 0);
    --primary: oklch(69.8% .176 .1);
    --primary-foreground: oklch(99.5% .004 350);
    --primary-deep: oklch(59.6% .196 2.9);
    --primary-soft: oklch(88.5% .054 21.1);
    --secondary: oklch(96.5% .018 355);
    --muted-foreground: oklch(53% .035 355);
    --accent: oklch(94.5% .03 355);
    --accent-foreground: oklch(35% .09 358);
    --border: oklch(92.5% .018 352);
    --gradient-brand: linear-gradient(135deg, oklch(59.6% .196 2.9), oklch(69.8% .176 .1) 55%, oklch(85.5% .09 15));
    --shadow-soft: 0 1px 2px oklch(28% .056 355.3 / .04), 0 12px 32px -16px oklch(59.6% .196 2.9 / .22);
    --shadow-lift: 0 24px 60px -28px oklch(59.6% .196 2.9 / .4);
    --ease: cubic-bezier(.22, 1, .36, 1);
    --font-sans: "Manrope", ui-sans-serif, system-ui, sans-serif;
    --font-display: "Fraunces", Georgia, serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--background); color: var(--foreground); font-family: var(--font-sans); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); letter-spacing: -.015em; font-weight: 600; }
p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select { font: inherit; color: inherit; }
[id] { scroll-margin-top: 96px; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.i { width: 1em; height: 1em; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.wrap { width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1.25rem; }
.narrow { max-width: 48rem; }
.section { padding-top: 5rem; padding-bottom: 5rem; }
.section-tight { padding-top: 3rem; padding-bottom: 3rem; }
.tinted { background: oklch(96.5% .018 355 / .5); }

/* Hlavička */
.header { position: sticky; top: 0; z-index: 50; background: oklch(99.5% .004 350 / .85); border-bottom: 1px solid oklch(92.5% .018 352 / .7); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.header-in { max-width: 80rem; height: 5rem; margin: 0 auto; padding: 0 1.25rem; display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.brand { display: flex; align-items: center; gap: .7rem; flex-shrink: 0; }
.brand img { width: 52px; height: 52px; object-fit: contain; }
.brand-text { font-family: var(--font-display); font-size: 1rem; font-weight: 700; line-height: 1.2; letter-spacing: -.015em; }
.brand-text small { display: block; font-family: var(--font-sans); font-size: .72rem; font-weight: 600; letter-spacing: .02em; color: var(--primary); }
.nav { display: none; align-items: center; gap: .125rem; }
.nav a, .mnav a { white-space: nowrap; border-radius: 999px; padding: .5rem .75rem; font-size: .875rem; font-weight: 500; color: var(--muted-foreground); transition: color .15s, background-color .15s; }
.nav a:hover, .nav a.active, .mnav a:hover, .mnav a.active { background: var(--accent); color: var(--accent-foreground); }
.header-right { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.pill { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; border: 1px solid var(--border); border-radius: 999px; padding: .5rem .75rem; font-size: .875rem; font-weight: 500; transition: background-color .15s; }
.pill:hover { background: var(--accent); }
.pill .i { color: var(--primary); font-size: 1rem; }
.header .pill { display: none; }
.cta { display: none; white-space: nowrap; border-radius: 999px; background-image: var(--gradient-brand); padding: .625rem 1rem; font-size: .875rem; font-weight: 600; color: var(--primary-foreground); box-shadow: var(--shadow-soft); transition: transform .15s; }
.cta:hover { transform: translateY(-2px); }
.burger { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--border); border-radius: 999px; background: none; cursor: pointer; font-size: 1.25rem; }
.burger .i-close, .burger[aria-expanded="true"] .i-open { display: none; }
.burger[aria-expanded="true"] .i-close { display: block; }
.mnav { display: none; flex-direction: column; gap: .25rem; padding: .75rem 1.25rem 1.25rem; border-top: 1px solid oklch(92.5% .018 352 / .7); background: var(--background); }
.mnav.open { display: flex; }
.mnav a { padding: .7rem 1rem; font-size: 1rem; }
.mnav .cta { display: block; margin-top: .5rem; padding: .8rem 1rem; text-align: center; color: var(--primary-foreground); }
/* úzké telefony (320–379 px): menší logo a text, ať se hlavička vejde */
.brand { min-width: 0; }
@media (max-width: 379px) { .header-in { padding: 0 1rem; } .brand { gap: .5rem; } .brand img { width: 40px; height: 40px; } .brand-text { font-size: .875rem; } .brand-text small { font-size: .625rem; letter-spacing: 0; } }
@media (min-width: 640px) { .cta { display: inline-block; } }
@media (min-width: 768px) { .header .pill { display: inline-flex; } }
@media (min-width: 1024px) { .nav { display: flex; } .burger, .mnav, .mnav.open { display: none; } }
@media (min-width: 1024px) and (max-width: 1199px) { .header .pill span { display: none; } }

/* Úvodní obraz */
.hero { position: relative; display: flex; align-items: center; min-height: 560px; overflow: hidden; color: var(--primary-foreground); }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s; }
.hero-slide.on { opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; }
.hero-slide.on img { animation: kenburns 8s ease-out forwards; }
.hero::before, .hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero::before { background: linear-gradient(to right, rgb(0 0 0 / .75), rgb(0 0 0 / .5), rgb(0 0 0 / .15)); }
.hero::after { background: linear-gradient(to top, rgb(0 0 0 / .35), transparent, rgb(0 0 0 / .1)); }
.hero .wrap { position: relative; z-index: 2; padding-top: 5rem; padding-bottom: 5rem; }
.hero-text { max-width: 42rem; }
.hero .eyebrow { color: var(--primary-soft); letter-spacing: .28em; }
.hero h1 { margin-top: 1.25rem; font-size: 2.25rem; line-height: 1.08; }
.hero .lead { margin-top: 1.5rem; max-width: 36rem; line-height: 1.625; color: oklch(99.5% .004 350 / .85); }
.hero-actions { margin-top: 2.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.hero-phone { margin-top: 1.75rem; display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 500; transition: color .15s; }
.hero-phone:hover { color: var(--primary-soft); }
.hero-dots { margin-top: 3rem; display: flex; align-items: center; gap: .5rem; }
.hero-dots button { width: 1rem; height: .375rem; padding: 0; border: 0; border-radius: 999px; background: oklch(99.5% .004 350 / .45); cursor: pointer; transition: all .3s; }
.hero-dots button:hover { background: oklch(99.5% .004 350 / .75); }
.hero-dots button[aria-current="true"] { width: 2.5rem; background: var(--primary-foreground); }
.hero-sub { min-height: 300px; }
.hero-sub .wrap { padding-top: 4rem; padding-bottom: 4rem; }
@keyframes kenburns { from { transform: scale(1) translate(0); } to { transform: scale(1.12) translate(-1.5%, 1.5%); } }
@media (min-width: 640px) { .hero h1 { font-size: 3rem; } }
@media (min-width: 768px) { .hero { min-height: 680px; } .hero .wrap { padding-top: 7rem; padding-bottom: 7rem; } .hero .lead { font-size: 1.125rem; } .hero-sub { min-height: 380px; } .hero-sub .wrap { padding-top: 5rem; padding-bottom: 5rem; } }
@media (min-width: 1280px) { .hero h1 { font-size: 3.75rem; } }

/* Tlačítka */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 0; border-radius: 999px; font-size: .875rem; font-weight: 600; cursor: pointer; transition: transform .15s, background-color .15s, color .15s; }
.btn-primary { background: var(--primary); color: var(--primary-foreground); padding: 1rem 2rem; box-shadow: var(--shadow-lift); }
.btn-primary:hover { transform: translateY(-4px); background: var(--primary-deep); }
.btn-glass { border: 1px solid oklch(99.5% .004 350 / .6); background: oklch(99.5% .004 350 / .1); color: var(--primary-foreground); padding: 1rem 2rem; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.btn-glass:hover { background: oklch(99.5% .004 350 / .2); }
.btn-brand { background-image: var(--gradient-brand); color: var(--primary-foreground); padding: .75rem 1.5rem; box-shadow: var(--shadow-soft); }
.btn-brand:hover { transform: translateY(-2px); }
.btn-white { background: var(--primary-foreground); color: var(--primary); padding: .75rem 1.25rem; box-shadow: var(--shadow-soft); }
.btn-white:hover { transform: translateY(-2px); }
.btn-outline-white { border: 1px solid oklch(99.5% .004 350 / .4); color: var(--primary-foreground); padding: .75rem 1.25rem; }
.btn-outline-white:hover { background: oklch(99.5% .004 350 / .1); }
.btn-soft { background: var(--background); color: var(--primary); padding: .625rem 1.25rem; box-shadow: var(--shadow-soft); }
.btn-soft:hover { transform: translateY(-2px); }
.btn-block { width: 100%; padding: .95rem 1.5rem; font-size: 1rem; }

/* Nadpisy sekcí */
.eyebrow { font-size: .75rem; font-weight: 700; line-height: 1rem; text-transform: uppercase; letter-spacing: .2em; color: var(--primary); }
.h2 { margin-top: .75rem; max-width: 42rem; font-size: 1.875rem; line-height: 1.2; font-weight: 700; }
.sub { margin-top: 1rem; max-width: 42rem; color: var(--muted-foreground); }
@media (min-width: 768px) { .h2 { font-size: 2.25rem; line-height: 1.11; } }

/* Karty */
.card { border: 1px solid var(--border); border-radius: 1.5rem; background: var(--background); padding: 1.75rem; box-shadow: var(--shadow-soft); }
.card-title { display: flex; align-items: center; gap: .5rem; font-size: .875rem; line-height: 1.25rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--primary); }
.card-title .i { font-size: 1rem; }
.grid { display: grid; gap: 1.5rem; }
.mt-10 { margin-top: 2.5rem; }
@media (min-width: 768px) { .cols-2, .cols-3, .cols-4 { grid-template-columns: repeat(2, 1fr); } .cols-contact { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .cols-3 { grid-template-columns: repeat(3, 1fr); } .cols-4 { grid-template-columns: repeat(4, 1fr); } }

.hours { margin-top: 1.25rem; display: grid; gap: .75rem 2.5rem; font-size: .875rem; }
.hours li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .5rem; border-bottom: 1px solid oklch(92.5% .018 352 / .6); }
.hours li span:first-child { color: var(--muted-foreground); }
.hours li span:last-child { text-align: right; font-weight: 500; }
.note { margin-top: 1.25rem; font-size: .875rem; color: var(--muted-foreground); }
@media (min-width: 640px) { .hours { grid-template-columns: repeat(2, 1fr); } }

.contact { display: flex; align-items: center; gap: 1rem; padding: 1.25rem 1.5rem; transition: transform .2s var(--ease); }
.contact:hover { transform: translateY(-4px); }
.chip { display: inline-flex; flex-shrink: 0; border-radius: .75rem; background: oklch(69.8% .176 .1 / .1); padding: .625rem; color: var(--primary); font-size: 1.25rem; }
.contact strong { display: block; font-weight: 600; }
.contact small { font-size: .8125rem; color: var(--muted-foreground); }

/* Myšlenka dne (sdílená se Šumava.eu) */
.thought { display: none; margin-top: 1.5rem; text-align: center; }
.thought.on { display: block; }
.thought q { display: block; margin-top: .5rem; font-family: var(--font-display); font-size: 1.125rem; font-style: italic; line-height: 1.6; quotes: none; }

.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.stat { border: 1px solid var(--border); border-radius: 1rem; background: var(--card); padding: 1.5rem 1rem; text-align: center; }
.stat b { display: block; font-family: var(--font-display); font-size: 2.5rem; line-height: 1.1; font-weight: 700; letter-spacing: -.015em; color: var(--primary); }
.stat span { display: block; margin-top: .35rem; font-size: .875rem; color: var(--muted-foreground); }
@media (min-width: 1024px) { .stats { grid-template-columns: repeat(4, 1fr); } }

.svc { position: relative; overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: var(--card); padding: 1.5rem; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.svc::before { content: ""; position: absolute; inset: 0 0 auto; height: .25rem; background-image: var(--gradient-brand); opacity: .8; transition: opacity .3s; }
.svc:hover { transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.svc:hover::before { opacity: 1; }
.svc .num { margin-top: 1rem; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--primary); }
.svc h3 { margin-top: .35rem; font-size: 1.125rem; line-height: 1.5; }
.svc .num + h3 { margin-top: .35rem; }
.svc .chip + h3 { margin-top: 1rem; }
.svc p, .svc li { font-size: .875rem; line-height: 1.625; color: var(--muted-foreground); }
.svc p { margin-top: .5rem; }
.svc ul { margin-top: .75rem; display: grid; gap: .5rem; }
.svc li { position: relative; padding-left: 1.1rem; }
.svc li::before { content: ""; position: absolute; left: 0; top: .6em; width: .375rem; height: .375rem; border-radius: 999px; background: var(--primary); }
.svc li strong { font-weight: 600; color: var(--foreground); }

.quote { position: relative; overflow: hidden; padding: 2rem 2rem 2rem 2.5rem; }
.quote::before { content: ""; position: absolute; inset: 0 auto 0 0; width: .25rem; background-image: var(--gradient-brand); }
.quote p { font-family: var(--font-display); font-size: 1.25rem; font-style: italic; line-height: 1.6; }
.quote footer { margin-top: .75rem; font-size: .9375rem; color: var(--muted-foreground); }

.team { display: grid; gap: 2.5rem; align-items: center; }
.team img { width: 100%; max-height: 420px; object-fit: cover; border: 1px solid var(--border); border-radius: 1.5rem; box-shadow: var(--shadow-soft); }
.team p.text { margin-top: 1rem; line-height: 1.625; color: var(--muted-foreground); }
.team .btn { margin-top: 1.75rem; }
@media (min-width: 768px) { .team { grid-template-columns: repeat(2, 1fr); } }

.band { border-radius: 1.5rem; background-image: var(--gradient-brand); padding: 2rem; color: var(--primary-foreground); box-shadow: var(--shadow-lift); display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.band h3 { font-size: 1.25rem; line-height: 1.4; }
.band p { margin-top: .5rem; max-width: 36rem; font-size: .875rem; line-height: 1.625; color: oklch(99.5% .004 350 / .85); }
.band-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (min-width: 640px) { .band { padding: 2.5rem; } }
@media (min-width: 768px) { .band { flex-direction: row; align-items: center; } .band h3 { font-size: 1.5rem; } }

.ald { text-align: center; }
.ald img { max-height: 90px; margin: 0 auto .75rem; object-fit: contain; }
.ald p { font-size: .875rem; color: var(--muted-foreground); }

.eu { display: flex; flex-direction: column; }
.eu img { max-height: 60px; margin-bottom: 1.25rem; object-fit: contain; object-position: left; align-self: flex-start; border-radius: .5rem; }
.eu p { font-size: .8125rem; line-height: 1.7; color: var(--muted-foreground); }
.eu p strong { color: var(--foreground); }

/* Patička */
.footer { border-top: 1px solid var(--border); background: oklch(96.5% .018 355 / .6); }
.footer-grid { display: grid; gap: 2.5rem; padding-top: 3.5rem; padding-bottom: 3.5rem; }
.footer .brand img { width: 48px; height: 48px; }
.footer-about { margin-top: 1rem; max-width: 20rem; font-size: .875rem; line-height: 1.625; color: var(--muted-foreground); }
.footer h3 { font-size: .875rem; line-height: 1.25rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--primary); }
.footer-list { margin-top: 1rem; display: grid; gap: .75rem; font-size: .875rem; }
.footer-list li { display: flex; gap: .75rem; }
.footer-list .i { margin-top: .15rem; font-size: 1rem; color: var(--primary); }
.footer-list a:hover { color: var(--primary); }
.footer-hours { margin-top: 1rem; display: grid; gap: .5rem; font-size: .875rem; }
.footer-hours li { display: flex; justify-content: space-between; gap: 1rem; }
.footer-hours li span:first-child { color: var(--muted-foreground); }
.footer-hours li span:last-child { font-weight: 500; }
.footer-bottom { border-top: 1px solid var(--border); }
.footer-bottom .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-top: 1.25rem; padding-bottom: 1.25rem; font-size: .75rem; color: var(--muted-foreground); }
.footer-bottom a { font-weight: 600; color: var(--foreground); }
.footer-bottom a:hover { color: var(--primary); }
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(3, 1fr); } }

/* Stáže */
.price { text-align: center; padding: 2rem 1.75rem; transition: transform .3s var(--ease); }
.price:hover { transform: translateY(-4px); }
.price .chip { font-size: 1.5rem; padding: .85rem; }
.price h3 { margin-top: 1rem; font-size: 1.125rem; }
.price b { display: block; margin-top: .5rem; font-family: var(--font-display); font-size: 2.25rem; line-height: 1.1; font-weight: 700; letter-spacing: -.015em; color: var(--primary); }
.price p { margin-top: .75rem; font-size: .875rem; line-height: 1.625; color: var(--muted-foreground); }

.dates { display: grid; gap: .85rem; margin-top: 2rem; }
.date-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid var(--border); border-radius: 1rem; background: var(--card); padding: 1.1rem 1.5rem; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.date-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.date-info { display: flex; align-items: center; gap: 1rem; }
.date-text strong { display: block; font-family: var(--font-display); font-size: 1.0625rem; font-weight: 700; letter-spacing: -.015em; }
.date-text span { font-size: .8125rem; color: var(--muted-foreground); }
.date-card[data-obsazeno] .chip { background: oklch(96.8% .012 350); color: var(--muted-foreground); }
.date-card[data-obsazeno] .date-text strong { color: var(--muted-foreground); }
.btn-obsazeno { border: 1px solid var(--border); border-radius: 999px; padding: .45rem 1rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; white-space: nowrap; color: var(--muted-foreground); }
.mt-16 { margin-top: 4rem; }

.form-grid { display: grid; gap: 1rem; }
.form-grid label { display: block; margin-bottom: .4rem; font-size: .875rem; font-weight: 500; }
.field { width: 100%; height: 2.75rem; border: 1px solid var(--border); border-radius: .75rem; background: var(--background); padding: 0 1rem; font-size: .9375rem; transition: border-color .15s, box-shadow .15s; }
.field::placeholder { color: oklch(53% .035 355 / .7); }
.field:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px oklch(69.8% .176 .1 / .15); }
select.field { -webkit-appearance: none; appearance: none; padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23876b78' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; }
.success-msg { display: none; border: 1px solid var(--primary-soft); border-radius: 1rem; background: var(--accent); padding: 1.25rem; text-align: center; font-weight: 600; color: var(--accent-foreground); }
@media (min-width: 640px) { .form-grid { grid-template-columns: repeat(2, 1fr); } .form-grid .full { grid-column: 1 / -1; } }

/* HEALS panáček (ze Šumava.eu / uzdravuje.eu) */
#heals-panacek { position: fixed; right: 20px; bottom: 20px; z-index: 60; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #16A34A; box-shadow: 0 4px 20px rgba(22, 163, 74, .4); transition: transform .2s ease, box-shadow .2s ease; }
#heals-panacek:hover { transform: scale(1.1); box-shadow: 0 6px 28px rgba(22, 163, 74, .55); }
#heals-panacek svg { width: 30px; height: 30px; }
#heals-panacek-tooltip { position: fixed; right: 82px; bottom: 32px; z-index: 60; border-radius: 8px; background: #1a2e1a; padding: 6px 12px; font-size: 13px; white-space: nowrap; color: #fff; opacity: 0; pointer-events: none; transition: opacity .2s; }
#heals-panacek:hover ~ #heals-panacek-tooltip { opacity: 1; }
@media (max-width: 600px) { #heals-panacek { width: 44px; height: 44px; right: 14px; bottom: 14px; } #heals-panacek-tooltip { right: 66px; bottom: 22px; } }

/* Nájezd prvků při posunu — jen s JS a bez omezení pohybu */
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.reveal-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .js .reveal { opacity: 1; transform: none; transition: none; }
    .hero-slide { transition: none; }
    .hero-slide.on img { animation: none; }
}

/* ── Grafické doplňky ─────────────────────────────────────────── */

/* měkká růžová záře v podbarvených sekcích */
.tinted { background:
    radial-gradient(48rem 26rem at 100% 0%, oklch(88.5% .054 21.1 / .28), transparent 62%),
    radial-gradient(40rem 24rem at 0% 100%, oklch(94.5% .03 355 / .9), transparent 60%),
    oklch(96.5% .018 355 / .5); }

/* čísla v barevném přechodu značky */
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .stat b, .price b { background-image: var(--gradient-brand); -webkit-background-clip: text; background-clip: text; color: transparent; }
}
.stat b { font-variant-numeric: tabular-nums; }

/* ikona karty se po najetí vybarví */
.chip { transition: background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease); }
.svc:hover .chip, .contact:hover .chip, .price:hover .chip { background: var(--primary); color: var(--primary-foreground); transform: scale(1.06); }

/* fotka týmu se po najetí lehce přiblíží */
.team-photo { overflow: hidden; border: 1px solid var(--border); border-radius: 1.5rem; box-shadow: var(--shadow-soft); }
.team-photo img { border: 0; border-radius: 0; box-shadow: none; transition: transform 1.2s var(--ease); }
.team-photo:hover img { transform: scale(1.04); }

/* gradientový pás s jemným leskem */
.band { position: relative; overflow: hidden; }
.band::after { content: ""; position: absolute; inset: -40% -10% auto auto; width: 26rem; height: 26rem; border-radius: 50%; background: radial-gradient(closest-side, oklch(100% 0 0 / .22), transparent); pointer-events: none; }
.band > * { position: relative; z-index: 1; }

/* karty v mřížce najíždějí postupně */
.js .grid > .reveal:nth-child(2), .js .stats > .reveal:nth-child(2) { transition-delay: .07s; }
.js .grid > .reveal:nth-child(3), .js .stats > .reveal:nth-child(3) { transition-delay: .14s; }
.js .grid > .reveal:nth-child(4), .js .stats > .reveal:nth-child(4) { transition-delay: .21s; }
.js .grid > .reveal:nth-child(5) { transition-delay: .28s; }
.js .grid > .reveal:nth-child(6) { transition-delay: .35s; }

/* úvodní text se při načtení zvedne */
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.hero-text > * { animation: rise .8s var(--ease) both; }
.hero-text > :nth-child(2) { animation-delay: .08s; }
.hero-text > :nth-child(3) { animation-delay: .16s; }
.hero-text > :nth-child(4) { animation-delay: .24s; }
.hero-text > :nth-child(5) { animation-delay: .32s; }
.hero-text > :nth-child(6) { animation-delay: .4s; }

/* tenká linka v hlavičce ukazuje, jak daleko je stránka přečtená */
@supports (animation-timeline: scroll()) {
    .header::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background-image: var(--gradient-brand); transform-origin: 0 50%; transform: scaleX(0); animation: progress linear both; animation-timeline: scroll(root); }
    @keyframes progress { to { transform: scaleX(1); } }
}

/* plynulý přechod mezi stránkami, hlavička zůstává na místě */
@view-transition { navigation: auto; }
.header { view-transition-name: hlavicka; }

.page-404 { min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.page-404 .btn { margin-top: 2rem; }

@media (prefers-reduced-motion: reduce) {
    .hero-text > * { animation: none; }
    .header::after { display: none; }
    .team-photo img, .chip { transition: none; }
    .team-photo:hover img, .svc:hover .chip, .contact:hover .chip, .price:hover .chip { transform: none; }
    .js .grid > .reveal, .js .stats > .reveal { transition-delay: 0s; }
    @view-transition { navigation: none; }
}

/* textové stránky (ochrana osobních údajů) */
.prose h2 { margin-top: 2.5rem; font-size: 1.375rem; line-height: 1.3; font-weight: 700; }
.prose h2 + p, .prose p + p, .prose ul + p { margin-top: .9rem; }
.prose p, .prose li { line-height: 1.7; color: var(--muted-foreground); }
.prose .sub { color: var(--muted-foreground); }
.prose ul { margin-top: .9rem; display: grid; gap: .5rem; }
.prose li { position: relative; padding-left: 1.1rem; }
.prose li::before { content: ""; position: absolute; left: 0; top: .7em; width: .375rem; height: .375rem; border-radius: 999px; background: var(--primary); }
.prose p > a:not(.btn), .note a { font-weight: 600; color: var(--primary-deep); text-decoration: underline; text-underline-offset: 3px; }
.prose .btn { margin-top: 1.5rem; }
.prose li a, .prose p > strong, .prose li > strong { color: var(--foreground); }
.prose li a { font-weight: 600; color: var(--primary-deep); text-decoration: underline; text-underline-offset: 3px; }
