/* ==========================================================================
   layout.css — szkielet obecny na KAŻDEJ podstronie:
   górne menu (desktop + mobile), stopka, przyklejony pasek kontaktu.
   ========================================================================== */

/* --- GÓRNE MENU -------------------------------------------------------- */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.85);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
header.scrolled{border-color:var(--line);box-shadow:0 4px 22px rgba(22,66,69,.05)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.nav__logo img{height:25px;width:auto}
.nav__links{display:flex;align-items:center;gap:22px}
.nav__links a{font-weight:500;font-size:.95rem;color:var(--ink);position:relative;padding:4px 0}
.nav__links > a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--wood);transition:width .22s var(--ease)}
.nav__links > a:hover::after{width:100%}
.nav__cta{display:flex;align-items:center;gap:10px}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px;cursor:pointer}
.burger span{width:24px;height:2px;background:var(--green);transition:.25s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Rozwijane podmenu „Konstrukcje" */
.nav__item{position:relative}
/* Niewidoczny mostek pod odnośnikiem — bez niego kursor „gubi" menu w drodze do listy. */
.nav__item::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}
.nav__toplink{display:inline-flex;align-items:center;gap:5px;font-weight:500;font-size:.95rem;color:var(--ink);padding:4px 0;cursor:pointer}
.nav__toplink svg{transition:transform .2s}
.nav__item:hover .nav__toplink svg,.nav__item:focus-within .nav__toplink svg{transform:rotate(180deg)}
.nav__dropdown{position:absolute;top:calc(100% + 12px);left:-14px;min-width:240px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(22,66,69,.13);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;z-index:70}
.nav__item:hover .nav__dropdown,.nav__item:focus-within .nav__dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.nav__dropdown a{display:block;padding:11px 14px;border-radius:8px;font-size:.92rem;color:var(--ink);transition:background .18s,color .18s}
.nav__dropdown a:hover{background:#f2f3f2;color:var(--green)}

@media(max-width:1080px){
  .nav__links,.nav__cta .btn{display:none}
  .burger{display:flex}
  .mobile{position:fixed;inset:76px 0 auto 0;background:#fff;border-bottom:1px solid var(--line);transform:translateY(-120%);transition:transform .32s var(--ease);z-index:90;padding:14px var(--gut) 28px}
  .mobile.open{transform:none}
  .mobile a{display:block;padding:15px 0;font-family:'Safiro',sans-serif;font-weight:600;font-size:1.15rem;color:var(--green);border-bottom:1px solid var(--line)}
  .mobile .btn{display:inline-flex;margin-top:20px}
}
@media(min-width:1081px){.mobile{display:none}}
.mobile a.mobile-sub{font-size:1rem;padding-left:18px;color:var(--muted);font-weight:500}

/* --- STOPKA ----------------------------------------------------------- */
footer{background:#fff;color:var(--muted);border-top:1px solid var(--line)}
.foot-head{display:grid;grid-template-columns:1.15fr .85fr;align-items:start;gap:clamp(28px,4vw,56px);padding:clamp(40px,4vw,56px) 0 clamp(28px,3vw,36px);border-bottom:1px solid var(--line)}
.foot-brand{max-width:54ch}
.foot-logo{height:30px;width:auto;margin-bottom:14px}
.foot-brand p{font-size:.9rem;color:var(--muted);line-height:1.55;margin-bottom:16px}
.foot-psb{display:block;margin-bottom:16px}
.foot-psb-text{font-size:.9rem;color:var(--muted);line-height:1.55;margin:0}
.foot-psb-logo{height:54px;width:auto;display:block;margin-bottom:8px}
.foot-social{display:flex;gap:10px;flex:none}
.foot-social a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;color:var(--green);transition:background .2s,color .2s,border-color .2s}
.foot-social a:hover{background:var(--green);color:#fff;border-color:var(--green)}
.foot-social svg{width:16px;height:16px}
/* Kolumny rozkładają się na tyle torów, ile jest bloków — wcześniej były
   cztery sztywne proporcje (1fr 1fr 1.1fr 1.15fr), więc po wyłączeniu kolumny
   „Współpraca" ostatni tor zostawał pusty i po prawej robiła się dziura.
   `auto-fit` sam dopasuje układ, gdy kolumna wróci. */
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:clamp(26px,3vw,48px);padding:clamp(32px,3.5vw,44px) 0}
.foot-col h4{font-family:'Safiro',sans-serif;font-weight:600;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--green);margin-bottom:16px}
.foot-col ul{list-style:none;display:grid;gap:10px}
.foot-col a{font-size:.92rem;color:var(--ink);transition:color .2s}
.foot-col a:hover{color:var(--wood-ink)}
.foot-col p{font-size:.9rem;color:var(--ink);line-height:1.6;margin-bottom:10px}
.foot-riser{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left}
.foot-riser p{margin-bottom:0;font-size:.78rem;color:var(--muted)}
.foot-riser img{display:block}

/* Strefa partnera — rozwijane logowania */
.foot-social-row{display:flex;align-items:center;gap:16px;margin-top:16px;flex-wrap:wrap}
.foot-login{position:relative;border-bottom:none}
.foot-login summary{display:inline-flex;align-items:center;gap:6px;list-style:none;cursor:pointer;font-size:.85rem;font-weight:600;color:var(--green);border:1px solid var(--line-2);border-radius:20px;padding:.5em 1.1em;transition:background .2s,border-color .2s}
.foot-login summary::-webkit-details-marker{display:none}
.foot-login summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s}
.foot-login[open] summary::after{transform:rotate(-135deg)}
.foot-login summary:hover{background:var(--ph);border-color:var(--wood)}
.foot-login .foot-login__links{position:absolute;top:calc(100% + 8px);left:0;display:grid;gap:2px;background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:8px;min-width:180px;box-shadow:0 8px 24px rgba(0,0,0,.08);z-index:5}
.foot-login .foot-login__links a{font-size:.85rem;padding:6px 8px;border-radius:8px}
.foot-login .foot-login__links a:hover{background:var(--ph)}

