* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #0c0c0c;
    color: #f3f0eb;
    font-family: "Montserrat", sans-serif;
    overflow-x: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font-family: inherit;
}

:root {

    --black: #000000;
    --dark: #111111;
    --dark-light: #181818;
    --white: #f3f0eb;
    --gray: #999999;
    --gold: #b8a17a;

}


/* PRELOADER */

.preloader {

    position: fixed;

    inset: 0;

    background: #0c0c0c;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-direction: column;

    z-index: 9999;

    transition: opacity 0.5s ease,
                visibility 0.5s ease;

}

.preloader.hide {

    opacity: 0;

    visibility: hidden;

}

.loader-logo {

    font-family: "Cormorant Garamond", serif;

    font-size: 26px;

    letter-spacing: 5px;

}

.loader-line {

    width: 100px;

    height: 1px;

    background: var(--gold);

    margin-top: 20px;

    animation: loader 1.2s infinite;

}

@keyframes loader {

    0% {
        transform: scaleX(0);
    }

    50% {
        transform: scaleX(1);
    }

    100% {
        transform: scaleX(0);
    }

}


/* CONTAINER */

.container {

    width: min(1200px, 90%);

    margin: auto;

}


/* NAVBAR */

.navbar {

    position: fixed;

    top: 0;

    left: 0;

    width: 100%;

    height: 90px;

    padding: 0 5%;

    display: flex;

    align-items: center;

    justify-content: space-between;

    z-index: 1000;

    transition: 0.4s ease;

}

.navbar.scrolled {

    height: 75px;

    background: rgba(12, 12, 12, 0.95);

    backdrop-filter: blur(15px);

}

.logo {

    display: flex;

    flex-direction: column;

    font-family: "Cormorant Garamond", serif;

    letter-spacing: 3px;

}

.logo span {

    font-size: 20px;

    font-weight: 600;

}

.logo small {

    font-family: "Montserrat", sans-serif;

    font-size: 8px;

    letter-spacing: 5px;

    color: var(--gold);

}

.nav-menu {

    display: flex;

    gap: 22px;

}

.nav-menu a {

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 2px;

    color: #c7c7c7;

    transition: 0.3s ease;

}

.nav-menu a:hover {

    color: var(--gold);

}

.nav-button {

    border: 1px solid rgba(255,255,255,0.4);

    padding: 14px 22px;

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: 2px;

}

.nav-button:hover {

    background: white;

    color: black;

}

.menu-toggle {

    display: none;

    background: none;

    border: none;

    cursor: pointer;

}

.menu-toggle span {

    display: block;

    width: 28px;

    height: 1px;

    background: white;

    margin: 6px;

}


/* HERO */

.hero {

    height: 100vh;

    min-height: 700px;

    position: relative;

    display: flex;

    align-items: center;

    overflow: hidden;

}

.hero-background {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background: #1A1A1A;

    color: #666;

    font-size: 12px;

    letter-spacing: 3px;

}

.hero-background span {

    position: absolute;

    z-index: 1;

}

.hero-overlay {

    position: absolute;

    inset: 0;

    background: linear-gradient(
        90deg,
        rgba(0,0,0,0.9),
        rgba(0,0,0,0.55),
        rgba(0,0,0,0.8)
    );

}

.hero-content {

    position: relative;

    z-index: 2;

    width: min(1200px, 90%);

    margin: auto;

    padding-top: 80px;

}

.hero-subtitle {

    font-size: 11px;

    letter-spacing: 4px;

    color: var(--gold);

    margin-bottom: 25px;

}

.hero h1 {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(58px, 8vw, 115px);

    line-height: 0.9;

    font-weight: 400;

}

.hero h1 em,
h2 em {

    color: var(--gold);

    font-style: italic;

}

.hero-description {

    max-width: 470px;

    color: #c3c3c3;

    line-height: 1.8;

    margin: 35px 0;

    font-size: 14px;

}

.hero-buttons {

    display: flex;

    gap: 15px;

    flex-wrap: wrap;

}

.button {

    display: inline-block;

    padding: 17px 28px;

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: 2px;

    transition: 0.3s ease;

    cursor: pointer;

}

.button-primary {

    background: var(--white);

    color: var(--black);

    border: none;

}

.button-primary:hover {

    background: var(--gold);

    color: white;

    transform: translateY(-3px);

}

.button-outline {

    border: 1px solid rgba(255,255,255,0.5);

}

.button-outline:hover {

    background: white;

    color: black;

}

.hero-scroll {

    position: absolute;

    bottom: 35px;

    right: 5%;

    display: flex;

    align-items: center;

    gap: 15px;

    color: #aaa;

    font-size: 9px;

    text-transform: uppercase;

    letter-spacing: 3px;

}

