/* =========================================================
   INDEX - ALFA TRANSPORTES
   Novo layout institucional
   Sem gradientes
   Não altera carrossel nem SVG do mapa
   ========================================================= */

.home-page {
    background: var(--alfa-background);
    color: var(--alfa-neutra-clara);
}

.home-page h1,
.home-page h2,
.home-page h3,
.home-page h4 {
    letter-spacing: -.035em;
}

/* =========================================================
   CARROSSEL
   Apenas ajuste fino de fonte. Não altera estrutura.
   ========================================================= */

.header-carousel .title-header {
    font-weight: 700;
    letter-spacing: -.055em;
    line-height: .98;
}

.header-carousel .lead {
    font-weight: 650;
    line-height: 1.35 !important;
}

/* =========================================================
   PADRÃO DE SEÇÕES
   ========================================================= */

.home-section {
    padding: 5rem 0;
    background: var(--alfa-background);
}

.home-section:nth-of-type(even) {
    background: var(--alfa-background);
}

.home-section-heading {
    max-width: 780px;
    margin: 0 auto 2.6rem;
}

.home-section-heading span,
.home-kicker {
    display: inline-flex;
    margin-bottom: .65rem;
    color: var(--alfa-destaque);
    font-size: .82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.home-section-heading h2 {
    margin: 0;
    color: var(--alfa-neutra-escura);
    font-size: clamp(2rem, 3.5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.05;
}

.home-section-heading p {
    margin: 1rem 0 0;
    color: var(--alfa-neutra-clara);
    font-size: 1.06rem;
    line-height: 1.75;
}

/* =========================================================
   HEADER / CARROSSEL / BANNER
   Altura única no desktop, mobile com altura flexível
   Desktop usa background
   Mobile/tablet usa background_mobile
   ========================================================= */

:root {
    --home-hero-height: clamp(440px, 38vw, 580px);
}

.header-carousel,
.header-carousel .carousel-inner,
.header-carousel .carousel-item,
.header-single {
    height: var(--home-hero-height);
    min-height: var(--home-hero-height);
    max-height: var(--home-hero-height);
}

.header-carousel .carousel-item {
    overflow: hidden;
}

.header-carousel .carousel-item > section,
.header-carousel .carousel-item > .home-header-slide,
.header-single .home-header-slide,
.header-single .home-header-slide.header-bg {
    width: 100%;
    height: var(--home-hero-height);
    min-height: var(--home-hero-height);
    max-height: var(--home-hero-height);
    display: flex;
    align-items: center;
    padding: 0;
    overflow: hidden;
}

/* Desktop: usa a imagem background preenchendo a altura inteira */
@media (min-width: 992px) {
    .header-carousel .carousel-item > .home-header-slide.header-bg,
    .header-carousel .carousel-item > section.home-header-slide.header-bg,
    .header-single .home-header-slide.header-bg {
        background-image: var(--bg-url-desktop) !important;

        /* Preenche 100% da altura do banner.
           Mantém a imagem inteira na vertical.
           Se precisar, corta nas laterais.
        */
        background-size: auto 100% !important;

        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-color: var(--alfa-background, #f6f7f9);
    }
}

.header-carousel .carousel-item > section > .container,
.header-single .home-header-slide > .container {
    height: 100%;
    display: flex;
    align-items: center;
}

.header-carousel .row-header,
.header-single .row-header {
    width: 100%;
    min-height: 0;
    height: auto;
    align-items: center !important;
}

.header-carousel .home-fallback-content,
.header-single .home-fallback-content {
    max-width: 760px;
}

.header-carousel .home-fallback-content h1,
.header-single .home-fallback-content h1 {
    max-width: 760px;
}

.header-carousel .home-fallback-content p,
.header-single .home-fallback-content p {
    max-width: 620px;
}

.header-carousel .home-fallback-panel,
.header-single .home-fallback-panel {
    max-width: 460px;
    margin-left: auto;
    margin-right: clamp(1rem, 3vw, 4rem);
    margin-bottom: 0;
}

.header-carousel .carousel-indicators,
.header-carousel .carousel-control-prev,
.header-carousel .carousel-control-next {
    z-index: 6;
}

/* Desktop grande */
@media (min-width: 1400px) {
    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        margin-right: clamp(2rem, 5vw, 6rem);
    }
}

/* Notebook grande */
@media (min-width: 1200px) and (max-width: 1399.98px) {
    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        margin-right: 1rem;
    }
}

/* Notebook menor */
@media (min-width: 992px) and (max-width: 1199.98px) {
    :root {
        --home-hero-height: clamp(420px, 42vw, 480px);
    }

    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        margin-right: 1rem;
    }
}

/* =========================================================
   MOBILE/TABLET
   Usa background_mobile, preenche horizontalmente e centraliza textos
   ========================================================= */

