:root{--home-green:#28d55f;--home-dark:#111714;--home-muted:#65716b}.home-carousel,.home-carousel .carousel-item{height:min(72vh,680px);min-height:460px}.home-carousel .carousel-item img{height:100%;object-fit:cover}.home-carousel .carousel-item::after{background:linear-gradient(90deg,rgba(5,12,8,.85),rgba(5,12,8,.25));content:"";inset:0;position:absolute}.home-caption{bottom:50%;left:max(7%,calc((100vw - 1140px)/2));max-width:680px;right:auto;text-align:left;transform:translateY(50%);z-index:2}.home-caption h1{font-size:clamp(2.2rem,5vw,4.5rem);font-weight:800;letter-spacing:-.04em}.home-caption p{font-size:clamp(1rem,2vw,1.3rem);max-width:620px}.home-section{padding:5.5rem 0}.home-section-heading{margin:0 auto 2.5rem;max-width:700px;text-align:center}.home-section-heading>span,.home-eyebrow{color:#198754;font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.home-section-heading h2,.home-section h2{font-weight:800;margin:.45rem 0}.home-section-heading p{color:var(--home-muted)}.service-card{background:#fff;border:1px solid #e3e9e5;border-radius:1rem;padding:2rem;transition:transform .2s ease,box-shadow .2s ease}.service-card:hover{box-shadow:0 1rem 2.5rem rgba(13,49,29,.12);transform:translateY(-5px)}.service-card>i{align-items:center;background:#e9f9ef;border-radius:.75rem;color:#198754;display:flex;font-size:1.8rem;height:3.5rem;justify-content:center;margin-bottom:1.25rem;width:3.5rem}.service-card h3{font-size:1.2rem;font-weight:750}.service-card p{color:var(--home-muted);margin:0}.home-section-dark{background:var(--home-dark);color:#fff}.home-section-dark p{color:#bec9c3}.empresa-lista{display:grid;gap:.7rem}.empresa-lista span{align-items:center;display:flex;gap:.6rem}.empresa-lista i{color:var(--home-green)}.empresa-box{background:linear-gradient(145deg,#1c2821,#121a16);border:1px solid #32453a;border-radius:1.25rem;padding:3rem}.empresa-box>i{color:var(--home-green);font-size:3rem}.empresa-box h3{font-weight:750;margin:1rem 0}.contato-section{background:#f4f7f5}.contact-card,.contact-form-card{background:#fff;border:1px solid #e1e8e4;border-radius:1rem;padding:2rem}.contact-title{font-size:1.25rem;font-weight:750;margin-bottom:1.5rem}.contact-item{align-items:flex-start;border-bottom:1px solid #edf1ef;display:flex;gap:1rem;padding:1rem 0}.contact-item>i{color:#198754;font-size:1.4rem}.contact-item strong,.contact-item span,.contact-item a{display:block}.contact-item a{color:#334139;text-decoration:none}.contact-whatsapp{margin-top:1.5rem;width:100%}.contact-form-card .form-control{min-height:46px}.contact-form-card textarea.form-control{min-height:130px}@media(max-width:768px){.home-carousel,.home-carousel .carousel-item{height:520px;min-height:520px}.home-caption{bottom:4rem;left:1.5rem;right:1.5rem;transform:none}.home-section{padding:4rem 0}.empresa-box,.contact-card,.contact-form-card,.service-card{padding:1.5rem}}

/* Home pública: prevalece sobre os estilos legados compartilhados. */
body:has(.home-carousel) .app-header-sistema {
    position: sticky;
    top: 0;
    z-index: 1100;
    min-height: 72px !important;
    padding: 5px 0 !important;
    border-bottom: 1px solid #dfe6ef;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 4px 18px rgba(31,52,80,.08) !important;
    backdrop-filter: blur(10px);
}

body:has(.home-carousel) .app-header-sistema .navbar-brand img.logo-header {
    width: 172px !important;
    height: 60px !important;
    max-width: 172px !important;
    max-height: 60px !important;
}

body:has(.home-carousel) .menu-principal {
    gap: 4px;
}

body:has(.home-carousel) .menu-principal .nav-link {
    padding: 8px 12px;
    color: #34465e !important;
    font-size: .84rem;
    font-weight: 700;
}

body:has(.home-carousel) .menu-principal .nav-link:hover,
body:has(.home-carousel) .menu-principal .nav-link.active {
    background: #eaf3ff;
    color: #1674d1 !important;
}

body:has(.home-carousel) .btn-whatsapp-header {
    display: none;
}

body:has(.home-carousel) .app-header-sistema .btn-admin-header {
    min-height: 40px;
    padding: 8px 13px;
    border-color: #1674d1 !important;
    border-radius: 9px !important;
    background: #1674d1 !important;
    color: #fff !important;
    font-size: .82rem;
    font-weight: 750;
}

body:has(.home-carousel) .app-header-sistema .btn-admin-header:hover {
    background: #0f62ae !important;
}

.home-carousel,
.home-carousel .carousel-inner,
.home-carousel .carousel-item {
    height: min(64vh, 590px) !important;
    min-height: 440px !important;
}

.home-carousel .carousel-item::after {
    z-index: 1;
    background: linear-gradient(90deg,rgba(7,18,31,.84) 0%,rgba(7,18,31,.48) 48%,rgba(7,18,31,.12) 100%);
}

.home-carousel .carousel-item img {
    object-position: center 42%;
}

.home-carousel .carousel-item:nth-child(1) img {
    object-position: center 34%;
}

.home-carousel .carousel-caption.home-caption {
    bottom: 50% !important;
    left: max(7%, calc((100vw - 1140px)/2)) !important;
    right: auto !important;
    z-index: 2;
    width: min(620px, 82vw);
    max-width: 620px;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-align: left;
    transform: translateY(50%);
}

.home-caption-etiqueta {
    display: inline-block;
    margin-bottom: 12px;
    color: #75e59b;
    font-size: .75rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.home-carousel .carousel-caption h1 {
    margin: 0;
    color: #fff !important;
    font-size: clamp(2.25rem, 4.8vw, 4.25rem) !important;
    font-weight: 850;
    letter-spacing: -.035em;
    line-height: 1.02;
}

.home-carousel .carousel-caption p {
    margin: 15px 0 22px;
    color: #e3eaf2 !important;
    font-size: clamp(1rem, 1.6vw, 1.2rem) !important;
    line-height: 1.55;
}

.home-caption-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 45px;
    padding: 10px 16px;
    border-radius: 10px;
    background: #1674d1;
    color: #fff;
    font-size: .9rem;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(0,0,0,.20);
}

.home-caption-cta:hover {
    background: #0f62ae;
    color: #fff;
}

.home-carousel .carousel-control-prev,
.home-carousel .carousel-control-next {
    z-index: 3;
    width: 6%;
}

.home-carousel .carousel-indicators {
    z-index: 3;
}

body:has(.home-carousel) #servicos,
body:has(.home-carousel) #empresa,
body:has(.home-carousel) #contato {
    scroll-margin-top: 78px;
}

