/* Směr E — Precizní stomatologie */
:root{
  --ink:#1D2428;          /* grafit — text, plochy */
  --ink-2:#4F5B62;        /* tlumený text (AA 6,99 na bílé) */
  --ink-3:#7A8991;        /* rámečky polí, ryska (3:1 non-text) */
  --line:#CBD5DA;         /* vlasové linky */
  --ice:#EAF1F3;          /* ledová plocha */
  --ice-2:#F5F8F9;        /* světlá plocha */
  --white:#FFFFFF;
  --teal:#33B5B9;         /* tyrkys z ordinace — jen plochy a linky */
  --teal-ink:#0B6F74;     /* tyrkys pro text a tlačítka (AA 5,93 s bílou) */
  --on-dark:#AEBBC1;      /* tlumený text na grafitu (AA 8,0) */

  --f-display:"Space Grotesk",system-ui,sans-serif;
  --f-text:"Manrope",system-ui,sans-serif;

  --r:4px;
  --gut:24px;
  --pad:64px;
  --sec:120px;
  --hdr:76px;

  --grade:saturate(.45) contrast(1.05) brightness(1.05) hue-rotate(-10deg);
}
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--ink);font:400 17px/1.6 var(--f-text);overflow-x:clip;font-feature-settings:"tnum" 0}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0;text-wrap:pretty}
li,dd,blockquote{text-wrap:pretty}
h1,h2,h3,h4{margin:0;font-weight:500}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--teal-ink);outline-offset:3px;border-radius:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r)}
.skip:focus{top:12px}

.wrap{width:100%;max-width:calc(1312px + var(--pad)*2);margin-inline:auto;padding-inline:var(--pad)}

/* ---------- ikony, tlačítka ---------- */
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ic--lg{width:32px;height:32px;stroke-width:1.25}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:var(--r);
  font:600 16px/1 var(--f-text);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;white-space:nowrap}
.btn--pri{background:var(--teal-ink);color:#fff}
.btn--pri:hover{background:var(--ink)}
.btn--sec{background:var(--white);color:var(--ink);border-color:var(--ink)}
.btn--sec:hover{background:var(--ink);color:#fff}
.btn--inv{background:var(--white);color:var(--ink)}
.btn--inv:hover{background:var(--teal);color:var(--ink)}
.btn--sm{min-height:44px;padding:0 18px;font-size:15px}
.btn--full{width:100%}

/* ---------- typografie ---------- */
.h2{font:500 clamp(32px,3.3vw,48px)/1.08 var(--f-display);letter-spacing:-.025em;max-width:22ch;text-wrap:balance}
.h3{font:500 24px/1.2 var(--f-display);letter-spacing:-.015em}
.h4{font:600 17px/1.3 var(--f-text)}
.lead{font-size:18px;line-height:1.6;color:var(--ink-2);max-width:56ch}
.secno{display:flex;align-items:center;gap:14px;margin-bottom:20px;font:500 15px/1 var(--f-text);color:var(--ink-2)}
.secno span{font:500 15px/1 var(--f-display);color:var(--teal-ink);display:inline-flex;align-items:center;gap:14px}
.secno span::after{content:"";width:40px;height:9px;background:
  linear-gradient(var(--ink-3),var(--ink-3)) left bottom/100% 1px no-repeat,
  repeating-linear-gradient(90deg,var(--ink-3) 0 1px,transparent 1px 10px) left bottom/100% 9px no-repeat}
.secno--inv{color:var(--on-dark)}
.secno--inv span{color:var(--teal)}
.secno--inv span::after{background:
  linear-gradient(var(--on-dark),var(--on-dark)) left bottom/100% 1px no-repeat,
  repeating-linear-gradient(90deg,var(--on-dark) 0 1px,transparent 1px 10px) left bottom/100% 9px no-repeat}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px)}