.scroll-line {

    width: 70px;

    height: 1px;

    background: var(--gold);

}


/* SEKCJE */

.section {

    padding: 140px 0;

}

.section-label {

    color: var(--gold);

    font-size: 10px;

    letter-spacing: 4px;

    margin-bottom: 25px;

}

.section-header {

    max-width: 650px;

    margin-bottom: 70px;

}

.section-header h2,
.about-content h2,
.contact-info h2 {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(45px, 5vw, 70px);

    font-weight: 400;

    line-height: 0.95;

    margin-bottom: 25px;

}

.section-header p:not(.section-label) {

    color: var(--gray);

    line-height: 1.8;

    font-size: 14px;

}


/* ABOUT */

.about {

    background: var(--dark);

}

.about-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 100px;

    align-items: center;

}

.about-image {

    height: 650px;

    position: relative;

    background: #1C1C1C;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #666;

    font-size: 11px;

    letter-spacing: 2px;

}

.about-image::after {

    content: "";

    position: absolute;

    inset: 20px -20px -20px 20px;

    border: 1px solid var(--gold);

}

.about-content p:not(.section-label) {

    color: var(--gray);

    line-height: 1.9;

    font-size: 14px;

    margin-bottom: 20px;

}

.text-link {

    display: inline-flex;

    gap: 20px;

    color: var(--gold);

    text-transform: uppercase;

    font-size: 10px;

    letter-spacing: 2px;

    margin-top: 20px;

}


/* USŁUGI */

.services {

    background: var(--black);

}

.services-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 1px;

    background: #1B1B1B;

}

.service-card {

    background: var(--black);

    padding: 40px 28px;

    min-height: 320px;

    position: relative;

    transition: 0.4s ease;

}

.service-card:hover {

    background: var(--dark-light);

    transform: translateY(-8px);

}

.service-number {

    position: absolute;

    top: 25px;

    right: 25px;

    color: #555;

}

.service-icon {

    color: var(--gold);

    font-size: 30px;

    margin-bottom: 40px;

    display: flex;

    align-items: center;

    height: 40px;

}

.service-icon svg {

    width: 36px;

    height: 36px;

}

.service-card h3 {

    font-family: "Cormorant Garamond", serif;

    font-size: 24px;

    font-weight: 500;

    margin-bottom: 18px;

    line-height: 1.25;

}

.service-card p {

    color: var(--gray);

    line-height: 1.7;

    font-size: 13px;

    margin-bottom: 25px;

}

.service-card a {

    color: var(--gold);

    font-size: 9px;

    text-transform: uppercase;

    letter-spacing: 1px;

}


/* GALERIA */

.gallery {

    background: var(--dark);

}

.gallery-header {

    display: flex;

    justify-content: space-between;

    align-items: end;

    max-width: none;

}

.gallery-header > p {

    max-width: 250px;

    color: var(--gray);

    line-height: 1.8;

    font-size: 13px;

}

.gallery-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    grid-auto-rows: 300px;

    gap: 15px;

}

.gallery-item {
    position: relative;
    overflow: hidden;
    background: #1A1A1A;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: 11px;
    letter-spacing: 2px;
}

/* ✅ LIGHTBOX — wklej tutaj */
.lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.9);
  justify-content: center;
  align-items: center;
  z-index: 9999;
}
.lightbox img {
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
}
.lightbox-close {
  position: absolute;
  top: 20px;
  right: 30px;
  color: #fff;
  font-size: 48px;
  cursor: pointer;
  line-height: 1;
}
.gallery-item img {
  cursor: pointer;
}   
.gallery-large {

    grid-row: span 2;

}

.gallery-wide {

    grid-column: span 2;

}

.gallery-overlay {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background: rgba(0,0,0,0.55);

    opacity: 0;

    transition: 0.4s ease;

}

.gallery-item:hover .gallery-overlay {

    opacity: 1;

}

.gallery-overlay span {

    border: 1px solid white;

    padding: 15px 25px;

    font-size: 10px;

    letter-spacing: 3px;

    color: white;

}


/* PROCES */

.process {

    background: var(--black);

}

.process-grid {

    display: grid;

    grid-template-columns: repeat(4, 1fr);

    gap: 50px;

}

.process-item {

    border-top: 1px solid #333;

    padding-top: 25px;

}

.process-item span {

    color: var(--gold);

    font-size: 11px;

}

.process-item h3 {

    font-family: "Cormorant Garamond", serif;

    font-size: 30px;

    margin: 35px 0 15px;

}

.process-item p {

    color: var(--gray);

    line-height: 1.8;

    font-size: 13px;

}


/* CTA */

