/* ==========================================================================
   Kancelaria Czerkawski — custom styles (child theme)
   Design system: głęboka zieleń butelkowa + ciepły mosiądz + kość słoniowa
   Typografia: Cormorant Garamond (serif) + Inter (sans)
   WCAG 2.1 AA, mobile-first, 8px baseline.
   ========================================================================== */

/* ----- Zmienne ------------------------------------------------------------ */
:root {
  --c-primary:     #1a3a2e;
  --c-primary-2:   #2d5a3d;
  --c-primary-d:   #0f2a1f;
  --c-accent:      #b86f3c;
  --c-accent-2:    #9a5a2d;
  --c-accent-3:    #d4864a;
  --c-text:        #1a1a1a;
  --c-text-2:      #4a4a44;
  --c-text-3:      #6e6e66;
  --c-bg:          #fafaf5;
  --c-bg-2:        #f0ede4;
  --c-bg-3:        #e8e4d5;
  --c-border:      #d4d0c4;
  --c-border-d:    #a8a39a;

  --ff-serif:      'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --ff-sans:       'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;

  --fs-xs:   0.8125rem;
  --fs-sm:   0.9375rem;
  --fs-base: 1rem;
  --fs-lg:   1.125rem;
  --fs-xl:   1.3125rem;
  --fs-2xl:  1.625rem;
  --fs-3xl:  2rem;
  --fs-4xl:  2.5rem;
  --fs-5xl:  3.25rem;

  --s-1: 0.25rem;
  --s-2: 0.5rem;
  --s-3: 0.75rem;
  --s-4: 1rem;
  --s-5: 1.25rem;
  --s-6: 1.5rem;
  --s-8: 2rem;
  --s-10: 2.5rem;
  --s-12: 3rem;
  --s-16: 4rem;
  --s-20: 5rem;
  --s-24: 6rem;

  --container: 1200px;
  --container-narrow: 860px;

  --r-sm: 2px;
  --r-md: 4px;
  --r-lg: 8px;
  --shadow-sm: 0 1px 2px rgba(26, 58, 46, .05);
  --shadow-md: 0 4px 6px rgba(26, 58, 46, .08), 0 2px 4px rgba(26, 58, 46, .06);
  --shadow-lg: 0 10px 15px rgba(26, 58, 46, .1), 0 4px 6px rgba(26, 58, 46, .06);

  --ease: cubic-bezier(.4, 0, .2, 1);
}

/* ----- Reset / base ------------------------------------------------------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body, body.home, body.page, body.single {
  margin: 0;
  font-family: var(--ff-sans);
  font-size: var(--fs-base);
  line-height: 1.65;
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

/* ----- Typografia --------------------------------------------------------- */
h1, h2, h3, h4, h5, h6, .entry-title {
  font-family: var(--ff-serif);
  font-weight: 600;
  line-height: 1.22;
  color: var(--c-primary);
  margin: 0 0 var(--s-4);
  letter-spacing: -0.01em;
}
h1, .entry-title {
  font-size: clamp(2rem, 4vw + 1rem, var(--fs-5xl));
  font-weight: 700;
  letter-spacing: -0.02em;
}
h2 { font-size: clamp(1.5rem, 2.5vw + 0.75rem, var(--fs-4xl)); margin-top: var(--s-10); }
h3 { font-size: var(--fs-2xl); margin-top: var(--s-8); }
h4 { font-size: var(--fs-xl); margin-top: var(--s-6); }

p { margin: 0 0 var(--s-4); }

a {
  color: var(--c-primary-2);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .15s var(--ease);
}
a:hover { color: var(--c-accent-2); }
a:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; border-radius: var(--r-sm); }

strong, b { font-weight: 600; color: var(--c-text); }

ul, ol { margin: 0 0 var(--s-4); padding-left: var(--s-6); }
li { margin-bottom: var(--s-2); }

blockquote {
  margin: var(--s-8) 0;
  padding: var(--s-5) var(--s-8);
  border-left: 3px solid var(--c-accent);
  background: var(--c-bg-2);
  font-style: italic;
  color: var(--c-text-2);
  font-family: var(--ff-serif);
  font-size: var(--fs-lg);
  line-height: 1.55;
}

hr { border: 0; height: 1px; background: var(--c-border); margin: var(--s-12) 0; }

/* ----- Dostępność --------------------------------------------------------- */
.screen-reader-text {
  position: absolute !important;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px; height: 1px;
  overflow: hidden;
  word-wrap: normal !important;
}
.skip-link:focus {
  position: fixed; top: var(--s-2); left: var(--s-2); z-index: 99999;
  clip: auto; width: auto; height: auto;
  padding: var(--s-3) var(--s-5);
  background: var(--c-primary); color: #fff;
  text-decoration: none; border-radius: var(--r-md);
  outline: 2px solid var(--c-accent);
}

/* ----- Layout + kontener ------------------------------------------------- */
.site { overflow-x: hidden; }

