/* ==========================================================================
   SWÓJ KĄT — układy konkretnych szablonów
   ========================================================================== */

/* --- Archiwum ofert: sidebar filtrów + siatka --------------------------- */

.sk-archive {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: var(--sk-sp-8);
  align-items: start;
}

.sk-filters {
  position: sticky;
  top: calc(var(--sk-header-h) + var(--sk-sp-4));
  display: flex;
  flex-direction: column;
  gap: var(--sk-sp-4);
  max-height: calc(100vh - var(--sk-header-h) - var(--sk-sp-8));
  overflow-y: auto;
  padding-right: var(--sk-sp-2);
}

.sk-filters__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sk-sp-4);
}

.sk-filters__title {
  margin: 0;
  font-family: var(--sk-font-sans);
  font-size: var(--sk-fs-md);
  font-weight: var(--sk-fw-semibold);
}

.sk-filters__reset {
  font-size: var(--sk-fs-sm);
  color: var(--sk-text-muted);
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
}
.sk-filters__reset:hover { color: var(--sk-brown); }

.sk-filter-group {
  padding: var(--sk-sp-5);
  border: 1px solid var(--sk-border);
  border-radius: var(--sk-radius-lg);
  background: var(--sk-white);
}

.sk-filter-group__legend {
  display: block;
  width: 100%;
  margin-bottom: var(--sk-sp-3);
  padding: 0;
  font-family: var(--sk-font-sans);
  font-size: var(--sk-fs-xs);
  font-weight: var(--sk-fw-semibold);
  letter-spacing: var(--sk-ls-label);
  text-transform: uppercase;
  color: var(--sk-brown);
}

/* Lista opcji zwijana po 5 pozycjach — "Pokaż więcej" w makiecie. */
.sk-filter-group__list { margin: 0; padding: 0; list-style: none; }
.sk-filter-group__list li.is-hidden { display: none; }

.sk-filter-group__more {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sk-sp-2);
  width: 100%;
  margin-top: var(--sk-sp-2);
  padding: 0;
  border: 0;
  background: none;
  font-size: var(--sk-fs-sm);
  color: var(--sk-text-muted);
  cursor: pointer;
}
.sk-filter-group__more:hover { color: var(--sk-brown); }
.sk-filter-group__more svg { transition: transform var(--sk-duration) var(--sk-ease); }
.sk-filter-group__more[aria-expanded="true"] svg { transform: rotate(180deg); }

/* Suwak zakresu (cena, powierzchnia) */
.sk-range__values {
  display: flex;
  justify-content: space-between;
  margin-top: var(--sk-sp-3);
  font-size: var(--sk-fs-sm);
  color: var(--sk-text-muted);
}

.sk-range input[type="range"] {
  width: 100%;
  accent-color: var(--sk-brown);
  cursor: pointer;
}

.sk-range__inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sk-sp-3);
  margin-top: var(--sk-sp-3);
}

.sk-range__inputs .sk-input { padding: 0.6em 0.8em; font-size: var(--sk-fs-sm); }

/* Pasek nad wynikami: liczba ofert + sortowanie + liczba na stronie */
.sk-results__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sk-sp-4);
  margin-bottom: var(--sk-sp-6);
  padding-bottom: var(--sk-sp-4);
  border-bottom: 1px solid var(--sk-border);
}

.sk-results__count { font-size: var(--sk-fs-base); color: var(--sk-text-soft); }
.sk-results__count strong { color: var(--sk-text); }

.sk-results__tools { display: flex; align-items: center; gap: var(--sk-sp-5); }

.sk-inline-select {
  display: flex;
  align-items: center;
  gap: var(--sk-sp-2);
  font-size: var(--sk-fs-sm);
  color: var(--sk-text-muted);
}

.sk-inline-select select {
  padding: 0.4em 2em 0.4em 0.6em;
  border: 1px solid var(--sk-border);
  border-radius: var(--sk-radius-sm);
  background-color: var(--sk-white);
  font-family: var(--sk-font-sans);
  font-size: var(--sk-fs-sm);
  color: var(--sk-text);
  cursor: pointer;
}

/* Przycisk otwierający filtry na telefonie */
.sk-filters__toggle { display: none; }

