/* ---------- Písma (uložená na serveru) ---------- */
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("../fonts/figtree-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Figtree"; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url("../fonts/figtree-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
/* ---------- Barvy a rozměry ---------- */
:root { color-scheme: light; --bg: #f1f0ee;           /* teplá šedá – pozadí stránky */ --surface: #ffffff;      /* karty */ --surface-alt: #eceef1;  /* podklad uvnitř karet */ --ink: #1a2c42;          /* nadpisy a text */ --ink-soft: #485a6c; --navy-deep: #172a42;    /* úvod, patička */ --navy-mid: #223f61; --blue: #1d64b3;         /* lékařská modrá */ --blue-strong: #154c8a; --blue-soft: #dce7f5; --line: #d8d5d3; --notice: #fbefc6; --notice-line: #efd98b; --notice-ink: #5a4300; --ok: #1d7a46; --ok-soft: #dff1e6; --closed: #9a3b2e; --closed-soft: #f7e5e1; --radius: 4px; --gap: 1rem;             /* mezera mezi kartami – všude stejná */ --pad: clamp(16px, 2.6vw, 36px);      /* vnitřní okraj karet – jako sluchadlaolomouc.cz */ --font-display: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --font-body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; --gutter: clamp(15px, 4.1vw, 58px);   /* okraj stránky – jako sluchadlaolomouc.cz */ }
/* ---------- Základ ---------- */
*, *::before, *::after { box-sizing: border-box; }
/* Velikost písma roste s obrazovkou stejně jako na sluchadlaolomouc.cz (tam přes zoom 1,21–1,65).
   Všechny velikosti jsou v rem, takže se zvětšuje text, nadpisy, tlačítka i mezery najednou. */
html { font-size: 106.25%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 16px; }
@media (min-width: 600px) { html { font-size: 115%; } }
@media (min-width: 960px) { html { font-size: 121%; } }
@media (min-width: 1200px) {
  html { font-size: 132%; }
}
@media (min-width: 1500px) {
  html { font-size: 143%; }
}
@media (min-width: 1700px) {
  html { font-size: 154%; }
}
@media (min-width: 1900px) {
  html { font-size: 165%; }
}
body { margin: 0; overflow-x: hidden; background: var(--bg); color: var(--ink); font-family: var(--font-body); font-size: 1rem; line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--blue-strong); }
p { margin: 0 0 1em; color: var(--ink-soft); }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 700; letter-spacing: -.012em; line-height: 1.15; margin: 0 0 .5em; text-wrap: balance; color: var(--ink); }
h1 { font-size: clamp(2.1rem, 4.75vw, 3.1rem); font-weight: 700; letter-spacing: -.02em; }
h2 { font-size: clamp(1.5rem, 3.4vw, 2.15rem); }
h3 { font-size: 1.3rem; }
.h4 { font-family: var(--font-body); font-weight: 700; font-size: 1.05rem; color: var(--blue-strong); margin: 0 0 .4em; line-height: 1.3; text-wrap: balance; }
b, strong { color: var(--ink); }
:focus-visible { outline: 2.5px solid var(--blue); outline-offset: 3px; border-radius: var(--radius); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 8px; top: -60px; z-index: 100; background: #fff; padding: 10px 14px; border-radius: var(--radius); font-weight: 700; }
.skip:focus { top: 8px; }
.wrap { max-width: 1760px; margin-inline: auto; padding-inline: var(--gutter); }
.block { padding-block: calc(var(--gap) / 2); }
.block--first, .page-hero + .block { padding-top: clamp(1.25rem, 3.5vw, 2.25rem); }
.block--last { padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.center { text-align: center; }
.lede { font-size: 1.1rem; }
.strong-blue { color: var(--blue-strong); font-weight: 700; }
mark { background: var(--blue-soft); color: var(--blue-strong); font-weight: 700; padding: .05em .3em; border-radius: var(--radius); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.divider { border: 0; border-top: 1px solid var(--line); margin: 1.8rem 0; }
.eyebrow { display: flex; align-items: center; margin: 0 0 .7em; font-size: .8rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; color: var(--blue); }
.eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; margin-right: .6em; flex: none; }
/* ---------- Karty – jednotný vzhled všech boxů ---------- */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--pad); }
.card--sm { padding: var(--pad); }
.grid { display: grid; gap: var(--gap); }
.grid > .card { height: 100%; }
.card-head { display: flex; align-items: center; gap: .85rem; margin-bottom: .8rem; }
.card-head .h4 { margin: 0; }
.card-ico { width: 52px; height: 52px; flex: none; border-radius: var(--radius); background: none; color: #1a1a1a; display: grid; place-items: center; }
.card-ico svg { width: 46px; height: 46px; }
.card-ico img { width: 38px; height: 38px; }
.card--notice { background: var(--notice); border-color: var(--notice-line); padding: 1rem 1.25rem; display: flex; align-items: center; justify-content: center; gap: .7rem; text-align: center; }
.card--notice p { color: var(--notice-ink); font-weight: 700; margin: 0; }
.card--notice svg { width: 30px; height: 30px; color: var(--notice-ink); flex: none; }
/* ---------- Tlačítka (sytě modrá, bílý rámeček, stín) ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 48px; font-family: var(--font-body); font-weight: 700; font-size: .95rem; text-align: center; line-height: 1.25; padding: .75em 1.4em; border-radius: var(--radius); text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: transform .15s ease, background .15s ease, border-color .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn svg { width: 21px; height: 21px; flex: none; }
.btn--blue { background: var(--blue); color: #fff; border-color: #fff; box-shadow: 0 6px 16px rgba(0, 0, 0, .25); text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.btn--blue:hover { background: var(--blue-strong); color: #fff; }
.btn--outline { background: #fff; color: var(--blue-strong); border-color: currentColor; }
.btn--outline:hover { background: #f3f7fc; }
.btn--ghost-light { background: rgba(255, 255, 255, .12); color: #fff; border-color: #fff; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem; }
.btn--ghost-light:hover { background: rgba(255, 255, 255, .24); color: #fff; }
.btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.btns--center { justify-content: center; }
.more { display: inline-flex; align-items: center; gap: .4em; margin-top: auto; padding-top: .5rem; min-height: 44px; font-weight: 700; color: var(--blue-strong); text-decoration: none; }
.more::after { content: "→"; transition: transform .15s; }
.more:hover::after { transform: translateX(3px); }
/* Úvod podstránek – tmavý pruh s nadpisem (jako na sluchadlaolomouc.cz) */
.page-hero { position: relative; color: #fff; text-align: center; background: radial-gradient(800px 360px at 85% -20%, rgba(29, 100, 179, .45), transparent 70%), linear-gradient(135deg, var(--navy-deep), var(--navy-mid)); padding-block: 110px clamp(2.5rem, 6vw, 3.75rem); }
.page-hero h1 { color: #fff; margin-bottom: .4em; }
.page-hero p { color: #dde6f0; font-size: 1.05rem; max-width: 40em; margin-inline: auto; }
.page-hero p.eyebrow { font-size: .8rem; }
.page-hero h1.h1-long { max-width: 34ch; margin-inline: auto; font-size: clamp(1.45rem, 3vw, 2.3rem); line-height: 1.25; }
.page-hero .eyebrow { justify-content: center; color: #d4e5fb; }
/* ---------- Výhody ---------- */
.perks { grid-template-columns: 1fr; }
/* ---------- Ordinační doba + kontakt ---------- */
.status { display: inline-flex; align-items: center; gap: .5em; padding: .4em .95em; border-radius: var(--radius); font-weight: 700; font-size: .98rem; margin-bottom: 1rem; background: var(--blue-soft); color: var(--blue-strong); }
.status::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; }
.status.is-open { background: var(--ok-soft); color: var(--ok); }
.status.is-closed { background: var(--closed-soft); color: var(--closed); }
.hours { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 1rem; }
.hours th, .hours td { text-align: left; padding: .55rem .5rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.hours tr:last-child th, .hours tr:last-child td { border-bottom: 0; }
.hours th { font-weight: 700; color: var(--ink); width: 36%; }
.hours td { color: var(--ink-soft); }
.hours td span { display: inline-block; min-width: 7.4em; }
.hours-note { margin-top: .9rem; font-size: .98rem; }
.contact-rows { display: grid; gap: 1.2rem; }
.contact-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; }
.contact-row .label { display: block; font-size: .8rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: .15rem; }
.contact-row .value { color: var(--ink); font-size: 1rem; line-height: 1.4; }
.contact-row .btn { min-width: 10rem; min-height: 46px; padding-block: .55em; }
.tag { display: inline-block; padding: .5em .9em; border-radius: var(--radius); background: var(--blue-soft); color: var(--blue-strong); font-weight: 700; font-size: 1rem; line-height: 1.35; }
.contact-rows + .tag { margin-top: 1.4rem; }
/* ---------- Obsah karet ---------- */
.split { display: grid; gap: 1.6rem; align-items: center; }
.split-img img { width: 100%; border-radius: var(--radius); aspect-ratio: 4 / 3; object-fit: cover; }
.icon-list { display: grid; gap: .9rem 2rem; }
.icon-list li { display: flex; align-items: center; gap: .9rem; font-weight: 600; color: var(--ink); line-height: 1.35; }
.circle-pair { position: relative; max-width: 380px; margin: 0 auto; padding: 0 0 18px 18px; }
.circle-pair .big { width: 100%; aspect-ratio: 1; border-radius: var(--radius); object-fit: cover; }
.circle-pair .small { position: absolute; left: 0; bottom: 0; width: 42%; aspect-ratio: 1; border-radius: var(--radius); object-fit: cover; border: 6px solid #fff; box-shadow: 0 12px 30px -12px rgba(23, 42, 66, .5); }
.brands { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin: 1.3rem 0 1.6rem; }
.brands img { height: 42px; width: auto; border-radius: var(--radius); box-shadow: 0 3px 8px rgba(0, 0, 0, .15); }
.brands--center { justify-content: center; margin-bottom: 0; }
.prose { max-width: 46em; }
.prose h3 { font-family: var(--font-body); font-size: 1.12rem; font-weight: 700; color: var(--blue-strong); margin: 1.6em 0 .4em; }
.prose h3:first-child { margin-top: 0; }
.dash-list { display: grid; gap: .45rem; margin: 0 0 1em; }
.dash-list li { position: relative; padding-left: 1.3rem; color: var(--ink-soft); }
.dash-list li::before { content: ""; position: absolute; left: .2rem; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }
.dash-list ul { display: grid; gap: .35rem; margin-top: .45rem; }
.steps { display: grid; gap: .8rem; counter-reset: krok; margin: 0 0 1.4rem; }
.steps li { counter-increment: krok; display: flex; align-items: center; gap: .85rem; font-weight: 600; color: var(--ink); }
.steps li::before { content: counter(krok); width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: var(--radius); background: var(--blue); color: #fff; font-weight: 700; font-size: .95rem; }
.chips { display: grid; gap: .6rem; margin: 1.2rem 0; }
.chips li { display: flex; align-items: center; gap: .8rem; padding: .7rem .9rem; border-radius: var(--radius); background: var(--surface-alt); color: var(--ink); font-weight: 600; }
.chips b { min-width: 2.6em; color: var(--blue-strong); font-variant-numeric: tabular-nums; }
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin: 1.4rem 0 1.6rem; }
.facts li { background: var(--surface-alt); border-radius: var(--radius); padding: 1rem 1.1rem; }
.facts strong { display: block; font-family: var(--font-display); font-size: 2rem; font-weight: 700; color: var(--blue-strong); line-height: 1.1; }
.facts span { display: block; font-size: .95rem; color: var(--ink-soft); line-height: 1.4; margin-top: .2rem; }
.qa { display: grid; gap: 1.4rem; }
.qa .q { font-weight: 700; color: var(--blue-strong); margin-bottom: .35rem; }
.highlight { background: var(--blue-soft); border-radius: var(--radius); padding: 1.2rem 1.3rem; color: var(--blue-strong); font-weight: 700; font-size: 1.12rem; }
.highlight p { color: inherit; }
.trials { width: 100%; border-collapse: collapse; font-size: .98rem; font-variant-numeric: tabular-nums; }
.trials th, .trials td { text-align: left; padding: .5rem .5rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.trials th { font-weight: 700; color: var(--ink); font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; }
.trials td { color: var(--ink-soft); }
.trials td:first-child { font-weight: 700; color: var(--blue-strong); white-space: nowrap; }
.table-scroll { overflow-x: auto; margin-top: 1rem; }
.study img { margin-top: 1rem; border-radius: var(--radius); }
.fine { font-size: .9rem; color: var(--ink-soft); }
/* ---------- Lékaři ---------- */
.doctors { display: grid; gap: 1.8rem 2.4rem; margin-top: 1.6rem; }
.doctor-id { display: flex; align-items: center; gap: 1rem; margin-bottom: .9rem; }
.doctor-id img { width: 104px; height: 104px; border-radius: var(--radius); object-fit: cover; object-position: center 18%; flex: none; background: #e9edf2; }
.doctor-id .name { color: var(--blue); font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 .1rem; line-height: 1.35; }
.doctor-id h3 { margin: 0; font-size: 1.35rem; }
.doctor p { font-size: .94rem; }
/* ---------- Galerie ---------- */
.slider { position: relative; margin-top: 1.4rem; }
.slides { display: grid; grid-auto-flow: column; grid-auto-columns: 85%; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.slides::-webkit-scrollbar { display: none; }
.slides li { scroll-snap-align: start; }
.slides img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.slides .h4 { margin: .8rem 0 .2rem; font-size: 1.05rem; }
.slides p { font-size: .94rem; }
.slide-btn { position: absolute; top: calc(37% - 24px); z-index: 2; width: 48px; height: 48px; border-radius: var(--radius); border: 0; cursor: pointer; background: #fff; color: var(--blue); box-shadow: 0 6px 18px rgba(0,0,0,.2); display: none; align-items: center; justify-content: center; }
.slide-btn svg { width: 20px; height: 20px; }
.slide-btn.prev { left: -14px; }
.slide-btn.next { right: -14px; }
.slide-dots { display: flex; justify-content: center; gap: 8px; margin-top: 1rem; }
.slide-dots span { width: 8px; height: 8px; border-radius: 50%; background: #c6cbd2; transition: width .2s; }
.slide-dots span.on { width: 22px; border-radius: var(--radius); background: var(--blue); }
/* ---------- Obsah třetích stran (mapa, recenze) – načte se po souhlasu nebo kliknutí ---------- */
.embed { position: relative; background: var(--surface-alt); border-radius: var(--radius); overflow: hidden; }
.embed-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; padding: 1.5rem 1rem; min-height: 240px; text-align: center; font-size: 1rem; }
.embed-ph p { margin: 0; }
.embed-ph > svg { width: 40px; height: 40px; color: var(--ink); }
.embed iframe { display: block; width: 100%; border: 0; }
.review-widget { min-height: 120px; display: flex; justify-content: center; }
.review-widget .embed-ph { min-height: 140px; }
/* ---------- Formulář ---------- */
.form { display: grid; gap: .7rem; }
.form label { display: block; }
.form input, .form textarea { width: 100%; display: block; padding: .8rem .9rem; font: inherit; font-size: 1.05rem; color: var(--ink); background: #fff; border: 1.5px solid #c5ccd5; border-radius: var(--radius); }
.form input:focus, .form textarea:focus { border-color: var(--blue); outline: 2px solid var(--blue-soft); }
.form textarea { min-height: 140px; resize: vertical; }
.form .btn { justify-self: start; }
.form-help { font-size: .92rem; }
/* ---------- Dokument (ochrana osobních údajů) ---------- */
.doc h2 { font-size: 1.5rem; margin-top: 1.4em; }
.doc h3 { font-family: var(--font-body); font-size: 1.1rem; font-weight: 700; color: var(--blue-strong); margin: 1.3em 0 .4em; }
.doc ul { display: grid; gap: .45rem; margin: 0 0 1em; }
.doc li { position: relative; padding-left: 1.3rem; color: var(--ink-soft); }
.doc li::before { content: ""; position: absolute; left: .2rem; top: .7em; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }
/* ---------- Patička ---------- */
footer.site { background: linear-gradient(135deg, var(--navy-deep), var(--navy-mid)); padding-block: clamp(2rem, 4vw, 2.75rem) 1.1rem; text-align: center; color: #b8c7d9; }
footer.site .eyebrow { color: #9cc4f2; justify-content: center; margin-bottom: .2rem; }
footer.site .eyebrow::before { display: none; }
footer.site .phone-link { font-family: var(--font-display); font-size: clamp(1.5rem, 3.47vw, 2.1rem); color: #fff; text-decoration: none; font-weight: 500; line-height: 1.15; }
footer.site .phone-link:hover { color: #9cc4f2; }
footer.site .addr { margin: .6rem 0 0; color: #b8c7d9; font-size: 1rem; }
.footer-fine { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .4rem 1.2rem; font-size: .85rem; color: #8ea3bb; margin: 1.3rem 0 0; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.1); }
.footer-fine a { color: #b8c7d9; }
.footer-fine img { width: 20px; height: 20px; display: inline-block; vertical-align: -4px; filter: invert(1) opacity(.7); }
/* ---------- Cookie lišta ---------- */
.cookie-bar { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 24px 50px -16px rgba(23, 42, 66, .55); padding: 1.1rem 1.2rem; font-size: .98rem; }
.cookie-in { display: grid; gap: .9rem; }
.cookie-bar h2 { font-family: var(--font-body); font-size: 1.05rem; margin: 0 0 .25rem; display: flex; align-items: center; gap: .5rem; }
.cookie-bar h2 img { width: 24px; height: 24px; }
.cookie-bar p { margin: 0; }
.cookie-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.cookie-buttons button { min-height: 46px; border-radius: var(--radius); font: inherit; font-weight: 700; cursor: pointer; border: 2px solid var(--blue-strong); background: #fff; color: var(--blue-strong); }
.cookie-buttons button[data-c="granted"] { background: var(--blue); border-color: var(--blue); color: #fff; }
/* ---------- Tablet ---------- */
@media (min-width: 640px) {
  .perks, .cols-2 { grid-template-columns: 1fr 1fr; }
  .cols-3 { grid-template-columns: repeat(3, 1fr); }
  .icon-list, .chips { grid-template-columns: 1fr 1fr; }
  .doctors { grid-template-columns: 1fr 1fr; }
  .facts { grid-template-columns: repeat(4, 1fr); }
  .facts--3 { grid-template-columns: repeat(3, 1fr); }
  .slides { grid-auto-columns: calc((100% - 14px) / 2); }
  .cookie-bar { left: auto; right: 20px; bottom: 20px; max-width: 470px; }
}
/* ---------- Počítač ---------- */
@media (min-width: 960px) {
  .perks { grid-template-columns: repeat(5, 1fr); }
  .perks .card-head { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .split { grid-template-columns: 1fr 1.1fr; gap: 2.6rem; }
  .split--wide-text { grid-template-columns: .8fr 1.2fr; }
  .slide-btn { display: inline-flex; }
  .slide-dots { display: none; }
  .slides { grid-auto-columns: calc((100% - 28px) / 3); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
@media print {
  .cookie-bar { display: none !important; }
  .page-hero { padding-top: 1rem; }
}
/* Mýty o sluchadlech – jeden box, body oddělené linkou */
.myths { display: grid; }
.myths li { padding-block: 1.2rem; border-top: 1px solid var(--line); }
.myths li:first-child { padding-top: 0; border-top: 0; }
.myths li:last-child { padding-bottom: 0; }
/* Mapa vedle popisu cesty */
.split--map { align-items: stretch; }
.split--map .embed { display: flex; flex-direction: column; justify-content: center; min-height: 260px; }
.split--map .embed iframe { flex: 1; min-height: 340px; }
@media (min-width: 960px) {
  .split--map { grid-template-columns: 1fr 1fr; }
}
/* ---------- Rozcestník (dlaždice na úvodní stránce) ---------- */
.tiles { display: grid; gap: var(--gap); grid-template-columns: 1fr 1fr; }
.tile { display: flex; flex-direction: column; gap: .55rem; padding: 1.1rem 1rem 1.2rem; text-decoration: none; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); transition: border-color .15s, transform .15s; }
.tile:hover { border-color: var(--blue); transform: translateY(-2px); }
.tile b { color: var(--blue-strong); font-size: 1.05rem; line-height: 1.25; }
.tile span:last-child { color: var(--ink-soft); font-size: .9rem; line-height: 1.4; }
@media (min-width: 960px) {
  .tiles { grid-template-columns: repeat(3, 1fr); }
  .tile { padding: 1.4rem 1.4rem 1.5rem; }
}
/* ---------- Rozbalovací bloky (plný text na kliknutí) ---------- */
.acc { border-top: 1px solid var(--line); }
.acc:last-child { border-bottom: 1px solid var(--line); }
.acc summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 0; font-weight: 700; color: var(--blue-strong); line-height: 1.35; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: "+"; flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--radius); background: var(--blue-soft); color: var(--blue-strong); font-size: 1.2rem; font-weight: 700; line-height: 1; }
.acc[open] summary::after { content: "–"; }
.acc .acc-body { padding: 0 0 1.1rem; }
.acc-list { margin-top: .4rem; }
.more-text summary { display: inline-flex; padding: .3rem 0; font-size: .95rem; }
.more-text summary::after { width: 24px; height: 24px; font-size: 1rem; }
.more-text { border: 0 !important; }
/* ---------- Seznamy ve dvou sloupcích ---------- */
@media (min-width: 640px) {
  .dash-list--cols { grid-template-columns: 1fr 1fr; column-gap: 2rem; }
}
/* ---------- Lékaři – kompaktně ---------- */
.doctors--compact { grid-template-columns: 1fr; gap: 1rem; margin-top: 1.2rem; }
.doctors--compact .doctor-id { margin: 0; }
.doctors--compact .doctor-id img { width: 76px; height: 76px; }
.doctors--compact h3 { font-size: 1.15rem; }
@media (min-width: 960px) {
  .doctors--compact { grid-template-columns: repeat(3, 1fr); }
}
/* ---------- Výzva k objednání ---------- */
.cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.4rem; margin-top: 1.4rem; }
.cta-row p { margin: 0; }
/* Hlášení formuláře */
.form-msg { padding: .8rem 1rem; border-radius: var(--radius); font-weight: 700; margin: 0; }
.form-msg.is-ok { background: var(--ok-soft); color: var(--ok); }
.form-msg.is-err { background: var(--closed-soft); color: var(--closed); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* Hodnocení – odznaky s hvězdičkami */
.review-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; margin-top: 1rem; }
.review-google { display: inline-flex; align-items: center; gap: .8rem; padding: .6rem 1.1rem .6rem .7rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; text-decoration: none; color: var(--ink); box-shadow: 0 3px 8px rgba(0,0,0,.08); }
.review-google img { width: 52px; height: 52px; }
.review-google b { display: block; color: var(--blue-strong); }
.review-google small { color: var(--ink-soft); font-size: .85rem; }
.stars { color: #f4b400; letter-spacing: .1em; font-size: 1.05rem; }
/* Tabulka studií – čísla EudraCT se nelámou */
.trials td:last-child { white-space: nowrap; }
@media (max-width: 639px) {
  .trials { font-size: .8rem; }
  .trials th, .trials td { padding: .45rem .25rem; }
  .trials td:last-child { font-size: .72rem; letter-spacing: -.01em; }
  .trials th { font-size: .66rem; }
}
/* Ceny sluchadel (Sluchadla.html) */
.prices { display: grid; gap: .8rem; margin: 1.2rem 0; }
.price { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; display: grid; gap: .25rem; background: var(--surface-alt); }
.price b { color: var(--ink); font-size: 1rem; }
.price strong { color: var(--blue-strong); font-family: var(--font-display); font-size: 1.45rem; line-height: 1.2; }
.price span { color: var(--ink-soft); font-size: .92rem; line-height: 1.45; }
@media (min-width: 760px) {
  .prices { grid-template-columns: repeat(3, 1fr); }
}
.card--notice-ok { background: var(--ok-soft); border-color: #b9dcc6; }
.card--notice-ok p, .card--notice-ok svg { color: var(--ok); }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
/* Světlá varianta úvodu podstránek (zkouška) */
.page-hero--light { background: #f4f2f0; color: var(--ink); overflow: hidden; }
.page-hero--light h1 { color: var(--navy-deep); }
.page-hero--light p { color: var(--ink); }
.page-hero--light .eyebrow { color: var(--blue); }
.page-hero--light .wrap { position: relative; z-index: 1; }
@media (min-width: 960px) {
  .page-hero--light p { max-width: 32em; }
}
@media (min-width: 960px) {
  .page-hero--light p { max-width: 28em; }
}
/* Dekorativní čtverečky (motiv z ilustrace) */
.page-hero--light { background-image: url("../images/ctverce-a.svg"), url("../images/ctverce-b.svg"); background-repeat: no-repeat; background-size: 130px auto, 130px auto; background-position: left -78px top 84px, right -74px top 96px; }
@media (min-width: 960px) {
  .page-hero--art { background-size: 200px auto, 200px auto; background-position: left 1.5% bottom 6px, left 11% top 34px; }
}
/* původní ORL ikony jsou podrobné – v dlaždicích větší */
.tile .card-ico { width: 72px; height: 72px; place-items: start; }
.tile .card-ico svg { width: 72px; height: 72px; }
@media (min-width: 960px) {
  .tile .card-ico, .tile .card-ico svg { width: 92px; height: 92px; }
}
/* ikona u nadpisu sekce (Nos, Krk) */
.title-ico { display: flex; align-items: center; gap: 1rem; margin-bottom: .6rem; }
.title-ico .card-ico, .title-ico .card-ico svg { width: 72px; height: 72px; }
.title-ico h2 { margin-bottom: 0; }
/* patička jako na sluchadlaolomouc.cz */
.footer-fine { display: block; font-size: .8rem; color: #8ea3bb; margin: 1rem 0 0; padding-top: .85rem; border-top: 1px solid rgba(255, 255, 255, .08); }
.cookie-icon { display: inline-flex; vertical-align: middle; margin-left: .45em; padding: .35em; color: #8ea3bb; border-radius: 50%; }
.cookie-icon svg { width: 1.15rem; height: 1.15rem; display: block; }
.cookie-icon:hover, .cookie-icon:focus-visible { color: #fff; }
/* věta místo tlačítka Zavolat v boxech podstránek */
.cta-note { margin: 1.1rem 0 0; color: var(--ink-soft); }
/* patička co nejnižší: jen tlačítko Objednat se a řádek s © */
footer.site { padding-block: 1.6rem 1.3rem; }
footer.site .btn { margin: 0; }
footer.site .footer-fine { margin: .75rem 0 0; padding-top: .35rem; }
/* Karta Kontakt: když se tlačítka nevejdou vedle textu, vše na střed a tlačítka přes celou šířku */
.card--contact { container-type: inline-size; }
@container (max-width: 430px) {
  .card--contact .card-head { justify-content: center; }
  .card--contact .contact-row { flex-direction: column; align-items: stretch; text-align: center; }
  .card--contact .contact-row .btn { width: 100%; min-width: 0; justify-content: center; }
}
/* Velmi úzké displeje (pod 360 px): nic nesmí přetékat */
.grid > *, .split > * { min-width: 0; }
.contact-row .value, .contact-row a { overflow-wrap: anywhere; }
@media (max-width: 400px) {
  .contact-row .btn { min-width: 0; }
  footer.site .btn { font-size: clamp(.78rem, 3.9vw, .95rem); padding-inline: 1em; }
}
.tiles, .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tile b, .tile span, .facts span { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 400px) {
  .tile { padding: .9rem; }
  .tile .card-ico, .tile .card-ico svg { width: 60px; height: 60px; }
  .tile b { font-size: clamp(.9rem, 4.4vw, 1.05rem); }
  .facts li { padding: .8rem; }
  .facts strong { font-size: clamp(1.4rem, 7vw, 2rem); }
  .hours th, .hours td { padding-inline: .25rem; }
  .hours td span { min-width: 0; }
}
html, body { overflow-x: clip; }
@media (max-width: 400px) {
  .tiles { gap: .6rem; }
  .tile { padding: .8rem .7rem; }
  .tile b { font-size: clamp(.86rem, 4.3vw, 1.05rem); }
  .tile span:last-child { font-size: clamp(.76rem, 3.75vw, .9rem); }
}
@media (max-width: 300px) {
  .tiles, .facts { grid-template-columns: minmax(0, 1fr); }
}
/* Dovolená: bílý box pod ordinační dobou, černá ikona, zelený text */
.stack { display: grid; gap: var(--gap); align-content: start; }
.stack > .card { height: auto; }
.card--notice.card--notice-ok { background: var(--surface); border-color: var(--line); }
.card--notice.card--notice-ok svg { color: #1a1a1a; }
.card--notice.card--notice-ok p { color: var(--ok); }
/* Horní lišta podstránek: text vlevo, obrázek vpravo u okraje obrazovky, vlastní čtverečky */
.page-hero--light { text-align: left; background-repeat: no-repeat; background-size: 96px auto, 80px auto; background-position: right 6px bottom 4px, left -22px bottom -16px; }
.page-hero--light .wrap { position: relative; z-index: 1; }
.page-hero--light p { margin-inline: 0; }
.page-hero--light h1.h1-long { margin-inline: 0; }
.page-hero--art .wrap { padding-right: calc(32vw + 10px); }
.page-hero-art { position: absolute; right: 0; top: 50%; transform: translateY(-42%); width: 32vw; max-width: 340px; height: auto; max-height: 78%; object-fit: contain; object-position: right center; margin: 0; pointer-events: none; z-index: 0; }
@media (min-width: 960px) {
  .page-hero--light { background-size: 220px auto, 150px auto; background-position: right 33% top 40px, left 2% bottom -30px; }
  .page-hero--art .wrap { padding-right: 34%; }
  .page-hero-art { width: 30%; max-width: 420px; max-height: 84%; right: 0; }
}
/* Dovolená: stejný box jako ostatní – ikona, modrý nadpis, zelený text */
.card--dovolena .dovolena-text { color: var(--ok); font-weight: 600; margin: 0; }
.grid--top { align-items: start; }
.grid--top > .card { height: auto; }
/* rozcestník – 9. dlaždice přes celou šířku, když jsou jen 2 sloupce */
.tiles > .tile:last-child:nth-child(odd) { grid-column: 1 / -1; }
[id] { scroll-margin-top: 90px; }
/* všechna tlačítka mají stejnou modrou jako tlačítko v patičce; tmavší jen při najetí myší
   (na mobilu po klepnutí nezůstane tlačítko ztmavlé) */
.btn--blue, .btn--blue:hover, .btn--blue:focus, .btn--blue:active, .btn--blue[aria-expanded="true"] { background: var(--blue); color: #fff; }
@media (hover: hover) {
  .btn--blue:hover { background: var(--blue-strong); }
}
/* ---------- Pevná hlavička (nastálo, bez zajíždění) – na mobilu o čtvrtinu užší, s šířkou displeje roste ---------- */
:root { --bar-h: clamp(52px, calc(40px + 2.5vw), 72px); --nav-btn: calc(var(--bar-h) * .74); }
.page-hero { padding-top: calc(var(--bar-h) + clamp(28px, 5vw, 44px)); }
/* Novinka: vyšetření sluchu po padesátce (pruh na úvodu + štítek) */
.badge-new { display: inline-block; margin: 0 0 .8rem; padding: .3em .7em; border-radius: var(--radius); background: #fdecd8; color: #9a4a00; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; line-height: 1.3; }
.news-block { padding-block: 0; }
.news-block + .block { padding-top: var(--gap, 1rem); }
.news-strip { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; padding: 1rem 1.2rem; border-radius: var(--radius); background: #fff; border: 1px solid #f1d5b5; border-left: 5px solid #e8913a; color: var(--ink); text-decoration: none; box-shadow: 0 4px 14px rgba(23, 42, 66, .06); }
.news-strip .badge-new { margin: 0; }
.news-strip .news-text { flex: 1 1 260px; line-height: 1.45; }
.news-strip .news-text b { color: var(--blue-strong); }
.news-strip .news-arrow { color: var(--blue); font-size: 1.3rem; font-weight: 700; }
.news-strip:hover { border-color: #e8913a; }
/* Ceník */
.cenik { width: 100%; border-collapse: collapse; margin: .4rem 0 1rem; }
.cenik th, .cenik td { padding: .75rem 0; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.cenik th { font-weight: 600; color: var(--ink); padding-right: 1rem; }
.cenik td { text-align: right; white-space: nowrap; font-weight: 700; color: var(--blue-strong); }
.cenik tr:last-child th, .cenik tr:last-child td { border-bottom: 0; }
.cena-tbd { color: var(--ink-soft); font-weight: 400; }
.highlight--warn { background: #fdecd8; color: #7a3b00; }
/* ---------- Zkouška: žena (řez hlavou) vpravo v úvodu, lékař s dítětem pod dovolenou ---------- */
.hero-art--zena img { -webkit-mask-image: linear-gradient(180deg, #000 86%, transparent 100%); mask-image: linear-gradient(180deg, #000 86%, transparent 100%); }
@media (max-width: 599px) {
  .hero-art--zena { margin-left: -30%; }
  .hero-art--zena img { -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 35%), linear-gradient(180deg, #000 86%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 35%), linear-gradient(180deg, #000 86%, transparent 100%); -webkit-mask-composite: source-in; mask-composite: intersect; }
}
@media (min-width: 960px) {
  .hero-art--zena { width: 46%; right: 2%; }
  .hero-art--zena img { object-position: center bottom; }
}
.kontakt-art { display: block; width: 100%; max-width: 560px; height: auto; margin: .4rem auto 0; -webkit-mask-image: linear-gradient(180deg, #000 85%, transparent 100%); mask-image: linear-gradient(180deg, #000 85%, transparent 100%); }
@media (max-width: 599px) {
  .hero-art--zena { margin-left: -55%; }
}
/* ---------- Úvod: mobil a tablet – text, tlačítka a pod nimi lékař s holčičkou přes celou šířku ---------- */
@media (max-width: 959px) {
  .hero-art--zena { grid-area: art; grid-row: auto; margin: .8rem calc(-1 * var(--gutter)) 0; width: auto; max-width: none; align-self: auto; }
}
/* ---------- Lišty podstránek: stejné pozadí jako úvod (světlé vlevo, modrý přechod s křížky vpravo), o stupeň světlejší ---------- */
.page-hero--light { background-color: #f8f6f3; background-image: linear-gradient(rgba(248, 246, 243, .3), rgba(248, 246, 243, .3)), url("../images/hero-pozadi-mobil.webp"); background-size: cover, cover; background-position: center, right top; background-repeat: no-repeat; }
@media (min-width: 600px) {
  .page-hero--light { background-image: linear-gradient(rgba(248, 246, 243, .3), rgba(248, 246, 243, .3)), url("../images/hero-pozadi.webp"); background-position: center, right 38%; }
}
.page-hero--light::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40px; background: linear-gradient(180deg, rgba(241, 240, 238, 0), var(--bg)); pointer-events: none; }
.page-hero-art { filter: drop-shadow(0 0 14px rgba(255, 255, 255, .85)); }
/* Lišty podstránek: vlastní nízké pozadí (křížky jen vpravo) */
.page-hero--light { background-image: url("../images/lista-pozadi-mobil.webp"); background-size: cover; background-position: right top; }
@media (min-width: 600px) {
  .page-hero--light { background-image: url("../images/lista-pozadi-vyssi.webp"); background-position: right center; }
}
@media (min-width: 1200px) {
  .page-hero--light { background-image: url("../images/lista-pozadi.webp"); }
}
.page-hero-art { filter: none; -webkit-mask-image: linear-gradient(180deg, #000 82%, transparent 100%); mask-image: linear-gradient(180deg, #000 82%, transparent 100%); }
/* Lišty podstránek v2: plné modré pozadí, větší ilustrace vpravo */
.page-hero--light { background-image: url("../images/lista-pozadi-mobil.webp"); background-size: cover; background-position: center top; }
@media (min-width: 600px) {
  .page-hero--light { background-image: url("../images/lista-pozadi-vyssi.webp"); background-position: center; }
}
@media (min-width: 1200px) {
  .page-hero--light { background-image: url("../images/lista-pozadi.webp"); }
}
.page-hero--light { padding-bottom: clamp(2.4rem, 6vw, 4rem); }
.page-hero--art .wrap { padding-right: 40%; }
.page-hero-art { width: 44vw; max-width: none; max-height: 92%; top: auto; bottom: 0; transform: none; object-position: right bottom; }
@media (min-width: 960px) {
  .page-hero--art .wrap { padding-right: 38%; }
  .page-hero-art { width: 36%; max-width: 520px; max-height: 96%; right: 4%; }
}

/* =====================================================================
   Nové prvky ve starém vzhledu: horní lišta, spodní lišta Menu + Zavolat, menu, úvod s fotkou, seznam „Proč k nám“
   ===================================================================== */
body { padding-bottom: 84px; }
[hidden] { display: none !important; }

/* Horní lišta se značkou (odjede s obsahem) */
.topbar { background: rgba(244, 242, 240, .96); border-bottom: 1px solid var(--line); }
.topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: var(--bar-h); }
.brand { display: flex; align-items: center; gap: .6rem; min-width: 0; color: var(--ink); text-decoration: none; line-height: 1.1; text-align: left; }
.brand img { width: 40px; height: 40px; flex: none; }
.brand strong { display: block; font-weight: 700; letter-spacing: .06em; font-size: .95rem; color: var(--navy-deep); }
.brand small { display: block; font-size: .78rem; color: var(--ink-soft); }
.topbar-actions { display: none; align-items: center; gap: .7rem; }
.topbar-actions .btn { min-height: 44px; padding-block: .45em; }

/* Spodní lišta: Menu vlevo, Zavolat vpravo */
.dock {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; display: flex; gap: 10px;
  padding: 10px max(14px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));
  background: rgba(244, 242, 240, .97); border-top: 1px solid var(--line);
}
.dock .btn { min-height: 52px; }
.dock-menu { flex: 1; }
.dock-call { flex: 1.5; }

/* Menu: modrý panel, který vyjede nad spodní lištou */
.menu { position: fixed; inset: 0; z-index: 45; background: rgba(23, 42, 66, .42); }
.menu-in {
  position: absolute; left: 12px; right: 12px; margin-inline: auto; max-width: 440px; bottom: calc(76px + env(safe-area-inset-bottom));
  max-height: calc(100vh - 100px); max-height: calc(100dvh - 100px - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain;
  background: var(--blue); border-radius: var(--radius); padding: .5rem; box-shadow: 0 24px 50px -16px rgba(23, 42, 66, .55);
}
.menu-head { display: flex; align-items: center; justify-content: space-between; padding: .1rem .2rem .35rem .8rem; }
.menu-head strong { color: #fff; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; }
.menu-close { width: 40px; height: 40px; border: 0; background: transparent; color: #fff; display: grid; place-items: center; cursor: pointer; }
.menu-close svg { width: 22px; height: 22px; }
.menu nav { display: block; }
.menu a { display: block; padding: .62rem .75rem; border-radius: var(--radius); background: rgba(255, 255, 255, .1); color: #fff; text-decoration: none; font-weight: 600; font-size: clamp(14px, 4.15vw, 17.4px); line-height: 1.25; }
.menu a:hover, .menu a[aria-current="page"] { background: rgba(255, 255, 255, .24); }
.menu nav > a { margin-top: 4px; }
.menu nav > a:first-child { margin-top: 0; }
.menu .nav-group { display: block; padding: .55rem .8rem .3rem; color: rgba(255, 255, 255, .72); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.menu .nav-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding-bottom: .25rem; }
.menu-call { display: none; }
body.menu-open { overflow: hidden; }

/* Úvod: fotografie v pozadí, text přes ni */
.hero { position: relative; background: #8aa4c0; }
.hero-photo { position: relative; aspect-ratio: 6 / 7; max-height: 82vh; overflow: hidden; background: #8aa4c0; }
.hero-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; text-align: center; padding: 16% 40px 0; color: #fff; }
.hero-ph b { color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.hero-ph span { font-size: .8rem; opacity: .92; max-width: 22em; }
.hero-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 120px 0 1.6rem; background: linear-gradient(180deg, rgba(23, 42, 66, 0) 0%, rgba(23, 42, 66, .92) 100%); }
.hero-name { margin: 0 0 .15rem; color: #fff; opacity: .94; font-size: .95rem; font-weight: 500; }
.hero h1 { color: #fff; font-size: clamp(1.9rem, 8vw, 2.4rem); margin: 0 0 .35em; }
.hero-lede { margin: 0; color: #fff; font-size: .92rem; line-height: 1.5; max-width: 34em; }
.intro { padding-top: clamp(1rem, 3vw, 1.4rem); }
.hero-btns { display: grid; gap: .75rem; max-width: 420px; }
.hero-btns .btn { width: 100%; white-space: nowrap; }
@media (max-width: 400px) { .hero-btns .btn { white-space: normal; font-size: clamp(.78rem, 3.9vw, .95rem); } }

/* Seznam „Proč k nám“ – řádky s ikonou a tenkou linkou */
.perk-list { display: grid; border-top: 1px solid var(--line); }
.perk { display: flex; align-items: flex-start; gap: 14px; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.perk .card-ico { margin-top: 2px; color: var(--blue); }
.perk h2, .perk h3 { margin: 0 0 .15rem; font-size: 1.1rem; color: var(--ink); }
.perk p { margin: 0; font-size: .98rem; }

/* Ostatní drobnosti */
.page-hero { padding-top: clamp(1.8rem, 5vw, 2.8rem); }
footer.site .f-name { font-weight: 700; font-size: 1.05rem; color: #fff; }
footer.site p { margin: .25rem 0 0; color: #b8c7d9; font-size: .95rem; }
footer.site a { color: #b8c7d9; }
footer.site a[href^="tel"] { color: #fff; font-weight: 700; text-decoration: none; }
footer.site .footer-fine { margin-top: 1rem; }
.cookie-bar { bottom: 82px; }
@media (min-width: 640px) { .hero-btns { grid-template-columns: repeat(2, max-content); max-width: none; } }
@media (min-width: 960px) {
  body { padding-bottom: 0; }
  .dock { display: none; }
  .topbar-actions { display: flex; }
  .cookie-bar { bottom: 20px; }
  .hero-photo { aspect-ratio: auto; min-height: 560px; max-height: none; }
  .hero-ph { padding-top: 14%; }
  .hero-cap { padding: 160px 0 2.6rem; }
  .hero h1 { font-size: 3.1rem; }
  .hero-lede { font-size: 1.1rem; }
  .hero-name { font-size: 1.05rem; }
  .perk-list { grid-template-columns: 1fr 1fr; column-gap: 3.5rem; }
  .menu-in { left: auto; right: 28px; margin-inline: 0; top: calc(var(--bar-h) + 10px); bottom: auto; width: 380px; max-height: calc(100dvh - var(--bar-h) - 30px); }
}
@media print { .dock, .menu { display: none !important; } body { padding-bottom: 0; } }

/* žena v řezu hlavou u dlaždic „S čím Vám pomůžeme“ */
.pece-intro { display: grid; grid-template-columns: minmax(0, 1fr) clamp(110px, 30vw, 230px); align-items: center; gap: 1rem; }
.pece-intro p { margin: 0; }
.pece-art { width: 100%; height: auto; display: block; -webkit-mask-image: linear-gradient(180deg, #000 85%, transparent 100%); mask-image: linear-gradient(180deg, #000 85%, transparent 100%); }
@media (min-width: 960px) { .pece-intro p { font-size: 1.15rem; max-width: 30em; } }
@media (max-width: 599px) {
  .pece-intro { grid-template-columns: minmax(0, 1fr) 50%; gap: .6rem; }
  .pece-intro p { font-size: 1.05rem; }
  .pece-art { margin-right: -.6rem; }
}

/* Úvod: tlačítko + stav ordinace, služby jako seznam */
.intro-row { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; }
.open-status { display: flex; align-items: center; gap: .6rem; margin: 0; font-weight: 600; color: var(--ink); }
.open-status::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; background: #8a9bad; }
.open-status.is-open::before { background: #43ae4b; }
#pece .pece-intro { margin: 0 0 1.2rem; }
.perk-list--svc .card-ico, .perk-list--svc .card-ico svg { width: 56px; height: 56px; }
a.perk { align-items: center; color: inherit; text-decoration: none; }
a.perk > div { flex: 1; min-width: 0; }
a.perk::after { content: ""; flex: none; width: 9px; height: 9px; margin-right: 4px; border-top: 2.5px solid var(--blue); border-right: 2.5px solid var(--blue); transform: rotate(45deg); }
@media (hover: hover) { a.perk:hover h3 { color: var(--blue); } }
.hours-note + .stack, .card--dovolena[hidden] { display: none; }
.open-status { flex: 1 1 100%; align-items: flex-start; }
.open-status::before { margin-top: .5em; }
@media (min-width: 640px) { .open-status { flex: 0 1 auto; } }

/* Stav ordinace: výrazný oranžový (zavřeno) / zelený (otevřeno) box */
.intro-row { display: grid; gap: .9rem; max-width: 640px; }
.open-status { display: block; margin: 0; padding: .85rem 1.1rem; background: #fff; border: 1px solid #f1d5b5; border-left: 5px solid #e8913a; border-radius: var(--radius); }
.open-status::before { display: none; }
.open-status b { display: block; font-size: 1.15rem; color: var(--ink); }
.open-status span { display: block; margin-top: .1rem; font-size: 1.02rem; font-weight: 600; color: #9a4a00; }
.open-status.is-open { border-color: #bfdcae; border-left-color: #43ae4b; }
.open-status.is-open span { color: #1d6b2a; }
.intro-row .btn { justify-self: start; }
@media (max-width: 639px) { .intro-row .btn { justify-self: stretch; } }

/* Počítač: hlavička s Menu a Zavolat zůstává nahoře */
@media (min-width: 960px) { .topbar { position: sticky; top: 0; z-index: 46; } }

/* Slabší hlavička a spodní lišta, menší text na mobilu */
:root { --bar-h: 46px; }
@media (min-width: 960px) { :root { --bar-h: 58px; } }
.brand img { width: 30px; height: 30px; }
.brand strong { font-size: .82rem; }
.brand small { font-size: .68rem; }
@media (min-width: 960px) { .brand img { width: 36px; height: 36px; } .brand strong { font-size: .9rem; } .brand small { font-size: .74rem; } }
.topbar-actions .btn { min-height: 38px; padding-block: .3em; font-size: .78rem; }
body { padding-bottom: 68px; }
.dock { gap: 8px; padding-top: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom)); }
.dock .btn { min-height: 44px; padding: .35em .9em; font-size: .78rem; }
.dock .btn svg { width: 19px; height: 19px; }
.menu-in { bottom: calc(62px + env(safe-area-inset-bottom)); }
.cookie-bar { bottom: 70px; }
@media (min-width: 960px) { body { padding-bottom: 0; } .cookie-bar { bottom: 20px; } }
.hero-cap { padding-top: 100px; }
.perk-list { margin-top: 0; }

/* Stav ordinace: zelený box, když ordinujeme */
.open-status.is-open { background: #eaf6e4; border-color: #5fb04c; border-left-color: #2f9a3a; }
.open-status.is-open b { color: #17591f; }
.open-status.is-open span { color: #1d6b2a; }


/* Patička: jen © a ikona cookies */
footer.site { padding-block: .8rem; }
footer.site .footer-fine { margin: 0; padding: 0; border: 0; justify-content: center; }

/* Patička: jen tenká čára a nenápadný řádek */
footer.site { background: none; border-top: 1px solid var(--line); padding-block: .35rem; color: #8b929a; }
footer.site .footer-fine { font-size: .72rem; color: #8b929a; line-height: 1.3; }
footer.site .cookie-icon { color: #9aa1a8; margin-left: .2em; padding: .2em; }
footer.site .cookie-icon svg { width: .95rem; height: .95rem; }
footer.site .cookie-icon:hover, footer.site .cookie-icon:focus-visible { color: var(--blue); }
main { padding-bottom: 14px; }

/* Úvod: žena a věta vpravo od ordinační doby (na malých obrazovkách pod ní) */
#kontakt .pece-intro { margin: 0; }
@media (min-width: 960px) {
  #kontakt .pece-intro { grid-template-columns: minmax(0, 1fr) clamp(180px, 22vw, 300px); gap: 1.6rem; }
  #kontakt .pece-intro p { font-size: 1.2rem; }
}
@media (max-width: 959px) { #kontakt .pece-intro { margin-top: .4rem; } }

/* Úvod: pozadí bez fotografie – modrý přechod s tenkými světlými linkami (po vložení fotografie se překryje) */
.hero, .hero-photo { background: #1d64b3; }
.hero-photo {
  background-image: url("../images/hero-linky.svg"), linear-gradient(165deg, #3a86cf 0%, #1d64b3 42%, #163f6d 100%);
  background-size: cover, cover; background-position: center, center; background-repeat: no-repeat;
}

/* Úvod v2: světlejší modrá bez tmavého spodku, plynulé linky + měkká záře */
.hero-photo {
  background-image: url("../images/hero-linky.svg"), radial-gradient(ellipse 70% 55% at 82% 18%, rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 70%), linear-gradient(165deg, #5aa2e0 0%, #3a86cf 45%, #2a74bd 100%);
  background-size: cover, cover, cover;
}
.hero-cap { background: linear-gradient(180deg, rgba(20, 78, 140, 0) 0%, rgba(20, 78, 140, .62) 100%); }

/* Přepínač jazyka (vpravo nahoře): na mobilu „EN“, na počítači „English version“ */
.lang-switch { margin-left: auto; display: inline-flex; align-items: center; min-height: 34px; padding: 0 .75em; border: 1px solid var(--blue); border-radius: var(--radius); color: var(--blue); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-decoration: none; }
.lang-switch .ls-long { display: none; }
@media (hover: hover) { .lang-switch:hover { background: var(--blue-soft); } }
@media (min-width: 960px) {
  .lang-switch { margin-right: .4rem; font-size: .78rem; letter-spacing: .04em; }
  .lang-switch .ls-short { display: none; }
  .lang-switch .ls-long { display: inline; }
}
/* Úvodní text u ženy: první věta vedle obrázku, zbytek pod ním */
#kontakt .pece-box { margin-top: .4rem; }
#kontakt .pece-more { margin: .9rem 0 0; }
@media (min-width: 960px) {
  #kontakt .pece-box { align-self: center; margin-top: 0; }
  #kontakt .pece-more { font-size: 1.05rem; }
}

/* Ikony v seznamu služeb: Děti sytější, Vyšetření sluchu a Sluchadla jemnější */
a.perk[href="deti.html"] .card-ico { color: #14529a; }
a.perk[href="deti.html"] .card-ico svg { stroke: currentColor; stroke-width: 3.5; stroke-linejoin: round; }
a.perk[href="vysetreni-sluchu.html"] .card-ico, a.perk[href="Sluchadla.html"] .card-ico { opacity: .72; }

/* Úvod: stejné pozadí jako v hlavičkách ostatních stránek (modrobílý přechod s křížky), tmavý text */
.hero, .hero-photo { background-color: #eef4fb; }
.hero-photo { background-image: url("../images/lista-pozadi-mobil.webp"); background-size: cover; background-position: center top; background-repeat: no-repeat; }
@media (min-width: 600px) { .hero-photo { background-image: url("../images/lista-pozadi-vyssi.webp"); background-position: center; } }
@media (min-width: 1200px) { .hero-photo { background-image: url("../images/lista-pozadi.webp"); } }
.hero-cap { background: none; }
.hero-name { color: var(--ink-soft); opacity: 1; }
.hero h1 { color: var(--navy-deep); }
.hero-lede { color: var(--ink); }

/* Úvod v3: pozadí z ChatGPT (modrá s křížky a linkami), dole plynule přechází do barvy pozadí webu, bílý text */
.hero, .hero-photo { background-color: #f1f0ee; }
.hero-photo {
  position: relative; aspect-ratio: auto; max-height: none; min-height: 0; overflow: hidden;
  background-image: url("../images/hero-pozadi-mobil.webp"); background-size: cover; background-position: center top; background-repeat: no-repeat;
}
.hero-photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14%; background: linear-gradient(180deg, rgba(241, 240, 238, 0), #f1f0ee); pointer-events: none; }
.hero-cap { position: relative; z-index: 1; padding: 1.8rem 0 6rem; background: none; }
.hero-name, .hero h1, .hero-lede { color: #fff; opacity: 1; text-shadow: 0 1px 12px rgba(10, 60, 120, .35); }
.hero h1 { margin-bottom: .3em; }
@media (min-width: 760px) { .hero-photo { background-image: url("../images/hero-pozadi.webp"); background-position: center; } }
@media (min-width: 960px) {
  .hero-photo { min-height: 0; }
  .hero-cap { padding: 3.2rem 0 8rem; }
  .hero-lede { max-width: 30em; }
}
.hero-photo { min-height: 24.5rem; }
@media (min-width: 760px) { .hero-photo { min-height: 22rem; } }
@media (min-width: 960px) { .hero-photo { min-height: 26rem; } }

/* Úvod: text níže v modré části (nad plynulým přechodem do pozadí webu) */
.hero-photo { min-height: 31rem; background-position: 82% top; }
.hero-cap { padding-top: 7.6rem; padding-bottom: 5rem; }
@media (min-width: 760px) { .hero-photo { min-height: 25rem; background-position: center; } .hero-cap { padding-top: 6.2rem; } }
@media (min-width: 960px) { .hero-photo { min-height: 28rem; } .hero-cap { padding-top: 7.4rem; padding-bottom: 6rem; } }
.hero-photo { min-height: 29rem; }
@media (min-width: 760px) { .hero-photo { min-height: 25rem; } }
@media (min-width: 960px) { .hero-photo { min-height: 28rem; } }

/* Úvod: text od poloviny dolů až k místu, kde modrá přechází do šedé */
.hero-photo { min-height: 34rem; }
.hero-cap { padding-top: 14rem; padding-bottom: 4rem; }
@media (min-width: 760px) { .hero-photo { min-height: 28rem; } .hero-cap { padding-top: 10.5rem; } }
@media (min-width: 960px) { .hero-photo { min-height: 31rem; } .hero-cap { padding-top: 11.5rem; padding-bottom: 5rem; } }

/* Úvod: tmavě modrý text (kontrast na modrém pozadí 5–8 : 1, bílý jen 2–3 : 1) */
.hero-name, .hero h1, .hero-lede { color: #12293f; text-shadow: 0 0 14px rgba(255, 255, 255, .35); }
.hero-name { color: #17324d; }

/* Úvod: jméno a „ORL Olomouc“ bíle, úvodní věta tmavě */
.hero-name, .hero h1 { color: #fff; text-shadow: 0 1px 12px rgba(10, 60, 120, .35); }
.hero-lede { color: #0d1b2a; text-shadow: 0 0 14px rgba(255, 255, 255, .35); }

/* Úvod: velikost úvodního textu odpovídá ostatnímu textu na stránce */
.hero-name { font-size: 1rem; }
.hero-lede { font-size: 1.0625rem; line-height: 1.55; }
@media (min-width: 960px) { .hero-name { font-size: 1rem; } .hero-lede { font-size: 1.05rem; } }


/* Podnadpis v nadpisu stránky (menší písmo na druhém řádku) */
.h1-sub { display: block; margin-top: .3em; font-size: .52em; font-weight: 600; line-height: 1.25; letter-spacing: 0; }

/* Menu na mobilu: volné místo pod posledním tlačítkem, aby panel nesplýval se spodní lištou */
.menu-in { padding-bottom: 1.1rem; bottom: calc(68px + env(safe-area-inset-bottom)); max-height: calc(100dvh - 68px - 24px - env(safe-area-inset-bottom)); }
@media (min-width: 960px) { .menu-in { bottom: auto; max-height: calc(100dvh - var(--bar-h) - 30px); } }
.menu nav > a:last-child { text-align: center; }
.menu .nav-grid + .nav-grid { margin-top: .7rem; }
.menu nav > a:last-child { margin-top: .7rem; }
.menu nav > a:last-child { display: flex; align-items: center; justify-content: center; gap: .7rem; }
.menu nav > a:last-child svg { width: 1.2rem; height: 1.2rem; flex: none; }
.menu nav > a:last-child { gap: .9rem; }
.menu-icons { display: inline-flex; align-items: center; gap: .6rem; }
.menu nav > a:last-child { gap: 1.5rem; }
.menu nav > a:last-child { justify-content: space-between; text-align: left; }
.menu nav > a:last-child { justify-content: space-evenly; text-align: center; }
.menu nav > a:last-child { justify-content: space-between; padding-inline: 3rem; }

/* Hlavičky podstránek: obrázek vždy vpravo vedle textu a svisle na střed (obrázek asi 40 %, text asi 60 %) */
.page-hero--light { min-height: 10.5rem; }
.page-hero--art .wrap { padding-right: calc(40% + .5rem); }
.page-hero-art { position: absolute; top: 50%; bottom: auto; transform: translateY(-50%); right: max(12px, env(safe-area-inset-right)); width: 38%; max-width: 360px; height: auto; max-height: 84%; object-fit: contain; object-position: right center; }
@media (min-width: 960px) {
  .page-hero--light { min-height: 14rem; }
  .page-hero--art .wrap { padding-right: 42%; }
  .page-hero-art { width: 34%; max-width: 480px; right: max(4%, 24px); max-height: 88%; }
}

/* Hlavičky podstránek v3: velký obrázek vpravo vedle nadpisu, text se kreslí vedle něj a případně pod něj */
.page-hero--light { min-height: 0; }
.page-hero--art .wrap { display: flow-root; padding-right: max(var(--gutter), env(safe-area-inset-right)); }
.page-hero-art { position: static; transform: none; float: right; width: 48%; max-width: none; max-height: none; height: auto; margin: 0 0 .3rem 1rem; object-fit: contain; }
@media (min-width: 960px) { .page-hero--art .wrap { padding-right: max(var(--gutter), env(safe-area-inset-right)); } .page-hero-art { width: 38%; max-width: 500px; right: auto; } }
.page-hero-art { width: 42%; }
@media (min-width: 560px) { .page-hero-art { width: 46%; } }
@media (min-width: 960px) { .page-hero-art { width: 38%; } }
@media (max-width: 559px) { .page-hero--art h1 { font-size: clamp(1.5rem, 7.6vw, 2.2rem); } .page-hero--art h1.h1-long { font-size: clamp(1.5rem, 7.6vw, 2.2rem); } }

/* Hlavičky podstránek v4: velký obrázek vpravo za textem – text se smí překrývat s obrázkem (obrázek je pod ním) */
.page-hero--art .wrap { display: flex; flex-direction: column; justify-content: center; min-height: 10rem; padding-right: max(var(--gutter), env(safe-area-inset-right)); }
.page-hero-art { position: absolute; float: none; right: calc(-1 * var(--gutter)); top: 50%; bottom: auto; transform: translateY(-50%); width: 62%; max-width: 540px; height: auto; max-height: 120%; margin: 0; z-index: -1; object-fit: contain; object-position: right center; }
.page-hero--art h1, .page-hero--art p { text-shadow: 0 0 12px rgba(248, 250, 253, .85); }
@media (max-width: 559px) { .page-hero--art h1 { font-size: clamp(2rem, 8.6vw, 2.4rem); } .page-hero--art h1.h1-long { font-size: clamp(1.7rem, 7.4vw, 2.2rem); } }
@media (min-width: 960px) {
  .page-hero--art .wrap { min-height: 13rem; }
  .page-hero-art { width: 46%; max-width: 580px; right: calc(-1 * var(--gutter)); }
}

/* Hlavičky podstránek: krátký popis se zalamuje dřív, aby nepřekresloval obrázek od kraje ke kraji */
.page-hero--art p { max-width: 68%; }
@media (min-width: 560px) { .page-hero--art p { max-width: 58%; } }
@media (min-width: 960px) { .page-hero--art p { max-width: 50%; } }

/* Nadpis v hlavičce je na všech podstránkách ve stejné výšce (obsah se zarovnává odshora) */
.page-hero--art .wrap { justify-content: flex-start; }
.page-hero--art h1 { margin-top: 0; }

/* Hlavičky podstránek: stejná výška všude a o něco menší obrázky */
.page-hero--art .wrap { min-height: 11.6rem; }
.page-hero-art { width: 48%; max-width: 440px; max-height: 90%; }
@media (min-width: 560px) { .page-hero--art .wrap { min-height: 12rem; } .page-hero-art { width: 44%; } }
@media (min-width: 960px) { .page-hero--art .wrap { min-height: 13rem; } .page-hero-art { width: 38%; max-width: 480px; max-height: 88%; } }

/* sjednocená plátna obrázků (800x600): stejná velikost i pozice, plynule roste s šířkou okna */
.page-hero--art .wrap { min-height: clamp(11.6rem, 32vw, 25rem); }
.page-hero-art { width: clamp(200px, 42vw, 520px); height: auto; aspect-ratio: 4 / 3; max-width: none; max-height: none; top: 50%; right: calc(-1 * var(--gutter)); transform: translateY(-50%); object-fit: contain; object-position: center; }
@media (min-width: 560px) { .page-hero--art .wrap { min-height: clamp(11.6rem, 32vw, 25rem); } .page-hero-art { width: clamp(200px, 42vw, 520px); } }
@media (min-width: 960px) { .page-hero--art .wrap { min-height: clamp(11.6rem, 32vw, 25rem); } .page-hero-art { width: clamp(200px, 42vw, 520px); max-width: none; max-height: none; } }

/* zvýrazněný samostatný řádek v odrážce */
.mark-line { display: block; margin-top: .45rem; padding: .45rem .8rem; background: var(--blue-soft); color: var(--blue-strong); font-weight: 700; border-radius: var(--radius); }

/* zvýrazněná věta v textu */
.mark { background: var(--blue-soft); color: var(--blue-strong); font-weight: 700; padding: .1em .4em; border-radius: var(--radius); -webkit-box-decoration-break: clone; box-decoration-break: clone; }

/* odstup odstavce pod tlačítky */
.cta-row + p { margin-top: 2.2rem; }

/* podbarvená poznámka k objednání */
.cta-note--mark { padding: .6rem .9rem; background: var(--blue-soft); color: var(--blue-strong); font-weight: 700; border-radius: var(--radius); }

.highlight--warn b, .highlight--warn a { color: inherit; }

.highlight--info p { font-weight: 500; }
.highlight--info p + p { margin-top: .5rem; }
.highlight--info b { font-weight: 800; }

.card p.gap-after, .card p.gap-after:last-child { margin-bottom: .9rem; }

/* vyvážené zalamování nadpisů */
h1, h2 { text-wrap: balance; }

/* zvýrazněné dlaždice chráničů */

.steps li > span { font-weight: 400; }
.steps li > span b { font-weight: 700; }

.steps li:has(> span) { align-items: flex-start; }
.steps li > span { padding-top: .3rem; line-height: 1.45; }
.steps li > span b { display: block; }
.steps li > span br { display: none; }
.steps li > span { padding-top: .3rem; }

/* menší ceny v dlaždicích chráničů */

.price .utlum { color: var(--blue-strong); font-weight: 700; font-size: .85rem; letter-spacing: .02em; }

/* výrazně menší ceny v dlaždicích */
.prices .price strong { font-size: .92rem; line-height: 1.3; }

/* ceny a útlum v dlaždicích chráničů bez modré */
#druhy-h ~ .prices .price strong, #druhy-h ~ .prices .price .utlum { color: var(--ink); }
#druhy-h ~ .prices .price .utlum { font-weight: 600; }

/* text v hlavičkách podstránek o kousek výš (výška hlavičky zůstává) */
.page-hero--art { padding-top: calc(clamp(1.8rem, 5vw, 2.8rem) - .6rem); padding-bottom: calc(clamp(2.4rem, 6vw, 4rem) + .6rem); }

/* zvýrazněné boxy: velikost jako běžný text */
.highlight { font-size: 1rem; font-weight: 600; }

/* mřížka fotek ordinace */
.photo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; margin-top: 1.4rem; }
.photo-grid figure { margin: 0; }
.photo-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); display: block; }
.photo-grid figcaption { margin-top: .4rem; font-size: .92rem; font-weight: 600; color: var(--ink-soft); }
@media (min-width: 720px) { .photo-grid { grid-template-columns: repeat(3, 1fr); gap: 1.2rem; } }

.photo-grid figcaption { font-size: .78rem; font-weight: 500; line-height: 1.3; }

/* Ukončené studie: menší písmo */
#historie-kh ~ .acc-list .acc summary { font-size: .92rem; padding: .75rem 0; }
#historie-kh ~ .acc-list .acc .acc-body p { font-size: .9rem; }
#historie-kh ~ .acc-list .acc summary { color: var(--ink); }
#historie-kh ~ .acc-list .acc summary { font-weight: 400; }

/* logá pojišťoven */
.zp-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; margin: 1rem 0 0; }
.zp-list li { display: flex; flex-direction: column; align-items: flex-start; gap: .55rem; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; font-size: .9rem; color: var(--ink-soft); line-height: 1.35; }
.zp-list b { color: var(--ink); }
.zp-logo { display: flex; align-items: center; height: 48px; }
.zp-logo img { height: 100%; width: auto; max-width: 100%; object-fit: contain; }
@media (min-width: 720px) { .zp-list { grid-template-columns: repeat(3, 1fr); } }

/* loga pojišťoven v jednom řádku */
.zp-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: flex-start; gap: 1.2rem 1.8rem; margin: 1.2rem 0 0; }
.zp-row li { display: flex; flex-direction: column; align-items: center; gap: .3rem; font-size: .78rem; font-weight: 600; color: var(--ink-soft); }
.zp-row img { height: 44px; width: auto; object-fit: contain; }

.zp-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem .8rem; align-items: end; justify-items: center; }
.zp-row img { height: 36px; max-width: 100%; }
@media (min-width: 720px) { .zp-row { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; } .zp-row img { height: 52px; } }

/* loga pojišťoven vždy v jednom řádku (i na mobilu) */
.zp-row { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: .5rem; }
.zp-row li { flex: 1 1 0; min-width: 0; }
.zp-row img { width: 100%; height: auto; max-height: 52px; object-fit: contain; }
.zp-row li span { font-size: .72rem; }
@media (min-width: 720px) { .zp-row { gap: 1.5rem; } .zp-row img { max-height: 64px; } .zp-row li span { font-size: .8rem; } }

/* každá pojišťovna na jednom řádku */
.zp-lines { display: grid; gap: 0; margin: 1rem 0 0; }
.zp-lines li { display: flex; align-items: center; gap: 1rem; padding: .6rem 0; border-top: 1px solid var(--line); }
.zp-lines li:first-child { border-top: 0; }
.zp-logo { flex: none; width: 92px; height: 44px; display: flex; align-items: center; justify-content: center; }
.zp-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.zp-text { color: var(--ink-soft); font-size: .95rem; line-height: 1.35; }
.zp-text b { color: var(--ink); }
.zp-logo { width: 64px; height: 36px; }
.zp-lines li { gap: .8rem; padding: .5rem 0; }
.zp-text { font-size: .8rem; white-space: nowrap; }
@media (min-width: 560px) { .zp-logo { width: 92px; height: 44px; } .zp-lines li { gap: 1rem; } .zp-text { font-size: .95rem; } }
.zp-text { white-space: normal; flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
.zp-logo { width: 78px; height: 44px; }
.zp-text { font-size: .85rem; }
@media (min-width: 560px) { .zp-logo { width: 112px; height: 54px; } .zp-text { font-size: 1rem; } }

/* ceník: názvy výkonů běžným písmem */
.cenik th { font-weight: 400; }

.cenik th small { display: block; margin-top: .25rem; font-size: .82rem; line-height: 1.4; color: var(--ink-soft); }

/* statická mapa ordinace */
.map-static { position: relative; border-radius: var(--radius); overflow: hidden; background: var(--surface-alt); min-height: 260px; }
.map-static img { display: block; width: 100%; height: 100%; min-height: 300px; object-fit: cover; object-position: 61% 50%; }
.map-pin { position: absolute; left: 61.3%; top: 50.5%; width: 26px; height: 26px; margin: -26px 0 0 -13px; background: #d9342b; border: 3px solid #fff; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(0,0,0,.35); }
.map-pin::after { content: ""; position: absolute; inset: 5px; background: #fff; border-radius: 50%; }
.map-btns { position: absolute; left: .6rem; right: .6rem; bottom: .6rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.map-btns .btn { flex: 1 1 auto; justify-content: center; padding: .55rem .8rem; font-size: .85rem; }
.map-credit { position: absolute; right: .4rem; top: .3rem; font-size: .68rem; color: #333; background: rgba(255,255,255,.75); padding: .05rem .35rem; border-radius: 3px; }
.split--map .map-static { min-height: 320px; }

.form-help { font-size: .78rem; line-height: 1.45; }
.form-help { font-size: .68rem; line-height: 1.4; }
.form-help { font-size: 11px; line-height: 1.4; }
.card--sm .fine { font-size: 11px; line-height: 1.4; }

/* tlačítka v hlavičce Kontaktu */
.hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; max-width: 62%; margin-top: .9rem; }
.hero-actions .btn { min-height: 40px; padding: .4rem .8rem; font-size: .82rem; gap: .4rem; }
.hero-actions .btn svg { width: 18px; height: 18px; }
.hero-actions .hero-fb { padding: .4rem .6rem; min-width: 40px; justify-content: center; }
@media (min-width: 720px) { .hero-actions { max-width: 56%; } .hero-actions .btn { font-size: .9rem; min-height: 44px; } }

/* nadpis kontaktní karty zarovnaný jako u Ordinační doby */
.card--contact .card-head { justify-content: flex-start; }
.hero-actions { flex-direction: column; align-items: flex-start; }
@media (min-width: 720px) { .hero-actions { flex-direction: row; flex-wrap: wrap; } }
.hours-note { font-size: .85rem; }

/* hodnocení: dva odznaky vedle sebe, bez nadpisu */
.review-badges { flex-wrap: nowrap; margin-top: 0; gap: .6rem; align-items: stretch; }
.review-badges > a { flex: 1 1 0; min-width: 0; }
.review-badges > a img[width="249"] { width: 100%; height: auto; }
.review-google { padding: .5rem .6rem; gap: .5rem; }
.review-google img { width: 36px; height: 36px; flex: none; }
.review-google .stars, .review-google small { display: none; }
@media (min-width: 720px) { .review-google img { width: 52px; height: 52px; } .review-google .stars, .review-google small { display: inline; } .review-badges { gap: 1.4rem; } .review-badges > a { flex: 0 1 auto; } }
@media (max-width: 719px) { .review-badges > a.review-google { flex: 0 0 auto; padding: .4rem .55rem; gap: .4rem; } .review-google img { width: 28px; height: 28px; } .review-google b { font-size: .8rem; line-height: 1.2; } .review-badges > a:not(.review-google) { flex: 1 1 0; display: flex; align-items: center; } }
@media (max-width: 719px) { .review-google img { display: none; } .review-google { padding: .55rem .7rem; } .review-google b { font-size: .9rem; } }
@media (max-width: 719px) { .review-google img { display: block; width: 50px; height: 50px; } .review-google { padding: .45rem .6rem .45rem .45rem; gap: .5rem; } .review-google b { font-size: .88rem; line-height: 1.2; } }
@media (max-width: 719px) { .review-google img { width: 40px; height: 40px; } .review-google { padding: .4rem .5rem .4rem .4rem; gap: .35rem; } .review-google b { font-size: .78rem; line-height: 1.15; } .review-google > span { max-width: 4.6rem; } .review-badges { gap: .4rem; } }
@media (max-width: 719px) { .review-google { align-items: center; padding: .4rem .6rem .4rem .45rem; gap: .5rem; } .review-google > span { max-width: none; display: flex; flex-direction: column; justify-content: center; text-align: center; } .review-google b { font-size: .95rem; line-height: 1.15; } .review-badges { align-items: center; } .review-badges > a:not(.review-google) img { transform: scale(1.12); transform-origin: center; } }
@media (max-width: 559px) { .review-badges { flex-direction: column; align-items: stretch; gap: .8rem; } .review-badges > a { flex: none; } .review-badges > a:not(.review-google) { display: block; max-width: 320px; } .review-badges > a:not(.review-google) img { transform: none; width: 100%; } .review-google { justify-content: center; } .review-google b { font-size: 1.1rem; } .review-google img { width: 52px; height: 52px; } }
.review-google > span { display: flex; flex-direction: column; justify-content: center; text-align: center; }
.review-google b { font-size: 1.2rem; letter-spacing: .06em; line-height: 1.1; }
.review-google .r-sub { display: block; font-size: .95rem; color: var(--ink-soft); line-height: 1.2; }
.review-google .r-sub { font-size: 1.2rem; font-weight: 700; letter-spacing: .06em; color: var(--blue-strong); line-height: 1.1; }
.review-google .r-sub { font-size: .74rem; }
@media (min-width: 560px) { .review-badges { flex-wrap: wrap; align-items: center; } .review-badges > a { flex: 0 0 auto; } .review-google { padding: .5rem .9rem .5rem .6rem; gap: .6rem; } .review-google > span { white-space: nowrap; max-width: none; } .review-google img { display: block; width: 52px; height: 52px; flex: none; } .review-badges > a:not(.review-google) img { transform: none; width: auto; max-width: 100%; } }

/* formulář přes celou šířku na větších displejích, hodnocení pod ním */
.form .field label { margin-bottom: .3rem; }
@media (min-width: 900px) { .form { grid-template-columns: repeat(3, 1fr); column-gap: 1.4rem; } .form > :not(.field), .form > .field--wide { grid-column: 1 / -1; } .form textarea { min-height: 180px; } }

/* horní karty: kontakt a dovolená vlevo, ordinační doba vpravo */
.kontakt-grid { align-items: start; }
@media (min-width: 900px) { .kontakt-grid { grid-template-columns: 1fr 1fr; grid-template-areas: "kontakt hodiny" "dovolena hodiny"; } .kontakt-grid > .card--contact { grid-area: kontakt; } .kontakt-grid > .card--hours { grid-area: hodiny; } .kontakt-grid > .card--dovolena { grid-area: dovolena; } .kontakt-grid .card--contact .contact-rows { gap: .8rem; } .kontakt-grid .card--contact .contact-row .label { font-size: .72rem; } .kontakt-grid .card--contact .contact-row .value { font-size: .95rem; } }

/* tlačítka v hlavičce Kontaktu vždy pod sebou */
.hero-actions, .hero-actions { flex-direction: column !important; align-items: flex-start; flex-wrap: nowrap; }

/* karty pod hlavičkou blíž k obrázku a nadpisu (na všech podstránkách) */
.page-hero--art { padding-bottom: .5rem; }
.page-hero--art + .block, .page-hero--art + .block--first { padding-top: .6rem; }

/* odznaky hodnocení: obrázky se plynule mění s šířkou, vždy vedle sebe */
.review-badges.review-badges--img { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: center; gap: clamp(.6rem, 2.5vw, 1.6rem); margin: 0; }
.review-badges.review-badges--img > a { display: block; min-width: 0; }
.review-badges.review-badges--img > a.review-google--img { flex: 0 1 36%; max-width: 230px; padding: clamp(.3rem, 1.2vw, .6rem); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.review-badges.review-badges--img > a:not(.review-google--img) { flex: 1 1 52%; max-width: 340px; }
.review-badges.review-badges--img img, .review-badges.review-badges--img .review-google.review-google--img img { display: block; width: 100%; height: auto; max-width: 100%; max-height: none; transform: none; }

/* úvod: text výš, větší odskoky a stavový box s dalšími prvky výš do modrého přechodu */
.hero-cap { padding-bottom: 9rem; }
.hero-name { margin-bottom: .7rem; }
.hero h1 { margin-bottom: .9rem; }
.block.intro { position: relative; z-index: 2; margin-top: -6.5rem; }
@media (min-width: 760px) { .hero-cap { padding-bottom: 8rem; } .block.intro { margin-top: -5.5rem; } }
@media (min-width: 960px) { .hero-cap { padding-bottom: 9rem; } .block.intro { margin-top: -6rem; } }

/* podstránky: karty bez ohraničení linkou, jen bílý box */
.page-hero ~ .block .card, .page-hero ~ .block .price, .page-hero ~ .block .zp-list li { border-color: transparent; }

/* podstránky: prodloužený modrý přechod pod hlavičkou, první karta ho jemně překrývá */
.page-hero--art { padding-bottom: 3.2rem; }
.page-hero--light::after { height: 110px; }
.page-hero--art + .block, .page-hero--art + .block--first { margin-top: -3.2rem; position: relative; z-index: 2; }

/* karty bez linky i na úvodní stránce */
.card, .card--dovolena { border-color: transparent; }
.open-status { border-top-color: transparent; border-right-color: transparent; border-bottom-color: transparent; }

/* modernější vzhled: jemný stín místo linek, sjednocené boxy na úvodní stránce */
.card { box-shadow: 0 1px 2px rgba(23, 42, 66, .05), 0 8px 22px -10px rgba(23, 42, 66, .16); }
.open-status { box-shadow: 0 1px 2px rgba(23, 42, 66, .05), 0 8px 22px -10px rgba(23, 42, 66, .16); }
.perk-list { background: #fff; border-radius: var(--radius); padding: .2rem 1.1rem; border-top: 0; box-shadow: 0 1px 2px rgba(23, 42, 66, .05), 0 8px 22px -10px rgba(23, 42, 66, .16); }
.perk-list .perk:last-child { border-bottom: 0; }
@media (min-width: 760px) { .perk-list { padding: .4rem 1.6rem; } }

/* výraznější modrý stín a box kolem části s ilustrací */
:root { --shadow-blue: 0 2px 4px rgba(29, 100, 179, .10), 0 14px 32px -10px rgba(29, 100, 179, .34); }
.card, .open-status, .perk-list, #kontakt .pece-box { box-shadow: var(--shadow-blue); }
#kontakt .pece-box { background: #fff; border-radius: var(--radius); padding: var(--pad); }

/* Co u nás řešíme: nadpis i seznam v jednom boxu; modrý akcent jen u dvou boxů, ostatní stíny shodné */
.pece-card { padding: var(--pad); }
.pece-card h2 { margin-top: 0; }
.pece-card .perk-list, .pece-card .perk-list--svc { background: none; box-shadow: none; padding: 0; border-radius: 0; }
.perk-list:not(.perk-list--svc) { border-top: 4px solid var(--blue); }
.open-status { box-shadow: 6px 6px 0 rgba(29, 100, 179, .20), 0 14px 32px -10px rgba(29, 100, 179, .30); }

/* světlo shora zleva: nejsilnější modrý stín vpravo dole (hrana + roh), směrem od boxu slábne; nahoře a vlevo jen jemný stabilní stín */
:root { --shadow-blue: -1px -1px 5px -1px rgba(29, 100, 179, .12), 1px 1px 0 rgba(29, 100, 179, .20), 3px 3px 7px -1px rgba(29, 100, 179, .30), 9px 11px 20px -6px rgba(29, 100, 179, .30), 18px 24px 42px -14px rgba(29, 100, 179, .26); }
:root { --shadow-blue: -1px -1px 5px -1px rgba(29, 100, 179, .09), 1px 1px 0 rgba(29, 100, 179, .15), 3px 3px 7px -1px rgba(29, 100, 179, .21), 8px 10px 18px -6px rgba(29, 100, 179, .21), 16px 21px 38px -14px rgba(29, 100, 179, .17); }

/* stavový box: stín oranžový (zavřeno) / zelený (otevřeno) */
.open-status { --sh: 232, 145, 58; box-shadow: 6px 6px 0 rgba(var(--sh), .22), -1px -1px 5px -1px rgba(var(--sh), .10), 3px 3px 7px -1px rgba(var(--sh), .22), 9px 12px 22px -8px rgba(var(--sh), .30), 18px 24px 40px -14px rgba(var(--sh), .24); }
.open-status.is-open { --sh: 47, 154, 58; }
.open-status { box-shadow: -1px -1px 5px -1px rgba(var(--sh), .08), 2px 2px 6px -1px rgba(var(--sh), .14), 8px 10px 26px -6px rgba(var(--sh), .20), 16px 22px 48px -10px rgba(var(--sh), .18), 28px 36px 72px -18px rgba(var(--sh), .12); }

/* hlavička: bílá s jemným modrým stínem jako karty */
.topbar { background: rgba(255, 255, 255, .97); border-bottom: 0; box-shadow: 0 1px 0 rgba(29, 100, 179, .10), 0 8px 20px -10px rgba(29, 100, 179, .34); }

/* spodní pruh: průsvitný s rozostřením, užší, modrý stín nahoru */
.dock { background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2); border-top: 0; box-shadow: 0 -1px 0 rgba(29, 100, 179, .10), 0 -8px 22px -10px rgba(29, 100, 179, .34); padding-top: 6px; padding-bottom: calc(6px + env(safe-area-inset-bottom)); }
.dock .btn { min-height: 40px; }
body { padding-bottom: 68px; }
@media (min-width: 960px) { body { padding-bottom: 0; } }

/* úvod: menší prázdná modrá plocha nahoře (asi o 50 %), text i všechno pod ním výš */
.hero-photo { min-height: 27rem; background-position: 82% bottom; }
.hero-cap { padding-top: 7rem; }
@media (min-width: 760px) { .hero-photo { min-height: 22.6rem; background-position: center bottom; } .hero-cap { padding-top: 5.3rem; } }
@media (min-width: 960px) { .hero-photo { min-height: 25.5rem; } .hero-cap { padding-top: 5.8rem; } }

/* Cookie lišta – nastavení po kategoriích */
.cookie-bar { max-height: calc(100vh - 110px); overflow-y: auto; }
.cookie-buttons button.is-main { background: var(--blue); border-color: var(--blue); color: #fff; }
.cookie-opts { display: grid; gap: .55rem; }
.cookie-opts[hidden] { display: none; }
.cookie-row { display: flex; gap: .65rem; align-items: flex-start; padding: .6rem .7rem; background: var(--blue-soft, #eef4fb); border-radius: var(--radius); cursor: pointer; }
.cookie-row input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--blue); }
.cookie-row span { display: grid; gap: .1rem; }
.cookie-row b { font-size: .98rem; }
.cookie-row small { font-size: .88rem; color: var(--muted, #556); line-height: 1.35; }
.cookie-buttons { position: sticky; bottom: -1px; background: var(--surface); padding-top: .5rem; }
.cookie-row { padding: .5rem .65rem; }
.cookie-row small { font-size: .84rem; }
/* Cookie lišta – menší písmo */
.cookie-bar { font-size: .8rem; line-height: 1.4; padding: .85rem 1rem; }
.cookie-bar p { font-size: .8rem; line-height: 1.4; }
.cookie-bar h2 { font-size: .92rem; margin-bottom: .15rem; }
.cookie-bar h2 img { width: 20px; height: 20px; }
.cookie-in { gap: .6rem; }
.cookie-buttons button { min-height: 40px; font-size: .85rem; }
.cookie-row { padding: .4rem .55rem; gap: .5rem; }
.cookie-row b { font-size: .84rem; }
.cookie-row small { font-size: .74rem; }
.cookie-row input { width: 17px; height: 17px; }
/* Poznámka o posledním klientovi – modré podbarvení */
.hours-last { display: block; margin-top: .5rem; padding: .5rem .75rem; background: var(--blue); color: #fff; border-radius: var(--radius); font-weight: 600; }
.hours-last { background: #e6eff9; color: var(--blue-strong, #1d64b3); font-weight: 600; }
/* Užší patička */
footer.site { padding-block: .1rem; }
footer.site .footer-fine { font-size: .7rem; line-height: 1.1; padding: 0; }
footer.site .wrap { position: relative; }
footer.site .toplist { position: absolute; left: 0; top: 0; width: 1px; height: 1px; }
footer.site .cookie-icon { padding: .1em .2em; }
footer.site { height: 20px; box-sizing: border-box; padding-block: 0; display: flex; align-items: center; justify-content: center; }
footer.site .wrap { width: 100%; }
footer.site .footer-fine { font-size: 13px; line-height: 18px; }
footer.site .cookie-icon { padding: 0 .2em; }
footer.site { border-top: 0; box-shadow: inset 0 1px 0 var(--line); }
footer.site .wrap { padding-block: 0; display: flex; align-items: center; justify-content: center; height: 100%; }
footer.site .footer-fine { display: flex; align-items: center; justify-content: center; height: 20px; line-height: 1; text-align: center; margin: 0; }
footer.site .cookie-icon { display: inline-flex; align-items: center; }
footer.site { box-shadow: none; border-top: 0; }
/* Potvrzení odeslání dotazu: nad polem „Váš dotaz“, sytě zelené / červené */
.form .form-msg { grid-column: 1 / -1; padding: .9rem 1.1rem; border-radius: var(--radius); font-weight: 700; font-size: 1.05rem; color: #fff; }
.form .form-msg.is-ok { background: #1b8a3a; color: #fff; }
.form .form-msg.is-err { background: #c62020; color: #fff; }
.form .form-msg[hidden] { display: none; }
/* Potvrzení odeslání: vedle tlačítka Odeslat dotaz */
.form-send { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.form-send .btn { flex: none; }
.form-send .form-msg { flex: 1 1 220px; margin: 0; font-size: 1rem; }
.form-send { flex-wrap: nowrap; }
.form-send .form-msg { flex: 1 1 0; min-width: 0; padding: .55rem .75rem; font-size: .88rem; line-height: 1.3; }
@media (min-width: 640px) { .form-send .form-msg { font-size: 1rem; padding: .8rem 1.1rem; } }
@media (max-width: 639px) { .form-send .btn { padding-inline: .85em; font-size: .82rem; letter-spacing: 0; } }
/* Malé „L“ pro přihlášení správce, v patičce před copyrightem */
footer.site .admin-l { color: #8ea3bb; opacity: .55; text-decoration: none; font-size: 12px; margin-right: .4em; padding: 0 .2em; }
footer.site .admin-l:hover, footer.site .admin-l:focus-visible { opacity: 1; color: #fff; }
/* Přihlášení správce: klikací tečka u nadpisu Provozovatel (L v patičce zrušeno) */
footer.site .admin-l { display: none; }
.admin-dot { color: inherit; opacity: .35; text-decoration: none; font-weight: 400; padding: 0 .3em; letter-spacing: 0; }
.admin-dot:hover, .admin-dot:focus-visible { opacity: 1; color: var(--blue); }
/* Dovolená JE: box sytě červený s bílým textem */
.card--dovolena.is-vacation { background: #c62020; color: #fff; }
.card--dovolena.is-vacation h2, .card--dovolena.is-vacation .dovolena-text, .card--dovolena.is-vacation .card-ico { color: #fff; }
.card--dovolena.is-vacation .card-ico svg { color: #fff; }
/* Cookie lišta – ještě menší a užší */
.cookie-bar { font-size: 11.5px; line-height: 1.35; padding: .7rem .85rem; }
.cookie-bar p { font-size: 11.5px; line-height: 1.35; }
.cookie-bar h2 { font-size: 13px; margin-bottom: .1rem; }
.cookie-bar h2 img { width: 18px; height: 18px; }
.cookie-in { gap: .5rem; }
.cookie-buttons button { min-height: 36px; font-size: 13px; }
.cookie-row b { font-size: 12px; }
.cookie-row small { font-size: 11px; }
@media (min-width: 640px) { .cookie-bar { max-width: 340px; } }