.site-content, .content-area, main#main, #primary, article {
  max-width: var(--container);
  margin: 0 auto;
}

#content { padding: 0; }

.entry-content, .page .entry-content, .post .entry-content {
  max-width: var(--container-narrow);
  margin: 0 auto;
  padding: var(--s-12) var(--s-6);
}

@media (max-width: 768px) {
  .entry-content { padding: var(--s-8) var(--s-4); }
}

/* ----- NAGŁÓWEK — CZYSTY, BEZ BOOTSTRAP'a PARENT THEME ------------------- */
/* Wyzeruj parent theme header styles które mogą przeszkadzać */
.site-header .container,
.site-header .row { max-width: none !important; width: auto !important; padding: 0 !important; margin: 0 !important; display: block !important; }

#masthead.site-header {
  background: var(--c-bg) !important;
  border-bottom: 1px solid var(--c-border) !important;
  padding: 0 !important;
  box-shadow: var(--shadow-sm);
  position: relative;
  z-index: 100;
}

.site-header-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--s-4) var(--s-6);
  display: flex;
  align-items: center;
  gap: var(--s-4);
  justify-content: space-between;
  flex-wrap: nowrap;
}

@media (max-width: 900px) {
  .site-header-inner { flex-wrap: wrap; gap: var(--s-3); }
}

.site-branding {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}
.site-branding .site-title,
.site-branding .site-description { display: none !important; }

.custom-logo-link, .czerkawski-logo-link {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  text-decoration: none;
}
.custom-logo, .czerkawski-logo, img.custom-logo {
  height: 56px !important;
  width: auto !important;
  max-width: 300px !important;
  display: block;
}
.custom-logo-link:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 4px;
  border-radius: var(--r-sm);
}

/* Menu desktop — overrides bardzo specyficznej ID #site-navigation z parent theme */
#site-navigation.main-navigation,
.main-navigation {
  flex: 1 1 auto;
  display: flex !important;
  justify-content: center;
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
}

#site-navigation.main-navigation ul,
#site-navigation.main-navigation ul#primary-menu {
  flex-wrap: nowrap !important;
  gap: var(--s-5) !important;
}

