:root{
  /* paleta: chłodne szarości, akcent grafitowy */
  --paper:#f1f1ef; --paper-2:#e3e3e0; --ink:#1e1f1e; --ink-soft:#6b6c69;
  --terra:#3a3c3a; --line:rgba(30,31,30,.18);
  /* kolory funkcyjne (wybór w strefie klienta, statusy) */
  --copper:#a9603a; --copper-lo:#8a4a2c; --copper-hi:#b5723f;
  --grad-copper:linear-gradient(135deg,#b5723f 0%,#a05a33 55%,#8a4a2c 100%);
  --green:#38574a; --slate:#6f6f68; --danger:#a33a2a;

  /* konfigurowalne — odpowiedniki opcji w panelu WP */
  --font-title:"Marcellus","Marcellus zastępcza",Georgia,serif;
  --font-body:"Cardo","Cardo zastępcza",Georgia,serif;
  --font-cta:"Jost","Jost zastępcza",system-ui,sans-serif;
  --title-size:clamp(2.6rem,5.6vw,5rem);
  /* marka w nagłówku ma własną czcionkę — niezależną od tytułu hero */
  --font-brand:"Marcellus","Marcellus zastępcza",Georgia,serif;

  --s1:.5rem; --s2:1rem; --s3:1.75rem; --s4:2.5rem;
  --s5:clamp(2.2rem,4vw,3.4rem); --s6:clamp(2.6rem,5vw,4rem);
  --gutter:clamp(20px,5vw,64px); --maxw:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:19px; line-height:1.78;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:99; opacity:.28;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
h1,h2,h3{font-family:var(--font-title); font-weight:400; margin:0; letter-spacing:.005em; line-height:1.15}
.hero__sub{font-family:var(--font-sub,inherit)}
p{margin:0}
.label{
  font-family:"Jost","Jost zastępcza",system-ui,sans-serif; font-weight:400; font-size:.7rem;
  letter-spacing:.28em; text-transform:uppercase; color:var(--ink-soft);
}
.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter)}
section{padding-block:var(--s6)}

/* ——— NAV ——— */
.nav{
  position:fixed; inset:0 0 auto; z-index:30; display:flex; align-items:center;
  justify-content:space-between; gap:var(--s3); padding:var(--s3) var(--gutter);
  background:linear-gradient(rgba(24,25,24,.62),rgba(24,25,24,.18) 60%,rgba(24,25,24,0));
  transition:background .5s ease, padding .5s ease;
}
.nav.is-stuck{background:var(--paper); padding-block:var(--s2); box-shadow:0 1px 0 var(--line)}
.nav__mark{
  font-family:var(--font-brand); font-size:1.05rem; letter-spacing:.32em; text-transform:uppercase;
  color:#fff; text-decoration:none; text-shadow:0 1px 14px rgba(0,0,0,.45); white-space:nowrap;
}
.nav.is-stuck .nav__mark{color:var(--ink); text-shadow:none}
.nav__links{display:flex; gap:clamp(1rem,2.4vw,2.4rem)}
.nav__links a{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:#fff; text-decoration:none; text-shadow:0 1px 14px rgba(0,0,0,.45);
  padding-bottom:3px; border-bottom:1px solid transparent; transition:border-color .4s ease, color .4s ease;
}
.nav.is-stuck .nav__links a{color:var(--ink); text-shadow:none}
.nav__links a:hover{border-color:currentColor}
/* przejście do drugiego świata: cienka kreska oddzielająca i strzałka, która przesuwa się przy najechaniu */
.nav__links a.is-minor{position:relative; margin-left:clamp(.7rem,1.6vw,1.6rem); display:inline-flex; align-items:center; gap:.5em}
.nav__links a.is-minor::before{content:""; position:absolute; left:calc(-1 * clamp(.4rem,.8vw,.8rem)); top:50%; transform:translateY(-50%);
  width:1px; height:12px; background:currentColor; opacity:.3}
.nav__links a.is-minor::after{content:"→"; font-size:1.05em; line-height:1; opacity:.65; transform:translateX(0);
  transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .4s ease}
.nav__links a.is-minor:hover::after{opacity:1; transform:translateX(3px)}

.burger{display:none; width:44px; height:44px; margin-right:-10px; background:none; border:0; padding:0; cursor:pointer; position:relative; z-index:41}
.burger span{position:absolute; left:11px; width:22px; height:1.5px; background:#fff; display:block;
  transition:transform .45s cubic-bezier(.16,1,.3,1), opacity .3s ease, background .4s ease; box-shadow:0 0 8px rgba(0,0,0,.4)}
.burger span:nth-child(1){top:16px} .burger span:nth-child(2){top:22px} .burger span:nth-child(3){top:28px}
.nav.is-stuck .burger span, .nav.is-open .burger span{background:var(--ink); box-shadow:none}
.nav.is-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav.is-open .burger span:nth-child(2){opacity:0}
.nav.is-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ——— HERO ——— */
.hero{position:relative; height:var(--hero-h,100svh); min-height:560px; overflow:hidden; display:grid}
.hero__slides{position:absolute; inset:0}
.hero__slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease-in-out}
.hero__slide.is-on{opacity:1}
.hero__slide img{width:100%; height:100%; object-fit:cover; object-position:center 40%}
.hero__scrim{position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(22,23,22,.44) 0%,rgba(22,23,22,.06) 30%,rgba(22,23,22,.46) 72%,rgba(22,23,22,.76) 100%)}
.hero__grid{position:relative; z-index:3; height:100%; display:grid;
  padding:calc(var(--s6) + 30px) var(--gutter) var(--s6); place-items:end center}
.hero__body{max-width:min(720px,100%); color:#fff; text-shadow:0 2px 28px rgba(0,0,0,.42);
  transition:opacity .55s ease, transform .75s cubic-bezier(.16,1,.3,1)}
.hero h1{font-size:var(--title-size); margin-bottom:var(--s2)}
.hero__sub{font-size:1.05rem; color:rgba(255,255,255,.94); max-width:48ch; margin-bottom:var(--s3)}
.hero .label{color:rgba(255,255,255,.86); display:block; margin-bottom:var(--s2)}
.hero__grid[data-pos$="-center"] .hero__body{text-align:center; margin-inline:auto}
.hero__grid[data-pos$="-right"] .hero__body{text-align:right; margin-left:auto}
.hero__grid[data-pos^="top-"]{align-items:start}
.hero__grid[data-pos^="middle-"]{align-items:center}
.hero__grid[data-pos^="bottom-"]{align-items:end}
.hero__grid[data-pos$="-left"]{justify-items:start}
.hero__grid[data-pos$="-center"]{justify-items:center}
.hero__grid[data-pos$="-right"]{justify-items:end}

.cta{display:inline-block; font-family:var(--font-cta); font-size:.78rem; letter-spacing:.22em;
  text-transform:uppercase; text-decoration:none; transition:.45s cubic-bezier(.16,1,.3,1)}
.cta[data-style="underline"]{color:#fff; padding-bottom:8px; border-bottom:1px solid rgba(255,255,255,.55)}
.cta[data-style="underline"]:hover{letter-spacing:.28em; border-color:#fff}
.cta[data-style="outline"]{color:#fff; border:1px solid rgba(255,255,255,.6); padding:1em 2.3em}
.cta[data-style="outline"]:hover{background:#fff; color:var(--ink)}
.cta[data-style="solid"]{color:var(--paper); background:var(--terra); padding:1.05em 2.4em}
.cta[data-style="solid"]:hover{background:var(--ink); transform:translateY(-2px)}
.cta--ink[data-style="underline"]{color:var(--ink); border-color:var(--line)}
.cta--ink[data-style="underline"]:hover{border-color:var(--ink)}
.cta--ink[data-style="outline"]{color:var(--ink); border-color:var(--line)}
.cta--ink[data-style="outline"]:hover{background:var(--ink); color:var(--paper)}

.dots{position:absolute; z-index:4; bottom:var(--s2); left:50%; transform:translateX(-50%); display:flex; gap:.6rem}
.dots button{width:26px; height:2px; border:0; padding:0; cursor:pointer; background:rgba(255,255,255,.42); transition:background .4s ease}
.dots button[aria-current="true"]{background:#fff}

/* ——— O MNIE ——— */
.about{display:grid; grid-template-columns:1fr minmax(300px,.72fr); gap:clamp(28px,5vw,72px); align-items:center}
.about h2{font-size:clamp(1.75rem,3.2vw,2.5rem); margin-bottom:var(--s2)}
.about p{color:var(--ink-soft); max-width:56ch; margin-bottom:var(--s2)}
.about p b{color:var(--ink); font-weight:400}
.about__cta{margin-top:var(--s2)}
.about__fig{margin:0; position:relative}
.about__fig img{width:100%; aspect-ratio:4/5; object-fit:cover; display:block}
.sig{font-family:"Pinyon Script",cursive; font-size:2rem; line-height:1; color:var(--ink); margin-top:var(--s2)!important}

/* ——— HISTORIE: karuzela odbitek ——— */
.works{background:var(--paper-2)}
.head{display:flex; align-items:center; justify-content:space-between; gap:var(--s3); flex-wrap:wrap; margin-bottom:var(--s4)}
.head h2{font-size:clamp(1.8rem,3.3vw,2.6rem)}
.head__side{display:flex; align-items:center; gap:var(--s3)}
.works__more{text-align:center; margin-top:var(--s4)}

/* siatka odbitek: 2 rzędy po 4 */
.grid4{
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(18px,2.2vw,30px) clamp(16px,2vw,26px);
}
.rail::-webkit-scrollbar{display:none}
.print{
  display:block; text-decoration:none; color:inherit; background:#fafaf8;
  padding:11px 11px 0; box-shadow:0 14px 32px -22px rgba(20,16,10,.55);
  transition:transform .7s cubic-bezier(.16,1,.3,1), box-shadow .7s cubic-bezier(.16,1,.3,1);
}
.print:hover{transform:translateY(-7px); box-shadow:0 26px 52px -24px rgba(20,16,10,.6)}
.print__img{overflow:hidden; background:var(--paper-2)}
.print__img img{
  width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
  object-position:var(--focus,center center); /* kadrowanie okładki */
  transition:transform 1.4s cubic-bezier(.16,1,.3,1), filter .7s ease; filter:saturate(.95);
}
.print:hover .print__img img{transform:scale(1.05); filter:saturate(1.04)}
.print__cap{padding:.85rem .4rem 1.1rem; text-align:center}
.print__cap h3{font-family:"Pinyon Script",cursive; font-size:1.5rem; line-height:1; margin-bottom:.4rem}
.print__meta{display:flex; justify-content:center; gap:.45rem; align-items:center; flex-wrap:wrap}
.print__meta .label{font-size:.6rem; letter-spacing:.18em}
.print__meta i{width:3px; height:3px; background:var(--terra); border-radius:50%; display:block}

/* ——— FINAŁ / FORMULARZ ——— */
.finale{text-align:center}
.finale h2{font-size:clamp(2rem,4.2vw,3.1rem); margin-bottom:var(--s2)}
.finale p{color:var(--ink-soft); max-width:50ch; margin:0 auto var(--s4)}

.form{max-width:820px; margin:0 auto; text-align:left}
.form__grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--s3) clamp(20px,3vw,40px)}
.field{display:flex; flex-direction:column; gap:.4rem; position:relative}
.field--wide{grid-column:1/-1}
.field label{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-soft)}
.field label span{color:var(--terra)}
.field input, .field textarea, .field select{
  font-family:var(--font-body); font-size:1.02rem; color:var(--ink);
  background:#fafaf8; border:1px solid rgba(35,32,28,.22);
  padding:.85rem 1rem; border-radius:0; width:100%;
  transition:border-color .35s ease, box-shadow .35s ease, background .35s ease;
}
.field textarea{resize:vertical; min-height:118px; line-height:1.6}
.field input:hover, .field textarea:hover{border-color:rgba(35,32,28,.4)}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--terra); background:#fff;
  box-shadow:0 0 0 3px rgba(138,63,44,.1)}
