:root {
  --background: #141414; --background-deep: #0e0e0e; --gold: #c6a16b;
  --gold-light: #e7cda6; --wine: #7d1642; --text: #d7cec3;
  --muted: #aaa098; --line: rgba(198, 161, 107, 0.28); --serif: Georgia, "Times New Roman", serif;
  --sans: Arial, "Helvetica Neue", sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth; scroll-padding-top: 0; scroll-snap-type: y proximity;
}
body {
  margin: 0; background: var(--background); color: var(--text);
  font-family: var(--sans); font-size: 16px; line-height: 1.65;
}
body.menu-open {
  overflow: hidden;
}
img {
  display: block; max-width: 100%;
}
a {
  color: inherit;
}
button {
  font: inherit;
}
.container {
  width: min(1180px, calc(100% - 48px)); margin-inline: auto;
}
.page-section {
  min-height: 100svh; scroll-snap-align: start; scroll-snap-stop: normal;
}
.section {
  padding: 110px 0;
}
.eyebrow {
  margin: 0 0 20px; color: var(--gold); font-size: 0.7rem;
  font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
}
.skip-link {
  position: fixed; z-index: 1000; top: -100px;
  left: 16px; padding: 12px; background: #fff;
  color: #111;
}
.skip-link:focus {
  top: 12px;
}

/* Header and navigation */
.site-header {
  position: absolute; z-index: 20; inset: 0 0 auto;
  background: linear-gradient(180deg, rgba(5, 5, 5, 0.46), transparent); color: #fff;
}
.nav-wrap {
  display: flex; align-items: center; height: 128px;
  gap: 36px;
}
.brand {
  flex: 0 0 auto;
}
.brand img {
  width: 100%; height: auto;
}
.site-header .brand img {
  filter: drop-shadow(0 4px 12px #000);
}
#main-nav {
  display: flex; gap: 36px;
}
#main-nav a {
  position: relative; padding: 28px 2px 25px; color: #c9a56f;
  font-family: var(--serif); font-size: 0.86rem; font-weight: 400;
  letter-spacing: 0.09em; text-decoration: none; text-transform: uppercase;
  transition: color 0.2s;
}
#main-nav a::after {
  content: ""; position: absolute; bottom: -5px;
  left: 50%; width: 185px; height: 24px;
  background: url("grafiki/ikona_przycisku.png") center / contain no-repeat; opacity: 0; transform: translate(-50%, 6px);
  transition: opacity 0.22s, transform 0.22s;
}
#main-nav a:hover,
#main-nav a:focus-visible {
  color: #e4c48f;
}
#main-nav a:hover::after,
#main-nav a:focus-visible::after {
  opacity: 1; transform: translate(-50%, 0);
}
.nav-phone {
  color: #d8b478; font-weight: 700; letter-spacing: 0.13em;
  text-decoration: none;
}
.menu-toggle {
  display: none; width: 44px; height: 44px;
  border: 0; background: none; color: #fff;
}

/* Shared buttons */
.button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 54px; padding: 0 25px; gap: 18px;
  border: 1px solid #bd9459; background: rgba(10, 10, 10, 0.3); color: #d8b67e;
  box-shadow: none; cursor: pointer; font-size: 0.72rem;
  font-weight: 700; letter-spacing: 0.13em; text-decoration: none;
  text-transform: uppercase; transition: transform 0.2s, background 0.2s, color 0.2s;
}
.button:hover {
  transform: translateY(-2px);
}
.button-primary {
  border-color: var(--gold); background: #49171e; color: #e5c58f;
}
.button-primary:hover {
  background: #61202a;
}
.button-secondary:hover,
.button-outline:hover {
  background: #c29a61; color: var(--background);
}
.button-outline {
  border-color: #76634f; background: transparent;
}

.privacy-content {
  max-width: 800px;
}
.privacy-title {
  font-family: Georgia, serif; font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1;
}

/* Home */
.home-section .hero {
  position: relative; display: flex; align-items: center;
  height: calc(100svh - 116px); min-height: 600px; background: linear-gradient(90deg, rgba(3, 3, 3, 0.94) 0%, rgba(5, 4, 4, 0.68) 37%, rgba(5, 4, 4, 0.03) 72%), url("optimized/tlo_poziome.webp") center / cover no-repeat;
  color: #fff;
}
.hero-content {
  padding-top: 80px;
}
.hero h1 {
  max-width: 600px; margin: 0; color: #b8915e;
  font-family: var(--serif); font-size: clamp(2.6rem, 4.25vw, 4.05rem); font-weight: 400;
  line-height: 1.03; letter-spacing: -0.035em;
}
.hero h1 em {
  color: inherit; font-weight: 400;
}
.hero-copy {
  max-width: 540px; margin: 28px 0 34px; color: #d7d0c8;
  font-size: 1.08rem;
}
.hero-actions {
  display: flex; align-items: center; gap: 18px;
}
.hero-badge {
  position: absolute; right: 11vw; bottom: 80px;
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; width: 205px; height: 205px;
  border: 1px solid var(--gold); border-radius: 50%; background: rgba(10, 8, 8, 0.6);
  backdrop-filter: blur(4px); text-align: center; transform: rotate(-7deg);
}
.hero-badge strong {
  color: var(--gold-light); font-family: var(--serif); font-size: 1.58rem;
  line-height: 1.08;
}
.hero-badge span {
  max-width: 150px; margin-top: 12px; font-size: 1.1rem;
  line-height: 1.35; letter-spacing: 0.1em; text-transform: uppercase;
}
.trust-strip {
  border-top: 1px solid var(--line); background: #100d0d; color: #fff;
}
.trust-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); padding-block: 28px;
}
.trust-grid p {
  display: flex; flex-direction: column; margin: 0;
  padding: 0 36px; border-right: 1px solid var(--line); transform: translateY(-4px);
}
.trust-grid p > strong,
.trust-grid p > span {
  transform: translateY(-8px);
}
.trust-grid p:first-child {
  padding-left: 0;
}
.trust-grid p:last-child {
  border-right: 0;
}
.trust-grid strong {
  color: var(--gold-light); font-family: var(--serif); font-size: calc(1.05rem + 2px);
  font-weight: 400;
}
.trust-grid span {
  color: #9f9690; font-size: calc(0.75rem + 2px);
}
.company-strip a {
  color: #cfc4b9; text-decoration: none; transition: color 0.2s;
}
.company-strip a:hover,
.company-strip a:focus-visible {
  color: #e2bd83;
}
.google-rating-meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 2px 12px;
}
.google-profile-link {
  display: inline-flex; align-items: baseline; gap: 7px;
}
.google-rating-meta .google-stars {
  color: #d5ad70; font-size: 0.73rem; letter-spacing: 0.04em;
}
.google-profile-link b {
  color: #eee4da; font-size: 0.82rem;
}
.google-profile-link small {
  color: #9f9690; font-size: 0.68rem;
}
.company-strip .google-review-link {
  color: #d9b477; font-size: 0.68rem; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
}
.google-review-link span {
  color: inherit;
}

