
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:'Inter',sans-serif;
}

html{
  scroll-behavior:smooth;
}

body{
  background:#0f0f0f;
  color:white;
  overflow-x:hidden;
}

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

img{
  max-width:100%;
  display:block;
}

header{
  position:fixed;
  width:100%;
  top:0;
  left:0;
  z-index:1000;
  padding:25px 8%;
  backdrop-filter:blur(14px);
  background:rgba(0,0,0,0.35);
  border-bottom:1px solid rgba(255,255,255,0.08);
}

nav{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.logo{
  font-size:20px;
  font-weight:600;
  letter-spacing:4px;
  text-transform:uppercase;
}

.nav-links{
  display:flex;
  gap:30px;
  align-items:center;
}

.nav-links a{
  font-size:14px;
  opacity:.8;
  transition:.3s;
  white-space:nowrap;
}

.nav-links a:hover,
.nav-links a.active{
  opacity:1;
  color:#c7b299;
}

.menu-toggle{
  display:none;
  background:none;
  border:1px solid rgba(255,255,255,.25);
  color:white;
  padding:10px 14px;
  cursor:pointer;
}

.hero{
  height:100vh;
  position:relative;
  display:flex;
  align-items:center;
  padding:0 8%;
  overflow:hidden;
}

.hero video,
.hero img{
  position:absolute;
  width:100%;
  height:100%;
  object-fit:cover;
  top:0;
  left:0;
}

.overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.35), rgba(0,0,0,.85));
}

.hero-content{
  position:relative;
  z-index:2;
  max-width:950px;
  animation:fadeUp 1.2s ease;
}

.hero-sub{
  color:#c7b299;
  letter-spacing:5px;
  margin-bottom:20px;
  font-size:14px;
  text-transform:uppercase;
}

.hero h1{
  font-size:82px;
  line-height:1.05;
  margin-bottom:30px;
  font-weight:600;
}

.hero p{
  color:rgba(255,255,255,.75);
  font-size:18px;
  line-height:1.8;
  max-width:760px;
  margin-bottom:30px;
}

.hero-buttons{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.btn{
  padding:18px 38px;
  border:none;
  cursor:pointer;
  font-size:14px;
  transition:.4s;
  display:inline-block;
}

.btn-primary{
  background:white;
  color:black;
}

.btn-primary:hover{
  background:#c7b299;
}

.btn-secondary{
  background:transparent;
  border:1px solid white;
  color:white;
}

.btn-secondary:hover{
  background:white;
  color:black;
}

section{
  padding:120px 8%;
}

.section-title{
  font-size:54px;
  margin-bottom:25px;
  font-weight:600;
  line-height:1.1;
}

.section-sub{
  color:#c7b299;
  text-transform:uppercase;
  letter-spacing:5px;
  margin-bottom:15px;
  font-size:13px;
}

.page-text,
section p,
li{
  color:rgba(255,255,255,.7);
  line-height:1.9;
  font-size:17px;
}

.about,
.dark-section,
.services,
.cta{
  background:#111111;
}

.about-grid,
.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:start;
}

.stats{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:30px;
  margin-top:40px;
}

.stat h3{
  font-size:52px;
  margin-bottom:10px;
}

.stat p{
  font-size:15px;
}

.projects-grid,
.cards-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:30px;
  margin-top:70px;
}

.project{
  position:relative;
  overflow:hidden;
  height:500px;
  cursor:pointer;
  background:#171717;
}

.project img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:1s;
}

.project:hover img{
  transform:scale(1.08);
}

.project-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.88), transparent);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:40px;
}

.project h3{
  font-size:32px;
  font-weight:500;
  margin-bottom:10px;
}

.project p{
  font-size:15px;
}

.services-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:30px;
  margin-top:70px;
}

.service-card,
.card,
.process-item,
.process-box,
.faq-item,
.testimonial-card,
.blog-card,
.design-card,
.stage-card{
  padding:40px;
  border:1px solid rgba(255,255,255,.08);
  transition:.4s;
  background:#171717;
}

.service-card:hover,
.card:hover,
.testimonial-card:hover,
.blog-card:hover,
.design-card:hover,
.stage-card:hover{
  transform:translateY(-10px);
  border-color:#c7b299;
}

.service-card h3,
.card h3,
.process-item h3,
.process-box h3,
.testimonial-card h3,
.blog-card h3,
.design-card h3,
.stage-card h3{
  font-size:26px;
  margin-bottom:18px;
  font-weight:500;
}