.hdr__in{display:flex;align-items:center;gap:32px;height:var(--hdr)}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.logo__mark{width:40px;height:40px}
.logo__txt{display:flex;flex-direction:column;gap:3px}
.logo__name{font:600 18px/1 var(--f-display);letter-spacing:-.01em}
.logo__sub{font:500 13px/1 var(--f-text);color:var(--ink-2)}
.nav{display:flex;gap:28px;margin-left:auto}
.nav a{font:500 15px/1 var(--f-text);text-decoration:none;padding:14px 0;border-bottom:1px solid transparent}
.nav a:hover{color:var(--teal-ink);border-bottom-color:var(--teal-ink)}
.hdr__act{display:flex;align-items:center;gap:20px}
.hdr__tel{display:inline-flex;align-items:center;gap:8px;font:500 17px/1 var(--f-display);text-decoration:none;min-height:44px;letter-spacing:-.005em}
.hdr__tel:hover{color:var(--teal-ink)}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--ink);border-radius:var(--r);cursor:pointer;font:600 15px/1 var(--f-text)}
.mnav summary::-webkit-details-marker{display:none}
.mnav__bars{width:16px;height:10px;background:linear-gradient(var(--ink),var(--ink)) top/100% 1.5px no-repeat,linear-gradient(var(--ink),var(--ink)) bottom/100% 1.5px no-repeat}
.mnav[open] .mnav__bars{background:linear-gradient(var(--ink),var(--ink)) center/100% 1.5px no-repeat}
.mnav__panel{position:absolute;right:0;top:calc(100% + 13px);width:min(320px,calc(100vw - 40px));background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:8px 20px 20px;display:flex;flex-direction:column;box-shadow:0 18px 40px -20px rgba(29,36,40,.35)}
.mnav__panel a:not(.btn){font:500 20px/1 var(--f-display);text-decoration:none;padding:16px 0;border-bottom:1px solid var(--line)}
.mnav__panel .btn{margin-top:16px}

/* ---------- štítek příjmu ---------- */
.status{display:inline-flex;font:600 14px/1 var(--f-text);color:var(--ink)}
.status>span{display:inline-flex;align-items:center;gap:10px;padding:9px 14px 9px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.status__dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(51,181,185,.18)}
.status__off .status__dot{background:var(--ink-3);box-shadow:0 0 0 4px rgba(122,137,145,.18)}
body[data-prijem="ano"] .status__off,body[data-prijem="ne"] .status__on{display:none}
.status--sm{font-size:13px}
.status--sm>span{padding:7px 12px 7px 10px}

/* ---------- fotky: grading + ořezové značky ---------- */
.frame{position:relative;margin:0}
.frame img,.zoom__img{filter:var(--grade)}
.frame::before{content:"";position:absolute;inset:-12px;pointer-events:none;background:
  linear-gradient(var(--ink),var(--ink)) left top/16px 1px no-repeat,
  linear-gradient(var(--ink),var(--ink)) left top/1px 16px no-repeat,
  linear-gradient(var(--ink),var(--ink)) right top/16px 1px no-repeat,
  linear-gradient(var(--ink),var(--ink)) right top/1px 16px no-repeat,
  linear-gradient(var(--ink),var(--ink)) left bottom/16px 1px no-repeat,
  linear-gradient(var(--ink),var(--ink)) left bottom/1px 16px no-repeat,
  linear-gradient(var(--ink),var(--ink)) right bottom/16px 1px no-repeat,
  linear-gradient(var(--ink),var(--ink)) right bottom/1px 16px no-repeat}
.frame__cap{position:absolute;left:0;bottom:0;background:var(--white);color:var(--ink);font:500 13px/1.3 var(--f-text);padding:10px 14px 0 0;max-width:80%}

/* ---------- hero ---------- */
.hero{padding-top:48px}
.hero__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:center}
.hero__txt{grid-column:1/7;padding-right:24px}
.hero__h1{margin:24px 0 24px}
.hero__h1-main{display:block;font:500 clamp(48px,6.1vw,92px)/.95 var(--f-display);letter-spacing:-.045em;max-width:6ch}
.nw{white-space:nowrap}
.hero__h1-loc{display:block;margin-top:18px;font:400 clamp(24px,2.3vw,34px)/1.1 var(--f-display);letter-spacing:-.02em;color:var(--teal-ink)}
.hero__lead{font-size:19px;line-height:1.6;color:var(--ink-2);max-width:48ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero__fig{grid-column:7/13}
.hero__fig img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:34% 50%}
.gbadge{display:inline-flex;align-items:center;gap:12px;margin-top:28px;text-decoration:none;padding:6px 0}
.gbadge__num{font:500 28px/1 var(--f-display);letter-spacing:-.02em}
.gbadge__txt{font-size:15px;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.gbadge:hover .gbadge__txt{color:var(--teal-ink);text-decoration-color:currentColor}
.stars{display:inline-flex;gap:3px}
.stars i{width:15px;height:15px;background:var(--teal);clip-path:polygon(50% 0,61.8% 35.3%,100% 38.2%,69% 61%,80.9% 100%,50% 77%,19.1% 100%,31% 61%,0 38.2%,38.2% 35.3%)}
.stars--lg i{width:22px;height:22px}

/* stupnice — čísla ordinace */
.ruler{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:48px 0 0;position:relative;padding-top:12px}
.ruler::before{content:"";position:absolute;left:0;right:0;top:0;height:12px;background:
  linear-gradient(var(--ink),var(--ink)) left top/100% 1px no-repeat,
  repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 48px) left top/100% 12px no-repeat,
  repeating-linear-gradient(90deg,var(--ink-3) 0 1px,transparent 1px 8px) left top/100% 6px no-repeat}