@media (max-width: 991.98px) {
    .header-carousel,
    .header-carousel .carousel-inner,
    .header-carousel .carousel-item,
    .header-single {
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
    }

    .header-carousel .carousel-item {
        overflow: visible !important;
    }

    .header-carousel .carousel-item > section,
    .header-carousel .carousel-item > .home-header-slide,
    .header-single .home-header-slide,
    .header-single .home-header-slide.header-bg {
        height: auto !important;
        min-height: calc(100svh - 76px) !important;
        max-height: none !important;
        padding: 1.25rem 0 2rem !important;
        overflow: visible !important;
    }

    /* Mobile/tablet: usa background_mobile preenchendo o banner */
    .header-carousel .carousel-item > .home-header-slide.header-bg,
    .header-carousel .carousel-item > section.home-header-slide.header-bg,
    .header-single .home-header-slide.header-bg {
        background-image: var(--bg-url-mobile) !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        background-color: var(--alfa-background, #f6f7f9);
    }

    .header-carousel .carousel-item > section > .container,
    .header-single .home-header-slide > .container {
        height: auto !important;
        min-height: inherit;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .header-carousel .row-header,
    .header-single .row-header {
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .header-carousel .home-fallback-content,
    .header-single .home-fallback-content {
        max-width: 100%;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .header-carousel .home-fallback-kicker,
    .header-single .home-fallback-kicker {
        justify-content: center;
        margin-left: auto;
        margin-right: auto;
    }

    .header-carousel .home-fallback-content h1,
    .header-single .home-fallback-content h1,
    .header-carousel .home-fallback-content p,
    .header-single .home-fallback-content p {
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        text-align: center !important;
    }

    .header-carousel .home-fallback-actions,
    .header-single .home-fallback-actions {
        align-items: center !important;
        justify-content: center !important;
        text-align: center;
    }

    .header-carousel .home-fallback-actions .btn,
    .header-carousel .home-fallback-actions .home-featured-news,
    .header-single .home-fallback-actions .btn,
    .header-single .home-fallback-actions .home-featured-news {
        width: 100%;
        max-width: 420px;
        justify-content: center;
        text-align: center;
    }

    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        max-width: none;
        width: 100%;
        margin: 1.25rem auto 0;
    }
}

/* Mobile pequeno */
@media (max-width: 575.98px) {
    .header-carousel .carousel-item > section,
    .header-carousel .carousel-item > .home-header-slide,
    .header-single .home-header-slide,
    .header-single .home-header-slide.header-bg {
        min-height: calc(100svh - 76px) !important;
        padding: 1rem 0 2.25rem !important;
    }

    .header-carousel .carousel-item > section > .container,
    .header-single .home-header-slide > .container {
        align-items: center;
        justify-content: center;
    }

    .header-carousel .row-header,
    .header-single .row-header {
        gap: 1.25rem !important;
        justify-content: center !important;
    }

    .header-carousel .home-fallback-content,
    .header-single .home-fallback-content {
        padding-top: .25rem;
        text-align: center;
    }

    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        margin-top: .75rem;
        border-radius: 22px;
    }

    .header-carousel .carousel-control-prev,
    .header-carousel .carousel-control-next {
        top: 48%;
        bottom: auto;
        transform: translateY(-50%);
    }
}

/* =========================================================
   HEADER PADRÃO QUANDO NÃO HÁ HOME_HEADERS
   Fundo inspirado nas curvas da Serra do Rio do Rastro - SC
   Com jogo de luzes, sem alterar carrossel nem SVG do mapa
   ========================================================= */

.home-fallback-hero {
    position: relative;
    min-height: var(--home-hero-height);
    display: flex;
    align-items: center;
    padding: 0;
    color: #ffffff;
    background:
        radial-gradient(circle at 12% 8%, var(--alfa-destaque), transparent 13rem),
        radial-gradient(circle at 22% 22%, rgba(222, 30, 62, .72), transparent 20rem),
        radial-gradient(circle at 78% 14%, rgba(222, 30, 62, .45), transparent 18rem),
        radial-gradient(circle at 88% 72%, rgba(222, 30, 62, .45), transparent 22rem),
        radial-gradient(circle at 45% 105%, var(--alfa-destaque), transparent 18rem),
        linear-gradient(135deg, rgba(222, 30, 62, .45) 0%, var(--alfa-destaque) 42%, #111111 100%);
    overflow: hidden;
    box-shadow: inset 0 -90px 120px rgba(222, 30, 62, .45);
}

/* Estrada com curvas fechadas estilo Serra do Rio do Rastro */
.home-fallback-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .68;
    background-image: url("data:image/svg+xml,%3Csvg%20width=%221700%22%20height=%22760%22%20viewBox=%220%200%201700%20760%22%20xmlns=%22http://www.w3.org/2000/svg%22%3E%0A%20%20%3Cg%20fill=%22none%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%0A%20%20%20%20%3C%21--%20curvas%20principais%20estilo%20serra:%20pista%20larga%20--%3E%0A%20%20%20%20%3Cpath%20d=%22M1325%20805%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1325%20720%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1325%20692%201348%20674%201380%20674%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1552%20674%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1588%20674%201612%20652%201612%20620%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1612%20585%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1612%20552%201588%20532%201552%20532%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1358%20532%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1322%20532%201298%20510%201298%20478%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1298%20446%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1298%20414%201322%20392%201358%20392%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1582%20392%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1618%20392%201642%20370%201642%20338%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1642%20306%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1642%20274%201618%20252%201582%20252%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1345%20252%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1309%20252%201285%20230%201285%20198%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1285%20166%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1285%20134%201309%20112%201345%20112%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1615%20112%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1650%20112%201672%2092%201672%2060%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1672%20-30%22%20stroke=%22rgba(255,255,255,0.15)%22%20stroke-width=%2234%22/%3E%0A%20%20%20%20%3C%21--%20faixa%20central%20pontilhada%20--%3E%0A%20%20%20%20%3Cpath%20d=%22M1325%20805%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1325%20720%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1325%20692%201348%20674%201380%20674%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1552%20674%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1588%20674%201612%20652%201612%20620%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1612%20585%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1612%20552%201588%20532%201552%20532%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1358%20532%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1322%20532%201298%20510%201298%20478%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1298%20446%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1298%20414%201322%20392%201358%20392%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1582%20392%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1618%20392%201642%20370%201642%20338%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1642%20306%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1642%20274%201618%20252%201582%20252%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1345%20252%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1309%20252%201285%20230%201285%20198%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1285%20166%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1285%20134%201309%20112%201345%20112%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1615%20112%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1650%20112%201672%2092%201672%2060%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1672%20-30%22%20stroke=%22rgba(255,255,255,0.62)%22%20stroke-width=%223%22%20stroke-dasharray=%2211%2014%22/%3E%0A%0A%20%20%20%20%3C%21--%20segunda%20estrada%20mais%20apagada%20--%3E%0A%20%20%20%20%3Cpath%20d=%22M1032%20790%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1032%20710%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1032%20684%201008%20666%20974%20666%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L820%20666%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C786%20666%20762%20646%20762%20616%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L762%20586%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C762%20556%20786%20536%20820%20536%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1002%20536%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1036%20536%201060%20516%201060%20486%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1060%20456%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1060%20426%201036%20406%201002%20406%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L802%20406%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C768%20406%20744%20386%20744%20356%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L744%20326%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C744%20296%20768%20276%20802%20276%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1026%20276%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1060%20276%201084%20256%201084%20226%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1084%20194%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1084%20164%201060%20144%201026%20144%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L842%20144%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C808%20144%20784%20124%20784%2094%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L784%2010%22%20stroke=%22rgba(255,255,255,0.075)%22%20stroke-width=%2218%22/%3E%0A%20%20%20%20%3Cpath%20d=%22M1032%20790%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1032%20710%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1032%20684%201008%20666%20974%20666%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L820%20666%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C786%20666%20762%20646%20762%20616%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L762%20586%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C762%20556%20786%20536%20820%20536%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1002%20536%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1036%20536%201060%20516%201060%20486%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1060%20456%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1060%20426%201036%20406%201002%20406%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L802%20406%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C768%20406%20744%20386%20744%20356%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L744%20326%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C744%20296%20768%20276%20802%20276%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1026%20276%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1060%20276%201084%20256%201084%20226%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L1084%20194%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C1084%20164%201060%20144%201026%20144%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L842%20144%0A%20%20%20%20%20%20%20%20%20%20%20%20%20C808%20144%20784%20124%20784%2094%0A%20%20%20%20%20%20%20%20%20%20%20%20%20L784%2010%22%20stroke=%22rgba(255,255,255,0.24)%22%20stroke-width=%222%22%20stroke-dasharray=%227%2011%22/%3E%0A%0A%20%20%20%20%3C%21--%20curvas%20org%C3%A2nicas%20de%20apoio,%20lembrando%20contorno/topografia%20--%3E%0A%20%20%20%20%3Cpath%20d=%22M555%20765%20C650%20690%20612%20626%20520%20592%20C420%20556%20452%20486%20585%20464%20C724%20441%20716%20370%20588%20346%20C470%20324%20482%20252%20635%20222%20C782%20194%20760%20116%20642%2082%22%20stroke=%22rgba(255,255,255,0.05)%22%20stroke-width=%2214%22/%3E%0A%20%20%20%20%3Cpath%20d=%22M555%20765%20C650%20690%20612%20626%20520%20592%20C420%20556%20452%20486%20585%20464%20C724%20441%20716%20370%20588%20346%20C470%20324%20482%20252%20635%20222%20C782%20194%20760%20116%20642%2082%22%20stroke=%22rgba(255,255,255,0.20)%22%20stroke-width=%221.6%22%20stroke-dasharray=%226%2010%22/%3E%0A%20%20%20%20%3Cpath%20d=%22M260%20730%20C350%20640%20310%20560%20220%20515%20C130%20470%20180%20380%20310%20350%20C450%20318%20430%20240%20300%20205%20C180%20172%20205%2090%20345%2042%22%20stroke=%22rgba(255,255,255,0.045)%22%20stroke-width=%2210%22/%3E%0A%20%20%3C/g%3E%0A%20%20%3Cg%20fill=%22rgba(255,255,255,0.56)%22%3E%0A%20%20%20%20%3Ccircle%20cx=%221612%22%20cy=%22620%22%20r=%225%22/%3E%0A%20%20%20%20%3Ccircle%20cx=%221642%22%20cy=%22338%22%20r=%225%22/%3E%0A%20%20%20%20%3Ccircle%20cx=%221672%22%20cy=%2260%22%20r=%225%22/%3E%0A%20%20%20%20%3Ccircle%20cx=%221060%22%20cy=%22486%22%20r=%224%22/%3E%0A%20%20%20%20%3Ccircle%20cx=%221084%22%20cy=%22226%22%20r=%224%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: cover;
}

/* Luzes e camada de leitura sobre o fundo */
.home-fallback-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 18% 18%, var(--alfa-destaque), transparent 15rem),
        radial-gradient(circle at 72% 20%, rgba(222, 30, 62, .45), transparent 16rem),
        radial-gradient(circle at 88% 72%, var(--alfa-destaque), transparent 18rem),
        linear-gradient(90deg, rgba(222, 30, 62, .45), rgba(56, 56, 56, 0.08) 46%, rgba(79, 79, 79, 0.2)),
        linear-gradient(180deg, rgba(0, 0, 0, .05), rgba(109, 17, 32, 0.45));
}

.home-fallback-hero .container,
.home-fallback-hero .home-fallback-content,
.home-fallback-hero .home-fallback-panel {
    position: relative;
    z-index: 1;
}

.home-fallback-content {
    max-width: 760px;
}

.home-fallback-kicker {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1rem;
    padding: .55rem .9rem;
    border-radius: 999px;
    color: #ffffff;
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .16);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .09em;
}

.home-fallback-content h1 {
    max-width: 760px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.4rem, 5vw, 5rem);
    font-weight: 700;
    line-height: .98;
    letter-spacing: -.06em;
}

.home-fallback-content p {
    max-width: 620px;
    margin: 1.25rem 0 0;
    color: rgba(255, 255, 255, .78);
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.75;
    font-weight: 600;
}

.home-fallback-actions {
    width: min(100%, 560px);
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch;
    gap: .85rem;
    margin-top: 1.25rem;
}

.home-fallback-actions > .btn,
.home-fallback-actions > .home-featured-news {
    width: 100%;
}

/* Painel lateral */

.home-fallback-panel {
    padding: 1.35rem;
    border-radius: 30px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .22);
    backdrop-filter: blur(12px);
}

.home-fallback-panel-header {
    padding: .5rem .5rem 1rem;
}

.home-fallback-panel-header span {
    display: inline-flex;
    margin-bottom: .35rem;
    color: var(--alfa-apoio);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.home-fallback-panel-header h2 {
    margin: 0;
    color: #ffffff;
    font-size: 1.65rem;
    font-weight: 700;
    letter-spacing: -.04em;
}

.home-fallback-links {
    display: grid;
    gap: .75rem;
}

.home-fallback-links a,
.home-fallback-links button {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .95rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 20px;
    color: #ffffff;
    background: rgba(255, 255, 255, .09);
    text-align: left;
    text-decoration: none;
    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.home-fallback-links a:hover,
.home-fallback-links button:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .24);
    transform: translateY(-2px);
}

.home-fallback-links i {
    width: 44px;
    height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: var(--alfa-destaque);
    background: #ffffff;
    font-size: 1.22rem;
}

.home-fallback-links span {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.home-fallback-links strong {
    color: #ffffff;
    font-size: .98rem;
    font-weight: 700;
}

.home-fallback-links small {
    margin-top: .15rem;
    color: rgba(255, 255, 255, .72);
    font-size: .8rem;
    font-weight: 500;
}


/* Responsivo do fallback sem alterar altura do frame */
@media (max-width: 991.98px) {
    .home-fallback-hero::before {
        background-size: auto 108%;
        background-position: 86% center;
        opacity: .52;
    }

    .home-fallback-hero::after {
        background:
            radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .10), transparent 12rem),
            radial-gradient(circle at 85% 24%, rgba(255, 255, 255, .06), transparent 14rem),
            linear-gradient(180deg, rgba(0, 0, 0, .12), rgba(0, 0, 0, .30));
    }

    .home-fallback-content h1,
    .home-fallback-content p {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .home-fallback-hero::before {
        background-size: auto 105%;
        background-position: 92% center;
        opacity: .38;
    }

    .home-fallback-hero::after {
        background:
            radial-gradient(circle at 12% 8%, rgba(255, 255, 255, .10), transparent 10rem),
            radial-gradient(circle at 85% 24%, rgba(255, 255, 255, .06), transparent 12rem),
            linear-gradient(180deg, rgba(0, 0, 0, .14), rgba(0, 0, 0, .34));
    }

    .home-fallback-actions {
        width: 100%;
        flex-direction: column !important;
        align-items: stretch;
        gap: .75rem;
    }

    .home-fallback-actions .btn,
    .home-fallback-actions .home-featured-news {
        width: 100%;
    }

    .home-fallback-panel {
        border-radius: 24px;
    }

    .home-fallback-links a,
    .home-fallback-links button {
        border-radius: 18px;
    }
}