/* Services */
.services {
  padding-top: 48px; padding-bottom: 54px; background: var(--background);
  color: var(--text);
}
.services-heading {
  margin-bottom: 28px; text-align: center;
}
.services-heading h2 {
  margin: 0; color: var(--gold); font-family: var(--serif);
  font-size: clamp(1.85rem, 3vw, 2.7rem); font-weight: 400; letter-spacing: 0.06em;
  text-transform: uppercase;
}
.services-heading img {
  width: 270px; height: auto; margin: 2px auto 0;
}
.services-icons {
  display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 34px;
}
.services-icons article {
  padding: 0 25px 16px; border-right: 1px solid rgba(198, 161, 107, 0.3); text-align: center;
}
.services-icons article:last-child {
  border-right: 0;
}
.sprite-icon {
  display: block; width: 72px; height: 72px;
  margin: 0 auto 9px; background-image: url("grafiki/ikony_stronaglowna.png"); background-repeat: no-repeat;
  background-size: 648px 72px;
}
.icon-chair {
  background-position: 0 0;
}
.icon-renovation {
  background-position: -72px 0;
}
.icon-repair {
  background-position: -144px 0;
}
.icon-materials {
  background-position: -216px 0;
}
.services-icons h3 {
  margin: 0 0 5px; color: var(--gold); font-family: var(--serif);
  font-size: 1rem; font-weight: 400; letter-spacing: 0.05em;
  text-transform: uppercase;
}
.services-icons p {
  max-width: 230px; margin: 0 auto; color: #aaa19a;
  font-size: 0.78rem; line-height: 1.42;
}
.mobile-hint {
  display: none;
}
.service-panels {
  display: grid; grid-template-columns: 1.153846fr 1fr 1fr; grid-template-rows: repeat(2, auto);
  gap: 14px;
}
.service-panels article {
  position: relative; display: flex; align-items: flex-end;
  min-height: 0; overflow: hidden; background-image: linear-gradient(180deg, rgba(10, 8, 7, 0.06) 20%, rgba(10, 8, 7, 0.93) 100%), var(--panel-image);
  background-position: center; background-repeat: no-repeat; background-size: cover;
}
.service-panels article:first-child {
  --panel-image: url("optimized/obraz_4.webp"); grid-row: 1 / span 2; aspect-ratio: 3 / 4;
}
.service-panels article:nth-child(2) {
  --panel-image: url("optimized/obraz_6.webp"); grid-column: 2; grid-row: 1; aspect-ratio: 4 / 3;
}
.service-panels article:nth-child(3) {
  --panel-image: url("optimized/obraz_1.webp"); grid-column: 3; grid-row: 1; aspect-ratio: 4 / 3;
}
.service-panels article:nth-child(4) {
  --panel-image: url("optimized/obraz_2.webp"); grid-column: 2; grid-row: 2; aspect-ratio: 4 / 3;
}
.service-panels article div {
  position: relative; z-index: 1; width: 100%;
  padding: 28px;
}
.service-panels h3 {
  margin: 2px 0 8px; color: #dfbd87; font-family: var(--serif);
  font-size: 1.38rem; font-weight: 400;
}
.service-panels p {
  max-width: 440px; margin: 0; color: #c5bbb2;
  font-size: 0.8rem; line-height: 1.45;
}