.ruler__cell{padding:24px 24px 32px 0;border-right:1px solid var(--line)}
.ruler__cell+.ruler__cell{padding-left:24px}
.ruler__cell:last-child{border-right:0}
.ruler__num{font:400 clamp(44px,4.6vw,72px)/1 var(--f-display);letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.ruler__lbl{margin:16px 0 0;font-size:15px;line-height:1.45;color:var(--ink-2)}
.ruler__cell:first-child .ruler__num{color:var(--teal-ink)}
.ruler__cell--rate .stars{display:flex;margin-bottom:10px}
.ruler__cell--rate a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.ruler__cell--rate a:hover{color:var(--teal-ink);text-decoration-color:currentColor}

/* ---------- sekce ---------- */
.sec{padding-block:var(--sec)}
.sec--tight{padding-block:var(--sec) 0}

/* 01 pod zvětšením */
.zoomsec{padding-top:var(--sec)}
.zoomsec__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:center}
.zoomsec__txt{grid-column:1/5;padding-right:8px}
.zoomsec__txt .h2{font-size:clamp(32px,3vw,44px)}
.zoomsec__txt .h2{margin-bottom:24px}
.zoomsec__ctrl{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px}
.chip{min-height:44px;padding:0 16px;border:1px solid var(--ink-3);border-radius:var(--r);background:var(--white);font:600 15px/1 var(--f-text);color:var(--ink);cursor:pointer}
.chip:hover{border-color:var(--ink)}
.chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.zoomsec__note{margin-top:20px;font-size:16px;line-height:1.55;min-height:3.1em;max-width:40ch}
.zoomsec__hint{margin-top:16px;font-size:14px;color:var(--ink-2)}
.zoom{grid-column:5/13;position:relative;margin:0;container-type:inline-size;--z:2;--lens:232px;touch-action:pan-y;cursor:crosshair}
.zoom__img{width:100%;aspect-ratio:1800/1013}
.zoom::after{content:"";position:absolute;left:0;right:0;top:0;height:calc(100cqw*1013/1800);background:rgba(234,241,243,.3);pointer-events:none;
  -webkit-mask:radial-gradient(circle calc(var(--lens)/2 + 1px) at calc(var(--x)*100cqw) calc(var(--y)*100cqw*1013/1800),transparent 99%,#000 100%);
          mask:radial-gradient(circle calc(var(--lens)/2 + 1px) at calc(var(--x)*100cqw) calc(var(--y)*100cqw*1013/1800),transparent 99%,#000 100%)}
.zoom__lens{position:absolute;z-index:2;width:var(--lens);height:var(--lens);border-radius:50%;pointer-events:none;
  left:calc(var(--x)*100cqw - var(--lens)/2);top:calc(var(--y)*100cqw*1013/1800 - var(--lens)/2);
  background:var(--src,url(../foto/ordinace-vysvetleni-rtg.jpg)) no-repeat;
  background-size:calc(100cqw*var(--z)) auto;
  background-position:calc(var(--lens)/2 - var(--x)*100cqw*var(--z)) calc(var(--lens)/2 - var(--y)*100cqw*1013/1800*var(--z));
  filter:var(--grade);
  box-shadow:0 0 0 2px var(--white),0 0 0 3px var(--ink),0 24px 48px -16px rgba(29,36,40,.55)}
.zoom__ret{position:absolute;inset:0;border-radius:50%;background:
  linear-gradient(var(--white),var(--white)) center top/1px 14px no-repeat,
  linear-gradient(var(--white),var(--white)) center bottom/1px 14px no-repeat,
  linear-gradient(var(--white),var(--white)) left center/14px 1px no-repeat,
  linear-gradient(var(--white),var(--white)) right center/14px 1px no-repeat}
.zoom .frame__cap{position:static;display:block;padding:14px 0 0;max-width:none;color:var(--ink-2)}
@media (prefers-reduced-motion:no-preference){.zoom.is-anim .zoom__lens{transition:left .45s cubic-bezier(.2,.7,.2,1),top .45s cubic-bezier(.2,.7,.2,1),background-position .45s cubic-bezier(.2,.7,.2,1)}}

/* 02 proč */
.why{background:var(--ice)}
.why__head{display:flex;flex-direction:column;margin-bottom:56px}
.why__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.why__item{padding:32px 32px 0 0;border-right:1px solid var(--line)}
.why__item+.why__item{padding-left:32px}
.why__item:last-child{border-right:0}
.why__item .ic{color:var(--teal-ink);margin-bottom:20px}
.why__item .h4{font:500 22px/1.2 var(--f-display);letter-spacing:-.015em;margin-bottom:10px}
.why__item p{color:var(--ink-2);font-size:16px}

/* layout s lepivým panelem */
.railed{display:grid;grid-template-columns:minmax(0,1fr) 336px;gap:0 80px;align-items:start;padding-bottom:var(--sec)}
.railed__main{min-width:0}
.rail{position:sticky;top:calc(var(--hdr) + 32px);margin-top:var(--sec)}
.rail__card{border:1px solid var(--ink);border-radius:var(--r);padding:28px;background:var(--white);position:relative}
.rail__card::before{content:"";position:absolute;left:28px;right:28px;top:-1px;height:8px;background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 8px) left top/100% 8px no-repeat}
.rail__h{font:500 22px/1.1 var(--f-display);letter-spacing:-.015em;margin:8px 0 16px}
.rail__today{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:24px 0 0;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rail__day{font-size:15px;color:var(--ink-2)}
.rail__hrs{font:500 18px/1 var(--f-display);font-variant-numeric:tabular-nums}
.rail__tel{display:block;margin:22px 0 16px;font:500 34px/1 var(--f-display);letter-spacing:-.03em;text-decoration:none}
.rail__tel:hover{color:var(--teal-ink)}
.rail__note{margin-top:18px;font-size:14px;line-height:1.5;color:var(--ink-2)}

/* 03 služby */
#sluzby .h2{margin-bottom:48px}
.svc{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;border-top:1px solid var(--ink)}
.svc__row{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:8px;padding:22px 0 24px;border-bottom:1px solid var(--line)}
.svc__no{grid-row:1/3;font:500 13px/1 var(--f-display);color:var(--teal-ink);padding-top:6px;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.svc__name{font:500 20px/1.25 var(--f-display);letter-spacing:-.01em;margin-bottom:6px}
.svc__desc{font-size:16px;color:var(--ink-2);max-width:44ch}

/* 04 ceník */
#cenik .h2{margin-bottom:20px}
#cenik .lead{margin-bottom:40px}
.price{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}
.price thead th{font:500 14px/1 var(--f-text);color:var(--ink-2);text-align:left;padding:16px 0;border-bottom:1px solid var(--line)}
.price thead th:last-child{text-align:right}
.price tbody th{text-align:left;font-weight:500;font-size:17px;padding:20px 24px 20px 0;border-bottom:1px solid var(--line)}
.price td{text-align:right;white-space:nowrap;font:500 24px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line);padding:18px 0}
.price__od{font:500 15px/1 var(--f-text);color:var(--ink-2);letter-spacing:0;margin-right:4px}
.price td.price__ins{font:600 15px/1.2 var(--f-text);letter-spacing:0;color:var(--teal-ink)}
.ins{margin-top:72px}
.ins .h4{margin-bottom:20px}
.ins__list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--ice-2)}
.ins__list li{padding:22px 20px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.ins__list li:last-child{border-right:0}
.ins__code{font:400 40px/1 var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.ins__name{font-size:15px;font-weight:600;color:var(--ink-2)}

/* 05 pro pacienty */
.patients{background:var(--ice-2);border-top:1px solid var(--line)}
.patients .h2{margin-bottom:56px}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut);counter-reset:s;position:relative;padding-top:28px}
.steps::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:
  linear-gradient(var(--ink),var(--ink)) left top/100% 1px no-repeat,
  repeating-linear-gradient(90deg,var(--ink-3) 0 1px,transparent 1px 8px) left top/100% 6px no-repeat}
