/* ═══════════════════════════════════════════════════════════
   dezakowski.pl — wspólny arkusz stylów (wersja wielostronicowa)
   Fonty: Sora (nagłówki) + Instrument Sans (tekst)
   ═══════════════════════════════════════════════════════════ */
:root{
  --ink:#12213B;          /* granat — tekst główny */
  --ink-soft:#3D4B63;     /* przygaszony tekst */
  --muted:#6B7688;
  --dusk:#1D4ED8;         /* akcent — niebieski atramentowy */
  --dusk-deep:#153CA8;
  --powder:#E9F0FC;       /* pudrowy błękit — tła akcentów */
  --sand:#F6F3EC;         /* piaskowe tło sekcji poligrafii */
  --paper:#FFFFFF;
  --cloud:#F7F9FC;
  --line:#E3E8F0;
  --gold:#B98A2F;
  --ok:#0F7B4D; --warn:#9A6700; --err:#B3261E;
  --r-sm:10px; --r-md:16px; --r-lg:22px;
  --shadow-sm:0 1px 2px rgba(18,33,59,.06),0 4px 14px rgba(18,33,59,.06);
  --shadow-md:0 6px 30px rgba(18,33,59,.10);
  --font-display:'Sora',system-ui,sans-serif;
  --font-body:'Instrument Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--dusk);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--font-display);line-height:1.18;letter-spacing:-.015em;color:var(--ink)}
h1{font-size:clamp(2rem,4.4vw,3.2rem);font-weight:700}
h2{font-size:clamp(1.5rem,2.8vw,2.15rem);font-weight:700}
h3{font-size:1.12rem;font-weight:600}
.container{max-width:1180px;margin:0 auto;padding:0 clamp(1.1rem,4vw,2.2rem)}
section{padding:clamp(3.4rem,7vw,5.6rem) 0}
.on-sand{background:var(--sand)}
.icn{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:3px solid var(--dusk);outline-offset:2px;border-radius:4px}

/* ── reveal ── */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* ── NAV ── */
nav.top{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-inner{max-width:1180px;margin:0 auto;padding:.65rem clamp(1.1rem,4vw,2.2rem);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.nav-logo{display:flex;align-items:center;gap:.7rem;color:var(--ink)}
.nav-logo:hover{text-decoration:none}
.monogram-svg{width:42px;height:42px;border-radius:12px;flex:none}
.brand{font-family:var(--font-display);font-weight:600;font-size:.98rem;line-height:1.15}
.brand small{display:block;font-family:var(--font-body);font-weight:500;font-size:.72rem;color:var(--muted);letter-spacing:.03em}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-links{display:flex;align-items:center;gap:1.25rem;list-style:none}
.nav-links a{color:var(--ink-soft);font-weight:500;font-size:.93rem;padding:.35rem 0}
.nav-links a:hover{color:var(--ink);text-decoration:none}
.nav-links a.active{color:var(--dusk);font-weight:600}
.btn-nav{background:var(--ink);color:#fff !important;padding:.55rem 1.1rem !important;border-radius:999px;font-weight:600 !important}
.btn-nav:hover{background:var(--dusk-deep)}
.lang-switcher{display:flex;gap:.4rem;align-items:center}
.lang-btn{display:grid;place-items:center;width:34px;height:26px;border-radius:6px;border:1px solid var(--line);overflow:hidden;opacity:.55;transition:opacity .2s}
.lang-btn svg{width:100%;height:100%}
.lang-btn:hover,.lang-btn.active{opacity:1;border-color:var(--ink)}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.4rem}
.hamburger span{width:24px;height:2px;background:var(--ink);border-radius:2px}
@media (max-width:960px){
  .hamburger{display:flex}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:1rem clamp(1.1rem,4vw,2.2rem);gap:.2rem;box-shadow:var(--shadow-md)}
  .nav-links.open{display:flex}
  .nav-links a{display:block;padding:.6rem 0}
  .btn-nav{text-align:center;margin-top:.5rem}
}

/* ── HERO ── */
#hero{padding-top:clamp(2.6rem,6vw,4.6rem);background:linear-gradient(180deg,var(--cloud) 0%,#fff 90%)}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.hero-eyebrow{font-weight:600;font-size:.85rem;letter-spacing:.09em;text-transform:uppercase;color:var(--dusk);display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.hero-eyebrow .dot{width:4px;height:4px;border-radius:50%;background:var(--dusk);display:inline-block}
.hero-title{margin:.8rem 0 .3rem}
.hero-title em{font-style:normal;color:var(--dusk)}
.hero-subtitle{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--gold);margin-bottom:.9rem}
.hero-desc{color:var(--ink-soft);max-width:56ch}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.6rem 0 2rem}
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--dusk);color:#fff;padding:.85rem 1.5rem;border-radius:999px;font-weight:600;font-size:.97rem;transition:background .2s,transform .2s}
.btn-primary:hover{background:var(--dusk-deep);text-decoration:none;transform:translateY(-1px)}
.btn-outline{display:inline-flex;align-items:center;gap:.5rem;border:1.5px solid var(--ink);color:var(--ink);padding:.85rem 1.5rem;border-radius:999px;font-weight:600;font-size:.97rem}
.btn-outline:hover{background:var(--ink);color:#fff;text-decoration:none}
.hero-stats{display:flex;gap:clamp(1.2rem,3vw,2.4rem);flex-wrap:wrap}
.stat-val{font-family:var(--font-display);font-weight:700;font-size:1.55rem;color:var(--ink)}
.stat-lbl{font-size:.82rem;color:var(--muted)}
.hero-media{position:relative}
.hero-photo{border-radius:var(--r-lg);box-shadow:var(--shadow-md);aspect-ratio:10/11;object-fit:cover;width:100%}
.chip{position:absolute;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:.7rem .95rem}
.chip-badge{bottom:1.1rem;left:-1.4rem;display:flex;gap:.7rem;align-items:center;max-width:280px}
.chip-badge .ring{width:44px;height:44px;border-radius:50%;background:var(--powder);color:var(--dusk);display:grid;place-items:center;flex:none}
.chip-badge strong{font-family:var(--font-display);font-size:.9rem;display:block}
.chip-badge span{font-size:.76rem;color:var(--muted)}
.chip-translate{top:1.1rem;right:-1rem;min-width:230px}
.chip-cap{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}
.pair{font-family:var(--font-display);font-weight:600;font-size:1rem;display:flex;gap:.5rem;align-items:baseline;transition:opacity .35s}
.pair.fading{opacity:0}
.pair .arrow{color:var(--gold)}
.pair .de{color:var(--dusk)}
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr}
  .chip-badge{left:.8rem}
  .chip-translate{right:.8rem}
}

