/* GENERATED from styles.css by scripts/build-public-css.php – do not edit; edit styles.css and rebuild.
   Public pages load this subset; dashboard pages load the full styles.css (lib/public-css.php). */
:root {
  --ink: #14202a;
  --muted: #667481;
  --line: #dbe3ea;
  --soft: #f4f7f8;
  --paper: #fff;
  --brand: #0e5a63;
  --brand-strong: #093d45;
  --teal: #0e5a63;
  --accent: #c2443a;
  --gold: #b88a36;
  --success-bg: #ecfdf3;
  --success: #176a3a;
  --radius: 8px;
  --shadow: 0 18px 50px rgba(13, 34, 45, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--paper); letter-spacing: 0; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 72px; display: flex; align-items: center; gap: 28px; padding: 0 max(28px, calc((100vw - 1180px) / 2)); color: var(--ink); background: rgba(255,255,255,.96); box-shadow: 0 1px 0 rgba(20,32,42,.1); backdrop-filter: blur(12px); }
.preview-banner { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 36px; padding: 7px 18px; color: #fff; background: #123b45; font-size: 13px; line-height: 1.35; text-align: center; }
.preview-banner strong { font-weight: 800; }
.preview-banner span { color: rgba(255,255,255,.78); font-weight: 600; }
.preview-banner + .topbar { top: 36px; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-weight: 800; min-width: max-content; }
.brand-mark { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 34px; height: 34px; overflow: hidden; border-radius: 50%; background: var(--brand); color: #fff; box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
.brand-mark > span { display: block; font-family: Arial, sans-serif; font-size: 12px; font-weight: 900; line-height: 1; letter-spacing: 0; text-align: center; transform: translateY(1px); }
.nav { display: flex; align-items: center; gap: 22px; margin-left: auto; font-size: 14px; font-weight: 700; }
.nav a { opacity: .88; white-space: nowrap; }
.nav .nav-map-link { color: var(--brand); opacity: 1; }
.nav-favorites-link { display: inline-flex; align-items: center; gap: 6px; }
.nav-favorites-link [data-favorite-count] { min-width: 18px; height: 18px; display: inline-grid; place-items: center; border-radius: 9px; padding: 0 5px; color: #fff; background: var(--accent); font-size: 10px; line-height: 1; }
.nav-favorites-link [data-favorite-count][hidden] { display: none; }
.nav-cta { min-width: max-content; border: 1px solid var(--brand); color: var(--brand); border-radius: 6px; padding: 10px 13px; font-weight: 800; font-size: 14px; }
.hero { position: relative; min-height: 640px; color: #fff; display: grid; align-items: end; overflow: hidden; margin-top: -72px; padding-top: 72px; }
.hero-bg { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,25,31,.9) 0%, rgba(6,25,31,.68) 38%, rgba(6,25,31,.16) 72%); }
.hero-inner { position: relative; width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 140px 0 58px; display: grid; grid-template-columns: minmax(0, 760px) 320px; gap: 44px; align-items: end; }
.hero-copy h1 { margin: 0; max-width: 790px; font-size: clamp(44px, 6.5vw, 76px); line-height: 1; letter-spacing: 0; text-wrap: balance; }

.eyebrow { margin: 0 0 16px; color: #bdebd9; text-transform: uppercase; font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.eyebrow.dark { color: var(--brand); }
.hero-search { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; max-width: 780px; margin-top: 30px; padding: 10px; border: 1px solid rgba(255,255,255,.25); border-radius: var(--radius); background: rgba(255,255,255,.12); backdrop-filter: blur(16px); }
.hero-search input, .hero-search button, .search-box input, .search-box select, .filters input, .filters select { min-height: 48px; border: 1px solid var(--line); border-radius: 6px; padding: 0 12px; background: #fff; color: var(--ink); }
.hero-search button, .search-box button { border: 0; background: var(--accent); color: #fff; font-weight: 800; cursor: pointer; }
.hero-search .search-map-button, .search-box .search-map-button { border: 1px solid var(--brand); background: #fff; color: var(--brand-strong); }
.hero-search .search-map-button:hover, .search-box .search-map-button:hover { background: #f0f8f7; }
.hero-search button:focus-visible, .search-box button:focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; }
.button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; padding: 12px 16px; font-weight: 800; border: 1px solid transparent; cursor: pointer; }
.button.primary { background: var(--accent); color: #fff; }
.button.light { background: #fff; color: var(--brand-strong); }
.button.outline { border-color: var(--line); color: var(--brand-strong); background: #fff; }
.button.full { width: 100%; }

.metric { display: block; font-size: 38px; font-weight: 800; }

.search-box label, .filters label, .lead-form label { display: grid; gap: 7px; align-content: start; }

.region-directory { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 64px 0 18px; scroll-margin-top: 96px; }
.feeling-section { width: min(1320px, calc(100% - 40px)); margin: 0 auto; padding: 48px 0 18px; }
.feeling-head { width: min(1180px, 100%); margin-right: auto; margin-left: auto; }
.feeling-head > div { max-width: 760px; }
.feeling-head h2 { max-width: 680px; text-wrap: balance; }
.feeling-head p:not(.eyebrow) { max-width: 720px; margin: 18px 0 0; color: var(--muted); font-size: 18px; line-height: 1.6; }

.feeling-grid { display: grid; grid-template-columns: 1.08fr .92fr .92fr; gap: 14px; }
.feeling-card { position: relative; min-height: 480px; display: block; overflow: hidden; border-radius: var(--radius); background: #27383a; color: #fff; isolation: isolate; }
.feeling-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.feeling-card:hover img { transform: scale(1.035); }
.feeling-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,25,31,.02) 28%, rgba(6,25,31,.86) 100%); }
.feeling-copy { position: absolute; right: 0; bottom: 0; left: 0; display: grid; gap: 7px; padding: 28px; }
.feeling-copy small { color: rgba(255,255,255,.82); font-size: 13px; font-weight: 750; }
.feeling-copy strong { font-size: clamp(27px, 3vw, 38px); line-height: 1.05; text-wrap: balance; }
.feeling-copy b { width: fit-content; margin-top: 8px; border-bottom: 1px solid rgba(255,255,255,.55); padding-bottom: 4px; font-size: 13px; }
.feeling-card:focus-visible { outline: 4px solid var(--accent); outline-offset: 4px; }
.region-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.region-link { min-height: 88px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; align-content: center; column-gap: 14px; border: 1px solid var(--line); border-radius: var(--radius); padding: 17px 18px; background: #fff; transition: border-color .16s ease, background-color .16s ease, transform .16s ease; }
.region-link:hover { border-color: rgba(14,90,99,.5); background: #f3fbf8; transform: translateY(-2px); }
.region-link strong { min-width: 0; font-size: 17px; line-height: 1.25; }
.region-link span { color: var(--muted); font-size: 13px; line-height: 1.4; }
.region-link b { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--brand); font-size: 20px; font-weight: 800; }
.region-link-map { background: #f3fbf8; border-color: rgba(14,90,99,.35); }
.region-link-map strong { color: var(--brand); }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 18px; color: var(--muted); font-size: 13px; font-weight: 700; }
.breadcrumbs a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.breadcrumbs span[aria-hidden="true"] { color: #a6b1b8; }
.locality-directory { width: min(1180px, calc(100% - 40px)); margin: -4px auto 38px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 24px 0; }
.locality-directory-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 15px; }
.locality-directory-head h2 { margin: 3px 0 0; font-size: 24px; line-height: 1.2; }
.locality-directory-head > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.locality-link-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.locality-link-grid a { min-width: 0; display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 6px; padding: 12px 13px; background: #fff; transition: border-color .16s ease, background-color .16s ease; }
.locality-link-grid a:hover { border-color: rgba(14,90,99,.5); background: #f3fbf8; }
.locality-link-grid strong { overflow: hidden; font-size: 14px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.locality-link-grid span { color: var(--muted); font-size: 12px; }
.nearby-directory { margin-top: 4px; margin-bottom: 58px; }
.locality-overview { width: min(1180px, calc(100% - 40px)); margin: -16px auto 42px; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 40px; }
.locality-overview-copy { max-width: 760px; }
.locality-overview h2 { margin: 4px 0 9px; font-size: 24px; line-height: 1.2; }
.locality-overview-copy > p:last-child { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.65; }
.locality-facts { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(88px, auto)); gap: 24px; }
.locality-facts div { display: grid; gap: 3px; }
.locality-facts dt { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.locality-facts dd { margin: 0; color: var(--ink); font-size: 22px; font-weight: 900; }
.section { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 78px 0; }

.split { display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: start; }
h1, h2, h3 { letter-spacing: 0; }
h2 { margin: 0; font-size: clamp(30px, 4vw, 48px); line-height: 1.05; }
.principles, .rule-list { display: grid; gap: 12px; }
.principles article, .rule-list article { border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: var(--soft); display: grid; gap: 6px; }
.principles span, .section-head p, .stay-card p, .page-hero p, .owner-band p, .content-block p, .rule-list p, .empty { color: var(--muted); line-height: 1.6; }

.owner-alpha { padding-top: 0; }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 24px; }
.accommodation-section { padding-top: 36px; }
.accommodation-section .section-head { align-items: center; margin-bottom: 20px; }
.text-link { color: var(--brand); font-weight: 800; }
.cards, .accommodation-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.stay-card { position: relative; min-height: 224px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; background: #fff; box-shadow: 0 1px 0 rgba(20,32,42,.04); overflow: hidden; }
.stay-card-photo { position: absolute; z-index: 1; top: 50px; right: 12px; width: 96px; height: 64px; overflow: hidden; border: 1px solid rgba(14,90,99,.18); border-radius: 5px; background: #dfe6e8; }
.stay-card-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.stay-card.has-cover h2 { min-height: 50px; display: flex; align-items: center; padding-right: 102px; }
.card-topline { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.favorite-toggle { flex: 0 0 auto; width: 34px; height: 34px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; padding: 0; color: var(--brand); background: #fff; font-size: 22px; line-height: 1; cursor: pointer; transition: color .16s ease, border-color .16s ease, background-color .16s ease; }
.favorite-toggle:hover { border-color: rgba(207,74,61,.55); color: var(--accent); background: #fff8f7; }
.favorite-toggle:focus-visible { outline: 3px solid rgba(14,90,99,.25); outline-offset: 2px; }
.favorite-toggle.is-favorite { border-color: rgba(207,74,61,.35); color: var(--accent); background: #fff4f2; }
.favorite-toggle-card { width: 30px; height: 30px; margin-left: auto; font-size: 19px; }
.favorite-toggle-detail { width: 100%; height: auto; display: inline-flex; gap: 8px; font-size: 15px; line-height: 1.2; }
.favorite-toggle-detail > span[aria-hidden="true"] { color: var(--accent); font-size: 19px; }
.badge { display: inline-flex; align-items: center; gap: 5px; width: fit-content; min-height: 24px; border-radius: 999px; padding: 4px 8px 4px 5px; font-size: 10px; font-weight: 900; line-height: 1; letter-spacing: 0; white-space: nowrap; box-shadow: 0 3px 8px rgba(20,32,42,.05); }
.badge-icon { display: grid; place-items: center; width: 15px; height: 15px; border-radius: 50%; background: rgba(255,255,255,.98); font-size: 10px; line-height: 1; box-shadow: inset 0 0 0 1px rgba(255,255,255,.36); }
.badge.verified { color: #fff; background: #11784a; border: 1px solid #0e6a41; }
.badge.verified .badge-icon { color: #11784a; }
.badge.public { color: #fff; background: var(--brand); border: 1px solid var(--brand-strong); }
.badge.public .badge-icon { color: var(--brand); }
.badge.claim, .badge.draft { color: #5b3a05; background: #ffe7a3; border: 1px solid #d59c25; }
.badge.claim .badge-icon, .badge.draft .badge-icon { color: #8a5b05; }
.stay-card h2 { margin: 10px 0 4px; font-size: 19px; line-height: 1.12; }
.stay-card > p { margin: 4px 0 0; }

.meta-row, .contact-mini { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.meta-row span { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: var(--soft); color: #56636e; font-size: 11px; font-weight: 700; }
.offer-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-height: 22px; color: var(--brand-strong); font-size: 13px; }
.offer-meta span, .detail-stars { color: #a86e09; letter-spacing: 0; }

.detail-price { display: block; margin: 2px 0 10px; color: var(--brand-strong); font-size: 22px; }
.contact-mini a, .contact-note { display: inline-flex; align-items: center; min-height: 31px; border: 1px solid var(--line); border-radius: 999px; padding: 6px 10px; color: var(--brand); background: #fff; font-size: 12px; font-weight: 800; }
.contact-note { color: var(--muted); background: var(--soft); }
.card-action { margin-top: auto; color: var(--brand); font-size: 15px; font-weight: 800; padding-top: 10px; }
.owner-band { display: flex; justify-content: space-between; align-items: center; gap: 40px; padding: 62px max(28px, calc((100vw - 1180px) / 2)); background: var(--brand-strong); color: #fff; }
.owner-band div { max-width: 780px; }
.owner-band p { color: rgba(255,255,255,.78); }
.footer { min-height: 112px; display: grid; grid-template-columns: minmax(240px, auto) minmax(0, 1fr) max-content; align-items: center; gap: 28px; padding: 28px max(28px, calc((100vw - 1180px) / 2)); color: var(--muted); border-top: 1px solid var(--line); background: #fff; }
.footer-brand { color: inherit; text-decoration: none; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 14px; min-width: 0; }
.footer-brand .brand-mark { width: 44px; height: 44px; }
.footer-brand .brand-mark > span { font-size: 13px; transform: translateY(1px); }
.footer-brand strong, .footer-brand span { display: block; }
.footer-brand strong { color: var(--ink); font-size: 15px; line-height: 1.2; }
.footer-brand span { margin-top: 4px; line-height: 1.3; font-size: 13px; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 12px; min-width: 0; font-size: 12px; font-weight: 900; color: var(--brand); }
.footer-links a { white-space: nowrap; }
.footer-link-button { padding: 0; border: 0; background: none; font: inherit; color: inherit; white-space: nowrap; cursor: pointer; }
.footer-link-button:hover, .footer-link-button:focus-visible { text-decoration: underline; }
.footer-note { justify-self: end; white-space: nowrap; font-size: 11px; }
.cookie-bar { position: fixed; z-index: 60; left: 50%; bottom: 22px; transform: translateX(-50%); width: min(940px, calc(100% - 40px)); display: flex; align-items: center; justify-content: space-between; gap: 22px; border: 1px solid rgba(14,90,99,.18); border-radius: var(--radius); padding: 14px 16px 14px 18px; background: rgba(255,255,255,.97); box-shadow: 0 18px 50px rgba(13,34,45,.18); backdrop-filter: blur(14px); }
.cookie-bar[hidden] { display: none; }
.cookie-bar p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.45; }
.cookie-actions { display: flex; flex: 0 0 auto; gap: 8px; }
.cookie-actions .button { min-height: 38px; padding: 8px 12px; font-size: 13px; }
body.cookie-visible { padding-bottom: 122px; }
.stealth-body { min-height: 100vh; background: linear-gradient(90deg, rgba(6,25,31,.88), rgba(6,25,31,.42)), url('/assets/photos/hero.webp?v=20261014') center/cover fixed no-repeat; }
.stealth-body .topbar,
.stealth-body .footer { display: none; }
.stealth-page { min-height: 100vh; display: grid; place-items: center; padding: 32px 20px; }
.stealth-card { width: min(680px, 100%); border: 1px solid rgba(255,255,255,.26); border-radius: var(--radius); padding: clamp(28px, 5vw, 54px); background: rgba(255,255,255,.94); box-shadow: var(--shadow); }
.stealth-card .brand-mark { margin-bottom: 22px; }
.stealth-card h1 { margin: 0; font-size: clamp(42px, 8vw, 72px); line-height: .98; }
.stealth-card p:not(.eyebrow) { color: var(--muted); font-size: 18px; line-height: 1.65; }
.stealth-muted { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; }
.page-hero { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 70px 0 42px; }
.page-hero.compact h1 { max-width: 900px; margin: 0; font-size: clamp(40px, 6vw, 68px); line-height: 1; }
.page-hero.compact p:not(.eyebrow) { max-width: 760px; font-size: 18px; }
.favorites-page { background: #f7faf9; }
.favorites-hero { padding-bottom: 20px; }
.favorites-section { width: min(1180px, calc(100% - 40px)); min-height: 360px; margin: 0 auto 84px; }
.favorites-toolbar { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--line); border-radius: 6px; margin-bottom: 18px; padding: 10px 12px 10px 18px; background: #fff; }
.favorites-toolbar p { margin: 0; font-size: 16px; }
.favorites-toolbar .button { min-height: 38px; padding: 8px 12px; font-size: 13px; }
.favorites-empty { min-height: 300px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; }
.favorites-empty[hidden] { display: none; }
.favorites-empty > span { color: var(--accent); font-size: 38px; line-height: 1; }
.favorites-empty h2 { margin: 0; font-size: 28px; }
.favorites-empty p { margin: 0 0 10px; color: var(--muted); }
.listing-grid.favorites-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.favorites-grid[hidden] { display: none; }
.favorite-card { min-height: 172px; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 6px; padding: 17px 18px 15px; background: #fff; box-shadow: 0 1px 0 rgba(20,32,42,.04); overflow: hidden; }
.favorite-card:hover { border-color: rgba(14,90,99,.36); box-shadow: 0 8px 20px rgba(20,32,42,.07); }
.favorite-card.has-photo { padding-top: 0; }
.favorite-card-photo { display: block; height: 154px; margin: 0 -18px 16px; overflow: hidden; background: #dfe6e8; }
.favorite-card-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .22s ease; }
.favorite-card:hover .favorite-card-photo img { transform: scale(1.025); }
.favorite-card.has-photo .card-topline,
.favorite-card.has-photo h2,
.favorite-card.has-photo .favorite-card-locality,
.favorite-card.has-photo .favorite-card-actions { margin-left: 0; margin-right: 0; }
.favorite-card-type { color: var(--brand); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.favorite-card h2 { margin: 14px 40px 4px 0; font-size: 21px; line-height: 1.18; }
.favorite-card h2 a { color: var(--ink); text-decoration: none; }
.favorite-card h2 a:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.favorite-card-locality { margin: 0; color: var(--muted); font-size: 16px; }
.favorite-card-remove { width: 32px; height: 32px; font-size: 18px; }
.favorite-card-actions { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 16px; }
.favorite-card-detail { min-height: 36px; padding: 7px 10px; font-size: 13px; }
/* Ján, 17. 10. 2026: more about the stay on the favourites card, a removal notice, the storage note. */
.favorites-hero .favorites-note { margin-top: 8px; color: var(--muted); font-size: 14px; }
.favorite-card-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin: 10px 0 0; font-size: 14px; }
.favorite-card-stars { color: #d39b1d; letter-spacing: 1px; }
.favorite-card-price { color: var(--ink); font-weight: 800; }
.favorite-card-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.favorite-card-facts li { border-radius: 999px; padding: 4px 10px; background: #eef5f3; color: #164e4a; font-size: 12px; line-height: 1.3; }
.favorite-card-actions { flex-wrap: wrap; }
.favorite-card-call { min-height: 36px; padding: 7px 10px; font-size: 13px; }
.favorites-toast { position: fixed; z-index: 1200; left: 50%; top: 84px; transform: translateX(-50%); margin: 0; border-radius: 999px; padding: 10px 18px; background: #0b3d44; color: #fff; font-size: 14px; box-shadow: 0 10px 28px rgba(20,32,42,.22); }
.favorites-toast[hidden] { display: none; }
.favorites-toolbar [hidden] { display: none; }
.page-hero.favorites-hero .favorites-note { font-size: 14px; }
.related-stays-section { width: min(1600px, calc(100% - 72px)); padding: 42px 0 78px; }
.related-stays-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.related-stays-grid .stay-card { min-height: 280px; padding: 24px; }
.related-stays-grid .stay-card h2 { max-width: calc(100% - 130px); font-size: 25px; }
.related-stays-grid .stay-card-photo { top: 24px; right: 24px; width: 118px; height: 82px; }
.results-layout { width: min(1180px, calc(100% - 40px)); margin: 0 auto 80px; display: grid; grid-template-columns: minmax(260px, 280px) minmax(0, 1fr); gap: 34px; align-items: start; }
.results-layout > aside,
.results-layout > div { min-width: 0; }
.filter-sidebar { position: sticky; top: 92px; display: grid; gap: 14px; }
.filters { display: grid; gap: 12px; width: 100%; border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: #fff; }
.filters input,
.filters select,
.filters button { width: 100%; min-width: 0; }
.sidebar-promo { display: grid; gap: 11px; border: 1px solid #bfddd8; border-radius: var(--radius); padding: 19px; background: #eef8f6; }
.sidebar-promo span { color: var(--teal); font-size: 12px; font-weight: 900; text-transform: uppercase; }
.sidebar-promo strong { font-size: 21px; line-height: 1.18; }
.sidebar-promo p { margin: 0; color: #56636e; font-size: 14px; line-height: 1.5; }
.sidebar-promo .button { margin-top: 3px; background: #fff; text-align: center; }
.result-count { margin: 0 0 14px; color: var(--muted); font-weight: 800; }
.listing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-page, .dashboard-page { background: linear-gradient(180deg, #f4f7f8, #fff 360px); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

.booking-panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 15px; background: #fff; box-shadow: var(--shadow); display: grid; gap: 8px; }
.booking-panel .button { min-height: 44px; padding: 10px 13px; font-size: 15px; }

.detail-gallery { grid-column: 1 / -1; height: 520px; display: grid; grid-template-columns: minmax(0, 2fr) minmax(120px, 1fr) minmax(120px, 1fr); grid-template-rows: repeat(3, minmax(0, 1fr)); gap: 8px; overflow: hidden; border-radius: var(--radius); background: #dfe6e8; box-shadow: var(--shadow); }

.detail-gallery > :first-child { grid-row: 1 / -1; }

.profile-osm-map { width: 100%; height: 100%; min-height: 520px; background: #dfe8e7; }

.profile-nearby-block ul { display: grid; gap: 10px; margin: 18px 0 14px; padding: 0; list-style: none; }
.profile-nearby-block li { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 9px; }
.profile-nearby-block li span, .profile-nearby-block small { color: var(--muted); font-size: 13px; line-height: 1.4; }

.photo-lightbox { width: min(1120px, calc(100% - 32px)); max-width: none; max-height: min(860px, calc(100% - 32px)); border: 0; border-radius: 8px; padding: 0; overflow: visible; background: #10191d; box-shadow: 0 24px 80px rgba(0,0,0,.42); }
.photo-lightbox::backdrop { background: rgba(7,15,19,.76); backdrop-filter: blur(4px); }
.photo-lightbox img { display: block; width: auto; max-width: 100%; height: auto; max-height: min(820px, calc(100vh - 72px)); margin: 0 auto; object-fit: contain; }
.photo-lightbox-close { position: absolute; top: -12px; right: -12px; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; color: #fff; background: #17272d; font-size: 25px; line-height: 1; cursor: pointer; }
.photo-lightbox-close:hover { background: var(--accent); }
.photo-lightbox-nav { position: absolute; top: 50%; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.58); border-radius: 50%; color: #fff; background: rgba(14,31,38,.78); font-size: 24px; line-height: 1; cursor: pointer; transform: translateY(-50%); }
.photo-lightbox-nav:hover { background: var(--brand); }
.photo-lightbox-previous { left: 14px; }
.photo-lightbox-next { right: 14px; }
.photo-lightbox-nav:focus-visible, .photo-lightbox-close:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.detail-grid, .owner-grid { width: min(1180px, calc(100% - 40px)); margin: 0 auto 84px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.content-block, .owner-grid article { border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: #fff; }
.content-block h2, .owner-grid h2 { font-size: 28px; }
.content-block li { margin: 8px 0; color: var(--muted); }
.legal-hero { padding-bottom: 24px; }
.legal-content { width: min(900px, calc(100% - 40px)); margin: 0 auto 84px; display: grid; gap: 14px; }
.legal-content .content-block { padding: 24px 28px; }
.legal-content .content-block h2 { margin: 0 0 10px; font-size: 24px; }
.legal-content .content-block p { margin: 0; }
.legal-content .content-block p + p { margin-top: 10px; }
/* Ján, 18. 10. 2026: links and e-mails in legal texts look like the text around them, only underlined. */
.legal-content a { color: inherit; font-weight: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.legal-content a:hover { color: var(--brand); }
.detail-grid .content-block { height: 100%; }
.profile-ownership-block { display: flex; flex-direction: column; }
.profile-ownership-block > p { margin-bottom: 10px; }

.profile-ownership-block > .button { width: fit-content; margin-top: auto; }
.profile-ownership-block .profile-manage-link { margin-top: 12px; }
.managed-profile-status { width: fit-content; display: inline-flex; align-items: center; gap: 7px; margin-top: auto; border-radius: 999px; padding: 7px 10px; color: var(--brand); background: #edf7f6; border: 1px solid rgba(14,90,99,.24); font-size: 12px; }
.managed-profile-status span { display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; color: #fff; background: #15935a; font-size: 11px; }
.profile-ownership-block.is-pending { background: #fbfcfd; }
.pending-profile-status { width: fit-content; margin-top: auto; border: 1px solid #d8c98f; border-radius: 999px; padding: 7px 11px; color: #765d08; background: #fff9df; font-size: 12px; }

/* Profile gallery v2: the profile remains a wide editorial surface while the
   direct-contact panel keeps its familiar fixed position on the right. */
.detail-page { background: linear-gradient(180deg, #f7f9f8 0, #fff 620px); }

.detail-grid, .owner-grid, .partner-profile-section { width: min(1600px, calc(100% - 72px)); }

@media (max-width: 980px) {
  
  
  .detail-grid, .owner-grid, .partner-profile-section { width: min(840px, calc(100% - 40px)); }
  .related-stays-section { width: min(840px, calc(100% - 40px)); }
  .detail-booking-section { width: min(840px, calc(100% - 40px)); }
}
@media (max-width: 700px) {
  
  
  
  
  
  
  
  
  
  
  
  .profile-osm-map { min-height: 0; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .detail-grid, .owner-grid, .partner-profile-section { width: min(100% - 28px, 640px); }
  .related-stays-section { width: min(100% - 28px, 640px); }
  .detail-booking-section { width: min(100% - 28px, 640px); padding-top: 28px; }
  
  
}

/* Podunajsko pilot: compact profile header, locally hosted Lucide facts and
   server-rendered context panels. These overrides intentionally sit last so
   profile pages do not inherit the older gallery's large fixed tracks. */

.detail-page { overflow-x: hidden; }

.profile-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; margin: 0 0 9px; color: #667787; font-size: 12px; line-height: 1.3; }
.profile-breadcrumbs a { min-width: 0; color: inherit; font-weight: 700; overflow-wrap: anywhere; text-decoration: none; }
.profile-breadcrumbs a:hover, .profile-breadcrumbs a:focus-visible { color: var(--brand); text-decoration: underline; }
.profile-breadcrumbs a[aria-current="page"] { color: #243d48; font-weight: 800; }

.profile-map-visual { height: clamp(300px, 42vh, 360px); }

.profile-fact-strip { grid-column: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 1px; overflow: hidden; border: 1px solid #dbe3e4; border-radius: 10px; background: #dbe3e4; box-shadow: 0 8px 22px rgba(24, 44, 51, .06); }
.profile-fact-strip article { min-width: 0; display: flex; align-items: center; gap: 9px; padding: 12px; background: #fff; }
.profile-fact-strip svg, .profile-weather svg { width: 22px; height: 22px; flex: 0 0 auto; fill: none; stroke: #08707d; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.profile-fact-strip span { min-width: 0; display: grid; gap: 2px; }
.profile-fact-strip strong { color: #173342; font-size: 12px; line-height: 1.2; }
.profile-fact-strip small { color: #627982; font-size: 12px; line-height: 1.2; overflow-wrap: anywhere; }

.detail-grid { margin-bottom: 42px; }

.partner-unit-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.partner-unit-card { padding: 16px; }

.partner-chip-list { gap: 5px; margin-top: 11px; }
.partner-chip-list > span { padding: 4px 7px; font-size: 11px; }

@media (max-width: 1199px) {
  .partner-unit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .profile-fact-strip { grid-column: auto; }
}
@media (max-width: 700px) {
  
  
  
  
  
  
  
  
  .profile-map-visual { min-height: 0; height: min(82vw, 340px); }
  .profile-fact-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-fact-strip article { padding: 10px; }
  
  .partner-unit-grid { grid-template-columns: 1fr; }
}
.partner-profile-section { width: min(1600px, calc(100% - 72px)); margin: 0 auto 40px; }
.partner-profile-head { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.partner-profile-head h2 { max-width: 760px; margin: 5px 0 8px; font-size: 36px; line-height: 1.12; }
.partner-profile-head p:not(.eyebrow) { max-width: 680px; margin: 0; color: var(--muted); line-height: 1.55; }
.partner-profile-head > strong { flex: 0 0 auto; border-bottom: 2px solid var(--brand); padding: 0 0 7px; color: var(--brand-strong); font-size: 16px; }
.partner-unit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.partner-unit-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: #fff; box-shadow: 0 1px 0 rgba(20,32,42,.04); }

.partner-unit-card > header { margin-bottom: 16px; }
.partner-unit-card > header span { color: var(--brand); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.partner-unit-card h3 { margin: 4px 0 0; font-size: 22px; line-height: 1.25; }
.partner-unit-price { margin: -5px 0 14px; color: var(--brand); font-size: 14px; font-weight: 900; }
.partner-rate-list { display: grid; gap: 7px; margin: 0 0 16px; border: 1px solid var(--line); padding: 10px 12px; background: #f8fbfb; }
.partner-rate-list > div { display: grid; gap: 2px; border-bottom: 1px solid var(--line); padding-bottom: 7px; }
.partner-rate-list strong { font-size: 12px; }
.partner-rate-list span, .partner-rate-list small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.partner-rate-list p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.partner-unit-facts { display: grid; grid-template-columns: .7fr .7fr 1.3fr; gap: 14px; border-top: 1px solid var(--line); padding-top: 14px; }
.partner-unit-facts div { min-width: 0; }
.partner-unit-facts span, .partner-bed-summary span { display: block; margin-bottom: 3px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.partner-unit-facts strong { display: block; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }

.partner-chip-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.partner-chip-list > span { border: 1px solid #cbdfe1; border-radius: 999px; padding: 6px 9px; background: #f3f8f8; color: var(--brand-strong); font-size: 12px; font-weight: 750; line-height: 1.2; }
.partner-chip-list > span.amenity-chip { display: inline-flex; align-items: center; gap: 6px; }
.amenity-chip svg { width: 15px; height: 15px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.partner-profile-info-grid { columns: 2 320px; column-gap: 48px; margin-top: 34px; }
.partner-info-block { display: inline-block; width: 100%; min-width: 0; margin: 0 0 28px; break-inside: avoid; border-top: 2px solid var(--ink); padding-top: 17px; }
.partner-info-block h3 { margin: 0 0 12px; font-size: 20px; }
.partner-info-block .partner-chip-list { margin-top: 0; }
.partner-rule-list { margin: 0; }
.partner-rule-list div { display: grid; grid-template-columns: minmax(100px, .7fr) minmax(0, 1.3fr); gap: 12px; border-bottom: 1px solid var(--line); padding: 9px 0; }
.partner-rule-list div:first-child { padding-top: 0; }
.partner-rule-list dt { color: var(--muted); font-size: 13px; }
.partner-rule-list dd { margin: 0; color: var(--ink); font-size: 13px; font-weight: 800; text-align: right; }
.partner-outage-list { display: grid; gap: 8px; }
.partner-outage-list article { display: grid; gap: 3px; border-left: 4px solid var(--gold); padding: 10px 12px; background: #fff8e6; }
.partner-outage-list strong { color: var(--ink); font-size: 14px; }
.partner-outage-list span, .partner-outage-list small { color: var(--muted); font-size: 12px; line-height: 1.4; }

.form-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 26px; align-items: start; }
.claim-page .page-hero { padding-bottom: 20px; }
.claim-page .form-section { padding-top: 20px; }
.owner-entry-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.owner-access-shell { width: min(980px, calc(100% - 40px)); min-height: calc(100vh - 210px); display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); gap: 64px; align-items: center; margin: 0 auto; padding: 72px 0 84px; }
.owner-access-intro h1 { margin: 8px 0 16px; font-size: 46px; line-height: 1.05; }
.owner-access-intro > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.65; }
.owner-access-intro ul { display: grid; gap: 9px; margin: 22px 0 0; padding-left: 20px; color: var(--ink); line-height: 1.5; }
.owner-access-panel { display: grid; gap: 14px; }
.owner-access-panel .notice { margin: 0; }
.owner-access-divider { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; text-transform: uppercase; }
.owner-access-divider::before, .owner-access-divider::after { content: ''; height: 1px; flex: 1; background: var(--line); }
.google-signin { width: 100%; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 1px solid var(--line); background: #fff; color: var(--ink); text-decoration: none; }
.google-signin span { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; color: #4285f4; background: #fff; font-weight: 900; }
.owner-google-profiles { display: grid; gap: 8px; border: 1px solid #bdeccf; border-radius: var(--radius); padding: 16px; background: var(--success-bg); }
.owner-google-profiles > strong { margin-bottom: 2px; }
.owner-google-profiles a { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(14,90,99,.16); padding-top: 9px; color: var(--brand-strong); font-weight: 850; text-decoration: none; }
.owner-google-profiles a span { color: var(--muted); font-size: 12px; font-weight: 600; }
.owner-google-profiles a.owner-profile-open { flex-wrap: wrap; padding-top: 12px; }
.owner-profile-name { display: grid; gap: 2px; }
.owner-profile-name b { color: var(--brand-strong); font-size: 17px; font-weight: 850; }
.owner-google-profiles a .owner-profile-name small { color: var(--muted); font-size: 12px; font-weight: 600; }
.owner-google-profiles a span.button { color: #fff; font-size: 14px; font-weight: 800; white-space: nowrap; }
.owner-access-help { border-top: 1px solid var(--line); padding: 20px 4px 0; }
.owner-access-help strong { font-size: 18px; }
.owner-access-help p { margin: 7px 0 14px; color: var(--muted); font-size: 15px; line-height: 1.55; }
.detail-booking-section { width: min(1600px, calc(100% - 72px)); display: grid; gap: 26px; padding: 42px 0 38px; }
.detail-booking-head { display: grid; grid-template-columns: minmax(0, .72fr) minmax(360px, 1fr); align-items: end; gap: 48px; }
.detail-booking-head h2 { margin: 6px 0 0; }
.detail-booking-head > p { max-width: 760px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.6; }
.detail-booking-form { width: 100%; max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; padding: 26px; }
.detail-booking-form > .consent-field,
.detail-booking-form > .button,
.detail-booking-form > .field-help { grid-column: 1 / -1; }
.detail-booking-form textarea { min-height: 94px; }
.direct-contact-section { width: min(1600px, calc(100% - 72px)); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: center; padding: 42px 0 38px; }
.direct-contact-section h2 { margin: 6px 0 8px; }
.direct-contact-section p:not(.eyebrow) { max-width: 620px; margin: 0; color: var(--muted); line-height: 1.6; }
.direct-contact-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
@media (max-width: 980px) { .direct-contact-section { width: min(840px, calc(100% - 40px)); } }
@media (max-width: 700px) { .direct-contact-section { width: min(100% - 28px, 640px); grid-template-columns: 1fr; gap: 18px; padding-top: 28px; } .direct-contact-actions { justify-content: flex-start; } }
.claim-explainer { border-left: 4px solid var(--teal); padding: 4px 0 4px 18px; color: var(--muted); }
.claim-explainer strong { display: block; margin-bottom: 8px; color: var(--ink); font-size: 18px; }
.claim-explainer p { margin: 0; line-height: 1.65; }
.claim-benefits { display: grid; gap: 18px; }
.claim-pulse { border: 1px solid rgba(14,90,99,.24); border-radius: var(--radius); padding: 18px; background: #f3fbf8; }
.claim-pulse span { display: block; margin-bottom: 6px; color: var(--brand); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.claim-pulse strong { display: block; margin-bottom: 7px; font-size: 20px; }
.claim-pulse p { margin: 0; color: var(--muted); line-height: 1.6; }
.claim-access { border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; background: #fff; }
.claim-access span { display: block; margin-bottom: 6px; color: var(--brand); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.claim-access strong { display: block; margin-bottom: 9px; font-size: 20px; }
.claim-access ul { margin: 0; padding-left: 19px; color: var(--muted); line-height: 1.65; }
.claim-state-panel { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; background: #fff; }
.claim-state-panel > span { color: var(--brand); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.claim-state-panel h2 { margin: 8px 0 10px; }
.claim-state-panel p { max-width: 720px; margin: 0 0 18px; color: var(--muted); line-height: 1.65; }
.claim-state-panel.is-approved { border-color: #bdeccf; background: var(--success-bg); }
.claim-state-panel.is-pending { border-color: #e6dba9; background: #fffdf2; }
.lead-form { display: grid; gap: 14px; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; background: #fff; box-shadow: var(--shadow); }
.lead-form input, .lead-form textarea, .lead-form select { width: 100%; border: 1px solid var(--line); border-radius: 6px; padding: 12px; background: #fff; color: var(--ink); }
.profile-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.booking-date-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.booking-guest-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.optional-label { color: var(--muted); font-size: 12px; font-weight: 500; }
.consent-field { display: grid !important; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 10px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.lead-form .consent-field input { width: 18px; height: 18px; margin: 1px 0 0; padding: 0; }
.field-help { margin: -2px 0 2px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.trap { position: absolute; left: -9999px; opacity: 0; }
.notice { grid-column: 1 / -1; border: 1px solid #bdeccf; background: var(--success-bg); color: var(--success); border-radius: var(--radius); padding: 14px 16px; font-weight: 800; }
.notice.error { border-color: #efc1bc; background: #fff0ee; color: #8a332c; }
.notice.info { border-color: #bddce7; background: #eef8fb; color: #14566d; }
/* Notices placed straight in <main> keep the page column like every section (Jan, 15. 10. 2026: they spanned the window). */
main > .notice { width: min(1180px, calc(100% - 40px)); margin: 0 auto 22px; box-sizing: border-box; }

.pulse-section { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 54px; align-items: center; }
.pulse-copy > p:not(.eyebrow) { margin: 20px 0 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.pulse-copy ul { display: grid; gap: 9px; margin: 24px 0 0; padding-left: 20px; color: var(--ink); line-height: 1.5; }
.pulse-dashboard-preview { overflow: hidden; border: 1px solid rgba(14,90,99,.28); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow); }
.pulse-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; color: #fff; background: var(--brand-strong); }
.pulse-preview-head div span, .pulse-preview-head div strong { display: block; }
.pulse-preview-head div span { margin-bottom: 4px; color: rgba(255,255,255,.72); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.pulse-preview-head div strong { font-size: 22px; }
.pulse-preview-head > span { border: 1px solid rgba(255,255,255,.3); border-radius: 999px; padding: 6px 9px; font-size: 12px; font-weight: 900; white-space: nowrap; }
.pulse-metrics { display: grid; grid-template-columns: 1fr 1fr; }
.pulse-metrics div { min-height: 108px; display: grid; align-content: center; gap: 7px; padding: 20px 22px; border-top: 1px solid var(--line); }
.pulse-metrics div:nth-child(odd) { border-right: 1px solid var(--line); }
.pulse-metrics span { color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.pulse-metrics strong { font-size: 18px; line-height: 1.25; }
.pulse-dashboard-preview > p { margin: 0; border-top: 1px solid var(--line); padding: 14px 22px; color: var(--muted); background: var(--soft); font-size: 13px; line-height: 1.5; }

.launch-progress { width: min(1180px, calc(100% - 40px)); margin: 0 auto 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 24px; align-items: end; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px; background: #fff; }
.launch-progress h2 { margin: 4px 0 6px; font-size: clamp(24px, 3vw, 36px); }
.launch-progress p { margin: 0; }
.launch-progress > strong { color: var(--brand); font-size: 28px; }
.launch-progress progress { grid-column: 1 / -1; width: 100%; height: 12px; border: 0; border-radius: 999px; overflow: hidden; background: #e8eef0; }
.launch-progress progress::-webkit-progress-bar { background: #e8eef0; }
.launch-progress progress::-webkit-progress-value { background: var(--brand); }
.launch-progress progress::-moz-progress-bar { background: var(--brand); }

.pulse-admin-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: var(--radius); background: #fff; overflow: hidden; }
.pulse-admin-summary article { padding: 20px; border-right: 1px solid var(--line); }
.pulse-admin-summary article:last-child { border-right: 0; }
.pulse-admin-summary span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.pulse-admin-summary strong { display: block; margin-top: 12px; font-size: 32px; }

.admin-profile-table td span, .muted { margin-top: 5px; color: var(--muted); font-size: 13px; line-height: 1.45; }

.pulse-report-hero { padding-bottom: 34px; }
.pulse-report-actions { margin-top: -12px; }
.pulse-report { width: min(1180px, calc(100% - 40px)); margin: 0 auto 64px; display: grid; gap: 22px; }
.pulse-report-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pulse-report-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: #fff; }
.pulse-report-card > span, .pulse-health-card span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.pulse-report-card strong { display: block; margin: 13px 0 7px; font-size: 38px; line-height: 1; }
.pulse-report-card em { display: block; min-height: 34px; color: var(--brand); font-size: 13px; font-style: normal; font-weight: 800; line-height: 1.35; }
.pulse-report-card p { margin: 14px 0 0; border-top: 1px solid var(--line); padding-top: 13px; color: var(--muted); font-size: 13px; line-height: 1.45; }
.pulse-report-insights { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pulse-health-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: #fff; }
.pulse-health-card > div { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.pulse-health-card strong { font-size: 30px; line-height: 1; }
.pulse-health-card progress { width: 100%; height: 10px; margin-top: 18px; border: 0; border-radius: 999px; overflow: hidden; background: #e8eef0; }
.pulse-health-card progress::-webkit-progress-bar { background: #e8eef0; }
.pulse-health-card progress::-webkit-progress-value { background: var(--brand); }
.pulse-health-card progress::-moz-progress-bar { background: var(--brand); }
.pulse-health-card p { margin: 16px 0 0; color: var(--ink); line-height: 1.55; }
.pulse-health-card small { display: block; margin-top: 12px; color: var(--muted); line-height: 1.45; }
.pulse-next-step { border-left: 5px solid var(--brand); padding: 25px 26px; background: #eef8f6; }
.pulse-next-step h2 { margin: 6px 0 10px; font-size: clamp(24px, 3vw, 34px); line-height: 1.15; }
.pulse-next-step > p:last-child { max-width: 820px; margin: 0; color: var(--muted); line-height: 1.55; }

#console-actions-title, #console-operations-title, #availability-outlook-title, #lead-inbox-title, #public-profile-title, #profile-photos-title, #property-amenities-title, #property-operations-title, #availability-offers-title, #booking-terms-title, #console-calendar-title, #units-title, #telegram, #upratovanie, #stay-length-title { scroll-margin-top: 212px; }

.console-calendar-grid { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.console-calendar-grid th, .console-calendar-grid td { min-width: 50px; height: 48px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; padding: 0; text-align: center; }
.console-calendar-grid thead th { height: 58px; color: var(--muted); background: #f5f7f8; font-size: 11px; text-transform: none; }
.console-calendar-grid thead th span, .console-calendar-grid thead th strong { display: block; }
.console-calendar-grid thead th strong { margin-top: 4px; color: var(--ink); font-size: 12px; }

.console-calendar-grid th:first-child { position: sticky; left: 0; z-index: 2; width: 210px; min-width: 210px; padding: 0 14px; text-align: left; background: #fff; box-shadow: 1px 0 0 var(--line); }
.console-calendar-grid thead th:first-child { z-index: 3; background: #f5f7f8; }
.console-calendar-grid tbody th strong, .console-calendar-grid tbody th span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.console-calendar-grid tbody th strong { color: var(--ink); font-size: 13px; text-transform: none; }
.console-calendar-grid tbody th span { margin-top: 4px; color: var(--muted); font-size: 10px; }
.console-calendar-grid td.available { background: #e5f4eb; }
.console-calendar-grid td.blocked { background: #f1c3bd; }
.console-calendar-grid td.today, .console-calendar-grid th.today { box-shadow: inset 2px 0 0 var(--brand), inset -2px 0 0 var(--brand); }
.console-calendar-grid td:hover { outline: 2px solid var(--ink); outline-offset: -2px; }
.console-property-settings { width: min(1180px, calc(100% - 40px)); margin: 0 auto 48px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 28px 0; }
.console-property-settings > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .8fr); gap: 28px; align-items: end; margin-bottom: 22px; }
.console-property-settings h2 { margin: 5px 0 7px; }
.console-property-settings header p:not(.eyebrow) { margin: 0; color: var(--muted); }
.console-property-settings header > strong { color: var(--muted); font-size: 13px; font-weight: 700; line-height: 1.55; }

.console-property-settings .button { width: fit-content; margin-top: 2px; }

.unit-c1 { --unit-color: #0f766e; --unit-tint: #e6f4f2; }
.unit-c2 { --unit-color: #1d4ed8; --unit-tint: #e8eefc; }
.unit-c3 { --unit-color: #7c3aed; --unit-tint: #f1eafd; }
.unit-c4 { --unit-color: #be185d; --unit-tint: #fbe8f1; }
.unit-c5 { --unit-color: #c2410c; --unit-tint: #fcede6; }
.unit-c6 { --unit-color: #4d7c0f; --unit-tint: #eef4e4; }
.unit-c7 { --unit-color: #92400e; --unit-tint: #f7ede3; }
.unit-c8 { --unit-color: #475569; --unit-tint: #edf0f4; }

.partner-console-page details > summary { min-height: 32px; box-sizing: border-box; padding-block: 7px; }

table { width: 100%; border-collapse: collapse; min-width: 860px; }
th, td { padding: 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { color: var(--muted); font-size: 12px; text-transform: uppercase; }
.stay-matcher-layout { width: min(1180px, calc(100% - 40px)); margin: 0 auto 84px; display: grid; grid-template-columns: minmax(280px, 340px) minmax(0, 1fr); gap: 28px; align-items: start; }
.stay-matcher-form { position: sticky; top: 92px; display: grid; gap: 18px; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: #fff; box-shadow: var(--shadow); }
.stay-matcher-form header h2, .stay-matcher-results h2 { margin: 0; font-size: 28px; }
.stay-matcher-form header p { margin: 6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.stay-matcher-fields { display: grid; gap: 13px; }
.stay-matcher-fields label { display: grid; gap: 7px; color: var(--ink); font-size: 13px; font-weight: 800; }
.stay-matcher-fields label small { color: var(--muted); font-weight: 600; }
.stay-matcher-fields input, .stay-matcher-fields select { width: 100%; min-width: 0; min-height: 46px; border: 1px solid var(--line); border-radius: 6px; padding: 0 12px; background: #fff; color: var(--ink); }
.stay-matcher-results { min-width: 0; }
.stay-matcher-empty { min-height: 310px; display: grid; align-content: center; gap: 10px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 34px; }
.stay-matcher-empty p { max-width: 620px; margin: 0; color: var(--muted); line-height: 1.6; }
.stay-matcher-results-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); margin-bottom: 16px; padding-bottom: 14px; }
.stay-matcher-results-head .eyebrow { margin-bottom: 7px; }
.stay-matcher-results-head > span { color: var(--muted); font-size: 13px; font-weight: 800; }
.stay-match-list { display: grid; gap: 14px; }
.stay-match-card { display: grid; gap: 18px; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; background: #fff; }
.stay-match-card > header { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.stay-match-card > header span { color: var(--teal); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.stay-match-card h3 { margin: 4px 0; font-size: 24px; }
.stay-match-card header p { margin: 0; color: var(--muted); }
.stay-match-card > header > strong { white-space: nowrap; color: var(--brand); font-size: 19px; }
.stay-match-evidence { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.stay-match-evidence > div { border-top: 1px solid var(--line); padding-top: 12px; }
.stay-match-evidence strong { font-size: 13px; }
.stay-match-evidence ul { margin: 8px 0 0; padding-left: 18px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.stay-match-card > .button { width: fit-content; }

.collection-directory { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 64px 0 18px; }
.collection-directory-head > div { max-width: 760px; }
.collection-directory-head p:not(.eyebrow) { margin: 16px 0 0; color: var(--muted); font-size: 17px; line-height: 1.6; }
.collection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.collection-card { position: relative; min-height: 360px; overflow: hidden; border-radius: var(--radius); background: #27383a; color: #fff; isolation: isolate; }
.collection-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.collection-card:hover img { transform: scale(1.025); }

.collection-card-copy { position: absolute; right: 0; bottom: 0; left: 0; display: grid; gap: 7px; padding: 28px; }
.collection-card-copy small { color: rgba(255,255,255,.8); font-size: 13px; font-weight: 800; }
.collection-card-copy strong { max-width: 520px; font-size: 32px; line-height: 1.08; text-wrap: balance; }
.collection-card-copy b { width: fit-content; margin-top: 7px; border-bottom: 1px solid rgba(255,255,255,.55); padding-bottom: 4px; font-size: 13px; }
.collection-card:focus-visible { outline: 4px solid var(--accent); outline-offset: 4px; }
.collection-hero { position: relative; min-height: min(560px, 66vh); display: grid; align-items: end; overflow: hidden; color: #fff; isolation: isolate; }
.collection-hero > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.collection-hero-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(6,25,31,.88) 0%, rgba(6,25,31,.58) 48%, rgba(6,25,31,.12) 100%); }
.collection-hero-copy { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 86px 0 52px; }
.collection-hero-copy h1 { max-width: 820px; margin: 0; font-size: clamp(42px, 6vw, 70px); line-height: 1; text-wrap: balance; }
.collection-hero-copy > p:not(.eyebrow) { max-width: 760px; margin: 20px 0 0; color: rgba(255,255,255,.86); font-size: 18px; line-height: 1.6; }
.collection-breadcrumbs { color: rgba(255,255,255,.76); }
.collection-breadcrumbs a { color: #fff; }
.collection-count { display: inline-flex; margin-top: 22px; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; padding: 8px 12px; background: rgba(6,25,31,.42); font-size: 13px; font-weight: 800; }
.collection-results { padding-top: 56px; }
.collection-results .section-head > div { max-width: 780px; }
.collection-results .section-head p:not(.eyebrow) { margin: 14px 0 0; }
.collection-results-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1120px) {
  .cards, .accommodation-grid, .listing-grid.favorites-grid, .collection-results-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .topbar { min-height: 68px; flex-wrap: wrap; gap: 12px; padding: 12px 20px; }
  .preview-banner { display: grid; gap: 2px; }
  .preview-banner + .topbar { top: 58px; }
  #console-actions-title, #console-operations-title, #availability-outlook-title, #lead-inbox-title, #public-profile-title, #profile-photos-title, #property-amenities-title, #property-operations-title, #availability-offers-title, #booking-terms-title, #console-calendar-title, #units-title, #telegram, #upratovanie, #stay-length-title { scroll-margin-top: 246px; }
  .nav { order: 3; width: 100%; overflow-x: auto; gap: 16px; padding-bottom: 2px; margin-left: 0; scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
  .nav-cta { margin-left: auto; }
  .hero { min-height: 700px; margin-top: -120px; padding-top: 120px; }
  .hero-inner, .split, .results-layout, .stay-matcher-layout, .detail-hero, .detail-grid, .owner-grid, .comparison-board, .form-section, .pricing-grid, .dashboard-stats, .review-principles, .revenue-rules, .admin-filters, .pulse-section, .plan-combinations, .console-unit-body, .console-create-unit, .console-guest-settings-grid, .owner-access-shell { grid-template-columns: 1fr; }
  .owner-access-shell { width: min(620px, calc(100% - 40px)); min-height: 0; gap: 30px; padding: 54px 0 70px; }
  
  .feeling-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .feeling-card { min-height: 390px; }
  .feeling-copy { padding: 20px; }
  
  .cards, .accommodation-grid, .listing-grid.favorites-grid, .related-stays-grid, .collection-results-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pulse-report-grid { grid-template-columns: 1fr 1fr; }
  
  
  
  .pulse-section { gap: 30px; }
  .pulse-admin-summary { grid-template-columns: 1fr 1fr; }
  .pulse-admin-summary article:nth-child(2) { border-right: 0; }
  .pulse-admin-summary article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .hero-copy h1 { font-size: 40px; }
  .region-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .locality-link-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .locality-overview { align-items: start; grid-template-columns: 1fr; gap: 20px; }
  .hero-search, .search-box { grid-template-columns: 1fr; }
  
  .section { padding: 54px 0; }
  
  .accommodation-section { padding-top: 28px; }
  .section-head, .owner-band, .footer { display: grid; }
  .footer { grid-template-columns: 1fr; align-items: start; gap: 20px; min-height: 0; padding-top: 34px; padding-bottom: 34px; }
  .footer-links { flex-wrap: wrap; justify-content: start; gap: 8px 14px; white-space: normal; }
  .footer-note { justify-self: start; }
  .cookie-bar { display: grid; bottom: 16px; }
  body.cookie-visible { padding-bottom: 172px; }
  .cookie-actions { justify-content: stretch; }
  .cookie-actions .button { flex: 1; }
  
  .filter-sidebar, .stay-matcher-form { position: static; }
  .partner-profile-info-grid { columns: 1; }
  .partner-info-block { margin-bottom: 22px; }
  
}
@media (max-width: 700px) {
  .owner-entry-actions, .owner-entry-actions .button { width: 100%; }
  .owner-access-intro h1 { font-size: 38px; }
  .listing-grid.favorites-grid, .related-stays-grid { grid-template-columns: 1fr; }
  .favorites-toolbar { align-items: stretch; }
  
  
  
  .profile-field-row, .booking-date-row { grid-template-columns: 1fr; }
  .detail-booking-head { display: grid; gap: 12px; }
  .detail-booking-form { grid-template-columns: 1fr; }
  .detail-booking-form > .consent-field,
  .detail-booking-form > .button,
  .detail-booking-form > .field-help { grid-column: 1; }
  .partner-profile-section { width: min(620px, calc(100% - 40px)); margin-bottom: 58px; }
  .partner-profile-head { display: grid; align-items: start; gap: 14px; }
  .partner-profile-head h2 { font-size: 30px; }
  .partner-profile-head > strong { width: fit-content; }
  .partner-unit-grid { grid-template-columns: 1fr; }
  .partner-unit-card { padding: 18px; }
  
  .partner-unit-facts { grid-template-columns: 1fr 1fr; }
  .partner-unit-facts div:last-child { grid-column: 1 / -1; }
  .detail-gallery { height: 420px; grid-template-columns: 1fr 1fr; grid-template-rows: 2fr 1fr 1fr; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .booking-guest-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cards, .accommodation-grid { grid-template-columns: 1fr; }
  .preview-banner { position: static; min-height: 0; padding: 9px 18px; font-size: 12px; }
  .preview-banner + .topbar { top: auto; }
  .topbar { position: static; display: grid; min-height: 0; grid-template-columns: 1fr; gap: 13px; padding: 18px 20px 14px; }
  .brand { gap: 9px; min-width: 0; font-size: 18px; }
  .brand-mark { width: 34px; height: 34px; }
  .nav { order: 3; width: 100%; gap: 16px; font-size: 15px; }
  .nav a { min-height: 40px; display: inline-flex; align-items: center; }
  .nav .nav-map-link { font-weight: 900; text-decoration: underline; text-underline-offset: 4px; }
  .nav-cta { width: 100%; margin-left: 0; min-height: 46px; font-size: 15px; }
  .hero { min-height: 0; margin-top: 0; padding-top: 0; align-items: start; }
  .hero-inner { padding: 52px 0 30px; gap: 26px; }
  
  .hero-search { grid-template-columns: 1fr 1fr; margin-top: 22px; }
  .hero-search input:not([type="hidden"]) { grid-column: 1 / -1; }
  .hero-search button { min-width: 0; padding: 0 8px; }
  .feeling-section { width: min(620px, calc(100% - 40px)); padding: 38px 0 6px; }
  .feeling-head { align-items: start; margin-bottom: 20px; }
  .feeling-head p:not(.eyebrow) { font-size: 16px; }
  
  .feeling-grid { grid-template-columns: 1fr; gap: 10px; }
  .feeling-card { min-height: 330px; }
  .feeling-copy { padding: 22px; }
  .collection-directory { width: min(620px, calc(100% - 40px)); padding: 44px 0 6px; }
  .collection-grid { grid-template-columns: 1fr; gap: 10px; }
  .collection-card { min-height: 310px; }
  .collection-card-copy { padding: 22px; }
  .collection-card-copy strong { font-size: 28px; }
  .collection-hero { min-height: 520px; align-items: end; }
  .collection-hero-shade { background: linear-gradient(180deg, rgba(6,25,31,.08) 18%, rgba(6,25,31,.9) 100%); }
  .collection-hero-copy { width: min(620px, calc(100% - 40px)); padding: 54px 0 34px; }
  .collection-hero-copy h1 { font-size: 40px; line-height: 1.04; }
  .collection-hero-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.55; }
  .collection-results-grid { grid-template-columns: 1fr; }
  .region-directory { width: min(620px, calc(100% - 40px)); padding: 44px 0 6px; scroll-margin-top: 20px; }
  .region-grid { grid-template-columns: 1fr; }
  .region-link { min-height: 78px; padding: 14px 16px; }
  .locality-directory { width: min(620px, calc(100% - 40px)); margin-bottom: 28px; padding: 20px 0; }
  .locality-directory-head { align-items: start; margin-bottom: 13px; }
  .locality-directory-head h2 { font-size: 22px; }
  .locality-link-grid { grid-template-columns: 1fr 1fr; }
  .locality-link-grid strong { white-space: normal; }
  .locality-overview { width: min(620px, calc(100% - 40px)); margin-bottom: 30px; padding: 20px 0; }
  .locality-overview h2 { font-size: 22px; }
  .locality-facts { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .locality-facts dd { font-size: 20px; }
  .footer-links a, .footer-link-button { min-height: 32px; display: inline-flex; align-items: center; }
  
  .page-hero { width: min(620px, calc(100% - 40px)); padding: 42px 0 28px; }
  .page-hero.compact h1 { font-size: clamp(30px, 8vw, 38px); line-height: 1.08; }
  .page-hero.compact p:not(.eyebrow) { font-size: 16px; line-height: 1.58; }
  .owner-band { padding: 48px 20px; gap: 24px; }
  .owner-band h2 { font-size: clamp(30px, 8vw, 40px); line-height: 1.08; }
  .owner-band p { font-size: 16px; line-height: 1.58; }
  
  
  
  .owner-grid, .pricing-grid, .dashboard-stats, .section, .queue-section { width: min(620px, calc(100% - 40px)); }
  .launch-progress { width: min(620px, calc(100% - 40px)); grid-template-columns: 1fr; padding: 20px; }
  .launch-progress > strong { font-size: 24px; }
  .launch-progress progress { grid-column: 1; }
  
  
  
  
  
  .legal-content { width: min(620px, calc(100% - 40px)); margin-bottom: 54px; }
  .legal-content .content-block { padding: 20px; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .pulse-metrics { grid-template-columns: 1fr; }
  .pulse-metrics div { min-height: 86px; }
  .pulse-metrics div:nth-child(odd) { border-right: 0; }
  .pulse-admin-summary { grid-template-columns: 1fr; }
  .pulse-admin-summary article { border-right: 0; border-bottom: 1px solid var(--line); }
  .pulse-admin-summary article:last-child { border-bottom: 0; }
  .pulse-report-grid, .pulse-report-insights { grid-template-columns: 1fr; }
  .pulse-report-card em { min-height: 0; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .console-property-settings > header { grid-template-columns: 1fr; gap: 10px; }
  
  
  
  #console-actions-title, #console-operations-title, #availability-outlook-title, #lead-inbox-title, #public-profile-title, #profile-photos-title, #property-amenities-title, #property-operations-title, #availability-offers-title, #booking-terms-title, #console-calendar-title, #units-title { scroll-margin-top: 92px; }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
}
  .stay-matcher-layout { width: min(100% - 24px, 620px); margin-bottom: 54px; gap: 20px; }
  .stay-matcher-form, .stay-match-card { padding: 18px; }
  .stay-matcher-results-head, .stay-match-card > header { align-items: flex-start; flex-direction: column; }
  .stay-match-evidence { grid-template-columns: 1fr; }
.stay-match-card > .button { width: 100%; }

.profile-map-visual { position: relative; height: clamp(280px, 25vw, 320px); overflow: hidden; border-radius: 12px; background: #eef4f1; }
.profile-map-visual .profile-osm-map { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; opacity: 0; transition: opacity .16s ease; }
.profile-map-visual.is-map-ready .profile-osm-map { opacity: 1; }
.profile-map-visual.is-map-ready .profile-map-fallback { display: none; }
.profile-map-fallback { position: absolute; inset: 0; display: grid; align-content: center; justify-items: start; gap: 7px; padding: 28px; color: #153d49; background: #eef4f1; }
.profile-map-fallback strong { font-size: 20px; }
.profile-map-fallback span, .profile-map-fallback small { color: #516e76; }
.profile-map-visual > p { position: absolute; right: 12px; bottom: 10px; z-index: 500; margin: 0; border-radius: 4px; padding: 4px 7px; background: rgba(255,255,255,.9); color: #243b48; font-size: 11px; }
.profile-map-visual > p a { color: inherit; }

@media (max-width: 700px) {
  .detail-page { overflow-x: clip; }
  .nav { gap: 12px; overflow-x: auto; scrollbar-width: none; font-size: 13px; }
  .nav::-webkit-scrollbar { display: none; }
  .detail-booking-section { width: min(100% - 28px, 640px); }
  .detail-booking-head { grid-template-columns: 1fr; min-width: 0; }
  .detail-booking-form { min-width: 0; padding: 20px; }
  
  
  
  
  
  
  
  
  .profile-map-visual { height: min(82vw, 320px); min-height: 260px; border-radius: 9px; }
  
  
  
}

/* Price on request (profile without a price "od") */
.booking-panel .detail-price.detail-price-on-request { font-size: 19px; color: #102f43; }
.booking-panel .detail-price-claim { display: block; margin: -4px 0 12px; color: var(--brand-strong); font-size: 13px; font-weight: 700; }

/* ===== Profile template (design 2026-10-09, all accommodations) ===== */
.detail-page { background: #fbfaf7; }
.ph { --ph-ink: #0f2233; --ph-teal: #0e5a63; --ph-red: #cf4a3c; --ph-line: #e3e7ea; --ph-radius: 14px;
  --ph-display: "HS Display", Georgia, "Times New Roman", serif;
  --ph-script: "HS Script", "Segoe Script", "Bradley Hand", "Brush Script MT", cursive;
  display: grid; grid-template-columns: minmax(0, 1fr) 286px; grid-template-areas: "main contact" "facts facts";
  gap: 26px 34px; width: min(1600px, calc(100% - 48px)); margin: 0 auto; padding: 22px 0 34px; color: var(--ph-ink); }
.ph-main { grid-area: main; min-width: 0; }
.ph-breadcrumbs { margin: 0 0 14px; font-size: 13px; }
.ph-head { display: flex; justify-content: space-between; gap: 28px; margin: 0 0 18px; }
.ph-title { min-width: 0; }
.ph-area { display: flex; align-items: center; gap: 18px; margin: 0 0 10px; color: #1b3a4b; font-size: 15px; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; }
.ph-area::after { content: ""; width: 52px; height: 1px; background: #9aa9b1; }
.ph-title .badge { min-height: 38px; gap: 9px; padding: 6px 16px 6px 8px; border-radius: 999px; font-size: 16px; font-weight: 700; letter-spacing: 0; }
.ph-title .badge .badge-icon { width: 24px; height: 24px; font-size: 14px; }
.ph-name { margin: 12px 0 8px; color: var(--ph-ink); font-family: var(--ph-display); font-size: clamp(44px, 5vw, 80px); font-weight: 700; letter-spacing: -.01em; line-height: .98; overflow-wrap: break-word; }
.ph-name.is-long-title { font-size: clamp(36px, 3.8vw, 60px); }
.ph-address { display: inline-flex; align-items: center; gap: 12px; color: var(--ph-teal); font-size: clamp(17px, 1.5vw, 22px); font-weight: 600; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.ph-address svg { flex: 0 0 auto; width: 26px; height: 26px; color: var(--ph-teal); }
.ph-source-note { margin: 12px 0 0; color: #66757f; font-size: 13px; }
.ph-aside { display: grid; align-content: start; justify-items: end; gap: 26px; min-width: 0; }
.ph-chips { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; }
.ph-chips span { border-radius: 999px; padding: 11px 19px; background: #eef1f1; color: #1d2b36; font-size: 15px; font-weight: 600; line-height: 1; }
.ph-stars { margin-left: 6px; color: #e3a72f; font-size: 26px; letter-spacing: 2px; line-height: 1; }
.ph-tagline { display: grid; justify-items: end; gap: 0; margin: 4px 6px 0 0; color: #6b7f86; font-family: var(--ph-script); font-size: clamp(22px, 2vw, 30px); line-height: 1.3; transform: rotate(-7deg); transform-origin: right center; }
.ph-tagline span:last-child { margin-right: 18px; }
.ph-tagline::after { content: ""; width: 44px; height: 1px; margin-top: 18px; background: #9aa9b1; transform: rotate(7deg); }
/* gallery: one large photo + up to six in a 2 x 3 grid */
.ph-gallery { display: grid; grid-template-columns: 1.88fr 1fr 1fr; grid-template-rows: repeat(3, 1fr); gap: 12px; height: clamp(380px, 33vw, 520px); }
.ph-photo { position: relative; display: block; min-width: 0; min-height: 0; overflow: hidden; border: 0; border-radius: var(--ph-radius); padding: 0; background: #e9ecec; cursor: zoom-in; }
.ph-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.ph-photo:hover img { transform: scale(1.025); }
.ph-photo-main { grid-row: 1 / span 3; grid-column: 1; }
.ph-count-1 { grid-template-columns: 1fr; }
.ph-count-2 { grid-template-columns: 1.88fr 1fr; }
.ph-count-2 .ph-photo:not(.ph-photo-main) { grid-row: 1 / span 3; }
.ph-count-3 { grid-template-columns: 1.88fr 1fr; }
.ph-count-3 .ph-photo:nth-child(2) { grid-row: 1 / span 2; }
.ph-count-4 { grid-template-columns: 1.88fr 1fr; }
.ph-count-5 .ph-photo:nth-child(4) { grid-row: 2 / span 2; grid-column: 2; }
.ph-count-5 .ph-photo:nth-child(5) { grid-row: 2 / span 2; grid-column: 3; }
.ph-count-6 .ph-photo:nth-child(6) { grid-row: 2 / span 2; grid-column: 3; }
.ph-caption { position: absolute; inset: auto 0 0; display: flex; align-items: center; gap: 14px; padding: 46px 16px 14px; color: #fff; text-align: left; background: linear-gradient(transparent, rgba(8, 16, 22, .62)); pointer-events: none; }
.ph-caption strong { overflow: hidden; font-size: 16px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.ph-counter { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; border-radius: 999px; padding: 5px 10px; background: rgba(15, 22, 28, .55); color: #fff; font-size: 14px; font-weight: 600; }
.ph-counter svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; }
.ph-photo-main .ph-caption { display: grid; justify-items: start; gap: 12px; padding: 60px 18px 22px; }
.ph-photo-main .ph-caption strong { font-size: 19px; }
.ph-photo-main .ph-counter { padding: 9px 16px; font-size: 18px; }
.ph-photo-main .ph-counter svg { width: 20px; height: 20px; }
.ph-arrow { position: absolute; top: 50%; left: 10px; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #fff; color: var(--ph-ink); box-shadow: 0 6px 18px rgba(0,0,0,.18); transform: translateY(-50%); }
.ph-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; }
.ph-show-all { position: absolute; right: 12px; bottom: 38px; display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 9px 16px; background: #fff; color: var(--ph-ink); font-size: 14px; font-weight: 700; box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.ph-show-all svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.4; }
/* without owner photos: map in the large field, nearby places in the small ones */
.ph-gallery-map .ph-photo-main { cursor: default; height: auto; border-radius: var(--ph-radius); }
.ph-gallery-map.ph-map-only { grid-template-columns: 1fr; }
.ph-gallery-map .ph-caption { z-index: 500; }
.ph .profile-map-visual > p.ph-map-credit { position: absolute; top: 10px; right: 10px; bottom: auto; left: auto; max-width: calc(100% - 20px); z-index: 500; margin: 0; border-radius: 4px; padding: 3px 7px; background: rgba(255,255,255,.9); font-size: 11px; }
.ph-place { display: grid; align-content: center; gap: 6px; padding: 18px; cursor: default; background: #fff; border: 1px solid var(--ph-line); }
.ph-place svg { width: 22px; height: 22px; fill: none; stroke: var(--ph-teal); stroke-width: 2; }
.ph-place strong { font-size: 15px; line-height: 1.25; }
.ph-place span { color: #66757f; font-size: 13px; }
.ph-places-credit { grid-column: 2 / -1; align-self: end; margin-top: -8px; color: #7b8a93; font-size: 11px; }
.ph-gallery-text { display: block; height: auto; }
.ph-region-card { border-radius: var(--ph-radius); padding: 30px; background: #fff; border: 1px solid var(--ph-line); }
.ph-region-card p:not(.eyebrow) { max-width: 70ch; font-size: 17px; line-height: 1.6; }
.ph-region-card small { color: #7b8a93; }
/* contact card */
.ph-contact { grid-area: contact; position: relative; display: grid; align-content: start; gap: 10px; overflow: hidden; border-radius: 18px; padding: 24px 18px 26px; background: #fff; box-shadow: 0 14px 40px rgba(15, 34, 51, .1); }
.ph-contact-label { color: #4d5c66; font-size: 13px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.ph-price { margin: 4px 0 8px; color: var(--ph-ink); font-size: 30px; font-weight: 700; line-height: 1.1; }
.ph-price.detail-price-on-request { font-size: 24px; }
.ph-btn { display: flex; align-items: center; gap: 14px; min-height: 52px; border: 1px solid var(--ph-line); border-radius: 10px; padding: 0 16px; background: #fff; color: var(--ph-ink); font-size: 16px; font-weight: 600; text-align: left; cursor: pointer; }
.ph-btn svg { flex: 0 0 auto; width: 22px; height: 22px; fill: none; stroke: var(--ph-teal); stroke-width: 2; }
.ph-btn:hover { border-color: #b9c6cc; }
.ph-btn-primary { justify-content: center; border-color: var(--ph-red); background: var(--ph-red); color: #fff; }
.ph-btn-primary svg { stroke: #fff; }
.ph-btn-primary:hover { background: #b93d30; border-color: #b93d30; }
.ph-btn-email { font-size: 14px; overflow-wrap: anywhere; }
.ph-btn-favorite { justify-content: center; border-color: #f3c6cc; border-radius: 999px; background: #fdf1f2; color: #c43a4b; }
.ph-heart { font-size: 22px; line-height: 1; }
.ph-btn-favorite.is-favorite .ph-heart { color: #d1343f; }
.ph-google-g { flex: 0 0 auto; width: 22px; font-size: 20px; font-weight: 800; text-align: center; background: conic-gradient(from -45deg, #ea4335 0 25%, #4285f4 0 50%, #34a853 0 75%, #fbbc05 0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ph-btn .ph-btn-trailing { margin-left: auto; width: 16px; height: 16px; stroke: var(--ph-ink); }
.ph-contact-empty { margin: 0; color: #66757f; font-size: 14px; }
.ph-contact-note { display: grid; gap: 2px; margin: 26px 0 0 8px; color: #6b7f86; font-family: var(--ph-script); font-size: 23px; line-height: 1.25; transform: rotate(-6deg); }
.ph-contact-note span:last-child { margin-left: 4px; }
.ph-contact-note::after { content: ""; width: 44px; height: 1px; margin-top: 16px; background: #9aa9b1; transform: rotate(6deg); }
.ph-leaf { position: absolute; right: -6px; bottom: -8px; width: 92px; height: 108px; fill: #dfe7e1; stroke: #c7d3cb; stroke-width: 1; pointer-events: none; }
/* highlights */
.ph-highlights.profile-fact-strip { grid-area: facts; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0; border: 0; border-radius: 18px; padding: 26px 10px; background: #fff; box-shadow: 0 10px 34px rgba(15, 34, 51, .08); }
.ph-highlights article { display: flex; align-items: center; gap: 20px; min-width: 0; border: 0; border-left: 1px solid var(--ph-line); padding: 4px 28px; background: transparent; }
.ph-highlights article:first-child { border-left: 0; }
.ph-highlights svg { flex: 0 0 auto; width: 38px; height: 38px; fill: none; stroke: var(--ph-teal); stroke-width: 1.7; }
.ph-highlights article:last-child svg { stroke: #9b2f2a; }
.ph-highlights span { display: grid; gap: 4px; min-width: 0; }
.ph-highlights strong { overflow: hidden; color: var(--ph-ink); font-size: 17px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.ph-highlights small { overflow: hidden; color: #66757f; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.profile-regional-text { color: #3d4b55; }
@media (max-width: 900px) {
  .ph { grid-template-columns: minmax(0, 1fr); grid-template-areas: "main" "contact" "facts"; }
  .ph-contact { max-width: 560px; }
  .ph-highlights.profile-fact-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
  .ph-highlights article:nth-child(4) { border-left: 0; }
}
@media (max-width: 760px) {
  .ph { width: calc(100% - 32px); gap: 20px; padding-top: 14px; }
  .ph-head { flex-direction: column; gap: 14px; }
  .ph-aside { justify-items: start; gap: 14px; }
  .ph-chips { justify-content: flex-start; }
  .ph-chips span { padding: 9px 14px; font-size: 14px; }
  .ph-tagline { justify-items: start; transform: rotate(-4deg); transform-origin: left center; }
  .ph-tagline::after { display: none; }
  .ph-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; grid-auto-rows: 120px; height: auto; }
  .ph-gallery .ph-photo-main { grid-column: 1 / -1; grid-row: auto; height: min(72vw, 300px); }
  .ph-gallery .ph-photo:not(.ph-photo-main) { grid-row: auto; grid-column: auto; }
  .ph-place { padding: 12px; }
  .ph-places-credit { grid-column: 1 / -1; margin-top: 0; }
  .ph-caption strong { font-size: 13px; }
  .ph-photo:not(.ph-photo-main) .ph-caption { padding: 26px 8px 8px; gap: 6px; }
  .ph-photo:not(.ph-photo-main) .ph-counter { padding: 3px 7px; font-size: 12px; }
  .ph-show-all { bottom: 34px; right: 6px; padding: 6px 10px; font-size: 12px; }
  .ph-contact { max-width: none; }
  .ph-highlights.profile-fact-strip { grid-template-columns: minmax(0, 1fr); padding: 8px 18px; }
  .ph-highlights article { border-left: 0; border-top: 1px solid var(--ph-line); padding: 14px 0; }
  .ph-highlights article:first-child { border-top: 0; }
  .ph-highlights svg { width: 30px; height: 30px; }
}
@media (max-width: 760px) {
  .ph-count-2 .ph-photo:not(.ph-photo-main), .ph-count-3 .ph-photo:nth-child(2), .ph-count-5 .ph-photo:nth-child(4), .ph-count-5 .ph-photo:nth-child(5), .ph-count-6 .ph-photo:nth-child(6) { grid-row: auto; grid-column: auto; }
}

/* ===== One page container for every page type (header = content = footer) ===== */
:root { --page-max: 1180px; --gutter: 28px; }
@media (max-width: 980px) { :root { --gutter: 20px; } }
.topbar, .footer, .owner-band { padding-left: max(var(--gutter), calc((100% - var(--page-max)) / 2)); padding-right: max(var(--gutter), calc((100% - var(--page-max)) / 2)); }
.hero-inner, .search-box, .region-directory, .feeling-section, .feeling-head, .locality-directory, .locality-overview, .section, .page-hero,
.favorites-section, .related-stays-section, .results-layout, .detail-grid, .owner-grid, .partner-profile-section, .detail-booking-section,
.direct-contact-section, .pricing-grid, .dashboard-stats, .ph, .queue-section, .admin-actions, .launch-progress, .readiness-summary,
.readiness-list, .verification-summary, .pulse-report, .console-notice, .claim-access-link, .claim-review-list, .console-readiness,
.console-availability-outlook, .console-operations, .console-calendar, .console-property-settings {
  width: min(var(--page-max), calc(100% - 2 * var(--gutter)));
  margin-left: auto; margin-right: auto;
}
.feeling-head { width: 100%; }
@media (min-width: 901px) { .ph { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px 28px; } }

/* ===== Profile bottom cards (2026-10-09): same header, min 13 px, no empty slots ===== */
.detail-grid.pc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; margin-top: 8px; margin-bottom: 64px; }
.pc-grid .pc { display: flex; flex-direction: column; gap: 14px; min-width: 0; border: 1px solid var(--line); border-radius: 14px; padding: 24px 26px; background: #fff; color: var(--ink); }
.pc-grid .pc-wide { grid-column: 1 / -1; }
.pc-grid .pc-head { display: grid; gap: 4px; }
.pc-grid .pc-eyebrow { margin: 0; color: var(--brand); font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.pc-grid .pc-head h2 { margin: 0; font-size: 20px; line-height: 1.25; }
.pc-grid .pc-sub { margin: 0; color: #66757f; font-size: 14px; }
.pc-grid .pc-text { margin: 0; color: #3d4b55; font-size: 16px; line-height: 1.6; }
.pc-grid .pc-facts { display: grid; margin: 0; }
.pc-grid .pc-facts div { display: flex; justify-content: space-between; gap: 18px; border-top: 1px solid var(--line); padding: 10px 0; font-size: 15px; }
.pc-grid .pc-facts dt { color: #66757f; }
.pc-grid .pc-facts dd { margin: 0; font-weight: 600; text-align: right; }
.pc-grid .pc-facts a { color: var(--brand); }
.pc-grid .pc-list { display: grid; margin: 0; padding: 0; list-style: none; }
.pc-grid .pc-list li { display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid var(--line); padding: 10px 0; font-size: 15px; }
.pc-grid .pc-list li span { color: var(--ink); font-weight: 600; }
.pc-grid .pc-list li b { flex: 0 0 auto; color: #4d5c66; font-weight: 600; white-space: nowrap; }
.pc-grid .pc-source { margin-top: auto; color: #7b8a93; font-size: 13px; }
.pc-grid .pc-source a { color: inherit; text-decoration: underline; }
.pc-grid .pc-routes { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pc-grid .pc-routes li { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 12px; align-items: start; color: #4d5c66; font-size: 15px; line-height: 1.45; }
.pc-grid .pc-routes svg { width: 24px; height: 24px; fill: none; stroke: var(--brand); stroke-width: 1.9; }
.pc-grid .pc-routes strong { display: block; color: var(--ink); font-size: 15px; }
.pc-grid .pc-weather-days { display: grid; flex: 1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pc-grid .pc-weather-days div { display: grid; justify-items: center; align-content: center; gap: 8px; border-radius: 12px; padding: 18px 8px; background: #f4f7f7; text-align: center; }
.pc-grid .pc-weather-days b { font-size: 15px; }
.pc-grid .pc-weather-days svg { width: 38px; height: 38px; fill: none; stroke: var(--brand); stroke-width: 1.7; }
.pc-grid .pc-weather-days strong { font-size: 19px; font-weight: 800; }
.pc-grid .pc-weather-days small { color: #66757f; font-size: 13px; line-height: 1.35; }
.pc-grid .pc-event-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.pc-grid .pc-event-list a { display: flex; align-items: center; gap: 14px; height: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; color: var(--ink); }
.pc-grid .pc-event-list a:hover { border-color: #b9c6cc; }
.pc-grid .pc-date { display: grid; flex: 0 0 auto; place-items: center; align-content: center; width: 58px; height: 58px; border-radius: 10px; background: #e9f2f2; color: var(--brand-strong); }
.pc-grid .pc-date small { font-size: 13px; font-weight: 700; text-transform: uppercase; }
.pc-grid .pc-date b { font-size: 15px; }
.pc-grid .pc-event-copy { display: grid; gap: 4px; min-width: 0; }
.pc-grid .pc-event-copy strong { font-size: 15px; line-height: 1.3; }
.pc-grid .pc-event-copy small { color: #66757f; font-size: 13px; }
.pc-grid .pc-lang { display: inline-block; margin-left: 4px; border-radius: 4px; padding: 0 6px; background: #eef1f1; color: #4d5c66; font-size: 13px; font-style: normal; font-weight: 700; vertical-align: 1px; }
.pc-grid .pc-more { font-size: 15px; }
.pc-grid .pc-owner { flex-direction: row; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 22px; background: #f8faf9; }
.pc-grid .pc-owner p { margin: 0; color: #3d4b55; font-size: 15px; line-height: 1.5; }
.pc-grid .pc-owner .managed-profile-status, .pc-grid .pc-owner .pending-profile-status { display: inline-flex; align-items: center; gap: 6px; margin-right: 8px; border-radius: 999px; padding: 4px 12px; background: #15935a; color: #fff; font-size: 14px; }
.pc-grid .pc-owner .pending-profile-status { background: #b88a36; }
.pc-grid .pc-owner-link { flex: 0 0 auto; color: var(--brand); font-size: 15px; font-weight: 700; }
@media (max-width: 1000px) {
  .pc-grid .pc-event-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .detail-grid.pc-grid { grid-template-columns: minmax(0, 1fr); }
  .pc-grid .pc { padding: 20px 18px; }
  .pc-grid .pc-event-list { grid-template-columns: minmax(0, 1fr); }
  .pc-grid .pc-owner { flex-direction: column; align-items: flex-start; }
  .pc-grid .pc-weather-days { gap: 8px; }
}
.pc-grid .pc-owner .managed-profile-status { margin-top: 0; }
.pc-grid .pc-owner .managed-profile-status span { width: auto; height: auto; background: none; font-size: 14px; }
.pc-grid .pc-nearby .pc-list li span, .pc-grid .pc-nearby .pc-list li b { font-size: 15px; }

/* ===== Units: 4:3 photos, one facts line with icons, chips at the bottom (2026-10-09) ===== */
.unit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; margin: 18px 0 28px; }
.unit-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.unit-card .unit-photos.detail-gallery { display: flex; gap: 0; height: auto; aspect-ratio: 4 / 3; margin: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 0; background: #e9ecec; grid-template-columns: none; grid-template-rows: none; }
.unit-card .unit-photos.detail-gallery::-webkit-scrollbar { display: none; }
.unit-card .unit-photo { position: relative; flex: 0 0 100%; width: 100%; height: 100%; border: 0; padding: 0; background: none; cursor: zoom-in; scroll-snap-align: start; }
.unit-card .unit-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.unit-card .unit-photo-count { position: absolute; right: 10px; bottom: 10px; border-radius: 999px; padding: 3px 10px; background: rgba(15, 22, 28, .6); color: #fff; font-size: 13px; font-weight: 600; }
.unit-card .unit-body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 18px 20px 20px; }
.unit-card header { display: grid; gap: 3px; }
.unit-card .unit-type { color: var(--brand); font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.unit-card h3 { margin: 0; color: var(--ink); font-size: 18px; font-weight: 800; line-height: 1.25; }
.unit-card .unit-facts { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0; color: #3d4b55; font-size: 14px; }
.unit-card .unit-facts > span { display: inline-flex; align-items: center; gap: 6px; }
.unit-card .unit-facts svg { width: 18px; height: 18px; fill: none; stroke: var(--brand); stroke-width: 1.9; }
.unit-card .unit-dot { color: #9aa9b1; }
.unit-card .unit-beds { margin: 0; color: #3d4b55; font-size: 14px; line-height: 1.45; }
.unit-card .partner-unit-price { margin: 0; font-size: 15px; font-weight: 700; }
.unit-card .unit-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 6px; }
.unit-card .unit-chips span { border-radius: 999px; padding: 4px 10px; background: #eef1f1; color: #33434e; font-size: 13px; font-weight: 600; }
.unit-card .unit-chips .unit-chip-more { background: #e2e8ea; }
@media (max-width: 1099px) { .unit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .unit-grid { grid-template-columns: minmax(0, 1fr); } }

/* ===== Self-hosted fonts (SIL OFL 1.1, see assets/fonts/OFL-*.txt) ===== */
@font-face { font-family: "HS Display"; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/playfair-display-latin-ext-700-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "HS Display"; font-style: normal; font-weight: 700; font-display: swap; src: url("/assets/fonts/playfair-display-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "HS Script"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/dancing-script-latin-ext-400-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "HS Script"; font-style: normal; font-weight: 400; font-display: swap; src: url("/assets/fonts/dancing-script-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
.unit-card .unit-photos.detail-gallery, .unit-card .unit-photos.detail-gallery > *, .unit-card .unit-photo { box-shadow: none; border-radius: 0; }
.ph-highlights strong, .ph-highlights small { white-space: normal; overflow: visible; text-overflow: clip; }
.ph-highlights article { padding: 4px 20px; gap: 14px; }
/* Profile details 2026-10-09 (2nd round): H1 ≤ 56 px, aligned address, even contact rows */
.ph .ph-name { font-size: clamp(34px, 4vw, 56px); line-height: 1.04; }
.ph .ph-name.is-long-title { font-size: clamp(30px, 3.2vw, 44px); }
.ph .ph-address { gap: 8px; }
.ph .ph-address svg { width: 22px; height: 22px; }
.ph .ph-btn-email { font-size: 16px; }
.ph .ph-btn-email { overflow-wrap: anywhere; line-height: 1.25; }
.ph .ph-photo:not(.ph-photo-main) .ph-caption { padding-left: 14px; }
@media (min-width: 901px) {
  .ph-highlights.ph-hl-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ph-highlights.ph-hl-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ph-highlights.ph-hl-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ph .ph-btn-email { font-size: 15px; overflow-wrap: normal; }
.ph .ph-btn-email .ph-btn-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ===== Listing: surroundings, pagination, trust strip, trips box (2026-10-09) ===== */
.card-distance { margin: 4px 0 0; color: var(--brand); font-size: 13px; font-weight: 700; }
.listing-divider { grid-column: 1 / -1; margin: 10px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--ink); font-size: 17px; }
.surroundings-switch { display: inline-flex; flex-wrap: wrap; gap: 4px; margin: 0 0 14px; padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.surroundings-switch a { min-height: 34px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 999px; color: var(--muted); font-size: 13px; font-weight: 800; text-decoration: none; }
.surroundings-switch a[aria-current="true"] { background: var(--brand); color: #fff; }
.surroundings-switch a:hover { color: var(--brand); }
.surroundings-switch a[aria-current="true"]:hover { color: #fff; }
html { scroll-padding-top: 96px; }
.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 8px; background: var(--brand); color: #fff; font-weight: 700; }
.skip-link:focus { top: 12px; }
.listing-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 14px; margin: 18px 0 4px; }
.listing-pager-status { width: 100%; text-align: center; color: var(--muted); font-size: 13px; }
.listing-pager a[aria-busy="true"] { opacity: .7; pointer-events: none; }
.trips-box { margin-top: 18px; padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.trips-box h2 { margin: 0 0 4px; font-size: 17px; }
.trips-box p { margin: 0 0 8px; color: var(--muted); font-size: 13px; }
.trips-box ul { margin: 0 0 10px; padding: 0; list-style: none; display: grid; gap: 6px; }
.trips-box li a { color: var(--brand); font-size: 14px; font-weight: 700; }
.footer-end { justify-self: end; display: flex; align-items: center; gap: 16px; }
.footer-social { display: inline-flex; align-items: center; gap: 6px; color: var(--brand); font-size: 12px; font-weight: 900; text-decoration: none; }
.footer-social svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.footer-social:hover span { text-decoration: underline; }

@media (max-width: 900px) {
  .footer-end { justify-self: start; }
  .surroundings-switch { display: flex; border-radius: var(--radius); }
  .surroundings-switch a { flex: 1 1 auto; justify-content: center; border-radius: 6px; }
}

/* ===== Owner's social network, share (2026-10-09) ===== */
.contact-mini a.contact-social { gap: 5px; }
.contact-mini a.contact-social svg, .ph-share-icon svg { width: 15px; height: 15px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ph-name-row { display: flex; align-items: flex-start; gap: 10px; }
.ph-name-row .ph-name { min-width: 0; }
.ph-share-icon { flex: 0 0 auto; width: 40px; height: 40px; margin-top: 6px; display: inline-grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--brand); cursor: pointer; }
.ph-share-icon:hover { border-color: var(--brand); }
.ph-share-icon svg { width: 18px; height: 18px; }
.share-toast { position: fixed; left: 50%; bottom: 24px; z-index: 1200; max-width: calc(100% - 32px); margin: 0; padding: 10px 16px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 700; overflow-wrap: anywhere; opacity: 0; transform: translate(-50%, 8px); transition: opacity .2s, transform .2s; pointer-events: none; }
.share-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.ph-price .price-unit { font-size: .5em; font-weight: 700; letter-spacing: 0; color: var(--muted); white-space: nowrap; }
.ph-name-row { align-items: center; }
.ph-share-icon { margin-top: 0; }

/* ===== Logo „Domček so svetlom“ (Jan, 9. 10. 2026) ===== */
img.brand-mark, svg.brand-mark { display: block; width: 48px; height: 48px; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
/* Svetluška (16. 10. 2026): the firefly in the house breathes – the glow swells, it floats a little and now and then
   flutters its wings. Parts are named in assets/brand/ikona.svg; data-firefly="home" is the resting state (a later
   state lets it fly out as the assistant). Nothing moves for visitors who ask for reduced motion. */
.brand-mark-live .hs-firefly, .brand-mark-live .hs-firefly-halo, .brand-mark-live .hs-firefly-wings { transform-box: view-box; }
.brand-mark-live .hs-firefly-halo { transform-origin: 32px 40px; animation: hs-firefly-glow 3.6s ease-in-out infinite; }
.brand-mark-live .hs-firefly { animation: hs-firefly-float 5.4s ease-in-out infinite; }
.brand-mark-live .hs-firefly-wings { transform-origin: 32px 36px; animation: hs-firefly-flutter 7.2s ease-in-out infinite; }
.brand:hover .brand-mark-live .hs-firefly-halo { animation-duration: 1.4s; }
@keyframes hs-firefly-glow { 0%, 100% { opacity: .16; transform: scale(.9); } 50% { opacity: .42; transform: scale(1.12); } }
@keyframes hs-firefly-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.2px); } }
@keyframes hs-firefly-flutter { 0%, 88%, 100% { transform: scaleY(1); } 90% { transform: scaleY(.55); } 92% { transform: scaleY(1); } 94% { transform: scaleY(.55); } 96% { transform: scaleY(1); } }
@media (prefers-reduced-motion: reduce) { .brand-mark-live .hs-firefly, .brand-mark-live .hs-firefly-halo, .brand-mark-live .hs-firefly-wings { animation: none; } }
/* Ján, 18. 10. 2026: the flight – the firefly leaves the house, circles over the page and comes back waving. */
.brand-mark-live.is-away .hs-firefly { visibility: hidden; }
.hs-firefly-flyer { position: fixed; z-index: 1300; top: 0; left: 0; overflow: visible; pointer-events: none; transform-origin: 50% 62%; filter: drop-shadow(0 0 6px rgba(244,183,64,.85)); will-change: transform; }
.hs-firefly-flyer .hs-firefly-halo { opacity: .45; }
.hs-firefly-flyer .hs-firefly-wings { transform-box: view-box; transform-origin: 32px 36px; animation: hs-firefly-buzz .14s linear infinite; }
@keyframes hs-firefly-buzz { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.45); } }
.brand-mark-live.is-landed .hs-firefly-wings { animation: hs-firefly-wave 1.2s ease-in-out 1; }
.brand-mark-live.is-landed .hs-firefly-halo { animation: hs-firefly-glow 1.2s ease-in-out 1; }
@keyframes hs-firefly-wave { 0%, 100% { transform: scaleY(1) rotate(0); } 15%, 45%, 75% { transform: scaleY(.4) rotate(-6deg); } 30%, 60%, 90% { transform: scaleY(1) rotate(6deg); } }
@media (prefers-reduced-motion: reduce) { .hs-firefly-flyer { display: none; } }
.footer-brand img.brand-mark { width: 44px; height: 44px; }
.stealth-card img.brand-mark { width: 44px; height: 44px; }
.brand-name { font-family: "HS Display", Georgia, "Times New Roman", serif; font-weight: 700; letter-spacing: 0; color: #13302e; }
.brand .brand-name { font-size: 22px; line-height: 1; }
.footer-brand strong.brand-name { font-size: 18px; }
.brand-tld { color: #b9862f; }
@media (max-width: 900px) {
  .brand .brand-name { font-size: 20px; }
  img.brand-mark, svg.brand-mark { width: 40px; height: 40px; }
}
.footer-brand .brand-tld { display: inline; margin: 0; font-size: inherit; line-height: inherit; }

/* ===== Trust strip (Jan's design, 9. 10. 2026) ===== */
.trust-band { width: min(var(--page-max), calc(100% - 2 * var(--gutter))); margin: 28px auto 0; display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); gap: 34px; align-items: center; padding: 26px 30px; border: 1px solid #ebe4d6; border-radius: 18px; background: radial-gradient(circle at 70px 50%, #fff1cf 0, rgba(255, 241, 207, 0) 190px), #f7f4ee; color: #13302e; }
.trust-band-head { display: flex; align-items: center; gap: 16px; max-width: 340px; }
.trust-band-head img { flex: none; width: 58px; height: 58px; }
.trust-band-head strong { font-family: "HS Display", Georgia, serif; font-size: 24px; line-height: 1.2; font-weight: 700; }
.trust-band-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.trust-band-points li { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid #efe9de; border-radius: 14px; background: #fff; }
.trust-icon { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #fff4dc; color: #164e4a; }
.trust-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.trust-band-points b { display: block; font-size: 15px; line-height: 1.25; }
.trust-band-points small { display: block; margin-top: 3px; color: #5a6b69; font-size: 13px; line-height: 1.35; }
.trust-tile { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 224px; padding: 22px 20px; border-radius: var(--radius); background: #164e4a; color: #fff; }
.trust-tile::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, rgba(244, 183, 64, .33) 0, rgba(244, 183, 64, 0) 70%); pointer-events: none; }
.trust-tile-mark { width: 46px; height: 46px; }
.trust-tile-title { margin: 14px 0; font-family: "HS Display", Georgia, serif; font-size: 21px; line-height: 1.22; font-weight: 700; }
.trust-tile ul { position: relative; z-index: 1; display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; font-size: 14px; font-weight: 600; }
.trust-tile li { display: flex; align-items: center; gap: 9px; }
.trust-check { flex: none; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #f4b740; color: #164e4a; }
.trust-check svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1100px) {
  .trust-band { grid-template-columns: 1fr; gap: 18px; }
  .trust-band-head { max-width: none; }
}
@media (max-width: 699px) {
  .trust-band { padding: 20px 18px; border-radius: 16px; background: radial-gradient(circle at 40px 40px, #fff1cf 0, rgba(255, 241, 207, 0) 140px), #f7f4ee; gap: 14px; }
  .trust-band-head img { width: 44px; height: 44px; }
  .trust-band-head strong { font-size: 20px; }
  .trust-band-points { grid-template-columns: 1fr; gap: 10px; }
  .trust-band-points li { align-items: center; padding: 10px 12px; }
  .trust-band-points small { display: none; }
}

/* Phone header: small "Pridať" button next to the logo, content starts sooner (Jan, 9. 10. 2026). */
@media (max-width: 699px) {
  .topbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 12px; padding-top: 12px; padding-bottom: 8px; }
  .topbar .brand { grid-column: 1; grid-row: 1; min-width: 0; }
  .topbar .nav-cta { grid-column: 2; grid-row: 1; width: auto; min-height: 36px; margin-left: 0; display: inline-flex; align-items: center; padding: 7px 11px; font-size: 13px; }
  .topbar .nav { grid-column: 1 / -1; grid-row: 2; }
  .topbar .nav a { min-height: 36px; }
}
@media (max-width: 400px) {
  .nav-cta-long { display: none; }
  .brand .brand-name { font-size: 19px; }
}

/* Region page: 12 largest places first, the rest on request (long lists pushed results far down on phones). */
.locality-more { margin-top: 10px; }
.locality-more summary { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--brand); font-size: 14px; font-weight: 800; cursor: pointer; list-style: none; }
.locality-more summary::-webkit-details-marker { display: none; }
.locality-more[open] summary { margin-bottom: 10px; }

/* Phones: filters behind one button, favourites in the menu, a smaller cookie bar (Jan, 10. 10. 2026). */
.filters-panel > summary { display: none; }
@media (max-width: 699px) {
  .filters-panel > summary { display: flex; align-items: center; justify-content: space-between; min-height: 46px; padding: 0 16px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--brand); font-size: 15px; font-weight: 800; cursor: pointer; list-style: none; }
  .filters-panel > summary::-webkit-details-marker { display: none; }
  .filters-panel > summary::after { content: "+"; font-size: 20px; line-height: 1; }
  .filters-panel[open] > summary { margin-bottom: 10px; }
  .filters-panel[open] > summary::after { content: "–"; }
  .cookie-bar { display: flex; flex-wrap: wrap; gap: 8px 12px; bottom: 10px; width: calc(100% - 20px); padding: 10px 12px; }
  .cookie-bar p { flex: 1 1 100%; font-size: 13px; line-height: 1.35; }
  .cookie-bar .cookie-actions { display: flex; gap: 8px; width: 100%; }
  .cookie-bar .cookie-actions .button { flex: 1 1 0; min-height: 38px; padding: 0 10px; }
}
@media (max-width: 699px) {
  /* Guests see results first; the owner offer stays in the footer band and the menu button. */
  .filter-sidebar .sidebar-promo { display: none; }
  /* Ján, 18. 10. 2026: on a phone the results come right after the filter; trip tips follow the results. */
  .results-layout > .filter-sidebar { display: contents; }
  .results-layout > .filter-sidebar > .filters-panel { order: 0; }
  .results-layout > .universal-listing-map { order: 1; }
  .results-layout > .filter-sidebar > .trips-box { order: 2; }
}

/* ===== Home page v2 (Jan + Web-siet, 10. 10. 2026): real photos only ===== */
.home-hero { min-height: 600px; }
.home-hero .hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.home-hero .hero-bg { background: linear-gradient(90deg, rgba(6,25,31,.88) 0%, rgba(6,25,31,.62) 45%, rgba(6,25,31,.18) 80%); transform: none; }
.home-hero .hero-inner { grid-template-columns: minmax(0, 860px); padding: 130px 0 64px; }
.home-hero .hero-copy h1 { max-width: 900px; font-size: clamp(38px, 4.6vw, 62px); line-height: 1.04; }
.home-hero .hero-search { grid-template-columns: minmax(0, 1fr) auto auto; margin-top: 26px; }
.search-suggest { position: relative; min-width: 0; }
.search-suggest input { width: 100%; }
.search-suggest-list { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; right: 0; margin: 0; padding: 6px; list-style: none; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 18px 40px rgba(13,34,45,.22); color: var(--ink); }
.search-suggest-list[hidden] { display: none; }
.search-suggest-list li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 6px; cursor: pointer; font-size: 15px; }
.search-suggest-list li small { color: var(--muted); font-size: 12px; white-space: nowrap; }
.search-suggest-list li[aria-selected="true"], .search-suggest-list li:hover { background: #eef6f5; }
.hero-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; font-size: 14px; }
.hero-quick span { color: rgba(255,255,255,.78); font-weight: 700; }
.hero-quick a { padding: 6px 12px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; color: #fff; font-weight: 700; background: rgba(6,25,31,.28); }
.hero-quick a:hover { background: rgba(255,255,255,.16); }
.hero-stats { margin: 18px 0 0; color: rgba(255,255,255,.86); font-size: 15px; }
.hero-stats strong { color: #fff; font-size: 17px; }
.hero-credit { position: absolute; right: 12px; bottom: 8px; margin: 0; color: rgba(255,255,255,.7); font-size: 11px; text-align: right; }
.hero-credit a { color: inherit; text-decoration: underline; }
.destinations, .how-it-works { width: min(var(--page-max), calc(100% - 2 * var(--gutter))); margin: 0 auto; padding: 56px 0 8px; }
.destinations .section-head p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); }
.destination-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.destination-card { position: relative; min-height: 220px; overflow: hidden; border-radius: var(--radius); background: #164e4a; color: #fff; isolation: isolate; }
.destination-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.destination-card:hover img { transform: scale(1.04); }
.destination-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6,25,31,0) 35%, rgba(6,25,31,.85) 100%); }
.destination-copy { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 2px; padding: 16px 18px; }
.destination-copy strong { font-family: "HS Display", Georgia, serif; font-size: 24px; line-height: 1.1; }
.destination-copy small { color: rgba(255,255,255,.82); font-size: 13px; }
.destination-copy b { margin-top: 4px; font-size: 13px; font-weight: 800; }
.destination-card:focus-visible { outline: 4px solid var(--accent); outline-offset: 3px; }
.region-map { margin: 0 0 18px; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: #f7f4ee; }
.region-map-svg { display: block; width: 100%; height: auto; }
.region-map-svg path { fill: #dfe9e6; stroke: #fff; stroke-width: 2; transition: fill .2s; }
.region-map-svg a { cursor: pointer; }
/* Ján, 18. 10. 2026: a lighter highlight keeps the name and count readable; a small card follows the pointer. */
.region-map-svg a:hover path, .region-map-svg a:focus path { fill: #b5d3cb; }
.region-map { position: relative; }
.region-directory .section-head > .text-link { white-space: nowrap; }
.region-map-tip { position: absolute; z-index: 5; top: 0; left: 0; display: grid; gap: 2px; min-width: 170px; margin: 0; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fff; box-shadow: 0 10px 24px rgba(20,32,42,.14); pointer-events: none; }
.region-map-tip[hidden] { display: none; }
.region-map-tip strong { font-size: 15px; }
.region-map-tip span { color: var(--muted); font-size: 13px; }
.region-map-tip b { margin-top: 4px; color: var(--brand); font-size: 13px; }
.region-map-svg a:focus { outline: none; }
.region-map-svg a:focus-visible path { stroke: var(--brand); stroke-width: 3; }
/* Labels softer and smaller (Jan, 16. 10. 2026: they spilled over the small regions); a halo in the region colour
   keeps the white borders from cutting through the letters. */
.region-map-labels text { pointer-events: none; text-anchor: middle; fill: #2d4744; paint-order: stroke; stroke: #dfe9e6; stroke-width: 3px; stroke-linejoin: round; }
.region-map-name { font-size: 10.5px; font-weight: 600; letter-spacing: .01em; }
.region-map-count { font-size: 15.5px; font-weight: 800; fill: #164e4a; }
.pilot-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.pilot-cards { grid-template-columns: 1fr; }
.pilot-list { padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.pilot-list h3 { margin: 0 0 10px; font-size: 17px; }
.pilot-list ul { margin: 0; padding: 0; list-style: none; display: grid; }
.pilot-list li a { display: grid; gap: 2px; padding: 10px 0; border-top: 1px solid var(--line); }
.pilot-list li:first-child a { border-top: 0; }
.pilot-list li strong { color: var(--brand); font-size: 15px; line-height: 1.3; overflow-wrap: anywhere; }
.pilot-list li { min-width: 0; }
.pilot-list li span { color: var(--muted); font-size: 13px; }
.collection-card.is-plain { min-height: 200px; background: linear-gradient(135deg, #164e4a, #0e3b38); }
.collection-card.is-plain .collection-card-copy { position: relative; padding: 28px 28px 24px; }
.collection-icon { position: absolute; right: 24px; top: 22px; width: 54px; height: 54px; fill: none; stroke: #f4b740; stroke-width: 1.6; }
.collection-hero:not(:has(img)) { background: linear-gradient(135deg, #164e4a, #0e3b38); }
.how-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.how-steps li { display: grid; gap: 8px; align-content: start; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
/* Ján, 17. 10. 2026: the three cards share rows (icon / heading / text), so headings line up even when one wraps. */
.how-steps li { grid-row: span 3; grid-template-rows: subgrid; row-gap: 10px; padding: 24px; }
.how-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: #fff4dc; color: #164e4a; }
.how-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.how-steps strong { font-size: 17px; }
.how-steps span { color: var(--muted); font-size: 14px; line-height: 1.5; }
.how-steps a { color: var(--brand); font-weight: 700; }
.credit-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.credit-list li { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: center; }
.credit-list img { width: 120px; height: 80px; object-fit: cover; border-radius: 6px; }
.credit-list span { display: grid; gap: 4px; }
.credit-list small { color: #4f5f5c; font-size: 14px; line-height: 1.5; }
.credit-list a { color: var(--brand); }
@media (max-width: 1000px) {
  .destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pilot-layout { grid-template-columns: 1fr; }
}
@media (max-width: 699px) {
  .home-hero { min-height: 0; }
  .home-hero .hero-inner { padding: 110px 0 40px; }
  .home-hero .hero-copy h1 { font-size: 34px; }
  .home-hero .hero-search { grid-template-columns: 1fr 1fr; }
  .home-hero .search-suggest { grid-column: 1 / -1; }
  .destination-card { min-height: 160px; }
  .destination-copy strong { font-size: 20px; }
  .region-map { display: none; }
  .how-steps { grid-template-columns: 1fr; }
  .hero-credit { position: static; padding: 0 20px 10px; text-align: left; }
}

/* Pilot card: the cover photo is the main content, shown across the card. */
.stay-card.has-large-cover { padding-top: 0; }
.stay-card.has-large-cover .stay-card-photo { position: relative; top: auto; right: auto; width: calc(100% + 24px); height: auto; aspect-ratio: 16 / 9; margin: 0 -12px 12px; border: 0; border-radius: var(--radius) var(--radius) 0 0; }
.stay-card.has-large-cover .card-topline { position: absolute; z-index: 2; top: 12px; left: 12px; right: 12px; }
.stay-card.has-large-cover h2 { min-height: 0; padding-right: 0; }

/* Pilot section balanced (Jan, 10. 10.): card and list side by side at equal height, list in two columns. */
.pilot-layout { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: stretch; }
.pilot-cards { height: 100%; }
.pilot-cards .stay-card { height: 100%; }
.pilot-list { display: flex; flex-direction: column; }
.pilot-list ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; flex: 1; align-content: start; }
.pilot-list li:nth-child(2) a { border-top: 0; }
@media (max-width: 1000px) {
  .pilot-layout { grid-template-columns: 1fr; }
}
@media (max-width: 699px) {
  .pilot-list ul { grid-template-columns: 1fr; }
  .pilot-list li:nth-child(2) a { border-top: 1px solid var(--line); }
}
.pilot-list .pilot-more { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); font-weight: 800; }
.pilot-cards .stay-card.has-large-cover { display: flex; flex-direction: column; }
.pilot-cards .stay-card.has-large-cover .stay-card-photo { flex: 1 1 auto; aspect-ratio: auto; min-height: 220px; }
.pilot-cards .stay-card.has-large-cover .stay-card-photo img { height: 100%; }

/* Home page: one vertical rhythm between sections (Jan, 10. 10.). */
.home-page main > section:not(.hero):not(.owner-band):not(.support-local) { padding-top: 0; padding-bottom: 0; margin-top: 72px; }
.home-page main > .owner-band { margin-top: 72px; }
@media (max-width: 699px) {
  .home-page main > section:not(.hero):not(.owner-band) { margin-top: 48px; }
  .home-page main > .owner-band { margin-top: 48px; }
}

/* Hero photo: stronger shade for white text on the left, the scene stays visible on the right and at the bottom. */
/* Shade only behind the text block (ellipse) plus a short left fade; the right half of the photo stays untouched (Jan, 10. 10.). */
.home-hero .hero-bg { background: radial-gradient(ellipse 52% 62% at 28% 56%, rgba(6,25,31,.58) 0%, rgba(6,25,31,.58) 45%, rgba(6,25,31,0) 100%), linear-gradient(90deg, rgba(6,25,31,.55) 0%, rgba(6,25,31,.4) 30%, rgba(6,25,31,0) 55%); }
/* A soft shadow keeps white text legible on the lighter photo instead of a darker layer. */
.home-hero .eyebrow, .home-hero h1, .home-hero .hero-quick > span, .home-hero .hero-quick-label, .home-hero .hero-stats { text-shadow: 0 1px 3px rgba(0,0,0,.45); }
@media (max-width: 699px) {
  /* Phones (Ján, 20. 10. 2026): the panorama fills the whole hero behind the text, like on a computer. Own portrait
     crop (fountain and towers), a dark veil strongest behind the heading and the search, lighter at the bottom where
     the fountain shows. Works from 320 px to 699 px wide and for short and tall screens (cover + centred focus). */
  .home-hero { background-color: #06191f; }
  .home-hero .hero-photo { inset: 0; top: 0; bottom: 0; width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: 50% 55%; -webkit-mask-image: none; mask-image: none; }
  .home-hero .hero-bg { background: linear-gradient(180deg, rgba(6,25,31,.78) 0%, rgba(6,25,31,.66) 45%, rgba(6,25,31,.5) 75%, rgba(6,25,31,.38) 100%); }
  .home-hero .hero-inner { padding-bottom: 44px; }
}
.hero-credit { padding: 3px 8px; border-radius: 4px; background: rgba(6,25,31,.62); color: rgba(255,255,255,.85); }
/* Phones: the credit sits over the water, keep a dark backing for >= 7:1. */
@media (max-width: 699px) { .hero-credit { position: relative; z-index: 1; display: table; margin: 0 20px 10px; padding: 3px 8px; background: rgba(6,25,31,.74); color: rgba(255,255,255,.92); } }

/* Section after the trust band gets the same rhythm as home sections (was glued to the band on "Pre ubytovateľov"). */
.trust-band + .section { margin-top: 72px; }
@media (max-width: 699px) { .trust-band + .section { margin-top: 48px; } }
/* "Pre ubytovateľov": both split sections and the Pulz section share one grid and one rhythm. */
.pulse-section { padding-top: 0; }
@media (min-width: 981px) { .pulse-section { grid-template-columns: .85fr 1.15fr; gap: 56px; } }
.owner-alpha > div:first-child > p:not(.eyebrow) { margin: 20px 0 0; color: var(--muted); font-size: 18px; line-height: 1.65; }

/* Owner console: Pulz (last 30 days of profile interest). */

/* "Pre ubytovateľov": Základ a Plus */
.owner-plans { padding-top: 0; }
.owner-plans-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 22px; }
.owner-plan { border: 1px solid var(--line); border-radius: 14px; padding: 24px 26px; background: #fff; }
.owner-plan.is-plus { border-color: #0f4c4f; box-shadow: 0 10px 30px rgba(13, 34, 45, .08); }
.owner-plan-label { margin: 0 0 12px; color: var(--brand-strong); font-size: 22px; font-weight: 800; line-height: 1.25; }
.owner-plan.is-plus .owner-plan-label { color: var(--accent); }
.owner-plan ul { display: grid; gap: 9px; margin: 0; padding-left: 20px; line-height: 1.5; }
.owner-plan-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 15px; line-height: 1.5; }
.owner-plan-price { display: grid; gap: 2px; margin: -4px 0 14px; color: var(--ink, #10232c); font-size: 17px; line-height: 1.5; }
.owner-plan-price strong { font-size: 24px; color: #0f4c4f; }
.owner-promises { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.owner-promises article { border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; background: #fff; display: grid; gap: 6px; line-height: 1.5; }
.owner-promises span { color: var(--muted); font-size: 15px; }
.owner-founding { margin-top: 18px; border-radius: 14px; padding: 22px 26px; background: #eef6f3; border: 1px solid #b9d8cd; }
.owner-founding h3 { margin: 4px 0 10px; font-size: 22px; }
.owner-founding ul { display: grid; gap: 8px; margin: 0 0 16px; padding-left: 20px; line-height: 1.55; }
@media (max-width: 760px) { .owner-promises { grid-template-columns: 1fr; } .owner-founding { padding: 18px; } }
.owner-plans-sync { max-width: 900px; margin: 18px 0 0; color: var(--muted); line-height: 1.6; }
@media (max-width: 760px) { .owner-plans-grid { grid-template-columns: 1fr; } }

/* "Pridať ubytovanie" and admin "Nové ubytovania" */
.new-listing { max-width: 860px; }
.new-listing-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; margin-bottom: 18px; }
.new-listing-subtitle { margin: 26px 0 8px; font-size: 22px; }
.new-listing-results { display: grid; gap: 10px; margin: 12px 0 20px; padding: 0; list-style: none; }
.new-listing-results li { display: flex; align-items: center; justify-content: space-between; gap: 16px; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; background: #fff; }
.new-listing-results li span { display: grid; gap: 2px; min-width: 0; }
.new-listing-results small { color: var(--muted); }
.new-listing-map { height: 320px; border: 1px solid var(--line); border-radius: var(--radius); background: #e8eef0; }
.new-listing-map-field { display: grid; gap: 6px; }
.pin-map-marker { width: 26px; height: 26px; border: 3px solid #fff; border-radius: 50% 50% 50% 0; background: var(--brand); box-shadow: 0 2px 6px rgba(0,0,0,.35); transform: rotate(-45deg); }

@media (max-width: 640px) {
  .new-listing-search { grid-template-columns: 1fr; }
  .new-listing-results li { flex-direction: column; align-items: stretch; }
}
.new-listing.form-section { display: block; width: min(1180px, calc(100% - 40px)); max-width: none; }
.new-listing > * { max-width: 760px; }
.new-listing .lead-form, .new-listing .new-listing-search { width: 100%; }
.new-listing-search label { display: grid; gap: 6px; font-weight: 700; }
.new-listing-search input { width: 100%; border: 1px solid var(--line); border-radius: 6px; padding: 12px; background: #fff; color: var(--ink); font: inherit; font-weight: 400; }

/* "Môj dom" – owner overview (Phase 1, 11. 10. 2026). Mobile first; numbers come from the server,
   CSS only brings them in (< 1 s) and nothing moves with prefers-reduced-motion. */
.my-house { display: grid; gap: 14px; margin: 0 0 22px; }

.my-house h2 { margin: 6px 0 12px; font-size: 22px; line-height: 1.2; }
.my-house h2 em { font-style: normal; color: #b9862f; }
.my-house.is-night h2 em { color: #ffd36b; }

@keyframes house-pulse { 50% { box-shadow: 0 0 0 6px rgba(47,158,110,0); } 0%, 100% { box-shadow: 0 0 0 0 rgba(47,158,110,.45); } }

        
@keyframes house-window-in { from { opacity: 0; } to { opacity: 1; } }

@media (min-width: 860px) {
  .my-house { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: stretch; }
  
  .my-house h2 { font-size: 28px; }
}

/* Calendar guide (Phase 1, 11. 10. 2026): step-by-step help under "Pripojiť kalendár". */

/* Occupancy timeline (Phase 2, 11. 10. 2026): desktop 21 days, mobile 7 days snapped by weeks. */
.house-timeline { margin: 0 0 22px; border-radius: 18px; padding: 16px; background: #fff; box-shadow: 0 1px 2px rgba(19,48,46,.04), 0 8px 24px rgba(19,48,46,.05); --unit-w: 88px; --day-w: calc((100vw - 64px - var(--unit-w)) / 7); }
@supports (width: 1cqw) { .house-timeline { --day-w: calc((100cqw - var(--unit-w)) / 7); } }
.house-timeline header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.house-timeline h3 { margin: 0; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: #5f716f; }

                    
                    
.tl-day { display: grid; place-items: center; padding: 4px 0 8px; font-size: 11px; color: #5f716f; line-height: 1.25; text-align: center; }
.tl-day:nth-child(7n+1) { scroll-snap-align: start; }
.tl-day b { font-weight: 700; }

.tl-day.is-weekend { color: #9a6b12; }
.tl-day.is-today { color: #164e4a; font-weight: 800; }

@keyframes tl-grow { from { transform: scaleX(0); opacity: 0; } }
@media (min-width: 860px) {
  .house-timeline { --unit-w: 120px; --day-w: minmax(36px, 1fr); }
  
  
  
  
}

/* Channel mix (Phase 3): widths as classes – the CSP drops style attributes */
.channel-mix { margin: 0 0 22px; border-radius: 18px; padding: 16px; background: #fff; box-shadow: 0 1px 2px rgba(19,48,46,.04), 0 8px 24px rgba(19,48,46,.05); }
.channel-mix h3 { margin: 0 0 4px; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: #5f716f; }
.channel-mix header p { margin: 0 0 12px; font-size: 13px; color: #5f716f; }
.mix-months { display: grid; gap: 16px; }
@media (min-width: 860px) { .mix-months { grid-template-columns: 1fr 1fr; } }
.mix-month h4 { margin: 0 0 8px; font-size: 15px; }
.mix-month h4 small { font-weight: 500; color: #5f716f; }
.mix-month ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.mix-month li { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; font-size: 13px; }
.mix-month li i { grid-column: 1 / -1; height: 6px; border-radius: 3px; background: #eef2f1; overflow: hidden; }
.mix-month li em { display: block; height: 100%; border-radius: 3px; background: #3b6fd8; }
.mix-month .mix-empty { display: block; color: #5f716f; }
.mix-month p { margin: 10px 0 0; font-size: 12.5px; color: #5f716f; }

                    

/* Svetluška (Phase 4) */
.firefly { margin: 0 0 22px; border-radius: 18px; padding: 16px; background: #13302e; color: #e9f1ef; }
.firefly header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.firefly h3 { margin: 0; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: #cfe0dc; }
.firefly-dot { width: 10px; height: 10px; border-radius: 50%; background: #f4c542; box-shadow: 0 0 10px 3px rgba(244,197,66,.55); animation: firefly-glow 2.6s ease-in-out infinite; }
@keyframes firefly-glow { 50% { opacity: .45; box-shadow: 0 0 4px 1px rgba(244,197,66,.35); } }
.firefly ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.firefly li { display: grid; gap: 2px; }
.firefly a { color: #fff; font: inherit; font-size: 15px; font-weight: 800; letter-spacing: normal; text-transform: none; text-decoration: underline; text-decoration-color: rgba(255,255,255,.35); }
.firefly li span { font-size: 13px; color: #cfe0dc; }
.firefly li small { font-size: 12.5px; color: #f4c542; }
.firefly-note { margin: 10px 0 0; font-size: 12.5px; color: #f4c542; }
.firefly-source { margin: 10px 0 0; font-size: 12px; color: #a9bfba; }
@media (prefers-reduced-motion: reduce) { .firefly-dot { animation: none; } }
/* "Takto vás vidia hostia" (Phase 4): static SVG map, no Leaflet */
.seen-map { max-width: 640px; margin: 0 0 22px; border-radius: 18px; overflow: hidden; background: #fff; box-shadow: 0 1px 2px rgba(19,48,46,.04), 0 8px 24px rgba(19,48,46,.05); }
.seen-map svg { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; background: #e8eeec; }
.seen-map figcaption { display: grid; gap: 4px; padding: 12px 16px; font-size: 13.5px; color: #33504d; }
.seen-map figcaption small { font-size: 11.5px; color: #6c807d; }
.seen-map figcaption a { color: inherit; }
/* "Okolie": map + Svetluška in one card (12. 10. 2026) */
.house-surroundings { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); margin: 0 0 22px; border-radius: 18px; overflow: hidden; background: #13302e; box-shadow: 0 1px 2px rgba(19,48,46,.04), 0 8px 24px rgba(19,48,46,.05); }
.house-surroundings .seen-map { max-width: none; margin: 0; border-radius: 0; box-shadow: none; display: flex; flex-direction: column; }
.house-surroundings .seen-map svg { flex: 1 1 auto; }
.house-surroundings .firefly { margin: 0; border-radius: 0; }
@media (max-width: 700px) {
  .house-surroundings { grid-template-columns: 1fr; }
  .house-surroundings .seen-map svg { aspect-ratio: 5 / 2; }
}
.seen-marker.is-free circle:first-child { animation: seen-glow 2.4s ease-in-out infinite; }
@keyframes seen-glow { 50% { fill-opacity: .12; } }
@media (prefers-reduced-motion: reduce) { .seen-marker.is-free circle:first-child { animation: none; } }
/* Dashboard cards and Telegram in the same column as the rest of the console (fix 11. 10. 2026: they ran full width) */

/* Console tabs (Jan, 11. 10. 2026): five server-rendered pages. Computer: tabs on top (sticky under the header);
   phone (< 700 px): fixed bar at the bottom, icons + labels, touch targets >= 44 px, iPhone safe area respected. */
.console-tabs { position: sticky; top: 116px; z-index: 19; width: min(1180px, calc(100% - 40px)); margin: 0 auto 22px; display: flex; gap: 4px; padding: 5px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: 0 6px 18px rgba(19,48,46,.06); }

@media (max-width: 699px) {
  .console-tabs { position: fixed; top: auto; right: 0; bottom: 0; left: 0; z-index: 40; width: auto; margin: 0; gap: 0; padding: 4px 4px calc(4px + env(safe-area-inset-bottom)); border-width: 1px 0 0; border-radius: 0; box-shadow: 0 -6px 18px rgba(19,48,46,.08); }
  
  
  
}

@media (max-width: 699px) {
  /* Shared calendar on a phone: 7 days visible (Jan, 11. 10.: only 2 fitted next to a 210 px name column). */
  .console-calendar-grid th:first-child { width: 76px; min-width: 76px; max-width: 76px; padding: 0 6px; }
  .console-calendar-grid tbody th span { display: none; }
  .console-calendar-grid tbody th strong { font-size: 12px; white-space: normal; line-height: 1.15; }
  .console-calendar-grid th, .console-calendar-grid td { min-width: calc((100vw - 40px - 2px - 76px) / 7); height: 40px; }
  .console-calendar-grid thead th { height: 48px; font-size: 10px; }
  .console-calendar-grid thead th strong { font-size: 10.5px; }
}
/* Tap a day in the shared calendar (11. 10. 2026) */
.console-calendar-grid td { position: relative; }
.console-calendar-cell { position: absolute; inset: 0; display: block; }
.console-calendar-cell:focus-visible { outline: 3px solid #f4b740; outline-offset: -3px; }
.console-calendar-grid td.is-selected { box-shadow: inset 0 0 0 3px var(--ink); }

/* Calendar range selection + action bar (11. 10. 2026) */
.console-calendar-grid td.in-range { background-image: linear-gradient(rgba(14,90,99,.28), rgba(14,90,99,.28)); }
.console-calendar-grid td.range-edge { box-shadow: inset 0 0 0 3px var(--brand); }
.console-calendar-cell { cursor: pointer; -webkit-user-select: none; user-select: none; }

/* Week / month switch and month overview (11. 10. 2026) */

/* Plus payments (14. 10. 2026): payment details always as text, the QR only as an extra. */
.plus-payment { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; margin: 12px 0; }
.plus-payment-details { flex: 1 1 320px; display: grid; gap: 8px; margin: 0; }
.plus-payment-details div { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.plus-payment-details dt { color: var(--muted); }
.plus-payment-details dd { margin: 0; overflow-wrap: anywhere; }
.plus-copy { font-size: 16px; user-select: all; }
.plus-qr { margin: 0; text-align: center; }
.plus-qr img { display: block; width: 220px; height: 220px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.plus-qr figcaption { margin-top: 6px; color: var(--muted); font-size: 13px; max-width: 220px; }
.plus-payment-note { color: var(--muted); line-height: 1.5; }
.console-plus { border: 1px solid #b9d8cd; background: #f3f9f6; border-radius: 14px; padding: 20px 22px; margin: 18px 0; }
main > .console-plus { width: min(1180px, calc(100% - 40px)); margin: 18px auto 30px; box-sizing: border-box; }

@media (max-width: 560px) { .plus-payment-details div { grid-template-columns: 1fr; gap: 2px; } }

/* Kompas okolia (14. 10. 2026): fills the free room of the nearby card; hidden when the room is small (phones). */
.pc-grid .pc-radar { flex: 1 1 0; min-height: 0; display: flex; align-items: center; justify-content: center; container-type: size; overflow: hidden; }
.pc-radar-svg { width: 100%; height: 100%; max-width: 300px; max-height: 300px; overflow: visible; }
@container (max-height: 150px) { .pc-radar-svg { display: none; } }
.pc-radar-ring { fill: none; stroke: #d9e6e8; stroke-width: 1; stroke-dasharray: 3 4; }
.pc-radar-ring.is-outer { stroke-dasharray: none; stroke: #c6dadd; }
.pc-radar-cross { stroke: #e7eff0; stroke-width: 1; }
.pc-radar-north { fill: var(--brand); font-size: 11px; font-weight: 900; text-anchor: middle; }
.pc-radar-scale { fill: #7b8a93; font-size: 9px; font-weight: 700; text-anchor: middle; }
.pc-radar-beam { fill: rgba(14, 90, 99, .13); }
.pc-radar-sweep { transform-box: view-box; transform-origin: 0 0; animation: pc-radar-turn 6s linear infinite; }
.pc-radar-point { fill: var(--brand); stroke: #fff; stroke-width: 2; }
.pc-radar-glow { fill: rgba(14, 90, 99, .35); opacity: 0; transform-box: fill-box; transform-origin: center; animation: pc-radar-ping 6s ease-out infinite; }
.pc-radar-num { fill: #fff; font-size: 8.5px; font-weight: 800; text-anchor: middle; pointer-events: none; }
.pc-radar-home { fill: var(--accent); stroke: #fff; stroke-width: 2.5; }
.pc-radar-home-pulse { fill: rgba(207, 74, 61, .35); transform-box: fill-box; transform-origin: center; animation: pc-radar-home 2.4s ease-out infinite; }
.pc-radar-dot { cursor: default; }
@keyframes pc-radar-turn { to { transform: rotate(360deg); } }
@keyframes pc-radar-ping { 0% { opacity: .9; transform: scale(1); } 22% { opacity: 0; transform: scale(2.6); } 100% { opacity: 0; transform: scale(2.6); } }
@keyframes pc-radar-home { 0% { opacity: .8; transform: scale(1); } 100% { opacity: 0; transform: scale(3); } }
@media (prefers-reduced-motion: reduce) { .pc-radar-sweep, .pc-radar-glow, .pc-radar-home-pulse { animation: none; } }
.pc-grid .pc-list .pc-num { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: 8px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 10px; font-style: normal; font-weight: 800; vertical-align: 1px; }

/* "Vyberiete si?" card (14. 10. 2026): fills the last row of the unit grid only where it is short. */
.unit-fill { display: none; border: 1px dashed #b9d2d5; background: linear-gradient(160deg, #f3f8f8, #fff 60%); }
.unit-fill .unit-body { display: flex; flex-direction: column; gap: 10px; }
.unit-fill-text { margin: 0; color: #4d5c66; font-size: 14px; line-height: 1.55; }
.unit-fill-cta { align-self: flex-start; margin-top: auto; }
.unit-fill-art { display: grid; place-items: center; padding: 22px 0 0; }
.unit-fill-art svg { width: 120px; height: 120px; }
.unit-fill-frame { fill: none; stroke: var(--brand); stroke-width: 3; }
.unit-fill-glow { fill: #f6cf7c; }
.unit-fill-door rect { fill: var(--brand); }
.unit-fill-door circle { fill: #f6cf7c; }
.unit-fill-door { transform-box: fill-box; transform-origin: left center; animation: unit-door 5s ease-in-out infinite; }
.unit-fill-ray { fill: rgba(246, 207, 124, .45); opacity: 0; animation: unit-ray 5s ease-in-out infinite; }
.unit-fill-floor { stroke: #c6dadd; stroke-width: 2; stroke-linecap: round; }
@keyframes unit-door { 0%, 18% { transform: scaleX(1); } 38%, 70% { transform: scaleX(.38); } 88%, 100% { transform: scaleX(1); } }
@keyframes unit-ray { 0%, 22% { opacity: 0; } 40%, 68% { opacity: 1; } 86%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .unit-fill-door { animation: none; transform: scaleX(.38); } .unit-fill-ray { animation: none; opacity: 1; } }
@media (min-width: 1100px) {
  .unit-fill.fill3-1, .unit-fill.fill3-2 { display: flex; }
  .unit-fill.fill3-1 { grid-column: span 2; flex-direction: row; align-items: stretch; }
  .unit-fill.fill3-1 .unit-fill-art { flex: 0 0 180px; padding: 0; }
}
@media (min-width: 701px) and (max-width: 1099px) { .unit-fill.fill2-1 { display: flex; } }
/* Length of stay (15. 10. 2026) */

.lead-stay-hint { grid-column: 1 / -1; margin: -4px 0 4px; font-size: 13px; color: var(--muted); }

/* Owner page: block for small and starting hosts (16. 10. 2026) – boxed like the trust band, never full window. */
.owner-band.owner-starter { width: min(var(--page-max), calc(100% - 2 * var(--gutter))); margin: 28px auto 56px; padding: 40px 44px; border-radius: 18px; }
.owner-band .button { white-space: nowrap; flex: none; }
@media (max-width: 760px) { .owner-band.owner-starter { padding: 30px 22px; } .owner-band.owner-starter h2 { font-size: clamp(26px, 7vw, 34px); } }

/* Owner login link in the header and owner states in "Pridať ubytovanie" results (Jan, 16. 10. 2026: "chcem ho spravovať – kam kliknúť?"). */
.nav-login { margin-left: auto; white-space: nowrap; font-size: 14px; font-weight: 700; color: var(--brand); }
.nav-login:hover, .nav-login:focus-visible { text-decoration: underline; }
.nav { margin-left: auto; }
.nav + .nav-login { margin-left: 0; }
.new-listing-results li > a, .new-listing-state { flex: none; }
.new-listing-state { margin-left: auto; color: var(--muted); font-size: 14px; font-weight: 600; }
.new-listing-login { margin-top: 10px; font-weight: 600; }
.new-listing-login a { color: var(--brand); }
@media (max-width: 699px) {
  .topbar .nav { grid-column: 1; grid-row: 2; }
  .topbar .nav-login { grid-column: 2; grid-row: 2; min-height: 36px; display: inline-flex; align-items: center; font-size: 13px; }
  .new-listing-state { margin-left: 0; }
}

/* Owner page balance (Jan, 16. 10. 2026: "tieto časti sa mi zdajú nevyvážené"): heading on top and cards in a grid
   below instead of a short left column next to a long list; plan cards equal height with the button at the bottom;
   the sync note as a quiet box. */
.owner-stack { display: block; }
.owner-stack > div:first-child { max-width: 760px; margin-bottom: 26px; }
.owner-stack .principles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.owner-plan { display: flex; flex-direction: column; }
.owner-plan ul { margin-bottom: 18px; }
.owner-plan-note { margin-top: auto; }
.owner-plan-cta { align-self: flex-start; margin-top: auto; }
.owner-plan-steps { margin-top: auto; padding: 16px 18px; border: 1px solid var(--line); border-radius: 10px; background: #f6f9fa; }
.owner-plan-steps-label { margin: 0 0 4px; color: var(--muted); font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.owner-plan-steps h3 { margin: 0 0 10px; font-size: 17px; }
.owner-plan-steps ol { display: grid; gap: 8px; margin: 0; padding-left: 20px; line-height: 1.5; }
.owner-plan-steps-note { margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.owner-plan-steps + .owner-plan-cta { margin-top: 16px; }
.owner-plan-noweb { margin: 0 0 16px; padding: 14px 18px; border-left: 4px solid var(--brand, #164e4a); border-radius: 8px; background: #eef7f5; }
.owner-plan-noweb h3 { margin: 0 0 6px; font-size: 16px; }
.owner-plan-noweb p { margin: 0; line-height: 1.5; }
.owner-plan-note + .owner-plan-cta { margin-top: 16px; }
.owner-plans-sync { max-width: none; margin: 18px 0 0; padding: 16px 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); font-size: 15px; }
@media (max-width: 980px) { .owner-stack .principles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .owner-stack .principles { grid-template-columns: 1fr; } .owner-plan-cta { align-self: stretch; text-align: center; } }
.owner-stack .principles article { align-content: start; }
@media (min-width: 981px) { .owner-stack .principles article:last-child:nth-child(3n+2) { grid-column: span 2; } }
@media (min-width: 641px) and (max-width: 980px) { .owner-stack .principles article:last-child:nth-child(odd) { grid-column: span 2; } }

/* "Podporte slovenských ubytovateľov" (Ján, 17. 10. 2026): brand teal band with the folk heart. */
.support-local { width: min(var(--page-max), calc(100% - 2 * var(--gutter))); margin: 72px auto 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 30px; align-items: center; padding: 30px 36px; border-radius: 18px; background: radial-gradient(circle at 90px 50%, rgba(255, 241, 207, .14) 0, rgba(255, 241, 207, 0) 220px), linear-gradient(135deg, var(--brand-strong), var(--brand)); color: #fff; }
.support-local img { width: 110px; height: 110px; }
.universal-listing-page + .support-local, main > .support-local:last-child { margin-bottom: 56px; }
.support-local .eyebrow { margin: 0 0 6px; color: #f5c46b; }
.support-local h2 { margin: 0 0 8px; color: #fff; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.2; }
.support-local p:last-child { margin: 0; max-width: 820px; color: rgba(255, 255, 255, .86); font-size: 16px; line-height: 1.6; }
@media (max-width: 640px) {
  .support-local { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 16px; padding: 26px 20px; }
  .support-local img { width: 88px; height: 88px; }
}

/* Blog (Ján, 17. 10. 2026 – AI redakcia, krok 1). */
.blog-home { width: min(var(--page-max), calc(100% - 2 * var(--gutter))); margin: 72px auto 0; }
.blog-list, .blog-related { width: min(var(--page-max), calc(100% - 2 * var(--gutter))); margin: 0 auto; }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.blog-card a { display: grid; height: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: var(--ink); text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
.blog-card a:hover { box-shadow: 0 14px 30px rgba(9, 61, 69, .12); transform: translateY(-2px); }
.blog-card img { width: 100%; aspect-ratio: 16 / 10; height: auto; object-fit: cover; }
.blog-card-copy { display: grid; gap: 8px; padding: 16px 18px 20px; }
.blog-card-copy small { color: var(--muted); font-size: 12px; font-weight: 700; }
.blog-card-copy strong { color: var(--brand-strong); font-size: 18px; line-height: 1.3; }
.blog-card-copy span { color: var(--muted); font-size: 14px; line-height: 1.55; }
.blog-article { width: min(760px, calc(100% - 2 * var(--gutter))); margin: 36px auto 0; }
.blog-article-head h1 { margin: 6px 0 10px; font-size: clamp(30px, 4.4vw, 46px); line-height: 1.12; }
.blog-meta { margin: 0 0 14px; color: var(--muted); font-size: 14px; }
.blog-intro { margin: 0 0 22px; font-size: 19px; line-height: 1.6; color: var(--ink); }
.blog-cover { margin: 0 0 28px; }
.blog-cover img { width: 100%; height: auto; border-radius: 16px; }
.blog-cover figcaption { margin-top: 6px; color: var(--muted); font-size: 12px; }
.blog-body { font-size: 17px; line-height: 1.75; color: var(--ink); }
.blog-body h2 { margin: 34px 0 10px; font-size: 26px; line-height: 1.25; }
.blog-body h3 { margin: 24px 0 8px; font-size: 20px; }
.blog-body ul { padding-left: 22px; }
.blog-body a { color: var(--brand); font-weight: 700; }
.blog-stays { margin: 30px 0 0; padding: 22px 24px; border-radius: 16px; background: var(--soft); }
.blog-stays h2 { margin: 0 0 6px; font-size: 22px; }
.blog-stays p { margin: 0 0 12px; color: #56636e; font-size: 15px; }
.blog-stays ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.blog-stays li { display: grid; align-content: start; gap: 4px; padding: 12px 14px; border-radius: 12px; background: #fff; }
.blog-stays li a { color: var(--brand); font-weight: 700; }
.blog-stays li span { color: #56636e; font-size: 14px; }
.blog-sources { margin: 36px 0 56px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 14px; color: var(--muted); }
.blog-sources h2 { font-size: 16px; margin: 0 0 8px; }
/* Ján, 19. 10. 2026: sources in two columns on wider screens. */
.blog-sources ul { margin: 0; padding-left: 18px; columns: 2; column-gap: 40px; }
.blog-sources li { break-inside: avoid; }
@media (max-width: 640px) { .blog-sources ul { columns: 1; } }
.blog-related { margin-top: 56px; }
@media (max-width: 900px) { .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .blog-grid { grid-template-columns: 1fr; } .blog-intro { font-size: 17px; } }

/* Console → Nastavenia: consent with Facebook promotion (same block style as Telegram). */

/* Console → Kalendár: compact "Nová jednotka" form (Ján, 17. 10. 2026). */

/* Owner page plans (Ján, 17. 10. 2026): lead line, commission line at the bottom, launch offer above the button. */
.owner-plans .section-head p { max-width: 760px; margin: 8px 0 0; color: var(--muted); line-height: 1.55; }
.owner-plan li strong { color: var(--brand-strong); }
.owner-plan-lead { margin: 0 0 6px; font-weight: 800; color: var(--ink); }
.owner-plan-commission { margin: auto 0 0; padding-top: 14px; font-weight: 800; color: var(--brand-strong); }
.owner-plan-commission + .owner-plan-note { margin-top: 10px; }
.owner-plan-offer { margin: 14px 0 6px; color: var(--muted); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.owner-plan-offer + .owner-plan-cta { margin-top: 0; }
.owner-plan-offer-note { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }

/* Founding offer (Ján, 17. 10. 2026): two highlighted points, a short assurance, the sync note apart. */
.owner-founding-highlights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 14px; }
.owner-founding-highlights > div { display: grid; gap: 6px; padding: 16px 18px; border: 1px solid #b9d8cd; border-radius: 12px; background: #fff; }
.owner-founding-highlights strong { color: var(--brand-strong); font-size: 18px; line-height: 1.3; }
.owner-founding-highlights span { color: var(--ink); line-height: 1.55; }
.owner-founding-assurance { margin: 0 0 16px; color: var(--muted); line-height: 1.55; }
.owner-founding-assurance strong { color: var(--ink); }
.owner-plans-sync > strong { display: block; margin-bottom: 4px; color: var(--ink); }
.owner-plans-sync p { margin: 6px 0 0; }
@media (max-width: 760px) { .owner-founding-highlights { grid-template-columns: 1fr; } }

/* Footer (Ján, 18. 10. 2026): brand + two rows of links, then a bottom line with Facebook and ©. Bigger text. */
.footer { grid-template-columns: minmax(240px, auto) minmax(0, 1fr); row-gap: 18px; }
.footer-nav { display: grid; gap: 10px; justify-items: end; min-width: 0; }
.footer-nav .footer-links { justify-content: flex-end; gap: 8px 18px; font-size: 14px; }
.footer-nav .footer-legal { font-size: 13px; font-weight: 700; }
.footer-end { grid-column: 1 / -1; justify-self: stretch; justify-content: space-between; border-top: 1px solid var(--line); padding-top: 16px; }
.footer-social { font-size: 13px; }
.footer-note { font-size: 12px; }
@media (max-width: 899px) {
  .footer { grid-template-columns: 1fr; }
  .footer-nav { justify-items: start; }
  .footer-nav .footer-links { justify-content: flex-start; gap: 10px 18px; }
}

/* Header (Ján, 18. 10. 2026): the current section is underlined; the favourites count is a quiet teal dot. */
.nav a[aria-current="page"], .nav-login[aria-current="page"] { opacity: 1; color: var(--brand-strong); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.nav-favorites-link [data-favorite-count] { background: var(--brand); }
@media (max-width: 699px) { .nav-login-long { display: none; } }

/* Owner sign-in (Ján, 18. 10. 2026): the hint under the e-mail and the folded "another profile" sign-in. */
.lead-form .field-hint { display: block; margin-top: 6px; color: var(--muted); font-size: 13px; font-weight: 400; }
.owner-other-login { border-top: 1px solid var(--line); padding-top: 12px; }
.owner-other-login > summary { cursor: pointer; color: var(--brand); font-size: 14px; font-weight: 800; }
.owner-other-login[open] > summary { margin-bottom: 14px; }

/* Add listing (Ján, 18. 10. 2026): the note under the search is readable. */
.new-listing-search-help, .field-help.new-listing-search-help { font-size: 15px; color: var(--muted); }
.credit-list li > a { display: block; line-height: 0; }

/* Listing (Ján, 18. 10. 2026): narrower filters (about 20 %), labelled fields, bigger photos on the cards and one
   calm placeholder where the owner has not added photos yet. */
@media (min-width: 981px) { .results-layout { grid-template-columns: minmax(220px, 236px) minmax(0, 1fr); gap: 24px; } }
.filters .filter-label { display: grid; gap: 5px; color: var(--ink); font-size: 13px; font-weight: 700; }
.filters .filter-label select, .filters .filter-label input { font-weight: 400; }
.universal-listing-map .stay-card.has-cover { padding-top: 0; }
.universal-listing-map .stay-card.has-cover .stay-card-photo { position: relative; top: auto; right: auto; width: calc(100% + 24px); height: auto; aspect-ratio: 16 / 9; margin: 0 -12px 12px; border: 0; border-radius: var(--radius) var(--radius) 0 0; }
.universal-listing-map .stay-card.has-cover .card-topline { position: absolute; z-index: 2; top: 12px; left: 12px; right: 12px; }
.universal-listing-map .stay-card.has-cover h2 { min-height: 0; padding-right: 0; }

@media (min-width: 981px) { .preview-banner ~ main .filter-sidebar { top: 128px; } }
/* Ján, 18. 10. 2026: on a phone the hero starts right under the header (110 px of empty dark space before). */
@media (max-width: 699px) { .home-hero .hero-inner { padding-top: 36px; } }
/* Phone header: the short "Pridať" button (the long text lost its space in the flex box) and the links fit. */
@media (max-width: 699px) {
  .nav-cta-long { display: none; }
  .topbar .nav { gap: 14px; justify-content: space-between; }
  .nav-login { white-space: nowrap; }
}
/* Ján, 18. 10. 2026: on a phone the nearby-place tiles grow with their text (fixed 120 px rows cut long names). */
@media (max-width: 760px) { .ph-gallery-map { grid-auto-rows: auto; } .ph-gallery-map .ph-place { min-height: 120px; overflow: visible; } }
/* Ján, 18. 10. 2026: underline means "you are here" – Mapa keeps only its colour, no permanent underline. */
@media (max-width: 700px) { .nav .nav-map-link:not([aria-current="page"]) { text-decoration: none; } }

/* Profile photo slider (Ján, 18. 10. 2026): the big photo pages in place – arrows left and right over it. */
.ph-slider { cursor: default; }
.ph-slide-open { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.ph-slide-open img { width: 100%; height: 100%; object-fit: cover; }
.ph-slider .ph-arrow { z-index: 2; border: 0; cursor: pointer; }
.ph-slider .ph-arrow-next { left: auto; right: 10px; }
.ph-slider .ph-arrow:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
/* Ján, 18. 10. 2026: a shorter, quieter filter column – smaller fields, text and buttons. */
@media (min-width: 981px) {
  .filter-sidebar { gap: 12px; }
  .filter-sidebar .filters { gap: 9px; padding: 14px; }
  .filter-sidebar .filters input, .filter-sidebar .filters select { min-height: 38px; padding: 0 10px; font-size: 14px; }
  .filter-sidebar .filters .filter-label { gap: 4px; font-size: 12px; }
  .filter-sidebar .filters .button { min-height: 40px; padding: 8px 12px; font-size: 14px; line-height: 1.2; }
  .filter-sidebar .sidebar-promo { gap: 8px; padding: 14px; }
  .filter-sidebar .sidebar-promo span { font-size: 11px; }
  .filter-sidebar .sidebar-promo strong { font-size: 17px; }
  .filter-sidebar .sidebar-promo p { font-size: 13px; line-height: 1.45; }
  .filter-sidebar .sidebar-promo .button { min-height: 40px; padding: 8px 12px; font-size: 14px; line-height: 1.25; }
  .filter-sidebar .trips-box { padding: 14px; }
}
/* Ján, 18. 10. 2026: the filter column as tall as the map beside it (same top, same height); the owner card at the
   bottom, so both columns start and end together. */
@media (min-width: 981px) {
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar { top: 88px; display: flex; flex-direction: column; min-height: calc(100vh - 108px); }
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar .sidebar-promo { margin-top: auto; }
  .preview-banner ~ main .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar { top: 124px; min-height: calc(100vh - 144px); }
}

/* Popular destinations in the filter column (Ján, 18. 10. 2026). */
.sidebar-destinations { border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; background: #fff; }
.sidebar-destinations h2 { margin: 0 0 8px; font-size: 14px; }
.sidebar-destinations ul { display: grid; margin: 0; padding: 0; list-style: none; }
.sidebar-destinations li a { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line); color: var(--brand); font-size: 14px; font-weight: 700; text-decoration: none; }
.sidebar-destinations li:first-child a { border-top: 0; }
.sidebar-destinations li a:hover span { text-decoration: underline; }
.sidebar-destinations li b { color: var(--muted); font-size: 12px; font-weight: 700; }
.sidebar-destinations small { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.4; }
@media (max-width: 980px) { .sidebar-destinations { display: none; } }
/* The column is exactly as tall as the map; the destinations fill the free space and scroll when they do not fit. */
@media (min-width: 981px) {
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar:has(.sidebar-destinations) { height: calc(100vh - 108px); overflow-y: auto; }
  .preview-banner ~ main .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar:has(.sidebar-destinations) { height: calc(100vh - 144px); }
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .sidebar-destinations { flex: 1 1 auto; min-height: 96px; overflow-y: auto; }
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar .sidebar-promo { margin-top: 0; }
}
/* Destinations as compact chips (all eight fit in the free space on an ordinary laptop screen). */
.sidebar-destinations ul { display: flex; flex-wrap: wrap; gap: 6px; }
.sidebar-destinations li a, .sidebar-destinations li:first-child a { display: inline-flex; align-items: baseline; gap: 5px; padding: 5px 9px; border: 1px solid #cfe3df; border-radius: 999px; background: #f3f9f8; font-size: 13px; }
.sidebar-destinations li a:hover { border-color: var(--brand); }
.sidebar-destinations li b { font-size: 11px; }
@media (min-width: 981px) {
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar:has(.sidebar-destinations) .sidebar-promo p,
  .results-layout:has(.universal-listing-map[data-map-view="split"]) .filter-sidebar:has(.sidebar-destinations) .sidebar-promo span { display: none; }
}

/* The whole card is clickable (assets/app.js); the address is plain text now. */
.stay-card { cursor: pointer; }
.stay-card .card-address { color: var(--muted); font-size: 14px; }

/* Cookie bar link and the 404 page (Ján, 18. 10. 2026). */
.cookie-bar p a { color: var(--brand); font-weight: 700; white-space: nowrap; }
.not-found-search { display: flex; gap: 10px; max-width: 560px; margin: 22px 0 14px; }
.not-found-search input { flex: 1; min-height: 48px; border: 1px solid var(--line); border-radius: 6px; padding: 0 14px; font: inherit; }
.not-found-actions { display: flex; flex-wrap: wrap; gap: 10px; }

/* Ján, 19. 10. 2026: phone menu – logo, "Pridať" and a menu button; the links open below as a list. */
.nav-toggle { display: none; width: 44px; height: 44px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 0; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; }
.nav-toggle span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--ink); transition: transform .2s ease, opacity .2s ease; }
.topbar.is-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.topbar.is-open .nav-toggle span:nth-child(2) { opacity: 0; }
.topbar.is-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
@media (prefers-reduced-motion: reduce) { .nav-toggle span { transition: none; } }
@media (max-width: 699px) {
  .topbar { grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; }
  .topbar .brand { grid-column: 1; grid-row: 1; }
  .topbar .nav-cta { grid-column: 2; grid-row: 1; }
  .topbar .nav-toggle { display: inline-flex; grid-column: 3; grid-row: 1; }
  .topbar .nav, .topbar .nav-login { display: none; }
  .topbar.is-open { row-gap: 0; }
  .topbar.is-open .nav { display: flex; flex-direction: column; align-items: stretch; grid-column: 1 / -1; grid-row: 2; gap: 0; margin: 6px 0 0; overflow: visible; }
  .topbar.is-open .nav a { display: flex; align-items: center; height: 48px; min-height: 48px; margin: 0; padding: 0 4px; border-top: 1px solid var(--line); font-size: 17px; opacity: 1; }
  .topbar.is-open .nav-login { display: block; grid-column: 1 / -1; grid-row: 3; height: 48px; line-height: 48px; padding: 0 4px; border-top: 1px solid var(--line); font-size: 17px; }
  .topbar.is-open .nav-login-long { display: inline; }
}