/* Wiersz z godzinami i danymi rejestrowymi (w makiecie był to style="" w HTML) */
.foot-meta{display:flex;gap:28px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);padding:14px 0 4px;border-top:1px solid var(--line)}
.foot-meta b{color:var(--ink)}
.foot-bottom{border-top:1px solid var(--line);padding:20px 0 4px;font-size:.82rem;color:#8a9392}

@media(max-width:820px){.foot-cols{grid-template-columns:1fr 1fr;gap:30px 28px}.foot-head{grid-template-columns:1fr}}
@media(max-width:480px){.foot-cols{grid-template-columns:1fr}}

/* --- PRZYKLEJONY PASEK KONTAKTU --------------------------------------- */
.sticky-cta{position:fixed;right:24px;bottom:24px;z-index:80;background:#fff;color:#164245;border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;width:228px;border:1px solid rgba(22,66,69,.15);box-shadow:0 4px 24px rgba(22,66,69,.14);transition:transform .2s}
.sticky-cta:hover{transform:translateY(-2px)}
.sticky-cta__title{font-family:'Safiro',sans-serif;font-weight:600;font-size:.9rem;color:#164245;line-height:1.3}
.sticky-cta__call{display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-family:'Safiro',sans-serif;font-size:.88rem;font-weight:600;letter-spacing:.01em;padding:.62em 1em;border-radius:100px;background:var(--wood);text-decoration:none;transition:background .18s}
.sticky-cta__call:hover{background:var(--wood-ink)}
.sticky-cta__call svg{width:15px;height:15px;flex:none}
.sticky-cta__mail{display:flex;align-items:center;justify-content:center;gap:7px;color:#164245;font-family:'Safiro',sans-serif;font-size:.85rem;font-weight:600;text-decoration:none;padding:.56em 1em;border-radius:100px;border:1.5px solid rgba(22,66,69,.2);transition:border-color .18s}
.sticky-cta__mail:hover{border-color:rgba(22,66,69,.5)}
.sticky-cta__mail svg{width:14px;height:14px;flex:none;opacity:.85}
@media(max-width:640px){.sticky-cta{flex-direction:row;align-items:center;justify-content:center;gap:10px;right:12px;bottom:12px;left:12px;width:auto;padding:10px;border-radius:100px}.sticky-cta__title{display:none}.sticky-cta__call,.sticky-cta__mail{flex:1;font-size:0;gap:0;padding:.7em;border-radius:100px}.sticky-cta__call svg,.sticky-cta__mail svg{width:17px;height:17px}}
/* Domyślnie schowany — JS dodaje .show po przewinięciu. Reguła musi być PO
   deklaracji .sticky-cta powyżej, bo nadpisuje transform i transition. */
.sticky-cta{transform:translateY(120%);transition:transform .3s var(--ease);pointer-events:none}
.sticky-cta.show{transform:translateY(0);pointer-events:auto;animation:border-glow 4s ease infinite}
@keyframes border-glow{0%,60%,100%{border-color:rgba(22,66,69,.15);box-shadow:0 4px 24px rgba(22,66,69,.14)}30%{border-color:var(--wood);box-shadow:0 4px 24px rgba(22,66,69,.14),0 0 0 3px rgba(212,132,64,.22)}}
