/* Detal tworzy Wnetrze - arkusz glowny (generowany, nie edytuj recznie) */

  :root {
    --paper:#F1F2F0; --paper-2:#E6E8E5; --ink:#17181A; --ink-soft:#34363A;
    --concrete:#A3A5A1; --concrete-deep:#63666B; --white-panel:#FBFBFA;
    --line:rgba(23,24,26,.12); --line-strong:rgba(23,24,26,.26);
    --serif:"Cormorant Garamond",Georgia,serif;
    --sans:"Manrope","Helvetica Neue",Arial,sans-serif;
    --wrap:1180px; --pad:clamp(1.4rem,5vw,4.5rem);
  }
  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body {
    margin:0; background:var(--paper); color:var(--ink);
    font-family:var(--sans); font-weight:400; line-height:1.7;
    font-size:clamp(1rem,.55rem + .55vw,1.12rem);
    -webkit-font-smoothing:antialiased; letter-spacing:.005em;
  }
  ::selection { background:var(--ink); color:var(--paper); }
  a { color:inherit; text-decoration:none; }
  .wrap { max-width:var(--wrap); margin:0 auto; padding-inline:var(--pad); }
  .eyebrow {
    font-size:.72rem; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
    color:var(--concrete-deep); display:flex; align-items:center; gap:.9em;
  }
  .eyebrow::before { content:""; width:2.2rem; height:1px; background:var(--line-strong); display:inline-block; }

  /* ---------- Header ---------- */
  header {
    position:fixed; inset:0 0 auto 0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:1.15rem var(--pad); transition:background .4s ease, border-color .4s ease, padding .3s ease;
    border-bottom:1px solid transparent;
  }
  header.scrolled { background:rgba(241,242,240,.82); backdrop-filter:blur(9px); border-bottom-color:var(--line); padding-block:.85rem; }
  .brand { font-weight:800; letter-spacing:.34em; font-size:.82rem; }
  .brand span { color:var(--concrete); }
  nav { display:flex; gap:2.1rem; align-items:center; }
  nav a { font-size:.82rem; font-weight:500; letter-spacing:.05em; color:var(--ink-soft); position:relative; padding-block:.2rem; }
  nav a::after { content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--ink); transition:width .3s ease; }
  nav a:hover::after, nav a:focus-visible::after { width:100%; }
  .nav-cta { border:1px solid var(--line-strong); padding:.55rem 1.05rem; border-radius:2rem; }
  .nav-cta::after { display:none; }
  .nav-cta:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .menu-btn { display:none; background:none; border:0; font:inherit; font-weight:600; letter-spacing:.08em; cursor:pointer; }
  .hdr-right { display:flex; align-items:center; gap:1.4rem; }

  /* ---------- Hero ---------- */
  .hero { padding-top:clamp(7rem,15vh,11rem); padding-bottom:clamp(3rem,7vw,6rem); }
  .hero-grid { display:grid; grid-template-columns:1.35fr .8fr; gap:clamp(1.5rem,4vw,4rem); align-items:end; }
  .hero h1 { margin:1.6rem 0 0; font-weight:400; line-height:.94; letter-spacing:-.01em; }
  .hero .h-sans {
    display:block; font-family:var(--sans); font-weight:800;
    font-size:clamp(2.9rem,10vw,7.4rem); letter-spacing:-.03em; color:var(--ink);
  }
  .hero .h-serif {
    display:block; font-family:var(--serif); font-style:italic; font-weight:500;
    font-size:clamp(3.4rem,12vw,9rem); line-height:.86; margin-top:.04em; padding-left:.02em;
  }
  .hero-line { height:1px; background:var(--line-strong); margin:clamp(1.6rem,3vw,2.4rem) 0 1.5rem; }
  .hero p.lede { max-width:34ch; color:var(--ink-soft); margin:0 0 2rem; font-size:1.05rem; }
  .hero p.lede b { color:var(--ink); font-weight:700; }
  .btn {
    display:inline-flex; align-items:center; gap:.7em; font-weight:600; font-size:.9rem; letter-spacing:.02em;
    background:var(--ink); color:var(--paper); padding:.9rem 1.5rem; border-radius:2.5rem;
    transition:transform .3s ease, background .3s ease;
  }
  .btn svg { transition:transform .3s ease; }
  .btn:hover { background:#000; }
  .btn:hover svg { transform:translateX(4px); }
  .btn.ghost { background:transparent; color:var(--ink); border:1px solid var(--line-strong); }
  .btn.ghost:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .cta-row { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }

  /* header phone */
  .nav-cta.phone { display:inline-flex; align-items:center; gap:.5em; background:var(--ink); color:var(--paper); border-color:var(--ink); font-variant-numeric:tabular-nums; }
  .nav-cta.phone:hover { background:#000; }
  .nav-cta.phone svg { opacity:.9; }

  /* contact actions */
  .phone-lead { display:inline-flex; align-items:center; gap:.55em; margin:.2rem 0 .3rem;
    font-family:var(--sans); font-weight:700; letter-spacing:-.01em; color:var(--ink);
    font-size:clamp(1.7rem,4.2vw,2.7rem); font-variant-numeric:tabular-nums; line-height:1.05; }
  .phone-lead svg { width:clamp(1.1rem,2vw,1.5rem); height:auto; color:var(--concrete-deep); flex:none; }
  .phone-lead:hover { color:#000; }
  .contact-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.4rem; }
  .pill { display:inline-flex; align-items:center; gap:.5em; padding:.75rem 1.25rem; border-radius:2.5rem;
    font-weight:600; font-size:.92rem; border:1px solid var(--line-strong); color:var(--ink);
    transition:background .25s ease, color .25s ease, border-color .25s ease; }
  .pill.solid { background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .pill.solid:hover { background:#000; }
  .pill:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }

  /* mobile sticky call bar */
  .callbar { display:none; }
  @media (max-width:860px) {
    .callbar { display:flex; position:fixed; left:0; right:0; bottom:0; z-index:60;
      align-items:center; justify-content:center; gap:.6em; text-decoration:none;
      background:var(--ink); color:var(--paper); font-weight:700; letter-spacing:.02em;
      padding:1rem; font-size:1rem; box-shadow:0 -8px 24px -12px rgba(0,0,0,.4);
      font-variant-numeric:tabular-nums; }
    .callbar svg { flex:none; }
    body { padding-bottom:3.6rem; }
  }
  .hero-photo { position:relative; align-self:stretch; }
  .hero-photo .frame {
    position:relative; overflow:hidden; aspect-ratio:64/98; border-radius:2px;
    box-shadow:0 30px 60px -30px rgba(31,29,26,.4);
  }
  .hero-photo img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.92) contrast(1.02); }
  .hero-photo figcaption {
    margin-top:.85rem; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--concrete-deep);
  }

  /* ---------- Manifesto ---------- */
  .manifesto { padding:clamp(5rem,12vw,9rem) 0; border-top:1px solid var(--line); }
  .manifesto .big {
    font-family:var(--serif); font-weight:400; font-size:clamp(1.7rem,4.6vw,3.4rem);
    line-height:1.24; letter-spacing:-.01em; max-width:22ch; color:var(--ink);
  }
  .manifesto .big em { font-style:italic; color:var(--concrete-deep); }

  /* ---------- Section scaffold ---------- */
  .section { padding:clamp(4rem,9vw,7.5rem) 0; border-top:1px solid var(--line); }
  .sec-head { display:grid; grid-template-columns:.9fr 1.4fr; gap:clamp(1.5rem,4vw,4rem); align-items:baseline; }
  .sec-head h2 {
    margin:.7rem 0 0; font-family:var(--serif); font-weight:500; font-style:italic;
    font-size:clamp(2rem,4.4vw,3.3rem); line-height:1.05; letter-spacing:-.01em;
  }
  .sec-body p { margin:0 0 1.15rem; color:var(--ink-soft); max-width:56ch; }
  .sec-body p:last-child { margin-bottom:0; }

  /* ---------- Zakres (services list) ---------- */
  .zakres { margin-top:clamp(2rem,5vw,3.5rem); border-top:1px solid var(--line-strong); }
  .row {
    display:grid; grid-template-columns:.5fr 1.6fr; gap:1rem clamp(1.5rem,4vw,3.5rem);
    padding:clamp(1.3rem,2.6vw,2rem) 0; border-bottom:1px solid var(--line);
    transition:padding-left .35s ease;
  }
  .row:hover { padding-left:.6rem; }
  .row h3 { margin:0; font-size:clamp(1.15rem,2vw,1.55rem); font-weight:600; letter-spacing:-.01em; }
  .row p { margin:0; color:var(--concrete-deep); max-width:52ch; }

  /* ---------- Signature styk band (real photo) ---------- */
  .styk { position:relative; height:clamp(20rem,54vw,38rem); overflow:hidden; border-top:1px solid var(--line); }
  .styk img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    object-position:center 58%; filter:saturate(.94) contrast(1.02); }
  .styk-caption {
    position:absolute; left:var(--pad); bottom:clamp(1.6rem,4vw,3rem); z-index:2; max-width:30ch;
    background:var(--paper); border:1px solid var(--line-strong); border-radius:8px; padding:1rem 1.2rem;
    box-shadow:0 24px 48px -28px rgba(0,0,0,.5); color:var(--ink);
  }
  .styk-caption .eyebrow { color:var(--concrete-deep); margin-bottom:.5rem; }
  .styk-caption p { margin:0; font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,2.4vw,1.7rem); line-height:1.25; }

  /* ---------- Detale gallery ---------- */
  .detale { padding:clamp(4rem,9vw,7.5rem) 0; border-top:1px solid var(--line); }
  .gal { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%,300px),1fr)); gap:clamp(.8rem,1.6vw,1.4rem); margin-top:clamp(2rem,5vw,3.2rem); }
  .gal figure { margin:0; }
  .gal .ph { position:relative; overflow:hidden; border-radius:3px; aspect-ratio:3/4; background:var(--paper-2);
    box-shadow:0 30px 60px -40px rgba(0,0,0,.4); }
  .gal img { width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.94) contrast(1.02);
    transition:transform .6s cubic-bezier(.22,.61,.36,1); }
  .gal figure:hover img { transform:scale(1.045); }
  .gal figcaption { margin-top:.75rem; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--concrete-deep); }
  @media (prefers-reduced-motion:reduce) { .gal img { transition:none; } .gal figure:hover img { transform:none; } }

  /* ---------- Process (numbered — real sequence) ---------- */
  .steps { margin-top:clamp(2rem,5vw,3.5rem); display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .step { background:var(--paper); padding:clamp(1.5rem,2.5vw,2.2rem) clamp(1.2rem,2vw,1.8rem); min-height:13rem; display:flex; flex-direction:column; }
  .step .num { font-family:var(--serif); font-size:2.6rem; line-height:1; color:var(--concrete); font-weight:500; }
  .step h3 { margin:auto 0 .6rem; font-size:1.05rem; font-weight:700; letter-spacing:-.01em; }
  .step p { margin:0; font-size:.88rem; color:var(--concrete-deep); line-height:1.6; }

  /* ---------- Two-up (dla kogo / gdzie) ---------- */
  .twoup { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); margin-top:clamp(2rem,5vw,3.5rem); }
  .twoup h3 { font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(1.4rem,3vw,2rem); margin:.6rem 0 1rem; }
  .twoup p { margin:0; color:var(--ink-soft); }

  /* ---------- Contact ---------- */
  .contact { padding:clamp(5rem,11vw,8.5rem) 0 clamp(3rem,6vw,4rem); border-top:1px solid var(--line-strong); }
  .contact .cta-serif {
    font-family:var(--serif); font-weight:400; font-size:clamp(2.2rem,6vw,4.6rem);
    line-height:1.05; letter-spacing:-.015em; max-width:16ch; margin:1.4rem 0 2.4rem;
  }
  .contact .cta-serif em { font-style:italic; }
  .contact-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:end; }
  .details { display:flex; flex-direction:column; gap:1.1rem; }
  .detail { display:flex; flex-direction:column; gap:.15rem; padding-bottom:1rem; border-bottom:1px solid var(--line); }
  .detail span { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--concrete-deep); }
  .detail a, .detail b { font-size:1.1rem; font-weight:500; color:var(--ink); }

  footer { padding:2.4rem var(--pad); display:flex; justify-content:space-between; align-items:center; gap:1rem; border-top:1px solid var(--line); font-size:.76rem; color:var(--concrete-deep); flex-wrap:wrap; }
  footer .brand { color:var(--ink); }

  /* ---------- Form ---------- */
  .cform { margin-top:clamp(1.4rem,3vw,2.2rem); }
  .fgrid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.2rem; }
  .field { display:flex; flex-direction:column; gap:.45rem; }
  .field.full { grid-column:1 / -1; }
  .field span { font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--concrete-deep); font-weight:600; }
  .field input, .field textarea {
    font:inherit; color:var(--ink); background:var(--white-panel);
    border:1px solid var(--line-strong); border-radius:3px; padding:.8rem .9rem;
    transition:border-color .2s ease, box-shadow .2s ease; resize:vertical; width:100%;
  }
  .field input:focus, .field textarea:focus { outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(23,24,26,.06); }
  .frow { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1.3rem; }
  .fnote { font-size:.82rem; color:var(--concrete-deep); }
  .fstatus { margin:.9rem 0 0; font-size:.9rem; color:var(--concrete-deep); min-height:1.2em; }
  .fstatus.ok { color:var(--ink); }

  /* ---------- Contact page ---------- */
  .cpage { padding-top:clamp(7rem,14vh,10rem); }
  .cpage-head { padding-bottom:clamp(2rem,5vw,3.5rem); }
  .cpage-head h1 { margin:1rem 0 1.2rem; font-weight:400; line-height:1; letter-spacing:-.01em; }
  .cpage-head .h-sans { display:block; font-family:var(--sans); font-weight:800; font-size:clamp(2.4rem,7vw,4.6rem); letter-spacing:-.03em; }
  .cpage-head .h-serif { display:block; font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(2.8rem,8vw,5.4rem); line-height:.9; }
  .cpage-head p.lede { max-width:46ch; color:var(--ink-soft); font-size:1.08rem; margin:0; }
  .csplit { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,6vw,5rem);
    padding:clamp(1.5rem,3vw,2.5rem) 0 clamp(3rem,7vw,5rem); border-top:1px solid var(--line); align-items:start; }
  .csplit h2 { font-family:var(--serif); font-style:italic; font-weight:500; font-size:clamp(1.6rem,3.4vw,2.3rem); margin:.4rem 0 1.4rem; }
  .cinfo .details { margin-top:0; }
  .cinfo .contact-actions { margin-top:1.6rem; }
  @media (max-width:860px) { .fgrid { grid-template-columns:1fr; } .csplit { grid-template-columns:1fr; } }

  /* ---------- Skip link ---------- */
  .skip { position:absolute; left:-999px; top:0; z-index:100; background:var(--ink); color:var(--paper);
    padding:.65rem 1rem; border-radius:0 0 6px 0; font-weight:600; font-size:.85rem; }
  .skip:focus { left:0; }

  /* ---------- Stats / zaufanie ---------- */
  .stats { border-block:1px solid var(--line); }
  .stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,3vw,2.5rem); padding-block:clamp(1.8rem,4vw,3rem); }
  .stat b { display:block; font-family:var(--serif); font-weight:500; font-size:clamp(2.2rem,4.5vw,3.4rem); line-height:1; letter-spacing:-.01em; }
  .stat span { display:block; margin-top:.5rem; font-size:.85rem; color:var(--concrete-deep); max-width:24ch; line-height:1.5; }

  /* ---------- Opinie ---------- */
  .quotes { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.5rem,4vw,3rem); margin-top:clamp(2rem,5vw,3.2rem); }
  .quotes blockquote { margin:0; padding-top:1.3rem; border-top:1px solid var(--line-strong); display:flex; flex-direction:column; }
  .quotes p { margin:0; font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,1.8vw,1.4rem); line-height:1.5; color:var(--ink); }
  .quotes footer { margin-top:1.1rem; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--concrete-deep); }

  /* ---------- FAQ ---------- */
  .faq { margin-top:clamp(1.8rem,4vw,2.8rem); border-top:1px solid var(--line-strong); max-width:60rem; }
  .faq-item { border-bottom:1px solid var(--line); }
  .faq-item summary { list-style:none; cursor:pointer; display:flex; align-items:baseline; justify-content:space-between;
    gap:1.5rem; padding:clamp(1rem,2vw,1.4rem) 0; font-weight:600; font-size:clamp(1rem,1.6vw,1.15rem); letter-spacing:-.005em; }
  .faq-item summary::-webkit-details-marker { display:none; }
  .faq-ic { font-family:var(--serif); font-size:1.5rem; line-height:1; color:var(--concrete-deep); flex:none;
    transition:transform .3s ease, color .3s ease; }
  .faq-item[open] .faq-ic { transform:rotate(45deg); color:var(--ink); }
  .faq-a p { margin:0 0 1.3rem; color:var(--ink-soft); max-width:64ch; line-height:1.7; }

  /* ---------- Pas CTA ---------- */
  .cta-band { background:var(--ink); color:var(--paper); padding-block:clamp(3rem,7vw,5rem); }
  .cta-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.6rem; }
  .cta-line { margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,3.4vw,2.5rem); line-height:1.2; max-width:22ch; }
  .cta-line em { font-style:italic; }
  .cta-band .btn { background:var(--paper); color:var(--ink); }
  .cta-band .btn:hover { background:#fff; }
  .cta-band .btn.ghost { background:transparent; color:var(--paper); border:1px solid rgba(255,255,255,.4); }
  .cta-band .btn.ghost:hover { background:var(--paper); color:var(--ink); border-color:var(--paper); }

  @media (max-width:760px) { .stats-grid, .quotes { grid-template-columns:1fr; } }

  /* ---------- Reveal animation ---------- */
  .reveal { opacity:0; transform:translateY(22px); transition:opacity .9s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1); }
  .reveal.in { opacity:1; transform:none; }
  .reveal.d1 { transition-delay:.08s; } .reveal.d2 { transition-delay:.16s; }
  .reveal.d3 { transition-delay:.24s; } .reveal.d4 { transition-delay:.32s; }

  /* ---------- Responsive ---------- */
  @media (max-width:860px) {
    nav { display:none; } .menu-btn { display:block; }
    nav.open { display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:1.3rem; padding:1.6rem var(--pad); background:var(--paper); border-bottom:1px solid var(--line); }
    .hero-grid { grid-template-columns:1fr; }
    .hero-photo { max-width:22rem; }
    .sec-head { grid-template-columns:1fr; }
    .row { grid-template-columns:1fr; gap:.4rem; }
    .steps { grid-template-columns:1fr 1fr; }
    .twoup, .contact-grid { grid-template-columns:1fr; }
    .step { min-height:auto; }
  }
  @media (max-width:480px) { .steps { grid-template-columns:1fr; } }

  @media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    .reveal { opacity:1; transform:none; transition:none; }
    .btn svg, .row, header { transition:none; }
  }
  :focus-visible { outline:2px solid var(--ink); outline-offset:3px; border-radius:2px; }

  /* ---------- Podstrony ---------- */
  .subhead { padding-top:clamp(6.5rem,13vh,9.5rem); padding-bottom:clamp(1.5rem,4vw,2.6rem); }
  .crumbs { font-size:.78rem; color:var(--concrete-deep); margin-bottom:1.1rem; }
  .crumbs a { text-decoration:underline; text-underline-offset:2px; }
  .crumbs span { margin:0 .45em; opacity:.6; }
  .subhead h1 { margin:.7rem 0 1.2rem; font-weight:400; line-height:1; letter-spacing:-.01em; }
  .subhead .h-sans { display:block; font-family:var(--sans); font-weight:800;
    font-size:clamp(2.1rem,6vw,4.2rem); letter-spacing:-.03em; }
  .subhead .h-serif { display:block; font-family:var(--serif); font-style:italic; font-weight:500;
    font-size:clamp(2.4rem,7vw,5rem); line-height:.92; }
  .subhead p.lede { max-width:52ch; color:var(--ink-soft); font-size:1.08rem; margin:0; }

  /* meta realizacji */
  .facts { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);
    border:1px solid var(--line); margin-top:clamp(1.8rem,4vw,2.6rem); }
  .fact { background:var(--paper); padding:clamp(1.1rem,2vw,1.5rem); }
  .fact span { display:block; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--concrete-deep); font-weight:600; }
  .fact b { display:block; margin-top:.4rem; font-size:1.02rem; font-weight:600; letter-spacing:-.01em; }

  /* etapy realizacji */
  .stage { border-top:1px solid var(--line); padding-block:clamp(3rem,7vw,5rem); }
  .stage-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(1.8rem,5vw,4rem); align-items:start; }
  .stage-txt h2 { margin:.6rem 0 1.1rem; font-family:var(--serif); font-style:italic; font-weight:500;
    font-size:clamp(1.7rem,3.6vw,2.5rem); line-height:1.1; }
  .stage-txt p { margin:0 0 1rem; color:var(--ink-soft); max-width:52ch; }
  .stage-txt p:last-child { margin-bottom:0; }
  .stage-txt ul { margin:1.1rem 0 0; padding:0; list-style:none; }
  .stage-txt li { position:relative; padding-left:1.3rem; margin-bottom:.55rem; color:var(--ink-soft); font-size:.95rem; }
  .stage-txt li::before { content:"—"; position:absolute; left:0; color:var(--concrete); }
  .shots { display:grid; gap:clamp(.7rem,1.4vw,1.1rem); grid-template-columns:1fr 1fr; }
  .shots.one { grid-template-columns:1fr; }
  .shot { margin:0; }
  .shot .ph { overflow:hidden; border-radius:3px; background:var(--paper-2); box-shadow:0 26px 52px -38px rgba(0,0,0,.4); }
  .shot img { width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:3/4; filter:saturate(.95) contrast(1.02); }
  .shot.wide img { aspect-ratio:4/3; }
  .shot figcaption { margin-top:.6rem; font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; color:var(--concrete-deep); }

  /* karty (realizacje / usługi / miasta) */
  .cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));
    gap:clamp(1.2rem,2.5vw,2rem); margin-top:clamp(2rem,5vw,3rem); }
  .card { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:6px; overflow:hidden;
    background:var(--white-panel); transition:border-color .3s ease, transform .3s ease; }
  .card:hover { border-color:var(--line-strong); transform:translateY(-3px); }
  .card .ph { overflow:hidden; background:var(--paper-2); }
  .card img { width:100%; display:block; aspect-ratio:4/3; object-fit:cover; }
  .card-body { padding:clamp(1.1rem,2vw,1.5rem); display:flex; flex-direction:column; flex:1; }
  .card h3 { margin:.3rem 0 .6rem; font-size:1.15rem; font-weight:700; letter-spacing:-.01em; }
  .card p { margin:0 0 1.1rem; color:var(--ink-soft); font-size:.94rem; line-height:1.6; }
  .card .more { margin-top:auto; font-weight:600; font-size:.88rem; display:inline-flex; align-items:center; gap:.4em; }
  .card .more svg { transition:transform .3s ease; }
  .card:hover .more svg { transform:translateX(4px); }

  /* lista zakresu na podstronie usługi */
  .checks { display:grid; grid-template-columns:1fr 1fr; gap:.7rem 2rem; margin:clamp(1.6rem,3vw,2.2rem) 0 0; padding:0; list-style:none; }
  .checks li { position:relative; padding-left:1.6rem; color:var(--ink-soft); line-height:1.6; }
  .checks li::before { content:""; position:absolute; left:0; top:.55em; width:.7rem; height:1px; background:var(--concrete); }

  /* pas lokalny */
  .local { border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,4.5rem); }
  .local-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:clamp(1.2rem,3vw,2.2rem); margin-top:1.6rem; }
  .local-grid h3 { margin:0 0 .5rem; font-size:1rem; font-weight:700; }
  .local-grid p { margin:0; font-size:.92rem; color:var(--ink-soft); line-height:1.6; }
  .arealist { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.4rem; }
  .arealist a { font-size:.85rem; padding:.45rem .9rem; border:1px solid var(--line-strong); border-radius:2rem; }
  .arealist a:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }

  @media (max-width:860px) {
    .facts { grid-template-columns:1fr 1fr; }
    .stage-grid { grid-template-columns:1fr; }
    .checks { grid-template-columns:1fr; }
  }

  /* ---- color-scheme: light; }
  .skip { position:absolute; left:-999px; top:0; z-index:100; background:var(--ink); color:var(--paper);
    padding:.65rem 1rem; border-radius:0 0 6px 0; font-weight:600; font-size:.85rem; }
  .skip:focus { left:0; }
  #top { scroll-margin-top:5rem; }

  .cpage-head .chips { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.9rem; }

  /* form card */
  .cformwrap { background:var(--white-panel); border:1px solid var(--line); border-radius:16px;
    padding:clamp(1.4rem,3vw,2.4rem); box-shadow:0 34px 70px -46px rgba(0,0,0,.4); }
  .cformwrap > .eyebrow { margin-bottom:.55rem; }
  .cformwrap h2 { margin:.15rem 0 .3rem; }

  .field label { font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--concrete-deep); font-weight:600; }
  .cform input, .cform textarea { background:var(--paper); }
  .cform input:focus, .cform textarea:focus { background:var(--white-panel); }
  .field input:user-invalid, .field textarea:user-invalid {
    border-color:#b1473c; box-shadow:0 0 0 3px rgba(177,71,60,.10); }

  .consent { display:flex; gap:.7rem; align-items:flex-start; margin-top:1.35rem;
    font-size:.9rem; color:var(--ink-soft); line-height:1.5; cursor:pointer; }
  .consent input { margin-top:.15rem; width:1.1rem; height:1.1rem; accent-color:var(--ink); flex:none; }
  .consent a { text-decoration:underline; text-underline-offset:2px; }

  .hp { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
  .fprivacy { margin:.85rem 0 0; font-size:.78rem; color:var(--concrete-deep); }
  .maplink { margin-top:1.4rem; }

  /* budget — segmentowane widełki */
  .budget { border:0; padding:0; margin:1.4rem 0 0; min-width:0; }
  .budget legend { font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--concrete-deep); font-weight:600; padding:0; margin-bottom:.6rem; }
  .segmented { display:flex; flex-wrap:wrap; gap:.5rem; }
  .segmented label { cursor:pointer; margin:0; }
  .segmented input { position:absolute; width:1px; height:1px; opacity:0; }
  .segmented span { display:inline-flex; align-items:center; padding:.55rem 1rem; border:1px solid var(--line-strong);
    border-radius:2.5rem; font-size:.9rem; font-weight:500; color:var(--ink); background:transparent;
    transition:background .2s ease, color .2s ease, border-color .2s ease; }
  .segmented label:hover span { border-color:var(--ink); }
  .segmented input:checked + span { background:var(--ink); color:var(--paper); border-color:var(--ink); }
  .segmented input:focus-visible + span { outline:2px solid var(--ink); outline-offset:2px; }
  .fhint { margin:.7rem 0 0; font-size:.8rem; color:var(--concrete-deep); }

  .budget-other { display:grid; grid-template-rows:0fr; opacity:0; margin-top:0;
    transition:grid-template-rows .32s ease, opacity .28s ease, margin-top .32s ease; }
  .budget-other.open { grid-template-rows:1fr; opacity:1; margin-top:.9rem; }
  .budget-other-inner { overflow:hidden; }
  .budget-other label { display:block; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
    color:var(--concrete-deep); font-weight:600; margin-bottom:.45rem; }
  .budget-other input { font:inherit; color:var(--ink); background:var(--paper); width:100%; max-width:16rem;
    border:1px solid var(--line-strong); border-radius:3px; padding:.75rem .9rem;
    transition:border-color .2s ease, box-shadow .2s ease; }
  .budget-other input:focus { outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(23,24,26,.06); background:var(--white-panel); }
------ Teaser realizacji ---------- */
  .cs-teaser { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(1.5rem,4vw,3rem);
    align-items:center; margin-top:clamp(2rem,5vw,3rem); border:1px solid var(--line);
    border-radius:8px; overflow:hidden; background:var(--white-panel);
    transition:border-color .3s ease, transform .3s ease; }
  .cs-teaser:hover { border-color:var(--line-strong); transform:translateY(-3px); }
  .cs-ph { overflow:hidden; background:var(--paper-2); align-self:stretch; }
  .cs-ph img { width:100%; height:100%; object-fit:cover; display:block; }
  .cs-txt { padding:clamp(1.4rem,3vw,2.4rem) clamp(1.4rem,3vw,2.4rem) clamp(1.4rem,3vw,2.4rem) 0; }
  .cs-txt h3 { margin:.6rem 0 .8rem; font-size:clamp(1.3rem,2.4vw,1.8rem); font-weight:700; letter-spacing:-.01em; }
  .cs-txt p { margin:0 0 1.3rem; color:var(--ink-soft); max-width:52ch; }
  .cs-txt .more { font-weight:600; font-size:.9rem; display:inline-flex; align-items:center; gap:.5em; }
  .cs-txt .more svg { transition:transform .3s ease; }
  .cs-teaser:hover .more svg { transform:translateX(4px); }
  @media (max-width:760px) {
    .cs-teaser { grid-template-columns:1fr; }
    .cs-ph img { aspect-ratio:4/3; }
    .cs-txt { padding:0 clamp(1.2rem,4vw,1.8rem) clamp(1.5rem,4vw,2rem); }
  }

  /* ----2.card-h { margin:.3rem 0 .6rem; font-size:1.15rem; font-weight:700; letter-spacing:-.01em;
    font-family:var(--sans); font-style:normal; }
------ Poprawki proporcji miniatur ----------
     Atrybuty width/height w HTML nadpisuja aspect-ratio (podpowiedz prezentacyjna).
     height:auto przywraca kontrole CSS nad proporcjami. */
  .card img { height:auto; aspect-ratio:4/3; }
  .shot img { height:auto; }
  .shots .shot img { aspect-ratio:3/4; }
  .shots .shot.wide img { aspect-ratio:4/3; }
  /* pojedyncze zdjecie w kolumnie: ogranicz szerokosc, zeby nie bylo przesadnie wysokie */
  .shots.one { max-width:23rem; }
  .shots.one .shot img { aspect-ratio:3/4; }
  .cs-ph img { height:100%; }
  @media (max-width:860px) { .shots.one { max-width:20rem; } }
