/* ZBK Nowy Dwor Mazowiecki - main.css */
@import url('../fonts/fonts-local.css');

:root{
  --granat:#0b1e8c;        /* granat z logo */
  --granat-c:#081566;      /* ciemniejszy granat */
  --atrament:#1c2233;      /* tekst */
  --papier:#f7f5ee;        /* krem z elewacji */
  --piasek:#efe9d8;        /* piaskowy panel */
  --klinkier:#a4482a;      /* cegla klinkierowa CTA */
  --klinkier-c:#873a21;
  --linia:#ddd6c3;
  --bialy:#ffffff;
  --fs:1rem;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  margin:0;
  font-family:'Public Sans',system-ui,Arial,sans-serif;
  font-size:calc(var(--fs) * 1.0625);
  line-height:1.65;
  color:var(--atrament);
  background:var(--papier);
}
body.fs-1{--fs:1.125rem}
body.fs-2{--fs:1.3rem}
body.a11y-links a{text-decoration:underline!important}
body.a11y-spacing{letter-spacing:.08em;word-spacing:.16em}
body.a11y-spacing p,body.a11y-spacing li{line-height:2}

img{max-width:100%;height:auto}
.wrap{max-width:72rem;margin:0 auto;padding:0 1.25rem}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

h1,h2,h3{font-family:'Archivo',system-ui,sans-serif;line-height:1.15;margin:0 0 .6em;text-wrap:balance}
h1{font-size:clamp(1.9rem,4.2vw,3rem);font-weight:800}
h2{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:800}
h3{font-size:1.15rem;font-weight:700}
p{margin:0 0 1em}
a{color:var(--granat)}
a:hover{color:var(--klinkier)}
:focus-visible{outline:3px solid var(--klinkier);outline-offset:2px;border-radius:2px}

