*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

:root {
  --cr:       #9b1c3a;
  --cr2:      #c03858;
  --gold:     #a8843a;
  --gold-lt:  #c9a055;
  --cream:    #f7f2e8;
  --warm:     #ede5d4;
  --beige:    #dfd5c0;
  --deep:     #4f1725;
  --muted:    #6e6058;
  --border:   #d8d0bc;
  --white:    #ffffff;
  --serif:    'Cormorant Garamond', Georgia, serif;
  --sans:     'Plus Jakarta Sans', system-ui, sans-serif;
  --shadow:   0 4px 24px rgba(79,23,37,.20);
  --shadow-sm:0 2px 10px rgba(79,23,37,.12);
}

body { font-family: var(--sans); background: var(--cream); color: var(--deep); font-size: 15px; line-height: 1.7; }

/* ══ TOPBAR ══ */
.topbar {
  background: var(--deep); color: #907870;
  font-size: 11px; letter-spacing: .08em;
  padding: 7px 32px;
  display: flex; align-items: center; justify-content: space-between;
  position: sticky; top: 0; z-index: 201;
}
.topbar-note { color: var(--gold-lt); font-weight: 500; }
.topbar-links { display: flex; gap: 20px; }
.topbar-links a { color: #907870; text-decoration: none; transition: color .2s; }
.topbar-links a:hover { color: var(--gold-lt); }

/* ══ HEADER ══ */
header {
  background: var(--white); border-bottom: 1px solid var(--border);
  position: sticky; top: 34px; z-index: 200; box-shadow: var(--shadow-sm);
}
.nav-wrap {
  max-width: 1300px; margin: 0 auto; padding: 0 32px;
  display: flex; align-items: center; height: 68px;
}
.logo { display: flex; flex-direction: column; text-decoration: none; flex-shrink: 0; margin-right: 40px; }
.logo-top { font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--deep); letter-spacing: -.01em; line-height: 1; }
.logo-dot { color: var(--cr); }
.logo-sub { font-size: 10px; color: var(--muted); letter-spacing: .1em; text-transform: uppercase; margin-top: 3px; }
nav { display: flex; align-items: center; gap: 2px; flex: 1; }
nav a { font-size: 13px; font-weight: 500; color: var(--muted); text-decoration: none; padding: 8px 14px; border-radius: 6px; transition: color .2s, background .2s; white-space: nowrap; }
nav a:hover { color: var(--deep); background: var(--cream); }
nav a.active { color: var(--cr); font-weight: 600; }
.nav-cta { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.btn-solid { font-size: 12.5px; font-weight: 600; padding: 8px 20px; border-radius: 6px; background: var(--cr); color: var(--white); text-decoration: none; letter-spacing: .02em; transition: background .2s, transform .15s; }
.btn-solid:hover { background: #7a1530; transform: translateY(-1px); }
.search-wrap { position: relative; display: flex; align-items: center; }
.search-input { font-family: var(--sans); font-size: 13px; padding: 8px 36px 8px 14px; border: 1.5px solid var(--border); border-radius: 20px; background: var(--cream); color: var(--deep); outline: none; width: min(200px, 90vw); transition: border-color .2s, width .3s, box-shadow .2s; }
.search-input:focus { border-color: var(--cr); width: min(260px, 90vw); box-shadow: 0 0 0 3px rgba(192,57,43,.08); }
.search-input::placeholder { color: var(--muted); }
.search-icon { position: absolute; right: 10px; font-size: 14px; pointer-events: none; opacity: .5; }
.nav-search-mobile { display: none; }
.nav-close { display: none; }

/* ══ HERO ══ */
.hero-wrap { background: var(--deep); }
.hero {
  min-height: 480px; display: grid; grid-template-columns: 1fr 420px;
  max-width: 1300px; margin: 0 auto; overflow: hidden; position: relative;
}
.hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 25% 60%, rgba(192,57,43,.2) 0%, transparent 55%);
  pointer-events: none;
}
.hero::after {
  content: ''; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.015'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.hero-left { padding: 64px 56px; display: flex; flex-direction: column; justify-content: center; position: relative; z-index: 1; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; letter-spacing: .14em; color: var(--gold-lt); text-transform: uppercase; margin-bottom: 20px; }
.hero-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--gold-lt); }
.hero h1 { font-family: var(--serif); font-size: clamp(36px, 4vw, 58px); font-weight: 300; color: var(--white); line-height: 1.15; margin-bottom: 18px; letter-spacing: -.02em; }
.hero h1 em { font-style: italic; color: #f0c89a; font-weight: 300; }
.hero-desc { font-size: 15px; color: #b0a090; line-height: 1.75; max-width: 420px; margin-bottom: 40px; }
.hero-stats { display: flex; gap: 0; }
.stat-item { display: flex; flex-direction: column; gap: 4px; padding-right: 32px; }
.stat-item + .stat-item { padding-left: 32px; border-left: 1px solid rgba(255,255,255,.1); }
.stat-num { font-family: var(--serif); font-size: 34px; font-weight: 600; color: var(--white); line-height: 1; }
.stat-lbl { font-size: 10px; color: #907870; letter-spacing: .07em; text-transform: uppercase; }
.hero-right { background: rgba(255,255,255,.04); border-left: 1px solid rgba(255,255,255,.08); display: flex; flex-direction: column; justify-content: flex-end; padding: 32px; gap: 14px; position: relative; z-index: 1; }
.hero-featured-label { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-lt); font-weight: 600; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.07); margin-bottom: 2px; }
.hero-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09); border-radius: 10px; padding: 18px 20px; text-decoration: none; display: block; transition: background .2s, transform .2s, border-color .2s; }
.hero-card:hover { background: rgba(255,255,255,.1); transform: translateX(5px); border-color: rgba(212,170,106,.3); }
.hero-card-tag { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--cr2); font-weight: 600; margin-bottom: 7px; }
.hero-card h3 { font-family: var(--serif); font-size: 17px; font-weight: 400; color: var(--white); line-height: 1.35; margin-bottom: 6px; }
.hero-card p { font-size: 12px; color: #907870; line-height: 1.55; }

.hero-actions { display: flex; align-items: center; gap: 14px; margin-bottom: 36px; flex-wrap: wrap; }
.hero-btn-primary { font-size: 13.5px; font-weight: 600; letter-spacing: .04em; padding: 12px 24px; border-radius: 7px; background: var(--cr); color: var(--white); text-decoration: none; transition: background .2s, transform .15s; }
.hero-btn-primary:hover { background: #7a1530; transform: translateY(-1px); }
.hero-btn-secondary { font-size: 13.5px; font-weight: 500; color: #b0a090; text-decoration: none; transition: color .2s; }
.hero-btn-secondary:hover { color: var(--white); }

/* ══ PASEK KATEGORII sticky ══ */
.cats-section { background: var(--white); border-bottom: 1px solid var(--border); position: sticky; top: 102px; z-index: 100; }
.cats-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; display: flex; align-items: stretch; overflow-x: auto; scrollbar-width: none; }
.cats-inner::-webkit-scrollbar { display: none; }
.cat-chip { display: flex; align-items: center; justify-content: center; padding: 14px 22px; text-decoration: none; white-space: nowrap; font-size: 13px; font-weight: 500; color: var(--muted); border-bottom: 3px solid transparent; transition: color .2s, border-color .2s, background .2s; flex-shrink: 0; }
.cat-chip:hover { color: var(--deep); background: var(--cream); border-bottom-color: var(--beige); }
.cat-chip.active { color: var(--cr); font-weight: 600; border-bottom-color: var(--cr); }
.cat-chip--all { color: var(--cr); font-style: italic; margin-left: auto; }

/* ══ WSPÓLNE NAGŁÓWKI SEKCJI ══ */
.fw-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; }
.fw-hd { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 28px; padding-top: 52px; }
.fw-ttl { font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--deep); letter-spacing: -.01em; display: flex; align-items: center; gap: 12px; }
.fw-ttl::before { content: ''; width: 4px; height: 28px; background: var(--cr); border-radius: 2px; flex-shrink: 0; }
.fw-sub { font-size: 13.5px; color: var(--muted); }
.fw-lnk { font-size: 12.5px; font-weight: 600; color: var(--cr); text-decoration: none; letter-spacing: .04em; }
.fw-lnk:hover { text-decoration: underline; }

