/* Compact portfolio overview; the full story lives on each project page. */
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
.portfolio-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}
.portfolio-card{min-width:0;background:#fff;border:1px solid #dbe1e4;border-radius:12px;transition:border-color .2s,box-shadow .2s}
.portfolio-card-link{height:100%;display:flex;flex-direction:column;border-radius:12px;color:#172632}
.portfolio-card-link:focus-visible{outline:3px solid #c5001b;outline-offset:5px}
.portfolio-card-photo{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:11px 11px 0 0;background:#e6e9e9}
.portfolio-card-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.portfolio-card-photo.belfeld-przeszklenie img{object-position:50% 65%}
.portfolio-card-photo.venlo-drzwi img{object-position:50% 55%}
.portfolio-photo-tag{position:absolute;top:20px;left:20px;max-width:calc(100% - 40px);background:#fff;color:#253440;padding:9px 13px;border-radius:5px;font-size:13px;font-weight:700;line-height:1.45;box-shadow:0 2px 8px #0000000a}
.portfolio-card-copy{display:flex;flex-direction:column;flex:1;min-width:0;padding:26px 28px 22px}
.portfolio-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;justify-content:space-between;font-size:14px;line-height:1.5;color:#455562;margin:0 0 15px}
.portfolio-card-meta>span:last-child{color:#b60019;font-weight:700}
.profile-page .portfolio-card h3,.portfolio-page .portfolio-card h3{font-size:clamp(26px,2.15vw,34px);line-height:1.18;letter-spacing:-.6px;color:#172632;margin:0 0 13px;max-width:480px}
.portfolio-card-scope{font-size:17px;line-height:1.6;color:#455562;margin:0 0 24px}
.portfolio-card-cta{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #dde3e6;padding-top:18px;margin-top:auto;color:#172632;font-size:16px;font-weight:700;line-height:1.5}
.portfolio-card-cta>span{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:#faf0f1;color:#c5001b;font-size:26px;transition:background .2s,color .2s}
.portfolio-more{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:36px;padding-top:28px;border-top:1px solid #dbe1e4}
.portfolio-more>p{font-size:17px;line-height:1.7;color:#455562}
.portfolio-more .button{font-size:16px}
.portfolio-intro{padding-top:20px;padding-bottom:48px}
.portfolio-intro h1{font-size:clamp(42px,4.9vw,76px);line-height:1.08;letter-spacing:-1.8px}
.portfolio-intro>p:last-child{font-size:20px;line-height:1.7;color:#455562;max-width:780px;margin-top:25px}
.portfolio-collection{padding-bottom:90px}
@media(hover:hover){.portfolio-card:hover{border-color:#abb7bf;box-shadow:0 10px 30px #17263209}.portfolio-card-link:hover .portfolio-card-photo img{transform:scale(1.025)}.portfolio-card-link:hover .portfolio-card-cta>span{background:#c5001b;color:white}}
@media(max-width:1100px){.portfolio-grid--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-grid{gap:24px}.portfolio-card-copy{padding:24px}.profile-page .portfolio-card h3,.portfolio-page .portfolio-card h3{font-size:29px}}
@media(max-width:680px){.portfolio-grid,.portfolio-grid--compact{grid-template-columns:1fr;gap:28px}.portfolio-card-photo{aspect-ratio:4/3}.portfolio-card-copy{padding:23px 22px 19px}.portfolio-card-meta{font-size:13px;gap:7px 12px}.portfolio-photo-tag{top:15px;left:15px;font-size:12px;padding:8px 11px}.profile-page .portfolio-card h3,.portfolio-page .portfolio-card h3{font-size:29px}.portfolio-card-scope{font-size:16px;margin-bottom:22px}.portfolio-card-cta{font-size:16px}.portfolio-more{align-items:stretch;flex-direction:column;margin-top:28px;gap:20px}.portfolio-more .button{justify-content:space-between}.portfolio-intro{padding-top:10px;padding-bottom:32px}.portfolio-intro>p:last-child{font-size:18px;margin-top:20px}.portfolio-collection{padding-bottom:55px}}
@media(prefers-reduced-motion:reduce){.portfolio-card,.portfolio-card-photo img,.portfolio-card-cta>span{transition:none}}
/* Partner profile: a small editorial selection and a separate gallery entry. */
.profile-case-studies .portfolio-card-photo{aspect-ratio:16/9}
.profile-case-studies .portfolio-card-copy{padding:23px 26px 19px}
.profile-case-studies .portfolio-card-scope{margin-bottom:20px}
.case-carousel{min-width:0}
.case-carousel .case-carousel-track{position:relative;display:flex;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;padding:4px 0 12px;margin:-4px 0 -12px}
.case-carousel-track>.portfolio-card{flex:0 0 calc((100% - 30px)/2);scroll-snap-align:start;scroll-snap-stop:always}
.case-carousel[data-count="1"] .case-carousel-track{justify-content:center}
.case-carousel-ready .case-carousel-track{scrollbar-width:none}
.case-carousel-ready .case-carousel-track::-webkit-scrollbar{display:none}
.case-carousel-track:focus-visible{outline:2px solid #c5001b;outline-offset:6px;border-radius:12px}
.case-carousel .case-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:22px}
.case-carousel-controls[hidden]{display:none!important}
.case-carousel-status{margin:0;color:#455562;font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums}
.case-carousel-arrows{display:flex;gap:10px}
.case-carousel-arrows button{display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #d3dadd;border-radius:50%;background:white;color:#172632;font:26px/1 Arial,sans-serif;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.case-carousel-arrows button:disabled{color:#a6afb4;border-color:#e5e9eb;background:#f6f7f7;cursor:default}
.case-carousel-arrows button:focus-visible{outline:3px solid #c5001b;outline-offset:4px}
@media(hover:hover){.case-carousel-arrows button:not(:disabled):hover{background:#c5001b;border-color:#c5001b;color:white}}
@media(max-width:1100px){.case-carousel .case-carousel-track{gap:24px}.case-carousel-track>.portfolio-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:680px){.case-carousel .case-carousel-track{gap:20px}.case-carousel-track>.portfolio-card{flex-basis:100%}.case-carousel .case-carousel-controls{margin-top:20px}.case-carousel-status{font-size:14px}}
@media(prefers-reduced-motion:reduce){.case-carousel-arrows button{transition:none}}
.portfolio-gallery-entry{display:grid;grid-template-columns:170px minmax(0,1fr) auto;align-items:center;gap:32px;background:#f3f1ed;border:1px solid #e5e1db;border-radius:12px;padding:35px 38px;margin-top:32px;scroll-margin-top:30px}
.portfolio-gallery-stack{position:relative;height:118px}
.portfolio-gallery-stack img{position:absolute;top:0;left:0;width:108px;height:112px;object-fit:cover;border:4px solid #fff;border-radius:7px;box-shadow:0 4px 12px #17263212;transform:rotate(-8deg)}
.portfolio-gallery-stack img+img{top:6px;left:55px;transform:rotate(8deg)}
.profile-page .portfolio-gallery-copy .eyebrow{font-size:12px;color:#6b5145;letter-spacing:1px;margin:0 0 12px}
.profile-page .portfolio-gallery-copy h3{font-size:32px;line-height:1.2;margin:0 0 10px;letter-spacing:-.5px}
.portfolio-gallery-copy>p:last-child{font-size:16px;line-height:1.65;color:#45515a;max-width:470px}
.profile-page .portfolio-gallery-entry .button{font-size:16px;gap:16px;padding:18px 24px;white-space:nowrap}
.portfolio-gallery-entry .gallery-count{display:grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:50%;background:#ffffff30;font:700 14px/1 Arial,sans-serif}
/* Full portfolio: photo browsing, independent of case-study coverage. */
.gallery-toolbar{display:flex;justify-content:flex-end;border-top:1px solid #dbe1e4;padding:20px 0}
.gallery-status{font-size:15px;line-height:1.5;color:#455562;white-space:nowrap}
.partner-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}
.partner-gallery-grid--many{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-photo-item{min-width:0;margin:0}
.gallery-photo{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:10px;background:#e6e9e9}
.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.gallery-photo.belfeld-przeszklenie img{object-position:50% 65%}
.gallery-photo-action{position:absolute;bottom:16px;right:16px;display:grid;place-items:center;width:42px;height:42px;background:#fff;color:#172632;font:26px/1 Arial,sans-serif;border-radius:50%;box-shadow:0 2px 12px #17263216}
.gallery-photo-caption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px 18px;padding-top:13px;font-size:14px;line-height:1.5;color:#52616a}
.gallery-load-more{text-align:center;margin-top:42px}
.gallery-load-more .button{font-size:16px}
[data-partner-gallery] [hidden],#partner-gallery-lightbox [hidden]{display:none!important}
.portfolio-page :focus-visible{outline:3px solid #c5001b;outline-offset:5px}
#partner-gallery-lightbox{width:min(1120px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:0;border:0;border-radius:12px;overflow:auto;background:#fff;color:#172632}
#partner-gallery-lightbox::backdrop{background:#101820dc}
.gallery-lightbox-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 22px;background:#172632;color:#fff}
.gallery-lightbox-bar p{font-size:14px;line-height:1.5;color:#fff}
.gallery-lightbox-close{width:42px;height:42px;flex:none;background:#ffffff16;color:#fff;border:1px solid #ffffff50;border-radius:50%;font:400 29px/1 Arial,sans-serif}
.gallery-lightbox-stage{position:relative;background:#101820;display:flex;align-items:center;justify-content:center;min-height:180px}
.gallery-lightbox-stage img{width:100%;height:min(55dvh,600px);object-fit:contain}
.gallery-lightbox-prev,.gallery-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid #d3dce2;background:white;color:#172632;font:400 26px/1 Arial,sans-serif;box-shadow:0 2px 10px #0002}
.gallery-lightbox-prev{left:20px}.gallery-lightbox-next{right:20px}
.gallery-lightbox-info{display:flex;justify-content:space-between;align-items:start;gap:28px;padding:23px 28px 26px}
.portfolio-page #gallery-lightbox-title{font-size:29px;line-height:1.2;letter-spacing:-.5px;margin:0 0 10px}
#gallery-lightbox-caption{font-size:15px;line-height:1.6;color:#455562;max-width:780px}
.gallery-lightbox-counter{white-space:nowrap;font-size:15px;color:#455562;padding-top:4px}
@media(hover:hover){.gallery-photo:hover img{transform:scale(1.025)}}
@media(max-width:1100px){.portfolio-gallery-entry{grid-template-columns:135px minmax(0,1fr);gap:25px;padding:30px}.portfolio-gallery-stack{grid-row:1/3;align-self:center}.portfolio-gallery-stack img{width:90px;height:105px}.portfolio-gallery-stack img+img{left:40px}.portfolio-gallery-entry .button{grid-column:2;justify-self:start}.profile-page .portfolio-gallery-copy h3{font-size:30px}.partner-gallery-grid--many{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.profile-case-studies .portfolio-card-photo{aspect-ratio:4/3}.profile-case-studies .portfolio-card-copy{padding:23px 22px 19px}.portfolio-gallery-entry{grid-template-columns:1fr;gap:22px;padding:28px 24px}.portfolio-gallery-stack{display:none}.portfolio-gallery-entry .button{grid-column:1;width:100%;justify-content:space-between;white-space:normal}.profile-page .portfolio-gallery-copy h3{font-size:29px}.portfolio-gallery-copy>p:last-child{font-size:17px}.gallery-toolbar{padding:18px 0}.partner-gallery-grid,.partner-gallery-grid--many{grid-template-columns:1fr;gap:34px}.gallery-photo-action{bottom:13px;right:13px}.gallery-photo-caption{font-size:13px}#partner-gallery-lightbox{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:9px}.gallery-lightbox-bar{padding:10px 14px}.gallery-lightbox-bar p{font-size:12px}.gallery-lightbox-stage img{height:44dvh}.gallery-lightbox-prev,.gallery-lightbox-next{width:40px;height:40px;font-size:23px}.gallery-lightbox-prev{left:10px}.gallery-lightbox-next{right:10px}.gallery-lightbox-info{padding:20px 18px;gap:14px}.portfolio-page #gallery-lightbox-title{font-size:24px}.gallery-lightbox-counter{font-size:13px}#gallery-lightbox-caption{font-size:14px}}
@media(prefers-reduced-motion:reduce){.gallery-photo img{transition:none}}
/* Individual case studies. */
.case-kicker{display:flex;flex-wrap:wrap;gap:10px 20px;font:700 13px/1.5 Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#b30019;margin-bottom:22px}
.case-kicker>span+span{color:#43515e}
.case-page{--muted:#455360;--red:#d0001b}
.case-page .site-crumb{font-size:14px;color:#526170}
.case-back{display:inline-flex;font-size:15px;font-weight:700;margin-bottom:38px;color:#364755}
.case-intro{padding-top:22px;padding-bottom:52px}
.case-page .case-intro h1{font-size:clamp(42px,4.9vw,76px);line-height:1.08;max-width:1050px;letter-spacing:-2px}
.case-intro-lead{max-width:830px;font-size:21px;line-height:1.7;margin-top:27px;color:#3b4a57}
.case-meta{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:32px;border-top:1px solid #d6dde1;margin:38px 0 0;padding-top:27px}
.case-meta dt{font-size:14px;font-weight:700;color:#52606c;margin-bottom:8px}
.case-meta dd{margin:0;font-size:18px;line-height:1.5;color:#182632}
.case-meta a{text-decoration:underline;text-decoration-color:#b4bdc4;text-underline-offset:4px}
.case-story{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,1fr);gap:clamp(35px,5vw,80px);align-items:start;padding-bottom:90px}
.case-documentation{margin:0}
.case-photo-open{position:relative;width:100%;padding:0;display:block;border-radius:12px;overflow:hidden;background:#e9eded}
.case-photo-open img{width:100%;height:auto}
.case-photo-open>span{position:absolute;bottom:20px;right:20px;background:#fff;border-radius:5px;padding:10px 16px;font-size:14px;color:#172632;font-weight:700}
.case-documentation figcaption{font-size:15px;line-height:1.65;color:#465461;padding-top:16px}
.case-story-copy{padding-top:8px}
.case-page .case-story-copy h2{font-size:clamp(32px,3vw,47px);line-height:1.12;margin-bottom:25px}
.case-story-copy>p:not(.case-kicker),.case-detail-list p{font-size:18px;line-height:1.8;color:#34424f}
.case-detail-list{margin:30px 0}
.case-detail-list>div{border-top:1px solid #d7dde2;padding:23px 0}
.case-page .case-detail-list h3{font-size:24px;line-height:1.3;margin-bottom:12px}
.case-takeaway{background:#f5f1ed;padding:66px 0}
.case-takeaway>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.case-takeaway h2{font-size:46px;line-height:1.12}
.case-takeaway p:not(.case-kicker){font-size:19px;line-height:1.8;color:#36444e}
.case-takeaway .button{margin-top:27px;font-size:16px}
.case-next{padding-block:70px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.case-next h2{font-size:40px}
.case-next-link{position:relative;padding:25px 62px 25px 0;border-top:1px solid #cfd7dd;border-bottom:1px solid #cfd7dd}
.case-next-link>span:first-child{display:block;font-size:15px;color:#465666;margin-bottom:12px}
.case-next-link>strong{display:block;font-family:Gothic,Arial,sans-serif;font-size:28px;line-height:1.3}
.case-next-arrow{position:absolute;right:5px;top:50%;transform:translateY(-50%);font-size:32px;color:#c4001a}
.case-page :focus-visible{outline:3px solid #d0001b;outline-offset:5px}
@media(max-width:1000px){.case-story{gap:32px}.case-meta{gap:24px}.case-meta dd{font-size:16px}.case-takeaway>.wrap,.case-next{gap:36px}}
@media(max-width:760px){.case-story{grid-template-columns:1fr;gap:36px;padding-bottom:55px}.case-story-copy{max-width:650px}.case-documentation{max-width:650px}.case-intro-lead{font-size:19px}.case-meta{grid-template-columns:1fr 1fr;gap:22px}.case-meta>div:last-child{grid-column:1/-1}.case-takeaway>.wrap,.case-next{grid-template-columns:1fr;gap:28px}.case-takeaway{padding:48px 0}.case-next{padding-block:48px}.case-page .case-intro h1{font-size:48px}.case-takeaway h2{font-size:40px}}
@media(max-width:480px){.case-kicker{font-size:12px;letter-spacing:.6px;margin-bottom:18px;gap:8px 16px}.case-back{font-size:14px;line-height:1.6;margin-bottom:28px}.case-page .case-intro h1{font-size:40px;letter-spacing:-1.2px}.case-intro{padding-top:8px;padding-bottom:34px}.case-intro-lead{font-size:18px}.case-meta{grid-template-columns:1fr;gap:20px;margin-top:28px}.case-meta>div:last-child{grid-column:auto}.case-meta dd{font-size:17px}.case-story-copy>p:not(.case-kicker),.case-detail-list p{font-size:17px}.case-page .case-story-copy h2{font-size:35px}.case-photo-open>span{font-size:13px;bottom:12px;right:12px}.case-documentation figcaption{font-size:14px}.case-takeaway p:not(.case-kicker){font-size:18px}.case-takeaway h2{font-size:36px}.case-next-link>strong{font-size:26px}}

/* Home: selected editorial stories, followed by the network photo library. */
.home-case-studies .portfolio-card-photo{aspect-ratio:16/9}
.home-case-studies .portfolio-card h3{font-size:clamp(26px,2.15vw,34px);line-height:1.18;letter-spacing:-.6px;color:#172632;margin:0 0 13px;max-width:480px}
.home-case-studies .portfolio-card-scope{font-size:16px;line-height:1.65}
.home-case-studies .portfolio-gallery-copy .eyebrow{font-size:12px;color:#6b5145;letter-spacing:1px;margin:0 0 12px}
.home-case-studies .portfolio-gallery-copy h3{font-size:32px;line-height:1.2;margin:0 0 10px;letter-spacing:-.5px}
.home-case-studies .portfolio-gallery-entry .button{font-size:15px;gap:20px;padding:18px 24px;white-space:nowrap}
.gallery-partner-link{font-weight:700;color:#172632;text-underline-offset:4px}
.gallery-partner-link:hover{text-decoration:underline;color:#b60019}
.gallery-lightbox-partner{display:inline-block;margin-top:14px;font-size:15px}
@media(max-width:680px){.home-case-studies .portfolio-card h3{font-size:27px}.home-case-studies .portfolio-card-meta{align-items:flex-start;flex-direction:column;gap:4px}.home-case-studies .portfolio-gallery-copy h3{font-size:29px}.home-case-studies .portfolio-gallery-entry .button{white-space:normal;font-size:15px}.home-case-studies .section-heading{display:block}.home-case-studies .section-lead{margin-top:18px;max-width:none}}