body:has(.home-carousel) #servicos {
    background: #f4f7fb;
    color: #172033;
}

body:has(.home-carousel) #servicos .home-section-heading > span {
    color: #1674d1;
}

body:has(.home-carousel) #servicos .home-section-heading h2 {
    color: #102d52;
}

body:has(.home-carousel) #servicos .home-section-heading p {
    color: #68778b;
}

body:has(.home-carousel) #servicos .service-card > i {
    background: #eaf3ff;
    color: #1674d1;
}

body:has(.home-carousel) #empresa {
    background: #fff;
    color: #172033;
}

body:has(.home-carousel) #empresa .home-eyebrow {
    color: #1674d1;
}

body:has(.home-carousel) #empresa h2 {
    color: #102d52;
}

body:has(.home-carousel) #empresa p {
    color: #627187;
    line-height: 1.7;
}

body:has(.home-carousel) #empresa .empresa-lista {
    margin-top: 24px;
}

body:has(.home-carousel) #empresa .empresa-lista span {
    color: #354a63;
    font-weight: 650;
}

body:has(.home-carousel) #empresa .empresa-lista i {
    color: #1674d1;
}

body:has(.home-carousel) #empresa .empresa-box {
    min-height: 310px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 38px;
    border: 1px solid #cfe0f2;
    border-radius: 18px;
    background: linear-gradient(145deg,#f5faff,#eaf3ff);
    box-shadow: 0 12px 32px rgba(31,52,80,.08);
}