/* ══ KATEGORIE 3×2 ══ */
.cats-main-section { background: var(--white); border-bottom: 1px solid var(--border); padding-bottom: 48px; }
.cats-main-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.cml-item { padding: 24px 26px; text-decoration: none; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); display: flex; flex-direction: column; gap: 6px; transition: background .18s; position: relative; }
.cml-item:nth-child(3n) { border-right: none; }
.cml-item:nth-child(n+4) { border-bottom: none; }
.cml-item::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--cr); border-radius: 0 2px 2px 0; transform: scaleY(0); transform-origin: center; transition: transform .25s; }
.cml-item:hover { background: var(--cream); }
.cml-item:hover::before, .cml-item.active::before { transform: scaleY(1); }
.cml-item.active { background: #f9edf0; }
.cml-name { font-size: 15px; font-weight: 600; color: var(--deep); line-height: 1.3; }
.cml-item.active .cml-name { color: var(--cr); }
.cml-count { font-size: 12px; color: var(--muted); }

/* ══ ARTYKUŁY ══ */
.arts-section { background: #e8dfd0; padding-bottom: 64px; border-top: 3px solid var(--cr); box-shadow: inset 0 -1px 0 var(--border); }
.arts-section .fw-hd { padding-top: 48px; }
.arts-section .fw-ttl { font-size: 34px; }
.arts-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }

/* Karta artykułu — tekstowa z autorem i excerptą (1:1 z final-8.html) */
.art-fw-card { background: var(--white); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; text-decoration: none; display: flex; flex-direction: column; transition: box-shadow .3s, transform .25s, border-color .25s; position: relative; padding: 28px 26px 24px; }
.art-fw-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--cr); transform: scaleX(0); transform-origin: left; transition: transform .3s; z-index: 1; }
.art-fw-card:hover { box-shadow: 0 8px 36px rgba(79,23,37,.14); transform: translateY(-5px); border-color: #c0a888; }
.art-fw-card:hover::before { transform: scaleX(1); }

.art-fw-body { display: flex; flex-direction: column; flex: 1; }
.art-fw-top { margin-bottom: 14px; }
.art-fw-tag { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cr); background: #f9edf0; padding: 3px 9px; border-radius: 4px; display: inline-block; }
.art-fw-title { font-family: var(--serif); font-size: 19px; font-weight: 600; color: var(--deep); line-height: 1.35; letter-spacing: -.01em; margin-top: 12px; margin-bottom: 10px; }
.art-fw-excerpt { font-size: 13px; color: var(--muted); line-height: 1.65; flex: 1; margin-bottom: 20px; }
.art-fw-foot { font-size: 11.5px; color: var(--muted); font-weight: 500; padding-top: 14px; margin-top: auto; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; }
.art-fw-author { display: flex; align-items: center; gap: 7px; }
.art-fw-author-dot { width: 22px; height: 22px; border-radius: 50%; background: var(--beige); border: 1.5px solid var(--border); flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-family: var(--serif); font-size: 11px; font-weight: 600; color: var(--muted); }
.art-fw-author-name { font-size: 12px; color: var(--muted); font-weight: 500; }

/* ══ SEPARATOR ══ */
.light-bridge { background: var(--warm); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 44px 32px; text-align: center; }
.light-bridge-inner { max-width: 680px; margin: 0 auto; }
.light-bridge blockquote { font-family: var(--serif); font-size: clamp(19px, 2.2vw, 26px); font-weight: 300; font-style: italic; color: var(--deep); line-height: 1.6; letter-spacing: -.01em; }
.light-bridge cite { display: block; margin-top: 16px; font-size: 11px; font-style: normal; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); font-weight: 600; }