/* =========================================================
   CAMPANHA
   Usa cor cadastrada no banco, sem gradiente
   ========================================================= */

.home-campaign-section {
    background: var(--alfa-background);
}

.home-campaign-card {
    padding: 2rem;
    border-radius: 34px;
    border: 1px solid rgba(15, 23, 42, .10);
    box-shadow: 0 18px 48px rgba(15, 23, 42, .14);
    overflow: hidden;
}

.home-campaign-image {
    padding: .75rem;
    border-radius: 26px;
}

.home-campaign-image img {
    width: 100%;
    max-height: 360px;
    object-fit: contain;
    display: block;
    border-radius: 20px;
}

.home-campaign-content {
    max-width: 760px;
}

.home-campaign-content span {
    display: inline-flex;
    margin-bottom: .65rem;
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.home-campaign-content h2 {
    margin: 0;
    font-size: clamp(2rem, 3.4vw, 3.4rem);
    font-weight: 700;
    line-height: 1.04;
}

.home-campaign-content p {
    margin: 1rem 0 0;
    font-size: 1.08rem;
    line-height: 1.7;
    font-weight: 600;
}

.home-campaign-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.5rem;
}

/* =========================================================
   PRESENÇA / MAPA
   Não mexer no SVG. Apenas layout do entorno.
   ========================================================= */

.home-presence-section {
    background: var(--alfa-background);
    border-top: 1px solid rgba(15, 23, 42, .08);
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.home-presence-content {
    max-width: 600px;
}

.home-presence-content h2 {
    margin: 0;
    color: var(--alfa-neutra-escura);
    font-size: clamp(2rem, 3.4vw, 3.4rem);
    font-weight: 700;
    line-height: 1.05;
}

.home-presence-content p {
    margin: 1rem 0 0;
    color: var(--alfa-neutra-clara);
    font-size: 1.06rem;
    line-height: 1.75;
}

.home-presence-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 1.5rem;
}

/* Proteção para não alterar comportamento do mapa */
#svg-map,
.estado-map,
.estado-map-atendido,
.map-popout {
    /* intencionalmente sem alterações */
}
/* =========================================================
   NÚMEROS
   ========================================================= */

   .home-numbers-section {
    background: var(--alfa-background);
}

.home-numbers-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.home-number-card {
    min-height: 165px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 1.25rem;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .10);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .07);
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.home-number-card:hover {
    transform: translateY(-4px);
    border-color: rgba(222, 30, 62, .28);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .11);
}

.home-number-card-primary {
    background: var(--alfa-destaque);
    color: #ffffff;
}

.home-number-icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: .85rem;
    border-radius: 14px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: 1.25rem;
}

.home-number-card-primary .home-number-icon {
    color: var(--alfa-destaque);
    background: #ffffff;
}

.home-number-card strong {
    display: block;
    color: var(--alfa-neutra-escura);
    font-size: clamp(1.7rem, 2.6vw, 2.45rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.045em;
}

.home-number-card-primary strong {
    color: #ffffff;
}

.home-number-card span {
    display: block;
    margin-top: .5rem;
    color: var(--alfa-neutra-clara);
    font-size: .9rem;
    font-weight: 750;
    line-height: 1.35;
}

.home-number-card-primary span {
    color: rgba(255, 255, 255, .88);
}

/* Tablet */
@media (max-width: 1199.98px) {
    .home-numbers-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Mobile grande */
@media (max-width: 767.98px) {
    .home-numbers-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .home-number-card {
        min-height: 145px;
        padding: 1rem;
        border-radius: 18px;
    }

    .home-number-icon {
        width: 40px;
        height: 40px;
        min-width: 40px;
        border-radius: 12px;
        font-size: 1.1rem;
    }
}

/* Mobile pequeno */
@media (max-width: 420px) {
    .home-numbers-grid {
        grid-template-columns: 1fr;
    }

    .home-number-card {
        min-height: auto;
    }
}
/* =========================================================
   SERVIÇOS RÁPIDOS
   ========================================================= */

.home-services-section {
    position: relative;
    overflow: hidden;
    background: #f4f5f7;
}

.home-services-intro {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr);
    align-items: end;
    gap: clamp(2rem, 6vw, 6rem);
    margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.home-services-heading {
    max-width: 760px;
}

.home-services-heading .home-kicker {
    position: relative;
    align-items: center;
    gap: .7rem;
}

.home-services-heading .home-kicker::before {
    content: "";
    width: 30px;
    height: 2px;
    background: currentColor;
}

.home-services-heading h2 {
    max-width: 720px;
    margin: 0;
    color: var(--alfa-neutra-escura);
    font-size: clamp(2.25rem, 4vw, 4rem);
    font-weight: 750;
    line-height: 1;
    text-wrap: balance;
}

.home-services-intro > p {
    margin: 0 0 .35rem;
    padding-left: 1.4rem;
    border-left: 2px solid rgba(222, 30, 62, .55);
    color: var(--alfa-neutra-clara);
    font-size: 1.02rem;
    line-height: 1.7;
}

.home-service-card {
    --service-accent: var(--alfa-destaque);
    width: 100%;
    height: 100%;
    min-height: 310px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 1.4rem;
    border: 1px solid rgba(15, 23, 42, .11);
    border-top: 4px solid var(--service-accent);
    background: #ffffff;
    color: var(--alfa-neutra-clara);
    text-align: left;
    text-decoration: none;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .07);
    cursor: pointer;
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.home-service-card:hover,
.home-service-card:focus-visible {
    color: var(--alfa-neutra-clara);
    transform: translateY(-8px);
    border-color: color-mix(in srgb, var(--service-accent) 45%, transparent);
    box-shadow: 0 24px 54px rgba(15, 23, 42, .14);
}

.home-service-card:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--service-accent) 25%, transparent);
    outline-offset: 4px;
}

.home-service-card-top {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.45rem;
}

.home-service-card-top > i {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: var(--service-accent);
    background: color-mix(in srgb, var(--service-accent) 10%, white);
    font-size: 1.5rem;
    transition: color .25s ease, background-color .25s ease, transform .25s ease;
}

.home-service-card:hover .home-service-card-top > i,
.home-service-card:focus-visible .home-service-card-top > i {
    color: #ffffff;
    background: var(--service-accent);
    transform: rotate(-4deg) scale(1.05);
}

.home-service-card-top small {
    color: rgba(15, 23, 42, .28);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.home-service-card-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .7rem;
}

.home-service-card-content strong {
    color: var(--alfa-neutra-escura);
    font-size: 1.3rem;
    font-weight: 750;
    line-height: 1.15;
}

.home-service-card-content > span {
    color: var(--alfa-neutra-clara);
    font-size: .94rem;
    line-height: 1.6;
}

.home-service-card-action {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-top: auto;
    padding-top: 1.15rem;
    border-top: 1px solid rgba(15, 23, 42, .08);
    color: var(--service-accent);
    font-size: .82rem;
    font-weight: 800;
}

.home-service-card-action i {
    font-size: 1rem;
    transition: transform .25s ease;
}

.home-service-card:hover .home-service-card-action i,
.home-service-card:focus-visible .home-service-card-action i {
    transform: translateX(5px);
}

.home-service-card-deadline {
    --service-accent: #b9243e;
}

.home-service-card-location {
    --service-accent: #8f2638;
}

.home-service-card-document {
    --service-accent: #611d2a;
}

@media (max-width: 991.98px) {
    .home-services-intro {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .home-services-intro > p {
        max-width: 680px;
    }

    .home-service-card {
        min-height: 285px;
    }
}

@media (max-width: 575.98px) {
    .home-services-heading h2 {
        font-size: clamp(2rem, 10vw, 2.65rem);
    }

    .home-services-intro > p {
        padding-left: 1rem;
        font-size: .96rem;
    }

    .home-services-section .row {
        --bs-gutter-y: 1rem;
    }

    .home-service-card {
        min-height: 265px;
        padding: 1.25rem;
    }

    .home-service-card-top {
        margin-bottom: 1.15rem;
    }
}

/* =========================================================
   PERFIS DE CARGA
   ========================================================= */

.home-load-profiles-section {
    background: var(--alfa-background);
}

.home-load-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 2rem;
    border-radius: 30px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .10);
    box-shadow: 0 12px 34px rgba(15, 23, 42, .08);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.home-load-card:hover {
    transform: translateY(-6px);
    border-color: rgba(222, 30, 62, .28);
    box-shadow: 0 18px 46px rgba(15, 23, 42, .13);
}

.home-load-icon {
    width: 58px;
    height: 58px;
    min-width: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
    border-radius: 20px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: 1.55rem;
}

.home-load-card h3 {
    margin: 0 0 .85rem;
    color: var(--alfa-neutra-escura);
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.1;
}

.home-load-card p {
    margin: 0;
    color: var(--alfa-neutra-clara);
    line-height: 1.75;
    font-size: 1rem;
}

.home-load-warning {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 2rem;
    padding: 1.5rem;
    border-radius: 30px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .10);
    box-shadow: 0 12px 34px rgba(15, 23, 42, .08);
}

.home-load-warning-icon {
    width: 58px;
    height: 58px;
    min-width: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: 1.5rem;
}

.home-load-warning-text {
    flex: 1;
}

.home-load-warning-text span {
    display: inline-flex;
    margin-bottom: .25rem;
    color: var(--alfa-destaque);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.home-load-warning-text h3 {
    margin: 0 0 .35rem;
    color: var(--alfa-neutra-escura);
    font-size: 1.4rem;
    font-weight: 700;
}

.home-load-warning-text p {
    margin: 0;
    color: var(--alfa-neutra-clara);
    line-height: 1.6;
}

.home-load-warning .btn {
    white-space: nowrap;
}

/* =========================================================
   MODAL PERFIS NÃO TRANSPORTADOS
   Mantém conteúdo, melhora visual
   ========================================================= */

#perfisNaoTransportados .modal-content {
    border-radius: 30px !important;
    overflow: hidden;
    border: 0;
    box-shadow: 0 24px 80px rgba(15, 23, 42, .24);
}