.steps__item{position:relative}
.steps__item::before{content:"";position:absolute;left:0;top:-32px;width:9px;height:9px;border-radius:50%;background:var(--teal-ink);box-shadow:0 0 0 4px var(--ice-2)}
.steps__n{display:block;font:400 56px/1 var(--f-display);letter-spacing:-.04em;color:var(--teal-ink);margin-bottom:16px}
.steps__item p{font-size:17px;max-width:26ch}
.steps__item a{font-weight:600;white-space:nowrap}
.pboxes{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:var(--gut);margin-top:88px}
.pbox{border-top:1px solid var(--ink);padding-top:28px}
.pbox .h3{margin-bottom:14px}
.pbox p{color:var(--ink-2);font-size:16px;max-width:40ch}
.pbox a:not(.btn){color:var(--teal-ink);font-weight:600}
.pbox--acute{background:var(--white);border:1px solid var(--ink);border-top:4px solid var(--teal-ink);border-radius:var(--r);padding:28px 28px 32px}
.pbox--acute p{color:var(--ink);margin-bottom:24px}

/* 06 tým */
.team__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:end}
.team__lead{grid-column:1/9}
.team__lead .h2{margin-bottom:48px}
.doc{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:40px;align-items:end}
.ph{position:relative;border-radius:var(--r);overflow:hidden;background:
  repeating-linear-gradient(135deg,rgba(29,36,40,.045) 0 1px,transparent 1px 9px),var(--ice)}
