:root{--brand:#007BFF;}

/* Buttons */
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:1rem;font-weight:700;background:var(--brand);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:transform .2s ease,filter .2s ease,box-shadow .2s ease;}
.btn-primary:hover{filter:brightness(.96);transform:translateY(-1px);box-shadow:0 14px 34px rgba(0,0,0,.10);} 
.btn-primary:active{transform:translateY(0);} 

.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:1rem;font-weight:700;border:1px solid rgba(15,23,42,.15);background:#fff;color:#0f172a;transition:transform .2s ease,background .2s ease,box-shadow .2s ease;}
.btn-secondary:hover{background:rgba(148,163,184,.12);transform:translateY(-1px);}
.btn-secondary:active{transform:translateY(0);} 

/* Fields */
.field{width:100%;border:1px solid rgba(15,23,42,.15);border-radius:1rem;padding:.75rem .9rem;outline:none;background:#fff;transition:border-color .2s ease,box-shadow .2s ease;}
.field:focus{border-color:rgba(0,123,255,.55);box-shadow:0 0 0 4px rgba(0,123,255,.15);} 

/* Links */
.navlink{font-weight:600;color:#0f172a;opacity:.9;transition:color .2s ease,opacity .2s ease;}
.navlink:hover{color:var(--brand);opacity:1;}
.mobilelink{display:flex;padding:.65rem .75rem;border-radius:1rem;font-weight:600;color:#0f172a;background:#fff;border:1px solid rgba(15,23,42,.10);transition:background .2s ease,transform .2s ease;} 
.mobilelink:hover{background:rgba(148,163,184,.12);transform:translateY(-1px);} 

/* Cards */
.card{border:1px solid rgba(15,23,42,.12);border-radius:1.5rem;background:#fff;padding:1.25rem;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.10);border-color:rgba(0,123,255,.22);} 
.card-title{font-weight:700;font-size:1rem;}
.card-text{margin-top:.5rem;color:rgba(15,23,42,.7);font-size:.95rem;line-height:1.45;}

.logo-card{border:1px solid rgba(15,23,42,.12);border-radius:1.5rem;background:#fff;padding:1.25rem;box-shadow:0 10px 30px rgba(0,0,0,.08);display:flex;flex-direction:column;align-items:flex-start;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.logo-card:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.10);border-color:rgba(0,123,255,.22);} 

/* Small UI */
.tag{display:inline-flex;align-items:center;border:1px solid rgba(15,23,42,.12);background:#fff;border-radius:999px;padding:.45rem .75rem;font-weight:600;font-size:.85rem;color:#0f172a;}
.dot{margin-top:.35rem;height:.55rem;width:.55rem;border-radius:999px;background:var(--brand);flex:0 0 auto;}

/* FAQ */
.faq{border:1px solid rgba(15,23,42,.12);border-radius:1.25rem;background:#fff;padding:1rem 1.1rem;box-shadow:0 10px 30px rgba(0,0,0,.08);} 
.faq summary{cursor:pointer;font-weight:700;list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:after{content:'+';float:right;color:rgba(15,23,42,.55);font-weight:800;}
.faq[open] summary:after{content:'-';}
.faq p{margin-top:.75rem;color:rgba(15,23,42,.72);font-size:.95rem;line-height:1.5;}

/* Gallery */
.gallery-item{position:relative;overflow:hidden;border-radius:1.5rem;border:1px solid rgba(15,23,42,.12);background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.gallery-item:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.10);border-color:rgba(0,123,255,.22);} 
.gallery-item img{display:block;width:100%;height:220px;object-fit:cover;}
.gallery-item figcaption{position:absolute;inset:auto 0 0 0;padding:.75rem .9rem;background:linear-gradient(180deg,transparent,rgba(2,6,23,.72));color:#fff;font-weight:700;font-size:.95rem;}
@media (min-width: 640px){.gallery-item img{height:240px;}}

/* Map */
.map-wrap{border-radius:1.5rem;overflow:hidden;border:1px solid rgba(15,23,42,.12);box-shadow:0 10px 30px rgba(0,0,0,.08);background:#fff;}
.map-iframe{display:block;width:100%;height:360px;border:0;}
@media (min-width: 768px){.map-iframe{height:420px;}}

/* Scroll reveal (2026 vibe) */
.reveal{opacity:0;transform:translateY(16px) scale(.99);filter:blur(4px);transition:opacity .7s ease,transform .7s ease,filter .7s ease;}
.reveal.in-view{opacity:1;transform:none;filter:blur(0);} 
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;filter:none;transition:none;}
  .btn-primary,.btn-secondary,.card,.logo-card,.gallery-item{transition:none;}
}

.btn-outline{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.05rem;border-radius:999px;font-weight:800;background:#fff;border:1px solid rgba(15,23,42,.14);color:rgba(15,23,42,.86);box-shadow:0 10px 30px rgba(0,0,0,.06);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,color .2s ease;}
.btn-outline:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(0,0,0,.08);border-color:rgba(0,123,255,.30);color:rgba(0,123,255,.95);}

.gallery-hidden{display:none !important;}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:70;}
.lightbox-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.72);backdrop-filter:blur(8px);}
.lightbox-dialog{position:relative;max-width:1100px;margin:4vh auto;min-height:92vh;display:flex;align-items:center;justify-content:center;padding:1.25rem;}
@media (min-width: 640px){.lightbox-dialog{margin:6vh auto;min-height:88vh;}}
.lightbox-figure{position:relative;width:100%;max-width:980px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:1.5rem;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.35);}
.lightbox-img{display:block;width:100%;height:min(70vh,720px);object-fit:contain;background:rgba(2,6,23,.45);}
.lightbox-caption{padding:.85rem 1rem;color:rgba(255,255,255,.92);font-weight:800;font-size:.95rem;background:linear-gradient(180deg,rgba(2,6,23,0),rgba(2,6,23,.62));position:absolute;inset:auto 0 0 0;}
.lightbox-close{position:absolute;top:1.1rem;right:1.1rem;width:44px;height:44px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;display:grid;place-items:center;transition:transform .18s ease,background .18s ease;}
.lightbox-close:hover{transform:scale(1.05);background:rgba(255,255,255,.16);}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;display:grid;place-items:center;transition:transform .18s ease,background .18s ease;}
.lightbox-nav:hover{transform:translateY(-50%) scale(1.06);background:rgba(255,255,255,.16);}
.lightbox-prev{left:1.1rem;}
.lightbox-next{right:1.1rem;}
@media (max-width: 640px){.lightbox-prev{left:.6rem}.lightbox-next{right:.6rem}.lightbox-close{top:.6rem;right:.6rem}}
html.lightbox-open{overflow:hidden;}

/* Gallery modal (pro) */
.gallery-modal{position:fixed;inset:0;z-index:65;}
.gallery-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.52);backdrop-filter:blur(10px);}
.gallery-modal-dialog{position:relative;max-width:1180px;margin:4vh auto;max-height:92vh;height:92vh;display:flex;flex-direction:column;border-radius:1.75rem;overflow:hidden;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.78);box-shadow:0 24px 80px rgba(0,0,0,.25);}
@media (min-width: 640px){.gallery-modal-dialog{margin:5vh auto;max-height:90vh;height:90vh;}}
.gallery-modal-head{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding:1rem 1.1rem;border-bottom:1px solid rgba(15,23,42,.10);background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.78));}
.gallery-modal-actions{display:flex;align-items:center;gap:.75rem;}
.gallery-modal-close{width:44px;height:44px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:#fff;color:rgba(15,23,42,.86);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.gallery-modal-close:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(0,0,0,.08);border-color:rgba(0,123,255,.30);}
.gallery-modal-body{flex:1;padding:1rem 1.1rem;overflow:auto;-webkit-overflow-scrolling:touch;}
.gallery-modal-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));}
@media (min-width: 640px){.gallery-modal-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (min-width: 1024px){.gallery-modal-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
.gallery-modal-item{border:0;background:transparent;padding:0;text-align:left;}
.gallery-modal-thumb{position:relative;border-radius:1.25rem;overflow:hidden;border:1px solid rgba(15,23,42,.12);background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.gallery-modal-item:hover .gallery-modal-thumb{transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,0,0,.10);border-color:rgba(0,123,255,.22);}
.gallery-modal-thumb img{display:block;width:100%;height:170px;object-fit:cover;}
@media (min-width: 640px){.gallery-modal-thumb img{height:190px;}}
.gallery-modal-caption{position:absolute;inset:auto 0 0 0;padding:.65rem .8rem;color:#fff;font-weight:800;font-size:.9rem;background:linear-gradient(180deg,transparent,rgba(2,6,23,.72));}
.gallery-filter{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;}
.gallery-filter-btn{border:1px solid rgba(15,23,42,.12);background:#fff;color:rgba(15,23,42,.78);font-weight:800;font-size:.85rem;padding:.55rem .75rem;border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.05);transition:transform .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;}
.gallery-filter-btn:hover{transform:translateY(-1px);border-color:rgba(0,123,255,.26);color:rgba(0,123,255,.95);box-shadow:0 14px 34px rgba(0,0,0,.07);}
.gallery-filter-btn.is-active{border-color:rgba(0,123,255,.34);color:rgba(0,123,255,.98);background:rgba(0,123,255,.06);}
html.gallery-open{overflow:hidden;}

/* Pro polish: sticky gallery modal header */
.gallery-modal-head{position:sticky;top:0;z-index:2;}
.gallery-modal-head::after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:rgba(15,23,42,.10);}
/* Lightbox counter badge */
.lightbox-count{position:absolute;top:1.1rem;left:1.1rem;padding:.45rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;font-weight:900;font-size:.85rem;letter-spacing:-0.01em;box-shadow:0 10px 30px rgba(0,0,0,.18);}
@media (max-width: 640px){.lightbox-count{top:.6rem;left:.6rem}}

/* Anchor offset for sticky header */
section[id]{scroll-margin-top:96px;}
@media (min-width:768px){section[id]{scroll-margin-top:104px;}}

/* Nav active state */
.nav-link{position:relative;}
.nav-link.is-active{color:rgba(0,123,255,.98) !important;}
.nav-link.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;border-radius:999px;background:rgba(0,123,255,.9);}

/* Header shrink */
header.is-compact{padding-top:.35rem;padding-bottom:.35rem;}
header.is-compact .nav-wrap{padding-top:.25rem;padding-bottom:.25rem;}

#mapa{margin-top:1rem;}

/* Mobile sticky CTA */
.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;gap:.7rem;padding:.7rem .9rem;background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border-top:1px solid rgba(15,23,42,.10);}
.mobile-cta-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;border-radius:999px;font-weight:900;letter-spacing:-0.01em;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:transform .18s ease,filter .18s ease,box-shadow .18s ease;}
.mobile-cta-btn:hover{transform:translateY(-1px);box-shadow:0 16px 40px rgba(0,0,0,.10);}
.mobile-cta-primary{background:var(--brand);color:#fff;}
.mobile-cta-secondary{background:#fff;color:rgba(15,23,42,.86);border:1px solid rgba(15,23,42,.14);}
@media (min-width: 768px){.mobile-cta{display:none;}}
/* prevent content hidden behind CTA on mobile */
@media (max-width: 767px){body{padding-bottom:84px;}}

/* FAQ animation */
.faq details{overflow:hidden;border-radius:1.25rem;}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;}
.faq summary::-webkit-details-marker{display:none;}
.faq-chevron{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid rgba(15,23,42,.12);background:#fff;color:rgba(15,23,42,.72);transition:transform .2s ease, border-color .2s ease, color .2s ease, background .2s ease;}
.faq details[open] .faq-chevron{transform:rotate(180deg);border-color:rgba(0,123,255,.28);color:rgba(0,123,255,.95);background:rgba(0,123,255,.06);}

/* Click-to-call pulse */
@keyframes ctaPulse{0%,100%{transform:translateY(0);filter:brightness(1);}50%{transform:translateY(-1px);filter:brightness(1.05);}}
.cta-pulse{animation:ctaPulse 2.6s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){.cta-pulse{animation:none;}}

/* Micro reveal animations */
[data-reveal]{opacity:0;transform:translateY(10px);transition:opacity .6s ease, transform .6s ease;}
[data-reveal].is-visible{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){[data-reveal]{opacity:1;transform:none;transition:none;}}

.site-logo{height:50px;width:auto;}

/* Navbar logo (smaller) */
.site-logo-navbar {
  height: 36px;
  width: auto;
  object-fit: contain;
  display: block;
}


.site-mark-navbar{height:34px;width:auto;display:block;object-fit:contain;}

.site-logo-full{height:52px;width:auto;display:block;max-width:260px;}
@media (max-width: 768px){.site-logo-full{height:42px;max-width:220px;}}


/* Hero + Usługi — wspólne tło (kończy się przed Realizacjami) */
.hero-services-bg{
  position: relative;
  background-image:
    linear-gradient(to bottom, rgba(2,6,23,0.45) 0%, rgba(255,255,255,0.10) 55%, rgba(255,255,255,0.95) 100%),
    url("assets/hero-bg-montaz.webp");
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}
@media (max-width: 768px){
  .hero-services-bg{ background-position: center; }
}


/* Glass over photo background */
.card-glass{background: rgba(255,255,255,0.86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);}

/* Hero centering helper */
.hero-center .hero-content{max-width: 56rem; margin-left:auto; margin-right:auto;}

.hero-center-final {
  max-width: 60rem;
  margin-left: auto;
  margin-right: auto;
}

/* Jedno tło dla HERO + USŁUGI (kończy się przed Realizacjami) */
.hero-bg-wrapper {
  background-image:
    linear-gradient(to bottom, rgba(2,6,23,0.40) 0%, rgba(255,255,255,0.12) 55%, rgba(255,255,255,0.96) 100%),
    url("assets/hero-bg-hyundai.jpg");
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
}
@media (max-width: 768px){
  .hero-bg-wrapper{ background-position: center; }
}