#perfisNaoTransportados .modal-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

#perfisNaoTransportados .modal-title {
    color: var(--alfa-neutra-escura);
    font-weight: 700;
    letter-spacing: -.025em;
}

#perfisNaoTransportados .modal-body {
    background: var(--alfa-background);
}

#perfisNaoTransportados .list-group {
    gap: .45rem;
}

#perfisNaoTransportados .list-group-item {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 14px;
    margin-bottom: .45rem;
    color: var(--alfa-neutra-escura);
    line-height: 1.45;
    background: #ffffff;
}

/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 991.98px) {
    .home-section {
        padding: 4rem 0;
    }

    .home-campaign-card {
        padding: 1.35rem;
        border-radius: 26px;
    }

    .home-numbers-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .home-number-card,
    .home-number-card:nth-child(1),
    .home-number-card:nth-child(5) {
        grid-column: span 1;
    }

    .home-presence-content,
    .home-presence-content h2,
    .home-presence-content p {
        max-width: 100%;
    }

    .home-load-card,
    .home-service-card {
        border-radius: 24px;
        padding: 1.5rem;
    }

    .home-load-warning {
        flex-direction: column;
        align-items: flex-start;
        border-radius: 24px;
    }

    .home-load-warning .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .home-section {
        padding: 3.25rem 0;
    }

    .home-section-heading h2,
    .home-presence-content h2,
    .home-campaign-content h2 {
        font-size: 2rem;
    }

    .home-section-heading p,
    .home-presence-content p {
        font-size: 1rem;
    }

    .home-numbers-grid {
        grid-template-columns: 1fr;
    }

    .home-presence-actions,
    .home-campaign-actions {
        flex-direction: column;
    }

    .home-presence-actions .btn,
    .home-campaign-actions .btn {
        width: 100%;
    }

    .home-number-card {
        min-height: auto;
    }

    .home-load-card h3 {
        font-size: 1.35rem;
    }

    .home-load-warning-text h3 {
        font-size: 1.25rem;
    }
}

/* =========================================================
   MODAL - PERFIS NÃO TRANSPORTADOS
   Tratativa exclusiva para #perfisNaoTransportados
   Sem gradientes
   ========================================================= */

   #perfisNaoTransportados {
    z-index: 7010;
}

#perfisNaoTransportados + .modal-backdrop,
.modal-backdrop.show {
    z-index: 7000;
}

#perfisNaoTransportados .modal-dialog {
    max-width: 1120px;
}

#perfisNaoTransportados .modal-content {
    border: 0;
    border-radius: 30px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 26px 80px rgba(15, 23, 42, .24);
}

#perfisNaoTransportados .alfa-restricoes-header {
    position: sticky;
    top: 0;
    z-index: 3;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.6rem 1.8rem;
    background: #ffffff;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

#perfisNaoTransportados .alfa-restricoes-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .45rem;
    color: var(--alfa-destaque);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
}

#perfisNaoTransportados .modal-title {
    margin: 0;
    color: var(--alfa-neutra-escura);
    font-size: clamp(1.5rem, 2.5vw, 2.2rem);
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.035em;
}

#perfisNaoTransportados .alfa-restricoes-header p {
    max-width: 760px;
    margin: .55rem 0 0;
    color: var(--alfa-neutra-clara);
    line-height: 1.55;
}

#perfisNaoTransportados .btn-close {
    margin-top: .2rem;
    box-shadow: none;
}

#perfisNaoTransportados .alfa-restricoes-body {
    padding: 1.6rem;
    background: var(--alfa-background);
}

#perfisNaoTransportados .alfa-restricoes-alert {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    margin-bottom: 1.2rem;
    padding: 1rem 1.15rem;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .08);
}

#perfisNaoTransportados .alfa-restricoes-alert i {
    width: 40px;
    height: 40px;
    min-width: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: 1.15rem;
}

#perfisNaoTransportados .alfa-restricoes-alert strong {
    display: block;
    color: var(--alfa-neutra-escura);
    font-weight: 700;
    line-height: 1.2;
}

#perfisNaoTransportados .alfa-restricoes-alert span {
    display: block;
    margin-top: .2rem;
    color: var(--alfa-neutra-clara);
    line-height: 1.5;
}

#perfisNaoTransportados .alfa-restricoes-box {
    height: 100%;
    padding: 1.25rem;
    border-radius: 24px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}

#perfisNaoTransportados .alfa-restricoes-box-header {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

#perfisNaoTransportados .alfa-restricoes-box-header > i {
    width: 46px;
    height: 46px;
    min-width: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: 1.25rem;
}

#perfisNaoTransportados .alfa-restricoes-box-header h6 {
    margin: 0;
    color: var(--alfa-neutra-escura);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
}

#perfisNaoTransportados .alfa-restricoes-box-header p {
    margin: .25rem 0 0;
    color: var(--alfa-neutra-clara);
    font-size: .92rem;
    line-height: 1.45;
}

#perfisNaoTransportados .alfa-restricoes-list {
    list-style: none;
    display: grid;
    gap: .55rem;
    padding: 0;
    margin: 0;
}

#perfisNaoTransportados .alfa-restricoes-list-scroll {
    max-height: 430px;
    overflow-y: auto;
    padding-right: .35rem;
}

#perfisNaoTransportados .alfa-restricoes-list li {
    position: relative;
    padding: .78rem .85rem .78rem 2.35rem;
    border-radius: 16px;
    color: var(--alfa-neutra-escura);
    background: #f8f9fb;
    border: 1px solid rgba(15, 23, 42, .08);
    line-height: 1.45;
}

#perfisNaoTransportados .alfa-restricoes-list li::before {
    content: "!";
    position: absolute;
    top: .72rem;
    left: .85rem;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: .78rem;
    font-weight: 700;
}

#perfisNaoTransportados .alfa-restricoes-list-scroll::-webkit-scrollbar {
    width: 8px;
}

#perfisNaoTransportados .alfa-restricoes-list-scroll::-webkit-scrollbar-track {
    background: #eef0f3;
    border-radius: 999px;
}

#perfisNaoTransportados .alfa-restricoes-list-scroll::-webkit-scrollbar-thumb {
    background: var(--alfa-destaque);
    border-radius: 999px;
}

#perfisNaoTransportados .alfa-restricoes-footer {
    padding: 1rem 1.6rem;
    background: #ffffff;
    border-top: 1px solid rgba(15, 23, 42, .08);
}

@media (max-width: 991.98px) {
    #perfisNaoTransportados .modal-dialog {
        margin: .75rem;
    }

    #perfisNaoTransportados .alfa-restricoes-header {
        padding: 1.25rem;
    }

    #perfisNaoTransportados .alfa-restricoes-body {
        padding: 1rem;
    }

    #perfisNaoTransportados .alfa-restricoes-list-scroll {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }
}

@media (max-width: 575.98px) {
    #perfisNaoTransportados .modal-content {
        border-radius: 22px;
    }

    #perfisNaoTransportados .alfa-restricoes-box {
        border-radius: 20px;
        padding: 1rem;
    }

    #perfisNaoTransportados .alfa-restricoes-box-header {
        flex-direction: column;
    }

    #perfisNaoTransportados .alfa-restricoes-alert {
        flex-direction: column;
    }
}
/* =========================================================
   PADRONIZAÇÃO DE FONTES - INDEX
   Usa variáveis do modern.css
   ========================================================= */

   .home-page,
   .home-page p,
   .home-page li,
   .home-page a,
   .home-page button {
       font-size: var(--fs-base);
   }
   
   .home-section-heading span,
   .home-kicker,
   .home-campaign-content span,
   .home-fallback-kicker,
   .home-fallback-panel-header span,
   .home-load-warning-text span {
       font-size: var(--fs-xs);
   }
   
   .home-section-heading h2,
   .home-campaign-content h2,
   .home-presence-content h2 {
       font-size: var(--fs-3xl);
       line-height: var(--lh-tight);
   }
   
   /*
      Importante:
      Não aplicar fs-hero nos títulos cadastráveis do header.
      O título 1 e título 2 são controlados pelo bloco específico:
      .home-header-title-1
      .home-header-title-2
   */
   .header-carousel .title-header:not(.home-header-title-1):not(.home-header-title-2),
   .header-carousel .header-bg .title-header:not(.home-header-title-1):not(.home-header-title-2),
   .header-single .title-header:not(.home-header-title-1):not(.home-header-title-2),
   .header-single .header-bg .title-header:not(.home-header-title-1):not(.home-header-title-2),
   .home-fallback-content h1:not(.home-header-title-1):not(.home-header-title-2) {
       font-size: var(--fs-hero) !important;
       line-height: var(--lh-tight);
   }
   
   .header-carousel .lead,
   .home-section-heading p,
   .home-campaign-content p,
   .home-presence-content p,
   .home-fallback-content p {
       font-size: var(--fs-md);
       line-height: 1.55;
   }
   
   .home-fallback-panel-header h2,
   .home-load-card h3,
   .home-load-warning-text h3,
   .home-service-card strong {
       font-size: var(--fs-xl);
       line-height: var(--lh-title);
   }
   
   .home-number-card strong {
       font-size: var(--fs-2xl);
   }
   
   .home-number-card span,
   .home-service-card span,
   .home-load-card p,
   .home-load-warning-text p,
   .home-fallback-links small {
       font-size: var(--fs-sm);
   }
   
   .home-fallback-links strong {
       font-size: var(--fs-base);
   }
   
   @media (min-width: 992px) and (max-width: 1199.98px) {
       .home-section {
           padding: 4rem 0;
       }
   }
   
   @media (max-width: 991.98px) {
       .home-section {
           padding: 3.5rem 0;
       }
   
       .home-section-heading {
           margin-bottom: 2rem;
       }
   
       .header-carousel .header-bg .title-header:not(.home-header-title-1):not(.home-header-title-2),
       .header-carousel .title-header:not(.home-header-title-1):not(.home-header-title-2),
       .header-single .header-bg .title-header:not(.home-header-title-1):not(.home-header-title-2),
       .header-single .title-header:not(.home-header-title-1):not(.home-header-title-2),
       .home-fallback-content h1:not(.home-header-title-1):not(.home-header-title-2) {
           font-size: var(--fs-hero) !important;
       }
   }
   
   @media (max-width: 575.98px) {
       .home-section {
           padding: 3rem 0;
       }
   
       .home-section-heading h2,
       .home-campaign-content h2,
       .home-presence-content h2 {
           font-size: var(--fs-2xl);
       }
   }