@media (max-width: 1100px) {
  #site-navigation.main-navigation ul,
  #site-navigation.main-navigation ul#primary-menu { gap: var(--s-4) !important; }
  #site-navigation.main-navigation .menu-item a { font-size: var(--fs-sm) !important; }
}
#site-navigation.main-navigation .menu-item a,
.main-navigation .menu-item a {
  color: var(--c-text) !important;
  padding: var(--s-2) 0 !important;
  font-family: var(--ff-sans) !important;
  font-size: var(--fs-sm) !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  border-bottom: 2px solid transparent !important;
  background: transparent !important;
}
#site-navigation.main-navigation .menu-item a:hover,
#site-navigation.main-navigation .current-menu-item > a,
#site-navigation.main-navigation .current_page_item > a {
  color: var(--c-primary) !important;
  border-bottom-color: var(--c-accent) !important;
}
.main-navigation ul,
.main-navigation ul#primary-menu {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  gap: var(--s-5);
  flex-wrap: wrap;
  justify-content: center;
  background: transparent !important;
}
.main-navigation ul li {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
.main-navigation a {
  display: inline-block;
  color: var(--c-text) !important;
  text-decoration: none !important;
  font-family: var(--ff-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: .01em;
  padding: var(--s-2) 0;
  border-bottom: 2px solid transparent !important;
  transition: color .15s var(--ease), border-color .15s var(--ease);
  white-space: nowrap;
}
.main-navigation a:hover,
.main-navigation a:focus-visible,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a,
.main-navigation .current-menu-ancestor > a {
  color: var(--c-primary) !important;
  border-bottom-color: var(--c-accent) !important;
}

/* Hamburger — schowany na desktop, SVG na mobile */
.menu-toggle {
  display: none;
  background: transparent;
  border: 1px solid var(--c-border);
  padding: 0;
  cursor: pointer;
  width: 44px;
  height: 44px;
  border-radius: var(--r-sm);
  color: var(--c-primary);
  align-items: center;
  justify-content: center;
  transition: background .15s var(--ease), border-color .15s var(--ease);
}
.menu-toggle:hover { background: var(--c-bg-2); border-color: var(--c-accent); }
.menu-toggle:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.menu-toggle svg,
.menu-toggle-icon {
  display: block;
  width: 24px !important;
  height: 24px !important;
  color: var(--c-primary) !important;
  stroke: var(--c-primary) !important;
  stroke-width: 2;
  fill: none;
}
.menu-toggle .menu-toggle-close { display: none !important; }
.nav-open .menu-toggle .menu-toggle-bars,
.main-navigation.nav-open .menu-toggle .menu-toggle-bars { display: none !important; }
.nav-open .menu-toggle .menu-toggle-close,
.main-navigation.nav-open .menu-toggle .menu-toggle-close { display: block !important; }

/* CTA w headerze */
.site-header-cta {
  flex: 0 0 auto;
}
.header-phone {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  background: var(--c-primary);
  color: #fff !important;
  text-decoration: none !important;
  padding: var(--s-2) var(--s-4);
  border-radius: var(--r-sm);
  font-weight: 500;
  font-size: var(--fs-sm);
  letter-spacing: .01em;
  transition: background .15s var(--ease);
}
.header-phone:hover { background: var(--c-accent-2); color: #fff !important; }
.header-phone:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.header-phone svg { flex-shrink: 0; }

@media (max-width: 900px) {
  #masthead.site-header { position: relative; }
  .site-header-inner { flex-wrap: nowrap; gap: var(--s-3); }
  .site-branding { flex: 1 1 auto; min-width: 0; }
  #site-navigation.main-navigation,
  .main-navigation {
    order: 2;
    flex: 0 0 auto;
    justify-content: flex-end;
    position: static !important;
  }
  .site-header-cta { order: 3; flex: 0 0 auto; }
  .menu-toggle { display: inline-flex !important; align-items: center; justify-content: center; }
  /* Popup menu (zamknięte) */
  #site-navigation.main-navigation ul#primary-menu,
  .main-navigation ul#primary-menu {
    display: none !important;
    position: absolute !important;
    top: 100% !important;
    left: 0 !important;
    right: 0 !important;
    background: var(--c-bg) !important;
    border-top: 2px solid var(--c-accent) !important;
    border-bottom: 1px solid var(--c-border) !important;
    padding: var(--s-4) var(--s-6) !important;
    margin: 0 !important;
    flex-direction: column !important;
    gap: 0 !important;
    justify-content: flex-start !important;
    box-shadow: var(--shadow-lg) !important;
    z-index: 9999 !important;
    list-style: none !important;
    width: 100vw !important;
    max-width: 100vw !important;
  }
  /* Popup menu (otwarte) — wyższa specyficzność */
  body #site-navigation.main-navigation.nav-open ul#primary-menu,
  body .main-navigation.nav-open ul#primary-menu,
  html body .main-navigation.nav-open ul {
    display: flex !important;
  }
  #site-navigation.main-navigation .menu-item a,
  .main-navigation a {
    padding: var(--s-3) 0 !important;
    border-bottom: 1px solid var(--c-border) !important;
    font-size: var(--fs-base) !important;
    color: var(--c-text) !important;
  }
  .main-navigation a:hover,
  .main-navigation .current-menu-item > a {
    border-bottom-color: var(--c-accent) !important;
  }

  .header-phone-num { display: none; }
  .header-phone { padding: var(--s-2); width: 44px; height: 44px; justify-content: center; }

}

/* Smaller screens — compacter header */
@media (max-width: 480px) {
  .custom-logo, .czerkawski-logo { height: 44px !important; max-width: 180px !important; }
  .site-header-inner { padding: var(--s-3) var(--s-3); }
  .menu-toggle { width: 40px; height: 40px; }
  .header-phone { width: 40px; height: 40px; }
}

@media (max-width: 480px) {
  .site-header-inner { padding: var(--s-3) var(--s-4); gap: var(--s-3); }
  .custom-logo, .czerkawski-logo { height: 48px !important; max-width: 220px !important; }
}

/* ----- Eyebrow (mała etykieta nad nagłówkami) --------------------------- */
.eyebrow {
  font-family: var(--ff-sans);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--c-accent-2);
  margin: 0 0 var(--s-3);
  text-align: left;
}
.eyebrow.text-center { text-align: center; }
.eyebrow--light { color: var(--c-accent-3); }

.hero-eyebrow {
  color: var(--c-accent-3);
  font-family: var(--ff-sans);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin: 0 0 var(--s-4);
  opacity: .9;
}

.intro-narrow {
  max-width: var(--container-narrow);
  margin: 0 auto;
  text-align: center;
}
.intro-narrow .section-title { text-align: center; }
.intro-narrow .eyebrow { text-align: center; }
.intro-narrow p { text-align: left; }
.intro-narrow .lead { font-size: var(--fs-lg); text-align: center; margin-bottom: var(--s-6); }

/* ----- Hero --------------------------------------------------------------- */
.hero {
  background:
    radial-gradient(ellipse at top right, rgba(184, 111, 60, .12) 0%, transparent 60%),
    linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-d) 100%);
  color: #fff;
  padding: var(--s-24) var(--s-6);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><circle cx='50' cy='50' r='1' fill='rgba(255,255,255,.03)'/></svg>") repeat;
  background-size: 48px 48px;
  opacity: .6; pointer-events: none;
}
.hero > * { position: relative; }
.hero h1 { color: #fff; font-size: clamp(2.5rem, 5vw + 1rem, 4rem); margin-bottom: var(--s-6); }
.hero .lead { font-size: clamp(1.125rem, 1.5vw + .5rem, 1.375rem); max-width: 720px; margin: 0 auto var(--s-10); line-height: 1.55; color: rgba(255,255,255,.92); }
.hero .accent-line { width: 64px; height: 2px; background: var(--c-accent); margin: 0 auto var(--s-6); }

.hero-ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--s-3);
  margin-top: var(--s-8);
}
.hero-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--s-6);
  max-width: 720px;
  margin: var(--s-12) auto 0;
  padding-top: var(--s-6);
  border-top: 1px solid rgba(255, 255, 255, .15);
}
@media (max-width: 520px) {
  .hero-stats { grid-template-columns: 1fr; gap: var(--s-4); max-width: 300px; }
  .hero .hero-title {
    font-size: 1.75rem !important;
    line-height: 1.15 !important;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
  }
  .hero { padding: var(--s-12) var(--s-4) !important; overflow: hidden; }
  .hero .lead { font-size: var(--fs-base) !important; }
  .hero-eyebrow {
    font-size: 0.65rem !important;
    letter-spacing: .12em !important;
    max-width: 100%;
    word-wrap: break-word;
  }
  .hero-ctas { gap: var(--s-2) !important; }
  .hero-ctas .btn { padding: var(--s-3) var(--s-4) !important; font-size: var(--fs-sm) !important; }
  .hero-stat strong { font-size: var(--fs-3xl) !important; }
}
.hero-stat { text-align: center; }
.hero-stat strong {
  display: block;
  font-family: var(--ff-serif);
  font-size: var(--fs-4xl);
  font-weight: 600;
  color: var(--c-accent-3);
  line-height: 1;
  margin-bottom: var(--s-2);
}
.hero-stat span {
  display: block;
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, .82);
  letter-spacing: .02em;
}

