/* ==============================================================
   hostlp-theme.css — paleta oficial HOSTLP
   Carregar APÓS scheme-01.css e ANTES de vds.css / home-slider.css
   ============================================================== */

:root {
    /* ---- Paleta HOSTLP ---- */
    --color-primary: #0A3A68;
    --color-secondary: #1F6FAA;
    --color-accent: #2DB6DE;
    --color-accent-light: #7DD3EF;
    --color-dark: #0B1F2A;
    --color-gray: #4A5A63;
    --color-light-gray: #E5E7EB;
    --color-white: #FFFFFF;

    --color-primary-rgb: 10, 58, 104;
    --color-secondary-rgb: 31, 111, 170;
    --color-accent-rgb: 45, 182, 222;
    --color-accent-light-rgb: 125, 211, 239;
    --color-dark-rgb: 11, 31, 42;

    /* ---- Gradientes derivados ---- */
    --gradient-primary: linear-gradient(135deg, #0A3A68 0%, #2DB6DE 100%);
    --gradient-accent: linear-gradient(135deg, #2DB6DE 0%, #7DD3EF 100%);
    --gradient-hero: radial-gradient(1200px 600px at 85% -10%, rgba(45, 182, 222, 0.35), transparent 60%),
                     radial-gradient(900px 500px at 10% 110%, rgba(31, 111, 170, 0.35), transparent 60%),
                     linear-gradient(160deg, #0B1F2A 0%, #0A3A68 55%, #1F6FAA 100%);

    /* ---- Override dos tokens do template (Hostco) ---- */
    --primary-color: #1F6FAA;
    --primary-color-rgb: 31, 111, 170;
    --secondary-color: #2DB6DE;
    --secondary-color-rgb: 45, 182, 222;
}

/* ==============================================================
   Overrides em classes do template (Hostco) que usam cores diretas
   ============================================================== */

/* --- Botões, ações principais --- */
.btn-main,
a.btn-main,
.bg-color,
.btn-primary,
.bg-id-color {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

.btn-main:hover,
a.btn-main:hover,
.btn-primary:hover {
    background-color: var(--color-primary);
    color: var(--color-white);
}

.btn-line,
a.btn-line {
    color: var(--color-secondary);
    border-color: var(--color-secondary);
    background: transparent;
}

.btn-line:hover,
a.btn-line:hover {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

/* --- Textos com cor da marca --- */
.color,
.id-color,
a,
.text-id-color {
    color: var(--color-secondary);
}

a:hover {
    color: var(--color-accent);
}

/* --- Menu principal --- */
#mainmenu > li > a.menu-item:hover,
#mainmenu > li.active > a.menu-item {
    color: var(--color-secondary);
}

#mainmenu li li a.menu-item:hover,
#mainmenu ul li:hover > a.menu-item {
    background-color: transparent;
    color: var(--color-secondary);
}

/* --- Gradient acento do template (usado em spans) --- */
.color-gradient {
    background: var(--gradient-primary);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* --- Heading defaults --- */
h1, h2, h3, h4, h5, h6 {
    color: var(--color-primary);
}

/* --- Ícones em box-icon (dropdown mega-menu) --- */
#mainmenu .mega .box-icon:hover h4 {
    color: var(--color-secondary);
}

.box-icon:hover h4 {
    color: var(--color-secondary);
}

/* --- Topbar (faixa superior) --- */
#topbar a:hover {
    color: var(--color-accent);
}

/* --- Breadcrumb --- */
.breadcrumb-item a {
    color: var(--color-secondary);
}

.breadcrumb-item.active {
    color: var(--color-primary);
    font-weight: 600;
}

/* --- Footer --- */
footer.footer-light {
    background-color: var(--color-white);
    color: var(--color-gray);
}

footer h5 {
    color: var(--color-primary);
}

footer a {
    color: var(--color-gray);
}

footer a:hover {
    color: var(--color-secondary);
}

footer .social-icons a {
    color: var(--color-primary);
}

footer .social-icons a:hover {
    color: var(--color-accent);
}

footer .subfooter {
    background-color: var(--color-light-gray);
    color: var(--color-gray);
}

/* --- Form subscribe (footer newsletter) --- */
#btn-subscribe .arrow_right {
    background-color: var(--color-accent);
}

/* --- Page preloader --- */
#de-loader {
    border-top-color: var(--color-accent);
}

/* --- Back to top --- */
#back-to-top {
    background-color: var(--color-secondary);
    color: var(--color-white);
}

#back-to-top:hover {
    background-color: var(--color-primary);
}

/* --- Subheader (banners internos com imagem de fundo) --- */
#subheader {
    position: relative;
    isolation: isolate;
}