.cta {

    min-height: 550px;

    display: flex;

    align-items: center;

    position: relative;

    overflow: hidden;

}

.cta-background {

    position: absolute;

    inset: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background: #1a1a1a;

    color: #666;

    letter-spacing: 3px;

    font-size: 11px;

}

.cta-overlay {

    position: absolute;

    inset: 0;

    background: rgba(0,0,0,0.7);

}

.cta-content {

    position: relative;

    z-index: 2;

}

.cta h2 {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(55px, 7vw, 95px);

    line-height: 0.9;

    font-weight: 400;

    margin-bottom: 40px;

}


/* KONTAKT */

.contact {

    background: var(--dark);

}

.contact-grid {

    display: grid;

    grid-template-columns: 0.8fr 1.2fr;

    gap: 120px;

}

.contact-info > p:not(.section-label) {

    color: var(--gray);

    line-height: 1.8;

    font-size: 14px;

    max-width: 400px;

}

.contact-details {

    display: flex;

    flex-direction: column;

    gap: 12px;

    margin-top: 35px;

}

.contact-details a {

    color: var(--gold);

    font-size: 13px;

}

.contact-form {

    display: flex;

    flex-direction: column;

    gap: 25px;

}

.form-group {

    display: flex;

    flex-direction: column;

    gap: 10px;

}

.form-group label {

    color: #aaa;

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: 2px;

}

.form-group input,
.form-group textarea,
.form-group select {

    width: 100%;

    background: transparent;

    border: none;

    border-bottom: 1px solid #444;

    padding: 15px 0;

    color: white;

    outline: none;

    font-size: 14px;

}

.form-group select option {

    background: #111;

}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {

    border-color: var(--gold);

}

.form-group textarea {

    resize: vertical;

}

.form-message {

    font-size: 12px;

    color: var(--gold);

}


/* STOPKA */

.footer {

    background: #080808;

    padding: 60px 0 25px;

}

.footer-content {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding-bottom: 50px;

}

.footer-brand p {

    color: #666;

    font-size: 12px;

    margin-top: 15px;

}

.footer-social {

    display: flex;

    gap: 25px;

}

.footer-social a {

    color: #888;

    font-size: 10px;

    text-transform: uppercase;

    letter-spacing: 2px;

}

.footer-bottom {

    border-top: 1px solid #222;

    padding-top: 25px;

    display: flex;

    justify-content: space-between;

    color: #555;

    font-size: 10px;

}


/* ANIMACJE */

.reveal {

    opacity: 0;

    transform: translateY(40px);

    transition: opacity 0.8s ease,
                transform 0.8s ease;

}

.reveal.active {

    opacity: 1;

    transform: translateY(0);

}


/* CENNIK */

.pricing {

    background: var(--black);

}

.pricing-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 25px;

}

.price-card {

    background: var(--dark);

    padding: 40px 30px;

    border: 1px solid #1f1f1f;

    display: flex;

    flex-direction: column;

    position: relative;

    transition: 0.35s ease;

}

.price-card:hover {

    border-color: var(--gold);

    transform: translateY(-6px);

}

.price-card-featured {

    border-color: var(--gold);

    background: linear-gradient(180deg, #1a1814 0%, var(--dark) 100%);

}

.price-badge {

    position: absolute;

    top: -12px;

    left: 50%;

    transform: translateX(-50%);

    background: var(--gold);

    color: var(--black);

    font-size: 9px;

    text-transform: uppercase;

    letter-spacing: 1.5px;

    padding: 6px 14px;

    white-space: nowrap;

}

.price-card h3 {

    font-family: "Cormorant Garamond", serif;

    font-size: 26px;

    font-weight: 500;

    margin-bottom: 12px;

}

.price {

    font-family: "Cormorant Garamond", serif;

    font-size: 42px;

    color: var(--gold);

    margin-bottom: 12px;

    line-height: 1;

}

.price span {

    font-size: 18px;

    color: var(--gray);

}

.price-desc {

    color: var(--gray);

    font-size: 13px;

    line-height: 1.6;

    margin-bottom: 25px;

}

.price-card ul {

    list-style: none;

    margin-bottom: 30px;

    flex-grow: 1;

}

.price-card ul li {

    color: #c3c3c3;

    font-size: 13px;

    padding: 8px 0;

    border-bottom: 1px solid #222;

    position: relative;

    padding-left: 18px;

}

.price-card ul li::before {

    content: "–";

    position: absolute;

    left: 0;

    color: var(--gold);

}

.price-card .button {

    text-align: center;

    width: 100%;

}

.pricing-extras {

    margin-top: 70px;

    padding-top: 50px;

    border-top: 1px solid #222;

}

.pricing-extras h3 {

    font-family: "Cormorant Garamond", serif;

    font-size: 28px;

    margin-bottom: 30px;

    text-align: center;

}

.extras-grid {

    display: grid;

    grid-template-columns: repeat(5, 1fr);

    gap: 20px;

    margin-bottom: 35px;

}

.extra-item {

    background: var(--dark);

    padding: 22px 15px;

    text-align: center;

    border: 1px solid #1f1f1f;

}

.extra-item span {

    display: block;

    font-size: 12px;

    color: var(--gray);

    margin-bottom: 10px;

}

.extra-item strong {

    font-family: "Cormorant Garamond", serif;

    font-size: 22px;

    color: var(--gold);

    font-weight: 500;

}

.pricing-note {

    text-align: center;

    color: var(--gray);

    font-size: 13px;

    line-height: 1.7;

    max-width: 600px;

    margin: 0 auto;

}


/* OPINIE */

.testimonials {

    background: var(--dark);

}

.testimonials-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 30px;

}