/* ── nagłówek podstrony ── */
.page-hero{padding:clamp(2.6rem,6vw,4rem) 0 clamp(2rem,4vw,3rem);background:linear-gradient(180deg,var(--cloud),#fff)}
.page-hero .lead{color:var(--ink-soft);max-width:66ch;margin-top:.9rem;font-size:1.05rem}
.breadcrumbs{font-size:.82rem;color:var(--muted);margin-bottom:1rem}
.breadcrumbs a{color:var(--muted)}
.breadcrumbs span{margin:0 .35rem}

/* ── sekcje ── */
.section-header{max-width:760px;margin-bottom:clamp(1.8rem,4vw,2.8rem)}
.section-eyebrow{font-weight:600;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
.section-header p:not(.section-eyebrow){color:var(--ink-soft);margin-top:.7rem}

/* filary na stronie głównej */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.pillar{display:flex;flex-direction:column;gap:.8rem;background:var(--cloud);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.8rem;transition:transform .2s,box-shadow .2s;color:var(--ink)}
.pillar:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow-md)}
.pillar .pillar-icon{width:52px;height:52px;border-radius:14px;background:var(--powder);color:var(--dusk);display:grid;place-items:center}
.pillar p{color:var(--ink-soft);font-size:.95rem}
.pillar .go{margin-top:auto;font-weight:600;color:var(--dusk)}
.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.4rem}
.quick-link{display:flex;align-items:center;gap:.7rem;border:1px solid var(--line);border-radius:var(--r-md);padding:1rem 1.2rem;font-weight:600;color:var(--ink);background:#fff}
.quick-link:hover{border-color:var(--dusk);color:var(--dusk);text-decoration:none}
@media (max-width:860px){.pillars{grid-template-columns:1fr}.quick-links{grid-template-columns:1fr}}

/* usługi */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.service-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.7rem;display:flex;flex-direction:column;gap:.8rem;box-shadow:var(--shadow-sm)}
.service-tag{align-self:flex-start;background:var(--powder);color:var(--dusk);font-weight:600;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;padding:.28rem .7rem;border-radius:999px}
.service-card p{color:var(--ink-soft);font-size:.95rem}
.service-examples{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:auto}
.service-examples span{font-size:.78rem;background:var(--cloud);border:1px solid var(--line);border-radius:999px;padding:.25rem .65rem;color:var(--ink-soft)}
@media (max-width:960px){.services-grid{grid-template-columns:1fr}}

