/* ========================================
   Enter BHP – Main Stylesheet v2
   Fonty są ładowane w <head> (header.php) z non-blocking pattern.
   ======================================== */

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color: #111827;
  background: #fff;
  line-height: 1.6;
}
h1, h2, h3, h4, h5, h6 { letter-spacing: -0.025em; line-height: 1.15; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
button { cursor: pointer; font-family: inherit; }

/* ---- Variables ---- */
:root {
  --green-50:   #f0fdf4;
  --green-100:  #dcfce7;
  --green-200:  #bbf7d0;
  --green-400:  #4ade80;
  --green-500:  #22c55e;
  --green-600:  #16a34a;
  --green-700:  #15803d;
  --emerald-500:#10b981;
  --gray-50:    #f9fafb;
  --gray-100:   #f3f4f6;
  --gray-200:   #e5e7eb;
  --gray-300:   #d1d5db;
  --gray-400:   #9ca3af;
  --gray-500:   #6b7280;
  --gray-600:   #4b5563;
  --gray-700:   #374151;
  --gray-800:   #1f2937;
  --gray-900:   #111827;
  --blue-600:   #2563eb;
  --orange-600: #ea580c;
  --red-600:    #dc2626;
  --purple-600: #9333ea;
  --yellow-600: #ca8a04;
  --rose-600:   #e11d48;
}

/* ---- Container ---- */
.container { width: 100%; max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width:640px)  { .container { padding: 0 1.5rem; } }
@media (min-width:1024px) { .container { padding: 0 2rem;   } }
.container-md { max-width: 52rem; }
.text-center  { text-align: center; }

/* ---- Animations ---- */
@keyframes fadeInUp  { from { opacity:0; transform:translateY(40px); } to { opacity:1; transform:none; } }
@keyframes fadeIn    { from { opacity:0; } to { opacity:1; } }
@keyframes scaleIn   { from { opacity:0; transform:scale(0.9); } to { opacity:1; transform:scale(1); } }
@keyframes spin      { to { transform: rotate(360deg); } }
@keyframes pulseGlow { 0%,100% { opacity:.5; } 50% { opacity:1; } }

.animate-fade-up  { animation: fadeInUp  0.8s cubic-bezier(0.22,1,0.36,1) both; }
.animate-fade-in  { animation: fadeIn    0.6s ease both; }
.animate-scale-in { animation: scaleIn   0.6s cubic-bezier(0.22,1,0.36,1) both; }

.delay-100 { animation-delay:.1s; }
.delay-200 { animation-delay:.2s; }
.delay-300 { animation-delay:.3s; }
.delay-400 { animation-delay:.4s; }

.reveal { opacity:0; transform:translateY(36px); transition: opacity .8s cubic-bezier(0.22,1,0.36,1), transform .8s cubic-bezier(0.22,1,0.36,1); }
.reveal.visible { opacity:1; transform:none; }
.reveal.delay-1 { transition-delay:.1s; }
.reveal.delay-2 { transition-delay:.2s; }
.reveal.delay-3 { transition-delay:.3s; }
.reveal.delay-4 { transition-delay:.4s; }
.reveal.delay-5 { transition-delay:.5s; }

/* ===================================
   FUNDING BAR (UE / Śląskie logotypy)
   =================================== */
:root { --funding-bar-h: 72px; }
.funding-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 101;
  background: #fff;
  border-bottom: 1px solid var(--gray-100, #f3f4f6);
  display: flex; justify-content: center; align-items: center;
  padding: .5rem 1rem;
  height: var(--funding-bar-h);
  transition: transform .35s ease, opacity .35s ease;
}
body.has-funding-bar.scrolled .funding-bar {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}
.funding-bar img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
body.has-funding-bar { padding-top: var(--funding-bar-h); }
@media (max-width: 640px) {
  :root { --funding-bar-h: 48px; }
  .funding-bar { padding: .375rem .5rem; }
}

/* Footer variant — normal flow, above dark <footer> */
.funding-bar-footer {
  background: #fff;
  border-top: 1px solid var(--gray-100, #f3f4f6);
  display: flex; justify-content: center; align-items: center;
  padding: 1.25rem 1rem;
}
.funding-bar-footer img {
  display: block;
  width: 100%;
  max-width: 1100px;
  height: auto;
  max-height: 90px;
  object-fit: contain;
}
@media (max-width: 640px) {
  .funding-bar-footer { padding: .875rem .75rem; }
  .funding-bar-footer img { max-height: 56px; }
}

/* ===================================
   NAVIGATION
   =================================== */
.nav {
  position: fixed; top: 0; left:0; right:0; z-index:100;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(229,231,235,.5);
  transition: background .3s, box-shadow .3s, top .35s ease;
}
body.has-funding-bar .nav { top: var(--funding-bar-h); }
body.has-funding-bar.scrolled .nav { top: 0; }
.nav.scrolled { background: rgba(255,255,255,.97); box-shadow: 0 1px 30px rgba(0,0,0,.06); }

.nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 4.5rem; padding: 0 1.5rem;
  max-width: 80rem; margin: 0 auto;
}

/* --- Logo --- */
.nav-logo {
  display: flex; align-items: center; gap: .625rem;
  text-decoration: none; flex-shrink: 0;
}
.nav-logo-img {
  display: block;
  height: 48px; width: auto;
  object-fit: contain;
}
.nav-logo-text {
  font-family: 'Montserrat', 'Inter', sans-serif;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--gray-900);
  letter-spacing: -.01em;
  line-height: 1;
  white-space: nowrap;
}
.nav-logo-text strong {
  font-weight: 900;
  color: var(--green-600);
}

/* --- Desktop links --- */
.nav-links { display: none; list-style: none; gap: .125rem; align-items: center; }
@media (min-width:768px) { .nav-links { display: flex; } }
.nav-links a {
  display: block; padding: .5rem .875rem;
  font-size: .875rem; font-weight: 500; color: var(--gray-600);
  border-radius: .625rem; transition: color .2s, background .2s;
}
.nav-links a:hover,
.nav-links a.active { color: var(--gray-900); background: var(--gray-100); }

