/* Česká zima / Czech Winter – winter palette on top of Bootstrap 5.3.3 */
:root {
  --cz-navy: #1f3a5f;
  --cz-navy-d: #152b47;
  --cz-ice: #4a7fb5;
  --cz-ice-d: #36679a;
  --cz-ice-l: #e9f1f9;
  --cz-snow: #f6f9fc;
  --cz-ink: #1b2533;
  --cz-muted: #55657a;
  --cz-line: #d9e3ee;
  --cz-focus: #ffbf47;
  --cz-radius: 12px;
  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
  --bs-body-color: var(--cz-ink);
  --bs-body-bg: var(--cz-snow);
  --bs-body-line-height: 1.6;
  --bs-link-color-rgb: 31, 58, 95;
  --bs-link-hover-color-rgb: 21, 43, 71;
  --bs-border-radius: .5rem;
}

body { background: var(--cz-snow); color: var(--cz-ink); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { text-underline-offset: .15em; }
:focus-visible { outline: 3px solid var(--cz-focus) !important; outline-offset: 2px; box-shadow: none !important; }
main:focus { outline: none; }
.bi { display: inline-block; min-width: 1em; }
img { max-width: 100%; }

/* skip link */
.cz-skip { position: absolute; left: .75rem; top: .5rem; z-index: 2000; background: #fff; color: var(--cz-navy); padding: .5rem 1rem; border-radius: .5rem; font-weight: 600; }

/* header */
.cz-header { background: var(--cz-navy); box-shadow: 0 2px 10px rgba(10, 25, 45, .25); }
.cz-header .navbar { padding-top: .45rem; padding-bottom: .45rem; }
.cz-header .navbar-brand { padding: 0; margin-right: .75rem; }
.cz-logo { display: block; width: auto; height: 40px; border-radius: 6px; }
.cz-header .nav-link { color: rgba(255, 255, 255, .88); font-weight: 500; padding: .7rem .75rem; border-radius: .4rem; }
.cz-header .nav-link:hover, .cz-header .nav-link:focus { color: #fff; background: rgba(255, 255, 255, .08); }
.cz-header .nav-link.active { color: #fff; box-shadow: inset 0 -3px 0 var(--cz-ice); }
.cz-header .navbar-toggler { border-color: rgba(255, 255, 255, .45); padding: .4rem .6rem; }
.cz-header .dropdown-menu { border: 0; box-shadow: 0 10px 30px rgba(10, 25, 45, .2); border-radius: .6rem; padding: .4rem; }
.cz-header .dropdown-item { border-radius: .35rem; padding: .5rem .75rem; color: var(--cz-ink); }
.cz-header .dropdown-item:hover, .cz-header .dropdown-item:focus { background: var(--cz-ice-l); color: var(--cz-navy); }
.cz-lang { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 40px; color: #fff; font-weight: 700; font-size: .85rem; letter-spacing: .04em; border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; text-decoration: none; }
.cz-lang:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.cz-lang-lg { white-space: nowrap; }
@media (min-width: 992px) {
  .cz-logo { height: 46px; }
  .cz-header .nav-link { padding: .55rem .7rem; }
  .cz-header .dropdown-menu { columns: 1; min-width: 16rem; }
}
@media (max-width: 991.98px) {
  .cz-header .navbar-collapse { padding: .5rem 0 .75rem; max-height: calc(100vh - 60px); overflow-y: auto; }
  .cz-header .nav-link { min-height: 44px; display: flex; align-items: center; }
  .cz-header .dropdown-menu { background: var(--cz-navy-d); box-shadow: none; }
  .cz-header .dropdown-item { color: rgba(255, 255, 255, .9); min-height: 40px; display: flex; align-items: center; }
  .cz-header .dropdown-item:hover, .cz-header .dropdown-item:focus { background: rgba(255, 255, 255, .1); color: #fff; }
  .cz-header .dropdown-divider { border-color: rgba(255, 255, 255, .2); }
}

/* breadcrumb */
.cz-crumbs { background: #fff; border-bottom: 1px solid var(--cz-line); font-size: .875rem; padding: .55rem 0; }
.cz-crumbs .breadcrumb { flex-wrap: wrap; }
.cz-crumbs .breadcrumb-item a { color: var(--cz-ice-d); }
.cz-crumbs .breadcrumb-item.active { color: var(--cz-muted); }

/* hero */
.cz-hero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--cz-navy); }
.cz-hero::before { content: ""; position: absolute; inset: -24px; z-index: -2; background: url(img/pohori/krkonose.jpg) center 55% / cover no-repeat; filter: blur(5px) saturate(1.15); transform: scale(1.06); }
.cz-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(165deg, rgba(21, 43, 71, .93) 0%, rgba(31, 58, 95, .80) 48%, rgba(74, 127, 181, .55) 100%); }
.cz-hero__inner { padding-top: 2.25rem; padding-bottom: 4.75rem; }
.cz-hero__title { font-size: clamp(1.65rem, 1.1rem + 2.6vw, 2.75rem); font-weight: 800; line-height: 1.15; letter-spacing: -.01em; margin-bottom: 1rem; max-width: 22ch; text-wrap: balance; }
.cz-hero__lead { font-size: clamp(1rem, .95rem + .3vw, 1.15rem); max-width: 62ch; color: rgba(255, 255, 255, .92); margin-bottom: 1.5rem; }
.cz-hero__cta { display: flex; flex-wrap: wrap; gap: .75rem; }
.cz-hero__cta .btn { font-weight: 600; }
.cz-hero__cta .btn-light { color: var(--cz-navy); }
.cz-hero__ridge { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 56px; fill: var(--cz-snow); }
@media (min-width: 768px) {
  .cz-hero__inner { padding-top: 3.5rem; padding-bottom: 6rem; }
  .cz-hero__ridge { height: 90px; }
}

/* sections & headings */
.cz-section { padding: 2.25rem 0; }
.cz-section--alt { background: #fff; border-top: 1px solid var(--cz-line); border-bottom: 1px solid var(--cz-line); }
.cz-h1 { font-size: clamp(1.5rem, 1.15rem + 1.6vw, 2.2rem); font-weight: 800; color: var(--cz-navy); line-height: 1.2; letter-spacing: -.01em; margin-bottom: .75rem; text-wrap: balance; }
.cz-h2 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.55rem); font-weight: 750; color: var(--cz-navy); margin-bottom: .9rem; }
.cz-h3 { font-size: 1.15rem; font-weight: 700; color: var(--cz-navy); margin-bottom: .75rem; }
.cz-lead { color: var(--cz-muted); margin-top: -.4rem; margin-bottom: 1.1rem; }
.cz-text { max-width: 75ch; font-size: 1.02rem; }
.cz-count { display: inline-block; vertical-align: .2em; font-size: .8rem; font-weight: 700; line-height: 1; color: var(--cz-navy); background: var(--cz-ice-l); border-radius: 999px; padding: .3rem .6rem; }
.cz-note { background: #fff; border: 1px solid var(--cz-line); border-left: 4px solid var(--cz-ice); border-radius: .6rem; padding: 1rem 1.15rem; }
.cz-note p:last-of-type { margin-bottom: .75rem; }
.cz-note p:only-child { margin-bottom: 0; }

/* page head (region, town, search, …) */
.cz-pagehead { background: #fff; border-bottom: 1px solid var(--cz-line); padding: 1.6rem 0 1.5rem; }
.cz-pagehead__grid { display: grid; gap: 1.25rem; }
.cz-pagehead__img { display: none; width: 180px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--cz-radius); box-shadow: 0 6px 20px rgba(20, 40, 70, .18); }
.cz-pagehead__meta { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; color: var(--cz-muted); font-weight: 600; margin-bottom: .75rem; }
.cz-pagehead__meta .bi { color: var(--cz-ice); }
@media (min-width: 768px) {
  .cz-pagehead { padding: 2.25rem 0 2rem; }
  .cz-pagehead__grid { grid-template-columns: 1fr auto; align-items: start; gap: 2rem; }
  .cz-pagehead__img { display: block; }
}

/* buttons */
.btn-cz { --bs-btn-color: #fff; --bs-btn-bg: var(--cz-navy); --bs-btn-border-color: var(--cz-navy); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--cz-navy-d); --bs-btn-hover-border-color: var(--cz-navy-d); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--cz-navy-d); --bs-btn-active-border-color: var(--cz-navy-d); font-weight: 600; }
.btn-cz-outline { --bs-btn-color: var(--cz-navy); --bs-btn-bg: #fff; --bs-btn-border-color: var(--cz-navy); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--cz-navy); --bs-btn-hover-border-color: var(--cz-navy); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--cz-navy-d); font-weight: 600; }
.btn { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; }
.btn-sm { min-height: 36px; }

/* mountain range grid */
.cz-regions { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); }
.cz-region__link { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--cz-line); border-radius: var(--cz-radius); overflow: hidden; text-decoration: none; color: var(--cz-ink); transition: transform .15s ease, box-shadow .15s ease; }
.cz-region__link:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(20, 40, 70, .14); }
.cz-region__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--cz-ice-l); }
.cz-region__name { display: block; padding: .6rem .7rem .1rem; font-weight: 700; color: var(--cz-navy); line-height: 1.25; }
.cz-region__meta { display: block; padding: 0 .7rem .65rem; font-size: .8rem; color: var(--cz-muted); }
.cz-region__meta strong { color: var(--cz-ice-d); }
.cz-region.is-current .cz-region__link { border-color: var(--cz-ice); }

/* listing cards */
.cz-cards { display: grid; gap: .9rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cz-cards { grid-template-columns: 1fr 1fr; gap: 1.1rem; } }
.cz-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: .85rem; align-items: start; background: #fff; border: 1px solid var(--cz-line); border-radius: var(--cz-radius); padding: .8rem; box-shadow: 0 1px 2px rgba(20, 40, 70, .05); transition: box-shadow .15s ease; }
.cz-card:hover { box-shadow: 0 8px 22px rgba(20, 40, 70, .12); }
.cz-card__thumb { display: block; border-radius: .5rem; overflow: hidden; background: var(--cz-ice-l); aspect-ratio: 150 / 115; }
.cz-card__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cz-card__nophoto { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font-size: 2rem; color: var(--cz-ice); }
.cz-card__body { display: flex; flex-direction: column; min-width: 0; height: 100%; }
.cz-card__title { font-size: 1.05rem; font-weight: 700; line-height: 1.3; margin: 0 0 .2rem; }
.cz-card__title a { color: var(--cz-navy); text-decoration: none; }
.cz-card__title a:hover { text-decoration: underline; }
.cz-card__place { font-size: .875rem; color: var(--cz-muted); margin-bottom: .35rem; }
.cz-card__place a { color: var(--cz-ice-d); }
.cz-card__km { white-space: nowrap; }
.cz-card__facts { list-style: none; padding: 0; margin: 0 0 .35rem; display: flex; flex-wrap: wrap; gap: .15rem 1rem; font-size: .875rem; }
.cz-card__facts .bi { color: var(--cz-ice); }
.cz-card__price { font-weight: 700; color: var(--cz-navy); }
.cz-card__text { font-size: .875rem; color: #3f4d5e; margin-bottom: .6rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.cz-card__btn { align-self: flex-start; margin-top: auto; }
@media (max-width: 399.98px) {
  .cz-card { grid-template-columns: 96px minmax(0, 1fr); gap: .7rem; padding: .7rem; }
  .cz-card__text { -webkit-line-clamp: 2; }
}
@media (min-width: 400px) { .cz-card { grid-template-columns: 150px minmax(0, 1fr); } }

/* chips (resorts) */
.cz-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.cz-chip { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .35rem .85rem; background: #fff; border: 1px solid var(--cz-line); border-radius: 999px; color: var(--cz-navy); text-decoration: none; font-size: .95rem; line-height: 1.3; }
.cz-chip:hover { border-color: var(--cz-ice); background: var(--cz-ice-l); }
.cz-chip.has-n { border-color: #b7cde4; font-weight: 600; }
.cz-chip__n { display: inline-block; min-width: 1.6em; text-align: center; font-size: .75rem; font-weight: 700; color: #fff; background: var(--cz-navy); border-radius: 999px; padding: .15rem .45rem; line-height: 1.3; }
.cz-chip__km { font-size: .8rem; color: var(--cz-muted); font-weight: 400; }
.cz-section--alt .cz-chip { background: var(--cz-snow); }

/* neighbours */
.cz-neighbours { list-style: none; padding: 0; margin: 0; display: grid; gap: .75rem; grid-template-columns: 1fr; }
@media (min-width: 576px) { .cz-neighbours { grid-template-columns: repeat(3, 1fr); } }
.cz-neighbour { display: flex; align-items: center; gap: .85rem; height: 100%; padding: .6rem; background: var(--cz-snow); border: 1px solid var(--cz-line); border-radius: var(--cz-radius); text-decoration: none; color: var(--cz-ink); }
.cz-neighbour:hover { border-color: var(--cz-ice); }
.cz-neighbour img { width: 88px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: .45rem; flex: none; }
.cz-neighbour strong { display: block; color: var(--cz-navy); line-height: 1.25; }
.cz-neighbour small { display: block; color: var(--cz-muted); }

/* map */
.cz-map { display: none; height: 380px; border-radius: var(--cz-radius); border: 1px solid var(--cz-line); background: var(--cz-ice-l); overflow: hidden; z-index: 0; position: relative; }
.cz-map--small { height: 300px; }
.js .cz-map { display: block; }
.cz-map.is-failed { display: none; }
.cz-map .leaflet-popup-content { font: 600 .9rem/1.4 var(--bs-body-font-family); }
.cz-map .leaflet-popup-content a { color: var(--cz-navy); }

/* weather */
.cz-weather { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 576px) { .cz-weather { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 992px) { .cz-weather { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
.cz-weather__day { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .15rem; background: #fff; border: 1px solid var(--cz-line); border-radius: var(--cz-radius); padding: .75rem .5rem; }
.cz-weather__date { font-weight: 700; font-size: .875rem; color: var(--cz-navy); }
.cz-weather__icon { font-size: 1.9rem; color: var(--cz-ice); line-height: 1.2; }
.cz-weather__text { font-size: .8rem; color: var(--cz-muted); min-height: 2.4em; line-height: 1.2; }
.cz-weather__max { font-weight: 800; color: var(--cz-navy); font-size: 1.05rem; }
.cz-weather__min { color: var(--cz-muted); }
.cz-weather__attr { font-size: .8rem; color: var(--cz-muted); margin: .6rem 0 0; }

.cz-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.cz-links a { display: inline-flex; align-items: center; gap: .35rem; min-height: 40px; font-weight: 600; }

/* overview */
.cz-overview { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cz-overview { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .cz-overview { grid-template-columns: repeat(3, 1fr); } }
.cz-ov { background: var(--cz-snow); border: 1px solid var(--cz-line); border-radius: var(--cz-radius); padding: 1rem; }
.cz-ov__head { display: flex; gap: .9rem; align-items: center; margin-bottom: .75rem; }
.cz-ov__img { width: 88px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: .45rem; flex: none; }
.cz-ov__title { font-size: 1.15rem; font-weight: 750; margin: 0; }
.cz-ov__title a { color: var(--cz-navy); text-decoration: none; }
.cz-ov__title a:hover { text-decoration: underline; }
.cz-ov__meta { margin: .1rem 0 0; font-size: .85rem; color: var(--cz-muted); }
.cz-ov__meta strong { color: var(--cz-ice-d); }
.cz-ov__towns { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .1rem 1rem; font-size: .95rem; }
.cz-ov__towns li { padding: .2rem 0; }
.cz-ov__towns a { color: var(--cz-ink); }
.cz-ov__towns a.has-n { color: var(--cz-navy); font-weight: 700; }

/* search */
.cz-search { background: var(--cz-ice-l); border-radius: var(--cz-radius); padding: 1rem; margin-top: 1rem; }
.cz-search .form-label { font-weight: 600; font-size: .9rem; color: var(--cz-navy); }
.cz-search .form-select { min-height: 44px; }
.cz-search .btn { min-height: 44px; }

/* owner call-to-action */
.cz-owner { padding: 2.5rem 0; }
.cz-owner__box { display: flex; flex-direction: column; gap: 1.1rem; color: #fff; background: linear-gradient(135deg, var(--cz-navy) 0%, var(--cz-ice-d) 100%); border-radius: calc(var(--cz-radius) + 4px); padding: 1.5rem; box-shadow: 0 10px 30px rgba(20, 40, 70, .2); }
.cz-owner__icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; flex: none; border-radius: 50%; background: rgba(255, 255, 255, .14); font-size: 1.6rem; }
.cz-owner__title { font-size: 1.3rem; font-weight: 750; margin-bottom: .35rem; }
.cz-owner__body p { color: rgba(255, 255, 255, .92); }
.cz-owner__actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.cz-owner__actions .btn-light { color: var(--cz-navy); font-weight: 600; }
.cz-owner__actions .btn-outline-light { font-weight: 600; }
@media (min-width: 992px) {
  .cz-owner__box { flex-direction: row; align-items: center; padding: 1.75rem 2rem; gap: 1.5rem; }
  .cz-owner__actions { flex: none; }
}

/* footer */
.cz-footer { background: var(--cz-navy-d); color: rgba(255, 255, 255, .82); padding: 2.5rem 0 1.5rem; font-size: .925rem; }
.cz-footer a { color: #fff; text-decoration-color: rgba(255, 255, 255, .35); }
.cz-footer a:hover { text-decoration-color: #fff; }
.cz-footer__brand { font-size: 1.2rem; font-weight: 800; color: #fff; margin-bottom: .5rem; }
.cz-footer__h { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: rgba(255, 255, 255, .7); margin-bottom: .75rem; }
.cz-footer__list { list-style: none; padding: 0; margin: 0; }
.cz-footer__list li { padding: .2rem 0; }
.cz-footer__list a { display: inline-block; padding: .15rem 0; }
.cz-footer__list--cols { columns: 2; column-gap: 1.25rem; }
.cz-footer__copy { border-top: 1px solid rgba(255, 255, 255, .15); margin: 2rem 0 0; padding-top: 1.1rem; font-size: .85rem; color: rgba(255, 255, 255, .7); }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  .cz-header, .cz-footer, .cz-owner, .cz-map, .cz-hero__ridge { display: none !important; }
  .cz-hero { color: #000; background: none; }
  .cz-hero::before, .cz-hero::after { display: none; }
}