/* cennik */
.pricing-table{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}
.pricing-row{display:grid;grid-template-columns:1.1fr 2fr .7fr .7fr;gap:.5rem;padding:1rem 1.4rem;border-top:1px solid var(--line);align-items:center}
.pricing-head{background:var(--ink);color:#fff;border-top:0;font-family:var(--font-display);font-weight:600;font-size:.85rem;letter-spacing:.04em}
.p-name{font-weight:600}
.p-desc{color:var(--ink-soft);font-size:.9rem}
.p-net,.p-gross{font-family:var(--font-display);font-weight:600;white-space:nowrap}
.p-gross{color:var(--dusk)}
.pricing-note{margin-top:1.2rem;font-size:.88rem;color:var(--muted);max-width:80ch}
.pricing-cta{margin-top:1.6rem}
@media (max-width:820px){
  .pricing-head{display:none}
  .pricing-row{grid-template-columns:1fr;gap:.25rem;padding:1.1rem 1.2rem}
  .p-net::before,.p-gross::before{content:attr(data-label)": ";font-family:var(--font-body);font-weight:500;color:var(--muted);font-size:.82rem}
}

/* poradniki */
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.guide-block{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.5rem}
.guide-block h3{margin-bottom:.55rem}
.guide-block p{color:var(--ink-soft);font-size:.95rem}
@media (max-width:860px){.guide-grid{grid-template-columns:1fr}}

/* poligrafia */
.print-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,3.6rem);align-items:center;margin-bottom:clamp(2.4rem,5vw,3.6rem)}
.print-intro-text>p{color:var(--ink-soft);margin-top:.8rem}
.mini-feats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.4rem}
.mini-feat{display:flex;gap:.7rem;align-items:flex-start}
.mini-feat .icn{color:var(--dusk);flex:none;margin-top:.15rem}
.mini-feat strong{font-family:var(--font-display);font-size:.92rem;display:block}
.mini-feat span{font-size:.82rem;color:var(--muted)}
.print-media{position:relative}
.print-photo{border-radius:var(--r-lg);box-shadow:var(--shadow-md);aspect-ratio:4/3;object-fit:cover;width:100%}
.chip-flow{bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:.6rem;align-items:center;white-space:nowrap}
.chip-flow .step{display:inline-flex;gap:.35rem;align-items:center;font-weight:600;font-size:.84rem}
.chip-flow .icn{width:17px;height:17px;color:var(--dusk)}
.chip-flow .sep{color:var(--gold)}
.print-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.print-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--shadow-sm)}
.print-card-icon{width:48px;height:48px;border-radius:13px;background:var(--powder);color:var(--dusk);display:grid;place-items:center;margin-bottom:.9rem}
.print-card p{color:var(--ink-soft);font-size:.93rem;margin:.5rem 0 .8rem}
.print-card ul{list-style:none}
.print-card li{font-size:.87rem;color:var(--ink-soft);padding-left:1.2rem;position:relative;margin:.3rem 0}
.print-card li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--gold)}
@media (max-width:960px){.print-intro{grid-template-columns:1fr}.print-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.print-grid{grid-template-columns:1fr}.mini-feats{grid-template-columns:1fr}}

