/* ==========================================================
   Wiktoria Zyśk — architektura wnętrz
   Wspólne style dla index.html i realizacje.html
   ========================================================== */
:root{
  --krem:#F2EEE7; --ink:#16150F; --muted:#77705F; --line:#DDD5C8;
  --kobalt:#1E3A6B; --zielen:#6E7059; --bordo:#5A1F27; --terra:#A8452A; --piasek:#C2AF92;
  --t-krem:#F2EEE7; --t-kobalt:#E4E8EF; --t-zielen:#EAEBE2;
  --t-bordo:#F0E4E5; --t-terra:#F4E7E1; --t-piasek:#F1EAE0;
  --akcent:var(--kobalt);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-snap-type:y proximity}
body{background:var(--krem);color:var(--ink);font-family:'Lato',system-ui,-apple-system,sans-serif;font-weight:300;font-size:17px;line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
.wrap{max-width:1440px;margin:0 auto;padding:0 44px}
h1,h2,h3{font-weight:300;line-height:1.04;letter-spacing:-0.035em}
.lab{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
p.just{text-align:justify;hyphens:auto;-webkit-hyphens:auto}
@media(max-width:760px){.wrap{padding:0 22px}body{font-size:16px}p.just{text-align:left}}

.checker{height:14px;background:repeating-conic-gradient(var(--ink) 0% 25%,transparent 0% 50%) 50%/14px 14px;opacity:.9}

/* ===== NAV ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:20px 0;transition:background .5s,padding .5s,box-shadow .5s}
nav.solid{background:rgba(242,238,231,.92);backdrop-filter:blur(18px);padding:13px 0;box-shadow:0 1px 0 var(--line)}
nav.on-dark:not(.solid) .logo,nav.on-dark:not(.solid) .nav-links a{color:#fff}
nav.on-dark:not(.solid) .nav-cta{border-color:rgba(255,255,255,.65);color:#fff}
.nav-in{max-width:1440px;margin:0 auto;padding:0 44px;display:flex;justify-content:space-between;align-items:center;gap:24px}
.logo{font-size:16px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--ink);transition:color .4s;white-space:nowrap}
.nav-links{display:flex;gap:34px;list-style:none;font-size:14px;font-weight:400}
.nav-links a{color:var(--ink);text-decoration:none;position:relative;transition:color .4s;opacity:.72}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-4px;width:0;height:1px;background:currentColor;transition:width .35s}
.nav-links a:hover{opacity:1}.nav-links a:hover::after{width:100%}
.nav-links a.on{opacity:1}.nav-links a.on::after{width:100%}
.nav-cta{border:1px solid var(--ink);color:var(--ink);padding:9px 24px;border-radius:100px;font-size:13px;text-decoration:none;transition:.35s;white-space:nowrap}
.nav-cta:hover{background:var(--ink);color:var(--krem)}
@media(max-width:1060px){.nav-links{display:none}.nav-in{padding:0 22px}}

/* ===== HERO ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.07);animation:hz 2.2s cubic-bezier(.16,.8,.3,1) forwards}
@keyframes hz{to{transform:scale(1)}}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(14,13,9,.78) 0%,rgba(14,13,9,.18) 48%,rgba(14,13,9,.3) 100%)}
.hero-in{position:relative;z-index:2;width:100%;padding-bottom:62px;color:#fff}
.hero h1{font-size:clamp(40px,7.4vw,110px);font-weight:200;letter-spacing:-0.048em}
.hero h1 b{font-weight:700}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:44px;flex-wrap:wrap;margin-top:30px;padding-top:22px;border-top:1px solid rgba(255,255,255,.3)}
.hero-foot p{color:rgba(255,255,255,.9);font-size:19px;font-weight:300}
.hero-foot .lab{color:rgba(255,255,255,.7)}
.scrollhint{position:absolute;right:44px;bottom:62px;z-index:3;color:rgba(255,255,255,.75);font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;display:flex;align-items:center;gap:12px}
.scrollhint span{display:block;width:46px;height:1px;background:currentColor;transform-origin:left;animation:sh 2.2s ease-in-out infinite}
@keyframes sh{0%,100%{transform:scaleX(.3)}50%{transform:scaleX(1)}}
@media(max-width:860px){.scrollhint{display:none}.hero-in{padding-bottom:40px}}

/* nagłówek podstrony */
.page-head{padding:180px 0 70px;background:var(--krem)}
.page-head h1{font-size:clamp(40px,7vw,96px);font-weight:200;letter-spacing:-0.048em}
.page-head h1 b{font-weight:700}
.page-head .lab{display:block;margin-bottom:18px}
.page-head p{color:var(--muted);max-width:56ch;margin-top:22px}
.page-head .count{display:flex;gap:36px;flex-wrap:wrap;margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.page-head .count b{display:block;font-size:38px;font-weight:200;letter-spacing:-0.04em;line-height:1.1}
@media(max-width:760px){.page-head{padding:130px 0 50px}}

section{padding:120px 0}
.sec-head{margin-bottom:58px;max-width:900px}
.sec-head .lab{display:block;margin-bottom:16px}
.sec-head h2{font-size:clamp(32px,5vw,66px);max-width:18ch}
.sec-head p{color:var(--muted);max-width:58ch;margin-top:18px}
@media(max-width:760px){section{padding:76px 0}.sec-head{margin-bottom:36px}}

/* ===== MOMENT ===== */
.moment{position:relative;height:250vh;background:var(--krem)}
.moment-stick{position:sticky;top:0;height:100svh;overflow:hidden}
.moment-img{position:absolute;inset:0;z-index:2;clip-path:inset(50% 0 50% 0);will-change:clip-path}
.moment-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);will-change:transform}
.moment-words{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:0 30px;will-change:opacity,transform}
.moment-words p{max-width:1100px;text-align:center;font-size:clamp(30px,5.4vw,72px);font-weight:200;line-height:1.14;letter-spacing:-0.042em}
.moment-words .w{opacity:.14;transition:opacity .18s linear}
.moment-words .w.lit{opacity:1}
.moment-words .w.akc{color:var(--bordo);font-weight:700}
.moment-cap{position:absolute;z-index:4;left:44px;right:44px;bottom:52px;color:#fff;opacity:0;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.moment-cap b{font-weight:200;font-size:clamp(24px,3.4vw,44px);letter-spacing:-0.035em}
.moment-cap span{font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;opacity:.85}
@media(max-width:760px){.moment{height:220vh}.moment-cap{left:22px;right:22px;bottom:34px}}

/* ===== O MNIE ===== */
.about{display:grid;grid-template-columns:1fr 1fr;gap:76px;align-items:center}
.about-img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:18px}
.about .quote{font-size:clamp(23px,2.6vw,34px);font-weight:200;line-height:1.28;letter-spacing:-0.035em;margin-bottom:26px}
.about .quote b{font-weight:700;color:var(--bordo)}
.about p.body{color:var(--muted);margin-bottom:14px}
.edu{margin-top:34px;border-top:1px solid var(--line)}
.edu div{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:15px 0;border-bottom:1px solid var(--line);font-size:15px;align-items:baseline}
.edu span:first-child{color:var(--kobalt);font-weight:700;font-size:12px;letter-spacing:.16em}
@media(max-width:920px){.about{grid-template-columns:1fr;gap:42px}}

/* ===== CERAMIKA ===== */
.cer{background:#EBE7DE;padding:120px 0}
.cer-top{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:52px}
.cer-top .lab{display:block;margin-bottom:16px}
.cer-top h2{font-size:clamp(32px,5vw,66px)}
.cer-top h2 b{font-weight:700}
.cer-top p{color:var(--muted)}
.cer-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.cer-grid figure{margin:0}
.cer-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:16px}
.cer-grid figcaption{margin-top:14px;display:flex;justify-content:space-between;gap:16px;align-items:baseline;font-size:14px;color:var(--muted)}
.cer-grid figcaption b{font-weight:400;color:var(--ink)}
@media(max-width:900px){
  .cer{padding:76px 0}
  .cer-top{grid-template-columns:1fr;gap:22px;margin-bottom:34px}
  .cer-grid{grid-template-columns:1fr;gap:32px}
}

/* ===== KARUZELA ===== */
.car{position:relative;border-radius:16px;overflow:hidden;background:#ded7cb}
.car-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}
.car-track::-webkit-scrollbar{display:none}
.car-track:focus-visible{outline:2px solid var(--akcent);outline-offset:-2px}
.car-track > div{flex:0 0 100%;height:100%;scroll-snap-align:center;scroll-snap-stop:always}
.car-track img{width:100%;height:100%;object-fit:cover}
.car-pill{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:7px;align-items:center;padding:9px 15px;border-radius:100px;background:rgba(120,120,120,.28);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.28);box-shadow:0 8px 26px -10px rgba(0,0,0,.45)}
.car-pill i{width:7px;height:7px;border-radius:100px;background:rgba(255,255,255,.55);transition:width .4s cubic-bezier(.2,.7,.3,1),background .4s}
.car-pill i.on{background:#fff;width:22px}
.car-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:100px;border:1px solid rgba(255,255,255,.3);background:rgba(120,120,120,.26);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);color:#fff;font-size:20px;line-height:1;cursor:pointer;opacity:0;transition:opacity .3s,background .3s;display:grid;place-items:center;padding:0 0 2px}
.car:hover .car-nav,.car:focus-within .car-nav{opacity:1}
.car-nav:hover{background:rgba(140,140,140,.45)}
.car-nav.prev{left:14px}.car-nav.next{right:14px}
@media(hover:none){.car-nav{display:none}}

