/* ============================================================
   ji.css — overrides do tema Industris para a marca Justo Inox.
   Carregado DEPOIS do style.css do tema. So ajustes, sem reescrever o tema.

   Paleta da marca Justo Inox (do logotipo e onboarding):
     azul Justo     #2c6fb5   (cor principal / CTAs)
     azul escuro    #1f4f86   (hover / acentos)
     cinza chumbo   #2b2f36   (INOX / textos e fundo escuro)
     branco/cinza   #fff / #f4f6f8
   ============================================================ */

:root {
    /* Justo Inox — azul + cinza/preto + branco.
       Os nomes de variavel sao herdados da base; aqui todos apontam pra paleta Justo:
       'azul' = azul principal; 'navy' = cinza chumbo; 'amarelo' = prata claro (acento sobre escuro). */
    --ji-vermelho: #2c6fb5;
    --ji-vermelho-h: #1f4f86;
    --ji-azul: #2c6fb5;       /* destaque principal (azul Justo) */
    --ji-amarelo: #e7e9ec;    /* acento claro sobre fundo escuro */
    --ji-navy: #2b2f36;       /* cinza chumbo (INOX) */
}

/* ============================================================
   CORRECAO CRITICA: o bootstrap.css do tema define html{font-size:10px},
   o que encolhe TODO valor em rem para 62%. O tema usa apenas px (nao usa
   rem em lugar nenhum), entao restaurar a raiz para 16px conserta as nossas
   secoes (menu, hero, cards) SEM nenhum efeito colateral no tema.
   ============================================================ */
html { font-size: 16px; }
body { font-size: 16px; }

/* Acento sobre fundo escuro: amarelo da marca (positivo), nao laranja/vermelho */
.text-white .text-primary { color: var(--ji-amarelo) !important; }

/* Botao de ORCAMENTO: azul da marca (confianca). Vermelho fica reservado
   so a micro-detalhes, nunca como cor de acao. */
.btn-ji {
    background-color: var(--ji-azul);
    color: #fff !important;
    border: none;
}
.btn-ji:hover,
.btn-ji:focus {
    background-color: #1f4f86;
    color: #fff !important;
}
.btn-ji i { margin-left: 8px; }

/* ===== Header: fixo no topo + esconde no scroll pra baixo, aparece pra cima ===== */
#site-header {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1000;
    background: #fff;
    box-shadow: 0 2px 12px rgba(3, 19, 43, .10);
    transition: transform .3s ease;
}
#site-header.ji-header--hidden { transform: translateY(-100%); }

.ji-header__inner { display: flex; align-items: center; height: 90px; gap: 30px; }
.ji-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.ji-logo__mark { width: 48px; height: 48px; flex-shrink: 0; }
.ji-logo__txt { display: flex; flex-direction: column; line-height: 1.04; }
.ji-logo__txt b { font-size: 1.42rem; font-weight: 900; color: var(--ji-navy); letter-spacing: .3px; }
.ji-logo__txt span { font-size: .62rem; letter-spacing: 2.2px; text-transform: uppercase; color: var(--ji-azul); font-weight: 700; }

.ji-nav { display: flex; align-items: center; gap: 34px; margin-left: auto; }
.ji-nav > a, .ji-nav__sub > a {
    color: var(--ji-navy); font-weight: 600; font-size: 1.12rem; text-decoration: none;
    display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
}
.ji-nav > a:hover, .ji-nav__sub > a:hover, .ji-nav > a.ativo { color: var(--ji-azul); }