/* Realizations */
.realizations-section {
  background: var(--background-deep);
}
.gallery-section {
  min-height: calc(100svh - 190px); padding: 50px 0 46px; border-top: 1px solid rgba(198, 161, 107, 0.22);
  background: var(--background); color: var(--text);
}
.realizations-heading {
  margin-bottom: 28px;
}
.gallery-frame {
  position: relative; padding: 20px 0;
}
.gallery-frame::before,
.gallery-frame::after {
  content: ""; position: absolute; z-index: 3;
  right: 0; left: 0; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(198, 161, 107, 0.18) 12%, rgba(198, 161, 107, 0.78) 50%, rgba(198, 161, 107, 0.18) 88%, transparent 100%); pointer-events: none;
}
.gallery-frame::before {
  top: 0;
}
.gallery-frame::after {
  bottom: 0;
}
.gallery-controls {
  position: absolute; z-index: 5; inset: 50% 18px auto;
  display: flex; justify-content: space-between; pointer-events: none;
  transform: translateY(-50%);
}
.gallery-controls button {
  width: 56px; height: 56px; border: 1px solid rgba(214, 180, 126, 0.82);
  border-radius: 50%; background: rgba(14, 14, 14, 0.7); color: #d6b47e;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.38); backdrop-filter: blur(5px); cursor: pointer;
  font-size: 1.55rem; line-height: 1; pointer-events: auto;
  transition: background 0.2s, color 0.2s;
}
.gallery-controls button:hover,
.gallery-controls button:focus-visible {
  background: var(--gold); color: var(--background);
}
.gallery {
  display: flex; gap: 72px; overflow-x: auto;
  overscroll-behavior-inline: contain; padding: 0 calc((100% - clamp(520px, 65vw, 760px)) / 2) 4px; scroll-behavior: smooth;
  scrollbar-width: none; scroll-snap-type: x mandatory;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 12%, #000 24%, #000 76%, transparent 88%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, transparent 12%, #000 24%, #000 76%, transparent 88%, transparent 100%);
}
.gallery::-webkit-scrollbar {
  display: none;
}
.gallery-item {
  position: relative; display: block; flex: 0 0 clamp(520px, 65vw, 760px);
  height: clamp(350px, 55vh, 500px); padding: 0; overflow: hidden;
  border: 0; background: #1b1715; color: #fff;
  cursor: zoom-in; scroll-snap-align: center;
}
.gallery-item img {
  width: 100%; height: 100%; object-fit: contain; background: #0b0a09;
  transition: transform 0.5s, opacity 0.3s;
}
.gallery-item span {
  position: absolute; inset: auto 0 0; width: 100%;
  padding: 46px 22px 19px; background: linear-gradient(90deg, transparent 0%, rgba(14, 10, 9, 0.38) 10%, rgba(14, 10, 9, 0.92) 32%, rgba(14, 10, 9, 0.92) 68%, rgba(14, 10, 9, 0.38) 90%, transparent 100%); color: #dfbd87;
  font-family: var(--serif); font-size: 1.18rem; letter-spacing: 0.025em;
  text-align: center; opacity: 0; transform: translateY(8px);
  transition: opacity 0.25s, transform 0.25s;
}
.gallery-item:hover img {
  opacity: 0.88; transform: scale(1.035);
}
.gallery-item:hover span,
.gallery-item:focus-visible span {
  opacity: 1; transform: none;
}
.bottom-cta {
  display: flex; align-items: center; min-height: 190px;
  border-top: 1px solid rgba(198, 161, 107, 0.5); border-bottom: 1px solid rgba(198, 161, 107, 0.5); background: linear-gradient(90deg, rgba(21, 10, 9, 0.8), rgba(73, 23, 30, 0.56), rgba(17, 9, 8, 0.78)), url("grafiki/baner.png") center / cover no-repeat;
  color: #fff;
}
.bottom-cta-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding-block: 34px; gap: 50px;
}
.bottom-cta h2 {
  margin: 0 0 6px; color: #d4ad73; font-family: var(--serif);
  font-size: clamp(1.45rem, 2.4vw, 2.15rem); font-weight: 400;
}
.bottom-cta p {
  margin: 0; color: #d5cbc2; font-family: var(--serif);
  font-size: 1.05rem;
}
.bottom-cta .button {
  flex: 0 0 auto; min-width: 210px; background: rgba(31, 13, 14, 0.52);
}
.bottom-cta .button:hover {
  background: #c29a61; color: var(--background);
}

/* About */
.about {
  padding-bottom: 82px; overflow: hidden; background: var(--background);
  color: var(--text);
}
.about-grid {
  display: grid; grid-template-columns: 0.82fr 1.18fr; align-items: center;
  column-gap: 9%; row-gap: 62px;
}
.about-photo {
  position: relative;
}
.about-photo img {
  width: 100%; max-height: 680px; object-fit: cover;
  filter: saturate(0.8); box-shadow: 0 24px 70px rgba(17, 10, 8, 0.2);
}
.photo-note {
  position: absolute; right: -55px; bottom: 45px;
  padding: 24px 28px; border: 1px solid rgba(198, 161, 107, 0.48); background: #4f120c;
  color: #d9b477; box-shadow: 0 18px 45px rgba(0, 0, 0, 0.34); font-family: var(--serif);
  font-size: 1.2rem; line-height: 1.3;
}
.about h2 {
  margin: 0; color: var(--gold); font-family: var(--serif);
  font-size: clamp(3rem, 6vw, 5.5rem); font-weight: 400; line-height: 1.03;
  letter-spacing: -0.035em;
}
.about h2 em {
  display: inline-block; margin-top: 0.09em; color: #d9b477;
  font-style: italic; font-weight: 400;
}
.lead {
  margin: 28px 0 15px; color: #d8c8b8; font-family: var(--serif);
  font-size: 1.4rem;
}
.about-copy > p:not(.eyebrow):not(.lead) {
  max-width: 600px; color: var(--muted);
}
.about-transformations {
  grid-column: 1 / -1; display: grid; grid-template-columns: 0.92fr 1.12fr 0.92fr;
  align-items: center; margin: 0 -3vw; gap: clamp(14px, 2.2vw, 30px);
}
.about-transformations figure {
  position: relative; margin: 0; overflow: hidden;
}
.about-transformations figure:first-child {
  transform: translateY(18px) rotate(-1.2deg);
}
.about-transformations figure:nth-child(2) {
  z-index: 2; transform: translateY(-8px);
}
.about-transformations figure:last-child {
  transform: translateY(18px) rotate(1.2deg);
}
.about-transformations img {
  width: 100%; height: auto; aspect-ratio: 4 / 3;
  object-fit: contain;
}