/* dlaczego / karty */
.photo-strip{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1rem;margin-bottom:2.2rem}
.photo-strip img{border-radius:var(--r-md);aspect-ratio:4/3;object-fit:cover;width:100%;height:100%}
@media (max-width:760px){.photo-strip{grid-template-columns:1fr;}.photo-strip img:nth-child(n+2){display:none}}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:1.5rem}
.card-icon{width:46px;height:46px;border-radius:12px;background:var(--powder);color:var(--dusk);display:grid;place-items:center;margin-bottom:.8rem}
.card p{color:var(--ink-soft);font-size:.92rem;margin-top:.4rem}
@media (max-width:960px){.cards-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.cards-grid{grid-template-columns:1fr}}

/* FAQ */
.faq-item{border:1px solid var(--line);border-radius:var(--r-md);padding:1.3rem 1.5rem;margin-bottom:.9rem;background:#fff}
.faq-item h3{margin-bottom:.4rem}
.faq-item p{color:var(--ink-soft);font-size:.95rem}

/* opinie */
/* ── opinie Google (karta wizytówki + kafelki z /opinie.json) ── */
.gr-card{display:flex;align-items:center;justify-content:flex-start;gap:1.1rem 1.5rem;flex-wrap:wrap;background:var(--cloud);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.35rem 1.6rem;margin-bottom:1.5rem}
.gr-head{display:flex;align-items:center;gap:.9rem}
.gr-mark{flex:none;width:46px;height:46px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;color:var(--gold)}
.gr-mark svg{width:24px;height:24px;fill:currentColor}
.gr-name{font-family:var(--font-display);font-weight:600;font-size:1.02rem;line-height:1.25}
.gr-meta{color:var(--muted);font-size:.82rem}
.gr-score{display:flex;align-items:center;gap:.55rem}
.gr-rating{font-family:var(--font-display);font-weight:700;font-size:1.45rem;line-height:1}
.gr-stars{display:inline-flex;gap:2px;color:var(--gold)}
.gr-stars svg{width:17px;height:17px;fill:currentColor}
.gr-stars .pusta{opacity:.25}
.gr-count{color:var(--muted);font-size:.85rem}
.gr-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-left:auto}
.gr-actions .btn-primary,.gr-actions .btn-outline{padding:.6rem 1.15rem;font-size:.9rem}
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.3rem}
.reviews-grid:empty{display:none}
.review{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.65rem;transition:opacity .45s ease}
.review.znika{opacity:0}
.review:only-child{max-width:46rem;margin:0 auto}
.review-stars{display:inline-flex;gap:2px;color:var(--gold)}
.review-stars svg{width:15px;height:15px;fill:currentColor}
.review-stars .pusta{opacity:.25}
.review-text{color:var(--ink-soft);font-size:.95rem}
.review-more{font-size:.82rem;white-space:nowrap}
.review-foot{margin-top:auto;padding-top:.3rem;display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.review-author{font-weight:600;font-size:.88rem}
.review-date{color:var(--muted);font-size:.78rem}
@media (max-width:900px){.gr-card{flex-direction:column;align-items:flex-start}.gr-actions{margin-left:0}}
@media (prefers-reduced-motion:reduce){.review{transition:none}}

/* pasek CTA */
.cta-band{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:clamp(1.8rem,4vw,2.8rem);display:flex;align-items:center;justify-content:space-between;gap:1.4rem;flex-wrap:wrap}
.cta-band h2{color:#fff}
.cta-band p{color:#C7D2E6;max-width:52ch;margin-top:.4rem}
.cta-band .btn-primary{background:#fff;color:var(--ink)}
.cta-band .btn-primary:hover{background:var(--powder)}

/* kontakt */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,3.6rem);align-items:start}
.contact-info>p{color:var(--ink-soft);margin:.7rem 0 1.6rem}
.contact-detail{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:1.15rem}
.contact-detail-icon{width:44px;height:44px;border-radius:12px;background:var(--powder);color:var(--dusk);display:grid;place-items:center;flex:none}
.contact-detail-text strong{font-family:var(--font-display);font-size:.92rem;display:block}
.contact-detail-text span,.contact-detail-text a{font-size:.95rem;color:var(--ink-soft)}
.maplink{font-weight:600;font-size:.88rem}
.mapwrap{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);margin-top:1.4rem}
.mapwrap iframe{width:100%;height:340px;border:0;display:block}
@media (max-width:960px){.contact-grid{grid-template-columns:1fr}}

/* formularz */
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.4rem,3.4vw,2.2rem);box-shadow:var(--shadow-md)}
.form-card h3{margin-bottom:1.2rem;font-size:1.25rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:620px){.form-row{grid-template-columns:1fr}}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-weight:600;font-size:.86rem;margin-bottom:.35rem}
.form-group input[type=text],.form-group input[type=email],.form-group input[type=tel],.form-group select,.form-group textarea{width:100%;border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.7rem .9rem;font:inherit;color:var(--ink);background:#fff;transition:border-color .2s}
.form-group textarea{min-height:120px;resize:vertical}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--dusk);box-shadow:0 0 0 3px var(--powder)}
.file-label{display:flex;gap:.6rem;align-items:center;border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:.85rem 1rem;cursor:pointer;color:var(--ink-soft);font-size:.92rem;transition:border-color .2s,background .2s}
.file-label:hover{border-color:var(--dusk);background:var(--cloud)}
#file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.file-hint{font-size:.78rem;color:var(--muted);margin-top:.4rem}
.form-note{font-size:.78rem;color:var(--muted);margin:.6rem 0 1rem}
.btn-submit{display:inline-flex;gap:.55rem;align-items:center;background:var(--dusk);color:#fff;border:0;border-radius:999px;padding:.9rem 1.7rem;font:inherit;font-weight:600;cursor:pointer;transition:background .2s}
.btn-submit:hover{background:var(--dusk-deep)}
.btn-submit:disabled{opacity:.6;cursor:wait}
.form-msg{display:none;margin-top:1rem;border-radius:var(--r-sm);padding:.85rem 1.05rem;font-size:.92rem}
.form-success{background:#E8F6EF;border:1px solid #BFE5D2;color:var(--ok)}
.form-warn{background:#FFF6E0;border:1px solid #F0DFA8;color:var(--warn)}
.form-error{background:#FDECEA;border:1px solid #F4C4C0;color:var(--err)}

/* footer */
footer.site{background:var(--ink);color:#B9C4D8;padding:2.6rem 0}
.footer-inner{display:flex;flex-direction:column;gap:1.2rem}
.footer-brand{font-family:var(--font-display);font-weight:600;color:#fff}
.footer-brand small{display:block;font-family:var(--font-body);font-weight:400;font-size:.8rem;color:#8FA0BC;margin-top:.2rem}
.footer-links{display:flex;flex-wrap:wrap;gap:1.1rem;align-items:center;font-size:.88rem}
.footer-links a{color:#C7D2E6}
.footer-links span{color:#54627E}
.footer-copy{font-size:.8rem;color:#8FA0BC}

/* cookies */
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:80;max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:1.1rem 1.3rem;font-size:.88rem}
.cookie-actions{display:flex;gap:.6rem;margin-top:.8rem}
.cookie-btn{border-radius:999px;padding:.5rem 1.2rem;font:inherit;font-weight:600;cursor:pointer;border:1.5px solid var(--ink)}
.cookie-btn.accept{background:var(--ink);color:#fff}
.cookie-btn.decline{background:#fff;color:var(--ink)}
/* Baner zgody nie może zasłaniać przycisku wyceny (06.09.2026).
   Na szerokich ekranach przyklejamy go do lewego dolnego rogu i zwężamy,
   dzięki czemu prawa kolumna z kartą wyceny zostaje wolna. */
@media (min-width:900px){
  .cookie-banner{left:1.5rem;right:auto;margin:0;max-width:420px}
}

/* ── Poprawka hero: proporcje zdjęcia + wyrównanie do góry (2026-07) ── */
.hero-photo { height: auto; }
.hero-inner { align-items: start; }

/* reveal-wjezdzanie-2026 — wzmocniony efekt „wjezdzania” sekcji przy przewijaniu.
   Nadpisuje wczesniejszy blok reveal. Aktywne tylko przy <html class="js"> (dodaje ja script.js),
   wylaczone przy prefers-reduced-motion. */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,.84,.44,1),transform .7s cubic-bezier(.16,.84,.44,1);will-change:opacity,transform}
.js .reveal.visible{opacity:1;transform:none}
.js .pillars .reveal:nth-child(2){transition-delay:.09s}
.js .cards-grid .reveal:nth-child(3n+2){transition-delay:.06s}
.js .cards-grid .reveal:nth-child(3n+3){transition-delay:.12s}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none;will-change:auto}}

/* ============================================================
   Kalkulator wyceny — sekcja #wycena (06.09.2026)
   Używa wyłącznie istniejących zmiennych z :root. Nie nadpisuje niczego.
   ============================================================ */
#wycena{padding:clamp(2.6rem,6vw,4.2rem) 0;background:var(--cloud);border-top:1px solid var(--line);scroll-margin-top:5rem}
#wycena>.container>h2{text-align:center;margin:0 0 .6rem}
#wycena .form-intro{max-width:60ch;margin:0 auto 1.8rem;text-align:center;color:var(--ink-soft)}

.kalk{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1.4rem;
  align-items:start;max-width:1000px;margin:0 auto 1.6rem}
@media(max-width:880px){.kalk{grid-template-columns:1fr}}

.kalk-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-sm)}
.kalk-hd{padding:1rem 1.2rem;border-bottom:1px solid var(--line)}
.kalk-hd h3{margin:0;font-size:1.1rem}
.kalk-bd{padding:1.2rem}

.kalk-tabs{display:flex;gap:.3rem;background:var(--cloud);padding:.25rem;
  border-radius:var(--r-sm);border:1px solid var(--line);margin-bottom:1.1rem}
.kalk-tab{flex:1;border:0;background:transparent;font:inherit;font-size:.88rem;font-weight:500;
  color:var(--ink-soft);padding:.5rem .7rem;border-radius:8px;cursor:pointer}
.kalk-tab[aria-selected="true"]{background:var(--paper);color:var(--ink);
  box-shadow:0 1px 2px rgba(18,33,59,.1)}

.kalk-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.kalk-field>label{font-size:.74rem;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted)}
.kalk select,.kalk input[type="number"],.kalk input[type="email"]{
  font:inherit;font-size:.94rem;color:var(--ink);background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.55rem .65rem;width:100%;min-width:0}
.kalk select:focus-visible,.kalk input:focus-visible,.kalk button:focus-visible{
  outline:2px solid var(--dusk);outline-offset:1px}
.kalk input[type="number"]{font-variant-numeric:tabular-nums}

.kalk-rows{display:flex;flex-direction:column;gap:.55rem}
.kalk-rowhead,.kalk-row{display:grid;grid-template-columns:minmax(0,1fr) 78px 36px;gap:.5rem;align-items:end}
.kalk-rowhead{font-size:.74rem;font-weight:600;letter-spacing:.05em;
  text-transform:uppercase;color:var(--muted)}
.kalk-row .kalk-field>label{position:absolute;left:-9999px}
.kalk-x{border:1px solid var(--line);background:var(--paper);color:var(--muted);
  border-radius:var(--r-sm);height:40px;cursor:pointer;font-size:1.1rem;line-height:1}
.kalk-x:hover{color:var(--dusk);border-color:var(--dusk)}
.kalk-add{margin-top:.7rem;border:1px dashed var(--line);background:transparent;color:var(--dusk);
  font:inherit;font-size:.88rem;font-weight:500;padding:.55rem .9rem;
  border-radius:var(--r-sm);cursor:pointer;width:100%}
.kalk-add:hover{border-color:var(--dusk);background:var(--powder)}
.kalk-opts{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1.2rem;
  padding-top:1.1rem;border-top:1px solid var(--line)}
@media(max-width:520px){.kalk-opts{grid-template-columns:1fr}}

.kalk-quote{position:sticky;top:5.5rem}
.kalk-lines{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}
.kalk-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:baseline}
.kalk-line .kl-n{color:var(--ink-soft);min-width:0}
.kalk-line .kl-n em{font-style:normal;color:var(--muted);font-size:.8rem;display:block}
.kalk-line .kl-v{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}
.kalk-sep{height:1px;background:var(--line);margin:.9rem 0}
#kalk-breakdown{margin:0 0 .95rem}
#kalk-breakdown .kl-v{font-weight:600}
.kl-v.plus{color:var(--gold)}
.kalk-total{background:var(--powder);border-radius:var(--r-sm);padding:1rem 1.1rem}
.kalk-total .kt-lab{font-size:.72rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--dusk-deep)}
.kalk-amount{font-family:var(--font-display);font-weight:600;
  font-size:clamp(1.9rem,5vw,2.6rem);line-height:1.05;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;margin:.25rem 0 0;color:var(--ink)}
.kalk-amount small{font-size:.42em;font-weight:500;font-family:var(--font-body);color:var(--ink-soft)}
.kalk-meta{font-size:.8rem;color:var(--ink-soft);margin:.45rem 0 0;font-variant-numeric:tabular-nums}
.kalk-total.locked .kalk-amount{filter:blur(11px);user-select:none;pointer-events:none}
.kalk-flag{margin:.9rem 0 0;padding:.7rem .85rem;border-left:3px solid var(--gold);
  background:var(--cloud);font-size:.84rem;color:var(--ink-soft);border-radius:0 var(--r-sm) var(--r-sm) 0}
.kalk-cta{display:block;width:100%;margin-top:1rem;background:var(--dusk);color:#fff;border:0;
  font:inherit;font-family:var(--font-display);font-size:.95rem;font-weight:600;
  padding:.82rem 1rem;border-radius:var(--r-sm);cursor:pointer}
.kalk-cta:hover{background:var(--dusk-deep)}
.kalk-legal{font-size:.74rem;color:var(--muted);margin:.85rem 0 0;line-height:1.5}

.kalk-gate{margin-top:1rem;padding:1.05rem 1.1rem;background:var(--cloud);
  border:1px solid var(--line);border-radius:var(--r-sm)}
.kalk-gate h4{margin:0;font-size:.95rem;font-weight:600}
.kalk-gate .gate-sub{font-size:.83rem;color:var(--ink-soft);margin:.2rem 0 .9rem}
.kalk-err{color:var(--err);font-size:.81rem;margin:.35rem 0 0}
.kalk-err button{background:none;border:0;padding:0;font:inherit;color:var(--dusk);
  text-decoration:underline;cursor:pointer}
.kalk-check{display:flex;gap:.55rem;align-items:flex-start;margin:.8rem 0 0;
  font-size:.82rem;line-height:1.45;color:var(--ink-soft);cursor:pointer}
.kalk-check input{margin:.2rem 0 0;accent-color:var(--dusk);width:16px;height:16px;flex:none}
.kalk-as{font-size:.78rem;color:var(--muted);margin:.7rem 0 0;
  display:flex;gap:.4rem;flex-wrap:wrap;align-items:baseline}
.kalk-as button{background:none;border:0;padding:0;font:inherit;font-size:.78rem;
  color:var(--dusk);text-decoration:underline;cursor:pointer}

#wycena .form-card{max-width:760px;margin:0 auto}
#wycena .quick-contact{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin:1.4rem 0 0}
#wycena .quick-contact a{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1rem;
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);
  color:var(--ink);text-decoration:none;font-weight:500}
#wycena .quick-contact a:hover{border-color:var(--dusk);color:var(--dusk)}