.card img,
.blog-card img,
.design-card img,
.stage-card img{
  width:100%;
  height:240px;
  object-fit:cover;
  margin-bottom:25px;
}

.process-timeline,
.process-list{
  margin-top:80px;
  display:grid;
  gap:30px;
}

.process-item,
.process-box{
  border-left:4px solid #c7b299;
}

.cta{
  text-align:center;
}

.cta h2{
  font-size:72px;
  margin-bottom:30px;
  line-height:1.1;
}

.contact-btn{
  padding:20px 50px;
  background:white;
  color:black;
  display:inline-block;
  transition:.4s;
}

.contact-btn:hover{
  background:#c7b299;
}

.page-hero{
  height:60vh;
  min-height:420px;
}

.content-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:28px;
  margin-top:50px;
}

.content-list ul{
  padding-left:20px;
}

.content-list li{
  margin-bottom:10px;
}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:25px;
  margin-top:60px;
}

.gallery-item{
  background:#171717;
  border:1px solid rgba(255,255,255,.08);
  overflow:hidden;
}

.gallery-item img{
  width:100%;
  height:320px;
  object-fit:cover;
  cursor:pointer;
  transition:.5s;
}

.gallery-item:hover img{
  transform:scale(1.06);
}

.gallery-item p{
  padding:18px;
  color:#c7b299;
  font-weight:500;
}

.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin-top:60px;
}

.contact-form{
  display:flex;
  flex-direction:column;
  gap:20px;
}

.contact-form input,
.contact-form textarea{
  padding:18px;
  background:#171717;
  border:1px solid rgba(255,255,255,.08);
  color:white;
  outline:none;
}

.contact-form textarea{
  min-height:180px;
  resize:vertical;
}

.contact-form button{
  padding:18px;
  border:none;
  background:white;
  color:black;
  cursor:pointer;
  transition:.4s;
}

.contact-form button:hover{
  background:#c7b299;
}

.faq-list{
  display:grid;
  gap:16px;
  margin-top:60px;
}

.faq-question{
  width:100%;
  text-align:left;
  background:#171717;
  color:white;
  border:1px solid rgba(255,255,255,.08);
  padding:24px;
  cursor:pointer;
  font-size:17px;
  display:flex;
  justify-content:space-between;
  gap:20px;
}

.faq-question span{
  color:#c7b299;
}

.faq-answer{
  max-height:0;
  overflow:hidden;
  transition:max-height .35s ease;
  background:#111;
  border-left:1px solid rgba(255,255,255,.08);
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.faq-answer p{
  padding:22px 24px;
}

.lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  z-index:3000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:40px;
}

.lightbox.show{
  display:flex;
}

.lightbox img{
  max-width:90vw;
  max-height:82vh;
  object-fit:contain;
}

.lightbox-caption{
  position:absolute;
  bottom:25px;
  color:white;
  text-align:center;
  padding:0 20px;
}

.lightbox-close,
.lightbox-prev,
.lightbox-next{
  position:absolute;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);
  color:white;
  cursor:pointer;
  font-size:28px;
  padding:12px 18px;
}

.lightbox-close{
  top:25px;
  right:25px;
}

.lightbox-prev{
  left:25px;
}

.lightbox-next{
  right:25px;
}

footer{
  padding:40px 8%;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
  background:#0f0f0f;
}

footer p{
  color:rgba(255,255,255,.5);
}

.footer-links{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.footer-links a{
  color:rgba(255,255,255,.6);
  font-size:14px;
}

.footer-links a:hover{
  color:#c7b299;
}

@keyframes fadeUp{
  from{
    opacity:0;
    transform:translateY(50px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media(max-width:1100px){
  .nav-links{
    gap:18px;
  }
  .nav-links a{
    font-size:12px;
  }
}

@media(max-width:900px){
  header{
    padding:20px 6%;
  }

  .menu-toggle{
    display:block;
  }

  .nav-links{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:rgba(0,0,0,.94);
    backdrop-filter:blur(14px);
    flex-direction:column;
    padding:25px;
    display:none;
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .nav-links.open{
    display:flex;
  }

  .hero h1{
    font-size:48px;
  }

  .hero{
    padding:0 6%;
  }

  section{
    padding:90px 6%;
  }

  .about-grid,
  .two-col,
  .contact-grid{
    grid-template-columns:1fr;
    gap:45px;
  }

  .stats{
    grid-template-columns:1fr;
  }

  .cta h2{
    font-size:42px;
  }

  .section-title{
    font-size:42px;
  }

  .project{
    height:380px;
  }

  footer{
    flex-direction:column;
  }
}