/* =========================================================
   NOTÍCIA DESTAQUE NO HEADER
   ========================================================= */

   .home-featured-news {
    width: min(100%, 560px);
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin-top: 1rem;
    padding: .85rem 1rem;
    border-radius: 18px;
    color: #ffffff;
    text-decoration: none;
    background: rgba(255, 255, 255, .11);
    border: 1px solid rgba(255, 255, 255, .18);
    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.home-featured-news:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .28);
    transform: translateY(-2px);
}

.home-featured-news span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--alfa-apoio);
    font-size: var(--fs-xs, .76rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.home-featured-news strong {
    color: #ffffff;
    font-size: var(--fs-base, .92rem);
    font-weight: 850;
    line-height: 1.3;
}

@media (max-width: 575.98px) {
    .home-featured-news {
        padding: .75rem .85rem;
        border-radius: 16px;
    }

    .home-featured-news strong {
        font-size: var(--fs-sm, .84rem);
    }
}

/* =========================================================
   PESQUISA DE CLIMA NA HOME
   ========================================================= */

   .home-survey-section {
    background: var(--alfa-background);
}

.home-survey-card {
    padding: 2rem;
    border-radius: 34px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, .10);
    box-shadow: 0 18px 48px rgba(15, 23, 42, .12);
}

.home-survey-kicker {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .65rem;
    color: var(--alfa-destaque);
    font-size: var(--fs-xs, .76rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.home-survey-card h2 {
    max-width: 780px;
    margin: 0;
    color: var(--alfa-neutra-escura);
    font-size: var(--fs-3xl, clamp(2rem, 3.5vw, 3.4rem));
    font-weight: 700;
    line-height: 1.05;
    letter-spacing: -.045em;
}

.home-survey-card p {
    max-width: 760px;
    margin: 1rem 0 0;
    color: var(--alfa-neutra-clara);
    font-size: var(--fs-md, 1rem);
    line-height: 1.65;
}

.home-survey-action {
    height: 100%;
    padding: 1.25rem;
    border-radius: 26px;
    background: var(--alfa-background);
    border: 1px solid rgba(15, 23, 42, .08);
}

.home-survey-icon {
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    border-radius: 20px;
    color: #ffffff;
    background: var(--alfa-destaque);
    font-size: 1.55rem;
}

.home-survey-action strong {
    display: block;
    color: var(--alfa-neutra-escura);
    font-size: var(--fs-lg, 1.12rem);
    font-weight: 700;
    line-height: 1.2;
}

.home-survey-action span {
    display: block;
    margin-top: .35rem;
    color: var(--alfa-neutra-clara);
    line-height: 1.5;
}

@media (max-width: 991.98px) {
    .home-survey-card {
        padding: 1.35rem;
        border-radius: 26px;
    }

    .home-survey-action {
        border-radius: 22px;
    }
}

@media (max-width: 575.98px) {
    .home-survey-card {
        padding: 1.15rem;
        border-radius: 22px;
    }

    .home-survey-card h2 {
        font-size: var(--fs-2xl, 2rem);
    }

    .home-survey-icon {
        width: 48px;
        height: 48px;
        border-radius: 16px;
        font-size: 1.25rem;
    }
}

.header-carousel .home-fallback-content {
    max-width: 760px;
}

.header-carousel .home-fallback-panel {
    max-width: 460px;
    margin-left: auto;
}

.header-carousel .home-fallback-actions {
    flex-direction: column;
    align-items: flex-start;
}

.header-carousel .home-fallback-actions .btn,
.header-carousel .home-featured-news {
    width: fit-content;
}

/* =========================================================
   HOME - AÇÕES DO HEADER / FALLBACK PADRONIZADAS
   Aplica igual com imagem cadastrada e sem imagem
   ========================================================= */

   .home-fallback-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .75rem;
    width: 100%;
    margin-top: 1.35rem;
}

.home-fallback-actions .btn,
.home-fallback-actions .home-featured-news {
    width: fit-content;
    max-width: min(100%, 520px);
}

.home-fallback-actions .btn {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .65rem 1rem;
    border-radius: 999px;
    font-weight: 850;
    white-space: nowrap;
}

.home-featured-news {
    display: inline-flex;
    flex-direction: column;
    gap: .25rem;
    padding: .75rem 1rem;
    border-radius: 20px;
    color: var(--alfa-neutra-escura);
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 255, 255, .60);
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .14);
    backdrop-filter: blur(10px);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.home-featured-news:hover {
    color: var(--alfa-neutra-escura);
    transform: translateY(-2px);
    border-color: rgba(222, 30, 62, .24);
    box-shadow: 0 16px 38px rgba(15, 23, 42, .18);
}

.home-featured-news span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--alfa-destaque);
    font-size: var(--fs-xs, .76rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.home-featured-news strong {
    display: block;
    color: var(--alfa-neutra-escura);
    font-size: var(--fs-sm, .84rem);
    font-weight: 700;
    line-height: 1.2;
}

/* Remove diferenças quando estiver dentro do carrossel */
.header-carousel .home-fallback-actions,
.home-fallback-hero .home-fallback-actions {
    flex-direction: column;
    align-items: flex-start;
}

.header-carousel .home-fallback-actions .btn,
.header-carousel .home-fallback-actions .home-featured-news,
.home-fallback-hero .home-fallback-actions .btn,
.home-fallback-hero .home-fallback-actions .home-featured-news {
    width: fit-content;
    max-width: min(100%, 520px);
}

/* Mobile/tablet: ocupa largura total */
@media (max-width: 991.98px) {
    .home-fallback-actions {
        align-items: stretch;
    }

    .home-fallback-actions .btn,
    .home-fallback-actions .home-featured-news,
    .header-carousel .home-fallback-actions .btn,
    .header-carousel .home-fallback-actions .home-featured-news,
    .home-fallback-hero .home-fallback-actions .btn,
    .home-fallback-hero .home-fallback-actions .home-featured-news {
        width: 100%;
        max-width: 100%;
    }
}

/* =========================================================
   HOME FALLBACK HERO - INTERATIVO COMPLETO
   Afeta somente o ELSE: .home-fallback-hero
   Objetivo: tudo no header fallback ter movimento ou resposta
   Sem alterar HTML, carrossel, modais ou SVG do mapa
   ========================================================= */

.home-fallback-hero {
    isolation: isolate;
    overflow: hidden;
}

/* Garante que o conteúdo continue acima das camadas animadas */
.home-fallback-hero .container,
.home-fallback-hero .home-fallback-content,
.home-fallback-hero .home-fallback-panel {
    position: relative;
    z-index: 1;
}

/* 1) Camada das curvas: movimento constante e mais perceptível */
.home-fallback-hero::before {
    inset: -7%;
    opacity: .72;
    background-position: 92% 50%;
    background-size: 112% auto;
    transform: translate3d(0, 0, 0) scale(1.02);
    transform-origin: center;
    animation: alfaAliveCurvas 24s ease-in-out infinite alternate;
    will-change: transform, background-position, opacity;
}

/* 2) Camada de luz: respiração visual no fundo */
.home-fallback-hero::after {
    animation: alfaAliveLuzes 13s ease-in-out infinite alternate;
    will-change: opacity, filter;
}

@keyframes alfaAliveCurvas {
    0% {
        background-position: 96% 48%;
        transform: translate3d(0, 0, 0) scale(1.02);
        opacity: .54;
    }

    25% {
        background-position: 88% 52%;
        transform: translate3d(-16px, 7px, 0) scale(1.04);
        opacity: .66;
    }

    55% {
        background-position: 98% 57%;
        transform: translate3d(18px, -7px, 0) scale(1.055);
        opacity: .76;
    }

    100% {
        background-position: 90% 46%;
        transform: translate3d(-12px, 12px, 0) scale(1.07);
        opacity: .84;
    }
}

@keyframes alfaAliveLuzes {
    0% {
        opacity: .82;
        filter: saturate(1) brightness(1);
    }

    50% {
        opacity: .94;
        filter: saturate(1.12) brightness(1.03);
    }

    100% {
        opacity: 1;
        filter: saturate(1.22) brightness(1.05);
    }
}

/* 3) Bloco textual: entrada suave */
.home-fallback-hero .home-fallback-content {
    animation: alfaAliveContentEnter .85s ease both;
}

@keyframes alfaAliveContentEnter {
    from {
        opacity: 0;
        transform: translateY(22px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 4) Kicker: chama atenção sem sair do lugar */
.home-fallback-hero .home-fallback-kicker {
    position: relative;
    overflow: hidden;
    animation: alfaAliveKickerPulse 3.8s ease-in-out infinite;
    transition:
        transform .22s ease,
        background .22s ease,
        border-color .22s ease;
}

.home-fallback-hero .home-fallback-kicker::after {
    content: "";
    position: absolute;
    top: -40%;
    bottom: -40%;
    left: -35%;
    width: 28%;
    background: rgba(255, 255, 255, .22);
    transform: rotate(18deg) translateX(-160%);
    animation: alfaAliveSweep 5.5s ease-in-out infinite;
    pointer-events: none;
}

.home-fallback-hero .home-fallback-kicker:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .28);
}

@keyframes alfaAliveKickerPulse {
    0%, 100% {
        box-shadow: 0 0 0 rgba(255, 255, 255, 0);
    }

    50% {
        box-shadow: 0 12px 30px rgba(0, 0, 0, .16);
    }
}

@keyframes alfaAliveSweep {
    0%, 35% {
        transform: rotate(18deg) translateX(-170%);
    }

    58%, 100% {
        transform: rotate(18deg) translateX(520%);
    }
}

/* 5) Título e parágrafo: reação ao mouse */
.home-fallback-hero .home-fallback-content h1,
.home-fallback-hero .home-fallback-content p {
    transition:
        transform .25s ease,
        text-shadow .25s ease,
        color .25s ease,
        opacity .25s ease;
}

.home-fallback-hero .home-fallback-content:hover h1 {
    transform: translateY(-3px);
    text-shadow: 0 18px 42px rgba(0, 0, 0, .28);
}

.home-fallback-hero .home-fallback-content:hover p {
    transform: translateY(-1px);
    color: rgba(255, 255, 255, .88);
}

/* 6) Ações: botão e notícia com vida própria */
.home-fallback-hero .home-fallback-actions .btn,
.home-fallback-hero .home-featured-news {
    position: relative;
    overflow: hidden;
    transition:
        transform .22s ease,
        box-shadow .22s ease,
        border-color .22s ease,
        background-color .22s ease,
        color .22s ease;
}

.home-fallback-hero .home-fallback-actions .btn {
    animation: alfaAliveButtonBreath 4.2s ease-in-out infinite;
}

.home-fallback-hero .home-fallback-actions .btn:hover {
    transform: translateY(-4px) scale(1.015);
    box-shadow: 0 18px 38px rgba(0, 0, 0, .24);
}

.home-fallback-hero .home-fallback-actions .btn i {
    transition: transform .22s ease;
}

.home-fallback-hero .home-fallback-actions .btn:hover i {
    animation: alfaAliveIconDown .7s ease-in-out infinite;
}

@keyframes alfaAliveButtonBreath {
    0%, 100% {
        box-shadow: 0 8px 18px rgba(0, 0, 0, .10);
    }

    50% {
        box-shadow: 0 14px 30px rgba(0, 0, 0, .18);
    }
}

@keyframes alfaAliveIconDown {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(4px);
    }
}