/* Overlay duplo: gradient vertical (escuro no topo onde fica o menu)
   + overlay azul geral para dar contraste ao texto */
#subheader::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(180deg,
            rgba(6, 22, 36, 0.85) 0%,
            rgba(10, 58, 104, 0.55) 40%,
            rgba(10, 58, 104, 0.5) 100%);
    pointer-events: none;
}

#subheader > .center-y,
#subheader > .container {
    position: relative;
    z-index: 2;
}

#subheader {
    padding: 172px 0 80px 0 !important;
}

#subheader h1 {
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-top: 0 !important;
    margin-bottom: 14px;
    background: linear-gradient(
        100deg,
        #ffffff 0%,
        #ffffff 38%,
        #7DD3EF 48%,
        #ffffff 58%,
        #ffffff 100%
    );
    background-size: 220% 100%;
    background-position: 200% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    filter: drop-shadow(0 2px 18px rgba(0, 0, 0, 0.35));
    animation:
        subheader-enter 0.9s cubic-bezier(0.22, 1, 0.36, 1) both,
        subheader-shimmer 6s 1s ease-in-out infinite;
}

@keyframes subheader-enter {
    0% { opacity: 0; transform: translateY(18px); letter-spacing: 0.04em; }
    100% { opacity: 1; transform: translateY(0); letter-spacing: -0.02em; }
}

@keyframes subheader-shimmer {
    0% { background-position: 200% 0; }
    55%, 100% { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
    #subheader h1 {
        animation: none;
        background: #ffffff;
        -webkit-background-clip: initial;
        background-clip: initial;
        -webkit-text-fill-color: #ffffff;
        color: #ffffff;
    }
}

/* Pequeno acento gradient abaixo do título */
#subheader h1::after {
    content: "";
    display: block;
    width: 48px;
    height: 3px;
    margin: 18px auto 0;
    background: linear-gradient(90deg, #7DD3EF, #2DB6DE, #1F6FAA);
    border-radius: 2px;
}

#subheader .lead {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.08rem;
    line-height: 1.65;
    font-weight: 400;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
    max-width: 640px;
    margin: 24px auto 32px;
}

/* Breadcrumb moderno — sem pill, chevrons turquesa */
#subheader .breadcrumb {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    font-size: 0.9rem;
    letter-spacing: 0.01em;
}

#subheader .breadcrumb .breadcrumb-item {
    display: inline-flex;
    align-items: center;
    font-weight: 500;
    padding: 4px 0;
}

#subheader .breadcrumb a {
    position: relative;
    color: rgba(255, 255, 255, 0.75);
    text-decoration: none;
    padding: 2px 0;
    transition: color 0.25s ease;
}

#subheader .breadcrumb a::after {
    content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    bottom: -2px;
    height: 1.5px;
    background: linear-gradient(90deg, #7DD3EF, #2DB6DE);
    transition: left 0.3s ease, right 0.3s ease;
}

#subheader .breadcrumb a:hover {
    color: #ffffff;
}

#subheader .breadcrumb a:hover::after {
    left: 0;
    right: 0;
}

#subheader .breadcrumb .breadcrumb-item.active {
    color: #ffffff;
    font-weight: 600;
}

#subheader .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    content: "";
    display: inline-block;
    width: 6px;
    height: 6px;
    margin: 0 14px;
    border-top: 1.5px solid #7DD3EF;
    border-right: 1.5px solid #7DD3EF;
    transform: rotate(45deg);
    opacity: 0.7;
}