.ph--portrait{aspect-ratio:4/5}
.ph--sq{aspect-ratio:1/1}
.ph__mono{position:absolute;inset:0;display:grid;place-items:center;font:500 120px/1 var(--f-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--ink-3)}
.ph__cap{position:absolute;left:14px;bottom:12px;font:500 13px/1.3 var(--f-text);color:var(--ink-2)}
.doc__name{font:500 30px/1.1 var(--f-display);letter-spacing:-.02em}
.doc__role{margin:6px 0 28px;color:var(--ink-2)}
.spec{margin:0;border-top:1px solid var(--ink)}
.spec>div{display:grid;grid-template-columns:88px minmax(0,1fr);gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.spec dt{font-size:14px;color:var(--ink-2);padding-top:1px}
.spec dd{margin:0;font-size:16px;font-weight:500}
.team__side{grid-column:9/13;display:grid;grid-template-columns:1fr 1fr;gap:var(--gut)}
.mate__name{font:500 18px/1.2 var(--f-display);margin-top:16px}
.mate__role{font-size:14px;color:var(--ink-2);margin-top:4px}

/* 07 hodnocení */
.rate{background:var(--ink);color:#fff}
.rate__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:start}
.rate__score{grid-column:1/6}
.rate__num{font:400 clamp(120px,15vw,216px)/.82 var(--f-display);letter-spacing:-.06em;margin:24px 0 28px;font-variant-numeric:tabular-nums}
.rate__cnt{margin-top:16px;color:var(--on-dark);font-size:16px}
.rate__link{margin-top:40px}
.rate__body{grid-column:7/13;padding-top:44px}
.rate__body .h2{margin-bottom:36px}
.themes{border-top:1px solid rgba(174,187,193,.45)}
.quotes__h{margin:96px 0 0;padding-bottom:20px;font:600 15px/1 var(--f-text);color:var(--on-dark);border-bottom:1px solid rgba(174,187,193,.45)}
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.quote{padding:32px 40px 8px 0;border-right:1px solid rgba(174,187,193,.25);display:flex;flex-direction:column;justify-content:space-between;gap:28px}
.quote+.quote{padding-left:40px}
.quote:last-child{border-right:0}
.quote blockquote{margin:0}
.quote blockquote p{font:400 23px/1.4 var(--f-display);letter-spacing:-.012em;color:#fff}
.quote__who{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:var(--on-dark)}
.quote__who::before{content:"";width:18px;height:2px;background:var(--teal)}
.themes li{font:400 21px/1.4 var(--f-display);letter-spacing:-.01em;padding:18px 0 18px 36px;border-bottom:1px solid rgba(174,187,193,.25);position:relative}
.themes li::before{content:"";position:absolute;left:0;top:32px;width:18px;height:2px;background:var(--teal)}

/* 08 kontakt */
.contact .h2{margin-bottom:64px;max-width:none}
.contact__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut)}
.contact__info{grid-column:1/6;padding-right:32px}
.contact__info .h4{margin:40px 0 14px}
.addr{font-style:normal;display:flex;flex-direction:column;gap:6px}
.addr__main{font:500 24px/1.3 var(--f-display);letter-spacing:-.015em;margin-bottom:12px}
.addr__tel{font:500 24px/1.2 var(--f-display);text-decoration:none}
.addr a{text-underline-offset:4px}
.addr a:hover{color:var(--teal-ink)}
.hours{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}
.hours th,.hours td{padding:11px 0;border-bottom:1px solid var(--line);font-size:16px;text-align:left}
.hours th{font-weight:500}
.hours td{text-align:right;font:500 17px/1 var(--f-display);font-variant-numeric:tabular-nums}
.hours tr.is-closed td{font:500 15px/1 var(--f-text);color:var(--ink-2)}
.hours tr.is-today th,.hours tr.is-today td{color:var(--teal-ink);font-weight:700}
.hours tr.is-today th::after{content:"dnes";margin-left:10px;font:600 12px/1 var(--f-text);color:#fff;background:var(--teal-ink);padding:3px 7px;border-radius:var(--r);vertical-align:2px}
.route li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
.route li:first-child{border-top:1px solid var(--ink)}
.route .ic{margin-top:3px;color:var(--teal-ink)}
.route strong{font-weight:600}

.contact__form{grid-column:6/13}
.form,.form__ok{background:var(--ice-2);border:1px solid var(--line);border-radius:var(--r);padding:44px}
.form .h3,.form__ok .h3{font-size:30px;margin-bottom:8px}
.form__intro{color:var(--ink-2);margin-bottom:32px}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.field__row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field label{font:600 14px/1.2 var(--f-text)}
.opt{font-weight:500;color:var(--ink-2)}
.field input,.field select,.field textarea{width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--ink-3);border-radius:var(--r);background:var(--white);font:500 16px/1.4 var(--f-text);color:var(--ink);appearance:none}
.field select{background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%231D2428' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center;padding-right:40px}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal-ink);box-shadow:0 0 0 3px rgba(11,111,116,.18)}
.field__err{display:none;font-size:14px;color:#A3312A}
.field.is-err input,.field.is-err select{border-color:#A3312A}
.field.is-err .field__err{display:block}
.form .btn{margin-top:8px}
.form__alt{margin-top:16px;font-size:15px;color:var(--ink-2);text-align:center}
.form__alt a{color:var(--ink);font-weight:600}
.form__ok p{color:var(--ink-2)}

.where{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);margin-top:80px}
.map{grid-column:1/9;position:relative;display:block;min-height:420px;border:1px solid var(--ink);border-radius:var(--r);overflow:hidden;text-decoration:none;background:var(--ice)}
.map__grid{position:absolute;inset:0;background:
  repeating-linear-gradient(0deg,rgba(29,36,40,.22) 0 1px,transparent 1px 120px),
  repeating-linear-gradient(90deg,rgba(29,36,40,.22) 0 1px,transparent 1px 120px),
  repeating-linear-gradient(0deg,rgba(29,36,40,.07) 0 1px,transparent 1px 24px),
  repeating-linear-gradient(90deg,rgba(29,36,40,.07) 0 1px,transparent 1px 24px)}
.map__pin{position:absolute;left:58%;top:42%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;border:1px solid var(--teal-ink);background:rgba(51,181,185,.14)}
.map__pin::before{content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--teal-ink);box-shadow:0 0 0 3px #fff}
.map__pin::after{content:"";position:absolute;inset:-28px;background:
  linear-gradient(var(--teal-ink),var(--teal-ink)) center top/1px 22px no-repeat,
  linear-gradient(var(--teal-ink),var(--teal-ink)) center bottom/1px 22px no-repeat,
  linear-gradient(var(--teal-ink),var(--teal-ink)) left center/22px 1px no-repeat,
  linear-gradient(var(--teal-ink),var(--teal-ink)) right center/22px 1px no-repeat}
.map__lbl{position:absolute;left:24px;bottom:24px;width:340px;background:#fff;border:1px solid var(--ink);border-radius:var(--r);font-size:15px;line-height:1.35;color:var(--ink)}
.map__lbl strong{display:block;font:500 20px/1.2 var(--f-display);padding:14px 18px;border-bottom:1px solid var(--ink)}
.map__rows{display:block}
.map__rows>span{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:9px 18px;border-bottom:1px solid var(--line)}
.map__rows>span:last-child{border-bottom:0}
.map__rows em{font-style:normal;font-size:13px;color:var(--ink-2);padding-top:1px}
.map__go{position:absolute;right:24px;bottom:24px;display:inline-flex;align-items:center;min-height:48px;padding:0 20px;background:var(--ink);color:#fff;border-radius:var(--r);font:600 15px/1 var(--f-text)}
.map:hover .map__go{background:var(--teal-ink)}
.where__fig{grid-column:9/13}
.where__fig img{width:100%;height:420px;object-fit:cover;object-position:50% 60%}

/* ---------- footer ---------- */
.ftr{background:var(--ink);color:var(--on-dark);padding:80px 0 32px;font-size:15px;border-top:1px solid #33404A}
.ftr a{color:#fff;text-decoration:none}
.ftr a:hover{color:var(--teal)}
.ftr__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--gut)}
.ftr__name{font:500 24px/1.1 var(--f-display);color:#fff;letter-spacing:-.015em}
.ftr__sub{margin:6px 0 20px}
.ftr__h{color:#fff;font-weight:600;margin-bottom:12px}
.ftr p{line-height:1.75}
.ftr__base{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:64px;padding-top:24px;border-top:1px solid rgba(174,187,193,.25);font-size:14px}
.ftr__base p{display:flex;gap:24px;flex-wrap:wrap}

@media (min-width:1121px){.gbadge{display:none}}

/* mobilní lišta */
.mbar{display:none}

/* ---------- responzivita ---------- */
@media (max-width:1240px){
  .nav{gap:20px}
  .railed{grid-template-columns:minmax(0,1fr) 300px;gap:0 48px}
}
@media (max-width:1120px){
  :root{--pad:40px;--sec:96px}
  .nav{display:none}
  .mnav{display:block}
  .hdr__act{margin-left:auto}
  .hdr__in{gap:16px}
  .hero__txt{grid-column:1/8}
  .hero__fig{grid-column:8/13}
  .hero__fig img{aspect-ratio:1/1;object-position:52% 50%}
  .ruler{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ruler__cell:nth-child(3){border-right:0}
  .ruler__cell:nth-child(4){padding-left:0;border-top:1px solid var(--line)}
  .ruler__cell:nth-child(5){border-top:1px solid var(--line)}
  .zoomsec__txt{grid-column:1/13;padding-right:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;margin-bottom:40px}
  .zoomsec__txt>.secno,.zoomsec__txt>.h2{grid-column:1/3}
  .zoomsec__txt .lead{grid-column:1}
  .zoomsec__ctrl{grid-column:2;grid-row:3;margin-top:0;align-self:start}
  .zoomsec__note{grid-column:2;grid-row:3;margin-top:64px}
  .zoomsec__hint{grid-column:1}
  .zoom{grid-column:1/13;width:100%;max-width:880px;justify-self:center}
  .why__list{grid-template-columns:1fr 1fr}
  .why__item:nth-child(2){border-right:0}
  .why__item:nth-child(3){padding-left:0;border-top:1px solid var(--line)}
  .why__item:nth-child(4){border-top:1px solid var(--line)}
  .why__item{padding-bottom:32px}
  .railed{grid-template-columns:1fr}
  .rail{display:none}
  .pboxes{grid-template-columns:1fr 1fr}
  .pbox--acute{grid-column:1/3}
  .team__lead{grid-column:1/13}
  .team__side{grid-column:1/13;grid-template-columns:repeat(4,1fr);margin-top:48px}
  .rate__score{grid-column:1/13}
  .rate__body{grid-column:1/13;padding-top:24px}
  .contact__info{grid-column:1/13;padding-right:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
  .contact__info>.addr{grid-column:1/3}
  .contact__form{grid-column:1/13;margin-top:56px}
  .map{grid-column:1/13}
  .where__fig{display:none}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .quote{padding-right:28px}
  .quote+.quote{padding-left:28px}
  .quote blockquote p{font-size:20px}
}
@media (max-width:900px){
  .hero__txt{grid-column:1/13}
  .hero__fig{grid-column:1/13;margin-top:32px}
  .hero__fig img{aspect-ratio:16/9;object-position:50% 45%}
}
@media (max-width:760px){
  :root{--pad:20px;--sec:72px;--hdr:64px;--gut:16px}
  .hdr__act .btn{display:none}
  .mbar{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line)}
  .mbar .btn{min-height:48px}
  body{padding-bottom:72px}
  body{font-size:16px}
  .logo__mark{width:36px;height:36px}
  .logo__name{font-size:16px}
  .logo__sub{font-size:12px}
  .hdr__tel span{display:none}
  .hdr__in{gap:8px}
  .mnav summary{gap:8px}
  .hdr__tel{width:44px;justify-content:center;border:1px solid var(--line);border-radius:var(--r)}
  .mnav summary{padding:0 12px}
  .hero{padding-top:28px}
  .hero__grid{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .hero__txt{padding-right:0}
  .hero__h1{margin:20px 0 18px}
  .hero__h1-main{font-size:clamp(44px,13vw,56px)}
  .hero__h1-loc{font-size:23px;margin-top:12px}
  .hero__lead{font-size:17px}
  .hero__cta{margin-top:28px;display:grid;grid-template-columns:1fr;gap:10px}
  .gbadge{margin-top:24px}
  .hero__fig{margin-top:40px}
  .hero__fig img{aspect-ratio:4/3;object-position:40% 50%}
  .frame::before{inset:-8px}
  .ruler{grid-template-columns:1fr 1fr;margin-top:56px}
  .ruler__cell,.ruler__cell+.ruler__cell{padding:24px 16px 24px 0;border-right:0;border-top:1px solid var(--line)}
  .ruler__cell:nth-child(-n+2){border-top:0}
  .ruler__cell:nth-child(odd){border-right:1px solid var(--line)}
  .ruler__cell:nth-child(even){padding-left:16px}
  .ruler__cell:nth-child(5){grid-column:1/3;border-right:0}
  .ruler__num{font-size:44px}
  .ruler__lbl{font-size:14px;margin-top:10px}
  .zoomsec__txt{display:block;margin-bottom:28px}
  .zoomsec__ctrl{margin-top:24px}
  .zoomsec__note{margin-top:16px}
  .zoom{--z:2.3;--lens:176px;margin-inline:calc(var(--pad)*-1);width:calc(100% + var(--pad)*2)}
  .zoom .frame__cap{padding:12px var(--pad) 0}
  .frame__cap{font-size:12px;padding:8px 10px 0 0}
  .why__head{margin-bottom:32px}
  .why__list{grid-template-columns:1fr}
  .why__item,.why__item+.why__item{padding:24px 0;border-right:0;border-top:1px solid var(--line);display:grid;grid-template-columns:40px 1fr;gap:4px 16px}
  .why__item:first-child{border-top:0}
  .why__item .ic{grid-row:1/3;margin:2px 0 0}
  .why__item .h4{margin-bottom:2px;font-size:20px}
  #sluzby .h2{margin-bottom:32px}
  .svc{grid-template-columns:1fr}
  .svc__row{padding:16px 0 18px}
  .svc__name{font-size:18px;margin-bottom:4px}
  .svc__desc{font-size:15px}
  .price tbody th{font-size:15px;padding:16px 16px 16px 0;line-height:1.35}
  .price td{font-size:19px}
  .price td.price__ins{font-size:14px;white-space:normal;max-width:110px}
  .price__od{font-size:13px}
  .ins{margin-top:56px}
  .ins__list{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ins__list li{padding:16px 14px;border-bottom:1px solid var(--line)}
  .ins__list li:nth-child(3){border-right:0}
  .ins__list li:nth-child(n+4){border-bottom:0}
  .ins__code{font-size:30px}
  .patients .h2{margin-bottom:40px}
  .steps{grid-template-columns:1fr;gap:0;padding-top:0;padding-left:28px}
  .steps::before{left:0;right:auto;top:6px;bottom:6px;width:6px;height:auto;background:
    linear-gradient(var(--ink),var(--ink)) left top/1px 100% no-repeat,
    repeating-linear-gradient(0deg,var(--ink-3) 0 1px,transparent 1px 8px) left top/6px 100% no-repeat}
  .steps__item{padding:0 0 28px}
  .steps__item::before{left:-32px;top:14px}
  .steps__n{font-size:40px;margin-bottom:6px}
  .pboxes{grid-template-columns:1fr;margin-top:40px;gap:40px}
  .pbox--acute{grid-column:auto;padding:24px 20px 24px}
  .pbox--acute .btn{width:100%}
  .doc{grid-template-columns:112px minmax(0,1fr);gap:20px;align-items:center}
  .doc__body{display:contents}
  .doc .ph--portrait{grid-row:1/3;align-self:start}
  .doc__name{font-size:24px;align-self:end}
  .doc__role{margin:0;align-self:start}
  .spec{grid-column:1/3;margin-top:8px}
  .ph__mono{font-size:44px}
  .doc .ph__cap{display:none}
  .team__side{grid-template-columns:1fr 1fr;margin-top:40px}
  .mate__name{font-size:16px}
  .mate__role{font-size:13px}
  .rate__num{margin:16px 0 20px}
  .themes li{font-size:18px;padding:15px 0 15px 30px}
  .themes li::before{top:27px;width:14px}
  .rate .btn{width:100%;white-space:normal;text-align:center}
  .rate__link{margin-top:28px}
  .quotes__h{margin-top:56px}
  .quotes{grid-template-columns:1fr}
  .quote,.quote+.quote{padding:24px 0;border-right:0;border-bottom:1px solid rgba(174,187,193,.25);gap:16px}
  .quote:last-child{border-bottom:0;padding-bottom:0}
  .quote blockquote p{font-size:20px}
  .contact .h2{margin-bottom:40px}
  .contact__info{display:block}
  .addr__main,.addr__tel{font-size:21px}
  .form,.form__ok{padding:28px 20px}
  .form .h3{font-size:26px}
  .field__row{grid-template-columns:1fr;gap:0}
  .where{margin-top:48px}
  .map{min-height:340px}
  .map__pin{left:66%;top:20%}
  .map__lbl{left:16px;right:16px;bottom:80px;width:auto}
  .map__rows>span{grid-template-columns:84px minmax(0,1fr);padding:8px 14px}
  .map__lbl strong{padding:12px 14px}
  .map{min-height:400px}
  .map__go{left:16px;right:16px;bottom:16px;justify-content:center}
  .ftr{padding-top:56px}
  .ftr__grid{grid-template-columns:1fr 1fr;gap:32px 16px}
  .ftr__brand{grid-column:1/3}
  .ftr__base{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media (max-width:420px){
  .hdr__tel{display:none}
}