.ji-nav__sub { position: relative; }
.ji-nav__drop {
    position: absolute; top: 100%; left: 0; min-width: 240px;
    background: #fff; border-radius: 8px; padding: 8px 0;
    box-shadow: 0 12px 30px rgba(3, 19, 43, .14);
    opacity: 0; visibility: hidden; transform: translateY(8px); transition: .16s;
}
.ji-nav__sub:hover .ji-nav__drop { opacity: 1; visibility: visible; transform: none; }
.ji-nav__drop a { display: block; padding: 10px 18px; color: #33404f; font-weight: 500; font-size: .94rem; text-decoration: none; }
.ji-nav__drop a:hover { background: #f4f6fa; color: var(--ji-azul); }

.ji-header__cta { margin-left: 8px; padding: 14px 28px; font-size: 1.05rem; }

/* Header mobile (escondido no desktop) */
.ji-mobile { display: none; }
.ji-mobile__bar { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 18px; }
.ji-burger { background: none; border: 0; padding: 8px; cursor: pointer; display: flex; flex-direction: column; gap: 5px; }
.ji-burger span { width: 26px; height: 3px; background: var(--ji-navy); border-radius: 3px; transition: .2s; }
.ji-mobile__nav { display: none; flex-direction: column; padding: 8px 18px 18px; border-top: 1px solid #eef1f6; }
.ji-mobile__nav.aberto { display: flex; }
.ji-mobile__nav a { padding: 12px 4px; color: var(--ji-navy); font-weight: 600; text-decoration: none; border-bottom: 1px solid #f0f2f6; }
.ji-mobile__nav a.ji-mobile__subitem { padding-left: 18px; font-weight: 500; color: #5b6470; font-size: .94rem; }
.ji-mobile__nav .btn-ji { margin-top: 14px; text-align: center; border-bottom: 0; }

@media (max-width: 991px) {
    .ji-header__desktop { display: none; }
    .ji-mobile { display: block; }
}

/* ===== HERO (CSS, sem depender de imagem) ===== */
.ji-hero {
    background: linear-gradient(125deg, var(--ji-navy) 0%, #1f4f86 55%, var(--ji-azul) 100%);
    color: #fff;
    padding: 124px 0 116px;
}
.ji-hero__inner { max-width: 900px; }
.ji-hero__eyebrow { color: var(--ji-amarelo); font-weight: 700; text-transform: uppercase; letter-spacing: 1.8px; font-size: 1.02rem; margin: 0 0 20px; }
.ji-hero__titulo { font-size: clamp(2.3rem, 4.8vw, 3.7rem); line-height: 1.1; margin: 0 0 22px; color: #fff; font-weight: 900; }
.ji-hero__sub { font-size: 1.32rem; line-height: 1.55; color: #d4def0; margin: 0 0 36px; }
.ji-hero__sub strong { color: #fff; }
.ji-hero__acoes { display: flex; flex-wrap: wrap; gap: 16px; }
.ji-hero__acoes .btn { padding: 17px 34px; font-size: 1.12rem; font-weight: 700; }
.btn-hero-ghost { background: transparent; color: #fff !important; border: 2px solid rgba(255,255,255,.65); }
.btn-hero-ghost:hover { background: #fff; color: var(--ji-navy) !important; border-color: #fff; }

/* ===== Secao + grid de categorias (cards de altura IGUAL) ===== */
.ji-sec { padding: 88px 0; }
.ji-sec__head { margin-bottom: 46px; }
.ji-cats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 26px; align-items: stretch; }
.ji-cat {
    display: flex; flex-direction: column; text-align: center; align-items: center;
    background: #fff; border: 1px solid #e4e8f0; border-radius: 14px;
    padding: 38px 24px; text-decoration: none; color: var(--ji-navy);
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ji-cat:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(3,19,43,.12); border-color: var(--ji-azul); }
.ji-cat__ico { font-size: 3.2rem; color: var(--ji-azul); margin-bottom: 18px; line-height: 1; }
.ji-cat__nome { font-size: 1.3rem; color: var(--ji-navy); margin: 0 0 12px; font-weight: 800; line-height: 1.25; }
.ji-cat__desc { color: #5b6470; font-size: 1rem; line-height: 1.55; flex: 1 1 auto; margin: 0 0 20px; }
.ji-cat__link { color: var(--ji-azul); font-weight: 700; font-size: 1rem; }

@media (max-width: 1100px) { .ji-cats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px)  { .ji-cats { grid-template-columns: 1fr 1fr; } .ji-sec { padding: 60px 0; } .ji-hero { padding: 72px 0 64px; } }
@media (max-width: 460px)  { .ji-cats { grid-template-columns: 1fr; } }

/* Topbar: deixar o contato legivel e clicavel */
.topbar-left li a { color: inherit; }

/* Logo em texto (sem usar a logo "industris" do tema) */
.logo-ji { display: inline-flex; flex-direction: column; line-height: 1.04; }
.logo-ji .lg-marca { font-weight: 900; font-size: 1.45rem; color: #fff; letter-spacing: .5px; }
.logo-ji .lg-sub { font-size: .68rem; letter-spacing: 2px; text-transform: uppercase; color: var(--ji-amarelo); font-weight: 700; }
.main-header .logo-ji .lg-marca { color: var(--ji-navy); }

/* Cards de categoria reaproveitando o estilo de servicos */
.cat-ico { font-size: 2.6rem; color: var(--ji-azul); }

/* FAQ accordion simples */
.ji-faq { max-width: 820px; margin: 0 auto; }
.ji-faq details {
    background: #fff; border: 1px solid #e4e8f0; border-radius: 8px;
    margin-bottom: 12px; overflow: hidden;
}
.ji-faq summary {
    cursor: pointer; padding: 18px 22px; font-weight: 700; color: var(--ji-navy);
    list-style: none; position: relative;
}
.ji-faq summary::-webkit-details-marker { display: none; }
.ji-faq summary::after { content: "+"; position: absolute; right: 22px; top: 14px; font-size: 1.5rem; color: var(--ji-azul); }
.ji-faq details[open] summary::after { content: "\2013"; }
.ji-faq .faq-corpo { padding: 0 22px 18px; color: #5b6470; }

/* CTA final em azul-marinho da marca (confianca), botao amarelo */
.ji-cta-final { background: linear-gradient(135deg, var(--ji-navy) 0%, var(--ji-azul) 100%); color: #fff; text-align: center; }
.ji-cta-final h2 { color: #fff; }
.ji-cta-final p { color: #cdd8ee; }
.ji-cta-final .btn-ji { background: var(--ji-amarelo); color: var(--ji-navy) !important; }
.ji-cta-final .btn-ji:hover { background: #ffffff; color: var(--ji-navy) !important; }

/* WhatsApp flutuante */
.whats-float {
    position: fixed; right: 20px; bottom: 20px; z-index: 999;
    width: 56px; height: 56px; border-radius: 50%;
    background: #25d366; color: #fff; display: grid; place-items: center;
    box-shadow: 0 6px 18px rgba(0,0,0,.25); transition: transform .15s;
}
.whats-float:hover { transform: scale(1.08); color: #fff; }
.whats-float svg { width: 28px; height: 28px; }

/* Hero: garantir leitura sobre a imagem */
.slider-content h1, .slider-content h4 { color: #fff; }

/* ============================================================
   RODAPÉ + SUBRODAPÉ (padrão da agência)
   ============================================================ */
.ji-rodape { background: var(--ji-navy); color: #cdd8ee; padding: 64px 0 44px; }
.ji-rodape__grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.5fr; gap: 40px; }
.ji-rodape__logo { width: 190px; max-width: 78%; display: block; margin-bottom: 18px; }
.ji-rodape__brand p { color: #aebbd8; max-width: 340px; line-height: 1.65; margin: 0; }
.ji-rodape__social { display: flex; gap: 12px; margin-top: 20px; }
.ji-rodape__social a { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.08); display: grid; place-items: center; color: #fff; font-size: 1.25rem; transition: transform .15s ease, background .15s ease, color .15s ease; }
.ji-rodape__social a:hover { background: var(--ji-amarelo); color: var(--ji-navy); transform: translateY(-2px); }
.ji-rodape__col h3 { color: #fff; font-size: .95rem; text-transform: uppercase; letter-spacing: 1.2px; margin: 4px 0 18px; }
.ji-rodape__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.ji-rodape__col a { color: #cdd8ee; }
.ji-rodape__col a:hover { color: var(--ji-amarelo); }
.ji-rodape__contato ul li { display: flex; gap: 10px; align-items: flex-start; color: #aebbd8; }
.ji-rodape__contato .icon { color: var(--ji-amarelo); margin-top: 3px; flex-shrink: 0; }

.ji-subrodape { background: #020c1c; padding: 20px 0; text-align: center; border-top: 1px solid rgba(255,255,255,.06); }
.ji-subrodape__linha { margin: 0; font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.95; letter-spacing: .3px; }
.ji-subrodape__linha a { color: var(--ji-amarelo); font-weight: 600; }
.ji-subrodape__linha a:hover { text-decoration: underline; }

@media (max-width: 900px) { .ji-rodape__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 560px) { .ji-rodape__grid { grid-template-columns: 1fr; } .ji-rodape { padding: 48px 0 32px; } }

/* Defesa: o .container do tema (Bootstrap) injeta ::before/::after (clearfix)
   que viram itens fantasma em flex/grid. Neutralizamos onde usamos layout. */
.ji-header__inner::before, .ji-header__inner::after { content: none; }
.ji-rodape__contato small { font-size: .68rem; background: rgba(37,211,102,.18); color: #34d97a; padding: 2px 7px; border-radius: 10px; font-weight: 700; margin-left: 4px; vertical-align: middle; }

/* ============================================================
   HERO com BANNERS editáveis (imagem/vídeo)
   ============================================================ */
.ji-herob { position: relative; min-height: 560px; overflow: hidden; background: var(--ji-navy); display: flex; }
.ji-herob__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease; background-size: cover; background-position: center; display: flex; align-items: center; }
.ji-herob__slide.ativo { opacity: 1; }
.ji-herob__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ji-herob__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,19,43,.85) 0%, rgba(3,19,43,.55) 55%, rgba(3,19,43,.25) 100%); }
.ji-herob .container { position: relative; z-index: 2; width: 100%; }
.ji-herob__inner { max-width: 780px; color: #fff; padding: 48px 0; }
.ji-herob__eyebrow { color: var(--ji-amarelo); font-weight: 700; text-transform: uppercase; letter-spacing: 1.8px; font-size: 1rem; margin: 0 0 16px; }
.ji-herob__titulo { font-size: clamp(2.2rem, 5.2vw, 4.2rem); line-height: 1.08; font-weight: 900; margin: 0 0 18px; color: #fff; }
.ji-herob__sub { font-size: 1.28rem; line-height: 1.5; color: #d4def0; margin: 0 0 32px; }
.ji-herob__acoes { display: flex; flex-wrap: wrap; gap: 14px; }
.ji-herob__acoes .btn { padding: 16px 32px; font-size: 1.1rem; font-weight: 700; }
.ji-herob__dots { position: absolute; bottom: 22px; left: 0; right: 0; z-index: 3; display: flex; gap: 10px; justify-content: center; }
.ji-herob__dots button { width: 12px; height: 12px; border-radius: 50%; border: 0; background: rgba(255,255,255,.4); cursor: pointer; padding: 0; transition: background .15s; }
.ji-herob__dots button.ativo { background: var(--ji-amarelo); }
@media (max-width: 600px) { .ji-herob { min-height: 480px; } }

/* ============================================================
   CARROSSEL (categorias da home)
   ============================================================ */
.ji-carousel__nav { display: flex; gap: 10px; }
.ji-carousel__btn { width: 46px; height: 46px; border-radius: 50%; border: 1px solid #e4e8f0; background: #fff; color: var(--ji-azul); font-size: 1.3rem; cursor: pointer; display: grid; place-items: center; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.ji-carousel__btn:hover { background: var(--ji-azul); color: #fff; border-color: var(--ji-azul); }
.ji-carousel__track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 8px 2px 20px; scrollbar-width: none; -ms-overflow-style: none; }
.ji-carousel__track::-webkit-scrollbar { display: none; }
/* largura responsiva: encaixa um numero INTEIRO de cards por vista (sem cortar) */
.ji-carousel__item { flex: 0 0 calc((100% - 3 * 22px) / 4); scroll-snap-align: start; }
@media (max-width: 1100px) { .ji-carousel__item { flex-basis: calc((100% - 2 * 22px) / 3); } }
@media (max-width: 760px)  { .ji-carousel__item { flex-basis: calc((100% - 22px) / 2); } }
@media (max-width: 480px)  { .ji-carousel__item { flex-basis: 100%; } }

/* Ícones sociais (SVG) no rodapé */
.ji-rodape__social a svg { width: 20px; height: 20px; fill: currentColor; display: block; }

/* Aviso de cookies (LGPD) */
.ji-cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 998; max-width: 780px; margin: 0 auto; background: #fff; border: 1px solid #e4e8f0; border-radius: 14px; box-shadow: 0 14px 44px rgba(3,19,43,.20); padding: 18px 22px; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ji-cookies p { margin: 0; color: #45505f; font-size: .95rem; line-height: 1.5; flex: 1 1 320px; }
.ji-cookies a { color: var(--ji-azul); font-weight: 700; }
.ji-cookies .btn { white-space: nowrap; padding: 12px 26px; }
body.tem-cookies .whats-float { bottom: 96px; }
@media (max-width: 600px) { .ji-cookies { padding: 16px; } .ji-cookies .btn { width: 100%; } }

/* FIX cookie banner: o display:flex vencia o [hidden]; forcamos esconder */
.ji-cookies[hidden] { display: none !important; }

/* Subrodape com letras mais grossas (override) */
.ji-subrodape__linha { font-size: 13.5px; color: rgba(255,255,255,.9); font-weight: 600; letter-spacing: .2px; }
.ji-subrodape__linha a { color: var(--ji-amarelo); font-weight: 800; }

/* Video da secao Sobre na home */
.ji-sobre-video { width: 100%; border-radius: 14px; display: block; background: #2b2f36; aspect-ratio: 16 / 11; object-fit: cover; }

/* Bloco de video na pagina Sobre */
.ji-sobre-videowrap { max-width: 820px; margin: 0 auto; }
.ji-sobre-videowrap .ji-sobre-video { aspect-ratio: auto; object-fit: contain; height: auto; box-shadow: 0 18px 40px rgba(3,19,43,.18); }

/* Logo do header (imagem unica horizontal) */
/* Logo nativa 215x40: exibir até 40px de altura mantém nitidez (sem upscale). */
.ji-logo__img { height: 40px; width: auto; display: block; }
@media (max-width: 991px) { .ji-logo__img { height: 36px; } }

/* "Como funciona": bolinha centralizada sob o icone (o tema fixa left:139px) */
.process .process-icon:before { left: 50% !important; margin-left: 0 !important; transform: translateX(-50%); }

/* Link "Ver no mapa" nos cards de contato */
.contato-card__link { display: inline-block; margin-top: 8px; color: var(--ji-azul); font-weight: 700; font-size: .9rem; }

/* Popup de contato (nome + telefone) antes do WhatsApp */
.ji-modal { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 18px; }
.ji-modal[hidden] { display: none; }
.ji-modal__bg { position: absolute; inset: 0; background: rgba(3,19,43,.6); }
.ji-modal__box { position: relative; z-index: 1; background: #fff; border-radius: 16px; padding: 34px 30px 30px; width: 420px; max-width: 100%; box-shadow: 0 30px 70px rgba(0,0,0,.35); text-align: center; animation: mcModalIn .2s ease; }
@keyframes mcModalIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ji-modal__x { position: absolute; top: 10px; right: 16px; background: none; border: 0; font-size: 1.9rem; line-height: 1; color: #9aa4b2; cursor: pointer; }
.ji-modal__x:hover { color: var(--ji-navy); }
.ji-modal__ico { width: 62px; height: 62px; margin: 0 auto 14px; border-radius: 50%; background: #25d366; color: #fff; display: grid; place-items: center; font-size: 2rem; }
.ji-modal__box h3 { margin: 0 0 8px; color: var(--ji-navy); font-size: 1.5rem; font-weight: 800; }
.ji-modal__box p { margin: 0 0 22px; color: #5b6470; font-size: .98rem; line-height: 1.5; }
.ji-modal__box label { display: block; text-align: left; font-weight: 700; color: var(--ji-navy); font-size: .88rem; margin-bottom: 14px; }
.ji-modal__box input { width: 100%; margin-top: 6px; padding: 13px; border: 1px solid #cfd6e2; border-radius: 10px; font-size: 1rem; font-family: inherit; color: var(--ji-navy); }
.ji-modal__box input:focus { outline: none; border-color: var(--ji-azul); box-shadow: 0 0 0 3px rgba(11,61,145,.12); }
.ji-modal__box input.erro { border-color: var(--ji-vermelho); box-shadow: 0 0 0 3px rgba(44,110,143,.12); }
.ji-modal__box .btn-full { width: 100%; margin-top: 8px; padding: 14px; }

/* Logo do rodape: 190px mantém nitidez (nativa 215px de largura). */
.ji-rodape__logo { width: 190px; max-width: 100%; margin-bottom: 20px; }

/* ============================================================
   FIX header sticky: o tema Industris poe overflow-x:hidden no html/body,
   o que QUEBRA o position:sticky do #site-header (ele rola junto e some).
   overflow-x:clip evita o scroll horizontal SEM criar contexto de rolagem,
   entao o sticky volta a funcionar (esconde no scroll, volta no scroll-up).
   ============================================================ */
html, body { overflow-x: clip; }

/* ============================================================
   ADAPTACAO MOBILE — header, centralizacao e botoes (<= 600px)
   ============================================================ */
@media (max-width: 600px) {
    /* Header: logo menor pra CABER o carrinho + o menu (burger nao some) */
    .ji-mobile__bar { padding: 0 14px; gap: 10px; }
    .ji-mobile__bar .ji-logo { min-width: 0; flex: 0 1 auto; overflow: hidden; }
    .ji-mobile__bar .ji-logo__img { height: 32px; }
    .ji-mobile__acoes { display: flex; align-items: center; gap: 16px; flex-shrink: 0; }
    .ji-mobile__acoes .ji-cart { font-size: 1.6rem; color: var(--ji-navy); position: relative; }

    /* Hero centralizado + botoes full-width (toque facil) */
    .ji-hero { padding: 52px 0 48px; }
    .ji-hero__inner, .ji-herob__inner { text-align: center; margin-left: auto; margin-right: auto; }
    .ji-hero__titulo { font-size: clamp(1.9rem, 8.5vw, 2.5rem); }
    .ji-hero__sub, .ji-herob__sub { font-size: 1.08rem; }
    .ji-hero__acoes, .ji-herob__acoes { flex-direction: column; align-items: stretch; }
    .ji-hero__acoes .btn, .ji-herob__acoes .btn { width: 100%; }

    /* Titulos de secao centralizados + secoes mais justas */
    .ji-sec { padding: 46px 0; }
    .ji-sec__head { text-align: center; margin-bottom: 28px; }
    .ji-sec__head--row { flex-direction: column; gap: 14px; align-items: center; }
    .ji-vermais { align-self: center; }
    .ji-pagehead { text-align: center; }

    /* CTAs grandes em largura cheia */
    .ji-cta-final .btn, .btn-grande, .btn-full { width: 100%; }
    .ji-cta-final .btn { display: flex; justify-content: center; }

    /* Cards de contato centralizados */
    .contato-card { text-align: center; align-items: center; }

    /* Rodape: centraliza a coluna da marca */
    .ji-rodape__brand { text-align: center; }
    .ji-rodape__brand p { margin-left: auto; margin-right: auto; }
    .ji-rodape__logo { margin-left: auto; margin-right: auto; }
    .ji-rodape__social { justify-content: center; }
}

/* Mobile: garantir que nada passe da largura da tela (sem overflow horizontal) */
@media (max-width: 600px) {
    .container { max-width: 100%; padding-left: 18px; padding-right: 18px; }
    .ji-hero__inner, .ji-herob__inner { max-width: 100%; width: auto; }
    .ji-hero__titulo, .ji-herob__titulo, .ji-pagehead h1 { overflow-wrap: break-word; word-break: break-word; }
    img, video, table { max-width: 100%; }
}

/* Hero com FOTO clara: overlay mais escuro pra leitura do texto branco */
.ji-herob__overlay { background: linear-gradient(90deg, rgba(3,19,43,.92) 0%, rgba(3,19,43,.7) 55%, rgba(3,19,43,.52) 100%); }
@media (max-width: 600px) { .ji-herob__overlay { background: rgba(3,19,43,.74); } }

/* Hero com FOTO/VIDEO de fundo — MESMA estrutura bonita do hero gradiente,
   só troca o fundo (foto sorteada) e poe um overlay navy por cima. */
.ji-hero--midia { position: relative; background-size: cover; background-position: center; }
.ji-hero--midia .container { position: relative; z-index: 2; }
.ji-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ji-hero__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(3,19,43,.92) 0%, rgba(3,19,43,.7) 55%, rgba(3,19,43,.5) 100%); }
@media (max-width: 600px) { .ji-hero--midia .ji-hero__overlay { background: rgba(3,19,43,.76); } }

/* ============================================================
   CORREÇÕES MOBILE (carrossel, rodapé, cards, sobre, processo)
   ============================================================ */
@media (max-width: 600px) {
    /* 1) Carrossel "Para cada setor": empilha título + setas, AMBOS centralizados */
    .ji-sec__head--row { flex-direction: column; gap: 16px; align-items: center; text-align: center; }
    .ji-sec__head--row > div:first-child { width: 100%; }
    .ji-carousel__nav { justify-content: center; }

    /* 2) Rodapé: TODAS as colunas centralizadas */
    .ji-rodape__grid { text-align: center; }
    .ji-rodape__col ul { justify-items: center; }
    .ji-rodape__contato ul li { justify-content: center; }
    .ji-rodape__social { justify-content: center; }

    /* 3) Card de produto (home destaque + catálogo): botão "Adicionar" cabe no card */
    .prod-card__add-extra { display: none; }
    .prod-card__add { font-size: .9rem; padding: 11px 8px; white-space: nowrap; }

    /* 4+5) Seção Sobre da home: título/texto/botão centralizados + respiro da foto */
    .ji-sobre-home { text-align: center; }
    .ji-sobre-home .col-md-6:first-child { margin-bottom: 6px; }
    .ji-sobre-home .btn { display: inline-block; margin-bottom: 28px; }

    /* 6) Como funciona: esconde a linha/bolinhas/setas (feias empilhadas), centraliza */
    .process:after,
    .process .process-icon:before,
    .process .process-icon:after { display: none !important; }
    .process .process-icon { margin-bottom: 14px; }
    .process { margin-bottom: 30px; }
    .process:last-child { margin-bottom: 0; }
}

/* Como funciona: no mobile o tema deixa os passos a ESQUERDA; centraliza tudo */
@media (max-width: 600px) {
    .process, .process .process-icon, .process h4 { text-align: center !important; }
}

/* ============================================================
   Gleydson: titulos um pouco menores + selos com numeros MAIORES
   ============================================================ */
/* Titulos de secao (o tema deixava h2 em 50px) */
h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.18; }
.ji-pagehead h1 { font-size: clamp(1.7rem, 3.1vw, 2.4rem); }

/* ============================================================
   Foto da fábrica (vertical) na seção Sobre — moldura retrato elegante
   ============================================================ */
.ji-fabrica-foto { position: relative; max-width: 430px; margin: 0 auto; border-radius: 16px; overflow: hidden; box-shadow: 0 22px 50px rgba(3,19,43,.22); }
.ji-fabrica-foto img { width: 100%; display: block; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 66%; }
.ji-fabrica-foto figcaption { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(transparent, rgba(3,19,43,.9)); color: #fff; font-weight: 600; font-size: .9rem; padding: 36px 16px 14px; display: flex; align-items: center; gap: 7px; }
.ji-fabrica-foto figcaption .icon { color: var(--ji-amarelo); font-size: 1.1rem; }
@media (max-width: 991px) { .ji-fabrica-foto { margin: 24px auto 0; } }


/* ============================================================
   IDENTIDADE VISUAL JUSTO INOX  (carregada por ultimo, vence o tema)
   Industrial: chumbo + vermelho, tipografia condensada Oswald/Barlow,
   quinas retas e o motivo diagonal vermelho do catalogo.
   ============================================================ */
:root{ --ji-chumbo:#2b2f36; --ji-verm:#2c6fb5; }

body, p, .ji-hero__sub, .ji-nav, input, select, textarea{
    font-family:'Barlow', system-ui, -apple-system, Arial, sans-serif !important;
}
h1,h2,h3,h4,h5,h6,
.ji-hero__titulo,.ji-cat__nome,.ji-sec__head h2,.produto__nome,.ji-pagehead h1{
    font-family:'Oswald','Barlow',sans-serif !important;
    font-weight:600 !important;
    letter-spacing:.4px;
    text-transform:uppercase;
}
.ji-hero__titulo{ letter-spacing:.5px; line-height:1.06 !important; }
p, .ji-hero__sub{ text-transform:none; }

.ji-hero__eyebrow,.text-primary,.ji-sec__head h4{
    font-family:'Oswald',sans-serif !important;
    text-transform:uppercase; letter-spacing:2.5px; font-weight:600;
}

/* Botoes industriais: quina reta, caixa alta */
.btn-ji,.btn-hero-ghost{
    border-radius:2px !important;
    text-transform:uppercase; letter-spacing:1px;
    font-family:'Oswald',sans-serif !important; font-weight:600 !important;
}

/* Hero: faixa diagonal (assinatura do catalogo Justo Inox) */
.ji-hero{ position:relative; overflow:hidden; }
.ji-hero::after{
    content:""; position:absolute; top:0; right:0; width:44%; height:100%;
    background:linear-gradient(135deg, rgba(44,110,143,0) 0%, rgba(44,110,143,.16) 52%, rgba(44,110,143,.40) 100%);
    clip-path:polygon(40% 0, 100% 0, 100% 100%, 0 100%);
    pointer-events:none; z-index:1;
}
.ji-hero .container{ position:relative; z-index:2; }

/* Linha vermelha no topo do header */
#site-header.ji-header{ border-top:3px solid var(--ji-verm); }

/* Cards: quina reta + topo vermelho no hover */
.ji-cat,.prod-card{ border-radius:3px !important; }
.ji-cat{ border-top:3px solid transparent; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.ji-cat:hover{ border-top-color:var(--ji-verm); }

/* Titulo de secao com tracinho vermelho */
.ji-sec__head h2{ position:relative; padding-bottom:14px; }
.ji-sec__head h2::after{
    content:""; position:absolute; left:0; bottom:0; width:56px; height:4px; background:var(--ji-verm);
}

/* ===================== Paginas de segmento / modelo ===================== */
.secao--alt{ background:#f4f6f8; }
.seg-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; }
.seg-dor h2{ font-size:1.7rem; color:var(--ji-navy); margin:0 0 14px; }
.seg-dor > p{ font-size:1.1rem; color:#4b5560; line-height:1.6; margin:0 0 20px; }
.seg-pontos{ list-style:none; padding:0; margin:0 0 26px; }
.seg-pontos li{ display:flex; align-items:center; gap:10px; padding:9px 0; font-size:1.05rem; color:#2b2f36; font-weight:500; border-bottom:1px solid #eef1f4; }
.seg-pontos li .icon{ color:var(--ji-azul); font-size:1.3rem; flex-shrink:0; }
.seg-selos{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.seg-selo{ background:var(--ji-navy); color:#fff; border-radius:4px; padding:24px 18px; text-align:center; }
.seg-selo strong{ display:block; font-size:1.7rem; font-weight:800; line-height:1; }
.seg-selo span{ display:block; margin-top:7px; font-size:.9rem; color:#c7ccd3; }
@media (max-width:760px){
    .seg-grid{ grid-template-columns:1fr; gap:28px; }
}

/* ===================== Home: Por que fabricante ===================== */
.ji-porques{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.porque{ background:#fff; border:1px solid #e4e8ee; border-radius:4px; padding:30px 22px; text-align:center; }
.porque__ico{ display:inline-grid; place-items:center; width:64px; height:64px; border-radius:50%; background:rgba(44,110,143,.10); color:var(--ji-azul); font-size:2rem; margin-bottom:16px; }
.porque h3{ font-size:1.18rem; color:var(--ji-navy); margin:0 0 10px; }
.porque p{ color:#5b6470; font-size:.98rem; line-height:1.55; margin:0; }

/* ===================== Home: Por segmento ===================== */
.ji-segmentos{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.seg-card{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px;
    background:var(--ji-navy); color:#fff; border-radius:4px; padding:34px 20px; text-decoration:none;
    transition:transform .15s ease, box-shadow .15s ease; }
.seg-card:hover{ transform:translateY(-5px); box-shadow:0 16px 32px rgba(43,47,54,.22); }
.seg-card__ico{ font-size:2.6rem; color:#fff; opacity:.92; }
.seg-card h3{ font-size:1.18rem; margin:0; color:#fff; }
.seg-card__link{ color:#9fd0e2; font-weight:700; font-size:.92rem; }
@media (max-width:991px){ .ji-porques,.ji-segmentos{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .ji-porques,.ji-segmentos{ grid-template-columns:1fr; } }

/* ===================== Filtros de categoria ===================== */
.ji-filtros{ display:flex; flex-direction:column; gap:12px; margin-bottom:30px; padding-bottom:22px; border-bottom:1px solid #e7eaee; }
.ji-filtro-grupo{ display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
.ji-filtro-label{ font-weight:700; color:var(--ji-navy); font-size:.9rem; margin-right:4px; min-width:78px; }
.ji-chip{ border:1px solid #d4dae1; background:#fff; color:#46505c; padding:7px 16px; border-radius:999px; font-size:.9rem; font-weight:600; cursor:pointer; transition:.14s; font-family:inherit; }
.ji-chip:hover{ border-color:var(--ji-azul); color:var(--ji-azul); }
.ji-chip.ativo{ background:var(--ji-azul); border-color:var(--ji-azul); color:#fff; }
.ji-sem-resultado{ text-align:center; padding:30px; color:#5b6470; }

/* ===================== Bloco de confianca ===================== */
.ji-confianca{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.ji-confianca__item{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:5px; }
.ji-confianca__item .icon{ font-size:2.4rem; color:var(--ji-azul); margin-bottom:6px; }
.ji-confianca__item strong{ color:var(--ji-navy); font-size:1.05rem; }
.ji-confianca__item span{ color:#6b7480; font-size:.9rem; }

/* ===================== Texto SEO de fundo ===================== */
.ji-seo-texto{ }
.ji-seo-texto h2{ color:var(--ji-navy); font-size:1.5rem; margin:0 0 18px; }
.ji-seo-texto p{ color:#54606c; line-height:1.7; margin:0 0 14px; max-width:900px; }
@media (max-width:760px){ .ji-confianca{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   HEADER REDESENHADO (Justo Inox) — barra utilitaria + fone
   ============================================================ */
.ji-topbar{ background:var(--ji-navy); color:#cfd4da; font-size:.84rem; }
.ji-topbar__inner{ display:flex; align-items:center; justify-content:space-between; height:38px; }
.ji-topbar__info{ display:flex; align-items:center; gap:22px; }
.ji-topbar__info a,.ji-topbar__info span{ color:#cfd4da; display:inline-flex; align-items:center; gap:6px; text-decoration:none; }
.ji-topbar__info a:hover{ color:#fff; }
.ji-topbar__info .icon{ color:var(--ji-azul); font-size:1rem; }
.ji-topbar__social{ display:flex; align-items:center; gap:18px; }
.ji-topbar__social a{ color:#cfd4da; display:inline-flex; align-items:center; gap:6px; text-decoration:none; font-size:.84rem; }
.ji-topbar__social a:hover{ color:#fff; }
.ji-topbar__social .icon{ font-size:1.15rem; }
@media (max-width:991px){ .ji-topbar{ display:none; } }
@media (max-width:1180px){ .ji-topbar__hide{ display:none; } }

/* Nav: Oswald caixa-alta com indicador embaixo */
.ji-nav > a, .ji-nav__sub > a{
    font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.6px;
    font-weight:500; font-size:1rem; color:var(--ji-navy); position:relative; padding:6px 0;
}
.ji-nav > a::after, .ji-nav__sub > a::after{
    content:""; position:absolute; left:0; bottom:-2px; width:0; height:3px; background:var(--ji-azul); transition:width .18s ease;
}
.ji-nav > a:hover::after, .ji-nav > a.ativo::after, .ji-nav__sub:hover > a::after{ width:100%; }
.ji-nav > a:hover, .ji-nav > a.ativo, .ji-nav__sub > a:hover{ color:var(--ji-azul); }

/* Acoes a direita: carrinho + bloco de telefone */
.ji-header__acoes{ display:flex; align-items:center; gap:18px; margin-left:6px; }
.ji-fone{ display:flex; align-items:center; gap:11px; text-decoration:none; padding:8px 18px 8px 10px; border-radius:4px; background:rgba(44,110,143,.08); transition:background .15s ease; }
.ji-fone:hover{ background:rgba(44,110,143,.16); }
.ji-fone__ico{ display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--ji-azul); color:#fff; font-size:1.4rem; flex-shrink:0; }
.ji-fone__txt{ display:flex; flex-direction:column; line-height:1.15; }
.ji-fone__txt small{ color:#6b7480; font-size:.72rem; text-transform:uppercase; letter-spacing:.5px; }
.ji-fone__txt strong{ color:var(--ji-navy); font-size:1.12rem; font-family:'Oswald',sans-serif; }
@media (max-width:1080px){ .ji-fone__txt{ display:none; } .ji-fone{ padding:6px; background:none; } }

/* ============================================================
   COMO FUNCIONA — 4 passos (timeline)
   ============================================================ */
.ji-passos{ list-style:none; margin:46px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative; }
.ji-passos::before{ content:""; position:absolute; top:34px; left:12%; right:12%; height:2px; background:linear-gradient(90deg, transparent, #d4dbe2 12%, #d4dbe2 88%, transparent); z-index:0; }
.ji-passo{ position:relative; z-index:1; text-align:center; padding:0 10px; }
.ji-passo__num{ display:grid; place-items:center; width:68px; height:68px; margin:0 auto 16px; border-radius:50%; background:var(--ji-navy); color:#fff; font-family:'Oswald',sans-serif; font-size:1.9rem; font-weight:700; box-shadow:0 0 0 6px #fff; }
.ji-passo__ico{ display:block; color:var(--ji-azul); font-size:1.8rem; margin-bottom:8px; }
.ji-passo h3{ font-size:1.12rem; color:var(--ji-navy); margin:0 0 8px; }
.ji-passo p{ color:#5b6470; font-size:.95rem; line-height:1.5; margin:0; }
@media (max-width:860px){ .ji-passos{ grid-template-columns:1fr 1fr; } .ji-passos::before{ display:none; } }
@media (max-width:460px){ .ji-passos{ grid-template-columns:1fr; } }

/* ============================================================
   FABRICA (sobre) — bloco escuro com numeros
   ============================================================ */
.ji-fabrica{ background:var(--ji-navy); color:#e7eaee; padding:84px 0; }
.ji-fabrica__grid{ display:grid; grid-template-columns:1fr 1fr; gap:46px; align-items:center; }
.ji-fabrica__media{ position:relative; }
.ji-fabrica__media img,.ji-fabrica__media video{ width:100%; height:100%; max-height:460px; object-fit:cover; border-radius:6px; display:block; }
.ji-fabrica__tag{ position:absolute; left:16px; bottom:16px; background:rgba(43,47,54,.85); color:#fff; padding:9px 15px; border-radius:4px; font-size:.85rem; display:inline-flex; align-items:center; gap:7px; }
.ji-fabrica__tag .icon{ color:var(--ji-azul); }
.ji-fabrica__texto h4{ color:var(--ji-azul) !important; }
.ji-fabrica__texto h2{ color:#fff; font-size:2rem; margin:0 0 18px; }
.ji-fabrica__texto p{ color:#c2c8cf; line-height:1.7; margin:0 0 14px; }
.ji-fabrica__stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:26px 0; border-top:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); padding:20px 0; }
.ji-fabrica__stats strong{ display:block; font-family:'Oswald',sans-serif; font-size:1.7rem; color:#fff; line-height:1; }
.ji-fabrica__stats span{ display:block; margin-top:5px; font-size:.8rem; color:#9aa2ab; }
@media (max-width:860px){ .ji-fabrica__grid{ grid-template-columns:1fr; gap:28px; } .ji-fabrica__stats{ grid-template-columns:1fr 1fr; } }

/* ============================================================
   AVALIACOES GOOGLE — carrossel infinito, cards padronizados
   ============================================================ */
.ji-reviews{ overflow:hidden; }
.ji-reviews__head{ text-align:center; margin-bottom:14px; }
.ji-reviews__badge{ display:inline-flex; align-items:center; gap:12px; background:#fff; border:1px solid #e4e8ee; border-radius:50px; padding:9px 22px 9px 12px; margin-bottom:18px; }
.ji-reviews__g{ display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#fff; border:1px solid #e4e8ee; font-family:'Oswald',sans-serif; font-weight:700; font-size:1.2rem;
    background:conic-gradient(from -45deg,#4285f4 0 25%,#ea4335 0 50%,#fbbc05 0 75%,#34a853 0); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ji-reviews__badge > div{ display:flex; flex-direction:column; line-height:1.2; text-align:left; }
.ji-reviews__badge strong{ color:var(--ji-navy); font-size:.95rem; }
.ji-reviews__nota{ color:#f5a623; font-weight:700; font-size:.9rem; display:inline-flex; align-items:center; gap:3px; }
.ji-reviews__nota .icon{ font-size:.95rem; }
.ji-reviews__viewport{ width:100%; overflow:hidden; margin-top:18px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.ji-reviews__track{ display:flex; gap:22px; width:max-content; animation:ji-scroll 48s linear infinite; }
.ji-reviews__viewport:hover .ji-reviews__track{ animation-play-state:paused; }
@keyframes ji-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.ji-review{ flex:0 0 340px; width:340px; height:230px; background:#fff; border:1px solid #e6e9ee; border-radius:8px; padding:22px; display:flex; flex-direction:column; box-shadow:0 4px 14px rgba(43,47,54,.05); }
.ji-review__top{ display:flex; align-items:center; gap:12px; }
.ji-review__avatar{ display:grid; place-items:center; width:44px; height:44px; border-radius:50%; color:#fff; font-weight:700; font-size:1.2rem; flex-shrink:0; }
.ji-review__id{ display:flex; flex-direction:column; line-height:1.25; flex:1; min-width:0; }
.ji-review__id strong{ color:var(--ji-navy); font-size:.98rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ji-review__id span{ color:#8a929c; font-size:.78rem; }
.ji-review__g{ font-family:'Oswald',sans-serif; font-weight:700; font-size:1.3rem; flex-shrink:0;
    background:conic-gradient(from -45deg,#4285f4 0 25%,#ea4335 0 50%,#fbbc05 0 75%,#34a853 0); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ji-review__estrelas{ color:#f5a623; margin:12px 0 8px; font-size:1rem; }
.ji-review__texto{ color:#4b5560; font-size:.95rem; line-height:1.55; margin:0; overflow:hidden; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; }

/* ============================================================
   REFINOS (ajustes pedidos) — ficam no fim para vencer o tema
   ============================================================ */
/* Subtitulos (eyebrow): azul aco no lugar do amarelo */
.text-primary{ color:var(--ji-azul) !important; }
.ji-hero__eyebrow{ color:#a9d4e6 !important; }

/* Header: menu centralizado e mais junto + botao CTA */
.ji-nav{ flex:1 1 auto; justify-content:center; gap:30px; margin-left:0 !important; }
.ji-header__cta{ white-space:nowrap; margin-left:8px; }
.ji-header__cta .icon{ margin-left:8px; margin-right:0; }

/* Categorias: grade de 4 centralizada (sem carrossel/setas) */
.ji-cats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; align-items:stretch; }
@media (max-width:991px){ .ji-cats-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .ji-cats-grid{ grid-template-columns:1fr; } }

/* Hero maior */
.ji-hero{ padding:175px 0 160px; }
.ji-hero__titulo{ font-size:clamp(2.1rem,4vw,3.4rem); }
.ji-hero__sub{ font-size:1.22rem; }
@media (max-width:760px){ .ji-hero{ padding:104px 0 86px; } }

/* FAQ: fundo branco */
.ji-faq-sec{ background:#fff; }

/* ============================================================
   REFINOS 2 (foto hero, destaque 1+3, etc.)
   ============================================================ */
/* Hero: gradiente da marca (azul + chumbo), preenche a tela.
   PENDENTE: foto de hero da Justo (cozinha equipada). Quando vier, dá pra
   sobrepor com url('/public/img/hero-justo.jpg') antes do gradiente. */
.ji-hero{
    padding:96px 0; min-height:calc(100vh - 90px); display:grid; align-content:center;
    background:linear-gradient(125deg, var(--ji-navy) 0%, #1f4f86 55%, var(--ji-azul) 100%);
}
@media (max-width:760px){ .ji-hero{ min-height:auto; padding:90px 0 76px; } }

/* Porques: titulos alinhados (1 ou 2 linhas) */
.porque h3{ min-height:2.5em; display:flex; align-items:center; justify-content:center; }

/* Destaque: 1 grande em cima + 3 embaixo */
.ji-dest2{ display:flex; flex-direction:column; gap:24px; margin-top:30px; }
.ji-feat{ display:grid; grid-template-columns:1.05fr 1fr; background:#fff; border:1px solid #e6e9ee; border-radius:8px; overflow:hidden; box-shadow:0 8px 24px rgba(43,47,54,.07); }
.ji-feat__foto{ position:relative; display:block; min-height:430px; background:#fff; }
.ji-feat__foto img{ position:absolute; inset:8px; width:calc(100% - 16px); height:calc(100% - 16px); object-fit:contain; }
.ji-feat__tag{ position:absolute; top:16px; left:16px; background:var(--ji-azul); color:#fff; padding:7px 14px; border-radius:4px; font-size:.85rem; font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.ji-feat__info{ padding:36px; display:flex; flex-direction:column; }
.ji-feat__info h3{ font-size:1.65rem; margin:0 0 12px; line-height:1.2; }
.ji-feat__info h3 a{ color:var(--ji-navy); text-decoration:none; }
.ji-feat__info > p{ color:#5b6470; line-height:1.65; margin:14px 0 24px; }
.ji-feat__acoes{ display:flex; gap:12px; flex-wrap:wrap; margin-top:auto; }
.btn-ji-outline{ background:transparent; border:2px solid var(--ji-azul); color:var(--ji-azul) !important; }
.btn-ji-outline:hover,.btn-ji-outline:focus{ background:var(--ji-azul); color:#fff !important; }
.ji-dest2__row{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:860px){ .ji-feat{ grid-template-columns:1fr; } .ji-feat__foto{ min-height:320px; } .ji-dest2__row{ grid-template-columns:1fr; } }

/* Credito da agencia (Ge Carvalho) com linha de destaque */
.ji-credito{ font-weight:700; padding-bottom:3px; border-bottom:2px solid var(--ji-azul); transition:border-color .15s ease, color .15s ease; }
.ji-credito:hover{ border-bottom-color:#fff; color:#fff !important; }

/* Botao limpar filtros */
.ji-limpar{ background:transparent; border:1px solid #d4dae1; color:#46505c; padding:7px 16px; border-radius:999px; font-size:.88rem; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; gap:6px; font-family:inherit; margin-left:auto; }
.ji-limpar:hover{ border-color:var(--ji-azul); color:var(--ji-azul); }
.ji-limpar .icon{ font-size:1.05rem; }

/* ===================== Pagina Sobre: NOSSA HISTORIA ===================== */
.ji-historia__top{ display:grid; grid-template-columns:1.5fr 1fr; gap:46px; align-items:start; }
.ji-historia__txt h2{ color:var(--ji-navy); font-size:1.9rem; margin:0 0 18px; }
.ji-historia__txt p{ color:#54606c; line-height:1.7; margin:0 0 14px; }
.ji-historia__txt .btn{ margin-top:12px; }
.ji-historia__nums{ background:var(--ji-navy); border-radius:8px; padding:30px; display:grid; gap:20px; }
.ji-historia__nums div{ border-left:3px solid var(--ji-azul); padding-left:16px; }
.ji-historia__nums strong{ display:block; font-family:'Oswald',sans-serif; font-size:1.9rem; color:#fff; line-height:1; }
.ji-historia__nums span{ display:block; margin-top:5px; color:#9aa2ab; font-size:.88rem; }
.ji-historia__cards{ display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:42px; }
.ji-historia__card{ background:#fff; border:1px solid #e6e9ee; border-radius:8px; padding:24px 18px; text-align:center; }
.ji-historia__ico{ display:inline-grid; place-items:center; width:56px; height:56px; border-radius:50%; background:rgba(44,110,143,.10); color:var(--ji-azul); font-size:1.7rem; margin-bottom:12px; }
.ji-historia__card p{ color:#4b5560; font-size:.92rem; line-height:1.5; margin:0; }
@media (max-width:991px){ .ji-historia__top{ grid-template-columns:1fr; } .ji-historia__cards{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:560px){ .ji-historia__cards{ grid-template-columns:1fr 1fr; } }

/* ===================== Pagina Meu Orcamento (redesenho) ===================== */
.orc2-steps{ display:flex; list-style:none; padding:0; margin:0 0 30px; flex-wrap:wrap; }
.orc2-steps li{ display:flex; align-items:center; gap:10px; color:#8a929c; font-weight:600; font-size:.95rem; padding:0 26px 0 0; }
.orc2-steps li span{ display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#e6e9ee; color:#8a929c; font-weight:700; font-size:.9rem; }
.orc2-steps li.ativo{ color:var(--ji-navy); }
.orc2-steps li.ativo span{ background:var(--ji-azul); color:#fff; }
.orc2-grid{ display:grid; grid-template-columns:1fr 380px; gap:28px; align-items:start; }
.orc2-card{ background:#fff; border:1px solid #e6e9ee; border-radius:10px; padding:26px; }
.orc2-h2{ font-size:1.2rem; color:var(--ji-navy); margin:0 0 18px; display:flex; align-items:center; gap:9px; }
.orc2-h2 .icon{ color:var(--ji-azul); }
.orc2-trust{ display:flex; flex-wrap:wrap; gap:18px; margin-top:18px; padding:16px 20px; background:#f4f6f8; border-radius:10px; }
.orc2-trust span{ display:inline-flex; align-items:center; gap:7px; color:#46505c; font-size:.9rem; font-weight:600; }
.orc2-trust .icon{ color:var(--ji-azul); font-size:1.2rem; }
.orc2-side{ position:sticky; top:110px; }
.orc2-form{ background:#fff; border:1px solid #e6e9ee; border-radius:10px; padding:26px; box-shadow:0 8px 24px rgba(43,47,54,.06); }
.orc2-form label{ display:block; font-weight:600; color:var(--ji-navy); font-size:.9rem; margin-bottom:14px; }
.orc2-form input,.orc2-form select,.orc2-form textarea{ width:100%; margin-top:6px; padding:11px 13px; border:1px solid #cfd6e2; border-radius:8px; font-size:1rem; font-family:inherit; font-weight:400; }
.orc2-form input:focus,.orc2-form select:focus,.orc2-form textarea:focus{ outline:none; border-color:var(--ji-azul); box-shadow:0 0 0 3px rgba(44,110,143,.12); }
@media (max-width:860px){ .orc2-grid{ grid-template-columns:1fr; } .orc2-side{ position:static; } }

/* Garante que o atributo HTML [hidden] sempre vença as classes (orc, filtros) */
[hidden]{ display:none !important; }

/* CTA centralizado em secoes (Como funciona, FAQ) */
.ji-sec-cta{ text-align:center; margin-top:44px; }

/* Limpar filtros: sempre visivel; esmaecido quando nao ha filtro ativo */
.ji-limpar--off{ opacity:.5; }
.ji-limpar--off:hover{ opacity:1; }

/* ============================================================
   MOBILE — corrige overflow do hero (grid blowout) e centraliza
   ============================================================ */
html, body { overflow-x: clip; }
.ji-hero { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 768px){
  /* Hero: centralizado, proporcional, sem estourar */
  .ji-hero{ text-align:center; min-height:auto; padding:62px 0 54px; }
  .ji-hero__inner{ max-width:100%; margin:0 auto; }
  .ji-hero__eyebrow{ font-size:.85rem; }
  .ji-hero__titulo{ font-size:clamp(1.5rem, 5.7vw, 2.1rem); line-height:1.18; }
  .ji-hero__sub{ font-size:1.05rem; }
  .ji-hero__acoes{ justify-content:center; }
  .ji-hero__acoes .btn{ width:100%; justify-content:center; }

  /* Cabecalhos de secao com link ao lado: empilha e centraliza */
  .ji-sec__head--row{ flex-direction:column; align-items:center; text-align:center; gap:12px; }
  .ji-sec__head h2, .ji-sec__head h4{ text-align:center; }

  /* CTAs de secao centralizados / largura cheia */
  .ji-cta-final .btn, .ji-sec-cta .btn{ width:100%; max-width:360px; }
  .ji-sec-cta{ display:flex; justify-content:center; }

  /* Texto SEO de fundo centralizado */
  .ji-seo-texto h2{ text-align:center; }
  .ji-seo-texto p{ text-align:center; margin-left:auto; margin-right:auto; }

  /* Destaque (featured) */
  .ji-feat__info{ text-align:center; }
  .ji-feat__acoes{ justify-content:center; }
  .ji-feat__acoes .btn{ width:100%; justify-content:center; }
  .prod-card__selos{ justify-content:center; }

  /* Pagina Sobre: historia centralizada */
  .ji-historia__txt{ text-align:center; }
  .ji-historia__txt .btn{ width:100%; max-width:360px; }
  .ji-historia__nums div{ text-align:center; border-left:0; padding-left:0; }

  /* Segmento */
  .seg-dor{ text-align:center; }
  .seg-pontos li{ justify-content:center; text-align:left; }
  .seg-dor .btn{ width:100%; max-width:360px; }

  /* Filtros centralizados */
  .ji-filtros{ align-items:center; }
  .ji-filtro-grupo{ justify-content:center; }
  .ji-filtro-label{ width:100%; text-align:center; margin:0 0 2px; }
  .ji-limpar{ margin:8px auto 0; }

  /* Produto: empilha quantidade + botao */
  .produto__form{ flex-direction:column; align-items:stretch; }
}

/* ============================================================
   MOBILE — reforco final (rodape, pagehead, steps)
   ============================================================ */
@media (max-width: 768px){
  /* Rodape: 1 coluna, tudo centralizado, sem estourar */
  .ji-rodape__grid{ grid-template-columns:1fr; text-align:center; }
  .ji-rodape__brand{ text-align:center; }
  .ji-rodape__logo{ width:180px; max-width:78%; height:auto; margin:0 auto 16px; }
  .ji-rodape__brand p{ max-width:100%; margin:0 auto; }
  .ji-rodape__social{ justify-content:center; }
  .ji-rodape__col ul{ padding:0; }
  .ji-rodape__contato li{ justify-content:center; }

  /* Pagehead: titulo e texto quebram e centralizam */
  .ji-pagehead{ text-align:center; }
  .ji-pagehead h1{ overflow-wrap:break-word; }
  .ji-pagehead p{ overflow-wrap:break-word; max-width:100%; margin-left:auto; margin-right:auto; }
  .ji-bread{ justify-content:center; }

  /* Container do orcamento: nao force largura */
  .container--orc{ max-width:100%; }

  /* Etapas do orcamento: quebram e centralizam */
  .orc2-steps{ flex-wrap:wrap; justify-content:center; gap:10px 18px; }
  .orc2-steps li{ padding:0; }
  .orc2-trust{ justify-content:center; }

  /* Qualquer imagem nunca estoura */
  img{ max-width:100%; height:auto; }
}

/* ============================================================
   HEADER MOBILE — logo centralizada, sempre visivel, menu overlay
   ============================================================ */
@media (max-width: 991px){
  .ji-mobile{ position:relative; }
  .ji-mobile__bar{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)); }
  .ji-mobile__bar .ji-cart{ justify-self:start; }          /* carrinho à ESQUERDA */
  .ji-mobile__bar .ji-mobile__logo{ justify-self:center; overflow:visible; flex:none; min-width:0; }
  .ji-mobile__bar .ji-burger{ justify-self:end; }          /* menu à DIREITA */

  /* ===== Menu lateral (drawer) que desliza da direita ===== */
  .ji-mobile__nav{
    position:fixed; top:0; right:0; bottom:0;
    width:min(84%, 330px); height:100dvh; max-height:none;
    background:#fff; box-shadow:-14px 0 40px rgba(43,47,54,.28);
    padding:0 0 24px; z-index:1200; border-top:0;
    display:flex; flex-direction:column; gap:0;
    transform:translateX(100%); transition:transform .28s ease;
    overflow-y:auto; -webkit-overflow-scrolling:touch;
  }
  .ji-mobile__nav.aberto{ transform:translateX(0); }
  .ji-mobile__nav-top{ display:flex; align-items:center; justify-content:space-between;
    padding:16px 18px; border-bottom:1px solid #eef1f6; position:sticky; top:0; background:#fff; }
  .ji-mobile__nav-logo{ height:34px; width:auto; display:block; }
  .ji-drawer__close{ background:none; border:0; font-size:2rem; line-height:1; color:var(--ji-navy); cursor:pointer; padding:0 6px; }
  .ji-mobile__nav a{ text-align:left; justify-content:flex-start; padding:14px 20px; }
  .ji-mobile__nav a.ji-mobile__subitem{ padding-left:34px; }
  .ji-mobile__nav .btn-ji{ margin:16px 18px 0; text-align:center; justify-content:center; }

  /* Fundo escuro atrás do drawer */
  .ji-drawer__bg{ position:fixed; inset:0; background:rgba(20,24,30,.55); z-index:1100;
    opacity:0; transition:opacity .28s ease; }
  .ji-drawer__bg.aberto{ opacity:1; }
  body.ji-no-scroll{ overflow:hidden; }
}

/* ============================================================
   MOBILE — CTAs de secao REALMENTE centralizados (margin auto)
   O problema: botoes display:flex (bloco) + max-width nao centralizam
   so com text-align; precisam de margin-left/right:auto.
   ============================================================ */
@media (max-width: 768px){
  .ji-cta-final .btn,
  .ji-sec-cta .btn,
  .ji-fabrica .btn,
  .ji-fabrica__texto .btn,
  .seg-dor .btn,
  .ji-historia__txt .btn,
  .ji-sobre-home .btn{
    display:flex; width:100%; max-width:340px;
    margin-left:auto !important; margin-right:auto !important;
    justify-content:center;
  }

  /* Secao "Fabrica propria de coifa industrial ha 14 anos": tudo centralizado */
  .ji-fabrica__texto{ text-align:center; }
  .ji-fabrica__texto h4{ text-align:center; }
  .ji-fabrica__stats{ grid-template-columns:1fr 1fr; }
  .ji-fabrica__stats div{ text-align:center; border-left:0; padding-left:0; }
}