/* ══ PORADNIA ══ */
.poradnia-full { background: linear-gradient(135deg, #4f1725 0%, #3a1020 50%, #2d0c18 100%); position: relative; overflow: hidden; padding: 64px 0; }
.poradnia-full::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 15% 50%, rgba(192,57,43,.28) 0%, transparent 50%), radial-gradient(ellipse at 85% 40%, rgba(184,146,74,.1) 0%, transparent 45%); pointer-events: none; }
.poradnia-full-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; position: relative; z-index: 1; }
.poradnia-full-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.poradnia-full-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--gold-lt); }
.poradnia-full-ttl { font-family: var(--serif); font-size: clamp(30px, 3vw, 46px); font-weight: 300; color: var(--white); line-height: 1.15; margin-bottom: 18px; letter-spacing: -.02em; }
.poradnia-full-ttl em { font-style: italic; color: #f0c89a; font-weight: 300; }
.poradnia-full-desc { font-size: 15px; color: #b0a090; line-height: 1.75; margin-bottom: 32px; }
.btn-poradnia-big { display: inline-flex; align-items: center; gap: 8px; background: var(--cr); color: var(--white); font-size: 14px; font-weight: 600; letter-spacing: .04em; padding: 14px 32px; border-radius: 8px; text-decoration: none; transition: background .2s, transform .15s; }
.btn-poradnia-big:hover { background: #7a1530; transform: translateY(-2px); }
.poradnia-full-right { display: flex; flex-direction: column; gap: 16px; }
.poradnia-odp-label { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 4px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.08); }
.poradnia-odp-grid { display: flex; flex-direction: column; gap: 14px; }
.poradnia-odp-item { display: flex; gap: 18px; align-items: flex-start; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.09); border-radius: 14px; padding: 22px 24px; }
.poradnia-odp-icon { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; margin-top: 6px; background: var(--gold-lt); box-shadow: 0 0 0 3px rgba(212,170,106,.2); }
.poradnia-odp-name { font-size: 16px; font-weight: 600; color: var(--white); margin-bottom: 6px; font-family: var(--serif); letter-spacing: -.01em; }
.poradnia-odp-desc { font-size: 13px; color: #907870; line-height: 1.65; }

/* ══ REKOLEKCJE ══ */
.page-title-wrap { max-width: 1300px; margin: 0 auto; padding: 40px 32px 0; }
.page-title { font-family: var(--serif); font-size: clamp(26px, 3vw, 40px); font-weight: 300; color: var(--deep); letter-spacing: -.02em; line-height: 1.15; }
.page-title em { font-style: italic; color: var(--cr); }
.rek-section { padding: 28px 0 80px; }
.rek-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; }
.rek-section-hd { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 36px; }
.rek-section-ttl { font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--deep); letter-spacing: -.01em; display: flex; align-items: center; gap: 12px; }
.rek-section-ttl::before { content: ''; width: 4px; height: 28px; background: var(--cr); border-radius: 2px; flex-shrink: 0; }
.rek-section-note { font-size: 13px; color: var(--muted); }
.month-sep { display: flex; align-items: center; gap: 14px; margin: 36px 0 16px; font-family: var(--serif); font-size: 20px; font-weight: 600; color: var(--deep); letter-spacing: -.01em; }
.month-sep:first-of-type { margin-top: 0; }
.month-sep::after { content: ''; flex: 1; height: 1px; background: var(--border); }
.month-sep-year { font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); margin-left: 4px; }
.rek-row { display: grid; grid-template-columns: 72px 1fr auto; gap: 0 24px; align-items: stretch; background: var(--white); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 10px; overflow: hidden; transition: box-shadow .22s, border-color .22s, transform .18s; position: relative; }
.rek-row::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--cr); transform: scaleY(0); transform-origin: center; transition: transform .22s; }
.rek-row:hover { box-shadow: var(--shadow); border-color: #c8b090; transform: translateY(-2px); }
.rek-row:hover::before { transform: scaleY(1); }
.rek-row:last-child { margin-bottom: 0; }
.rr-date { background: var(--cr); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 14px 8px; flex-shrink: 0; }
.rr-day { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--white); line-height: 1; }
.rr-mon { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.8); margin-top: 3px; }
.rr-year { font-size: 9px; color: rgba(255,255,255,.45); margin-top: 2px; letter-spacing: .04em; }
.rr-body { padding: 16px 0; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.rr-typ { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); margin-bottom: 2px; }
.rr-title { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--deep); line-height: 1.3; letter-spacing: -.01em; }
.rr-place { font-size: 13px; color: var(--muted); margin-top: 2px; }
.rr-place-pin { opacity: .55; margin-right: 3px; font-size: 11px; }
.rr-action { padding: 16px 22px; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 6px; border-left: 1px solid var(--border); min-width: 190px; }
.rr-btn { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 600; letter-spacing: .03em; padding: 8px 18px; border-radius: 6px; text-decoration: none; white-space: nowrap; transition: background .16s, transform .12s; }
.rr-btn-www { background: var(--cr); color: var(--white); }
.rr-btn-www:hover { background: #a02d22; transform: translateY(-1px); }
.rr-btn-mail { background: transparent; color: var(--cr); border: 1.5px solid var(--cr); }
.rr-btn-mail:hover { background: var(--cr); color: var(--white); }
.rr-addr { font-size: 11px; color: var(--muted); text-align: right; word-break: break-all; line-height: 1.4; max-width: 160px; }
.quote-bridge { background: var(--warm); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 44px 32px; text-align: center; }
.quote-bridge-inner { max-width: 680px; margin: 0 auto; }
.quote-bridge blockquote { font-family: var(--serif); font-size: clamp(18px, 2.2vw, 24px); font-weight: 300; font-style: italic; color: var(--deep); line-height: 1.65; letter-spacing: -.01em; }
.quote-bridge cite { display: block; margin-top: 16px; font-size: 11px; font-style: normal; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); font-weight: 600; }

