/*
Theme Name: Law City — Porcelana
Theme URI: https://lawcity.pl/
Author: Law City
Description: Autorski motyw kancelarii Law City. System wizualny „Porcelana” — tokeny i żelazne reguły opisuje CLAUDE.md w repo projektu (C:\Users\tomcz\lawcity-www).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lawcity
*/

/* ===== Tokeny ===== */
:root {
  --granat: #0A1F4D;
  --granat-c: #071637;
  --zloto: #D4AF37;
  --porcelana: #F2F1ED;
  --bialy: #FFFFFF;
  --terakota: #A85B33;
  --tekst: #2B2B2B;
  --tekst-2: #5A5A5A;
  --linia: #E3E0D8;
  --promien: 3px;         /* minimalne zaokrąglenie rogów — buttony i ramki */
}

/* ===== Baza ===== */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Lato', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--tekst);
  background: var(--bialy);
  text-align: left;
}

h1, h2, h3, h4 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  color: var(--granat);
  line-height: 1.25;
  margin: 0;
}

p { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--granat); }

input, select, textarea { font-size: 16px; font-family: 'Lato', sans-serif; }

svg.ikona { width: 22px; height: 22px; stroke: var(--zloto); stroke-width: 1.75; fill: none; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }

.container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }

/* Kicker — zawsze <p class="kicker">, nigdy nagłówek */
.kicker {
  font-size: 11px;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: var(--zloto);
  font-weight: 700;
  margin: 0 0 12px;
}

/* ===== Dostępność ===== */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--granat);
  color: var(--bialy);
  padding: 10px 18px;
  z-index: 200;
}
.skip-link:focus { left: 0; }

:focus-visible { outline: 2px solid var(--zloto); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .pasmo { background-attachment: scroll !important; }
}

