  :root{
    --navy-900:#4fb4f3; --navy-800:#16374B; --slate-700:#33475B; --muted:#5B6B7A;
    --ink:color-mix(in srgb, var(--navy-900) 55%, black 45%);
    --paper:#FFFFFF; --paper-alt:#F4F6F8; --line:#E1E6EA;
    --orange:#B5541A; --orange-dark:#8F4113; --orange-tint:#FCEEE3; --green:#1F6B44;
    --focus:#1656A6; --radius:14px; --maxw:1180px;
    --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  }
  body{margin:0; font-family:var(--font); color:var(--slate-700); background:var(--paper-alt); line-height:1.6;}
  h1,h2,h3,h4{color:var(--ink); line-height:1.25; margin:0 0 .5em;}
  p{margin:0 0 1em;}
  img{max-width:100%; display:block;}
  a{color:var(--orange-dark); text-decoration:none;}
  a:hover{color:var(--orange);}
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:3px solid var(--focus); outline-offset:2px; border-radius:4px;
  }
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
  .visually-hidden{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}

  /* Pasek meta nad podglądem (kontekst, nie część witryny) */
  .meta-bar{background:var(--ink); color:#B9C6D1; font-size:.78rem; text-align:center; padding:10px 16px;}
  .meta-bar strong{color:#fff;}

  .site{background:var(--paper);}

  /* Skip link */
  .skip-link{position:absolute; left:-999px; top:0; background:var(--ink); color:#fff; padding:12px 20px; z-index:1000; border-radius:0 0 8px 0; font-weight:700; font-size:.9rem;}
  .skip-link:focus{left:0;}

  /* Ticker */
  .ticker{background:linear-gradient(90deg,#FCEEE3,#F4F6F8); border-bottom:1px solid var(--line); overflow:hidden; position:relative;}
  .ticker-label{position:absolute; left:0; top:0; bottom:0; z-index:2; display:flex; align-items:center; gap:6px; padding:0 14px; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--ink); background:var(--paper); border-right:1px solid var(--line); white-space:nowrap;}
  .ticker-track{display:flex; white-space:nowrap; width:max-content; animation:ticker-scroll 28s linear infinite; padding:9px 0 9px 168px;}
  .ticker:hover .ticker-track, .ticker:focus-within .ticker-track{animation-play-state:paused;}
  .ticker-track a{display:inline-flex; align-items:center; gap:8px; font-size:.8rem; font-weight:600; color:var(--ink); margin-right:48px;}
  .ticker-track a::before{content:'●'; font-size:.5rem; color:var(--orange);}
  .ticker-track a:hover{color:var(--orange-dark); text-decoration:underline;}
  @keyframes ticker-scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
  @media (prefers-reduced-motion: reduce){ .ticker-track{animation:none; flex-wrap:wrap; padding:9px 14px 9px 168px;} }

  /* Utility bar */
  .utility-bar{background:var(--ink); color:#DCE4EA; font-size:.8125rem;}
  .utility-bar .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding:8px 24px;}
  .utility-bar a{color:#fff;}
  .utility-bar a:hover{text-decoration:underline;}
  .utility-list,.utility-links{list-style:none; display:flex; gap:20px; margin:0; padding:0; flex-wrap:wrap;}
  .utility-list li{display:flex; align-items:center; gap:6px;}

  /* Header */
  header.site-header{background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:100;}
  .header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; gap:16px; position:relative;}
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .brand-mark{width:48px; height:48px; border-radius:10px; background:var(--ink); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .brand-mark svg{width:28px; height:28px;}
  .brand-text{line-height:1.2;}
  .brand-text strong{display:block; font-size:1.05rem; color:var(--ink); font-weight:800;}
  .brand-text span{display:block; font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.04em;}
  nav.main-nav ul{list-style:none; display:flex; gap:4px; margin:0; padding:0;}
  nav.main-nav a{display:inline-block; padding:10px 14px; font-size:.9rem; font-weight:600; text-decoration:none; color:var(--slate-700); border-radius:8px; transition:transform .15s ease, background-color .15s ease;}
  nav.main-nav a:hover{background:var(--paper-alt); color:var(--ink); transform:translateY(-1px);}
  nav.main-nav a[aria-current="page"]{color:var(--orange-dark); background:var(--orange-tint);}
  .header-actions{display:flex; align-items:center; gap:8px;}
  .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 20px; border-radius:10px; font-weight:700; font-size:.9rem; text-decoration:none; border:2px solid transparent; cursor:pointer; line-height:1.2; transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;}
  .btn:hover{transform:translateY(-2px); box-shadow:0 6px 16px rgba(15,42,61,.14);}
  .btn-primary{background:var(--orange); color:#fff;}
  .btn-primary:hover{background:var(--orange-dark); color:#fff;}
  .btn-outline{background:transparent; color:var(--ink); border-color:var(--line);}
  .btn-ghost-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.5);}
  .btn-ghost-light:hover{background:rgba(255,255,255,.12); color:#fff;}
  .nav-toggle{display:none; background:var(--paper); border:2px solid var(--line); border-radius:8px; width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer;}
  .nav-toggle svg{width:22px; height:22px;}
  @media (max-width:900px){
    nav.main-nav{display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 12px 24px rgba(15,42,61,.08);}
    nav.main-nav.open{display:block;}
    nav.main-nav ul{flex-direction:column; padding:12px 24px 18px; gap:2px;}
    nav.main-nav a{display:block; padding:12px 10px;}
    .header-actions .btn-primary{display:none;}
    .nav-toggle{display:flex;}
  }

  /* Hero */
  .hero{background:linear-gradient(120deg,var(--ink) 0%,var(--navy-800) 100%); color:#fff; position:relative; overflow:hidden;}
  .hero .wrap{padding:76px 24px; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; position:relative; z-index:1;}

  .hero-photo{position:absolute; top:-10%; left:0; right:0; bottom:-10%; z-index:0; pointer-events:none; will-change:transform; overflow:hidden;}
  .hero-photo::after{content:''; position:absolute; inset:0; z-index:2;
    background-image: linear-gradient(100deg, var(--ink) 0%, color-mix(in srgb, var(--ink) 88%, transparent) 32%, color-mix(in srgb, var(--ink) 55%, transparent) 58%, color-mix(in srgb, var(--ink) 32%, transparent) 100%);}
  .hero-photo-slide{position:absolute; inset:0; z-index:1; background-repeat:no-repeat; background-size:cover; background-position:center; opacity:0; transition:opacity 1.8s ease;}
  .hero-photo-slide.is-active{opacity:1;}

  .hero-glow{position:absolute; inset:-20%; z-index:0; pointer-events:none;
    background:
      radial-gradient(38% 55% at 78% 20%, color-mix(in srgb, var(--orange) 35%, transparent), transparent 70%),
      radial-gradient(30% 45% at 15% 85%, color-mix(in srgb, var(--navy-800) 55%, transparent), transparent 70%);
    animation:glow-drift 22s ease-in-out infinite alternate;}
  @keyframes glow-drift{ from{transform:translate3d(0,0,0) scale(1);} to{transform:translate3d(-2.5%,2%,0) scale(1.06);} }
  .hero-watermark{position:absolute; right:-6%; bottom:-12%; z-index:0; pointer-events:none;
    width:56%; max-width:640px; aspect-ratio:1.93/1;
    background-image:url('images/logo-white.png'); background-repeat:no-repeat; background-size:contain; background-position:bottom right;
    opacity:.09; filter:brightness(1.4); animation:watermark-drift 26s ease-in-out infinite alternate;}
  @keyframes watermark-drift{ from{transform:translate3d(0,0,0);} to{transform:translate3d(-1.5%,-2.5%,0);} }
  @media (prefers-reduced-motion: reduce){ .hero-glow,.hero-watermark{animation:none;} .hero-steam{display:none;} }
  @media (max-width:820px){ .hero-watermark{width:78%; opacity:.07;} .hero-steam{display:none;} }

  /* Delikatna para nad kominem w tle hero */
  .hero-steam{position:absolute; right:9%; bottom:0; width:170px; height:260px; z-index:0; pointer-events:none;}
  .hero-steam span{position:absolute; left:48%; bottom:10px; width:44px; height:44px; margin-left:-22px; border-radius:50%;
    background:radial-gradient(circle, rgba(255,255,255,.5) 0%, rgba(255,255,255,.16) 55%, rgba(255,255,255,0) 75%);
    filter:blur(3px); opacity:0; animation:steam-rise 8s ease-in infinite;}
  .hero-steam span:nth-child(1){left:38%; animation-delay:0s;}
  .hero-steam span:nth-child(2){left:56%; width:36px; height:36px; margin-left:-18px; animation-delay:2.6s;}
  .hero-steam span:nth-child(3){left:47%; width:52px; height:52px; margin-left:-26px; animation-delay:5.2s;}
  @keyframes steam-rise{
    0%{opacity:0; transform:translateY(0) scale(.6);}
    18%{opacity:.5;}
    72%{opacity:.2;}
    100%{opacity:0; transform:translateY(-230px) scale(1.7);}
  }

  /* Pasek postępu przewijania */
  .scroll-progress{position:fixed; top:0; left:0; height:3px; width:0%; z-index:999;
    background:linear-gradient(90deg, var(--orange), var(--orange-dark)); pointer-events:none;}

  .brand-logo{height:46px; width:auto;}

  .stats-section{padding:0 0 64px;}
  .stats-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
  .stat-card{background:var(--paper); padding:30px 20px; text-align:center;}
  .stat-number{display:block; font-size:2.4rem; font-weight:800; color:var(--orange-dark); line-height:1; font-variant-numeric:tabular-nums; letter-spacing:-.01em;}
  .stat-label{display:block; margin-top:8px; font-size:.85rem; color:var(--muted);}
  @media (max-width:820px){ .stats-grid{grid-template-columns:1fr 1fr;} .stat-number{font-size:2rem;} }
  @media (max-width:480px){ .stats-grid{grid-template-columns:1fr;} }

  .footer-logo{height:34px; width:auto; margin-bottom:14px; opacity:.92;}
  .hero-eyebrow{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.12); color:#fff; font-size:.8rem; font-weight:700; padding:6px 14px; border-radius:999px; margin-bottom:18px;}
  .hero h1{color:#fff; font-size:2.6rem; margin-bottom:.4em;}
  .hero p.lead{color:#D7E0E8; font-size:1.15rem; max-width:46ch; margin-bottom:1.6em;}
  .hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}
  .hero-figure{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:20px; padding:22px; display:grid; gap:14px;}
  .hero-stat{display:flex; align-items:center; gap:14px;}
  .hero-stat .ico{width:44px; height:44px; border-radius:10px; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .hero-stat .ico svg{width:24px; height:24px;}
  .hero-stat strong{display:block; color:#fff; font-size:1.05rem;}
  .hero-stat span{display:block; color:#B9C6D1; font-size:.82rem;}
  @media (max-width:820px){ .hero .wrap{grid-template-columns:1fr; padding:48px 20px;} .hero h1{font-size:1.9rem;} }

  section{padding:64px 0;}
  .section-alt{background:var(--paper-alt);}
  .section-head{max-width:640px; margin:0 auto 40px; text-align:center;}
  .kicker{display:block; color:var(--orange-dark); font-weight:800; font-size:.8rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px;}
  .section-head h2{font-size:1.9rem;}
  .section-head p{color:var(--muted); font-size:1.02rem;}
  .section-foot{text-align:center; margin-top:36px;}

  .js-reveal .reveal{opacity:0; transform:translateY(18px); transition:opacity .55s ease, transform .55s ease; transition-delay:var(--reveal-delay,0ms);}
  .js-reveal .reveal.is-visible{opacity:1; transform:translateY(0);}

  .value-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; list-style:none; margin:0; padding:0;}
  .value-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:26px 24px; transition:transform .2s ease, box-shadow .2s ease;}
  .value-card:hover{transform:translateY(-4px); box-shadow:0 10px 24px rgba(15,42,61,.10);}
  .value-card .ico{width:48px; height:48px; border-radius:12px; background:var(--orange-tint); display:flex; align-items:center; justify-content:center; margin-bottom:16px; transition:transform .15s ease;}
  .value-card:hover .ico{transform:scale(1.08) rotate(-3deg);}
  .value-card .ico svg{width:26px; height:26px; color:var(--orange-dark);}
  .value-card h3{font-size:1.1rem; margin-bottom:.4em;}
  .value-card p{color:var(--muted); font-size:.92rem; margin:0;}
  @media (max-width:900px){ .value-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:600px){ .value-grid{grid-template-columns:1fr;} }

  .news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .news-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease;}
  .news-card:hover{transform:translateY(-4px); box-shadow:0 10px 24px rgba(15,42,61,.10);}
  .news-card .thumb{height:150px; background:linear-gradient(135deg,var(--navy-800),var(--ink)); display:flex; align-items:center; justify-content:center; overflow:hidden;}
  .news-card .thumb svg{width:40px; height:40px; color:rgba(255,255,255,.5);}
  .news-card .thumb img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease;}
  .news-card:hover .thumb img, .news-card:focus-within .thumb img{transform:scale(1.06);}
  .btn{transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease;}
  .btn-primary:hover{transform:translateY(-2px); box-shadow:0 8px 18px rgba(181,84,26,.35);}
  .btn-ghost-light:hover{transform:translateY(-2px);}
  .news-card .body{padding:20px 22px 22px; display:flex; flex-direction:column; gap:8px; flex:1;}
  .news-date{font-size:.75rem; font-weight:700; color:var(--orange-dark); text-transform:uppercase; letter-spacing:.04em;}
  .news-card h3{font-size:1.05rem; margin:0;}
  .news-card h3 a{color:var(--ink);}
  .news-card h3 a:hover{text-decoration:underline;}
  .news-card p{color:var(--muted); font-size:.9rem; margin:0; flex:1;}
  .news-more{color:var(--orange-dark); font-weight:700; font-size:.85rem;}
  .news-grid--2{grid-template-columns:repeat(2,1fr); max-width:820px; margin:0 auto;}
  @media (max-width:900px){ .news-grid{grid-template-columns:1fr;} }

  /* Karuzela */
  .band{background:var(--ink); color:#fff; border-radius:24px; overflow:hidden; position:relative;}
  .slide{display:none; grid-template-columns:1fr 1fr; align-items:center;}
  .slide.is-active{display:grid;}
  .slide-text{padding:48px 44px;}
  .slide-text .kicker{color:#F7D3B5;}
  .slide-text h2{color:#fff; font-size:1.7rem;}
  .slide-text p{color:#D2DBE2; font-size:.98rem;}
  .slide-visual{background:repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 18px, rgba(255,255,255,.02) 18px 36px); min-height:260px; display:flex; align-items:center; justify-content:center;}
  .slide-visual svg{width:110px; height:110px; color:rgba(255,255,255,.35);}
  .carousel-nav{position:absolute; top:50%; transform:translateY(-50%); width:38px; height:38px; border-radius:50%; border:none; background:rgba(255,255,255,.14); color:#fff; font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2; transition:transform .15s ease, background-color .15s ease;}
  .carousel-nav:hover{background:rgba(255,255,255,.26); transform:translateY(-50%) scale(1.08);}
  .carousel-prev{left:14px;}
  .carousel-next{right:14px;}
  .carousel-dots{position:absolute; bottom:16px; left:44px; display:flex; gap:8px; z-index:2;}
  .dot{width:9px; height:9px; border-radius:50%; border:1.5px solid #fff; background:rgba(255,255,255,.35); padding:0; cursor:pointer; transition:transform .15s ease, background-color .15s ease;}
  .dot[aria-selected="true"]{background:#fff; transform:scale(1.2);}
  @media (max-width:820px){ .slide{grid-template-columns:1fr;} .slide-text{padding:36px 26px;} .slide-visual{min-height:180px;} .carousel-dots{left:26px;} }

  .contact-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; align-items:start;}
  .contact-info h2{font-size:1.7rem;}
  .contact-list{list-style:none; margin:24px 0 0; padding:0; display:grid; gap:20px;}
  .contact-list li{display:flex; gap:14px; align-items:flex-start;}
  .contact-list .ico{width:40px; height:40px; border-radius:10px; background:var(--paper-alt); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px;}
  .contact-list .ico svg{width:20px; height:20px; color:var(--ink);}
  .contact-list strong{display:block; color:var(--ink); font-size:.95rem; margin-bottom:2px;}
  .contact-list span, .contact-list a{display:block; color:var(--muted); font-size:.92rem;}
  .contact-list a:hover{color:var(--orange-dark); text-decoration:underline;}
  .contact-form{background:var(--paper-alt); border:1px solid var(--line); border-radius:var(--radius); padding:32px;}
  .form-row{margin-bottom:18px;}
  .form-row label{display:block; font-weight:700; font-size:.88rem; color:var(--ink); margin-bottom:6px;}
  .req{color:var(--orange-dark);}
  .form-row input[type="text"], .form-row input[type="email"], .form-row textarea{width:100%; padding:12px 14px; border:1.5px solid var(--line); border-radius:9px; font-family:var(--font); font-size:.95rem; color:var(--ink); background:#fff;}
  .form-row textarea{min-height:110px; resize:vertical;}
  .form-hint{font-size:.8rem; color:var(--muted); margin-top:4px;}
  .form-check{display:flex; align-items:flex-start; gap:10px; font-size:.85rem; color:var(--slate-700);}
  .form-check input{margin-top:3px; width:18px; height:18px;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }

  footer.site-footer{background:#0B1E2B; color:#B9C6D1; padding:56px 0 0;}
  .footer-grid{display:grid; grid-template-columns:1.2fr 1.1fr 1fr 1fr; gap:32px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1);}
  .footer-grid h4{color:#fff; font-size:.95rem; margin-bottom:14px;}
  .footer-grid p, .footer-grid a{color:#B9C6D1; font-size:.86rem; line-height:1.9; text-decoration:none;}
  .footer-grid a:hover{color:#fff; text-decoration:underline;}
  .footer-grid ul{list-style:none; margin:0; padding:0;}
  .footer-grid li{margin-bottom:10px;}
  .footer-grid li:last-child{margin-bottom:0;}
  .footer-grid li a{line-height:1.5;}
  .footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding:20px 24px; font-size:.78rem; color:#7E8FA0; max-width:var(--maxw); margin:0 auto;}
  @media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }

  /* Widget dostępności */
  .a11y-toggle{position:fixed; right:20px; bottom:20px; z-index:1000; width:56px; height:56px; border-radius:50%; border:none; cursor:pointer; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(15,42,61,.35); transition:transform .15s ease, background-color .15s ease;}
  .a11y-toggle:hover{background:var(--navy-800); transform:scale(1.06);}
  .a11y-toggle svg{width:26px; height:26px;}
  .a11y-panel{position:fixed; right:20px; bottom:86px; z-index:1000; background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; width:280px; box-shadow:0 14px 40px rgba(15,42,61,.22); display:none;}
  .a11y-panel.open{display:block;}
  .a11y-panel h2{font-size:1rem; margin-bottom:14px;}
  .a11y-row{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; font-size:.85rem; gap:10px;}
  .a11y-row .btns{display:flex; gap:6px;}
  .a11y-row button.opt{border:1.5px solid var(--line); background:#fff; border-radius:8px; width:32px; height:32px; cursor:pointer; font-size:.75rem; padding:0; color:var(--ink); font-weight:700;}
  .a11y-row button.opt[aria-pressed="true"]{background:var(--ink); color:#fff; border-color:var(--ink);}
  .a11y-row button.pill{border:1.5px solid var(--line); background:#fff; border-radius:999px; padding:6px 12px; cursor:pointer; font-size:.78rem; color:var(--ink); font-weight:600;}
  .a11y-row button.pill[aria-pressed="true"]{background:var(--ink); color:#fff; border-color:var(--ink);}
  .a11y-reset{width:100%; text-align:center; font-size:.8rem; padding:8px; border-radius:8px; border:1px dashed var(--line); background:transparent; cursor:pointer; color:var(--muted);}


  html.a11y-text-1{font-size:112%;}
  html.a11y-text-2{font-size:128%;}
  html.a11y-spacing .site{line-height:2; letter-spacing:.015em;}
  html.a11y-readable .site, html.a11y-readable .site *{font-family:"Atkinson Hyperlegible","Verdana",var(--font) !important;}
  html.a11y-contrast .site{background:#000 !important; color:#fff !important;}
  html.a11y-contrast .site-header, html.a11y-contrast .utility-bar, html.a11y-contrast .site-footer,
  html.a11y-contrast .value-card, html.a11y-contrast .news-card, html.a11y-contrast .contact-form,
  html.a11y-contrast .hero, html.a11y-contrast .band, html.a11y-contrast .a11y-panel, html.a11y-contrast .ticker{
    background:#000 !important; color:#fff !important; border-color:#666 !important;
  }
  html.a11y-contrast .site a{color:#FFD666 !important;}
  html.a11y-contrast .btn-primary{background:#FFD666 !important; color:#000 !important;}
  html.a11y-contrast .site p, html.a11y-contrast .site span{color:#fff !important;}

  @media (max-width:600px){
    .a11y-panel{width:min(280px,86vw); right:12px; bottom:80px;}
    .a11y-toggle{right:12px; bottom:12px;}
    .hero h1{font-size:1.6rem;}
    .slide-text{padding:28px 20px;}
  }

/* ============================================
   PODSTRONY — nagłówek, karta treści, tabele,
   listy dokumentów, kroki, karty telefonów
   ============================================ */
.page-header{
  background-image:
    linear-gradient(100deg, var(--ink) 0%, color-mix(in srgb, var(--ink) 90%, transparent) 30%, color-mix(in srgb, var(--ink) 62%, transparent) 62%, color-mix(in srgb, var(--ink) 40%, transparent) 100%),
    url('images/photos/page-header-bg.jpg');
  background-repeat:no-repeat; background-size:cover; background-position:center 65%;
  color:#fff; padding:52px 0 60px; position:relative; overflow:hidden;}
.page-header .wrap{position:relative; z-index:1;}
.page-header h1{color:#fff; font-size:2rem; margin-bottom:.35em;}
.page-header p{color:#D7E0E8; font-size:1.02rem; max-width:64ch; margin:0;}
.breadcrumbs{font-size:.82rem; color:#B9C6D1; margin-bottom:16px; list-style:none; display:flex; gap:6px; padding:0;}
.breadcrumbs a{color:#B9C6D1;}
.breadcrumbs a:hover{color:#fff; text-decoration:underline;}
.breadcrumbs li:not(:last-child)::after{content:'/'; margin-left:6px; color:#5C7386;}
.breadcrumbs li[aria-current]{color:#fff;}

.page-body{padding:56px 0 72px;}
.content-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:40px 44px; max-width:840px; margin:0 auto;}
.prose h2{font-size:1.3rem; margin-top:1.7em;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--slate-700);}
.prose ul,.prose ol{padding-left:1.4em; color:var(--slate-700); margin:0 0 1.2em;}
.prose li{margin-bottom:.5em;}
.prose strong{color:var(--ink);}
.prose .lead{font-size:1.08rem; color:var(--ink);}

.steps-list{counter-reset:step; list-style:none; margin:0 0 1.8em; padding:0; display:grid; gap:12px;}
.steps-list li{counter-increment:step; display:flex; gap:16px; align-items:flex-start; background:var(--paper-alt); border:1px solid var(--line); border-radius:12px; padding:16px 18px;}
.steps-list li::before{content:counter(step); flex-shrink:0; width:32px; height:32px; border-radius:50%; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.9rem;}
.steps-list p{margin:0; color:var(--slate-700); font-size:.94rem;}

.table-wrap{overflow-x:auto; margin:1.4em 0; border:1px solid var(--line); border-radius:12px;}
table.data-table{width:100%; border-collapse:collapse; font-size:.88rem; min-width:480px;}
table.data-table caption{text-align:left; font-weight:700; color:var(--ink); padding:14px 16px; background:var(--paper-alt); border-bottom:1px solid var(--line);}
table.data-table th,table.data-table td{padding:11px 16px; text-align:left; border-bottom:1px solid var(--line);}
table.data-table thead th{background:var(--ink); color:#fff; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.03em;}
table.data-table tbody tr:nth-child(even){background:var(--paper-alt);}
table.data-table tbody tr:hover{background:var(--orange-tint);}

.doc-list{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.doc-list li{display:flex; align-items:center; gap:14px; background:var(--paper-alt); border:1px solid var(--line); border-radius:12px; padding:14px 18px;}
.doc-list .ico{width:38px; height:38px; border-radius:9px; background:var(--orange-tint); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.doc-list .ico svg{width:20px; height:20px; color:var(--orange-dark);}
.doc-list a{font-weight:700; color:var(--ink);}
.doc-list a:hover{color:var(--orange-dark); text-decoration:underline;}
.doc-list .hint{display:block; font-size:.8rem; color:var(--muted); font-weight:400;}

.phone-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:1.4em 0;}
.phone-card{background:var(--paper-alt); border:1px solid var(--line); border-radius:12px; padding:15px 18px;}
.phone-card strong{display:block; color:var(--ink); margin-bottom:3px; font-size:.9rem;}
.phone-card a,.phone-card span{color:var(--muted); font-size:.9rem;}
.phone-card a{color:var(--orange-dark); font-weight:700;}
@media (max-width:600px){ .phone-grid{grid-template-columns:1fr;} .content-card{padding:26px 22px;} }

.post-meta{font-size:.82rem; color:var(--muted); margin-bottom:1.2em;}
.post-figures{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin:1.6em 0;}
.post-figure{background:var(--paper-alt); border:1px solid var(--line); border-radius:12px; padding:16px 18px; text-align:center;}
.post-figure strong{display:block; font-size:1.25rem; color:var(--orange-dark); font-weight:800;}
.post-figure span{display:block; font-size:.78rem; color:var(--muted); margin-top:4px;}

.note-box{background:var(--orange-tint); border:1px solid #EAD2B8; border-radius:12px; padding:14px 18px; font-size:.86rem; color:var(--ink); margin:1.4em 0;}

/* Pojedyncze zdjęcie wyróżnione (lightbox) */
.photo-feature{margin:1.8em 0;}
.photo-feature button{display:block; width:100%; padding:0; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; cursor:zoom-in; background:var(--paper-alt);}
.photo-feature img{width:100%; height:auto; display:block; transition:transform .35s ease;}
.photo-feature button:hover img,.photo-feature button:focus-visible img{transform:scale(1.03);}
.photo-feature button:focus-visible{outline:3px solid var(--focus); outline-offset:2px;}
.photo-feature figcaption{margin-top:10px; font-size:.85rem; color:var(--muted); text-align:center;}
@media (prefers-reduced-motion: reduce){ .photo-feature img{transition:none;} }

/* Galeria zdjęć (lightbox) */
.gallery-heading{font-size:1.15rem; color:var(--ink); margin:1.8em 0 .8em;}
.photo-gallery{list-style:none; margin:0 0 1.6em; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px;}
.photo-gallery li{margin:0;}
.photo-gallery button{display:block; width:100%; aspect-ratio:4/3; padding:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; cursor:zoom-in; background:var(--paper-alt); position:relative;}
.photo-gallery img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease;}
.photo-gallery button:hover img,.photo-gallery button:focus-visible img{transform:scale(1.06);}
.photo-gallery button::after{content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 0 rgba(15,42,61,0); transition:box-shadow .2s ease;}
.photo-gallery button:focus-visible{outline:3px solid var(--focus); outline-offset:2px;}
@media (max-width:480px){ .photo-gallery{grid-template-columns:repeat(2,1fr);} }

.lightbox{position:fixed; inset:0; z-index:2000; background:rgba(8,16,22,.98); display:flex; align-items:center; justify-content:center; padding:24px;}
.lightbox[hidden]{display:none;}
.lightbox-figure{max-width:min(92vw,1100px); max-height:88vh; margin:0; display:flex; flex-direction:column; align-items:center; gap:12px;}
.lightbox-figure img{max-width:100%; max-height:78vh; width:auto; height:auto; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5); background:#0a141c;}
.lightbox-figure figcaption{color:#fff; font-size:.9rem; text-align:center; max-width:70ch; opacity:.9;}
.lightbox-close,.lightbox-nav{position:absolute; border:none; background:rgba(255,255,255,.12); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background-color .15s ease, transform .15s ease;}
.lightbox-close:hover,.lightbox-nav:hover{background:rgba(255,255,255,.24);}
.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline:3px solid #fff; outline-offset:2px;}
.lightbox-close{top:18px; right:18px; width:44px; height:44px; border-radius:50%; font-size:1.1rem;}
.lightbox-nav{top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; font-size:1.6rem;}
.lightbox-prev{left:18px;}
.lightbox-next{right:18px;}
.lightbox-counter{position:absolute; left:0; right:0; bottom:18px; text-align:center; color:rgba(255,255,255,.75); font-size:.82rem; margin:0;}
@media (max-width:640px){
  .lightbox{padding:16px;}
  .lightbox-nav{width:42px; height:42px; font-size:1.3rem;}
  .lightbox-prev{left:8px;}
  .lightbox-next{right:8px;}
  .lightbox-close{top:10px; right:10px; width:38px; height:38px;}
}
@media (prefers-reduced-motion: reduce){
  .photo-gallery img{transition:none;}
}

/* Cookie consent banner */
.cookie-banner {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9999;
  background: var(--navy-800);
  color: #E8EDF1;
  padding: 20px 24px;
  box-shadow: 0 -6px 24px rgba(0,0,0,0.25);
  display: none;
}
.cookie-banner.is-visible { display: block; }
.cookie-banner-inner {
  max-width: var(--maxw);
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.cookie-banner-text {
  flex: 1 1 420px;
  font-size: 14px;
  line-height: 1.6;
  color: #C7D2DA;
}
.cookie-banner-text a { color: #F2B98A; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.cookie-banner-actions button {
  border: none;
  border-radius: 8px;
  padding: 11px 20px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.cookie-btn-accept { background: var(--orange); color: #fff; }
.cookie-btn-accept:hover { background: var(--orange-dark); }
.cookie-btn-reject { background: transparent; color: #E8EDF1; border: 1px solid #45566A !important; }
@media (max-width: 640px) {
  .cookie-banner-inner { flex-direction: column; align-items: stretch; }
  .cookie-banner-actions { justify-content: stretch; }
  .cookie-banner-actions button { flex: 1; }
}

/* Linki w treści biegnącej muszą być rozróżnialne nie tylko kolorem (WCAG 1.4.1) */
.prose a, .lead a, .note-box a, .form-row label a{text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px;}
.prose a:hover, .lead a:hover, .note-box a:hover, .form-row label a:hover{text-decoration-thickness:2px;}