.testimonial-card {

    background: var(--black);

    padding: 40px 35px;

    border-left: 2px solid var(--gold);

}

.testimonial-card p {

    font-family: "Cormorant Garamond", serif;

    font-size: 22px;

    font-style: italic;

    line-height: 1.5;

    color: #e8e4dc;

    margin-bottom: 20px;

}

.testimonial-card footer {

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 2px;

    color: var(--gold);

}

.testimonials-note {

    margin-top: 40px;

    text-align: center;

    color: var(--gray);

    font-size: 13px;

}

.testimonials-note a {

    color: var(--gold);

    text-decoration: underline;

}


/* FAQ */

.faq {

    background: var(--black);

}

.faq-list {

    max-width: 800px;

    margin: 0 auto;

}

.faq-item {

    border-bottom: 1px solid #222;

}

.faq-item summary {

    padding: 25px 0;

    font-family: "Cormorant Garamond", serif;

    font-size: 22px;

    cursor: pointer;

    list-style: none;

    display: flex;

    justify-content: space-between;

    align-items: center;

    transition: color 0.3s ease;

}

.faq-item summary::-webkit-details-marker {

    display: none;

}

.faq-item summary::after {

    content: "+";

    font-size: 24px;

    color: var(--gold);

    transition: transform 0.3s ease;

}

.faq-item[open] summary::after {

    content: "−";

}

.faq-item summary:hover {

    color: var(--gold);

}

.faq-answer {

    padding: 0 0 25px;

}

.faq-answer p {

    color: var(--gray);

    font-size: 14px;

    line-height: 1.8;

}


/* RESPONSIVE */

@media (max-width: 1000px) {

    .nav-menu,
    .nav-button {

        display: none;

    }

    .menu-toggle {

        display: block;

    }

    .nav-menu.active {

        position: absolute;

        top: 75px;

        left: 0;

        width: 100%;

        background: rgba(12, 12, 12, 0.98);

        display: flex;

        flex-direction: column;

        padding: 20px 5%;

        border-bottom: 1px solid #222;

        z-index: 999;

    }

    .nav-menu.active a {

        padding: 18px 0;

        border-bottom: 1px solid #222;

        color: #f3f0eb;

    }

    .navbar.scrolled .nav-menu.active {

        top: 75px;

    }

    .about-grid {

        grid-template-columns: 1fr;

        gap: 70px;

    }

    .services-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .pricing-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .extras-grid {

        grid-template-columns: repeat(3, 1fr);

    }

    .testimonials-grid {

        grid-template-columns: 1fr;

    }

    .process-grid {

        grid-template-columns: repeat(2, 1fr);

    }

    .contact-grid {

        grid-template-columns: 1fr;

        gap: 70px;

    }

}

@media (max-width: 650px) {

    .section {

        padding: 90px 0;

    }

    .hero h1 {

        font-size: 58px;

    }

    .hero-buttons {

        flex-direction: column;

        align-items: stretch;

    }

    .button {

        width: 100%;

        text-align: center;

    }

    .services-grid {

        grid-template-columns: 1fr;

    }

    .pricing-grid {

        grid-template-columns: 1fr;

    }

    .extras-grid {

        grid-template-columns: 1fr 1fr;

    }

    .gallery-header {

        flex-direction: column;

        align-items: flex-start;

        gap: 20px;

    }

    .gallery-grid {

        display: flex;

        flex-direction: column;

    }

    .gallery-item {

        height: 350px;

    }

    .process-grid {

        grid-template-columns: 1fr;

    }

    .testimonial-card p {

        font-size: 18px;

    }

    .footer-content,
    .footer-bottom {

        flex-direction: column;

        align-items: flex-start;

        gap: 30px;

    }

}