/* Ghost button na ciemnym tle */
.btn--ghost-light {
  background: transparent !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, .4) !important;
}
.btn--ghost-light:hover {
  background: rgba(255, 255, 255, .1) !important;
  border-color: #fff !important;
}

/* ----- Przyciski --------------------------------------------------------- */
.btn, .wp-block-button__link, input[type="submit"], button[type="submit"],
.wpcf7-submit {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  gap: var(--s-2);
  padding: var(--s-3) var(--s-8) !important;
  font-family: var(--ff-sans) !important;
  font-size: var(--fs-base) !important;
  font-weight: 500 !important;
  letter-spacing: .01em;
  line-height: 1.2;
  text-decoration: none !important;
  border: 2px solid transparent !important;
  border-radius: var(--r-sm) !important;
  cursor: pointer;
  background: var(--c-accent) !important;
  color: #fff !important;
  transition: background-color .2s var(--ease), transform .1s var(--ease);
}
.btn:hover, .wp-block-button__link:hover, input[type="submit"]:hover, .wpcf7-submit:hover {
  background: var(--c-accent-2) !important; color: #fff !important;
}
.btn--secondary { background: transparent !important; border-color: #fff !important; }
.btn--secondary:hover { background: #fff !important; color: var(--c-primary) !important; }
.btn--ghost { background: transparent !important; color: var(--c-primary) !important; border-color: var(--c-primary) !important; }
.btn--ghost:hover { background: var(--c-primary) !important; color: #fff !important; }
.btn:focus-visible { outline: 3px solid rgba(184, 111, 60, .5) !important; outline-offset: 2px; }

/* ----- Sekcje / karty obszarów praktyki ---------------------------------- */
.section { padding: var(--s-20) var(--s-6); }
.section--alt { background: var(--c-bg-2); }

/* ======================================================================
   HOME — pełnoekranowy landing (bez 1200px kontenera parent theme)
   ====================================================================== */

/* Ukryj duplikowany entry-title na stronach z hero */
body.home .entry-title,
body.has-hero-layout .entry-title {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  overflow: hidden;
}

/* Wszystkie wrappery parent/child theme stają się pełnej szerokości dla stron z hero */
body.home #content,
body.home main#main,
body.home #primary,
body.home .site-content,
body.home .content-area,
body.home article,
body.home article.page,
body.home .entry-content,
body.has-hero-layout #content,
body.has-hero-layout main#main,
body.has-hero-layout #primary,
body.has-hero-layout .site-content,
body.has-hero-layout .content-area,
body.has-hero-layout article,
body.has-hero-layout article.page,
body.has-hero-layout .entry-content {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Sekcje wypełniają pełną szerokość; wewnętrzne elementy wrap do container */
body.home .entry-content > .hero,
body.home .entry-content > .section,
body.has-hero-layout .entry-content > .hero,
body.has-hero-layout .entry-content > .section {
  width: 100%;
  max-width: none;
}

/* Wewnętrzny kontener dla treści sekcji */
body.home .entry-content > .section > *,
body.has-hero-layout .entry-content > .section > * {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
}
body.home .entry-content > .section > .intro-narrow,
body.has-hero-layout .entry-content > .section > .intro-narrow {
  max-width: var(--container-narrow);
}
body.home .entry-content > .section > .faq,
body.has-hero-layout .entry-content > .section > .faq {
  max-width: var(--container-narrow);
}
body.home .entry-content > .section > .contact-block,
body.has-hero-layout .entry-content > .section > .contact-block {
  max-width: var(--container-narrow);
}

/* Hero-title — styl dla H2 w hero (wygląda jak H1) */
.hero .hero-title {
  color: #fff !important;
  font-size: clamp(2.5rem, 5vw + 1rem, 4rem);
  margin-bottom: var(--s-6);
  font-weight: 600;
  letter-spacing: -0.02em;
  font-family: var(--ff-serif);
  line-height: 1.1;
}
.section-title { text-align: center; margin-bottom: var(--s-4); }
.section-sub { text-align: center; color: var(--c-text-2); max-width: 640px; margin: 0 auto var(--s-12); font-size: var(--fs-lg); }

.practice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--s-5);
  max-width: var(--container);
  margin: 0 auto;
}
@media (min-width: 900px) {
  .practice-grid { grid-template-columns: repeat(3, 1fr); }
}
.practice-card {
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  padding: var(--s-8) var(--s-6);
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
  text-decoration: none; color: inherit;
  display: flex; flex-direction: column;
  position: relative; overflow: hidden;
}
.practice-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--c-accent); transform: scaleX(0); transform-origin: left;
  transition: transform .25s var(--ease);
}
.practice-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--c-accent); }
.practice-card:hover::before { transform: scaleX(1); }

