/* =========================================================
   Bluehipo - arkusz główny
   Estetyka: ostre narożniki, hairline'y 1px, jeden akcent.
   Mobile-first; breakpointy 768 / 1024.
   ========================================================= */

:root{
  --ink:#15171A; --ink-2:#4A4F57; --ink-3:#6B717A; --ink-strong:#2E3237;
  --ground:#F3F2EF; --surface:#FFFFFF;
  --line:#D9D7D2; --line-soft:#E2E0DB;
  --dark:#13202D; --dark-2:#182533; --darkest:#0E1823;
  --dark-line:#2A3B4F; --dark-line-2:#3B536C;
  --on-dark:#CAD3DD; --on-dark-2:#AFBCCA; --on-dark-3:#97A6B7;
  --accent:#1F45C4; --accent-ink:#DCE3FA;
  --radius:2px;
  --gutter:20px;            /* margines boczny mobile */
  --sec-y:64px;             /* padding sekcji mobile */
  --maxw:1280px;
  --font-head:'Archivo',sans-serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'Archivo',sans-serif; /* dawniej monospace - usuniete */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ground); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,p,ul,ol,dl,figure,table{margin:0}
button{font-family:inherit}

:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
.dark :focus-visible,.topbar :focus-visible,.site-header :focus-visible{outline-color:#8FA4E8}

.skip{position:absolute; left:-9999px; top:0; z-index:100; background:var(--accent); color:#fff; padding:10px 16px}
.skip:focus{left:0}

.container{max-width:var(--maxw); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter)}

/* ---------- Typografia pomocnicza ---------- */
.eyebrow{margin:0; font-family:var(--font-head); font-size:11px; letter-spacing:.1em; color:var(--accent); text-transform:uppercase}
.eyebrow--muted{color:var(--on-dark-3)}
.lead{font-size:17px; line-height:1.6; color:var(--ink-2)}
.muted{font-weight:400; color:var(--ink-3)}
.mono{font-family:var(--font-head)}

h1,.h1{font-family:var(--font-head); font-stretch:108%; font-weight:750; letter-spacing:-.01em; line-height:1.04}
h2,.h2{font-family:var(--font-head); font-stretch:108%; font-weight:750; letter-spacing:-.01em; line-height:1.08}
h3,.h3{font-family:var(--font-head); font-stretch:106%; font-weight:700; line-height:1.15}
h1{font-size:40px}
h2{font-size:32px}
h3{font-size:20px}

/* ---------- Przyciski ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:12px;
  height:52px; padding:0 24px; border-radius:var(--radius);
  font-size:16px; font-weight:600; border:1px solid transparent; cursor:pointer; text-align:center}
.btn--accent{background:var(--accent); color:#fff}
.btn--accent:hover{background:#1a3aa8; color:#fff}
.btn--dark{background:var(--dark); color:#fff}
.btn--dark:hover{background:var(--darkest); color:#fff}
.btn--ghost{border-color:var(--dark-line-2); color:#fff}
.btn--ghost:hover{color:#fff; border-color:#fff}
.btn--outline{border-color:var(--ink); color:var(--ink)}
.btn--outline:hover{background:var(--ink); color:#fff}
.btn--lg{height:56px; font-size:16px}
.btn--block{width:100%}

.arrow-link{font-weight:600; color:var(--ink); border-bottom:2px solid var(--accent); padding-bottom:4px; display:inline-block}
.arrow-link:hover{color:var(--accent)}

/* ---------- Pasek informacyjny ---------- */
.topbar{display:none; background:var(--darkest); color:var(--on-dark-3);
  font-family:var(--font-head); font-size:12px; letter-spacing:.06em; height:40px}
.topbar__right{display:flex; gap:28px; align-items:center}
.topbar__tel{color:#fff}
.langnav{display:flex; gap:10px}
.langnav a[aria-current]{color:#fff}

/* ---------- Nagłówek ---------- */
.site-header{background:var(--dark); border-bottom:1px solid var(--dark-line);
  height:64px; display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--gutter)}
.brand{display:flex; align-items:center; gap:10px; color:#fff}
.brand:hover{color:#fff}
.brand__mark{flex:none}
.brand__text{display:flex; flex-direction:column; gap:3px}
.brand__name{font-family:var(--font-head); font-stretch:125%; font-weight:800; font-size:18px; letter-spacing:.02em; line-height:1}
.brand__tag{display:none; font-family:var(--font-head); font-size:10px; letter-spacing:.14em; color:var(--on-dark-3); line-height:1}
.mainnav{display:none}
.mobilebar{display:flex; gap:8px}
.iconbtn{width:44px; height:44px; display:flex; align-items:center; justify-content:center;
  border-radius:var(--radius); border:1px solid var(--dark-line-2); background:transparent; color:#fff}
.iconbtn--accent{background:var(--accent); border-color:var(--accent)}

.mobilemenu{background:var(--dark); border-bottom:1px solid var(--dark-line);
  padding:8px var(--gutter) 20px; display:flex; flex-direction:column; gap:2px}
.mobilemenu[hidden]{display:none}
.mobilemenu a{color:#E6E8EB; padding:14px 4px; font-size:16px; font-weight:500; border-bottom:1px solid var(--dark-line)}
.mobilemenu a[aria-current]{color:#fff}
.mobilemenu .btn{margin-top:14px}
.mobilemenu__sub{padding-left:20px !important; color:var(--on-dark-2) !important; font-weight:400 !important}
.mobilemenu__sub::before{content:"- "; color:var(--accent)}

/* ---------- Sekcje ---------- */
.section{padding:var(--sec-y) 0}
.section--ground{background:var(--ground)}
.section--surface{background:var(--surface)}
.section--dark{background:var(--dark); color:#fff}
.section--accent{background:var(--accent); color:#fff}
.section__head{max-width:760px}
.section__head h2{margin-top:14px}
.section__intro{margin-top:18px; font-size:16px; line-height:1.6; color:var(--ink-2)}
.section--dark .section__intro{color:var(--on-dark-2)}

/* ---------- HERO ---------- */
.hero{background:var(--dark); color:#fff; padding:48px 0 0}
.hero__grid{display:flex; flex-direction:column; gap:36px}
.hero__eyebrow{color:var(--on-dark-3)}
.hero h1{margin-top:18px; font-size:40px}
.hero__lead{margin-top:20px; font-size:17px; line-height:1.55; color:var(--on-dark)}
.hero__cta{display:flex; flex-direction:column; gap:12px; margin-top:28px}
.hero__note{margin-top:0; font-family:var(--font-head); font-size:12px; letter-spacing:.06em; color:#8797A9}
.hero__figure{display:none}
.hero__photo{margin:0; position:relative}
.hero__photo img{width:100%; height:auto; display:block; border:1px solid var(--dark-line)}
.hero__photo figcaption{position:absolute; left:0; bottom:0; margin:0; padding:10px 14px;
  background:rgba(14,24,35,.72); color:#fff; font-family:var(--font-head); font-weight:600;
  font-size:11px; letter-spacing:.06em}

/* pasek parametrów */
.specs{list-style:none; margin:44px calc(-1*var(--gutter)) 0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--dark-line)}
.specs li{padding:22px var(--gutter); border-bottom:1px solid var(--dark-line);
  display:flex; flex-direction:column; gap:8px}
.specs li:nth-child(even){border-left:1px solid var(--dark-line)}
.specs__n{font-family:var(--font-head); font-stretch:110%; font-weight:700; font-size:22px; line-height:1}
.specs__l{font-family:var(--font-head); font-size:10px; letter-spacing:.08em; color:var(--on-dark-3)}

/* rysunek techniczny */
.drawing{margin:0; background:var(--dark-2); border:1px solid var(--dark-line)}
.drawing__meta{display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid var(--dark-line); font-family:var(--font-head); font-size:11px;
  letter-spacing:.06em; color:var(--on-dark-3)}
.drawing__cell{padding:14px 16px; border-right:1px solid var(--dark-line)}
.drawing__cell:last-child{border-right:0}
.drawing__cell b{color:#fff; font-weight:500}

/* ---------- USŁUGI (lista mobile / grid desktop) ---------- */
.svc-list{list-style:none; margin:32px 0 0; padding:0; border-top:1px solid var(--ink)}
.svc-list li{padding:20px 0; border-bottom:1px solid var(--line)}
.svc-list h3{font-size:20px}
.svc-list p{margin:6px 0 0; font-size:15px; line-height:1.55; color:var(--ink-2)}

.svc-grid{display:none}

/* ---------- PARK MASZYNOWY ---------- */
.park__figure{margin:28px 0 0}
.ph{background:repeating-linear-gradient(45deg,rgba(21,23,26,.07) 0 1px,transparent 1px 12px) #E6E4DF;
  display:flex; align-items:center; justify-content:center; color:#5B616A;
  font-family:var(--font-head); font-size:11px; letter-spacing:.06em}
.park__img{width:100%; height:240px; object-fit:cover; background:#E6E4DF}
.park__cap{margin-top:14px; font-family:var(--font-head); font-size:12px; letter-spacing:.06em; color:var(--ink-3)}

.machines{margin:24px 0 0; border-top:1px solid var(--ink)}
.machines__row{padding:16px 0; border-bottom:1px solid var(--line-soft);
  display:flex; justify-content:space-between; gap:12px; align-items:baseline}
.machines__name{font-weight:600}
.machines__val{font-family:var(--font-head); font-size:13px; text-align:right}
.machines__val--todo{color:var(--ink-3)}
.note{margin-top:12px; font-size:12px; color:var(--ink-3)}

/* tabela desktop */
.machtable{display:none}

/* ---------- PROCES ---------- */
.steps{list-style:none; margin:32px 0 0; padding:0; display:flex; flex-direction:column; gap:24px}
.steps li{border-top:1px solid var(--dark-line-2); padding-top:18px}
.steps__k{font-family:var(--font-head); font-size:11px; letter-spacing:.08em; color:var(--on-dark-3)}
.steps h3{margin:8px 0 6px; font-size:19px}
.steps p{margin:0; font-size:15px; line-height:1.55; color:var(--on-dark-2)}

/* ---------- REALIZACJE ---------- */
.gallery{margin:28px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 12px}
.gallery figure{margin:0}
.gallery__img{width:100%; height:140px; object-fit:cover; background:#E1DFDA}
.gallery figcaption{margin-top:10px; font-weight:600; font-size:15px}
.gallery__more{margin-top:28px}

/* ---------- O FIRMIE ---------- */
.about p{margin-top:20px; font-size:16px; line-height:1.65; color:var(--ink-strong)}
.facts{margin:24px 0 0; border-top:1px solid var(--ink); display:grid; grid-template-columns:110px minmax(0,1fr); font-size:15px}
.facts dt{padding:14px 0; border-bottom:1px solid var(--line-soft); font-family:var(--font-head); font-size:11px; letter-spacing:.08em; color:var(--ink-3)}
.facts dd{margin:0; padding:14px 0; border-bottom:1px solid var(--line-soft)}
.facts dd.mono{font-family:var(--font-head)}

/* ---------- KONTAKT ---------- */
.contact__head .eyebrow{color:var(--accent-ink)}
.contact address{margin-top:28px; font-style:normal; display:flex; flex-direction:column; gap:14px}
.contact__phone{font-family:var(--font-head); font-stretch:110%; font-weight:700; font-size:32px; color:#fff; line-height:1}
.contact__phone:hover{color:#fff}
.contact a{color:#fff}
.contact__addr{font-size:15px; line-height:1.55; color:var(--accent-ink)}
.quote-hints{margin-top:32px; padding-top:28px; border-top:1px solid rgba(255,255,255,.25); list-style:none}
.quote-hints p{margin:0 0 14px; font-family:var(--font-head); font-weight:600; font-size:11px; letter-spacing:.08em; color:#fff}
.quote-hints ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.quote-hints li{position:relative; padding-left:24px; font-size:15px; line-height:1.5; color:#fff}
.quote-hints li::before{content:""; position:absolute; left:0; top:10px; width:12px; height:2px; background:#fff}

/* tekst tylko dla czytników ekranu */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0}

/* karta kontaktu (zamiast formularza) */
.contact-card{margin-top:32px; background:#fff; color:var(--ink); border-radius:var(--radius)}
.contact-card__row{padding:24px 20px}
.contact-card__row + .contact-card__row{border-top:1px solid var(--line)}
.contact-card__h{font-size:11px; letter-spacing:.08em; color:var(--ink-3)}
.contact .contact-card__big,.contact-card__big{display:inline-block; margin-top:10px; font-family:var(--font-head); font-stretch:108%;
  font-weight:700; font-size:26px; line-height:1.1; color:var(--dark); overflow-wrap:anywhere}
.contact .contact-card__big:hover{color:var(--accent)}
.contact-card__p{margin-top:10px; font-size:15px; line-height:1.55; color:var(--ink-2)}
.contact-card__files{margin-top:8px; font-size:11px; letter-spacing:.06em; color:var(--ink-3)}
.contact .contact-card__btn{margin-top:20px; color:#fff; width:100%}

/* ---------- Breadcrumbs / page hero ---------- */
.page-hero{background:var(--dark); color:#fff; padding:40px 0 48px}
.page-hero h1{margin-top:14px; font-size:36px}
.page-hero .lead{margin-top:18px; color:var(--on-dark); max-width:680px}
.crumbs__list{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px;
  font-family:var(--font-head); font-size:12px; letter-spacing:.04em; color:var(--on-dark-3)}
.crumbs__item + .crumbs__item::before{content:"/"; margin-right:8px; color:var(--dark-line-2)}
.crumbs__item a{color:var(--on-dark-2)}
.crumbs__item[aria-current]{color:#fff}
.page-hero--light{background:var(--ground); color:var(--ink)}
.page-hero--light .lead{color:var(--ink-2)}
.page-hero--light .crumbs__list{color:var(--ink-3)}
.page-hero--light .crumbs__item a{color:var(--ink-2)}
.page-hero--light .crumbs__item[aria-current]{color:var(--ink)}

/* ---------- Bloki treści podstron ---------- */
.prose{max-width:880px}
.prose p{margin-top:18px; font-size:17px; line-height:1.7; color:var(--ink-strong)}
.prose h2{margin-top:48px; font-size:28px}
.prose h3{margin-top:32px; font-size:20px}
.prose ul{margin-top:18px; padding-left:0; list-style:none}
.prose ul li{position:relative; padding-left:22px; margin-top:10px; font-size:16px; line-height:1.6; color:var(--ink-strong)}
.prose ul li::before{content:""; position:absolute; left:0; top:10px; width:10px; height:2px; background:var(--accent)}

.cards{margin-top:32px; display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line)}
.card{background:#fff; padding:24px; display:flex; flex-direction:column}
.card__n{display:flex; justify-content:space-between; font-family:var(--font-head); font-size:12px; letter-spacing:.08em}
.card__n .t{color:var(--accent)}
.card h3{margin:32px 0 10px}
.card p{margin:0; font-size:15px; line-height:1.6; color:var(--ink-2)}
.card__link{margin-top:auto; padding-top:20px; font-weight:600; color:var(--ink)}
.card__link:hover{color:var(--accent)}

.cta-band{background:var(--accent); color:#fff}
.cta-band .container{padding-top:48px; padding-bottom:48px}
.cta-band h2{font-size:28px}
.cta-band p{margin-top:14px; color:var(--accent-ink); max-width:560px}
.cta-band__row{margin-top:28px; display:flex; flex-direction:column; gap:12px}

/* =========================================================
   ≥ 768px - tablet
   ========================================================= */
@media (min-width:768px){
  :root{--gutter:40px; --sec-y:88px}
  h1{font-size:56px}
  h2{font-size:40px}
  .hero h1{font-size:60px}
  .page-hero h1{font-size:48px}
  .specs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .specs li:nth-child(even){border-left:0}
  .specs li{border-left:1px solid var(--dark-line)}
  .specs li:first-child{border-left:0}
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 20px}
  .gallery__img{height:200px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px}
  .contact-card__row{padding:32px}
  .contact .contact-card__btn{width:auto}
  .facts{grid-template-columns:120px minmax(0,1fr)}
}

/* =========================================================
   ≥ 1024px - desktop
   ========================================================= */
@media (min-width:1024px){
  :root{--gutter:80px; --sec-y:120px}
  body{font-size:16px}
  .topbar{display:flex; align-items:center; justify-content:space-between; padding:0 var(--gutter)}
  .site-header{height:88px; padding:0 var(--gutter)}
  .brand__tag{display:block}
  .brand__name{font-size:22px; font-stretch:125%}

  h1{font-size:76px}
  h2{font-size:52px; line-height:1.05}
  h3{font-size:24px; font-stretch:108%}
  .hero{padding:96px 0 0}
  .hero__grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center}
  .hero h1{font-size:76px; font-stretch:112%; font-weight:750; line-height:1}
  .hero__lead{font-size:20px; max-width:600px}
  .hero__cta{flex-direction:row; gap:16px; margin-top:44px}
  .hero__cta .btn{height:60px; padding:0 28px; font-size:17px}
  .hero__note{margin-top:36px}
  .hero__figure{display:block}
  .hero__photo{height:auto}
  .hero__photo img{height:480px; object-fit:cover; object-position:center}
  .hero__photo figcaption{font-size:12px; padding:12px 16px}
  .specs{margin-top:88px; grid-template-columns:repeat(4,minmax(0,1fr))}
  .specs li{padding:30px 28px 36px}
  .specs li:first-child{padding-left:0}
  .specs__n{font-size:32px; font-stretch:112%}
  .specs__l{font-size:12px}

  .section__head{display:flex; justify-content:space-between; align-items:end; gap:64px; max-width:none}
  .section__head .section__head-main{max-width:720px}
  .section__intro{margin-top:0; max-width:440px; font-size:17px}

  .svc-list{display:none}
  .svc-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px;
    background:var(--line); border:1px solid var(--line); margin-top:64px}
  .svc-grid .card{min-height:300px; padding:32px}
  .svc-grid .card h3{margin-top:56px}

  .park{display:grid; grid-template-columns:5fr 7fr; gap:72px; align-items:start}
  .park__figure{margin:0}
  .park__img{height:640px}
  .machines{display:none}
  .machtable{display:table; width:100%; border-collapse:collapse; margin-top:48px; font-size:15px}
  .machtable th,.machtable td{padding:20px 0; border-bottom:1px solid var(--line-soft); text-align:left}
  .machtable thead th{padding:0 0 14px; border-bottom:1px solid var(--ink);
    font-family:var(--font-head); font-weight:500; font-size:11px; letter-spacing:.08em; color:var(--ink-3)}
  .machtable thead th:last-child,.machtable td:last-child{text-align:right}
  .machtable tbody th{font-weight:600}
  .machtable td:last-child{font-family:var(--font-head); font-size:14px}
  .machtable td.todo{color:var(--ink-3)}

  .steps{grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px; margin-top:64px}
  .steps h3{font-size:22px; font-stretch:108%}
  .steps li:first-child{position:relative}
  .steps li:first-child::before{content:""; position:absolute; top:-2px; left:0; width:48px; height:3px; background:var(--accent)}

  .gallery{grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px 24px; margin-top:64px}
  .gallery__img{height:240px}
  .gallery figcaption{font-family:var(--font-head); font-stretch:106%; font-weight:650; font-size:18px}

  .about{display:grid; grid-template-columns:7fr 5fr; gap:96px; align-items:start}
  .about__lead p{font-size:18px}
  .facts{margin-top:8px}

  .contact{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start}
  .contact__phone{font-size:40px}
  .contact-card{margin-top:0}
  .contact-card__row{padding:40px}
  .contact-card__big{font-size:34px}
  .page-hero h1{font-size:56px}

  .cards{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cta-band .container{padding-top:96px; padding-bottom:96px}
  .cta-band h2{font-size:40px}
  .cta-band__row{flex-direction:row}
}


/* =========================================================
   ≥ 1280px - pełne menu poziome (9 zakładek nie mieści się węziej)
   ========================================================= */
@media (min-width:1280px){
  .site-header{padding:0 40px}
  .mainnav{display:flex; align-items:center; gap:22px}
  .mainnav a{color:#E6E8EB; font-size:14px; font-weight:500}
  .mainnav a[aria-current]{color:#fff}
  .mainnav__cta{display:none}
  .hasmenu{position:relative; display:flex; align-items:center}
  .hasmenu__top{display:inline-flex; align-items:center; gap:6px; color:#E6E8EB; font-size:14px; font-weight:500}
  .hasmenu__top[aria-current]{color:#fff}
  .submenu{position:absolute; top:100%; left:-16px; min-width:220px; background:var(--dark-2);
    border:1px solid var(--dark-line); padding:8px 0; display:flex; flex-direction:column;
    opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s, transform .15s; z-index:40}
  .hasmenu:hover .submenu,.hasmenu:focus-within .submenu{opacity:1; visibility:visible; transform:translateY(0)}
  .submenu a{padding:11px 20px; color:var(--on-dark); font-size:14px; font-weight:500}
  .submenu a:hover,.submenu a[aria-current]{color:#fff; background:rgba(255,255,255,.05)}
  .mobilebar{display:none}
  .mobilemenu{display:none !important}
}
@media (min-width:1440px){
  .site-header{padding:0 var(--gutter)}
}
@media (min-width:1560px){
  .mainnav{gap:28px}
  .mainnav a,.hasmenu__top{font-size:15px}
  .mainnav .mainnav__cta{display:inline-flex; height:48px; color:#fff}
}

/* ---------- STOPKA ---------- */
.site-footer{background:var(--darkest); color:var(--on-dark-3); font-size:14px; padding:48px 0 32px}
.footer__grid{display:grid; grid-template-columns:1fr; gap:32px}
.footer__logo{margin:0; font-family:var(--font-head); font-stretch:125%; font-weight:800; font-size:20px; color:#fff; letter-spacing:.02em}
.footer__desc{margin:14px 0 0; max-width:340px; line-height:1.6}
.footer__head{margin:0 0 16px; font-family:var(--font-head); font-size:11px; letter-spacing:.1em; color:#fff}
.footer__col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.footer__col a:hover{color:#fff}
.footer__contact{margin:0; line-height:1.8}
.footer__tel{color:#fff; font-weight:600}
.footer__bottom{margin-top:40px; padding-top:24px; border-top:1px solid var(--dark-line);
  display:flex; flex-direction:column; gap:14px; font-size:13px}
.footer__legal{display:flex; gap:24px}
.footer__legal a:hover,.footer__bottom a:hover{color:#fff}

@media (min-width:768px){
  .footer__grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:48px}
  .footer__bottom{flex-direction:row; justify-content:space-between; align-items:center}
}
@media (min-width:1024px){
  .site-footer{padding:80px 0 40px}
  .footer__grid{grid-template-columns:4fr 3fr 3fr 3fr}
  .footer__bottom{margin-top:72px}
}

/* ---------- Galeria grupowana + lightbox ---------- */
.gallery__item{margin:0}
.gallery__open{display:block; width:100%; padding:0; border:0; background:none; cursor:pointer; position:relative}
.gallery__open .gallery__img{transition:opacity .15s}
.gallery__open:hover .gallery__img{opacity:.9}
.gallery__count{position:absolute; right:10px; bottom:10px; background:rgba(14,24,35,.82); color:#fff;
  font-family:var(--font-head); font-size:11px; letter-spacing:.04em; padding:5px 9px; border-radius:2px}
.gallery__open::after{content:""; position:absolute; inset:0; box-shadow:inset 0 0 0 0 var(--accent); transition:box-shadow .15s}
.gallery__open:hover::after,.gallery__open:focus-visible::after{box-shadow:inset 0 0 0 2px var(--accent)}

.lightbox{position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center}
.lightbox[hidden]{display:none}
.lightbox__backdrop{position:absolute; inset:0; background:rgba(9,16,24,.92)}
.lightbox__dialog{position:relative; z-index:1; width:100%; max-width:1000px; padding:0 16px;
  display:flex; align-items:center; gap:8px}
.lightbox__figure{margin:0; flex:1; min-width:0; text-align:center}
.lightbox__img{max-width:100%; max-height:78vh; margin:0 auto; background:var(--darkest); display:block}
.lightbox__cap{margin-top:14px; display:flex; gap:14px; align-items:baseline; justify-content:center;
  color:#fff; font-size:15px; flex-wrap:wrap}
.lightbox__counter{color:var(--on-dark-3); font-size:13px}
.lightbox__btn{flex:none; width:48px; height:48px; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.2); border-radius:2px; cursor:pointer}
.lightbox__btn:hover{background:rgba(255,255,255,.16)}
.lightbox__close{position:absolute; top:-56px; right:16px}
@media (max-width:640px){
  .lightbox__close{top:8px; right:8px}
  .lightbox__prev{position:absolute; left:8px; top:50%; transform:translateY(-50%); z-index:2}
  .lightbox__next{position:absolute; right:8px; top:50%; transform:translateY(-50%); z-index:2}
}

/* ---------- Obrazki w treści podstron ---------- */
.figure-in{margin:32px 0 0}
.figure-in img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block; background:#E6E4DF; border:1px solid var(--line)}
.figure-in figcaption{margin-top:12px; font-family:var(--font-head); font-size:12px; letter-spacing:.04em; color:var(--ink-3)}
.textmedia{display:grid; grid-template-columns:1fr; gap:32px; align-items:start}
.textmedia__media img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block; background:#E6E4DF; border:1px solid var(--line)}
.textmedia__media figcaption{margin-top:12px; font-family:var(--font-head); font-size:12px; letter-spacing:.04em; color:var(--ink-3)}
.media-strip{margin-top:36px; display:grid; grid-template-columns:repeat(2,1fr); gap:16px}
.media-strip img{width:100%; height:220px; object-fit:cover; display:block; background:#E6E4DF; border:1px solid var(--line)}
@media (min-width:768px){
  .textmedia{grid-template-columns:1fr 1fr; gap:48px}
  .textmedia--rev .textmedia__text{order:2}
  .media-strip{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:1024px){
  .textmedia{gap:72px; align-items:center}
}

/* ---------- Polityka jakości / Misja firmy ---------- */
.iso{display:grid; grid-template-columns:1fr; border:1px solid var(--line)}
.iso__mark{background:var(--dark); color:#fff; padding:40px 24px; display:flex; flex-direction:column; gap:12px; justify-content:center}
.iso__name{font-family:var(--font-head); font-stretch:112%; font-weight:800; font-size:48px; line-height:1}
.iso__since{font-size:12px; letter-spacing:.08em; color:var(--on-dark-3)}
.iso__text{padding:32px 24px; display:flex; flex-direction:column; justify-content:center}
.iso__text p{margin-top:16px; font-size:18px; line-height:1.6; color:var(--ink-strong)}

.stats{list-style:none; margin:48px 0 0; padding:0; display:grid; grid-template-columns:1fr; border-top:1px solid var(--ink)}
.stats li{padding:24px 0; border-bottom:1px solid var(--line); display:flex; flex-direction:column; gap:10px}
.stats__n{font-family:var(--font-head); font-stretch:112%; font-weight:750; font-size:44px; line-height:1; color:var(--dark)}
.stats__l{font-size:12px; letter-spacing:.06em; color:var(--ink-3)}
.section--dark .stats{border-top-color:var(--dark-line-2)}
.section--dark .stats li{border-bottom-color:var(--dark-line)}
.section--dark .stats__n{color:#fff}
.section--dark .stats__l{color:var(--on-dark-3)}

.textmedia__text .prose p:first-child{margin-top:20px}
.iso-more{margin-top:24px}
.iso-more .prose strong{color:var(--ink)}
.cards--eco{margin-top:0}
.cards--eco .card h3{margin-top:24px}
.cards--eco .card p + p{margin-top:12px}

@media (min-width:768px){
  .iso{grid-template-columns:minmax(260px,1fr) 2fr}
  .iso__mark{padding:56px 40px}
  .iso__name{font-size:64px}
  .iso__text{padding:56px 48px}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stats li{padding:28px 28px 32px; border-left:1px solid var(--line)}
  .stats li:first-child{padding-left:0; border-left:0}
  .section--dark .stats li{border-left-color:var(--dark-line)}
  .textmedia{align-items:start}
}
@media (min-width:1024px){
  .stats__n{font-size:60px}
  .cards--eco{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cards--eco .card{padding:40px}
}

/* ---------- Etykiety w IBM Plex Sans (czyste, bez charakteru "technicznego") ---------- */
.eyebrow,.specs__l,.card__n,.steps__k,.drawing__meta,.crumbs__list,.footer__head,
.gallery__count,.topbar,.machines__val,.machtable thead th,.facts dt,.contact-card__h,.contact-card__files,
.lightbox__counter,.hero__note,.park__cap,.mono,.stats__l,.iso__since{font-family:var(--font-body); font-weight:600}
.eyebrow,.footer__head,.specs__l,.card__n,.steps__k{letter-spacing:.06em}
.machines__val,.machtable td,.facts dd.mono{font-weight:500}

/* zabezpieczenie przed poziomym przewijaniem na mobile */
html,body{overflow-x:hidden}
.hero__note{overflow-wrap:anywhere}

/* preferencje ruchu */
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
