/* =============================================================================
   site.css — Massage Heaven (Warszawa). Warstwa marki NA WIERZCHU tokens.css +
   styles.css + signature-moves.css. Paleta „Amber Espresso" wyprowadzona ze
   zdjęć wnętrza (images/places/) — NIE zmieniać kolorów/fontów tutaj.
   Kolejność linków w <head>: tokens.css → styles.css → signature-moves.css → site.css
   ============================================================================= */

/* --- Marka w headerze ------------------------------------------------------ */
.brand { display: flex; flex-direction: column; gap: 2px; text-decoration: none; }
.brand .brand-name {
  font-family: var(--font-heading); font-size: var(--fs-lg, 20px); font-weight: 700;
  letter-spacing: .02em; color: var(--text-strong);
}
.brand .brand-tagline { color: var(--text-muted); font-style: italic; }
.nav-cta { margin-inline-start: var(--space-3, 12px); }
nav[aria-label="Główna"] .nav-cta { min-height: 44px; padding: 0 var(--space-5, 24px); }
@media (max-width: 767px) {
  .site-header.nav-collapsed .nav-cta,
  nav[aria-label="Główna"] .nav-cta { width: 100%; margin-inline-start: 0; margin-top: var(--space-3, 12px); }
}

/* --- Rytm sekcji: spacje KRÓTKIE + tła zróżnicowane (korekty dyrektora) ----- */
main > section, main > .section {
  padding-block: clamp(36px, 5.5vw, 64px);
  border-bottom: 1px solid var(--color-border);
}
main > section:last-of-type { border-bottom: 0; }
.sec-head { padding-top: var(--space-2, 8px); margin-bottom: var(--space-5, 24px); max-width: 62ch; }
.sec-head .eyebrow { margin-bottom: var(--space-3, 12px); }
.sec-head h2 { margin-bottom: var(--space-3, 12px); }
.sec-head p { color: var(--text-body); }

.tint-a  { background: var(--color-bg); }
.tint-b  { background: var(--color-surface); }
.tint-c  { background: linear-gradient(180deg, var(--color-surface), var(--color-bg)); }
.tint-d  { background: var(--color-neutral900); }
.hairline-top { border-top: 1px solid var(--color-border); }

/* --- Hero: diagonal-split (archetyp z seeda) -------------------------------- */
.hero--diagonal { padding-block: clamp(48px, 8vw, 88px); background: var(--color-bg); overflow: hidden; border-bottom: 1px solid var(--color-border); }
.hero--diagonal .hero__grid { display: grid; gap: var(--space-7, 48px); align-items: center; }
.hero--diagonal .hero__media { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius-lg); overflow: hidden; isolation: isolate; }
.hero--diagonal .hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero--diagonal .hero__media::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-accent) 35%, transparent);
  background: linear-gradient(0deg, rgba(15,10,7,.35), transparent 45%);
}
.hero__eyebrow { color: var(--color-accent); }
.hero h1 { font-size: clamp(34px, 6.4vw, var(--fs-4xl, 49px)); margin-bottom: var(--space-4, 16px); }
.hero .lead { font-size: var(--fs-lg, 20px); color: var(--text-body); max-width: 46ch; margin-bottom: var(--space-5, 24px); }
.hero .trust { margin-bottom: var(--space-6, 32px); }
.hero__cta { gap: var(--space-3, 12px); }
@media (min-width: 860px) {
  .hero--diagonal .hero__grid { grid-template-columns: 1.05fr .95fr; gap: var(--space-8, 64px); }
  .hero--diagonal .hero__media {
    order: 2; aspect-ratio: auto; height: 100%; min-height: 480px; border-radius: 0;
    clip-path: polygon(12% 0, 100% 0, 100% 100%, 0% 100%);
  }
  .hero--diagonal .hero__media::after { box-shadow: none; }
}

/* --- Pasek zaufania ---------------------------------------------------------- */
.trust-bar { display: flex; flex-wrap: wrap; gap: var(--space-6, 32px); align-items: center; justify-content: center; text-align: center; }
.trust-bar__item { display: grid; gap: 2px; }
.trust-bar__num { font-family: var(--font-heading); font-size: var(--fs-2xl, 31px); color: var(--color-accent); }
.trust-bar__label { font-size: var(--fs-sm, 13px); color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; }