/* ══ KURSY ══ */
.kursy-section { background: var(--warm); border-top: 1px solid var(--border); padding: 64px 0; }
.kursy-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; }
.kursy-hd { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: end; margin-bottom: 40px; }
.kursy-ttl { font-family: var(--serif); font-size: 36px; font-weight: 300; color: var(--deep); letter-spacing: -.02em; line-height: 1.15; }
.kursy-ttl em { font-style: italic; color: var(--cr); }
.kursy-ttl small { display: block; font-family: var(--sans); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; font-weight: 600; font-style: normal; }
.kursy-sub { font-size: 14.5px; color: var(--muted); line-height: 1.7; align-self: end; }
.kursy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 32px; }
.kurs-card { background: var(--white); border: 1px solid var(--border); border-radius: 14px; padding: 28px 24px; text-decoration: none; display: flex; flex-direction: column; transition: box-shadow .25s, transform .2s; position: relative; overflow: hidden; }
.kurs-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.kurs-card:hover { box-shadow: var(--shadow); transform: translateY(-4px); }
.kurs-card:hover::before { transform: scaleX(1); }
.kurs-num { font-family: var(--serif); font-size: 42px; font-weight: 300; color: var(--beige); line-height: 1; margin-bottom: 14px; letter-spacing: -.02em; }
.kurs-tag { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.kurs-card h3 { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--deep); line-height: 1.3; flex: 1; }
.kurs-card p { font-size: 13px; color: var(--muted); line-height: 1.65; margin-top: 10px; }
.kursy-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 24px; border-top: 1px solid var(--border); }
.kursy-footer-note { font-size: 13.5px; color: var(--muted); }
.kursy-footer-note strong { color: var(--deep); font-weight: 600; }
.btn-kursy { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--deep); background: var(--white); border: 1.5px solid var(--border); padding: 10px 22px; border-radius: 7px; text-decoration: none; transition: border-color .2s, background .2s, color .2s; letter-spacing: .02em; }
.btn-kursy:hover { border-color: var(--gold); background: var(--cream); color: var(--cr); }