/* Ikony w kartach — kontrola rozmiaru (WP dodaje auto sizing do SVG bez width/height) */
.practice-card .icon,
.practice-card svg.icon,
.practice-card > svg:first-of-type {
  width: 44px !important;
  height: 44px !important;
  max-width: 44px !important;
  max-height: 44px !important;
  color: var(--c-primary) !important;
  margin-bottom: var(--s-4);
  stroke-width: 1.4;
  display: block;
  flex-shrink: 0;
}
.practice-card h3 {
  font-size: var(--fs-xl);
  margin: 0 0 var(--s-3);
  color: var(--c-primary);
}
.practice-card p {
  color: var(--c-text-2);
  margin: 0 0 var(--s-4);
  flex: 1;
  line-height: 1.55;
}
.practice-card .more {
  color: var(--c-accent-2);
  font-weight: 500;
  text-decoration: none;
  font-size: var(--fs-sm);
  letter-spacing: .02em;
}
.practice-card .more::after {
  content: ' →';
  transition: margin-left .15s var(--ease);
}
.practice-card:hover .more::after { margin-left: var(--s-1); }

/* Pillar icons — też potrzebują ograniczenia */
.pillar .pillar-icon,
.pillar svg.pillar-icon {
  width: 40px !important;
  height: 40px !important;
  max-width: 40px !important;
  max-height: 40px !important;
  color: var(--c-accent);
  margin-bottom: var(--s-4);
  display: block;
}

/* ----- Proces (4 kroki numerowane) --------------------------------------- */
.process-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--s-6);
  max-width: var(--container);
  margin: 0 auto;
  padding: 0;
  list-style: none;
  counter-reset: process;
}
.process-step {
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  padding: var(--s-8) var(--s-6);
  position: relative;
  list-style: none;
  margin-bottom: 0 !important;
}
.process-num {
  font-family: var(--ff-serif);
  font-size: var(--fs-5xl);
  line-height: 1;
  font-weight: 700;
  color: var(--c-accent);
  margin-bottom: var(--s-4);
  opacity: .85;
}
.process-step h3 {
  font-size: var(--fs-xl);
  margin: 0 0 var(--s-3);
}
.process-step p {
  color: var(--c-text-2);
  margin: 0;
  line-height: 1.6;
}

/* ----- Filary (4 filary z ikoną) ---------------------------------------- */
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--s-8);
  max-width: var(--container);
  margin: 0 auto;
}
.pillar {
  text-align: left;
}
.pillar-icon {
  width: 40px;
  height: 40px;
  color: var(--c-accent);
  margin-bottom: var(--s-4);
}
.pillar h3 {
  font-size: var(--fs-lg);
  margin: 0 0 var(--s-2);
  color: var(--c-primary);
}
.pillar p {
  color: var(--c-text-2);
  margin: 0;
  line-height: 1.6;
}