.field input::placeholder, .field textarea::placeholder{color:rgba(35,32,28,.34)}
.field input[type="date"]{font-family:"Jost","Jost zastępcza",sans-serif; letter-spacing:.04em}
.field.has-error input, .field.has-error textarea{border-color:var(--danger); background:#fdf6f4}
.field__err{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.7rem; color:var(--danger); display:none}
.field.has-error .field__err{display:block}
/* pułapka na boty — niewidoczna dla ludzi, ale nie display:none */
.trap{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

.form__foot{display:flex; align-items:center; justify-content:space-between; gap:var(--s3); margin-top:var(--s4); flex-wrap:wrap}
.form__note{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.7rem; line-height:1.6; color:var(--ink-soft); max-width:44ch}
.btn-send{
  font-family:var(--font-cta); font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--paper); background:var(--terra); border:0; padding:1.1em 2.6em; cursor:pointer;
  transition:.45s cubic-bezier(.16,1,.3,1);
}
.btn-send:hover:not(:disabled){background:var(--ink); transform:translateY(-2px)}
.btn-send:disabled{opacity:.55; cursor:default; transform:none}
.form__ok{
  display:none; text-align:center; padding:var(--s5) var(--s3); border:1px solid var(--line); background:rgba(255,255,255,.5);
}
.form__ok h3{font-family:"Pinyon Script",cursive; font-size:2.4rem; margin-bottom:var(--s1)}
.form__ok p{margin:0 auto; max-width:44ch}
.is-sent .form__grid, .is-sent .form__foot{display:none}
.is-sent .form__ok{display:block}
footer{padding-block:var(--s4); border-top:1px solid var(--line)}
.foot{display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--s2)}

/* ——— PANEL KONFIGURATORA (tylko makieta) ——— */
.cfg{position:fixed; right:0; bottom:0; z-index:120; width:min(340px,94vw);
  background:#1c1d1c; color:#ececea; font-family:"Jost","Jost zastępcza",sans-serif; font-size:.82rem;
  transform:translateY(calc(100% - 46px)); transition:transform .55s cubic-bezier(.16,1,.3,1);
  box-shadow:0 -14px 44px -20px rgba(0,0,0,.7)}
.cfg.is-open{transform:translateY(0)}
.cfg__bar{display:flex; align-items:center; justify-content:space-between; gap:.6rem; width:100%;
  background:none; border:0; color:inherit; font:inherit; cursor:pointer; padding:0 1rem; height:46px;
  letter-spacing:.16em; text-transform:uppercase; font-size:.68rem}