@media (max-width: 1024px) {
  .sk-archive { grid-template-columns: minmax(0, 1fr); }

  .sk-filters__toggle { display: inline-flex; }

  .sk-filters {
    position: fixed;
    inset: 0;
    z-index: var(--sk-z-modal);
    max-height: none;
    padding: var(--sk-sp-6) var(--sk-gutter) var(--sk-sp-10);
    background: var(--sk-cream);
    transform: translateY(100%);
    visibility: hidden;
    transition: transform var(--sk-duration) var(--sk-ease), visibility var(--sk-duration);
  }

  .sk-filters.is-open { transform: translateY(0); visibility: visible; }

  .sk-filters__close {
    position: sticky;
    top: 0;
    align-self: flex-end;
  }
}

/* --- Pojedyncza oferta --------------------------------------------------- */

.sk-property__gallery {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: repeat(2, 1fr);
  gap: var(--sk-sp-3);
  aspect-ratio: 16 / 9;
  margin-bottom: var(--sk-sp-8);
  border-radius: var(--sk-radius-lg);
  overflow: hidden;
}

.sk-property__gallery a { display: block; position: relative; overflow: hidden; }
.sk-property__gallery a:first-child { grid-row: span 2; }
.sk-property__gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--sk-ease); }
.sk-property__gallery a:hover img { transform: scale(1.04); }

/* Nakładka "+N zdjęć" na ostatnim kafelku */
.sk-property__gallery-more {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(35, 31, 32, 0.55);
  color: var(--sk-white);
  font-family: var(--sk-font-serif);
  font-size: var(--sk-fs-xl);
}

@media (max-width: 700px) {
  .sk-property__gallery { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; aspect-ratio: 4 / 3; }
  .sk-property__gallery a:not(:first-child) { display: none; }
  .sk-property__gallery a:first-child { grid-row: auto; }
}

.sk-property__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: var(--sk-sp-8);
  align-items: start;
}

.sk-property__header { margin-bottom: var(--sk-sp-7); }

.sk-property__title { margin: 0 0 var(--sk-sp-3); font-size: var(--sk-fs-3xl); }

.sk-property__location {
  display: flex;
  align-items: center;
  gap: var(--sk-sp-2);
  font-size: var(--sk-fs-md);
  color: var(--sk-text-muted);
}

/* Kluczowe parametry w siatce */
.sk-property__specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--sk-sp-1);
  margin-bottom: var(--sk-sp-8);
  border: 1px solid var(--sk-border);
  border-radius: var(--sk-radius-lg);
  overflow: hidden;
  background: var(--sk-border);
}

.sk-spec {
  padding: var(--sk-sp-5);
  background: var(--sk-white);
}

.sk-spec__label {
  display: block;
  margin-bottom: var(--sk-sp-2);
  font-size: var(--sk-fs-xs);
  letter-spacing: var(--sk-ls-label);
  text-transform: uppercase;
  color: var(--sk-text-muted);
}

.sk-spec__value {
  font-family: var(--sk-font-serif);
  font-size: var(--sk-fs-lg);
  font-weight: var(--sk-fw-medium);
  color: var(--sk-text);
}

/* Tabela szczegółów */
.sk-details { width: 100%; border-collapse: collapse; margin-bottom: var(--sk-sp-8); }
.sk-details th, .sk-details td { padding: var(--sk-sp-4) 0; border-bottom: 1px solid var(--sk-border); text-align: left; font-size: var(--sk-fs-base); }
.sk-details th { width: 45%; font-weight: var(--sk-fw-regular); color: var(--sk-text-muted); }
.sk-details td { font-weight: var(--sk-fw-medium); }

/* Lista udogodnień */
.sk-amenities { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--sk-sp-3); margin: 0 0 var(--sk-sp-8); padding: 0; list-style: none; }
.sk-amenities li { display: flex; align-items: center; gap: var(--sk-sp-3); font-size: var(--sk-fs-base); color: var(--sk-text-soft); }
.sk-amenities svg { flex: 0 0 auto; color: var(--sk-gold-dark); }

/* Boczna karta kontaktu z agentem */
.sk-property__aside {
  position: sticky;
  top: calc(var(--sk-header-h) + var(--sk-sp-4));
  display: flex;
  flex-direction: column;
  gap: var(--sk-sp-5);
}

.sk-price-box {
  padding: var(--sk-sp-6);
  border: 1px solid var(--sk-gold-soft);
  border-radius: var(--sk-radius-lg);
  background: var(--sk-cream);
}

.sk-price-box__price {
  font-family: var(--sk-font-serif);
  font-size: var(--sk-fs-2xl);
  font-weight: var(--sk-fw-bold);
  line-height: 1.1;
  color: var(--sk-brown);
}

.sk-price-box__per-m {
  margin-top: var(--sk-sp-2);
  font-size: var(--sk-fs-sm);
  color: var(--sk-text-muted);
}

