/* =========================================================
   NAF Hero Slider — estilos base
   (cores/tipografia/altura são sobrescritas pelos controles do Elementor)
   ========================================================= */

.nhs-root {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.nhs-viewport {
    width: 100%;
    overflow: hidden;
}

.nhs-track {
    display: flex;
    transition: transform .6s cubic-bezier(.4, 0, .2, 1);
    will-change: transform;
}

.nhs-slide {
    position: relative;
    flex: 0 0 100%;
    min-height: 480px;          /* fallback; o controle "Altura do slide" sobrescreve */
    display: flex;
    overflow: hidden;
}

/* Imagem de fundo (desktop/mobile via <picture>) */
.nhs-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
}
.nhs-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Camada de overlay (opcional, controlada no painel) */
.nhs-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-color: transparent;
}

/* Bloco de conteúdo */
.nhs-content {
    position: relative;
    z-index: 2;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;    /* alinhamento vertical (sobrescrito pelo controle) */
    align-items: flex-start;    /* alinhamento horizontal (sobrescrito pelas classes nhs-h-*) */
    padding: 5%;
    box-sizing: border-box;
}
.nhs-content-inner {
    max-width: 600px;           /* sobrescrito pelo controle */
}

.nhs-title {
    margin: 0 0 .4em;
    font-size: 2.4rem;
    line-height: 1.1;
    font-weight: 700;
}
.nhs-sub {
    margin: 0 0 1.2em;
    font-size: 1.1rem;
    line-height: 1.5;
}
.nhs-btn {
    display: inline-block;
    background-color: #111;
    color: #fff;
    padding: 14px 28px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    transition: transform .2s ease, opacity .2s ease;
}
.nhs-btn:hover {
    transform: translateY(-1px);
    opacity: .92;
}

/* =========================================================
   Setas
   ========================================================= */
.nhs-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 10px;
    background-color: #111;
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
    transition: transform .2s ease;
}
.nhs-arrow:hover {
    transform: translateY(-50%) scale(1.06);
}
.nhs-prev { left: 18px; }
.nhs-next { right: 18px; }

/* =========================================================
   Dots em tira
   ========================================================= */
.nhs-dots {
    position: absolute;
    bottom: 18px;
    left: 0;
    right: 0;
    z-index: 5;
    display: flex;
    justify-content: center;
    gap: 8px;
}
.nhs-dot {
    width: 30px;
    height: 5px;
    border: 0;
    padding: 0;
    border-radius: 3px;
    background-color: rgba(0, 0, 0, .25);
    cursor: pointer;
    transition: width .3s ease, background-color .3s ease;
}
.nhs-dot.is-active {
    width: 42px;
    background-color: #111;
}

/* =========================================================
   Alinhamento horizontal responsivo
   (classes geradas pelo prefix_class do widget)
   Breakpoints = padrão do Elementor: tablet ≤1024px, mobile ≤767px
   ========================================================= */

/* Desktop */
.nhs-h-left   .nhs-content { align-items: flex-start; }
.nhs-h-left   .nhs-content-inner { text-align: left; }
.nhs-h-center .nhs-content { align-items: center; }
.nhs-h-center .nhs-content-inner { text-align: center; }
.nhs-h-right  .nhs-content { align-items: flex-end; }
.nhs-h-right  .nhs-content-inner { text-align: right; }

/* Tablet */
@media (max-width: 1024px) {
    .nhs-tablet-h-left   .nhs-content { align-items: flex-start; }
    .nhs-tablet-h-left   .nhs-content-inner { text-align: left; }
    .nhs-tablet-h-center .nhs-content { align-items: center; }
    .nhs-tablet-h-center .nhs-content-inner { text-align: center; }
    .nhs-tablet-h-right  .nhs-content { align-items: flex-end; }
    .nhs-tablet-h-right  .nhs-content-inner { text-align: right; }
}

/* Mobile */
@media (max-width: 767px) {
    .nhs-mobile-h-left   .nhs-content { align-items: flex-start; }
    .nhs-mobile-h-left   .nhs-content-inner { text-align: left; }
    .nhs-mobile-h-center .nhs-content { align-items: center; }
    .nhs-mobile-h-center .nhs-content-inner { text-align: center; }
    .nhs-mobile-h-right  .nhs-content { align-items: flex-end; }
    .nhs-mobile-h-right  .nhs-content-inner { text-align: right; }
}