/* ══ PARTNERZY ══ */
.partners-section { padding: 48px 0 0; background: var(--cream); }
.partners-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; }
.partners-hd { display: flex; align-items: center; margin-bottom: 20px; }
.partners-ttl { font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--deep); display: flex; align-items: center; gap: 10px; }
.partners-ttl::before { content: ''; width: 4px; height: 20px; background: var(--gold); border-radius: 2px; }
.partners-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 48px; }
.partner-tile { background: var(--white); border: 1px solid var(--border); border-radius: 12px; padding: 22px 24px; text-decoration: none; display: flex; flex-direction: column; gap: 6px; transition: box-shadow .2s, transform .2s, border-color .2s; position: relative; overflow: hidden; }
.partner-tile:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); border-color: #c0a888; }
.partner-tile::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; transition: opacity .2s; }
.partner-tile:nth-child(1)::before { background: #7a3060; }
.partner-tile:nth-child(2)::before { background: #2a5038; }
.partner-tile:nth-child(3)::before { background: #a8843a; }
.partner-tile:nth-child(4)::before { background: #9b1c3a; }
.partner-cat { font-size: 9.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.partner-name { font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--deep); line-height: 1.2; }
.partner-url { font-size: 12px; color: var(--muted); margin-top: 2px; }

/* ══ ADS ══ */
.ads-bar { background: var(--white); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 20px 0; }
.ads-bar-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; }
.ads-label { font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; color: #c0b0a0; font-weight: 600; text-align: center; margin-bottom: 12px; }
.ads-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ad-box { background: var(--warm); border: 1px dashed var(--border); border-radius: 10px; height: 90px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-decoration: none; transition: border-color .2s; }
.ad-box:hover { border-color: var(--gold); }
.ad-box-name { font-size: 13px; font-weight: 600; color: var(--deep); }
.ad-box-desc { font-size: 11px; color: var(--muted); }

/* ══ FOOTER ══ */
footer { background: var(--deep); padding: 56px 0 0; color: #b0a090; }
.footer-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; }
.footer-logo-text { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--white); letter-spacing: -.01em; margin-bottom: 4px; }
.footer-logo-sub { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 18px; }
.footer-desc { font-size: 13px; line-height: 1.7; color: #907870; max-width: 280px; }
.footer-col-ttl { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 16px; }
.footer-links { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-links a { font-size: 13.5px; color: #907870; text-decoration: none; transition: color .2s; }
.footer-links a:hover { color: var(--white); }
.footer-bottom { max-width: 1300px; margin: 48px auto 0; padding: 20px 32px; border-top: 1px solid rgba(255,255,255,.07); display: flex; align-items: center; justify-content: space-between; font-size: 12px; color: #6a5a50; }

/* ══ NEWSLETTER ══ */
.newsletter-section { background: #4f1725; padding: 64px 0; position: relative; overflow: hidden; border-bottom: 3px solid var(--cr); }
.newsletter-section::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 5% 50%, rgba(168,132,58,.14) 0%, transparent 50%), radial-gradient(ellipse at 95% 50%, rgba(155,28,58,.14) 0%, transparent 50%); pointer-events: none; }
.newsletter-inner { max-width: 1300px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; position: relative; z-index: 1; }
.newsletter-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-lt); margin-bottom: 16px; display: flex; align-items: center; gap: 10px; }
.newsletter-eyebrow::before { content: ''; width: 24px; height: 1px; background: var(--gold-lt); }
.newsletter-ttl { font-family: var(--serif); font-size: clamp(28px, 2.8vw, 42px); font-weight: 300; color: var(--white); line-height: 1.2; margin-bottom: 16px; letter-spacing: -.02em; }
.newsletter-ttl em { font-style: italic; color: #f0c89a; font-weight: 300; }
.newsletter-desc { font-size: 14.5px; color: #b0a090; line-height: 1.75; margin-bottom: 24px; }
.newsletter-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.newsletter-list li { font-size: 13.5px; color: #907870; display: flex; align-items: center; gap: 10px; }
.newsletter-list li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gold-lt); flex-shrink: 0; }
.newsletter-freq { font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--gold-lt); letter-spacing: -.01em; }
.newsletter-right { display: flex; flex-direction: column; justify-content: center; }
.newsletter-form-wrap { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09); border-radius: 16px; padding: 36px 32px; }
.newsletter-form-label { font-family: var(--serif); font-size: 20px; font-weight: 600; color: var(--white); margin-bottom: 20px; letter-spacing: -.01em; }
.newsletter-form { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.newsletter-input { font-family: var(--sans); font-size: 14px; padding: 13px 18px; border-radius: 8px; border: 1.5px solid rgba(255,255,255,.12); background: rgba(255,255,255,.07); color: var(--white); outline: none; transition: border-color .2s, background .2s; }
.newsletter-input::placeholder { color: #6a5a50; }
.newsletter-input:focus { border-color: var(--gold-lt); background: rgba(255,255,255,.1); }
.newsletter-btn { font-family: var(--sans); font-size: 14px; font-weight: 600; padding: 13px 24px; border-radius: 8px; background: var(--cr); color: var(--white); border: none; cursor: pointer; letter-spacing: .03em; transition: background .2s, transform .15s; }
.newsletter-btn:hover { background: #7a1530; transform: translateY(-1px); }
.newsletter-note { font-size: 11.5px; color: #6a5a50; line-height: 1.6; }
.newsletter-unsub { color: #b0a090; font-weight: 600; font-size: 12px; }
.newsletter-success { display: none; text-align: center; padding: 28px 0; }
.newsletter-success-icon { font-size: 36px; margin-bottom: 12px; }
.newsletter-success-ttl { font-family: var(--serif); font-size: 22px; font-weight: 600; color: var(--white); margin-bottom: 8px; }
.newsletter-success-note { font-size: 13.5px; color: #907870; }

@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.hero-left > * { animation: fadeUp .6s ease both; }
.hero-left > *:nth-child(1) { animation-delay: .05s; }
.hero-left > *:nth-child(2) { animation-delay: .15s; }
.hero-left > *:nth-child(3) { animation-delay: .25s; }
.hero-left > *:nth-child(4) { animation-delay: .35s; }
.hero-left > *:nth-child(5) { animation-delay: .42s; }

/* ══ HAMBURGER MENU ══ */
.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  background: none; border: none; cursor: pointer;
  padding: 6px; border-radius: 6px;
  color: var(--deep); transition: background .2s;
  flex-shrink: 0;
}
.nav-toggle:hover { background: var(--cream); }
.nav-toggle svg { display: block; }
/* Overlay za menu */
.nav-overlay {
  display: none;
  position: fixed; inset: 0; z-index: 198;
  background: rgba(30,13,7,.55);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
.nav-overlay.active { display: block; }

/* ── RESPONSYWNOŚĆ ─────────────────────────────────────── */

/* ── 980px — tablet poziomy ── */
@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; }
  .hero-right { border-left: none; border-top: 1px solid rgba(255,255,255,.08); }
  .arts-grid, .kursy-grid, .ads-row, .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .cats-main-grid { grid-template-columns: repeat(2, 1fr); }
  .cml-item:nth-child(3n) { border-right: 1px solid var(--border); }
  .cml-item:nth-child(2n) { border-right: none; }
  .rek-row { grid-template-columns: 60px 1fr; }
  .rr-action { display: none; }
  .poradnia-full-inner, .newsletter-inner, .kursy-hd { grid-template-columns: 1fr; gap: 32px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 32px; }
}

/* ── 768px — tablet pionowy ── */
@media (max-width: 768px) {
  .hero { grid-template-columns: 1fr; }
  .hero-right { display: none; }           /* na tablecie right panel niepotrzebny */
  .hero-left { padding: 48px 32px; }
  .hero h1 { font-size: clamp(32px, 5vw, 48px); }
  .arts-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .kursy-grid { grid-template-columns: repeat(2, 1fr); }
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .ads-row { grid-template-columns: repeat(2, 1fr); }
  .rek-inner { padding: 0 16px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 28px; }
  .poradnia-full-inner { grid-template-columns: 1fr; gap: 24px; }
  .newsletter-inner { grid-template-columns: 1fr; gap: 32px; }
  .kursy-hd { grid-template-columns: 1fr; }
  .support-section .support-grid,
  .why-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .fw-inner { padding: 0 24px; }
  .fw-hd { flex-wrap: wrap; gap: 12px; }

  /* Kategorie — zawijane kafelki (pigułki) zamiast poziomego scrolla */
  .cats-section { position: static; top: auto; }
  .cats-inner { flex-wrap: wrap; overflow: visible; gap: 8px; padding: 12px 16px; }
  .cat-chip { border: 1.5px solid var(--border); border-radius: 999px; padding: 9px 15px; background: var(--white); min-height: 40px; }
  .cat-chip:hover { background: var(--cream); border-color: var(--beige); }
  .cat-chip.active { background: var(--cr); color: #fff; border-color: var(--cr); }
}

/* ── 600px — telefon duży ── */
@media (max-width: 600px) {
  /* Topbar — statyczny na mobile, nie nakłada się */
  .topbar { padding: 6px 16px; font-size: 10px; position: static; }
  .topbar-note { display: none; }
  /* Header sticky od góry (topbar już statyczny) */
  header { top: 0; }
  .nav-wrap { padding: 0 16px; height: 60px; }

  /* Hamburger widoczny */
  .nav-toggle { display: flex; }

  /* Nav jako slide-in drawer */
  nav {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    position: fixed; top: 0; right: -340px; bottom: 0;
    width: min(300px, 84vw); z-index: 200;
    background: var(--white);
    padding: 64px 0 24px;
    box-shadow: -4px 0 32px rgba(30,13,7,.18);
    overflow-y: auto;
    transition: right .3s cubic-bezier(.4,0,.2,1);
    gap: 0;
  }
  nav.open { right: 0; }
  nav a { padding: 14px 24px; border-radius: 0; font-size: 15px; border-bottom: 1px solid var(--border); text-align: left; white-space: normal; }
  nav a:last-child { border-bottom: none; }

  /* Przycisk zamknięcia szuflady */
  .nav-close {
    display: flex; align-items: center; justify-content: center;
    position: absolute; top: 10px; right: 10px;
    width: 40px; height: 40px;
    border: none; background: var(--cream); color: var(--deep);
    border-radius: 8px; font-size: 18px; line-height: 1; cursor: pointer;
  }
  .nav-close:active { background: var(--beige); }

  /* Search + CTA  */
  .search-wrap { display: none; }

  /* Wyszukiwarka w menu-szufladzie (mobile) */
  .nav-search-mobile { display: flex; gap: 8px; padding: 0 24px 16px; margin-bottom: 4px; border-bottom: 1px solid var(--border); }
  .nav-search-mobile input { flex: 1; min-width: 0; font-family: var(--sans); font-size: 15px; padding: 10px 14px; border: 1.5px solid var(--border); border-radius: 10px; background: var(--cream); color: var(--deep); outline: none; }
  .nav-search-mobile input:focus { border-color: var(--cr); }
  .nav-search-mobile button { flex-shrink: 0; border: none; background: var(--cr); color: #fff; border-radius: 10px; padding: 0 14px; font-size: 16px; cursor: pointer; }
  .nav-cta { margin-left: auto; }
  .btn-solid { padding: 8px 14px; font-size: 12px; }

  /* Pasek kategorii sticky od 60px (tylko header) */
  .cats-section { top: 60px; }

  /* Hero */
  .hero-left { padding: 36px 20px; }
  .hero-stats { gap: 0; flex-wrap: wrap; }
  .stat-item { padding-right: 20px; }
  .stat-item + .stat-item { padding-left: 20px; }

  /* Grids */
  .arts-grid, .kursy-grid, .partners-grid, .ads-row { grid-template-columns: 1fr; }
  .cats-main-grid { grid-template-columns: 1fr; }
  .cml-item { border-right: none !important; }
  .footer-inner { grid-template-columns: 1fr; }

  /* Touch targets — min 44px wysokości */
  .btn-solid, .btn-poradnia-big, .hero-btn-primary, .btn-kursy {
    min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
  }
  /* CTA w nagłówku — kompaktowy, bez łamania tekstu */
  .nav-cta .btn-solid { min-height: 36px; padding: 7px 12px; font-size: 11.5px; white-space: nowrap; }

  /* Newsletter */
  .newsletter-form-wrap { padding: 28px 20px; }

  /* Rekolekcje list */
  .rek-row { grid-template-columns: 56px 1fr; }
  .rr-action { display: none; }
  .page-title-wrap { padding: 24px 16px 0; }
  .kursy-inner, .partners-inner, .ads-bar-inner { padding: 0 16px; }
  .fw-inner { padding: 0 16px; }
  .footer-inner { padding: 0 16px; }
  .footer-bottom { padding: 16px; }
  .support-section .support-inner { padding: 0 16px; }
  .why-inner { padding: 0 16px; }

  /* Poradnia CTA sekcja */
  .poradnia-full-inner { padding: 0 20px; gap: 24px; }
}

/* ── 400px — małe telefony ── */
@media (max-width: 400px) {
  .hero h1 { font-size: clamp(28px, 8vw, 36px); }
  .hero-eyebrow { font-size: 10px; }
  .hero-desc { font-size: 13.5px; }
  .retreats-ttl { font-size: 28px; }
  .kursy-ttl { font-size: 28px; }
  .art-fw-card { padding: 20px 18px 18px; }
  .newsletter-form-wrap { padding: 22px 16px; }
}

/* ══ BREADCRUMB — used on all subpages ══ */
.breadcrumb-bar {
  background: var(--white);
  border-bottom: 1px solid var(--border);
  padding: 10px 0;
}
.breadcrumb-inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--muted);
  list-style: none;
}
.breadcrumb-inner a { color: var(--muted); text-decoration: none; transition: color .2s; }
.breadcrumb-inner a:hover { color: var(--cr); }
.breadcrumb-sep { color: var(--border); font-size: 10px; }
.breadcrumb-current { color: var(--deep); font-weight: 500; }