.sk-agent-box {
  padding: var(--sk-sp-6);
  border: 1px solid var(--sk-border);
  border-radius: var(--sk-radius-lg);
  background: var(--sk-white);
}

.sk-agent-box__head { display: flex; align-items: center; gap: var(--sk-sp-4); margin-bottom: var(--sk-sp-5); }
.sk-agent-box__photo { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.sk-agent-box__name { margin: 0; font-family: var(--sk-font-sans); font-size: var(--sk-fs-base); font-weight: var(--sk-fw-semibold); }
.sk-agent-box__role { margin: 0; font-size: var(--sk-fs-sm); color: var(--sk-text-muted); }

@media (max-width: 1024px) {
  .sk-property__layout { grid-template-columns: minmax(0, 1fr); }
  .sk-property__aside { position: static; }
}

/* --- Mapa ---------------------------------------------------------------- */

.sk-map {
  aspect-ratio: 21 / 9;
  border-radius: var(--sk-radius-lg);
  overflow: hidden;
  background: var(--sk-cream);
}
.sk-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* --- Kontakt ------------------------------------------------------------- */

.sk-contact {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--sk-sp-9);
  align-items: start;
}

.sk-contact__info { display: flex; flex-direction: column; gap: var(--sk-sp-6); }

.sk-contact__item { display: flex; align-items: flex-start; gap: var(--sk-sp-4); }
.sk-contact__item svg { flex: 0 0 auto; margin-top: 0.15em; color: var(--sk-gold-dark); }
.sk-contact__item dt { margin: 0 0 var(--sk-sp-1); font-size: var(--sk-fs-sm); letter-spacing: var(--sk-ls-label); text-transform: uppercase; color: var(--sk-text-muted); }
.sk-contact__item dd { margin: 0; font-size: var(--sk-fs-md); color: var(--sk-text); }

.sk-form-card {
  padding: var(--sk-sp-8);
  border: 1px solid var(--sk-border);
  border-radius: var(--sk-radius-lg);
  background: var(--sk-white);
  box-shadow: var(--sk-shadow);
}

.sk-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sk-sp-5); }

.sk-form__consent {
  display: flex;
  align-items: flex-start;
  gap: var(--sk-sp-3);
  margin-bottom: var(--sk-sp-5);
  font-size: var(--sk-fs-sm);
  line-height: var(--sk-lh-snug);
  color: var(--sk-text-muted);
}
.sk-form__consent input { margin-top: 0.25em; accent-color: var(--sk-gold); }

@media (max-width: 900px) {
  .sk-contact { grid-template-columns: minmax(0, 1fr); gap: var(--sk-sp-8); }
  .sk-form__row { grid-template-columns: minmax(0, 1fr); }
  .sk-form-card { padding: var(--sk-sp-6); }
}

/* --- Nagłówek podstrony (bez zdjęcia) ------------------------------------ */

.sk-page-head {
  padding-block: var(--sk-sp-9);
  background: var(--sk-cream);
  border-bottom: 1px solid var(--sk-border);
}
.sk-page-head__title { margin: 0; font-size: var(--sk-fs-3xl); }

/* --- Treść edytora (WYSIWYG klienta) ------------------------------------ */

.sk-prose { max-width: var(--sk-container-text); }
.sk-prose > * + * { margin-top: var(--sk-sp-5); }
.sk-prose h2 { margin-top: var(--sk-sp-8); }
.sk-prose h3 { margin-top: var(--sk-sp-7); }
.sk-prose img, .sk-prose figure { border-radius: var(--sk-radius); }
.sk-prose figcaption { margin-top: var(--sk-sp-2); font-size: var(--sk-fs-sm); color: var(--sk-text-muted); text-align: center; }
.sk-prose ul, .sk-prose ol { padding-left: 1.4em; }
.sk-prose li + li { margin-top: var(--sk-sp-2); }
.sk-prose table { width: 100%; border-collapse: collapse; }
.sk-prose th, .sk-prose td { padding: var(--sk-sp-3); border: 1px solid var(--sk-border); text-align: left; }

/* --- Wpis bloga / aktualności -------------------------------------------- */

