/* ==========================================================================
   pages/kontakt.css: bloki strony Kontakt (prefiks .kontakt-*) + komponent planu
   ośrodka .resort-map / .map-panel / .map-sheet / .map-list (design-system.md §14).
   Elementy wewnątrz inline SVG planu mają krótki prefiks .rm-* (rozmiar SVG).
   Tylko tokeny z base.css, zero wartości hex.
   ========================================================================== */

/* ---------- 1. Hero z liniami kontaktu ---------- */
.kontakt-hero .hero__grid{padding-top:var(--s-6)}
.kontakt-hero .hero__content{display:grid;gap:var(--s-5);justify-items:start;padding-bottom:var(--s-7)}
.kontakt-hero .hero__title{font-size:clamp(2.25rem, 1.55rem + 2.5vw, 3.625rem);font-stretch:var(--w-wide);max-width:17ch}
.kontakt-hero .breadcrumbs{color:var(--ink-2)}
.kontakt-hero .hero__actions{margin-top:0}
.kontakt-hero__media{aspect-ratio:3/2 !important}
.kontakt-lines{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5) var(--gap);width:100%;max-width:40rem}
.kontakt-lines .contact-line{align-content:start;padding-top:var(--s-3);border-top:1px solid var(--line)}
.kontakt-lines .contact-line__tel{font-size:clamp(1.375rem, 1.2rem + .6vw, 1.625rem);min-height:40px}
.kontakt-lines .contact-line__tel + .contact-line__tel{margin-top:-8px}
.kontakt-lines .contact-line__mail{font-size:1.0625rem;min-height:40px;overflow-wrap:anywhere}
@media (max-width:479px){ .kontakt-lines .contact-line:last-child{grid-column:1 / -1} }
.kontakt-hero__meta{display:grid;gap:var(--s-2);list-style:none;margin:0;padding:0;color:var(--ink-2);font-size:var(--t-small);font-weight:500}
.kontakt-hero__meta li{display:flex;gap:var(--s-3);align-items:flex-start;max-width:none}
.kontakt-hero__meta .i{color:var(--ink);margin-top:.05em}
@media (max-width:1023px){
  .kontakt-hero .hero__content{order:1}
  .kontakt-hero .hero__media{order:2}
}
@media (min-width:1024px){
  .kontakt-hero .hero__grid{padding-top:0;min-height:min(calc(100svh - var(--header-h)), 820px)}
  .kontakt-hero .hero__content{grid-column:1 / span 6;padding:var(--s-7) 0}
  .kontakt-hero .hero__media{grid-column:7 / -1;aspect-ratio:auto !important;align-self:stretch;margin-block:var(--s-5)}
}

/* ---------- 2. Plan ośrodka: kontener, sterowanie ---------- */
.kontakt-plan{padding-top:calc(var(--section) * .7)}
.resort-map{
  --rm-land:var(--paper); --rm-bld:var(--mist); --rm-path:var(--mist); --rm-shade:color-mix(in srgb, var(--ink) 13%, var(--mist));
  position:relative
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .resort-map{--rm-bld:var(--foam);--rm-path:var(--foam);--rm-shade:var(--lake-2)} }
:root[data-theme="dark"] .resort-map{--rm-bld:var(--foam);--rm-path:var(--foam);--rm-shade:var(--lake-2)}

.resort-map__controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-5)}
.resort-map__filter{border:0;margin:0;padding:0;min-width:0}
.resort-map__view{display:inline-flex;gap:2px;padding:3px;background:var(--paper);border:1px solid var(--ink-3);border-radius:var(--r-pill)}
.resort-map__viewbtn{display:inline-flex;align-items:center;min-height:40px;padding:0 1.125rem;border-radius:var(--r-pill);font-size:.9375rem;font-weight:600;font-stretch:var(--w-label);color:var(--ink-2);
  transition:background-color var(--d-micro) var(--ease-ui),color var(--d-micro) var(--ease-ui)}
.resort-map__viewbtn[aria-pressed="true"]{background:var(--ink);color:var(--mist)}
html:not(.js) [data-rm-compact-only],html:not(.js) .resort-map__controls{display:none !important}
@media (min-width:1024px){ [data-rm-compact-only]{display:none !important} }