/* Contact */
.contact-page {
  background: linear-gradient(115deg, rgba(10, 8, 8, 0.97), rgba(25, 12, 16, 0.91)), url("grafiki/baner.png") center / cover no-repeat; color: var(--text);
}
.contact-layout {
  display: grid; grid-template-rows: 48px 122px 452px 154px; align-content: start;
  flex: 0 0 auto; width: min(1180px, calc(100% - 48px)); height: 858px;
  min-height: 0; padding: 34px 0 0; gap: 16px;
}
.contact-heading {
  margin: 0; transform: translateY(-20px);
}
.contact-heading h2 {
  font-size: clamp(calc(2rem + 2px), calc(3vw + 2px), calc(2.7rem + 2px)); line-height: 1.03;
}
.contact-heading img {
  width: 230px; margin-top: 0;
}
.contact-quick-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); min-height: 0;
  gap: 14px;
}
.contact-info-tile {
  display: flex; align-items: center; min-width: 0;
  padding: 10px 13px; gap: 12px; border: 1px solid rgba(198, 161, 107, 0.62);
  border-radius: 3px; background: rgba(10, 10, 10, 0.2); color: #bdb3aa;
  text-decoration: none; transition: border-color 0.2s, background 0.2s;
}
a.contact-info-tile:hover,
a.contact-info-tile:focus-visible {
  border-color: #d3ad74; background: rgba(79, 18, 12, 0.22);
}
.contact-info-tile > span:last-child {
  display: flex; flex-direction: column; min-width: 0;
  line-height: 1.3;
}
.contact-info-tile strong,
.contact-info-tile b {
  font-family: var(--serif); font-weight: 400;
}
.contact-info-tile strong {
  margin-bottom: 3px; color: #d6b275; font-size: calc(0.88rem + 2px);
  letter-spacing: 0.055em; text-transform: uppercase;
}
.contact-info-tile b {
  overflow-wrap: anywhere; color: #ddd3c8; font-size: calc(0.82rem + 2px);
}
.contact-info-tile small {
  margin-top: 4px; color: #91877f; font-size: calc(0.65rem + 2px);
}
.contact-icon {
  --icon-position: 0%; display: block; flex: 0 0 58px;
  width: 58px; height: 58px; background-image: url("grafiki/ikony_kontakt.png");
  background-repeat: no-repeat; background-position: var(--icon-position) center; background-size: 700% auto;
}
.icon-phone {
  --icon-position: 0%;
}
.icon-mail {
  --icon-position: 16.6667%;
}
.icon-location {
  --icon-position: 33.3333%;
}
.icon-hours {
  --icon-position: 50%;
}
.icon-camera {
  --icon-position: 66.6667%;
}
.icon-ruler {
  --icon-position: 83.3333%;
}
.icon-idea {
  --icon-position: 100%;
}
.contact-map-panel,
.photo-guide,
.contact-faq {
  min-height: 0; border: 1px solid rgba(198, 161, 107, 0.58); border-radius: 3px;
  background: rgba(9, 9, 9, 0.2);
}
.contact-map-panel {
  display: flex; flex-direction: column; justify-self: center;
  width: calc(100% - 64px); padding: 7px 9px 9px;
}
.photo-guide h3,
.contact-faq h3 {
  margin: 0; color: #d5ae72; font-family: var(--serif);
  font-size: calc(1.03rem + 3px); font-weight: 400; letter-spacing: 0.025em;
  text-align: center; text-transform: uppercase;
}
.contact-map-wrap {
  position: relative; flex: 1; min-height: 0;
  overflow: hidden; background: #171411;
}
.contact-map-wrap iframe {
  width: 100%; height: 100%; border: 0;
  filter: sepia(0.12) saturate(0.9) brightness(0.62) contrast(1.12); opacity: 0.94;
}
.map-address {
  position: absolute; bottom: 14px; left: 16px;
  display: flex; flex-direction: column; padding: 8px 12px;
  border-left: 2px solid #c49a5e; background: rgba(12, 10, 9, 0.88); color: #d8cec3;
  backdrop-filter: blur(4px); font-size: calc(0.67rem + 2px); line-height: 1.4;
}
.map-address strong {
  color: #d6ad70; font-family: var(--serif); font-size: calc(0.82rem + 2px);
  font-weight: 400;
}
.map-route {
  position: absolute; right: 14px; bottom: 14px;
  min-height: 38px; padding: 0 16px; background: #4f120c;
  font-size: calc(0.62rem + 2px);
}
.contact-bottom-grid {
  display: grid; grid-template-columns: 1.18fr 0.82fr; min-height: 0;
  gap: 14px;
}
.photo-guide,
.contact-faq {
  padding: 7px 12px 9px;
}
.photo-guide-list {
  display: grid; grid-template-columns: repeat(3, 1fr); align-items: center;
  height: calc(100% - 31px);
}
.photo-guide-list > div {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; height: 100%; padding: 0 14px;
  border-right: 1px solid rgba(198, 161, 107, 0.27); text-align: center;
}
.photo-guide-list > div:last-child {
  border-right: 0;
}
.photo-guide-list .contact-icon {
  flex-basis: 54px; width: 54px; height: 54px;
  margin-bottom: 2px;
}
.photo-guide-list strong {
  color: #d2ad73; font-family: var(--serif); font-size: calc(0.75rem + 3px);
  font-weight: 400; line-height: 1.25;
}
.photo-guide-list small {
  max-width: 170px; margin-top: 3px; color: #9d938a;
  font-size: calc(0.59rem + 4px); line-height: 1.25;
}
.contact-faq details {
  margin-top: 3px; border: 1px solid rgba(198, 161, 107, 0.38); background: rgba(18, 17, 16, 0.3);
}
.contact-faq summary {
  position: relative; padding: 3px 27px 3px 9px; color: #c8beb4;
  cursor: pointer; font-family: var(--serif); font-size: calc(0.7rem + 3px);
  line-height: 1.25; list-style: none;
}
.contact-faq summary::-webkit-details-marker {
  display: none;
}
.contact-faq summary::after {
  content: "+"; position: absolute; top: 50%;
  right: 9px; color: #d0a567; font-size: 1rem;
  transform: translateY(-53%);
}
.contact-faq details[open] summary::after {
  content: "−";
}
.contact-faq details p {
  margin: 0; padding: 2px 9px 6px; color: #928880;
  font-size: calc(0.6rem + 3px); line-height: 1.3;
}

