/*
Theme Name: Interiors — Norbert Górecki
Author: Interiors Architektura Wnętrz
Description: Lekkie, luksusowe portfolio WordPress w formie przewijanego feedu. Wersja 7.3.
Version: 7.3.9
Text Domain: interiors-ng
*/
:root{
  --ink:#202020;
  --muted:#858585;
  --line:#ececea;
  --paper:#fff;
  --soft:#f7f7f5;
  --max:1520px;
  --header:82px;
  --logo-size:54px;
  --logo-mobile:44px;
  --body-size:15px;
  --menu-size:11px;
  --section-space:86px;
  --gallery-gap:18px;
  --ui-tracking:.02em;
  --dock:52px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 48px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Arial Narrow","Aptos Narrow","Helvetica Neue",Arial,sans-serif;font-size:var(--body-size);line-height:1.5;padding-bottom:var(--dock);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.lightbox-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
img{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
.wrap{width:min(calc(100% - 64px),var(--max));margin-inline:auto}
.wrap-wide{width:min(calc(100% - 64px),1680px);margin-inline:auto}
.prose{max-width:760px}.prose p{color:#454545}

/* Header */
.site-header{position:sticky;top:0;z-index:70;background:rgba(255,255,255,.965);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.header-inner{min-height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand-logo-wrap{width:var(--logo-size);height:var(--logo-size);border-radius:50%;overflow:hidden;display:block;flex:0 0 auto;background:#a4a4a4}
.brand-logo{width:100%;height:100%;object-fit:cover;border-radius:50%;transform:scale(1.001)}
.brand-copy{display:block;min-width:0}
.brand-title{display:block;font-size:15px;line-height:1.05;font-weight:600;letter-spacing:var(--ui-tracking);text-transform:uppercase}
.brand-copy small{display:block;margin-top:5px;font-size:9px;line-height:1.25;letter-spacing:.025em;color:var(--muted);text-transform:uppercase;white-space:nowrap}
.header-location{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* Quiet hero */
.hero-clean{background:#fff;padding:clamp(64px,9vw,138px) 0 clamp(58px,8vw,112px)}
.hero-clean-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.55fr);column-gap:clamp(50px,8vw,150px);align-items:end}
.hero-kicker{grid-column:1/-1;font-size:10px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}
.hero-title{margin:0;font-size:clamp(42px,5.1vw,82px);line-height:.98;font-weight:400;letter-spacing:-.024em;max-width:1050px;text-wrap:balance}
.hero-bottom{align-self:end;padding-bottom:6px;display:grid;gap:18px}
.hero-bottom p{margin:0;color:#555;font-size:13px;line-height:1.55}
.hero-bottom>p:first-child{font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.hero-intro{max-width:430px}

/* Random start-page visual */
.random-showcase{background:#fff;padding:0 0 clamp(28px,4vw,58px)}
.random-visual-frame{position:relative;width:100%;aspect-ratio:16/9;max-height:78vh;min-height:360px;overflow:hidden;background:#f4f4f1}
.random-visual{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.05s ease}
.random-visual.is-active{opacity:1}
@media (prefers-reduced-motion:reduce){.random-visual{transition:none}}

/* Sticky filter navigation */
.portfolio-filter-bar{position:sticky;top:var(--header);z-index:60;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.filter-scroll{display:flex;align-items:center;gap:30px;overflow-x:auto;scrollbar-width:none;white-space:nowrap;min-height:48px}
.filter-scroll::-webkit-scrollbar{display:none}
.filter-btn{appearance:none;border:0;background:none;padding:16px 0 13px;margin:0;color:var(--muted);font-size:var(--menu-size);line-height:1;text-transform:uppercase;letter-spacing:var(--ui-tracking);cursor:pointer;position:relative;transition:color .2s ease}
.filter-btn::after{content:"";position:absolute;left:0;right:100%;bottom:9px;height:1px;background:currentColor;transition:right .25s ease}
.filter-btn:hover,.filter-btn.active{color:var(--ink)}
.filter-btn.active::after{right:0}

/* Portfolio feed */
.portfolio-feed{background:#fff}
.feed-project{padding:var(--section-space) 0;border-bottom:1px solid var(--line)}
.feed-project:first-child{padding-top:calc(var(--section-space) * .9)}
.project-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.project-heading-copy{display:flex;align-items:flex-start;gap:18px;min-width:0}
.project-index{padding-top:6px;font-size:9px;letter-spacing:.08em;color:#aaa;min-width:22px}
.project-title{font-size:clamp(25px,2.5vw,42px);line-height:1.03;font-weight:400;letter-spacing:-.018em;margin:0}
.project-meta{margin-top:7px;font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.project-controls{display:flex;gap:7px;flex:0 0 auto}
.project-scroll-btn{width:36px;height:36px;border:1px solid #dcdcd8;border-radius:50%;background:#fff;color:#555;font-size:24px;line-height:1;display:grid;place-items:center;padding:0 0 3px;cursor:pointer;transition:border-color .2s,color .2s,transform .2s}
.project-scroll-btn:hover{border-color:#999;color:#111;transform:translateY(-1px)}
.feed-project.is-single .project-controls{display:none}
.project-track{display:flex;align-items:flex-start;gap:var(--gallery-gap);overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-inline:contain;scrollbar-width:none;padding-left:max(32px,calc((100vw - var(--max))/2));padding-right:32px;padding-bottom:3px}
.project-track::-webkit-scrollbar{display:none}
.project-slide{flex:0 0 auto;width:min(86vw,1320px,114vh);margin:0;scroll-snap-align:start}
.project-slide a{display:block;aspect-ratio:3/2;background:#f3f3f1;overflow:hidden}
.project-slide img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center;transition:filter .25s ease,transform .6s cubic-bezier(.2,.7,.25,1)}
.project-slide a:hover img{filter:brightness(.985);transform:scale(1.003)}
.empty-portfolio{padding:100px 0}

/* End CTA */
.end-cta{padding:clamp(110px,14vw,220px) 0;background:#fff}
.end-cta-inner{max-width:1180px}
.end-cta-kicker{font-size:10px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted);margin-bottom:28px}
.end-cta h2{font-size:clamp(48px,7vw,106px);font-weight:400;line-height:.92;letter-spacing:-.035em;margin:0;max-width:1050px;text-wrap:balance}
.end-cta-links{display:flex;flex-wrap:wrap;gap:18px 34px;margin-top:45px;font-size:14px}
.end-cta-links a{border-bottom:1px solid #bbb;padding-bottom:4px}

/* Always-visible contact */
.contact-dock{position:fixed;left:0;right:0;bottom:0;z-index:90;height:var(--dock);background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-top:1px solid #e7e7e3;padding-bottom:env(safe-area-inset-bottom)}
.contact-dock-inner{height:100%;width:min(calc(100% - 44px),var(--max));margin:auto;display:flex;align-items:center;gap:28px;font-size:10px;letter-spacing:.055em;text-transform:uppercase}
.dock-phrase{margin-right:auto;color:#555;text-transform:none;letter-spacing:.01em;font-size:12px}
.dock-link{white-space:nowrap;position:relative}
.dock-link::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;border-bottom:1px solid currentColor;transition:.2s}
.dock-link:hover::after{right:0}
.mobile-label{display:none}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:28px 0 30px;color:#999;font-size:8px;letter-spacing:.08em;text-transform:uppercase}
.footer-inner{display:flex;justify-content:space-between;gap:24px}

/* Single project */
.single-project-head{padding:80px 0 54px;border-bottom:1px solid var(--line)}
.back-link{display:inline-block;margin-bottom:34px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.single-project-head h1,.archive-clean-head h1,.generic-page h1{font-size:clamp(44px,6vw,88px);font-weight:400;letter-spacing:-.03em;line-height:.96;margin:0}
.single-project-head p,.archive-clean-head p{margin:14px 0 0;color:var(--muted);font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.single-project-gallery{display:grid;gap:70px;padding:70px 0 110px}
.single-project-image{margin-top:0;margin-bottom:0}
.single-project-image img{width:100%;height:auto}
.single-project-image figcaption{font-size:11px;color:var(--muted);margin-top:10px}
.single-project-copy{padding:0 0 100px}

/* Archive */
.archive-clean-head{padding:90px 0 55px}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:70px 24px;padding-bottom:120px}
.archive-card img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#f3f3f1}
.archive-card h2{font-size:24px;font-weight:400;letter-spacing:-.015em;margin:14px 0 5px}
.archive-card span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* Generic pages */
.generic-page{padding:90px 0 120px;min-height:65vh}
.generic-page h1{margin-bottom:45px}

/* Lightbox */
.interiors-lightbox{position:fixed;inset:0;z-index:999;background:rgba(255,255,255,.985);display:none;align-items:center;justify-content:center;padding:64px 54px 84px;overscroll-behavior:contain;touch-action:pinch-zoom;transition:background-color .2s ease}
.interiors-lightbox.open{display:flex}
.interiors-lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.08);transition:opacity .18s ease,transform .2s ease}
.interiors-lightbox.is-dragging,.interiors-lightbox.is-dragging img{transition:none}
.lightbox-gesture-hint{display:none;position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:10px;color:#999}
.interiors-lightbox img.is-loading{opacity:.4}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:56px;border:1px solid #deded9;border-radius:28px;background:rgba(255,255,255,.92);color:#333;font-size:34px;line-height:1;cursor:pointer}
.lightbox-prev{left:8px}.lightbox-next{right:8px}
.lightbox-nav[hidden]{display:none}
.lightbox-counter{position:absolute;left:50%;top:27px;transform:translateX(-50%);font-size:12px;color:#777;letter-spacing:.08em}
.lightbox-nav:focus-visible,.lightbox-close:focus-visible{outline:2px solid #555;outline-offset:3px}
.lightbox-close{position:absolute;right:24px;top:18px;background:none;border:0;color:#555;font-size:38px;font-weight:200;cursor:pointer}
.lightbox-caption{position:absolute;left:50%;bottom:25px;transform:translateX(-50%);color:#777;font-size:10px;letter-spacing:.045em;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}

@media(max-width:900px){
  .hero-clean-inner{grid-template-columns:1fr;gap:34px}
  .hero-kicker{grid-column:auto}
  .hero-bottom{max-width:600px}
  .archive-grid{grid-template-columns:1fr}
}

@media(max-width:700px){
  :root{--dock:50px}
  .wrap,.wrap-wide{width:min(calc(100% - 32px),var(--max))}
  .site-header{position:sticky}
  .header-inner{min-height:var(--header)}
  .brand{gap:10px}
  .brand-logo-wrap{width:var(--logo-mobile);height:var(--logo-mobile)}
  .brand-title{font-size:13px}
  .brand-copy small{font-size:7px;letter-spacing:.018em;max-width:230px;overflow:hidden;text-overflow:ellipsis}
  .header-location{display:none}
  .hero-clean{padding:58px 0 55px}
  .hero-kicker{margin-bottom:18px}
  .hero-title{font-size:clamp(40px,12vw,62px);line-height:.96}
  .hero-bottom{gap:14px}
  .hero-bottom p{font-size:12px}
  .hero-bottom>p:first-child{font-size:9px}
  .random-showcase{padding-bottom:24px}
  .random-visual-frame{aspect-ratio:4/3;min-height:0;max-height:68vh}
  .filter-scroll{width:100%;padding-left:16px;padding-right:16px;gap:24px;min-height:46px}
  .filter-btn{font-size:10px;padding:15px 0 13px}
  .feed-project{padding:66px 0}
  .project-heading-row{align-items:flex-start;margin-bottom:19px}
  .project-heading-copy{gap:10px}
  .project-index{padding-top:4px;font-size:8px;min-width:18px}
  .project-title{font-size:29px}
  .project-meta{font-size:8px;line-height:1.4}
  .project-controls{display:none}
  .project-track{gap:12px;padding-left:16px;padding-right:16px;scroll-snap-type:x mandatory}
  .project-slide{width:88vw}
  .end-cta{padding:105px 0 130px}
  .end-cta h2{font-size:clamp(48px,15vw,74px)}
  .end-cta-links{display:grid;gap:14px;margin-top:34px;font-size:13px}
  .contact-dock-inner{width:100%;padding:0 16px;justify-content:space-around;gap:8px}
  .dock-phrase{display:none}
  .dock-link{flex:1;text-align:center;font-size:10px}
  .desktop-label{display:none}.mobile-label{display:inline}
  .site-footer{padding:24px 0}
  .footer-inner{display:grid;gap:7px}
  .single-project-head{padding:56px 0 40px}
  .single-project-gallery{gap:28px;padding:32px 0 80px}
  .interiors-lightbox{padding:48px 16px 68px}
  .lightbox-caption{bottom:18px}
  .lightbox-nav{width:36px;height:48px;font-size:29px;background:rgba(255,255,255,.9)}
  .lightbox-prev{left:4px}.lightbox-next{right:4px}
}

@media(pointer:coarse){.lightbox-gesture-hint{display:block}.lightbox-caption{bottom:30px}}
@media(prefers-reduced-motion:reduce){.interiors-lightbox,.interiors-lightbox img{transition:none}}

/* Local service copy follows the quiet portfolio typography. */
.local-services{padding:88px 0;border-bottom:1px solid var(--line)}
.local-services h2{font-size:clamp(28px,3vw,46px);font-weight:400;line-height:1.08;letter-spacing:-.018em;margin:0 0 24px}
.local-services-intro{font-size:14px;line-height:1.7;max-width:820px;margin:0 0 40px;color:#555}
.local-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.local-services h3{font-size:18px;line-height:1.25;font-weight:400;margin:0 0 16px}
.local-services-grid p{font-size:13px;line-height:1.75;color:#555;margin:0 0 18px}
.local-contact-link{font-size:12px;border-bottom:1px solid #bbb;padding-bottom:4px}
.project-title a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.project-summary{font-size:13px;line-height:1.75;color:#555;max-width:760px;margin-top:24px}
@media(max-width:900px){.local-services-grid{grid-template-columns:1fr;gap:26px}.local-services{padding:64px 0}}

/* Subtle background-music control, above the permanent contact dock. */
.interiors-music-toggle{position:fixed;right:20px;bottom:calc(var(--dock,52px) + 14px + env(safe-area-inset-bottom));z-index:1000;display:flex;align-items:center;gap:7px;min-height:44px;padding:9px 13px;border:1px solid #e6e6e1;border-radius:24px;background:rgba(255,255,255,.94);color:#666;font-size:10px;letter-spacing:.035em;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.035);backdrop-filter:blur(12px)}
.interiors-music-toggle:hover{color:#202020;border-color:#bdbdb7}
.interiors-music-toggle:focus-visible{outline:2px solid #555;outline-offset:3px}
.interiors-music-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.interiors-music-toggle .music-waves{display:none}
.interiors-music-toggle.is-playing .music-waves{display:block}
.interiors-music-toggle.is-playing .music-slash{display:none}
@media(max-width:700px){.interiors-music-toggle{right:12px;bottom:calc(var(--dock,50px) + 10px + env(safe-area-inset-bottom))}}
