.simpleshop-embed {
  width: 100%;
  min-height: 480px;
  border: 0;
}
:root {
--sand: #ffffff;
--sand-deep: #fcf8fc;
--surface: #ffffff;
--ink: #2a2430;
--muted: #6b6472;
--line: #efe5f4;
--field-border: #d4c8dc;
--rose: #f4a4c8;
--rose-soft: #fdeef6;
--lilac: #c9a8e8;
--lilac-soft: #f5eefb;
--magenta: #d946a8;
--violet: #7c3aed;
--plum: #6d3f8f;
--plum-deep: #4a2868;
--plum-soft: #f6ecf9;
--sage: #b892c4;
--sage-soft: #faf4fc;
--gold: #c9a227;
--gold-light: #e4c56a;
--gold-deep: #9a7b1a;
--gold-glow: rgba(201, 162, 39, .32);
--watercolor-blur: 48px;
--radius: 18px;
--radius-lg: 32px;
--shadow: 0 1px 2px rgba(74, 40, 104, .04), 0 14px 40px rgba(124, 58, 237, .07);
--shadow-sm: 0 1px 2px rgba(74, 40, 104, .04), 0 8px 22px rgba(217, 70, 168, .06);
--wrap: 1120px;
--narrow: 760px;
--mobile-header-h: 72px;
--nav-hamburger-bp: 960px;
--nav-toggle-line-grad: linear-gradient(90deg, var(--violet) 0%, var(--magenta) 52%, #9d2468 100%);
--nav-toggle-ring-grad: linear-gradient(45deg, var(--violet) 0%, var(--magenta) 55%, #9d2468 100%);
--font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;
--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
--price-gradient-start: #7a3568;
--price-gradient-end: #c73d92;
--h2-gradient-start: #3a2048;
--h2-gradient-end: var(--plum);
--floral-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 48' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0%25' y1='50%25' x2='100%25' y2='50%25'%3E%3Cstop stop-color='%237c3aed'/%3E%3Cstop offset='.45' stop-color='%23d946a8'/%3E%3Cstop offset='1' stop-color='%23f4a4c8'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M8 26c28-14 52-6 72 2 20 8 40 10 60-2 16-10 34-18 52-14' stroke='url(%23g)' stroke-width='1.4' stroke-linecap='round'/%3E%3Cpath d='M72 20c-4 8-2 16 4 20M168 22c4 6 2 14-6 18' stroke='url(%23g)' stroke-width='1.1' stroke-linecap='round' opacity='.85'/%3E%3Cellipse cx='120' cy='24' rx='5' ry='8' fill='%23f4a4c8' opacity='.55'/%3E%3C/svg%3E");
}
*,
*::before,
*::after { box-sizing: border-box; }
html {
scroll-behavior: smooth;
scroll-padding-top: 92px;
-webkit-text-size-adjust: 100%;
overflow-x: clip;
}
body {
margin: 0;
max-width: 100%;
overflow-x: clip;
background: var(--sand);
color: var(--ink);
font-family: var(--font-body);
font-size: 1.0625rem;
font-weight: 400;
line-height: 1.72;
-webkit-font-smoothing: antialiased;
position: relative;
}
img { max-width: 100%; display: block; }
a { color: var(--plum-deep); }
a:hover { color: var(--gold-deep); }
h1, h2, h3, h4 {
font-family: var(--font-display);
font-weight: 600;
line-height: 1.18;
letter-spacing: -.01em;
color: var(--ink);
margin: 0 0 .6em;
text-wrap: balance;
}
h1, h3, .quote {
color: #3a2048;
background-image: linear-gradient(112deg, #3a2048 0%, #5c2a52 42%, #6d3450 100%);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
h1, h3, .quote {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
}
h1 { font-size: clamp(2.1rem, 5.2vw, 3.4rem); }
h2 {
font-size: clamp(1.6rem, 3.4vw, 2.35rem);
color: var(--h2-gradient-start);
background-image: linear-gradient(112deg, var(--h2-gradient-start) 0%, var(--h2-gradient-end) 100%);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
h2 {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
h2 {
color: var(--h2-gradient-start);
background-image: none;
}
}
h3 { font-size: clamp(1.2rem, 2.2vw, 1.5rem); }
h4 { font-size: 1.08rem; }
p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1.15em; padding-left: 1.25em; }
li { margin-bottom: .5em; }
strong { font-weight: 600; }
:focus-visible {
outline: 3px solid var(--gold);
outline-offset: 3px;
border-radius: 4px;
}
.wrap {
width: min(100% - 2.5rem, var(--wrap));
margin-inline: auto;
}
.narrow { max-width: var(--narrow); }
.narrow--centered { margin-inline: auto; }
.center { text-align: center; margin-inline: auto; }
.skip-link {
position: absolute;
left: -9999px;
top: 0;
background: var(--plum);
color: #fff;
padding: .75rem 1.25rem;
z-index: 100;
border-radius: 0 0 var(--radius) 0;
}
.skip-link:focus { left: 0; color: #fff; }
.visually-hidden {
position: absolute;
width: 1px; height: 1px;
padding: 0; margin: -1px;
overflow: hidden;
clip: rect(0 0 0 0);
white-space: nowrap;
border: 0;
}
.site-header {
position: sticky;
top: 0;
z-index: 50;
background: rgba(255, 255, 255, .9);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--line);
}
.header-inner {
display: flex;
align-items: center;
gap: clamp(.35rem, 1vw, .85rem);
min-height: 72px;
}
.brand {
display: flex;
flex-direction: column;
flex: 0 0 auto;
text-decoration: none;
color: var(--ink);
margin-right: 0;
line-height: 1.15;
position: relative;
z-index: 2;
}
.brand-name {
font-family: var(--font-display);
font-size: 1.25rem;
font-weight: 600;
color: var(--violet);
background-image: linear-gradient(112deg, var(--violet) 0%, var(--magenta) 52%, #9d2468 100%);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
.brand-name {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
.brand-name {
color: var(--violet);
background-image: none;
}
}
.brand-tagline {
font-size: .42rem;
letter-spacing: .11em;
text-transform: uppercase;
color: var(--plum-deep);
}
.nav {
display: flex;
align-items: center;
justify-content: flex-start;
gap: .15rem;
flex: 1 1 auto;
min-width: 0;
max-width: 100%;
}
@media (min-width: 961px) {
.site-header .nav {
margin-top: .22rem;
}
.site-header .nav > a {
font-weight: 600;
}
}
@media (min-width: 1201px) {
.site-header .nav {
margin-top: .48rem;
}
}
.nav a {
display: inline-block;
padding: .55rem .7rem;
border-radius: var(--radius);
color: var(--ink);
text-decoration: none;
font-size: .95rem;
font-weight: 400;
white-space: nowrap;
}
.site-header .nav > a {
position: relative;
--nav-line: var(--plum);
}
.site-header .nav > a::after {
content: "";
position: absolute;
left: .7rem;
right: .7rem;
bottom: .38rem;
height: 2px;
border-radius: 2px;
background: var(--nav-line);
transform: scaleX(0);
transform-origin: left center;
transition: transform .32s cubic-bezier(.4, 0, .2, 1);
pointer-events: none;
}
.site-header .nav > a:hover,
.site-header .nav > a:focus-visible {
background: transparent;
color: var(--ink);
}
.site-header .nav > a:hover::after,
.site-header .nav > a:focus-visible::after { transform: scaleX(1); }
.site-header .nav > a[aria-current="page"] {
color: var(--ink);
}
.site-header .nav > a[aria-current="page"]::after {
transform: scaleX(1);
transition-duration: .42s;
}
.site-header .nav > a[href="/eft-terapie"] { --nav-line: var(--plum); }
.site-header .nav > a[href="/masaze"] { --nav-line: #8a6b4a; }
.site-header .nav > a[href="/eft-pro-deti"] { --nav-line: var(--magenta); }
.site-header .nav > a[href="/kurzy"] { --nav-line: var(--gold-deep); }
.site-header .nav > a[href="/knihy"] { --nav-line: #7a5f94; }
.site-header .nav > a[href="/clanky"] { --nav-line: var(--violet); }
.site-header .nav > a[href="/kontakt"] { --nav-line: var(--gold); }
.site-header .nav > a[href="/eft-terapie"]:hover,
.site-header .nav > a[href="/eft-terapie"]:focus-visible,
.site-header .nav > a[href="/eft-terapie"][aria-current="page"] { color: var(--plum-deep); }
.site-header .nav > a[href="/masaze"]:hover,
.site-header .nav > a[href="/masaze"]:focus-visible,
.site-header .nav > a[href="/masaze"][aria-current="page"] { color: #6f5438; }
.site-header .nav > a[href="/eft-pro-deti"]:hover,
.site-header .nav > a[href="/eft-pro-deti"]:focus-visible,
.site-header .nav > a[href="/eft-pro-deti"][aria-current="page"] { color: #b83284; }
.site-header .nav > a[href="/kurzy"]:hover,
.site-header .nav > a[href="/kurzy"]:focus-visible,
.site-header .nav > a[href="/kurzy"][aria-current="page"] { color: var(--gold-deep); }
.site-header .nav > a[href="/knihy"]:hover,
.site-header .nav > a[href="/knihy"]:focus-visible,
.site-header .nav > a[href="/knihy"][aria-current="page"] { color: #5c4570; }
.site-header .nav > a[href="/clanky"]:hover,
.site-header .nav > a[href="/clanky"]:focus-visible,
.site-header .nav > a[href="/clanky"][aria-current="page"] { color: var(--violet); }
.site-header .nav > a[href="/kontakt"]:hover,
.site-header .nav > a[href="/kontakt"]:focus-visible,
.site-header .nav > a[href="/kontakt"][aria-current="page"] { color: var(--gold-deep); }
@media (prefers-reduced-motion: reduce) {
.site-header .nav > a::after { transition: none; }
}
.site-header .nav > .nav-objednat { display: none; }
.nav-item--sub { position: relative; }
.nav-sub {
display: none;
position: absolute;
top: 100%;
left: 0;
min-width: 11rem;
padding: .35rem 0;
background: var(--sand);
border: 1px solid var(--line);
border-radius: var(--radius);
box-shadow: var(--shadow);
z-index: 50;
}
.nav-item--sub:hover .nav-sub,
.nav-item--sub:focus-within .nav-sub { display: block; }
.nav-sub a {
display: block;
padding: .55rem 1rem;
white-space: nowrap;
border-radius: 0;
}
.nav-sub a:hover { background: transparent; }
.nav-toggle {
display: none;
align-items: center;
justify-content: center;
text-align: center;
gap: .5rem;
margin-left: auto;
flex-shrink: 0;
background: #fff;
border: 1px solid var(--line);
border-radius: var(--radius);
padding: .55rem .75rem;
font: inherit;
font-size: .95rem;
font-weight: 600;
color: var(--plum-deep);
cursor: pointer;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
user-select: none;
box-shadow: 0 1px 4px rgba(74, 40, 104, .06);
transition: border-color .2s ease, box-shadow .2s ease, transform .15s ease;
}
.nav-toggle:hover {
border-color: var(--field-border);
box-shadow: 0 2px 10px rgba(124, 58, 237, .12);
}
.nav-toggle:active { transform: scale(.98); }
.nav-toggle:focus-visible {
outline: 3px solid var(--gold);
outline-offset: 2px;
}
.nav-toggle span {
position: relative;
display: block;
flex-shrink: 0;
width: 1.55rem;
height: 1.22rem;
border: 1.5px solid transparent;
border-radius: 9px;
background:
var(--nav-toggle-line-grad) center / .9rem 2px no-repeat,
linear-gradient(#fff, #fff) padding-box,
var(--nav-toggle-ring-grad) border-box;
background-clip: padding-box, padding-box, border-box;
box-shadow: none;
}
.nav-toggle span::before,
.nav-toggle span::after {
content: "";
position: absolute;
left: 50%;
transform: translateX(-50%);
width: .9rem;
height: 2px;
border-radius: 1px;
background: var(--nav-toggle-line-grad);
}
.nav-toggle span::before { top: .3rem; }
.nav-toggle span::after { bottom: .3rem; }
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
text-align: center;
gap: .5rem;
min-height: 48px;
padding: .78rem 1.4rem;
border-radius: 999px;
border: 1px solid transparent;
font: inherit;
font-weight: 600;
font-size: 1rem;
text-decoration: none;
cursor: pointer;
transition: transform .15s ease, background-color .2s ease, border-color .15s ease, color .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: none; }
.btn-primary {
position: relative;
isolation: isolate;
background-color: #b8922a;
color: #3d2e0a;
box-shadow: 0 2px 8px rgba(201, 162, 39, .18);
}
.btn-primary::before {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
background: linear-gradient(180deg, #ead48a 0%, var(--gold) 100%);
z-index: -1;
pointer-events: none;
transition: opacity .2s ease;
}
.btn-primary:hover {
color: #0f0c05;
box-shadow: 0 3px 12px rgba(201, 162, 39, .24);
}
.btn-primary:hover::before {
opacity: 0;
}
.btn-secondary {
background: var(--surface);
color: var(--ink);
border-color: var(--line);
}
.btn-secondary:hover { background: var(--sand-deep); color: var(--ink); }
.btn-ghost {
background: transparent;
color: var(--plum-deep);
border-color: var(--gold);
}
.btn-ghost:hover { background: rgba(201, 162, 39, .12); }
.btn-row {
display: flex;
flex-wrap: wrap;
gap: .75rem;
margin-top: 1.75rem;
}
.btn-row.center { justify-content: center; }
.flow-top-lg { margin-top: 2rem; }
.flow-top-md { margin-top: 1.5rem; }
.flow-top-sm { margin-top: .5rem; }
.legal-back { margin-top: 2.5rem; }
.card--narrow {
width: fit-content;
max-width: 100%;
margin-inline: auto;
text-align: center;
}
.card--narrow h3 { text-align: center; }
.card--narrow .check-list {
display: inline-block;
text-align: left;
margin-inline: auto;
}
.contact-card .eyebrow { margin: 0; }
.form .btn-row--tight { margin-top: .5rem; }
.page-404 .footer-bottom { margin-top: 0; border-top: 0; }
.error-fallback {
font-family: system-ui, sans-serif;
max-width: 40rem;
margin: 2rem auto;
padding: 0 1rem;
}
.section { padding: clamp(3.5rem, 8vw, 6rem) 0; }
.section-tight { padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.section-alt {
position: relative;
background-color: #fff;
background-image: none;
overflow: hidden;
}
.section-alt::before {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background-image:
linear-gradient(rgba(255, 255, 255, .64), rgba(255, 255, 255, .64)),
url("../sekce-skvrny.webp");
background-repeat: no-repeat;
background-position: center top;
background-size: 100% 100%;
-webkit-mask-image: linear-gradient(
to bottom,
#000 0%,
#000 52%,
rgba(0, 0, 0, .55) 72%,
rgba(0, 0, 0, .2) 88%,
transparent 100%
);
mask-image: linear-gradient(
to bottom,
#000 0%,
#000 52%,
rgba(0, 0, 0, .55) 72%,
rgba(0, 0, 0, .2) 88%,
transparent 100%
);
}
.section-alt > * {
position: relative;
z-index: 1;
}
.section-plum {
background-color: #fff;
background-image: linear-gradient(rgba(255, 255, 255, .8), rgba(255, 255, 255, .8)), url("../pozadi-vetvicky.webp");
background-repeat: no-repeat;
background-position: center bottom;
background-size: 100% auto;
}
.eyebrow {
display: inline-block;
font-size: .78rem;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--plum);
font-weight: 600;
margin-bottom: .9rem;
}
.section > .wrap:not(.legal) > h2,
.section-tight > .wrap:not(.legal) > h2 {
text-align: center;
}
.section > .wrap.legal > h2 { text-align: left; }
.section > .wrap.legal > h2::after { display: none; }
.section > .wrap:not(.legal) > h2::after,
.section-tight > .wrap:not(.legal) > h2::after {
content: "";
display: block;
width: 3.4rem;
height: .85rem;
margin-top: .7rem;
margin-inline: auto;
background:
radial-gradient(circle at 10% 50%, var(--gold) 0 2px, transparent 2.4px),
radial-gradient(circle at 50% 50%, var(--gold-light) 0 2.5px, transparent 2.9px),
radial-gradient(circle at 90% 50%, var(--gold) 0 2px, transparent 2.4px);
-webkit-background-clip: border-box;
background-clip: border-box;
}
.lead { font-size: 1.18rem; color: var(--ink); }
.muted { color: var(--muted); }
.hero {
position: relative;
padding: clamp(3.5rem, 9vw, 7rem) 0 clamp(3rem, 7vw, 5rem);
background-color: #fff;
background-image: linear-gradient(rgba(255, 255, 255, .58), rgba(255, 255, 255, .58)), url("../pozadi-uvod.webp");
background-repeat: no-repeat;
background-position: center top;
background-size: 100% auto;
}
.hero-grid,
.hero > .wrap { position: relative; z-index: 1; }
.hero-grid {
display: grid;
grid-template-columns: 1.15fr .85fr;
gap: clamp(2rem, 5vw, 4rem);
align-items: center;
}
.hero-grid:has(.hero-figure) {
grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
align-items: start;
}
.hero-grid:not(:has(.hero-figure)) {
grid-template-columns: 1fr;
}
.hero-grid:not(:has(.hero-figure)) > .hero-intro {
width: 100%;
max-width: 40rem;
margin-inline: auto;
}
.hero h1 { margin-bottom: .5em; }
.hero-figure {
position: relative;
aspect-ratio: 4 / 5;
border-radius: var(--radius-lg);
background: linear-gradient(145deg, var(--rose-soft), var(--lilac-soft) 48%, var(--plum-soft));
box-shadow: var(--shadow);
border: 1px solid rgba(239, 229, 244, .9);
overflow: hidden;
display: grid;
place-items: center;
text-align: center;
padding: 2rem;
color: var(--muted);
font-size: .9rem;
}
.hero-figure:has(img) { padding: 0; }
.hero-figure img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.hero-figure--spotlight {
padding: 0;
display: flex;
flex-direction: column;
text-align: left;
aspect-ratio: auto;
min-height: 0;
overflow: hidden;
align-self: start;
width: 100%;
}
@media (min-width: 761px) {
.hero-grid:has(.hero-figure) .hero-figure {
/* zarovnání s h1 — přeskočit výšku .eyebrow + margin-bottom (text vlevo, vizuál vpravo) */
margin-top: 2.15rem;
align-self: start;
}
}
.hero-spotlight {
position: relative;
display: flex;
flex-direction: column;
gap: clamp(.65rem, 1.5vw, .85rem);
flex: 0 0 auto;
min-height: 0;
padding: clamp(.85rem, 2vw, 1.25rem);
}
.hero-spotlight__viewport {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr;
align-items: stretch;
min-height: clamp(14rem, 38vw, 20rem);
overflow: hidden;
isolation: isolate;
}
.hero-spotlight__slide {
grid-area: 1 / 1;
align-self: stretch;
display: grid;
grid-template-columns: minmax(6.75rem, 38%) minmax(0, 1fr);
gap: clamp(.85rem, 2.5vw, 1.35rem);
align-items: center;
padding: clamp(.85rem, 2vw, 1.15rem);
text-decoration: none;
color: var(--ink);
border-radius: calc(var(--radius-md) - 2px);
background: rgba(255, 255, 255, .82);
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .65);
opacity: 0;
visibility: hidden;
pointer-events: none;
z-index: 0;
transition:
opacity .65s ease,
visibility 0s linear .65s;
min-width: 0;
}
.hero-spotlight__slide.is-active {
opacity: 1;
visibility: visible;
pointer-events: auto;
z-index: 2;
transition:
opacity .65s ease,
visibility 0s linear 0s;
}
.hero-spotlight__slide:focus-visible {
outline: 2px solid var(--plum);
outline-offset: 3px;
}
.hero-spotlight__visual {
position: relative;
width: 100%;
max-width: 11.5rem;
margin-inline: auto;
border-radius: var(--radius-md);
overflow: hidden;
box-shadow: 0 12px 32px rgba(76, 48, 88, .14);
background: linear-gradient(160deg, rgba(255,255,255,.7), rgba(239, 229, 244, .9));
aspect-ratio: 2 / 3;
max-height: clamp(9.5rem, 28vw, 14.5rem);
}
.hero-spotlight__visual img {
position: relative;
inset: auto;
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.hero-spotlight__visual-placeholder {
display: block;
width: 100%;
height: 100%;
min-height: 8rem;
background:
radial-gradient(ellipse 80% 60% at 30% 20%, rgba(255,255,255,.75), transparent 55%),
linear-gradient(145deg, var(--lilac-soft), var(--plum-soft) 70%);
}
.hero-spotlight__copy {
display: flex;
flex-direction: column;
justify-content: center;
gap: clamp(.35rem, 1vw, .5rem);
text-align: left;
min-width: 0;
padding-block: .15rem;
}
.hero-spotlight__eyebrow {
font-size: clamp(.68rem, 1.4vw, .74rem);
font-weight: 600;
letter-spacing: .07em;
text-transform: uppercase;
color: var(--plum);
line-height: 1.3;
}
.hero-spotlight__title {
font-family: var(--font-display);
font-size: clamp(1.02rem, 2.4vw, 1.32rem);
font-weight: 600;
line-height: 1.28;
color: var(--ink);
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
overflow-wrap: anywhere;
}
.hero-spotlight__perex {
font-size: clamp(.8rem, 1.7vw, .92rem);
line-height: 1.55;
color: var(--muted);
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
overflow: hidden;
margin: 0;
}
.hero-spotlight__cta {
align-self: flex-start;
margin-top: clamp(.25rem, 1vw, .5rem);
padding: .4rem .85rem;
font-size: clamp(.78rem, 1.6vw, .86rem);
font-weight: 600;
color: var(--plum);
background: rgba(255, 255, 255, .9);
border: 1px solid rgba(108, 75, 124, .22);
border-radius: 999px;
line-height: 1.3;
text-decoration: none;
white-space: nowrap;
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
}
.hero-spotlight__slide:hover .hero-spotlight__cta,
.hero-spotlight__slide:focus-visible .hero-spotlight__cta {
color: var(--ink);
border-color: rgba(108, 75, 124, .4);
background: #fff;
}
.hero-spotlight__dots {
display: flex;
justify-content: center;
align-items: center;
gap: .5rem;
flex-shrink: 0;
padding-top: .1rem;
}
.hero-spotlight__dot {
width: .45rem;
height: .45rem;
padding: 0;
border: none;
border-radius: 999px;
background: rgba(108, 75, 124, .28);
cursor: pointer;
transition: transform .25s ease, background .25s ease, width .25s ease;
}
.hero-spotlight__dot.is-active {
width: 1.35rem;
background: var(--plum);
border-radius: 999px;
}
.hero-spotlight__dot:focus-visible {
outline: 2px solid var(--plum);
outline-offset: 2px;
}
@media (max-width: 720px) {
.hero-spotlight__slide {
grid-template-columns: minmax(5.5rem, 34%) minmax(0, 1fr);
gap: clamp(.65rem, 2vw, .95rem);
padding: clamp(.75rem, 2vw, 1rem);
}
.hero-spotlight__visual {
max-height: clamp(8.5rem, 32vw, 12rem);
max-width: 9rem;
}
.hero-spotlight__title { -webkit-line-clamp: 4; }
.hero-spotlight__perex { -webkit-line-clamp: 3; }
}
@media (max-width: 520px) {
.hero-spotlight__viewport {
min-height: clamp(16.5rem, 72vw, 22rem);
}
.hero-spotlight__slide {
grid-template-columns: 1fr;
grid-template-rows: auto minmax(0, 1fr);
justify-items: center;
text-align: center;
}
.hero-spotlight__copy {
text-align: center;
align-items: center;
width: 100%;
}
.hero-spotlight__cta { align-self: center; white-space: normal; text-align: center; }
.hero-spotlight__visual {
max-width: min(9.25rem, 52vw);
max-height: none;
width: min(9.25rem, 52vw);
}
}
@media (prefers-reduced-motion: reduce) {
.hero-spotlight__slide { transition: none; }
}
.hero-facts {
position: relative;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: clamp(.85rem, 2.5vw, 1.35rem) clamp(1rem, 3vw, 2rem);
width: min(100%, 56rem);
margin: clamp(2rem, 4vw, 2.75rem) auto 0;
padding: clamp(1.35rem, 3.2vw, 1.9rem) clamp(1.1rem, 3.5vw, 2.25rem);
text-align: center;
border-radius: var(--radius-lg);
isolation: isolate;
overflow: hidden;
background: rgba(255, 255, 255, .28);
box-shadow: 0 1px 2px rgba(74, 40, 104, .03), 0 6px 18px rgba(124, 58, 237, .04);
}
.hero-facts::before {
content: "";
position: absolute;
inset: -35%;
z-index: -1;
background:
radial-gradient(ellipse 58% 72% at 14% 38%, rgba(244, 164, 200, .16), transparent 64%),
radial-gradient(ellipse 52% 68% at 86% 52%, rgba(201, 168, 232, .17), transparent 62%),
radial-gradient(ellipse 48% 58% at 48% 92%, rgba(124, 58, 237, .06), transparent 58%),
radial-gradient(ellipse 38% 48% at 72% 12%, rgba(217, 70, 168, .07), transparent 55%),
linear-gradient(158deg, rgba(253, 238, 246, .45), rgba(245, 238, 251, .4) 52%, rgba(246, 236, 249, .42));
filter: blur(42px);
opacity: .55;
pointer-events: none;
}
.hero-facts::after {
content: "";
position: absolute;
inset: 0;
border-radius: inherit;
border: 1px solid rgba(239, 229, 244, .55);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4);
pointer-events: none;
}
.hero-facts > div {
position: relative;
z-index: 1;
min-width: 0;
padding: .15rem .35rem;
}
.hero-facts > div + div::before {
content: "";
position: absolute;
left: 0;
top: 12%;
bottom: 12%;
width: 1px;
background: linear-gradient(180deg, transparent, rgba(201, 168, 232, .22) 22%, rgba(244, 164, 200, .16) 78%, transparent);
}
.hero-facts dt {
margin: 0 0 .35rem;
font-size: .7rem;
font-weight: 600;
letter-spacing: .12em;
text-transform: uppercase;
color: #443d4d;
}
.hero-facts dd {
margin: 0;
font-family: var(--font-display);
font-size: clamp(1.02rem, 2.1vw, 1.22rem);
font-weight: 600;
line-height: 1.3;
color: var(--ink);
background-image: linear-gradient(118deg, #2a2430 0%, #352842 42%, #4a2868 100%);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
.hero-facts dd {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
}
@media (max-width: 680px) {
.hero-facts {
grid-template-columns: 1fr;
gap: 1rem;
padding-block: 1.35rem;
}
.hero-facts > div + div::before {
left: 15%;
right: 15%;
top: 0;
bottom: auto;
width: auto;
height: 1px;
background: linear-gradient(90deg, transparent, rgba(201, 168, 232, .22) 20%, rgba(244, 164, 200, .16) 80%, transparent);
}
}
.grid {
display: grid;
gap: 1.5rem;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.card {
background: var(--surface);
border: none;
border-radius: var(--radius-lg);
padding: clamp(1.5rem, 3vw, 2.15rem);
box-shadow: 0 10px 28px rgba(74, 40, 104, .045);
}
.card h3 { margin-bottom: .5em; }
.card-link {
display: inline-flex;
align-items: center;
gap: .4rem;
margin-top: 1rem;
font-weight: 600;
text-decoration: none;
}
.card-link::after { content: "→"; transition: transform .15s ease; }
.card-link:hover::after { transform: translateX(3px); }
.card-quiet {
background: rgba(255, 255, 255, .72);
box-shadow: none;
}
.person {
display: grid;
grid-template-columns: 280px 1fr;
gap: clamp(1.5rem, 4vw, 3rem);
align-items: start;
background: var(--surface);
border: none;
border-radius: var(--radius-lg);
padding: clamp(1.5rem, 3vw, 2.5rem);
box-shadow: 0 10px 28px rgba(74, 40, 104, .045);
}
.person + .person { margin-top: 2rem; }
.person-portrait {
position: relative;
aspect-ratio: 1;
border: none;
border-radius: 48% 52% 50% 50% / 46% 42% 58% 54%;
background:
radial-gradient(ellipse at 24% 18%, rgba(244, 164, 200, .72), transparent 58%),
radial-gradient(ellipse at 82% 84%, rgba(201, 168, 232, .7), transparent 56%),
linear-gradient(165deg, var(--rose-soft), var(--lilac-soft));
display: grid;
place-items: center;
text-align: center;
padding: 1.5rem;
color: var(--muted);
font-size: .85rem;
-webkit-mask-image: radial-gradient(ellipse 84% 82% at 50% 48%, #000 62%, transparent 80%);
mask-image: radial-gradient(ellipse 84% 82% at 50% 48%, #000 62%, transparent 80%);
}
.person-portrait:has(img) {
padding: 0;
background: none;
-webkit-mask-image: none;
mask-image: none;
overflow: hidden;
}
.person-portrait img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.person-portrait--jana img { object-position: 50% 14%; }
.person-role {
color: var(--plum);
font-weight: 600;
margin-bottom: 1rem;
}
.credential-panel {
margin-top: 1.75rem;
padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2.5vw, 1.5rem);
border-radius: var(--radius-lg);
background: var(--sand);
border: 1px solid var(--line);
}
.credential-panel__title {
margin: 0 0 .45rem;
font-family: var(--font-display);
font-size: clamp(1.05rem, 2.2vw, 1.2rem);
font-weight: 600;
color: var(--plum-deep);
}
.credential-panel__lead {
margin: 0 0 1rem;
font-size: .92rem;
line-height: 1.55;
color: var(--muted);
max-width: 52ch;
}
.credential-gallery {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: clamp(.75rem, 2.5vw, 1.15rem);
margin: 0;
padding: 0;
list-style: none;
}
.credential-gallery__item {
display: flex;
flex-direction: column;
gap: .45rem;
min-width: 0;
}
.credential-card {
width: 100%;
display: block;
padding: .35rem;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
box-shadow: 0 6px 20px rgba(74, 40, 104, .06);
transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.credential-card:hover {
border-color: rgba(124, 58, 237, .28);
box-shadow: 0 10px 28px rgba(74, 40, 104, .1);
transform: translateY(-1px);
}
.credential-card img {
border-radius: calc(var(--radius) - 2px);
aspect-ratio: 3 / 2;
object-fit: contain;
object-position: center;
background: #fff;
}
.credential-gallery__caption {
margin: 0;
font-size: .82rem;
line-height: 1.4;
color: var(--muted);
text-align: center;
}
@media (max-width: 540px) {
.credential-gallery {
grid-template-columns: 1fr;
max-width: 22rem;
margin-inline: auto;
}
}
.quote {
font-family: var(--font-display);
font-size: clamp(1.4rem, 3.4vw, 2.1rem);
line-height: 1.35;
text-align: center;
color: var(--plum-deep);
margin: 0 auto;
max-width: 26ch;
}
.check-list { list-style: none; padding: 0; }
.check-list li {
position: relative;
padding-left: 1.9rem;
margin-bottom: .75rem;
}
.check-list li::before {
content: "";
position: absolute;
left: 0;
top: .62em;
width: .7rem;
height: .7rem;
border-radius: 50%;
border: 2px solid var(--gold);
background: rgba(228, 197, 106, .25);
}
.steps {
list-style: none;
padding: 0;
counter-reset: step;
display: grid;
gap: 1.25rem;
}
.steps > li {
counter-increment: step;
position: relative;
padding-left: 3.4rem;
margin: 0;
}
.steps > li::before {
content: counter(step);
position: absolute;
left: 0;
top: 0;
width: 2.4rem;
height: 2.4rem;
border-radius: 50%;
background: var(--plum-soft);
color: var(--plum-deep);
font-family: var(--font-display);
font-weight: 600;
display: grid;
place-items: center;
}
.steps h3 { margin-bottom: .25em; font-size: 1.12rem; }
.price-card {
background: var(--surface);
border: none;
border-radius: var(--radius-lg);
padding: clamp(1.5rem, 3vw, 2.15rem);
box-shadow: 0 10px 28px rgba(74, 40, 104, .045);
display: flex;
flex-direction: column;
}
.price-card.is-highlight {
background: linear-gradient(180deg, rgba(246, 236, 249, .95), var(--surface) 62%);
box-shadow: 0 14px 34px rgba(109, 63, 143, .07);
}
.price-card h3 { margin-bottom: .35em; }
.price-value {
font-family: var(--font-display);
font-size: 1.55rem;
font-weight: 600;
color: var(--plum-deep);
margin: 0 0 .2em;
}
.price-note { color: var(--muted); font-size: .95rem; }
.price-list { list-style: none; padding: 0; margin: 0; }
.price-list li {
display: flex;
justify-content: space-between;
gap: 1.5rem;
padding: .85rem 0;
border-bottom: 1px solid var(--line);
margin: 0;
}
.price-list li:last-child { border-bottom: 0; }
.price-list .price-amount { white-space: nowrap; }
.event {
display: grid;
grid-template-columns: 220px 1fr;
gap: clamp(1.25rem, 3vw, 2.5rem);
background: var(--surface);
border: none;
border-radius: var(--radius-lg);
padding: clamp(1.5rem, 3vw, 2.25rem);
box-shadow: 0 10px 28px rgba(74, 40, 104, .045);
}
.event + .event { margin-top: 1.5rem; }
.event-date {
background: var(--plum-soft);
border-radius: var(--radius);
padding: 1.25rem;
text-align: center;
align-self: start;
}
.event-day {
font-family: var(--font-display);
font-size: 1.35rem;
font-weight: 600;
color: var(--plum-deep);
display: block;
}
.event-time { color: var(--muted); font-size: .95rem; }
.event-meta { list-style: none; padding: 0; margin: 1.15rem 0 0; }
.event-meta li {
padding-left: 1.6rem;
position: relative;
margin-bottom: .45rem;
}
.event-meta li::before {
content: "•";
position: absolute;
left: .45rem;
color: var(--plum);
}
.contact-strip {
background-color: #241430;
background-image:
linear-gradient(115deg, rgba(36, 18, 52, .62), rgba(58, 28, 82, .7)),
url("../pozadi-paticka.webp");
background-repeat: no-repeat;
background-position: center;
background-size: cover;
color: #fff;
border-radius: var(--radius-lg);
padding: clamp(2rem, 5vw, 3.25rem);
display: grid;
grid-template-columns: 1fr auto;
gap: 2rem;
align-items: center;
}
.contact-strip h2 {
color: #fff;
-webkit-text-fill-color: #fff;
background-image: none;
margin-bottom: .35em;
}
.contact-strip p { color: rgba(255, 255, 255, .88); margin-bottom: 0; }
.contact-strip .btn-row { margin-top: 0; }
.contact-strip .btn-primary {
background-color: #e6d08a;
color: #3d2e0a;
box-shadow: none;
}
.contact-strip .btn-primary::before {
display: none;
}
.contact-strip .btn-primary:hover {
background-color: #b8922a;
color: #0f0c05;
}
.contact-strip .btn-secondary {
background: transparent;
color: #fff;
border-color: rgba(255, 255, 255, .5);
}
.contact-strip .btn-secondary:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.contact-card { display: flex; flex-direction: column; gap: .35rem; }
.contact-card .contact-name {
font-family: var(--font-display);
font-size: 1.25rem;
font-weight: 600;
}
.contact-line {
display: flex;
align-items: baseline;
gap: .6rem;
flex-wrap: wrap;
}
.contact-card a { font-weight: 600; text-decoration: none; }
.contact-card a:hover { text-decoration: underline; }
.map-frame {
border: 0;
width: 100%;
height: 380px;
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
}
.form { display: grid; gap: 1.1rem; }
.field { display: grid; gap: .4rem; }
.field label { font-weight: 600; font-size: .95rem; }
.field input,
.field select,
.field textarea {
font: inherit;
color: var(--ink);
background: var(--surface);
border: 1px solid var(--field-border);
border-radius: var(--radius);
padding: .8rem .95rem;
min-height: 48px;
width: 100%;
transition: border-color .15s ease, box-shadow .15s ease;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
border-color: var(--plum);
box-shadow: 0 0 0 3px rgba(108, 75, 124, .15);
outline: none;
}
.field textarea { min-height: 140px; resize: vertical; }
.field-hint { color: var(--muted); font-size: .88rem; }
.form-consent {
display: flex;
gap: .7rem;
align-items: flex-start;
font-size: .93rem;
color: var(--muted);
}
.form-consent input { margin-top: .35rem; width: 18px; height: 18px; }
.legal h2 {
font-size: clamp(1.25rem, 2.4vw, 1.6rem);
margin-top: 2.5rem;
padding-top: 2rem;
border-top: 1px solid var(--line);
}
.legal h2:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.legal h3 { font-size: 1.1rem; margin-top: 1.75rem; }
.legal,
.zdroje,
.contact-card,
.book-card-body {
overflow-wrap: anywhere;
word-break: break-word;
}
.disclaimer {
background: var(--lilac-soft);
border-left: 4px solid var(--lilac);
border-radius: var(--radius);
padding: 1.15rem 1.35rem;
color: var(--ink);
font-size: .98rem;
}
.site-footer {
background-color: #241430;
background-image:
linear-gradient(180deg, rgba(36, 18, 52, .5), rgba(24, 12, 36, .66)),
url("../pozadi-paticka.webp");
background-repeat: no-repeat;
background-position: center;
background-size: cover;
color: rgba(255, 255, 255, .88);
padding: clamp(3rem, 6vw, 4.5rem) 0 2rem;
margin-top: clamp(3rem, 7vw, 5rem);
}
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; color: #fff; }
.footer-grid {
display: grid;
grid-template-columns: 1.3fr 1fr 1fr;
gap: 2.5rem;
}
.site-footer h2 {
color: #fff;
-webkit-text-fill-color: #fff;
background-image: none;
font-size: 1.05rem;
margin-bottom: .9em;
}
.site-footer ul { list-style: none; padding: 0; }
.site-footer li { margin-bottom: .55rem; }
.footer-brand .brand-name {
display: block;
color: #fff;
-webkit-text-fill-color: #fff;
background-image: none;
}
.footer-brand .brand-tagline {
display: block;
font-size: .5rem;
letter-spacing: .1em;
color: rgba(255, 255, 255, .78);
}
.footer-brand p { margin-top: 1rem; }
.footer-bottom {
margin-top: 2.5rem;
padding-top: 1.5rem;
border-top: 1px solid rgba(255, 255, 255, .16);
font-size: .92rem;
display: flex;
flex-wrap: wrap;
gap: .75rem 1.5rem;
justify-content: space-between;
}
.callbar {
display: none;
gap: .5rem;
max-width: 100%;
box-sizing: border-box;
}
.callbar .btn {
flex: 1 1 0;
min-width: 0;
padding: .65rem .5rem;
font-size: .84rem;
min-height: 44px;
}
.breadcrumb-bar {
padding: clamp(1.35rem, 3.5vw, 2rem) 0;
margin-top: clamp(2rem, 5vw, 3.5rem);
border-top: 1px solid var(--line);
background: linear-gradient(180deg, rgba(253, 248, 251, .55), rgba(255, 255, 255, 0));
}
.breadcrumb-bar + .site-footer {
margin-top: 0;
}
.breadcrumb {
padding: 0;
font-size: .82rem;
color: var(--muted);
text-align: center;
}
.breadcrumb ol {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: .35rem .2rem;
list-style: none;
padding: 0;
margin: 0;
}
.breadcrumb li {
display: inline-flex;
align-items: center;
max-width: 100%;
}
.breadcrumb li + li::before {
content: "›";
margin: 0 .2rem;
color: var(--muted);
opacity: .55;
font-size: .9em;
}
.breadcrumb a,
.breadcrumb [aria-current="page"] {
display: inline-block;
padding: .32rem .72rem;
border-radius: 999px;
background: rgba(255, 255, 255, .94);
border: 1px solid rgba(239, 229, 244, .9);
box-shadow: 0 1px 4px rgba(74, 40, 104, .06);
color: var(--muted);
text-decoration: none;
font-weight: 500;
line-height: 1.35;
transition: color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.breadcrumb a:hover {
color: var(--plum);
border-color: rgba(201, 168, 232, .55);
box-shadow: 0 2px 8px rgba(74, 40, 104, .08);
}
.breadcrumb [aria-current="page"] {
color: var(--ink);
font-weight: 600;
border-color: rgba(201, 168, 232, .5);
background: #fff;
}
.zdroje {
border-left: 3px solid var(--line);
padding-left: 1.25rem;
}
.zdroje ol {
margin: 0;
padding-left: 1.1rem;
font-size: .92rem;
line-height: 1.6;
}
.zdroje li { margin-bottom: .75rem; }
.zdroje .zdroj-pozn { color: var(--muted); }
.pomoc-box {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 1.5rem 1.75rem;
}
.pomoc-box ul {
list-style: none;
padding: 0;
margin: .75rem 0 0;
}
.pomoc-box li { margin-bottom: .5rem; }
@media (max-width: 980px) and (min-width: 761px) {
.hero-grid:has(.hero-figure) {
grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
gap: clamp(1rem, 2.5vw, 1.75rem);
align-items: start;
}
}
@media (max-width: 980px) {
.hero-grid:not(:has(.hero-figure)) { grid-template-columns: 1fr; }
.person { grid-template-columns: 1fr; }
.person-portrait { max-width: 260px; aspect-ratio: 1; }
.footer-grid { grid-template-columns: 1fr 1fr; }
.contact-strip { grid-template-columns: 1fr; }
}
/* Širší desktop: kompaktnější menu, tagline schována dřív kvůli šířce */
@media (max-width: 1200px) and (min-width: 961px) {
.brand-tagline { display: none; }
.nav a { font-size: .84rem; padding: .48rem .38rem; }
}
@media (max-width: 1080px) and (min-width: 961px) {
.nav a { font-size: .78rem; padding: .42rem .28rem; }
}
/* Tablet a menší notebook: hamburger až když se horizontální menu opravdu nevejde */
@media (max-width: 960px) {
.site-header > .wrap.header-inner {
width: 100%;
max-width: var(--wrap);
margin-inline: auto;
padding-left: 1rem;
padding-right: .5rem;
box-sizing: border-box;
}
.header-inner {
gap: .5rem;
min-width: 0;
}
.brand {
flex: 0 1 auto;
min-width: 0;
margin-right: 0;
}
.brand-tagline { display: none; }
.brand-name {
white-space: nowrap;
font-size: clamp(1rem, 4.5vw, 1.25rem);
}
.nav-toggle {
display: inline-flex;
position: relative;
z-index: 2;
margin-left: auto;
flex-shrink: 0;
padding: .55rem .65rem;
font-size: .88rem;
min-height: 44px;
min-width: auto;
}
.nav {
position: fixed;
top: var(--mobile-header-h);
z-index: 45;
left: 0;
right: 0;
bottom: 0;
flex-direction: column;
align-items: stretch;
gap: 0;
flex: unset;
max-width: none;
background: var(--sand);
padding: .5rem 0 0;
box-shadow: var(--shadow);
display: none;
}
.nav.is-open {
display: flex;
height: calc(100vh - var(--mobile-header-h));
height: calc(100dvh - var(--mobile-header-h));
min-height: calc(100vh - var(--mobile-header-h));
min-height: calc(100dvh - var(--mobile-header-h));
max-height: calc(100vh - var(--mobile-header-h));
max-height: calc(100dvh - var(--mobile-header-h));
overflow-y: auto;
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
}
body.nav-menu-open { overflow: hidden; }
.nav a {
padding: .9rem 1.25rem;
border-bottom: 1px solid var(--line);
border-radius: 0;
font-size: 1.05rem;
font-weight: 400;
white-space: normal;
}
.site-header .nav > a::after {
left: 1.25rem;
right: 1.25rem;
bottom: .78rem;
}
.nav > a:last-of-type { border-bottom: 1px solid var(--line); }
.nav .callbar {
display: flex;
flex-shrink: 0;
margin-top: auto;
width: 100%;
max-width: 100%;
padding: .75rem 1.25rem calc(.75rem + env(safe-area-inset-bottom));
border-top: 1px solid var(--line);
background: var(--sand);
}
.nav-item--sub { display: flex; flex-direction: column; }
.nav-sub {
display: block;
position: static;
min-width: 0;
padding: 0;
background: transparent;
border: 0;
box-shadow: none;
}
.nav-sub a {
padding: .75rem 1.25rem .75rem 2rem;
font-size: .98rem;
border-bottom: 1px solid var(--line);
border-radius: 0;
white-space: normal;
}
}
@media (max-width: 760px) {
.hero-grid:has(.hero-figure) {
grid-template-columns: 1fr;
}
.hero-grid:has(.hero-figure) .hero-figure {
margin-top: clamp(1.5rem, 5vw, 2.25rem);
}
.hero-grid:has(.hero-figure) .hero-figure:not(.hero-figure--spotlight) {
aspect-ratio: 16 / 10;
}
html { scroll-padding-top: 80px; }
body {
padding-top: var(--mobile-header-h);
}
body.chrome-collapsed:not(.nav-menu-open) {
padding-top: 0;
}
.site-header,
.site-footer {
max-width: 100%;
}
.contact-strip {
min-width: 0;
}
.contact-strip .btn-row {
width: 100%;
}
.contact-strip .btn {
width: 100%;
}
.price-list li {
align-items: flex-start;
}
.price-list .price-amount {
white-space: normal;
text-align: right;
}
.site-header > .wrap.header-inner {
width: 100%;
max-width: var(--wrap);
margin-inline: auto;
padding-left: 1rem;
padding-right: .5rem;
box-sizing: border-box;
}
.header-inner {
gap: .5rem;
min-width: 0;
}
.brand {
flex: 0 1 auto;
min-width: 0;
margin-right: 0;
}
.brand-name {
white-space: nowrap;
font-size: clamp(1rem, 4.5vw, 1.25rem);
}
.brand-tagline {
font-size: .42rem;
letter-spacing: .05em;
line-height: 1.25;
color: var(--plum-deep);
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nav-toggle {
margin-left: auto;
flex-shrink: 0;
padding: .55rem .65rem;
font-size: .88rem;
min-height: 44px;
min-width: auto;
}
.site-header {
position: fixed;
top: 0;
left: 0;
right: 0;
width: 100%;
z-index: 60;
transition: transform .28s ease;
will-change: transform;
}
body.nav-menu-open .site-header {
transform: translateY(0);
pointer-events: auto;
}
body.chrome-collapsed:not(.nav-menu-open) .site-header {
transform: translateY(-100%);
pointer-events: none;
}
.nav-toggle { display: inline-flex; position: relative; z-index: 2; }
.nav {
position: fixed;
top: var(--mobile-header-h);
z-index: 45;
left: 0;
right: 0;
bottom: 0;
flex-direction: column;
align-items: stretch;
gap: 0;
background: var(--sand);
padding: .5rem 0 0;
box-shadow: var(--shadow);
display: none;
}
.site-header .nav > a {
font-weight: 400;
}
.nav.is-open {
display: flex;
height: calc(100vh - var(--mobile-header-h));
height: calc(100dvh - var(--mobile-header-h));
min-height: calc(100vh - var(--mobile-header-h));
min-height: calc(100dvh - var(--mobile-header-h));
max-height: calc(100vh - var(--mobile-header-h));
max-height: calc(100dvh - var(--mobile-header-h));
overflow-y: auto;
-webkit-overflow-scrolling: touch;
overscroll-behavior: contain;
}
body.nav-menu-open { overflow: hidden; }
.nav a {
padding: .9rem 1.25rem;
border-bottom: 1px solid var(--line);
border-radius: 0;
font-size: 1.05rem;
white-space: normal;
}
.site-header .nav > a::after {
left: 1.25rem;
right: 1.25rem;
bottom: .78rem;
}
.nav > a:last-of-type { border-bottom: 1px solid var(--line); }
.nav .callbar {
display: flex;
flex-shrink: 0;
margin-top: auto;
width: 100%;
max-width: 100%;
padding: .75rem 1.25rem calc(.75rem + env(safe-area-inset-bottom));
border-top: 1px solid var(--line);
background: var(--sand);
}
.nav-item--sub { display: flex; flex-direction: column; }
.nav-sub {
display: block;
position: static;
min-width: 0;
padding: 0;
background: transparent;
border: 0;
box-shadow: none;
}
.nav-sub a {
padding: .75rem 1.25rem .75rem 2rem;
font-size: .98rem;
border-bottom: 1px solid var(--line);
border-radius: 0;
white-space: normal;
}
.event { grid-template-columns: 1fr; }
.price-list li { flex-direction: column; gap: .25rem; }
.btn-row .btn {
width: 100%;
justify-content: center;
text-align: center;
}
}
@media (max-width: 420px) {
.footer-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
* { transition: none !important; }
}

/* ---------- knihy (/knihy) ---------- */

/* Kurzy, knihy, články — celý náhled, poměr stran ze souboru (bez ořezu) */
.media-img-natural {
display: block;
width: 100%;
height: auto;
max-width: 100%;
object-fit: contain;
object-position: center;
}

.hero--books { padding-bottom: clamp(1.5rem, 4vw, 2.25rem); }
.section--tight-top { padding-top: 0; }
.section--watercolor-end {
position: relative;
isolation: isolate;
overflow: hidden;
}
.section--watercolor-end::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: clamp(4rem, 20vw, 11.5rem);
z-index: 0;
pointer-events: none;
background: url("../akvarel-spodni.webp") center bottom / 100% auto no-repeat;
opacity: .42;
-webkit-mask-image: linear-gradient(
to bottom,
transparent 0%,
rgba(0, 0, 0, .45) 32%,
#000 58%,
#000 100%
);
mask-image: linear-gradient(
to bottom,
transparent 0%,
rgba(0, 0, 0, .45) 32%,
#000 58%,
#000 100%
);
}
.section--watercolor-end > .wrap,
.section--watercolor-top > .wrap {
position: relative;
z-index: 1;
}
.section--watercolor-top {
position: relative;
isolation: isolate;
overflow: hidden;
}
.section--watercolor-top::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: 0;
width: 100%;
height: clamp(4rem, 20vw, 11.5rem);
z-index: 0;
pointer-events: none;
background: url("../akvarel-horni.webp") center top / 100% auto no-repeat;
opacity: .42;
-webkit-mask-image: linear-gradient(
to bottom,
#000 0%,
#000 42%,
rgba(0, 0, 0, .45) 68%,
transparent 100%
);
mask-image: linear-gradient(
to bottom,
#000 0%,
#000 42%,
rgba(0, 0, 0, .45) 68%,
transparent 100%
);
}
.catalog-filters {
display: flex;
flex-wrap: wrap;
gap: .45rem;
margin-bottom: 1.75rem;
}
.catalog-filter {
display: inline-flex;
align-items: center;
justify-content: center;
text-align: center;
min-height: 40px;
padding: .4rem .9rem;
border-radius: 999px;
border: 1px solid var(--line);
background: var(--surface);
color: var(--ink);
text-decoration: none;
font-size: .92rem;
font-weight: 600;
transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.catalog-filter:hover {
background: var(--plum-soft);
border-color: #d8c9df;
color: var(--plum-deep);
}
.catalog-filter.is-active {
background: var(--plum);
border-color: var(--plum);
color: #fff;
}
.catalog-empty { margin-bottom: 1.25rem; }

.book-grid {
display: flex;
flex-direction: column;
gap: 1.25rem;
}
.book-grid--compact .book-card { padding: 1rem; }
.book-card {
display: grid;
grid-template-columns: minmax(100px, 120px) minmax(0, 1fr);
gap: 1.15rem 1.35rem;
padding: 1.25rem 1.35rem;
border: 1px solid var(--line);
border-radius: var(--radius-lg);
background: var(--surface);
box-shadow: var(--shadow-sm);
}
.book-card-media {
display: flex;
flex-direction: column;
gap: .55rem;
align-self: start;
min-width: 0;
}
.book-card-cover {
display: block;
border-radius: var(--radius);
overflow: hidden;
box-shadow: 0 4px 18px rgba(60, 40, 70, .12);
}
.book-card-cover img,
.course-card-cover img,
.article-card-cover img,
.book-detail-cover img,
.course-detail-cover img,
.article-figure img {
display: block;
width: 100%;
height: auto;
max-width: 100%;
object-fit: contain;
object-position: center;
}
.book-card-placeholder {
display: block;
width: 100%;
aspect-ratio: 2 / 3;
background: linear-gradient(145deg, var(--sand-deep), var(--plum-soft));
border-radius: var(--radius);
}
.book-card-placeholder--large { min-height: 280px; }
.book-card-type {
margin: 0 0 .5rem;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: .35rem;
}
.book-card-type--under-cover {
margin: 0;
justify-content: center;
align-items: center;
text-align: center;
}
.book-detail-cover .book-card-type--under-cover {
width: 100%;
max-width: 280px;
}
.book-pill {
display: inline-flex;
align-items: center;
justify-content: center;
text-align: center;
font-size: .72rem;
font-weight: 700;
letter-spacing: .04em;
text-transform: uppercase;
line-height: 1.25;
padding: .28rem .6rem;
border-radius: 999px;
background: var(--plum-soft);
color: var(--plum-deep);
text-decoration: none;
max-width: 100%;
}
.book-pill--tistena { background: #fce8f0; color: #6b2d52; }
.book-pill--ebook { background: #e6edf8; color: #2d4570; }
.book-pill--soft { background: var(--sand-deep); color: var(--muted); text-transform: none; font-weight: 600; letter-spacing: 0; font-size: .8rem; }
.book-pill--accent { background: var(--sage-soft); color: #3f5235; }
.book-card-title { margin: 0 0 .35rem; font-size: 1.35rem; line-height: 1.25; }
.book-card-title a { color: inherit; text-decoration: none; }
.book-card-title a:hover { color: var(--plum); text-decoration: underline; }
.book-card-subtitle { margin: 0 0 .35rem; color: var(--muted); font-size: .98rem; }
.book-card-author { margin: 0 0 .65rem; font-weight: 600; }
.book-card-perex { margin: 0 0 .75rem; color: var(--muted); font-size: .98rem; line-height: 1.55; }
.book-card-meta { list-style: none; padding: 0; margin: 0 0 .85rem; font-size: .92rem; color: var(--muted); }
.book-card-meta li + li { margin-top: .25rem; }
.book-card-price { color: var(--ink); font-weight: 600; }
.price-moc { text-decoration: line-through; color: var(--plum); font-weight: 500; margin-right: .45rem; }
/* Jednotné ceny v projektu — gradient v textu, liší se jen velikost */
.price-value {
display: inline;
font-family: var(--font-display);
font-weight: 600;
line-height: 1.2;
color: var(--price-gradient-start);
background-image: linear-gradient(112deg, var(--price-gradient-start) 0%, var(--price-gradient-end) 100%);
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
.price-value {
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
}
@supports not ((-webkit-background-clip: text) or (background-clip: text)) {
.price-value {
color: var(--price-gradient-start);
background-image: none;
-webkit-text-fill-color: inherit;
}
}
.price-value--sm { font-size: 1rem; }
.price-value--md { font-size: 1.05rem; }
.price-value--lg { font-size: clamp(1.05rem, 2.1vw, 1.2rem); }
.price-value--glance { font-size: clamp(1.15rem, 2.4vw, 1.3rem); line-height: 1.15; }
.price-value--xl { font-size: clamp(1.5rem, 3.2vw, 1.85rem); line-height: 1.12; }
.price-badge {
display: inline-block;
margin-left: .35rem;
font-size: .78rem;
font-weight: 700;
padding: .15rem .45rem;
border-radius: 6px;
background: var(--sage-soft);
color: #3f5235;
}
.book-card-actions { margin-top: .25rem; }
.book-card-actions .btn-ghost { font-size: .9rem; }

.book-detail {
display: grid;
grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
gap: clamp(1.5rem, 4vw, 2.75rem);
align-items: start;
}
.book-detail-cover .media-cover-trigger {
width: 100%;
max-width: 280px;
}
.book-detail-cover img {
max-width: 280px;
border-radius: var(--radius-lg);
box-shadow: 0 8px 28px rgba(60, 40, 70, .15);
}
.book-detail-sample {
width: 100%;
max-width: 280px;
margin-top: 1rem;
justify-content: center;
text-align: center;
}
.book-detail-actions__cta .btn {
justify-content: center;
text-align: center;
}
.book-detail-subtitle { font-size: 1.15rem; color: var(--muted); margin: -.25rem 0 1rem; }
.book-detail-author { font-weight: 600; margin-bottom: 1rem; }
.book-detail-credit { font-weight: 400; color: var(--muted); font-size: .95rem; }
.book-detail-buy {
padding: 1.15rem 1.25rem;
border-radius: var(--radius-lg);
background: var(--sand);
border: 1px solid var(--line);
margin: 1.25rem 0 1.5rem;
}
.book-detail-price { margin: 0 0 .65rem; }
.book-detail-delivery { margin: 0 0 1rem; font-size: .95rem; color: var(--muted); line-height: 1.5; }
.book-detail-embed { width: 100%; margin-bottom: 1rem; }
.book-specs {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr));
gap: .65rem 1.25rem;
margin: 0 0 1.75rem;
padding: 1rem 1.15rem;
border-radius: var(--radius);
background: var(--sand);
border: 1px solid var(--line);
font-size: .92rem;
}
.book-specs div { min-width: 0; }
.book-specs dt { font-weight: 600; color: var(--muted); font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .15rem; }
.book-specs dd { margin: 0; }
.book-detail-prose { max-width: 65ch; }

@media (max-width: 720px) {
.book-card { grid-template-columns: 1fr; }
.book-card-media { max-width: 160px; }
.book-detail { grid-template-columns: 1fr; }
.book-detail-cover { display: flex; flex-direction: column; align-items: center; }
}

/* ---------- kurzy (/kurzy) ---------- */

.catalog-section-title {
font-family: var(--font-display);
font-size: clamp(1.25rem, 2.5vw, 1.5rem);
margin: 0 0 1.25rem;
color: var(--ink);
line-height: 1.25;
}
.catalog-section-title--compact { margin-bottom: .75rem; }

.course-grid {
display: flex;
flex-direction: column;
gap: 1.25rem;
}
.course-grid--compact .course-card { padding: 1rem; }
.course-card {
display: grid;
grid-template-columns: minmax(100px, 140px) minmax(0, 1fr);
gap: 1.15rem 1.35rem;
padding: 1.25rem 1.35rem;
border: 1px solid var(--line);
border-radius: var(--radius-lg);
background: var(--surface);
box-shadow: var(--shadow-sm);
}
.course-card-cover {
display: block;
border-radius: var(--radius);
overflow: hidden;
align-self: start;
box-shadow: 0 4px 18px rgba(60, 40, 70, .12);
}
.course-card-placeholder {
display: block;
width: 100%;
aspect-ratio: 16 / 10;
background: linear-gradient(145deg, var(--sand-deep), var(--plum-soft));
border-radius: var(--radius);
}
.course-card-type { margin: 0 0 .5rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.course-card-title { margin: 0 0 .35rem; font-size: 1.35rem; line-height: 1.25; font-family: var(--font-display); }
.course-card-title a { color: inherit; text-decoration: none; }
.course-card-title a:hover { color: var(--plum); text-decoration: underline; }
.course-card-perex { margin: 0 0 .75rem; color: var(--muted); font-size: .98rem; line-height: 1.55; }
.course-card-meta { list-style: none; padding: 0; margin: 0 0 .85rem; font-size: .92rem; color: var(--muted); }
.course-card-meta li + li { margin-top: .25rem; }
.course-card-price { font-weight: 600; }
.course-card-actions { margin-top: .25rem; }

@media (max-width: 720px) {
.course-card { grid-template-columns: 1fr; }
.course-card-cover { max-width: 100%; }
}

.section--book-detail,
.section--course-detail,
.section--article-detail {
position: relative;
isolation: isolate;
overflow: hidden;
background-color: #fff;
}
.section--course-detail { padding-top: clamp(1rem, 3vw, 1.75rem); }
.section--article-detail {
padding-bottom: 0;
background-image: linear-gradient(rgba(255, 255, 255, .58), rgba(255, 255, 255, .58)), url("../pozadi-uvod.webp");
background-repeat: no-repeat;
background-position: center top;
background-size: 100% auto;
}
.section--book-detail::before,
.section--course-detail::before {
content: "";
position: absolute;
inset: -12% -4%;
z-index: 0;
pointer-events: none;
background:
radial-gradient(ellipse 58% 80% at -2% 30%, rgba(244, 164, 200, .19), transparent 70%),
radial-gradient(ellipse 50% 68% at 6% 82%, rgba(201, 168, 232, .16), transparent 66%),
radial-gradient(ellipse 55% 76% at 102% 42%, rgba(201, 168, 232, .18), transparent 70%),
radial-gradient(ellipse 46% 62% at 94% 14%, rgba(244, 164, 200, .14), transparent 64%),
radial-gradient(ellipse 42% 56% at 98% 88%, rgba(124, 58, 237, .07), transparent 60%);
filter: blur(var(--watercolor-blur));
opacity: .68;
-webkit-mask-image: linear-gradient(
to right,
#000 0%,
#000 12%,
rgba(0, 0, 0, .85) 20%,
transparent 30%,
transparent 70%,
rgba(0, 0, 0, .85) 80%,
#000 88%,
#000 100%
);
mask-image: linear-gradient(
to right,
#000 0%,
#000 12%,
rgba(0, 0, 0, .85) 20%,
transparent 30%,
transparent 70%,
rgba(0, 0, 0, .85) 80%,
#000 88%,
#000 100%
);
}
.section--book-detail > .wrap,
.section--course-detail > .wrap,
.section--article-detail > .wrap {
position: relative;
z-index: 1;
}
.course-detail {
display: grid;
grid-template-columns: minmax(0, min(100%, 320px)) minmax(0, 1fr);
gap: clamp(1.5rem, 4vw, 2.75rem);
align-items: start;
}
.course-detail-cover .media-cover-trigger {
width: 100%;
max-width: 320px;
}
.course-detail-cover img {
max-width: 320px;
border-radius: var(--radius-lg);
box-shadow: 0 8px 28px rgba(60, 40, 70, .15);
}
.course-detail-placeholder { max-width: 320px; min-height: 12rem; }
.course-detail-main h1 {
margin: 0 0 .65rem;
font-family: var(--font-display);
font-size: clamp(1.65rem, 4vw, 2.15rem);
line-height: 1.2;
}
.course-detail-main > .lead { margin-bottom: 1rem; }
.course-notice {
margin: 0 0 1.15rem;
padding: .85rem 1rem;
border-radius: var(--radius);
border: 1px solid #e8d4a8;
background: #fdf8ee;
color: var(--ink);
font-size: .95rem;
line-height: 1.5;
}
.course-detail-buy {
padding: 1.15rem 1.25rem;
border-radius: var(--radius-lg);
background: var(--sand);
border: 1px solid var(--line);
margin: 0 0 1.5rem;
}
.course-detail-buy--archive {
background: var(--surface);
border-color: var(--line);
}
.course-detail-archive-lead {
margin: 0 0 .85rem;
font-size: .98rem;
line-height: 1.55;
color: var(--ink);
}
.course-related-intro {
margin: -.35rem 0 1.15rem;
color: var(--muted);
font-size: .98rem;
line-height: 1.5;
max-width: 52ch;
}
.course-detail-price { margin: 0 0 .5rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem .65rem; }
.course-detail-price-note { font-size: .92rem; color: var(--muted); font-weight: 500; }
.course-detail-specs .price-value { display: inline-block; }
.course-detail-specs {
margin-bottom: 1.5rem;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 520px) {
.course-detail-specs { grid-template-columns: 1fr; }
}
.course-detail-next {
margin: 0 0 1rem;
font-size: .98rem;
line-height: 1.5;
color: var(--ink);
}
.course-detail-next .book-pill { margin-right: .35rem; vertical-align: middle; }
.course-detail-embed { width: 100%; margin-bottom: .75rem; }
.course-detail-hint { margin: .85rem 0 0; font-size: .92rem; color: var(--muted); line-height: 1.5; }
.course-detail-actions { margin: 0; }
.course-detail-map { display: block; margin-top: .4rem; font-size: .92rem; }
.course-detail-map a { color: var(--plum); font-weight: 600; text-decoration: underline; }
.course-detail-map a:hover { color: var(--plum-deep); }
.course-detail-main .section-title { margin-top: 1.75rem; margin-bottom: .85rem; }
.course-detail-prose { margin-top: 0; max-width: 65ch; }
.course-term-list {
list-style: none;
padding: 0;
margin: 0 0 1.75rem;
display: flex;
flex-direction: column;
gap: .65rem;
}
.course-term-item {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: .25rem .75rem;
padding: .85rem 1rem;
border: 1px solid var(--line);
border-radius: var(--radius);
background: var(--surface);
box-shadow: var(--shadow-sm);
}
.course-term-date {
font-family: var(--font-display);
font-weight: 600;
color: var(--plum-deep);
grid-column: 1;
}
.course-term-time {
font-size: .95rem;
color: var(--muted);
grid-column: 2;
text-align: right;
white-space: nowrap;
}
.course-term-note {
grid-column: 1 / -1;
font-size: .92rem;
color: var(--muted);
line-height: 1.45;
padding-top: .15rem;
border-top: 1px dashed var(--line);
margin-top: .35rem;
}
.course-term-item--past {
background: var(--sand);
opacity: .92;
}
.course-term-status {
grid-column: 2;
font-size: .78rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .04em;
color: var(--muted);
text-align: right;
align-self: start;
}
.course-term-item--past .course-term-date { color: var(--muted); }
@media (max-width: 720px) {
.course-detail { grid-template-columns: 1fr; }
.course-detail-cover { display: flex; justify-content: center; }
.course-detail-cover img,
.course-detail-placeholder { width: 100%; max-width: 100%; }
.course-term-item { grid-template-columns: 1fr; }
.course-term-time { grid-column: 1; text-align: left; }
.course-term-status { grid-column: 1; text-align: left; }
}

/* ---------- články (/clanky, /clanek) ---------- */

.hero--articles { padding-bottom: clamp(1.5rem, 4vw, 2.25rem); }
.article-grid {
display: flex;
flex-direction: column;
gap: 1.25rem;
}
.article-card {
display: grid;
grid-template-columns: minmax(120px, 200px) minmax(0, 1fr);
gap: 1.15rem 1.35rem;
padding: 1.25rem 1.35rem;
border: 1px solid var(--line);
border-radius: var(--radius-lg);
background: var(--surface);
box-shadow: var(--shadow-sm);
}
.article-card-cover {
display: block;
border-radius: var(--radius);
overflow: hidden;
align-self: start;
box-shadow: 0 4px 18px rgba(60, 40, 70, .1);
}
.article-card-placeholder {
display: block;
width: 100%;
aspect-ratio: 16 / 9;
background: linear-gradient(145deg, var(--sand-deep), var(--plum-soft));
border-radius: var(--radius);
}
.article-card-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: .5rem .75rem;
margin: 0 0 .5rem;
}
.article-card-date { font-size: .88rem; color: var(--muted); }
.article-card-title { margin: 0 0 .35rem; font-size: 1.35rem; line-height: 1.25; }
.article-card-title a { color: inherit; text-decoration: none; }
.article-card-title a:hover { color: var(--plum); text-decoration: underline; }
.article-card-perex { margin: 0 0 .75rem; color: var(--muted); font-size: .98rem; line-height: 1.55; }
.article-card-actions { margin-top: .25rem; }

.article-header { margin-bottom: 1.5rem; }
.article-header-meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: .5rem .85rem;
margin: 0 0 .75rem;
}
.article-header-meta time { font-size: .9rem; color: var(--muted); }
.article-figure { margin: 0 0 1.75rem; }
.article-figure img {
border-radius: var(--radius-lg);
box-shadow: 0 8px 28px rgba(60, 40, 70, .12);
}
.article-body.prose {
max-width: 65ch;
font-size: 1.05rem;
line-height: 1.65;
color: var(--ink);
}
.article-body.prose h2 {
font-size: 1.35rem;
margin: 2rem 0 .75rem;
font-family: var(--font-display);
color: var(--plum-deep);
}
.article-body.prose h3 { font-size: 1.12rem; margin: 1.5rem 0 .5rem; }
.article-body.prose p { margin: 0 0 1rem; }
.article-body.prose ul, .article-body.prose ol { margin: 0 0 1rem 1.25rem; padding: 0; }
.article-body.prose blockquote {
margin: 1.25rem 0;
padding: .85rem 1rem;
border-left: 3px solid var(--plum);
background: var(--sand);
border-radius: 0 var(--radius) var(--radius) 0;
color: var(--muted);
}
.article-body.prose a { color: var(--plum); text-decoration: underline; }
.article-tags {
list-style: none;
padding: 0;
margin: 1.5rem 0 0;
display: flex;
flex-wrap: wrap;
gap: .45rem;
}
.article-tags li { margin: 0; }
.article-byline {
display: flex;
flex-wrap: wrap;
gap: .75rem 1.5rem;
margin: 1.75rem 0 0;
padding-top: 1.25rem;
border-top: 1px solid var(--line);
font-size: .92rem;
color: var(--muted);
}
.article-views { margin-left: auto; }
.article-disclaimer { margin-top: 1.25rem; font-size: .88rem; }
.article-related-events { display: flex; flex-direction: column; gap: 1.25rem; }
.section-title { font-family: var(--font-display); font-size: 1.5rem; margin: 0 0 .5rem; }
.section-intro { margin: 0 0 1.25rem; max-width: 42rem; }

.sprava-img-preview--wide img { max-width: 100%; width: min(480px, 100%); aspect-ratio: 16/9; object-fit: cover; }

@media (max-width: 720px) {
.article-card { grid-template-columns: 1fr; }
.article-card-cover { max-width: 100%; }
.article-views { margin-left: 0; }
}

/* ---------- správa kurzů (/sprava) ---------- */

.sprava-body { background: var(--sand); }
.sprava-main { padding: clamp(1.75rem, 4vw, 2.75rem) 0 clamp(3rem, 6vw, 4rem); }
.sprava-wrap { max-width: 980px; }

.sprava-header .sprava-back-link { margin-left: auto; }
.sprava-header-inner { flex-wrap: wrap; gap: .75rem 1rem; }
.sprava-toolbar {
align-items: center;
gap: .5rem 1rem;
flex-wrap: wrap;
margin-left: auto;
}
.sprava-toolbar-link {
font-weight: 600;
font-size: .95rem;
color: var(--ink);
text-decoration: none;
padding: .45rem .15rem;
min-height: 42px;
display: inline-flex;
align-items: center;
}
.sprava-toolbar-link:hover { color: var(--plum); text-decoration: underline; }
.sprava-toolbar-link.is-current,
.sprava-toolbar-link[aria-current="page"] {
color: var(--plum-deep);
text-decoration: underline;
text-underline-offset: .15em;
}
.sprava-toolbar-link--muted {
font-weight: 500;
color: var(--muted);
}
.sprava-logout-form { margin: 0; }
.sprava-toolbar .btn { min-height: 42px; padding: .55rem 1.05rem; font-size: .92rem; }

.sprava-dashboard {
display: grid;
gap: 1.15rem;
margin-top: 0.5rem;
}
@media (min-width: 720px) {
.sprava-dashboard { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
.sprava-dashboard { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.sprava-dashboard-card {
display: flex;
flex-direction: column;
justify-content: space-between;
gap: 1.15rem;
padding: 1.25rem 1.35rem;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
min-height: 100%;
}
.sprava-dashboard-card-title {
margin: 0 0 .4rem;
font-family: var(--font-display);
font-size: 1.28rem;
line-height: 1.25;
color: var(--plum-deep);
}
.sprava-dashboard-card-desc {
margin: 0 0 .75rem;
font-size: .94rem;
color: var(--muted);
line-height: 1.5;
}
.sprava-dashboard-stats {
margin: 0;
font-size: .88rem;
color: var(--muted);
}
.sprava-dashboard-stats-sep { margin: 0 .25rem; }
.sprava-dashboard-stats-hint {
display: block;
margin-top: .35rem;
font-size: .8rem;
color: var(--muted);
}
@media (min-width: 520px) {
.sprava-dashboard-stats-hint { display: inline; margin-top: 0; margin-left: .25rem; }
}
.sprava-dashboard-actions {
display: flex;
flex-direction: column;
gap: .55rem;
margin-top: .15rem;
}
.sprava-dashboard-actions .btn {
width: 100%;
justify-content: center;
min-height: 44px;
}
.sprava-badge--past {
background: var(--sand-deep);
color: var(--muted);
}
.sprava-dashboard-foot {
margin-top: 1.75rem;
font-size: .92rem;
}
.sprava-dashboard-foot a { font-weight: 600; }
.sprava-page-head--prehled { margin-bottom: 0.25rem; }

.sprava-overview-grid {
display: grid;
gap: 1.15rem;
margin: 1rem 0 2rem;
}
@media (min-width: 900px) {
.sprava-overview-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
align-items: start;
}
.sprava-overview-panel--wide { grid-column: 1 / -1; }
}
.sprava-overview-section-label {
margin: 0 0 .85rem;
font-family: var(--font-display);
font-size: 1.15rem;
color: var(--plum-deep);
}
.sprava-overview-panel {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
padding: 1.15rem 1.25rem;
}
.sprava-overview-panel-head {
display: flex;
flex-wrap: wrap;
align-items: baseline;
justify-content: space-between;
gap: .5rem 1rem;
margin-bottom: .85rem;
}
.sprava-overview-panel-title {
margin: 0;
font-family: var(--font-display);
font-size: 1.12rem;
color: var(--plum-deep);
}
.sprava-overview-panel-more {
font-size: .9rem;
font-weight: 600;
color: var(--plum);
text-decoration: none;
}
.sprava-overview-panel-more:hover { text-decoration: underline; }
.sprava-overview-panel--status { border-left: 4px solid var(--line); }
.sprava-overview-panel--ok { border-left-color: #3d7a52; }
.sprava-overview-panel--warn { border-left-color: #b8860b; }
.sprava-overview-panel--info { border-left-color: var(--plum-soft, #9a7aa8); }
.sprava-overview-status-headline {
margin: 0 0 .35rem;
font-weight: 600;
font-size: 1rem;
}
.sprava-overview-status-detail {
margin: 0 0 .75rem;
font-size: .92rem;
color: var(--muted);
line-height: 1.5;
max-width: 42rem;
}
.sprava-overview-meta {
margin: 0;
font-size: .88rem;
color: var(--muted);
}
.sprava-overview-mono { font-family: ui-monospace, monospace; font-size: .86rem; }
.sprava-overview-links {
display: flex;
flex-wrap: wrap;
gap: .5rem 1rem;
margin: .75rem 0 0;
padding: 0;
list-style: none;
font-size: .9rem;
}
.sprava-overview-links a { font-weight: 600; }
.sprava-overview-muted {
font-size: .9rem;
color: var(--muted);
}
.sprava-overview-empty {
margin: 0;
font-size: .92rem;
color: var(--muted);
line-height: 1.5;
}
.sprava-overview-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: .85rem;
}
.sprava-overview-list-item {
padding-bottom: .85rem;
border-bottom: 1px solid var(--line);
}
.sprava-overview-list-item:last-child {
padding-bottom: 0;
border-bottom: none;
}
.sprava-overview-list-main {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: .35rem .65rem;
margin-bottom: .35rem;
}
.sprava-overview-tag {
display: inline-flex;
align-items: center;
padding: .15rem .55rem;
border-radius: 999px;
background: var(--sand-deep);
font-size: .75rem;
font-weight: 600;
color: var(--muted);
}
.sprava-overview-item-title {
font-weight: 600;
color: var(--plum-deep);
text-decoration: none;
}
.sprava-overview-item-title:hover { text-decoration: underline; }
.sprava-overview-warnings {
margin: 0;
padding-left: 1.1rem;
font-size: .86rem;
color: var(--muted);
line-height: 1.45;
}
.sprava-overview-warnings li { margin: .2rem 0; }
.sprava-overview-list--recent .sprava-overview-list-item--row {
display: grid;
gap: .25rem .65rem;
align-items: baseline;
}
@media (min-width: 640px) {
.sprava-overview-list--recent .sprava-overview-list-item--row {
grid-template-columns: auto 1fr auto auto;
}
}
.sprava-overview-time {
font-size: .86rem;
color: var(--muted);
white-space: nowrap;
}
.sprava-overview-list--logins .sprava-overview-list-item {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: .15rem;
}
.sprava-overview-login-email {
display: block;
line-height: 1.35;
}
.sprava-overview-login-time {
display: block;
white-space: normal;
}
.sprava-dashboard-stats-attention a {
color: var(--plum);
font-weight: 600;
text-decoration: none;
}
.sprava-dashboard-stats-attention a:hover { text-decoration: underline; }
.sprava-table-wrap--overview { margin-top: 0; }
.sprava-table--overview .sprava-overview-date { font-weight: 600; display: block; }
.sprava-overview-dl {
display: grid;
gap: .75rem 1.5rem;
margin: 1.25rem 0;
padding: 1rem 1.15rem;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
}
@media (min-width: 520px) {
.sprava-overview-dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sprava-overview-dl dt {
font-size: .82rem;
text-transform: uppercase;
letter-spacing: .04em;
color: var(--muted);
margin: 0 0 .2rem;
}
.sprava-overview-dl dd {
margin: 0;
font-weight: 600;
}
.sprava-callout {
margin-top: 1.25rem;
padding: 1rem 1.15rem;
background: var(--sand);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
font-size: .92rem;
color: var(--muted);
line-height: 1.55;
}
.sprava-callout p { margin: 0 0 .65rem; }
.sprava-callout p:last-child { margin-bottom: 0; }
.sprava-callout code {
font-size: .88em;
background: var(--surface);
padding: .1rem .35rem;
border-radius: 4px;
}

.sprava-filter-group-label {
margin: 0 0 .4rem;
font-size: .82rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .04em;
color: var(--muted);
}
.sprava-filter-group-label:not(:first-of-type) {
margin-top: 1rem;
}
.sprava-meta--warn {
color: #8a5a14;
font-weight: 600;
}
.sprava-ops-metrics {
display: grid;
gap: .65rem;
margin: 0;
padding: 0;
list-style: none;
}
@media (min-width: 640px) {
.sprava-ops-metrics:not(.sprava-ops-metrics--compact) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sprava-ops-metrics--compact {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 960px) {
.sprava-ops-metrics--compact {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
.sprava-ops-metric {
margin: 0;
}
.sprava-ops-metric-link {
display: flex;
align-items: baseline;
gap: .5rem;
padding: .55rem .7rem;
border: 1px solid var(--line);
border-radius: var(--radius-md, 10px);
text-decoration: none;
color: var(--ink);
background: var(--sand);
}
.sprava-ops-metric--active .sprava-ops-metric-link {
border-color: #c9a227;
background: #fffdf6;
}
.sprava-ops-metric-count {
font-family: var(--font-display);
font-size: 1.35rem;
font-weight: 600;
color: var(--plum-deep);
min-width: 1.75rem;
}
.sprava-ops-metric-label {
font-size: .88rem;
font-weight: 600;
line-height: 1.35;
}
.sprava-ops-metric-hint {
margin: .35rem 0 0;
font-size: .82rem;
color: var(--muted);
line-height: 1.45;
}
.sprava-seo-grid {
display: grid;
gap: 1.25rem;
}
@media (min-width: 640px) {
.sprava-seo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sprava-seo-block-title {
margin: 0 0 .65rem;
font-size: 1rem;
font-family: var(--font-display);
color: var(--plum-deep);
}
.sprava-seo-list {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: .45rem;
font-size: .92rem;
}
.sprava-seo-list a { font-weight: 600; }
.sprava-seo-list strong { margin-left: .35rem; color: var(--plum-deep); }

.sprava-eyebrow a { color: var(--plum); text-decoration: none; font-weight: 600; }
.sprava-eyebrow a:hover { text-decoration: underline; }
.sprava-eyebrow-sep { margin: 0 .35rem; color: var(--muted); }
.sprava-page-actions--stack { flex-direction: column; align-items: stretch; }
@media (min-width: 520px) {
.sprava-page-actions--stack { flex-direction: row; }
}

.sprava-panel {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
padding: clamp(1.35rem, 3.5vw, 2rem);
}
.sprava-panel--auth {
max-width: 28rem;
margin-inline: auto;
}
.sprava-lead {
color: var(--muted);
font-size: 1rem;
max-width: 42rem;
margin-bottom: 1.25rem;
}
.sprava-page-head {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
justify-content: space-between;
gap: 1rem 1.5rem;
margin-bottom: 1.5rem;
}
.sprava-page-head h1 { margin-bottom: .35em; font-size: clamp(1.65rem, 4vw, 2.35rem); }
.sprava-page-cta { flex-shrink: 0; }
.sprava-page-actions {
display: flex;
flex-wrap: wrap;
gap: .65rem;
align-items: center;
justify-content: flex-end;
}
.sprava-slug--inline { display: inline-block; margin-left: .35rem; }

.sprava-filters {
display: flex;
flex-wrap: wrap;
gap: .45rem;
margin-bottom: 1.25rem;
}
.sprava-filter {
display: inline-flex;
align-items: center;
justify-content: center;
text-align: center;
min-height: 40px;
padding: .4rem .85rem;
border-radius: 999px;
border: 1px solid var(--line);
background: var(--surface);
color: var(--ink);
text-decoration: none;
font-size: .92rem;
font-weight: 600;
transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.sprava-filter:hover {
background: var(--plum-soft);
border-color: #d8c9df;
color: var(--plum-deep);
}
.sprava-filter.is-active {
background: var(--plum);
border-color: var(--plum);
color: #fff;
}
.sprava-filter.is-active:hover { background: var(--plum-deep); color: #fff; }

.sprava-flash,
.sprava-errors,
.sprava-warnings {
padding: .85rem 1rem;
border-radius: var(--radius);
margin-bottom: 1.25rem;
font-size: .98rem;
}
.sprava-flash {
background: var(--sage-soft);
border: 1px solid #c5d4b8;
color: var(--ink);
}
.sprava-info {
padding: .85rem 1rem;
border-radius: var(--radius);
margin-bottom: 1.25rem;
font-size: .98rem;
background: #eef3f8;
border: 1px solid #c5d4e0;
color: var(--ink);
}
.sprava-info p { margin: 0; line-height: 1.5; }
.sprava-info a { font-weight: 600; }
.sprava-warnings {
background: #fff8e6;
border: 1px solid #e8d49a;
color: var(--ink);
}
.sprava-warnings ul { margin: 0; padding-left: 1.15em; }
.sprava-dialog {
border: 0;
padding: 0;
max-width: min(32rem, calc(100vw - 2rem));
border-radius: var(--radius-lg);
box-shadow: 0 20px 50px rgba(40, 25, 50, .22);
}
.sprava-dialog::backdrop {
background: rgba(35, 28, 40, .45);
}
.sprava-dialog-inner {
padding: 1.35rem 1.5rem 1.25rem;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
}
.sprava-dialog-title {
margin: 0 0 .5rem;
font-size: 1.25rem;
font-family: var(--font-display);
outline: none;
}
.sprava-dialog--success .sprava-dialog-inner {
border-color: #c5d4b8;
box-shadow: inset 0 3px 0 var(--sage-soft);
}
.sprava-dialog--error .sprava-dialog-inner {
border-color: #e8b4b0;
box-shadow: inset 0 3px 0 #fdeeed;
}
.sprava-dialog--warning .sprava-dialog-inner {
border-color: #e8d49a;
box-shadow: inset 0 3px 0 #fff8e6;
}
.sprava-dialog-note {
margin: 0 0 1rem;
padding: .65rem .75rem;
border-radius: var(--radius);
background: #eef3f8;
border: 1px solid #c5d4e0;
font-size: .92rem;
line-height: 1.5;
}
.sprava-dialog-note a { font-weight: 600; }
.sprava-dialog-lead {
margin: 0 0 1rem;
color: var(--muted);
font-size: .98rem;
line-height: 1.5;
}
.sprava-dialog-list {
margin: 0 0 1.15rem;
padding-left: 1.15em;
font-size: .98rem;
}
.sprava-dialog-list--errors { color: var(--ink); }
.sprava-dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; }
.sprava-form .field-invalid,
.sprava-form input.field-invalid,
.sprava-form textarea.field-invalid {
border-color: #c45c5c;
box-shadow: 0 0 0 2px rgba(196, 92, 92, .15);
}
.sprava-form .EasyMDEContainer {
margin-top: .35rem;
}
.sprava-form .EasyMDEContainer .CodeMirror {
border-radius: var(--radius);
border-color: var(--field-border, var(--line));
font-family: var(--font-body);
font-size: .98rem;
line-height: 1.55;
min-height: 12rem;
}
.sprava-form .EasyMDEContainer .editor-toolbar {
border-radius: var(--radius) var(--radius) 0 0;
border-color: var(--field-border, var(--line));
background: var(--surface);
opacity: 1;
}
.sprava-form .EasyMDEContainer .editor-toolbar {
display: block;
min-height: 2.75rem;
}
.sprava-form .EasyMDEContainer .editor-toolbar button {
color: var(--ink);
font-size: .78rem;
min-width: auto;
padding: 0 8px;
}
.sprava-form .EasyMDEContainer .editor-toolbar button::after {
font-family: var(--font-body);
font-size: .68rem;
font-weight: 600;
vertical-align: middle;
position: static;
top: auto;
}
.sprava-form .EasyMDEContainer .editor-toolbar button.bold::after { content: "Tučné"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.italic::after { content: "Kurzíva"; font-style: italic; }
.sprava-form .EasyMDEContainer .editor-toolbar button.heading-2::after { content: "Nadpis 2"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.heading-3::after { content: "Nadpis 3"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.quote::after { content: "Citace"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.unordered-list::after { content: "Odrážky"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.ordered-list::after { content: "Číslování"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.link::after { content: "Odkaz"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.preview::after { content: "Náhled"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.side-by-side::after { content: "Vedle sebe"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.fullscreen::after { content: "Na celou obrazovku"; font-size: .6rem; }
.sprava-form .EasyMDEContainer .editor-toolbar button.guide::after { content: "Nápověda"; }
.sprava-form .EasyMDEContainer .editor-toolbar button.word-import::after {
  content: "Import z Wordu";
  font-size: .58rem;
  line-height: 1.15;
  max-width: 4.5rem;
  white-space: normal;
}
.sprava-form .EasyMDEContainer .editor-toolbar button.word-import:disabled {
  opacity: .55;
  cursor: wait;
}
.sprava-word-import-status { margin-top: .5rem; }
.article-body.prose h4 { font-size: 1.06rem; margin: 1.35rem 0 .45rem; }
.article-body.prose h5 { font-size: 1rem; margin: 1.15rem 0 .4rem; font-weight: 600; }
.article-body.prose h6 { font-size: .95rem; margin: 1rem 0 .35rem; font-weight: 600; color: var(--ink-muted, #4a4a4a); }
.prose.book-detail-prose h4,
.prose.book-detail-prose h5,
.prose.book-detail-prose h6,
.prose.course-detail-prose h4,
.prose.course-detail-prose h5,
.prose.course-detail-prose h6 {
  margin: 1.25rem 0 .45rem;
}
.sprava-form .EasyMDEContainer .editor-toolbar button span[data-img-src] {
display: none;
}
.sprava-form .EasyMDEContainer .editor-preview,
.sprava-form .EasyMDEContainer .editor-preview-side {
background: var(--surface);
}
.sprava-markdown-help {
margin-top: .85rem;
font-size: .92rem;
line-height: 1.55;
}
.sprava-markdown-help summary {
cursor: pointer;
}
.sprava-markdown-help .details-accordion__heading {
font-size: 1rem;
font-family: var(--font-body);
font-weight: 600;
}
.sprava-markdown-help p {
margin: .65rem 0 0;
}
.sprava-markdown-help ul {
margin: .5rem 0 0;
padding-left: 1.2em;
}
.sprava-markdown-help code {
font-size: .88em;
padding: .1em .35em;
border-radius: 4px;
background: rgba(108, 75, 124, .08);
}
.sprava-errors {
background: #fdeeed;
border: 1px solid #e8b4b0;
color: #5c2f2c;
}
.sprava-errors ul { margin: 0; padding-left: 1.15em; }

.sprava-table-wrap {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.sprava-table {
width: 100%;
border-collapse: collapse;
font-size: .95rem;
min-width: 640px;
}
.sprava-table th,
.sprava-table td {
padding: .85rem 1rem;
text-align: left;
vertical-align: top;
border-bottom: 1px solid var(--line);
}
.sprava-table th {
font-size: .78rem;
letter-spacing: .06em;
text-transform: uppercase;
color: var(--muted);
font-weight: 600;
background: var(--sand-deep);
}
.sprava-table tbody tr:last-child td { border-bottom: 0; }
.sprava-table tbody tr:hover td { background: rgba(241, 233, 243, .35); }
.sprava-empty {
text-align: center;
color: var(--muted);
padding: 2rem 1rem !important;
}
.sprava-course-title {
font-weight: 600;
text-decoration: none;
color: var(--plum-deep);
}
.sprava-course-title:hover { color: var(--plum); text-decoration: underline; }
.sprava-slug {
display: block;
margin-top: .2rem;
font-size: .82rem;
color: var(--muted);
font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
}

.sprava-badge {
display: inline-flex;
align-items: center;
margin: .1rem .35rem .1rem 0;
padding: .2rem .55rem;
border-radius: 999px;
font-size: .78rem;
font-weight: 600;
letter-spacing: .02em;
}
.sprava-badge--published { background: var(--sage-soft); color: #3f5235; }
.sprava-badge--draft { background: var(--sand-deep); color: var(--muted); }
.sprava-badge--archived { background: #eee8ef; color: #5a4d62; }
.sprava-badge--live { background: var(--plum-soft); color: var(--plum-deep); }
.sprava-badge--type { background: #eef3f8; color: #3d4f5f; }

.sprava-fieldset {
border: 1px solid var(--line);
border-radius: var(--radius);
padding: .85rem 1rem 1rem;
margin: 0 0 1rem;
}
.sprava-fieldset legend {
font-weight: 600;
padding: 0 .35rem;
}
.sprava-check-grid {
display: flex;
flex-direction: column;
gap: .5rem;
margin-top: .5rem;
}

.sprava-meta { display: block; font-size: .9rem; color: var(--muted); }
.sprava-actions {
display: flex;
flex-wrap: wrap;
gap: .35rem .65rem;
align-items: center;
min-width: 9rem;
}
.sprava-actions form { margin: 0; display: inline; }
.sprava-action-link {
font: inherit;
font-size: .9rem;
font-weight: 600;
cursor: pointer;
background: none;
border: none;
padding: .15rem 0;
color: var(--plum-deep);
text-decoration: underline;
text-underline-offset: 2px;
}
.sprava-action-link:hover { color: var(--plum); }
.sprava-action-link--strong { color: var(--sage); }
.sprava-action-link--danger { color: #9b3b3b; }
.sprava-action-link--danger:hover { color: #7a2e2e; }

.sprava-form--kurz .sprava-field label,
.sprava-form label {
display: block;
font-weight: 600;
margin: 0 0 .35rem;
font-size: .98rem;
}
.sprava-form--kurz > .sprava-form-sections > .sprava-section:first-child .sprava-field:first-child label,
.sprava-form:not(.sprava-form--kurz) label { margin-top: 1rem; }
.sprava-form:not(.sprava-form--kurz) label:first-of-type { margin-top: 0; }

.sprava-form-sections {
display: flex;
flex-direction: column;
gap: 1.15rem;
}
.sprava-section {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
overflow: hidden;
}
.sprava-section-title {
margin: 0;
padding: .95rem 1.2rem;
font-size: 1.12rem;
font-family: var(--font-display);
font-weight: 600;
border-bottom: 1px solid var(--line);
background: var(--sand-deep);
color: var(--ink);
}
.sprava-section-body { padding: 1.1rem 1.2rem 1.25rem; }
.sprava-section-intro { margin-top: 0; margin-bottom: 1rem; }
.sprava-field-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0 1.25rem;
}
.sprava-field-grid--tight { margin-top: 1rem; }
.sprava-field { margin-bottom: 1rem; }
.sprava-field--full { grid-column: 1 / -1; }
.sprava-field--narrow { max-width: 14rem; }
.sprava-check-row { margin: 0 0 1rem; }
.sprava-form-bar {
margin-top: 1.75rem;
margin-bottom: 0.5rem;
padding: 1rem 1.2rem;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
display: flex;
flex-wrap: wrap;
gap: .75rem;
}
.sprava-form-bar .btn,
.termin-row-actions .btn,
.sprava-toolbar .btn,
.sprava-dialog-actions .btn {
justify-content: center;
text-align: center;
}
.sprava-tag-grid {
display: flex;
flex-wrap: wrap;
gap: .5rem;
margin-bottom: .25rem;
}
.sprava-tag-option {
display: inline-flex;
align-items: center;
gap: .45rem;
padding: .45rem .75rem;
border: 1px solid var(--line);
border-radius: 999px;
background: var(--sand);
font-weight: 500;
cursor: pointer;
user-select: none;
}
.sprava-tag-option:has(input:checked) {
background: var(--plum-soft);
border-color: #d8c9df;
color: var(--plum-deep);
}
.sprava-tag-option input { margin: 0; accent-color: var(--plum); }
.sprava-img-preview {
margin: 0 0 1rem;
max-width: 220px;
}
.sprava-img-preview img {
border-radius: var(--radius);
border: 1px solid var(--line);
}
.sprava-file {
max-width: 100%;
font-size: .95rem;
}
.sprava-terminy { display: flex; flex-direction: column; gap: .65rem; }
.sprava-terminy-add { margin: .85rem 0 0; }
.termin-row-actions { display: flex; align-items: flex-end; padding-bottom: 1rem; }
.termin-row .sprava-field label {
font-size: .85rem;
margin-bottom: .3rem;
}
.termin-row .sprava-field { margin-bottom: 0; }
.termin-field-note { min-width: 0; }
.sprava-form input[type=text],
.sprava-form input[type=password],
.sprava-form input[type=number],
.sprava-form input[type=url],
.sprava-form input[type=date],
.sprava-form input[type=time],
.sprava-form input[type=datetime-local],
.sprava-form select,
.sprava-form textarea {
width: 100%;
max-width: 100%;
padding: .6rem .75rem;
border: 1px solid var(--field-border);
border-radius: var(--radius);
font: inherit;
background: var(--surface);
color: var(--ink);
transition: border-color .15s ease, box-shadow .15s ease;
}
.sprava-form input:focus,
.sprava-form select:focus,
.sprava-form textarea:focus {
border-color: var(--plum);
box-shadow: 0 0 0 3px rgba(108, 75, 124, .15);
outline: none;
}
.sprava-form textarea { min-height: 7rem; resize: vertical; }
.sprava-form input[readonly] {
background: var(--sand-deep);
color: var(--muted);
border-color: var(--field-border);
}
.sprava-form-actions { margin-top: 1.5rem; }
.sprava-fieldset {
margin-top: 1.25rem;
border: 1px solid var(--line);
padding: 1rem 1.15rem;
border-radius: var(--radius);
background: var(--sand);
}
.sprava-fieldset legend {
font-family: var(--font-display);
font-weight: 600;
padding: 0 .35rem;
}
.field-hint {
font-size: .875rem;
color: var(--muted);
margin: .25rem 0 .5rem;
font-weight: 400;
}
.char-counter { font-size: .875rem; color: var(--muted); margin: -.25rem 0 .75rem; }
.char-counter.char-over { color: #9b3b3b; font-weight: 600; }
.inline-check { display: inline-block; margin-right: 1rem; font-weight: 400; }
.btn-link {
font: inherit;
background: none;
border: none;
color: var(--plum-deep);
text-decoration: underline;
cursor: pointer;
padding: 0;
margin-left: .5rem;
}
.termin-row {
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, .85fr) minmax(0, .85fr) minmax(0, 1.2fr) auto;
gap: .5rem .65rem;
padding: .85rem;
border: 1px solid var(--line);
border-radius: var(--radius);
background: var(--sand);
align-items: end;
}
.termin-row .btn-termin-remove {
white-space: nowrap;
min-height: 42px;
padding: .45rem .75rem;
font-size: .88rem;
}

@media (max-width: 760px) {
.sprava-body { padding-bottom: 0; }
.sprava-page-actions { width: 100%; justify-content: stretch; }
.sprava-page-actions .btn { flex: 1 1 auto; justify-content: center; }
.sprava-field-grid { grid-template-columns: 1fr; }
.sprava-field--narrow { max-width: none; }
.sprava-form-bar .btn { flex: 1 1 45%; justify-content: center; }
.sprava-toolbar {
align-items: stretch;
flex-direction: column;
width: 100%;
margin-left: 0;
}
.sprava-toolbar-link { padding: .35rem 0; }
.sprava-logout-form { display: block; width: 100%; margin-left: 0; }
.sprava-toolbar .sprava-logout-form .btn { width: 100%; justify-content: center; }
.sprava-page-head { align-items: stretch; }
.sprava-page-cta { width: 100%; justify-content: center; }
.sprava-filters { gap: .35rem; }
.sprava-filter { font-size: .88rem; padding: .35rem .7rem; min-height: 36px; }

.sprava-table { min-width: 0; }
.sprava-table thead { display: none; }
.sprava-table tbody tr {
display: block;
padding: 1rem 1.1rem;
border-bottom: 1px solid var(--line);
}
.sprava-table tbody tr:hover td { background: transparent; }
.sprava-table tbody tr:last-child { border-bottom: 0; }
.sprava-table td {
display: grid;
grid-template-columns: minmax(5.5rem, 34%) 1fr;
gap: .2rem .75rem;
padding: .45rem 0;
border: 0;
}
.sprava-table td::before {
content: attr(data-label);
font-size: .75rem;
font-weight: 600;
letter-spacing: .04em;
text-transform: uppercase;
color: var(--muted);
}
.sprava-table td.sprava-empty {
display: block;
grid-template-columns: 1fr;
}
.sprava-table td.sprava-empty::before { display: none; }
.sprava-actions {
flex-direction: column;
align-items: flex-start;
gap: .5rem;
}
.termin-row {
grid-template-columns: 1fr 1fr;
}
.termin-field-note { grid-column: 1 / -1; }
.termin-row-actions {
grid-column: 1 / -1;
padding-bottom: 0;
}
.termin-row-actions .btn { width: 100%; }
}

/* —— Ceník (page-cenik) —— */
.page-cenik {
--price-subnav-h: 3.25rem;
scroll-padding-top: calc(var(--mobile-header-h) + var(--price-subnav-h) + 12px);
}
.page-cenik .hero > .wrap.hero-grid {
max-width: var(--wrap);
}
.price-at-a-glance {
background: var(--surface);
border-radius: var(--radius-lg);
padding: clamp(1.35rem, 3vw, 1.85rem);
box-shadow: var(--shadow-sm);
border: 1px solid var(--line);
align-self: center;
}
.price-at-a-glance__title {
font-family: var(--font-body);
font-size: .78rem;
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--muted);
margin: 0 0 1rem;
}
.price-at-a-glance__list {
margin: 0;
padding: 0;
}
.price-at-a-glance__list > div {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 1rem;
padding: .65rem 0;
border-bottom: 1px solid var(--line);
}
.price-at-a-glance__list > div:last-of-type { border-bottom: 0; }
.price-at-a-glance__list dt {
margin: 0;
font-weight: 500;
font-size: .98rem;
color: var(--ink);
}
.price-at-a-glance__list dd {
margin: 0;
white-space: nowrap;
}
.price-at-a-glance .price-note { margin-top: 1rem; margin-bottom: 0; }
.price-subnav {
position: sticky;
top: var(--mobile-header-h);
z-index: 40;
background: rgba(255, 255, 255, .92);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--line);
}
.price-subnav__inner {
display: flex;
flex-wrap: nowrap;
gap: .35rem 1.1rem;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: thin;
padding-block: .75rem;
}
.price-subnav a {
flex-shrink: 0;
font-size: .92rem;
font-weight: 600;
color: var(--muted);
text-decoration: none;
padding: .35rem .15rem;
border-bottom: 2px solid transparent;
}
.price-subnav a:hover,
.price-subnav a:focus-visible {
color: var(--plum-deep);
border-bottom-color: var(--gold);
}
.price-block {
scroll-margin-top: calc(var(--mobile-header-h) + var(--price-subnav-h) + 8px);
border-top: 1px solid var(--line);
}
.price-block:first-of-type { border-top: 0; }
.price-block__head {
margin-bottom: 1.35rem;
text-align: center;
}
.price-block__label {
margin: 0;
font-family: var(--font-body);
font-size: .78rem;
font-weight: 600;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--plum);
-webkit-text-fill-color: currentColor;
background: none;
background-image: none;
}
.price-block__label::after { display: none; }
.price-block__eyebrow {
margin: 0;
font-family: var(--font-body);
font-size: .78rem;
font-weight: 600;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--plum);
text-align: center;
}
.price-block__title-main {
margin: 0;
text-align: center;
}
.page-cenik .price-block__title-main {
margin-top: 0;
}
.page-cenik .price-card__title {
font-size: clamp(1.2rem, 2.2vw, 1.5rem);
margin-bottom: 0;
-webkit-text-fill-color: currentColor;
background: none;
background-image: none;
color: var(--ink);
}
.page-cenik .price-card__subtitle {
font-size: clamp(1.05rem, 1.9vw, 1.28rem);
margin: 1.15rem 0 .5em;
-webkit-text-fill-color: currentColor;
background: none;
background-image: none;
color: var(--ink);
}
.details-accordion__heading {
margin: 0;
padding: 0;
display: inline;
font-family: var(--font-body);
font-size: 1rem;
font-weight: 600;
line-height: 1.4;
color: var(--plum-deep);
-webkit-text-fill-color: currentColor;
background: none;
background-image: none;
}
.details-accordion__heading--legal {
font-family: var(--font-display);
font-size: 1.25rem;
}
.details-accordion summary .details-accordion__heading {
pointer-events: none;
}
.price-block__head::after {
content: "";
display: block;
width: 3.4rem;
height: .85rem;
margin: .65rem auto 0;
background:
radial-gradient(circle at 10% 50%, var(--gold) 0 2px, transparent 2.4px),
radial-gradient(circle at 50% 50%, var(--gold-light) 0 2.5px, transparent 2.9px),
radial-gradient(circle at 90% 50%, var(--gold) 0 2px, transparent 2.4px);
}
.page-cenik .price-block .price-card {
max-width: 52rem;
margin-inline: auto;
}
.page-cenik .price-card--eft {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
box-shadow: 0 10px 28px rgba(74, 40, 104, .045);
padding: 0;
}
.page-cenik .price-card--eft .price-card__shell {
display: flex;
flex-direction: column;
min-height: 100%;
padding: clamp(1.5rem, 3vw, 2.15rem);
}
.page-cenik .price-card__header {
margin-bottom: .35rem;
min-height: 6.5rem;
}
.page-cenik .price-card__header:not(:has(.price-card-badge)) {
padding-top: 2rem;
}
.page-cenik .price-card__header .price-card__title {
margin-bottom: 0;
}
.page-cenik .price-card__header .price-card-badge {
margin-top: .65rem;
margin-bottom: .85rem;
}
.page-cenik .price-card__prices {
min-height: 7.5rem;
margin-bottom: 1rem;
padding-bottom: 1rem;
border-bottom: 1px solid var(--line);
}
.page-cenik .price-card__body {
flex: 1;
}
.page-cenik .price-card__body > :last-child {
margin-bottom: 0;
}
.page-cenik .price-card__actions {
margin-top: 1.35rem;
padding-top: 1.15rem;
border-top: 1px solid var(--line);
}
.page-cenik .price-card__actions .btn {
flex: 1 1 auto;
min-width: min(100%, 10.5rem);
justify-content: center;
}
.price-eft-row + .price-eft-row { margin-top: .35rem; }
.price-eft-amount { display: block; }
.price-eft-amount--inline { display: inline; }
.price-eft-meta {
display: block;
margin-top: .15rem;
font-family: var(--font-body);
font-size: .95rem;
font-weight: 500;
color: var(--muted);
}
.price-list--eft .price-eft-amount {
white-space: nowrap;
}
.price-list--eft li {
align-items: flex-start;
}
.media-cover-trigger {
display: block;
margin: 0;
padding: 0;
border: 0;
background: none;
font: inherit;
color: inherit;
cursor: zoom-in;
border-radius: var(--radius);
}
.media-cover-trigger:focus-visible {
outline: 2px solid var(--plum);
outline-offset: 3px;
}
.media-lightbox {
border: 0;
padding: 0;
margin: 0;
max-width: none;
max-height: none;
width: 100%;
height: 100%;
background: transparent;
overflow: visible;
}
.media-lightbox::backdrop {
background: rgba(35, 28, 40, .38);
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
.media-lightbox__inner {
position: relative;
display: flex;
align-items: center;
justify-content: center;
min-height: 100%;
padding: clamp(1rem, 4vw, 2.5rem);
box-sizing: border-box;
pointer-events: none;
}
.media-lightbox__stage {
display: flex;
align-items: center;
justify-content: center;
max-width: min(95vw, 1100px);
max-height: min(88vh, 920px);
pointer-events: auto;
touch-action: none;
}
.media-lightbox__img {
display: block;
max-width: min(95vw, 1100px);
max-height: min(88vh, 920px);
width: auto;
height: auto;
object-fit: contain;
border-radius: var(--radius);
box-shadow: 0 24px 60px rgba(25, 15, 35, .35);
pointer-events: auto;
transform-origin: center center;
will-change: transform;
user-select: none;
-webkit-user-drag: none;
}
.media-lightbox__img.is-zoomed {
cursor: grab;
}
.media-lightbox__img.is-dragging {
cursor: grabbing;
}
.media-lightbox__close {
position: fixed;
top: clamp(.75rem, 3vw, 1.25rem);
right: clamp(.75rem, 3vw, 1.25rem);
z-index: 1;
display: grid;
place-items: center;
width: 2.75rem;
height: 2.75rem;
padding: 0;
border: 0;
border-radius: 999px;
font-size: 1.65rem;
line-height: 1;
font-family: var(--font-body);
color: var(--ink);
background: var(--surface);
box-shadow: 0 8px 28px rgba(40, 25, 50, .2);
cursor: pointer;
pointer-events: auto;
}
.media-lightbox__close:hover {
background: var(--sand);
}
.media-lightbox__close:focus-visible {
outline: 2px solid var(--plum);
outline-offset: 2px;
}
.call-dialog {
border: 0;
padding: 0;
max-width: min(22rem, calc(100vw - 2rem));
border-radius: var(--radius-lg);
box-shadow: 0 20px 50px rgba(40, 25, 50, .22);
}
.call-dialog::backdrop {
background: rgba(35, 28, 40, .45);
}
.call-dialog__inner {
padding: 1.35rem 1.5rem 1.25rem;
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius-lg);
}
.call-dialog__title {
margin: 0 0 .5rem;
font-size: clamp(1.1rem, 3.5vw, 1.35rem);
font-family: var(--font-display);
line-height: 1.25;
text-wrap: balance;
outline: none;
-webkit-text-fill-color: currentColor;
background: none;
color: var(--ink);
}
.call-dialog__lead {
margin: 0 0 1.15rem;
color: var(--muted);
font-size: .98rem;
line-height: 1.5;
}
.call-dialog__actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
justify-content: flex-end;
}
.call-dialog__actions .btn-primary {
flex: 1 1 100%;
justify-content: center;
}
.page-cenik #masaze .price-block__head {
margin-bottom: .5rem;
}
.page-cenik #masaze .price-block__title-main {
margin-top: .25rem;
}
.price-layout {
display: flex;
flex-direction: column;
gap: 1.35rem;
}
.price-card--wide { grid-column: 1 / -1; }
.price-card-badge {
display: inline-block;
align-self: flex-start;
font-size: .72rem;
font-weight: 700;
letter-spacing: .06em;
text-transform: uppercase;
padding: .35rem .65rem;
border-radius: 999px;
background: #eef5ea;
color: #3f5235;
margin-bottom: .85rem;
}
.price-card__byline {
font-size: .88rem;
color: var(--muted);
margin: 0 0 .65rem;
}
.price-accent {
font-weight: 700;
letter-spacing: .04em;
text-transform: uppercase;
font-size: .78rem;
}
.price-accent--eft { color: var(--plum); }
.price-accent--body { color: #8a6b4a; }
.price-card__actions { margin-top: auto; padding-top: 1rem; }
.price-figure { margin: 0 0 .85rem; }
.price-figure__amount {
display: block;
font-family: var(--font-display);
font-size: clamp(1.85rem, 4vw, 2.35rem);
font-weight: 600;
line-height: 1.1;
color: var(--plum-deep);
-webkit-text-fill-color: currentColor;
background: none;
}
.price-figure__meta {
display: block;
margin-top: .2rem;
font-family: var(--font-body);
font-size: .95rem;
font-weight: 500;
color: var(--muted);
}
.price-figure-group .price-figure { margin-bottom: .5rem; }
.price-figure-group .price-figure:last-child { margin-bottom: .85rem; }
.price-list__end {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: .15rem;
text-align: right;
}
.price-list__hint {
font-size: .82rem;
font-weight: 500;
color: var(--muted);
font-family: var(--font-body);
}
.price-values-note { margin-top: 2rem; }
.price-values-disclaimer { margin-top: 1.15rem; }
#deti .price-card--eft,
#deti .price-values-note,
#deti .price-cenik-platba,
#deti .price-values-disclaimer {
max-width: 52rem;
margin-inline: auto;
}
#deti .price-cenik-platba {
margin-top: 1.75rem;
}
#deti .price-cenik-platba h3 {
margin-bottom: .65rem;
}
.page-cenik #deti .price-values-note { margin-top: 1.75rem; }
.price-children__home {
padding-top: .25rem;
border-top: 1px solid var(--line);
}
@media (min-width: 700px) {
.price-children__home {
padding-top: 0;
padding-left: 1.5rem;
border-top: 0;
border-left: 1px solid var(--line);
}
}
.section-intro {
margin: -.35rem auto 1.75rem;
color: var(--muted);
font-size: 1.02rem;
}
.price-table-wrap {
background: var(--surface);
border-radius: var(--radius-lg);
box-shadow: 0 10px 28px rgba(74, 40, 104, .045);
overflow: hidden;
margin-bottom: 1.25rem;
}
.price-table {
width: 100%;
border-collapse: collapse;
font-size: .98rem;
}
.price-table caption { padding: 0; }
.price-table thead th {
text-align: left;
font-family: var(--font-body);
font-size: .75rem;
font-weight: 600;
letter-spacing: .08em;
text-transform: uppercase;
color: var(--muted);
padding: 1rem 1.15rem;
background: var(--sage-soft);
border-bottom: 1px solid var(--line);
-webkit-text-fill-color: currentColor;
background-image: none;
}
.price-table th:last-child,
.price-table td.price-table__amount { text-align: right; white-space: nowrap; }
.price-table tbody td {
padding: 1rem 1.15rem;
border-bottom: 1px solid var(--line);
vertical-align: top;
}
.price-table tbody tr:last-child td { border-bottom: 0; }
.price-table__sub {
display: block;
margin-top: .25rem;
font-size: .88rem;
color: var(--muted);
font-weight: 400;
}
.details-accordion {
background: var(--surface);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 0 1.15rem;
margin-bottom: 1rem;
}
.details-accordion summary {
cursor: pointer;
font-weight: 600;
padding: 1rem 0;
list-style: none;
color: var(--plum-deep);
}
.details-accordion summary::-webkit-details-marker { display: none; }
.details-accordion summary::after {
content: "+";
float: right;
font-weight: 400;
color: var(--muted);
}
.details-accordion[open] summary::after { content: "−"; }
.details-accordion > :not(summary) { padding-bottom: 1rem; }
.details-accordion--legal summary {
font-family: var(--font-display);
font-size: 1.25rem;
}
.faq-list .details-accordion + .details-accordion { margin-top: .65rem; }
.steps--row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
gap: 1.5rem 2rem;
max-width: none;
padding-left: 0;
list-style: none;
counter-reset: step;
}
.steps--row > li { padding-left: 3.4rem; }
.trust-strip {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
gap: 1.25rem;
margin-bottom: 1.5rem;
}
.trust-tile {
background: var(--surface);
border-radius: var(--radius-lg);
padding: 1.35rem 1.5rem;
box-shadow: 0 8px 22px rgba(74, 40, 104, .04);
}
.trust-tile h3 {
font-size: 1.08rem;
margin-bottom: .45em;
}
.trust-tile p { font-size: .98rem; color: var(--muted); margin: 0; }

.review-section__head {
margin-bottom: 1.75rem;
}
.review-section__head h2 { margin-bottom: .65em; }
.review-section__head .narrow { margin: 0; max-width: 42rem; }

.review-platforms {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 17.5rem), 1fr));
gap: 1.25rem;
margin-bottom: 2.25rem;
}
.review-platform {
display: flex;
flex-direction: column;
gap: .35rem;
min-height: 100%;
padding: 1.35rem 1.5rem;
}
.review-platform__name {
font-family: var(--font-serif);
font-size: 1.12rem;
font-weight: 600;
margin: 0 0 .25rem;
color: var(--ink);
}
.review-platform__score {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: .5rem .65rem;
margin: 0;
line-height: 1.2;
}
.review-platform__value {
font-family: var(--font-serif);
font-size: 1.65rem;
font-weight: 600;
letter-spacing: -.02em;
color: var(--plum);
}
.rating-stars__glyph {
font-size: 1.05rem;
letter-spacing: .12em;
color: var(--gold);
}
.review-platform__meta {
font-size: .92rem;
color: var(--muted);
margin: 0 0 .65rem;
}
.review-platform__link {
margin-top: auto;
font-weight: 600;
font-size: .95rem;
text-decoration: none;
color: var(--plum);
}
.review-platform__link:hover { text-decoration: underline; }

.review-cta {
padding: 1.75rem 1.5rem 1.5rem;
border-radius: var(--radius-lg);
background: linear-gradient(145deg, rgba(122, 53, 104, .04) 0%, rgba(255, 255, 255, .85) 55%);
border: 1px solid rgba(122, 53, 104, .08);
}
.review-cta__title {
font-size: 1.15rem;
margin: 0 0 .5rem;
}
.review-cta__lead {
margin: 0 0 1.15rem;
max-width: 40rem;
color: var(--muted);
font-size: .98rem;
}
.review-cta__actions { margin: 0; }

.quote-pull { max-width: var(--narrow); }
.quote-pull .quote {
margin: 0;
padding: 0;
border: 0;
}
.quote-pull .quote,
.quote-pull .quote p {
-webkit-text-fill-color: var(--ink);
color: var(--ink);
background: none;
background-image: none;
}
.quote-pull .quote p {
font-size: 1.12rem;
line-height: 1.65;
}
.quote-pull__by {
margin-top: 1.25rem;
font-style: normal;
color: var(--muted);
font-size: .98rem;
}
@media (max-width: 760px) {
.page-cenik .price-list li {
flex-direction: column;
align-items: flex-start;
gap: .35rem;
}
.price-list__end { align-items: flex-start; text-align: left; }
.price-table thead { display: none; }
.price-table tbody tr {
display: grid;
grid-template-columns: 1fr auto;
gap: .25rem .75rem;
padding: 1rem 1.15rem;
border-bottom: 1px solid var(--line);
}
.price-table tbody td {
padding: 0;
border: 0;
}
.price-table tbody td:first-child { grid-column: 1 / -1; }
.price-table tbody td:nth-child(2) {
font-size: .88rem;
color: var(--muted);
}
.price-table tbody td.price-table__amount {
grid-column: 2;
grid-row: 2;
align-self: end;
}
}

/* —— Sdílení stránky (zabaleno ve výchozím stavu) —— */
.share-block {
margin: 1.25rem 0 0;
padding: .65rem 1rem;
border-radius: var(--radius, 12px);
border: 1px solid var(--field-border, rgba(74, 40, 104, .12));
background: rgba(255, 255, 255, .55);
}
.share-block[open] {
padding: .75rem 1.05rem 1.05rem;
background: rgba(255, 255, 255, .72);
}
.share-block--article {
margin-top: 1.75rem;
margin-bottom: .5rem;
}
.share-block--inline {
margin-top: 1rem;
width: 100%;
flex: 1 1 100%;
}
.share-block__summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: .75rem;
cursor: pointer;
list-style: none;
min-height: 44px;
padding: .15rem 0;
color: var(--ink);
-webkit-user-select: none;
user-select: none;
}
.share-block__summary::-webkit-details-marker,
.share-block__summary::marker {
display: none;
}
.share-block__summary-text {
font-weight: 600;
font-size: .95rem;
line-height: 1.35;
text-align: left;
}
.share-block--article .share-block__summary-text {
font-family: var(--font-serif, Fraunces, serif);
font-size: 1.05rem;
}
.share-block__summary:hover .share-block__summary-text,
.share-block__summary:focus-visible .share-block__summary-text {
color: var(--accent, #6c4b7c);
}
.share-block__summary:focus-visible {
outline: 2px solid rgba(108, 75, 124, .45);
outline-offset: 3px;
border-radius: 6px;
}
.share-block__chevron {
flex-shrink: 0;
width: .45rem;
height: .45rem;
margin-top: .1rem;
border-right: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(45deg);
opacity: .55;
transition: transform .18s ease, opacity .18s ease;
}
.share-block[open] .share-block__chevron {
transform: rotate(-135deg);
margin-top: .35rem;
opacity: .75;
}
.share-block__panel {
padding-top: .65rem;
border-top: 1px solid var(--field-border, rgba(74, 40, 104, .1));
margin-top: .35rem;
}
.share-block:not([open]) .share-block__panel {
display: none;
}
.share-block__hint {
margin: 0 0 .85rem;
font-size: .92rem;
line-height: 1.55;
color: var(--muted);
max-width: 42rem;
}
.share-actions {
display: flex;
flex-wrap: wrap;
gap: .5rem;
list-style: none;
margin: 0;
padding: 0;
}
.share-action {
display: inline-flex;
align-items: center;
gap: .45rem;
min-height: 44px;
min-width: 44px;
padding: .45rem .75rem;
border-radius: 999px;
border: 1px solid var(--field-border, rgba(74, 40, 104, .14));
background: #fff;
color: var(--ink);
font: inherit;
font-size: .88rem;
font-weight: 600;
text-decoration: none;
cursor: pointer;
transition: border-color .15s ease, box-shadow .15s ease;
}
.share-action:hover,
.share-action:focus-visible {
border-color: rgba(108, 75, 124, .35);
box-shadow: 0 2px 10px rgba(74, 40, 104, .08);
outline: none;
}
.share-action--facebook { color: #1877f2; }
.share-action--whatsapp { color: #128c7e; }
.share-action__icon {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.share-action__label { white-space: nowrap; }
.share-block__status {
margin: .65rem 0 0;
font-size: .88rem;
color: var(--muted);
}
.book-detail-actions--with-share,
.course-detail-actions--with-share {
flex-wrap: wrap;
align-items: flex-start;
gap: 1rem;
}
.book-detail-actions__cta,
.course-detail-actions__cta {
display: flex;
flex-wrap: wrap;
gap: .65rem;
flex: 1 1 12rem;
}
.section--article-detail .share-block--article {
max-width: 100%;
}

@media print {
.site-header, .callbar, .contact-strip, .btn-row { display: none; }
.share-block { display: none; }
body { background: #fff; padding: 0; }
}