
:root{
  --brand:#1c5d84;
  --brand-light:#2b90cf;
  --ink:#404040;
  --bg:#ffffff;
}
html,body{scroll-behavior:smooth;}
body{font-family: 'Montserrat', sans-serif; color:var(--ink); background:var(--bg);}
.title-xxl{font-family:'Bebas Neue', sans-serif; letter-spacing:.5px; font-size: clamp(2.2rem, 4vw, 3.5rem);}
.title-xl{font-family:'Bebas Neue', sans-serif; letter-spacing:.5px; font-size: clamp(1.8rem, 3vw, 2.6rem);}
.brand-text{font-weight:700; color:var(--brand);}
.btn-brand{background:var(--brand); color:#fff; border:none;}
.btn-brand:hover{background:var(--brand-light); color:#fff;}
.btn-outline-brand{border:2px solid var(--brand); color:var(--brand);}
.btn-outline-brand:hover{background:var(--brand); color:#fff;}
.object-cover{object-fit:cover;}

.navbar.bg-transparent{background:transparent!important;}
.navbar.scrolled{background:#fff!important; box-shadow: 0 8px 22px rgba(0,0,0,.06);}

.hero{position:relative; height: 72vh; min-height: 440px; overflow:hidden;}
.hero-video{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:100%; height:100%; object-fit:cover;}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.0) 30%, rgba(255,255,255,1) 100%);}

.service-card .card-img-top{height:300px; object-fit:cover;}
.footer-title{font-weight:700; color:var(--brand);}

.whatsapp-float{position:fixed; right:16px; bottom:16px; width:56px; height:56px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 10px 20px rgba(0,0,0,.15); z-index:999;}
.whatsapp-float:hover{transform:translateY(-2px);}

#preloader{position:fixed; inset:0; background:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; z-index:1000; transition:opacity .4s ease, visibility .4s ease;}
#preloader.hidden{opacity:0; visibility:hidden;}
.preloader-logo{height:64px;}
.spinner-border.text-brand{color: var(--brand-light);}

.toast-container{position:fixed; top:20px; right:20px; z-index:2000;}

.ratio img{display:block;}

@media (max-width: 768px) {
.container {
    padding: 0 20px;
}
}