/* --- Ikonki akcentowe (atuty) ------------------------------------------------ */
.icon-grid { display: grid; gap: var(--space-6, 32px); grid-template-columns: 1fr; }
@media (min-width: 640px) { .icon-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) { .icon-grid { grid-template-columns: repeat(4, 1fr); } }
.icon-card { display: grid; gap: var(--space-3, 12px); padding: var(--space-5, 24px); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.icon-card__icon { width: 40px; height: 40px; color: var(--color-accent); }
.icon-card h3 { font-size: var(--fs-lg, 20px); }
.icon-card p { color: var(--text-body); font-size: var(--fs-sm, 14px); }

/* --- Karty usług: akcent Kobido (hit wg opinii) ----------------------------- */
.offer-card--kobido { border-color: color-mix(in srgb, var(--color-accent) 55%, var(--color-border)); position: relative; }
.offer-card--kobido::before {
  content: "Hit wg opinii"; position: absolute; top: -12px; left: var(--space-5, 24px);
  background: var(--color-accent); color: var(--color-accentText); font-size: var(--fs-xs, 10px);
  text-transform: uppercase; letter-spacing: .08em; padding: 4px 12px; border-radius: 999px; font-weight: 700;
}
.offer-card .offer-meta { display: flex; flex-wrap: wrap; gap: var(--space-4, 16px); color: var(--text-muted); font-size: var(--fs-sm, 13px); }
.offer-card .offer-meta b { color: var(--color-accent); font-weight: 700; }

/* --- BOOKSY-SLOT (L-051): placeholder rezerwacji online --------------------- */
.booksy-slot {
  display: grid; gap: var(--space-4, 16px); place-items: center; text-align: center;
  padding: var(--space-8, 64px) var(--space-5, 24px); border-radius: var(--radius-lg);
  border: 1px dashed color-mix(in srgb, var(--color-accent) 45%, var(--color-border));
  background: linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 10%, var(--color-surface)), var(--color-surface));
}
.booksy-slot__icon { width: 52px; height: 52px; color: var(--color-accent); }
.booksy-slot h3 { font-size: var(--fs-xl, 25px); max-width: 26ch; }
.booksy-slot p { color: var(--text-body); max-width: 48ch; }
.booksy-slot .cluster { justify-content: center; }

/* --- Godziny otwarcia -------------------------------------------------------- */
.hours-table { width: 100%; border-collapse: collapse; max-width: 480px; margin-inline: auto; }
.hours-table td { padding: var(--space-3, 12px) var(--space-4, 16px); border-bottom: 1px solid var(--color-border); }
.hours-table td:first-child { color: var(--text-body); }
.hours-table td:last-child { text-align: right; font-weight: 600; color: var(--text-strong); font-variant-numeric: tabular-nums; }
.hours-table tr.is-today td { color: var(--color-accent); }

/* --- Cennik ------------------------------------------------------------------ */
.price-table { width: 100%; border-collapse: collapse; margin-bottom: var(--space-3, 12px); }
.price-table th, .price-table td { text-align: left; padding: var(--space-3, 12px) var(--space-4, 16px); border-bottom: 1px solid var(--color-border); }
.price-table th { color: var(--text-muted); font-weight: 600; font-size: var(--fs-sm, 13px); text-transform: uppercase; letter-spacing: .05em; }
.price-table td:last-child, .price-table th:last-child { text-align: right; white-space: nowrap; }
.price-table td.price { color: var(--color-accent); font-weight: 700; font-family: var(--font-heading); }
.price-note { font-size: var(--fs-sm, 13px); color: var(--text-muted); margin-top: var(--space-3, 12px); }

/* --- Mapa dojazdu ------------------------------------------------------------ */
.map-frame { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--color-border); aspect-ratio: 16/9; }
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }

/* --- Kolofon atrybucji zdjęć (wymóg Google) --------------------------------- */
.colofon { font-size: var(--fs-xs, 10px); color: var(--text-muted); margin-top: var(--space-5, 24px); }
.colofon a { text-decoration: underline; }

/* --- Galeria realizacje/atmosfera ------------------------------------------- */
.gallery-caption { font-size: var(--fs-sm, 13px); color: var(--text-muted); margin-top: var(--space-2, 8px); }
figure.g-item { margin: 0; }

/* --- Referencje: dopasowanie kolorystyczne do ciemnego tła ------------------ */
.reviews-google__card { background: var(--color-surface); }

/* --- FAQ: kolor akordeonu do palety ------------------------------------------ */
.fx-akordeon-faq details { background: var(--color-surface); }
.fx-akordeon-faq summary { color: var(--text-strong); }

/* --- Formularz kontaktowy ----------------------------------------------------- */
.contact-grid { display: grid; gap: var(--space-7, 48px); }
@media (min-width: 900px) { .contact-grid { grid-template-columns: 1fr 1fr; } }

/* --- Drobne poprawki dostępności/kontrastu ----------------------------------- */
.stars { color: var(--color-accent); }
::selection { background: var(--color-accent); color: var(--color-accentText); }