/* ===== PROJEKTY ===== */
.pj{background:var(--tint);padding:118px 0;min-height:100svh;display:flex;align-items:center;scroll-snap-align:center}
.fade{height:190px}
.pj-in{display:grid;grid-template-columns:repeat(12,1fr);gap:30px;align-items:center;width:100%}
.pj-meta .lab{color:var(--akcent);display:block;margin-bottom:14px}
.pj-meta h3{font-size:clamp(28px,3.6vw,52px);margin-bottom:16px}
.pj-meta p{color:var(--muted);font-size:16px;max-width:44ch}
.pj-rule{width:54px;height:3px;background:var(--akcent);border-radius:3px;margin-bottom:22px}
.pj-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.pj-tags span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--akcent);color:var(--akcent);border-radius:100px;padding:6px 15px;opacity:.85}
.pj.L .car{grid-column:1/8;aspect-ratio:4/3}
.pj.L .pj-meta{grid-column:9/13}
.pj.R .car{grid-column:6/13;aspect-ratio:4/3;order:2}
.pj.R .pj-meta{grid-column:1/5;order:1}
.pj.F .car{grid-column:1/13;aspect-ratio:16/8}
.pj.F .pj-meta{grid-column:1/13;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;margin-top:26px}
@media(max-width:960px){
  .pj{min-height:0;padding:70px 0}.fade{height:120px}
  .pj.L .car,.pj.R .car,.pj.F .car{grid-column:1/13;aspect-ratio:4/3;order:1}
  .pj.L .pj-meta,.pj.R .pj-meta,.pj.F .pj-meta{grid-column:1/13;order:2;grid-template-columns:1fr;margin-top:26px}
}
.more{text-align:center;padding:96px 0}
.more a{display:inline-flex;align-items:center;gap:12px;font-size:clamp(20px,2.4vw,30px);font-weight:300;letter-spacing:-0.025em;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:8px;transition:border-color .35s,gap .35s}
.more a:hover{border-color:var(--ink);gap:20px}

