/* Reference-matched typography; Google Fonts families support Polish and Ukrainian. */
:root { --accent: #2b2a29; --graphite: #2b2a29; --graphite-2: #2b2a29; --yellow: #2b2a29; --yellow-soft: #f4f4f4; --paper: #f7f7f7; --muted: #2b2a29; --radius: 3px; --header-height: 88px; --shadow: 0 12px 32px rgba(43,42,41,.08); }
body { font-family: 'Inter', Arial, sans-serif; color: #2b2a29; }
.benefit__number { font-size: 1.3em; color: #ffcd11 !important; }
h1,h2,h3,h4,h5,h6 { font-family: 'DM Sans', 'Inter', Arial, sans-serif; font-weight: 500; letter-spacing: -.035em; line-height: 1.12; }
.accent,.card-number,.benefit__number,.person__role,.faq-item summary::after,.location-group a:hover,.location-group a > span:last-child,.menu-item-row > a:hover { color: #2b2a29; }
.button,.button--ghost,.button--ghost-light { border: 1px solid #2b2a29; border-radius: 0; background: #2b2a29; color: #fff; text-transform: uppercase; font-weight: 600; letter-spacing: .045em; }
.button:hover { background: #111; border-color: #111; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible { outline-color: #2b2a29; }
.skip-link { color: white; }
.site-header { background: white; }
.header-top { width: 100%; padding: 0 clamp(18px,2.4vw,48px); min-height: 88px; gap: clamp(14px,1.8vw,32px); }
.header-top > a { flex-shrink: 0; }
.header-top .logo { width: 140px; height: auto; filter: none; }
.header-tools { gap: 12px; flex-shrink: 0; margin-left: auto; }
.header-cta { padding: 0 16px; font-size: 11px; white-space: nowrap; }
.header-cta.button { background: #ffcd11; border-color: #ffcd11; color: #2b2a29; gap: 18px; }
.header-cta.button:hover { background: #2b2a29; border-color: #2b2a29; color: #fff; }
.header-cta::after { content: '→'; font-size: 24px; line-height: 1; }
.site-menu { border: 0; margin-left: 0; }
.menu-list { gap: clamp(8px,1vw,18px); }
.menu-item-row > a { font-size: 13px; font-weight: 500; letter-spacing: .02em; padding: 32px 0; }
.header-phone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 10px; border: 0; font-size: 13px; font-weight: 500; white-space: nowrap; }
.header-phone svg { width: 16px; height: 16px; flex-shrink: 0; color: #ffcd11; }
.individual__heading-dot { color: #ffcd11; }
.submenu-toggle { width: 20px; font-size: 16px; }
.submenu { border: 1px solid var(--line); border-radius: 0; max-height: calc(100dvh - 100px); overflow-y: auto; }
.submenu a { text-transform: uppercase; border-radius: 0; font-size: 13px; font-weight: 500; line-height: 1.45; }
.language-switcher summary { border-radius: 0; min-width: 45px; padding: 0 5px; }
.language-options,.language-options a { border-radius: 0; }
.hero { min-height: 0; background: #fafafa; color: #2b2a29; overflow: visible; }
.hero::before,.hero::after { display: none; }
.hero__inner { width: 100%; max-width: none; min-height: 0; display: grid; grid-template-columns: minmax(0,4fr) minmax(0,6fr); gap: 0; padding: 0; }
.hero__inner > .hero__copy { grid-column: 1; grid-row: 1; }
.hero__inner > .hero-slider { grid-column: 2; grid-row: 1 / span 2; }
.hero__inner > .hero__footer { grid-column: 1; grid-row: 2; align-self: end; width: 100%; max-width: none; padding-inline: clamp(24px,3.3vw,64px); }
.hero__copy { max-width: none; padding: clamp(42px,5vw,90px) clamp(24px,3.3vw,64px); align-self: center; }
.hero .eyebrow { color: #2b2a29; font-size: 11px; margin-bottom: 28px; letter-spacing: .06em; }
.hero h1.hero-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .04em; line-height: 1.5; margin: 20px 0; padding: 20px 0; text-transform: uppercase; }
.hero .hero-title { font-size: clamp(40px,4.5vw,72px); line-height: 1.05; margin: 0 0 28px; text-transform: none; }
.hero-title__emphasis { font-weight: 700; }
.eyebrow::before { content: none; display: none; }
.hero .hero-subtitle { color: #2b2a29; font-size: 22px; }
.hero p.hero-marketing { display: block; max-width: 560px; color: #2b2a29; font-size: 17px; line-height: 1.65; margin-bottom: 32px; }
.hero__actions { gap: 12px; }
.hero__actions .button { font-size: 11px; min-height: 48px; padding: 0 18px; }
.hero-title__dot { color: #ffcd11; }
.hero__actions .button:not(.hero-project-link) { gap: 18px; }
.hero__actions .button:not(.hero-project-link)::after { content: '→'; font-size: 24px; line-height: 1; flex-shrink: 0; }
.hero__actions .button:not(.hero-project-link) { background: #ffcd11; border-color: #ffcd11; color: #2b2a29; }
.hero__actions .button:not(.hero-project-link):hover { background: #2b2a29; border-color: #2b2a29; color: #fff; }
.hero__actions .hero-project-link { background: transparent; color: #2b2a29; border-color: transparent; gap: 16px; padding-inline: 0; }
.hero-project-link span { font-size: 26px; line-height: 1; }
.hero__actions .hero-project-link:hover { background: transparent; border-color: transparent; }
.hero-slider { position: relative; min-width: 0; min-height: 570px; align-self: stretch; background: #f4f4f4; overflow: hidden; border-radius: 120px 0 0 120px; }
.hero-slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; }
.hero-slide__image { width: 100%; height: 100%; object-fit: cover; }
.hero-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(43,42,41,.78) 0%, rgba(43,42,41,.42) 40%, rgba(43,42,41,0) 72%); pointer-events: none; }
.hero-slide__content { position: absolute; z-index: 1; left: clamp(96px,8vw,150px); right: clamp(96px,8vw,150px); bottom: 76px; color: #fff; }
.hero .hero-slide__title { max-width: 620px; margin: 0 0 24px; color: #fff; font-size: clamp(30px,2.8vw,46px); line-height: 1.1; text-transform: none; }
.hero .hero-slide__subtitle { display: inline-block; margin-top: 8px; font-size: 22px; line-height: 1.3; font-weight: 300; letter-spacing: .1em; }
.hero-slide__cta.button { gap: 16px; min-height: 48px; padding: 0 20px; font-size: 11px; background: #fff; border-color: #fff; color: #2b2a29; }
.hero-slide__cta.button:hover { background: #2b2a29; border-color: #2b2a29; color: #fff; }
.hero-slide__cta span { font-size: 24px; line-height: 1; }
.hero-slider-arrow { position: absolute; z-index: 2; top: 50%; width: 52px; height: 52px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 0; background: rgba(255,255,255,.92); color: #2b2a29; font-size: 24px; line-height: 1; cursor: pointer; transform: translateY(-50%); transition: background .2s, color .2s; }
.hero-slider-arrow:hover { background: #2b2a29; color: #fff; }
.hero-slider-arrow--prev { left: 28px; }
.hero-slider-arrow--next { right: 28px; }
.hero-slider-dots { position: absolute; z-index: 2; left: 50%; bottom: 28px; display: flex; gap: 10px; transform: translateX(-50%); }
.hero-slider-dots button { width: 10px; height: 10px; padding: 0; border: 1px solid #fff; border-radius: 0; background: transparent; cursor: pointer; transition: width .2s, background .2s; }
.hero-slider-dots button[aria-current="true"] { width: 28px; background: #fff; }
.hero-slider-arrow:focus-visible,.hero-slider-dots button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
html:not(.js) .hero-slider-arrow,html:not(.js) .hero-slider-dots { display: none; }
.hero--full { background: #fff; }
/* Fill the viewport below the sticky header (its height plus 1px border). */
.hero-slider--full { height: calc(100vh - var(--header-height) - 1px); height: calc(100svh - var(--header-height) - 1px); min-height: 520px; border-radius: 0; }
.hero-slider--full .hero-slide::after { background: linear-gradient(90deg, rgba(43,42,41,.74) 0%, rgba(43,42,41,.42) 42%, rgba(43,42,41,0) 72%), linear-gradient(to top, rgba(43,42,41,.4) 0%, rgba(43,42,41,0) 45%); }
.hero-slider--full .hero-slide__content { top: 50%; bottom: auto; max-width: 680px; transform: translateY(-50%); }
.hero .hero-slider--full .hero-slide__title { max-width: 680px; margin-bottom: 20px; font-size: clamp(36px,3.6vw,58px); letter-spacing: -.035em; }
.hero-slide__text { display: block; max-width: 560px; margin-bottom: 32px; color: #fff; font-size: 17px; line-height: 1.6; }
.hero-slide__content .hero__actions .button { font-size: 11px; min-height: 48px; padding: 0 18px; }
.hero-slider-count { font-size: 12px; min-width: 36px; text-align: center; }
.hero-slider-accessible { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.hero-slider-accessible:focus-within { width: auto; height: auto; clip-path: none; left: 16px; bottom: 16px; display: flex; gap: 8px; padding: 8px; background: #fff; color: #2b2a29; z-index: 2; }
.hero-slider-accessible button { min-width: 40px; min-height: 40px; border: 1px solid #ddd; background: #fff; cursor: pointer; }
html:not(.js) .hero-slider-accessible { display: none; }
.hero-proof-band { border-top: 1px solid #eee; background: #fff; }
.hero__proof { margin: 0 auto; padding: 32px 0; border-top: 0; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; background: transparent; }
.hero__proof > div { display: grid; grid-template-columns: 32px 1fr; gap: 0 14px; }
.hero__proof .ui-icon { grid-row: 1 / 3; align-self: center; }
.hero__proof h3 { margin-bottom: 12px; }
.hero__proof p { margin-bottom: 0; color: var(--muted); font-size: 15px; }
.ui-icon { width: 28px; height: 28px; display: inline-block; flex-shrink: 0; stroke: currentColor; }
.care-card__icon,.compare__icon { color: #2b2a29; background: #f4f4f4; border-radius: 0; }
.compare__bullet { display: block; width: 8px; height: 8px; margin-top: 9px; border-radius: 0; background: #ffcd11; }
.compare__row > div { grid-column: 2; border-left: 2px solid #ffcd11; padding-left: 28px; }
.individual__visual { isolation: isolate; }
.individual__visual::before { content: ''; position: absolute; z-index: -1; left: -18px; top: 24%; bottom: 24px; width: 36%; border-radius: 10px; background: #ffcd11; pointer-events: none; }
@media (max-width: 700px) {
  .individual__visual::before { bottom: 4px; }
  .compare__row > div { padding-left: 18px; }
}
.prefooter-cta { padding: 48px 0; background: linear-gradient(rgba(43,42,41,.9),rgba(43,42,41,.9)),url('./hero-dom-120m2.webp') center 55% / cover; color: #fff; border-bottom: 1px solid #555; }
.prefooter-cta__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.prefooter-cta h2 { margin: 0; font-size: clamp(22px,2vw,30px); line-height: 1.35; color: #fff; }
.prefooter-cta h2 span { display: block; }
.prefooter-cta__action { display: flex; gap: 28px; align-items: center; padding-left: 40px; border-left: 1px solid #777; }
.prefooter-cta__action p { margin: 0; font-size: 14px; line-height: 1.6; color: #fff; flex: 1; }
.prefooter-cta .button { flex-shrink: 0; border: 1px solid #fff; background: #2b2a29; color: #fff; }
.prefooter-cta .button:hover { background: #fff; color: #2b2a29; }
@media (max-width: 1000px) {
  .prefooter-cta__layout { grid-template-columns: 1fr; gap: 24px; }
  .prefooter-cta__action { border-left: 0; border-top: 1px solid #777; padding: 24px 0 0; }
}
@media (max-width: 600px) {
  .prefooter-cta__action { align-items: flex-start; flex-direction: column; gap: 20px; }
}
#zespol .team-layout { grid-template-columns: minmax(0,1fr) minmax(0,3fr); gap: 40px; }
#zespol .team-copy { position: static; }
#zespol .team-copy h2 { font-size: clamp(28px,2.4vw,38px); line-height: 1.18; }
#zespol .team-copy .lead { font-size: 16px; line-height: 1.6; margin-bottom: 28px; }
#zespol .team-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; align-items: stretch; }
#zespol .person { position: relative; overflow: visible; display: flex; flex-direction: column; background: #fff; border: 1px solid #eee; border-radius: 0; }
#zespol .person img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 25%; filter: none; }
#zespol .person__body { padding: 18px 16px; }
#zespol .person h3 { margin: 0 0 10px; font-size: 18px; }
#zespol .person p { font-size: 13px; line-height: 1.6; margin: 0; }
#zespol .person:not(:last-child)::after { content: '→'; position: absolute; z-index: 1; left: calc(100% - 10px); top: 100px; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #eee; border-radius: 50%; background: #fff; color: #2b2a29; font-size: 25px; pointer-events: none; }
@media (max-width: 1150px) {
  #zespol .team-layout { grid-template-columns: 1fr; gap: 32px; }
  #zespol .team-copy { max-width: 600px; }
}
@media (max-width: 700px) {
  #zespol .team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
  #zespol .person:not(:last-child)::after { display: none; }
  #zespol .person__body { padding: 16px 12px; }
  #zespol .person h3 { font-size: 17px; }
}
@media (max-width: 420px) {
  #zespol .team-grid { grid-template-columns: 1fr; }
  #zespol .person { display: grid; grid-template-columns: 40% 60%; }
  #zespol .person img { height: 100%; aspect-ratio: auto; min-height: 180px; }
}
.care::before { display: none; }
.cta,.service-area { background: #f4f4f4; color: #2b2a29; }
.section--dark { color: #2b2a29; background: #f7f7f7; }
.section--dark .eyebrow,.section--dark .lead,.process-top__aside,.process-step p,.process-step__number,.process-step__role,.step-grid li > span,.step-grid p { color: #2b2a29; }
.process-list,.process-step,.step-grid li { border-color: #ddd; }
.process-top__aside { border-color: #2b2a29; }
.project-card__meta { color: white; }
.review-card { border: 1px solid #eee; }
.reviews-nav button { color: #2b2a29; border-color: #ddd; }
.google-wordmark span { color: #2b2a29 !important; }
.persona-card:nth-child(2),.persona-card:nth-child(3) { background: #f4f4f4; }
.content-card,.paper-panel,.persona-card,.location-group,.contact-card,.field,.person,.project-card,.care-card,.review-card,.image-caption,.page-hero-image img,.designer img { border-radius: 3px; }
.contact-card { box-shadow: none; border: 1px solid #e5e5e5; }
.contact-option-icon { color: #2b2a29; background: #f4f4f4; border-radius: 0; }
.contact-page-form { color: #2b2a29; background: #f7f7f7; border: 1px solid #e5e5e5; border-radius: 3px; }
.contact-page-form .eyebrow,.contact-form-heading p,.contact-privacy,.contact-page-form .form-note { color: #2b2a29; }
.contact-page-form .field { color: #2b2a29; background: white; border-color: #ddd; }
.contact-page-form .field::placeholder { color: #666; }
.contact-page-form select option { color: #2b2a29; background: white; }
.contact-page-form .button { color: white; background: #2b2a29; border-color: #2b2a29; }
.showroom-address { border-radius: 3px; }
.footer { background: #fff; color: #2b2a29; }
.footer h3,.footer p,.footer li,.footer a,.footer-bottom,.language-external-note,.footer-languages a[aria-current] { color: #2b2a29; }
.footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer a:focus-visible { outline-color: #2b2a29; }
.footer-logo { filter: none; height: auto; padding: 0; }
.footer-bottom { border-top-color: #eee; }
.mockup-label { top: 96px; font-size: 9px; padding: 5px 8px; border-radius: 0; }
@media (min-width:1351px) and (max-width:1450px) {
  .header-top { gap: 10px; padding-inline: 20px; }
  .header-top .logo { width: 108px; }
  .menu-list { gap: 8px; }
  .header-tools { gap: 8px; }
  .header-cta { padding-inline: 10px; }
}
@media (max-width:1350px) {
  :root { --header-height: 82px; }
  .header-top { flex-wrap: wrap; min-height: 82px; gap: 14px; }
  .header-tools { order: 1; }
  .site-menu { order: 2; width: 100%; margin: 0; }
  .menu-item-row > a { padding: 16px 0; font-size: 13px; }
  .submenu-toggle { width: 48px; }
  .submenu { max-height: none; border: 0; }
  .menu-toggle { border-radius: 0 !important; }
  .hero__copy { padding: 46px 30px; }
  .hero__inner > .hero__footer { padding-inline: 30px; }
  .hero .hero-title { font-size: 44px; }
  .hero-slider { min-height: 620px; }
  .hero__proof { gap: 24px; }
}
.callback-band { padding: 56px 0; background: #f5f5f5; border-top: 1px solid #eee; border-bottom: 1px solid #eee; }
.callback-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 64px; }
.callback-layout h2 { margin: 0; font-size: clamp(25px,2.5vw,36px); line-height: 1.3; }
.callback-form { min-width: 0; }
.callback-fields { display: flex; align-items: stretch; gap: 12px; }
.callback-fields .field { flex: 1; width: 0; min-width: 0; margin: 0; background: #fff; }
.callback-fields .button { flex-shrink: 0; margin: 0; }
.callback-consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; color: #2b2a29; font-size: 12px; line-height: 1.6; cursor: pointer; }
.callback-consent input { flex-shrink: 0; width: 17px; height: 17px; margin: 3px 0 0; accent-color: #2b2a29; }
.callback-consent a { text-decoration: underline; text-underline-offset: 3px; }
.callback-status { margin: 10px 0 0; font-size: 11px; line-height: 1.5; color: #555; }
@media (max-width:900px) {
  .callback-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .callback-band { padding: 40px 0; }
}
@media (max-width:700px) {
  :root { --header-height: 72px; }
  .header-top { position: relative; min-height: 72px; padding-inline: 18px; padding-bottom: 0; }
  .header-phone { position: static; display: inline-flex; width: 44px; min-height: 44px; padding: 0; flex-shrink: 0; }
  .header-phone svg { width: 22px; height: 22px; }
  .header-phone span { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .header-top .logo { width: clamp(100px,30vw,124px); }
  .header-tools { gap: 6px; }
  .hero__inner { grid-template-columns: minmax(0,1fr); }
  .hero__copy { padding: 52px 24px 38px; }
  .hero__inner > .hero-slider { grid-column: 1; grid-row: 3; }
  .hero__inner > .hero__footer { padding-inline: 24px; }
  .hero .hero-title { font-size: clamp(36px,9vw,46px); }
  .hero p.hero-marketing { font-size: 16px; }
  .hero-slider { width: 100%; min-height: 440px; aspect-ratio: auto; border-radius: 0; }
  .hero-slide__content { left: 20px; right: 20px; bottom: 56px; }
  .hero .hero-slide__title { font-size: clamp(24px,7vw,32px); margin-bottom: 18px; }
  .hero-slider-arrow { top: 38%; width: 40px; height: 40px; font-size: 20px; }
  .hero-slider-arrow--prev { left: 12px; }
  .hero-slider-arrow--next { right: 12px; }
  .hero-slider-dots { bottom: 22px; }
  .hero-slider--full { min-height: 560px; }
  .hero-slider--full .hero-slide__content { top: auto; bottom: 56px; transform: none; }
  .hero .hero-slider--full .hero-slide__title { font-size: clamp(30px,8vw,38px); }
  .hero-slide__text { font-size: 15px; margin-bottom: 22px; }
  .hero-slider--full .hero-slider-arrow { top: 22%; }
  .hero__proof { grid-template-columns: 1fr; padding: 28px 0; gap: 24px; }
  .hero__proof > div { grid-template-columns: 32px 1fr; }
  .mockup-label { top: 78px; }
}

.split-image img { width: 100%; height: 100%; max-height: 460px; object-fit: cover; border-radius: 3px; }
.step-grid--3 { grid-template-columns: repeat(3,1fr); row-gap: 44px; }
.step-grid--3 li:nth-child(4) { padding-left: 0; border-left: 0; }
@media (max-width:1100px) { .step-grid--3 { grid-template-columns: repeat(2,1fr); } .step-grid--3 li:nth-child(4) { padding-left: 28px; border-left: 1px solid #ddd; } .step-grid--3 li:nth-child(odd) { padding-left: 0; border-left: 0; } }
@media (max-width:700px) { .step-grid--3 { grid-template-columns: 1fr; row-gap: 0; } .step-grid--3 li,.step-grid--3 li:nth-child(4) { padding: 0 0 24px; border-left: 0; } }

/* Portfolio: shared service hero, image-led grid and case study. */
.portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 28px; margin-top:36px; }
.portfolio-tile a { display:block; color:inherit; text-decoration:none; }
.portfolio-tile__image { position:relative; overflow:hidden; background:#f4f4f4; }
.portfolio-tile__image img { display:block; width:100%; aspect-ratio: 4 / 3; height:auto; object-fit:cover; transition:transform .35s; }
.portfolio-tile a:hover img { transform:scale(1.035); }
.portfolio-tile a:focus-visible { outline:3px solid #2b2a29; outline-offset:6px; }
.portfolio-tile__arrow { position:absolute; bottom:0; right:0; display:grid; place-items:center; width:48px; height:48px; background:#2b2a29; color:#fff; font-size:26px; }
.portfolio-tile__caption { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding-top:18px; }
.portfolio-tile__caption h3 { margin:0; font-size:20px; line-height:1.4; }
.portfolio-tile__number { font-size:12px; color:#ffcd11; }
.portfolio-seo { display:grid; grid-template-columns:1fr 1fr; gap:64px; margin-top:36px; }
.portfolio-seo h3 { font-size:24px; }
.portfolio-seo p,.case-intro p { line-height:1.8; }
.portfolio-seo a { color:inherit; text-underline-offset:4px; }
.case-intro { display:grid; grid-template-columns:1fr 2fr; gap:80px; margin-top:36px; }
.case-facts { margin:0; }
.case-facts div { padding:20px 0; border-top:1px solid #ddd; }
.case-facts dt { font-size:13px; color:#666; margin-bottom:8px; }
.case-facts dd { margin:0; font-size:23px; font-family:'DM Sans',sans-serif; }
.case-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:36px; }
.case-gallery figure { margin:0; }
.case-gallery figure:nth-child(5n + 1) { grid-column:1 / -1; }
.case-gallery img { display:block; width:100%; height:auto; }
.portfolio-back { display:inline-block; margin-top:36px; }
@media (max-width:1000px) { .portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .portfolio-seo { gap:32px; } .case-intro { gap:32px; } }
@media (max-width:700px) { .portfolio-grid,.portfolio-seo,.case-intro,.case-gallery { grid-template-columns:1fr; } .portfolio-grid { gap:30px; } .case-gallery { gap:16px; } .portfolio-tile__caption h3 { font-size:20px; } }
@media (prefers-reduced-motion:reduce) { .portfolio-tile__image img { transition:none; } }

.portfolio-filters { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.portfolio-filter { min-height:44px; padding:12px 24px; border:1px solid #2b2a29; background:#fff; color:#2b2a29; font:500 14px 'Inter',sans-serif; cursor:pointer; }
.portfolio-filter[aria-pressed="true"],.portfolio-filter:hover { background:#2b2a29; color:#fff; }
.portfolio-filter:focus-visible { outline:2px solid #2b2a29; outline-offset:4px; }
.portfolio-count { font-size:13px; color:#666; margin:18px 0 0; }
.portfolio-empty { padding:36px 0; }
.portfolio-filters[hidden],.portfolio-tile[hidden],.portfolio-count[hidden],.portfolio-empty[hidden] { display:none; }
@media (max-width:700px) { .portfolio-filter { flex:1 1 calc(50% - 12px); padding:12px 16px; } }

.portfolio-filters { display:grid; gap:20px; }
.portfolio-filter-group { border:0; padding:0; margin:0; min-width:0; }
.portfolio-filter-group legend { padding:0; margin-bottom:10px; font:500 13px 'Inter',sans-serif; color:#666; }
.portfolio-filter-options { display:flex; flex-wrap:wrap; gap:10px; }
@media (max-width:700px) { .portfolio-filter-options .portfolio-filter { flex:0 1 auto; } }

/* Client revision: portfolio opens with heading and grid; auxiliary filters retained. */
.portfolio-filter-group[hidden] { display:none; }
.portfolio-listing { padding-top:48px; }
.portfolio-listing h1 { font-size:clamp(34px,4vw,56px); max-width:1000px; margin-bottom:20px; }
.portfolio-listing > .container > .lead { max-width:860px; }

.vr-listing .portfolio-tile__caption h2 { margin:0; font-size:24px; line-height:1.4; }
.vr-listing .portfolio-tile p { margin:16px 0; line-height:1.7; }

/* Contact: service area and a selected set of existing location pages. */
.contact-company .contact-company-grid { margin-top:0; align-items:start; }
.contact-company-grid h2 { margin-bottom:20px; }
.contact-company-grid h3 { margin-bottom:20px; }
.contact-company-grid > div > p { line-height:1.8; margin-bottom:24px; }
.contact-location-links { display:flex; flex-wrap:wrap; gap:12px; list-style:none; margin:0; padding:0; }
.contact-location-links a { display:block; padding:12px 18px; border:1px solid #ddd; color:#2b2a29; text-decoration:none; font-size:14px; line-height:1.4; }
.contact-location-links a:hover { background:#2b2a29; border-color:#2b2a29; color:#fff; }
.contact-location-links a:focus-visible { outline:2px solid #2b2a29; outline-offset:3px; }
.contact-location-links__all { flex-basis:100%; margin-top:8px; }
.contact-location-links__all a { display:inline-block; border-color:#2b2a29; font-weight:600; }

/* Investor hub: editorial rows and focused service landings. */
.investor-hub { scroll-margin-top: 100px; }
.investor-row { padding: clamp(48px,6vw,88px) 0; background: #fff; border-top: 1px solid rgba(43,42,41,.1); }
.investor-row:nth-child(even) { background: #f7f7f7; }
.investor-row__inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(32px,5vw,80px); }
.investor-row__image { min-width: 0; }
.investor-row__image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.investor-row__copy { min-width: 0; }
.investor-row--reverse .investor-row__image { order: 2; }
.investor-row__number { display: inline-block; margin-bottom: 20px; color: #ffcd11; font-size: 18px; font-weight: 600; letter-spacing: .06em; }
.investor-row h2 { margin: 0 0 22px; font-size: clamp(28px,3vw,44px); line-height: 1.15; }
.investor-row p { max-width: 560px; margin: 0 0 28px; font-size: 16px; line-height: 1.75; }
.investor-row__link { display: inline-flex; align-items: center; gap: 20px; }
.investor-row__link span { font-size: 26px; }
.investor-checklist { margin: 24px 0 0; padding-left: 20px; }
.investor-checklist li { margin-bottom: 12px; padding-left: 6px; line-height: 1.65; }
.investor-checklist li::marker { color: #ffcd11; }
.investor-related { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.investor-related__item { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 28px; border: 1px solid rgba(43,42,41,.2); background: #fff; font-size: 19px; }
.investor-related__item:hover { border-color: #2b2a29; }
.investor-related__item > span:last-child { color: #2b2a29; font-size: 28px; }
.investor-back { display: inline-block; margin-top: 28px; }
@media (max-width:700px) {
  .investor-row__inner,.investor-related { grid-template-columns: minmax(0,1fr); }
  .investor-row--reverse .investor-row__image { order: 0; }
  .investor-row__image img { aspect-ratio: 3 / 2; }
  .investor-row__number { margin-bottom: 14px; }
  .investor-related__item { padding: 22px; }
}

/* About Remtime: real team photographs, role-based cards and showroom contact. */
.about-hero .page-hero-image { align-self: center; }
.about-hero .page-hero-image img { width: 100%; height: auto; aspect-ratio: 1920 / 1311; object-fit: contain; }
.about-manifesto { align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: clamp(28px,4vw,48px); background: #2b2a29; color: #fff; border-left: 4px solid #ffcd11; }
.about-manifesto p { margin: 0; font-family: 'DM Sans', sans-serif; font-size: clamp(25px,2.6vw,38px); font-weight: 500; line-height: 1.2; }
.about-manifesto span { color: #eee; font-size: 14px; line-height: 1.65; }
.about-team-lead { max-width: 800px; margin-bottom: 40px; }
.about-team-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; }
.about-person { min-width: 0; background: #f7f7f7; }
.about-person img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: center 24%; }
.about-person__body { padding: 24px; }
.about-person h3 { margin: 0 0 16px; font-size: 23px; line-height: 1.2; }
.about-person p { margin: 0; font-size: 14px; line-height: 1.7; }
.about-proof { max-width: 880px; }
.about-address > span { display: block; margin-bottom: 20px; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }
.about-address p { margin: 0 0 28px; font-family: 'DM Sans', sans-serif; font-size: clamp(26px,3vw,38px); line-height: 1.25; }
.about-address p.about-address__street { margin-bottom: 0; }
.about-address > a { display: block; margin-top: 12px; }
@media (max-width:1000px) { .about-team-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) {
  .about-team-grid { grid-template-columns: minmax(0,1fr); }
  .about-hero .page-hero-image { min-height: 0; }
  .about-person__body { padding: 24px; }
}

/* Homepage experiment: v2 active; v1 retained in source and hidden. v2 reuses v1 hero typography. */
.hero[hidden] { display: none !important; }
.hero .hero-title--v2 { font-size: clamp(36px,3.5vw,56px); line-height: 1.08; letter-spacing: -.02em; }
.hero-title--v2 > span { display: block; }
.hero-title--v2 .hero-title__line { margin-top: .12em; }
.hero-v2-points { max-width: 560px; margin: 0 0 32px; padding: 0; list-style: none; color: #2b2a29; font-size: 17px; line-height: 1.5; }
.hero-v2-points li { position: relative; padding-left: 22px; }
.hero-v2-points li + li { margin-top: 8px; }
.hero-v2-points li::before { content: ''; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; background: #ffcd11; }
.hero-v2-footer-line { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 20px 0; padding: 12px 0; }
.hero--v2 .hero-v2-footer-line h1.hero-eyebrow { margin: 0; padding: 0; }
.hero-v2-footer-line__divider { display: none; color: #c8c6c3; font-size: 14px; line-height: 1; }
/* Single line "H1 | Obszar działania" only where the copy column fits it; stacked lines need no divider. */
@media (min-width: 1800px) { .hero-v2-footer-line { flex-direction: row; align-items: center; gap: 16px; } .hero-v2-footer-line__divider { display: inline; } }
.hero-v2-location { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #2b2a29; font-size: 11px; font-weight: 700; letter-spacing: .04em; line-height: 1.5; text-transform: uppercase; text-decoration: none; }
.hero-v2-location__pin { flex-shrink: 0; fill: #ffcd11; stroke: #2b2a29; stroke-width: 1.6; }
.hero-v2-location__pin circle { fill: #fff; }
.hero-v2-location__arrow { font-size: 18px; font-weight: 400; line-height: 1; transition: transform .2s; }
.hero-v2-location:hover .hero-v2-location__label { text-decoration: underline; text-underline-offset: 4px; }
.hero-v2-location:hover .hero-v2-location__arrow { transform: translateX(4px); }
.hero-v2-location:focus-visible { outline: 2px solid #2b2a29; outline-offset: 5px; }
@media (max-width: 1000px) { .hero .hero-title--v2 { font-size: 40px; } }
@media (max-width: 700px) {
  .hero .hero-title--v2 { font-size: clamp(32px,8vw,42px); }
  .hero-v2-points { font-size: 16px; }
  .hero-v2-footer-line { margin: 0 0 12px; }
}

/* Hero v2: client asked for "Zobacz realizacje" in an outline frame (2026-11-02). */
.hero--v2 .hero__actions .hero-project-link { border: 1px solid #2b2a29; padding-inline: 18px; }
.hero--v2 .hero__actions .hero-project-link:hover { background: #2b2a29; border-color: #2b2a29; color: #fff; }

/* Proof band: four items with yellow numbers 01–04 instead of icons (client feedback 2026-11-02). */
.hero__proof { grid-template-columns: repeat(4,minmax(0,1fr)); }
.hero__proof > div { grid-template-columns: auto 1fr; gap: 0 12px; align-items: baseline; align-content: start; }
.hero__proof .hero__proof-number { grid-row: 1; font-family: 'DM Sans', sans-serif; font-size: 22px; font-weight: 700; line-height: 1.2; color: #ffcd11; }
.hero__proof h3 { grid-column: 2; margin-bottom: 8px; }
.hero__proof p { grid-column: 2; }
@media (max-width: 1100px) { .hero__proof { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) { .hero__proof { grid-template-columns: 1fr; } .hero__proof > div { grid-template-columns: auto 1fr; } }

/* Contact v2: one pattern on the homepage, /kontakt/ and service pages (client feedback 2026-11-02). */
.contact-v2 { padding: clamp(64px,7vw,104px) 0; background: #f4f4f4; color: #2b2a29; scroll-margin-top: var(--header-height); }
.contact-v2--page { padding-top: 32px; background: #fff; }
.contact-v2__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(32px,6vw,96px); align-items: start; }
.contact-v2--page .contact-v2__grid { margin-top: 32px; }
.contact-v2--page h1 { font-size: clamp(36px,4vw,56px); line-height: 1.08; }
.contact-v2__intro > h1,.contact-v2__intro > h2 { max-width: 620px; margin: 0 0 28px; }
.contact-v2__intro > p { max-width: 540px; margin: 0 0 16px; font-size: 18px; line-height: 1.6; }
.contact-v2__list { display: grid; gap: 18px; margin: 36px 0 0; padding: 0; list-style: none; }
.contact-v2__list a { display: inline-flex; align-items: center; gap: 16px; color: #2b2a29; text-decoration: none; }
.contact-v2__icon { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: #ffcd11; color: #2b2a29; }
.contact-v2__icon .ui-icon { width: 22px; height: 22px; }
.contact-v2__list strong { display: block; font-size: 20px; font-weight: 600; line-height: 1.3; }
.contact-v2__list strong + span { display: block; font-size: 15px; line-height: 1.5; }
.contact-v2__list a:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.contact-v2__list a:focus-visible { outline: 2px solid #2b2a29; outline-offset: 4px; }
.contact-v2 .contact-page-form { background: #fff; }
.contact-v2--page .contact-page-form { background: #f7f7f7; }
.contact-v2 .contact-form-heading h2,.contact-v2 .contact-form-heading h3 { margin: 0 0 8px; font-size: 28px; }
.contact-page-form label.contact-consent { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; font-weight: 400; line-height: 1.55; }
.contact-consent input { flex-shrink: 0; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #2b2a29; }
.contact-v2 .contact-privacy { margin: 0 0 10px; }
@media (max-width: 900px) { .contact-v2__grid { grid-template-columns: minmax(0,1fr); } }