.resort-map__layout{display:grid;gap:var(--s-6);align-items:start}
@media (min-width:1024px){
  .resort-map__layout{grid-template-columns:minmax(0,8fr) minmax(300px,4fr);gap:var(--gap)}
  .map-panel{position:sticky;top:calc(var(--header-h) + var(--s-4))}
}
.resort-map__figure{margin:0;min-width:0}
.resort-map__zones{border:0;margin:0 0 var(--s-3);padding:0;min-width:0}
.resort-map__zones-track{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;padding:2px 0 4px}
.resort-map__zones-track::-webkit-scrollbar{display:none}
.resort-map__zone{position:relative;flex:none;scroll-snap-align:start}
.resort-map__zone input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.resort-map__zone span{display:inline-flex;align-items:center;min-height:40px;padding:0 1rem;border:1px solid var(--ink-3);border-radius:var(--r-pill);font-size:.875rem;font-weight:600;font-stretch:var(--w-label);color:var(--ink-2);white-space:nowrap;
  transition:background-color var(--d-micro) var(--ease-ui),color var(--d-micro) var(--ease-ui),border-color var(--d-micro) var(--ease-ui)}
.resort-map__zone input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--mist)}
.resort-map__zone input:focus-visible + span{outline:2px solid var(--focus);outline-offset:2px}

.resort-map__stage{position:relative;aspect-ratio:1280 / 1000;background:var(--rm-land);border:1px solid var(--line);overflow:hidden;isolation:isolate}
@media (max-width:767px){ .resort-map__stage{aspect-ratio:1 / 1;margin-inline:calc(var(--gutter) * -1);border-inline:0} }
.rm-svg{position:absolute;inset:0;width:100%;height:100%;max-width:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.resort-map__caption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2) var(--s-5);margin-top:var(--s-3);color:var(--ink-3);font-size:var(--t-small);font-weight:500}