.home-fallback-hero .home-featured-news::after {
    content: "";
    position: absolute;
    top: -45%;
    bottom: -45%;
    left: -30%;
    width: 22%;
    background: rgba(222, 30, 62, .12);
    transform: rotate(18deg) translateX(-170%);
    transition: transform .45s ease;
    pointer-events: none;
}

.home-fallback-hero .home-featured-news:hover {
    transform: translateY(-5px) scale(1.01);
    border-color: rgba(222, 30, 62, .34);
    box-shadow: 0 18px 42px rgba(15, 23, 42, .22);
}

.home-fallback-hero .home-featured-news:hover::after {
    transform: rotate(18deg) translateX(560%);
}

.home-fallback-hero .home-featured-news span i {
    transition: transform .22s ease;
}

.home-fallback-hero .home-featured-news:hover span i {
    transform: rotate(-8deg) scale(1.1);
}

/* 7) Painel lateral: destaque contínuo + resposta no hover */
.home-fallback-hero .home-fallback-panel {
    position: relative;
    overflow: hidden;
    animation: alfaAlivePanelGlow 5.8s ease-in-out infinite;
    transition:
        transform .24s ease,
        box-shadow .24s ease,
        border-color .24s ease,
        background .24s ease;
}

.home-fallback-hero .home-fallback-panel::before {
    content: "";
    position: absolute;
    top: -50%;
    left: -55%;
    width: 44%;
    height: 200%;
    background: rgba(255, 255, 255, .10);
    transform: rotate(18deg) translateX(-140%);
    animation: alfaAlivePanelSweep 7s ease-in-out infinite;
    pointer-events: none;
}

.home-fallback-hero .home-fallback-panel:hover {
    transform: translateY(-6px);
    border-color: rgba(255, 255, 255, .30);
    background: rgba(255, 255, 255, .115);
    box-shadow: 0 36px 90px rgba(0, 0, 0, .30);
}

@keyframes alfaAlivePanelGlow {
    0%, 100% {
        box-shadow: 0 30px 80px rgba(0, 0, 0, .22);
    }

    50% {
        box-shadow: 0 34px 90px rgba(0, 0, 0, .30);
    }
}

@keyframes alfaAlivePanelSweep {
    0%, 42% {
        transform: rotate(18deg) translateX(-150%);
    }

    72%, 100% {
        transform: rotate(18deg) translateX(520%);
    }
}

/* 8) Cabeçalho do painel */
.home-fallback-hero .home-fallback-panel-header span {
    animation: alfaAlivePanelKicker 3.6s ease-in-out infinite;
}

.home-fallback-hero .home-fallback-panel-header h2 {
    transition: transform .22s ease, text-shadow .22s ease;
}

.home-fallback-hero .home-fallback-panel:hover .home-fallback-panel-header h2 {
    transform: translateY(-2px);
    text-shadow: 0 12px 30px rgba(0, 0, 0, .26);
}

@keyframes alfaAlivePanelKicker {
    0%, 100% {
        opacity: .82;
    }

    50% {
        opacity: 1;
    }
}

/* 9) Cada serviço rápido responde: linha, ícone e textos */
.home-fallback-hero .home-fallback-links a,
.home-fallback-hero .home-fallback-links button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform .22s ease,
        background .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.home-fallback-hero .home-fallback-links a::after,
.home-fallback-hero .home-fallback-links button::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(255, 255, 255, .11);
    transform: translateX(-105%);
    transition: transform .34s ease;
    pointer-events: none;
}

.home-fallback-hero .home-fallback-links a:hover,
.home-fallback-hero .home-fallback-links button:hover {
    transform: translateX(5px) translateY(-2px);
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .30);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
}

.home-fallback-hero .home-fallback-links a:hover::after,
.home-fallback-hero .home-fallback-links button:hover::after {
    transform: translateX(0);
}

.home-fallback-hero .home-fallback-links i {
    transition:
        transform .24s ease,
        box-shadow .24s ease,
        color .24s ease,
        background .24s ease;
}

.home-fallback-hero .home-fallback-links a:hover i,
.home-fallback-hero .home-fallback-links button:hover i {
    transform: scale(1.1) rotate(-5deg);
    box-shadow: 0 10px 24px rgba(0, 0, 0, .20);
}

.home-fallback-hero .home-fallback-links strong,
.home-fallback-hero .home-fallback-links small {
    transition: transform .22s ease, color .22s ease, opacity .22s ease;
}

.home-fallback-hero .home-fallback-links a:hover strong,
.home-fallback-hero .home-fallback-links button:hover strong {
    transform: translateX(2px);
}

.home-fallback-hero .home-fallback-links a:hover small,
.home-fallback-hero .home-fallback-links button:hover small {
    color: rgba(255, 255, 255, .88);
}

/* 10) Foco visível para teclado */
.home-fallback-hero .home-fallback-links a:focus-visible,
.home-fallback-hero .home-fallback-links button:focus-visible,
.home-fallback-hero .home-fallback-actions .btn:focus-visible,
.home-fallback-hero .home-featured-news:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .78);
    outline-offset: 4px;
}

/* Responsivo: mantém vivo, mas menos agressivo */
@media (max-width: 991.98px) {
    .home-fallback-hero::before {
        inset: -5%;
        background-size: auto 108%;
        animation-duration: 28s;
    }

    .home-fallback-hero .home-fallback-links a:hover,
    .home-fallback-hero .home-fallback-links button:hover {
        transform: translateY(-2px);
    }
}

@media (max-width: 575.98px) {
    .home-fallback-hero::before {
        inset: -4%;
        opacity: .40;
        background-size: auto 105%;
        animation-duration: 32s;
    }

    .home-fallback-hero::after {
        animation-duration: 18s;
    }

    .home-fallback-hero .home-fallback-panel,
    .home-fallback-hero .home-fallback-actions .btn {
        animation: none;
    }

    .home-fallback-hero .home-fallback-panel:hover,
    .home-fallback-hero .home-fallback-actions .btn:hover,
    .home-fallback-hero .home-featured-news:hover {
        transform: none;
    }
}

/* Acessibilidade: respeita usuários que preferem menos movimento */
@media (prefers-reduced-motion: reduce) {
    .home-fallback-hero::before,
    .home-fallback-hero::after,
    .home-fallback-hero .home-fallback-content,
    .home-fallback-hero .home-fallback-kicker,
    .home-fallback-hero .home-fallback-kicker::after,
    .home-fallback-hero .home-fallback-actions .btn,
    .home-fallback-hero .home-fallback-actions .btn:hover i,
    .home-fallback-hero .home-fallback-panel,
    .home-fallback-hero .home-fallback-panel::before,
    .home-fallback-hero .home-fallback-panel-header span {
        animation: none !important;
    }

    .home-fallback-hero .home-fallback-content h1,
    .home-fallback-hero .home-fallback-content p,
    .home-fallback-hero .home-fallback-kicker,
    .home-fallback-hero .home-fallback-actions .btn,
    .home-fallback-hero .home-featured-news,
    .home-fallback-hero .home-fallback-panel,
    .home-fallback-hero .home-fallback-links a,
    .home-fallback-hero .home-fallback-links button,
    .home-fallback-hero .home-fallback-links i,
    .home-fallback-hero .home-fallback-links strong,
    .home-fallback-hero .home-fallback-links small {
        transition: none !important;
    }
}

/* =========================================================
   HOME - MAPA DO BRASIL RESPONSIVO / PROPORCIONAL
   ========================================================= */

.home-presence-section #svg-map {
    width: min(100%, 640px) !important;
    max-width: 640px !important;
    height: auto !important;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.home-presence-section .map-popout {
    transform: translateX(-5%) scale(1.02) rotateX(2deg);
    transform-origin: center bottom;
}