.cfg__bar span:last-child{transition:transform .5s ease}
.cfg.is-open .cfg__bar span:last-child{transform:rotate(180deg)}
.cfg__body{padding:.4rem 1rem 1.2rem; max-height:70vh; overflow:auto}
.cfg__row{margin-bottom:1.1rem}
.cfg__row > label{display:block; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; opacity:.6; margin-bottom:.45rem}
.cfg select{width:100%; background:#212221; color:inherit; border:1px solid #3a3b39; padding:.5rem .6rem; font:inherit; border-radius:0}

/* wybór czcionki z podglądem */
.fontpick{position:relative}
.fontpick__btn{
  width:100%; background:#212221; color:inherit; border:1px solid #3a3b39; padding:.62rem .7rem;
  cursor:pointer; text-align:left; display:flex; align-items:center; justify-content:space-between; gap:.6rem;
}
.fontpick__btn b{font-weight:400; font-size:1.05rem}
.fontpick__btn i{font-style:normal; font-size:.6rem; opacity:.5; letter-spacing:.14em}
.fontpick__list{
  display:none; position:absolute; left:0; right:0; bottom:calc(100% + 4px); z-index:5;
  background:#212221; border:1px solid #3a3b39; max-height:260px; overflow:auto;
}
.fontpick.is-open .fontpick__list{display:block}
.fontpick__list button{
  display:flex; align-items:baseline; justify-content:space-between; gap:.7rem; width:100%;
  background:none; border:0; border-bottom:1px solid rgba(255,255,255,.06); color:inherit;
  padding:.55rem .7rem; cursor:pointer; text-align:left; transition:background .25s;
}
.fontpick__list button:hover{background:#2c2d2b}
.fontpick__list button[aria-selected="true"]{background:var(--copper)}
.fontpick__list b{font-weight:400; font-size:1.12rem; line-height:1.25}
.fontpick__list i{font-style:normal; font-size:.56rem; opacity:.45; letter-spacing:.14em; text-transform:uppercase; white-space:nowrap}

.pos{display:grid; grid-template-columns:repeat(3,1fr); gap:4px}
.pos button{aspect-ratio:16/10; background:#212221; border:1px solid #3a3b39; cursor:pointer; padding:0;
  position:relative; transition:background .3s ease, border-color .3s ease}
.pos button::after{content:""; position:absolute; width:44%; height:14%; background:#6d675b; transition:background .3s}
.pos button[data-p^="top-"]::after{top:16%} .pos button[data-p^="middle-"]::after{top:43%} .pos button[data-p^="bottom-"]::after{bottom:16%}
.pos button[data-p$="-left"]::after{left:14%} .pos button[data-p$="-center"]::after{left:28%} .pos button[data-p$="-right"]::after{right:14%}
.pos button:hover{border-color:#7a6a52}
.pos button[aria-pressed="true"]{background:var(--copper); border-color:var(--copper-hi)}
.pos button[aria-pressed="true"]::after{background:#f1f1ef}
.cfg__note{font-size:.66rem; line-height:1.55; opacity:.5; margin-top:.9rem}

@media (max-width:900px){
  body{font-size:17px}
  .burger{display:block}
  .nav.is-open{background:var(--paper); backdrop-filter:none; -webkit-backdrop-filter:none; z-index:60}
  .nav.is-open .nav__mark{color:var(--ink); text-shadow:none}
  .nav__links{position:fixed; inset:0; z-index:40; background:var(--paper); flex-direction:column;
    align-items:center; justify-content:center; gap:var(--s3); opacity:0; visibility:hidden;
    transition:opacity .45s ease, visibility .45s}
  .nav.is-open .nav__links{opacity:1; visibility:visible}
  .nav__links a{color:var(--ink); text-shadow:none; font-size:.92rem; letter-spacing:.26em}
  .about{grid-template-columns:1fr}
  .about__fig{order:-1}
  .grid4{grid-template-columns:repeat(2,1fr)}
  .form__grid{grid-template-columns:1fr}
  .form__foot{flex-direction:column; align-items:stretch; text-align:center}
  .btn-send{width:100%}
  .hero__grid{place-items:end start}
  .hero__grid[data-pos]{align-items:end; justify-items:start}
  .hero__body{text-align:left!important; margin:0!important}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important; animation:none!important}}

/* ═══════════ ELEMENTY WSPÓLNE PODSTRON ═══════════ */

/* nagłówek podstrony (zamiast hero) */
.page-head{
  position:relative; padding:calc(var(--s6) + 90px) 0 var(--s6);
  background:var(--paper-2); text-align:center; overflow:hidden;
}
.page-head h1{font-size:clamp(2.2rem,4.6vw,3.6rem); margin-bottom:var(--s2)}
.page-head p{max-width:56ch; margin:0 auto; color:var(--ink-soft)}
.page-head .label{display:block; margin-bottom:var(--s2)}
.page-head--photo{background:var(--ink); color:#fff;
  min-height:clamp(420px,62svh,720px); display:grid; align-content:center;
  padding-block:calc(var(--s6) + 90px) var(--s6)}
.page-head--photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.62}
.page-head--photo > *{position:relative; z-index:2}
.page-head--photo h1{color:#fff; text-shadow:0 2px 26px rgba(0,0,0,.5)}
.page-head--photo p, .page-head--photo .label{color:rgba(255,255,255,.9); text-shadow:0 1px 18px rgba(0,0,0,.5)}

/* okruszki */
.crumbs{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:var(--s2)}
.crumbs a{color:inherit; text-decoration:none; border-bottom:1px solid transparent}
.crumbs a:hover{border-color:currentColor}

/* siatka galerii (masonry-like) */
.gal{columns:3; column-gap:clamp(12px,1.6vw,20px)}
.gal figure{break-inside:avoid; margin:0 0 clamp(12px,1.6vw,20px); overflow:hidden; background:var(--paper-2)}
.gal img{width:100%; display:block; transition:transform 1.3s cubic-bezier(.16,1,.3,1), filter .6s ease}
.gal figure:hover img{transform:scale(1.04)}

/* karty kategorii portfolio */
.cats{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.4vw,32px)}
.cat{position:relative; display:block; overflow:hidden; text-decoration:none; color:#fff; min-height:clamp(240px,26vw,340px)}
.cat img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.5s cubic-bezier(.16,1,.3,1); filter:saturate(.94)}
.cat:hover img{transform:scale(1.05)}
.cat::after{content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(22,23,22,.12),rgba(22,23,22,.72)); transition:background .5s}
.cat:hover::after{background:linear-gradient(180deg,rgba(22,23,22,.05),rgba(22,23,22,.62))}
.cat__body{position:absolute; inset:auto 0 0 0; z-index:2; padding:var(--s3); text-shadow:0 2px 20px rgba(0,0,0,.5)}
.cat__body h2{font-size:clamp(1.4rem,2.4vw,2rem); color:#fff; margin-bottom:.25rem}
.cat__body span{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.86)}

/* lista historii */
.stories-list{display:grid; gap:clamp(34px,5vw,60px)}
.story-row{display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(22px,4vw,56px); align-items:center; text-decoration:none; color:inherit}
.story-row:nth-child(even){direction:rtl}
.story-row:nth-child(even) > *{direction:ltr}
.story-row__img{overflow:hidden; background:var(--paper-2)}
.story-row__img img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block;
  transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.story-row:hover .story-row__img img{transform:scale(1.045)}
.story-row h2{font-size:clamp(1.5rem,2.8vw,2.2rem); margin-bottom:.5rem}
.story-row p{color:var(--ink-soft); margin-bottom:var(--s2)}
.story-row .label{display:block; margin-bottom:.7rem}

/* wpis: treść */
.post{max-width:70ch; margin:0 auto}
.post p{margin-bottom:1.35em}
.post p:first-of-type{font-size:1.14rem}
.post__meta{display:flex; gap:var(--s3); flex-wrap:wrap; justify-content:center; margin-bottom:var(--s4)}

/* PAKIETY */
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,28px); align-items:stretch}
.plan{
  display:flex; flex-direction:column; background:#fafaf8; padding:clamp(24px,2.6vw,36px);
  border:1px solid var(--line); position:relative; transition:transform .6s cubic-bezier(.16,1,.3,1), box-shadow .6s ease;
}
.plan:hover{transform:translateY(-6px); box-shadow:0 26px 54px -30px rgba(20,16,10,.5)}
.plan--best{border-color:var(--terra); background:#fff}
.plan__tag{
  position:absolute; top:0; left:50%; transform:translate(-50%,-50%);
  background:var(--terra); color:var(--paper); font-family:"Jost","Jost zastępcza",sans-serif; font-size:.6rem;
  letter-spacing:.2em; text-transform:uppercase; padding:.45em 1.2em; white-space:nowrap;
}
.plan h3{font-size:1.5rem; margin-bottom:.3rem}
.plan__lead{color:var(--ink-soft); font-size:.94rem; margin-bottom:var(--s3); min-height:3.2em}
.plan__price{font-family:var(--font-title); font-size:2.4rem; line-height:1; margin-bottom:.35rem}
.plan__price small{font-size:.9rem; font-family:"Jost","Jost zastępcza",sans-serif; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:.5rem}
.plan ul{list-style:none; padding:0; margin:var(--s3) 0 var(--s3); flex:1}
.plan li{position:relative; padding-left:1.5rem; margin-bottom:.75rem; font-size:.97rem; line-height:1.55}
.plan li::before{content:""; position:absolute; left:0; top:.62em; width:9px; height:1px; background:var(--terra)}
.plan li.off{color:rgba(35,32,28,.42)}
.plan li.off::before{background:rgba(35,32,28,.3)}
.plan .cta{align-self:flex-start}

/* dodatki / upselling */
.addons{display:grid; grid-template-columns:repeat(2,1fr); gap:0 clamp(28px,5vw,70px)}
.addon{display:flex; justify-content:space-between; gap:var(--s2); align-items:baseline;
  padding:1.05rem 0; border-bottom:1px solid var(--line)}
.addon__name{font-size:1.02rem}
.addon__name small{display:block; font-size:.82rem; color:var(--ink-soft); margin-top:.15rem; line-height:1.5}
.addon__price{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.86rem; letter-spacing:.08em; white-space:nowrap; color:var(--ink)}

/* proces / kroki */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(20px,3vw,40px)}
.step{position:relative; padding-top:var(--s3); border-top:1px solid var(--line)}
.step__n{font-family:var(--font-title); font-size:1.05rem; color:var(--terra); display:block; margin-bottom:.5rem}
.step h3{font-size:1.16rem; margin-bottom:.4rem}
.step p{color:var(--ink-soft); font-size:.94rem}

/* FAQ */
.faq{max-width:800px; margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer; list-style:none; padding:1.15rem 2.4rem 1.15rem 0; position:relative;
  font-family:var(--font-title); font-size:1.14rem; transition:color .3s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:""; position:absolute; right:.5rem; top:50%; width:11px; height:11px; margin-top:-7px;
  border-right:1px solid var(--ink); border-bottom:1px solid var(--ink);
  transform:rotate(45deg); transition:transform .4s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg); margin-top:-3px}
.faq summary:hover{color:var(--terra)}
.faq p{padding:0 2.4rem 1.4rem 0; color:var(--ink-soft); margin:0}

/* kontakt: dane */
.contact{display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(30px,5vw,80px); align-items:start}
.contact__list{list-style:none; padding:0; margin:0}
.contact__list li{padding:1.05rem 0; border-bottom:1px solid var(--line)}
.contact__list .label{display:block; margin-bottom:.3rem}
.contact__list a, .contact__list strong{font-size:1.14rem; font-weight:400; color:var(--ink); text-decoration:none;
  border-bottom:1px solid transparent; transition:border-color .35s}
.contact__list a:hover{border-color:var(--ink)}

@media (max-width:900px){
  .gal{columns:2}
  .cats{grid-template-columns:1fr}
  .story-row{grid-template-columns:1fr}
  .story-row:nth-child(even){direction:ltr}
  .plans{grid-template-columns:1fr; gap:var(--s4)}
  .plan__lead{min-height:0}
  .addons{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .contact{grid-template-columns:1fr}
  .page-head{padding-top:calc(var(--s6) + 74px)}
}
@media (max-width:560px){
  .gal{columns:1}
  .steps{grid-template-columns:1fr}
}

/* ═══════════ GALERIA BLOGOWA (jedno zdjęcie pod drugim) ═══════════ */
.blog-gal{max-width:1000px; margin:0 auto; display:grid; gap:clamp(14px,2vw,26px)}
.blog-gal figure{margin:0; overflow:hidden; background:var(--paper-2)}
.blog-gal img{width:100%; height:auto; display:block}
.blog-gal figcaption{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); padding-top:.55rem; text-align:right;
}

/* siatka galerii portfolio — równe kafle */
.gal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(12px,1.6vw,20px)}
.gal-grid figure{margin:0; overflow:hidden; background:var(--paper-2)}
.gal-grid img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block;
  transition:transform 1.3s cubic-bezier(.16,1,.3,1)}
.gal-grid figure:hover img{transform:scale(1.045)}

/* siatka historii jako odbitki — jeden format */
.prints-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.4vw,48px)}

/* separator między historiami */
.hr-dot{display:flex; align-items:center; justify-content:center; gap:.7rem; padding:var(--s5) 0}
.hr-dot::before, .hr-dot::after{content:""; height:1px; flex:1; background:var(--line); max-width:180px}
.hr-dot i{width:4px; height:4px; background:var(--terra); border-radius:50%; display:block}

@media (max-width:900px){
  .gal-grid{grid-template-columns:repeat(2,1fr)}
  .prints-grid{grid-template-columns:repeat(2,1fr); gap:var(--s3)}
}
@media (max-width:560px){
  .gal-grid{grid-template-columns:1fr}
  .prints-grid{grid-template-columns:1fr; max-width:400px; margin-inline:auto}
}