.skip{position:absolute;left:-999px;top:0;background:var(--granat);color:#fff;padding:.7rem 1.2rem;z-index:200;font-weight:600;text-decoration:none}
.skip:focus{left:0}

/* tabliczka adresowa - element przewodni */
.plate{margin:0 0 1rem}
.plate span{
  display:inline-block;background:var(--granat);color:#fff;
  font-family:'Archivo',sans-serif;font-weight:700;font-size:.82rem;
  letter-spacing:.09em;text-transform:uppercase;
  padding:.35rem .8rem;border:2px solid #fff;border-radius:4px;
  box-shadow:0 1px 0 rgba(0,0,0,.25)
}
.plate-light span{background:rgba(8,21,102,.82);backdrop-filter:blur(2px)}

/* ------- pasek dostepnosci ------- */
.a11y-bar{background:var(--granat-c);color:#fff;font-size:.85rem}
.a11y-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;padding:.35rem 1.25rem}
.a11y-label{font-weight:600}
.a11y-group{display:flex;gap:.25rem}
.a11y-bar button{
  background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5);
  border-radius:4px;padding:.2rem .55rem;font:inherit;cursor:pointer
}
.a11y-bar button:hover{background:rgba(255,255,255,.15)}
.a11y-bar button[aria-pressed="true"]{background:#fff;color:var(--granat-c);font-weight:700}
.a11y-reset{margin-left:auto}
.a11y-decl{color:#fff;font-weight:600}
.a11y-fab{
  display:none;position:fixed;right:1rem;bottom:1rem;z-index:120;
  width:3.4rem;height:3.4rem;border-radius:50%;border:2px solid #fff;
  background:var(--granat);color:#fff;cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.35);align-items:center;justify-content:center
}
@media (max-width:47.99rem){
  .a11y-bar{display:none}
  .a11y-bar.open{display:block;position:fixed;left:0;right:0;bottom:0;z-index:130;box-shadow:0 -6px 20px rgba(0,0,0,.3)}
  .a11y-fab{display:flex}
  .a11y-reset{margin-left:0}
}

/* ------- naglowek ------- */
.top{background:#fff;border-bottom:3px solid var(--granat);position:relative;z-index:50}
.top-inner{display:flex;align-items:center;gap:1rem;padding:.7rem 1.25rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--atrament)}
.brand-name{display:flex;flex-direction:column;line-height:1.2}
.brand-name strong{font-family:'Archivo',sans-serif;font-weight:800;font-size:1.02rem;color:var(--granat)}
.brand-name span{font-size:.8rem;color:#4a4f60}
.nav{margin-left:auto}
.nav ul{display:flex;align-items:center;gap:.2rem;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav a{
  display:block;padding:.55rem .8rem;text-decoration:none;color:var(--atrament);
  font-weight:600;font-size:.95rem;border-radius:4px
}
.nav a:hover{background:var(--piasek);color:var(--granat)}
.nav a[aria-current="page"]{color:var(--granat);box-shadow:inset 0 -3px 0 var(--granat)}
.nav-cta a{
  background:var(--klinkier);color:#fff!important;font-family:'Archivo',sans-serif;
  font-weight:700;letter-spacing:.03em;padding:.55rem 1.05rem;border-radius:4px;margin-left:.4rem
}
.nav-cta a:hover{background:var(--klinkier-c)}
.nav-toggle{display:none;align-items:center;gap:.5rem;background:#fff;border:2px solid var(--granat);color:var(--granat);font:inherit;font-weight:700;padding:.45rem .8rem;border-radius:4px;cursor:pointer;margin-left:auto}
.nav-toggle-box{display:inline-flex;flex-direction:column;gap:4px}
.nav-toggle-box span{width:20px;height:2.5px;background:currentColor;border-radius:2px}
@media (max-width:63.99rem){
  .nav-toggle{display:inline-flex}
  .nav{display:none;width:100%}
  .nav.open{display:block}
  .nav ul{flex-direction:column;align-items:stretch;padding:.5rem 0}
  .nav a{padding:.8rem .6rem;border-bottom:1px solid var(--linia)}
  .nav a[aria-current="page"]{box-shadow:inset 4px 0 0 var(--granat)}
  .nav-cta a{margin:.5rem 0 0;text-align:center}
}

/* ------- okruszki ------- */
.crumbs{background:var(--piasek);border-bottom:1px solid var(--linia);font-size:.88rem}
.crumbs ol{display:flex;gap:.4rem;list-style:none;margin:0;padding:.5rem 0;flex-wrap:wrap}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:#8a8468}

/* ------- hero ------- */
.hero{position:relative;color:#fff;min-height:34rem;display:flex;align-items:flex-end;isolation:isolate}
.hero-media,.hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(78deg,rgba(6,14,66,.88) 0%,rgba(6,14,66,.62) 44%,rgba(6,14,66,.12) 78%)}
.hero-inner{padding-top:5rem;padding-bottom:3.2rem;max-width:72rem;width:100%}
.hero h1{max-width:34rem;margin-bottom:.5em;text-shadow:0 2px 8px rgba(0,0,0,.35)}
.hero-lead{max-width:33rem;font-size:1.1rem;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem}

.btn{
  display:inline-block;font-family:'Archivo',sans-serif;font-weight:700;font-size:1rem;
  padding:.75rem 1.4rem;border-radius:4px;text-decoration:none;border:2px solid transparent;
  cursor:pointer;text-align:center
}
.btn-brick{background:var(--klinkier);color:#fff}
.btn-brick:hover{background:var(--klinkier-c);color:#fff}
.btn-light{background:rgba(255,255,255,.14);color:#fff;border-color:#fff}
.btn-light:hover{background:#fff;color:var(--granat)}
.btn-solid{background:var(--granat);color:#fff}
.btn-solid:hover{background:var(--granat-c);color:#fff}
.btn-ghost{background:transparent;color:var(--granat);border-color:var(--granat)}
.btn-ghost:hover{background:var(--granat);color:#fff}
.btn-ghost-dark{background:transparent;color:var(--atrament);border-color:var(--atrament)}
.btn-big{font-size:1.12rem;padding:.95rem 1.8rem;white-space:nowrap}

/* ------- sekcje ------- */
.sec{padding:3.6rem 0}
.sec-alt{background:#fff;border-top:1px solid var(--linia);border-bottom:1px solid var(--linia)}
.sec-head{padding-bottom:2.2rem}
.lead{font-size:1.15rem;max-width:46rem}
.sec-2col{display:grid;grid-template-columns:1.25fr .9fr;gap:3rem;align-items:start}
.sec-2col-rev{grid-template-columns:.9fr 1.25fr}
.sec-2col-rev > div:first-child{order:2}
@media (max-width:56rem){.sec-2col,.sec-2col-rev{grid-template-columns:1fr}.sec-2col-rev > div:first-child{order:0}}

.more{font-family:'Archivo',sans-serif;font-weight:700;text-decoration:none;border-bottom:2px solid var(--klinkier);padding-bottom:2px}
.more::after{content:" \2192"}

.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--linia);border:1px solid var(--linia);border-radius:6px;overflow:hidden;margin:0}
.facts div{background:#fff;padding:1.2rem}
.facts dt{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:#5a5f72}
.facts dd{margin:0;font-family:'Archivo',sans-serif;font-weight:800;font-size:1.7rem;color:var(--granat)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.2rem;margin:1.6rem 0}
.card{background:var(--papier);border:1px solid var(--linia);border-left:5px solid var(--granat);border-radius:6px;padding:1.3rem 1.3rem 1rem}
.card h3{color:var(--granat)}
.card p{margin:0;font-size:.97rem}

.quick{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.quick a{display:block;background:#fff;border:1px solid var(--linia);border-radius:6px;padding:1rem 1.2rem;text-decoration:none;color:var(--atrament)}
.quick a:hover{border-color:var(--granat);box-shadow:0 2px 8px rgba(11,30,140,.12)}
.quick strong{display:block;font-family:'Archivo',sans-serif;color:var(--granat)}
.quick span{font-size:.9rem;color:#4a4f60}

/* ------- pasma ------- */
.band{padding:2.6rem 0}
.band-euslugi{background:var(--granat);color:#fff}
.band-euslugi h2{margin-bottom:.3em}
.band-euslugi p{margin:0;max-width:38rem;color:#dfe3ff}
.eu-grid{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.band-euslugi .btn-solid{background:#fff;color:var(--granat)}
.band-euslugi .btn-solid:hover{background:var(--piasek)}
.band-contact{background:var(--granat-c);color:#fff}
.kk-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem}
@media (max-width:52rem){.kk-grid{grid-template-columns:1fr}}
.kk-addr{font-style:normal;margin-bottom:1rem}
.kk-list{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.kk-list a{color:#fff;font-weight:600}
.kk-list-dark a{color:var(--granat)}
.kk-h3{color:#fff}
.hours{list-style:none;margin:0 0 1.4rem;padding:0;max-width:22rem}
.hours li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed rgba(255,255,255,.35);padding:.45rem 0}
.hours-dark li{border-color:var(--linia)}
.hours li span:last-child{font-weight:700}

/* ------- dokumenty / listy / tabele ------- */
.doc{max-width:52rem}
.doc h2{margin-top:1.6em}
.doc h3{margin-top:1.4em;color:var(--granat)}
.doc-list{padding-left:1.2rem;margin:0 0 1.2em}
.doc-list li{margin-bottom:.45em}
.table-wrap{overflow-x:auto;margin:1rem 0 2.2rem;border:1px solid var(--linia);border-radius:6px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:.95rem;min-width:34rem}
caption{text-align:left;padding:.6rem 1rem;font-weight:700}
th,td{padding:.55rem .9rem;text-align:left;border-bottom:1px solid var(--linia)}
thead th{background:var(--granat);color:#fff;font-family:'Archivo',sans-serif;font-size:.85rem;letter-spacing:.04em;position:sticky;top:0}
tbody tr:nth-child(even){background:var(--papier)}
tbody th{font-weight:600}

.organy{display:grid;grid-template-columns:repeat(auto-fit,minmax(23rem,1fr));gap:1.2rem}
.organ{background:var(--papier);border:1px solid var(--linia);border-top:5px solid var(--granat);border-radius:6px;padding:1.3rem}
.organ h2{font-size:1.15rem;color:var(--granat)}
.organ ul{margin:0;padding-left:1.1rem}
.organ li{margin-bottom:.35em}
.reg{margin:0;display:grid;gap:.6rem}
.reg div{display:grid;grid-template-columns:10rem 1fr;gap:.6rem}
.reg dt{color:#5a5f72}
.reg dd{margin:0;font-weight:700}
@media (max-width:34rem){.reg div{grid-template-columns:1fr}}

/* ------- stopka ------- */
.foot{background:var(--atrament);color:#d8dbe6;margin-top:0}
.foot a{color:#fff}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2rem;padding-top:3rem;padding-bottom:2rem}
.foot-logo{margin-bottom:.6rem}
.foot-name{font-family:'Archivo',sans-serif;font-weight:700;color:#fff}
.foot address{font-style:normal}
.foot-h{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#9aa0b5;margin-bottom:.8em}
.foot-links{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot-hours{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;max-width:18rem}
.foot-hours li{display:flex;justify-content:space-between;gap:1rem}
.foot-hours li span:last-child{color:#fff;font-weight:600}
.foot-bottom{border-top:1px solid #33394d;padding-top:1.1rem;padding-bottom:1.4rem;font-size:.85rem}
.link-btn{background:none;border:none;padding:0;font:inherit;color:#fff;text-decoration:underline;cursor:pointer}

/* ------- cookies ------- */
.cookie-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:140;background:#fff;color:var(--atrament);
  border-top:4px solid var(--granat);box-shadow:0 -6px 24px rgba(0,0,0,.25);padding:1.1rem 0
}
.cookie-bar h2{font-size:1.05rem;margin-bottom:.3em}
.cookie-bar p{font-size:.92rem;max-width:56rem;margin-bottom:.8em}
.cookie-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.cookie-actions .btn{font-size:.92rem;padding:.55rem 1.1rem}
.cookie-settings{margin:0 0 1rem;display:grid;gap:.4rem}
.cookie-opt{display:flex;gap:.5rem;align-items:center;font-size:.92rem}

/* ------- wysoki kontrast ------- */
body.hc{--granat:#ffd900;--granat-c:#000;--atrament:#ffd900;--papier:#000;--piasek:#000;--klinkier:#ffd900;--klinkier-c:#fff;--linia:#ffd900;background:#000;color:#ffd900}
body.hc .top,body.hc .sec-alt,body.hc .card,body.hc .quick a,body.hc .organ,body.hc .facts div,body.hc .table-wrap,body.hc .cookie-bar{background:#000;color:#ffd900}
body.hc a,body.hc .brand-name strong,body.hc .brand-name span,body.hc .quick span,body.hc .facts dt,body.hc .reg dt,body.hc .card p{color:#ffd900}
body.hc .nav a{color:#ffd900}
body.hc .nav a:hover{background:#222}
body.hc img:not([src*="logo"]){filter:grayscale(1) contrast(1.2)}
body.hc .hero::after{background:rgba(0,0,0,.75)}
body.hc .plate span{background:#000;color:#ffd900;border-color:#ffd900}
body.hc .btn{background:#000;color:#ffd900;border-color:#ffd900}
body.hc .btn:hover{background:#ffd900;color:#000}
body.hc .nav-cta a{background:#000;color:#ffd900!important;border:2px solid #ffd900}
body.hc thead th{background:#000;color:#ffd900;border-bottom:2px solid #ffd900}
body.hc tbody tr:nth-child(even){background:#111}
body.hc .band-euslugi,body.hc .band-contact,body.hc .foot,body.hc .a11y-bar{background:#000;color:#ffd900;border-top:2px solid #ffd900}
body.hc .band-euslugi p,body.hc .foot,body.hc .foot-h,body.hc .foot a,body.hc .kk-list a{color:#ffd900}
body.hc :focus-visible{outline-color:#fff}

@media print{
  .a11y-bar,.a11y-fab,.cookie-bar,.nav-toggle,.hero-cta,.nav{display:none!important}
  body{background:#fff;color:#000}
}

/* ------- notki i formularz ------- */
.kk-note{font-size:.9rem;color:#dfe3ff;max-width:22rem}
.foot-note{font-size:.82rem;color:#9aa0b5;margin-top:.5rem}
.note-box{background:var(--piasek);border-left:5px solid var(--granat);border-radius:4px;padding:.9rem 1.1rem;font-size:.95rem;max-width:36rem}
body.hc .note-box{background:#000;border:1px solid #ffd900;border-left-width:5px}
body.hc .kk-note,body.hc .foot-note{color:#ffd900}

.form{max-width:46rem}
.form fieldset{border:1px solid var(--linia);border-radius:6px;background:#fff;padding:1rem 1.3rem 1.2rem;margin:0 0 1.4rem}
.form legend{font-family:'Archivo',sans-serif;font-weight:700;color:var(--granat);padding:0 .4rem}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.9rem 1.2rem}
.field{margin:0;display:flex;flex-direction:column;gap:.3rem}
.field label{font-weight:600;font-size:.92rem}
.field input{
  font:inherit;padding:.6rem .7rem;border:2px solid #9a937d;border-radius:4px;background:#fff;color:var(--atrament)
}
.field input:focus{border-color:var(--granat);outline:2px solid var(--granat);outline-offset:1px}
.field input[aria-invalid="true"]{border-color:#b3261e;background:#fdf2f1}
.req{color:#b3261e;font-weight:700}
.form-info{font-size:.88rem;color:#4a4f60;max-width:44rem}
.form-alert{background:#fdf2f1;border-left:5px solid #b3261e;color:#7a1a14;padding:.8rem 1rem;border-radius:4px;font-weight:600}
body.hc .form fieldset{background:#000}
body.hc .field input{background:#000;color:#ffd900;border-color:#ffd900}
body.hc .form-info{color:#ffd900}
body.hc .form-alert{background:#000;border:1px solid #ffd900;color:#ffd900}