/* Footer */
footer {
  border-top: 1px solid var(--line); background: #090808; color: #9e9691;
}
.footer-grid {
  display: grid; align-items: center;
}
.footer-brand {
  width: 220px; transform: none;
}
.footer-quick strong,
.footer-contact strong {
  display: block; margin-bottom: 3px; color: #d4ad73;
  font-family: var(--serif); font-size: 0.72rem; font-weight: 400;
  letter-spacing: 0.055em; text-transform: uppercase;
}
.footer-quick div {
  display: flex; align-items: center; gap: 15px;
}
.footer-quick a {
  color: #aaa098; font-size: 0.58rem; letter-spacing: 0.07em;
  text-decoration: none; text-transform: uppercase; transition: color 0.2s;
}
.footer-quick a:hover,
.footer-quick a:focus-visible,
.footer-contact a:hover,
.footer-contact a:focus-visible {
  color: #d7b174;
}
.footer-contact {
  display: grid; grid-template-columns: 1fr auto; margin: 0;
  column-gap: 16px; color: #aaa098; font-size: 0.66rem;
  font-style: normal; line-height: 1.25;
}
.footer-contact strong {
  grid-column: 1 / -1;
}
.footer-contact a {
  color: #d5b074; font-family: var(--serif); font-size: 0.78rem;
  text-decoration: none;
}
.contact-page > footer {
  flex: 0 0 84px; padding: 3px 0 2px; border-top-color: rgba(198, 161, 107, 0.34);
  background: rgba(7, 7, 7, 0.82);
}
.footer-compact {
  height: 78px; grid-template-columns: 170px 1fr 300px; gap: 28px;
}
.footer-compact .footer-brand {
  width: 166px;
}
.mobile-call {
  display: none;
}