/* ═══════════ STREFA KLIENTA ═══════════ */
.lock{min-height:100svh; display:grid; place-items:center; padding:120px var(--gutter) var(--s6); position:relative}
.lock__bg{position:absolute; inset:0; z-index:0}
.lock__bg img{width:100%; height:100%; object-fit:cover}
.lock__bg::after{content:""; position:absolute; inset:0; background:rgba(24,25,24,.62)}
.lock__card{position:relative; z-index:2; background:var(--paper); padding:clamp(30px,4vw,52px); width:min(430px,100%);
  box-shadow:0 40px 90px -40px rgba(16,17,16,.7); text-align:center}
.lock__card h1{font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:.5rem}
.lock__card p{color:var(--ink-soft); font-size:.96rem; margin-bottom:var(--s3)}
.lock__card .field{text-align:left; margin-bottom:var(--s2)}
.lock__hint{font-size:.78rem; color:var(--ink-soft); margin-top:var(--s2)}
.lock__hint code{background:var(--paper-2); padding:.15em .5em; font-size:.92em}

/* pasek panelu */
.cbar{position:sticky; top:0; z-index:25; background:var(--paper); border-bottom:1px solid var(--line)}
.cbar__in{max-width:var(--maxw); margin:0 auto; padding:var(--s2) var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:var(--s3); flex-wrap:wrap}
.cbar__who strong{font-family:var(--font-title); font-weight:400; font-size:1.1rem; display:block}
.cbar__who span{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft)}
.cbar__acts{display:flex; gap:.5rem; flex-wrap:wrap}
.btn-s{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.72em 1.15em; border:1px solid var(--line); background:transparent; color:var(--ink);
  cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:.45rem;
  transition:.35s cubic-bezier(.16,1,.3,1);
}
.btn-s:hover{border-color:var(--ink); background:var(--ink); color:var(--paper)}
.btn-s--on{background:var(--terra); border-color:var(--terra); color:var(--paper)}
.btn-s--on:hover{background:var(--ink); border-color:var(--ink)}
.btn-s b{font-weight:400; font-family:var(--font-title); font-size:.92rem}

