/* Zájezdy Zastávka – ukázkový web FORMA (smyšlený podnik, generuje vizitka/tools/ukazka-zastavka.py). */
@font-face{font-family:"Anton";src:url(fonts/anton-latin-ext.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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:"Anton";src:url(fonts/anton-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;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}
@font-face{font-family:"Hanken Grotesk";src:url(fonts/hanken-grotesk-latin-ext.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap;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:"Hanken Grotesk";src:url(fonts/hanken-grotesk-latin.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap;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}

:root{
  --nebe:#6fc8f3;
  --nebe-2:#5cbbe9;
  --nebe-sv:#dcf0fa;
  --lak:#e5521a;
  --lak-d:#b5380c;
  --lak-t:#a93208;
  --mor:#0c4566;
  --ink:#101a22;
  --ink-2:#22303b;
  --paper:#fff;
  --pisek:#eceae4;
  --seda:#4c5358;
  --soft:#c7cdd1;
  --led:#ffb61e;
  --pad:clamp(20px,3.4vw,52px);
  --sec:clamp(72px,8vw,120px);
  --font:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Anton","Arial Narrow",Impact,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:16px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.5 var(--font);font-synthesis:none;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
fieldset{border:0;margin:0;padding:0;min-width:0}
h1,h2{font-family:var(--display);font-weight:400;letter-spacing:.005em;line-height:1.04;text-wrap:balance}
h2{font-size:clamp(40px,5.2vw,78px)}
[hidden]{display:none!important}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;z-index:50;background:var(--ink);color:#fff;padding:12px 18px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
.fake{font-size:16px;font-weight:600}

/* tlačítka: hranaté jako jízdenka */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:12px 28px;font:700 19px/1.1 var(--font);text-decoration:none;border:3px solid transparent;background:none;transition:background-color .17s,color .17s,border-color .17s}
.btn:active{transform:translateY(1px)}
.btn-call{background:var(--ink);color:#fff}
.btn-call:hover{background:var(--lak-d)}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-nebe{background:var(--nebe);color:var(--ink)}
.btn-nebe:hover{background:#fff}

/* kresby autobusů */
.b-body{fill:var(--lak)}
.b-skirt{fill:var(--lak-d)}
.b-glass{fill:#17262f}
.b-glint{fill:#2f4a5a}
.b-stripe{fill:#fff}
.b-door{stroke:#5d7180;stroke-width:3;fill:none}
.b-name{font:400 48px var(--display);fill:#fff;letter-spacing:.05em}
.b-light{fill:#fff6d8}
.b-rear{fill:#ffb61e}
.b-tire{fill:var(--ink)}
.b-rim{fill:#cfd5d9}
.b-hub{fill:#7c858c}
.b-well{fill:#47170a}
.b-shadow{fill:rgba(16,26,34,.26)}
.v-body,.v-glass,.v-line,.v-tire{stroke:var(--v-line,#f1f3f4);stroke-width:3;stroke-linejoin:round}
.v-body{fill:var(--v-fill,transparent)}
.v-glass{fill:var(--v-glass,rgba(255,255,255,.07))}
.v-line{fill:none;stroke-width:2.5}
.v-stripe{fill:none;stroke:var(--v-accent,var(--nebe));stroke-width:6;stroke-linecap:round}
.v-tire{fill:var(--v-tire,var(--ink))}

/* hlavička */
.top{display:flex;align-items:center;gap:28px;padding:20px var(--pad) 0;background:var(--nebe)}
.brand{display:inline-flex;align-items:center;min-height:44px;font:400 34px/1 var(--display);color:var(--ink);text-decoration:none;letter-spacing:.04em}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{font-weight:650;font-size:17px;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.nav a:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:5px}
.top-cislo{min-height:44px;background:none;font-weight:800;font-size:19px;padding:8px 18px;border:3px solid var(--ink)}
.top-cislo:hover{background:var(--ink);color:#fff}

/* úvod: plakát, autobus přijel k zastávce */
.hero{position:relative;background:var(--nebe);padding:0 var(--pad);overflow:hidden}
.hero-hory{position:absolute;left:0;bottom:62px;width:100%;max-width:none;height:15vw;min-height:120px}
.hero-hory path{fill:var(--nebe-2)}
.hero h1{position:relative;font-size:clamp(46px,9.8vw,150px);padding-top:clamp(28px,3.2vw,48px)}
.hero-low{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,8fr);align-items:end;gap:20px;margin-top:clamp(10px,1.5vw,24px)}
.hero-text{padding-bottom:88px}
.hero-lead{font-size:21px;line-height:1.5;font-weight:500;max-width:28em}
.hero-act{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-fake{margin-top:10px}
.hero-more{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;font-size:17px}
.hero-more a{font-weight:700;text-decoration-thickness:2px;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center}
.hero-bus{position:relative;margin-right:calc(-1 * var(--pad) - 6vw);margin-bottom:30px}
.hero-vuz{width:100%;height:auto}
.road{position:absolute;left:0;right:0;bottom:0;height:62px;background:var(--ink)}
.road::after{content:"";position:absolute;left:0;right:0;top:28px;height:5px;background:repeating-linear-gradient(90deg,#f1f3f4 0 54px,transparent 54px 104px)}
.oznacnik{position:absolute;z-index:1;left:-1.6vw;bottom:32px;width:clamp(190px,17vw,250px);height:calc(21vw + 150px);pointer-events:none}
.oznacnik::before{content:"";position:absolute;left:0;top:10px;bottom:0;width:10px;background:var(--ink)}
.oz-cedule{position:relative;margin-left:10px;background:#fff;border:4px solid var(--ink);pointer-events:auto}
.oz-znak{display:flex;align-items:center;gap:10px;padding:10px 12px 8px;font:400 clamp(22px,2.1vw,30px)/1 var(--display);letter-spacing:.02em}
.oz-znak svg{flex:0 0 auto;width:clamp(44px,4vw,58px);height:auto}
.oz-led{display:block;background:var(--ink);color:var(--led);padding:10px 12px 12px}
.oz-k{display:block;font:700 15px/1.3 var(--font);color:#fff}
.oz-cil{display:block;margin-top:2px;font:400 clamp(26px,2.5vw,36px)/1.1 var(--display);letter-spacing:.02em}
.oz-kdy{display:block;margin-top:3px;font:700 16px/1.3 var(--font)}
@media (prefers-reduced-motion:no-preference){
  .hero-vuz{animation:prijezd .95s cubic-bezier(.16,.8,.24,1) .1s both}
  @keyframes prijezd{from{transform:translateX(24%)}}
}

/* scéna: linka */
.trasa{position:relative;background:#fff}
.trasa-stage{display:flex;align-items:center;justify-content:center;padding:var(--sec) 0}
.trasa-map{position:relative;width:min(100%,1440px);aspect-ratio:1440/900}
.trasa-head{position:absolute;left:3.4%;top:4.4%;width:34%;z-index:2}
.trasa-head h2{font-size:clamp(36px,4vw,60px)}
.trasa-head p{margin-top:14px;font-size:18px;max-width:24em;color:var(--seda)}
.led{display:none;position:absolute;left:62.4%;top:44.6%;width:18.6%;z-index:1;padding:clamp(8px,1.4svh,14px) 16px clamp(8px,1.6svh,16px);background:var(--ink);color:var(--led)}
.led-k{display:block;font:700 clamp(13px,1.7svh,15px)/1.3 var(--font);color:#fff}
.led-t{display:block;margin-top:2px;font:400 clamp(26px,4.6svh,42px)/1.1 var(--display);letter-spacing:.03em;white-space:nowrap}
.route{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.route-tel{display:none}
.relief{fill:var(--nebe-sv)}
.relief-l{fill:none;stroke:var(--nebe-sv);stroke-width:6;stroke-linecap:round}
.snow{fill:#fff}
.route-line,.route-done{fill:none;stroke:var(--lak-d);stroke-width:11;stroke-linejoin:round;stroke-linecap:round}
.route-done{display:none}
.route-dash{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:9 11}
.stop{fill:#fff;stroke:var(--ink);stroke-width:5;transition:fill .3s}
.stop.is-visited{fill:var(--nebe)}
.stop-home{fill:var(--ink)}
.stop-l{font:800 19px var(--font);fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round}
.stop-l-home{font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:.02em}
.trasa-bus{position:absolute;left:52.8%;top:52.2%;z-index:3;width:7.4%;transform:translate(-50%,-80%);transform-origin:50% 80%;will-change:transform;pointer-events:none}
.trasa-bus svg{width:100%;height:auto}
.stop-cards{position:absolute;inset:0;pointer-events:none}
.sc{position:absolute;width:20%;background:var(--nebe);padding:16px 18px 18px;pointer-events:auto}
.sc-start{display:none}
.sc-place{font:400 32px/1 var(--display);letter-spacing:.01em}
.sc-place span{font:600 16px var(--font);margin-left:6px;letter-spacing:0}
.sc-trip{margin-top:8px;font-size:17px;line-height:1.45}
.sc-when{margin-top:8px;font-size:17px;font-weight:700}
.sc-price{margin-top:6px;font:400 26px/1.1 var(--display);letter-spacing:.01em}
.sc-jasna{left:70.4%;bottom:69%}
.sc-drazdany{left:38.6%;bottom:69%}
.sc-salcburk{left:21.5%;top:40.6%}
.sc-benatky{left:20%;bottom:2.4%}
.sc-besenova{left:70.4%;bottom:2.4%}
.sc-domu{left:42.6%;bottom:2.4%;width:23%;background:var(--ink);color:#fff}
.sc-domu .sc-place span{color:var(--nebe)}
.sc-domu .btn{margin-top:14px;width:100%;min-height:54px;font-size:18px;padding:10px 16px}
.sc-domu :focus-visible{outline-color:var(--nebe)}

@media (min-width:1000px){
  .trasa-head h2{font-size:clamp(32px,min(4vw,6.6svh),60px)}
  .trasa-head p{font-size:clamp(15px,2svh,18px);margin-top:clamp(8px,1.5svh,14px)}
  .sc{padding:clamp(10px,1.7svh,16px) 16px clamp(10px,1.9svh,18px)}
  .sc-place{font-size:clamp(23px,3.5svh,32px)}
  .sc-trip,.sc-when{font-size:clamp(14px,1.9svh,17px);margin-top:clamp(3px,.8svh,8px)}
  .sc-price{font-size:clamp(20px,2.9svh,26px);margin-top:clamp(3px,.7svh,6px)}
  .sc-domu .btn{min-height:clamp(44px,6svh,54px);margin-top:clamp(8px,1.5svh,14px);font-size:clamp(15px,2.2svh,18px);padding:8px 12px;white-space:nowrap}
}
/* úzký počítač: karty se nesmí dotknout linky */
@media (min-width:1000px) and (max-width:1200px){
  .sc-trip{display:none}
  .sc-place span{display:block;margin:2px 0 0}
}
@media (min-width:1000px) and (max-width:1240px){
  .tickets{grid-template-columns:minmax(0,1fr)}
}

/* živá scéna: třídu .ziva dá skript, jen bez omezeného pohybu a na okně aspoň 501 px vysokém; jinak zůstane hotová kompozice */
.ziva .led{display:block}
.ziva .trasa{height:480svh}
.ziva .trasa-stage{position:sticky;top:0;height:100svh;padding:0;overflow:hidden}
.ziva .trasa-map{width:min(100vw,calc(100svh * 1440 / 900))}
.ziva .route-line{stroke:#d5dbdf}
.ziva .route-done{display:inline}
.ziva .sc{opacity:0;transform:translateY(18px);visibility:hidden;transition:opacity .5s ease,transform .5s ease,visibility 0s linear .5s}
.ziva .sc.is-on{opacity:1;transform:none;visibility:visible;transition:opacity .5s ease,transform .5s ease,visibility 0s}

/* zájezdy: filtr a jízdenky */
.zajezdy{background:var(--pisek);display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:clamp(32px,4vw,64px);padding:var(--sec) var(--pad)}
.zaj-pin{position:sticky;top:16px}
@media (max-height:520px){.zaj-pin{position:static}}
.zaj-lead{margin-top:18px;color:var(--seda)}
.filtr{margin-top:30px}
.filtr fieldset{margin:0 0 22px}
.filtr legend{font-weight:800;font-size:17px;margin-bottom:10px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative;display:inline-flex}
.chips input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.chips span{display:inline-flex;align-items:center;min-height:46px;padding:8px 16px;border:3px solid var(--ink);background:#fff;font-weight:650;font-size:17px;transition:background-color .15s,color .15s}
.chips label:hover span{background:var(--nebe)}
.chips input:checked + span{background:var(--ink);color:#fff}
.chips input:focus-visible + span{outline:3px solid var(--lak-d);outline-offset:3px}
.filtr-pocet{font:400 28px/1.1 var(--display);min-height:1.2em;letter-spacing:.01em}
.zaj-note{margin-top:24px;font-size:17px;color:var(--seda)}
.tickets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.ticket{display:grid;grid-template-columns:minmax(0,1fr) 172px;background:#fff;min-height:200px}
.ticket:focus{outline:3px solid var(--ink);outline-offset:3px}
.ticket-main{padding:22px 22px 22px 26px;display:flex;flex-direction:column}
.ticket-when{font:400 25px/1.15 var(--display);color:var(--lak-t);overflow-wrap:anywhere;letter-spacing:.01em}
.ticket-rytmus{margin-top:4px;font-size:16px;font-weight:650;color:var(--seda)}
.ticket-title{overflow-wrap:anywhere;margin-top:8px;font-size:23px;line-height:1.3;font-weight:800;letter-spacing:-.01em}
.ticket-desc{margin-top:8px;font-size:17px;line-height:1.5;color:var(--seda)}
.ticket-tags{margin-top:auto;padding-top:14px;font-size:16px;font-weight:650;color:var(--seda)}
.ticket-stub{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:22px 20px 22px 24px;background:linear-gradient(var(--pisek) 55%,transparent 0) 0 0/3px 13px repeat-y,var(--nebe)}
.ticket-stub::before,.ticket-stub::after{content:"";position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:var(--pisek)}
.ticket-stub::before{top:-13px}
.ticket-stub::after{bottom:-13px}
.ticket-price{font:400 32px/1 var(--display);letter-spacing:.01em}
.ticket-price span{display:block;font:600 16px/1.4 var(--font);letter-spacing:0}
.ticket-incl{margin-top:8px;font-size:16px;line-height:1.45;font-weight:600}
.ticket-call{display:block;width:100%;padding:12px 0 0;background:none;border:0;text-align:left;font-weight:800;font-size:17px;line-height:1.45;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.ticket-call:hover{text-decoration-thickness:4px}
.tickets-empty{font-size:20px;font-weight:600;padding:30px 0}
.tickets-reset,.tickets-more{margin-top:18px;min-height:58px;padding:12px 28px;font:700 19px var(--font);background:transparent;border:3px solid var(--ink);color:var(--ink)}
.tickets-more{margin-top:26px}
.tickets-reset:hover,.tickets-more:hover{background:var(--ink);color:#fff}

/* linka k moři */
.hr{background:var(--mor);color:#fff;padding:var(--sec) var(--pad)}
.hr :focus-visible{outline-color:var(--nebe)}
.hr-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end}
.hr-head h2{font-size:clamp(46px,6.6vw,100px)}
.hr-head p{font-size:20px;max-width:26em}
.linka{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));margin:40px 0 0;padding-top:170px}
.linka li{position:relative;height:56px}
.linka li::before{content:"";position:absolute;left:0;right:0;top:16px;height:8px;background:#fff}
.linka li:first-child::before{left:50%}
.linka li.is-end::before{right:50%}
.linka li.is-last::before{right:0}
.linka li.is-first::before{background:repeating-linear-gradient(90deg,#fff 0 12px,transparent 12px 22px);left:0}
.linka li::after{content:"";position:absolute;left:50%;top:6px;width:28px;height:28px;margin-left:-14px;border-radius:50%;background:var(--mor);border:6px solid #fff}
.linka li.is-home::after,.linka li.is-end::after{background:var(--nebe);border-color:var(--nebe);width:36px;height:36px;margin-left:-18px;top:2px}
.linka span{position:absolute;left:50%;bottom:66px;transform-origin:0 100%;transform:rotate(-42deg);white-space:nowrap;font-weight:700;font-size:20px}
.linka .is-home span,.linka .is-end span{font:400 27px var(--display);letter-spacing:.02em;color:var(--nebe)}
.hr-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);margin-top:70px;align-items:start}
.tarif div{display:flex;align-items:baseline;gap:14px;padding:14px 0}
.tarif dt{font-size:21px;font-weight:600;flex:0 1 auto}
.tarif div::after{content:"";order:2;flex:1 1 40px;border-bottom:3px dotted rgba(255,255,255,.55);transform:translateY(-6px)}
.tarif dd{order:3;font:400 clamp(36px,3.8vw,56px)/1 var(--display);color:var(--nebe);white-space:nowrap;letter-spacing:.01em}
.hr-dl{font-weight:700;font-size:18px}
.hr-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 18px;margin:14px 0 28px}
.hr-days:empty{margin:14px 0}
.hr-days li{font:400 clamp(32px,3.2vw,48px)/1.2 var(--display);letter-spacing:.01em}

/* flotila: technický list */
.flotila{background:var(--ink);color:#f1f3f4;padding:var(--sec) var(--pad)}
.flotila :focus-visible{outline-color:var(--nebe)}
.fl-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end;margin-bottom:56px}
.fl-head p{font-size:20px;color:var(--soft);max-width:28em}
.fl-row{display:grid;grid-template-columns:minmax(200px,18%) minmax(0,1fr) minmax(280px,27%);gap:clamp(24px,3vw,48px);align-items:center;margin:0 -24px;padding:30px 24px}
.fl-row:nth-child(odd){background:#1b2731}
.fl-num{font:400 clamp(92px,12.5vw,190px)/.86 var(--display);color:var(--nebe);letter-spacing:0}
.fl-num span{display:block;margin-top:10px;font:600 17px/1.2 var(--font);letter-spacing:0;color:var(--soft)}
.fl-draw svg{width:100%;height:auto}
.fl-draw.w100{width:100%}.fl-draw.w73{width:73%}.fl-draw.w54{width:54%}.fl-draw.w40{width:40%}
.fl-spec h3{font-size:24px;line-height:1.3;font-weight:800}
.fl-kind{margin-top:4px;font:700 19px/1.45 var(--font);color:var(--nebe)}
.fl-eq{margin-top:10px;font-size:17px;color:var(--soft)}

/* poptávka */
.poptavka{background:var(--nebe);padding:var(--sec) var(--pad);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"left form" "skoly form";grid-template-rows:auto 1fr;gap:0 clamp(40px,6vw,96px)}
.pop-left{grid-area:left}
.pop-form{grid-area:form}
.pop-skoly{grid-area:skoly;align-self:start}
.poptavka h2{font-size:clamp(56px,7.6vw,116px)}
.pop-doporuc{margin-top:36px;min-height:190px;--v-line:var(--ink);--v-fill:transparent;--v-glass:rgba(16,26,34,.08);--v-accent:var(--lak-d);--v-tire:var(--ink)}
.pop-dl{font-weight:800;font-size:17px}
.pop-start,.pop-vic{margin-top:10px;font:700 25px/1.45 var(--font);max-width:18em;text-wrap:balance}
.pv svg{width:min(100%,420px);height:auto;margin-top:14px}
.pv[data-mista="12"] svg{width:220px}
.pv[data-mista="19"] svg{width:290px}
.pv p{margin-top:12px;font-size:20px;line-height:1.5}
.pv strong{display:block;font:400 36px/1.1 var(--display);letter-spacing:.01em}
.pop-tip{margin-top:26px;font-size:19px;font-weight:600}
.pop-form{background:#fff;padding:clamp(24px,3vw,44px);align-self:start}
.pop-intro{font-weight:700;font-size:19px;margin-bottom:12px}
.f{margin-top:16px}
.f label{display:block;font-weight:700;font-size:17px;margin-bottom:6px}
.f input{width:100%;min-height:56px;padding:12px 16px;font:500 20px var(--font);color:var(--ink);background:#fff;border:3px solid var(--ink);border-radius:0;-webkit-appearance:none;appearance:none}
.f input:focus-visible{outline:3px solid var(--lak-d);outline-offset:2px;background:#fff}
.f input:user-invalid{border-color:var(--lak-d)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pop-form .btn{margin-top:26px;width:100%}
.pop-ok{margin-top:20px;padding:18px 20px;background:var(--ink);color:#fff;font-size:18px;font-weight:600}
.pop-ok:focus-visible{outline-color:var(--lak-d)}
.pop-skoly{margin-top:48px;padding-top:32px;border-top:4px solid var(--ink)}
.pop-skoly h3{font:400 clamp(30px,3vw,44px)/1 var(--display);letter-spacing:.01em}
.skoly-words{margin-top:16px;display:flex;flex-wrap:wrap;gap:4px 0;font:400 clamp(25px,2.5vw,36px)/1.25 var(--display);letter-spacing:.01em}
.skoly-words span:not(:last-child)::after{content:"/";margin:0 .32em;color:var(--mor)}

/* sedadla: plánek autobusu shora */
.sedadla{background:#fff;padding:var(--sec) var(--pad)}
.sed-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:end;margin-bottom:44px}
.sed-head h2{font-size:clamp(52px,7vw,106px)}
.sed-head p{font-size:20px;max-width:26em;color:var(--seda)}
.sed-plan{display:flex;align-items:stretch;gap:clamp(12px,1.6vw,26px);padding:clamp(16px,1.7vw,24px) clamp(18px,2.2vw,32px);background:var(--pisek);border:4px solid var(--ink);border-radius:84px 18px 18px 84px}
.sed-kabina{flex:0 0 auto;display:flex;flex-direction:column-reverse;justify-content:space-between;align-items:center;width:clamp(58px,6.4vw,92px);padding:6px 0}
.sed-volant{width:44px;height:44px;border:6px solid var(--ink);border-radius:50%}
.sed-dvere{padding:4px 8px;background:var(--ink);color:#fff;font-size:15px;font-weight:700}
.rady{flex:1 1 auto;display:flex;justify-content:space-between;gap:6px}
.rada{display:flex;flex-direction:column-reverse;gap:6px}
.sed{position:relative;display:block}
.sed:nth-child(2){margin-top:clamp(20px,2.3vw,34px)}
.sed input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.sed input:disabled{cursor:not-allowed}
.sed span{display:flex;align-items:center;justify-content:center;width:clamp(44px,5.6vw,76px);height:clamp(44px,4.6vw,62px);background:#fff;border:3px solid var(--ink);border-radius:4px 16px 16px 4px;font-weight:700;font-size:17px;transition:background-color .15s,color .15s}
.sed:hover input:enabled:not(:checked) + span{background:var(--nebe)}
.sed input:checked + span{background:var(--lak-d);color:#fff}
.sed input:focus-visible + span{outline:3px solid var(--lak-d);outline-offset:3px}
.sed input:disabled + span{background:var(--soft);border-color:#8d969c;color:transparent;position:relative}
.sed input:disabled + span::after{content:"×";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:22px;font-weight:700}
.sed-pata{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start;margin-top:26px}
.sed-leg{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:17px;font-weight:600;padding-top:6px}
.sed-leg li{display:flex;align-items:center;gap:8px}
.sed-leg li::before{content:"";width:22px;height:22px;border:3px solid var(--ink);background:#fff;border-radius:3px 8px 8px 3px}
.sed-leg .l-obs::before{background:var(--soft);border-color:#8d969c}
.sed-leg .l-vase::before{background:var(--lak-d)}
.sed-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 28px;align-items:center;min-height:86px}
.sed-kde{grid-column:1;font:400 clamp(28px,2.8vw,40px)/1.15 var(--display);letter-spacing:.01em}
.sed-rada{grid-column:1;font-size:18px;color:var(--seda)}
.sed-btn{grid-column:2;grid-row:1/3}

/* kontakt: jízdní řád kanceláře */
.kontakt{background:var(--pisek);display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(36px,5vw,80px);padding:var(--sec) var(--pad);align-items:center}
.ko-rad{background:#fff;border:4px solid var(--ink);padding:clamp(22px,2.6vw,38px)}
.ko-rad-h{font:400 clamp(30px,3vw,44px)/1.1 var(--display);letter-spacing:.01em}
.ko-stav{margin-top:12px;padding:8px 14px;background:var(--ink);color:var(--led);font-weight:700;font-size:18px}
.hodiny{margin-top:14px}
.hodiny div{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:10px 8px;border-bottom:2px solid #d9dadb;font-size:18px}
.hodiny dt{font-weight:600}
.hodiny dd{font:400 clamp(24px,2.4vw,32px)/1.1 var(--display);letter-spacing:.015em;text-align:right;white-space:nowrap}
.hodiny .je-dnes{background:var(--nebe-sv)}
.ko-small{margin-top:14px;font-size:16px;color:var(--seda)}
.ko-info h2{font-size:clamp(40px,4.6vw,70px)}
.ko-cislo{display:block;margin-top:18px;padding:0;background:none;border:0;text-align:left;font:400 clamp(50px,6vw,92px)/1 var(--display);letter-spacing:.01em;color:var(--ink)}
.ko-cislo:hover{color:var(--lak-t)}
.ko-pre{display:block;margin-bottom:4px;font:700 19px/1.2 var(--font);text-align:left}
.ko-fake{margin-top:8px}
.ko-akce{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}

/* konec */
.konec{background:var(--lak-d);color:#fff;padding:clamp(90px,11vw,170px) var(--pad);text-align:center}
.konec :focus-visible{outline-color:#fff}
.konec h2{font-size:clamp(56px,10vw,170px);letter-spacing:.005em}
.btn-big{margin-top:44px;min-height:72px;padding:14px 40px;font-size:24px}
.konec p{margin-top:18px;font-size:19px}
.konec p a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-underline-offset:5px}

/* patička */
.foot{background:var(--ink);color:#f1f3f4;padding:64px var(--pad) 48px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:28px 56px}
.foot :focus-visible{outline-color:var(--nebe)}
.foot-brand{font:400 34px/1 var(--display);letter-spacing:.04em;color:var(--nebe)}
.foot-adr{font-size:17px;line-height:1.6;max-width:34em}
.foot-adr p + p{margin-top:6px;color:#c4cace}
.foot-back{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:var(--nebe);text-underline-offset:4px}
.foot-nav{display:flex;flex-wrap:wrap;gap:4px 22px;align-content:start}
.foot-nav a{font-size:17px;min-height:44px;display:inline-flex;align-items:center}

/* vysvětlení ukázky */
.pop{max-width:min(27rem,calc(100vw - 2rem));max-height:calc(100dvh - 1rem);overflow-y:auto;padding:1.4rem 1.4rem 1.5rem;border:4px solid var(--ink);color:var(--ink);background:#fff}
.pop::backdrop{background:rgba(16,26,34,.66)}
.pop h2{font-size:clamp(1.7rem,6vw,2.1rem);margin:0 0 .7rem}
.pop p{margin:0 0 1.2rem}
.pop .btn{width:100%}
/* náhrada bez popover (Safari < 17): okno a ztmavení přepíná třída is-open; bez :popover-open, aby starý prohlížeč pravidlo nezahodil */
.pop-fb{display:none;position:fixed;top:50%;left:50%;z-index:100;width:27rem;max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);overflow:auto;margin:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}
.pop-fb.is-open{display:block}
.pop-shade{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:rgba(16,26,34,.66)}
.pop-shade.is-open{display:block}

/* spodní lišta na telefonu */
.callbar{display:none}

/* ---------------- telefon a tablet ---------------- */
@media (max-width:999px){
  html{scroll-padding-bottom:88px}
  .nav{display:none}
  .top{padding-top:14px}
  .top-cislo{margin-left:auto;font-size:17px;padding:8px 16px}
  .brand{font-size:27px}
  .hero-low{grid-template-columns:minmax(0,1fr);gap:0}
  .hero-text{padding-bottom:4px}
  .hero-lead{font-size:18px}
  .hero-act{margin-top:18px}
  .hero-act .btn{flex:1 1 220px}
  .hero-hory{bottom:44px;min-height:90px;height:90px}
  .hero-bus{margin:14px 0 22px}
  .hero-vuz{width:150%;max-width:none}
  .road{height:44px}
  .road::after{top:20px;height:4px}
  .oznacnik{position:static;width:auto;height:auto;margin-bottom:14px}
  .oznacnik::before{display:none}
  .oz-cedule{margin-left:0;border:0}
  .oz-znak{display:none}
  .oz-led{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 9px;padding:6px 12px 7px}
  .oz-k{font-size:14px}
  .oz-cil{margin:0;font-size:22px}
  .oz-kdy{margin:0;font-size:14px}

  .trasa-stage{padding:64px 0 48px}
  .trasa-map{aspect-ratio:auto;width:100%;display:flex;flex-direction:column}
  .trasa-head{position:static;width:auto;padding:0 var(--pad)}
  .trasa-head h2{font-size:clamp(34px,8.6vw,52px)}
  .trasa-head p{font-size:17px;margin-top:10px}
  .route-pc{display:none}
  .route-tel{display:block;position:relative;inset:auto;width:100%;max-width:520px;height:auto;margin:18px auto 0;padding:0 8px}
  .trasa-bus{left:50%;top:auto;width:58px}
  .stop-l{font-size:20px;stroke-width:5px}
  .stop-l-home{font-size:21px}
  .stop-cards{position:static;padding:0 var(--pad);margin-top:18px;display:grid;gap:12px}
  .sc,.sc-domu{position:static;width:auto}
  .sc-start{display:block;background:var(--pisek)}
  .sc-place{font-size:29px}
  .led{position:static;width:auto;margin:8px var(--pad) 0;padding:6px 12px;align-items:baseline;gap:10px}
  .ziva .led{display:flex}
  .led-k{font-size:15px}
  .led-t{margin:0;font-size:22px}

  .zajezdy{grid-template-columns:minmax(0,1fr);gap:28px}
  .zaj-pin{position:static}
  .tickets{grid-template-columns:minmax(0,1fr);gap:16px}
  .ticket{grid-template-columns:minmax(0,1fr) 136px;min-height:0}
  .ticket-main{padding:18px 16px 18px 18px}
  .ticket-stub{padding:18px 14px 18px 18px}
  .ticket-price{font-size:25px}
  .ticket-title{font-size:21px}
  .ticket-when{font-size:22px}

  .hr-head,.fl-head,.hr-grid,.sed-head,.kontakt,.poptavka{grid-template-columns:minmax(0,1fr)}
  .hr-head{gap:18px}
  .hr-head p{font-size:18px}
  .linka{grid-template-columns:minmax(0,1fr);padding-top:0;margin-top:36px}
  .linka li{height:48px}
  .linka li::before,.linka li:first-child::before,.linka li.is-end::before,.linka li.is-last::before{left:15px;right:auto;top:0;bottom:0;width:7px;height:auto}
  .linka li:first-child::before{top:24px}
  .linka li.is-end::before{bottom:24px}
  .linka li.is-first::before{left:15px;background:repeating-linear-gradient(180deg,#fff 0 9px,transparent 9px 16px)}
  .linka li::after{left:18px;top:10px}
  .linka li.is-home::after,.linka li.is-end::after{top:6px}
  .linka span{position:static;display:block;transform:none;padding:12px 0 0 54px;font-size:19px;line-height:1.3}
  .linka .is-home span,.linka .is-end span{font-size:22px;padding-top:10px}
  .hr-grid{margin-top:44px;gap:36px}
  .tarif dt{font-size:18px}
  .tarif div{flex-wrap:wrap}
  .hr-dates .btn{width:100%}

  .fl-head{margin-bottom:28px;gap:18px}
  .fl-head p{font-size:18px}
  .fl-row{grid-template-columns:minmax(0,auto) minmax(0,1fr);grid-template-areas:"num spec" "draw draw";gap:14px 22px;margin:0 -12px;padding:26px 12px}
  .fl-num{grid-area:num;font-size:clamp(84px,23vw,130px)}
  .fl-spec{grid-area:spec}
  .fl-draw{grid-area:draw}
  .fl-spec h3{font-size:20px}

  .poptavka{grid-template-areas:"left" "form" "skoly";grid-template-rows:auto;row-gap:28px}
  .pop-doporuc{margin-top:24px;min-height:0}
  .pop-skoly{margin-top:36px;padding-top:32px}

  .sed-head{gap:16px;margin-bottom:28px}
  .sed-head p{font-size:18px}
  .sed-plan{flex-direction:column;align-items:center;gap:14px;width:max-content;max-width:100%;margin:0 auto;padding:18px 16px 20px;border-radius:84px 84px 18px 18px}
  .sed-kabina{flex-direction:row;width:100%;padding:0 6px}
  .rady{flex-direction:column;gap:6px}
  .rada{flex-direction:row}
  .sed:nth-child(2){margin:0 clamp(18px,7vw,32px) 0 0}
  .sed span{width:clamp(46px,14vw,56px);height:46px;border-radius:4px 4px 16px 16px}
  .sed-pata{position:sticky;bottom:calc(72px + env(safe-area-inset-bottom));z-index:4;grid-template-columns:minmax(0,1fr);gap:0;margin:16px calc(-1 * var(--pad)) 0;padding:10px var(--pad) 12px;background:#fff;border-top:3px solid var(--ink)}
  .sed-leg{order:2;padding-top:6px;font-size:15px}
  .sed-leg li::before{width:16px;height:16px;border-width:2px}
  .sed-info{min-height:0;grid-template-columns:minmax(0,1fr) auto;gap:0 12px}
  .sed-kde{font-size:26px}
  .sed-rada{font-size:16px;line-height:1.35}
  .sed-btn{min-height:50px;padding:8px 12px;font-size:16px;max-width:9.6em;text-align:center}

  .kontakt{align-items:start}
  .ko-cislo{font-size:clamp(46px,13.5vw,70px)}
  .ko-akce .btn{flex:1 1 100%}
  .hodiny div{padding:10px 4px;gap:10px}

  .btn-big{width:100%;font-size:21px;padding:12px 16px}
  .foot{grid-template-columns:minmax(0,1fr);padding-bottom:110px}

  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--ink);transform:translateY(120%);transition:transform .24s ease}
  .callbar.is-on,.callbar:focus-within{transform:none}
  .callbar button,.callbar a{display:flex;align-items:center;justify-content:center;min-height:52px;padding:8px 14px;font-weight:800;font-size:18px;text-decoration:none}
  .cb-call{flex:1 1 auto;background:var(--nebe);color:var(--ink);border:0}
  .cb-zaj{flex:0 0 auto;padding:8px 18px;color:#fff;border:3px solid #f1f3f4}
  .callbar :focus-visible{outline-color:var(--nebe);outline-offset:-6px}
}
@media (max-width:999px){
  .ziva .trasa-stage{padding:14px 0 0;display:block}
  .ziva .trasa-map{width:100%;height:100%;display:flex;flex-direction:column}
  .ziva .trasa-head h2{font-size:clamp(28px,7.4vw,44px)}
  .ziva .trasa-head p{font-size:16px;margin-top:6px}
  .ziva .route-tel{flex:1 1 auto;min-height:0;width:100%;margin-top:6px}
  .ziva .stop-cards{position:relative;flex:0 0 auto;height:176px;margin:0 0 calc(12px + env(safe-area-inset-bottom));padding:0}
  .ziva .sc{position:absolute;left:var(--pad);right:var(--pad);top:auto;bottom:0;width:auto;transform:translateY(18px)}
  .ziva .sc.is-on{opacity:0;visibility:hidden;transform:translateY(18px)}
  .ziva .sc.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .4s ease,transform .4s ease,visibility 0s}
  .ziva .sc-domu .btn{min-height:50px;margin-top:10px}
}
@media (max-width:999px) and (max-height:759px){
  .ziva .trasa-head p{display:none}
}
@media (max-width:999px) and (max-height:620px){
  .ziva .stop-cards{height:152px}
  .ziva .sc{padding:12px 16px 14px}
  .ziva .sc-place{font-size:26px}
  .ziva .sc-trip,.ziva .sc-when{font-size:16px;margin-top:4px}
  .ziva .sc-price{font-size:23px;margin-top:4px}
  .ziva .led{margin-top:4px;padding:3px 10px}
}
@media (min-width:600px) and (max-width:999px){
  .hero-vuz{width:112%}
  .trasa-bus{width:76px}
  .tickets{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ticket{grid-template-columns:minmax(0,1fr)}
  .ticket-stub{padding:18px 20px;background:linear-gradient(90deg,var(--pisek) 55%,transparent 0) 0 0/13px 3px repeat-x,var(--nebe);flex-direction:row;align-items:flex-end}
  .ticket-stub::before,.ticket-stub::after{display:none}
  .ticket-call{width:auto;padding:0}
}
@media (max-width:420px){
  .hero h1{font-size:clamp(44px,13.4vw,62px);line-height:1.05}
  .hero-act .btn{flex:1 1 100%}
}
/* FORMA-POLISH (generuje vizitka/tools/ukazky-polish.py) */
::selection{background:#101a22;color:#ffffff}
:where(html){scrollbar-color:#101a22 #6fc8f3}
:where(input,textarea){caret-color:#101a22}
:where(a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible){outline:3px solid #101a22;outline-offset:3px}
:where(a){text-underline-offset:.2em}
:where(table,dd,time,data,[class*=cen],[class*=price],[class*=hod],[class*=hours],[class*=doba],[class*=kc]){font-variant-numeric:tabular-nums}
/* /FORMA-POLISH */
