:root{
      --brand:#0b3b85;   /* granat */
      --accent:#1b98d1;  /* jasny niebieski */
      --ink:#000;        /* czarny */
      --bg:#fff;         /* biały */
    }
body{ color:var(--ink); background:var(--bg); }

a{text-decoration: none !important;}

p{font-size: 1.1em; }

    .topbar{ background:#0b3b85; }
    .topbar, .topbar a{ color:#fff !important; }
    .topbar .icon{ color:#fff; }

    .btn-cta{
      background:var(--accent) !important; color:#fff !important; border:none;
      border-radius:999px; padding:.35rem 1rem; font-weight:700 !important;
    }
    .btn-cta:hover{ background:var(--accent); color:#fff; }


    /* NAVBAR */
    .navbar{ background:#fff; border-bottom:1px solid rgba(0,0,0,.06); }
    .navbar-brand img{ height:58px; width:auto; }
    .nav-link{ font-weight:600; color:var(--brand); }
    .nav-link:hover, .nav-link:focus{ color:var(--accent); }
    .navbar-toggler{ border-color:rgba(0,0,0,.15) }
    .navbar-toggler:focus{ box-shadow:0 0 0 .15rem rgba(27,152,209,.25) }
    .sticky-top{ position:sticky; top:0; z-index:1020; }

    /* Drobne poprawki responsywne */
    @media (max-width: 991.98px){
      .topbar .col-cta{ margin-top:.5rem }
      .topbar .contacts{ justify-content:center; gap:1rem }
    }

    /* BOX: efekt hover + parallax zoom */
.box{ position:relative; height:35vh; border-radius:12px; overflow:hidden; }
.bg-img{ background-size:100%; background-position:center; transition:background-size .8s ease, transform .6s ease; }
.bg-img:hover{ background-size:110%; transform:translateY(-4px); }

.box .overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:24px; color:#fff;
  background:linear-gradient(0deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.2) 60%, rgba(0,0,0,.15) 100%);
  transition:background .3s ease;
}
.bg-img:hover .overlay{ background:linear-gradient(0deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.28) 60%, rgba(0,0,0,.2) 100%); }


.bg-img:hover .overlay h3{ transform:translateY(0); opacity:1; }
.bg-img:hover .overlay p{ transform:translateY(0); opacity:1; transition-delay:.08s; }

/* Wejście przy przewijaniu */
.reveal{ opacity:0; transform:translateY(18px); }
.reveal.in-view{ opacity:1; transform:none; transition:opacity .6s cubic-bezier(.2,.6,.2,1), transform .6s cubic-bezier(.2,.6,.2,1); }


.section-about{ position:relative; background:rgba(27,152,209,.08); }
.section-about::before{
  content:""; position:absolute; left:0; right:0; top:-60px; height:120px;
  background:rgba(27,152,209,.08); transform:skewY(-3deg);
}

.about-photo{ border-radius:12px; box-shadow:0 18px 45px rgba(11,59,133,.35); border:6px solid #fff; }

.btn-brand{ background:#0b3b85; color:#fff; border-radius:12px; padding:.8rem 1.25rem; font-weight:700; }
.btn-brand:hover{ background:#1b98d1; color:#fff; }

/* Partners – ruchome loga w prawo (kolory brandu zachowane) */
.partners{ background:#fff; }
.logos-marquee{
  position:relative; overflow:hidden; mask-image:linear-gradient(90deg,transparent 0, #000 8%, #000 92%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0, #000 8%, #000 92%, transparent 100%);
}
.logos-marquee .track{
  display:flex; align-items:center; gap:80px;
  width:max-content; padding:10px 0;
  animation:scroll-right 12s linear infinite;
}
.logos-marquee img{
  height:80px; width:auto; filter:grayscale(1) opacity(.85);
  transition:filter .2s, transform .2s;
}
.logos-marquee img:hover{ filter:none; transform:scale(1.03); }

/* kierunek w prawo */
@keyframes scroll-right{
  from{ transform:translateX(-20%); }
  to  { transform:translateX(0%); }
}

/* dostępność */
@media (prefers-reduced-motion: reduce){
  .logos-marquee .track{ animation:none; }
}

/* Sekcja ikon — U nas załatwisz wszystko! */
.sec-services{ background:rgba(27,152,209,.08); }
.svc{ display:flex; flex-direction:column; align-items:center; gap:.6rem; padding:18px }
.svc i{ font-size:48px; color:#000; opacity:.8; transition:transform .2s, color .2s, opacity .2s }
.svc-title{ font-weight:600; color:#000; }
.svc:hover i{ transform:translateY(-4px); color:#1b98d1; opacity:1 }

/* HERO */
.hero-banner{
  min-height: 70vh;
  background: linear-gradient(rgba(11,59,133,.72), rgba(11,59,133,.72)),
              url('../img/hero.jpg') center/cover no-repeat;
}
.btn-hero{
  background:#0b3b85; color:#fff; border:none; padding:.9rem 1.2rem; font-weight:700;
  border-radius:.5rem;
}
.btn-hero:hover{ background:#1b98d1; color:#fff; }
@media (max-width: 768px){
  .hero-banner{ min-height: 56vh; }
  .hero-banner h1{ font-size:2rem; }
  .hero-banner h2{ font-size:1.125rem; }
}

.sec-testimonials{ background:#0b3b85; color: #fff;}
.tcard{
  background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:16px;
  padding:24px; text-align:left; box-shadow:0 12px 28px rgba(11,59,133,.08);
}
.tcard .stars{ color:#1b98d1; font-size:1.1rem; margin-bottom:.5rem }
.tcard .quote{ font-size:1.05rem; color:#000; opacity:.9; margin-bottom:1rem }
.tcard .person{ display:flex; align-items:center; gap:.75rem }
.tcard .person img{ width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.12) }
.tcard .person .name{ font-weight:700; color:#0b3b85 }
.tcard .person .role{ color:#000; opacity:.6; font-size:.95rem }

.site-footer{ background:#0b3b85; }
.site-footer a{ color:#fff; text-decoration:none; }
.site-footer a:hover{ color:#1b98d1; }
.footer-logo{ max-width:70%; }
.footer-links li{ margin-bottom:.5rem; }
.social-link{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  background:#1b98d1; color:#fff; font-size:1.2rem;
  transition:.3s;
}
.social-link:hover{ background:#fff; color:#0b3b85; }
/* (opcjonalnie) otwieranie dropdownu na hover na desktopie */
@media (min-width: 992px){
  .navbar .dropdown:hover .dropdown-menu{ display:block; margin-top:0; }
}


.contact-sec{ background:#f4f5f7; } /* delikatne tło */
.contact-rule{ width:90px; height:3px; background:#1b98d1; opacity:1; border:0; }
.contact-form .form-control{
  border-radius:.6rem; border:1px solid #d9dee7;
}
.contact-form .form-control:focus{
  border-color:#1b98d1; box-shadow:0 0 0 .2rem rgba(27,152,209,.15);
}
.btn-contact{
  background:#0b3b85; color:#fff; font-weight:700; padding:.7rem 1.2rem; border-radius:.6rem;
}
.btn-contact:hover{ background:#1b98d1; color:#fff; }

/* Page hero */
.page-hero{
  position:relative; min-height:40vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; text-align:center;
}
.page-hero__bg{
  position:absolute; inset:0; background-size:cover; background-position:center;
  filter:brightness(.75);
}
.page-hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(11,59,133,.25), rgba(11,59,133,.25));
}
.page-hero h1{
  position:relative; z-index:1; margin:0; color:#fff; font-weight:800; letter-spacing:.5px;
  font-size:clamp(2rem, 5vw, 4rem); text-shadow:0 3px 18px rgba(0,0,0,.35);
}
