:root{--blue:#3763f6;--ink:#253750;--muted:#627a98;--line:#d8e5f7;--pale:#eff5ff;--paper:#fff}
*{box-sizing:border-box}
body{margin:0;background:#f8fbff;color:var(--ink);font-family:Montserrat,Arial,sans-serif}
a{color:var(--blue)}
.site-header{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:5}
.brand img{display:block;width:112px;height:64px;object-fit:contain}
.site-nav{display:flex;align-items:center;gap:24px;font-weight:800}
.site-nav a{text-decoration:none;color:var(--ink)}
.site-nav a:hover{color:var(--blue)}
main{max-width:1180px;margin:auto;padding:48px 22px 82px}
.eyebrow{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:var(--blue)}
h1{font-size:clamp(2.3rem,6vw,4.35rem);line-height:1.03;letter-spacing:-.045em;margin:12px 0}
.intro{max-width:740px;color:var(--muted);font-size:1.08rem;line-height:1.7}
.tools{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 16px}
.tools input,.tools select{font:inherit;border:1px solid var(--line);border-radius:13px;padding:14px 16px;background:#fff;color:var(--ink)}
.tools input{min-width:240px;flex:1}
.tools #article-mountain,.tools #article-locality{min-width:210px;max-width:100%}
.count{color:var(--muted);font-size:.94rem}
.article-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.article-card{background:#fff;border:1px solid var(--line);border-radius:19px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .16s,border-color .16s}
.article-card:hover{transform:translateY(-3px);border-color:#9ebcff}
.article-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--pale)}
.article-card-copy{padding:19px;display:flex;flex-direction:column;gap:10px;flex:1}
.article-card time,.article-meta{color:var(--muted);font-size:.86rem;font-weight:700}
.article-card h2{font-size:1.08rem;line-height:1.4;margin:0}
.article-card p{color:var(--muted);font-size:.93rem;line-height:1.55;margin:0}
.read-link{margin-top:auto;padding-top:6px;font-weight:900;color:var(--blue)}
.article-crumb{font-size:.9rem;font-weight:800;color:var(--muted);margin-bottom:19px}
.article-crumb a{text-decoration:none}
.article-back{display:inline-flex;align-items:center;min-height:42px;margin:-5px 0 24px;padding:9px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--blue);font-size:.9rem;font-weight:800;text-decoration:none;transition:background .15s,border-color .15s}
.article-back:hover{background:var(--pale);border-color:#a9c4ff}
.article-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.85fr);gap:36px;align-items:center;background:var(--pale);border:1px solid var(--line);border-radius:24px;padding:26px;margin-bottom:32px}
.article-hero h1{font-size:clamp(2.1rem,4.5vw,3.7rem)}
.article-cover{width:100%;max-height:400px;aspect-ratio:16/10;object-fit:cover;border-radius:17px;background:#dbe8f8}
.article-shell{max-width:820px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:23px;padding:clamp(22px,5vw,52px);box-shadow:0 12px 44px #243d5c0b}
.article-body{font-size:1rem;line-height:1.78;color:#354c68;overflow-wrap:anywhere}
.article-body [data-breakout]{max-width:100%;margin-inline:auto}
.article-body [data-ricos-paragraph]{font-family:inherit!important;font-size:1rem!important;line-height:1.8!important;margin:0 0 1rem!important;color:inherit!important}
.article-body h2,.article-body h3,.article-body h4{color:var(--ink);line-height:1.25;margin:2rem 0 .85rem}
.article-body h2{font-size:1.65rem}.article-body h3{font-size:1.25rem}
.article-body p{margin:.8rem 0}.article-body ul,.article-body ol{padding-left:1.5rem;margin:1rem 0}
.article-body li{padding-left:.2rem;margin:.45rem 0}
.article-body img{display:block;max-width:100%;width:auto;height:auto;max-height:660px;object-fit:contain;border-radius:13px;margin:22px auto}
.article-body figure{max-width:100%;margin:22px auto}.article-body figcaption{color:var(--muted);font-size:.9rem;text-align:center}
.article-body figure.article-map{margin:24px 0 30px;padding:10px;background:var(--pale);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.article-body figure.article-map iframe{display:block;width:100%;height:clamp(300px,56vw,460px);border:0;border-radius:11px;background:var(--paper)}
.article-body figure.article-map figcaption{padding:10px 4px 2px;font-size:.82rem}
.article-body figure.article-map figcaption a{color:var(--blue);font-weight:800;text-decoration:none}
.article-body blockquote{border-left:4px solid var(--blue);padding:.4rem 1rem;color:var(--muted);margin:1.5rem 0}
.article-body table{width:100%;border-collapse:collapse;display:block;overflow:auto}
.article-body th,.article-body td{border:1px solid var(--line);padding:9px;text-align:left}
.article-body a{font-weight:600}
.article-end{border-top:1px solid var(--line);margin-top:32px;padding-top:22px}
.button-link{display:inline-flex;align-items:center;gap:8px;border-radius:12px;padding:13px 17px;background:var(--blue);color:#fff;text-decoration:none;font-weight:900}
.site-footer{padding:27px max(20px,calc((100vw - 1180px)/2));border-top:1px solid var(--line);background:#eaf3ff;color:var(--muted)}
@media(max-width:900px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-hero{grid-template-columns:1fr;gap:20px}.article-cover{max-height:310px}}
@media(max-width:620px){.site-header{height:70px;padding-inline:15px}.brand img{width:96px;height:54px}.site-nav{gap:13px;font-size:.82rem}.site-nav a:nth-child(n+3){display:none}main{padding:32px 15px 56px}.article-grid{grid-template-columns:1fr}.tools{display:grid;grid-template-columns:1fr}.tools input,.tools select{width:100%}.article-hero{padding:18px;border-radius:19px}.article-shell{padding:22px 18px;border-radius:20px}}

/* Compact, readable long-form layout shared by every article. */
.blog-national-header{position:relative;}
.article-shell{max-width:780px;padding:clamp(24px,5vw,56px);}
.article-body{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:17px;line-height:1.68;letter-spacing:0;color:#354c68;}
.article-body [data-ricos-paragraph]{font-family:inherit!important;font-size:1em!important;line-height:1.68!important;margin:0 0 .85em!important;color:inherit!important;}
.article-body h2,.article-body h3,.article-body h4{font-family:inherit;letter-spacing:-.025em;line-height:1.28;scroll-margin-top:100px;}
.article-body h2{font-size:clamp(1.35rem,2.6vw,1.7rem);margin:1.65em 0 .55em;}
.article-body h3{font-size:clamp(1.15rem,2.2vw,1.35rem);margin:1.45em 0 .5em;}
.article-body ul,.article-body ol{padding-left:1.35rem;margin:.7em 0 1em;}
.article-body li{padding-left:.2rem;margin:.35em 0;}
.article-body [data-hook="html-component"]:empty{display:none!important;}
.article-body ._0vncC:has([data-hook="html-component"]:empty){display:none!important;}
.article-body p:has(>span:only-child > br:only-child){display:none!important;}
.article-body a:not(.button-link){text-underline-offset:3px;text-decoration-thickness:1px;}
.article-body img{border-radius:12px;}
.parking-map-cta{margin:1rem 0 1.4rem!important;}
.parking-map-cta .button-link{font-size:.92rem;box-shadow:0 4px 14px #315fec20;}
.parking-map-button{display:inline-flex;align-items:center;gap:11px;min-height:48px;padding:7px 15px 7px 8px;border:1px solid #cbdcff;border-radius:14px;background:#f4f7ff;color:var(--blue);font-size:.94rem;font-weight:800;text-decoration:none;transition:background .15s,border-color .15s,transform .15s}
.parking-map-button:hover{background:#eaf0ff;border-color:#9bb8ff;transform:translateY(-1px)}
.parking-map-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#e3ebff;color:#315fec;font-size:1rem;font-weight:900;line-height:1}
.parking-map-arrow{font-size:1.15em;line-height:1}
.article-meta{line-height:1.5;}
@media(max-width:620px){.article-shell{padding:24px 20px}.article-body{font-size:16px;line-height:1.65}.article-body [data-ricos-paragraph]{font-size:1em!important;line-height:1.65!important}.parking-map-cta .button-link{max-width:100%;white-space:normal}}

/* Rebuilt Wix photo galleries: one clear hero image, a thumbnail rail and an accessible lightbox. */
.article-gallery{margin:1.7rem 0 2rem;padding:10px;background:#f1f6ff;border:1px solid var(--line);border-radius:18px;}
.article-gallery-stage{position:relative;overflow:hidden;border-radius:12px;background:#e8eef7;}
.article-gallery-open{display:block;width:100%;height:clamp(260px,52vw,580px);padding:0;border:0;background:transparent;cursor:zoom-in;}
.article-gallery-image{display:block;width:100%;height:100%;object-fit:contain;background:#e8eef7;}
.article-gallery-controls{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:999px;background:#fffF;color:#253750;box-shadow:0 3px 15px #20385622;}
.article-gallery-arrow{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#edf3ff;color:#315fec;font:700 28px/1 Montserrat,Arial,sans-serif;cursor:pointer;}
.article-gallery-arrow:hover{background:#dfe9ff;}
.article-gallery-count{min-width:45px;text-align:center;font-size:12px;font-weight:800;}
.article-gallery-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:10px 1px 2px;scrollbar-width:thin;}
.article-gallery-thumb{flex:0 0 82px;width:82px;height:62px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:9px;background:#e5edf8;cursor:pointer;}
.article-gallery-thumb img{display:block;width:100%;height:100%;object-fit:cover;margin:0;border-radius:0;}
.article-gallery-thumb.is-active{border-color:#365fff;box-shadow:0 0 0 2px #365fff28;}
.article-gallery-dialog{width:min(1000px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);padding:12px;border:1px solid #d8e5f7;border-radius:18px;background:#fff;box-shadow:0 24px 90px #101e3480;}
.article-gallery-dialog::backdrop{background:#111d30cc;backdrop-filter:blur(3px);}
.article-gallery-dialog-content{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto auto;gap:10px;max-height:calc(100dvh - 52px);}
.article-gallery-dialog-image{display:block;min-height:0;width:100%;height:min(72dvh,720px);object-fit:contain;border-radius:11px;background:#edf2f8;}
.article-gallery-close{position:absolute;z-index:1;top:10px;right:10px;width:42px;height:42px;border:1px solid #d8e5f7;border-radius:50%;background:#fff;color:#253750;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 3px 14px #101e3420;}
.article-gallery-dialog-controls{display:flex;justify-content:center;align-items:center;gap:12px;}
.article-gallery-thumbnails-dialog{justify-content:center;}
.article-gallery-open:focus-visible,.article-gallery-thumb:focus-visible,.article-gallery-arrow:focus-visible,.article-gallery-close:focus-visible{outline:3px solid #365fff;outline-offset:2px;}
@media(max-width:620px){.article-gallery{padding:7px;border-radius:14px}.article-gallery-open{height:clamp(230px,68vw,390px)}.article-gallery-thumb{flex-basis:68px;width:68px;height:52px}.article-gallery-dialog{padding:8px;border-radius:13px}.article-gallery-dialog-image{height:min(68dvh,600px)}.article-gallery-thumbnails-dialog{justify-content:flex-start}}
.article-body .article-gallery-image{width:100%;height:100%;max-width:100%;max-height:none;object-fit:contain;margin:0;border-radius:0;}
.article-gallery-thumb img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;margin:0;border-radius:0;}

/* Responsive downloadable timetable links in the Šumava skibus article. */
.skibus-pdf-list{display:flex;flex-wrap:wrap;gap:10px;margin:1rem 0 1.2rem}
.skibus-pdf-list .button-link{font-size:.9rem;line-height:1.35}
@media(max-width:620px){.skibus-pdf-list .button-link{max-width:100%;white-space:normal}}

/* Jizerské hory parking guide */
.parking-lead{font-size:1.12rem;color:var(--ink);font-weight:600}
.parking-map-overview{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:center;margin:26px 0;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--pale)}
.parking-map-overview h2{margin:.45rem 0;font-size:1.35rem}
.parking-overview-actions{display:grid;gap:10px}
.parking-overview-actions .button-link{justify-content:center;text-align:center}
.button-link-secondary{background:#fff;color:var(--blue);border:1px solid var(--line)}
.parking-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 30px}
.parking-card{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:17px;padding:18px;background:#fff;box-shadow:0 5px 20px #243d5c08}
.parking-card-top{width:100%;display:flex;align-items:center;justify-content:space-between}
.parking-card h3{margin:12px 0 2px!important;font-size:1.08rem!important}
.parking-card p{margin:6px 0 15px;line-height:1.55;flex:1}
.parking-capacity{padding:6px 10px;border-radius:999px;background:#edf3ff;color:#3153a8;font-size:.83rem;font-weight:800;white-space:nowrap}
.parking-card .parking-map-button{margin-top:auto}
.parking-advice,.parking-warning{margin:24px 0;padding:20px 22px;border-radius:17px;background:#eff5ff;border:1px solid var(--line)}
.parking-advice h3{margin:0 0 8px!important}
.parking-advice ol{margin-bottom:0}
.parking-warning{background:#fff8e8;border-color:#f1dfb4;color:#634d23}
.parking-sources{padding-left:1.2rem!important}
.parking-updated{font-size:.85rem;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}
@media(max-width:620px){.parking-map-overview{grid-template-columns:1fr;padding:18px}.parking-card-grid{grid-template-columns:1fr;gap:11px}.parking-card{padding:16px}.parking-card .parking-map-button{width:100%;justify-content:center}.parking-overview-actions .button-link{width:100%;white-space:normal}}

/* Minimal parking occupancy cards sourced from the public ITS Jizerské hory overview. */
.jiz-parking-live{margin:20px 0;padding:20px;border:1px solid #d7e5f8;border-radius:20px;background:#f8fbff}.jiz-parking-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.jiz-parking-heading h2,.jiz-parking-heading h4{margin:4px 0 0;color:#253750}.jiz-parking-heading>a{flex:none;color:#3763f6;font-size:13px;font-weight:800;text-decoration:none}.jiz-parking-intro{max-width:850px;color:#607895;font-size:14px;line-height:1.6}.jiz-parking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.jiz-parking-card{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:13px;border:1px solid #dbe6f5;border-radius:15px;background:#fff;color:#263853;text-decoration:none;transition:border-color .15s,transform .15s}.jiz-parking-card:hover{transform:translateY(-1px);border-color:#9bb9f8}.jiz-parking-card-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#f1f5fc}.jiz-parking-card-icon img{width:19px;height:19px}.jiz-parking-card-copy{display:grid;gap:5px;min-width:0;flex:1}.jiz-parking-card-copy>strong{font-size:14px;line-height:1.35}.jiz-parking-card-count{font-size:13px;color:#607895}.jiz-parking-card-count b{font-size:20px;color:#253750}.jiz-parking-card-count span{color:#607895}.jiz-parking-card small{font-size:11px;color:#607895}.jiz-parking-bar{display:block;height:7px;border-radius:99px;background:#edf1f7;overflow:hidden}.jiz-parking-bar i{display:block;height:100%;border-radius:inherit;background:#239b72}.jiz-parking-card.orange .jiz-parking-bar i{background:#e49a24}.jiz-parking-card.red .jiz-parking-bar i{background:#d84b55}.jiz-parking-card.orange .jiz-parking-card-count b{color:#b8780b}.jiz-parking-card.red .jiz-parking-card-count b{color:#c83e4a}.jiz-parking-stamp{margin:12px 0 0;color:#7185a1;font-size:11px;line-height:1.5}.article-parking-live{margin:24px 0;padding:22px}.article-parking-live .jiz-parking-heading h2{font-size:clamp(20px,3vw,27px)}.article-parking-live .jiz-parking-card{padding:16px}.article-parking-live .jiz-parking-card-copy>strong{font-size:15px}.article-parking-live .jiz-parking-card-count{font-size:14px}.article-parking-live .jiz-parking-card-count b{font-size:23px}@media(max-width:620px){.jiz-parking-live{padding:15px;border-radius:16px}.jiz-parking-heading{display:grid;gap:8px}.jiz-parking-grid{grid-template-columns:1fr}.article-parking-live .jiz-parking-card{padding:13px}}

.jiz-parking-legend{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0;color:#607895;font-size:11px}.jiz-parking-legend span{display:inline-flex;align-items:center;gap:5px}.jiz-parking-legend i{display:block;width:8px;height:8px;border-radius:50%;background:#239b72}.jiz-parking-legend i.orange{background:#e49a24}.jiz-parking-legend i.red{background:#d84b55}

.jiz-parking-source{display:block;margin:0 0 6px;color:#8a9ab0;font-size:10px;font-weight:500;line-height:1.4;letter-spacing:.01em}.jiz-parking-source a{color:#7488a4;text-decoration:underline;text-underline-offset:2px}.jiz-parking-map-link{display:inline-block;margin-top:3px;color:#3763f6;font-size:11px;font-weight:800}.jiz-parking-card:hover .jiz-parking-map-link{text-decoration:underline;text-underline-offset:2px}

/* Skibus route diagrams */
.skibus-diagram{margin:18px 0 24px;padding:18px;border:1px solid #d6e4f8;border-radius:18px;background:#f5f9ff;color:#263853}.skibus-diagram-title{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.skibus-diagram-title strong{font-size:17px;color:#243653}.skibus-diagram-title>span,.skibus-diagram-note{color:#7186a4;font-size:12px;line-height:1.55}.skibus-route{padding:13px 0;border-top:1px solid #dce7f6}.skibus-route-label{display:block;margin-bottom:10px;color:#3865f6;font-size:12px;letter-spacing:.04em}.skibus-stops{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.skibus-stops>span{display:inline-flex;align-items:center;min-height:36px;padding:7px 10px;border:1px solid #d7e4f6;border-radius:10px;background:#fff;color:#334a68;font-size:13px;font-weight:700;line-height:1.3}.skibus-stops>span small{font-size:10px;color:#7186a4;font-weight:600}.skibus-stops>span.skibus-stop-main{border-color:#9db8ff;background:#eaf0ff;color:#2e59d7}.skibus-stops>span.skibus-stop-end{border-color:#9ad8cc;background:#e9f8f5;color:#187b6b}.skibus-stops>i{width:18px;height:2px;background:#8cb4fb;position:relative;flex:none}.skibus-stops>i:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:2px solid #8cb4fb;border-right:2px solid #8cb4fb;transform:rotate(45deg)}.skibus-route p{margin:9px 0 0;color:#647a98;font-size:13px;line-height:1.5}.skibus-return{margin:4px 0 10px;color:#526a8a;font-size:13px}.skibus-diagram-actions{margin:10px 0}.skibus-diagram-note{display:block;margin-top:8px}.skibus-diagram-ruda .skibus-stops{gap:5px}.skibus-diagram-ruda .skibus-stops>span{font-size:11px;padding:6px 7px}.skibus-diagram-ruda .skibus-stops>i{width:10px}@media(max-width:680px){.skibus-diagram{padding:14px;border-radius:15px}.skibus-stops{gap:6px}.skibus-stops>span{font-size:12px}.skibus-diagram-ruda .skibus-stops{align-items:stretch}.skibus-diagram-ruda .skibus-stops>span{flex:1 1 38%;font-size:12px}.skibus-diagram-ruda .skibus-stops>i{display:none}}

/* Compact parking availability, integrated with the start-point rows. */
.parking-source-inline{display:block;margin:-5px 0 10px;color:#8797ab;font-size:10px;line-height:1.4}.parking-availability-inline{display:inline-flex;align-items:center;gap:5px;margin:2px 0;color:#617894;font-size:12px;line-height:1.35;white-space:nowrap}.parking-availability-inline i,.jiz-parking-compact-row>i{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#239b72}.parking-availability-inline.orange i,.jiz-parking-compact-row.orange>i{background:#e49a24}.parking-availability-inline.red i,.jiz-parking-compact-row.red>i{background:#d84b55}.parking-availability-inline b{color:#273b57;font-size:13px}.jiz-parking-compact-list{display:grid;gap:5px;margin:12px 0}.jiz-parking-compact-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto auto;align-items:center;gap:9px;padding:9px 11px;border:1px solid #dce7f5;border-radius:11px;background:#fff;color:#405976;text-decoration:none}.jiz-parking-compact-row>strong{min-width:0;font-size:13px;font-weight:700}.jiz-parking-compact-row>span{font-size:12px;white-space:nowrap}.jiz-parking-compact-row>span b{color:#243853;font-size:15px}.jiz-parking-compact-row.orange>span b{color:#b97912}.jiz-parking-compact-row.red>span b{color:#c53e4a}.jiz-parking-compact-row>small{color:#3763f6;font-size:11px;font-weight:700;white-space:nowrap}.jiz-parking-compact-row:hover{border-color:#a9c1f8;background:#fbfdff}@media(max-width:620px){.jiz-parking-compact-row{grid-template-columns:9px minmax(0,1fr) auto;gap:7px;padding:9px}.jiz-parking-compact-row>small{grid-column:2/-1;margin-top:-4px}.jiz-parking-compact-row>strong{font-size:12px}.jiz-parking-compact-row>span{font-size:11px}.parking-availability-inline{font-size:11px}}
.skibus-official-map{margin:18px 0 24px;padding:14px;border:1px solid #d6e4f8;border-radius:18px;background:#f5f9ff}.skibus-official-map>a{display:block;overflow:hidden;border-radius:12px;background:#fff}.skibus-official-map img{display:block;width:100%;height:auto;max-height:900px;object-fit:contain;margin:0 auto}.skibus-official-map figcaption{display:grid;grid-template-columns:1fr auto;gap:5px 14px;padding:12px 2px 0;color:#526a8a;font-size:13px;line-height:1.5}.skibus-official-map figcaption>span{font-weight:800;color:#263853}.skibus-official-map figcaption>a{color:#365fff;font-weight:800;text-decoration:underline;text-underline-offset:3px}.skibus-official-map figcaption small{grid-column:1/-1;color:#7186a4;font-size:11px}@media(max-width:680px){.skibus-official-map{padding:9px;border-radius:14px}.skibus-official-map>a{border-radius:9px}.skibus-official-map figcaption{grid-template-columns:1fr;gap:4px}.skibus-official-map figcaption small{grid-column:auto}}

/* Live Jizera parking dashboard, styled in the VeStope card system. */
.article-parking-live{padding:24px;border-radius:22px}.jiz-parking-live-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.jiz-parking-live-head h2{margin:4px 0 0;color:#253750;font-size:clamp(21px,3vw,30px)}.jiz-parking-live-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #d9e6f8;border-radius:999px;background:#fff;color:#6a7e99;font-size:10px;font-weight:900;letter-spacing:.08em;white-space:nowrap}.jiz-parking-live-badge i,.jiz-parking-live-row-top i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#94a4ba}.jiz-parking-live-badge.ready i{background:#239b72;box-shadow:0 0 0 4px #e3f5ed}.jiz-parking-live-badge.loading i,.jiz-parking-live-badge.refreshing i{background:#e49a24}.jiz-parking-live-intro{margin:12px 0 17px;color:#607895;font-size:14px;line-height:1.6}.jiz-parking-live-intro strong{color:#263853}.jiz-parking-dashboard{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.7fr);gap:15px;align-items:stretch}.jiz-parking-total{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:270px;padding:20px 14px;border:1px solid #dbe6f5;border-radius:18px;background:#fff;text-align:center}.jiz-parking-donut{display:grid;place-items:center;width:164px;height:164px;border-radius:50%;background:conic-gradient(#3763f6 0 var(--free-share,0%),#e8eef7 var(--free-share,0%) 100%);position:relative}.jiz-parking-donut:before{content:"";position:absolute;inset:16px;border-radius:50%;background:#fff}.jiz-parking-donut>div{position:relative;z-index:1;display:grid;gap:2px}.jiz-parking-donut b{color:#243853;font-size:35px;line-height:1}.jiz-parking-donut span{color:#6d829f;font-size:12px}.jiz-parking-total>strong{color:#334c70;font-size:13px}.jiz-parking-total>small{color:#8293aa;font-size:11px}.jiz-parking-live-list{display:grid;gap:8px}.jiz-parking-live-row{padding:10px 12px;border:1px solid #dbe6f5;border-radius:13px;background:#fff}.jiz-parking-live-row-top,.jiz-parking-live-row-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.jiz-parking-live-name{display:flex;align-items:center;gap:8px;min-width:0;color:#344e73}.jiz-parking-live-row.green .jiz-parking-live-name i{background:#239b72}.jiz-parking-live-row.orange .jiz-parking-live-name i{background:#e49a24}.jiz-parking-live-row.red .jiz-parking-live-name i{background:#d84b55}.jiz-parking-live-name strong{font-size:13px;line-height:1.35}.jiz-parking-live-count{color:#263853;font-size:12px;font-weight:700;white-space:nowrap}.jiz-parking-live-count b{font-size:16px}.jiz-parking-live-count span{color:#7488a4;font-weight:500}.jiz-parking-live-bar{height:6px;margin:7px 0 5px;overflow:hidden;border-radius:99px;background:#edf1f7}.jiz-parking-live-bar i{display:block;height:100%;border-radius:inherit;background:#239b72}.jiz-parking-live-row.orange .jiz-parking-live-bar i{background:#e49a24}.jiz-parking-live-row.red .jiz-parking-live-bar i{background:#d84b55}.jiz-parking-live-row-bottom small{color:#8293aa;font-size:10px}.jiz-parking-live-row-bottom a{color:#3763f6;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}.jiz-parking-live-row-bottom a:hover{text-decoration:underline;text-underline-offset:2px}.jiz-parking-legend{display:flex;flex-wrap:wrap;gap:13px;margin:13px 0 0;color:#647b99;font-size:11px}.jiz-parking-legend span{display:inline-flex;align-items:center;gap:6px}.jiz-parking-legend i{width:8px;height:8px;border-radius:50%;background:#239b72}.jiz-parking-legend i.orange{background:#e49a24}.jiz-parking-legend i.red{background:#d84b55}.jiz-parking-live-message{grid-column:1/-1;padding:16px;border:1px dashed #cbdaf0;border-radius:12px;background:#fff;color:#6d829f;font-size:13px;line-height:1.5}.article-parking-live .jiz-parking-stamp{margin-top:12px}@media(max-width:700px){.article-parking-live{padding:16px;border-radius:17px}.jiz-parking-dashboard{grid-template-columns:1fr}.jiz-parking-total{min-height:0;padding:16px}.jiz-parking-donut{width:136px;height:136px}.jiz-parking-donut:before{inset:13px}.jiz-parking-live-list{gap:7px}}@media(max-width:430px){.jiz-parking-live-row{padding:9px}.jiz-parking-live-row-top{align-items:flex-start;flex-direction:column;gap:5px}.jiz-parking-live-count{align-self:flex-end;margin-top:-26px}.jiz-parking-live-name strong{font-size:12px}}
.parking-availability-inline.parking-loading{font-size:10px;color:#8797ab}
.parking-live-card-count{display:flex;align-items:center;gap:7px;margin-top:9px;color:#5f7694;font-size:12px;line-height:1.35}.parking-live-card-count i{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:#239b72}.parking-live-card-count.orange i{background:#e49a24}.parking-live-card-count.red i{background:#d84b55}.parking-live-card-count strong{color:#273b59;font-size:13px}.parking-live-card-count.orange strong{color:#ad6b0b}.parking-live-card-count.red strong{color:#bd3f49}

/* Article: each parking site gets its own status card; no combined occupancy total. */
.article-parking-live .jiz-parking-live-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.article-parking-live .jiz-parking-live-row{padding:14px}
.jiz-parking-live-row.unknown .jiz-parking-live-name i{background:#94a4ba}
.jiz-parking-live-row.unknown .jiz-parking-live-bar{background:#f1f4f8}
.jiz-parking-live-row.unknown .jiz-parking-live-bar i{background:#94a4ba}
.jiz-parking-live-unavailable{color:#7185a1;font-size:12px;font-weight:600;white-space:normal}
.jiz-parking-legend i.gray{background:#94a4ba}
@media(max-width:700px){.article-parking-live .jiz-parking-live-list{grid-template-columns:1fr}}
@media(max-width:430px){.article-parking-live .jiz-parking-live-row-top{display:grid;grid-template-columns:1fr;align-items:start}.article-parking-live .jiz-parking-live-unavailable{align-self:start;margin:0}}

/* Keep live parking names and availability legible on narrow screens. */
.jiz-parking-live-row-bottom a.jiz-parking-map-button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #d5e2fb;border-radius:13px;background:#f5f8ff;text-decoration:none}
.jiz-parking-live-row-bottom a.jiz-parking-map-button:hover{border-color:#9db8f7;background:#edf3ff}
.jiz-parking-map-button img{display:block;width:25px;height:25px;object-fit:contain}
@media(max-width:620px){.jiz-parking-live-row-top{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:6px}.jiz-parking-live-name{min-width:0}.jiz-parking-live-name strong{overflow-wrap:anywhere}.jiz-parking-live-count{align-self:start;margin:0;white-space:normal}.jiz-parking-live-row-bottom{align-items:center}.jiz-parking-live-row-bottom small{font-size:11px}}

.parking-live-jump{margin:16px 0 24px}
.parking-live-jump .button-link{display:inline-flex;align-items:center;gap:10px;min-height:48px;box-shadow:0 4px 14px #315fec20}
.parking-live-jump .button-link img{width:22px;height:22px;object-fit:contain;filter:brightness(0) invert(1)}
#article-live-parking{scroll-margin-top:24px}
@media(max-width:620px){.parking-live-jump{margin:14px 0 20px}.parking-live-jump .button-link{width:100%;justify-content:center;text-align:center;white-space:normal}}

/* Reset article image spacing inside the parking map icon button. */
.article-body .jiz-parking-live-row-bottom a.jiz-parking-map-button{box-sizing:border-box;overflow:hidden}
.article-body .jiz-parking-live-row-bottom a.jiz-parking-map-button img{display:block;width:23px;height:23px;max-width:23px;max-height:23px;margin:0;border:0;border-radius:0;object-fit:contain}

/* Mobile layout for the live parking heading: title and source get full width. */
@media(max-width:620px){
  .article-parking-live .jiz-parking-live-head{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:10px}
  .article-parking-live .jiz-parking-live-head>div{min-width:0;width:100%}
  .article-parking-live .jiz-parking-live-head h2{max-width:100%;margin:5px 0 0;font-size:clamp(22px,6vw,28px);line-height:1.18;word-break:normal;overflow-wrap:normal}
  .article-parking-live .jiz-parking-source{max-width:100%;overflow-wrap:anywhere}
  .article-parking-live .jiz-parking-source a{overflow-wrap:anywhere}
  .article-parking-live .jiz-parking-live-badge{justify-self:start;white-space:nowrap}
}