body:has(.home-carousel) #empresa .empresa-box > i {
    color: #1674d1;
}

body:has(.home-carousel) #empresa .empresa-box h3 {
    color: #173459;
}

body:has(.home-carousel) #contato {
    background: #f4f7fb;
    color: #172033;
}

body:has(.home-carousel) #contato .home-section-heading > span {
    color: #1674d1;
}

body:has(.home-carousel) #contato .home-section-heading h2 {
    color: #102d52;
}

body:has(.home-carousel) #contato .home-section-heading p {
    color: #68778b;
}

body:has(.home-carousel) #contato .contact-card,
body:has(.home-carousel) #contato .contact-form-card {
    padding: 28px;
    border: 1px solid #dce5ef;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 26px rgba(31,52,80,.07);
}

body:has(.home-carousel) #contato .contact-title {
    color: #173459;
}

body:has(.home-carousel) #contato .contact-item {
    border-color: #e8edf4;
    background: transparent;
}

body:has(.home-carousel) #contato .contact-item > i {
    color: #1674d1;
}

body:has(.home-carousel) #contato .contact-item strong {
    color: #2c4058;
}

body:has(.home-carousel) #contato .contact-item a,
body:has(.home-carousel) #contato .contact-item span {
    color: #66768a;
}

body:has(.home-carousel) #contato .form-label {
    color: #30445d;
    font-size: .82rem;
    font-weight: 750;
}

body:has(.home-carousel) #contato .form-control {
    min-height: 46px;
    border: 1px solid #ccd8e5;
    border-radius: 10px;
    background: #fff;
    color: #172033;
}

body:has(.home-carousel) #contato .form-control:focus {
    border-color: #1674d1;
    box-shadow: 0 0 0 .2rem rgba(22,116,209,.13);
}

body:has(.home-carousel) #contato .btn-success {
    min-height: 43px;
    padding: 9px 15px;
    border-color: #1674d1;
    border-radius: 9px;
    background: #1674d1;
    color: #fff;
    font-weight: 750;
}

body:has(.home-carousel) #contato .btn-success:hover {
    border-color: #0f62ae;
    background: #0f62ae;
}

body:has(.home-carousel) .footer-site {
    border-top: 0;
    background: #102d52 !important;
}

body:has(.home-carousel) .footer-conteudo {
    min-height: 62px;
    color: #dce7f3;
}

body:has(.home-carousel) .footer-suporte {
    border-color: rgba(255,255,255,.28);
    background: rgba(255,255,255,.06);
    color: #fff !important;
}

body:has(.home-carousel) .footer-suporte:hover {
    border-color: #fff;
    background: rgba(255,255,255,.12);
}

body:has(.home-carousel) .footer-versao {
    color: #9fb2c9;
}

@media (max-width: 991px) {
    body:has(.home-carousel) .app-header-sistema .navbar-collapse {
        padding: 10px 0 8px;
        border-top: 1px solid #edf1f5;
        background: #fff;
    }

    body:has(.home-carousel) .menu-principal {
        margin: 0 0 8px !important;
    }

    body:has(.home-carousel) .header-actions {
        display: grid !important;
    }

    body:has(.home-carousel) .navbar-toggler {
        border-color: #cfd9e5;
    }

    body:has(.home-carousel) .navbar-toggler-icon {
        filter: invert(1);
    }
}

@media (max-width: 768px) {
    .home-carousel,
    .home-carousel .carousel-inner,
    .home-carousel .carousel-item {
        height: 500px !important;
        min-height: 500px !important;
    }

    .home-carousel .carousel-caption.home-caption {
        bottom: 42px !important;
        left: 22px !important;
        right: 22px !important;
        width: auto;
        transform: none;
    }

    .home-carousel .carousel-caption h1 {
        font-size: clamp(2rem, 10vw, 3rem) !important;
    }
}
