/* iPoUsterce 2.0.0 — sekcje strony głównej: Realizacje, Opinie, Blog (+ archiwum realizacji). */
.ipo100-section{margin-top:56px;margin-bottom:56px;font-family:Manrope,Arial,sans-serif}
.ipo100-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 22px}
.ipo100-eyebrow{margin:0 0 8px;font:850 11.5px/1.4 Manrope,Arial,sans-serif;letter-spacing:.17em;color:#8692a0}
.ipo100-head h2{margin:0;font:700 clamp(28px,3vw,39px)/1.1 Manrope,Arial,sans-serif;letter-spacing:-.05em;color:#102747}
.ipo100-head h2 span{color:#4381ad}
.ipo100-sub{max-width:560px;margin:10px 0 0;color:#6f7e92;font-size:14.5px;line-height:1.55}
.ipo100-more{flex:none;display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:12px;background:#0c244b;color:#fff!important;font:780 13.5px/1 Manrope,Arial,sans-serif;text-decoration:none!important;white-space:nowrap;transition:background .2s}
.ipo100-more:hover{background:#000}
.ipo100-empty{padding:22px;border:1px dashed #cfd9e6;border-radius:16px;background:#fff;color:#6f7c8b;text-align:center}

/* ---- Realizacje ---- */
.ipo100-filters{display:flex;gap:6px;margin:0 0 16px;overflow-x:auto;scrollbar-width:none}
.ipo100-filters::-webkit-scrollbar{display:none}
.ipo100-filters button{flex:none;padding:9px 15px;border:1px solid #e4e9f0;border-radius:999px;background:#fff;color:#2b3643;font:720 13px/1 Manrope,Arial,sans-serif;cursor:pointer;transition:all .15s}
.ipo100-filters button:hover{border-color:#c9d6e6}
.ipo100-filters button.is-active{border-color:#0c244b;background:#0c244b;color:#fff}
.ipo100-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:230px;grid-auto-flow:dense;gap:12px}
.ipo100-shot{position:relative;display:block;overflow:hidden;margin:0;padding:0;border:0;border-radius:18px;background:#e9eef4;cursor:zoom-in;text-align:left;box-shadow:0 10px 30px rgba(12,36,75,.06)}
.ipo100-shot.is-big{grid-column:span 2;grid-row:span 2}
.ipo100-shot[hidden]{display:none}
.ipo100-shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.ipo100-shot:hover img{transform:scale(1.05)}
.ipo100-shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,20,40,.78))}
.ipo100-shot-cap{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;display:flex;flex-direction:column;gap:3px;color:#fff}
.ipo100-shot-cap small{align-self:flex-start;padding:4px 8px;border-radius:7px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);font-size:10.5px;font-weight:800;letter-spacing:.04em}
.ipo100-shot-cap strong{font-size:15px;font-weight:800;line-height:1.3}
.ipo100-shot.is-big .ipo100-shot-cap strong{font-size:21px;letter-spacing:-.02em}
.ipo100-shot-cap em{font-style:normal;font-size:12px;font-weight:650;color:#c9d6e8}
.ipo100-shot-count{position:absolute;top:12px;right:12px;z-index:1;padding:5px 9px;border-radius:999px;background:rgba(8,20,40,.55);color:#fff;font-size:11px;font-weight:800}
.ipo100-shot:focus-visible{outline:3px solid #62a5ff;outline-offset:3px}
.ipo100-lightbox{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;gap:12px;padding:30px;background:rgba(6,14,28,.92);backdrop-filter:blur(6px)}
.ipo100-lightbox[hidden]{display:none}
.ipo100-lightbox figure{display:flex;flex-direction:column;align-items:center;max-width:min(1100px,100%);max-height:100%;margin:0}
.ipo100-lightbox img{display:block;max-width:100%;max-height:calc(100vh - 170px);border-radius:14px;object-fit:contain}
.ipo100-lightbox figcaption{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:14px;color:#fff;text-align:center;font-family:Manrope,Arial,sans-serif}
.ipo100-lightbox figcaption small{font-size:11.5px;font-weight:800;letter-spacing:.08em;color:#8fb8ef;text-transform:uppercase}
.ipo100-lightbox figcaption strong{font-size:19px;font-weight:800}
.ipo100-lightbox figcaption span{max-width:640px;font-size:14px;line-height:1.5;color:#c3d2e6}
.ipo100-lightbox button{flex:none;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.ipo100-lightbox button:hover{background:rgba(255,255,255,.22)}
.ipo100-lb-close{position:absolute;top:18px;right:18px}
.ipo100-lightbox.is-single .ipo100-lb-prev,.ipo100-lightbox.is-single .ipo100-lb-next{visibility:hidden}

/* ---- Opinie ---- */
.ipo100-reviews-box{position:relative;overflow:hidden;padding:38px 40px 30px;border-radius:28px;background:radial-gradient(900px 300px at 90% -20%,rgba(42,134,255,.35),transparent 60%),linear-gradient(135deg,#0c244b,#0f2f5c 60%,#0a1d3a);color:#fff;box-shadow:0 30px 70px rgba(12,36,75,.22)}
.ipo100-head.is-light h2{color:#fff}
.ipo100-head.is-light h2 span{color:#7db6ff}
.ipo100-head.is-light .ipo100-eyebrow{color:#8fb8ef}
.ipo100-score{display:flex;align-items:center;gap:12px;padding:10px 16px 10px 14px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.07)}
.ipo100-score>strong{font-size:34px;font-weight:850;letter-spacing:-.04em;line-height:1}
.ipo100-score>span{display:flex;flex-direction:column;gap:4px}
.ipo100-score small{font-size:12px;font-weight:650;color:#b8c8de}
.ipo100-score a{margin-left:6px;padding-left:14px;border-left:1px solid rgba(255,255,255,.16);color:#fff;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}
.ipo100-stars{position:relative;display:inline-block;width:92px;height:16px;background:rgba(255,255,255,.25);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6-4.9-4.6 6.6-.8z'/%3E%3C/svg%3E") 0 0/18.4px 16px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6.1 6.6.8-4.9 4.6 1.3 6.6L12 17.3l-5.9 3.3 1.3-6.6-4.9-4.6 6.6-.8z'/%3E%3C/svg%3E") 0 0/18.4px 16px repeat-x}
.ipo100-stars::after{content:"";position:absolute;inset:0;width:var(--r,100%);background:#f5b53d}
.ipo100-rv-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/3);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px 2px 6px;outline:none}
.ipo100-rv-track::-webkit-scrollbar{display:none}
.ipo100-rv{display:flex;flex-direction:column;gap:14px;scroll-snap-align:start;margin:0;padding:22px;border-radius:20px;background:#fff;color:#151b24;box-shadow:0 14px 34px rgba(0,0,0,.18)}
.ipo100-rv .ipo100-stars{background:#e3e7ed}
.ipo100-rv blockquote{flex:1 1 auto;margin:0;padding:0;border:0;font-size:15px;line-height:1.6;color:#2b3643;quotes:"„" "”"}
.ipo100-rv blockquote::before{content:open-quote;margin-right:1px;color:#4381ad;font-weight:800}
.ipo100-rv blockquote::after{content:close-quote;color:#4381ad;font-weight:800}
.ipo100-rv footer{display:flex;align-items:center;gap:11px;padding-top:12px;border-top:1px solid #eef1f5}
.ipo100-av{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#2a86ff,#0c244b);color:#fff;font-weight:850;font-size:16px}
.ipo100-rv footer>span:nth-child(2){display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}
.ipo100-rv footer strong{font-size:14px;font-weight:800}
.ipo100-rv footer small{font-size:12px;color:#6f7c8b}
.ipo100-rv footer a{color:#8692a0;text-decoration:none;font-weight:800}
.ipo100-rv-nav{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.ipo100-rv-nav button{width:44px;height:44px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:24px;line-height:1;cursor:pointer}
.ipo100-rv-nav button:hover{background:rgba(255,255,255,.18)}

/* ---- Blog ---- */
.ipo100-blog-grid{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:14px}
.ipo100-post{display:grid;grid-template-columns:170px minmax(0,1fr);overflow:hidden;border:1px solid #e9edf3;border-radius:20px;background:#fff;color:#151b24!important;text-decoration:none!important;box-shadow:0 12px 30px rgba(19,53,89,.05);transition:transform .25s,box-shadow .25s}
.ipo100-post:hover{transform:translateY(-3px);box-shadow:0 22px 46px rgba(19,53,89,.10)}
.ipo100-post.is-lead{grid-row:1 / span 3;grid-template-columns:1fr;grid-template-rows:minmax(240px,1fr) auto}
.ipo100-post-img{position:relative;display:block;overflow:hidden;background:#e8f0f7}
.ipo100-post-img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.ipo100-post:hover .ipo100-post-img img{transform:scale(1.05)}
.ipo100-post-ph{display:grid;place-items:center;width:100%;height:100%;min-height:150px;background:radial-gradient(400px 200px at 80% 0%,rgba(42,134,255,.25),transparent 60%),linear-gradient(135deg,#eef4fb,#dfe9f5);color:#4381ad}
.ipo100-post-ph svg{width:44px;height:44px}
.ipo100-post-img em{position:absolute;left:12px;top:12px;padding:5px 9px;border-radius:8px;background:#fff;color:#0c244b;font-style:normal;font-size:11px;font-weight:800;box-shadow:0 4px 12px rgba(0,0,0,.08)}
.ipo100-post-body{display:flex;flex-direction:column;gap:6px;padding:16px 18px}
.ipo100-post.is-lead .ipo100-post-body{padding:22px 24px 24px;gap:9px}
.ipo100-post-body small{font-size:11.5px;font-weight:650;color:#8a96a7}
.ipo100-post-body strong{font-size:15px;font-weight:800;line-height:1.35;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ipo100-post.is-lead .ipo100-post-body strong{font-size:clamp(20px,1.8vw,25px);letter-spacing:-.03em;-webkit-line-clamp:3}
.ipo100-post-ex{font-size:13px;line-height:1.55;color:#5d6a78;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ipo100-post.is-lead .ipo100-post-ex{font-size:14.5px;-webkit-line-clamp:3}
.ipo100-post-more{margin-top:auto;font-size:12.5px;font-weight:800;color:#176ee9}

/* ---- Archiwum realizacji ---- */
.ipo100-archive-card{padding:24px;border:1px solid #e4e9f0;border-radius:24px;background:#fff;box-shadow:0 26px 70px rgba(12,36,75,.10)}
.ipo100-archive-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:20px 22px;border-radius:18px;background:#f3f7fd}
.ipo100-archive-cta div{display:flex;flex-direction:column;gap:3px}
.ipo100-archive-cta strong{font-size:17px;font-weight:850;color:#151b24}
.ipo100-archive-cta span{font-size:14px;color:#5d6a78}
.ipo100-archive-cta .ipo98-btn{width:auto;padding:0 24px}

@media(max-width:1100px){.ipo100-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.ipo100-rv-track{grid-auto-columns:calc((100% - 16px)/2)}}
@media(max-width:900px){
 .ipo100-section{margin-top:40px;margin-bottom:40px}
 .ipo100-head{flex-direction:column;align-items:flex-start;gap:14px}
 .ipo100-more{width:100%;justify-content:center;min-height:48px;box-sizing:border-box}
 .ipo100-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px;gap:8px}
 .ipo100-shot{border-radius:14px}
 .ipo100-shot-cap{left:12px;right:12px;bottom:10px}
 .ipo100-shot-cap strong{font-size:13px}
 .ipo100-shot.is-big .ipo100-shot-cap strong{font-size:17px}
 .ipo100-shot-cap em{display:none}
 .ipo100-reviews-box{padding:24px 18px 20px;border-radius:22px}
 .ipo100-score{width:100%;box-sizing:border-box;flex-wrap:wrap}
 .ipo100-rv-track{grid-auto-columns:86%}
 .ipo100-rv-nav{display:none}
 .ipo100-blog-grid{grid-template-columns:1fr;grid-template-rows:none}
 .ipo100-post.is-lead{grid-row:auto}
 .ipo100-post{grid-template-columns:120px minmax(0,1fr)}
 .ipo100-post.is-lead{grid-template-rows:200px auto}
 .ipo100-lightbox{padding:12px;gap:4px}
 .ipo100-lightbox button{width:40px;height:40px;font-size:24px}
 .ipo100-lb-prev,.ipo100-lb-next{position:absolute;bottom:20px}
 .ipo100-lb-prev{left:calc(50% - 50px)}.ipo100-lb-next{right:calc(50% - 50px)}
 .ipo100-lightbox img{max-height:calc(100vh - 230px)}
 .ipo100-archive-card{padding:14px;border-radius:18px}
 .ipo100-archive-cta{flex-direction:column;align-items:stretch}
 .ipo100-archive-cta .ipo98-btn{width:100%}
}

/* 2.0.2 — Opinie w jasnej, stonowanej wersji (jak reszta strony głównej) */
.ipo100-reviews-box{background:linear-gradient(180deg,#f7f9fc 0%,#f1f5fa 100%);color:#151b24;border:1px solid #e6ebf1;box-shadow:0 18px 50px rgba(19,53,89,.05)}
.ipo100-head.is-light h2{color:#102747}
.ipo100-head.is-light h2 span{color:#4381ad}
.ipo100-head.is-light .ipo100-eyebrow{color:#8692a0}
.ipo100-score{border-color:#e4e9f0;background:#fff;box-shadow:0 6px 18px rgba(19,53,89,.05)}
.ipo100-score>strong{color:#0c244b}
.ipo100-score small{color:#6f7c8b}
.ipo100-score a{border-left-color:#e4e9f0;color:#176ee9}
.ipo100-score .ipo100-stars{background:#e3e7ed}
.ipo100-rv{border:1px solid #e9edf3;box-shadow:0 10px 28px rgba(19,53,89,.06)}
.ipo100-rv-nav button{border-color:#dbe3ec;background:#fff;color:#0c244b;box-shadow:0 4px 12px rgba(19,53,89,.06)}
.ipo100-rv-nav button:hover{background:#f3f6fa}

/* 2.1.0 — przewijany pasek opinii */
.ipo102-ticker{display:flex;align-items:center;gap:0;height:46px;background:#f7f9fc;border-bottom:1px solid #e9edf3;color:#2b3643!important;text-decoration:none!important;font-family:Manrope,Arial,sans-serif;overflow:hidden;position:relative;z-index:5}
.ipo102-lead{flex:none;display:flex;align-items:center;gap:7px;height:100%;padding:0 18px 0 max(20px,calc((100vw - 1320px)/2 + 32px));background:#fff;border-right:1px solid #e9edf3;box-shadow:8px 0 18px rgba(247,249,252,.9);position:relative;z-index:2}
.ipo102-lead svg{width:17px;height:17px}
.ipo102-lead strong{font-size:15px;font-weight:850;color:#0c244b}
.ipo102-lead i,.ipo102-item i{font-style:normal;color:#f5a623;letter-spacing:1px;font-size:12px}
.ipo102-lead span{font-size:12.5px;font-weight:700;color:#6f7c8b;white-space:nowrap}
.ipo102-viewport{flex:1 1 auto;min-width:0;overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent);mask:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent)}
.ipo102-track{display:inline-flex;white-space:nowrap;animation:ipo102scroll 60s linear infinite;will-change:transform}
.ipo102-dup{display:inline-flex}
.ipo102-ticker:hover .ipo102-track,.ipo102-ticker:focus-visible .ipo102-track{animation-play-state:paused}
.ipo102-item{display:inline-flex;align-items:center;gap:8px;padding:0 28px;font-size:13.5px;font-weight:600;color:#33404d;border-right:1px solid #e3e8ef}
.ipo102-item b{font-weight:800;color:#0c244b}
.ipo102-more{flex:none;padding:0 max(20px,calc((100vw - 1320px)/2 + 32px)) 0 16px;font-size:13px;font-weight:800;color:#176ee9;white-space:nowrap;background:#f7f9fc;position:relative;z-index:2}
.ipo102-ticker:hover .ipo102-more{text-decoration:underline}
@keyframes ipo102scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:900px){
 .ipo102-ticker{height:42px}
 .ipo102-lead{padding:0 12px 0 14px;gap:5px}
 .ipo102-lead span,.ipo102-lead i{display:none}
 .ipo102-more{display:none}
 .ipo102-item{padding:0 20px;font-size:12.5px}
 .ipo102-track{animation-duration:45s}
}
@media(prefers-reduced-motion:reduce){.ipo102-track{animation:none}.ipo102-viewport{overflow-x:auto}.ipo102-dup{display:none}}
/* 2.1.1 — spokojniejszy, cieńszy pasek */
.ipo102-ticker{height:38px;background:#fafbfd}
.ipo102-lead{gap:6px;padding-right:14px;background:transparent;box-shadow:none;border-right:1px solid #e9edf3}
.ipo102-lead svg{width:15px;height:15px}
.ipo102-lead strong{font-size:13.5px}
.ipo102-item{font-size:13px;font-weight:550;color:#5d6a78}
.ipo102-item i{font-size:11px}
.ipo102-item b{font-weight:700;color:#2b3643}
.ipo102-viewport{margin-right:max(0px,calc((100vw - 1320px)/2 + 16px))}
@media(max-width:900px){.ipo102-ticker{height:36px}.ipo102-viewport{margin-right:0}}
