body {
  margin: 0;
  font-family: 'Oswald', sans-serif;
  background: #0b0b0b;
  color: #eee;
}

.hero {
  background:
    linear-gradient(rgba(0,0,0,.75), rgba(0,0,0,.9)),
    url("../images/hero-bg.png") center/cover;
  text-align: center;
  padding: 100px 20px;
  position: relative;
  overflow: hidden;
  .hero {
  background-attachment: fixed;
}

/* Disable parallax on mobile (better performance) */
@media (max-width: 768px) {
  .hero {
    background-attachment: scroll;
  }
}
}

.hero::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,.05) 0%, transparent 40%),
              radial-gradient(circle at 70% 60%, rgba(255,255,255,.04) 0%, transparent 40%),
              radial-gradient(circle at 40% 80%, rgba(255,255,255,.03) 0%, transparent 40%);
  animation: dustMove 20s linear infinite;
  pointer-events: none;
}

@keyframes dustMove {
  from { transform: translate(0,0); }
  to { transform: translate(-25%, -25%); }
}
.logo {
  width: 70%;
  max-width: 420px;
  height: auto;
  transition: transform .3s ease;
  .logo {
  animation: floatLogo 8s ease-in-out infinite;
}

@keyframes floatLogo {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
}

/* Larger screens */
@media (min-width: 1200px) {
  .logo {
    max-width: 600px;
  }
}

.hero h1 {
  font-size: 2.2rem;
  letter-spacing: 2px;
}

.hero p {
  color: #ccc;
}

.cta {
  display: inline-block;
  margin-top: 30px;
  padding: 15px 40px;
  background: #8b0000;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

.services, .gallery, .contact {
  padding: 80px 20px;
  max-width: 1100px;
  margin: auto;
  text-align: center;
}

.gallery .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 15px;
}

.gallery img {
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.contact form {
  max-width: 500px;
  margin: 30px auto;
  display: grid;
  gap: 15px;
}

input, textarea {
  padding: 12px;
  background: #111;
  border: 1px solid #333;
  color: #fff;
}

button {
  background: #8b0000;
  border: none;
  padding: 14px;
  color: #fff;
  font-weight: 700;
}

.footer-info {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  gap: 30px;
  color: #aaa;
}
.gallery img {
  width: 100%;
  height: 240px;
  object-fit: cover;
  transition: transform .4s ease, filter .4s ease;
  filter: brightness(.9);
}

.gallery img:hover {
  transform: scale(1.05);
  filter: brightness(1);
}

section {
  opacity: 0;
  transform: translateY(40px);
  transition: all .8s ease;
}

section.visible {
  opacity: 1;
  transform: translateY(0);
}
.mobile-call {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #8b0000;
  color: white;
  text-align: center;
  padding: 16px;
  font-weight: 700;
  text-decoration: none;
  display: none;
  z-index: 9999;
}

@media (max-width: 768px) {
  .mobile-call {
    display: block;
  }
}

.before-after {
  padding: 80px 20px;
  max-width: 1100px;
  margin: auto;
  text-align: center;
}

.slider {
  position: relative;
  max-width: 800px;
  margin: 40px auto;
  overflow: hidden;
}

.slider img {
  width: 100%;
  display: block;
}

.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  overflow: hidden;
}

.slider-control {
  width: 100%;
  margin-top: 20px;
}
.dust-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  transition: opacity 0.4s ease-out;
}

.dust {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(210,180,140,0.18);
  filter: blur(1px);
}
.hero > *:not(.dust-layer) {
  position: relative;
  z-index: 2;
}