@media (hover: hover) {
    .home-presence-section .map-popout:hover,
    .home-presence-section .map-popout:focus {
        transform: translateX(-7%) scale(1.04) rotateX(0deg);
    }
}

@media (min-width: 1400px) {
    .home-presence-section #svg-map {
        width: min(100%, 680px) !important;
        max-width: 680px !important;
    }
}

@media (min-width: 1200px) and (max-width: 1399.98px) {
    .home-presence-section #svg-map {
        width: min(100%, 620px) !important;
        max-width: 620px !important;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .home-presence-section #svg-map {
        width: min(100%, 560px) !important;
        max-width: 560px !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .home-presence-section #svg-map {
        width: min(100%, 520px) !important;
        max-width: 520px !important;
        margin-top: 1.5rem;
    }

    .home-presence-section .map-popout,
    .home-presence-section .map-popout:hover,
    .home-presence-section .map-popout:focus {
        transform: translateY(-2%) scale(1.02) rotateX(2deg);
    }
}

@media (min-width: 576px) and (max-width: 767.98px) {
    .home-presence-section #svg-map {
        width: min(100%, 450px) !important;
        max-width: 450px !important;
        margin-top: 1.25rem;
    }

    .home-presence-section .map-popout,
    .home-presence-section .map-popout:hover,
    .home-presence-section .map-popout:focus {
        transform: translateY(-1%) scale(1.015) rotateX(2deg);
    }
}

@media (max-width: 575.98px) {
    .home-presence-section #svg-map {
        width: min(100%, 380px) !important;
        max-width: 380px !important;
        margin-top: 1rem;
    }

    .home-presence-section .map-popout,
    .home-presence-section .map-popout:hover,
    .home-presence-section .map-popout:focus {
        transform: translateY(-1%) scale(1.01) rotateX(2deg);
    }
}

/* =========================================================
   HEADER - TÍTULO 1 MENOR E TÍTULO 2 MAIOR (AJUSTADO RESPONSIVO)
   Controla os títulos do carrossel, fallback e banners únicos
   ========================================================= */

/* 1. DESKTOP PADRÃO (> 1200px) */
.header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-1,
.header-carousel .home-fallback-content .title-header.home-header-title-1,
.header-single .header-bg .home-fallback-content .title-header.home-header-title-1,
.header-single .home-fallback-content .title-header.home-header-title-1 {
    margin: 0 0 .28rem !important;
    font-size: clamp(1rem, 1.45vw, 1.55rem) !important;
    line-height: 1.08 !important;
    letter-spacing: -.035em !important;
    font-weight: 700 !important;
}

.header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-2,
.header-carousel .home-fallback-content .title-header.home-header-title-2,
.header-single .header-bg .home-fallback-content .title-header.home-header-title-2,
.header-single .home-fallback-content .title-header.home-header-title-2 {
    margin: 0 !important;
    font-size: clamp(2.5rem, 3.75vw, 3.65rem) !important;
    line-height: .98 !important;
    letter-spacing: -.055em !important;
    font-weight: 800 !important;
}

/* Espaçamento do parágrafo após os títulos */
.header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-2 + p,
.header-carousel .home-fallback-content .title-header.home-header-title-2 + p,
.header-single .header-bg .home-fallback-content .title-header.home-header-title-2 + p,
.header-single .home-fallback-content .title-header.home-header-title-2 + p {
    margin-top: 1rem !important;
}

.header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-1 + p,
.header-carousel .home-fallback-content .title-header.home-header-title-1 + p,
.header-single .header-bg .home-fallback-content .title-header.home-header-title-1 + p,
.header-single .home-fallback-content .title-header.home-header-title-1 + p {
    margin-top: .85rem !important;
}

/* 2. NOTEBOOKS MENORES / TELAS MÉDIAS (992px até 1199px) 
   Aqui resolvemos o problema da fonte ficar muito grande! */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-1,
    .header-carousel .home-fallback-content .title-header.home-header-title-1,
    .header-single .header-bg .home-fallback-content .title-header.home-header-title-1,
    .header-single .home-fallback-content .title-header.home-header-title-1 {
        font-size: 1.15rem !important; /* Tamanho fixo e elegante */
    }

    .header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-2,
    .header-carousel .home-fallback-content .title-header.home-header-title-2,
    .header-single .header-bg .home-fallback-content .title-header.home-header-title-2,
    .header-single .home-fallback-content .title-header.home-header-title-2 {
        font-size: 2.4rem !important; /* Reduzido de ~3rem para 2.4rem */
        line-height: 1 !important;
    }
}

/* 3. TABLETS E MOBILE GRANDE (até 991px) */
@media (max-width: 991.98px) {
    .header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-1,
    .header-carousel .home-fallback-content .title-header.home-header-title-1,
    .header-single .header-bg .home-fallback-content .title-header.home-header-title-1,
    .header-single .home-fallback-content .title-header.home-header-title-1 {
        font-size: 1.05rem !important;
        line-height: 1.1 !important;
    }

    .header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-2,
    .header-carousel .home-fallback-content .title-header.home-header-title-2,
    .header-single .header-bg .home-fallback-content .title-header.home-header-title-2,
    .header-single .home-fallback-content .title-header.home-header-title-2 {
        font-size: 2.15rem !important; /* Bem mais enxuto que o cálculo anterior */
        line-height: 1.05 !important;
    }
}

/* 4. MOBILE PEQUENO (até 575px) */
@media (max-width: 575.98px) {
    .header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-1,
    .header-carousel .home-fallback-content .title-header.home-header-title-1,
    .header-single .header-bg .home-fallback-content .title-header.home-header-title-1,
    .header-single .home-fallback-content .title-header.home-header-title-1 {
        font-size: 1rem !important;
        margin-bottom: .25rem !important;
    }

    .header-carousel .carousel-item .header-bg .home-fallback-content .title-header.home-header-title-2,
    .header-carousel .home-fallback-content .title-header.home-header-title-2,
    .header-single .header-bg .home-fallback-content .title-header.home-header-title-2,
    .header-single .home-fallback-content .title-header.home-header-title-2 {
        font-size: 1.75rem !important; /* Ajuste para não quebrar muitas linhas */
        line-height: 1.1 !important;
    }
}
/* =========================================================
   AJUSTES RESPONSIVOS - HOME FALLBACK PANEL
   Reduz o tamanho geral do painel, ícones e paddings
   ========================================================= */

/* COMPRESSÃO DO PAINEL PARA NOTEBOOKS (< 1400px) */
@media (max-width: 1399.98px) {
    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        max-width: 360px;
    }

    .home-fallback-panel {
        padding: 1rem;
    }

    .home-fallback-panel-header {
        padding: 0 0 .5rem;
    }

    .home-fallback-panel-header h2 {
        font-size: 1.3rem;
    }

    .home-fallback-links {
        gap: .35rem; 
    }

    .home-fallback-links a,
    .home-fallback-links button {
        padding: .5rem .75rem; 
        gap: .6rem;
        border-radius: 14px;
    }

    .home-fallback-links i {
        width: 32px;
        height: 32px;
        min-width: 32px;
        font-size: 1rem;
        border-radius: 10px;
    }

    .home-fallback-links strong {
        font-size: .88rem;
    }

    .home-fallback-links small {
        margin-top: 0;
        font-size: .72rem;
    }
}

/* COMPRESSÃO MÁXIMA PARA NOTEBOOKS MENORES (< 1200px) */
@media (max-width: 1199.98px) {
    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        max-width: 320px;
    }

    .home-fallback-panel {
        padding: .75rem;
    }

    .home-fallback-panel-header h2 {
        font-size: 1.15rem;
    }

    .home-fallback-links {
        gap: .25rem; 
    }

    .home-fallback-links a,
    .home-fallback-links button {
        padding: .4rem .6rem; 
    }

    .home-fallback-links small {
        display: none !important; 
    }
}

/* TABLET E MOBILE GRANDE (< 992px) */
@media (max-width: 991.98px) {
    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        max-width: 100%;
        margin: 1.25rem auto 0;
    }
    
    /* Retorna a descrição para mobile já que temos altura livre e scroll */
    .home-fallback-links small {
        display: block !important; 
    }
}

/* MOBILE PEQUENO (< 576px) */
@media (max-width: 575.98px) {
    .home-fallback-panel {
        padding: 1rem;
        border-radius: 20px;
    }

    .home-fallback-panel-header h2 {
        font-size: 1.35rem;
    }

    .home-fallback-links a,
    .home-fallback-links button {
        padding: .65rem;
        gap: .65rem;
        border-radius: 16px;
    }

    .home-fallback-links i {
        width: 36px;
        height: 36px;
        min-width: 36px;
        font-size: 1.05rem;
        border-radius: 12px;
    }

    .home-fallback-links strong {
        font-size: .92rem;
    }

    .home-fallback-links small {
        font-size: .75rem;
    }
}

/* =========================================================
   AJUSTES HOME - CONSISTÊNCIA DE LAYOUT
   ========================================================= */

.home-page .home-fallback-content,
.home-page .home-fallback-panel,
.home-page .home-featured-news,
.home-page .home-section-heading,
.home-page .home-campaign-content,
.home-page .home-load-card,
.home-page .home-load-warning,
#perfisNaoTransportados {
    min-width: 0;
}

.home-page .title-header,
.home-page .home-section-heading h2,
.home-page .home-campaign-content h2,
.home-page .home-fallback-panel-header h2,
.home-page .home-load-card h3,
.home-page .home-load-warning-text h3,
#perfisNaoTransportados .modal-title,
#perfisNaoTransportados h6 {
    letter-spacing: 0 !important;
    overflow-wrap: anywhere;
}

.home-page .home-fallback-kicker,
.home-page .home-section-heading span,
.home-page .home-kicker,
.home-page .home-campaign-content span,
.home-page .home-fallback-panel-header span,
.home-page .home-featured-news span,
.home-page .home-load-warning-text span,
#perfisNaoTransportados .alfa-restricoes-kicker {
    letter-spacing: 0 !important;
}