/* --- CTA button --- */
.nav-cta {
  display: none;
  padding: .625rem 1.25rem;
  background: var(--green-600); color: #fff;
  font-size: .875rem; font-weight: 600;
  border-radius: .75rem; border: none;
  transition: background .2s, box-shadow .2s, transform .15s;
  white-space: nowrap;
}
.nav-cta:hover { background: var(--green-700); box-shadow: 0 6px 20px rgba(22,163,74,.3); }
@media (min-width:768px) { .nav-cta { display: inline-block; } }

/* --- Social icons (desktop, in nav-links) --- */
.nav-social-item { display: flex; align-items: center; margin-left: .25rem; }
.nav-social-item:first-of-type { margin-left: .75rem; }
.nav-links a.nav-social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--gray-500);
  font-size: 1.25rem;
  transition: color .2s, transform .2s;
}
.nav-links a.nav-social-link:hover {
  background: transparent;
  color: var(--green-600);
  transform: translateY(-2px);
}

/* --- Social icons (mobile menu) --- */
.nav-mobile-social {
  display: flex; gap: .75rem; justify-content: center;
  padding: 1rem 0 .25rem;
  margin-top: .5rem;
  border-top: 1px solid var(--gray-100);
}
.nav-mobile-social a {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0 !important;
  border-radius: 50%;
  background: var(--gray-100); color: var(--gray-600) !important;
  font-size: 1rem;
}
.nav-mobile-social a:hover { background: var(--green-600); color: #fff !important; }

/* --- Hamburger --- */
.nav-hamburger {
  display: flex; flex-direction: column; gap: 5px;
  padding: .5rem; background: none; border: none; cursor: pointer;
}
@media (min-width:768px) { .nav-hamburger { display: none; } }
.nav-hamburger span { display: block; width: 22px; height: 2px; background: var(--gray-700); border-radius: 2px; transition: all .3s ease; }
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Mobile menu --- */
.nav-mobile {
  display: none; flex-direction: column; gap: .25rem;
  padding: 1rem 1.5rem 1.5rem;
  border-top: 1px solid var(--gray-100); list-style: none;
  background: rgba(255,255,255,.98);
}
.nav-mobile.open { display: flex; }
.nav-mobile a {
  display: block; padding: .75rem 1rem;
  font-size: 1rem; font-weight: 500; color: var(--gray-700);
  border-radius: .75rem; transition: background .2s, color .2s;
}
.nav-mobile a:hover { background: var(--gray-50); color: var(--green-600); }
.nav-mobile .mobile-cta {
  margin-top: .5rem; padding: .875rem 1rem;
  background: var(--green-600); color: #fff;
  text-align: center; border-radius: .75rem; font-weight: 600;
}
.nav-mobile .mobile-cta:hover { background: var(--green-700); }

/* ===================================
   BADGE / PILL
   =================================== */
.badge {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .5rem 1.25rem;
  background: rgba(22,163,74,.08);
  border: 1px solid rgba(22,163,74,.2);
  border-radius: 9999px;
  font-size: .8rem; font-weight: 600;
  color: var(--green-600);
  letter-spacing: .06em;
  backdrop-filter: blur(8px);
}
.badge-light {
  background: rgba(34,197,94,.1);
  border-color: rgba(34,197,94,.2);
  color: #4ade80;
}

/* ===================================
   BUTTONS
   =================================== */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: .625rem; padding: .9375rem 1.875rem;
  font-size: .9375rem; font-weight: 500;
  border-radius: .875rem; border: none;
  transition: all .3s ease; cursor: pointer;
  white-space: nowrap; font-family: inherit;
}
.btn-primary { background: var(--green-600); color: #fff; box-shadow: 0 4px 14px rgba(22,163,74,.25); }
.btn-primary:hover { background: var(--green-700); box-shadow: 0 8px 28px rgba(22,163,74,.35); transform: translateY(-1px) scale(1.015); }
.btn-primary:active { transform: scale(.98); }
.btn-outline { background: #fff; color: var(--gray-900); border: 2px solid var(--gray-200); }
.btn-outline:hover { border-color: var(--gray-300); box-shadow: 0 4px 18px rgba(0,0,0,.08); transform: translateY(-1px); }
.btn-white  { background: #fff; color: var(--gray-900); font-weight: 600; }
.btn-white:hover { background: var(--gray-100); transform: scale(1.02); }
.btn-lg { padding: 1.125rem 2.25rem; font-size: 1.0625rem; }
.btn-icon-right { transition: transform .3s ease; }
.btn:hover .btn-icon-right { transform: translateX(3px); }

/* ===================================
   CARDS
   =================================== */
.card {
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(20px);
  border: 1.5px solid rgba(229,231,235,.6);
  border-radius: 1.5rem;
  padding: 2rem;
  transition: all .4s ease;
  position: relative; overflow: hidden;
}
.card::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(22,163,74,.04), transparent);
  opacity: 0; transition: opacity .4s ease; pointer-events: none;
  border-radius: inherit;
}
.card:hover { border-color: var(--gray-300); box-shadow: 0 16px 48px rgba(0,0,0,.09); transform: translateY(-4px); }
.card:hover::before { opacity: 1; }
.card h3 { font-size: 1.25rem; font-weight: 600; color: var(--gray-900); margin-bottom: .75rem; }
.card p  { color: var(--gray-600); font-weight: 300; line-height: 1.72; font-size: .9375rem; }

/* Font Awesome icon in card */
.card-fa-icon {
  width: 3.5rem; height: 3.5rem;
  border-radius: .875rem;
  background: rgba(22,163,74,.08);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 1.5rem;
  transition: transform .4s ease, background .3s ease;
  color: var(--icon-color, var(--green-600));
  font-size: 1.5rem;
}
.card:hover .card-fa-icon { transform: scale(1.1) rotate(5deg); background: rgba(22,163,74,.14); }

/* ===================================
   SECTIONS
   =================================== */
.section    { padding: 5rem 0; }
.section-sm { padding: 3rem 0; }
.section-lg { padding: 7rem 0; }

.section-header { margin-bottom: 4rem; }
.section-header h2 { font-size: clamp(1.875rem,4.5vw,3rem); font-weight: 700; color: var(--gray-900); margin-bottom: 1rem; }
.section-header p  { font-size: 1.0625rem; color: var(--gray-500); font-weight: 300; max-width: 40rem; margin: 0 auto; line-height: 1.75; }

/* Dark section */
.section-dark { background: linear-gradient(135deg, var(--gray-900), var(--gray-800)); position: relative; overflow: hidden; }
.section-dark::before { content:''; position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, rgba(34,197,94,.1), transparent 70%); pointer-events:none; }
.section-dark .section-header h2 { color: #fff; }
.section-dark .section-header p  { color: var(--gray-300); }

/* ===================================
   GRIDS
   =================================== */
.grid-3 { display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media(min-width:768px)  { .grid-3 { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .grid-3 { grid-template-columns:repeat(3,1fr); } }

.grid-4 { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:640px)  { .grid-4 { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .grid-4 { grid-template-columns:repeat(4,1fr); } }

/* ===================================
   HERO
   =================================== */
.hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: 7rem 1rem 4rem; overflow: hidden;
}
.hero::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 30% 20%, rgba(22,163,74,.04), transparent 50%),
    radial-gradient(circle at 70% 60%, rgba(34,197,94,.03), transparent 50%);
}
.hero-content { text-align:center; max-width:72rem; width:100%; }
.hero h1 {
  font-size: clamp(2.75rem,8vw,6.75rem);
  font-weight: 700; margin: 1.5rem 0 2.5rem; line-height: 1.06;
}
.line-dark {
  display: block;
  background: linear-gradient(135deg, var(--gray-900), var(--gray-800), var(--gray-600));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.line-green {
  display: block;
  background: linear-gradient(90deg, var(--green-600), var(--emerald-500));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.hero-lead { font-size: clamp(1rem,2.5vw,1.25rem); color: var(--gray-500); font-weight: 300; max-width: 50rem; margin: 0 auto 3rem; line-height: 1.8; }
.hero-actions { display:flex; flex-direction:column; gap:.875rem; justify-content:center; align-items:stretch; }
@media(min-width:480px) { .hero-actions { flex-direction:row; align-items:center; } }

/* ===================================
   PDCA CARDS
   =================================== */
.pdca-card {
  background: rgba(31,41,55,.5);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(55,65,81,.5);
  border-radius: 1.5rem; padding: 2rem;
  text-align: center;
  transition: all .5s ease;
}
.pdca-card:hover { border-color: rgba(34,197,94,.5); box-shadow: 0 20px 50px rgba(34,197,94,.15); transform: translateY(-8px); }
.pdca-icon {
  width:4rem; height:4rem;
  background: linear-gradient(135deg, var(--green-500), var(--emerald-500));
  border-radius: 1rem; display:flex; align-items:center; justify-content:center;
  margin: 0 auto 1.5rem; color: #fff;
  transition: transform .5s ease;
}
.pdca-card:hover .pdca-icon { transform: scale(1.1) rotate(6deg); }
.pdca-card h3 { font-size:1.25rem; font-weight:700; color:#fff; margin-bottom:.5rem; }
.pdca-card p  { color: var(--gray-400); font-weight:300; font-size:.9rem; }

/* ===================================
   SERVICE CARDS – 2-col pillars grid
   =================================== */
.services-grid-2col {
  display: grid; grid-template-columns: 1fr; gap: 1rem;
}
@media(min-width:640px)  { .services-grid-2col { grid-template-columns: repeat(2,1fr); } }
@media(min-width:1024px) { .services-grid-2col { gap: 1.125rem; } }

.service-card-row {
  display: flex; align-items: center; gap: 1rem;
  padding: 1.125rem 1.375rem;
  background: #fff; border: 1.5px solid var(--gray-200);
  border-radius: 1rem; text-decoration: none;
  transition: all .3s ease; color: var(--gray-900);
}
.service-card-row:hover { border-color: var(--green-400); box-shadow: 0 6px 24px rgba(22,163,74,.11); transform: translateY(-2px); }

.service-card-icon-wrap {
  flex-shrink: 0; width:2.75rem; height:2.75rem;
  background: linear-gradient(135deg, var(--green-500), var(--green-600));
  border-radius: .75rem; display:flex; align-items:center; justify-content:center;
  box-shadow: 0 3px 10px rgba(22,163,74,.25);
  transition: transform .3s ease, box-shadow .3s ease;
}
.service-card-row:hover .service-card-icon-wrap { transform: scale(1.08) rotate(4deg); box-shadow: 0 5px 18px rgba(22,163,74,.35); }

.service-card-body { flex:1; min-width:0; }
.service-card-title { display:block; font-size:.9375rem; font-weight:600; color:var(--gray-900); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.service-card-exp   { display:block; font-size:.7rem; color:var(--red-600); font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-top:.125rem; }
.service-card-arrow-icon { flex-shrink:0; color:var(--gray-400); transition:transform .3s ease, color .3s ease; font-size:.875rem; }
.service-card-row:hover .service-card-arrow-icon { transform: translateX(4px); color: var(--green-600); }

/* ===================================
   SECTION CTA
   =================================== */
.section-cta-wrap { padding: 6rem 1.5rem; background: linear-gradient(180deg,#fff,var(--gray-50)); border-top:1px solid var(--gray-100); text-align:center; }
.section-cta-wrap h2 { font-size:clamp(2rem,5vw,3rem); font-weight:700; color:var(--gray-900); margin-bottom:1.25rem; }
.section-cta-wrap p  { font-size:1.0625rem; color:var(--gray-500); font-weight:300; max-width:36rem; margin:0 auto 3rem; line-height:1.75; }

/* ===================================
   STATS BAR
   =================================== */
.stats-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; max-width:50rem; margin:4rem auto 0; }
.stat-item { text-align:center; }
.stat-number { font-size:clamp(2.5rem,6vw,4rem); font-weight:700; background:linear-gradient(90deg,var(--green-400),var(--emerald-500)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; display:block; margin-bottom:.25rem; }
.stat-label  { color:var(--gray-400); font-weight:300; font-size:.875rem; letter-spacing:.02em; }

/* ===================================
   PILLARS PAGE
   =================================== */
.pillars-hero { background:linear-gradient(135deg,var(--green-50),#fff); padding:7rem 0 4rem; border-bottom:1px solid var(--gray-200); }
.pillars-hero h1 { font-size:clamp(2rem,5vw,3.5rem); font-weight:700; color:var(--gray-900); margin-bottom:1rem; }
.pillars-hero p  { font-size:1.0625rem; color:var(--gray-600); max-width:40rem; font-weight:300; line-height:1.75; }

.timeline-wrapper { position:relative; max-width:80rem; margin:0 auto; padding:4rem 1rem; }
.timeline-line {
  display:none; position:absolute; left:50%; top:0; bottom:0; width:2px; transform:translateX(-50%);
  background:linear-gradient(to bottom,transparent,var(--green-200) 10%,var(--green-300) 50%,var(--green-200) 90%,transparent);
  animation:pulseGlow 3s ease-in-out infinite;
}
@media(min-width:1024px) { .timeline-line { display:block; } }

.timeline-item { position:relative; margin-bottom:5rem; opacity:0; transition:opacity .8s ease; }
.timeline-item.visible { opacity:1; }

.timeline-dot {
  display:none; position:absolute; left:50%; top:2rem;
  width:1.125rem; height:1.125rem; border-radius:50%;
  border:3px solid #fff; background:var(--gray-300);
  transform:translateX(-50%) scale(0);
  box-shadow: 0 0 0 4px rgba(255,255,255,.9), 0 4px 15px rgba(0,0,0,.1);
  z-index:10; transition:all .7s cubic-bezier(0.34,1.56,0.64,1);
}
@media(min-width:1024px) { .timeline-dot { display:block; } }
.timeline-item.visible .timeline-dot { background:var(--green-600); transform:translateX(-50%) scale(1); }

.timeline-card-wrapper { width:100%; }
@media(min-width:1024px) {
  .timeline-card-wrapper { width:47%; }
  .timeline-item.left  .timeline-card-wrapper { margin-right:auto; padding-right:3rem; }
  .timeline-item.right .timeline-card-wrapper { margin-left:auto;  padding-left:3rem;  }
}

.timeline-card {
  background:#fff; border:2px solid var(--gray-200); border-radius:1.25rem; overflow:hidden;
  transition:border-color .4s, box-shadow .4s, transform .8s cubic-bezier(0.34,1.56,0.64,1), opacity .8s ease;
}
.timeline-card:hover { border-color:var(--green-500); box-shadow:0 20px 60px rgba(0,0,0,.1); }
.timeline-item.left  .timeline-card { transform:translateX(-80px); opacity:0; }
.timeline-item.right .timeline-card { transform:translateX(80px);  opacity:0; }
.timeline-item.visible .timeline-card { transform:translateX(0); opacity:1; }
@media(max-width:1023px) {
  .timeline-item.left  .timeline-card,
  .timeline-item.right .timeline-card { transform:translateY(50px); }
  .timeline-item.visible .timeline-card { transform:none; }
}

.timeline-card-body { padding:2rem; }
.pillar-card-header { display:flex; align-items:flex-start; gap:1rem; margin-bottom:1.5rem; }
.pillar-card-icon-wrap {
  flex-shrink:0; width:3.75rem; height:3.75rem;
  background:linear-gradient(135deg,var(--green-500),var(--green-600));
  border-radius:.875rem; display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 15px rgba(22,163,74,.3);
  opacity:0; transform:scale(0) rotate(-180deg);
  transition:transform .6s cubic-bezier(0.34,1.56,0.64,1) .2s, opacity .6s ease .2s;
}
.timeline-item.visible .pillar-card-icon-wrap { opacity:1; transform:scale(1) rotate(0deg); }
.pillar-card-meta h2      { font-size:1.5rem; font-weight:700; color:var(--gray-900); margin-bottom:.25rem; }
.pillar-card-meta .experience { font-size:.7rem; color:var(--red-600); font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.pillar-card-desc { color:var(--gray-600); line-height:1.7; margin-bottom:1.5rem; font-size:.9375rem; font-weight:300; }

.expand-btn {
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:.75rem 1rem; background:var(--gray-100); border:none; border-radius:.625rem;
  font-size:.875rem; font-weight:500; color:var(--gray-700);
  transition:background .2s, color .2s; margin-bottom:1rem; cursor:pointer;
}
.expand-btn:hover { background:var(--green-50); color:var(--green-600); }
.expand-btn .chevron { transition:transform .3s ease; }

.coordinator-box { display:none; padding:1.375rem; background:var(--green-50); border:2px solid var(--green-200); border-radius:.875rem; margin-bottom:1rem; animation:fadeInUp .3s ease; }
.coordinator-box.open { display:block; }
.coordinator-years { font-size:.875rem; font-weight:700; color:var(--gray-900); margin-bottom:.5rem; display:flex; align-items:center; gap:.375rem; }
.coordinator-desc  { color:var(--gray-700); font-size:.9375rem; line-height:1.7; }

/* ===================================
   PILLAR DETAIL PAGE
   =================================== */
.pillar-detail-hero { background:linear-gradient(135deg,var(--green-50),#fff); padding:8rem 0 4rem; border-bottom:1px solid var(--gray-200); }
.pillar-detail-icon { width:5rem;height:5rem; background:linear-gradient(135deg,var(--green-500),var(--green-600)); border-radius:1.25rem; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 30px rgba(22,163,74,.3); flex-shrink:0; color:#fff; font-size:2.25rem; }
.pillar-detail-header { display:flex; align-items:flex-start; gap:1.5rem; margin-bottom:2rem; flex-wrap:wrap; }
.pillar-detail-header h1 { font-size:clamp(2rem,5vw,3.5rem); font-weight:700; color:var(--gray-900); margin-bottom:.5rem; }
.pillar-detail-header .experience { font-size:.75rem; color:var(--red-600); font-weight:700; text-transform:uppercase; letter-spacing:.05em; }
.pillar-desc-large { font-size:1.25rem; color:var(--gray-700); line-height:1.75; font-weight:500; }

.coordinator-card { background:var(--green-50); border:2px solid var(--green-200); border-radius:1.25rem; padding:2rem; margin-bottom:3rem; display:flex; align-items:flex-start; gap:1.25rem; }
.coordinator-avatar { width:3rem;height:3rem; background:var(--green-600); border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#fff; font-size:1.25rem; }
.coordinator-card h3 { font-size:1.125rem; font-weight:700; color:var(--gray-900); margin-bottom:.25rem; }
.coordinator-card .name  { font-weight:600; color:var(--gray-900); margin-bottom:.25rem; }
.coordinator-card .years { font-size:.875rem; color:var(--gray-700); font-weight:700; margin-bottom:.75rem; }
.coordinator-card .bio   { color:var(--gray-700); line-height:1.7; font-size:.9375rem; }

/* Prose */
.prose { color:var(--gray-700); line-height:1.8; }
.prose h2 { font-size:1.75rem; font-weight:700; color:var(--gray-900); margin:3rem 0 1.25rem; }
.prose h3 { font-size:1.375rem; font-weight:700; color:var(--gray-900); margin:2rem 0 .875rem; }
.prose p  { margin-bottom:1.5rem; font-weight:300; font-size:1.0625rem; }
.prose ul { padding-left:1.5rem; margin-bottom:1.5rem; }
.prose ul li { margin-bottom:.5rem; font-weight:300; }
.prose a  { color:var(--green-600); font-weight:500; }
.prose a:hover { text-decoration:underline; }
.prose strong  { font-weight:600; color:var(--gray-900); }
.prose blockquote { border-left:4px solid var(--green-500); background:var(--green-50); padding:1rem 1.5rem; border-radius:0 .75rem .75rem 0; margin:2rem 0; font-weight:300; color:var(--gray-700); }

.cta-box-dark { background:linear-gradient(135deg,var(--gray-900),var(--gray-800)); border-radius:1.5rem; padding:3rem; text-align:center; margin-top:4rem; }
.cta-box-dark h2 { font-size:1.75rem; font-weight:700; color:#fff; margin-bottom:1rem; }
.cta-box-dark p  { color:var(--gray-300); font-weight:300; margin-bottom:2rem; max-width:32rem; margin-left:auto; margin-right:auto; }

/* Related posts */
.related-posts { background:var(--gray-50); padding:5rem 0; border-top:1px solid var(--gray-200); }
.post-card { background:#fff; border:1.5px solid var(--gray-200); border-radius:1.25rem; overflow:hidden; transition:all .3s ease; display:block; }
.post-card:hover { border-color:var(--green-500); box-shadow:0 12px 40px rgba(0,0,0,.09); }
.post-card-img-wrap { overflow:hidden; }
.post-card-img { width:100%; height:12rem; object-fit:cover; transition:transform .3s ease; }
.post-card:hover .post-card-img { transform:scale(1.05); }
.post-card-body { padding:1.5rem; }
.post-card-cat   { font-size:.7rem; font-weight:700; color:var(--green-600); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.5rem; display:block; }
.post-card-title { font-size:1.125rem; font-weight:700; color:var(--gray-900); margin-bottom:.5rem; line-height:1.4; transition:color .2s; }
.post-card:hover .post-card-title { color:var(--green-600); }
.post-card-lead  { color:var(--gray-600); font-size:.9rem; line-height:1.65; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ===================================
   BLOG PAGE
   =================================== */
.blog-hero { padding:8rem 0 3rem; }
.blog-search-wrap { position:relative; max-width:36rem; margin:0 auto; }
.blog-search-icon { position:absolute; left:1.125rem; top:50%; transform:translateY(-50%); color:var(--gray-400); pointer-events:none; font-size:.9375rem; }
.blog-search { width:100%; padding:.9375rem 1.125rem .9375rem 2.875rem; border:2px solid var(--gray-200); border-radius:1rem; font-size:.9375rem; color:var(--gray-900); transition:border-color .2s; font-family:inherit; background:#fff; }
.blog-search:focus { outline:none; border-color:var(--green-500); }

.category-pills { display:flex; align-items:center; gap:.75rem; overflow-x:auto; padding-bottom:1rem; -ms-overflow-style:none; scrollbar-width:none; }
.category-pills::-webkit-scrollbar { display:none; }
.cat-btn { white-space:nowrap; padding:.5625rem 1.375rem; border-radius:9999px; font-size:.9rem; font-weight:500; border:2px solid var(--gray-200); background:#fff; color:var(--gray-700); transition:all .2s; cursor:pointer; font-family:inherit; }
.cat-btn:hover, .cat-btn.active { background:var(--green-600); border-color:var(--green-600); color:#fff; box-shadow:0 4px 14px rgba(22,163,74,.3); }

.featured-post { display:block; border-radius:1.5rem; overflow:hidden; margin-bottom:5rem; }
.featured-post-inner { position:relative; height:480px; }
@media(min-width:768px) { .featured-post-inner { height:560px; } }
.featured-post-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.featured-post:hover .featured-post-img { transform:scale(1.03); }
.featured-post-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(17,24,39,.95) 0%,rgba(17,24,39,.6) 50%,transparent 100%); }
.featured-post-nopic  { position:absolute; inset:0; background:linear-gradient(135deg,var(--green-600),var(--emerald-500)); }
.featured-post-content { position:absolute; bottom:0; left:0; right:0; padding:2rem; }
@media(min-width:768px) { .featured-post-content { padding:3rem 3.5rem; } }
.featured-badge { display:inline-flex; align-items:center; padding:.375rem 1rem; background:rgba(255,255,255,.2); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.3); border-radius:9999px; color:#fff; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1.125rem; }
.featured-post-title { font-size:clamp(1.375rem,4vw,2.5rem); font-weight:700; color:#fff; margin-bottom:.875rem; line-height:1.2; max-width:52rem; }
.featured-post-lead  { font-size:1rem; color:rgba(255,255,255,.85); font-weight:300; margin-bottom:1.125rem; max-width:42rem; line-height:1.65; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.featured-post-meta  { display:flex; align-items:center; gap:1.25rem; color:rgba(255,255,255,.7); font-size:.8125rem; font-weight:500; }

.blog-grid { display:grid; grid-template-columns:1fr; gap:2.5rem; }
@media(min-width:768px)  { .blog-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .blog-grid { grid-template-columns:repeat(3,1fr); } }

.blog-card { display:block; }
.blog-card-img-wrap { border-radius:1.375rem; overflow:hidden; height:14rem; margin-bottom:1.375rem; background:var(--gray-100); }
.blog-card-img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.blog-card:hover .blog-card-img { transform:scale(1.05); }
.blog-card-cat   { font-size:.7rem; font-weight:700; color:var(--green-600); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.375rem; display:block; }
.blog-card-title { font-size:1.25rem; font-weight:700; color:var(--gray-900); margin-bottom:.75rem; line-height:1.35; transition:color .2s; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.blog-card:hover .blog-card-title { color:var(--green-600); }
.blog-card-lead  { color:var(--gray-600); font-weight:300; line-height:1.65; margin-bottom:.875rem; font-size:.9375rem; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.blog-card-meta  { display:flex; align-items:center; gap:1rem; font-size:.8rem; color:var(--gray-500); }

/* ===================================
   BLOG POST PAGE
   =================================== */
.blog-post-wrap { max-width:52rem; margin:0 auto; padding:8rem 1rem 5rem; }
.back-link { display:inline-flex; align-items:center; gap:.5rem; color:var(--gray-600); font-weight:500; margin-bottom:2.5rem; transition:color .2s; font-size:.9375rem; }
.back-link:hover { color:var(--green-600); }
.back-link i { transition:transform .3s ease; }
.back-link:hover i { transform:translateX(-4px); }
.blog-post-cat-badge { display:inline-flex; align-items:center; padding:.375rem 1rem; background:rgba(22,163,74,.08); border:1px solid rgba(22,163,74,.2); border-radius:9999px; color:var(--green-600); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin-bottom:1.5rem; }
.blog-post-title { font-size:clamp(2rem,5vw,3.25rem); font-weight:700; color:var(--gray-900); margin-bottom:1.5rem; line-height:1.15; }
.blog-post-lead  { font-size:clamp(1.0625rem,2.5vw,1.25rem); color:var(--gray-500); font-weight:300; margin-bottom:2rem; line-height:1.75; }
.blog-post-meta  { display:flex; flex-wrap:wrap; align-items:center; gap:1.375rem; color:var(--gray-500); margin-bottom:3rem; }
.blog-post-meta .meta-item { display:flex; align-items:center; gap:.5rem; font-size:.9rem; font-weight:500; }
.blog-post-img   { width:100%; border-radius:1.375rem; margin-bottom:3rem; }
.yt-embed { margin:3rem 0; }
.yt-embed iframe { width:100%; aspect-ratio:16/9; border-radius:1.375rem; box-shadow:0 20px 60px rgba(0,0,0,.14); }
.related-service-box  { margin-top:4rem; padding-top:3rem; border-top:2px solid var(--gray-200); }
.related-service-card { background:linear-gradient(135deg,var(--green-50),#ecfdf5); border-radius:1.375rem; padding:2.5rem 3rem; }
.related-service-card h3 { font-size:1.375rem; font-weight:700; color:var(--gray-900); margin-bottom:.75rem; }
.related-service-card p  { color:var(--gray-600); font-weight:300; margin-bottom:1.5rem; }

/* ===================================
   ABOUT PAGE
   =================================== */
.about-hero { min-height:85vh; display:flex; align-items:center; justify-content:center; padding:8rem 1rem 4rem; text-align:center; }
.about-hero h1 { font-size:clamp(3rem,8vw,6rem); font-weight:700; margin-bottom:2rem; }
.about-hero p  { font-size:clamp(1.0625rem,2.5vw,1.375rem); color:var(--gray-600); font-weight:300; max-width:42rem; margin:0 auto; line-height:1.8; }
.vision-section { position:relative; padding:7rem 0; overflow:hidden; }
.vision-section::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,var(--gray-900),var(--gray-800)); }
.vision-section::after  { content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% 50%,rgba(34,197,94,.1),transparent 70%); pointer-events:none; }
.vision-content { position:relative; z-index:1; text-align:center; max-width:56rem; margin:0 auto; padding:0 1rem; }
.vision-content h2 { font-size:clamp(1.75rem,4vw,3.25rem); font-weight:700; color:#fff; margin:1.5rem 0 2rem; line-height:1.25; }
.vision-content p  { font-size:1.0625rem; color:var(--gray-300); font-weight:300; line-height:1.75; margin-bottom:4rem; }

/* ===================================
   CONTACT PAGE
   =================================== */
.contact-section { padding:8rem 0 5rem; }
.contact-grid { display:grid; grid-template-columns:1fr; gap:1.5rem; max-width:80rem; margin:0 auto; }
@media(min-width:1024px) { .contact-grid { grid-template-columns:2fr 1fr; } }

.contact-form-card { background:rgba(255,255,255,.85); backdrop-filter:blur(20px); border:1.5px solid rgba(229,231,235,.5); border-radius:1.5rem; padding:2.5rem; transition:all .4s ease; }
@media(min-width:640px) { .contact-form-card { padding:3rem 3.5rem; } }
.contact-form-card:hover { box-shadow:0 20px 60px rgba(0,0,0,.07); }
.contact-form-card h2 { font-size:1.75rem; font-weight:700; color:var(--gray-900); margin-bottom:.5rem; }
.contact-form-card > p { color:var(--gray-500); font-weight:300; margin-bottom:2.5rem; }

.field { position:relative; margin-bottom:1.125rem; }
.field input, .field textarea, .field select { width:100%; padding:.9375rem 1.375rem; border:2px solid var(--gray-200); border-radius:.875rem; font-size:.9375rem; font-family:inherit; color:var(--gray-900); background:transparent; transition:border-color .2s; appearance:none; }
.field textarea { resize:vertical; min-height:96px; }
.field select   { background:#fff; }
.field input:focus, .field textarea:focus, .field select:focus { outline:none; border-color:var(--green-500); }
.field label { position:absolute; left:1.375rem; top:.9375rem; font-size:.9375rem; color:var(--gray-400); pointer-events:none; transition:all .2s ease; background:transparent; }
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label,
.field select:focus + label, .field.filled label { top:-.625rem; font-size:.7rem; color:var(--green-600); font-weight:700; background:#fff; padding:0 .375rem; letter-spacing:.02em; }

.needs-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; margin-bottom:1.125rem; }
@media(max-width:480px) { .needs-grid { grid-template-columns:1fr; } }
.need-checkbox { display:flex; align-items:center; gap:.625rem; padding:.75rem 1rem; border:2px solid var(--gray-200); border-radius:.75rem; cursor:pointer; transition:all .2s; font-size:.9rem; color:var(--gray-700); user-select:none; }
.need-checkbox input { display:none; }
.need-checkbox .check-box { width:1.125rem; height:1.125rem; border:2px solid var(--gray-300); border-radius:.3125rem; flex-shrink:0; transition:all .2s; display:flex; align-items:center; justify-content:center; }
.need-checkbox input:checked + .check-box { background:var(--green-600); border-color:var(--green-600); }
.need-checkbox input:checked + .check-box::after { content:''; display:block; width:5px; height:9px; border:2px solid #fff; border-top:none; border-left:none; transform:rotate(45deg) translateY(-1px); }
.need-checkbox:hover, .need-checkbox:has(input:checked) { border-color:var(--green-400); background:var(--green-50); color:var(--green-700); }

.form-grid-2 { display:grid; grid-template-columns:1fr; gap:0; }
@media(min-width:640px) { .form-grid-2 { grid-template-columns:repeat(2,1fr); gap:1rem; } }
.form-section-label { font-size:.7rem; font-weight:700; color:var(--gray-400); text-transform:uppercase; letter-spacing:.08em; margin-bottom:.875rem; margin-top:.5rem; display:block; }

.submit-btn { width:100%; padding:1.125rem; background:var(--green-600); color:#fff; font-size:1rem; font-weight:500; border:none; border-radius:.875rem; display:flex; align-items:center; justify-content:center; gap:.75rem; transition:all .3s ease; cursor:pointer; box-shadow:0 4px 18px rgba(22,163,74,.25); font-family:inherit; }
.submit-btn:hover:not(:disabled) { background:var(--green-700); box-shadow:0 8px 28px rgba(22,163,74,.4); transform:translateY(-1px); }
.submit-btn:disabled { opacity:.6; cursor:not-allowed; }

.spinner { width:1.125rem; height:1.125rem; border:2px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }

.form-success { display:none; padding:4rem 2rem; text-align:center; }
.form-success.show { display:block; }
.form-success .success-icon { width:5rem; height:5rem; background:linear-gradient(135deg,var(--green-500),var(--emerald-500)); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 2rem; animation:scaleIn .6s cubic-bezier(0.34,1.56,0.64,1) both; color:#fff; font-size:2rem; }
.form-success h3 { font-size:1.875rem; font-weight:700; color:var(--gray-900); margin-bottom:.75rem; }
.form-success p  { color:var(--gray-600); font-weight:300; font-size:1.0625rem; }

.contact-sidebar { display:flex; flex-direction:column; gap:1.25rem; }
.info-card { background:rgba(255,255,255,.85); backdrop-filter:blur(20px); border:1.5px solid rgba(229,231,235,.5); border-radius:1.375rem; padding:1.875rem; transition:all .4s ease; }
.info-card:hover { border-color:var(--gray-300); box-shadow:0 12px 40px rgba(0,0,0,.07); transform:translateY(-3px); }
.info-card-icon { font-size:1.875rem; margin-bottom:1.125rem; }
.info-card h3    { font-size:1.0625rem; font-weight:600; color:var(--gray-900); margin-bottom:.25rem; }
.info-card .subtitle { font-size:.8125rem; color:var(--gray-400); font-weight:300; margin-bottom:.625rem; }
.info-card a     { font-size:1rem; font-weight:500; color:var(--gray-900); transition:color .2s; }
.info-card a:hover { color:var(--green-600); }
.info-card-dark  { background:linear-gradient(135deg,var(--gray-900),var(--gray-800)); position:relative; overflow:hidden; }
.info-card-dark::before { content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% 50%,rgba(34,197,94,.15),transparent 70%); }
.info-card-dark .rel { position:relative; }
.info-card-dark h3 { color:#fff; }
.info-card-dark p  { color:var(--gray-300); font-weight:300; line-height:1.7; font-size:.9375rem; }

/* ===================================
   SYSTEMS SECTION (pillars page)
   =================================== */
.systems-section { background:linear-gradient(135deg,var(--gray-900),var(--gray-800)); padding:5rem 0; }
.systems-grid { display:grid; grid-template-columns:1fr; gap:1rem; margin:2.5rem 0; }
@media(min-width:640px) { .systems-grid { grid-template-columns:repeat(2,1fr); } }
.system-item { padding:1.375rem 1.5rem; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:.875rem; transition:border-color .3s; display:flex; align-items:center; gap:.75rem; color:#fff; font-weight:500; font-size:.9375rem; }
.system-item:hover { border-color:var(--green-500); background:rgba(255,255,255,.07); }
.system-dot-icon { color:var(--green-400); font-size:1rem; flex-shrink:0; }

/* ===================================
   FOOTER
   =================================== */
footer { background:var(--gray-900); color:var(--gray-400); padding:4rem 0 2rem; border-top:1px solid rgba(255,255,255,.05); }
.footer-inner { display:grid; grid-template-columns:1fr; gap:3rem; margin-bottom:3rem; }
@media(min-width:768px) { .footer-inner { grid-template-columns:2fr 1fr 1fr; } }

.footer-logo-link { display:inline-flex; align-items:center; gap:.625rem; margin-bottom:.875rem; text-decoration:none; }
.footer-logo-img  { height:42px; width:auto; object-fit:contain; filter:brightness(0) invert(1) opacity(.85); }
.footer-logo-text { font-family:'Montserrat','Inter',sans-serif; font-size:1.25rem; font-weight:700; color:#fff; letter-spacing:-.01em; }
.footer-logo-text strong { font-weight:900; color:var(--green-400); }
.footer-brand p  { font-size:.9rem; font-weight:300; line-height:1.75; max-width:22rem; color:var(--gray-400); }

.footer-company { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid rgba(255,255,255,.06); max-width:22rem; }
.footer-company-name { font-size:.85rem; font-weight:600; color:#fff; margin-bottom:.35rem; }
.footer-company-line { font-size:.8rem; font-weight:300; color:var(--gray-400); margin-bottom:.2rem; line-height:1.55; }

.footer-nav h4 { color:#fff; font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; margin-bottom:1.25rem; }
.footer-nav ul { list-style:none; display:flex; flex-direction:column; gap:.625rem; }
.footer-nav a  { font-size:.9rem; font-weight:300; color:var(--gray-400); transition:color .2s; display:flex; align-items:center; gap:.5rem; }
.footer-nav a:hover { color:var(--green-400); }
.footer-nav li > span { font-size:.9rem; display:flex; align-items:center; gap:.5rem; }

.footer-bottom { border-top:1px solid rgba(255,255,255,.06); padding-top:2rem; display:flex; flex-direction:column; gap:.75rem; align-items:center; text-align:center; }
@media(min-width:640px) { .footer-bottom { flex-direction:row; justify-content:space-between; text-align:left; } }
.footer-bottom p { font-size:.8rem; font-weight:300; }

/* ===================================
   COOKIE BANNER – kompaktowy, rozwijany
   =================================== */
.cookie-banner {
  position: fixed;
  left: 1rem; right: 1rem; bottom: 1rem;
  z-index: 9999;
  max-width: 38rem; margin: 0 auto;
  background: #0f1f0f;
  color: #fff;
  border: 1px solid rgba(34,197,94,.25);
  border-radius: 9999px;
  box-shadow: 0 14px 40px rgba(0,0,0,.4);
  padding: .5rem .625rem .5rem 1rem;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .35s ease, transform .35s ease, border-radius .35s ease, padding .35s ease, max-width .35s ease;
}
.cookie-banner.cookie-banner-visible { opacity: 1; transform: translateY(0); }
.cookie-banner.cookie-banner-expanded {
  border-radius: 1.25rem;
  padding: 1.125rem 1.25rem;
  max-width: 32rem;
}

/* Pasek mini */
.cookie-banner-row {
  display: flex;
  align-items: center;
  gap: .75rem;
}
.cookie-banner-emoji {
  font-size: 1.125rem;
  color: #4ade80;
  flex-shrink: 0;
}
.cookie-banner-mini {
  flex: 1;
  font-size: .8125rem;
  font-weight: 400;
  color: rgba(255,255,255,.8);
  line-height: 1.3;
  margin: 0;
  min-width: 0;
}
.cookie-banner-mini a {
  color: #4ade80;
  text-decoration: underline;
  text-decoration-color: rgba(74,222,128,.4);
  font-weight: 500;
}
.cookie-banner-mini a:hover { color: #86efac; }
.cookie-banner-mini-actions {
  display: flex;
  gap: .375rem;
  flex-shrink: 0;
}
.cookie-banner.cookie-banner-expanded .cookie-banner-row { margin-bottom: .25rem; }

/* Buttons */
.cookie-btn {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .5rem 1rem;
  border-radius: 9999px;
  font-size: .8125rem; font-weight: 600;
  font-family: inherit;
  border: none; cursor: pointer;
  transition: all .2s;
  white-space: nowrap;
}
.cookie-btn-primary {
  background: var(--green-600);
  color: #fff;
}
.cookie-btn-primary:hover { background: var(--green-500); }
.cookie-btn-ghost {
  background: rgba(255,255,255,.06);
  color: #fff;
  border: 1px solid rgba(255,255,255,.15);
}
.cookie-btn-ghost:hover { background: rgba(255,255,255,.1); }
.cookie-btn-link {
  background: transparent;
  color: rgba(255,255,255,.7);
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.25);
  padding: .5rem .75rem;
}
.cookie-btn-link:hover { color: #4ade80; text-decoration-color: rgba(74,222,128,.4); }

/* Rozwinięcie z animacją */
.cookie-expand {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255,255,255,.08);
  animation: cookieExpand .35s ease both;
}
@keyframes cookieExpand {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: none; }
}
.cookie-options {
  display: flex;
  flex-direction: column;
  gap: .375rem;
  margin-bottom: 1rem;
}
.cookie-option {
  display: flex;
  align-items: flex-start;
  gap: .625rem;
  padding: .5rem .625rem;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: .625rem;
  cursor: pointer;
  user-select: none;
  transition: border-color .2s, background .2s;
}
.cookie-option:hover { border-color: rgba(34,197,94,.3); background: rgba(255,255,255,.05); }
.cookie-option input { position: absolute; opacity: 0; pointer-events: none; }
.cookie-option-box {
  flex-shrink: 0;
  width: 1rem; height: 1rem;
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: .3rem;
  background: rgba(255,255,255,.03);
  display: flex; align-items: center; justify-content: center;
  margin-top: .15rem;
  transition: all .2s;
}
.cookie-option-box i {
  color: #fff;
  font-size: .6rem;
  opacity: 0;
  transform: scale(.6);
  transition: all .2s;
}
.cookie-option input:checked ~ .cookie-option-box {
  background: var(--green-600);
  border-color: var(--green-600);
}
.cookie-option input:checked ~ .cookie-option-box i {
  opacity: 1; transform: scale(1);
}
.cookie-option input:disabled ~ .cookie-option-box {
  background: rgba(34,197,94,.4);
  border-color: rgba(34,197,94,.6);
  cursor: not-allowed;
}
.cookie-option input:disabled ~ .cookie-option-box i { opacity: 1; transform: scale(1); }
.cookie-option input:disabled ~ .cookie-option-text { opacity: .75; }
.cookie-option-text { flex: 1; font-size: .75rem; line-height: 1.45; color: rgba(255,255,255,.7); }
.cookie-option-text strong { display: block; font-size: .8125rem; font-weight: 600; color: #fff; margin-bottom: .1rem; }
.cookie-option-text em { font-style: normal; color: rgba(255,255,255,.5); }

.cookie-expand-actions {
  display: flex;
  gap: .375rem;
  justify-content: flex-end;
}

@media (max-width: 640px) {
  .cookie-banner {
    left: .5rem; right: .5rem; bottom: .5rem;
    border-radius: 1rem;
    padding: .875rem 1rem;
  }
  .cookie-banner-row { gap: .625rem; }
  .cookie-banner-emoji { font-size: 1rem; }
  .cookie-banner-mini { font-size: .75rem; line-height: 1.4; }
  .cookie-banner-mini-actions { gap: .25rem; }
  .cookie-btn { padding: .4rem .75rem; font-size: .75rem; }
  .cookie-banner.cookie-banner-expanded { padding: 1rem; }
  .cookie-expand-actions .cookie-btn { flex: 1; justify-content: center; }
}
@media (max-width: 420px) {
  .cookie-banner-row { flex-wrap: wrap; }
  .cookie-banner-mini-actions { flex: 1 1 100%; justify-content: flex-end; }
}

/* ===================================
   MISC / RESPONSIVE
   =================================== */
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