/* Ciemna sekcja pod CTA */
.section--dark-cta {
  background: var(--c-bg);
  padding: var(--s-20) var(--s-6);
}
.section--dark-cta .contact-block {
  max-width: var(--container-narrow);
  margin: 0 auto;
  padding: var(--s-20) var(--s-6);
}
.contact-block-hours {
  color: rgba(255,255,255,.78);
  font-size: var(--fs-sm);
  margin: var(--s-3) 0 var(--s-6);
  position: relative;
}
.contact-block-ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--s-3);
  margin-top: var(--s-4);
  position: relative;
}
.contact-block .btn--secondary {
  background: transparent !important;
  color: #fff !important;
  border-color: rgba(255,255,255,.4) !important;
}
.contact-block .btn--secondary:hover {
  background: rgba(255,255,255,.12) !important;
  border-color: #fff !important;
}

/* ----- Kontakt — cards (3 kolumny dla kontakt-card) --------------------- */
.contact-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--s-5);
  margin: var(--s-8) 0;
}
.contact-card {
  background: var(--c-bg-2);
  padding: var(--s-6);
  border-radius: var(--r-md);
  border-left: 3px solid var(--c-accent);
}
.contact-card h3 {
  color: var(--c-primary);
  font-size: var(--fs-lg);
  margin: 0 0 var(--s-3);
}
.contact-card p { margin: 0 0 var(--s-2); }
.contact-card strong { color: var(--c-text); }

/* ----- Mapy iframe ------------------------------------------------------- */
.entry-content iframe[src*="google.com/maps"],
.entry-content iframe[src*="openstreetmap"] {
  width: 100%;
  max-width: 100%;
  height: 420px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  margin: var(--s-6) 0;
  display: block;
}