.home-page .home-fallback-content p,
.home-page .home-featured-news strong,
.home-page .home-fallback-links strong,
.home-page .home-fallback-links small,
.home-page .home-load-card p,
.home-page .home-load-warning-text p,
#perfisNaoTransportados p,
#perfisNaoTransportados li,
#perfisNaoTransportados span {
    overflow-wrap: anywhere;
}

.header-carousel .home-fallback-panel,
.header-single .home-fallback-panel {
    width: min(100%, 420px);
}

.home-fallback-links a,
.home-fallback-links button {
    min-height: 58px;
}

.home-services-section .row,
.home-load-profiles-section .row {
    align-items: stretch;
}

.home-service-card,
.home-load-card,
.home-number-card {
    min-width: 0;
}

#perfisNaoTransportados .modal-dialog {
    width: min(1120px, calc(100vw - 1.5rem));
}

#perfisNaoTransportados .modal-content {
    max-height: calc(100dvh - 1.5rem);
}

#perfisNaoTransportados .alfa-restricoes-header {
    position: relative;
    padding-right: 4.5rem;
}

#perfisNaoTransportados .btn-close {
    position: absolute;
    top: 1.45rem;
    right: 1.45rem;
}

#perfisNaoTransportados .alfa-restricoes-body {
    overflow-y: auto;
}

@media (max-width: 991.98px) {
    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        width: 100%;
    }

    .home-load-warning {
        align-items: stretch;
    }

    #perfisNaoTransportados .modal-content {
        max-height: calc(100dvh - 1rem);
    }
}

@media (max-width: 575.98px) {
    .home-page .home-section-heading {
        margin-bottom: 1.75rem;
    }

    .home-fallback-links a,
    .home-fallback-links button {
        min-height: 56px;
    }

    .home-load-warning {
        padding: 1.15rem;
    }

    #perfisNaoTransportados .modal-dialog {
        width: calc(100vw - .75rem);
        margin: .375rem auto;
    }

    #perfisNaoTransportados .modal-content {
        max-height: calc(100dvh - .75rem);
        border-radius: 18px !important;
    }

    #perfisNaoTransportados .alfa-restricoes-header {
        padding: 1rem 3.75rem 1rem 1rem;
    }

    #perfisNaoTransportados .btn-close {
        top: 1rem;
        right: 1rem;
    }

    #perfisNaoTransportados .alfa-restricoes-body {
        padding: .85rem;
    }
}

/* =========================================================
   HOME HEADER - FLUXO HOME HEADER / DESKTOP E MOBILE
   Mantém a renderização alinhada ao model HomeHeader.
   ========================================================= */

.home-page .home-header-slide,
.home-page .home-fallback-hero {
    isolation: isolate;
}

.home-page .home-header-slide > .container,
.home-page .home-fallback-hero > .container {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.home-page .row-header,
.home-page .row-header > [class*="col-"] {
    min-width: 0;
}

.home-page .home-fallback-content,
.home-page .home-fallback-panel,
.home-page .home-fallback-actions,
.home-page .home-featured-news {
    min-width: 0;
}

.home-page .home-fallback-content .title-header,
.home-page .home-fallback-content .lead,
.home-page .home-fallback-panel-header h2,
.home-page .home-fallback-links strong,
.home-page .home-fallback-links small {
    letter-spacing: 0 !important;
    overflow-wrap: anywhere;
}

.home-page .home-fallback-content .lead {
    text-wrap: pretty;
}

.header-carousel .home-fallback-content,
.header-single .home-fallback-content {
    width: 100%;
}

.header-carousel .without-quick-menu .home-fallback-content,
.header-single .without-quick-menu .home-fallback-content {
    max-width: 900px;
}

/* Ajustes visuais solicitados: superfícies neutras e curvatura consistente. */
.home-page { --home-radius: 16px; }

.home-page .btn,
.home-page .home-service-card,
.home-page .home-number-card,
.home-page .home-load-card,
.home-page .home-load-warning,
.home-page .home-campaign-card,
.home-page .home-featured-news {
    border-radius: var(--home-radius) !important;
}

.home-numbers-section .home-number-card-primary {
    color: inherit;
    background: #fff;
}

.home-numbers-section .home-number-card-primary strong,
.home-numbers-section .home-number-card-primary span {
    color: inherit;
}

.home-page .home-section-heading p {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
}

/* Campanha com mais presenca, mantendo as cores definidas no painel. */
.home-campaign-section {
    position: relative;
    padding-block: clamp(3.5rem, 7vw, 6.5rem);
    overflow: hidden;
}

.home-campaign-section .container {
    max-width: 1380px;
}

.home-campaign-card {
    position: relative;
    isolation: isolate;
    min-height: 430px;
    display: flex;
    align-items: center;
    padding: clamp(1.5rem, 4vw, 4rem);
    border-color: rgba(255, 255, 255, .24);
    box-shadow: 0 28px 70px rgba(15, 23, 42, .18);
}

.home-campaign-card::before,
.home-campaign-card::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
    pointer-events: none;
}

.home-campaign-card::before {
    width: 340px;
    height: 340px;
    top: -190px;
    right: -90px;
}

.home-campaign-card::after {
    width: 220px;
    height: 220px;
    bottom: -145px;
    left: 38%;
}

.home-campaign-card > .row {
    width: 100%;
    position: relative;
    z-index: 1;
    --bs-gutter-x: clamp(1.5rem, 5vw, 5rem);
}

.home-campaign-image {
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border: 0;
    background: rgba(255, 255, 255, .11);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16);
    backdrop-filter: blur(5px);
}

.home-campaign-image img {
    max-height: 410px;
    object-fit: contain;
}

.home-campaign-content {
    padding-block: 1rem;
}

.home-campaign-content > span {
    align-items: center;
    gap: .45rem;
    padding: .45rem .75rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
}

.home-campaign-content h2 {
    max-width: 800px;
    margin-top: .35rem;
    font-size: clamp(2.25rem, 4.2vw, 4.25rem);
    text-wrap: balance;
}

.home-campaign-content p {
    max-width: 720px;
    font-size: clamp(1rem, 1.35vw, 1.2rem);
    text-wrap: pretty;
}

.home-campaign-actions .btn {
    min-height: 50px;
    padding-inline: 1.4rem;
    border: 1px solid rgba(255, 255, 255, .45);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .14);
}

@media (max-width: 991.98px) {
    .home-campaign-card {
        min-height: 0;
    }

    .home-campaign-image {
        min-height: 260px;
    }

    .home-campaign-image img {
        max-height: 340px;
    }
}

@media (max-width: 575.98px) {
    .home-campaign-section {
        padding-block: 2.75rem;
    }

    .home-campaign-card {
        padding: 1.25rem;
    }

    .home-campaign-image {
        min-height: 200px;
        padding: .65rem;
    }

    .home-campaign-content h2 {
        font-size: clamp(1.8rem, 9vw, 2.5rem);
    }

    .home-campaign-actions,
    .home-campaign-actions .btn {
        width: 100%;
    }
}

.home-presence-content p {
    max-width: 620px;
    line-height: 1.75;
}

@media (min-width: 1600px) {
    :root {
        --home-hero-height: min(680px, calc(100svh - 92px));
    }

    .header-carousel .home-fallback-content,
    .header-single .home-fallback-content {
        max-width: 820px;
    }

    .header-carousel .home-fallback-panel,
    .header-single .home-fallback-panel {
        max-width: 440px;
    }
}

@media (min-width: 992px) {
    .home-page .header-carousel .carousel-item > .home-header-slide.header-bg,
    .home-page .header-carousel .carousel-item > section.home-header-slide.header-bg,
    .home-page .header-single .home-header-slide.header-bg {
        background-image: var(--bg-url-desktop) !important;
        background-size: cover !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
    }

    .home-page .header-carousel .row-header,
    .home-page .header-single .row-header {
        min-height: 100%;
    }

    .home-page .header-carousel .home-fallback-content,
    .home-page .header-single .home-fallback-content {
        padding-block: 1rem;
    }

    .home-page .header-carousel .home-fallback-panel,
    .home-page .header-single .home-fallback-panel {
        width: min(100%, 420px);
    }
}

@media (max-width: 991.98px) {
    .home-page .header-carousel .carousel-item > .home-header-slide.header-bg,
    .home-page .header-carousel .carousel-item > section.home-header-slide.header-bg,
    .home-page .header-single .home-header-slide.header-bg {
        background-image: var(--bg-url-mobile) !important;
        background-size: cover !important;
        background-position: center top !important;
        background-repeat: no-repeat !important;
    }

    .home-page > .home-fallback-hero {
        min-height: calc(100svh - 76px);
        padding: 1.25rem 0 2rem;
    }

    .home-page .home-header-slide .row-header,
    .home-page .home-fallback-hero .row-header {
        gap: 1rem !important;
    }

    .home-page .home-fallback-content,
    .home-page .home-fallback-content .text-start,
    .home-page .home-fallback-content .lead,
    .home-page .home-fallback-content .title-header {
        text-align: center !important;
    }

    .home-page .home-fallback-kicker {
        justify-content: center;
    }

    .home-page .home-fallback-actions {
        justify-content: center;
    }

    .home-page .home-fallback-panel {
        width: min(100%, 520px);
        margin-inline: auto;
    }
}

@media (max-width: 575.98px) {
    .home-page > .home-fallback-hero,
    .home-page .header-carousel .carousel-item > .home-header-slide,
    .home-page .header-single .home-header-slide {
        padding-top: 1rem !important;
        padding-bottom: 2rem !important;
    }

    .home-page .home-fallback-content .lead {
        font-size: .95rem;
        line-height: 1.55 !important;
    }

    .home-page .home-fallback-actions .btn,
    .home-page .home-featured-news {
        width: 100%;
    }

    .home-page .home-fallback-panel {
        border-radius: 18px;
    }
}
