.home-anchor {
    scroll-margin-top: 110px;
}

.home-page { max-width: 1280px; margin: 0 auto; }
.home-carousel { position: relative; overflow: hidden; border-radius: 20px; margin: 24px 0 0; background: #1c2731; }
.home-carousel-track { position: relative; aspect-ratio: 2.35 / 1; }
.home-carousel-slide { position: absolute; inset: 0; display: block; opacity: 0; transition: opacity .6s ease; pointer-events: none; }
.home-carousel-slide.is-active { opacity: 1; pointer-events: auto; }
.home-carousel-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.home-carousel-slide span { position: absolute; left: 5%; bottom: 9%; max-width: 58%; color: #fff; font-size: clamp(1.7rem, 4vw, 4.4rem); font-weight: 700; line-height: .98; text-shadow: 0 2px 8px rgba(0,0,0,.55); }
.home-carousel-prev, .home-carousel-next { position: absolute; top: 50%; z-index: 2; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%; color: #fff; background: rgba(28,39,49,.65); font-size: 2rem; line-height: 1; transform: translateY(-50%); cursor: pointer; }
.home-carousel-prev { left: 1rem; } .home-carousel-next { right: 1rem; }
.home-carousel-dots { position: absolute; bottom: 1rem; left: 50%; z-index: 2; display: flex; gap: .45rem; transform: translateX(-50%); }
.home-carousel-dots button { width: .65rem; height: .65rem; padding: 0; border: 1px solid #fff; border-radius: 50%; background: transparent; cursor: pointer; }
.home-carousel-dots button.is-active { background: #fff; }
.home-intro, .home-company, .home-contact { max-width: 980px; margin: 0 auto; }
.home-intro { padding-top: 48px; text-align: center; }
.home-intro h1 { margin: 0 0 1rem; font-size: clamp(1.8rem, 3vw, 3rem); }
.home-intro p { margin: .7rem 0; font-size: 1.1rem; line-height: 1.55; }
.home-services { margin-top: 24px; }
.home-services .service-card-ignifugacio > img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #f1f3f5; }
.home-services .before-after-card { aspect-ratio: 4 / 3; border-radius: 20px; }
.home-company, .home-contact { padding-top: 32px; padding-bottom: 32px; }
@media (max-width: 700px) {
    .home-page { padding: 0 16px; }
    .home-carousel { margin-top: 16px; border-radius: 14px; }
    .home-carousel-track { aspect-ratio: 1.25 / 1; }
    .home-carousel-slide span { left: 6%; bottom: 13%; max-width: 78%; font-size: clamp(1.5rem, 8vw, 2.5rem); }
    .home-intro { padding-top: 32px; }
    .home-intro p { font-size: 1rem; text-align: left; }
}