.sk-post-card { display: flex; flex-direction: column; height: 100%; }
.sk-post-card__media { aspect-ratio: 3 / 2; border-radius: var(--sk-radius); overflow: hidden; background: var(--sk-cream); }
.sk-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--sk-ease); }
.sk-post-card:hover .sk-post-card__media img { transform: scale(1.04); }
.sk-post-card__date { margin: var(--sk-sp-4) 0 var(--sk-sp-2); font-size: var(--sk-fs-sm); letter-spacing: var(--sk-ls-label); text-transform: uppercase; color: var(--sk-text-muted); }
.sk-post-card__title { margin: 0 0 var(--sk-sp-3); font-size: var(--sk-fs-md); font-family: var(--sk-font-sans); font-weight: var(--sk-fw-medium); }
.sk-post-card__excerpt { margin: 0; font-size: var(--sk-fs-base); color: var(--sk-text-muted); line-height: var(--sk-lh-snug); }

/* --- 404 ------------------------------------------------------------------ */

.sk-404 { padding-block: var(--sk-sp-12); text-align: center; }
.sk-404__code { font-family: var(--sk-font-serif); font-size: clamp(5rem, 14vw, 10rem); line-height: 1; color: var(--sk-gold-soft); }

/* --- Klauzula informacyjna pod formularzem ------------------------------
   Zwinięta domyślnie: pełny tekst RODO pod każdym formularzem przytłaczałby
   stronę, a jednocześnie musi być dostępny w momencie zbierania danych. */

.sk-form__clause {
  margin-bottom: var(--sk-sp-5);
  border: 1px solid var(--sk-border);
  border-radius: var(--sk-radius);
  background: var(--sk-cream);
}

.sk-form__clause summary {
  padding: var(--sk-sp-3) var(--sk-sp-4);
  font-size: var(--sk-fs-sm);
  font-weight: var(--sk-fw-medium);
  color: var(--sk-text-soft);
  cursor: pointer;
  list-style: none;
}

.sk-form__clause summary::-webkit-details-marker { display: none; }

.sk-form__clause summary::before {
  content: "＋";
  display: inline-block;
  width: 1.2em;
  color: var(--sk-gold-dark);
  font-weight: var(--sk-fw-bold);
}

.sk-form__clause[open] summary::before { content: "－"; }

.sk-form__clause summary:hover { color: var(--sk-brown); }

.sk-form__clause-body {
  padding: 0 var(--sk-sp-4) var(--sk-sp-4);
  font-size: var(--sk-fs-xs);
  line-height: 1.6;
  color: var(--sk-text-muted);
}

.sk-form__clause-body p { margin-bottom: var(--sk-sp-3); }
.sk-form__clause-body p:last-child { margin-bottom: 0; }

/* Zgody: każda w osobnym wierszu, z wyraźnym celem dotykowym. */
.sk-form__consent + .sk-form__consent { margin-top: calc(var(--sk-sp-5) * -1 + var(--sk-sp-3)); }

/* --- Ramka ostrzegawcza w dokumentach prawnych --------------------------
   Widoczna informacja, że dokument wymaga uzupełnienia. Klient usuwa ją
   z edytora po wypełnieniu pól. */

.sk-legal-note {
  margin-bottom: var(--sk-sp-7);
  padding: var(--sk-sp-5);
  border: 1px solid var(--sk-warning);
  border-left-width: 4px;
  border-radius: var(--sk-radius);
  background: #fdf7ec;
  font-size: var(--sk-fs-sm);
  line-height: var(--sk-lh-snug);
  color: #6b4e08;
}

.sk-legal-note p { margin: 0; }

.sk-legal-note code {
  padding: 1px 5px;
  border-radius: 3px;
  background: rgba(107, 78, 8, 0.12);
  font-size: 0.95em;
}

/* Tabela podstaw prawnych w polityce prywatności musi być czytelna na telefonie. */
.sk-prose table { font-size: var(--sk-fs-sm); }

@media (max-width: 640px) {
  .sk-prose table, .sk-prose thead, .sk-prose tbody, .sk-prose tr, .sk-prose th, .sk-prose td {
    display: block;
    width: auto;
  }
  .sk-prose thead { display: none; }
  .sk-prose tr {
    margin-bottom: var(--sk-sp-4);
    border: 1px solid var(--sk-border);
    border-radius: var(--sk-radius);
    overflow: hidden;
  }
  .sk-prose td { border: 0; border-bottom: 1px solid var(--sk-border); }
  .sk-prose tr td:last-child { border-bottom: 0; }
  /* Etykiety kolumn wracają jako prefiksy przy wartościach. */
  .sk-prose td:nth-child(1)::before { content: "Cel: "; font-weight: 600; }
  .sk-prose td:nth-child(2)::before { content: "Podstawa: "; font-weight: 600; }
  .sk-prose td:nth-child(3)::before { content: "Okres: "; font-weight: 600; }
}