/* ---------- 3. Plan ośrodka: warstwy SVG ---------- */
.rm-land{fill:var(--rm-land)}
.rm-grounds{fill:var(--leaf-light);fill-opacity:.15;stroke:var(--ink-3);stroke-opacity:.5;stroke-width:1.6;stroke-dasharray:1 7;stroke-linecap:round}
.rm-sand{fill:var(--accent);fill-opacity:.17}
.rm-water{fill:url(#rm-water-g)}
.rm-water-stop1{stop-color:var(--sky);stop-opacity:.46}
.rm-water-stop2{stop-color:var(--sky);stop-opacity:.2}
.rm-water-tex{fill:url(#rm-waves)}
.rm-wave{fill:none;stroke:var(--sky);stroke-opacity:.6;stroke-width:1.3;stroke-linecap:round}
.rm-foam{fill:none;stroke:var(--rm-path);stroke-opacity:.85;stroke-width:3}
.rm-shore{fill:none;stroke:var(--sky-ink);stroke-width:1.8;stroke-linecap:round}
.rm-water-lbl{fill:var(--ink-2);font:italic 300 36px/1 var(--font);font-stretch:118%;letter-spacing:.01em}
.rm-promenade{fill:var(--rm-path)}
.rm-edge{fill:none;stroke:var(--line);stroke-width:1.5}
.rm-road-casing{fill:none;stroke:var(--line);stroke-width:38}
.rm-road{fill:none;stroke:var(--rm-path);stroke-width:32}
.rm-road-casing--in{stroke-width:30;stroke-linejoin:round}
.rm-road--in{stroke-width:24;stroke-linejoin:round}
.rm-parcel{fill:none;stroke:var(--line);stroke-width:1.4}
.rm-walk{fill:none;stroke:var(--ink-3);stroke-opacity:.5;stroke-width:1.6;stroke-dasharray:2 6;stroke-linecap:round}
.rm-tree-shadow{fill:var(--ink);opacity:.09}
.rm-tree-canopy{fill:var(--leaf-light);opacity:.62}
.rm-tree-conifer{fill:var(--leaf);opacity:.52}
.rm-tree-edge{fill:none;stroke:var(--leaf);stroke-width:1.2;opacity:.34}
.rm-cast{fill:var(--ink);fill-opacity:.1}
.rm-post{fill:var(--ink-3)}
.rm-parapet{fill:none;stroke:var(--line);stroke-width:1.2}
.rm-lbl{fill:var(--ink);font:600 19px/1 var(--font);font-stretch:112%;letter-spacing:.12em}
.rm-lbl--lg{font-size:24px}
.rm-lbl--sm{font-size:14.5px;font-weight:600;fill:var(--ink-3)}
.rm-lbl--xs{font-size:12.5px;letter-spacing:.18em;fill:var(--ink-3)}
.rm-lbl--ink{fill:var(--ink)}
.rm-lbl--wide{letter-spacing:.36em}
.rm-street{fill:var(--ink-2);font:italic 400 20px/1 var(--font);font-stretch:112%}
.rm-note{fill:var(--ink-2);font:500 15px/1 var(--font)}
/* mobile/tablet: plan startuje od przybliżonej strefy (kontakt.js); w widoku „Cały ośrodek” drobne podpisy znikają, reszta rośnie */
@media (max-width:1023px){
  .rm-lbl--sm{font-size:18px;letter-spacing:.06em}
  .rm-lbl--sm.rm-lbl--wide{letter-spacing:.3em}
  .rm-lbl--xs{font-size:16px;letter-spacing:.12em}
  .resort-map[data-zone="all"] .rm-lbl--xs,.resort-map[data-zone="all"] .rm-note{display:none}
}

/* budynki */
.rm-roof{fill:var(--rm-bld)}
.rm-roof--shade{fill:var(--rm-shade)}
.rm-porch{fill:var(--rm-shade);fill-opacity:.7}
.rm-ridge{fill:none;stroke:var(--ink-3);stroke-width:1.2}
.rm-ridge--low{stroke-opacity:.5}
.rm-outline{fill:none;stroke:var(--ink-3);stroke-width:1.4}
.rm-shape{fill:var(--rm-bld);stroke:var(--ink-3);stroke-width:1.4}
.rm-deck{fill:url(#rm-deck)}
.rm-deck-line{stroke:var(--ink-3);stroke-opacity:.32;stroke-width:1}
.rm-umbrella{fill:var(--accent);fill-opacity:.55;stroke:var(--accent-ink);stroke-opacity:.5;stroke-width:1}
.rm-glass{fill:none;stroke:var(--sky-ink);stroke-width:4;stroke-dasharray:22 5;stroke-opacity:.7}
.rm-mast{fill:none;stroke:var(--ink-3);stroke-width:4;stroke-linecap:round}
.rm-pedalo{fill:var(--accent);fill-opacity:.5;stroke:var(--ink-3);stroke-width:1.1}
.rm-lbl--road{fill:var(--ink-2)}
.rm-pier{fill:none;stroke:var(--ink);stroke-width:8}
.rm-pier--thin{stroke-width:5}
.rm-boat{fill:var(--rm-bld);stroke:var(--ink-3);stroke-width:1.2;stroke-linejoin:round}
.rm-playground{fill:var(--accent);fill-opacity:.2;stroke:var(--ink-3);stroke-width:1.3;stroke-dasharray:5 5}
.rm-play{fill:none;stroke:var(--ink-3);stroke-width:1.6;stroke-linecap:round}
.rm-plaza{fill:var(--rm-path);stroke:var(--line);stroke-width:1.6}
.rm-bays{fill:none;stroke:var(--line);stroke-width:1.6}
.rm-p{fill:var(--ink)}
.rm-p__t{fill:var(--mist);font:700 28px/1 var(--font);text-anchor:middle;dominant-baseline:central}
.rm-sun{fill:var(--accent)}
.rm-arrow{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.rm-compass__ring{fill:var(--rm-path);fill-opacity:.75;stroke:var(--ink-3);stroke-width:1.2}
.rm-compass__n{fill:var(--ink)}
.rm-compass__s{fill:var(--rm-path);stroke:var(--ink-3);stroke-width:1.2;stroke-linejoin:round}
.rm-compass__t{fill:var(--ink);font:700 13px/1 var(--font);font-stretch:112%}

/* tabliczki domków (ten sam wygląd co .plate) */
.rm-plate{transform-box:fill-box;transform-origin:center;transition:transform var(--d-ui) var(--ease-ui)}
.rm-plate__bg{fill:var(--plate-bg);transition:fill var(--d-micro) var(--ease-ui)}
.rm-plate__ring{fill:none;stroke:var(--plate-ring);stroke-width:1.5}
.rm-plate__num{fill:var(--sun-gold);font:700 24px/1 var(--font);font-stretch:68%;font-variant-numeric:tabular-nums;text-anchor:middle;dominant-baseline:central;transition:fill var(--d-micro) var(--ease-ui)}

/* markery: stan, fokus, filtr */
.rm-pin{cursor:pointer;outline:none;transition:opacity var(--d-ui) var(--ease-ui)}
.rm-hit{fill:transparent;transition:fill var(--d-micro) var(--ease-ui)}
.rm-focus{fill:none;stroke:var(--focus);stroke-width:3;visibility:hidden}
.rm-pin:focus-visible .rm-focus{visibility:visible}
.rm-pin:focus-visible .rm-plate__bg,.rm-pin[aria-pressed="true"] .rm-plate__bg{fill:var(--accent)}
.rm-pin:focus-visible .rm-plate__num,.rm-pin[aria-pressed="true"] .rm-plate__num{fill:var(--on-accent)}
.rm-pin[aria-pressed="true"] .rm-plate{transform:scale(1.14)}
.rm-pin[aria-pressed="true"] .rm-hit{fill:var(--accent);fill-opacity:.24}
.rm-pin--house[aria-pressed="true"] .rm-outline{stroke:var(--ink);stroke-width:2.2}
.rm-pin:not(.rm-pin--house)[aria-pressed="true"] .rm-shape,.rm-pin:not(.rm-pin--house)[aria-pressed="true"] .rm-plaza{stroke:var(--ink);stroke-width:2}
@media (hover:hover) and (pointer:fine){
  .rm-pin--house:hover .rm-plate{transform:scale(1.08)}
  .rm-pin--house:hover .rm-plate__bg{fill:var(--accent)}
  .rm-pin--house:hover .rm-plate__num{fill:var(--on-accent)}
  .rm-pin:not(.rm-pin--house):hover .rm-hit{fill:var(--accent);fill-opacity:.14}
  .rm-pin[aria-pressed="true"]:hover .rm-plate{transform:scale(1.14)}
}
.resort-map:not([data-filter="all"]) .rm-pin{opacity:.2}
.resort-map[data-filter="pietrowy"] .rm-pin[data-cat="pietrowy"],
.resort-map[data-filter="parterowy"] .rm-pin[data-cat="parterowy"],
.resort-map[data-filter="jedzenie"] .rm-pin[data-cat="jedzenie"],
.resort-map[data-filter="woda"] .rm-pin[data-cat="woda"],
.resort-map .rm-pin[aria-pressed="true"]{opacity:1}

/* ---------- 4. Panel (desktop) i opis miejsca ---------- */
.map-panel{background:var(--paper);border-top:2px solid var(--ink);box-shadow:var(--shadow-float);min-width:0}
.map-panel__default{padding:clamp(1.25rem, 2vw, 1.75rem)}
.map-panel__intro{margin-top:var(--s-2);color:var(--ink-2)}
.map-panel__hint{margin-top:var(--s-5);color:var(--ink-3)}
@media (max-width:1023px){
  .map-panel{box-shadow:none;background:transparent;border-top:0}
  .map-panel__default{padding:0}
  .map-panel__detail{display:none !important}
}
.map-legend{display:grid;list-style:none;margin:var(--s-5) 0 0;padding:0;border-top:1px solid var(--line)}
.map-legend li{max-width:none}
.map-legend__btn{display:flex;align-items:center;gap:var(--s-4);width:100%;min-height:60px;padding:var(--s-3) var(--s-3) var(--s-3) var(--s-2);text-align:left;border-bottom:1px solid var(--line);border-left:3px solid transparent;
  transition:background-color var(--d-micro) var(--ease-ui),border-color var(--d-micro) var(--ease-ui)}
.map-legend__btn strong{display:block;font-weight:600;line-height:1.3}
.map-legend__meta{display:block;color:var(--ink-2);font-size:var(--t-small);font-weight:500}
.map-legend__btn[aria-pressed="true"]{background:var(--mist);border-left-color:var(--accent)}
@media (hover:hover) and (pointer:fine){ .map-legend__btn:hover{background:var(--mist)} }
.map-legend__btn:focus-visible{outline-offset:-2px}
.map-legend .plate{min-width:2.75rem;height:2.25rem;font-size:1rem;flex:none}
.map-legend__ico{display:inline-grid;place-items:center;width:2.75rem;height:2.25rem;flex:none;background:var(--plate-bg);color:var(--sun-gold);box-shadow:inset 0 0 0 1px var(--plate-ring)}
.map-legend__sun{display:inline-grid;place-items:center;width:2.75rem;height:2.25rem;flex:none}
.map-legend__sun::before{content:"";width:16px;height:16px;border-radius:50%;background:var(--accent)}

.map-detail{position:relative;display:grid;gap:var(--s-4);padding:clamp(1.25rem, 2vw, 1.75rem);animation:rm-in 260ms var(--ease-horizon) both}
@keyframes rm-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.map-detail__media{aspect-ratio:16/10;margin:calc(clamp(1.25rem, 2vw, 1.75rem) * -1) calc(clamp(1.25rem, 2vw, 1.75rem) * -1) var(--s-2)}
.map-detail__close{position:absolute;top:var(--s-3);right:var(--s-3);z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--mist);color:var(--ink);
  transition:transform 140ms var(--ease-ui),background-color var(--d-micro) var(--ease-ui)}
.map-detail__close:active{transform:scale(.94)}
@media (hover:hover) and (pointer:fine){ .map-detail__close:hover{background:var(--accent);color:var(--on-accent)} }
.map-detail__head{display:flex;align-items:center;gap:var(--s-4);padding-right:var(--s-8)}
.map-detail__media + .map-detail__close + .map-detail__head{padding-right:0}
.map-detail__plate.plate{min-width:3.25rem;height:3.25rem;font-size:1.625rem;flex:none}
.map-detail__ico{display:inline-grid;place-items:center;width:3.25rem;height:3.25rem;flex:none;background:var(--plate-bg);color:var(--sun-gold);box-shadow:inset 0 0 0 1px var(--plate-ring)}
.map-detail__ico .i{width:24px;height:24px}
.map-detail__kicker{color:var(--ink-2);font-size:var(--t-small);font-weight:500}
.map-detail__title{outline:none}
.map-detail__title:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.map-detail__where{color:var(--ink-2)}
.map-detail__facts{gap:var(--s-2)}
.map-detail__price{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line)}
.map-detail__price .t-price{font-size:clamp(2rem, 1.6rem + 1.2vw, 2.75rem)}
.map-detail__from{color:var(--ink-2);font-weight:500}
.map-detail__per{color:var(--ink-2);font-size:var(--t-small);font-weight:500;line-height:1.4}
.map-detail__note,.map-detail__extra{color:var(--ink-3);font-size:var(--t-small);font-weight:500}
.map-detail__extra{color:var(--ink-2)}
.map-detail__actions{display:grid;gap:var(--s-4);justify-items:start;margin-top:var(--s-1)}
.map-detail__actions .btn{white-space:normal}
.map-detail__nav{display:flex;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-3);border-top:1px solid var(--line)}
.map-detail__nav button{display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;font-size:var(--t-small);font-weight:600;color:var(--ink-2);transition:color var(--d-micro) var(--ease-ui)}
@media (hover:hover) and (pointer:fine){ .map-detail__nav button:hover{color:var(--sky-ink)} }

/* ---------- 5. Bottom sheet (mobile i tablet) ---------- */
.map-sheet{position:fixed;left:0;right:0;bottom:0;z-index:calc(var(--z-sticky) + 2);display:flex;flex-direction:column;max-height:min(56svh, 540px);
  background:var(--paper);border-top:2px solid var(--ink);box-shadow:var(--shadow-float);transform:translateY(105%);
  transition:transform 240ms var(--ease-ui);padding-bottom:env(safe-area-inset-bottom)}
.map-sheet.is-open{transform:translateY(0);transition-duration:var(--d-panel)}
.map-sheet.is-dragging{transition:none}
.map-sheet__grip{flex:none;display:grid;place-items:center;height:26px;cursor:grab;touch-action:none}
.map-sheet__grip span{width:44px;height:4px;background:var(--ink-3);opacity:.5}
.map-sheet__body{overflow-y:auto;overscroll-behavior:contain}
.map-sheet .map-detail{padding:var(--s-2) var(--gutter) var(--s-6);animation:none}
.map-sheet .map-detail__media{order:10;aspect-ratio:3/2;margin:var(--s-2) calc(var(--gutter) * -1) calc(var(--s-6) * -1)}
.map-sheet .map-detail__facts{order:9}
.map-sheet .map-detail__nav{order:11;margin-top:var(--s-6)}
.map-sheet .map-detail__close{top:0;right:var(--s-2)}
.map-sheet .map-detail__head{padding-right:var(--s-8)}
@media (min-width:600px) and (max-width:1023px){
  .map-sheet{left:50%;right:auto;width:min(560px, 100%);translate:-50% 0}
}
@media (min-width:1024px){ .map-sheet{display:none !important} }

/* ---------- 6. Lista miejsc (tekstowa alternatywa planu) ---------- */
.map-list{margin-top:var(--s-9)}
.map-list__title{margin-bottom:var(--s-6)}
.map-list__grid{display:grid;gap:var(--gap)}
@media (min-width:768px){ .map-list__grid{grid-template-columns:repeat(2,minmax(0,1fr))} .map-list__places{grid-column:1 / -1} }
@media (min-width:1280px){ .map-list__grid{grid-template-columns:4fr 4fr 5fr} .map-list__places{grid-column:auto} }
.map-list__item{display:grid;grid-template-rows:auto auto 1fr auto auto;gap:var(--s-4);container-type:inline-size;padding:clamp(1.25rem, 2.2vw, 1.75rem);background:var(--paper);border-top:2px solid var(--ink);transition:opacity var(--d-ui) var(--ease-ui)}
.map-list__item p{color:var(--ink-2)}
.map-list__name{display:flex;align-items:center;gap:var(--s-3)}
.map-list__price{display:grid;align-self:end;justify-items:start;gap:var(--s-1);color:var(--ink-2);font-size:var(--t-small);font-weight:500}
.map-list__price .t-price{color:var(--ink);font-size:clamp(1.75rem, 1.5rem + .8vw, 2.25rem)}
/* 8 kolumn: 8 tabliczek domków parterowych w jednym rzędzie, 1–7 w tej samej siatce; wąska karta: 4 kolumny (4+4, 4+3) */
.map-list__plates{display:grid;grid-template-columns:repeat(8,minmax(0,44px));gap:var(--s-1) 0;list-style:none;margin:0;padding:0}
.map-list__plates li{max-width:none}
@container (max-width:319px){ .map-list__plates{grid-template-columns:repeat(4,44px);gap:var(--s-1) var(--s-2)} }
@media (pointer:coarse){ @container (max-width:351px){ .map-list__plates{grid-template-columns:repeat(4,44px);gap:var(--s-1) var(--s-2)} } }
.map-list__plate{display:grid;place-items:center;width:100%;min-width:0;min-height:44px}
.map-list__plate .plate{transition:background-color var(--d-micro) var(--ease-ui),color var(--d-micro) var(--ease-ui),transform 140ms var(--ease-ui)}
.map-list__plate:active .plate{transform:scale(.94)}
.map-list__plate.is-active .plate{background:var(--accent);color:var(--on-accent)}
@media (hover:hover) and (pointer:fine){ .map-list__plate:hover .plate{background:var(--accent);color:var(--on-accent)} }
.map-list__places{display:grid;list-style:none;margin:0;padding:var(--s-2) clamp(.5rem, 1vw, .75rem) var(--s-3);background:var(--paper);border-top:2px solid var(--ink);align-content:start}
.map-list__places li{max-width:none;border-bottom:1px solid var(--line);transition:opacity var(--d-ui) var(--ease-ui)}
.map-list__place{display:grid;gap:2px;width:100%;min-height:56px;padding:var(--s-3) var(--s-3) var(--s-3) var(--s-2);text-align:left;border-left:3px solid transparent;
  transition:background-color var(--d-micro) var(--ease-ui),border-color var(--d-micro) var(--ease-ui)}
.map-list__place-name{font-weight:600}
.map-list__place-desc{color:var(--ink-2);font-size:var(--t-small);font-weight:500}
.map-list__place.is-active{background:var(--foam);border-left-color:var(--accent)}
@media (hover:hover) and (pointer:fine){ .map-list__place:hover{background:var(--foam)} }
.map-list__place:focus-visible{outline-offset:-2px}
@media (min-width:1280px){ .map-list__place{min-height:48px;padding-block:var(--s-2)} }
.resort-map:not([data-filter="all"]) .map-list [data-cat]{opacity:.4}
.resort-map[data-filter="pietrowy"] .map-list [data-cat="pietrowy"],
.resort-map[data-filter="parterowy"] .map-list [data-cat="parterowy"],
.resort-map[data-filter="jedzenie"] .map-list [data-cat="jedzenie"],
.resort-map[data-filter="woda"] .map-list [data-cat="woda"]{opacity:1}
@media (max-width:1023px){
  .js .resort-map:not(.is-list) .map-list{display:none}
  .js .resort-map.is-list .resort-map__layout{display:none}
  .js .resort-map.is-list .map-list{margin-top:0}
  .js .resort-map.is-list .map-list__title{display:none}
}

/* ---------- 7. Dojazd + fasada mapy Google ---------- */
.kontakt-route__grid{display:grid;gap:var(--s-8) var(--gap)}
@media (min-width:1024px){ .kontakt-route__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start} }
.kontakt-route__address{display:grid;gap:var(--s-1);font-size:var(--t-lead);color:var(--ink)}
.kontakt-route__address .t-h3{margin-bottom:var(--s-2)}
.kontakt-route__address .t-meta{font-size:var(--t-body)}
.kontakt-route__actions{margin:var(--s-6) 0 var(--s-8)}
.kontakt-ways{display:grid;gap:var(--s-6) var(--gap);list-style:none;margin:0;padding:0}
@media (min-width:768px){ .kontakt-ways{grid-template-columns:repeat(3,minmax(0,1fr))} }
.kontakt-way{display:grid;gap:var(--s-3);align-content:start;padding-top:var(--s-4);border-top:1px solid var(--line);max-width:none}
.kontakt-way .i--lg{color:var(--ink)}
.kontakt-way p{color:var(--ink-2);margin-top:var(--s-2)}
.kontakt-gmap{display:grid;gap:var(--s-3)}
.kontakt-gmap__facade{display:grid;background:var(--paper);border:1px solid var(--line)}
.kontakt-gmap__art{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:var(--paper)}
.kontakt-gmap__lake{position:absolute;inset:0;width:100%;height:100%;color:var(--sky-ink);fill:var(--sky);fill-opacity:.24}
.kontakt-gmap__label{position:absolute;font-size:var(--t-small);font-weight:600;color:var(--ink);white-space:nowrap}
.kontakt-gmap__label--lake{left:43%;top:36%;font-style:italic;font-weight:300;font-stretch:var(--w-wide);font-size:clamp(1rem, .9rem + .5vw, 1.25rem);color:var(--ink-2);transform:rotate(-72deg);transform-origin:left center}
.kontakt-gmap__label--rejs{right:calc(100% - 59.4% + 18px);top:81.1%;transform:translateY(-50%);padding:.25rem .625rem;background:var(--ink);color:var(--mist);font-stretch:var(--w-label);letter-spacing:.02em}
.kontakt-gmap__label--city{right:var(--s-4);bottom:var(--s-4);display:inline-flex;align-items:center;gap:var(--s-2);font-stretch:var(--w-label);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:var(--t-label)}
.kontakt-gmap__label--city .i{transform:rotate(90deg)}
.kontakt-gmap__cta{display:grid;gap:var(--s-3);justify-items:start;padding:var(--s-5);border-top:1px solid var(--line)}
.kontakt-gmap__cta p{color:var(--ink-2)}
.kontakt-gmap__frame{display:block;width:100%;aspect-ratio:4 / 5;border:1px solid var(--line);background:var(--paper)}
.kontakt-gmap__credit{color:var(--ink-3)}

/* ---------- 8. Dane do rezerwacji ---------- */
.kontakt-data__grid{display:grid;gap:var(--gap);align-items:stretch}
@media (min-width:768px){ .kontakt-data__grid{grid-template-columns:repeat(2,minmax(0,1fr))} .kontakt-bank{grid-column:1 / -1} }
@media (min-width:1024px){ .kontakt-data__grid{grid-template-columns:6fr 3fr 3fr} .kontakt-bank{grid-column:auto} }
.kontakt-bank{background:var(--mist);border-top:2px solid var(--ink);interpolate-size:allow-keywords}
.kontakt-bank__summary{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-5);min-height:64px;padding:clamp(1.25rem, 2.2vw, 1.75rem);cursor:pointer;list-style:none}
.kontakt-bank__label{display:grid;gap:var(--s-3)}
.kontakt-bank__sub{color:var(--ink-2)}
.kontakt-bank__summary .i{width:24px;height:24px;margin-top:2px}
@media (hover:hover) and (pointer:fine){ .kontakt-bank__summary:hover .t-h4{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px} }
.kontakt-bank__summary::-webkit-details-marker{display:none}
.kontakt-bank__summary .i{flex:none;transition:transform var(--d-ui) var(--ease-ui)}
.kontakt-bank[open] .kontakt-bank__summary .i{transform:rotate(45deg)}
.kontakt-bank::details-content{block-size:0;overflow:hidden;transition:block-size var(--d-panel) var(--ease-ui),content-visibility var(--d-panel) allow-discrete}
.kontakt-bank[open]::details-content{block-size:auto}
.kontakt-bank__body{display:grid;gap:var(--s-5);padding:0 clamp(1.25rem, 2.2vw, 1.75rem) clamp(1.25rem, 2.2vw, 1.75rem)}
.kontakt-dl{display:grid;margin:0}
.kontakt-dl > div{display:grid;gap:2px;padding:var(--s-3) 0;border-top:1px solid var(--line)}
.kontakt-dl dt{color:var(--ink-2);font-size:var(--t-small);font-weight:500}
.kontakt-dl dd{margin:0;font-weight:600}
.kontakt-bank__iban{display:block;font-size:clamp(1.25rem, 1.1rem + .6vw, 1.625rem);letter-spacing:.02em;margin:2px 0 var(--s-3)}
.kontakt-bank__copy.is-success{--btn-bg:var(--ink);--btn-fg:var(--mist)}
.kontakt-data__card{display:grid;gap:var(--s-3);align-content:start;padding:clamp(1.25rem, 2.2vw, 1.75rem);background:var(--mist);border-top:2px solid var(--ink)}
.kontakt-data__card p{color:var(--ink-2)}
.kontakt-data__links{display:grid;gap:var(--s-3);list-style:none;margin:0;padding:0}

/* ---------- 9. FAQ i CTA na koniec ---------- */
.kontakt-final__grid{display:grid;gap:var(--s-8) var(--gap)}
@media (min-width:1024px){ .kontakt-final__grid{grid-template-columns:5fr 7fr;align-items:end} }
.kontakt-final__cta{display:grid;gap:var(--s-4);justify-items:start}
.kontakt-final__tel{display:inline-block;margin-top:var(--s-3);color:var(--ink);background:linear-gradient(var(--accent),var(--accent)) 0 92%/100% .14em no-repeat;transition:color var(--d-micro) var(--ease-ui)}
.kontakt-final__cta p{color:var(--ink-2)}
@media (hover:hover) and (pointer:fine){ .kontakt-final__tel:hover{color:var(--sky-ink)} }
.kontakt-final__cta .cluster{margin-top:var(--s-3)}

@media print{ .resort-map__controls,.map-sheet,.map-detail__nav,[data-rm-compact-only]{display:none !important} }
.kontakt-gmap__dot{position:absolute;left:59.4%;top:81.1%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--accent);outline:5px solid color-mix(in srgb, var(--accent) 30%, transparent)}
.rm-yacht{fill:var(--rm-path);stroke:var(--ink-3);stroke-width:1.1;stroke-linejoin:round}

/* ---------- 10. Mobile/tablet: rzędy chipów nad planem ---------- */
.resort-map__bar{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3)}
.resort-map__bar .resort-map__view{flex:none}
.resort-map__bar .resort-map__zones{flex:1;min-width:0;margin:0}
.resort-map.is-list .resort-map__zones{visibility:hidden}
@media (max-width:1023px){
  .resort-map__controls{margin-bottom:var(--s-4)}
  .resort-map__filter{width:100%}
  .resort-map__filter .segmented{display:flex;flex-wrap:nowrap;gap:var(--s-2);padding:2px var(--gutter) 4px;margin-inline:calc(var(--gutter) * -1);max-width:none;border:0;border-radius:0;background:none;overflow-x:auto;scrollbar-width:none}
  .resort-map__filter .segmented::-webkit-scrollbar{display:none}
  .resort-map__filter .segmented__opt{flex:none}
  .resort-map__filter .segmented__opt span{border:1px solid var(--ink-3)}
  .resort-map__filter .segmented__opt input:checked + span{border-color:var(--ink)}
  .resort-map__bar{margin-right:calc(var(--gutter) * -1)}
  .resort-map__zones-track{padding-right:var(--gutter)}
  .resort-map__zone span{border-style:dashed}
  .resort-map__zone input:checked + span{border-style:solid}
}
@media (pointer:coarse){ .map-panel__hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0} }
