 :root {
            --menu-color:rgba(0,160,227,1);
            --menu-font:rgba(255,255,255,.75);
            --form-bg:#fafafa;
            --primary-color: #007bff;
            --dark-color: #666;
            --light-color: #f4f4f4;
            --header-height: 90px;
            --font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }

* {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

body {
    
    font-family: "Open Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-size:18px;
    font-style: normal;
    font-variation-settings:"wdth" 100;
    width:100%;
    height: 100vh;
    margin: 0;
    padding:calc(var(--header-height) + 0px) 0 0 0;}

.fade-in {opacity: 0;transform: translateY(20px);transition: opacity 1s ease-out, transform .5s ease-out;}
.fade-in.visible {opacity: 1;transform: translateY(0);}

.clearfix{display:block;width:100%;height:30px;clear:both;}

p{font-size:14px;color:#444;line-height:1.55em;}
.lead{font-size:1.05em; color:#666;}
.lead2{font-size:.9em; line-height:1.5em; color:#666;}
.small{font-size:.75em;}
#footer .small{font-size:.6em;}
span{color:#999;}

.text-center{text-align: center;}
.text-justify{text-align: justify; padding:0 15px; }

h2{line-height:1em;}
h2.title{padding-bottom:0px;margin-bottom:5px;font-weight:400;font-size:1.25em;color:#666;letter-spacing:-1px;}
h2.subtitle{padding-bottom:0px;margin-bottom:5px;font-weight:400;font-size:.9em;color:#666;}
h2.subtitle hr{width:69%; border-color:#bbb;border-style:dashed;padding:0;margin:10px 0 15px;}


.header {
    z-index: 9999;
    position:fixed;
    top:0px;
    left:0px;
    width:100%;
    height:var(--header-height);
    align-content: center;
    background:var(--menu-color);
    backdrop-filter: blur(4px);    
    box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}
.nav-menu {
    display: flex;
    list-style: none;
    gap: 2em; /* Odstęp między linkami */
}
.nav-link {
    color:var(--menu-font);
    text-decoration: none;
    transition: color 0.3s ease;
}
.nav-link:hover {
    color: #fff;
}
.nav-logo {
    font-weight: bold;
    text-decoration: none;
}
.hamburger {
    display: none; /* Ukryty na desktopie */
    cursor: pointer;
}
.bar {
    display: block;
    width: 25px;
    height: 3px;
    margin: 5px auto;
    background:#fff;
    transition: all 0.3s ease-in-out;
}
@media(max-width: 768px) {
    .hamburger {
        display: block; /* Pokazuje hamburgera na mobile */
    }

    /* Aktywny hamburger (animacja do "X") */
    .hamburger.active .bar:nth-child(2) {
        opacity: 0;
    }
    .hamburger.active .bar:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }
    .hamburger.active .bar:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    .nav-menu {
        position: fixed;
        left: -100%; /* Ukrywa menu poza ekranem */
        top: 90px; /* Wysokość nagłówka */
        flex-direction: column;
        background:rgba(0,160,227,.95);
        width: 100%;
        text-align: center;
        transition: 0.3s;
        gap: 0;
    }

    .nav-item {
        margin: 16px 0;
    }

    .nav-menu.active {
        left: 0; /* Pokazuje menu */
    }
}




section{width:100%; min-height:25vh;padding:0 0 50px;}
.container{width:100%; max-width:1200px; margin: 0 auto; padding:0 15px;}

.lazy {opacity: 0;transition: opacity 0.5s ease;}
.lazy.loaded {opacity: 1;}

img{width:100%;}
.nav-logo img{height:80px;width:auto;}
#realizacje img{margin-bottom: 7.5px;}
#uslugi img{margin-bottom: 12.5px;}
#o-mnie img{padding: 2.5px; border:1px dashed #ddd;}


#error404{width:100%; height:80vh; align-content: center; align-items: center; }
img.error404{width:100%; max-width:275px; margin-left:50%;transform: translate(-137.5px, 0);}

#map{width:100%;height:50vh;border-bottom:4px solid #fff; box-shadow:0 2px 10px rgba(0,0,0,.15);}

.col-small p{padding:0 5px;}


#contact{
    background:var(--dark-bg);
    color: var(--dark-color);}

#contact h2 {
    color: var(--dark-color);}

#contact .container {
    max-width: 700px;
    text-align: center;}

#contact-form {
    margin-top: 10px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 5px;}

.form-group {
    text-align: left;
}

.form-group label {
    display: block;
    margin: 10px 0 5px;
    font-size: 15px;
    font-weight: 300;
    color: var(--dark-color);
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 8px;
    border: 1px dashed #bbb;
    border-radius: 5px;
    background-color:var(--form-bg);
    color: var(--dark-color);
    font-family: var(--font-body);
    font-size: .9em;
    outline: none;
    transition: border-color 0.3s ease;
}

option{color:#999;}

.form-group input::placeholder,
.form-group select::placeholder,
.form-group textarea::placeholder {
/*    color: rgba(255,255,255,.2);*/
    color: #999;
}

.form-group input:focus,
.form-group textarea:focus {
    border-color: var(--secondary-color);
    box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.5);
}

.form-group textarea {
    resize: vertical;
}

#contact-form button {
    display: inline-block;
    float:left;
    width:calc(50% - 20px);
    margin:0 10px;
    padding: 10px;
    font-size: 1em;
    border: 1px dashed #bbb;
    cursor: pointer;
    border-radius: 5px;
    background-color: var(--secondary-color);
    color: var(--grafit);
    font-family: var(--font-heading);
    font-weight: 500;
    transition: background-color 0.3s ease;
}

#contact-form button:hover {
    background-color: var(--accent-color);}


#slider .carousel-inner{
    width: 100%;
    height: 100%;
    padding-top: 0; /* wymusza kwadrat */
    overflow: hidden;
  aspect-ratio: 1 / 1;
}

.square-container {
    position: relative;
    width: 100%;
    height: 100%;
    padding-top: 0; /* wymusza kwadrat */
    overflow: hidden;
  aspect-ratio: 1 / 1;
    margin-bottom: 10px;
  }
  .square-content {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
  }
  .carousel-item {
    height: 100% !important;
  }
  .square-content img,
  .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

a img.slider-btn{box-shadow:0 2px 5px rgba(0,0,0,1);}
a img.slider-btn:hover{border:1px solid #f00;}