/* ===== Belka górna ===== */
.belka-gorna { background: var(--granat); color: #CFD6E6; font-size: 13px; }
.belka-gorna .container { display: flex; align-items: center; justify-content: space-between; min-height: 38px; gap: 16px; }
.belka-gorna__dane { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.belka-gorna__dane a, .belka-gorna__dane span { color: #CFD6E6; text-decoration: none; display: inline-flex; align-items: center; gap: 7px; }
.belka-gorna__dane a:hover { color: var(--bialy); }
.belka-gorna .ikona { width: 14px; height: 14px; }
.belka-gorna__social { display: flex; gap: 14px; align-items: center; }
.belka-gorna__social a { display: inline-flex; color: #CFD6E6; }
.belka-gorna__social .ikona { width: 17px; height: 17px; stroke: #CFD6E6; }
.belka-gorna__social a:hover .ikona { stroke: var(--zloto); }

/* ===== Header ===== */
.naglowek { background: var(--bialy); border-bottom: 1px solid var(--linia); }
.naglowek .container { display: flex; align-items: center; justify-content: space-between; min-height: 78px; gap: 24px; }

.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.logo__sygnet { height: 40px; width: auto; display: block; }
.logo__nazwa { font-family: 'Playfair Display', serif; font-weight: 700; color: var(--granat); font-size: 21px; letter-spacing: 2.5px; line-height: 1; }
.logo__deskryptor { display: block; font-size: 9px; letter-spacing: 2.5px; text-transform: uppercase; color: #A39A85; margin-top: 4px; }

.nav { display: flex; align-items: center; gap: 26px; }
.nav__lista { display: flex; align-items: center; gap: 26px; }
.nav__lista a { font-size: 15px; font-weight: 700; color: var(--tekst); text-decoration: none; }
.nav__lista a:hover { color: var(--terakota); }
.nav__lista a[aria-current="page"] { color: var(--granat); font-weight: 700; }

.przycisk {
  display: inline-block;
  background: var(--granat);
  color: var(--bialy);
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  padding: 12px 24px;
  border: 1px solid var(--granat);
  border-radius: var(--promien);
}
.przycisk:hover { background: var(--granat-c); border-color: var(--granat-c); }
.przycisk--kontur { background: transparent; color: var(--granat); }
.przycisk--kontur:hover { background: var(--porcelana); color: var(--granat); }
.przycisk--zloty { background: var(--zloto); border-color: var(--zloto); color: var(--granat); }
.przycisk--zloty:hover { background: #C6A22F; border-color: #C6A22F; }

.hamburger, .naglowek__tel { display: none; background: none; border: 0; padding: 10px; cursor: pointer; }
.hamburger .ikona { stroke: var(--granat); width: 24px; height: 24px; }
.naglowek__tel .ikona { stroke: var(--zloto); width: 22px; height: 22px; }

/* Menu mobilne (panel) */
.nav-mobilne { display: none; background: var(--bialy); border-bottom: 1px solid var(--linia); }
body.menu-otwarte .nav-mobilne { display: block; }
.nav-mobilne a {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 48px; padding: 0 24px;
  font-size: 16px; font-weight: 700; color: var(--tekst); text-decoration: none;
  border-top: 1px solid var(--linia);
}
.nav-mobilne a .ikona { width: 16px; height: 16px; stroke: #B3AB98; }
.nav-mobilne .przycisk { display: flex; justify-content: center; margin: 14px 24px 18px; color: var(--bialy); border-top: 0; }

/* ===== Hero ===== */
.hero { background: var(--bialy); }
.hero .container { display: grid; grid-template-columns: 1fr 1.7fr; align-items: center; gap: 40px; padding-top: 56px; padding-bottom: 56px; }
.hero__fraza { display: block; font-size: 20px; color: var(--tekst-2); margin-bottom: 10px; }
.hero__haslo { display: block; font-size: 48px; }
.hero__lead { font-size: 15px; color: var(--tekst-2); margin-top: 16px; max-width: 340px; }
.hero__cta { display: flex; gap: 14px; margin-top: 28px; flex-wrap: wrap; }
.hero__tekst { position: relative; z-index: 2; transform: translateY(-16px); }
.hero__foto { position: relative; z-index: 1; }
/* Zdjęcie powiększone w lewo — biały pas zdjęcia wsuwa się pod tekst (bezszwowo, bo to ta sama biel co tło strony). */
.hero__foto img { width: calc(100% + 180px); max-width: none; margin-left: -180px; height: auto; display: block; border-radius: var(--promien); }

/* Sygnatura marki: złoty obrys architektury rysuje się, a potem pod nim pojawia się zdjęcie. */
.hero__obrys { position: absolute; top: 0; left: -180px; width: calc(100% + 180px); height: 100%; overflow: visible; pointer-events: none; z-index: 1; transform: translateX(-7px); }
.hero__obrys .draw-path { stroke-dasharray: 2000; stroke-dashoffset: 2000; animation: rysuj-obrys 4.5s linear 0.8s forwards; }
@keyframes rysuj-obrys { to { stroke-dashoffset: 0; } }
.hero__zdjecie { opacity: 0; animation: pojaw-zdjecie 1s ease 3.3s forwards; }
@keyframes pojaw-zdjecie { to { opacity: 1; } }
/* Dostępność: bez animacji od razu pokazujemy i obrys, i zdjęcie. */
@media (prefers-reduced-motion: reduce) {
  .hero__obrys .draw-path { stroke-dashoffset: 0; }
  .hero__zdjecie { opacity: 1; }
}

/* ===== Placeholder zdjęcia (jawny — do czasu wgrania plików) ===== */
.placeholder-foto {
  position: relative;
  overflow: hidden;
  background:
    repeating-linear-gradient(0deg, rgba(0,0,0,.08) 0 2px, transparent 2px 14px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.08) 0 2px, transparent 2px 26px),
    var(--terakota);
}
.placeholder-foto__etykieta {
  position: absolute;
  bottom: 10px;
  right: 10px;
  background: rgba(10, 31, 77, .85);
  color: var(--bialy);
  font-size: 11px;
  padding: 4px 10px;
  max-width: 90%;
}
.obrys-zloty { position: absolute; inset: 0; width: 100%; height: 100%; }
.obrys-zloty path { stroke: var(--zloto); stroke-width: 2; fill: none; vector-effect: non-scaling-stroke; }

/* ===== Pasek zaufania ===== */
.pasek-zaufania { background: var(--granat); color: #CFD6E6; }
.pasek-zaufania .container { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 18px; padding-bottom: 18px; flex-wrap: wrap; }
.pasek-zaufania__pozycja { font-size: 14px; }
.pasek-zaufania__liczba { font-family: 'Playfair Display', serif; font-weight: 700; font-size: 22px; color: var(--zloto); margin-right: 6px; }

/* ===== Sekcje ===== */
.sekcja { padding: 72px 0; }
.sekcja--porcelana { background: var(--porcelana); }
/* Dwie jasne sekcje pod rząd nie dublują odstępu (np. po usuniętym paśmie) — zostaje jeden normalny odstęp zamiast 144px pustki. */
.sekcja:not(.sekcja--porcelana) + .sekcja:not(.sekcja--porcelana) { padding-top: 0; }
.sekcja__naglowek h2 { font-size: 32px; }
.sekcja__naglowek { margin-bottom: 36px; }

/* ===== Przełącznik biznes / konsument (zakładki nad sekcją specjalizacji) ===== */
/* Aktywna zakładka = pełny granat; nieaktywna zostaje konturowa. */
.audience-tab.is-active { background: var(--granat); color: var(--bialy); border-color: var(--granat); }
.audience-tab.is-active:hover { background: var(--granat-c); border-color: var(--granat-c); color: var(--bialy); }

/* ===== Kafelki specjalizacji ===== */
.kafelki { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
/* Ukryty panel zakładki (atrybut hidden musi wygrać z display:grid). */
.kafelki[hidden] { display: none; }
/* Link „Zobacz pełną ofertę…" pod kafelkami — pełna szerokość pod siatką. */
.uslugi-wiecej { grid-column: 1 / -1; margin-top: 8px; }
.uslugi-wiecej a { font-size: 15px; font-weight: 700; color: var(--granat); text-decoration: none; border-bottom: 1px solid var(--zloto); }
.uslugi-wiecej a:hover { color: var(--terakota); }
.kafelek {
  display: block;
  background: var(--porcelana);
  padding: 26px 24px;
  text-decoration: none;
  border-top: 2px solid transparent;
  border-radius: var(--promien);
  transition: border-top-color .15s ease;
}
/* Złoty pasek u góry podąża za kursorem — pojawia się na najechanym kafelku. */
.kafelek:hover { border-top-color: var(--zloto); }
.kafelek h3 { font-size: 18px; margin-top: 14px; }
.kafelek__opis { font-size: 14px; color: var(--tekst-2); margin-top: 8px; }
/* Opisowy tekst kotwicy zostaje w DOM (czytniki ekranu + SEO), ale jest wizualnie ukryty — w karcie widać tylko złotą strzałkę poniżej. */
.kafelek__link { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* Złota strzałka „→" zamiast podpisu; po najechaniu przesuwa się w prawo. */
.kafelek::after { content: "\2192"; display: block; margin-top: 16px; color: var(--zloto); font-size: 20px; line-height: 1; transition: transform .15s ease; }
.kafelek:hover::after { transform: translateX(5px); }

/* ===== Pasmo fotograficzne (jedno na stronę) ===== */
.pasmo { position: relative; min-height: 320px; display: flex; align-items: center; }
@media (hover: hover) {
  .pasmo--zdjecie { background-attachment: fixed; background-size: cover; background-position: center; }
}
.pasmo > .container { position: relative; width: 100%; }
.plakieta { background: var(--granat); padding: 28px 32px; max-width: 440px; }
.plakieta--prawa { margin-left: auto; }
.plakieta__cytat { font-family: 'Playfair Display', serif; font-style: italic; font-size: 21px; color: var(--bialy); line-height: 1.45; }
.plakieta__podpis { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--zloto); margin-top: 12px; }

/* ===== Zajawki ===== */
.zajawki { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.zajawka[hidden] { display: none; }
.zajawka-foty { display: flex; margin: 16px 0 4px; }
.zajawka-fotka { width: 68px; height: 68px; border-radius: 50%; border: 2px solid var(--bialy); margin-right: -16px; flex-shrink: 0; }
.zajawka-fotka--foto { object-fit: cover; object-position: center 22%; }
.zajawka-fotka--mono { background: var(--granat); color: var(--zloto); display: inline-flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 16px; }
.zajawka { border: 1px solid var(--linia); padding: 28px; border-radius: var(--promien); }
.zajawka h2 { font-size: 19px; line-height: 1.4; }
.zajawka h2 a { text-decoration: none; }
.zajawka__opis { font-size: 15px; color: var(--tekst-2); margin-top: 10px; }
.zajawka__meta { font-size: 13px; color: var(--tekst-2); margin-top: 10px; }
.zajawka__link { display: inline-block; font-size: 14px; color: var(--granat); margin-top: 16px; border-bottom: 1px solid var(--zloto); text-decoration: none; }
.zajawka__link:hover { color: var(--terakota); }
.zajawki--lista { grid-template-columns: repeat(3, 1fr); }
.zajawki--powiazane { grid-template-columns: repeat(2, 1fr); }
.zajawka__kat { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--zloto); font-weight: 700; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.paginacja { margin-top: 32px; }
.paginacja ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.paginacja a, .paginacja span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--linia); border-radius: var(--promien); text-decoration: none; color: var(--granat); font-size: 14px; }
.paginacja a:hover { border-color: var(--zloto); }
.paginacja .current { background: var(--granat); color: var(--bialy); border-color: var(--granat); }

.wpis-meta { color: #CFD6E6; font-size: 14px; margin-top: 14px; }
.wpis-stopka { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--linia); }

/* Karty Aktualności ze zdjęciem (lub zastępnikiem marki) */
.zajawki--lista .zajawka { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.zajawka__foto { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--porcelana); }
.zajawka__foto img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.zajawka__foto:hover img { transform: scale(1.04); }
.zajawka__foto--pusty { display: flex; align-items: center; justify-content: center; background: var(--granat); }
.zajawka__znak { fill: none; stroke: var(--zloto); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; opacity: .92; }
.zajawki--lista .zajawka__tresc { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.zajawki--lista .zajawka h2 { font-size: 18px; margin-top: 6px; }
.zajawki--lista .zajawka__link { margin-top: auto; }

/* Zdjęcie nagłówkowe wpisu */
.wpis-foto-pas { padding-top: 36px; }
.wpis-foto { width: 100%; height: auto; max-height: 520px; object-fit: cover; border-radius: var(--promien); display: block; }

/* Zdjęcia wstawiane w treści wpisu (np. z eventów) */
.tresc-strony__tekst img { max-width: 100%; height: auto; border-radius: var(--promien); display: block; margin: 22px 0; }
.tresc-strony__tekst figure { margin: 22px 0; }
.tresc-strony__tekst figcaption { font-size: 13px; color: var(--tekst-2); margin-top: 6px; }
.tresc-strony__tekst .aligncenter { margin-left: auto; margin-right: auto; }
.tresc-strony__tekst .alignright { float: right; margin: 6px 0 16px 24px; max-width: 50%; }
.tresc-strony__tekst .alignleft { float: left; margin: 6px 24px 16px 0; max-width: 50%; }


/* Wyróżniony „najnowszy wpis” (hero) */
.wpis-hero { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--linia); border-top: 2px solid var(--zloto); border-radius: var(--promien); overflow: hidden; margin-bottom: 26px; }
.wpis-hero__foto { position: relative; display: block; min-height: 230px; overflow: hidden; background: var(--porcelana); }
.wpis-hero__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.wpis-hero__foto:hover img { transform: scale(1.04); }
.wpis-hero__foto--pusty { display: flex; align-items: center; justify-content: center; background: var(--granat); }
.wpis-hero__plakietka { position: absolute; left: 16px; top: 14px; background: var(--granat); color: var(--bialy); font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; padding: 5px 11px; border-radius: 2px; }
.wpis-hero__tresc { background: var(--porcelana); padding: 30px 32px; display: flex; flex-direction: column; justify-content: center; }
.wpis-hero__tresc h2 { font-size: 22px; line-height: 1.3; margin: 9px 0 0; }
.wpis-hero__tresc h2 a { text-decoration: none; }
.wpis-hero__tresc h2 a:hover { color: var(--terakota); }
.wpis-hero__opis { font-size: 14px; color: var(--tekst-2); line-height: 1.65; margin-top: 10px; }
.wpis-hero__autor { display: flex; align-items: center; gap: 9px; margin-top: 16px; font-size: 12px; color: var(--tekst-2); }

/* Awatar osoby (byline, hero, karty) */
.awatar { width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; }
.awatar--foto { object-fit: cover; }
.awatar--mono { background: var(--granat); color: var(--zloto); display: inline-flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 11px; }

/* Karty: mniejsza miniatura, tytuły Playfair, byline na dole */
.zajawki--lista .zajawka__foto { aspect-ratio: auto; height: 124px; }
.zajawki--lista .zajawka h2 { font-family: 'Playfair Display', serif; font-weight: 700; }
.zajawki--lista .zajawka__opis { flex: 0 0 auto; }
.zajawki--lista .zajawka__meta { margin-top: auto; padding-top: 12px; }

/* Wpis: byline, lead */
.wpis-byline { display: flex; align-items: center; gap: 10px; padding-bottom: 18px; margin-bottom: 6px; border-bottom: 1px solid var(--linia); }
.wpis-byline__txt { font-size: 13px; color: var(--tekst-2); }
.wpis-byline__txt a { color: var(--granat); border-bottom: 1px solid var(--zloto); text-decoration: none; }
.wpis-byline__txt a:hover { color: var(--terakota); }
.wpis-lead { font-size: 18px; line-height: 1.6; color: var(--tekst); margin: 22px 0 8px; }

/* Temat powiązany */
.temat-powiazany { display: flex; align-items: center; gap: 11px; background: var(--porcelana); border-radius: var(--promien); padding: 14px 18px; margin: 28px 0 0; }
.temat-powiazany .ikona { flex-shrink: 0; stroke: var(--terakota); }
.temat-powiazany span { font-size: 14px; color: var(--tekst-2); }
.temat-powiazany a { color: var(--granat); border-bottom: 1px solid var(--zloto); text-decoration: none; }
.temat-powiazany a:hover { color: var(--terakota); }

/* Udostępnianie + tagi */
.wpis-udostepnij { display: flex; align-items: center; gap: 12px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--linia); }
.wpis-udostepnij__label { font-size: 12px; color: var(--tekst-2); }
.wpis-udostepnij__ikona .ikona { stroke: var(--granat); width: 20px; height: 20px; }
.wpis-udostepnij__ikona:hover .ikona { stroke: var(--zloto); }
.wpis-tagi { margin-left: auto; font-size: 12px; color: var(--tekst-2); }

/* Ramka „O autorze” (E-E-A-T) */
.autor-box { display: flex; gap: 16px; align-items: flex-start; border: 1px solid var(--linia); border-radius: var(--promien); padding: 20px 22px; margin-top: 30px; }
.autor-box__awatar { width: 110px; height: 110px; border-radius: 50%; flex-shrink: 0; }
.autor-box__awatar--foto { object-fit: cover; object-position: center 20%; }
.autor-box__awatar--mono { background: var(--granat); color: var(--zloto); display: inline-flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 36px; }
.autor-box__kicker { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--zloto); font-weight: 700; }
.autor-box__imie { font-family: 'Playfair Display', serif; color: var(--granat); font-size: 17px; margin-top: 3px; }
.autor-box__bio { font-size: 14px; color: var(--tekst-2); line-height: 1.6; margin-top: 6px; }
.autor-box__link { display: inline-block; font-size: 14px; color: var(--granat); margin-top: 8px; border-bottom: 1px solid var(--zloto); text-decoration: none; }
.autor-box__link:hover { color: var(--terakota); }
.wpis-powrot { margin-top: 28px; }

/* Wpis — boczna kolumna: zdjęcie, „O autorze", „Podobne tematy" */
.wpis-side-foto__img { width: 100%; height: auto; border-radius: var(--promien); display: block; }
.autor-box--side { flex-direction: column; gap: 12px; margin-top: 0; }
.wpis-podobne { border: 1px solid var(--linia); border-radius: var(--promien); padding: 18px 20px; }
.wpis-podobne .kicker { margin-bottom: 4px; }
.wpis-podobne ul { list-style: none; padding: 0; margin: 0; }
.wpis-podobne li { padding: 12px 0; border-bottom: 1px solid var(--linia); }
.wpis-podobne li:last-child { border-bottom: 0; padding-bottom: 0; }
.wpis-podobne li a { font-family: 'Playfair Display', serif; color: var(--granat); font-size: 15px; line-height: 1.35; text-decoration: none; display: block; }
.wpis-podobne li a:hover { color: var(--terakota); }
.wpis-podobne__meta { font-size: 11px; color: var(--tekst-2); margin-top: 4px; }

/* Strona „Media" — wyróżniona najnowsza publikacja (teza przy złotej linii) */
.media-wyrozniona { display: grid; grid-template-columns: 1fr 240px; gap: 26px; align-items: center; background: var(--porcelana); border: 1px solid var(--linia); border-radius: var(--promien); padding: 26px 30px; margin-bottom: 24px; }
.media-etykieta { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.media-etykieta::before { content: ""; display: block; width: 24px; height: 1px; background: var(--zloto); flex-shrink: 0; }
.media-etykieta span { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--zloto); font-weight: 700; }
.media-wyrozniona__tytul { font-family: 'Playfair Display', serif; color: var(--granat); font-size: 21px; line-height: 1.3; }
.media-wyrozniona__opis { font-size: 14px; color: var(--tekst-2); line-height: 1.65; margin-top: 10px; }
.media-wyrozniona__meta { font-size: 12px; color: var(--tekst-2); margin-top: 10px; }
.media-cytat { border-left: 2px solid var(--zloto); padding-left: 18px; }
.media-cytat__znak { display: block; font-family: 'Playfair Display', serif; font-size: 40px; color: var(--zloto); line-height: .7; }
.media-cytat__tekst { font-family: 'Playfair Display', serif; font-style: italic; color: var(--granat); font-size: 15px; line-height: 1.5; margin-top: 6px; }
.media-cytat__link, .media-karta__link { display: inline-block; font-size: 13px; color: var(--granat); margin-top: 12px; border-bottom: 1px solid var(--zloto); text-decoration: none; }
a.media-cytat__link:hover, a.media-karta__link:hover { color: var(--terakota); }

/* Strona „Media" — siatka kart typograficznych (winieta tytułu prasowego jako tekst) */
.media-karty { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.media-karta { border: 1px solid var(--linia); border-radius: var(--promien); padding: 24px; display: flex; flex-direction: column; min-height: 240px; }
.media-winieta { text-align: center; border-top: 1px solid var(--zloto); border-bottom: 1px solid var(--zloto); padding: 6px 0; margin-bottom: 12px; }
.media-winieta span { font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--zloto); }
.media-karta__typ { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--tekst-2); }
.media-karta__tytul { font-family: 'Playfair Display', serif; color: var(--granat); font-size: 15px; line-height: 1.35; margin-top: 6px; }
.media-karta__link { margin-top: auto; padding-top: 14px; }
a.media-karta { color: inherit; text-decoration: none; transition: border-color .15s ease; }
a.media-karta:hover { border-color: var(--zloto); }
a.media-karta:hover .media-karta__tytul { color: var(--terakota); }

/* ===== Kontakt ===== */
.kontakt-szybki { display: none; }
.kontakt-uklad { display: grid; grid-template-columns: 1fr 1.2fr; border: 1px solid var(--linia); border-radius: var(--promien); overflow: hidden; }
.kontakt-dane { background: var(--granat); color: #CFD6E6; padding: 34px 32px; }
.kontakt-dane .kicker { color: var(--zloto); }
.kontakt-dane h1 { color: var(--bialy); font-size: 24px; line-height: 1.3; margin-top: 6px; }
.kontakt-dane__lista { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.kontakt-dane__poz { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; color: var(--bialy); line-height: 1.55; }
.kontakt-dane__poz .ikona { stroke: var(--zloto); width: 20px; height: 20px; flex-shrink: 0; margin-top: 3px; }
.kontakt-dane__poz a { color: var(--bialy); text-decoration: none; }
.kontakt-dane__poz a:hover { color: var(--zloto); }
.kontakt-dane__etykieta { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: #AEB8CF; }
.kontakt-dane__rejestr { margin-top: 26px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.15); font-size: 12px; color: #AEB8CF; line-height: 1.7; }
.kontakt-form { background: var(--bialy); padding: 34px 32px; }
.kontakt-form h2 { font-size: 22px; }
.kontakt-form__lead { font-size: 14px; color: var(--tekst-2); margin: 6px 0 20px; line-height: 1.6; }
.kontakt-pole { margin: 0 0 14px; }
.kontakt-pole label { display: block; font-size: 13px; color: var(--tekst-2); }
.kontakt-form input[type=text], .kontakt-form input[type=email], .kontakt-form textarea, .kontakt-form select { width: 100%; font-size: 16px; font-family: inherit; color: var(--tekst); background: var(--bialy); border: 1px solid var(--linia); border-radius: var(--promien); padding: 11px 13px; margin-top: 5px; }
.kontakt-form input:focus, .kontakt-form textarea:focus, .kontakt-form select:focus { outline: none; border-color: var(--zloto); }
.kontakt-form textarea { min-height: 130px; resize: vertical; }
.kontakt-zgoda { font-size: 12px; color: var(--tekst-2); line-height: 1.6; margin: 4px 0 16px; }
.kontakt-form .wpcf7-list-item { margin: 0; }
.kontakt-form .wpcf7-submit { background: var(--granat); color: var(--bialy); border: 0; border-radius: var(--promien); padding: 13px 30px; font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit; }
.kontakt-form .wpcf7-submit:hover { background: var(--granat-c); }
.kontakt-form .wpcf7-not-valid-tip { color: var(--terakota); font-size: 12px; margin-top: 4px; }
.kontakt-form .wpcf7-response-output { border-radius: var(--promien); font-size: 14px; margin: 16px 0 0; padding: 12px 14px; }
.kontakt-form .wpcf7-form-control-wrap[data-name^="strona-www"] { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.sekcja--dojazd { padding-top: 40px; }
.kontakt-dojazd { display: grid; grid-template-columns: 1.4fr 1fr; gap: 26px; align-items: start; }
.kontakt-mapa { width: 100%; height: 290px; border: 1px solid var(--linia); border-radius: var(--promien); display: block; }
.kontakt-dojazd__info ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.kontakt-dojazd__info li { display: flex; gap: 11px; font-size: 15px; color: var(--tekst-2); line-height: 1.55; }
.kontakt-dojazd__info li .ikona { stroke: var(--zloto); width: 20px; height: 20px; flex-shrink: 0; margin-top: 2px; }
.kontakt-mapa-link { display: inline-block; margin-top: 18px; font-size: 14px; color: var(--granat); border-bottom: 1px solid var(--zloto); text-decoration: none; }
.kontakt-mapa-link:hover { color: var(--terakota); }

/* Mapa Google — placeholder do czasu zgody na cookies */
.kontakt-mapa-wrap { min-height: 290px; }
.kontakt-mapa[hidden] { display: none; }
.kontakt-mapa-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; min-height: 290px; background: var(--porcelana); border: 1px solid var(--linia); border-radius: var(--promien); padding: 26px; }
.kontakt-mapa-placeholder[hidden] { display: none; }
.kontakt-mapa-placeholder .ikona { stroke: var(--zloto); width: 26px; height: 26px; }
.kontakt-mapa-placeholder p { font-size: 14px; color: var(--tekst-2); line-height: 1.6; max-width: 40ch; margin: 0; }

/* Baner zgody na cookies */
.cookie-baner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 1000; background: var(--granat); color: #CFD6E6; border-top: 2px solid var(--zloto); border-radius: var(--promien); padding: 18px 22px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.cookie-baner[hidden] { display: none; }
.cookie-baner__tresc { flex: 1; min-width: 240px; }
.cookie-baner__tresc p { font-size: 13px; line-height: 1.6; margin: 0; }
.cookie-baner__tresc a { color: var(--zloto); }
.cookie-baner__akcje { display: flex; gap: 10px; flex-wrap: wrap; }
.cookie-baner .przycisk { font-size: 13px; padding: 11px 20px; }
.cookie-baner__sek { background: transparent; color: var(--bialy); border: 1px solid rgba(255,255,255,.4); border-radius: var(--promien); padding: 11px 20px; font-size: 13px; cursor: pointer; font-family: inherit; }
.cookie-baner__sek:hover { border-color: var(--zloto); color: var(--zloto); }
a.cookie-baner__sek { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.stopka__cookie-reset { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.stopka__cookie-reset:hover { color: var(--zloto); }


/* Cytat (pull-quote) w treści wpisu */
.tresc-strony__tekst blockquote, .tresc-strony__tekst .wp-block-quote { border-left: 3px solid var(--zloto); margin: 26px 0; padding: 4px 0 4px 20px; }
.tresc-strony__tekst blockquote p, .tresc-strony__tekst .wp-block-quote p { font-family: 'Playfair Display', serif; font-size: 19px; font-style: italic; color: var(--granat); line-height: 1.5; margin: 0 0 8px; }
.tresc-strony__tekst cite { font-style: normal; font-size: 13px; color: var(--tekst-2); }

.zaproszenie__info a { color: var(--zloto); text-decoration: none; }
.zaproszenie__info a:hover { color: var(--bialy); }
.monogramy { display: flex; gap: 8px; margin: 16px 0 4px; }
.monogram {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--granat); color: var(--bialy);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Playfair Display', serif; font-size: 14px;
}
.monogram--zloty { background: var(--zloto); color: var(--granat); }

/* ===== Pasek CTA ===== */
.pasek-cta { background: var(--porcelana); }
.pasek-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 40px; padding-bottom: 40px; flex-wrap: wrap; }
.pasek-cta h2 { font-size: 24px; }
.pasek-cta__info { font-size: 15px; color: var(--tekst-2); margin-top: 6px; }
.pasek-cta__info a { color: var(--granat); text-decoration: none; font-weight: 700; }
.pasek-cta__info a:hover { color: var(--terakota); }

/* ===== Ukazywanie przy przewijaniu (scroll reveal) ===== */
/* Tylko gdy JS aktywny (klasa .js-anim na <html>) i gdy użytkownik nie ogranicza animacji.
   Bez JS lub przy reduced-motion: nic się nie chowa — treść widoczna od razu. */
@media (prefers-reduced-motion: no-preference) {
  .js-anim .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1); }
  .js-anim .reveal.is-visible { opacity: 1; transform: none; }
  /* delikatny stagger drugiej karty zajawek */
  .js-anim .zajawka.reveal:nth-child(2) { transition-delay: .12s; }
}

/* ===== Treść stron edytowanych w WordPressie ===== */
.tresc-strony { max-width: 760px; }
.tresc-strony h1 { font-size: 36px; margin-bottom: 20px; }
.tresc-strony__tekst p { margin: 0 0 16px; }
.tresc-strony__tekst h2 { font-size: 24px; margin: 28px 0 12px; }
.tresc-strony__tekst h3 { font-size: 19px; margin: 22px 0 10px; }
.tresc-strony__tekst ul { list-style: disc; padding-left: 22px; margin: 0 0 16px; }
.tresc-strony__tekst ol { padding-left: 22px; margin: 0 0 16px; }
.tresc-strony__tekst a:hover { color: var(--terakota); }
.tresc-strony__tekst .tabela-wrap { overflow-x: auto; margin: 0 0 22px; }
.tresc-strony__tekst table { border-collapse: collapse; width: 100%; min-width: 480px; font-size: 14px; }
.tresc-strony__tekst caption { text-align: left; font-size: 13px; color: var(--tekst-2); margin-bottom: 6px; }
.tresc-strony__tekst th, .tresc-strony__tekst td { border: 1px solid var(--linia); padding: 8px 12px; text-align: left; vertical-align: top; }
.tresc-strony__tekst th { background: var(--granat); color: var(--bialy); font-weight: 700; }
.tresc-strony__tekst tbody tr:nth-child(even) { background: var(--porcelana); }

/* ===== Zespół (/zespol/) ===== */
.sekcja__naglowek h1 { font-size: 34px; }
/* Nagłówek strony (np. /zespol/) — mniej powietrza wokół tytułu niż w zwykłej sekcji. */
.sekcja--strona-naglowek { padding-top: 48px; padding-bottom: 40px; }
.sekcja--strona-naglowek .sekcja__naglowek { margin-bottom: 0; }
.naglowek-lead { font-size: 16px; color: var(--tekst-2); margin-top: 12px; max-width: 56ch; }

.osoby { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.osoba { border: 1px solid var(--linia); border-radius: var(--promien); overflow: hidden; background: var(--bialy); }
.osoba__foto { aspect-ratio: 1 / 1; background: var(--granat); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.osoba__foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.osoba__monogram { width: 62px; height: 62px; border: 1px solid var(--zloto); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--zloto); font-family: 'Playfair Display', serif; font-size: 20px; }
.osoba__tresc { padding: 18px 20px; }
.osoba__nazwa { font-family: 'Playfair Display', serif; font-size: 18px; color: var(--granat); }
.osoba__rola { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--zloto); font-weight: 700; margin-top: 4px; }
.osoba__bio { font-size: 14px; color: var(--tekst-2); margin-top: 10px; line-height: 1.6; }

.psy-naglowek { display: flex; align-items: center; gap: 10px; }
.psy-naglowek h2 { font-size: 20px; }
.psy { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.pies { background: var(--bialy); border: 1px solid var(--linia); border-radius: var(--promien); padding: 14px 16px; display: flex; align-items: center; gap: 14px; position: relative; }
.pies:hover { z-index: 5; }
.pies__monogram { width: 84px; height: 84px; border-radius: 50%; background: var(--terakota); color: var(--bialy); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 30px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.pies__monogram img { width: 100%; height: 100%; object-fit: cover; }
/* Po najechaniu zdjęcie psa powiększa się i wyskakuje na wierzch (małe okrągłe foto staje się czytelne). */
.pies:hover .pies__monogram { transform: scale(1.8); box-shadow: 0 8px 22px rgba(10, 31, 77, .28); }
.pies__nazwa { font-weight: 700; color: var(--granat); }
.pies__rola { font-size: 12px; color: var(--tekst-2); margin-top: 2px; }

.zaproszenie { background: var(--granat); color: var(--bialy); }
.zaproszenie .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 44px; padding-bottom: 44px; flex-wrap: wrap; }
.zaproszenie h2 { color: var(--bialy); font-size: 24px; }
.zaproszenie__info { font-size: 15px; color: #AEB8CF; margin-top: 6px; max-width: 52ch; }

/* Karta zespołu — linki do profilu */
.osoba__nazwa a { color: var(--granat); text-decoration: none; }
.osoba__nazwa a:hover { color: var(--terakota); }
.osoba__link { display: inline-block; font-size: 13px; font-weight: 700; color: var(--granat); text-decoration: none; border-bottom: 1px solid var(--zloto); margin-top: 12px; }
.osoba__link:hover { color: var(--terakota); }

/* ===== Profil osoby (/zespol/{slug}/) ===== */
.okruszki { background: var(--bialy); border-bottom: 1px solid var(--linia); font-size: 13px; }
.okruszki .container { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding-top: 12px; padding-bottom: 12px; }
.okruszki a { color: var(--tekst-2); text-decoration: none; }
.okruszki a:hover { color: var(--terakota); }
.okruszki__tu { color: var(--granat); font-weight: 700; }

.osoba-header { background: var(--granat); color: var(--bialy); }
.osoba-header__in { display: flex; align-items: center; gap: 28px; padding-top: 44px; padding-bottom: 44px; }
.osoba-header__mono { width: 170px; height: 170px; flex-shrink: 0; border: 1px solid var(--zloto); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--zloto); font-family: 'Playfair Display', serif; font-size: 48px; }
.osoba-header__foto { width: 170px; height: 170px; flex-shrink: 0; border-radius: 50%; object-fit: cover; object-position: center 18%; }
.osoba-header__imie { color: var(--bialy); font-size: 32px; }
.osoba-header__rola { font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--zloto); font-weight: 700; margin-top: 8px; }
.osoba-header__lead { font-size: 16px; color: #CFD6E6; margin-top: 12px; max-width: 60ch; }

.osoba-profil { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; align-items: start; }
.osoba-profil__main h2 { font-size: 22px; margin-bottom: 12px; }
.osoba-profil__main h2 + * { margin-top: 0; }
.osoba-profil__main h2:nth-of-type(n+2) { margin-top: 32px; }
.osoba-profil__bio { font-size: 16px; color: var(--tekst-2); line-height: 1.7; }
.osoba-profil__bio p { margin-bottom: 14px; }
.osoba-profil__placeholder { font-size: 14px; color: var(--tekst-2); font-style: italic; margin-top: 8px; }
.osoba-spec { display: flex; flex-direction: column; gap: 10px; }
.osoba-spec li { display: flex; align-items: flex-start; gap: 10px; font-size: 16px; color: var(--tekst); }
.osoba-spec .ikona { width: 20px; height: 20px; margin-top: 2px; flex-shrink: 0; }

/* Sidebar startuje równo z tekstem obok (pod nagłówkiem „O mnie"), nie z samym nagłówkiem. */
.osoba-profil__side { margin-top: 40px; }
.osoba-side { background: var(--porcelana); border-radius: var(--promien); padding: 24px; }
.osoba-side__tekst { font-size: 15px; color: var(--tekst-2); margin-bottom: 16px; }
.osoba-side .przycisk { display: block; text-align: center; }
.osoba-side__dane { font-size: 14px; line-height: 1.9; margin-top: 16px; }
.osoba-side__dane a { color: var(--granat); text-decoration: none; }
.osoba-side__dane a:hover { color: var(--terakota); }
.osoba-powrot { display: inline-block; margin-top: 20px; font-size: 14px; color: var(--granat); text-decoration: none; }
.osoba-powrot:hover { color: var(--terakota); }

/* ===== Hub „Dla biznesu" (/dla-biznesu/) ===== */
.naglowek-granat { background: var(--granat); color: var(--bialy); }
.naglowek-granat .container { padding-top: 52px; padding-bottom: 52px; }
.naglowek-granat h1 { color: var(--bialy); font-size: 36px; }
.naglowek-granat__lead { font-size: 17px; color: #CFD6E6; margin-top: 14px; max-width: 62ch; }

.kafelki--uslugi { grid-template-columns: repeat(3, 1fr); }

.statystyki { background: var(--granat); color: #CFD6E6; }
.statystyki .container { display: flex; justify-content: space-around; align-items: center; gap: 24px; padding-top: 38px; padding-bottom: 38px; flex-wrap: wrap; }
.statystyki__poz { text-align: center; }
.statystyki__liczba { display: block; font-family: 'Playfair Display', serif; font-size: 42px; color: var(--zloto); line-height: 1; }
.statystyki__opis { display: block; font-size: 14px; margin-top: 8px; }

.formy { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.forma { background: var(--bialy); border: 1px solid var(--linia); border-radius: var(--promien); padding: 24px; }
.forma h3 { font-size: 18px; }
.forma p { font-size: 14px; color: var(--tekst-2); margin-top: 8px; line-height: 1.6; }
.rozliczenia { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }

/* Pasmo fotograficzne pełnej szerokości (np. Fabryka Porcelany na /dla-biznesu/). */
.pasmo-foto { height: 150px; overflow: hidden; }
.pasmo-foto img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

/* ===== Podstrona usługi (/dla-biznesu/{slug}/) ===== */
.usluga-uklad { display: grid; grid-template-columns: 1.7fr 1fr; gap: 44px; align-items: start; }
.usluga-uklad--wpis { grid-template-columns: 2.3fr 1fr; }
.usluga-main h2 { font-size: 22px; margin: 32px 0 14px; }
.usluga-def { background: var(--porcelana); border-left: 3px solid var(--zloto); border-radius: var(--promien); padding: 22px 26px; }
.usluga-def h2 { margin: 0 0 8px; font-size: 19px; }
.usluga-def p { font-size: 16px; color: var(--tekst); line-height: 1.7; }

.zakres-lista { display: flex; flex-direction: column; gap: 10px; }
.zakres-lista li { display: flex; align-items: flex-start; gap: 10px; font-size: 16px; color: var(--tekst); }
.zakres-lista .ikona { width: 20px; height: 20px; margin-top: 2px; flex-shrink: 0; }

.faq { border-top: 1px solid var(--linia); }
.faq__poz { border-bottom: 1px solid var(--linia); }
.faq__poz summary { cursor: pointer; list-style: none; padding: 16px 0; font-weight: 700; color: var(--granat); display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.faq__poz summary::-webkit-details-marker { display: none; }
.faq__poz summary::after { content: "+"; color: var(--zloto); font-size: 22px; line-height: 1; flex-shrink: 0; }
.faq__poz[open] summary::after { content: "\2212"; }
.faq__a { padding: 0 0 16px; font-size: 15px; color: var(--tekst-2); line-height: 1.7; }
.faq--hub { max-width: 820px; }

/* Rozbudowane sekcje podstron usług (Blok 5) */
.usluga-lead { font-size: 17px; line-height: 1.75; color: var(--tekst-2); max-width: 64ch; margin: 0 0 30px; }
.proces { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 18px; }
.proces__krok { display: flex; gap: 16px; align-items: flex-start; }
.proces__nr { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--granat); color: var(--zloto); font-family: 'Playfair Display', serif; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.proces__t { font-size: 17px; margin: 4px 0 6px; color: var(--granat); }
.proces__tresc p { font-size: 16px; line-height: 1.7; color: var(--tekst); margin: 0 0 6px; }
.proces__podstawa { font-size: 13px; color: var(--tekst-2); font-style: italic; }
.kr { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.kr__kol { border-radius: var(--promien); padding: 20px 22px; }
.kr__kol h3 { font-size: 16px; margin: 0 0 10px; }
.kr__kol ul { margin: 0; padding-left: 18px; }
.kr__kol li { font-size: 15px; line-height: 1.6; color: var(--tekst); margin-bottom: 8px; }
.kr__kol--plus { background: var(--porcelana); border-left: 3px solid var(--zloto); }
.kr__kol--minus { background: #FBF7F2; border-left: 3px solid var(--terakota); }
.bledy { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.blad { border-left: 3px solid var(--terakota); padding: 2px 0 2px 16px; }
.blad__t { font-weight: 700; color: var(--granat); font-size: 16px; margin: 0 0 4px; }
.blad__jak { font-size: 15px; color: var(--tekst-2); line-height: 1.6; margin: 0; }
.case { background: var(--granat); color: #CFD6E6; border-radius: var(--promien); padding: 26px 28px; margin: 28px 0; }
.case .kicker { color: var(--zloto); }
.case p { font-size: 15px; line-height: 1.7; margin: 0 0 10px; }
.case strong { color: var(--bialy); }
.case__nota { font-size: 12px; color: #8A94AD; font-style: italic; margin-bottom: 0; }
.podstawa-prawna { font-size: 15px; color: var(--tekst); line-height: 1.7; padding-left: 18px; }
.podstawa-prawna li { margin-bottom: 6px; }
.podstawa-prawna__nota { font-size: 13px; color: var(--tekst-2); font-style: italic; }
.powiazane { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--linia); }
.powiazane li { border-bottom: 1px solid var(--linia); }
.powiazane a { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; color: var(--granat); font-weight: 700; text-decoration: none; }
.powiazane a:hover { color: var(--zloto); }
.zbloga { display: flex; flex-direction: column; gap: 10px; }
.zbloga__poz { color: var(--granat); font-weight: 700; text-decoration: none; }
.zbloga__poz:hover { color: var(--zloto); }
@media (max-width: 700px) { .kr { grid-template-columns: 1fr; } }

.usluga-side { display: flex; flex-direction: column; gap: 18px; }
.prowadzi { display: block; border: 1px solid var(--linia); border-radius: var(--promien); padding: 18px; text-decoration: none; }
.prowadzi:hover { border-color: var(--zloto); }
.prowadzi__kicker { display: block; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--zloto); font-weight: 700; margin-bottom: 12px; }
.prowadzi__osoba { display: flex; align-items: center; gap: 12px; }
.prowadzi__foto, .prowadzi__mono { width: 100px; height: 100px; border-radius: 50%; flex-shrink: 0; }
.prowadzi__foto { object-fit: cover; object-position: center 20%; }
.prowadzi__mono { background: var(--granat); color: var(--zloto); display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 30px; }
.prowadzi__imie { display: block; font-family: 'Playfair Display', serif; color: var(--granat); font-size: 16px; }
.prowadzi__rola { display: block; font-size: 12px; color: var(--tekst-2); margin-top: 2px; }

/* ===== Stopka ===== */
.stopka { background: var(--granat); color: #CFD6E6; }
.stopka__kolumny { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 32px; padding: 56px 0 40px; }
.stopka__logo { display: flex; align-items: center; gap: 10px; }
.stopka__sygnet { height: 34px; width: auto; display: block; }
.stopka__nazwa { font-family: 'Playfair Display', serif; color: var(--bialy); font-size: 16px; letter-spacing: 2px; }
.stopka__rejestr { font-size: 13px; color: #AEB8CF; margin-top: 14px; line-height: 1.7; }
.stopka__tytul { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--zloto); font-weight: 700; margin: 0 0 14px; }
.stopka__lista[hidden] { display: none; }
.stopka__lista li { margin-bottom: 10px; }
.stopka__lista a { color: #CFD6E6; font-size: 14px; text-decoration: none; }
.stopka__lista a:hover { color: var(--zloto); }
.stopka__kontakt { font-size: 14px; line-height: 2; }
.stopka__kontakt a { color: #CFD6E6; text-decoration: none; }
.stopka__kontakt a:hover { color: var(--zloto); }
.stopka__social { display: flex; gap: 10px; margin-top: 18px; }
.stopka__social a {
  width: 34px; height: 34px;
  border: 1px solid rgba(212, 175, 55, .5);
  display: inline-flex; align-items: center; justify-content: center;
}
.stopka__social .ikona { width: 17px; height: 17px; }
.stopka__social a:hover { border-color: var(--zloto); }
.stopka__dol { border-top: 1px solid rgba(255, 255, 255, .12); }
.stopka__dol .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 16px; padding-bottom: 16px; flex-wrap: wrap; font-size: 13px; color: #8A94AD; }
.stopka__dol a { color: #8A94AD; text-decoration: none; }
.stopka__dol a:hover { color: var(--zloto); }

/* ===== Mobilny pasek akcji (każda strona poza /kontakt/) ===== */
.pasek-akcji { display: none; }

/* ===== Mobile (breakpoint 900px) ===== */
@media (max-width: 900px) {
  body.ma-pasek-akcji { padding-bottom: 56px; }

  .belka-gorna { display: none; }

  .naglowek .container { min-height: 60px; }
  .hamburger, .naglowek__tel { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .nav { display: none; }
  .logo__deskryptor { display: none; }
  .logo__nazwa { font-size: 17px; }
  .logo__sygnet { height: 32px; }

  .hero .container { grid-template-columns: 1fr; gap: 28px; padding: 32px 0 40px; }
  .hero__haslo { font-size: 32px; }
  .hero__fraza { font-size: 16px; }
  .hero__lead { font-size: 16px; max-width: none; }
  .hero__cta { flex-direction: column; }
  .hero__cta .przycisk { text-align: center; }
  .hero__foto { min-height: 200px; order: -1; overflow: hidden; }
  .hero__foto img { width: 120%; max-width: none; margin-left: -20%; border-radius: 0; }
  .hero__obrys { left: -20%; width: 120%; transform: translate(-4px, -4px); }
  .hero__tekst { transform: none; padding: 0 24px; }

  .pasek-zaufania .container { flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 22px; padding-bottom: 22px; }

  .sekcja { padding: 48px 0; }
  .sekcja__naglowek h2 { font-size: 26px; }

  /* Kafelki → dotykowe wiersze pełnej szerokości */
  .kafelki { grid-template-columns: 1fr; gap: 10px; }
  .kafelek { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 16px 18px; }
  .kafelek h3 { margin-top: 0; font-size: 16px; flex: 1; }
  .kafelek__opis { display: none; }
  .kafelek::after { content: "›"; color: #B3AB98; font-size: 22px; line-height: 1; margin: 0; transform: none; }

  .pasmo { min-height: 180px; }
  .pasmo > .container { padding: 0; }
  .plakieta, .plakieta--prawa { max-width: none; margin: 0; width: 100%; padding: 22px 24px; }
  .plakieta__cytat { font-size: 17px; }

  .zajawki { grid-template-columns: 1fr; }

  .sekcja__naglowek h1 { font-size: 27px; }
  .osoby { grid-template-columns: 1fr; gap: 10px; }
  .osoba { display: flex; }
  .osoba__foto { width: 88px; height: auto; flex-shrink: 0; }
  .osoba__monogram { width: 48px; height: 48px; font-size: 16px; }
  .osoba__tresc { padding: 13px 15px; }
  .psy { grid-template-columns: 1fr; }
  .zaproszenie .container { flex-direction: column; align-items: flex-start; }

  .osoba-header__in { flex-direction: column; align-items: flex-start; gap: 18px; padding-top: 32px; padding-bottom: 32px; }
  .osoba-header__imie { font-size: 26px; }
  .osoba-header__mono, .osoba-header__foto { width: 130px; height: 130px; }
  .osoba-header__mono { font-size: 38px; }
  .osoba-profil { grid-template-columns: 1fr; gap: 28px; }
  .osoba-profil__side { margin-top: 0; }

  .naglowek-granat h1 { font-size: 27px; }
  .kafelki--uslugi { grid-template-columns: 1fr; }
  .statystyki .container { gap: 18px; }
  .formy { grid-template-columns: 1fr; }
  .rozliczenia { grid-template-columns: 1fr; }
  .pasmo-foto { height: 115px; }
  .usluga-uklad { grid-template-columns: 1fr; gap: 28px; }

  .pasek-cta .container { flex-direction: column; align-items: flex-start; }

  .tresc-strony h1 { font-size: 28px; }
  .tresc-strony__tekst .alignright, .tresc-strony__tekst .alignleft { float: none; max-width: 100%; margin: 22px 0; }
  .wpis-hero { grid-template-columns: 1fr; }
  .wpis-hero__foto { min-height: 190px; }
  .media-wyrozniona { grid-template-columns: 1fr; }
  .media-karty { grid-template-columns: 1fr; }
  .media-cytat { border-left: 0; border-top: 1px solid var(--zloto); padding-left: 0; padding-top: 16px; }
  .kontakt-szybki { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 18px; }
  .kontakt-szybki a { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 15px; border-radius: var(--promien); font-weight: 700; text-decoration: none; }
  .kontakt-szybki a .ikona { width: 18px; height: 18px; }
  .kontakt-szybki__tel { background: var(--granat); color: var(--bialy); }
  .kontakt-szybki__tel .ikona { stroke: var(--bialy); }
  .kontakt-szybki__mail { background: var(--porcelana); color: var(--granat); border: 1px solid var(--linia); }
  .kontakt-szybki__mail .ikona { stroke: var(--granat); }
  .kontakt-uklad { grid-template-columns: 1fr; }
  .kontakt-form { order: 1; }
  .kontakt-dane { order: 2; }
  .kontakt-dojazd { grid-template-columns: 1fr; }
  .kontakt-mapa-wrap, .kontakt-mapa-placeholder { min-height: 220px; }
  .cookie-baner { left: 10px; right: 10px; bottom: 74px; padding: 16px; gap: 14px; }
  .cookie-baner__akcje { width: 100%; }
  .cookie-baner .przycisk, .cookie-baner__sek { flex: 1; text-align: center; }

  .stopka__kolumny { grid-template-columns: 1fr; gap: 28px; padding: 40px 0 28px; }
  .stopka__dol .container { flex-direction: column; align-items: flex-start; gap: 6px; }

  /* Stały dolny pasek akcji */
  .pasek-akcji {
    display: flex;
    position: fixed;
    bottom: 0; left: 0; right: 0;
    z-index: 100;
    border-top: 1px solid var(--linia);
  }
  .pasek-akcji a {
    flex: 1;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 52px;
    font-size: 15px; font-weight: 700; text-decoration: none;
  }
  .pasek-akcji__tel { background: var(--granat); color: var(--bialy); }
  .pasek-akcji__tel .ikona { stroke: var(--bialy); width: 17px; height: 17px; }
  .pasek-akcji__mail { background: var(--zloto); color: var(--granat); }
  .pasek-akcji__mail .ikona { stroke: var(--granat); width: 17px; height: 17px; }
}

/* ===== Typografia CJK (wersja ZH /zh/, html[lang="zh-CN"]) =====
   Playfair Display / Lato nie obsługują chińskich znaków, a Google Fonts
   jest zablokowany w Chinach kontynentalnych — dlatego strony ZH dostają
   systemowy stos czcionek CJK zamiast czekać na (niedostępny) plik z Google.
   Litery Han nie mają kursywy ani wersalików w zachodnim sensie, więc
   text-transform/letter-spacing/font-style (myślane pod łacińskie kickery
   i pull-quote'y) są tu wyłączone globalnie — dotyczą tylko tego jednego,
   opt-in zakresu, więc !important jest tu celowe i bezpieczne. */
html[lang="zh-CN"] * {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", "Heiti SC", "Segoe UI", sans-serif !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  font-style: normal !important;
}
html[lang="zh-CN"] body { line-height: 1.85; }
html[lang="zh-CN"] h1, html[lang="zh-CN"] h2, html[lang="zh-CN"] h3, html[lang="zh-CN"] h4 { line-height: 1.5; }
html[lang="zh-CN"] .tresc-strony__tekst p, html[lang="zh-CN"] .tresc-strony__tekst li { line-height: 1.9; }
html[lang="zh-CN"] .tresc-strony__tekst blockquote { border-left-color: var(--zloto); }
html[lang="zh-CN"] .tresc-strony__tekst blockquote p { font-size: 18px; }
