/* ol – pozycjonowaniestronolkusz.pl: menu, przejścia, równe siatki, media, mobile */
:root{interpolate-size:allow-keywords}
html{scroll-padding-top:110px;-webkit-tap-highlight-color:transparent}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* ---------- nagłówek: zawsze przyklejony ---------- */
header.hd-d,header.hd-m{position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:80!important;box-shadow:0 8px 24px -14px rgba(0,0,0,.55)}
.hd-d :focus-visible,.hd-m :focus-visible{outline-color:#FF8A1F}

/* ---------- menu główne (desktop) ---------- */
.ol-nav{flex:1 1 auto;display:flex;justify-content:center;align-items:center;gap:2px;min-width:0}
.ol-nav>a,.ol-dd-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:5px;padding:10px 11px;border-radius:4px;font:600 15px/1.2 'Rethink Sans',system-ui,sans-serif;color:rgba(255,255,255,.82);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color .2s ease,color .2s ease}
.ol-nav>a:hover,.ol-dd:hover>.ol-dd-btn,.ol-dd.open>.ol-dd-btn,.ol-dd:focus-within>.ol-dd-btn{background:rgba(255,255,255,.1);color:#fff}
.ol-nav>a[aria-current=page],.ol-dd.is-active>.ol-dd-btn{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 0 -2px 0 #FF8A1F}
.ol-nav>a:focus-visible,.ol-dd-btn:focus-visible{outline:2px solid #FF8A1F;outline-offset:2px}
.ol-dd{position:relative;display:flex}
.ol-dd-btn svg{transition:transform .25s ease;opacity:.75}
.ol-dd:hover .ol-dd-btn svg,.ol-dd.open .ol-dd-btn svg,.ol-dd:focus-within .ol-dd-btn svg{transform:rotate(180deg)}
.ol-dd-menu{position:absolute;top:calc(100% + 12px);left:50%;min-width:280px;transform:translate(-50%,8px);background:#fff;border:1px solid #D8DCE1;border-top:3px solid #C2410C;border-radius:8px;box-shadow:0 22px 48px -16px rgba(22,25,29,.45);padding:8px;display:grid;gap:2px;opacity:0;visibility:hidden;transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s;z-index:90}
.ol-dd-menu::before{content:"";position:absolute;left:0;right:0;top:-16px;height:16px}
.ol-dd:hover>.ol-dd-menu,.ol-dd.open>.ol-dd-menu,.ol-dd:focus-within>.ol-dd-menu{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .2s ease,transform .2s ease,visibility 0s}
.ol-dd-menu a{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:6px;text-decoration:none;color:#16191D;font-family:'Rethink Sans',system-ui,sans-serif}
.ol-dd-menu a strong{font-size:15px;font-weight:600}
.ol-dd-menu a small{font-size:13px;line-height:1.35;color:#6E6E6E;font-weight:400}
.ol-dd-menu a:hover,.ol-dd-menu a:focus-visible{background:#FFF0E3;color:#C2410C}
.ol-dd-menu a[aria-current=page]{background:#FFF0E3;color:#C2410C}

/* ---------- menu mobilne: pod przyklejonym nagłówkiem, zawsze na ekranie ---------- */
.hd-m{position:sticky}
#menu-mobilne{position:absolute!important;left:0;right:0;top:100%;max-height:calc(100vh - 93px)!important;max-height:calc(100dvh - 93px)!important;overflow-y:auto!important;overscroll-behavior:contain;box-shadow:0 24px 40px -18px rgba(0,0,0,.6);padding-bottom:calc(24px + env(safe-area-inset-bottom))!important}
#menu-mobilne:not([hidden]){animation:ol-menu .28s cubic-bezier(.2,.7,.2,1) both}
@keyframes ol-menu{from{opacity:0;transform:translateY(-8px)}}
#menu-mobilne .ol-mlinks{display:flex;flex-direction:column}
#menu-mobilne .ol-mlinks a{transition:color .2s ease,background-color .2s ease}
#menu-mobilne .ol-mlinks a:hover{color:#fff!important}
#menu-mobilne .ol-mlinks a[aria-current=page] span{color:#FF8A1F}
@media (max-height:760px){#menu-mobilne .ol-mlinks a{min-height:48px!important;font-size:17px!important}}
@media (min-width:700px) and (max-width:1239px){#menu-mobilne .ol-mlinks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);grid-auto-flow:column;column-gap:40px}}
.hd-m [aria-controls="menu-mobilne"]{transition:background-color .2s ease,border-color .2s ease}
.hd-m [aria-controls="menu-mobilne"][aria-expanded="true"]{background:#C2410C!important;border-color:#C2410C!important;color:#fff!important}
html.ol-open{overflow:hidden}
html.ol-open .mbar{display:none!important}

/* ---------- media: proporcje, płynne pojawianie się ---------- */
:where(img,video){object-fit:contain}
:where(img[width][height]){height:auto}
img{transition:opacity .45s ease}
img.ol-wait{opacity:0}
iframe,video{max-width:100%}

/* ---------- równe siatki (bez „sierot” w ostatnim wierszu) ---------- */
.ol-eq:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}
.ol-eq:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))!important}
.ol-eq:has(>:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media (max-width:1100px){.ol-eq:has(>:nth-child(4):last-child),.ol-eq:has(>:nth-child(6):last-child){grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:699px){.ol-eq:has(>:nth-child(3):last-child){grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:560px){.ol-eq:has(>:nth-child(4):last-child),.ol-eq:has(>:nth-child(6):last-child){grid-template-columns:minmax(0,1fr)!important}}

/* stopka: dane firmy z adresem e-mail mają pełną szerokość na tablecie */
footer.ft>div.ol-eq.ol-eq.ol-eq{grid-template-columns:repeat(3,minmax(0,1fr))!important}
@media (max-width:1023px){footer.ft>div.ol-eq.ol-eq.ol-eq{grid-template-columns:repeat(2,minmax(0,1fr))!important}footer.ft>div.ol-eq.ol-eq.ol-eq>address{grid-column:1/-1}}
@media (max-width:519px){footer.ft>div.ol-eq.ol-eq.ol-eq{grid-template-columns:minmax(0,1fr)!important}}

/* ---------- kafelki z liczbami: zawsze w boxach ---------- */
.ol-kpi{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.ol-kpi>span{min-width:0;padding:12px 10px!important}
.ol-kpi>span>span:first-child{font-size:clamp(18px,1.4vw + 12px,24px)!important;white-space:nowrap;line-height:1.15}
.ol-kpi>span>span:last-child{display:block;line-height:1.3}

/* ---------- tabele na telefonie: karty zamiast przesuwania w bok ---------- */
@media (max-width:699px){
  .ol-tw{overflow:visible!important}
  .ol-rt{min-width:0!important}
  .ol-rt thead{display:none}
  .ol-rt,.ol-rt tbody,.ol-rt tr,.ol-kv,.ol-kv tbody,.ol-kv tr{display:block;width:100%!important}
  .ol-rt tr,.ol-kv tr{padding:12px 16px;border-bottom:1px solid #E3E6EA}
  .ol-rt tr:last-child,.ol-kv tr:last-child{border-bottom:0}
  .ol-rt td,.ol-rt th,.ol-kv td,.ol-kv th{display:block;width:auto!important;padding:3px 0!important;border:0!important;text-align:left!important}
  .ol-rt tbody th,.ol-rt td:first-child:not([data-label]){font-weight:700;color:#16191D;font-size:17px}
  .ol-rt td[data-label]::before{content:attr(data-label);display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#6E6E6E;margin-top:6px}
  .ol-kv td:first-child,.ol-kv th:first-child{font-size:14px;font-weight:600;color:#6E6E6E}
}

/* ---------- ZASADA: treść mieści się w boxach, brak przewijania w poziomie ---------- */
@supports (overflow:clip){html,body{overflow-x:clip}}
p,li,dd,dt,td,th,h1,h2,h3,h4,h5,h6,blockquote,figcaption,label,address,summary,small,strong,span{overflow-wrap:break-word}
a[href^="tel:"],p a:not([href^="mailto:"]),li a:not([href^="mailto:"]),td a:not([href^="mailto:"]),address a:not([href^="mailto:"]){overflow-wrap:anywhere}
/* adres e-mail: zawsze w jednej linii, czcionka zmniejsza się, gdy brakuje miejsca */
a[href^="mailto:"]{white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important;max-width:100%}
[style*="display: grid"]>*,[style*="display:grid"]>*,[style*="display: flex"]>*{min-width:0}
input,select,textarea,table,pre{max-width:100%}
@media (max-width:480px){a[href^="mailto:"]{font-size:min(1em,4vw)}}
.ol-err{margin:0;padding:10px 14px;border-radius:4px;background:#FDECEC;color:#9B1C1C;font-size:15px;line-height:1.45}

/* ---------- płynne przejścia między podstronami ---------- */
@view-transition{navigation:auto}
header.hd-d,header.hd-m{view-transition-name:ol-header}
::view-transition-old(root){animation:ol-out .18s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:ol-in .34s cubic-bezier(0,0,.2,1) both}
@keyframes ol-out{to{opacity:0}}
@keyframes ol-in{from{opacity:0;transform:translateY(10px)}}
html.ol-fb main,html.ol-fb footer{animation:ol-fade .34s ease backwards}
html.ol-leaving main,html.ol-leaving footer,html.ol-leaving aside{opacity:0;transition:opacity .15s ease}
@keyframes ol-fade{from{opacity:0}}
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
  #menu-mobilne,html.ol-fb main,html.ol-fb footer{animation:none!important}
  .ol-dd-menu,html.ol-leaving main,img{transition:none!important}
}