/* zakładki folderów */
.tabs{display:flex; gap:.4rem; overflow-x:auto; padding-bottom:2px; scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.7em 1.1em; border:1px solid var(--line); background:transparent; cursor:pointer; white-space:nowrap;
  color:var(--ink-soft); transition:.3s;
}
.tab:hover{color:var(--ink); border-color:rgba(35,32,28,.35)}
.tab[aria-selected="true"]{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.tab small{opacity:.6; margin-left:.4rem}

/* tryb zaznaczania */
.modes{display:flex; gap:.4rem; flex-wrap:wrap; align-items:center}
.modes__lab{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-right:.3rem}

/* siatka zdjęć klienta */
.cgrid{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(10px,1.4vw,16px)}
.cphoto{position:relative; background:var(--paper-2); overflow:hidden; cursor:pointer; aspect-ratio:3/2}
.cphoto img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.16,1,.3,1), filter .4s}
.cphoto:hover img{transform:scale(1.04)}
.cphoto__n{position:absolute; left:8px; top:8px; z-index:3; font-family:"Jost","Jost zastępcza",sans-serif; font-size:.6rem;
  letter-spacing:.1em; color:#fff; background:rgba(24,25,24,.55); padding:.2em .5em}
.cphoto__marks{position:absolute; right:8px; top:8px; z-index:3; display:flex; gap:4px}
.mark{width:26px; height:26px; display:grid; place-items:center; font-size:.72rem; color:#fff;
  background:rgba(24,25,24,.6); backdrop-filter:blur(2px)}
.mark--album{background:var(--terra)}
.mark--print{background:var(--green)}
.mark--hide{background:#5a5248}
.cphoto.is-hidden img{filter:grayscale(1) brightness(.62)}
.cphoto::after{content:""; position:absolute; inset:0; border:2px solid transparent; transition:border-color .3s; pointer-events:none}
.cphoto.is-sel::after{border-color:var(--terra)}
.cphoto svg{width:13px; height:13px; fill:currentColor}

/* podsumowanie / modal */
.sheet{position:fixed; inset:0; z-index:60; display:none; place-items:center; padding:var(--s3);
  background:rgba(24,25,24,.62); backdrop-filter:blur(3px)}
.sheet.is-open{display:grid}
.sheet__box{background:var(--paper); width:min(620px,100%); max-height:86vh; overflow:auto; padding:clamp(26px,3.4vw,44px);
  box-shadow:0 40px 100px -40px rgba(16,17,16,.7)}
.sheet__box h2{font-size:1.7rem; margin-bottom:.4rem}
.sheet__box > p{color:var(--ink-soft); margin-bottom:var(--s3)}
.sum{list-style:none; padding:0; margin:0 0 var(--s3)}
.sum li{display:flex; justify-content:space-between; gap:1rem; padding:.8rem 0; border-bottom:1px solid var(--line)}
.sum strong{font-weight:400; font-family:var(--font-title); font-size:1.1rem}
.chips{display:flex; flex-wrap:wrap; gap:.3rem; margin-top:.5rem}
.chip{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.62rem; letter-spacing:.08em; background:var(--paper-2); padding:.28em .55em}
.sheet__close{float:right; background:none; border:0; font-size:1.5rem; line-height:1; cursor:pointer; color:var(--ink-soft); padding:0 0 0 1rem}

/* ustawienia galerii gości */
.guest-set{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,54px)}
.pickcover{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; max-height:280px; overflow:auto; padding:4px; background:var(--paper-2)}
.pickcover button{border:2px solid transparent; padding:0; background:none; cursor:pointer; aspect-ratio:3/2; overflow:hidden}
.pickcover img{width:100%; height:100%; object-fit:cover; display:block}
.pickcover button[aria-pressed="true"]{border-color:var(--terra)}
.share{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:var(--s2)}

/* toast */
.toast{position:fixed; left:50%; bottom:26px; transform:translate(-50%,120%); z-index:80;
  background:var(--ink); color:var(--paper); padding:.9rem 1.5rem; font-family:"Jost","Jost zastępcza",sans-serif;
  font-size:.8rem; letter-spacing:.06em; transition:transform .55s cubic-bezier(.16,1,.3,1); box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.toast.is-on{transform:translate(-50%,0)}

@media (max-width:900px){
  .cgrid{grid-template-columns:repeat(3,1fr)}
  .guest-set{grid-template-columns:1fr}
  .cbar__in{gap:var(--s2)}
}
@media (max-width:600px){
  .cgrid{grid-template-columns:repeat(2,1fr)}
  .pickcover{grid-template-columns:repeat(3,1fr)}
}

/* ═══════════ HISTORIE: rzędy z odbitką ═══════════ */
.story-rows{display:grid; gap:clamp(40px,6vw,80px)}
.story-row2{display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,5vw,70px); align-items:center; text-decoration:none; color:inherit}
.story-row2:nth-child(even) .story-row2__print{order:2}
.story-row2__print{
  background:#fafaf8; padding:14px 14px 0; box-shadow:0 18px 44px -26px rgba(20,16,10,.55);
  transition:transform .7s cubic-bezier(.16,1,.3,1), box-shadow .7s ease; align-self:start;
}
.story-row2:nth-child(odd) .story-row2__print{transform:rotate(-.7deg)}
.story-row2:nth-child(even) .story-row2__print{transform:rotate(.6deg)}
.story-row2:hover .story-row2__print{transform:rotate(0) translateY(-7px); box-shadow:0 30px 62px -28px rgba(20,16,10,.6)}
.story-row2__img{overflow:hidden; background:var(--paper-2)}
.story-row2__img img{width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
  object-position:var(--focus,center center); transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.story-row2:hover .story-row2__img img{transform:scale(1.04)}
.story-row2__cap{padding:1rem .4rem 1.2rem; text-align:center}
.story-row2__cap h3{font-family:"Pinyon Script",cursive; font-size:1.7rem; line-height:1; margin:0}
.story-row2__body h2{font-size:clamp(1.5rem,2.7vw,2.2rem); margin-bottom:.6rem}
.story-row2__body p{color:var(--ink-soft); margin-bottom:var(--s3)}
.story-row2__body .label{display:block; margin-bottom:.7rem}

@media (max-width:860px){
  .story-row2{grid-template-columns:1fr; gap:var(--s3)}
  .story-row2:nth-child(even) .story-row2__print{order:0}
  .story-row2__print{transform:none!important; max-width:400px; margin-inline:auto}
}

/* ═══════════ TRYB EDYCJI / STANY PANELU ═══════════ */
.editbar{
  background:var(--paper-2); border-bottom:1px solid var(--line);
  transition:background .5s ease;
}
.editbar.is-editing{background:#232423; border-color:#2b2620}
.editbar__in{max-width:var(--maxw); margin:0 auto; padding:var(--s3) var(--gutter);
  display:flex; align-items:center; justify-content:space-between; gap:var(--s3); flex-wrap:wrap}
.editbar__txt{max-width:52ch}
.editbar__txt h2{font-size:1.24rem; margin-bottom:.25rem}
.editbar__txt p{font-size:.92rem; color:var(--ink-soft); line-height:1.6}
.editbar.is-editing .editbar__txt h2{color:var(--paper)}
.editbar.is-editing .editbar__txt p{color:#a8a9a6}
.btn-edit{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  padding:1em 1.8em; border:1px solid #8a4a2c;
  background:var(--grad-copper); color:#fff;
  box-shadow:0 6px 18px -10px rgba(138,74,44,.8), inset 0 1px 0 rgba(255,255,255,.2);
  cursor:pointer; white-space:nowrap; transition:.4s cubic-bezier(.16,1,.3,1); display:inline-flex; align-items:center; gap:.6rem;
}
.btn-edit:hover{background:linear-gradient(135deg,#c07f49,#96522f); border-color:#96522f}
.editbar.is-editing .btn-edit{background:var(--terra); border-color:var(--terra)}
.editbar.is-editing .btn-edit:hover{background:var(--paper); color:var(--ink); border-color:var(--paper)}
.dot-live{width:7px; height:7px; border-radius:50%; background:currentColor; display:block; animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* narzędzia widoczne tylko w trybie edycji */
.tools{display:none; margin-top:var(--s4)}
body.editing .tools{display:block}
body.editing .cphoto{cursor:pointer}
body:not(.editing) .cphoto{cursor:zoom-in}
body:not(.editing) .cphoto__marks{opacity:.55}

/* status publikacji */
.pubstate{display:inline-flex; align-items:center; gap:.5rem; font-family:"Jost","Jost zastępcza",sans-serif;
  font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; padding:.5em .9em; border:1px solid var(--line)}
.pubstate i{width:6px; height:6px; border-radius:50%; background:#b58a3c; display:block}
.pubstate.is-live{border-color:var(--green); color:var(--green)}
.pubstate.is-live i{background:var(--green)}

/* rozmiary odbitek */
.sizes{display:grid; grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:8px; margin-top:.6rem}
.size{border:1px solid var(--line); background:#fafaf8; padding:.7rem .5rem; cursor:pointer; text-align:center;
  font-family:"Jost","Jost zastępcza",sans-serif; transition:.3s}
.size:hover{border-color:rgba(35,32,28,.4)}
.size[aria-pressed="true"]{background:var(--terra); border-color:var(--terra); color:var(--paper)}
.size b{display:block; font-size:.92rem; font-weight:400; letter-spacing:.06em}
.size small{display:block; font-size:.68rem; opacity:.7; margin-top:.15rem}
.size__qty{display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:.45rem}
.size__qty button{width:20px; height:20px; border:1px solid currentColor; background:none; color:inherit; cursor:pointer; line-height:1; font-size:.8rem; padding:0}
.note-box{background:var(--paper-2); padding:1rem 1.2rem; font-size:.86rem; line-height:1.6; color:var(--ink-soft); margin-top:var(--s2)}

/* ═══════════ PANEL ADMINA ═══════════ */
.adm{display:grid; grid-template-columns:220px 1fr; min-height:100svh}
.adm__side{background:#212221; color:#e8e1d4; padding:var(--s4) var(--s3)}
.adm__side h1{font-family:var(--font-title); font-size:1.05rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:var(--s4)}
.adm__nav{display:grid; gap:.2rem}
.adm__nav button{
  text-align:left; background:none; border:0; color:#a8a9a6; cursor:pointer; padding:.7rem .8rem;
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.76rem; letter-spacing:.1em; transition:.3s;
}
.adm__nav button:hover{color:#fff; background:rgba(255,255,255,.06)}
.adm__nav button[aria-current="true"]{background:var(--terra); color:#fff}
.adm__main{padding:var(--s5) clamp(20px,4vw,52px); background:var(--paper)}
.adm__head{display:flex; justify-content:space-between; align-items:flex-end; gap:var(--s3); flex-wrap:wrap; margin-bottom:var(--s4)}
.adm__head h2{font-size:clamp(1.5rem,2.6vw,2.1rem)}
.adm table{width:100%; border-collapse:collapse; font-size:.94rem}
.adm th{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); text-align:left; padding:.7rem .8rem; border-bottom:1px solid var(--line); font-weight:400}
.adm td{padding:.95rem .8rem; border-bottom:1px solid var(--line); vertical-align:middle}
.adm tr:hover td{background:#fafaf8}
.adm__gal{display:flex; align-items:center; gap:.8rem}
.adm__gal img{width:56px; height:40px; object-fit:cover; display:block}
.adm__gal strong{font-weight:400; font-family:var(--font-title); font-size:1.05rem; display:block}
.adm__gal span{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.66rem; letter-spacing:.12em; color:var(--ink-soft)}
.pill{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; padding:.35em .7em; white-space:nowrap}
.pill--live{background:#dfe7e2; color:#38574a}
.pill--draft{background:#e9e7e0; color:#6e6a5c}
.pill--wait{background:#e8e4e2; color:#5c4f4a}
.adm__acts{display:flex; gap:.35rem; justify-content:flex-end}
.price-row{display:grid; grid-template-columns:1fr 130px 130px; gap:.7rem; align-items:center; padding:.7rem 0; border-bottom:1px solid var(--line)}
.price-row input{font-family:"Jost","Jost zastępcza",sans-serif; padding:.6rem .7rem; border:1px solid var(--line); background:#fafaf8; width:100%}
.price-row span{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft)}

@media (max-width:860px){
  .adm{grid-template-columns:1fr}
  .adm__side{padding:var(--s3)}
  .adm__nav{grid-auto-flow:column; overflow-x:auto}
  .adm table, .adm thead, .adm tbody, .adm th, .adm td, .adm tr{display:block}
  .adm thead{display:none}
  .adm td{border:0; padding:.35rem .5rem}
  .adm tr{border:1px solid var(--line); margin-bottom:var(--s2); padding:.7rem; display:block}
  .price-row{grid-template-columns:1fr 1fr}
}

/* ═══════════ LIGHTBOX ═══════════ */
.lb{position:fixed; inset:0; z-index:200; display:none; background:rgba(18,19,18,.985); opacity:1}
.lb.is-open{display:block}
.lb.is-closing{opacity:0; transition:opacity .28s ease}

.lb__stage{position:absolute; inset:0 0 118px; display:grid; place-items:center; padding:64px clamp(12px,5vw,96px) 12px}
.lb__img{max-width:100%; max-height:100%; object-fit:contain; display:block;
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9)}


.lb__top{position:absolute; inset:0 0 auto; z-index:3; display:flex; align-items:center;
  justify-content:space-between; gap:1rem; padding:16px clamp(12px,3vw,26px);
  background:linear-gradient(rgba(20,21,20,.75),transparent)}
.lb__meta{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(244,239,228,.82)}
.lb__meta b{color:#fff; font-weight:400}
.lb__tools{display:flex; gap:.4rem; align-items:center}
.lb-actions{display:flex; gap:.4rem; align-items:center}
.lb__btn{width:42px; height:42px; display:grid; place-items:center; background:rgba(244,239,228,.08);
  border:1px solid rgba(244,239,228,.16); color:#f1f1ef; cursor:pointer; padding:0;
  transition:.3s cubic-bezier(.16,1,.3,1); font-family:"Jost","Jost zastępcza",sans-serif; font-size:.66rem; letter-spacing:.1em}
.lb__btn:hover{background:rgba(244,239,228,.2); border-color:rgba(244,239,228,.4)}
.lb__btn--wide{width:auto; height:42px; padding:0 .95rem; gap:.5rem; white-space:nowrap;
  display:inline-flex; align-items:center; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase}
.lb__btn--wide > span{font-family:var(--font-title); font-size:.9rem; letter-spacing:0; opacity:.75}
.lb__btn--wide.is-on > span{opacity:1}
.lb__btn.is-on{background:var(--terra); border-color:var(--terra); color:#fff}
.lb__btn svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5}
.lb__nav{position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:54px; height:54px;
  display:grid; place-items:center; background:rgba(20,21,20,.4); border:1px solid rgba(244,239,228,.18);
  color:#f1f1ef; cursor:pointer; transition:.3s; padding:0}
.lb__nav:hover{background:rgba(244,239,228,.16)}
.lb__nav:disabled{opacity:.25; cursor:default}
.lb__nav svg{width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.3}
.lb__nav--prev{left:clamp(8px,2vw,22px)} .lb__nav--next{right:clamp(8px,2vw,22px)}
.lb__strip{position:absolute; inset:auto 0 0; height:118px; display:flex; gap:8px; align-items:center;
  overflow-x:auto; padding:0 clamp(12px,3vw,26px); background:linear-gradient(transparent,rgba(20,21,20,.85));
  scrollbar-width:none}
.lb__strip::-webkit-scrollbar{display:none}
.lb__strip button{flex:none; width:104px; height:74px; padding:0; border:0; cursor:pointer;
  background:none; opacity:.42; transition:opacity .3s, outline-color .3s; outline:2px solid transparent; outline-offset:-2px}
.lb__strip button:hover{opacity:.8}
.lb__strip button[aria-current="true"]{opacity:1; outline-color:#f1f1ef}
.lb__strip img{width:100%; height:100%; object-fit:cover; display:block}
.lb__cap{position:absolute; left:0; right:0; bottom:126px; text-align:center; z-index:3;
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.16em; color:rgba(244,239,228,.6);
  text-shadow:0 1px 10px rgba(0,0,0,.85); pointer-events:none; padding:0 1rem}
body.lb-open{overflow:hidden}
/* kursor sygnalizujący podgląd */
.gal-grid figure, .blog-gal figure{cursor:zoom-in}
@media (max-width:700px){
  .lb__stage{inset:0 0 96px; padding:58px 8px 8px}
  .lb__strip{height:96px} .lb__strip button{width:82px; height:58px}
  .lb__nav{width:44px; height:44px}
  .lb__cap{bottom:104px}
}
@media (prefers-reduced-motion:reduce){.lb,.lb__img{transition:none!important}}

/* lupa na miniaturze w trybie edycji */
.cphoto__zoom{
  position:absolute; left:8px; bottom:8px; z-index:4; width:28px; height:28px; padding:0;
  background:rgba(24,25,24,.6); border:1px solid rgba(244,239,228,.28); color:#fff;
  cursor:zoom-in; font-family:"Jost","Jost zastępcza",sans-serif; font-size:1rem; line-height:1;
  display:grid; place-items:center; opacity:0; transition:opacity .3s, background .3s;
}
.cphoto:hover .cphoto__zoom{opacity:1}
.cphoto__zoom:hover{background:var(--terra); border-color:var(--terra)}
@media (hover:none){.cphoto__zoom{opacity:1}}

/* kafle „pozostałe części dnia" — zawsze w jednym rzędzie, niższe */
.cats--row{grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,24px)}
.cats--row .cat{min-height:clamp(190px,17vw,240px)}
.cats--row .cat__body{padding:var(--s2) var(--s3) var(--s3)}
.cats--row .cat__body h2{font-size:clamp(1.15rem,1.7vw,1.5rem); margin-bottom:.15rem}
.cats--row .cat__body span{font-size:.6rem; letter-spacing:.2em}
.cats--row .cat::after{background:linear-gradient(180deg,rgba(22,23,22,.05),rgba(22,23,22,.78))}
@media (max-width:860px){
  .cats--row{grid-template-columns:1fr 1fr}
  .cats--row .cat:last-child{grid-column:1/-1}
}
@media (max-width:560px){
  .cats--row{grid-template-columns:1fr}
  .cats--row .cat:last-child{grid-column:auto}
}

/* ═══════════ KARUZELA HISTORII (aktywna karta na środku) ═══════════ */
.hero-car{position:relative; overflow:hidden; padding-block:var(--s5)}
.hero-car__track{
  display:flex; align-items:center; gap:clamp(14px,2vw,28px);
  transition:transform .85s cubic-bezier(.22,1,.3,1); will-change:transform;
}
.hero-car__item{
  flex:0 0 var(--card-w,58%); position:relative; text-decoration:none; color:inherit;
  transition:opacity .7s ease, filter .7s ease, transform .85s cubic-bezier(.22,1,.3,1);
  opacity:.35; filter:grayscale(.55);
}
.hero-car__item.is-active{opacity:1; filter:none}
.hero-car__fig{position:relative; overflow:hidden; background:var(--paper-2)}
.hero-car__fig img{width:100%; aspect-ratio:3/2; object-fit:cover; display:block;
  object-position:var(--focus,center center); transform:scale(1.02);
  transition:transform 1.2s cubic-bezier(.22,1,.3,1)}
.hero-car__item.is-active:hover .hero-car__fig img{transform:scale(1.05)}
.hero-car__body{
  position:absolute; left:0; right:0; bottom:0; padding:clamp(18px,2.4vw,34px);
  color:#fff; opacity:0; transform:translateY(12px);
  transition:opacity .6s ease .15s, transform .7s cubic-bezier(.22,1,.3,1) .15s;
  background:linear-gradient(transparent,rgba(18,19,18,.28) 32%,rgba(18,19,18,.82));
}
.hero-car__item.is-active .hero-car__body{opacity:1; transform:none}
.hero-car__body h3{font-family:"Pinyon Script",cursive; font-size:clamp(1.7rem,3vw,2.6rem);
  line-height:1; color:#fff; margin-bottom:.3rem; text-shadow:0 2px 20px rgba(0,0,0,.5)}
.hero-car__body .label{color:rgba(255,255,255,.88); text-shadow:0 1px 14px rgba(0,0,0,.6)}
.hero-car__more{
  display:inline-block; margin-top:.9rem; font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem;
  letter-spacing:.22em; text-transform:uppercase; color:#fff;
  border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:4px;
}
.hero-car__item.is-active:hover .hero-car__more{border-color:#fff; letter-spacing:.28em}

.hero-car__ui{display:flex; align-items:center; justify-content:space-between; gap:var(--s3);
  margin-top:var(--s4); flex-wrap:wrap}
.hero-car__dots{display:flex; gap:.5rem; align-items:center}
.hero-car__dots button{width:30px; height:2px; border:0; padding:0; cursor:pointer;
  background:rgba(30,31,30,.22); transition:background .4s ease}
.hero-car__dots button[aria-current="true"]{background:var(--ink)}
.hero-car__count{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.72rem; letter-spacing:.2em; color:var(--ink-soft)}
.hero-car__count b{color:var(--ink); font-weight:400; font-family:var(--font-title); font-size:1rem}

@media (max-width:860px){
  .hero-car__item{--card-w:80%}
  .hero-car__body{padding:16px}
}
@media (max-width:700px){
  /* na telefonie karuzela to zwykłe przewijanie palcem z przyciąganiem do karty */
  .hero-car{overflow:visible; padding-inline:0}
  .hero-car__track{overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none;
    transform:none !important; transition:none; will-change:auto; padding-inline:var(--gutter); scroll-padding-inline:var(--gutter); gap:14px; align-items:flex-start}
  .hero-car__track::-webkit-scrollbar{display:none}
  .hero-car__item{flex:0 0 84%; scroll-snap-align:center; opacity:1; filter:none; display:flex; flex-direction:column; background:var(--ink); border-radius:var(--r); overflow:hidden}
  .hero-car__fig{border-radius:0}
  .hero-car__fig img{aspect-ratio:4/3; transform:none}
  .hero-car__body{position:static; opacity:1; transform:none; background:none; padding:16px 18px 20px; display:flex; flex-direction:column; gap:.35rem}
  .hero-car__body h3{font-size:1.9rem; text-shadow:none}
  .hero-car__body p{display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; font-size:.92rem !important}
  .hero-car__ui{padding-inline:var(--gutter)}
  .hero-car__ui .arrows{display:none}
}

/* strzałki nawigacyjne (karuzele) */
.arrows{display:flex; gap:.5rem}
.arrows button{
  width:46px; height:46px; border:1px solid var(--line); background:transparent; cursor:pointer;
  display:grid; place-items:center; color:var(--ink); padding:0;
  transition:.4s cubic-bezier(.16,1,.3,1);
}
.arrows button:hover{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.arrows svg{width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.4}

/* ═══════════ LISTA HISTORII — wariant kompaktowy ═══════════ */
.stories-c{display:grid; gap:clamp(20px,2.6vw,34px)}
.story-c{
  display:grid; grid-template-columns:minmax(0,300px) 1fr; gap:clamp(18px,2.6vw,40px);
  align-items:center; text-decoration:none; color:inherit;
  padding-bottom:clamp(20px,2.6vw,34px); border-bottom:1px solid var(--line);
}
.story-c:last-child{border-bottom:0; padding-bottom:0}
.story-c__fig{overflow:hidden; background:var(--paper-2)}
.story-c__fig img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  object-position:var(--focus,center center);
  transition:transform 1.1s cubic-bezier(.16,1,.3,1), filter .6s ease; filter:grayscale(.12)}
.story-c:hover .story-c__fig img{transform:scale(1.05); filter:none}
.story-c__body h2{font-size:clamp(1.25rem,2vw,1.7rem); margin-bottom:.35rem}
.story-c__body .sig-name{font-family:"Pinyon Script",cursive; font-size:1.5rem; line-height:1; margin-bottom:.2rem; display:block}
.story-c__body p{color:var(--ink-soft); font-size:.96rem; margin-bottom:.7rem; max-width:62ch}
.story-c__meta{display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; margin-bottom:.5rem}
.story-c__go{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  border-bottom:1px solid var(--line); padding-bottom:3px; transition:.35s}
.story-c:hover .story-c__go{border-color:var(--ink); letter-spacing:.24em}

@media (max-width:700px){
  .story-c{grid-template-columns:1fr; gap:var(--s2)}
  .story-c__fig img{aspect-ratio:3/2}
}

/* ═══════════ MOZAIKA ZDJĘĆ W HISTORII ═══════════ */
.viewsw{display:flex; gap:.4rem; align-items:center; justify-content:center; margin-bottom:var(--s4)}
@media (max-width:700px){ .viewsw{display:none} }
.viewsw__lab{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.64rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); margin-right:.5rem}
.viewsw button{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.65em 1.2em; border:1px solid var(--line); background:transparent; color:var(--ink-soft); cursor:pointer;
  display:inline-flex; align-items:center; gap:.5rem; transition:.35s cubic-bezier(.16,1,.3,1);
}
.viewsw button:hover{color:var(--ink); border-color:rgba(30,31,30,.4)}
.viewsw button[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.viewsw svg{width:13px; height:13px; fill:currentColor}

/* mozaika: 12 kolumn, cykl 2 → 3 → 4 zdjęcia w rzędzie */
.mosaic{display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(10px,1.4vw,18px);
  grid-auto-rows:clamp(180px,19vw,300px)}
.mosaic figure{margin:0; overflow:hidden; background:var(--paper-2); grid-column:span 4}
.mosaic img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.mosaic figure:hover img{transform:scale(1.045)}
.mosaic figure:nth-child(9n+1){grid-column:span 7}
.mosaic figure:nth-child(9n+2){grid-column:span 5}
.mosaic figure:nth-child(9n+3),
.mosaic figure:nth-child(9n+4),
.mosaic figure:nth-child(9n+5){grid-column:span 4}
.mosaic figure:nth-child(9n+6),
.mosaic figure:nth-child(9n+7),
.mosaic figure:nth-child(9n+8),
.mosaic figure:nth-child(9n+9){grid-column:span 3}
.mosaic figcaption{display:none}

@media (max-width:900px){
  .mosaic{grid-template-columns:repeat(6,1fr); grid-auto-rows:clamp(140px,26vw,220px)}
  .mosaic figure:nth-child(9n+1){grid-column:span 4}
  .mosaic figure:nth-child(9n+2){grid-column:span 2}
  .mosaic figure:nth-child(9n+3),
  .mosaic figure:nth-child(9n+4),
  .mosaic figure:nth-child(9n+5){grid-column:span 2}
  .mosaic figure:nth-child(9n+6),
  .mosaic figure:nth-child(9n+7){grid-column:span 3}
  .mosaic figure:nth-child(9n+8),
  .mosaic figure:nth-child(9n+9){grid-column:span 3}
}
@media (max-width:520px){
  .mosaic{grid-template-columns:repeat(2,1fr); grid-auto-rows:44vw}
  .mosaic figure[class],
  .mosaic figure:nth-child(9n+1),
  .mosaic figure:nth-child(9n+2),
  .mosaic figure:nth-child(9n+3),
  .mosaic figure:nth-child(9n+4),
  .mosaic figure:nth-child(9n+5),
  .mosaic figure:nth-child(9n+6),
  .mosaic figure:nth-child(9n+7),
  .mosaic figure:nth-child(9n+8),
  .mosaic figure:nth-child(9n+9){grid-column:span 1}
  .mosaic figure:nth-child(9n+1){grid-column:span 2}
}

/* ═══════════ KAFLE PORTFOLIO — wersja editorial ═══════════ */
.cat{
  position:relative; display:block; overflow:visible; text-decoration:none; color:inherit;
  min-height:0; background:transparent;
}
.cat__wrap{position:relative; overflow:hidden; background:var(--paper-2)}
.cat__wrap::before{ /* passe-partout: cienka ramka światła */
  content:""; position:absolute; inset:12px; border:1px solid rgba(255,255,255,.28); z-index:3;
  opacity:0; transform:scale(1.02); transition:opacity .6s ease, transform .8s cubic-bezier(.16,1,.3,1);
  pointer-events:none;
}
.cat:hover .cat__wrap::before{opacity:1; transform:none}
.cat img{
  position:static; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block;
  filter:grayscale(.18) brightness(.97);
  transition:transform 1.5s cubic-bezier(.16,1,.3,1), filter .7s ease;
}
.cat:hover img{transform:scale(1.06); filter:none}
.cat::after{content:none}

.cat__num{
  position:absolute; left:0; top:0; z-index:4; background:var(--paper); color:var(--ink);
  font-family:var(--font-title); font-size:.82rem; letter-spacing:.14em;
  padding:.55rem .85rem; transition:background .5s ease, color .5s ease;
}
.cat:hover .cat__num{background:var(--ink); color:var(--paper)}

.cat__body{
  position:static; padding:1.05rem .1rem 0; display:flex; align-items:baseline;
  justify-content:space-between; gap:1rem; text-shadow:none;
  border-top:1px solid var(--line); margin-top:.9rem;
}
.cat__body h2{
  font-size:clamp(1.2rem,1.9vw,1.65rem); color:var(--ink); margin:0;
  transition:color .4s ease;
}
.cat:hover .cat__body h2{color:var(--terra)}
.cat__body span{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink-soft); white-space:nowrap;
}
.cat__go{
  display:block; padding-top:.35rem; font-family:"Jost","Jost zastępcza",sans-serif; font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft);
  opacity:0; transform:translateY(-4px); transition:.5s cubic-bezier(.16,1,.3,1);
}
.cat:hover .cat__go{opacity:1; transform:none}

/* wariant „pozostałe części dnia" — mniejszy */
.cats--row .cat img{aspect-ratio:3/2}
.cats--row .cat__body h2{font-size:clamp(1.02rem,1.4vw,1.24rem)}
.cats--row .cat__num{font-size:.7rem; padding:.42rem .7rem}

/* ═══════════ PASEK KONKRETÓW (lekki, bez zdjęć) ═══════════ */
.facts{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2.4vw,40px);
  border-block:1px solid var(--line); padding-block:var(--s4)}
.facts div{text-align:center}
.facts b{display:block; font-family:var(--font-title); font-weight:400;
  font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1; margin-bottom:.35rem}
.facts span{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.64rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-soft); line-height:1.5; display:block}

/* ═══════════ OPINIE ═══════════ */
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,3vw,44px)}
.quote{display:flex; flex-direction:column; gap:var(--s2)}
.quote__mark{font-family:var(--font-title); font-size:2.4rem; line-height:.6; color:var(--ink-soft); opacity:.45}
.quote p{font-size:1rem; line-height:1.75; color:var(--ink); font-style:italic}
.quote footer{margin-top:auto; padding-top:var(--s2); border-top:1px solid var(--line)}
.quote cite{font-style:normal; font-family:"Pinyon Script",cursive; font-size:1.35rem; display:block; line-height:1}
.quote small{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); display:block; margin-top:.3rem}

@media (max-width:900px){
  .facts{grid-template-columns:repeat(2,1fr); gap:var(--s3)}
  .quotes{grid-template-columns:1fr; gap:var(--s4)}
}

/* lekkie zaokrąglenie kafli portfolio */
.cat__wrap{border-radius:3px}
.cat__wrap::before{border-radius:2px}
.cat__num{border-radius:0 0 3px 0}
/* mozaika i siatka w portfolio — te same rogi */
.gal-grid figure, .mosaic figure{border-radius:3px}

/* ═══════════ PRZERYWNIK ZE ZDJĘCIEM (parallax) ═══════════ */
.interlude{position:relative; overflow:hidden; min-height:clamp(320px,46svh,520px);
  display:grid; place-items:center; text-align:center; color:#fff}
.interlude__bg{position:absolute; inset:-10% 0; background-size:cover; background-position:center 42%;
  background-attachment:fixed; z-index:0}
.interlude::after{content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(rgba(18,19,18,.62),rgba(18,19,18,.5))}
.interlude__in{position:relative; z-index:2; max-width:min(62ch,90vw); padding:var(--s5) var(--gutter)}
.interlude p{font-family:var(--font-title); font-size:clamp(1.25rem,2.2vw,1.85rem); line-height:1.45;
  text-shadow:0 2px 26px rgba(0,0,0,.5); margin-bottom:var(--s2)}
.interlude cite{font-style:normal; font-family:"Pinyon Script",cursive; font-size:1.4rem;
  color:rgba(255,255,255,.9); display:block}
@media (max-width:900px){ .interlude__bg{background-attachment:scroll} }

/* ═══════════ KARUZELA OPINII ═══════════ */
.revs{position:relative; overflow:hidden}
.revs__track{display:flex; transition:transform .8s cubic-bezier(.22,1,.3,1); will-change:transform}
.rev{flex:0 0 calc((100% - 2*clamp(18px,2.6vw,40px))/3); margin-right:clamp(18px,2.6vw,40px);
  display:flex; flex-direction:column; gap:var(--s2);
  background:var(--paper); padding:clamp(22px,2.6vw,34px); border:1px solid var(--line); border-radius:3px}
.rev__mark{font-family:var(--font-title); font-size:2.2rem; line-height:.5; color:var(--ink-soft); opacity:.4}
.rev p{font-size:.98rem; line-height:1.72; font-style:italic; color:var(--ink)}
.rev__who{display:flex; align-items:center; gap:.9rem; margin-top:auto; padding-top:var(--s2); border-top:1px solid var(--line)}
.rev__ava{width:54px; height:54px; border-radius:50%; overflow:hidden; flex:none; background:var(--paper-2)}
.rev__ava img{width:100%; height:100%; object-fit:cover; display:block}
.rev__who cite{font-style:normal; font-family:"Pinyon Script",cursive; font-size:1.35rem; line-height:1.1; display:block}
.rev__who small{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.58rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft); display:block; margin-top:.2rem}
.revs__ui{display:flex; align-items:center; justify-content:center; gap:var(--s3); margin-top:var(--s4)}
.revs__dots{display:flex; gap:.5rem}
.revs__dots button{width:26px; height:2px; border:0; padding:0; cursor:pointer;
  background:rgba(30,31,30,.22); transition:background .4s}
.revs__dots button[aria-current="true"]{background:var(--ink)}

@media (max-width:960px){ .rev{flex-basis:calc((100% - clamp(18px,2.6vw,40px))/2)} }
@media (max-width:640px){ .rev{flex-basis:100%; margin-right:0} }

/* ═══════════ ZAOKRĄGLENIA — spójny promień 15px ═══════════ */
:root{ --r:15px; --r-sm:10px; }
.cat__wrap{border-radius:var(--r)}
.cat__wrap::before{border-radius:calc(var(--r) - 4px)}
.cat__num{border-radius:0 0 var(--r-sm) 0}
.gal-grid figure, .mosaic figure{border-radius:var(--r)}
.hero-car__fig{border-radius:var(--r)}
.hero-car__body{border-radius:0 0 var(--r) var(--r)}
.story-c__fig{border-radius:var(--r)}
.story-row2__print{border-radius:var(--r-sm)}
.story-row2__img{border-radius:var(--r-sm) var(--r-sm) 0 0}
.rev{border-radius:var(--r)}
.print{border-radius:var(--r-sm)}
.print__img{border-radius:calc(var(--r-sm) - 3px)}
.blog-gal figure{border-radius:var(--r)}
.about__fig img{border-radius:var(--r)}
.duo figure{border-radius:var(--r); overflow:hidden}
.cphoto{border-radius:var(--r-sm)}
.plan{border-radius:var(--r)}
.lock__card, .sheet__box{border-radius:var(--r)}
.pickcover button{border-radius:6px}
.lb__img{border-radius:var(--r-sm)}
.lb__strip button{border-radius:6px; overflow:hidden}

/* ═══════════ PANEL KLIENTA — v2 ═══════════ */
.ctool{position:sticky; top:0; z-index:26; background:var(--paper); border-bottom:1px solid var(--line)}
.ctool__row{max-width:var(--maxw); margin:0 auto; padding:var(--s2) var(--gutter);
  display:flex; align-items:center; gap:var(--s3); flex-wrap:wrap}
.ctool__row + .ctool__row{border-top:1px solid var(--line)}
.ctool__brand strong{font-family:var(--font-title); font-weight:400; font-size:1.08rem; display:block; line-height:1.2}
.ctool__brand span{font-family:"Jost","Jost zastępcza",sans-serif; font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-soft)}
.ctool__spacer{flex:1}

/* segmentowany przełącznik filtrów */
.seg{display:flex; border:1px solid var(--line); border-radius:var(--r-sm); overflow:hidden; background:var(--paper)}
.seg button{
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  padding:.7em 1.05em; border:0; background:transparent; color:var(--ink-soft); cursor:pointer;
  display:inline-flex; align-items:center; gap:.45rem; transition:.3s; white-space:nowrap;
}
.seg button + button{border-left:1px solid var(--line)}
.seg button:hover{background:var(--paper-2); color:var(--ink)}
.seg button[aria-pressed="true"]{
  background:var(--grad-copper); color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
}
.seg b{font-family:var(--font-title); font-weight:400; font-size:.9rem;
  background:rgba(30,31,30,.1); padding:0 .4em; border-radius:20px; min-width:1.6em; text-align:center}
.seg button[aria-pressed="true"] b{background:rgba(255,255,255,.22)}
.seg svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.6}
#segFilter button[data-f="album"][aria-pressed="true"]{background:var(--copper)}
#segFilter button[data-f="print"][aria-pressed="true"]{background:var(--green)}
#segFilter button[data-f="hide"][aria-pressed="true"]{background:var(--slate)}

/* zdjęcie w panelu */
.cphoto{position:relative; overflow:hidden; background:var(--paper-2); aspect-ratio:3/2; border-radius:var(--r-sm)}
.cphoto img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .9s cubic-bezier(.16,1,.3,1), filter .5s ease}
.cphoto:hover img{transform:scale(1.03)}
.cphoto.is-hidden img{filter:grayscale(1) brightness(.55)}

/* pasek akcji na zdjęciu */
.cact{
  position:absolute; left:0; right:0; bottom:0; z-index:4; display:flex; gap:1px;
  transform:translateY(101%); transition:transform .38s cubic-bezier(.16,1,.3,1);
  background:rgba(24,25,24,.14);
}
body.editing .cphoto:hover .cact,
body.editing .cphoto:focus-within .cact{transform:none}
.cact button{
  flex:1; border:0; cursor:pointer; padding:.62rem 0; background:rgba(24,25,24,.82); color:#fff;
  display:flex; align-items:center; justify-content:center; gap:.4rem;
  font-family:"Jost","Jost zastępcza",sans-serif; font-size:.58rem; letter-spacing:.12em; text-transform:uppercase;
  backdrop-filter:blur(3px); transition:background .25s;
}
.cact button:hover{background:rgba(24,25,24,.96)}
.cact button.is-on{background:var(--copper); color:#fff}                 /* album — miedź */
.cact button[data-a="print"].is-on{background:var(--green)}             /* odbitki — zieleń */
.cact button[data-a="hide"].is-on{background:var(--slate)}              /* ukryj — jasny szary */
.cact button.is-on svg{fill:currentColor; stroke:currentColor}     /* wypełniona ikona = wybrane */
.cact button.is-on::after{content:"✓"; font-size:.7rem; margin-left:.1rem}
.cact svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.7}

/* znaczniki wyboru */
.cbadges{position:absolute; right:8px; top:8px; z-index:5; display:flex; gap:4px}
.cbadge{width:28px; height:28px; border-radius:50%; display:grid; place-items:center;
  background:var(--copper); color:#fff; box-shadow:0 2px 12px rgba(0,0,0,.35); border:1.5px solid rgba(255,255,255,.85)}
.cbadge--print{background:var(--green)}
.cbadge--hide{background:var(--slate)}
.cbadge svg{width:13px; height:13px; fill:currentColor; stroke:currentColor; stroke-width:1.6}
.cphoto__n{position:absolute; left:8px; top:8px; z-index:3; font-family:"Jost","Jost zastępcza",sans-serif; font-size:.58rem;
  letter-spacing:.1em; color:#fff; background:rgba(24,25,24,.5); padding:.18em .5em; border-radius:20px}

/* pusty stan filtra */
.cempty{text-align:center; padding:var(--s6) var(--gutter); color:var(--ink-soft)}
.cempty h3{font-size:1.3rem; margin-bottom:.5rem; color:var(--ink)}
.cempty p{max-width:44ch; margin:0 auto}

@media (max-width:760px){
  .ctool__row{gap:var(--s2)}
  .ctool__brand{width:100%}
  .seg{width:100%}
  .seg button{flex:1; justify-content:center; padding:.7em .5em; font-size:.6rem}
}

/* telefon: pasek narzędzi bez wychodzenia poza ekran */
@media (max-width:640px){
  .ctool__row{padding-inline:16px; gap:10px; row-gap:10px}
  .ctool__spacer{display:none}
  .ctool__brand strong{font-size:.98rem}
  .ctool__row .btn-s{flex:1; justify-content:center; padding:.7em .5em; font-size:.6rem; white-space:nowrap}
  .seg{overflow-x:auto; scrollbar-width:none}
  .seg::-webkit-scrollbar{display:none}
  .seg button{flex:0 0 auto; justify-content:flex-start; padding:.7em .9em}
  .btn-edit{width:100%; justify-content:center; padding:.95em 1rem}
  .editbar__in{padding-inline:16px}
  .editbar .btn-send{width:100%}
  .cact button{padding:.55rem 0}
  .cact button span{display:none}         /* na wąskim ekranie zostają same ikony */
  .cact svg{width:16px; height:16px}
}

/* ═══════════ KAFELKI FOLDERÓW (z miniaturą) ═══════════ */
.ftabs{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(178px,1fr));
  gap:clamp(8px,1vw,14px); padding:2px 2px 6px;
}
.ftab{
  display:flex; align-items:center; gap:.7rem; padding:.5rem .8rem .5rem .5rem; min-width:0;
  border:1px solid var(--line); border-radius:var(--r); background:var(--paper); cursor:pointer;
  transition:.4s cubic-bezier(.16,1,.3,1); text-align:left; color:var(--ink-soft);
}
.ftab:hover{border-color:rgba(30,31,30,.38); color:var(--ink); transform:translateY(-2px)}
.ftab__img{width:42px; height:42px; border-radius:calc(var(--r) - 5px); overflow:hidden; flex:none;
  background:var(--paper-2); position:relative}
.ftab__img img{width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(.35); transition:filter .45s ease, transform .8s cubic-bezier(.16,1,.3,1)}
.ftab:hover .ftab__img img{filter:none; transform:scale(1.08)}
.ftab__txt{display:block; line-height:1.25}
.ftab__txt{min-width:0}
.ftab__name{display:block; font-family:var(--font-title); font-size:clamp(.9rem,1.05vw,1.02rem);
  color:inherit; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ftab__n{display:block; font-family:"Jost","Jost zastępcza",sans-serif; font-size:.58rem; letter-spacing:.18em;
  text-transform:uppercase; opacity:.75; margin-top:.1rem}
.ftab[aria-selected="true"]{
  background:var(--grad-copper);
  border-color:var(--copper-lo); color:#fff;
  box-shadow:0 6px 18px -8px rgba(138,74,44,.75), inset 0 1px 0 rgba(255,255,255,.22);
}
.ftab[aria-selected="true"] .ftab__n{opacity:.9}
.ftab[aria-selected="true"] .ftab__img img{filter:none}
.ftab[aria-selected="true"]:hover{transform:none}

/* tablet: kafelki węższe, wciąż w siatce */
@media (max-width:900px){
  .ftabs{grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px}
  .ftab{padding:.42rem .7rem .42rem .42rem; gap:.55rem}
  .ftab__img{width:36px; height:36px}
  .ftab__name{font-size:.92rem}
  .ftab__n{font-size:.54rem}
}

/* telefon: jeden przewijany rząd zamiast siatki na pół ekranu */
@media (max-width:640px){
  .ftabs-wrap{position:relative}
  .ftabs-wrap::after{content:""; position:absolute; right:0; top:0; bottom:6px; width:38px;
    background:linear-gradient(90deg,rgba(241,241,239,0),var(--paper)); pointer-events:none}
  .ftabs{
    display:flex; grid-template-columns:none; gap:8px;
    overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none;
    padding-right:30px;
  }
  .ftabs::-webkit-scrollbar{display:none}
  .ftab{flex:0 0 auto; scroll-snap-align:start; padding:.38rem .75rem .38rem .38rem}
  .ftab__img{width:32px; height:32px}
  .ftab__name{font-size:.86rem}
  .ftab__n{font-size:.5rem; letter-spacing:.14em}
}

/* telefon: więcej oddechu między kadrami w galeriach */
@media (max-width:700px){.gal{column-gap:16px} .gal figure{margin-bottom:16px} .cats{gap:16px} .mosaic{gap:14px}}