/* Gallery dialog */
.lightbox {
  width: min(1200px, 92vw); height: 90vh; max-width: none; max-height: none; padding: 0;
  border: 0; background: transparent; box-shadow: 0 30px 100px #000;
}
.lightbox[open] {
  display: flex; align-items: center; justify-content: center;
}
.lightbox::backdrop {
  background: rgba(7, 5, 5, 0.92); backdrop-filter: blur(5px);
}
.lightbox img {
  display: block; max-width: calc(100% - 150px); max-height: 88vh; object-fit: contain;
}
.lightbox-close {
  position: absolute; z-index: 3; top: 12px; right: 12px;
  width: 48px; height: 48px; border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 50%; background: #111; color: #fff;
  cursor: pointer; font-size: 2rem; line-height: 1;
}
.lightbox-nav {
  position: absolute; z-index: 2; top: 50%;
  display: grid; place-items: center; width: 58px; height: 58px;
  border: 1px solid rgba(214, 180, 126, 0.82); border-radius: 50%;
  background: rgba(14, 14, 14, 0.72); color: #d6b47e;
  cursor: pointer; font-size: 1.5rem; transform: translateY(-50%);
}
.lightbox-previous {
  left: 24px;
}
.lightbox-next {
  right: 24px;
}
@media (min-width: 901px) {
  html {
    font-size: clamp(12px, 0.833333vw, 16px);
  }
  body {
    background: #050505;
  }
  main,
  .site-header {
    width: min(100%, 1920px); margin-inline: auto;
  }
  main {
    background: var(--background);
  }
  .site-header {
    right: 0; left: 0; margin-inline: auto; transform: none;
  }
  .page-section {
    height: max(100svh, 900px); min-height: 900px; overflow: hidden;
  }
  .container {
    width: min(clamp(885px, 61.458333vw, 1180px), calc(100% - 48px));
  }
  .site-header .brand {
    width: clamp(242px, 16.770833vw, 322px);
    transform: translate(clamp(20px, 1.354167vw, 26px), clamp(72px, 5vw, 96px));
  }
  #main-nav {
    position: fixed; z-index: 25; top: clamp(14px, 0.9375vw, 18px);
    right: calc(max(0px, 50% - 960px) + clamp(48px, 3.333333vw, 64px)); left: auto; align-items: center;
    height: clamp(56px, 3.854167vw, 74px); margin: 0; padding-left: clamp(9px, 0.625vw, 12px);
    gap: clamp(27px, 1.875vw, 36px);
    transition: top 0.25s;
  }
  .nav-phone {
    position: fixed; z-index: 25; top: clamp(14px, 0.9375vw, 18px);
    left: calc(max(0px, 50% - 960px) + clamp(48px, 3.333333vw, 64px)); display: flex; align-items: center;
    height: clamp(56px, 3.854167vw, 74px); padding: 0 0 clamp(11px, 0.729167vw, 14px) clamp(39px, 2.708333vw, 52px); border: 0;
    font-size: 1.2rem; transition: top 0.25s, color 0.2s;
  }
  .site-header.scrolled #main-nav,
  .site-header.scrolled .nav-phone {
    top: 0;
  }
  .nav-phone::before {
    content: ""; position: absolute; top: 50%;
    left: -7px; width: 58px; height: 58px;
    background: url("grafiki/ikony_kontakt.png") 0 center / 700% auto no-repeat; transform: translateY(-61%);
  }
  .nav-phone::after {
    content: ""; position: absolute; right: 0;
    bottom: 4px; left: 52px; height: 16px;
    background: url("grafiki/ikona_przycisku.png") center / 100% 100% no-repeat; pointer-events: none;
  }
  .nav-phone:hover,
  .nav-phone:focus-visible {
    color: #edc98e;
  }
  .hero-content {
    transform: translate(clamp(-64px, -3.333333vw, -48px), clamp(36px, 2.5vw, 48px));
  }
  .home-section .hero {
    height: calc(max(100svh, 900px) - clamp(97px, 10.740741svh, 116px)); min-height: 0;
  }
  .trust-strip {
    height: clamp(97px, 10.740741svh, 116px);
  }
  .trust-grid {
    height: 100%; align-items: center; padding-block: clamp(20px, 2.592593svh, 28px);
  }
  .services {
    padding-top: clamp(36px, 4.444444svh, 48px);
    padding-bottom: clamp(41px, 5svh, 54px);
  }
  .services-heading {
    margin-bottom: clamp(21px, 2.592593svh, 28px);
  }
  .services-icons {
    margin-bottom: clamp(26px, 3.148148svh, 34px);
  }
  .service-panels {
    gap: clamp(10.5px, 0.729167vw, 14px);
  }
  .gallery-section {
    min-height: calc(max(100svh, 900px) - clamp(158px, 17.592593svh, 190px));
    padding: clamp(42px, 4.62963svh, 50px) 0 clamp(38px, 4.259259svh, 46px);
  }
  .gallery-item {
    height: clamp(417px, 46.296296svh, 500px);
  }
  .bottom-cta {
    min-height: clamp(158px, 17.592593svh, 190px);
  }
  .about-section {
    display: flex; flex-direction: column; height: max(100svh, 900px);
    min-height: 900px; overflow: hidden; background: var(--background);
  }
  .about-section .about {
    flex: 1; min-height: 0; padding: 74px 0 10px;
  }
  .about-section .about-grid {
    grid-template-columns: 0.72fr 1.28fr; grid-template-rows: minmax(210px, 1.1fr) minmax(220px, 1fr); align-items: stretch;
    height: 100%; column-gap: 7%; row-gap: 5px;
  }
  .about-section .about-photo {
    height: 100%; min-height: 0; max-width: 390px;
  }
  .about-section .about-photo img {
    height: 100%; max-height: none; object-position: center 24%;
  }
  .about-section .photo-note {
    right: -38px; bottom: 18px; padding: 14px 20px;
    font-size: 1rem;
  }
  .about-section .about-copy {
    align-self: center;
  }
  .about-section .about-copy .eyebrow {
    margin-bottom: 9px;
  }
  .about-section .about h2 {
    font-size: clamp(2.7rem, 4.4vw, 4.15rem);
  }
  .about-section .about h2 em {
    margin-top: 0.02em;
  }
  .about-section .lead {
    margin: 14px 0 7px; font-size: 1.12rem;
  }
  .about-section .about-copy > p:not(.eyebrow):not(.lead) {
    margin: 0; font-size: 0.82rem; line-height: 1.5;
  }
  .about-section .about-transformations {
    align-self: end; width: 100%; height: 100%;
    margin: 0 auto; gap: 14px;
  }
  .about-section .about-transformations figure {
    height: 100%; transform: none;
  }
  .about-section .about-transformations img {
    height: 100%; aspect-ratio: auto;
  }
  .contact-page {
    display: flex; flex-direction: column; height: max(100svh, 900px);
    min-height: 900px; overflow: hidden;
  }
  .contact-layout {
    grid-template-rows: clamp(40px, 4.444444svh, 48px) clamp(102px, 11.296296svh, 122px) minmax(280px, 1fr) 184px;
    flex: 1 1 auto; height: auto; padding-top: clamp(28px, 3.148148svh, 34px);
    gap: clamp(13px, 1.481481svh, 16px);
  }
  .contact-quick-grid {
    width: calc(100% + 40px); margin-left: -20px;
  }
  .contact-info-tile {
    height: auto;
  }
  .contact-map-panel {
    transform: translateY(-8px);
  }
  .contact-bottom-grid {
    height: auto; transform: translateY(clamp(-16px, -1.481481svh, -13px));
  }
  .photo-guide,
  .contact-faq {
    height: auto;
  }
  .contact-faq {
    overflow: hidden;
  }
  .contact-page > footer {
    flex-basis: clamp(70px, 7.777778svh, 84px);
  }
  .footer-compact {
    height: clamp(65px, 7.222222svh, 78px);
  }
  .footer-compact .footer-brand {
    width: clamp(125px, 8.645833vw, 166px);
  }
}
@media (max-width: 900px) {
  html {
    scroll-snap-type: none;
  }
  .container {
    width: min(calc(100% - 34px), 720px);
  }
  .page-section {
    min-height: 100svh;
  }
  .nav-wrap {
    height: 88px;
  }
  .site-header .brand {
    width: 292px; transform: translate(40px, 48px);
  }
  .header-phone {
    display: none;
  }
  .menu-toggle {
    position: fixed; z-index: 31; top: 18px;
    right: 16px; display: flex; flex-direction: column;
    justify-content: center; margin: 0; gap: 7px;
    background: rgba(10, 9, 9, 0.65); backdrop-filter: blur(6px);
  }
  .menu-toggle span {
    display: block; width: 25px; height: 1px;
    background: #fff; transition: transform 0.3s;
  }
  .menu-toggle[aria-expanded="true"] span:first-child {
    transform: translateY(4px) rotate(45deg);
  }
  .menu-toggle[aria-expanded="true"] span:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }
  #main-nav {
    position: fixed; inset: 0; flex-direction: column;
    align-items: center; justify-content: center; margin: 0;
    gap: 28px; background: rgba(14, 11, 11, 0.98); transform: translateX(100%);
    transition: transform 0.3s;
  }
  #main-nav.open {
    transform: none;
  }
  #main-nav a {
    padding: 12px 2px 24px; color: #d5b477; font-size: 1.7rem;
    text-transform: none;
  }
  #main-nav a::after {
    width: 190px; height: 25px;
  }
  .home-section .hero {
    height: 760px; min-height: 100svh; background-image: linear-gradient(180deg, rgba(4, 4, 4, 0.45), rgba(4, 3, 3, 0.45) 38%, rgba(4, 3, 3, 0.94) 80%), url("optimized/tlo_pionowe.webp");
  }
  .hero-content {
    align-self: flex-end; padding-bottom: 100px;
  }
  .hero h1 {
    font-size: clamp(2.45rem, 8.5vw, 3.6rem);
  }
  .hero-copy {
    max-width: 500px; font-size: 0.98rem;
  }
  .hero-badge {
    display: none;
  }
  .trust-grid {
    grid-template-columns: 1fr;
  }
  .trust-grid p {
    padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--line);
  }
  .trust-grid p:last-child {
    border-bottom: 0;
  }
  .services-icons {
    grid-template-columns: repeat(2, 1fr); row-gap: 30px;
  }
  .services-icons article:nth-child(2) {
    border-right: 0;
  }
  .service-panels {
    grid-template-columns: 1fr 1fr; grid-template-rows: auto; align-items: start;
  }
  .service-panels article:first-child {
    grid-column: 1; grid-row: 1;
  }
  .service-panels article:nth-child(2) {
    grid-column: 2; grid-row: 1;
  }
  .service-panels article:nth-child(3) {
    grid-column: 1; grid-row: 2;
  }
  .service-panels article:nth-child(4) {
    grid-column: 2; grid-row: 2;
  }
  .about-section {
    display: flex; flex-direction: column; height: 100svh;
    min-height: 680px; overflow: hidden; background: var(--background);
  }
  .about-section .about {
    flex: 1; min-height: 0; padding: 62px 0 6px;
  }
  .about-section .about-grid {
    display: grid; grid-template-columns: 0.72fr 1.28fr; grid-template-rows: minmax(180px, 1.25fr) minmax(140px, 1fr);
    align-items: stretch; height: 100%; column-gap: 18px;
    row-gap: 10px;
  }
  .about-section .about-photo {
    height: 100%; min-height: 0;
  }
  .about-section .about-photo img {
    height: 100%; max-height: none; object-position: center 22%;
  }
  .about-section .photo-note {
    right: -9px; bottom: 8px; padding: 8px 10px;
    font-size: 0.68rem; line-height: 1.25;
  }
  .about-section .about-copy {
    align-self: center; min-width: 0;
  }
  .about-section .about-copy .eyebrow {
    margin-bottom: 5px; font-size: 0.55rem;
  }
  .about-section .about h2 {
    font-size: clamp(1.8rem, 7.4vw, 3.1rem);
  }
  .about-section .about h2 em {
    margin-top: 0;
  }
  .about-section .lead {
    margin: 9px 0 5px; font-size: 0.88rem; line-height: 1.3;
  }
  .about-section .about-copy > p:not(.eyebrow):not(.lead) {
    margin: 0; font-size: 0.66rem; line-height: 1.35;
  }
  .about-section .about-transformations {
    display: flex; height: 100%; margin: 0;
    padding: 4px 0 9px; gap: 12px; overflow-x: auto;
    scrollbar-width: none; scroll-snap-type: x mandatory;
  }
  .about-section .about-transformations::-webkit-scrollbar {
    display: none;
  }
  .about-section .about-transformations figure {
    flex: 0 0 auto; width: auto; height: 100%;
    margin: 0; transform: none; scroll-snap-align: center;
  }
  .about-section .about-transformations img {
    width: auto; height: 100%; aspect-ratio: auto;
  }
  .contact-page {
    height: auto; min-height: 100svh; overflow: visible;
  }
  .contact-layout {
    display: block; width: min(calc(100% - 34px), 720px); height: auto;
    padding: 72px 0 34px;
  }
  .contact-heading {
    margin-bottom: 20px; transform: none;
  }
  .contact-quick-grid {
    grid-template-columns: 1fr 1fr; margin-bottom: 16px;
  }
  .contact-info-tile {
    min-height: 96px;
  }
  .contact-map-panel {
    width: 100%; height: 270px; margin-bottom: 16px;
  }
  .contact-bottom-grid {
    grid-template-columns: 1fr;
  }
  .photo-guide,
  .contact-faq {
    min-height: 180px;
  }
  .contact-page > footer {
    padding: 18px 0 24px;
  }
  .footer-compact {
    height: auto; grid-template-columns: 1fr; gap: 18px;
  }
  .footer-compact .footer-brand {
    width: 186px;
  }
  .footer-contact {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  body {
    padding-bottom: 62px;
  }
  .container {
    width: calc(100% - 32px);
  }
  .lightbox-close {
    top: 12px; right: 12px; width: 44px; height: 44px;
  }
  .lightbox {
    width: 96vw;
  }
  .lightbox img {
    max-width: 100%; max-height: 84vh;
  }
  .lightbox-nav {
    width: 46px; height: 46px; font-size: 1.2rem;
  }
  .lightbox-previous {
    left: 8px;
  }
  .lightbox-next {
    right: 8px;
  }
  .nav-wrap {
    gap: 12px;
  }
  .site-header .brand {
    width: 238px; transform: translate(20px, 60px);
  }
  .home-section .hero {
    height: calc(100svh - 220px); min-height: 600px;
  }
  .hero-content {
    padding-bottom: 72px;
  }
  .hero h1 {
    max-width: 330px; font-size: 2.25rem;
  }
  .hero-copy {
    margin: 20px 0 27px;
  }
  .hero-actions {
    flex-direction: row; gap: 10px;
  }
  .hero-actions .button {
    min-height: 50px; padding: 0 13px; gap: 8px;
    font-size: 0.62rem; letter-spacing: 0.09em;
  }
  .eyebrow {
    letter-spacing: 0.15em;
  }
  .services {
    padding-top: 30px; padding-bottom: 34px;
  }
  .services-heading {
    margin-bottom: 20px;
  }
  .services-heading img {
    width: 230px;
  }
  .services-icons {
    grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 18px;
  }
  .services-icons article,
  .services-icons article:nth-child(2) {
    min-height: 184px; padding: 15px 8px 17px; border-right: 1px solid rgba(198, 161, 107, 0.27); border-bottom: 1px solid rgba(198, 161, 107, 0.27);
  }
  .services-icons article:nth-child(even) {
    border-right: 0;
  }
  .services-icons article:nth-child(n + 3) {
    border-bottom: 0;
  }
  .services-icons article:last-child {
    border-bottom: 0;
  }
  .sprite-icon {
    width: 58px; height: 58px; background-size: 522px 58px;
  }
  .icon-renovation {
    background-position: -58px 0;
  }
  .icon-repair {
    background-position: -116px 0;
  }
  .icon-materials {
    background-position: -174px 0;
  }
  .services-icons h3 {
    font-size: 0.86rem; line-height: 1.25;
  }
  .services-icons p {
    font-size: 0.72rem; line-height: 1.4;
  }
  .mobile-hint {
    display: flex; align-items: center; justify-content: space-between;
    margin: 0 0 10px; color: #b8aa9d; font-size: 0.72rem;
    letter-spacing: 0.08em; text-transform: uppercase;
  }
  .mobile-hint span {
    color: var(--gold); font-size: 1.15rem;
  }
  .service-panels {
    display: flex; gap: 12px; overflow-x: auto;
    margin-inline: -16px; padding: 0 16px 18px;
    scrollbar-width: none; scroll-snap-type: x mandatory;
  }
  .service-panels::-webkit-scrollbar {
    display: none;
  }
  .service-panels article:first-child,
  .service-panels article:nth-child(2),
  .service-panels article:nth-child(3),
  .service-panels article:nth-child(4) {
    flex: 0 0 84vw; height: 320px; aspect-ratio: auto;
    background-color: #090909; background-size: cover, contain;
    scroll-snap-align: center;
  }
  .gallery-section {
    min-height: 0; padding: 38px 0 28px;
  }
  .realizations-section {
    min-height: 0;
  }
  .realizations-heading h2 {
    font-size: 1.75rem;
  }
  .gallery-frame {
    padding: 16px 0;
  }
  .gallery-controls {
    inset-inline: 5px;
  }
  .gallery-controls button {
    width: 44px; height: 44px; font-size: 1.2rem;
  }
  .gallery {
    gap: 32px; padding-inline: calc((100% - 88vw) / 2);
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 3%, #000 13%, #000 87%, transparent 97%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, transparent 3%, #000 13%, #000 87%, transparent 97%, transparent 100%);
  }
  .gallery-item {
    flex-basis: 88vw; height: auto; min-height: 0; aspect-ratio: 4 / 3;
  }
  .gallery-item span {
    padding: 42px 16px 17px; font-size: 1.05rem; opacity: 1; transform: none;
  }
  .bottom-cta {
    min-height: 225px;
  }
  .bottom-cta-inner {
    flex-direction: column; align-items: flex-start; padding-block: 30px;
    gap: 16px;
  }
  .bottom-cta h2 {
    font-size: 1.55rem; line-height: 1.2;
  }
  .bottom-cta p {
    font-size: 0.95rem; line-height: 1.45;
  }
  .bottom-cta .button {
    width: 100%; min-width: 0;
  }
  .about-section {
    height: auto; min-height: 0; overflow: visible;
  }
  .about-section .about {
    min-height: 0; padding: 66px 0 48px;
  }
  .about-section .about-grid {
    display: flex; flex-direction: column; height: auto; gap: 30px;
  }
  .about-section .about-photo {
    width: min(100%, 300px); height: 400px; margin-inline: auto;
  }
  .about-section .about-photo img {
    width: 100%; height: 100%; object-position: center 22%;
  }
  .about-section .photo-note {
    right: -12px; bottom: 14px; padding: 11px 14px; font-size: 0.82rem;
  }
  .about-section .about-copy {
    align-self: stretch;
  }
  .about-section .about-copy .eyebrow {
    margin-bottom: 10px; font-size: 0.64rem;
  }
  .about-section .about h2 {
    font-size: 2.65rem; line-height: 1.02;
  }
  .about-section .lead {
    margin: 18px 0 10px; font-size: 1.12rem; line-height: 1.4;
  }
  .about-section .about-copy > p:not(.eyebrow):not(.lead) {
    margin: 0; font-size: 0.95rem; line-height: 1.65;
  }
  .about-section .about-transformations {
    width: calc(100% + 32px); height: auto; margin-inline: -16px;
    padding: 4px 16px 20px; gap: 14px;
  }
  .about-section .about-transformations figure {
    flex: 0 0 86vw; width: 86vw; height: auto;
  }
  .about-section .about-transformations img {
    width: 100%; height: auto; aspect-ratio: 4 / 3;
  }
  .contact-quick-grid {
    grid-template-columns: 1fr; gap: 9px;
  }
  .contact-info-tile {
    min-height: 84px;
  }
  .contact-map-panel {
    height: 285px;
  }
  .map-address {
    bottom: 8px; left: 8px; max-width: 55%;
  }
  .map-route {
    top: 8px; right: 8px; bottom: auto; padding-inline: 10px;
  }
  .photo-guide {
    padding: 12px 16px 16px;
  }
  .photo-guide-list {
    display: block; height: auto;
  }
  .photo-guide-list > div {
    display: grid; grid-template-columns: 48px 1fr; height: auto;
    padding: 11px 0; column-gap: 10px; border-right: 0;
    border-bottom: 1px solid rgba(198, 161, 107, 0.27); text-align: left;
  }
  .photo-guide-list > div:last-child {
    border-bottom: 0;
  }
  .photo-guide-list .contact-icon {
    grid-row: 1 / 3; width: 48px; height: 48px; margin: 0;
  }
  .photo-guide-list strong {
    font-size: 0.82rem;
  }
  .photo-guide-list small {
    max-width: none; margin-top: 2px; font-size: 0.72rem;
  }
  .footer-quick div {
    display: grid; grid-template-columns: 1fr 1fr;
  }
  .footer-compact {
    gap: 24px; padding-block: 10px;
  }
  .footer-contact {
    display: flex; flex-direction: column; align-items: flex-start;
    gap: 5px; font-size: 0.8rem; line-height: 1.5;
  }
  .footer-contact strong {
    margin-bottom: 2px; font-size: 0.82rem;
  }
  .footer-contact a {
    font-size: 0.95rem;
  }
  .mobile-call {
    position: fixed; z-index: 50; right: 0;
    bottom: 0; left: 0; display: flex;
    align-items: center; justify-content: center; height: 62px;
    gap: 10px; padding-bottom: env(safe-area-inset-bottom); border: 1px solid var(--gold);
    background: #49171e; color: #e5c58f;
    box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.28); font-size: calc(0.74rem + 2px); font-weight: 700;
    letter-spacing: 0.15em; text-decoration: none; text-transform: uppercase;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important;
  }
}