/* Header transparente sobre subheader escuro — força texto/ícones claros */
body:has(#subheader) header.transparent:not(.smaller) #mainmenu > li > a.menu-item,
body:has(#subheader) header.transparent:not(.smaller) #mainmenu > li > a.menu-item:visited {
    color: #ffffff;
}

body:has(#subheader) header.transparent:not(.smaller) #mainmenu > li > a.menu-item:hover {
    color: #7DD3EF;
}

body:has(#subheader) header.transparent:not(.smaller) #mainmenu li.has-child:after {
    color: #ffffff;
    opacity: 0.85;
}

body:has(#subheader) header.transparent:not(.smaller) #topbar {
    background: rgba(0, 0, 0, 0.25);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

body:has(#subheader) header.transparent:not(.smaller) #topbar .topbar-widget a,
body:has(#subheader) header.transparent:not(.smaller) #topbar span {
    color: rgba(255, 255, 255, 0.9);
}

body:has(#subheader) header.transparent:not(.smaller) .menu_side_area .btn-main {
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.28);
}

body:has(#subheader) header.transparent:not(.smaller) .menu_side_area .btn-main:hover {
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(255, 255, 255, 0.5);
}

body:has(#subheader) header.transparent:not(.smaller) #logo .logo-main,
body:has(#subheader) header.transparent:not(.smaller) #logo .logo-mobile {
    filter: brightness(0) invert(1);
    -webkit-filter: brightness(0) invert(1);
}

/* --- Esconde globalmente pílulas de eyebrow/tag decorativas acima dos
       títulos de seção. Preferência do projeto: o título + subtítulo carregam
       toda a informação. --- */
[class*="eyebrow"] {
    display: none !important;
}

/* --- Topbar: widget de redes sociais (lado esquerdo, sem tagline) --- */
.topbar-widget--social {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.topbar-widget--social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-secondary);
    background: transparent;
    transition: color 0.2s ease;
}

.topbar-widget--social a i {
    font-size: 1rem;
    line-height: 1;
}

.topbar-widget--social a:hover {
    color: var(--color-accent);
    background: transparent;
}

/* Sobre fundo escuro (subheader/has-page-hero), ajusta contraste */
body:has(#subheader) header.transparent:not(.smaller) .topbar-widget--social a,
body.has-page-hero header.transparent:not(.smaller) .topbar-widget--social a {
    color: rgba(255, 255, 255, 0.85);
}

body:has(#subheader) header.transparent:not(.smaller) .topbar-widget--social a:hover,
body.has-page-hero header.transparent:not(.smaller) .topbar-widget--social a:hover {
    color: #ffffff;
    background: transparent;
}

/* --- Topbar: esconde ao scrollar e reaparece no topo --- */
#topbar {
    transition:
        max-height 0.35s ease,
        opacity 0.25s ease,
        padding 0.3s ease,
        border-color 0.3s ease;
    max-height: 120px;
    opacity: 1;
    overflow: hidden;
}

header.smaller #topbar {
    max-height: 0;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    border-bottom-width: 0 !important;
}

/* --- CTA final — gradient do hero, sem imagem de fundo --- */
#section-cta {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 90px 0;
    background:
        radial-gradient(1200px 600px at 85% -10%, rgba(45, 182, 222, 0.35), transparent 60%),
        radial-gradient(900px 500px at 10% 110%, rgba(31, 111, 170, 0.35), transparent 60%),
        linear-gradient(160deg, #0B1F2A 0%, #0A3A68 55%, #1F6FAA 100%) !important;
    background-image: none;
    color: #ffffff;
}

/* Quadriculado tecnológico com fade radial */
#section-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
    background-size: 60px 60px;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 25%, transparent 85%);
            mask-image: radial-gradient(ellipse at center, #000 25%, transparent 85%);
    pointer-events: none;
}

/* Tipografia refinada do CTA */
#section-cta h2 {
    font-family: "Plus Jakarta Sans", system-ui, sans-serif;
    font-size: clamp(1.6rem, 2.6vw, 2.15rem);
    font-weight: 800;
    color: #ffffff;
    letter-spacing: -0.03em;
    line-height: 1.2;
    margin: 0 0 12px;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "kern" 1, "liga" 1, "calt" 1, "ss01" 1;
}

#section-cta .lead {
    font-family: "Plus Jakarta Sans", system-ui, sans-serif;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.6;
    color: rgba(219, 228, 242, 0.92);
    letter-spacing: -0.005em;
    margin: 0;
}

#section-cta .btn-main {
    padding: 14px 30px;
    background: #ffffff;
    color: #0A3A68;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.88rem;
    border-radius: 12px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#section-cta .btn-main:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.3);
    background: #ffffff;
    color: #0A3A68;
}

@media (max-width: 767.98px) {
    #section-cta {
        padding: 70px 0;
        text-align: center;
    }
    #section-cta .col-md-4 {
        margin-top: 24px;
    }
}

/* Links em destaque nas páginas de cards/serviços */
.box-icon h4 {
    color: var(--color-primary);
}

/* Botões menos arredondados (template base é pill 30px) */
a.btn-main,
a.btn-line,
#mainmenu li ul.mega a.btn-main {
    border-radius: 4px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
}

/* Botão flutuante WhatsApp */
.wa-float {
    position: fixed;
    right: 20px;
    bottom: 88px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25D366;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
    z-index: 9999;
    transition: transform .2s ease, box-shadow .2s ease;
}
.wa-float:hover {
    transform: scale(1.08);
    box-shadow: 0 8px 22px rgba(0, 0, 0, .35);
}
.wa-float::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: #25D366;
    opacity: .6;
    animation: wa-pulse 1.8s ease-out infinite;
    z-index: -1;
}
@keyframes wa-pulse {
    0% { transform: scale(1); opacity: .6; }
    100% { transform: scale(1.6); opacity: 0; }
}
@media (max-width: 576px) {
    .wa-float { right: 16px; bottom: 16px; width: 52px; height: 52px; }
}
