@font-face{font-family:Lato;src:url("fonts/Lato-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Lato;src:url("fonts/Lato-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:Comme;src:url("fonts/Comme-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Comme;src:url("fonts/Comme-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
:root{--accent:#e43d18;--ink:#1b1a18;--muted:#69615d;--line:#e3ddd9;--paper:#fffaf7;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Lato,Arial,sans-serif;font-size:16px;line-height:1.55}
a{color:inherit}
img{max-width:100%}
.site-header{align-items:center;background:rgba(255,250,247,.92);border-bottom:1px solid rgba(227,221,217,.82);display:flex;gap:1rem;justify-content:space-between;left:0;padding:.7rem clamp(1rem,3vw,2.5rem);position:fixed;right:0;top:0;z-index:10;backdrop-filter:blur(12px)}
.brand{font-family:Comme,Lato,sans-serif;font-size:1.05rem;font-weight:500;letter-spacing:0;text-decoration:none;text-transform:uppercase}
.brand span{color:var(--accent)}
.language-nav{display:flex;gap:.35rem}
.language-nav a{border:1px solid var(--line);font-size:.78rem;padding:.25rem .45rem;text-decoration:none}
.language-nav a.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
.hero{background-image:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,0,0,.28),rgba(0,0,0,.12)),var(--hero-image);background-position:center;background-size:cover;color:#fff;display:flex;min-height:min(760px,88vh);padding:7.5rem clamp(1rem,5vw,5rem) 5rem}
.hero__content{align-self:end;max-width:760px}
.hero__content p{font-size:.9rem;margin:0 0 .65rem;text-transform:uppercase}
.hero h1{font-family:Comme,Lato,sans-serif;font-size:clamp(3rem,8vw,6.8rem);font-weight:500;line-height:.95;margin:0 0 1rem;text-transform:uppercase}
.hero h1+p,.hero__content>p+ h1+p{font-size:clamp(1rem,1.45vw,1.28rem);line-height:1.65;margin:0;max-width:46rem;text-transform:none}
.hero__actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}
.button{border:1px solid rgba(255,255,255,.72);color:#fff;display:inline-flex;font-weight:700;line-height:1;padding:.8rem 1.05rem;text-decoration:none;text-transform:uppercase}
.button--primary{background:var(--accent);border-color:var(--accent)}
.section{padding:clamp(2.8rem,6vw,5.5rem) clamp(1rem,4vw,4rem)}
.section__inner{margin:0 auto;max-width:1280px}
.intro__grid{align-items:start;display:grid;gap:clamp(2rem,5vw,4rem);grid-template-columns:minmax(0,1fr) minmax(280px,520px)}
.intro__copy{font-size:1.03rem;max-width:48rem}
.intro__copy p:first-child{margin-top:0}
.gallery{display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));position:sticky;top:5rem}
.gallery__item{aspect-ratio:1/1;background:#eee;border:0;cursor:pointer;display:block;overflow:hidden;padding:0}
.gallery__item--large{grid-column:1/-1;aspect-ratio:16/10}
.gallery img{height:100%;object-fit:cover;transition:transform .25s ease;width:100%}
.gallery__item:hover img{transform:scale(1.035)}
.gallery-section{background:var(--paper)}
.gallery-section h2{color:var(--accent);font-family:Comme,Lato,sans-serif;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:500;line-height:1.1;margin:0 0 1.25rem;text-align:center;text-transform:uppercase}
.gallery-section .gallery{grid-template-columns:repeat(4,minmax(0,1fr));position:static;top:auto}
.gallery-section .gallery__item--large{grid-column:span 2;grid-row:span 2}
.section--prices{background:#fff}
.footer{align-items:center;background:#1f1b18;color:#fff;display:flex;flex-wrap:wrap;gap:.75rem 1.2rem;justify-content:center;padding:1.1rem;text-align:center}
.footer a{color:#fff}
.spa-price-list__nav{top:3.5rem}
.lightbox{align-items:center;background:rgba(18,15,13,.92);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:20}
.lightbox img{max-height:92vh;max-width:92vw}
.lightbox button{background:#fff;border:0;color:#111;cursor:pointer;font-size:1.5rem;height:2.5rem;position:absolute;right:1rem;top:1rem;width:2.5rem}
@media (max-width:840px){.hero{min-height:78vh}.intro__grid{grid-template-columns:1fr}.gallery{position:static}.gallery-section .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header{padding:.6rem 1rem}.hero__actions .button{flex:1 1 auto;justify-content:center}.section{padding-left:1rem;padding-right:1rem}}

/* Main price-list container: keeps plugin styles scoped to the SPA cennik. */
.spa-price-list {
  --spa-accent: #e43d18;
  --spa-border: #d7d7d7;
  --spa-muted: #666;
  --spa-text: #111;
  color: var(--spa-text);
  font-family: Lato, Arial, sans-serif;
  font-size: 15px;
  line-height: 1.2;
  margin: 0 auto;
  max-width: 1500px;
  scroll-behavior: smooth;
}

/* Centered heading area above the generated price table. */
.spa-price-list__header {
  margin-bottom: 1.5rem;
  text-align: center;
}

/* Optional descriptive label above the main title. */
.spa-price-list__eyebrow {
  color: var(--spa-accent);
  font-size: clamp(1.4rem, 3vw, 2.5rem);
  font-weight: 500;
  letter-spacing: 0;
  margin: 0 0 0.25rem;
  text-transform: uppercase;
}

/* Main cennik title. */
.spa-price-list__header h2 {
  color: var(--spa-accent);
  font-size: clamp(1.5rem, 3vw, 2.7rem);
  font-weight: 500;
  letter-spacing: 0;
  margin: 0;
  text-transform: uppercase;
}

/* Shared fallback style for database errors and empty price lists. */
.spa-price-list__notice {
  border: 1px solid var(--spa-border);
  margin: 0 auto;
  max-width: 42rem;
  padding: 1rem;
  text-align: center;
}

/* Compact category jump links shown above the generated price list. */
.spa-price-list__nav {
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(215, 215, 215, 0.65);
  border-top: 1px solid rgba(215, 215, 215, 0.45);
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
  margin: -0.4rem auto 1.4rem;
  max-width: 100%;
  padding: 0.45rem 0.25rem;
  position: sticky;
  top: 3rem;
  z-index: 1;
}

.spa-price-list__nav a,
.spa-price-list__nav a:visited {
  border: 1px solid var(--spa-border);
  color: #333;
  font-size: 0.68rem;
  letter-spacing: 0;
  line-height: 1.1;
  padding: 0.35rem 0.55rem;
  text-decoration: none;
  text-transform: uppercase;
}

.spa-price-list__nav a:focus,
.spa-price-list__nav a:hover {
  border-color: var(--spa-accent);
  color: #333;
  text-decoration: none;
}

.spa-price-list__nav a.is-active,
.spa-price-list__nav a.is-active:focus,
.spa-price-list__nav a.is-active:hover,
.spa-price-list__nav a.is-active:visited {
  background: var(--spa-accent);
  border-color: var(--spa-accent);
  color: #fff;
}

/* Admin Markdown shown before a category. */
.spa-price-list__category-note {
  color: #333;

  line-height: 1.55;
  margin: 0 0 1rem;
  max-width: 52rem;
}

.spa-price-list__category-note--with-image {
  align-items: start;
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) minmax(9rem, 32%);
  max-width: 100%;
}

.spa-price-list__category-note-text {
  min-width: 0;
}

.spa-price-list__category-note-text .spa-price-list__main-heading,
.spa-price-list__category-note-text .spa-price-list__subheading {
  margin-top: 0;
}

.spa-price-list__category-note-images {
  display: grid;
  gap: 0.75rem;
  margin: 0;
}

.spa-price-list__category-note-images img {
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: cover;
  width: 100%;
}

.spa-price-list__category-note * {
  font-size: 0.84rem;
}

/* Nested category notes sit closer to their subcategory heading. */
.spa-price-list__category-note--nested {
  font-size: 0.88rem;
  margin: 0.75rem 0 0.7rem;
}

/* Keep generated Markdown rhythm compact inside the price list. */
.spa-price-list__category-note > :first-child {
  margin-top: 0;
}

/* Avoid extra whitespace after the final generated Markdown element. */
.spa-price-list__category-note > :last-child {
  margin-bottom: 0;
}

/* Make links inside category notes consistent with the SPA accent color. */
.spa-price-list__category-note a {
  color: var(--spa-accent);
}

/* Multi-column flow for long cennik sections on desktop. */
.spa-price-list__columns {
  column-count: 3;
  column-gap: 5rem;
}

/* Prevent individual category blocks from being split between columns. */
.spa-price-list__section {
  break-inside: avoid;
  margin: 0 0 3.25rem;
  scroll-margin-top: 8.5rem;
}

/* Optional refined single-column layout enabled from the plugin settings. */
.spa-price-list--one-column {
  --spa-border: #e5dedb;
  font-size: 16px;
  line-height: 1.35;
  max-width: 980px;
}

/* The one-column variant keeps each category in normal document flow. */
.spa-price-list--one-column .spa-price-list__columns {
  column-count: 1;
  column-gap: 0;
}

/* Add elegant vertical rhythm between one-column category groups. */
.spa-price-list--one-column .spa-price-list__section {
  /* border-top: 1px solid var(--spa-border); */
  margin: 0;
  padding: 2rem 0 2.25rem;
}

/* Remove the first separator so the list begins cleanly after the header. */
.spa-price-list--one-column .spa-price-list__section:first-child {
  border-top: 0;
  padding-top: 0.25rem;
}

/* Make main headings calmer and more editorial in the one-column layout. */
.spa-price-list--one-column .spa-price-list__main-heading {
  border-bottom: 0;
  color: var(--spa-accent);
  font-size: 1.45rem;
  letter-spacing: 0;
  margin-bottom: 0.8rem;
}

/* Give nested headings a little more presence in the one-column layout. */
.spa-price-list--one-column .spa-price-list__subheading {
  border-bottom: 0;
  color: #222;
  font-size: 1.05rem;
  font-weight: 500;
  margin: 1.25rem 0 0.45rem;
}

/* Separate one-column service groups with a fine top rule. */
.spa-price-list--one-column .spa-price-list__table {
  border-top: 1px solid var(--spa-border);
}

/* Increase row spacing so the one-column version feels less compressed. */
.spa-price-list--one-column .spa-price-list__row {
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr) minmax(12.5rem, max-content);
  padding: 0.6rem 0;
}

/* Give one-column variant subrows a little more breathing room. */
.spa-price-list--one-column .spa-price-list__variant {
  grid-template-columns: minmax(0, 1fr) 6rem 6rem;
}

/* Give category introductions a slightly softer reading measure in one column. */
.spa-price-list--one-column .spa-price-list__category-note {
  color: #38302d;
  font-size: 0.94rem;
  margin-bottom: 1.1rem;
}

/* Top-level category heading. */
.spa-price-list__main-heading {
  border-bottom: 1px solid var(--spa-border);
  font-family: "Comme", sans-serif;
  color: #000;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.05;
  margin: 0 0 0.35rem;
  text-transform: uppercase;
}

/* Nested category heading. */
.spa-price-list__subheading {
  border-bottom: 1px solid var(--spa-border);
  color: var(--spa-accent);
  font-size: 1rem;
  font-weight: 200;
  line-height: 1.1;
  margin: 0.55rem 0 0.15rem;
  text-transform: uppercase;
}

/* Table wrapper uses divs so the layout can stay responsive. */
.spa-price-list__table {
  width: 100%;
}

/* Service row: name, duration, and price. */
.spa-price-list__row {
  align-items: stretch;
  border-bottom: 1px solid var(--spa-border);
  display: grid;
  gap: 0.55rem;
  grid-template-columns: minmax(0, 1fr) minmax(10.95rem, max-content);
  padding: 0.18rem 0 0.16rem;
}

/* Allow long service names to wrap instead of pushing price columns away. */
.spa-price-list__name {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
}

/* Service title inside the name column. */
.spa-price-list__name strong {
  display: inline;
  font-weight: 400;
}

/* Description text below the service title. */
.spa-price-list__description {
  color: #8d8d8d;
  display: block;
  grid-column: 1 / 2;
  /* font-size: 0.88em; */
  font-size:1em;
  font-weight: 400;
}

.spa-price-list__long-text {
  color: var(--spa-muted);
  font-size: 0.86em;
  grid-column: 1 / -1;
  line-height: 1.35;
  margin-top: 0.2rem;
}

/* Stack all duration/price variants inside the same service row. */
.spa-price-list__variants {
  display: grid;
  gap: 0.1rem;
}

/* One variant subrow: optional label, duration, and price. */
.spa-price-list__variant {
  align-items: baseline;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: minmax(0, 1fr) 5.2rem 5.2rem;
}

/* Optional variant label, used only when the database provides one. */
.spa-price-list__variant-name {
  color: var(--spa-muted);
  font-size: 0.88em;
  min-width: 0;
}

/* Keep duration and price compact and right-aligned. */
.spa-price-list__time,
.spa-price-list__price {
  text-align: right;
  white-space: nowrap;
}

/* Emphasize the price column. */
.spa-price-list__price {
  font-weight: 400;
}

/* Use two columns on medium screens. */
@media (max-width: 1100px) {
  .spa-price-list__columns {
    column-count: 2;
  }
}

/* Switch to a single column and tighter row spacing on phones. */
@media (max-width: 720px) {
  .spa-price-list {
    font-size: 14px;
  }

  .spa-price-list__columns {
    column-count: 1;
  }

  .spa-price-list__nav {
    justify-content: flex-start;
    margin-bottom: 1rem;
    overflow-x: auto;
    padding: 0.4rem 0;
    top: 0.5rem;
  }

  .spa-price-list__nav a {
    flex: 0 0 auto;
  }

  .spa-price-list__section {
    scroll-margin-top: 5.5rem;
  }

  .spa-price-list__row {
    gap: 0.4rem;
    grid-template-columns: 1fr;
  }

  .spa-price-list__name,
  .spa-price-list__variants {
    grid-column: 1 / -1;
  }

  .spa-price-list__variant {
    gap: 0.4rem;
    grid-template-columns: minmax(0, 1fr) 4.2rem 4.8rem;
  }

  .spa-price-list__description {
    grid-column: 1 / -1;
  }

  .spa-price-list__category-note--with-image {
    grid-template-columns: 1fr;
  }
}