/* ===== KARTY (usługi / proces) ===== */
.proces{background:var(--t-piasek)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.step{background:#FBF9F5;border-radius:16px;padding:34px 28px;transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s}
.step:hover{transform:translateY(-6px);box-shadow:0 24px 50px -30px rgba(70,58,40,.4)}
.step b{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px}
.step:nth-child(1) b{color:var(--kobalt)}
.step:nth-child(2) b{color:var(--zielen)}
.step:nth-child(3) b{color:var(--terra)}
.step:nth-child(4) b{color:var(--bordo)}
.step .num{width:38px;height:38px;border-radius:100px;display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;margin-bottom:20px}
.step:nth-child(1) .num{background:var(--kobalt)}
.step:nth-child(2) .num{background:var(--zielen)}
.step:nth-child(3) .num{background:var(--terra)}
.step:nth-child(4) .num{background:var(--bordo)}
.step h3{font-size:24px;margin-bottom:10px}
.step p{font-size:15px;color:var(--muted)}
@media(max-width:920px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ===== PALETA ===== */
.paleta{display:grid;grid-template-columns:repeat(5,1fr);gap:26px}
.paleta figure{margin:0}
.paleta .bar{height:min(50vh,430px);border-radius:999px;background:linear-gradient(to bottom,rgba(242,238,231,0) 0%,var(--c) 24%,var(--c) 76%,rgba(242,238,231,0) 100%)}
.paleta figcaption{margin-top:18px;text-align:center;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
@media(max-width:760px){.paleta{gap:10px}.paleta .bar{height:34vh}.paleta figcaption{font-size:9px;letter-spacing:.08em}}

/* ===== KONTAKT ===== */
.contact{display:grid;grid-template-columns:1fr 1.25fr;gap:76px}
.contact h2{font-size:clamp(32px,5vw,64px);margin-bottom:20px}
.contact .sub{color:var(--muted);max-width:40ch;margin-bottom:38px}
.detail{padding:15px 0;border-bottom:1px solid var(--line)}
.detail .lab{display:block;margin-bottom:5px}
.detail a,.detail span.v{color:var(--ink);text-decoration:none;font-size:18px}
.detail a:hover{color:var(--bordo)}
form{display:grid;gap:22px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
label{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:9px}
input,textarea,select{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);padding:11px 0;font-family:inherit;font-size:17px;font-weight:300;color:var(--ink);border-radius:0;transition:border-color .3s}
input:focus,textarea:focus,select:focus{outline:none;border-bottom-color:var(--bordo)}
input::placeholder,textarea::placeholder{color:#b8b0a2}
textarea{resize:vertical;min-height:110px}
.consent{display:flex;gap:13px;align-items:flex-start;font-size:14px;font-weight:300;color:var(--muted);line-height:1.55;text-transform:none;letter-spacing:0}
.consent input{width:17px;height:17px;flex:none;margin-top:4px;accent-color:var(--bordo)}
button[type=submit]{justify-self:start;background:var(--ink);color:var(--krem);border:none;border-radius:100px;padding:17px 46px;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:background .35s}
button[type=submit]:hover{background:var(--bordo)}
.form-note{font-size:15px;color:var(--bordo);display:none}
.form-note.show{display:block}
@media(max-width:920px){.contact{grid-template-columns:1fr;gap:48px}.row{grid-template-columns:1fr}}

.wa{position:fixed;right:22px;bottom:22px;z-index:90;width:54px;height:54px;border-radius:100px;background:var(--ink);color:var(--krem);display:grid;place-items:center;text-decoration:none;box-shadow:0 12px 30px -12px rgba(0,0,0,.45);transition:transform .3s,background .3s}
.wa:hover{transform:translateY(-3px);background:var(--bordo)}
footer{padding:42px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
footer a{color:var(--muted);text-decoration:none}
footer a:hover{color:var(--ink)}

.rv{opacity:0;transform:translateY(28px);transition:opacity .95s cubic-bezier(.2,.7,.3,1),transform .95s cubic-bezier(.2,.7,.3,1)}
.rv.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  html{scroll-snap-type:none}
  .rv{opacity:1;transform:none;transition:none}
  .hero-bg img{animation:none;transform:none}
  .moment{height:auto}
  .moment-stick{position:static;height:auto}
  .moment-img{position:static;clip-path:none;aspect-ratio:16/9}
  .moment-img img{transform:none}
  .moment-words{position:static;padding:70px 30px}
  .moment-words .w{opacity:1}
  .moment-cap{position:static;opacity:1;color:var(--ink);padding:20px 44px 60px}
}