/* ----- Highlight box (info, warning, quote) ---------------------------- */
.highlight-box {
  background: var(--c-bg-2);
  border-left: 3px solid var(--c-accent);
  padding: var(--s-5) var(--s-6);
  margin: var(--s-6) 0;
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.highlight-box h4 {
  margin-top: 0;
  color: var(--c-accent-2);
  font-size: var(--fs-base);
  letter-spacing: .04em;
  text-transform: uppercase;
  font-family: var(--ff-sans);
  font-weight: 600;
}

/* ----- FAQ --------------------------------------------------------------- */
.faq { max-width: var(--container-narrow); margin: 0 auto; }
.faq details { border-top: 1px solid var(--c-border); padding: var(--s-4) 0; }
.faq details:last-child { border-bottom: 1px solid var(--c-border); }
.faq summary {
  cursor: pointer; list-style: none; font-weight: 600;
  color: var(--c-primary); font-size: var(--fs-lg);
  padding: var(--s-2) 0;
  display: flex; align-items: flex-start; gap: var(--s-3);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before {
  content: '+'; color: var(--c-accent); font-weight: 400;
  font-size: var(--fs-2xl); line-height: 1; flex-shrink: 0; width: 24px;
}
.faq details[open] summary::before { content: '−'; }
.faq details p { padding: var(--s-2) 0 var(--s-2) calc(24px + var(--s-3)); color: var(--c-text-2); }

/* ----- Kontakt — iframe mapy + formularz -------------------------------- */
.entry-content iframe {
  width: 100%;
  max-width: 100%;
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  margin: var(--s-6) 0;
}

/* Contact Form 7 styl */
.wpcf7 { margin: var(--s-8) 0; }
.wpcf7 .cf7-field { margin-bottom: var(--s-5); }
.wpcf7 label { display: block; font-weight: 500; margin-bottom: var(--s-2); color: var(--c-text); }
.wpcf7 .required { color: var(--c-accent-2); }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  padding: var(--s-3) var(--s-4);
  font: inherit;
  font-family: var(--ff-sans);
  border: 1px solid var(--c-border-d);
  border-radius: var(--r-sm);
  background: #fff;
  color: var(--c-text);
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
  outline: 2px solid var(--c-primary);
  outline-offset: -1px;
  border-color: var(--c-primary);
}
.wpcf7 textarea { min-height: 140px; resize: vertical; }
.wpcf7 .cf7-consent { display: flex; gap: var(--s-3); align-items: flex-start; font-size: var(--fs-sm); color: var(--c-text-2); }
.wpcf7 .cf7-consent input[type="checkbox"] { width: auto; margin-top: 4px; flex-shrink: 0; }
.wpcf7 .wpcf7-acceptance input[type="checkbox"] { width: auto; }
.wpcf7-response-output {
  padding: var(--s-3) var(--s-5);
  border-radius: var(--r-sm);
  margin: var(--s-5) 0 0 !important;
  font-size: var(--fs-sm);
}
.wpcf7 form.sent .wpcf7-response-output { background: #e6f4ea; border: 1px solid #276749; color: #276749; }
.wpcf7 form.invalid .wpcf7-response-output { background: #fef2f2; border: 1px solid #991b1b; color: #991b1b; }
.wpcf7-not-valid-tip { color: #991b1b; font-size: var(--fs-xs); margin-top: var(--s-1); }

/* ======================================================================
   KONTRAST — ciemne sekcje (zielone tło): wszystkie teksty jasne
   ====================================================================== */
.hero,
.hero p,
.hero li,
.hero span,
.contact-block,
.contact-block p,
.contact-block li,
.contact-block span,
.section--dark,
.section--dark p,
.section--dark li,
.section--dark span,
.site-footer,
.site-footer p,
.site-footer li,
.site-footer span,
.site-footer address {
  color: rgba(255, 255, 255, .88) !important;
}

/* Nagłówki w ciemnych sekcjach — pełna biel */
.hero h1, .hero h2, .hero h3, .hero h4, .hero h5, .hero h6,
.contact-block h1, .contact-block h2, .contact-block h3, .contact-block h4,
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4,
.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4, .site-footer h5 {
  color: #fff !important;
}

/* <strong> w ciemnych sekcjach — biały */
.hero strong, .hero b,
.contact-block strong, .contact-block b,
.section--dark strong, .section--dark b,
.site-footer strong, .site-footer b {
  color: #fff !important;
}

/* Lead w ciemnych sekcjach */
.hero .lead,
.contact-block .lead,
.section--dark .lead {
  color: rgba(255, 255, 255, .92) !important;
}

/* Linki w ciemnych sekcjach */
.hero a:not(.btn),
.contact-block a:not(.btn):not(.phone),
.section--dark a:not(.btn),
.site-footer a {
  color: rgba(255, 255, 255, .95) !important;
}
.hero a:not(.btn):hover,
.contact-block a:not(.btn):not(.phone):hover,
.section--dark a:not(.btn):hover,
.site-footer a:hover {
  color: var(--c-accent-3) !important;
}

/* Phone number w contact-block — akcentowy */
.contact-block .phone { color: var(--c-accent-3) !important; }
.contact-block .phone:hover { color: #fff !important; }

/* Eyebrow w ciemnych sekcjach — akcent jasny */
.hero .eyebrow, .hero .hero-eyebrow,
.contact-block .eyebrow,
.section--dark .eyebrow {
  color: var(--c-accent-3) !important;
}

/* Godziny / meta info w CTA */
.contact-block-hours {
  color: rgba(255, 255, 255, .78) !important;
}

/* ----- Contact block block-callout -------------------------------------- */
.contact-block {
  background: var(--c-primary); color: #fff;
  padding: var(--s-16) var(--s-6); text-align: center;
  border-radius: var(--r-md); position: relative; overflow: hidden;
}
.contact-block::after {
  content: ''; position: absolute; bottom: -40px; right: -40px;
  width: 160px; height: 160px;
  background: radial-gradient(circle, rgba(184,111,60,.15) 0%, transparent 70%);
  pointer-events: none;
}
.contact-block h2, .contact-block h3 { color: #fff; }
.contact-block .lead { max-width: 580px; margin: 0 auto var(--s-6); opacity: .92; position: relative; }
.contact-block .phone {
  font-family: var(--ff-serif); font-size: var(--fs-3xl);
  color: var(--c-accent-3); text-decoration: none; font-weight: 500;
}
.contact-block .phone:hover { color: #fff; }

/* ----- STOPKA — CZYSTA, ZASTĘPUJE parent footer.php ---------------------- */
.site-footer, #colophon.site-footer {
  background: var(--c-primary-d) !important;
  color: rgba(255, 255, 255, .82);
  padding: 0 !important;
  font-size: var(--fs-sm);
}
.site-footer .container, .site-footer .row { max-width: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; display: block !important; }
.site-footer .divider, .site-footer .site-info { display: none !important; }

.site-footer-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: var(--s-16) var(--s-6) var(--s-6);
}

.site-footer a { color: rgba(255, 255, 255, .92); text-decoration: none; }
.site-footer a:hover { color: var(--c-accent-3); text-decoration: underline; }

.site-footer h3, .site-footer h4 {
  color: #fff;
  font-family: var(--ff-sans);
  margin: 0 0 var(--s-4);
}
.site-footer h4 {
  font-size: var(--fs-sm);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 600;
}
.footer-brand-title {
  font-family: var(--ff-serif) !important;
  font-size: var(--fs-xl) !important;
  font-weight: 500;
  text-transform: none !important;
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: #fff !important;
}
.footer-brand-title strong { color: var(--c-accent-3); font-weight: 600; }
.footer-brand-desc {
  color: rgba(255, 255, 255, .75);
  line-height: 1.55;
  margin: 0;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
  gap: var(--s-8);
}
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--s-6); }
}
@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr; gap: var(--s-6); }
}

