  /* ---------- kolory: włoska kuchnia i flaga ---------- */
  :root {
    color-scheme: light;
    --ground:        #F3F4E6;
    --paper:         #FEFDF7;
    --paper-2:       #F6F7EA;
    --ink:           #23301C;
    --ink-soft:      #5C6950;
    --ink-faint:     #93A083;
    --line:          #D6DCC4;
    --line-soft:     #E6EAD8;
    --bazylia:       #3A7C39;
    --bazylia-hi:    #2C6129;
    --bazylia-soft:  #E1EDD4;
    --pomidor:       #C4462A;
    --pomidor-hi:    #A83A20;
    --pomidor-soft:  #FAE2D9;
    --cytryna:       #E8B83B;
    --plaza:         #2C8AA6;
    --plaza-soft:    #DCEDF2;
    --morze-gora:    #DCEDF1;
    --morze-dol:     #BFDCE4;
    --lad:           #FEFDF7;
    --wolne:         #FEFDF7;
    --zajete-bg:     #E8EADB;
    --zajete-ink:    #A7AF95;
    --shadow-s:      0 2px 8px -4px rgba(35, 48, 28, .32);
    --shadow-m:      0 10px 26px -18px rgba(35, 48, 28, .45);
    --shadow-l:      0 28px 56px -34px rgba(35, 48, 28, .45);
  }

  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  }
  body {
    margin: 0; background: var(--ground); color: var(--ink);
    font-family: "Nunito", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased;
  }
  h1, h2, h3 { font-family: "Young Serif", Georgia, "Times New Roman", serif; font-weight: 400; line-height: 1.08; margin: 0; text-wrap: balance; }
  h1 { font-size: clamp(2.5rem, 5.4vw, 4.4rem); letter-spacing: -.01em; }
  h2 { font-size: clamp(1.85rem, 3.3vw, 2.7rem); }
  h3 { font-size: 1.25rem; }
  p  { margin: 0; max-width: 62ch; }
  a  { color: var(--bazylia); text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
  a:hover { color: var(--bazylia-hi); }
  :focus-visible { outline: 3px solid var(--cytryna); outline-offset: 3px; border-radius: 6px; }
  img { max-width: 100%; }
  [hidden] { display: none !important; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  details summary { cursor: pointer; }

  .wrap { width: min(1180px, 100% - 2.6rem); margin-inline: auto; }
  .eyebrow { display: inline-flex; align-items: center; gap: .55rem; font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--bazylia); margin-bottom: 1rem; }
  .eyebrow svg { width: 1.05rem; height: 1.05rem; flex: none; }
  .lead  { font-size: 1.18rem; }
  .muted { color: var(--ink-soft); }
  .tiny  { font-size: .87rem; }
  section { padding-block: clamp(3.4rem, 6.5vw, 6rem); }

  .tricolore { display: flex; height: 6px; }
  .tricolore i { flex: 1; }
  .tricolore i:nth-child(1) { background: #008C45; }
  .tricolore i:nth-child(2) { background: #F4F5F0; }
  .tricolore i:nth-child(3) { background: #CD212A; }

  .zielnik { display: flex; align-items: center; gap: 1.2rem; color: var(--bazylia); }
  .zielnik::before, .zielnik::after { content: ""; flex: 1; border-top: 1.5px solid var(--line); }
  .zielnik svg { width: 1.6rem; height: 2.4rem; flex: none; }

  .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .9rem 1.55rem; border-radius: 999px; font: 800 .95rem/1.2 "Nunito", sans-serif; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background .16s, border-color .16s, color .16s, transform .16s; }
  .btn:active { transform: translateY(1px); }
  .btn-primary { background: var(--bazylia); color: var(--paper); }
  .btn-primary:hover { background: var(--bazylia-hi); color: var(--paper); }
  .btn-morze { background: var(--plaza); color: var(--paper); }
  .btn-morze:hover { background: #226F86; color: var(--paper); }
  .btn-ghost { border-color: var(--line); color: var(--ink); background: var(--paper); }
  .btn-ghost:hover { border-color: var(--ink); color: var(--ink); }
  .btn[disabled] { opacity: .42; cursor: not-allowed; transform: none; }

  .pomin { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--bazylia); color: var(--paper); font: 800 .9rem/1 "Nunito", sans-serif; padding: .8rem 1.2rem; border-radius: 0 0 12px 0; text-decoration: none; }
  .pomin:focus { left: 0; }
  .pasek { background: var(--ground); }
  @media (min-width: 1001px) {
    .pasek { position: sticky; top: 0; z-index: 40; background: var(--ground); box-shadow: 0 6px 18px -16px rgba(35, 48, 28, .7); }
    header.top { padding-block: .9rem; }
    section[id], div[id], main { scroll-margin-top: 5.4rem; }
  }

  header.top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.1rem; border-bottom: 1.5px solid var(--line); }
  .brand { display: inline-flex; align-items: center; gap: .7rem; font-family: "Young Serif", Georgia, serif; font-size: 1.45rem; color: var(--ink); text-decoration: none; }
  .brand svg { width: 2.6rem; height: 1.75rem; }
  .brand i { font-style: normal; color: var(--pomidor); }
  header.top nav ul { display: flex; gap: 1.25rem; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
  header.top nav a { color: var(--ink-soft); text-decoration: none; font-size: .9rem; font-weight: 700; }
  header.top nav a:hover { color: var(--bazylia); }
  @media (max-width: 1000px) {
    header.top { flex-wrap: wrap; gap: .5rem 1rem; padding-bottom: .7rem; }
    header.top nav { order: 3; width: 100%; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; margin-inline: calc(-1 * clamp(.3rem, 2vw, 1rem)); padding-inline: clamp(.3rem, 2vw, 1rem); }
    header.top nav::-webkit-scrollbar { display: none; }
    header.top nav { -webkit-mask-image: linear-gradient(90deg, #000 82%, rgba(0, 0, 0, .25) 100%); mask-image: linear-gradient(90deg, #000 82%, rgba(0, 0, 0, .25) 100%); }
    header.top nav ul { flex-wrap: nowrap; gap: .45rem; }
    header.top nav a { display: block; white-space: nowrap; padding: .42rem .85rem; border: 1.5px solid var(--line); border-radius: 999px; background: var(--paper); font-size: .84rem; }
    header.top nav a:hover, header.top nav a:focus-visible { border-color: var(--bazylia); }
  }

  /* ---------- hero ---------- */
  .hero { padding-block: clamp(2.6rem, 5.5vw, 4.6rem) 0; }
  .hero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .8fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
  @media (max-width: 880px) { .hero-grid { grid-template-columns: 1fr; } }
  .hero h1 em { font-style: italic; color: var(--pomidor); }
  .hero .lead { margin-top: 1.5rem; max-width: 48ch; }
  .hero .cta { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: 2rem; }
  .hero-foto { margin: 0; position: relative; }
  .hero-foto img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: 50% 46%; display: block; border-radius: 18px; box-shadow: var(--shadow-l); }
  .hero-foto figcaption { position: absolute; left: .9rem; bottom: .9rem; background: var(--paper); color: var(--ink); font-size: .74rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; padding: .4rem .8rem; border-radius: 999px; box-shadow: var(--shadow-s); }

  .karta-domu { margin-top: clamp(2.2rem, 4vw, 3.2rem); background: var(--paper); border: 1.5px solid var(--line); box-shadow: var(--shadow-l); border-radius: 18px; padding: 1.5rem clamp(1.3rem, 3vw, 2.2rem); display: grid; grid-template-columns: auto 1fr; gap: clamp(1.4rem, 3vw, 2.6rem); align-items: center; }
  @media (max-width: 820px) { .karta-domu { grid-template-columns: 1fr; gap: 1.3rem; } }
  .karta-domu .addr { font: 800 .72rem/1.5 "Nunito", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
  .karta-domu .kwota { font-family: "Young Serif", Georgia, serif; font-size: 3.3rem; line-height: 1; margin-top: .3rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .karta-domu .kwota small { font-family: "Nunito", sans-serif; font-size: .88rem; font-weight: 700; color: var(--ink-soft); margin-left: .45rem; }
  .karta-domu .dopisek { font-size: .78rem; color: var(--ink-soft); margin-top: .35rem; }
  .karta-domu .porownanie { margin-top: .8rem; max-width: 24ch; font-size: .8rem; line-height: 1.45; color: var(--ink-soft); background: var(--pomidor-soft); border-radius: 10px; padding: .6rem .75rem; }
  .karta-domu .porownanie b { color: var(--pomidor); font-weight: 800; }
  .facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(126px, 1fr)); gap: 1rem 1.4rem; }
  @media (min-width: 821px) { .facts { border-left: 1.5px solid var(--line-soft); padding-left: clamp(1.4rem, 3vw, 2.6rem); } }
  @media (max-width: 820px) { .facts { border-top: 1.5px solid var(--line-soft); padding-top: 1.3rem; } }
  .facts div { font-size: .84rem; color: var(--ink-soft); line-height: 1.35; }
  .facts strong { display: block; color: var(--ink); font-size: 1.02rem; font-weight: 800; font-variant-numeric: tabular-nums; margin-bottom: .05rem; }

  /* ---------- galeria: karuzela ---------- */
  .karuzela { position: relative; border-radius: 18px; overflow: hidden; background: var(--paper-2); box-shadow: var(--shadow-m); border: 1.5px solid var(--line); }
  .kar-tor {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
    scrollbar-width: none; -ms-overflow-style: none;
  }
  .kar-tor::-webkit-scrollbar { display: none; }
  .kar-tor:focus-visible { outline: 3px solid var(--cytryna); outline-offset: -3px; }
  .kar-slajd {
    flex: 0 0 100%; scroll-snap-align: center; margin: 0; position: relative; overflow: hidden;
    height: clamp(300px, 62vh, 620px); display: grid; place-items: center;
  }
  .kar-tlo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(30px) saturate(1.25); transform: scale(1.2); opacity: .5; }
  .kar-glowne { position: absolute; inset: 0; width: 100%; height: 100%; max-width: 100%; object-fit: contain; display: block; cursor: zoom-in; }
  .kar-slajd figcaption {
    position: absolute; left: 1rem; bottom: 1rem; background: var(--paper); color: var(--ink);
    font: 800 .7rem/1 "Nunito", sans-serif; letter-spacing: .08em; text-transform: uppercase;
    padding: .4rem .8rem; border-radius: 999px; box-shadow: var(--shadow-s);
  }
  .kar-strzalka {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
    width: 2.9rem; height: 2.9rem; border-radius: 50%; cursor: pointer;
    background: var(--paper); border: 1.5px solid var(--line); color: var(--ink);
    font-size: 1.3rem; line-height: 1; display: grid; place-items: center; box-shadow: var(--shadow-s);
  }
  .kar-strzalka:hover { border-color: var(--bazylia); color: var(--bazylia); }
  .kar-strzalka.lewo { left: .8rem; }
  .kar-strzalka.prawo { right: .8rem; }
  .kar-licznik {
    position: absolute; right: 1rem; top: 1rem; z-index: 5;
    background: var(--paper); color: var(--ink-soft); font: 800 .7rem/1 "Nunito", sans-serif;
    letter-spacing: .1em; padding: .4rem .7rem; border-radius: 999px; box-shadow: var(--shadow-s);
    font-variant-numeric: tabular-nums;
  }
  .kar-mini {
    display: flex; gap: .5rem; margin-top: .7rem; overflow-x: auto; padding-bottom: .45rem;
    scrollbar-width: thin; scrollbar-color: var(--line) transparent;
  }
  .kar-mini::-webkit-scrollbar { height: 6px; }
  .kar-mini::-webkit-scrollbar-track { background: transparent; }
  .kar-mini::-webkit-scrollbar-thumb { background: var(--line); border-radius: 999px; }
  .kar-mini::-webkit-scrollbar-thumb:hover { background: var(--ink-faint); }
  .kar-mini-btn {
    flex: 0 0 auto; width: 76px; height: 58px; padding: 0; border-radius: 10px; overflow: hidden;
    border: 2.5px solid transparent; background: var(--paper-2); cursor: pointer; opacity: .62;
    transition: opacity .16s ease, border-color .16s ease;
  }
  .kar-mini-btn img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .kar-mini-btn:hover { opacity: 1; }
  .kar-mini-btn.aktywna { opacity: 1; border-color: var(--bazylia); }
  @media (max-width: 600px) {
    .kar-strzalka { width: 2.4rem; height: 2.4rem; font-size: 1.1rem; }
    .kar-mini-btn { width: 62px; height: 48px; }
  }

  /* ---------- lupa: zdjęcie zawsze mieści się w ekranie ---------- */
  .lupa { position: fixed; inset: 0; z-index: 90; background: rgba(23, 30, 18, .95); display: flex; flex-direction: column; padding: .8rem; gap: .7rem; }
  .lupa[hidden] { display: none !important; }
  .lupa-gora, .lupa-dol { display: flex; align-items: center; gap: .6rem; color: #F3F4E6; flex: none; }
  .lupa-gora { justify-content: space-between; }
  .lupa-dol { justify-content: center; flex-wrap: wrap; }
  .lupa-licznik { font: 800 .78rem/1 "Nunito", sans-serif; letter-spacing: .12em; text-transform: uppercase; }
  .lupa-scena { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; overflow: auto; -webkit-overflow-scrolling: touch; }
  .lupa-scena img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 8px; cursor: zoom-in; display: block; }
  .lupa.powieksz .lupa-scena { align-items: safe center; justify-content: safe center; }
  .lupa.powieksz .lupa-scena img { max-width: none; max-height: none; width: auto; height: auto; cursor: zoom-out; border-radius: 0; }
  .lupa-podpis { font-size: .86rem; opacity: .85; max-width: 46ch; text-align: center; }
  .lupa button { background: transparent; border: 1.5px solid rgba(243, 244, 230, .4); color: #F3F4E6; min-width: 2.7rem; height: 2.7rem; padding: 0 .7rem; border-radius: 999px; cursor: pointer; font: 700 .95rem/1 "Nunito", sans-serif; display: inline-grid; place-items: center; flex: none; }
  .lupa button:hover { border-color: #F3F4E6; background: rgba(243, 244, 230, .12); }
  .lupa.powieksz #lupa-zoom { background: rgba(243, 244, 230, .2); }

  /* ---------- kalendarz ---------- */
  .naglowek-sekcji { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
  .kal-shell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(290px, 356px); gap: clamp(1.5rem, 3vw, 2.6rem); margin-top: 2.4rem; align-items: start; }
  @media (max-width: 960px) { .kal-shell { grid-template-columns: 1fr; } }
  .kal-panel { background: var(--paper); border: 1.5px solid var(--line); border-radius: 18px; padding: 1.4rem 1.5rem 1.6rem; box-shadow: var(--shadow-s); }
  .kal-nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
  .kal-nav button { width: 2.4rem; height: 2.4rem; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); border-radius: 50%; cursor: pointer; font-size: 1.05rem; line-height: 1; display: grid; place-items: center; transition: border-color .16s, background .16s; }
  .kal-nav button:hover:not([disabled]) { border-color: var(--bazylia); background: var(--bazylia-soft); }
  .kal-nav button[disabled] { opacity: .3; cursor: not-allowed; }
  .kal-nav .zakres { font-family: "Young Serif", Georgia, serif; font-size: 1.25rem; text-align: center; flex: 1; }
  .miesiace { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.8rem; }
  @media (max-width: 700px) { .miesiace { grid-template-columns: 1fr; } }
  .miesiac h3 { font-family: "Nunito", sans-serif; font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); text-align: center; margin-bottom: .9rem; }
  .dni-naglowki, .siatka { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .dni-naglowki { gap: 1px; margin-bottom: .35rem; }
  .dni-naglowki span { text-align: center; font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-faint); }
  .siatka { gap: 3px; }
  .dzien { aspect-ratio: 1 / 1; min-height: 2.1rem; border: 0; padding: 0; margin: 0; background: var(--wolne); color: var(--ink); cursor: pointer; font: 700 .86rem/1 "Nunito", sans-serif; font-variant-numeric: tabular-nums; display: grid; place-items: center; border-radius: 8px; position: relative; box-shadow: inset 0 0 0 1.5px var(--line-soft); transition: background .12s, color .12s, box-shadow .12s; }
  .dzien:hover:not(:disabled):not(.zajety) { background: var(--bazylia-soft); box-shadow: inset 0 0 0 1.5px var(--bazylia); }
  .dzien.pusty { background: transparent; box-shadow: none; cursor: default; }
  .dzien:disabled { cursor: not-allowed; }
  .dzien.przeszly { color: var(--ink-faint); background: transparent; box-shadow: none; }
  .dzien.zajety { color: var(--zajete-ink); background: var(--zajete-bg); box-shadow: none; background-image: linear-gradient(to top right, transparent calc(50% - .6px), var(--zajete-ink) calc(50% - .6px), var(--zajete-ink) calc(50% + .6px), transparent calc(50% + .6px)); }
  .dzien.w-zakresie { background: var(--pomidor-soft); box-shadow: none; color: var(--ink); border-radius: 0; }
  .dzien.kraniec { background: var(--bazylia); color: var(--paper); font-weight: 800; box-shadow: none; }
  .dzien.kraniec:hover:not(:disabled) { background: var(--bazylia-hi); color: var(--paper); box-shadow: none; }
  .legenda { display: flex; gap: 1.3rem; flex-wrap: wrap; margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1.5px solid var(--line-soft); font-size: .82rem; color: var(--ink-soft); }
  .legenda span { display: inline-flex; align-items: center; gap: .45rem; }
  .swatch { width: .95rem; height: .95rem; border-radius: 4px; display: inline-block; flex: none; }
  .swatch.w { background: var(--wolne); box-shadow: inset 0 0 0 1.5px var(--line); }
  .swatch.z { background: var(--zajete-bg); background-image: linear-gradient(to top right, transparent calc(50% - .6px), var(--zajete-ink) calc(50% - .6px), var(--zajete-ink) calc(50% + .6px), transparent calc(50% + .6px)); }
  .swatch.s { background: var(--bazylia); }

  .rezerwacja { background: var(--paper); border: 1.5px solid var(--line); border-radius: 18px; padding: 1.5rem; box-shadow: var(--shadow-l); position: sticky; top: 1.5rem; }
  @media (max-width: 960px) { .rezerwacja { position: static; } }
  .rezerwacja .naglowek { font-family: "Young Serif", Georgia, serif; font-size: 1.5rem; }
  .rezerwacja .stawka { color: var(--ink-soft); font-size: .9rem; margin-top: .2rem; }
  .terminy { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5px; background: var(--line); border: 1.5px solid var(--line); margin: 1.3rem 0 0; border-radius: 12px; overflow: hidden; }
  .terminy > div { background: var(--paper); padding: .7rem .85rem; }
  .terminy dt { font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-faint); }
  .terminy dd { margin: .25rem 0 0; font-size: .96rem; font-weight: 800; font-variant-numeric: tabular-nums; }
  .terminy .godz { display: block; font-size: .74rem; font-weight: 400; color: var(--ink-soft); }
  .osoby { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: .6rem .85rem; border: 1.5px solid var(--line); border-radius: 12px; }
  .osoby > span { font-size: .78rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); }
  .stepper { display: flex; align-items: center; gap: .55rem; }
  .stepper button { width: 1.9rem; height: 1.9rem; border: 1.5px solid var(--line); background: var(--paper); color: var(--ink); border-radius: 50%; cursor: pointer; font-size: 1rem; line-height: 1; display: grid; place-items: center; }
  .stepper button:hover:not([disabled]) { border-color: var(--bazylia); background: var(--bazylia-soft); }
  .stepper button[disabled] { opacity: .3; cursor: not-allowed; }
  .stepper output { min-width: 1.2rem; text-align: center; font-weight: 800; font-variant-numeric: tabular-nums; }
  .rachunek { margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1.5px solid var(--line-soft); display: grid; gap: .5rem; font-size: .94rem; }
  .rachunek > div { display: flex; justify-content: space-between; gap: 1rem; color: var(--ink-soft); }
  .rachunek > div b { color: var(--ink); font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .rachunek .suma { padding-top: .6rem; border-top: 1.5px solid var(--line-soft); font-size: 1.02rem; color: var(--ink); align-items: baseline; }
  .rachunek .suma b { font-family: "Young Serif", Georgia, serif; font-size: 1.45rem; font-weight: 400; }
  .akcje { display: grid; gap: .55rem; margin-top: 1.3rem; }
  .akcje .btn { width: 100%; }
  .komunikat { margin-top: .9rem; font-size: .83rem; color: var(--ink-soft); min-height: 1.2em; }
  .sync-info { margin-top: .9rem; font-size: .76rem; color: var(--ink-faint); display: flex; align-items: baseline; gap: .45rem; }
  .kropka { width: .5rem; height: .5rem; border-radius: 50%; background: var(--bazylia); flex: none; transform: translateY(-1px); }
  .kropka.offline { background: var(--ink-faint); }

  details.dokumenty { margin-top: 1.1rem; border-top: 1.5px solid var(--line-soft); padding-top: .9rem; font-size: .86rem; color: var(--ink-soft); }
  details.dokumenty summary { font-weight: 800; color: var(--ink); list-style: none; display: flex; align-items: center; gap: .5rem; }
  details.dokumenty summary::-webkit-details-marker { display: none; }
  details.dokumenty summary::before { content: "+"; display: inline-grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: var(--bazylia-soft); color: var(--bazylia); font-size: .95rem; flex: none; }
  details.dokumenty[open] summary::before { content: "–"; }
  details.dokumenty p { margin-top: .7rem; }

  .faq { margin-top: clamp(1.8rem, 3vw, 2.6rem); display: grid; gap: .8rem; max-width: 68ch; }
  .faq details { background: var(--paper); border: 1.5px solid var(--line); border-radius: 14px; padding: 1rem 1.2rem; box-shadow: var(--shadow-s); }
  .faq details[open] { border-color: var(--bazylia); }
  .faq summary { font-weight: 800; color: var(--ink); list-style: none; display: flex; align-items: flex-start; gap: .7rem; }
  .faq summary::-webkit-details-marker { display: none; }
  .faq summary::before { content: "+"; display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; margin-top: .08rem; border-radius: 50%; background: var(--bazylia-soft); color: var(--bazylia); font-size: 1.05rem; font-weight: 800; flex: none; }
  .faq details[open] summary::before { content: "–"; background: var(--bazylia); color: var(--paper); }
  .faq details p { margin-top: .8rem; padding-left: 2.2rem; color: var(--ink-soft); max-width: 60ch; }

  /* ---------- treść ---------- */
  .cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); gap: clamp(2rem, 5vw, 5rem); }
  @media (max-width: 880px) { .cols { grid-template-columns: 1fr; } }
  .cols > div:first-child > h2 { position: sticky; top: 1.6rem; }
  @media (max-width: 880px) { .cols > div:first-child > h2 { position: static; } }
  .prose > * + * { margin-top: 1.15rem; }

  .rooms { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: .6rem; margin-top: 2rem; }
  .rooms > div { background: var(--paper); border: 1.5px solid var(--line); border-radius: 14px; padding: 1.3rem; }
  .rooms h3 { margin-bottom: .45rem; }
  .rooms p { font-size: .92rem; color: var(--ink-soft); }
  .amenities { display: grid; grid-template-columns: repeat(auto-fill, minmax(195px, 1fr)); gap: .55rem 1.5rem; list-style: none; padding: 0; margin: 1.7rem 0 0; }
  .amenities li { padding-left: 1.5rem; position: relative; font-size: .95rem; }
  .amenities li::before { content: ""; position: absolute; left: 0; top: .5em; width: .8rem; height: .8rem; border-radius: 50% 0; background: var(--bazylia); transform: rotate(-20deg); }

  .podreka { list-style: none; padding: 0; margin: 1.3rem 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: .6rem; }
  .podreka li { background: var(--paper); border: 1.5px solid var(--line); border-radius: 14px; padding: .9rem 1rem; font-size: .88rem; color: var(--ink-soft); }
  .podreka b { display: block; font-family: "Young Serif", Georgia, serif; font-size: 1.5rem; font-weight: 400; color: var(--ink); font-variant-numeric: tabular-nums; line-height: 1.15; }

  .dom-blok { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; margin-top: 2.4rem; }
  @media (max-width: 820px) { .dom-blok { grid-template-columns: 1fr; } }
  .kwiaty-duze { width: 100%; max-width: 280px; height: auto; display: block; margin: 0 auto 1rem; color: var(--bazylia); }
  .kondygnacje { display: grid; gap: .5rem; }
  .pietro { display: grid; grid-template-columns: 2.4rem 1fr; align-items: center; gap: 1rem; background: var(--paper); border: 1.5px solid var(--line); padding: .85rem 1rem; border-radius: 14px; }
  .pietro b { font-family: "Young Serif", Georgia, serif; font-size: 1.6rem; text-align: center; color: var(--ink-faint); }
  .pietro span { font-size: .88rem; color: var(--ink-soft); line-height: 1.35; }
  .pietro span strong { display: block; font-weight: 800; color: var(--ink); }
  .pietro.nasze { background: var(--bazylia); border-color: var(--bazylia); }
  .pietro.nasze b, .pietro.nasze span, .pietro.nasze span strong { color: var(--paper); }

  /* ---------- rejs ---------- */
  .rejs { background: linear-gradient(180deg, var(--morze-gora), var(--paper)); border-block: 1.5px solid var(--line); }
  .rejs-lead { max-width: 60ch; margin-top: 1.4rem; font-size: 1.18rem; }
  .rejs-jak { background: var(--paper); border: 1.5px solid var(--line); border-radius: 18px; padding: 1.5rem 1.7rem; margin-top: 2rem; box-shadow: var(--shadow-s); }
  .rejs-jak h3 { margin-bottom: .6rem; }
  .przystanki { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-top: 2rem; }
  .przystanek { background: var(--paper); border: 1.5px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-m); display: flex; flex-direction: column; }
  .przystanek figure { margin: 0; aspect-ratio: 4 / 3; background: var(--paper-2); position: relative; }
  .przystanek figure img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .przystanek figure figcaption { position: absolute; right: .5rem; bottom: .45rem; font-size: .62rem; color: #F3F4E6; background: rgba(23, 30, 18, .66); padding: .2rem .5rem; border-radius: 999px; }
  .przystanek figure figcaption a { color: inherit; }
  .przystanek .tresc { padding: 1.2rem 1.3rem 1.4rem; flex: 1; }
  .przystanek .krok { display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--plaza); color: var(--paper); font: 800 .78rem/1 "Nunito", sans-serif; margin-bottom: .6rem; }
  .przystanek h3 { margin-bottom: .4rem; }
  .przystanek p { font-size: .93rem; color: var(--ink-soft); }
  .rejs-cta { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; margin-top: 2rem; }

  /* ---------- mapy OpenStreetMap ---------- */
  .plaze-siatka { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: .6rem; margin-top: 1.4rem; }
  .plaze-siatka > div { background: var(--paper); border: 1.5px solid var(--line); border-radius: 14px; padding: 1.1rem 1.2rem 1.2rem; }
  .plaze-siatka h3 { font-size: 1.02rem; margin-bottom: .4rem; color: var(--plaza); }
  .plaze-siatka p { font-size: .91rem; color: var(--ink-soft); }
  .plaze-siatka .lacz { font-size: .91rem; }

  .leaflet-container { background: var(--morze-gora); font-family: "Nunito", sans-serif; font-size: .8rem; }
  .leaflet-container a { color: var(--bazylia); }
  .leaflet-control-attribution { background: rgba(254, 253, 247, .85); font-size: .68rem; }
  .leaflet-bar a { color: var(--ink); }
  .leaflet-popup-content-wrapper { border-radius: 12px; }
  .leaflet-popup-content { margin: .7rem .9rem; font: 800 .9rem/1.35 "Nunito", sans-serif; }

  .znacznik {
    display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
    background: var(--bazylia); color: var(--paper); border: 2.5px solid var(--paper);
    font: 800 14px/1 "Nunito", sans-serif; box-shadow: 0 2px 6px rgba(35, 48, 28, .45);
    cursor: pointer; transition: transform .14s ease, background .14s ease;
  }
  .znacznik:hover { transform: scale(1.12); }
  .znacznik.plaza { background: var(--plaza); }
  .znacznik.wybrany { background: var(--pomidor); transform: scale(1.22); z-index: 500; }
  .znacznik.dom { background: var(--pomidor); border-radius: 9px; width: 34px; height: 34px; }
  .znacznik.dom svg { width: 19px; height: 19px; }

  .grupa-znacznikow {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 42px; height: 42px; border-radius: 50%; overflow: hidden;
    background: var(--bazylia); color: var(--paper); border: 3px solid var(--paper);
    font: 800 15px/1 "Nunito", sans-serif; box-shadow: 0 3px 8px rgba(35, 48, 28, .45);
  }
  .grupa-znacznikow small { display: block; font-size: 8px; line-height: 1; font-weight: 700; opacity: .85; letter-spacing: .03em; margin-top: 2px; }
  .marker-cluster, .marker-cluster div { background: none !important; }
  .leaflet-cluster-anim .leaflet-marker-icon { transition: transform .25s ease, opacity .25s ease; }

  .mapa-brak { padding: 2.5rem 1.5rem; text-align: center; color: var(--ink-soft); font-size: .95rem; background: var(--paper); }

  .mapa-legenda { display: flex; gap: 1.2rem; flex-wrap: wrap; margin-top: .9rem; font-size: .82rem; color: var(--ink-soft); }
  .mapa-legenda span { display: inline-flex; align-items: center; gap: .5rem; }
  .kropka-legenda { width: 1rem; height: 1rem; border-radius: 50%; flex: none; border: 2px solid var(--paper); box-shadow: var(--shadow-s); }
  .kropka-legenda.ladowy { background: var(--bazylia); }
  .kropka-legenda.plaza { background: var(--plaza); }
  .kropka-legenda.dom { background: var(--pomidor); border-radius: 3px; }



  .lacz { background: none; border: 0; padding: 0; margin: 0; font: 800 .95rem/1.4 "Nunito", sans-serif; color: var(--bazylia); cursor: pointer; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
  .lacz:hover { color: var(--bazylia-hi); }
  .wiersz-plaza .lacz { color: var(--plaza); }

  .price-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); align-items: start; }
  @media (max-width: 880px) { .price-grid { grid-template-columns: 1fr; } }
  .price-card { background: var(--paper); border: 1.5px solid var(--line); padding: 2rem; border-radius: 18px; box-shadow: var(--shadow-m); }
  .price-card .big { font-family: "Young Serif", Georgia, serif; font-size: 3.4rem; line-height: 1; font-variant-numeric: tabular-nums; }
  .price-card .big small { font-family: "Nunito", sans-serif; font-size: .96rem; font-weight: 700; color: var(--ink-soft); }
  .price-card dl { display: grid; grid-template-columns: auto 1fr; gap: .55rem 1.2rem; margin: 1.6rem 0 0; font-size: .92rem; }
  .price-card dt { color: var(--ink-soft); }
  .price-card dd { margin: 0; font-weight: 800; }
  .rules { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: .6rem; font-size: .94rem; color: var(--ink-soft); }
  .rules li { padding-left: 1.35rem; position: relative; }
  .rules li::before { content: ""; position: absolute; left: 0; top: .55em; width: .55rem; height: .55rem; border-radius: 50%; background: var(--pomidor); }

  .hosts { background: var(--bazylia-soft); }
  .hosts .inner { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
  @media (max-width: 880px) { .hosts .inner { grid-template-columns: 1fr; } }
  .hosts blockquote { margin: 0; font-family: "Young Serif", Georgia, serif; font-size: clamp(1.35rem, 2.3vw, 1.85rem); line-height: 1.32; }
  .hosts blockquote footer { font-family: "Nunito", sans-serif; font-size: .86rem; font-weight: 700; color: var(--ink-soft); margin-top: 1.1rem; }
  .hosts figure { margin: 0; }
  .hosts figure img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; display: block; border-radius: 18px; box-shadow: var(--shadow-l); }

  .contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem; margin-top: 2.2rem; }
  .contact > div { background: var(--paper); border: 1.5px solid var(--line); border-radius: 14px; padding: 1.1rem 1.2rem; }
  .contact h3 { font-family: "Nunito", sans-serif; font-size: .66rem; letter-spacing: .13em; text-transform: uppercase; color: var(--ink-faint); font-weight: 800; margin-bottom: .45rem; }
  .contact p { font-size: 1rem; font-weight: 700; }
  .contact p .tiny { font-weight: 400; }
  footer.site { padding-block: 2.2rem; font-size: .8rem; color: var(--ink-faint); display: grid; gap: .4rem; }
  footer.site .rzad { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }

  /* ---------- podstrona z atrakcjami: jedna mapa ---------- */
  .podstrona-hero { padding-block: clamp(1.8rem, 4vw, 3rem) clamp(1rem, 2vw, 1.4rem); }
  .podstrona-hero h1 { max-width: 20ch; }
  .podstrona-hero .lead { max-width: 64ch; margin-top: 1.1rem; }
  .okruszki { font-size: .82rem; color: var(--ink-faint); margin-bottom: .9rem; }
  .okruszki a { font-weight: 700; }

  .atlas-sekcja { padding-bottom: clamp(1.6rem, 4vw, 2.6rem); }
  .zbiory { display: flex; gap: .5rem; flex-wrap: wrap; }
  .chip {
    appearance: none; cursor: pointer; font: 800 .95rem/1.15 "Nunito", sans-serif; color: var(--ink-soft);
    background: var(--paper); border: 1.5px solid var(--line); border-radius: 999px; padding: .6rem 1.1rem;
    display: inline-flex; align-items: baseline; gap: .5rem; transition: all .14s ease;
  }
  .chip small { font-size: .72rem; font-weight: 700; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
  .chip:hover { border-color: var(--bazylia); color: var(--ink); }
  .chip[aria-selected="true"] { background: var(--bazylia); border-color: var(--bazylia); color: var(--paper); }
  .chip[aria-selected="true"] small { color: rgba(254, 253, 247, .78); }
  .zbior-opis { margin: 1rem 0 0; max-width: 68ch; color: var(--ink-soft); font-size: 1rem; }

  .atlas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 320px); gap: .8rem; margin-top: 1.4rem; }
  .atlas-mapa { border: 1.5px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--shadow-m); background: var(--morze-gora); isolation: isolate; }
  #mapa { height: clamp(420px, 62vh, 620px); width: 100%; }
  .atlas-lista {
    height: clamp(420px, 62vh, 620px); overflow-y: auto; overscroll-behavior: contain;
    background: var(--paper); border: 1.5px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-s);
  }
  .wiersz {
    display: grid; grid-template-columns: 1.9rem minmax(0, 1fr) auto; align-items: baseline; gap: .7rem;
    width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--line-soft);
    padding: .7rem .9rem; cursor: pointer; font: inherit; color: inherit; transition: background .12s ease;
  }
  .wiersz:last-child { border-bottom: 0; }
  .wiersz:hover { background: var(--paper-2); }
  .wiersz-nr { font: 800 .78rem/1 "Nunito", sans-serif; color: var(--ink-faint); font-variant-numeric: tabular-nums; text-align: right; }
  .wiersz-tresc { display: grid; gap: .1rem; min-width: 0; }
  .wiersz-nazwa { font-weight: 800; font-size: .93rem; line-height: 1.3; }
  .wiersz-meta { font-size: .76rem; color: var(--ink-soft); line-height: 1.3; }
  .wiersz-plazka { font: 800 .58rem/1 "Nunito", sans-serif; letter-spacing: .1em; text-transform: uppercase; color: var(--plaza); background: var(--plaza-soft); padding: .28rem .45rem; border-radius: 999px; }
  .wiersz.wybrany { background: var(--pomidor-soft); box-shadow: inset 3px 0 0 var(--pomidor); }
  .wiersz.wybrany .wiersz-nr { color: var(--pomidor); }
  .wiersz.dom .wiersz-nr { color: var(--pomidor); }

  .szczegol {
    display: grid; grid-template-columns: 128px minmax(0, 1fr) minmax(0, 230px); gap: 1.2rem; align-items: center;
    background: var(--paper); border: 1.5px solid var(--line); border-radius: 18px; padding: 1rem 1.2rem;
    margin-top: .8rem; box-shadow: var(--shadow-s);
  }
  .szczegol.bez-foto { grid-template-columns: minmax(0, 1fr) minmax(0, 230px); }
  .szczegol-foto { margin: 0; width: 128px; height: 96px; border-radius: 12px; overflow: hidden; background: var(--paper-2); }
  .szczegol-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .szczegol-foto.brak { display: none; }
  .plazka { display: inline-block; background: var(--plaza-soft); color: var(--plaza); font: 800 .64rem/1 "Nunito", sans-serif; letter-spacing: .1em; text-transform: uppercase; padding: .32rem .6rem; border-radius: 999px; }
  .szczegol-gora { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
  .szczegol-gora h3 { font-size: 1.3rem; }
  .szczegol-meta { margin: .25rem 0 0; font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
  .szczegol-opis { margin: .45rem 0 0; font-size: .95rem; color: var(--ink-soft); }
  .szczegol-akcje { display: grid; gap: .45rem; justify-items: start; }
  .szczegol-akcje .btn { width: 100%; justify-content: center; white-space: nowrap; font-size: .85rem; padding-inline: .9rem; }
  .szczegol-fot { margin: 0; font-size: .68rem; color: var(--ink-faint); }

  @media (max-width: 900px) {
    .atlas { grid-template-columns: 1fr; }
    #mapa { height: clamp(320px, 52vh, 460px); }
    .atlas-lista { height: auto; max-height: 340px; }
    .szczegol { grid-template-columns: 96px minmax(0, 1fr); align-items: start; }
    .szczegol-foto { width: 96px; height: 96px; }
    .szczegol-akcje { grid-column: 1 / -1; justify-items: stretch; }
  }

  .zapowiedz { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .6rem; margin-top: 1.8rem; }
  .zapowiedz a { background: var(--paper); border: 1.5px solid var(--line); border-radius: 16px; padding: 1.2rem 1.3rem 1.3rem; display: grid; gap: .35rem; align-content: start; text-decoration: none; color: inherit; transition: border-color .14s ease, transform .14s ease; }
  .zapowiedz a:hover { border-color: var(--bazylia); transform: translateY(-2px); }
  .zapowiedz b { font-family: "Young Serif", Georgia, serif; font-weight: 400; font-size: 1.25rem; }
  .zapowiedz span { font-size: .9rem; color: var(--ink-soft); }
  .zapowiedz em { font-style: normal; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--bazylia); }