.footer-col address {
  font-style: normal;
  color: rgba(255, 255, 255, .82);
  line-height: 1.7;
  margin-bottom: var(--s-4);
}
.footer-hours { color: rgba(255, 255, 255, .75); margin: 0; font-size: var(--fs-sm); }
.footer-hours strong { color: #fff; font-weight: 600; }

ul.footer-menu, ul.footer-info {
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.footer-menu li, ul.footer-info li {
  margin: 0 0 var(--s-2);
  color: rgba(255, 255, 255, .82);
}
ul.footer-legal {
  margin-top: var(--s-5) !important;
  padding-top: var(--s-4);
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.footer-bottom {
  max-width: var(--container); margin: 0 auto;
  padding: var(--s-6) 0 var(--s-4);
  margin-top: var(--s-10);
  border-top: 1px solid rgba(255, 255, 255, .1);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--s-4);
  color: rgba(255, 255, 255, .6);
  font-size: var(--fs-xs);
}
@media (max-width: 600px) {
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* ----- Ukrycie niepotrzebnych widgetów / banerów motywowych ------------- */
.lawpress-default-banner, .demo-notice, .lawpress-promo { display: none !important; }
.widget_search, #search-2 { display: none !important; } /* stary search widget w headerze */

/* ----- Utilities --------------------------------------------------------- */
.text-center { text-align: center; }
.text-muted { color: var(--c-text-2); }
.lead { font-size: var(--fs-lg); color: var(--c-text-2); }

/* ----- prefers-reduced-motion ------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ======================================================================
   BRAND BOOK — komponenty dla strony /brand-book/
   ====================================================================== */
.bb-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--s-6);
  max-width: var(--container);
  margin: 0 auto;
}
.bb-asset-card {
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  padding: var(--s-6);
}
.bb-asset-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  margin: 0 0 var(--s-5);
  border-radius: var(--r-sm);
  padding: var(--s-4);
}
.bb-asset-preview--light { background: var(--c-bg-2); }
.bb-asset-preview--dark  { background: var(--c-primary-d); }
.bb-asset-card h3 {
  margin: 0 0 var(--s-2);
  font-size: var(--fs-xl);
}
.bb-asset-card p { color: var(--c-text-2); margin: 0 0 var(--s-2); }
.bb-meta {
  font-size: var(--fs-xs);
  color: var(--c-text-3);
  margin: var(--s-2) 0 var(--s-4) !important;
}
.bb-meta code {
  background: var(--c-bg-2);
  padding: 2px 6px;
  border-radius: 3px;
  font-size: 0.85em;
}
.bb-download {
  display: inline-block;
  color: var(--c-accent-2) !important;
  font-weight: 500;
  text-decoration: none !important;
  font-size: var(--fs-sm);
  letter-spacing: .02em;
}
.bb-download:hover { color: var(--c-accent) !important; }

.bb-rules {
  max-width: var(--container-narrow);
  margin: var(--s-6) auto 0;
  padding-left: var(--s-6);
}
.bb-rules li { margin-bottom: var(--s-3); }

.bb-palette-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--s-4);
  max-width: var(--container);
  margin: var(--s-8) auto 0;
}
.bb-color-card {
  padding: var(--s-8) var(--s-5) var(--s-5);
  border-radius: var(--r-md);
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  min-height: 220px;
}
.bb-color-name {
  font-family: var(--ff-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: .02em;
  margin-top: auto;
}
.bb-color-hex {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--fs-base);
  font-weight: 600;
}
.bb-color-rgb {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--fs-xs);
  opacity: .85;
}
.bb-color-use {
  font-size: var(--fs-xs);
  opacity: .85;
  padding-top: var(--s-2);
  margin-top: var(--s-2);
  border-top: 1px solid rgba(255, 255, 255, .2);
}
.bb-color-card[style*="#fafaf5"] .bb-color-use,
.bb-color-card[style*="#f0ede4"] .bb-color-use {
  border-top-color: rgba(0, 0, 0, .1);
}

.bb-type-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--s-6);
  max-width: var(--container);
  margin: 0 auto;
}
.bb-type-card {
  background: var(--c-bg);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  padding: var(--s-8);
}
.bb-type-sample {
  margin-top: var(--s-5);
  padding-top: var(--s-5);
  border-top: 1px solid var(--c-border);
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}

.bb-component-demo {
  margin: var(--s-5) 0 var(--s-8);
}

.bb-dodont {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--s-6);
  max-width: var(--container);
  margin: 0 auto;
}
.bb-do, .bb-dont {
  padding: var(--s-6);
  border-radius: var(--r-md);
  border: 1px solid;
}
.bb-do {
  background: rgba(39, 103, 73, .08);
  border-color: rgba(39, 103, 73, .3);
}
.bb-do h3 { color: #276749; margin-top: 0; }
.bb-dont {
  background: rgba(192, 86, 33, .08);
  border-color: rgba(192, 86, 33, .3);
}
.bb-dont h3 { color: #c05621; margin-top: 0; }
.bb-do ul, .bb-dont ul { margin-bottom: 0; }
.bb-do li, .bb-dont li { margin-bottom: var(--s-2); }

/* ----- Print ------------------------------------------------------------- */
@media print {
  .site-header, .site-footer, .main-navigation, .hero::before, .menu-toggle, .header-phone { display: none !important; }
  body { color: #000; background: #fff; }
  a { text-decoration: underline; }
}
